From 9fd0d530c4c92c7ba9037cc4a702ea8c45e8a998 Mon Sep 17 00:00:00 2001 From: jinchao <383321154@qq.com> Date: Wed, 11 Jun 2025 17:04:29 +0800 Subject: [PATCH] =?UTF-8?q?V0.21.14.250611=5Falpha:=E7=A7=BB=E9=99=A4?= =?UTF-8?q?=E4=BA=86=E4=B8=8D=E5=BF=85=E8=A6=81=E7=9A=84=E4=BE=9D=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Release/database/XNSim.db | Bin 1224704 -> 1224704 bytes XNSimHtml/assets/icons/png/code.png | Bin 0 -> 5115 bytes XNSimHtml/assets/icons/png/code_b.png | Bin 0 -> 5697 bytes XNSimHtml/assets/icons/png/delete.png | Bin 0 -> 4317 bytes XNSimHtml/assets/icons/png/delete_b.png | Bin 3968 -> 4903 bytes XNSimHtml/assets/icons/png/excel.png | Bin 0 -> 4281 bytes XNSimHtml/assets/icons/png/excel_b.png | Bin 0 -> 4767 bytes XNSimHtml/assets/icons/png/upload.png | Bin 0 -> 4216 bytes XNSimHtml/assets/icons/png/upload_b.png | Bin 0 -> 4802 bytes .../components/interface-config/toolbar.js | 15 +- XNSimHtml/node_modules/.bin/color-support | 1 - XNSimHtml/node_modules/.bin/node-gyp | 1 - XNSimHtml/node_modules/.bin/node-which | 1 - XNSimHtml/node_modules/.bin/nopt | 1 - XNSimHtml/node_modules/.bin/rimraf | 1 - XNSimHtml/node_modules/.package-lock.json | 1046 +- .../@fortawesome/fontawesome-free/LICENSE.txt | 165 - .../@fortawesome/fontawesome-free/README.md | 38 - .../@fortawesome/fontawesome-free/css/all.css | 7913 - .../fontawesome-free/css/all.min.css | 9 - .../fontawesome-free/css/brands.css | 1609 - .../fontawesome-free/css/brands.min.css | 6 - .../fontawesome-free/css/fontawesome.css | 6243 - .../fontawesome-free/css/fontawesome.min.css | 9 - .../fontawesome-free/css/regular.css | 19 - .../fontawesome-free/css/regular.min.css | 6 - .../fontawesome-free/css/solid.css | 19 - .../fontawesome-free/css/solid.min.css | 6 - .../fontawesome-free/css/svg-with-js.css | 461 - .../fontawesome-free/css/svg-with-js.min.css | 6 - .../fontawesome-free/css/v4-font-face.css | 26 - .../fontawesome-free/css/v4-font-face.min.css | 6 - .../fontawesome-free/css/v4-shims.css | 2194 - .../fontawesome-free/css/v4-shims.min.css | 6 - .../fontawesome-free/css/v5-font-face.css | 22 - .../fontawesome-free/css/v5-font-face.min.css | 6 - .../@fortawesome/fontawesome-free/js/all.js | 6200 - .../fontawesome-free/js/all.min.js | 6 - .../fontawesome-free/js/brands.js | 862 - .../fontawesome-free/js/brands.min.js | 6 - .../fontawesome-free/js/conflict-detection.js | 1108 - .../js/conflict-detection.min.js | 6 - .../fontawesome-free/js/fontawesome.js | 3054 - .../fontawesome-free/js/fontawesome.min.js | 6 - .../fontawesome-free/js/regular.js | 530 - .../fontawesome-free/js/regular.min.js | 6 - .../@fortawesome/fontawesome-free/js/solid.js | 1769 - .../fontawesome-free/js/solid.min.js | 6 - .../fontawesome-free/js/v4-shims.js | 338 - .../fontawesome-free/js/v4-shims.min.js | 6 - .../fontawesome-free/less/_animated.less | 152 - .../less/_bordered-pulled.less | 20 - .../fontawesome-free/less/_core.less | 48 - .../fontawesome-free/less/_fixed-width.less | 7 - .../fontawesome-free/less/_icons.less | 11 - .../fontawesome-free/less/_list.less | 18 - .../fontawesome-free/less/_mixins.less | 68 - .../less/_rotated-flipped.less | 31 - .../fontawesome-free/less/_screen-reader.less | 14 - .../fontawesome-free/less/_shims.less | 2042 - .../fontawesome-free/less/_sizing.less | 19 - .../fontawesome-free/less/_stacked.less | 31 - .../fontawesome-free/less/_variables.less | 5044 - .../fontawesome-free/less/brands.less | 29 - .../fontawesome-free/less/fontawesome.less | 20 - .../fontawesome-free/less/regular.less | 25 - .../fontawesome-free/less/solid.less | 25 - .../fontawesome-free/less/v4-shims.less | 10 - .../fontawesome-free/metadata/categories.yml | 3096 - .../metadata/icon-families.json | 118512 --------------- .../metadata/icon-families.yml | 56887 ------- .../fontawesome-free/metadata/icons.yml | 46917 ------ .../fontawesome-free/metadata/shims.yml | 646 - .../fontawesome-free/metadata/sponsors.yml | 1495 - .../fontawesome-free/package.json | 29 - .../fontawesome-free/scss/_animated.scss | 152 - .../scss/_bordered-pulled.scss | 20 - .../fontawesome-free/scss/_core.scss | 49 - .../fontawesome-free/scss/_fixed-width.scss | 7 - .../fontawesome-free/scss/_functions.scss | 57 - .../fontawesome-free/scss/_icons.scss | 12 - .../fontawesome-free/scss/_list.scss | 18 - .../fontawesome-free/scss/_mixins.scss | 65 - .../scss/_rotated-flipped.scss | 31 - .../fontawesome-free/scss/_screen-reader.scss | 14 - .../fontawesome-free/scss/_shims.scss | 1578 - .../fontawesome-free/scss/_sizing.scss | 16 - .../fontawesome-free/scss/_stacked.scss | 32 - .../fontawesome-free/scss/_variables.scss | 5044 - .../fontawesome-free/scss/brands.scss | 30 - .../fontawesome-free/scss/fontawesome.scss | 21 - .../fontawesome-free/scss/regular.scss | 27 - .../fontawesome-free/scss/solid.scss | 27 - .../fontawesome-free/scss/v4-shims.scss | 11 - .../fontawesome-free/sprites/brands.svg | 1493 - .../fontawesome-free/sprites/regular.svg | 497 - .../fontawesome-free/sprites/solid.svg | 4214 - .../fontawesome-free/svgs/brands/42-group.svg | 1 - .../fontawesome-free/svgs/brands/500px.svg | 1 - .../svgs/brands/accessible-icon.svg | 1 - .../fontawesome-free/svgs/brands/accusoft.svg | 1 - .../fontawesome-free/svgs/brands/adn.svg | 1 - .../fontawesome-free/svgs/brands/adversal.svg | 1 - .../svgs/brands/affiliatetheme.svg | 1 - .../fontawesome-free/svgs/brands/airbnb.svg | 1 - .../fontawesome-free/svgs/brands/algolia.svg | 1 - .../fontawesome-free/svgs/brands/alipay.svg | 1 - .../svgs/brands/amazon-pay.svg | 1 - .../fontawesome-free/svgs/brands/amazon.svg | 1 - .../fontawesome-free/svgs/brands/amilia.svg | 1 - .../fontawesome-free/svgs/brands/android.svg | 1 - .../svgs/brands/angellist.svg | 1 - .../svgs/brands/angrycreative.svg | 1 - .../fontawesome-free/svgs/brands/angular.svg | 1 - .../svgs/brands/app-store-ios.svg | 1 - .../svgs/brands/app-store.svg | 1 - .../fontawesome-free/svgs/brands/apper.svg | 1 - .../svgs/brands/apple-pay.svg | 1 - .../fontawesome-free/svgs/brands/apple.svg | 1 - .../svgs/brands/artstation.svg | 1 - .../svgs/brands/asymmetrik.svg | 1 - .../svgs/brands/atlassian.svg | 1 - .../fontawesome-free/svgs/brands/audible.svg | 1 - .../svgs/brands/autoprefixer.svg | 1 - .../fontawesome-free/svgs/brands/avianex.svg | 1 - .../fontawesome-free/svgs/brands/aviato.svg | 1 - .../fontawesome-free/svgs/brands/aws.svg | 1 - .../fontawesome-free/svgs/brands/bandcamp.svg | 1 - .../svgs/brands/battle-net.svg | 1 - .../fontawesome-free/svgs/brands/behance.svg | 1 - .../fontawesome-free/svgs/brands/bilibili.svg | 1 - .../svgs/brands/bimobject.svg | 1 - .../svgs/brands/bitbucket.svg | 1 - .../fontawesome-free/svgs/brands/bitcoin.svg | 1 - .../fontawesome-free/svgs/brands/bity.svg | 1 - .../svgs/brands/black-tie.svg | 1 - .../svgs/brands/blackberry.svg | 1 - .../svgs/brands/blogger-b.svg | 1 - .../fontawesome-free/svgs/brands/blogger.svg | 1 - .../fontawesome-free/svgs/brands/bluesky.svg | 1 - .../svgs/brands/bluetooth-b.svg | 1 - .../svgs/brands/bluetooth.svg | 1 - .../svgs/brands/bootstrap.svg | 1 - .../fontawesome-free/svgs/brands/bots.svg | 1 - .../svgs/brands/brave-reverse.svg | 1 - .../fontawesome-free/svgs/brands/brave.svg | 1 - .../fontawesome-free/svgs/brands/btc.svg | 1 - .../fontawesome-free/svgs/brands/buffer.svg | 1 - .../svgs/brands/buromobelexperte.svg | 1 - .../svgs/brands/buy-n-large.svg | 1 - .../svgs/brands/buysellads.svg | 1 - .../svgs/brands/canadian-maple-leaf.svg | 1 - .../svgs/brands/cc-amazon-pay.svg | 1 - .../fontawesome-free/svgs/brands/cc-amex.svg | 1 - .../svgs/brands/cc-apple-pay.svg | 1 - .../svgs/brands/cc-diners-club.svg | 1 - .../svgs/brands/cc-discover.svg | 1 - .../fontawesome-free/svgs/brands/cc-jcb.svg | 1 - .../svgs/brands/cc-mastercard.svg | 1 - .../svgs/brands/cc-paypal.svg | 1 - .../svgs/brands/cc-stripe.svg | 1 - .../fontawesome-free/svgs/brands/cc-visa.svg | 1 - .../svgs/brands/centercode.svg | 1 - .../fontawesome-free/svgs/brands/centos.svg | 1 - .../fontawesome-free/svgs/brands/chrome.svg | 1 - .../svgs/brands/chromecast.svg | 1 - .../svgs/brands/cloudflare.svg | 1 - .../svgs/brands/cloudscale.svg | 1 - .../svgs/brands/cloudsmith.svg | 1 - .../svgs/brands/cloudversify.svg | 1 - .../fontawesome-free/svgs/brands/cmplid.svg | 1 - .../fontawesome-free/svgs/brands/codepen.svg | 1 - .../fontawesome-free/svgs/brands/codiepie.svg | 1 - .../svgs/brands/confluence.svg | 1 - .../svgs/brands/connectdevelop.svg | 1 - .../fontawesome-free/svgs/brands/contao.svg | 1 - .../svgs/brands/cotton-bureau.svg | 1 - .../fontawesome-free/svgs/brands/cpanel.svg | 1 - .../svgs/brands/creative-commons-by.svg | 1 - .../svgs/brands/creative-commons-nc-eu.svg | 1 - .../svgs/brands/creative-commons-nc-jp.svg | 1 - .../svgs/brands/creative-commons-nc.svg | 1 - .../svgs/brands/creative-commons-nd.svg | 1 - .../svgs/brands/creative-commons-pd-alt.svg | 1 - .../svgs/brands/creative-commons-pd.svg | 1 - .../svgs/brands/creative-commons-remix.svg | 1 - .../svgs/brands/creative-commons-sa.svg | 1 - .../brands/creative-commons-sampling-plus.svg | 1 - .../svgs/brands/creative-commons-sampling.svg | 1 - .../svgs/brands/creative-commons-share.svg | 1 - .../svgs/brands/creative-commons-zero.svg | 1 - .../svgs/brands/creative-commons.svg | 1 - .../svgs/brands/critical-role.svg | 1 - .../fontawesome-free/svgs/brands/css.svg | 1 - .../fontawesome-free/svgs/brands/css3-alt.svg | 1 - .../fontawesome-free/svgs/brands/css3.svg | 1 - .../svgs/brands/cuttlefish.svg | 1 - .../svgs/brands/d-and-d-beyond.svg | 1 - .../fontawesome-free/svgs/brands/d-and-d.svg | 1 - .../svgs/brands/dailymotion.svg | 1 - .../svgs/brands/dart-lang.svg | 1 - .../fontawesome-free/svgs/brands/dashcube.svg | 1 - .../fontawesome-free/svgs/brands/debian.svg | 1 - .../fontawesome-free/svgs/brands/deezer.svg | 1 - .../svgs/brands/delicious.svg | 1 - .../svgs/brands/deploydog.svg | 1 - .../fontawesome-free/svgs/brands/deskpro.svg | 1 - .../fontawesome-free/svgs/brands/dev.svg | 1 - .../svgs/brands/deviantart.svg | 1 - .../fontawesome-free/svgs/brands/dhl.svg | 1 - .../fontawesome-free/svgs/brands/diaspora.svg | 1 - .../fontawesome-free/svgs/brands/digg.svg | 1 - .../svgs/brands/digital-ocean.svg | 1 - .../fontawesome-free/svgs/brands/discord.svg | 1 - .../svgs/brands/discourse.svg | 1 - .../fontawesome-free/svgs/brands/dochub.svg | 1 - .../fontawesome-free/svgs/brands/docker.svg | 1 - .../svgs/brands/draft2digital.svg | 1 - .../fontawesome-free/svgs/brands/dribbble.svg | 1 - .../fontawesome-free/svgs/brands/dropbox.svg | 1 - .../fontawesome-free/svgs/brands/drupal.svg | 1 - .../fontawesome-free/svgs/brands/dyalog.svg | 1 - .../svgs/brands/earlybirds.svg | 1 - .../fontawesome-free/svgs/brands/ebay.svg | 1 - .../svgs/brands/edge-legacy.svg | 1 - .../fontawesome-free/svgs/brands/edge.svg | 1 - .../svgs/brands/elementor.svg | 1 - .../fontawesome-free/svgs/brands/ello.svg | 1 - .../fontawesome-free/svgs/brands/ember.svg | 1 - .../fontawesome-free/svgs/brands/empire.svg | 1 - .../fontawesome-free/svgs/brands/envira.svg | 1 - .../fontawesome-free/svgs/brands/erlang.svg | 1 - .../fontawesome-free/svgs/brands/ethereum.svg | 1 - .../fontawesome-free/svgs/brands/etsy.svg | 1 - .../fontawesome-free/svgs/brands/evernote.svg | 1 - .../svgs/brands/expeditedssl.svg | 1 - .../svgs/brands/facebook-f.svg | 1 - .../svgs/brands/facebook-messenger.svg | 1 - .../fontawesome-free/svgs/brands/facebook.svg | 1 - .../svgs/brands/fantasy-flight-games.svg | 1 - .../fontawesome-free/svgs/brands/fedex.svg | 1 - .../fontawesome-free/svgs/brands/fedora.svg | 1 - .../fontawesome-free/svgs/brands/figma.svg | 1 - .../svgs/brands/files-pinwheel.svg | 1 - .../svgs/brands/firefox-browser.svg | 1 - .../fontawesome-free/svgs/brands/firefox.svg | 1 - .../svgs/brands/first-order-alt.svg | 1 - .../svgs/brands/first-order.svg | 1 - .../svgs/brands/firstdraft.svg | 1 - .../fontawesome-free/svgs/brands/flickr.svg | 1 - .../svgs/brands/flipboard.svg | 1 - .../fontawesome-free/svgs/brands/flutter.svg | 1 - .../fontawesome-free/svgs/brands/fly.svg | 1 - .../svgs/brands/font-awesome.svg | 1 - .../svgs/brands/fonticons-fi.svg | 1 - .../svgs/brands/fonticons.svg | 1 - .../svgs/brands/fort-awesome-alt.svg | 1 - .../svgs/brands/fort-awesome.svg | 1 - .../fontawesome-free/svgs/brands/forumbee.svg | 1 - .../svgs/brands/foursquare.svg | 1 - .../svgs/brands/free-code-camp.svg | 1 - .../fontawesome-free/svgs/brands/freebsd.svg | 1 - .../fontawesome-free/svgs/brands/fulcrum.svg | 1 - .../svgs/brands/galactic-republic.svg | 1 - .../svgs/brands/galactic-senate.svg | 1 - .../svgs/brands/get-pocket.svg | 1 - .../svgs/brands/gg-circle.svg | 1 - .../fontawesome-free/svgs/brands/gg.svg | 1 - .../fontawesome-free/svgs/brands/git-alt.svg | 1 - .../fontawesome-free/svgs/brands/git.svg | 1 - .../svgs/brands/github-alt.svg | 1 - .../fontawesome-free/svgs/brands/github.svg | 1 - .../svgs/brands/gitkraken.svg | 1 - .../fontawesome-free/svgs/brands/gitlab.svg | 1 - .../fontawesome-free/svgs/brands/gitter.svg | 1 - .../fontawesome-free/svgs/brands/glide-g.svg | 1 - .../fontawesome-free/svgs/brands/glide.svg | 1 - .../fontawesome-free/svgs/brands/gofore.svg | 1 - .../fontawesome-free/svgs/brands/golang.svg | 1 - .../svgs/brands/goodreads-g.svg | 1 - .../svgs/brands/goodreads.svg | 1 - .../svgs/brands/google-drive.svg | 1 - .../svgs/brands/google-pay.svg | 1 - .../svgs/brands/google-play.svg | 1 - .../svgs/brands/google-plus-g.svg | 1 - .../svgs/brands/google-plus.svg | 1 - .../svgs/brands/google-scholar.svg | 1 - .../svgs/brands/google-wallet.svg | 1 - .../fontawesome-free/svgs/brands/google.svg | 1 - .../fontawesome-free/svgs/brands/gratipay.svg | 1 - .../fontawesome-free/svgs/brands/grav.svg | 1 - .../fontawesome-free/svgs/brands/gripfire.svg | 1 - .../fontawesome-free/svgs/brands/grunt.svg | 1 - .../fontawesome-free/svgs/brands/guilded.svg | 1 - .../fontawesome-free/svgs/brands/gulp.svg | 1 - .../svgs/brands/hacker-news.svg | 1 - .../svgs/brands/hackerrank.svg | 1 - .../fontawesome-free/svgs/brands/hashnode.svg | 1 - .../fontawesome-free/svgs/brands/hips.svg | 1 - .../svgs/brands/hire-a-helper.svg | 1 - .../fontawesome-free/svgs/brands/hive.svg | 1 - .../fontawesome-free/svgs/brands/hooli.svg | 1 - .../fontawesome-free/svgs/brands/hornbill.svg | 1 - .../fontawesome-free/svgs/brands/hotjar.svg | 1 - .../fontawesome-free/svgs/brands/houzz.svg | 1 - .../fontawesome-free/svgs/brands/html5.svg | 1 - .../fontawesome-free/svgs/brands/hubspot.svg | 1 - .../fontawesome-free/svgs/brands/ideal.svg | 1 - .../fontawesome-free/svgs/brands/imdb.svg | 1 - .../svgs/brands/instagram.svg | 1 - .../fontawesome-free/svgs/brands/instalod.svg | 1 - .../fontawesome-free/svgs/brands/intercom.svg | 1 - .../svgs/brands/internet-explorer.svg | 1 - .../fontawesome-free/svgs/brands/invision.svg | 1 - .../fontawesome-free/svgs/brands/ioxhost.svg | 1 - .../fontawesome-free/svgs/brands/itch-io.svg | 1 - .../svgs/brands/itunes-note.svg | 1 - .../fontawesome-free/svgs/brands/itunes.svg | 1 - .../fontawesome-free/svgs/brands/java.svg | 1 - .../svgs/brands/jedi-order.svg | 1 - .../fontawesome-free/svgs/brands/jenkins.svg | 1 - .../fontawesome-free/svgs/brands/jira.svg | 1 - .../fontawesome-free/svgs/brands/joget.svg | 1 - .../fontawesome-free/svgs/brands/joomla.svg | 1 - .../fontawesome-free/svgs/brands/js.svg | 1 - .../fontawesome-free/svgs/brands/jsfiddle.svg | 1 - .../fontawesome-free/svgs/brands/jxl.svg | 1 - .../fontawesome-free/svgs/brands/kaggle.svg | 1 - .../fontawesome-free/svgs/brands/keybase.svg | 1 - .../fontawesome-free/svgs/brands/keycdn.svg | 1 - .../svgs/brands/kickstarter-k.svg | 1 - .../svgs/brands/kickstarter.svg | 1 - .../fontawesome-free/svgs/brands/korvue.svg | 1 - .../fontawesome-free/svgs/brands/laravel.svg | 1 - .../fontawesome-free/svgs/brands/lastfm.svg | 1 - .../fontawesome-free/svgs/brands/leanpub.svg | 1 - .../fontawesome-free/svgs/brands/less.svg | 1 - .../svgs/brands/letterboxd.svg | 1 - .../fontawesome-free/svgs/brands/line.svg | 1 - .../svgs/brands/linkedin-in.svg | 1 - .../fontawesome-free/svgs/brands/linkedin.svg | 1 - .../fontawesome-free/svgs/brands/linode.svg | 1 - .../fontawesome-free/svgs/brands/linux.svg | 1 - .../fontawesome-free/svgs/brands/lyft.svg | 1 - .../fontawesome-free/svgs/brands/magento.svg | 1 - .../svgs/brands/mailchimp.svg | 1 - .../svgs/brands/mandalorian.svg | 1 - .../fontawesome-free/svgs/brands/markdown.svg | 1 - .../fontawesome-free/svgs/brands/mastodon.svg | 1 - .../fontawesome-free/svgs/brands/maxcdn.svg | 1 - .../fontawesome-free/svgs/brands/mdb.svg | 1 - .../fontawesome-free/svgs/brands/medapps.svg | 1 - .../fontawesome-free/svgs/brands/medium.svg | 1 - .../fontawesome-free/svgs/brands/medrt.svg | 1 - .../fontawesome-free/svgs/brands/meetup.svg | 1 - .../fontawesome-free/svgs/brands/megaport.svg | 1 - .../fontawesome-free/svgs/brands/mendeley.svg | 1 - .../fontawesome-free/svgs/brands/meta.svg | 1 - .../svgs/brands/microblog.svg | 1 - .../svgs/brands/microsoft.svg | 1 - .../fontawesome-free/svgs/brands/mintbit.svg | 1 - .../fontawesome-free/svgs/brands/mix.svg | 1 - .../fontawesome-free/svgs/brands/mixcloud.svg | 1 - .../fontawesome-free/svgs/brands/mixer.svg | 1 - .../fontawesome-free/svgs/brands/mizuni.svg | 1 - .../fontawesome-free/svgs/brands/modx.svg | 1 - .../fontawesome-free/svgs/brands/monero.svg | 1 - .../fontawesome-free/svgs/brands/napster.svg | 1 - .../fontawesome-free/svgs/brands/neos.svg | 1 - .../svgs/brands/nfc-directional.svg | 1 - .../svgs/brands/nfc-symbol.svg | 1 - .../fontawesome-free/svgs/brands/nimblr.svg | 1 - .../fontawesome-free/svgs/brands/node-js.svg | 1 - .../fontawesome-free/svgs/brands/node.svg | 1 - .../fontawesome-free/svgs/brands/npm.svg | 1 - .../fontawesome-free/svgs/brands/ns8.svg | 1 - .../svgs/brands/nutritionix.svg | 1 - .../svgs/brands/octopus-deploy.svg | 1 - .../svgs/brands/odnoklassniki.svg | 1 - .../fontawesome-free/svgs/brands/odysee.svg | 1 - .../svgs/brands/old-republic.svg | 1 - .../fontawesome-free/svgs/brands/opencart.svg | 1 - .../fontawesome-free/svgs/brands/openid.svg | 1 - .../fontawesome-free/svgs/brands/opensuse.svg | 1 - .../fontawesome-free/svgs/brands/opera.svg | 1 - .../svgs/brands/optin-monster.svg | 1 - .../fontawesome-free/svgs/brands/orcid.svg | 1 - .../fontawesome-free/svgs/brands/osi.svg | 1 - .../fontawesome-free/svgs/brands/padlet.svg | 1 - .../fontawesome-free/svgs/brands/page4.svg | 1 - .../svgs/brands/pagelines.svg | 1 - .../fontawesome-free/svgs/brands/palfed.svg | 1 - .../fontawesome-free/svgs/brands/patreon.svg | 1 - .../fontawesome-free/svgs/brands/paypal.svg | 1 - .../fontawesome-free/svgs/brands/perbyte.svg | 1 - .../svgs/brands/periscope.svg | 1 - .../svgs/brands/phabricator.svg | 1 - .../svgs/brands/phoenix-framework.svg | 1 - .../svgs/brands/phoenix-squadron.svg | 1 - .../fontawesome-free/svgs/brands/php.svg | 1 - .../svgs/brands/pied-piper-alt.svg | 1 - .../svgs/brands/pied-piper-hat.svg | 1 - .../svgs/brands/pied-piper-pp.svg | 1 - .../svgs/brands/pied-piper.svg | 1 - .../svgs/brands/pinterest-p.svg | 1 - .../svgs/brands/pinterest.svg | 1 - .../fontawesome-free/svgs/brands/pix.svg | 1 - .../fontawesome-free/svgs/brands/pixiv.svg | 1 - .../svgs/brands/playstation.svg | 1 - .../svgs/brands/product-hunt.svg | 1 - .../fontawesome-free/svgs/brands/pushed.svg | 1 - .../fontawesome-free/svgs/brands/python.svg | 1 - .../fontawesome-free/svgs/brands/qq.svg | 1 - .../svgs/brands/quinscape.svg | 1 - .../fontawesome-free/svgs/brands/quora.svg | 1 - .../svgs/brands/r-project.svg | 1 - .../svgs/brands/raspberry-pi.svg | 1 - .../fontawesome-free/svgs/brands/ravelry.svg | 1 - .../fontawesome-free/svgs/brands/react.svg | 1 - .../svgs/brands/reacteurope.svg | 1 - .../fontawesome-free/svgs/brands/readme.svg | 1 - .../fontawesome-free/svgs/brands/rebel.svg | 1 - .../svgs/brands/red-river.svg | 1 - .../svgs/brands/reddit-alien.svg | 1 - .../fontawesome-free/svgs/brands/reddit.svg | 1 - .../fontawesome-free/svgs/brands/redhat.svg | 1 - .../fontawesome-free/svgs/brands/renren.svg | 1 - .../fontawesome-free/svgs/brands/replyd.svg | 1 - .../svgs/brands/researchgate.svg | 1 - .../svgs/brands/resolving.svg | 1 - .../fontawesome-free/svgs/brands/rev.svg | 1 - .../svgs/brands/rocketchat.svg | 1 - .../fontawesome-free/svgs/brands/rockrms.svg | 1 - .../fontawesome-free/svgs/brands/rust.svg | 1 - .../fontawesome-free/svgs/brands/safari.svg | 1 - .../svgs/brands/salesforce.svg | 1 - .../fontawesome-free/svgs/brands/sass.svg | 1 - .../fontawesome-free/svgs/brands/schlix.svg | 1 - .../svgs/brands/screenpal.svg | 1 - .../fontawesome-free/svgs/brands/scribd.svg | 1 - .../svgs/brands/searchengin.svg | 1 - .../fontawesome-free/svgs/brands/sellcast.svg | 1 - .../fontawesome-free/svgs/brands/sellsy.svg | 1 - .../svgs/brands/servicestack.svg | 1 - .../svgs/brands/shirtsinbulk.svg | 1 - .../fontawesome-free/svgs/brands/shoelace.svg | 1 - .../fontawesome-free/svgs/brands/shopify.svg | 1 - .../fontawesome-free/svgs/brands/shopware.svg | 1 - .../svgs/brands/signal-messenger.svg | 1 - .../svgs/brands/simplybuilt.svg | 1 - .../fontawesome-free/svgs/brands/sistrix.svg | 1 - .../fontawesome-free/svgs/brands/sith.svg | 1 - .../fontawesome-free/svgs/brands/sitrox.svg | 1 - .../fontawesome-free/svgs/brands/sketch.svg | 1 - .../fontawesome-free/svgs/brands/skyatlas.svg | 1 - .../fontawesome-free/svgs/brands/skype.svg | 1 - .../fontawesome-free/svgs/brands/slack.svg | 1 - .../svgs/brands/slideshare.svg | 1 - .../fontawesome-free/svgs/brands/snapchat.svg | 1 - .../svgs/brands/soundcloud.svg | 1 - .../svgs/brands/sourcetree.svg | 1 - .../svgs/brands/space-awesome.svg | 1 - .../fontawesome-free/svgs/brands/speakap.svg | 1 - .../svgs/brands/speaker-deck.svg | 1 - .../fontawesome-free/svgs/brands/spotify.svg | 1 - .../svgs/brands/square-behance.svg | 1 - .../svgs/brands/square-bluesky.svg | 1 - .../svgs/brands/square-dribbble.svg | 1 - .../svgs/brands/square-facebook.svg | 1 - .../brands/square-font-awesome-stroke.svg | 1 - .../svgs/brands/square-font-awesome.svg | 1 - .../svgs/brands/square-git.svg | 1 - .../svgs/brands/square-github.svg | 1 - .../svgs/brands/square-gitlab.svg | 1 - .../svgs/brands/square-google-plus.svg | 1 - .../svgs/brands/square-hacker-news.svg | 1 - .../svgs/brands/square-instagram.svg | 1 - .../svgs/brands/square-js.svg | 1 - .../svgs/brands/square-lastfm.svg | 1 - .../svgs/brands/square-letterboxd.svg | 1 - .../svgs/brands/square-odnoklassniki.svg | 1 - .../svgs/brands/square-pied-piper.svg | 1 - .../svgs/brands/square-pinterest.svg | 1 - .../svgs/brands/square-reddit.svg | 1 - .../svgs/brands/square-snapchat.svg | 1 - .../svgs/brands/square-steam.svg | 1 - .../svgs/brands/square-threads.svg | 1 - .../svgs/brands/square-tumblr.svg | 1 - .../svgs/brands/square-twitter.svg | 1 - .../svgs/brands/square-upwork.svg | 1 - .../svgs/brands/square-viadeo.svg | 1 - .../svgs/brands/square-vimeo.svg | 1 - .../svgs/brands/square-web-awesome-stroke.svg | 1 - .../svgs/brands/square-web-awesome.svg | 1 - .../svgs/brands/square-whatsapp.svg | 1 - .../svgs/brands/square-x-twitter.svg | 1 - .../svgs/brands/square-xing.svg | 1 - .../svgs/brands/square-youtube.svg | 1 - .../svgs/brands/squarespace.svg | 1 - .../svgs/brands/stack-exchange.svg | 1 - .../svgs/brands/stack-overflow.svg | 1 - .../svgs/brands/stackpath.svg | 1 - .../svgs/brands/staylinked.svg | 1 - .../svgs/brands/steam-symbol.svg | 1 - .../fontawesome-free/svgs/brands/steam.svg | 1 - .../svgs/brands/sticker-mule.svg | 1 - .../fontawesome-free/svgs/brands/strava.svg | 1 - .../fontawesome-free/svgs/brands/stripe-s.svg | 1 - .../fontawesome-free/svgs/brands/stripe.svg | 1 - .../fontawesome-free/svgs/brands/stubber.svg | 1 - .../svgs/brands/studiovinari.svg | 1 - .../svgs/brands/stumbleupon-circle.svg | 1 - .../svgs/brands/stumbleupon.svg | 1 - .../svgs/brands/superpowers.svg | 1 - .../fontawesome-free/svgs/brands/supple.svg | 1 - .../fontawesome-free/svgs/brands/suse.svg | 1 - .../fontawesome-free/svgs/brands/swift.svg | 1 - .../fontawesome-free/svgs/brands/symfony.svg | 1 - .../svgs/brands/teamspeak.svg | 1 - .../fontawesome-free/svgs/brands/telegram.svg | 1 - .../svgs/brands/tencent-weibo.svg | 1 - .../svgs/brands/the-red-yeti.svg | 1 - .../fontawesome-free/svgs/brands/themeco.svg | 1 - .../svgs/brands/themeisle.svg | 1 - .../svgs/brands/think-peaks.svg | 1 - .../fontawesome-free/svgs/brands/threads.svg | 1 - .../fontawesome-free/svgs/brands/tiktok.svg | 1 - .../svgs/brands/trade-federation.svg | 1 - .../fontawesome-free/svgs/brands/trello.svg | 1 - .../fontawesome-free/svgs/brands/tumblr.svg | 1 - .../fontawesome-free/svgs/brands/twitch.svg | 1 - .../fontawesome-free/svgs/brands/twitter.svg | 1 - .../fontawesome-free/svgs/brands/typo3.svg | 1 - .../fontawesome-free/svgs/brands/uber.svg | 1 - .../fontawesome-free/svgs/brands/ubuntu.svg | 1 - .../fontawesome-free/svgs/brands/uikit.svg | 1 - .../fontawesome-free/svgs/brands/umbraco.svg | 1 - .../svgs/brands/uncharted.svg | 1 - .../svgs/brands/uniregistry.svg | 1 - .../fontawesome-free/svgs/brands/unity.svg | 1 - .../fontawesome-free/svgs/brands/unsplash.svg | 1 - .../fontawesome-free/svgs/brands/untappd.svg | 1 - .../fontawesome-free/svgs/brands/ups.svg | 1 - .../fontawesome-free/svgs/brands/upwork.svg | 1 - .../fontawesome-free/svgs/brands/usb.svg | 1 - .../fontawesome-free/svgs/brands/usps.svg | 1 - .../fontawesome-free/svgs/brands/ussunnah.svg | 1 - .../fontawesome-free/svgs/brands/vaadin.svg | 1 - .../fontawesome-free/svgs/brands/viacoin.svg | 1 - .../fontawesome-free/svgs/brands/viadeo.svg | 1 - .../fontawesome-free/svgs/brands/viber.svg | 1 - .../fontawesome-free/svgs/brands/vimeo-v.svg | 1 - .../fontawesome-free/svgs/brands/vimeo.svg | 1 - .../fontawesome-free/svgs/brands/vine.svg | 1 - .../fontawesome-free/svgs/brands/vk.svg | 1 - .../fontawesome-free/svgs/brands/vnv.svg | 1 - .../fontawesome-free/svgs/brands/vuejs.svg | 1 - .../svgs/brands/watchman-monitoring.svg | 1 - .../fontawesome-free/svgs/brands/waze.svg | 1 - .../svgs/brands/web-awesome.svg | 1 - .../fontawesome-free/svgs/brands/webflow.svg | 1 - .../fontawesome-free/svgs/brands/weebly.svg | 1 - .../fontawesome-free/svgs/brands/weibo.svg | 1 - .../fontawesome-free/svgs/brands/weixin.svg | 1 - .../fontawesome-free/svgs/brands/whatsapp.svg | 1 - .../fontawesome-free/svgs/brands/whmcs.svg | 1 - .../svgs/brands/wikipedia-w.svg | 1 - .../fontawesome-free/svgs/brands/windows.svg | 1 - .../svgs/brands/wirsindhandwerk.svg | 1 - .../fontawesome-free/svgs/brands/wix.svg | 1 - .../svgs/brands/wizards-of-the-coast.svg | 1 - .../fontawesome-free/svgs/brands/wodu.svg | 1 - .../svgs/brands/wolf-pack-battalion.svg | 1 - .../svgs/brands/wordpress-simple.svg | 1 - .../svgs/brands/wordpress.svg | 1 - .../svgs/brands/wpbeginner.svg | 1 - .../svgs/brands/wpexplorer.svg | 1 - .../fontawesome-free/svgs/brands/wpforms.svg | 1 - .../fontawesome-free/svgs/brands/wpressr.svg | 1 - .../svgs/brands/x-twitter.svg | 1 - .../fontawesome-free/svgs/brands/xbox.svg | 1 - .../fontawesome-free/svgs/brands/xing.svg | 1 - .../svgs/brands/y-combinator.svg | 1 - .../fontawesome-free/svgs/brands/yahoo.svg | 1 - .../fontawesome-free/svgs/brands/yammer.svg | 1 - .../svgs/brands/yandex-international.svg | 1 - .../fontawesome-free/svgs/brands/yandex.svg | 1 - .../fontawesome-free/svgs/brands/yarn.svg | 1 - .../fontawesome-free/svgs/brands/yelp.svg | 1 - .../fontawesome-free/svgs/brands/yoast.svg | 1 - .../fontawesome-free/svgs/brands/youtube.svg | 1 - .../fontawesome-free/svgs/brands/zhihu.svg | 1 - .../svgs/regular/address-book.svg | 1 - .../svgs/regular/address-card.svg | 1 - .../svgs/regular/bell-slash.svg | 1 - .../fontawesome-free/svgs/regular/bell.svg | 1 - .../svgs/regular/bookmark.svg | 1 - .../svgs/regular/building.svg | 1 - .../svgs/regular/calendar-check.svg | 1 - .../svgs/regular/calendar-days.svg | 1 - .../svgs/regular/calendar-minus.svg | 1 - .../svgs/regular/calendar-plus.svg | 1 - .../svgs/regular/calendar-xmark.svg | 1 - .../svgs/regular/calendar.svg | 1 - .../svgs/regular/chart-bar.svg | 1 - .../svgs/regular/chess-bishop.svg | 1 - .../svgs/regular/chess-king.svg | 1 - .../svgs/regular/chess-knight.svg | 1 - .../svgs/regular/chess-pawn.svg | 1 - .../svgs/regular/chess-queen.svg | 1 - .../svgs/regular/chess-rook.svg | 1 - .../svgs/regular/circle-check.svg | 1 - .../svgs/regular/circle-dot.svg | 1 - .../svgs/regular/circle-down.svg | 1 - .../svgs/regular/circle-left.svg | 1 - .../svgs/regular/circle-pause.svg | 1 - .../svgs/regular/circle-play.svg | 1 - .../svgs/regular/circle-question.svg | 1 - .../svgs/regular/circle-right.svg | 1 - .../svgs/regular/circle-stop.svg | 1 - .../svgs/regular/circle-up.svg | 1 - .../svgs/regular/circle-user.svg | 1 - .../svgs/regular/circle-xmark.svg | 1 - .../fontawesome-free/svgs/regular/circle.svg | 1 - .../svgs/regular/clipboard.svg | 1 - .../fontawesome-free/svgs/regular/clock.svg | 1 - .../fontawesome-free/svgs/regular/clone.svg | 1 - .../svgs/regular/closed-captioning.svg | 1 - .../svgs/regular/comment-dots.svg | 1 - .../fontawesome-free/svgs/regular/comment.svg | 1 - .../svgs/regular/comments.svg | 1 - .../fontawesome-free/svgs/regular/compass.svg | 1 - .../fontawesome-free/svgs/regular/copy.svg | 1 - .../svgs/regular/copyright.svg | 1 - .../svgs/regular/credit-card.svg | 1 - .../svgs/regular/envelope-open.svg | 1 - .../svgs/regular/envelope.svg | 1 - .../svgs/regular/eye-slash.svg | 1 - .../fontawesome-free/svgs/regular/eye.svg | 1 - .../svgs/regular/face-angry.svg | 1 - .../svgs/regular/face-dizzy.svg | 1 - .../svgs/regular/face-flushed.svg | 1 - .../svgs/regular/face-frown-open.svg | 1 - .../svgs/regular/face-frown.svg | 1 - .../svgs/regular/face-grimace.svg | 1 - .../svgs/regular/face-grin-beam-sweat.svg | 1 - .../svgs/regular/face-grin-beam.svg | 1 - .../svgs/regular/face-grin-hearts.svg | 1 - .../svgs/regular/face-grin-squint-tears.svg | 1 - .../svgs/regular/face-grin-squint.svg | 1 - .../svgs/regular/face-grin-stars.svg | 1 - .../svgs/regular/face-grin-tears.svg | 1 - .../svgs/regular/face-grin-tongue-squint.svg | 1 - .../svgs/regular/face-grin-tongue-wink.svg | 1 - .../svgs/regular/face-grin-tongue.svg | 1 - .../svgs/regular/face-grin-wide.svg | 1 - .../svgs/regular/face-grin-wink.svg | 1 - .../svgs/regular/face-grin.svg | 1 - .../svgs/regular/face-kiss-beam.svg | 1 - .../svgs/regular/face-kiss-wink-heart.svg | 1 - .../svgs/regular/face-kiss.svg | 1 - .../svgs/regular/face-laugh-beam.svg | 1 - .../svgs/regular/face-laugh-squint.svg | 1 - .../svgs/regular/face-laugh-wink.svg | 1 - .../svgs/regular/face-laugh.svg | 1 - .../svgs/regular/face-meh-blank.svg | 1 - .../svgs/regular/face-meh.svg | 1 - .../svgs/regular/face-rolling-eyes.svg | 1 - .../svgs/regular/face-sad-cry.svg | 1 - .../svgs/regular/face-sad-tear.svg | 1 - .../svgs/regular/face-smile-beam.svg | 1 - .../svgs/regular/face-smile-wink.svg | 1 - .../svgs/regular/face-smile.svg | 1 - .../svgs/regular/face-surprise.svg | 1 - .../svgs/regular/face-tired.svg | 1 - .../svgs/regular/file-audio.svg | 1 - .../svgs/regular/file-code.svg | 1 - .../svgs/regular/file-excel.svg | 1 - .../svgs/regular/file-image.svg | 1 - .../svgs/regular/file-lines.svg | 1 - .../svgs/regular/file-pdf.svg | 1 - .../svgs/regular/file-powerpoint.svg | 1 - .../svgs/regular/file-video.svg | 1 - .../svgs/regular/file-word.svg | 1 - .../svgs/regular/file-zipper.svg | 1 - .../fontawesome-free/svgs/regular/file.svg | 1 - .../fontawesome-free/svgs/regular/flag.svg | 1 - .../svgs/regular/floppy-disk.svg | 1 - .../svgs/regular/folder-closed.svg | 1 - .../svgs/regular/folder-open.svg | 1 - .../fontawesome-free/svgs/regular/folder.svg | 1 - .../svgs/regular/font-awesome.svg | 1 - .../fontawesome-free/svgs/regular/futbol.svg | 1 - .../fontawesome-free/svgs/regular/gem.svg | 1 - .../svgs/regular/hand-back-fist.svg | 1 - .../svgs/regular/hand-lizard.svg | 1 - .../svgs/regular/hand-peace.svg | 1 - .../svgs/regular/hand-point-down.svg | 1 - .../svgs/regular/hand-point-left.svg | 1 - .../svgs/regular/hand-point-right.svg | 1 - .../svgs/regular/hand-point-up.svg | 1 - .../svgs/regular/hand-pointer.svg | 1 - .../svgs/regular/hand-scissors.svg | 1 - .../svgs/regular/hand-spock.svg | 1 - .../fontawesome-free/svgs/regular/hand.svg | 1 - .../svgs/regular/handshake.svg | 1 - .../svgs/regular/hard-drive.svg | 1 - .../fontawesome-free/svgs/regular/heart.svg | 1 - .../svgs/regular/hospital.svg | 1 - .../svgs/regular/hourglass-half.svg | 1 - .../svgs/regular/hourglass.svg | 1 - .../svgs/regular/id-badge.svg | 1 - .../fontawesome-free/svgs/regular/id-card.svg | 1 - .../fontawesome-free/svgs/regular/image.svg | 1 - .../fontawesome-free/svgs/regular/images.svg | 1 - .../svgs/regular/keyboard.svg | 1 - .../fontawesome-free/svgs/regular/lemon.svg | 1 - .../svgs/regular/life-ring.svg | 1 - .../svgs/regular/lightbulb.svg | 1 - .../fontawesome-free/svgs/regular/map.svg | 1 - .../fontawesome-free/svgs/regular/message.svg | 1 - .../svgs/regular/money-bill-1.svg | 1 - .../fontawesome-free/svgs/regular/moon.svg | 1 - .../svgs/regular/newspaper.svg | 1 - .../svgs/regular/note-sticky.svg | 1 - .../svgs/regular/object-group.svg | 1 - .../svgs/regular/object-ungroup.svg | 1 - .../svgs/regular/paper-plane.svg | 1 - .../fontawesome-free/svgs/regular/paste.svg | 1 - .../svgs/regular/pen-to-square.svg | 1 - .../svgs/regular/rectangle-list.svg | 1 - .../svgs/regular/rectangle-xmark.svg | 1 - .../svgs/regular/registered.svg | 1 - .../svgs/regular/share-from-square.svg | 1 - .../svgs/regular/snowflake.svg | 1 - .../svgs/regular/square-caret-down.svg | 1 - .../svgs/regular/square-caret-left.svg | 1 - .../svgs/regular/square-caret-right.svg | 1 - .../svgs/regular/square-caret-up.svg | 1 - .../svgs/regular/square-check.svg | 1 - .../svgs/regular/square-full.svg | 1 - .../svgs/regular/square-minus.svg | 1 - .../svgs/regular/square-plus.svg | 1 - .../fontawesome-free/svgs/regular/square.svg | 1 - .../svgs/regular/star-half-stroke.svg | 1 - .../svgs/regular/star-half.svg | 1 - .../fontawesome-free/svgs/regular/star.svg | 1 - .../fontawesome-free/svgs/regular/sun.svg | 1 - .../svgs/regular/thumbs-down.svg | 1 - .../svgs/regular/thumbs-up.svg | 1 - .../svgs/regular/trash-can.svg | 1 - .../fontawesome-free/svgs/regular/user.svg | 1 - .../svgs/regular/window-maximize.svg | 1 - .../svgs/regular/window-minimize.svg | 1 - .../svgs/regular/window-restore.svg | 1 - .../fontawesome-free/svgs/solid/0.svg | 1 - .../fontawesome-free/svgs/solid/1.svg | 1 - .../fontawesome-free/svgs/solid/2.svg | 1 - .../fontawesome-free/svgs/solid/3.svg | 1 - .../fontawesome-free/svgs/solid/4.svg | 1 - .../fontawesome-free/svgs/solid/5.svg | 1 - .../fontawesome-free/svgs/solid/6.svg | 1 - .../fontawesome-free/svgs/solid/7.svg | 1 - .../fontawesome-free/svgs/solid/8.svg | 1 - .../fontawesome-free/svgs/solid/9.svg | 1 - .../fontawesome-free/svgs/solid/a.svg | 1 - .../svgs/solid/address-book.svg | 1 - .../svgs/solid/address-card.svg | 1 - .../svgs/solid/align-center.svg | 1 - .../svgs/solid/align-justify.svg | 1 - .../svgs/solid/align-left.svg | 1 - .../svgs/solid/align-right.svg | 1 - .../svgs/solid/anchor-circle-check.svg | 1 - .../svgs/solid/anchor-circle-exclamation.svg | 1 - .../svgs/solid/anchor-circle-xmark.svg | 1 - .../svgs/solid/anchor-lock.svg | 1 - .../fontawesome-free/svgs/solid/anchor.svg | 1 - .../svgs/solid/angle-down.svg | 1 - .../svgs/solid/angle-left.svg | 1 - .../svgs/solid/angle-right.svg | 1 - .../fontawesome-free/svgs/solid/angle-up.svg | 1 - .../svgs/solid/angles-down.svg | 1 - .../svgs/solid/angles-left.svg | 1 - .../svgs/solid/angles-right.svg | 1 - .../fontawesome-free/svgs/solid/angles-up.svg | 1 - .../fontawesome-free/svgs/solid/ankh.svg | 1 - .../svgs/solid/apple-whole.svg | 1 - .../fontawesome-free/svgs/solid/archway.svg | 1 - .../svgs/solid/arrow-down-1-9.svg | 1 - .../svgs/solid/arrow-down-9-1.svg | 1 - .../svgs/solid/arrow-down-a-z.svg | 1 - .../svgs/solid/arrow-down-long.svg | 1 - .../svgs/solid/arrow-down-short-wide.svg | 1 - .../svgs/solid/arrow-down-up-across-line.svg | 1 - .../svgs/solid/arrow-down-up-lock.svg | 1 - .../svgs/solid/arrow-down-wide-short.svg | 1 - .../svgs/solid/arrow-down-z-a.svg | 1 - .../svgs/solid/arrow-down.svg | 1 - .../svgs/solid/arrow-left-long.svg | 1 - .../svgs/solid/arrow-left.svg | 1 - .../svgs/solid/arrow-pointer.svg | 1 - .../svgs/solid/arrow-right-arrow-left.svg | 1 - .../svgs/solid/arrow-right-from-bracket.svg | 1 - .../svgs/solid/arrow-right-long.svg | 1 - .../svgs/solid/arrow-right-to-bracket.svg | 1 - .../svgs/solid/arrow-right-to-city.svg | 1 - .../svgs/solid/arrow-right.svg | 1 - .../svgs/solid/arrow-rotate-left.svg | 1 - .../svgs/solid/arrow-rotate-right.svg | 1 - .../svgs/solid/arrow-trend-down.svg | 1 - .../svgs/solid/arrow-trend-up.svg | 1 - .../svgs/solid/arrow-turn-down.svg | 1 - .../svgs/solid/arrow-turn-up.svg | 1 - .../svgs/solid/arrow-up-1-9.svg | 1 - .../svgs/solid/arrow-up-9-1.svg | 1 - .../svgs/solid/arrow-up-a-z.svg | 1 - .../svgs/solid/arrow-up-from-bracket.svg | 1 - .../svgs/solid/arrow-up-from-ground-water.svg | 1 - .../svgs/solid/arrow-up-from-water-pump.svg | 1 - .../svgs/solid/arrow-up-long.svg | 1 - .../svgs/solid/arrow-up-right-dots.svg | 1 - .../svgs/solid/arrow-up-right-from-square.svg | 1 - .../svgs/solid/arrow-up-short-wide.svg | 1 - .../svgs/solid/arrow-up-wide-short.svg | 1 - .../svgs/solid/arrow-up-z-a.svg | 1 - .../fontawesome-free/svgs/solid/arrow-up.svg | 1 - .../svgs/solid/arrows-down-to-line.svg | 1 - .../svgs/solid/arrows-down-to-people.svg | 1 - .../svgs/solid/arrows-left-right-to-line.svg | 1 - .../svgs/solid/arrows-left-right.svg | 1 - .../svgs/solid/arrows-rotate.svg | 1 - .../svgs/solid/arrows-spin.svg | 1 - .../svgs/solid/arrows-split-up-and-left.svg | 1 - .../svgs/solid/arrows-to-circle.svg | 1 - .../svgs/solid/arrows-to-dot.svg | 1 - .../svgs/solid/arrows-to-eye.svg | 1 - .../svgs/solid/arrows-turn-right.svg | 1 - .../svgs/solid/arrows-turn-to-dots.svg | 1 - .../svgs/solid/arrows-up-down-left-right.svg | 1 - .../svgs/solid/arrows-up-down.svg | 1 - .../svgs/solid/arrows-up-to-line.svg | 1 - .../fontawesome-free/svgs/solid/asterisk.svg | 1 - .../fontawesome-free/svgs/solid/at.svg | 1 - .../fontawesome-free/svgs/solid/atom.svg | 1 - .../svgs/solid/audio-description.svg | 1 - .../svgs/solid/austral-sign.svg | 1 - .../fontawesome-free/svgs/solid/award.svg | 1 - .../fontawesome-free/svgs/solid/b.svg | 1 - .../svgs/solid/baby-carriage.svg | 1 - .../fontawesome-free/svgs/solid/baby.svg | 1 - .../svgs/solid/backward-fast.svg | 1 - .../svgs/solid/backward-step.svg | 1 - .../fontawesome-free/svgs/solid/backward.svg | 1 - .../fontawesome-free/svgs/solid/bacon.svg | 1 - .../fontawesome-free/svgs/solid/bacteria.svg | 1 - .../fontawesome-free/svgs/solid/bacterium.svg | 1 - .../svgs/solid/bag-shopping.svg | 1 - .../fontawesome-free/svgs/solid/bahai.svg | 1 - .../fontawesome-free/svgs/solid/baht-sign.svg | 1 - .../svgs/solid/ban-smoking.svg | 1 - .../fontawesome-free/svgs/solid/ban.svg | 1 - .../fontawesome-free/svgs/solid/bandage.svg | 1 - .../svgs/solid/bangladeshi-taka-sign.svg | 1 - .../fontawesome-free/svgs/solid/barcode.svg | 1 - .../svgs/solid/bars-progress.svg | 1 - .../svgs/solid/bars-staggered.svg | 1 - .../fontawesome-free/svgs/solid/bars.svg | 1 - .../svgs/solid/baseball-bat-ball.svg | 1 - .../fontawesome-free/svgs/solid/baseball.svg | 1 - .../svgs/solid/basket-shopping.svg | 1 - .../svgs/solid/basketball.svg | 1 - .../fontawesome-free/svgs/solid/bath.svg | 1 - .../svgs/solid/battery-empty.svg | 1 - .../svgs/solid/battery-full.svg | 1 - .../svgs/solid/battery-half.svg | 1 - .../svgs/solid/battery-quarter.svg | 1 - .../svgs/solid/battery-three-quarters.svg | 1 - .../fontawesome-free/svgs/solid/bed-pulse.svg | 1 - .../fontawesome-free/svgs/solid/bed.svg | 1 - .../svgs/solid/beer-mug-empty.svg | 1 - .../svgs/solid/bell-concierge.svg | 1 - .../svgs/solid/bell-slash.svg | 1 - .../fontawesome-free/svgs/solid/bell.svg | 1 - .../svgs/solid/bezier-curve.svg | 1 - .../fontawesome-free/svgs/solid/bicycle.svg | 1 - .../svgs/solid/binoculars.svg | 1 - .../fontawesome-free/svgs/solid/biohazard.svg | 1 - .../svgs/solid/bitcoin-sign.svg | 1 - .../svgs/solid/blender-phone.svg | 1 - .../fontawesome-free/svgs/solid/blender.svg | 1 - .../fontawesome-free/svgs/solid/blog.svg | 1 - .../fontawesome-free/svgs/solid/bold.svg | 1 - .../svgs/solid/bolt-lightning.svg | 1 - .../fontawesome-free/svgs/solid/bolt.svg | 1 - .../fontawesome-free/svgs/solid/bomb.svg | 1 - .../fontawesome-free/svgs/solid/bone.svg | 1 - .../fontawesome-free/svgs/solid/bong.svg | 1 - .../svgs/solid/book-atlas.svg | 1 - .../svgs/solid/book-bible.svg | 1 - .../svgs/solid/book-bookmark.svg | 1 - .../svgs/solid/book-journal-whills.svg | 1 - .../svgs/solid/book-medical.svg | 1 - .../svgs/solid/book-open-reader.svg | 1 - .../fontawesome-free/svgs/solid/book-open.svg | 1 - .../svgs/solid/book-quran.svg | 1 - .../svgs/solid/book-skull.svg | 1 - .../svgs/solid/book-tanakh.svg | 1 - .../fontawesome-free/svgs/solid/book.svg | 1 - .../fontawesome-free/svgs/solid/bookmark.svg | 1 - .../svgs/solid/border-all.svg | 1 - .../svgs/solid/border-none.svg | 1 - .../svgs/solid/border-top-left.svg | 1 - .../fontawesome-free/svgs/solid/bore-hole.svg | 1 - .../svgs/solid/bottle-droplet.svg | 1 - .../svgs/solid/bottle-water.svg | 1 - .../fontawesome-free/svgs/solid/bowl-food.svg | 1 - .../fontawesome-free/svgs/solid/bowl-rice.svg | 1 - .../svgs/solid/bowling-ball.svg | 1 - .../svgs/solid/box-archive.svg | 1 - .../fontawesome-free/svgs/solid/box-open.svg | 1 - .../svgs/solid/box-tissue.svg | 1 - .../fontawesome-free/svgs/solid/box.svg | 1 - .../svgs/solid/boxes-packing.svg | 1 - .../svgs/solid/boxes-stacked.svg | 1 - .../fontawesome-free/svgs/solid/braille.svg | 1 - .../fontawesome-free/svgs/solid/brain.svg | 1 - .../svgs/solid/brazilian-real-sign.svg | 1 - .../svgs/solid/bread-slice.svg | 1 - .../svgs/solid/bridge-circle-check.svg | 1 - .../svgs/solid/bridge-circle-exclamation.svg | 1 - .../svgs/solid/bridge-circle-xmark.svg | 1 - .../svgs/solid/bridge-lock.svg | 1 - .../svgs/solid/bridge-water.svg | 1 - .../fontawesome-free/svgs/solid/bridge.svg | 1 - .../svgs/solid/briefcase-medical.svg | 1 - .../fontawesome-free/svgs/solid/briefcase.svg | 1 - .../svgs/solid/broom-ball.svg | 1 - .../fontawesome-free/svgs/solid/broom.svg | 1 - .../fontawesome-free/svgs/solid/brush.svg | 1 - .../fontawesome-free/svgs/solid/bucket.svg | 1 - .../fontawesome-free/svgs/solid/bug-slash.svg | 1 - .../fontawesome-free/svgs/solid/bug.svg | 1 - .../fontawesome-free/svgs/solid/bugs.svg | 1 - .../solid/building-circle-arrow-right.svg | 1 - .../svgs/solid/building-circle-check.svg | 1 - .../solid/building-circle-exclamation.svg | 1 - .../svgs/solid/building-circle-xmark.svg | 1 - .../svgs/solid/building-columns.svg | 1 - .../svgs/solid/building-flag.svg | 1 - .../svgs/solid/building-lock.svg | 1 - .../svgs/solid/building-ngo.svg | 1 - .../svgs/solid/building-shield.svg | 1 - .../svgs/solid/building-un.svg | 1 - .../svgs/solid/building-user.svg | 1 - .../svgs/solid/building-wheat.svg | 1 - .../fontawesome-free/svgs/solid/building.svg | 1 - .../fontawesome-free/svgs/solid/bullhorn.svg | 1 - .../fontawesome-free/svgs/solid/bullseye.svg | 1 - .../fontawesome-free/svgs/solid/burger.svg | 1 - .../fontawesome-free/svgs/solid/burst.svg | 1 - .../svgs/solid/bus-simple.svg | 1 - .../fontawesome-free/svgs/solid/bus.svg | 1 - .../svgs/solid/business-time.svg | 1 - .../fontawesome-free/svgs/solid/c.svg | 1 - .../fontawesome-free/svgs/solid/cable-car.svg | 1 - .../svgs/solid/cake-candles.svg | 1 - .../svgs/solid/calculator.svg | 1 - .../svgs/solid/calendar-check.svg | 1 - .../svgs/solid/calendar-day.svg | 1 - .../svgs/solid/calendar-days.svg | 1 - .../svgs/solid/calendar-minus.svg | 1 - .../svgs/solid/calendar-plus.svg | 1 - .../svgs/solid/calendar-week.svg | 1 - .../svgs/solid/calendar-xmark.svg | 1 - .../fontawesome-free/svgs/solid/calendar.svg | 1 - .../svgs/solid/camera-retro.svg | 1 - .../svgs/solid/camera-rotate.svg | 1 - .../fontawesome-free/svgs/solid/camera.svg | 1 - .../svgs/solid/campground.svg | 1 - .../svgs/solid/candy-cane.svg | 1 - .../fontawesome-free/svgs/solid/cannabis.svg | 1 - .../fontawesome-free/svgs/solid/capsules.svg | 1 - .../svgs/solid/car-battery.svg | 1 - .../fontawesome-free/svgs/solid/car-burst.svg | 1 - .../fontawesome-free/svgs/solid/car-on.svg | 1 - .../fontawesome-free/svgs/solid/car-rear.svg | 1 - .../fontawesome-free/svgs/solid/car-side.svg | 1 - .../svgs/solid/car-tunnel.svg | 1 - .../fontawesome-free/svgs/solid/car.svg | 1 - .../fontawesome-free/svgs/solid/caravan.svg | 1 - .../svgs/solid/caret-down.svg | 1 - .../svgs/solid/caret-left.svg | 1 - .../svgs/solid/caret-right.svg | 1 - .../fontawesome-free/svgs/solid/caret-up.svg | 1 - .../fontawesome-free/svgs/solid/carrot.svg | 1 - .../svgs/solid/cart-arrow-down.svg | 1 - .../svgs/solid/cart-flatbed-suitcase.svg | 1 - .../svgs/solid/cart-flatbed.svg | 1 - .../fontawesome-free/svgs/solid/cart-plus.svg | 1 - .../svgs/solid/cart-shopping.svg | 1 - .../svgs/solid/cash-register.svg | 1 - .../fontawesome-free/svgs/solid/cat.svg | 1 - .../fontawesome-free/svgs/solid/cedi-sign.svg | 1 - .../fontawesome-free/svgs/solid/cent-sign.svg | 1 - .../svgs/solid/certificate.svg | 1 - .../fontawesome-free/svgs/solid/chair.svg | 1 - .../svgs/solid/chalkboard-user.svg | 1 - .../svgs/solid/chalkboard.svg | 1 - .../svgs/solid/champagne-glasses.svg | 1 - .../svgs/solid/charging-station.svg | 1 - .../svgs/solid/chart-area.svg | 1 - .../fontawesome-free/svgs/solid/chart-bar.svg | 1 - .../svgs/solid/chart-column.svg | 1 - .../svgs/solid/chart-diagram.svg | 1 - .../svgs/solid/chart-gantt.svg | 1 - .../svgs/solid/chart-line.svg | 1 - .../fontawesome-free/svgs/solid/chart-pie.svg | 1 - .../svgs/solid/chart-simple.svg | 1 - .../svgs/solid/check-double.svg | 1 - .../svgs/solid/check-to-slot.svg | 1 - .../fontawesome-free/svgs/solid/check.svg | 1 - .../fontawesome-free/svgs/solid/cheese.svg | 1 - .../svgs/solid/chess-bishop.svg | 1 - .../svgs/solid/chess-board.svg | 1 - .../svgs/solid/chess-king.svg | 1 - .../svgs/solid/chess-knight.svg | 1 - .../svgs/solid/chess-pawn.svg | 1 - .../svgs/solid/chess-queen.svg | 1 - .../svgs/solid/chess-rook.svg | 1 - .../fontawesome-free/svgs/solid/chess.svg | 1 - .../svgs/solid/chevron-down.svg | 1 - .../svgs/solid/chevron-left.svg | 1 - .../svgs/solid/chevron-right.svg | 1 - .../svgs/solid/chevron-up.svg | 1 - .../svgs/solid/child-combatant.svg | 1 - .../svgs/solid/child-dress.svg | 1 - .../svgs/solid/child-reaching.svg | 1 - .../fontawesome-free/svgs/solid/child.svg | 1 - .../fontawesome-free/svgs/solid/children.svg | 1 - .../fontawesome-free/svgs/solid/church.svg | 1 - .../svgs/solid/circle-arrow-down.svg | 1 - .../svgs/solid/circle-arrow-left.svg | 1 - .../svgs/solid/circle-arrow-right.svg | 1 - .../svgs/solid/circle-arrow-up.svg | 1 - .../svgs/solid/circle-check.svg | 1 - .../svgs/solid/circle-chevron-down.svg | 1 - .../svgs/solid/circle-chevron-left.svg | 1 - .../svgs/solid/circle-chevron-right.svg | 1 - .../svgs/solid/circle-chevron-up.svg | 1 - .../svgs/solid/circle-dollar-to-slot.svg | 1 - .../svgs/solid/circle-dot.svg | 1 - .../svgs/solid/circle-down.svg | 1 - .../svgs/solid/circle-exclamation.svg | 1 - .../fontawesome-free/svgs/solid/circle-h.svg | 1 - .../svgs/solid/circle-half-stroke.svg | 1 - .../svgs/solid/circle-info.svg | 1 - .../svgs/solid/circle-left.svg | 1 - .../svgs/solid/circle-minus.svg | 1 - .../svgs/solid/circle-nodes.svg | 1 - .../svgs/solid/circle-notch.svg | 1 - .../svgs/solid/circle-pause.svg | 1 - .../svgs/solid/circle-play.svg | 1 - .../svgs/solid/circle-plus.svg | 1 - .../svgs/solid/circle-question.svg | 1 - .../svgs/solid/circle-radiation.svg | 1 - .../svgs/solid/circle-right.svg | 1 - .../svgs/solid/circle-stop.svg | 1 - .../fontawesome-free/svgs/solid/circle-up.svg | 1 - .../svgs/solid/circle-user.svg | 1 - .../svgs/solid/circle-xmark.svg | 1 - .../fontawesome-free/svgs/solid/circle.svg | 1 - .../fontawesome-free/svgs/solid/city.svg | 1 - .../svgs/solid/clapperboard.svg | 1 - .../svgs/solid/clipboard-check.svg | 1 - .../svgs/solid/clipboard-list.svg | 1 - .../svgs/solid/clipboard-question.svg | 1 - .../svgs/solid/clipboard-user.svg | 1 - .../fontawesome-free/svgs/solid/clipboard.svg | 1 - .../svgs/solid/clock-rotate-left.svg | 1 - .../fontawesome-free/svgs/solid/clock.svg | 1 - .../fontawesome-free/svgs/solid/clone.svg | 1 - .../svgs/solid/closed-captioning.svg | 1 - .../svgs/solid/cloud-arrow-down.svg | 1 - .../svgs/solid/cloud-arrow-up.svg | 1 - .../svgs/solid/cloud-bolt.svg | 1 - .../svgs/solid/cloud-meatball.svg | 1 - .../svgs/solid/cloud-moon-rain.svg | 1 - .../svgs/solid/cloud-moon.svg | 1 - .../svgs/solid/cloud-rain.svg | 1 - .../svgs/solid/cloud-showers-heavy.svg | 1 - .../svgs/solid/cloud-showers-water.svg | 1 - .../svgs/solid/cloud-sun-rain.svg | 1 - .../fontawesome-free/svgs/solid/cloud-sun.svg | 1 - .../fontawesome-free/svgs/solid/cloud.svg | 1 - .../fontawesome-free/svgs/solid/clover.svg | 1 - .../svgs/solid/code-branch.svg | 1 - .../svgs/solid/code-commit.svg | 1 - .../svgs/solid/code-compare.svg | 1 - .../fontawesome-free/svgs/solid/code-fork.svg | 1 - .../svgs/solid/code-merge.svg | 1 - .../svgs/solid/code-pull-request.svg | 1 - .../fontawesome-free/svgs/solid/code.svg | 1 - .../fontawesome-free/svgs/solid/coins.svg | 1 - .../svgs/solid/colon-sign.svg | 1 - .../svgs/solid/comment-dollar.svg | 1 - .../svgs/solid/comment-dots.svg | 1 - .../svgs/solid/comment-medical.svg | 1 - .../svgs/solid/comment-nodes.svg | 1 - .../svgs/solid/comment-slash.svg | 1 - .../svgs/solid/comment-sms.svg | 1 - .../fontawesome-free/svgs/solid/comment.svg | 1 - .../svgs/solid/comments-dollar.svg | 1 - .../fontawesome-free/svgs/solid/comments.svg | 1 - .../svgs/solid/compact-disc.svg | 1 - .../svgs/solid/compass-drafting.svg | 1 - .../fontawesome-free/svgs/solid/compass.svg | 1 - .../fontawesome-free/svgs/solid/compress.svg | 1 - .../svgs/solid/computer-mouse.svg | 1 - .../fontawesome-free/svgs/solid/computer.svg | 1 - .../svgs/solid/cookie-bite.svg | 1 - .../fontawesome-free/svgs/solid/cookie.svg | 1 - .../fontawesome-free/svgs/solid/copy.svg | 1 - .../fontawesome-free/svgs/solid/copyright.svg | 1 - .../fontawesome-free/svgs/solid/couch.svg | 1 - .../fontawesome-free/svgs/solid/cow.svg | 1 - .../svgs/solid/credit-card.svg | 1 - .../svgs/solid/crop-simple.svg | 1 - .../fontawesome-free/svgs/solid/crop.svg | 1 - .../fontawesome-free/svgs/solid/cross.svg | 1 - .../svgs/solid/crosshairs.svg | 1 - .../fontawesome-free/svgs/solid/crow.svg | 1 - .../fontawesome-free/svgs/solid/crown.svg | 1 - .../fontawesome-free/svgs/solid/crutch.svg | 1 - .../svgs/solid/cruzeiro-sign.svg | 1 - .../fontawesome-free/svgs/solid/cube.svg | 1 - .../svgs/solid/cubes-stacked.svg | 1 - .../fontawesome-free/svgs/solid/cubes.svg | 1 - .../fontawesome-free/svgs/solid/d.svg | 1 - .../fontawesome-free/svgs/solid/database.svg | 1 - .../svgs/solid/delete-left.svg | 1 - .../fontawesome-free/svgs/solid/democrat.svg | 1 - .../fontawesome-free/svgs/solid/desktop.svg | 1 - .../svgs/solid/dharmachakra.svg | 1 - .../svgs/solid/diagram-next.svg | 1 - .../svgs/solid/diagram-predecessor.svg | 1 - .../svgs/solid/diagram-project.svg | 1 - .../svgs/solid/diagram-successor.svg | 1 - .../svgs/solid/diamond-turn-right.svg | 1 - .../fontawesome-free/svgs/solid/diamond.svg | 1 - .../fontawesome-free/svgs/solid/dice-d20.svg | 1 - .../fontawesome-free/svgs/solid/dice-d6.svg | 1 - .../fontawesome-free/svgs/solid/dice-five.svg | 1 - .../fontawesome-free/svgs/solid/dice-four.svg | 1 - .../fontawesome-free/svgs/solid/dice-one.svg | 1 - .../fontawesome-free/svgs/solid/dice-six.svg | 1 - .../svgs/solid/dice-three.svg | 1 - .../fontawesome-free/svgs/solid/dice-two.svg | 1 - .../fontawesome-free/svgs/solid/dice.svg | 1 - .../fontawesome-free/svgs/solid/disease.svg | 1 - .../fontawesome-free/svgs/solid/display.svg | 1 - .../fontawesome-free/svgs/solid/divide.svg | 1 - .../fontawesome-free/svgs/solid/dna.svg | 1 - .../fontawesome-free/svgs/solid/dog.svg | 1 - .../svgs/solid/dollar-sign.svg | 1 - .../fontawesome-free/svgs/solid/dolly.svg | 1 - .../fontawesome-free/svgs/solid/dong-sign.svg | 1 - .../svgs/solid/door-closed.svg | 1 - .../fontawesome-free/svgs/solid/door-open.svg | 1 - .../fontawesome-free/svgs/solid/dove.svg | 1 - .../down-left-and-up-right-to-center.svg | 1 - .../fontawesome-free/svgs/solid/down-long.svg | 1 - .../fontawesome-free/svgs/solid/download.svg | 1 - .../fontawesome-free/svgs/solid/dragon.svg | 1 - .../svgs/solid/draw-polygon.svg | 1 - .../svgs/solid/droplet-slash.svg | 1 - .../fontawesome-free/svgs/solid/droplet.svg | 1 - .../svgs/solid/drum-steelpan.svg | 1 - .../fontawesome-free/svgs/solid/drum.svg | 1 - .../svgs/solid/drumstick-bite.svg | 1 - .../fontawesome-free/svgs/solid/dumbbell.svg | 1 - .../svgs/solid/dumpster-fire.svg | 1 - .../fontawesome-free/svgs/solid/dumpster.svg | 1 - .../fontawesome-free/svgs/solid/dungeon.svg | 1 - .../fontawesome-free/svgs/solid/e.svg | 1 - .../fontawesome-free/svgs/solid/ear-deaf.svg | 1 - .../svgs/solid/ear-listen.svg | 1 - .../svgs/solid/earth-africa.svg | 1 - .../svgs/solid/earth-americas.svg | 1 - .../svgs/solid/earth-asia.svg | 1 - .../svgs/solid/earth-europe.svg | 1 - .../svgs/solid/earth-oceania.svg | 1 - .../fontawesome-free/svgs/solid/egg.svg | 1 - .../fontawesome-free/svgs/solid/eject.svg | 1 - .../fontawesome-free/svgs/solid/elevator.svg | 1 - .../svgs/solid/ellipsis-vertical.svg | 1 - .../fontawesome-free/svgs/solid/ellipsis.svg | 1 - .../svgs/solid/envelope-circle-check.svg | 1 - .../svgs/solid/envelope-open-text.svg | 1 - .../svgs/solid/envelope-open.svg | 1 - .../fontawesome-free/svgs/solid/envelope.svg | 1 - .../svgs/solid/envelopes-bulk.svg | 1 - .../fontawesome-free/svgs/solid/equals.svg | 1 - .../fontawesome-free/svgs/solid/eraser.svg | 1 - .../fontawesome-free/svgs/solid/ethernet.svg | 1 - .../fontawesome-free/svgs/solid/euro-sign.svg | 1 - .../svgs/solid/exclamation.svg | 1 - .../fontawesome-free/svgs/solid/expand.svg | 1 - .../fontawesome-free/svgs/solid/explosion.svg | 1 - .../svgs/solid/eye-dropper.svg | 1 - .../svgs/solid/eye-low-vision.svg | 1 - .../fontawesome-free/svgs/solid/eye-slash.svg | 1 - .../fontawesome-free/svgs/solid/eye.svg | 1 - .../fontawesome-free/svgs/solid/f.svg | 1 - .../svgs/solid/face-angry.svg | 1 - .../svgs/solid/face-dizzy.svg | 1 - .../svgs/solid/face-flushed.svg | 1 - .../svgs/solid/face-frown-open.svg | 1 - .../svgs/solid/face-frown.svg | 1 - .../svgs/solid/face-grimace.svg | 1 - .../svgs/solid/face-grin-beam-sweat.svg | 1 - .../svgs/solid/face-grin-beam.svg | 1 - .../svgs/solid/face-grin-hearts.svg | 1 - .../svgs/solid/face-grin-squint-tears.svg | 1 - .../svgs/solid/face-grin-squint.svg | 1 - .../svgs/solid/face-grin-stars.svg | 1 - .../svgs/solid/face-grin-tears.svg | 1 - .../svgs/solid/face-grin-tongue-squint.svg | 1 - .../svgs/solid/face-grin-tongue-wink.svg | 1 - .../svgs/solid/face-grin-tongue.svg | 1 - .../svgs/solid/face-grin-wide.svg | 1 - .../svgs/solid/face-grin-wink.svg | 1 - .../fontawesome-free/svgs/solid/face-grin.svg | 1 - .../svgs/solid/face-kiss-beam.svg | 1 - .../svgs/solid/face-kiss-wink-heart.svg | 1 - .../fontawesome-free/svgs/solid/face-kiss.svg | 1 - .../svgs/solid/face-laugh-beam.svg | 1 - .../svgs/solid/face-laugh-squint.svg | 1 - .../svgs/solid/face-laugh-wink.svg | 1 - .../svgs/solid/face-laugh.svg | 1 - .../svgs/solid/face-meh-blank.svg | 1 - .../fontawesome-free/svgs/solid/face-meh.svg | 1 - .../svgs/solid/face-rolling-eyes.svg | 1 - .../svgs/solid/face-sad-cry.svg | 1 - .../svgs/solid/face-sad-tear.svg | 1 - .../svgs/solid/face-smile-beam.svg | 1 - .../svgs/solid/face-smile-wink.svg | 1 - .../svgs/solid/face-smile.svg | 1 - .../svgs/solid/face-surprise.svg | 1 - .../svgs/solid/face-tired.svg | 1 - .../fontawesome-free/svgs/solid/fan.svg | 1 - .../svgs/solid/faucet-drip.svg | 1 - .../fontawesome-free/svgs/solid/faucet.svg | 1 - .../fontawesome-free/svgs/solid/fax.svg | 1 - .../svgs/solid/feather-pointed.svg | 1 - .../fontawesome-free/svgs/solid/feather.svg | 1 - .../fontawesome-free/svgs/solid/ferry.svg | 1 - .../svgs/solid/file-arrow-down.svg | 1 - .../svgs/solid/file-arrow-up.svg | 1 - .../svgs/solid/file-audio.svg | 1 - .../svgs/solid/file-circle-check.svg | 1 - .../svgs/solid/file-circle-exclamation.svg | 1 - .../svgs/solid/file-circle-minus.svg | 1 - .../svgs/solid/file-circle-plus.svg | 1 - .../svgs/solid/file-circle-question.svg | 1 - .../svgs/solid/file-circle-xmark.svg | 1 - .../fontawesome-free/svgs/solid/file-code.svg | 1 - .../svgs/solid/file-contract.svg | 1 - .../fontawesome-free/svgs/solid/file-csv.svg | 1 - .../svgs/solid/file-excel.svg | 1 - .../svgs/solid/file-export.svg | 1 - .../svgs/solid/file-fragment.svg | 1 - .../svgs/solid/file-half-dashed.svg | 1 - .../svgs/solid/file-image.svg | 1 - .../svgs/solid/file-import.svg | 1 - .../svgs/solid/file-invoice-dollar.svg | 1 - .../svgs/solid/file-invoice.svg | 1 - .../svgs/solid/file-lines.svg | 1 - .../svgs/solid/file-medical.svg | 1 - .../fontawesome-free/svgs/solid/file-pdf.svg | 1 - .../fontawesome-free/svgs/solid/file-pen.svg | 1 - .../svgs/solid/file-powerpoint.svg | 1 - .../svgs/solid/file-prescription.svg | 1 - .../svgs/solid/file-shield.svg | 1 - .../svgs/solid/file-signature.svg | 1 - .../svgs/solid/file-video.svg | 1 - .../svgs/solid/file-waveform.svg | 1 - .../fontawesome-free/svgs/solid/file-word.svg | 1 - .../svgs/solid/file-zipper.svg | 1 - .../fontawesome-free/svgs/solid/file.svg | 1 - .../fontawesome-free/svgs/solid/fill-drip.svg | 1 - .../fontawesome-free/svgs/solid/fill.svg | 1 - .../fontawesome-free/svgs/solid/film.svg | 1 - .../svgs/solid/filter-circle-dollar.svg | 1 - .../svgs/solid/filter-circle-xmark.svg | 1 - .../fontawesome-free/svgs/solid/filter.svg | 1 - .../svgs/solid/fingerprint.svg | 1 - .../svgs/solid/fire-burner.svg | 1 - .../svgs/solid/fire-extinguisher.svg | 1 - .../svgs/solid/fire-flame-curved.svg | 1 - .../svgs/solid/fire-flame-simple.svg | 1 - .../fontawesome-free/svgs/solid/fire.svg | 1 - .../fontawesome-free/svgs/solid/fish-fins.svg | 1 - .../fontawesome-free/svgs/solid/fish.svg | 1 - .../svgs/solid/flag-checkered.svg | 1 - .../fontawesome-free/svgs/solid/flag-usa.svg | 1 - .../fontawesome-free/svgs/solid/flag.svg | 1 - .../svgs/solid/flask-vial.svg | 1 - .../fontawesome-free/svgs/solid/flask.svg | 1 - .../svgs/solid/floppy-disk.svg | 1 - .../svgs/solid/florin-sign.svg | 1 - .../svgs/solid/folder-closed.svg | 1 - .../svgs/solid/folder-minus.svg | 1 - .../svgs/solid/folder-open.svg | 1 - .../svgs/solid/folder-plus.svg | 1 - .../svgs/solid/folder-tree.svg | 1 - .../fontawesome-free/svgs/solid/folder.svg | 1 - .../svgs/solid/font-awesome.svg | 1 - .../fontawesome-free/svgs/solid/font.svg | 1 - .../fontawesome-free/svgs/solid/football.svg | 1 - .../svgs/solid/forward-fast.svg | 1 - .../svgs/solid/forward-step.svg | 1 - .../fontawesome-free/svgs/solid/forward.svg | 1 - .../svgs/solid/franc-sign.svg | 1 - .../fontawesome-free/svgs/solid/frog.svg | 1 - .../fontawesome-free/svgs/solid/futbol.svg | 1 - .../fontawesome-free/svgs/solid/g.svg | 1 - .../fontawesome-free/svgs/solid/gamepad.svg | 1 - .../fontawesome-free/svgs/solid/gas-pump.svg | 1 - .../svgs/solid/gauge-high.svg | 1 - .../svgs/solid/gauge-simple-high.svg | 1 - .../svgs/solid/gauge-simple.svg | 1 - .../fontawesome-free/svgs/solid/gauge.svg | 1 - .../fontawesome-free/svgs/solid/gavel.svg | 1 - .../fontawesome-free/svgs/solid/gear.svg | 1 - .../fontawesome-free/svgs/solid/gears.svg | 1 - .../fontawesome-free/svgs/solid/gem.svg | 1 - .../svgs/solid/genderless.svg | 1 - .../fontawesome-free/svgs/solid/ghost.svg | 1 - .../fontawesome-free/svgs/solid/gift.svg | 1 - .../fontawesome-free/svgs/solid/gifts.svg | 1 - .../svgs/solid/glass-water-droplet.svg | 1 - .../svgs/solid/glass-water.svg | 1 - .../fontawesome-free/svgs/solid/glasses.svg | 1 - .../fontawesome-free/svgs/solid/globe.svg | 1 - .../svgs/solid/golf-ball-tee.svg | 1 - .../fontawesome-free/svgs/solid/gopuram.svg | 1 - .../svgs/solid/graduation-cap.svg | 1 - .../svgs/solid/greater-than-equal.svg | 1 - .../svgs/solid/greater-than.svg | 1 - .../svgs/solid/grip-lines-vertical.svg | 1 - .../svgs/solid/grip-lines.svg | 1 - .../svgs/solid/grip-vertical.svg | 1 - .../fontawesome-free/svgs/solid/grip.svg | 1 - .../svgs/solid/group-arrows-rotate.svg | 1 - .../svgs/solid/guarani-sign.svg | 1 - .../fontawesome-free/svgs/solid/guitar.svg | 1 - .../fontawesome-free/svgs/solid/gun.svg | 1 - .../fontawesome-free/svgs/solid/h.svg | 1 - .../fontawesome-free/svgs/solid/hammer.svg | 1 - .../fontawesome-free/svgs/solid/hamsa.svg | 1 - .../svgs/solid/hand-back-fist.svg | 1 - .../fontawesome-free/svgs/solid/hand-dots.svg | 1 - .../fontawesome-free/svgs/solid/hand-fist.svg | 1 - .../svgs/solid/hand-holding-dollar.svg | 1 - .../svgs/solid/hand-holding-droplet.svg | 1 - .../svgs/solid/hand-holding-hand.svg | 1 - .../svgs/solid/hand-holding-heart.svg | 1 - .../svgs/solid/hand-holding-medical.svg | 1 - .../svgs/solid/hand-holding.svg | 1 - .../svgs/solid/hand-lizard.svg | 1 - .../svgs/solid/hand-middle-finger.svg | 1 - .../svgs/solid/hand-peace.svg | 1 - .../svgs/solid/hand-point-down.svg | 1 - .../svgs/solid/hand-point-left.svg | 1 - .../svgs/solid/hand-point-right.svg | 1 - .../svgs/solid/hand-point-up.svg | 1 - .../svgs/solid/hand-pointer.svg | 1 - .../svgs/solid/hand-scissors.svg | 1 - .../svgs/solid/hand-sparkles.svg | 1 - .../svgs/solid/hand-spock.svg | 1 - .../fontawesome-free/svgs/solid/hand.svg | 1 - .../fontawesome-free/svgs/solid/handcuffs.svg | 1 - .../svgs/solid/hands-asl-interpreting.svg | 1 - .../svgs/solid/hands-bound.svg | 1 - .../svgs/solid/hands-bubbles.svg | 1 - .../svgs/solid/hands-clapping.svg | 1 - .../svgs/solid/hands-holding-child.svg | 1 - .../svgs/solid/hands-holding-circle.svg | 1 - .../svgs/solid/hands-holding.svg | 1 - .../svgs/solid/hands-praying.svg | 1 - .../fontawesome-free/svgs/solid/hands.svg | 1 - .../svgs/solid/handshake-angle.svg | 1 - .../svgs/solid/handshake-simple-slash.svg | 1 - .../svgs/solid/handshake-simple.svg | 1 - .../svgs/solid/handshake-slash.svg | 1 - .../fontawesome-free/svgs/solid/handshake.svg | 1 - .../fontawesome-free/svgs/solid/hanukiah.svg | 1 - .../svgs/solid/hard-drive.svg | 1 - .../fontawesome-free/svgs/solid/hashtag.svg | 1 - .../svgs/solid/hat-cowboy-side.svg | 1 - .../svgs/solid/hat-cowboy.svg | 1 - .../svgs/solid/hat-wizard.svg | 1 - .../svgs/solid/head-side-cough-slash.svg | 1 - .../svgs/solid/head-side-cough.svg | 1 - .../svgs/solid/head-side-mask.svg | 1 - .../svgs/solid/head-side-virus.svg | 1 - .../fontawesome-free/svgs/solid/heading.svg | 1 - .../svgs/solid/headphones-simple.svg | 1 - .../svgs/solid/headphones.svg | 1 - .../fontawesome-free/svgs/solid/headset.svg | 1 - .../svgs/solid/heart-circle-bolt.svg | 1 - .../svgs/solid/heart-circle-check.svg | 1 - .../svgs/solid/heart-circle-exclamation.svg | 1 - .../svgs/solid/heart-circle-minus.svg | 1 - .../svgs/solid/heart-circle-plus.svg | 1 - .../svgs/solid/heart-circle-xmark.svg | 1 - .../svgs/solid/heart-crack.svg | 1 - .../svgs/solid/heart-pulse.svg | 1 - .../fontawesome-free/svgs/solid/heart.svg | 1 - .../svgs/solid/helicopter-symbol.svg | 1 - .../svgs/solid/helicopter.svg | 1 - .../svgs/solid/helmet-safety.svg | 1 - .../fontawesome-free/svgs/solid/helmet-un.svg | 1 - .../svgs/solid/hexagon-nodes-bolt.svg | 1 - .../svgs/solid/hexagon-nodes.svg | 1 - .../svgs/solid/highlighter.svg | 1 - .../svgs/solid/hill-avalanche.svg | 1 - .../svgs/solid/hill-rockslide.svg | 1 - .../fontawesome-free/svgs/solid/hippo.svg | 1 - .../svgs/solid/hockey-puck.svg | 1 - .../svgs/solid/holly-berry.svg | 1 - .../svgs/solid/horse-head.svg | 1 - .../fontawesome-free/svgs/solid/horse.svg | 1 - .../svgs/solid/hospital-user.svg | 1 - .../fontawesome-free/svgs/solid/hospital.svg | 1 - .../svgs/solid/hot-tub-person.svg | 1 - .../fontawesome-free/svgs/solid/hotdog.svg | 1 - .../fontawesome-free/svgs/solid/hotel.svg | 1 - .../svgs/solid/hourglass-end.svg | 1 - .../svgs/solid/hourglass-half.svg | 1 - .../svgs/solid/hourglass-start.svg | 1 - .../fontawesome-free/svgs/solid/hourglass.svg | 1 - .../svgs/solid/house-chimney-crack.svg | 1 - .../svgs/solid/house-chimney-medical.svg | 1 - .../svgs/solid/house-chimney-user.svg | 1 - .../svgs/solid/house-chimney-window.svg | 1 - .../svgs/solid/house-chimney.svg | 1 - .../svgs/solid/house-circle-check.svg | 1 - .../svgs/solid/house-circle-exclamation.svg | 1 - .../svgs/solid/house-circle-xmark.svg | 1 - .../svgs/solid/house-crack.svg | 1 - .../svgs/solid/house-fire.svg | 1 - .../svgs/solid/house-flag.svg | 1 - .../house-flood-water-circle-arrow-right.svg | 1 - .../svgs/solid/house-flood-water.svg | 1 - .../svgs/solid/house-laptop.svg | 1 - .../svgs/solid/house-lock.svg | 1 - .../svgs/solid/house-medical-circle-check.svg | 1 - .../house-medical-circle-exclamation.svg | 1 - .../svgs/solid/house-medical-circle-xmark.svg | 1 - .../svgs/solid/house-medical-flag.svg | 1 - .../svgs/solid/house-medical.svg | 1 - .../svgs/solid/house-signal.svg | 1 - .../svgs/solid/house-tsunami.svg | 1 - .../svgs/solid/house-user.svg | 1 - .../fontawesome-free/svgs/solid/house.svg | 1 - .../svgs/solid/hryvnia-sign.svg | 1 - .../fontawesome-free/svgs/solid/hurricane.svg | 1 - .../fontawesome-free/svgs/solid/i-cursor.svg | 1 - .../fontawesome-free/svgs/solid/i.svg | 1 - .../fontawesome-free/svgs/solid/ice-cream.svg | 1 - .../fontawesome-free/svgs/solid/icicles.svg | 1 - .../fontawesome-free/svgs/solid/icons.svg | 1 - .../fontawesome-free/svgs/solid/id-badge.svg | 1 - .../svgs/solid/id-card-clip.svg | 1 - .../fontawesome-free/svgs/solid/id-card.svg | 1 - .../fontawesome-free/svgs/solid/igloo.svg | 1 - .../svgs/solid/image-portrait.svg | 1 - .../fontawesome-free/svgs/solid/image.svg | 1 - .../fontawesome-free/svgs/solid/images.svg | 1 - .../fontawesome-free/svgs/solid/inbox.svg | 1 - .../fontawesome-free/svgs/solid/indent.svg | 1 - .../svgs/solid/indian-rupee-sign.svg | 1 - .../fontawesome-free/svgs/solid/industry.svg | 1 - .../fontawesome-free/svgs/solid/infinity.svg | 1 - .../fontawesome-free/svgs/solid/info.svg | 1 - .../fontawesome-free/svgs/solid/italic.svg | 1 - .../fontawesome-free/svgs/solid/j.svg | 1 - .../fontawesome-free/svgs/solid/jar-wheat.svg | 1 - .../fontawesome-free/svgs/solid/jar.svg | 1 - .../fontawesome-free/svgs/solid/jedi.svg | 1 - .../svgs/solid/jet-fighter-up.svg | 1 - .../svgs/solid/jet-fighter.svg | 1 - .../fontawesome-free/svgs/solid/joint.svg | 1 - .../svgs/solid/jug-detergent.svg | 1 - .../fontawesome-free/svgs/solid/k.svg | 1 - .../fontawesome-free/svgs/solid/kaaba.svg | 1 - .../fontawesome-free/svgs/solid/key.svg | 1 - .../fontawesome-free/svgs/solid/keyboard.svg | 1 - .../fontawesome-free/svgs/solid/khanda.svg | 1 - .../fontawesome-free/svgs/solid/kip-sign.svg | 1 - .../svgs/solid/kit-medical.svg | 1 - .../svgs/solid/kitchen-set.svg | 1 - .../fontawesome-free/svgs/solid/kiwi-bird.svg | 1 - .../fontawesome-free/svgs/solid/l.svg | 1 - .../svgs/solid/land-mine-on.svg | 1 - .../svgs/solid/landmark-dome.svg | 1 - .../svgs/solid/landmark-flag.svg | 1 - .../fontawesome-free/svgs/solid/landmark.svg | 1 - .../fontawesome-free/svgs/solid/language.svg | 1 - .../svgs/solid/laptop-code.svg | 1 - .../svgs/solid/laptop-file.svg | 1 - .../svgs/solid/laptop-medical.svg | 1 - .../fontawesome-free/svgs/solid/laptop.svg | 1 - .../fontawesome-free/svgs/solid/lari-sign.svg | 1 - .../svgs/solid/layer-group.svg | 1 - .../fontawesome-free/svgs/solid/leaf.svg | 1 - .../fontawesome-free/svgs/solid/left-long.svg | 1 - .../svgs/solid/left-right.svg | 1 - .../fontawesome-free/svgs/solid/lemon.svg | 1 - .../svgs/solid/less-than-equal.svg | 1 - .../fontawesome-free/svgs/solid/less-than.svg | 1 - .../fontawesome-free/svgs/solid/life-ring.svg | 1 - .../fontawesome-free/svgs/solid/lightbulb.svg | 1 - .../svgs/solid/lines-leaning.svg | 1 - .../svgs/solid/link-slash.svg | 1 - .../fontawesome-free/svgs/solid/link.svg | 1 - .../fontawesome-free/svgs/solid/lira-sign.svg | 1 - .../svgs/solid/list-check.svg | 1 - .../fontawesome-free/svgs/solid/list-ol.svg | 1 - .../fontawesome-free/svgs/solid/list-ul.svg | 1 - .../fontawesome-free/svgs/solid/list.svg | 1 - .../svgs/solid/litecoin-sign.svg | 1 - .../svgs/solid/location-arrow.svg | 1 - .../svgs/solid/location-crosshairs.svg | 1 - .../svgs/solid/location-dot.svg | 1 - .../svgs/solid/location-pin-lock.svg | 1 - .../svgs/solid/location-pin.svg | 1 - .../fontawesome-free/svgs/solid/lock-open.svg | 1 - .../fontawesome-free/svgs/solid/lock.svg | 1 - .../fontawesome-free/svgs/solid/locust.svg | 1 - .../svgs/solid/lungs-virus.svg | 1 - .../fontawesome-free/svgs/solid/lungs.svg | 1 - .../fontawesome-free/svgs/solid/m.svg | 1 - .../fontawesome-free/svgs/solid/magnet.svg | 1 - .../solid/magnifying-glass-arrow-right.svg | 1 - .../svgs/solid/magnifying-glass-chart.svg | 1 - .../svgs/solid/magnifying-glass-dollar.svg | 1 - .../svgs/solid/magnifying-glass-location.svg | 1 - .../svgs/solid/magnifying-glass-minus.svg | 1 - .../svgs/solid/magnifying-glass-plus.svg | 1 - .../svgs/solid/magnifying-glass.svg | 1 - .../svgs/solid/manat-sign.svg | 1 - .../svgs/solid/map-location-dot.svg | 1 - .../svgs/solid/map-location.svg | 1 - .../fontawesome-free/svgs/solid/map-pin.svg | 1 - .../fontawesome-free/svgs/solid/map.svg | 1 - .../fontawesome-free/svgs/solid/marker.svg | 1 - .../svgs/solid/mars-and-venus-burst.svg | 1 - .../svgs/solid/mars-and-venus.svg | 1 - .../svgs/solid/mars-double.svg | 1 - .../svgs/solid/mars-stroke-right.svg | 1 - .../svgs/solid/mars-stroke-up.svg | 1 - .../svgs/solid/mars-stroke.svg | 1 - .../fontawesome-free/svgs/solid/mars.svg | 1 - .../svgs/solid/martini-glass-citrus.svg | 1 - .../svgs/solid/martini-glass-empty.svg | 1 - .../svgs/solid/martini-glass.svg | 1 - .../fontawesome-free/svgs/solid/mask-face.svg | 1 - .../svgs/solid/mask-ventilator.svg | 1 - .../fontawesome-free/svgs/solid/mask.svg | 1 - .../svgs/solid/masks-theater.svg | 1 - .../svgs/solid/mattress-pillow.svg | 1 - .../fontawesome-free/svgs/solid/maximize.svg | 1 - .../fontawesome-free/svgs/solid/medal.svg | 1 - .../fontawesome-free/svgs/solid/memory.svg | 1 - .../fontawesome-free/svgs/solid/menorah.svg | 1 - .../fontawesome-free/svgs/solid/mercury.svg | 1 - .../fontawesome-free/svgs/solid/message.svg | 1 - .../fontawesome-free/svgs/solid/meteor.svg | 1 - .../fontawesome-free/svgs/solid/microchip.svg | 1 - .../svgs/solid/microphone-lines-slash.svg | 1 - .../svgs/solid/microphone-lines.svg | 1 - .../svgs/solid/microphone-slash.svg | 1 - .../svgs/solid/microphone.svg | 1 - .../svgs/solid/microscope.svg | 1 - .../fontawesome-free/svgs/solid/mill-sign.svg | 1 - .../fontawesome-free/svgs/solid/minimize.svg | 1 - .../fontawesome-free/svgs/solid/minus.svg | 1 - .../fontawesome-free/svgs/solid/mitten.svg | 1 - .../svgs/solid/mobile-button.svg | 1 - .../svgs/solid/mobile-retro.svg | 1 - .../svgs/solid/mobile-screen-button.svg | 1 - .../svgs/solid/mobile-screen.svg | 1 - .../fontawesome-free/svgs/solid/mobile.svg | 1 - .../svgs/solid/money-bill-1-wave.svg | 1 - .../svgs/solid/money-bill-1.svg | 1 - .../svgs/solid/money-bill-transfer.svg | 1 - .../svgs/solid/money-bill-trend-up.svg | 1 - .../svgs/solid/money-bill-wave.svg | 1 - .../svgs/solid/money-bill-wheat.svg | 1 - .../svgs/solid/money-bill.svg | 1 - .../svgs/solid/money-bills.svg | 1 - .../svgs/solid/money-check-dollar.svg | 1 - .../svgs/solid/money-check.svg | 1 - .../fontawesome-free/svgs/solid/monument.svg | 1 - .../fontawesome-free/svgs/solid/moon.svg | 1 - .../svgs/solid/mortar-pestle.svg | 1 - .../fontawesome-free/svgs/solid/mosque.svg | 1 - .../svgs/solid/mosquito-net.svg | 1 - .../fontawesome-free/svgs/solid/mosquito.svg | 1 - .../svgs/solid/motorcycle.svg | 1 - .../fontawesome-free/svgs/solid/mound.svg | 1 - .../svgs/solid/mountain-city.svg | 1 - .../svgs/solid/mountain-sun.svg | 1 - .../fontawesome-free/svgs/solid/mountain.svg | 1 - .../fontawesome-free/svgs/solid/mug-hot.svg | 1 - .../svgs/solid/mug-saucer.svg | 1 - .../fontawesome-free/svgs/solid/music.svg | 1 - .../fontawesome-free/svgs/solid/n.svg | 1 - .../svgs/solid/naira-sign.svg | 1 - .../svgs/solid/network-wired.svg | 1 - .../fontawesome-free/svgs/solid/neuter.svg | 1 - .../fontawesome-free/svgs/solid/newspaper.svg | 1 - .../fontawesome-free/svgs/solid/not-equal.svg | 1 - .../fontawesome-free/svgs/solid/notdef.svg | 1 - .../svgs/solid/note-sticky.svg | 1 - .../svgs/solid/notes-medical.svg | 1 - .../fontawesome-free/svgs/solid/o.svg | 1 - .../svgs/solid/object-group.svg | 1 - .../svgs/solid/object-ungroup.svg | 1 - .../fontawesome-free/svgs/solid/oil-can.svg | 1 - .../fontawesome-free/svgs/solid/oil-well.svg | 1 - .../fontawesome-free/svgs/solid/om.svg | 1 - .../fontawesome-free/svgs/solid/otter.svg | 1 - .../fontawesome-free/svgs/solid/outdent.svg | 1 - .../fontawesome-free/svgs/solid/p.svg | 1 - .../fontawesome-free/svgs/solid/pager.svg | 1 - .../svgs/solid/paint-roller.svg | 1 - .../svgs/solid/paintbrush.svg | 1 - .../fontawesome-free/svgs/solid/palette.svg | 1 - .../fontawesome-free/svgs/solid/pallet.svg | 1 - .../fontawesome-free/svgs/solid/panorama.svg | 1 - .../svgs/solid/paper-plane.svg | 1 - .../fontawesome-free/svgs/solid/paperclip.svg | 1 - .../svgs/solid/parachute-box.svg | 1 - .../fontawesome-free/svgs/solid/paragraph.svg | 1 - .../fontawesome-free/svgs/solid/passport.svg | 1 - .../fontawesome-free/svgs/solid/paste.svg | 1 - .../fontawesome-free/svgs/solid/pause.svg | 1 - .../fontawesome-free/svgs/solid/paw.svg | 1 - .../fontawesome-free/svgs/solid/peace.svg | 1 - .../fontawesome-free/svgs/solid/pen-clip.svg | 1 - .../fontawesome-free/svgs/solid/pen-fancy.svg | 1 - .../fontawesome-free/svgs/solid/pen-nib.svg | 1 - .../fontawesome-free/svgs/solid/pen-ruler.svg | 1 - .../svgs/solid/pen-to-square.svg | 1 - .../fontawesome-free/svgs/solid/pen.svg | 1 - .../fontawesome-free/svgs/solid/pencil.svg | 1 - .../svgs/solid/people-arrows.svg | 1 - .../svgs/solid/people-carry-box.svg | 1 - .../svgs/solid/people-group.svg | 1 - .../svgs/solid/people-line.svg | 1 - .../svgs/solid/people-pulling.svg | 1 - .../svgs/solid/people-robbery.svg | 1 - .../svgs/solid/people-roof.svg | 1 - .../svgs/solid/pepper-hot.svg | 1 - .../fontawesome-free/svgs/solid/percent.svg | 1 - .../svgs/solid/person-arrow-down-to-line.svg | 1 - .../svgs/solid/person-arrow-up-from-line.svg | 1 - .../svgs/solid/person-biking.svg | 1 - .../svgs/solid/person-booth.svg | 1 - .../svgs/solid/person-breastfeeding.svg | 1 - .../svgs/solid/person-burst.svg | 1 - .../svgs/solid/person-cane.svg | 1 - .../svgs/solid/person-chalkboard.svg | 1 - .../svgs/solid/person-circle-check.svg | 1 - .../svgs/solid/person-circle-exclamation.svg | 1 - .../svgs/solid/person-circle-minus.svg | 1 - .../svgs/solid/person-circle-plus.svg | 1 - .../svgs/solid/person-circle-question.svg | 1 - .../svgs/solid/person-circle-xmark.svg | 1 - .../svgs/solid/person-digging.svg | 1 - .../svgs/solid/person-dots-from-line.svg | 1 - .../svgs/solid/person-dress-burst.svg | 1 - .../svgs/solid/person-dress.svg | 1 - .../svgs/solid/person-drowning.svg | 1 - .../svgs/solid/person-falling-burst.svg | 1 - .../svgs/solid/person-falling.svg | 1 - .../svgs/solid/person-half-dress.svg | 1 - .../svgs/solid/person-harassing.svg | 1 - .../svgs/solid/person-hiking.svg | 1 - .../svgs/solid/person-military-pointing.svg | 1 - .../svgs/solid/person-military-rifle.svg | 1 - .../svgs/solid/person-military-to-person.svg | 1 - .../svgs/solid/person-praying.svg | 1 - .../svgs/solid/person-pregnant.svg | 1 - .../svgs/solid/person-rays.svg | 1 - .../svgs/solid/person-rifle.svg | 1 - .../svgs/solid/person-running.svg | 1 - .../svgs/solid/person-shelter.svg | 1 - .../svgs/solid/person-skating.svg | 1 - .../svgs/solid/person-skiing-nordic.svg | 1 - .../svgs/solid/person-skiing.svg | 1 - .../svgs/solid/person-snowboarding.svg | 1 - .../svgs/solid/person-swimming.svg | 1 - .../svgs/solid/person-through-window.svg | 1 - .../solid/person-walking-arrow-loop-left.svg | 1 - .../svgs/solid/person-walking-arrow-right.svg | 1 - ...person-walking-dashed-line-arrow-right.svg | 1 - .../svgs/solid/person-walking-luggage.svg | 1 - .../svgs/solid/person-walking-with-cane.svg | 1 - .../svgs/solid/person-walking.svg | 1 - .../fontawesome-free/svgs/solid/person.svg | 1 - .../svgs/solid/peseta-sign.svg | 1 - .../fontawesome-free/svgs/solid/peso-sign.svg | 1 - .../svgs/solid/phone-flip.svg | 1 - .../svgs/solid/phone-slash.svg | 1 - .../svgs/solid/phone-volume.svg | 1 - .../fontawesome-free/svgs/solid/phone.svg | 1 - .../svgs/solid/photo-film.svg | 1 - .../svgs/solid/piggy-bank.svg | 1 - .../fontawesome-free/svgs/solid/pills.svg | 1 - .../svgs/solid/pizza-slice.svg | 1 - .../svgs/solid/place-of-worship.svg | 1 - .../svgs/solid/plane-arrival.svg | 1 - .../svgs/solid/plane-circle-check.svg | 1 - .../svgs/solid/plane-circle-exclamation.svg | 1 - .../svgs/solid/plane-circle-xmark.svg | 1 - .../svgs/solid/plane-departure.svg | 1 - .../svgs/solid/plane-lock.svg | 1 - .../svgs/solid/plane-slash.svg | 1 - .../fontawesome-free/svgs/solid/plane-up.svg | 1 - .../fontawesome-free/svgs/solid/plane.svg | 1 - .../svgs/solid/plant-wilt.svg | 1 - .../svgs/solid/plate-wheat.svg | 1 - .../fontawesome-free/svgs/solid/play.svg | 1 - .../svgs/solid/plug-circle-bolt.svg | 1 - .../svgs/solid/plug-circle-check.svg | 1 - .../svgs/solid/plug-circle-exclamation.svg | 1 - .../svgs/solid/plug-circle-minus.svg | 1 - .../svgs/solid/plug-circle-plus.svg | 1 - .../svgs/solid/plug-circle-xmark.svg | 1 - .../fontawesome-free/svgs/solid/plug.svg | 1 - .../svgs/solid/plus-minus.svg | 1 - .../fontawesome-free/svgs/solid/plus.svg | 1 - .../fontawesome-free/svgs/solid/podcast.svg | 1 - .../fontawesome-free/svgs/solid/poo-storm.svg | 1 - .../fontawesome-free/svgs/solid/poo.svg | 1 - .../fontawesome-free/svgs/solid/poop.svg | 1 - .../fontawesome-free/svgs/solid/power-off.svg | 1 - .../solid/prescription-bottle-medical.svg | 1 - .../svgs/solid/prescription-bottle.svg | 1 - .../svgs/solid/prescription.svg | 1 - .../fontawesome-free/svgs/solid/print.svg | 1 - .../svgs/solid/pump-medical.svg | 1 - .../fontawesome-free/svgs/solid/pump-soap.svg | 1 - .../svgs/solid/puzzle-piece.svg | 1 - .../fontawesome-free/svgs/solid/q.svg | 1 - .../fontawesome-free/svgs/solid/qrcode.svg | 1 - .../fontawesome-free/svgs/solid/question.svg | 1 - .../svgs/solid/quote-left.svg | 1 - .../svgs/solid/quote-right.svg | 1 - .../fontawesome-free/svgs/solid/r.svg | 1 - .../fontawesome-free/svgs/solid/radiation.svg | 1 - .../fontawesome-free/svgs/solid/radio.svg | 1 - .../fontawesome-free/svgs/solid/rainbow.svg | 1 - .../svgs/solid/ranking-star.svg | 1 - .../fontawesome-free/svgs/solid/receipt.svg | 1 - .../svgs/solid/record-vinyl.svg | 1 - .../svgs/solid/rectangle-ad.svg | 1 - .../svgs/solid/rectangle-list.svg | 1 - .../svgs/solid/rectangle-xmark.svg | 1 - .../fontawesome-free/svgs/solid/recycle.svg | 1 - .../svgs/solid/registered.svg | 1 - .../fontawesome-free/svgs/solid/repeat.svg | 1 - .../fontawesome-free/svgs/solid/reply-all.svg | 1 - .../fontawesome-free/svgs/solid/reply.svg | 1 - .../svgs/solid/republican.svg | 1 - .../fontawesome-free/svgs/solid/restroom.svg | 1 - .../fontawesome-free/svgs/solid/retweet.svg | 1 - .../fontawesome-free/svgs/solid/ribbon.svg | 1 - .../svgs/solid/right-from-bracket.svg | 1 - .../svgs/solid/right-left.svg | 1 - .../svgs/solid/right-long.svg | 1 - .../svgs/solid/right-to-bracket.svg | 1 - .../fontawesome-free/svgs/solid/ring.svg | 1 - .../svgs/solid/road-barrier.svg | 1 - .../svgs/solid/road-bridge.svg | 1 - .../svgs/solid/road-circle-check.svg | 1 - .../svgs/solid/road-circle-exclamation.svg | 1 - .../svgs/solid/road-circle-xmark.svg | 1 - .../fontawesome-free/svgs/solid/road-lock.svg | 1 - .../svgs/solid/road-spikes.svg | 1 - .../fontawesome-free/svgs/solid/road.svg | 1 - .../fontawesome-free/svgs/solid/robot.svg | 1 - .../fontawesome-free/svgs/solid/rocket.svg | 1 - .../svgs/solid/rotate-left.svg | 1 - .../svgs/solid/rotate-right.svg | 1 - .../fontawesome-free/svgs/solid/rotate.svg | 1 - .../fontawesome-free/svgs/solid/route.svg | 1 - .../fontawesome-free/svgs/solid/rss.svg | 1 - .../svgs/solid/ruble-sign.svg | 1 - .../fontawesome-free/svgs/solid/rug.svg | 1 - .../svgs/solid/ruler-combined.svg | 1 - .../svgs/solid/ruler-horizontal.svg | 1 - .../svgs/solid/ruler-vertical.svg | 1 - .../fontawesome-free/svgs/solid/ruler.svg | 1 - .../svgs/solid/rupee-sign.svg | 1 - .../svgs/solid/rupiah-sign.svg | 1 - .../fontawesome-free/svgs/solid/s.svg | 1 - .../svgs/solid/sack-dollar.svg | 1 - .../svgs/solid/sack-xmark.svg | 1 - .../fontawesome-free/svgs/solid/sailboat.svg | 1 - .../svgs/solid/satellite-dish.svg | 1 - .../fontawesome-free/svgs/solid/satellite.svg | 1 - .../svgs/solid/scale-balanced.svg | 1 - .../svgs/solid/scale-unbalanced-flip.svg | 1 - .../svgs/solid/scale-unbalanced.svg | 1 - .../svgs/solid/school-circle-check.svg | 1 - .../svgs/solid/school-circle-exclamation.svg | 1 - .../svgs/solid/school-circle-xmark.svg | 1 - .../svgs/solid/school-flag.svg | 1 - .../svgs/solid/school-lock.svg | 1 - .../fontawesome-free/svgs/solid/school.svg | 1 - .../fontawesome-free/svgs/solid/scissors.svg | 1 - .../svgs/solid/screwdriver-wrench.svg | 1 - .../svgs/solid/screwdriver.svg | 1 - .../svgs/solid/scroll-torah.svg | 1 - .../fontawesome-free/svgs/solid/scroll.svg | 1 - .../fontawesome-free/svgs/solid/sd-card.svg | 1 - .../fontawesome-free/svgs/solid/section.svg | 1 - .../fontawesome-free/svgs/solid/seedling.svg | 1 - .../fontawesome-free/svgs/solid/server.svg | 1 - .../fontawesome-free/svgs/solid/shapes.svg | 1 - .../svgs/solid/share-from-square.svg | 1 - .../svgs/solid/share-nodes.svg | 1 - .../fontawesome-free/svgs/solid/share.svg | 1 - .../svgs/solid/sheet-plastic.svg | 1 - .../svgs/solid/shekel-sign.svg | 1 - .../svgs/solid/shield-cat.svg | 1 - .../svgs/solid/shield-dog.svg | 1 - .../svgs/solid/shield-halved.svg | 1 - .../svgs/solid/shield-heart.svg | 1 - .../svgs/solid/shield-virus.svg | 1 - .../fontawesome-free/svgs/solid/shield.svg | 1 - .../fontawesome-free/svgs/solid/ship.svg | 1 - .../fontawesome-free/svgs/solid/shirt.svg | 1 - .../svgs/solid/shoe-prints.svg | 1 - .../fontawesome-free/svgs/solid/shop-lock.svg | 1 - .../svgs/solid/shop-slash.svg | 1 - .../fontawesome-free/svgs/solid/shop.svg | 1 - .../fontawesome-free/svgs/solid/shower.svg | 1 - .../fontawesome-free/svgs/solid/shrimp.svg | 1 - .../fontawesome-free/svgs/solid/shuffle.svg | 1 - .../svgs/solid/shuttle-space.svg | 1 - .../svgs/solid/sign-hanging.svg | 1 - .../fontawesome-free/svgs/solid/signal.svg | 1 - .../fontawesome-free/svgs/solid/signature.svg | 1 - .../svgs/solid/signs-post.svg | 1 - .../fontawesome-free/svgs/solid/sim-card.svg | 1 - .../fontawesome-free/svgs/solid/sink.svg | 1 - .../fontawesome-free/svgs/solid/sitemap.svg | 1 - .../svgs/solid/skull-crossbones.svg | 1 - .../fontawesome-free/svgs/solid/skull.svg | 1 - .../fontawesome-free/svgs/solid/slash.svg | 1 - .../fontawesome-free/svgs/solid/sleigh.svg | 1 - .../fontawesome-free/svgs/solid/sliders.svg | 1 - .../fontawesome-free/svgs/solid/smog.svg | 1 - .../fontawesome-free/svgs/solid/smoking.svg | 1 - .../fontawesome-free/svgs/solid/snowflake.svg | 1 - .../fontawesome-free/svgs/solid/snowman.svg | 1 - .../fontawesome-free/svgs/solid/snowplow.svg | 1 - .../fontawesome-free/svgs/solid/soap.svg | 1 - .../fontawesome-free/svgs/solid/socks.svg | 1 - .../svgs/solid/solar-panel.svg | 1 - .../fontawesome-free/svgs/solid/sort-down.svg | 1 - .../fontawesome-free/svgs/solid/sort-up.svg | 1 - .../fontawesome-free/svgs/solid/sort.svg | 1 - .../fontawesome-free/svgs/solid/spa.svg | 1 - .../svgs/solid/spaghetti-monster-flying.svg | 1 - .../svgs/solid/spell-check.svg | 1 - .../fontawesome-free/svgs/solid/spider.svg | 1 - .../fontawesome-free/svgs/solid/spinner.svg | 1 - .../fontawesome-free/svgs/solid/splotch.svg | 1 - .../fontawesome-free/svgs/solid/spoon.svg | 1 - .../svgs/solid/spray-can-sparkles.svg | 1 - .../fontawesome-free/svgs/solid/spray-can.svg | 1 - .../svgs/solid/square-arrow-up-right.svg | 1 - .../svgs/solid/square-binary.svg | 1 - .../svgs/solid/square-caret-down.svg | 1 - .../svgs/solid/square-caret-left.svg | 1 - .../svgs/solid/square-caret-right.svg | 1 - .../svgs/solid/square-caret-up.svg | 1 - .../svgs/solid/square-check.svg | 1 - .../svgs/solid/square-envelope.svg | 1 - .../svgs/solid/square-full.svg | 1 - .../fontawesome-free/svgs/solid/square-h.svg | 1 - .../svgs/solid/square-minus.svg | 1 - .../svgs/solid/square-nfi.svg | 1 - .../svgs/solid/square-parking.svg | 1 - .../svgs/solid/square-pen.svg | 1 - .../svgs/solid/square-person-confined.svg | 1 - .../svgs/solid/square-phone-flip.svg | 1 - .../svgs/solid/square-phone.svg | 1 - .../svgs/solid/square-plus.svg | 1 - .../svgs/solid/square-poll-horizontal.svg | 1 - .../svgs/solid/square-poll-vertical.svg | 1 - .../svgs/solid/square-root-variable.svg | 1 - .../svgs/solid/square-rss.svg | 1 - .../svgs/solid/square-share-nodes.svg | 1 - .../svgs/solid/square-up-right.svg | 1 - .../svgs/solid/square-virus.svg | 1 - .../svgs/solid/square-xmark.svg | 1 - .../fontawesome-free/svgs/solid/square.svg | 1 - .../svgs/solid/staff-snake.svg | 1 - .../fontawesome-free/svgs/solid/stairs.svg | 1 - .../fontawesome-free/svgs/solid/stamp.svg | 1 - .../fontawesome-free/svgs/solid/stapler.svg | 1 - .../svgs/solid/star-and-crescent.svg | 1 - .../svgs/solid/star-half-stroke.svg | 1 - .../fontawesome-free/svgs/solid/star-half.svg | 1 - .../svgs/solid/star-of-david.svg | 1 - .../svgs/solid/star-of-life.svg | 1 - .../fontawesome-free/svgs/solid/star.svg | 1 - .../svgs/solid/sterling-sign.svg | 1 - .../svgs/solid/stethoscope.svg | 1 - .../fontawesome-free/svgs/solid/stop.svg | 1 - .../svgs/solid/stopwatch-20.svg | 1 - .../fontawesome-free/svgs/solid/stopwatch.svg | 1 - .../svgs/solid/store-slash.svg | 1 - .../fontawesome-free/svgs/solid/store.svg | 1 - .../svgs/solid/street-view.svg | 1 - .../svgs/solid/strikethrough.svg | 1 - .../svgs/solid/stroopwafel.svg | 1 - .../fontawesome-free/svgs/solid/subscript.svg | 1 - .../svgs/solid/suitcase-medical.svg | 1 - .../svgs/solid/suitcase-rolling.svg | 1 - .../fontawesome-free/svgs/solid/suitcase.svg | 1 - .../svgs/solid/sun-plant-wilt.svg | 1 - .../fontawesome-free/svgs/solid/sun.svg | 1 - .../svgs/solid/superscript.svg | 1 - .../svgs/solid/swatchbook.svg | 1 - .../fontawesome-free/svgs/solid/synagogue.svg | 1 - .../fontawesome-free/svgs/solid/syringe.svg | 1 - .../fontawesome-free/svgs/solid/t.svg | 1 - .../svgs/solid/table-cells-column-lock.svg | 1 - .../svgs/solid/table-cells-large.svg | 1 - .../svgs/solid/table-cells-row-lock.svg | 1 - .../svgs/solid/table-cells-row-unlock.svg | 1 - .../svgs/solid/table-cells.svg | 1 - .../svgs/solid/table-columns.svg | 1 - .../svgs/solid/table-list.svg | 1 - .../svgs/solid/table-tennis-paddle-ball.svg | 1 - .../fontawesome-free/svgs/solid/table.svg | 1 - .../svgs/solid/tablet-button.svg | 1 - .../svgs/solid/tablet-screen-button.svg | 1 - .../fontawesome-free/svgs/solid/tablet.svg | 1 - .../fontawesome-free/svgs/solid/tablets.svg | 1 - .../svgs/solid/tachograph-digital.svg | 1 - .../fontawesome-free/svgs/solid/tag.svg | 1 - .../fontawesome-free/svgs/solid/tags.svg | 1 - .../fontawesome-free/svgs/solid/tape.svg | 1 - .../svgs/solid/tarp-droplet.svg | 1 - .../fontawesome-free/svgs/solid/tarp.svg | 1 - .../fontawesome-free/svgs/solid/taxi.svg | 1 - .../svgs/solid/teeth-open.svg | 1 - .../fontawesome-free/svgs/solid/teeth.svg | 1 - .../svgs/solid/temperature-arrow-down.svg | 1 - .../svgs/solid/temperature-arrow-up.svg | 1 - .../svgs/solid/temperature-empty.svg | 1 - .../svgs/solid/temperature-full.svg | 1 - .../svgs/solid/temperature-half.svg | 1 - .../svgs/solid/temperature-high.svg | 1 - .../svgs/solid/temperature-low.svg | 1 - .../svgs/solid/temperature-quarter.svg | 1 - .../svgs/solid/temperature-three-quarters.svg | 1 - .../svgs/solid/tenge-sign.svg | 1 - .../svgs/solid/tent-arrow-down-to-line.svg | 1 - .../svgs/solid/tent-arrow-left-right.svg | 1 - .../svgs/solid/tent-arrow-turn-left.svg | 1 - .../svgs/solid/tent-arrows-down.svg | 1 - .../fontawesome-free/svgs/solid/tent.svg | 1 - .../fontawesome-free/svgs/solid/tents.svg | 1 - .../fontawesome-free/svgs/solid/terminal.svg | 1 - .../svgs/solid/text-height.svg | 1 - .../svgs/solid/text-slash.svg | 1 - .../svgs/solid/text-width.svg | 1 - .../svgs/solid/thermometer.svg | 1 - .../svgs/solid/thumbs-down.svg | 1 - .../fontawesome-free/svgs/solid/thumbs-up.svg | 1 - .../svgs/solid/thumbtack-slash.svg | 1 - .../fontawesome-free/svgs/solid/thumbtack.svg | 1 - .../svgs/solid/ticket-simple.svg | 1 - .../fontawesome-free/svgs/solid/ticket.svg | 1 - .../fontawesome-free/svgs/solid/timeline.svg | 1 - .../svgs/solid/toggle-off.svg | 1 - .../fontawesome-free/svgs/solid/toggle-on.svg | 1 - .../svgs/solid/toilet-paper-slash.svg | 1 - .../svgs/solid/toilet-paper.svg | 1 - .../svgs/solid/toilet-portable.svg | 1 - .../fontawesome-free/svgs/solid/toilet.svg | 1 - .../svgs/solid/toilets-portable.svg | 1 - .../fontawesome-free/svgs/solid/toolbox.svg | 1 - .../fontawesome-free/svgs/solid/tooth.svg | 1 - .../svgs/solid/torii-gate.svg | 1 - .../fontawesome-free/svgs/solid/tornado.svg | 1 - .../svgs/solid/tower-broadcast.svg | 1 - .../svgs/solid/tower-cell.svg | 1 - .../svgs/solid/tower-observation.svg | 1 - .../fontawesome-free/svgs/solid/tractor.svg | 1 - .../fontawesome-free/svgs/solid/trademark.svg | 1 - .../svgs/solid/traffic-light.svg | 1 - .../fontawesome-free/svgs/solid/trailer.svg | 1 - .../svgs/solid/train-subway.svg | 1 - .../svgs/solid/train-tram.svg | 1 - .../fontawesome-free/svgs/solid/train.svg | 1 - .../svgs/solid/transgender.svg | 1 - .../svgs/solid/trash-arrow-up.svg | 1 - .../svgs/solid/trash-can-arrow-up.svg | 1 - .../fontawesome-free/svgs/solid/trash-can.svg | 1 - .../fontawesome-free/svgs/solid/trash.svg | 1 - .../fontawesome-free/svgs/solid/tree-city.svg | 1 - .../fontawesome-free/svgs/solid/tree.svg | 1 - .../svgs/solid/triangle-exclamation.svg | 1 - .../fontawesome-free/svgs/solid/trophy.svg | 1 - .../svgs/solid/trowel-bricks.svg | 1 - .../fontawesome-free/svgs/solid/trowel.svg | 1 - .../svgs/solid/truck-arrow-right.svg | 1 - .../svgs/solid/truck-droplet.svg | 1 - .../svgs/solid/truck-fast.svg | 1 - .../svgs/solid/truck-field-un.svg | 1 - .../svgs/solid/truck-field.svg | 1 - .../svgs/solid/truck-front.svg | 1 - .../svgs/solid/truck-medical.svg | 1 - .../svgs/solid/truck-monster.svg | 1 - .../svgs/solid/truck-moving.svg | 1 - .../svgs/solid/truck-pickup.svg | 1 - .../svgs/solid/truck-plane.svg | 1 - .../svgs/solid/truck-ramp-box.svg | 1 - .../fontawesome-free/svgs/solid/truck.svg | 1 - .../fontawesome-free/svgs/solid/tty.svg | 1 - .../svgs/solid/turkish-lira-sign.svg | 1 - .../fontawesome-free/svgs/solid/turn-down.svg | 1 - .../fontawesome-free/svgs/solid/turn-up.svg | 1 - .../fontawesome-free/svgs/solid/tv.svg | 1 - .../fontawesome-free/svgs/solid/u.svg | 1 - .../svgs/solid/umbrella-beach.svg | 1 - .../fontawesome-free/svgs/solid/umbrella.svg | 1 - .../fontawesome-free/svgs/solid/underline.svg | 1 - .../svgs/solid/universal-access.svg | 1 - .../svgs/solid/unlock-keyhole.svg | 1 - .../fontawesome-free/svgs/solid/unlock.svg | 1 - .../svgs/solid/up-down-left-right.svg | 1 - .../fontawesome-free/svgs/solid/up-down.svg | 1 - .../fontawesome-free/svgs/solid/up-long.svg | 1 - .../up-right-and-down-left-from-center.svg | 1 - .../svgs/solid/up-right-from-square.svg | 1 - .../fontawesome-free/svgs/solid/upload.svg | 1 - .../svgs/solid/user-astronaut.svg | 1 - .../svgs/solid/user-check.svg | 1 - .../svgs/solid/user-clock.svg | 1 - .../svgs/solid/user-doctor.svg | 1 - .../fontawesome-free/svgs/solid/user-gear.svg | 1 - .../svgs/solid/user-graduate.svg | 1 - .../svgs/solid/user-group.svg | 1 - .../svgs/solid/user-injured.svg | 1 - .../svgs/solid/user-large-slash.svg | 1 - .../svgs/solid/user-large.svg | 1 - .../fontawesome-free/svgs/solid/user-lock.svg | 1 - .../svgs/solid/user-minus.svg | 1 - .../svgs/solid/user-ninja.svg | 1 - .../svgs/solid/user-nurse.svg | 1 - .../fontawesome-free/svgs/solid/user-pen.svg | 1 - .../fontawesome-free/svgs/solid/user-plus.svg | 1 - .../svgs/solid/user-secret.svg | 1 - .../svgs/solid/user-shield.svg | 1 - .../svgs/solid/user-slash.svg | 1 - .../fontawesome-free/svgs/solid/user-tag.svg | 1 - .../fontawesome-free/svgs/solid/user-tie.svg | 1 - .../svgs/solid/user-xmark.svg | 1 - .../fontawesome-free/svgs/solid/user.svg | 1 - .../svgs/solid/users-between-lines.svg | 1 - .../svgs/solid/users-gear.svg | 1 - .../svgs/solid/users-line.svg | 1 - .../svgs/solid/users-rays.svg | 1 - .../svgs/solid/users-rectangle.svg | 1 - .../svgs/solid/users-slash.svg | 1 - .../svgs/solid/users-viewfinder.svg | 1 - .../fontawesome-free/svgs/solid/users.svg | 1 - .../fontawesome-free/svgs/solid/utensils.svg | 1 - .../fontawesome-free/svgs/solid/v.svg | 1 - .../svgs/solid/van-shuttle.svg | 1 - .../fontawesome-free/svgs/solid/vault.svg | 1 - .../svgs/solid/vector-square.svg | 1 - .../svgs/solid/venus-double.svg | 1 - .../svgs/solid/venus-mars.svg | 1 - .../fontawesome-free/svgs/solid/venus.svg | 1 - .../svgs/solid/vest-patches.svg | 1 - .../fontawesome-free/svgs/solid/vest.svg | 1 - .../svgs/solid/vial-circle-check.svg | 1 - .../svgs/solid/vial-virus.svg | 1 - .../fontawesome-free/svgs/solid/vial.svg | 1 - .../fontawesome-free/svgs/solid/vials.svg | 1 - .../svgs/solid/video-slash.svg | 1 - .../fontawesome-free/svgs/solid/video.svg | 1 - .../fontawesome-free/svgs/solid/vihara.svg | 1 - .../svgs/solid/virus-covid-slash.svg | 1 - .../svgs/solid/virus-covid.svg | 1 - .../svgs/solid/virus-slash.svg | 1 - .../fontawesome-free/svgs/solid/virus.svg | 1 - .../fontawesome-free/svgs/solid/viruses.svg | 1 - .../fontawesome-free/svgs/solid/voicemail.svg | 1 - .../fontawesome-free/svgs/solid/volcano.svg | 1 - .../svgs/solid/volleyball.svg | 1 - .../svgs/solid/volume-high.svg | 1 - .../svgs/solid/volume-low.svg | 1 - .../svgs/solid/volume-off.svg | 1 - .../svgs/solid/volume-xmark.svg | 1 - .../svgs/solid/vr-cardboard.svg | 1 - .../fontawesome-free/svgs/solid/w.svg | 1 - .../svgs/solid/walkie-talkie.svg | 1 - .../fontawesome-free/svgs/solid/wallet.svg | 1 - .../svgs/solid/wand-magic-sparkles.svg | 1 - .../svgs/solid/wand-magic.svg | 1 - .../svgs/solid/wand-sparkles.svg | 1 - .../fontawesome-free/svgs/solid/warehouse.svg | 1 - .../svgs/solid/water-ladder.svg | 1 - .../fontawesome-free/svgs/solid/water.svg | 1 - .../svgs/solid/wave-square.svg | 1 - .../svgs/solid/web-awesome.svg | 1 - .../svgs/solid/weight-hanging.svg | 1 - .../svgs/solid/weight-scale.svg | 1 - .../solid/wheat-awn-circle-exclamation.svg | 1 - .../fontawesome-free/svgs/solid/wheat-awn.svg | 1 - .../svgs/solid/wheelchair-move.svg | 1 - .../svgs/solid/wheelchair.svg | 1 - .../svgs/solid/whiskey-glass.svg | 1 - .../fontawesome-free/svgs/solid/wifi.svg | 1 - .../fontawesome-free/svgs/solid/wind.svg | 1 - .../svgs/solid/window-maximize.svg | 1 - .../svgs/solid/window-minimize.svg | 1 - .../svgs/solid/window-restore.svg | 1 - .../svgs/solid/wine-bottle.svg | 1 - .../svgs/solid/wine-glass-empty.svg | 1 - .../svgs/solid/wine-glass.svg | 1 - .../fontawesome-free/svgs/solid/won-sign.svg | 1 - .../fontawesome-free/svgs/solid/worm.svg | 1 - .../fontawesome-free/svgs/solid/wrench.svg | 1 - .../fontawesome-free/svgs/solid/x-ray.svg | 1 - .../fontawesome-free/svgs/solid/x.svg | 1 - .../fontawesome-free/svgs/solid/xmark.svg | 1 - .../svgs/solid/xmarks-lines.svg | 1 - .../fontawesome-free/svgs/solid/y.svg | 1 - .../fontawesome-free/svgs/solid/yen-sign.svg | 1 - .../fontawesome-free/svgs/solid/yin-yang.svg | 1 - .../fontawesome-free/svgs/solid/z.svg | 1 - .../webfonts/fa-brands-400.ttf | Bin 210792 -> 0 bytes .../webfonts/fa-brands-400.woff2 | Bin 118684 -> 0 bytes .../webfonts/fa-regular-400.ttf | Bin 68064 -> 0 bytes .../webfonts/fa-regular-400.woff2 | Bin 25472 -> 0 bytes .../webfonts/fa-solid-900.ttf | Bin 426112 -> 0 bytes .../webfonts/fa-solid-900.woff2 | Bin 158220 -> 0 bytes .../webfonts/fa-v4compatibility.ttf | Bin 10836 -> 0 bytes .../webfonts/fa-v4compatibility.woff2 | Bin 4796 -> 0 bytes .../node_modules/@gar/promisify/LICENSE.md | 10 - .../node_modules/@gar/promisify/README.md | 65 - .../node_modules/@gar/promisify/index.js | 36 - .../node_modules/@gar/promisify/package.json | 32 - XNSimHtml/node_modules/@npmcli/fs/LICENSE.md | 20 - XNSimHtml/node_modules/@npmcli/fs/README.md | 60 - .../fs/lib/common/file-url-to-path/index.js | 17 - .../lib/common/file-url-to-path/polyfill.js | 121 - .../@npmcli/fs/lib/common/get-options.js | 20 - .../@npmcli/fs/lib/common/node.js | 9 - .../@npmcli/fs/lib/common/owner.js | 92 - .../node_modules/@npmcli/fs/lib/copy-file.js | 22 - .../node_modules/@npmcli/fs/lib/cp/LICENSE | 15 - .../node_modules/@npmcli/fs/lib/cp/index.js | 22 - .../@npmcli/fs/lib/cp/polyfill.js | 428 - .../node_modules/@npmcli/fs/lib/errors.js | 129 - XNSimHtml/node_modules/@npmcli/fs/lib/fs.js | 8 - .../node_modules/@npmcli/fs/lib/index.js | 10 - .../@npmcli/fs/lib/mkdir/index.js | 32 - .../@npmcli/fs/lib/mkdir/polyfill.js | 81 - .../node_modules/@npmcli/fs/lib/mkdtemp.js | 28 - .../node_modules/@npmcli/fs/lib/rm/index.js | 22 - .../@npmcli/fs/lib/rm/polyfill.js | 239 - .../@npmcli/fs/lib/with-temp-dir.js | 39 - .../node_modules/@npmcli/fs/lib/write-file.js | 19 - .../@npmcli/fs/node_modules/.bin/semver | 1 - .../@npmcli/fs/node_modules/semver/LICENSE | 15 - .../@npmcli/fs/node_modules/semver/README.md | 664 - .../fs/node_modules/semver/bin/semver.js | 189 - .../node_modules/semver/classes/comparator.js | 141 - .../fs/node_modules/semver/classes/index.js | 5 - .../fs/node_modules/semver/classes/range.js | 554 - .../fs/node_modules/semver/classes/semver.js | 318 - .../fs/node_modules/semver/functions/clean.js | 6 - .../fs/node_modules/semver/functions/cmp.js | 52 - .../node_modules/semver/functions/coerce.js | 60 - .../semver/functions/compare-build.js | 7 - .../semver/functions/compare-loose.js | 3 - .../node_modules/semver/functions/compare.js | 5 - .../fs/node_modules/semver/functions/diff.js | 58 - .../fs/node_modules/semver/functions/eq.js | 3 - .../fs/node_modules/semver/functions/gt.js | 3 - .../fs/node_modules/semver/functions/gte.js | 3 - .../fs/node_modules/semver/functions/inc.js | 19 - .../fs/node_modules/semver/functions/lt.js | 3 - .../fs/node_modules/semver/functions/lte.js | 3 - .../fs/node_modules/semver/functions/major.js | 3 - .../fs/node_modules/semver/functions/minor.js | 3 - .../fs/node_modules/semver/functions/neq.js | 3 - .../fs/node_modules/semver/functions/parse.js | 16 - .../fs/node_modules/semver/functions/patch.js | 3 - .../semver/functions/prerelease.js | 6 - .../node_modules/semver/functions/rcompare.js | 3 - .../fs/node_modules/semver/functions/rsort.js | 3 - .../semver/functions/satisfies.js | 10 - .../fs/node_modules/semver/functions/sort.js | 3 - .../fs/node_modules/semver/functions/valid.js | 6 - .../@npmcli/fs/node_modules/semver/index.js | 89 - .../node_modules/semver/internal/constants.js | 35 - .../fs/node_modules/semver/internal/debug.js | 9 - .../semver/internal/identifiers.js | 23 - .../node_modules/semver/internal/lrucache.js | 40 - .../semver/internal/parse-options.js | 15 - .../fs/node_modules/semver/internal/re.js | 219 - .../fs/node_modules/semver/package.json | 78 - .../@npmcli/fs/node_modules/semver/preload.js | 2 - .../@npmcli/fs/node_modules/semver/range.bnf | 16 - .../fs/node_modules/semver/ranges/gtr.js | 4 - .../node_modules/semver/ranges/intersects.js | 7 - .../fs/node_modules/semver/ranges/ltr.js | 4 - .../semver/ranges/max-satisfying.js | 25 - .../semver/ranges/min-satisfying.js | 24 - .../node_modules/semver/ranges/min-version.js | 61 - .../fs/node_modules/semver/ranges/outside.js | 80 - .../fs/node_modules/semver/ranges/simplify.js | 47 - .../fs/node_modules/semver/ranges/subset.js | 247 - .../semver/ranges/to-comparators.js | 8 - .../fs/node_modules/semver/ranges/valid.js | 11 - .../node_modules/@npmcli/fs/package.json | 38 - .../node_modules/@npmcli/move-file/LICENSE.md | 22 - .../node_modules/@npmcli/move-file/README.md | 69 - .../node_modules/@npmcli/move-file/index.js | 162 - .../move-file/node_modules/.bin/mkdirp | 1 - .../node_modules/mkdirp/CHANGELOG.md | 15 - .../move-file/node_modules/mkdirp/LICENSE | 21 - .../move-file/node_modules/mkdirp/bin/cmd.js | 68 - .../move-file/node_modules/mkdirp/index.js | 31 - .../node_modules/mkdirp/lib/find-made.js | 29 - .../node_modules/mkdirp/lib/mkdirp-manual.js | 64 - .../node_modules/mkdirp/lib/mkdirp-native.js | 39 - .../node_modules/mkdirp/lib/opts-arg.js | 23 - .../node_modules/mkdirp/lib/path-arg.js | 29 - .../node_modules/mkdirp/lib/use-native.js | 10 - .../node_modules/mkdirp/package.json | 44 - .../node_modules/mkdirp/readme.markdown | 266 - .../@npmcli/move-file/package.json | 34 - .../@tootallnate/once/dist/index.d.ts | 14 - .../@tootallnate/once/dist/index.js | 39 - .../@tootallnate/once/dist/index.js.map | 1 - .../@tootallnate/once/package.json | 45 - XNSimHtml/node_modules/abbrev/LICENSE | 46 - XNSimHtml/node_modules/abbrev/README.md | 23 - XNSimHtml/node_modules/abbrev/abbrev.js | 61 - XNSimHtml/node_modules/abbrev/package.json | 21 - XNSimHtml/node_modules/agent-base/README.md | 145 - .../agent-base/dist/src/index.d.ts | 78 - .../node_modules/agent-base/dist/src/index.js | 203 - .../agent-base/dist/src/index.js.map | 1 - .../agent-base/dist/src/promisify.d.ts | 4 - .../agent-base/dist/src/promisify.js | 18 - .../agent-base/dist/src/promisify.js.map | 1 - .../agent-base/node_modules/debug/LICENSE | 20 - .../agent-base/node_modules/debug/README.md | 481 - .../node_modules/debug/package.json | 65 - .../node_modules/debug/src/browser.js | 272 - .../node_modules/debug/src/common.js | 292 - .../node_modules/debug/src/index.js | 10 - .../agent-base/node_modules/debug/src/node.js | 263 - .../agent-base/node_modules/ms/index.js | 162 - .../agent-base/node_modules/ms/license.md | 21 - .../agent-base/node_modules/ms/package.json | 38 - .../agent-base/node_modules/ms/readme.md | 59 - .../node_modules/agent-base/package.json | 64 - .../node_modules/agent-base/src/index.ts | 345 - .../node_modules/agent-base/src/promisify.ts | 33 - XNSimHtml/node_modules/agentkeepalive/LICENSE | 23 - .../node_modules/agentkeepalive/README.md | 256 - .../node_modules/agentkeepalive/browser.js | 5 - .../node_modules/agentkeepalive/index.d.ts | 69 - .../node_modules/agentkeepalive/index.js | 7 - .../node_modules/agentkeepalive/lib/agent.js | 402 - .../agentkeepalive/lib/constants.js | 14 - .../agentkeepalive/lib/https_agent.js | 51 - .../node_modules/agentkeepalive/package.json | 56 - .../node_modules/aggregate-error/index.d.ts | 51 - .../node_modules/aggregate-error/index.js | 47 - .../node_modules/aggregate-error/license | 9 - .../node_modules/aggregate-error/package.json | 41 - .../node_modules/aggregate-error/readme.md | 61 - XNSimHtml/node_modules/ansi-regex/index.d.ts | 37 - XNSimHtml/node_modules/ansi-regex/index.js | 10 - XNSimHtml/node_modules/ansi-regex/license | 9 - .../node_modules/ansi-regex/package.json | 55 - XNSimHtml/node_modules/ansi-regex/readme.md | 78 - XNSimHtml/node_modules/aproba/CHANGELOG.md | 4 - XNSimHtml/node_modules/aproba/LICENSE | 14 - XNSimHtml/node_modules/aproba/README.md | 94 - XNSimHtml/node_modules/aproba/index.js | 105 - XNSimHtml/node_modules/aproba/package.json | 35 - .../node_modules/are-we-there-yet/LICENSE.md | 18 - .../node_modules/are-we-there-yet/README.md | 208 - .../are-we-there-yet/lib/index.js | 4 - .../are-we-there-yet/lib/tracker-base.js | 11 - .../are-we-there-yet/lib/tracker-group.js | 116 - .../are-we-there-yet/lib/tracker-stream.js | 36 - .../are-we-there-yet/lib/tracker.js | 32 - .../readable-stream/CONTRIBUTING.md | 38 - .../readable-stream/GOVERNANCE.md | 136 - .../node_modules/readable-stream/LICENSE | 47 - .../node_modules/readable-stream/README.md | 106 - .../readable-stream/errors-browser.js | 127 - .../node_modules/readable-stream/errors.js | 116 - .../readable-stream/experimentalWarning.js | 17 - .../readable-stream/lib/_stream_duplex.js | 126 - .../lib/_stream_passthrough.js | 37 - .../readable-stream/lib/_stream_readable.js | 1027 - .../readable-stream/lib/_stream_transform.js | 190 - .../readable-stream/lib/_stream_writable.js | 641 - .../lib/internal/streams/async_iterator.js | 180 - .../lib/internal/streams/buffer_list.js | 183 - .../lib/internal/streams/destroy.js | 96 - .../lib/internal/streams/end-of-stream.js | 86 - .../lib/internal/streams/from-browser.js | 3 - .../lib/internal/streams/from.js | 52 - .../lib/internal/streams/pipeline.js | 86 - .../lib/internal/streams/state.js | 22 - .../lib/internal/streams/stream-browser.js | 1 - .../lib/internal/streams/stream.js | 1 - .../node_modules/readable-stream/package.json | 68 - .../readable-stream/readable-browser.js | 9 - .../node_modules/readable-stream/readable.js | 16 - .../are-we-there-yet/package.json | 56 - XNSimHtml/node_modules/cacache/LICENSE.md | 16 - XNSimHtml/node_modules/cacache/README.md | 703 - XNSimHtml/node_modules/cacache/get.js | 237 - XNSimHtml/node_modules/cacache/index.js | 46 - .../node_modules/cacache/lib/content/path.js | 29 - .../node_modules/cacache/lib/content/read.js | 244 - .../node_modules/cacache/lib/content/rm.js | 19 - .../node_modules/cacache/lib/content/write.js | 189 - .../node_modules/cacache/lib/entry-index.js | 394 - .../node_modules/cacache/lib/memoization.js | 73 - .../node_modules/cacache/lib/util/disposer.js | 30 - .../cacache/lib/util/fix-owner.js | 142 - .../cacache/lib/util/hash-to-segments.js | 7 - .../cacache/lib/util/move-file.js | 67 - .../node_modules/cacache/lib/util/tmp.js | 35 - XNSimHtml/node_modules/cacache/lib/verify.js | 287 - XNSimHtml/node_modules/cacache/ls.js | 6 - .../cacache/node_modules/.bin/mkdirp | 1 - .../cacache/node_modules/mkdirp/CHANGELOG.md | 15 - .../cacache/node_modules/mkdirp/LICENSE | 21 - .../cacache/node_modules/mkdirp/bin/cmd.js | 68 - .../cacache/node_modules/mkdirp/index.js | 31 - .../node_modules/mkdirp/lib/find-made.js | 29 - .../node_modules/mkdirp/lib/mkdirp-manual.js | 64 - .../node_modules/mkdirp/lib/mkdirp-native.js | 39 - .../node_modules/mkdirp/lib/opts-arg.js | 23 - .../node_modules/mkdirp/lib/path-arg.js | 29 - .../node_modules/mkdirp/lib/use-native.js | 10 - .../cacache/node_modules/mkdirp/package.json | 44 - .../node_modules/mkdirp/readme.markdown | 266 - XNSimHtml/node_modules/cacache/package.json | 80 - XNSimHtml/node_modules/cacache/put.js | 83 - XNSimHtml/node_modules/cacache/rm.js | 31 - XNSimHtml/node_modules/cacache/verify.js | 3 - XNSimHtml/node_modules/chownr/LICENSE | 15 - XNSimHtml/node_modules/chownr/README.md | 3 - XNSimHtml/node_modules/chownr/chownr.js | 167 - XNSimHtml/node_modules/chownr/package.json | 32 - XNSimHtml/node_modules/clean-stack/index.d.ts | 47 - XNSimHtml/node_modules/clean-stack/index.js | 40 - XNSimHtml/node_modules/clean-stack/license | 9 - .../node_modules/clean-stack/package.json | 39 - XNSimHtml/node_modules/clean-stack/readme.md | 76 - XNSimHtml/node_modules/color-support/LICENSE | 15 - .../node_modules/color-support/README.md | 129 - XNSimHtml/node_modules/color-support/bin.js | 3 - .../node_modules/color-support/browser.js | 14 - XNSimHtml/node_modules/color-support/index.js | 134 - .../node_modules/color-support/package.json | 36 - .../console-control-strings/LICENSE | 13 - .../console-control-strings/README.md | 145 - .../console-control-strings/README.md~ | 140 - .../console-control-strings/index.js | 125 - .../console-control-strings/package.json | 27 - XNSimHtml/node_modules/delegates/.npmignore | 1 - XNSimHtml/node_modules/delegates/History.md | 22 - XNSimHtml/node_modules/delegates/License | 20 - XNSimHtml/node_modules/delegates/Makefile | 8 - XNSimHtml/node_modules/delegates/Readme.md | 94 - XNSimHtml/node_modules/delegates/index.js | 121 - XNSimHtml/node_modules/delegates/package.json | 13 - .../node_modules/delegates/test/index.js | 94 - .../node_modules/emoji-regex/LICENSE-MIT.txt | 20 - XNSimHtml/node_modules/emoji-regex/README.md | 73 - .../node_modules/emoji-regex/es2015/index.js | 6 - .../node_modules/emoji-regex/es2015/text.js | 6 - XNSimHtml/node_modules/emoji-regex/index.d.ts | 23 - XNSimHtml/node_modules/emoji-regex/index.js | 6 - .../node_modules/emoji-regex/package.json | 50 - XNSimHtml/node_modules/emoji-regex/text.js | 6 - .../node_modules/encoding/.prettierrc.js | 8 - XNSimHtml/node_modules/encoding/.travis.yml | 25 - XNSimHtml/node_modules/encoding/LICENSE | 16 - XNSimHtml/node_modules/encoding/README.md | 41 - .../node_modules/encoding/lib/encoding.js | 83 - XNSimHtml/node_modules/encoding/package.json | 18 - XNSimHtml/node_modules/encoding/test/test.js | 49 - XNSimHtml/node_modules/env-paths/index.d.ts | 101 - XNSimHtml/node_modules/env-paths/index.js | 74 - XNSimHtml/node_modules/env-paths/license | 9 - XNSimHtml/node_modules/env-paths/package.json | 45 - XNSimHtml/node_modules/env-paths/readme.md | 115 - XNSimHtml/node_modules/err-code/.editorconfig | 12 - .../node_modules/err-code/.eslintrc.json | 7 - XNSimHtml/node_modules/err-code/.travis.yml | 4 - XNSimHtml/node_modules/err-code/README.md | 70 - XNSimHtml/node_modules/err-code/bower.json | 30 - XNSimHtml/node_modules/err-code/index.js | 47 - XNSimHtml/node_modules/err-code/index.umd.js | 51 - XNSimHtml/node_modules/err-code/package.json | 34 - .../node_modules/err-code/test/.eslintrc.json | 5 - XNSimHtml/node_modules/err-code/test/test.js | 159 - XNSimHtml/node_modules/fs-minipass/LICENSE | 15 - XNSimHtml/node_modules/fs-minipass/README.md | 70 - XNSimHtml/node_modules/fs-minipass/index.js | 422 - .../node_modules/fs-minipass/package.json | 39 - XNSimHtml/node_modules/fs.realpath/LICENSE | 43 - XNSimHtml/node_modules/fs.realpath/README.md | 33 - XNSimHtml/node_modules/fs.realpath/index.js | 66 - XNSimHtml/node_modules/fs.realpath/old.js | 303 - .../node_modules/fs.realpath/package.json | 26 - XNSimHtml/node_modules/gauge/LICENSE.md | 20 - XNSimHtml/node_modules/gauge/README.md | 402 - .../node_modules/gauge/lib/base-theme.js | 18 - XNSimHtml/node_modules/gauge/lib/error.js | 24 - XNSimHtml/node_modules/gauge/lib/has-color.js | 4 - XNSimHtml/node_modules/gauge/lib/index.js | 289 - XNSimHtml/node_modules/gauge/lib/plumbing.js | 50 - XNSimHtml/node_modules/gauge/lib/process.js | 3 - .../node_modules/gauge/lib/progress-bar.js | 41 - .../node_modules/gauge/lib/render-template.js | 222 - .../node_modules/gauge/lib/set-immediate.js | 7 - .../node_modules/gauge/lib/set-interval.js | 3 - XNSimHtml/node_modules/gauge/lib/spin.js | 5 - .../node_modules/gauge/lib/template-item.js | 87 - XNSimHtml/node_modules/gauge/lib/theme-set.js | 122 - XNSimHtml/node_modules/gauge/lib/themes.js | 56 - .../node_modules/gauge/lib/wide-truncate.js | 31 - XNSimHtml/node_modules/gauge/package.json | 66 - XNSimHtml/node_modules/glob/LICENSE | 21 - XNSimHtml/node_modules/glob/README.md | 378 - XNSimHtml/node_modules/glob/common.js | 238 - XNSimHtml/node_modules/glob/glob.js | 790 - XNSimHtml/node_modules/glob/package.json | 55 - XNSimHtml/node_modules/glob/sync.js | 486 - XNSimHtml/node_modules/graceful-fs/LICENSE | 15 - XNSimHtml/node_modules/graceful-fs/README.md | 143 - XNSimHtml/node_modules/graceful-fs/clone.js | 23 - .../node_modules/graceful-fs/graceful-fs.js | 448 - .../graceful-fs/legacy-streams.js | 118 - .../node_modules/graceful-fs/package.json | 53 - .../node_modules/graceful-fs/polyfills.js | 355 - XNSimHtml/node_modules/has-unicode/LICENSE | 14 - XNSimHtml/node_modules/has-unicode/README.md | 43 - XNSimHtml/node_modules/has-unicode/index.js | 16 - .../node_modules/has-unicode/package.json | 30 - .../node_modules/http-cache-semantics/LICENSE | 9 - .../http-cache-semantics/README.md | 268 - .../http-cache-semantics/index.js | 928 - .../http-cache-semantics/package.json | 22 - .../node_modules/http-proxy-agent/README.md | 74 - .../http-proxy-agent/dist/agent.d.ts | 32 - .../http-proxy-agent/dist/agent.js | 145 - .../http-proxy-agent/dist/agent.js.map | 1 - .../http-proxy-agent/dist/index.d.ts | 21 - .../http-proxy-agent/dist/index.js | 14 - .../http-proxy-agent/dist/index.js.map | 1 - .../node_modules/debug/LICENSE | 20 - .../node_modules/debug/README.md | 481 - .../node_modules/debug/package.json | 65 - .../node_modules/debug/src/browser.js | 272 - .../node_modules/debug/src/common.js | 292 - .../node_modules/debug/src/index.js | 10 - .../node_modules/debug/src/node.js | 263 - .../http-proxy-agent/node_modules/ms/index.js | 162 - .../node_modules/ms/license.md | 21 - .../node_modules/ms/package.json | 38 - .../node_modules/ms/readme.md | 59 - .../http-proxy-agent/package.json | 57 - .../node_modules/https-proxy-agent/README.md | 137 - .../https-proxy-agent/dist/agent.d.ts | 30 - .../https-proxy-agent/dist/agent.js | 177 - .../https-proxy-agent/dist/agent.js.map | 1 - .../https-proxy-agent/dist/index.d.ts | 23 - .../https-proxy-agent/dist/index.js | 14 - .../https-proxy-agent/dist/index.js.map | 1 - .../dist/parse-proxy-response.d.ts | 7 - .../dist/parse-proxy-response.js | 66 - .../dist/parse-proxy-response.js.map | 1 - .../node_modules/debug/LICENSE | 20 - .../node_modules/debug/README.md | 481 - .../node_modules/debug/package.json | 65 - .../node_modules/debug/src/browser.js | 272 - .../node_modules/debug/src/common.js | 292 - .../node_modules/debug/src/index.js | 10 - .../node_modules/debug/src/node.js | 263 - .../node_modules/ms/index.js | 162 - .../node_modules/ms/license.md | 21 - .../node_modules/ms/package.json | 38 - .../node_modules/ms/readme.md | 59 - .../https-proxy-agent/package.json | 56 - XNSimHtml/node_modules/humanize-ms/History.md | 25 - XNSimHtml/node_modules/humanize-ms/LICENSE | 17 - XNSimHtml/node_modules/humanize-ms/README.md | 40 - XNSimHtml/node_modules/humanize-ms/index.js | 24 - .../node_modules/humanize-ms/package.json | 37 - XNSimHtml/node_modules/imurmurhash/README.md | 122 - .../node_modules/imurmurhash/imurmurhash.js | 138 - .../imurmurhash/imurmurhash.min.js | 12 - .../node_modules/imurmurhash/package.json | 40 - .../node_modules/indent-string/index.d.ts | 42 - XNSimHtml/node_modules/indent-string/index.js | 35 - XNSimHtml/node_modules/indent-string/license | 9 - .../node_modules/indent-string/package.json | 37 - .../node_modules/indent-string/readme.md | 70 - XNSimHtml/node_modules/infer-owner/LICENSE | 15 - XNSimHtml/node_modules/infer-owner/README.md | 41 - XNSimHtml/node_modules/infer-owner/index.js | 71 - .../node_modules/infer-owner/package.json | 26 - XNSimHtml/node_modules/inflight/LICENSE | 15 - XNSimHtml/node_modules/inflight/README.md | 37 - XNSimHtml/node_modules/inflight/inflight.js | 54 - XNSimHtml/node_modules/inflight/package.json | 29 - XNSimHtml/node_modules/ip-address/LICENSE | 19 - XNSimHtml/node_modules/ip-address/README.md | 108 - .../ip-address/dist/address-error.d.ts | 5 - .../ip-address/dist/address-error.d.ts.map | 1 - .../ip-address/dist/address-error.js | 14 - .../ip-address/dist/address-error.js.map | 1 - .../node_modules/ip-address/dist/common.d.ts | 8 - .../ip-address/dist/common.d.ts.map | 1 - .../node_modules/ip-address/dist/common.js | 26 - .../ip-address/dist/common.js.map | 1 - .../ip-address/dist/ip-address.d.ts | 11 - .../ip-address/dist/ip-address.d.ts.map | 1 - .../ip-address/dist/ip-address.js | 35 - .../ip-address/dist/ip-address.js.map | 1 - .../node_modules/ip-address/dist/ipv4.d.ts | 194 - .../ip-address/dist/ipv4.d.ts.map | 1 - .../node_modules/ip-address/dist/ipv4.js | 326 - .../node_modules/ip-address/dist/ipv4.js.map | 1 - .../node_modules/ip-address/dist/ipv6.d.ts | 429 - .../ip-address/dist/ipv6.d.ts.map | 1 - .../node_modules/ip-address/dist/ipv6.js | 998 - .../node_modules/ip-address/dist/ipv6.js.map | 1 - .../ip-address/dist/v4/constants.d.ts | 5 - .../ip-address/dist/v4/constants.d.ts.map | 1 - .../ip-address/dist/v4/constants.js | 8 - .../ip-address/dist/v4/constants.js.map | 1 - .../ip-address/dist/v6/constants.d.ts | 45 - .../ip-address/dist/v6/constants.d.ts.map | 1 - .../ip-address/dist/v6/constants.js | 76 - .../ip-address/dist/v6/constants.js.map | 1 - .../ip-address/dist/v6/helpers.d.ts | 18 - .../ip-address/dist/v6/helpers.d.ts.map | 1 - .../ip-address/dist/v6/helpers.js | 48 - .../ip-address/dist/v6/helpers.js.map | 1 - .../dist/v6/regular-expressions.d.ts | 6 - .../dist/v6/regular-expressions.d.ts.map | 1 - .../ip-address/dist/v6/regular-expressions.js | 96 - .../dist/v6/regular-expressions.js.map | 1 - .../node_modules/ip-address/package.json | 87 - .../ip-address/src/address-error.ts | 13 - .../node_modules/ip-address/src/common.ts | 32 - .../node_modules/ip-address/src/ip-address.ts | 11 - XNSimHtml/node_modules/ip-address/src/ipv4.ts | 363 - XNSimHtml/node_modules/ip-address/src/ipv6.ts | 1214 - .../ip-address/src/v4/constants.ts | 6 - .../ip-address/src/v6/constants.ts | 79 - .../node_modules/ip-address/src/v6/helpers.ts | 60 - .../ip-address/src/v6/regular-expressions.ts | 99 - .../is-fullwidth-code-point/index.d.ts | 17 - .../is-fullwidth-code-point/index.js | 50 - .../is-fullwidth-code-point/license | 9 - .../is-fullwidth-code-point/package.json | 42 - .../is-fullwidth-code-point/readme.md | 39 - XNSimHtml/node_modules/is-lambda/.npmignore | 1 - XNSimHtml/node_modules/is-lambda/.travis.yml | 8 - XNSimHtml/node_modules/is-lambda/LICENSE | 21 - XNSimHtml/node_modules/is-lambda/README.md | 27 - XNSimHtml/node_modules/is-lambda/index.js | 6 - XNSimHtml/node_modules/is-lambda/package.json | 35 - XNSimHtml/node_modules/is-lambda/test.js | 16 - XNSimHtml/node_modules/isexe/.npmignore | 2 - XNSimHtml/node_modules/isexe/LICENSE | 15 - XNSimHtml/node_modules/isexe/README.md | 51 - XNSimHtml/node_modules/isexe/index.js | 57 - XNSimHtml/node_modules/isexe/mode.js | 41 - XNSimHtml/node_modules/isexe/package.json | 31 - XNSimHtml/node_modules/isexe/test/basic.js | 221 - XNSimHtml/node_modules/isexe/windows.js | 42 - XNSimHtml/node_modules/jsbn/.npmignore | 2 - XNSimHtml/node_modules/jsbn/CHANGELOG.md | 16 - XNSimHtml/node_modules/jsbn/LICENSE | 40 - XNSimHtml/node_modules/jsbn/README.md | 173 - XNSimHtml/node_modules/jsbn/example.html | 11 - XNSimHtml/node_modules/jsbn/example.js | 5 - XNSimHtml/node_modules/jsbn/index.js | 1361 - XNSimHtml/node_modules/jsbn/package.json | 21 - .../node_modules/jsbn/test/es6-import.js | 3 - XNSimHtml/node_modules/lru-cache/LICENSE | 15 - XNSimHtml/node_modules/lru-cache/README.md | 166 - XNSimHtml/node_modules/lru-cache/index.js | 334 - XNSimHtml/node_modules/lru-cache/package.json | 34 - .../node_modules/make-fetch-happen/LICENSE | 16 - .../node_modules/make-fetch-happen/README.md | 395 - .../make-fetch-happen/lib/agent.js | 194 - .../make-fetch-happen/lib/cache/entry.js | 460 - .../make-fetch-happen/lib/cache/errors.js | 10 - .../make-fetch-happen/lib/cache/index.js | 45 - .../make-fetch-happen/lib/cache/key.js | 17 - .../make-fetch-happen/lib/cache/policy.js | 161 - .../make-fetch-happen/lib/fetch.js | 100 - .../make-fetch-happen/lib/index.js | 40 - .../make-fetch-happen/lib/options.js | 44 - .../make-fetch-happen/lib/remote.js | 102 - .../make-fetch-happen/package.json | 76 - .../node_modules/minipass-collect/LICENSE | 15 - .../node_modules/minipass-collect/README.md | 48 - .../node_modules/minipass-collect/index.js | 71 - .../minipass-collect/package.json | 29 - XNSimHtml/node_modules/minipass-fetch/LICENSE | 28 - .../node_modules/minipass-fetch/README.md | 29 - .../node_modules/minipass-fetch/index.js | 1 - .../minipass-fetch/lib/abort-error.js | 17 - .../node_modules/minipass-fetch/lib/blob.js | 97 - .../node_modules/minipass-fetch/lib/body.js | 334 - .../minipass-fetch/lib/fetch-error.js | 31 - .../minipass-fetch/lib/headers.js | 250 - .../node_modules/minipass-fetch/lib/index.js | 341 - .../minipass-fetch/lib/request.js | 263 - .../minipass-fetch/lib/response.js | 89 - .../node_modules/minipass-fetch/package.json | 53 - XNSimHtml/node_modules/minipass-flush/LICENSE | 15 - .../node_modules/minipass-flush/README.md | 47 - .../node_modules/minipass-flush/index.js | 39 - .../node_modules/minipass-flush/package.json | 39 - .../node_modules/minipass-pipeline/LICENSE | 15 - .../node_modules/minipass-pipeline/README.md | 69 - .../node_modules/minipass-pipeline/index.js | 128 - .../minipass-pipeline/package.json | 29 - .../node_modules/minipass-sized/.npmignore | 22 - XNSimHtml/node_modules/minipass-sized/LICENSE | 15 - .../node_modules/minipass-sized/README.md | 28 - .../node_modules/minipass-sized/index.js | 67 - .../minipass-sized/package-lock.json | 3464 - .../node_modules/minipass-sized/package.json | 39 - .../node_modules/minipass-sized/test/basic.js | 83 - XNSimHtml/node_modules/minipass/LICENSE | 15 - XNSimHtml/node_modules/minipass/README.md | 728 - XNSimHtml/node_modules/minipass/index.d.ts | 155 - XNSimHtml/node_modules/minipass/index.js | 649 - XNSimHtml/node_modules/minipass/package.json | 56 - XNSimHtml/node_modules/minizlib/LICENSE | 26 - XNSimHtml/node_modules/minizlib/README.md | 60 - XNSimHtml/node_modules/minizlib/constants.js | 115 - XNSimHtml/node_modules/minizlib/index.js | 348 - XNSimHtml/node_modules/minizlib/package.json | 42 - .../node-gyp/.github/ISSUE_TEMPLATE.md | 52 - .../node-gyp/.github/PULL_REQUEST_TEMPLATE.md | 17 - .../.github/workflows/release-please.yml | 56 - .../node-gyp/.github/workflows/tests.yml | 45 - .../.github/workflows/visual-studio.yml | 25 - XNSimHtml/node_modules/node-gyp/CHANGELOG.md | 687 - .../node_modules/node-gyp/CONTRIBUTING.md | 34 - XNSimHtml/node_modules/node-gyp/LICENSE | 24 - XNSimHtml/node_modules/node-gyp/README.md | 256 - XNSimHtml/node_modules/node-gyp/addon.gypi | 185 - .../node_modules/node-gyp/bin/node-gyp.js | 140 - .../node-gyp/docs/Common-issues.md | 14 - ...re-versions-of-node-cannot-be-installed.md | 94 - XNSimHtml/node_modules/node-gyp/docs/Home.md | 7 - .../node-gyp/docs/Linking-to-OpenSSL.md | 86 - .../docs/Updating-npm-bundled-node-gyp.md | 45 - .../docs/binding.gyp-files-in-the-wild.md | 48 - XNSimHtml/node_modules/node-gyp/gyp/.flake8 | 4 - .../gyp/.github/workflows/Python_tests.yml | 30 - .../gyp/.github/workflows/node-gyp.yml | 42 - .../gyp/.github/workflows/nodejs-windows.yml | 27 - .../gyp/.github/workflows/release-please.yml | 16 - XNSimHtml/node_modules/node-gyp/gyp/AUTHORS | 16 - .../node_modules/node-gyp/gyp/CHANGELOG.md | 177 - .../node-gyp/gyp/CODE_OF_CONDUCT.md | 4 - .../node_modules/node-gyp/gyp/CONTRIBUTING.md | 32 - XNSimHtml/node_modules/node-gyp/gyp/LICENSE | 28 - XNSimHtml/node_modules/node-gyp/gyp/README.md | 7 - .../node-gyp/gyp/data/win/large-pdb-shim.cc | 12 - XNSimHtml/node_modules/node-gyp/gyp/gyp | 8 - XNSimHtml/node_modules/node-gyp/gyp/gyp.bat | 5 - .../node_modules/node-gyp/gyp/gyp_main.py | 45 - .../node-gyp/gyp/pylib/gyp/MSVSNew.py | 367 - .../node-gyp/gyp/pylib/gyp/MSVSProject.py | 206 - .../node-gyp/gyp/pylib/gyp/MSVSSettings.py | 1270 - .../gyp/pylib/gyp/MSVSSettings_test.py | 1547 - .../node-gyp/gyp/pylib/gyp/MSVSToolFile.py | 59 - .../node-gyp/gyp/pylib/gyp/MSVSUserFile.py | 153 - .../node-gyp/gyp/pylib/gyp/MSVSUtil.py | 271 - .../node-gyp/gyp/pylib/gyp/MSVSVersion.py | 574 - .../node-gyp/gyp/pylib/gyp/__init__.py | 666 - .../gyp/__pycache__/__init__.cpython-39.pyc | Bin 13267 -> 0 bytes .../gyp/__pycache__/common.cpython-39.pyc | Bin 15090 -> 0 bytes .../gyp/__pycache__/input.cpython-39.pyc | Bin 51727 -> 0 bytes .../__pycache__/simple_copy.cpython-39.pyc | Bin 1753 -> 0 bytes .../xcode_emulation.cpython-39.pyc | Bin 55685 -> 0 bytes .../node-gyp/gyp/pylib/gyp/common.py | 654 - .../node-gyp/gyp/pylib/gyp/common_test.py | 78 - .../node-gyp/gyp/pylib/gyp/easy_xml.py | 165 - .../node-gyp/gyp/pylib/gyp/easy_xml_test.py | 109 - .../node-gyp/gyp/pylib/gyp/flock_tool.py | 55 - .../gyp/pylib/gyp/generator/__init__.py | 0 .../__pycache__/__init__.cpython-39.pyc | Bin 181 -> 0 bytes .../generator/__pycache__/make.cpython-39.pyc | Bin 63491 -> 0 bytes .../gyp/pylib/gyp/generator/analyzer.py | 808 - .../gyp/pylib/gyp/generator/android.py | 1173 - .../node-gyp/gyp/pylib/gyp/generator/cmake.py | 1321 - .../gyp/generator/compile_commands_json.py | 120 - .../gyp/generator/dump_dependency_json.py | 103 - .../gyp/pylib/gyp/generator/eclipse.py | 464 - .../node-gyp/gyp/pylib/gyp/generator/gypd.py | 89 - .../node-gyp/gyp/pylib/gyp/generator/gypsh.py | 58 - .../node-gyp/gyp/pylib/gyp/generator/make.py | 2518 - .../node-gyp/gyp/pylib/gyp/generator/msvs.py | 3978 - .../gyp/pylib/gyp/generator/msvs_test.py | 44 - .../node-gyp/gyp/pylib/gyp/generator/ninja.py | 2936 - .../gyp/pylib/gyp/generator/ninja_test.py | 55 - .../node-gyp/gyp/pylib/gyp/generator/xcode.py | 1394 - .../gyp/pylib/gyp/generator/xcode_test.py | 25 - .../node-gyp/gyp/pylib/gyp/input.py | 3137 - .../node-gyp/gyp/pylib/gyp/input_test.py | 98 - .../node-gyp/gyp/pylib/gyp/mac_tool.py | 771 - .../node-gyp/gyp/pylib/gyp/msvs_emulation.py | 1271 - .../node-gyp/gyp/pylib/gyp/ninja_syntax.py | 174 - .../node-gyp/gyp/pylib/gyp/simple_copy.py | 61 - .../node-gyp/gyp/pylib/gyp/win_tool.py | 374 - .../node-gyp/gyp/pylib/gyp/xcode_emulation.py | 1939 - .../node-gyp/gyp/pylib/gyp/xcode_ninja.py | 302 - .../node-gyp/gyp/pylib/gyp/xcodeproj_file.py | 3197 - .../node-gyp/gyp/pylib/gyp/xml_fix.py | 65 - .../node-gyp/gyp/requirements_dev.txt | 2 - XNSimHtml/node_modules/node-gyp/gyp/setup.py | 42 - .../node_modules/node-gyp/gyp/test_gyp.py | 260 - .../node_modules/node-gyp/gyp/tools/README | 15 - .../node-gyp/gyp/tools/Xcode/README | 5 - .../tools/Xcode/Specifications/gyp.pbfilespec | 27 - .../tools/Xcode/Specifications/gyp.xclangspec | 226 - .../node-gyp/gyp/tools/emacs/README | 12 - .../node-gyp/gyp/tools/emacs/gyp-tests.el | 63 - .../node-gyp/gyp/tools/emacs/gyp.el | 275 - .../gyp/tools/emacs/run-unit-tests.sh | 7 - .../gyp/tools/emacs/testdata/media.gyp | 1105 - .../tools/emacs/testdata/media.gyp.fontified | 1107 - .../node-gyp/gyp/tools/graphviz.py | 102 - .../node-gyp/gyp/tools/pretty_gyp.py | 156 - .../node-gyp/gyp/tools/pretty_sln.py | 181 - .../node-gyp/gyp/tools/pretty_vcproj.py | 339 - .../node-gyp/lib/Find-VisualStudio.cs | 250 - XNSimHtml/node_modules/node-gyp/lib/build.js | 204 - XNSimHtml/node_modules/node-gyp/lib/clean.js | 15 - .../node_modules/node-gyp/lib/configure.js | 294 - .../node-gyp/lib/create-config-gypi.js | 146 - .../node-gyp/lib/find-node-directory.js | 63 - .../node_modules/node-gyp/lib/find-python.js | 344 - .../node-gyp/lib/find-visualstudio.js | 446 - .../node_modules/node-gyp/lib/install.js | 376 - XNSimHtml/node_modules/node-gyp/lib/list.js | 27 - .../node_modules/node-gyp/lib/node-gyp.js | 211 - .../node-gyp/lib/process-release.js | 147 - .../node_modules/node-gyp/lib/rebuild.js | 13 - XNSimHtml/node_modules/node-gyp/lib/remove.js | 46 - XNSimHtml/node_modules/node-gyp/lib/util.js | 64 - .../node_modules/node-gyp/macOS_Catalina.md | 104 - .../node-gyp/macOS_Catalina_acid_test.sh | 21 - .../node-gyp/node_modules/.bin/semver | 1 - .../node-gyp/node_modules/semver/LICENSE | 15 - .../node-gyp/node_modules/semver/README.md | 664 - .../node_modules/semver/bin/semver.js | 189 - .../node_modules/semver/classes/comparator.js | 141 - .../node_modules/semver/classes/index.js | 5 - .../node_modules/semver/classes/range.js | 554 - .../node_modules/semver/classes/semver.js | 318 - .../node_modules/semver/functions/clean.js | 6 - .../node_modules/semver/functions/cmp.js | 52 - .../node_modules/semver/functions/coerce.js | 60 - .../semver/functions/compare-build.js | 7 - .../semver/functions/compare-loose.js | 3 - .../node_modules/semver/functions/compare.js | 5 - .../node_modules/semver/functions/diff.js | 58 - .../node_modules/semver/functions/eq.js | 3 - .../node_modules/semver/functions/gt.js | 3 - .../node_modules/semver/functions/gte.js | 3 - .../node_modules/semver/functions/inc.js | 19 - .../node_modules/semver/functions/lt.js | 3 - .../node_modules/semver/functions/lte.js | 3 - .../node_modules/semver/functions/major.js | 3 - .../node_modules/semver/functions/minor.js | 3 - .../node_modules/semver/functions/neq.js | 3 - .../node_modules/semver/functions/parse.js | 16 - .../node_modules/semver/functions/patch.js | 3 - .../semver/functions/prerelease.js | 6 - .../node_modules/semver/functions/rcompare.js | 3 - .../node_modules/semver/functions/rsort.js | 3 - .../semver/functions/satisfies.js | 10 - .../node_modules/semver/functions/sort.js | 3 - .../node_modules/semver/functions/valid.js | 6 - .../node-gyp/node_modules/semver/index.js | 89 - .../node_modules/semver/internal/constants.js | 35 - .../node_modules/semver/internal/debug.js | 9 - .../semver/internal/identifiers.js | 23 - .../node_modules/semver/internal/lrucache.js | 40 - .../semver/internal/parse-options.js | 15 - .../node_modules/semver/internal/re.js | 219 - .../node-gyp/node_modules/semver/package.json | 78 - .../node-gyp/node_modules/semver/preload.js | 2 - .../node-gyp/node_modules/semver/range.bnf | 16 - .../node_modules/semver/ranges/gtr.js | 4 - .../node_modules/semver/ranges/intersects.js | 7 - .../node_modules/semver/ranges/ltr.js | 4 - .../semver/ranges/max-satisfying.js | 25 - .../semver/ranges/min-satisfying.js | 24 - .../node_modules/semver/ranges/min-version.js | 61 - .../node_modules/semver/ranges/outside.js | 80 - .../node_modules/semver/ranges/simplify.js | 47 - .../node_modules/semver/ranges/subset.js | 247 - .../semver/ranges/to-comparators.js | 8 - .../node_modules/semver/ranges/valid.js | 11 - XNSimHtml/node_modules/node-gyp/package.json | 50 - .../node-gyp/src/win_delay_load_hook.cc | 39 - .../node_modules/node-gyp/test/common.js | 3 - .../fixtures/VS_2017_BuildTools_minimal.txt | 1 - .../fixtures/VS_2017_Community_workload.txt | 1 - .../test/fixtures/VS_2017_Express.txt | 1 - .../test/fixtures/VS_2017_Unusable.txt | 1 - .../fixtures/VS_2019_BuildTools_minimal.txt | 1 - .../fixtures/VS_2019_Community_workload.txt | 1 - .../test/fixtures/VS_2019_Preview.txt | 1 - .../node-gyp/test/fixtures/ca-bundle.crt | 40 - .../node-gyp/test/fixtures/ca.crt | 21 - .../fixtures/nodedir/include/node/config.gypi | 6 - .../node-gyp/test/fixtures/server.crt | 21 - .../node-gyp/test/fixtures/server.key | 27 - .../node-gyp/test/fixtures/test-charmap.py | 31 - .../node-gyp/test/process-exec-sync.js | 140 - .../node-gyp/test/simple-proxy.js | 27 - .../node_modules/node-gyp/test/test-addon.js | 150 - .../node-gyp/test/test-configure-python.js | 82 - .../node-gyp/test/test-create-config-gypi.js | 70 - .../node-gyp/test/test-download.js | 207 - .../test/test-find-accessible-sync.js | 84 - .../node-gyp/test/test-find-node-directory.js | 119 - .../node-gyp/test/test-find-python.js | 226 - .../node-gyp/test/test-find-visualstudio.js | 676 - .../node-gyp/test/test-install.js | 46 - .../node-gyp/test/test-options.js | 31 - .../node-gyp/test/test-process-release.js | 434 - XNSimHtml/node_modules/node-gyp/update-gyp.py | 46 - XNSimHtml/node_modules/nopt/CHANGELOG.md | 58 - XNSimHtml/node_modules/nopt/LICENSE | 15 - XNSimHtml/node_modules/nopt/README.md | 213 - XNSimHtml/node_modules/nopt/bin/nopt.js | 54 - XNSimHtml/node_modules/nopt/lib/nopt.js | 441 - XNSimHtml/node_modules/nopt/package.json | 34 - XNSimHtml/node_modules/npmlog/LICENSE.md | 20 - XNSimHtml/node_modules/npmlog/README.md | 216 - XNSimHtml/node_modules/npmlog/lib/log.js | 404 - XNSimHtml/node_modules/npmlog/package.json | 51 - XNSimHtml/node_modules/p-map/index.d.ts | 67 - XNSimHtml/node_modules/p-map/index.js | 81 - XNSimHtml/node_modules/p-map/license | 9 - XNSimHtml/node_modules/p-map/package.json | 53 - XNSimHtml/node_modules/p-map/readme.md | 89 - .../node_modules/path-is-absolute/index.js | 20 - .../node_modules/path-is-absolute/license | 21 - .../path-is-absolute/package.json | 43 - .../node_modules/path-is-absolute/readme.md | 59 - .../node_modules/promise-inflight/LICENSE | 14 - .../node_modules/promise-inflight/README.md | 34 - .../node_modules/promise-inflight/inflight.js | 36 - .../promise-inflight/package.json | 24 - .../node_modules/promise-retry/.editorconfig | 15 - .../node_modules/promise-retry/.jshintrc | 64 - .../node_modules/promise-retry/.travis.yml | 4 - XNSimHtml/node_modules/promise-retry/LICENSE | 19 - .../node_modules/promise-retry/README.md | 94 - XNSimHtml/node_modules/promise-retry/index.js | 52 - .../node_modules/promise-retry/package.json | 37 - .../node_modules/promise-retry/test/test.js | 263 - XNSimHtml/node_modules/retry/.npmignore | 3 - XNSimHtml/node_modules/retry/.travis.yml | 15 - XNSimHtml/node_modules/retry/License | 21 - XNSimHtml/node_modules/retry/Makefile | 18 - XNSimHtml/node_modules/retry/README.md | 227 - XNSimHtml/node_modules/retry/equation.gif | Bin 1209 -> 0 bytes XNSimHtml/node_modules/retry/example/dns.js | 31 - XNSimHtml/node_modules/retry/example/stop.js | 40 - XNSimHtml/node_modules/retry/index.js | 1 - XNSimHtml/node_modules/retry/lib/retry.js | 100 - .../node_modules/retry/lib/retry_operation.js | 158 - XNSimHtml/node_modules/retry/package.json | 32 - XNSimHtml/node_modules/retry/test/common.js | 10 - .../retry/test/integration/test-forever.js | 24 - .../test/integration/test-retry-operation.js | 258 - .../retry/test/integration/test-retry-wrap.js | 101 - .../retry/test/integration/test-timeouts.js | 69 - XNSimHtml/node_modules/rimraf/CHANGELOG.md | 65 - XNSimHtml/node_modules/rimraf/LICENSE | 15 - XNSimHtml/node_modules/rimraf/README.md | 101 - XNSimHtml/node_modules/rimraf/bin.js | 68 - XNSimHtml/node_modules/rimraf/package.json | 32 - XNSimHtml/node_modules/rimraf/rimraf.js | 360 - XNSimHtml/node_modules/sax/LICENSE | 41 - XNSimHtml/node_modules/sax/README.md | 228 - XNSimHtml/node_modules/sax/lib/sax.js | 1597 - XNSimHtml/node_modules/sax/package.json | 29 - .../node_modules/set-blocking/CHANGELOG.md | 26 - .../node_modules/set-blocking/LICENSE.txt | 14 - XNSimHtml/node_modules/set-blocking/README.md | 31 - XNSimHtml/node_modules/set-blocking/index.js | 7 - .../node_modules/set-blocking/package.json | 42 - .../node_modules/signal-exit/LICENSE.txt | 16 - XNSimHtml/node_modules/signal-exit/README.md | 39 - XNSimHtml/node_modules/signal-exit/index.js | 202 - .../node_modules/signal-exit/package.json | 38 - XNSimHtml/node_modules/signal-exit/signals.js | 53 - .../smart-buffer/.prettierrc.yaml | 5 - .../node_modules/smart-buffer/.travis.yml | 13 - XNSimHtml/node_modules/smart-buffer/LICENSE | 20 - XNSimHtml/node_modules/smart-buffer/README.md | 633 - .../smart-buffer/docs/CHANGELOG.md | 70 - .../smart-buffer/docs/README_v3.md | 367 - .../node_modules/smart-buffer/docs/ROADMAP.md | 0 .../node_modules/smart-buffer/package.json | 79 - .../smart-buffer/typings/smartbuffer.d.ts | 755 - .../smart-buffer/typings/utils.d.ts | 66 - .../node_modules/socks-proxy-agent/README.md | 152 - .../socks-proxy-agent/dist/index.d.ts | 38 - .../socks-proxy-agent/dist/index.js | 197 - .../socks-proxy-agent/dist/index.js.map | 1 - .../node_modules/debug/LICENSE | 20 - .../node_modules/debug/README.md | 481 - .../node_modules/debug/package.json | 65 - .../node_modules/debug/src/browser.js | 272 - .../node_modules/debug/src/common.js | 292 - .../node_modules/debug/src/index.js | 10 - .../node_modules/debug/src/node.js | 263 - .../node_modules/ms/index.js | 162 - .../node_modules/ms/license.md | 21 - .../node_modules/ms/package.json | 38 - .../node_modules/ms/readme.md | 59 - .../socks-proxy-agent/package.json | 181 - XNSimHtml/node_modules/socks/.eslintrc.cjs | 11 - XNSimHtml/node_modules/socks/.prettierrc.yaml | 7 - XNSimHtml/node_modules/socks/LICENSE | 20 - XNSimHtml/node_modules/socks/README.md | 686 - .../node_modules/socks/docs/examples/index.md | 17 - .../examples/javascript/associateExample.md | 90 - .../docs/examples/javascript/bindExample.md | 83 - .../examples/javascript/connectExample.md | 258 - .../examples/typescript/associateExample.md | 93 - .../docs/examples/typescript/bindExample.md | 86 - .../examples/typescript/connectExample.md | 265 - XNSimHtml/node_modules/socks/docs/index.md | 5 - .../socks/docs/migratingFromV1.md | 86 - XNSimHtml/node_modules/socks/package.json | 58 - .../socks/typings/client/socksclient.d.ts | 162 - .../socks/typings/common/constants.d.ts | 151 - .../socks/typings/common/helpers.d.ts | 17 - .../socks/typings/common/receivebuffer.d.ts | 12 - .../socks/typings/common/util.d.ts | 14 - .../node_modules/socks/typings/index.d.ts | 1 - .../node_modules/sprintf-js/CONTRIBUTORS.md | 26 - XNSimHtml/node_modules/sprintf-js/LICENSE | 24 - XNSimHtml/node_modules/sprintf-js/README.md | 143 - .../sprintf-js/dist/.gitattributes | 4 - .../sprintf-js/dist/angular-sprintf.min.js | 3 - .../dist/angular-sprintf.min.js.map | 1 - .../sprintf-js/dist/sprintf.min.js | 3 - .../sprintf-js/dist/sprintf.min.js.map | 1 - .../node_modules/sprintf-js/package.json | 35 - .../sprintf-js/src/angular-sprintf.js | 24 - .../node_modules/sprintf-js/src/sprintf.js | 231 - XNSimHtml/node_modules/sqlite3/LICENSE | 25 - XNSimHtml/node_modules/sqlite3/README.md | 249 - XNSimHtml/node_modules/sqlite3/binding.gyp | 58 - .../sqlite3/deps/common-sqlite.gypi | 60 - .../node_modules/sqlite3/deps/extract.js | 10 - .../deps/sqlite-autoconf-3440200.tar.gz | Bin 3204841 -> 0 bytes .../node_modules/sqlite3/deps/sqlite3.gyp | 121 - .../sqlite3/lib/sqlite3-binding.js | 1 - .../node_modules/sqlite3/lib/sqlite3.d.ts | 205 - XNSimHtml/node_modules/sqlite3/lib/sqlite3.js | 207 - XNSimHtml/node_modules/sqlite3/lib/trace.js | 38 - .../node_modules/node-addon-api/LICENSE.md | 9 - .../node_modules/node-addon-api/README.md | 319 - .../node_modules/node-addon-api/common.gypi | 20 - .../node_modules/node-addon-api/except.gypi | 25 - .../node_modules/node-addon-api/index.js | 12 - .../node-addon-api/napi-inl.deprecated.h | 186 - .../node_modules/node-addon-api/napi-inl.h | 6607 - .../node_modules/node-addon-api/napi.h | 3201 - .../node-addon-api/node_addon_api.gyp | 32 - .../node_modules/node-addon-api/node_api.gyp | 9 - .../node_modules/node-addon-api/noexcept.gypi | 26 - .../node_modules/node-addon-api/nothing.c | 0 .../node-addon-api/package-support.json | 21 - .../node_modules/node-addon-api/package.json | 480 - .../node-addon-api/tools/README.md | 73 - .../node-addon-api/tools/check-napi.js | 99 - .../node-addon-api/tools/clang-format.js | 71 - .../node-addon-api/tools/conversion.js | 301 - .../node-addon-api/tools/eslint-format.js | 79 - XNSimHtml/node_modules/sqlite3/package.json | 89 - XNSimHtml/node_modules/sqlite3/src/async.h | 76 - XNSimHtml/node_modules/sqlite3/src/backup.cc | 418 - XNSimHtml/node_modules/sqlite3/src/backup.h | 209 - .../node_modules/sqlite3/src/database.cc | 751 - XNSimHtml/node_modules/sqlite3/src/database.h | 188 - .../node_modules/sqlite3/src/gcc-preinclude.h | 30 - XNSimHtml/node_modules/sqlite3/src/macros.h | 207 - .../node_modules/sqlite3/src/node_sqlite3.cc | 128 - .../node_modules/sqlite3/src/statement.cc | 939 - .../node_modules/sqlite3/src/statement.h | 244 - .../node_modules/sqlite3/src/threading.h | 10 - XNSimHtml/node_modules/ssri/CHANGELOG.md | 355 - XNSimHtml/node_modules/ssri/LICENSE.md | 16 - XNSimHtml/node_modules/ssri/README.md | 528 - XNSimHtml/node_modules/ssri/index.js | 470 - XNSimHtml/node_modules/ssri/package.json | 52 - .../node_modules/string-width/index.d.ts | 29 - XNSimHtml/node_modules/string-width/index.js | 47 - XNSimHtml/node_modules/string-width/license | 9 - .../node_modules/string-width/package.json | 56 - XNSimHtml/node_modules/string-width/readme.md | 50 - XNSimHtml/node_modules/strip-ansi/index.d.ts | 17 - XNSimHtml/node_modules/strip-ansi/index.js | 4 - XNSimHtml/node_modules/strip-ansi/license | 9 - .../node_modules/strip-ansi/package.json | 54 - XNSimHtml/node_modules/strip-ansi/readme.md | 46 - XNSimHtml/node_modules/tar/LICENSE | 15 - XNSimHtml/node_modules/tar/README.md | 1080 - XNSimHtml/node_modules/tar/index.js | 18 - XNSimHtml/node_modules/tar/lib/create.js | 111 - XNSimHtml/node_modules/tar/lib/extract.js | 113 - .../node_modules/tar/lib/get-write-flag.js | 20 - XNSimHtml/node_modules/tar/lib/header.js | 304 - .../node_modules/tar/lib/high-level-opt.js | 29 - .../node_modules/tar/lib/large-numbers.js | 104 - XNSimHtml/node_modules/tar/lib/list.js | 139 - XNSimHtml/node_modules/tar/lib/mkdir.js | 229 - XNSimHtml/node_modules/tar/lib/mode-fix.js | 27 - .../node_modules/tar/lib/normalize-unicode.js | 12 - .../tar/lib/normalize-windows-path.js | 8 - XNSimHtml/node_modules/tar/lib/pack.js | 432 - XNSimHtml/node_modules/tar/lib/parse.js | 552 - .../node_modules/tar/lib/path-reservations.js | 156 - XNSimHtml/node_modules/tar/lib/pax.js | 150 - XNSimHtml/node_modules/tar/lib/read-entry.js | 107 - XNSimHtml/node_modules/tar/lib/replace.js | 246 - .../tar/lib/strip-absolute-path.js | 24 - .../tar/lib/strip-trailing-slashes.js | 13 - XNSimHtml/node_modules/tar/lib/types.js | 44 - XNSimHtml/node_modules/tar/lib/unpack.js | 923 - XNSimHtml/node_modules/tar/lib/update.js | 40 - XNSimHtml/node_modules/tar/lib/warn-mixin.js | 24 - XNSimHtml/node_modules/tar/lib/winchars.js | 23 - XNSimHtml/node_modules/tar/lib/write-entry.js | 546 - .../node_modules/tar/node_modules/.bin/mkdirp | 1 - .../tar/node_modules/minipass/LICENSE | 15 - .../tar/node_modules/minipass/README.md | 769 - .../tar/node_modules/minipass/index.d.ts | 152 - .../tar/node_modules/minipass/index.js | 702 - .../tar/node_modules/minipass/index.mjs | 702 - .../tar/node_modules/minipass/package.json | 76 - .../tar/node_modules/mkdirp/CHANGELOG.md | 15 - .../tar/node_modules/mkdirp/LICENSE | 21 - .../tar/node_modules/mkdirp/bin/cmd.js | 68 - .../tar/node_modules/mkdirp/index.js | 31 - .../tar/node_modules/mkdirp/lib/find-made.js | 29 - .../node_modules/mkdirp/lib/mkdirp-manual.js | 64 - .../node_modules/mkdirp/lib/mkdirp-native.js | 39 - .../tar/node_modules/mkdirp/lib/opts-arg.js | 23 - .../tar/node_modules/mkdirp/lib/path-arg.js | 29 - .../tar/node_modules/mkdirp/lib/use-native.js | 10 - .../tar/node_modules/mkdirp/package.json | 44 - .../tar/node_modules/mkdirp/readme.markdown | 266 - XNSimHtml/node_modules/tar/package.json | 70 - .../unique-filename/.nyc_output/54942.json | 1 - .../unique-filename/.nyc_output/54944.json | 1 - .../node_modules/unique-filename/LICENSE | 5 - .../node_modules/unique-filename/README.md | 33 - .../coverage/__root__/index.html | 73 - .../coverage/__root__/index.js.html | 69 - .../unique-filename/coverage/base.css | 182 - .../unique-filename/coverage/index.html | 73 - .../unique-filename/coverage/prettify.css | 1 - .../unique-filename/coverage/prettify.js | 1 - .../coverage/sort-arrow-sprite.png | Bin 209 -> 0 bytes .../unique-filename/coverage/sorter.js | 156 - .../node_modules/unique-filename/index.js | 8 - .../node_modules/unique-filename/package.json | 27 - .../unique-filename/test/index.js | 23 - .../node_modules/unique-slug/.travis.yml | 10 - XNSimHtml/node_modules/unique-slug/LICENSE | 15 - XNSimHtml/node_modules/unique-slug/README.md | 19 - XNSimHtml/node_modules/unique-slug/index.js | 11 - .../node_modules/unique-slug/package.json | 23 - .../node_modules/unique-slug/test/index.js | 13 - XNSimHtml/node_modules/which/CHANGELOG.md | 166 - XNSimHtml/node_modules/which/LICENSE | 15 - XNSimHtml/node_modules/which/README.md | 54 - XNSimHtml/node_modules/which/bin/node-which | 52 - XNSimHtml/node_modules/which/package.json | 43 - XNSimHtml/node_modules/which/which.js | 125 - XNSimHtml/node_modules/wide-align/LICENSE | 14 - XNSimHtml/node_modules/wide-align/README.md | 47 - XNSimHtml/node_modules/wide-align/align.js | 65 - .../node_modules/wide-align/package.json | 33 - XNSimHtml/node_modules/xml2js/LICENSE | 19 - XNSimHtml/node_modules/xml2js/README.md | 507 - XNSimHtml/node_modules/xml2js/lib/bom.js | 12 - XNSimHtml/node_modules/xml2js/lib/builder.js | 127 - XNSimHtml/node_modules/xml2js/lib/defaults.js | 72 - XNSimHtml/node_modules/xml2js/lib/parser.js | 395 - .../node_modules/xml2js/lib/processors.js | 34 - .../node_modules/xml2js/lib/xml2js.bc.js | 28337 ---- XNSimHtml/node_modules/xml2js/lib/xml2js.js | 39 - XNSimHtml/node_modules/xml2js/package.json | 93 - .../node_modules/xmlbuilder/CHANGELOG.md | 470 - XNSimHtml/node_modules/xmlbuilder/LICENSE | 21 - XNSimHtml/node_modules/xmlbuilder/README.md | 86 - .../node_modules/xmlbuilder/appveyor.yml | 20 - .../node_modules/xmlbuilder/lib/Derivation.js | 10 - .../xmlbuilder/lib/DocumentPosition.js | 12 - .../node_modules/xmlbuilder/lib/NodeType.js | 23 - .../xmlbuilder/lib/OperationType.js | 11 - .../node_modules/xmlbuilder/lib/Utility.js | 83 - .../xmlbuilder/lib/WriterState.js | 10 - .../xmlbuilder/lib/XMLAttribute.js | 108 - .../node_modules/xmlbuilder/lib/XMLCData.js | 36 - .../xmlbuilder/lib/XMLCharacterData.js | 79 - .../node_modules/xmlbuilder/lib/XMLComment.js | 36 - .../xmlbuilder/lib/XMLDOMConfiguration.js | 64 - .../xmlbuilder/lib/XMLDOMErrorHandler.js | 16 - .../xmlbuilder/lib/XMLDOMImplementation.js | 32 - .../xmlbuilder/lib/XMLDOMStringList.js | 28 - .../xmlbuilder/lib/XMLDTDAttList.js | 55 - .../xmlbuilder/lib/XMLDTDElement.js | 38 - .../xmlbuilder/lib/XMLDTDEntity.js | 97 - .../xmlbuilder/lib/XMLDTDNotation.js | 52 - .../xmlbuilder/lib/XMLDeclaration.js | 43 - .../node_modules/xmlbuilder/lib/XMLDocType.js | 186 - .../xmlbuilder/lib/XMLDocument.js | 242 - .../xmlbuilder/lib/XMLDocumentCB.js | 528 - .../xmlbuilder/lib/XMLDocumentFragment.js | 24 - .../node_modules/xmlbuilder/lib/XMLDummy.js | 31 - .../node_modules/xmlbuilder/lib/XMLElement.js | 298 - .../xmlbuilder/lib/XMLNamedNodeMap.js | 58 - .../node_modules/xmlbuilder/lib/XMLNode.js | 785 - .../xmlbuilder/lib/XMLNodeFilter.js | 48 - .../xmlbuilder/lib/XMLNodeList.js | 28 - .../lib/XMLProcessingInstruction.js | 49 - .../node_modules/xmlbuilder/lib/XMLRaw.js | 35 - .../xmlbuilder/lib/XMLStreamWriter.js | 176 - .../xmlbuilder/lib/XMLStringWriter.js | 35 - .../xmlbuilder/lib/XMLStringifier.js | 240 - .../node_modules/xmlbuilder/lib/XMLText.js | 69 - .../xmlbuilder/lib/XMLTypeInfo.js | 21 - .../xmlbuilder/lib/XMLUserDataHandler.js | 16 - .../xmlbuilder/lib/XMLWriterBase.js | 428 - .../node_modules/xmlbuilder/lib/index.js | 65 - .../node_modules/xmlbuilder/package.json | 39 - .../xmlbuilder/typings/index.d.ts | 153 - XNSimHtml/node_modules/yallist/LICENSE | 15 - XNSimHtml/node_modules/yallist/README.md | 204 - XNSimHtml/node_modules/yallist/iterator.js | 8 - XNSimHtml/node_modules/yallist/package.json | 29 - XNSimHtml/node_modules/yallist/yallist.js | 426 - XNSimHtml/package-lock.json | 1862 +- XNSimHtml/package.json | 5 +- XNSimHtml/utils/file-utils.js | 48 +- 3206 files changed, 71 insertions(+), 459345 deletions(-) create mode 100644 XNSimHtml/assets/icons/png/code.png create mode 100644 XNSimHtml/assets/icons/png/code_b.png create mode 100644 XNSimHtml/assets/icons/png/delete.png create mode 100644 XNSimHtml/assets/icons/png/excel.png create mode 100644 XNSimHtml/assets/icons/png/excel_b.png create mode 100644 XNSimHtml/assets/icons/png/upload.png create mode 100644 XNSimHtml/assets/icons/png/upload_b.png delete mode 120000 XNSimHtml/node_modules/.bin/color-support delete mode 120000 XNSimHtml/node_modules/.bin/node-gyp delete mode 120000 XNSimHtml/node_modules/.bin/node-which delete mode 120000 XNSimHtml/node_modules/.bin/nopt delete mode 120000 XNSimHtml/node_modules/.bin/rimraf delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/LICENSE.txt delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/README.md delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/all.css delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/all.min.css delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/brands.css delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/brands.min.css delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/fontawesome.css delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/fontawesome.min.css delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/regular.css delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/regular.min.css delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/solid.css delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/solid.min.css delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/svg-with-js.css delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/svg-with-js.min.css delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/v4-font-face.css delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/v4-font-face.min.css delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/v4-shims.css delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/v4-shims.min.css delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/v5-font-face.css delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/v5-font-face.min.css delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/js/all.js delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/js/all.min.js delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/js/brands.js delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/js/brands.min.js delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/js/conflict-detection.js delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/js/conflict-detection.min.js delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/js/fontawesome.js delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/js/fontawesome.min.js delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/js/regular.js delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/js/regular.min.js delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/js/solid.js delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/js/solid.min.js delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/js/v4-shims.js delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/js/v4-shims.min.js delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/less/_animated.less delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/less/_bordered-pulled.less delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/less/_core.less delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/less/_fixed-width.less delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/less/_icons.less delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/less/_list.less delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/less/_mixins.less delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/less/_rotated-flipped.less delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/less/_screen-reader.less delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/less/_shims.less delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/less/_sizing.less delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/less/_stacked.less delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/less/_variables.less delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/less/brands.less delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/less/fontawesome.less delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/less/regular.less delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/less/solid.less delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/less/v4-shims.less delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/metadata/categories.yml delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/metadata/icon-families.json delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/metadata/icon-families.yml delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/metadata/icons.yml delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/metadata/shims.yml delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/metadata/sponsors.yml delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/package.json delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/scss/_animated.scss delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/scss/_bordered-pulled.scss delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/scss/_core.scss delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/scss/_fixed-width.scss delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/scss/_functions.scss delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/scss/_icons.scss delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/scss/_list.scss delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/scss/_mixins.scss delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/scss/_rotated-flipped.scss delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/scss/_screen-reader.scss delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/scss/_shims.scss delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/scss/_sizing.scss delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/scss/_stacked.scss delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/scss/_variables.scss delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/scss/brands.scss delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/scss/fontawesome.scss delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/scss/regular.scss delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/scss/solid.scss delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/scss/v4-shims.scss delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/sprites/brands.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/sprites/regular.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/sprites/solid.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/42-group.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/500px.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/accessible-icon.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/accusoft.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/adn.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/adversal.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/affiliatetheme.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/airbnb.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/algolia.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/alipay.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/amazon-pay.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/amazon.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/amilia.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/android.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/angellist.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/angrycreative.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/angular.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/app-store-ios.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/app-store.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/apper.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/apple-pay.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/apple.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/artstation.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/asymmetrik.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/atlassian.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/audible.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/autoprefixer.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/avianex.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/aviato.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/aws.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/bandcamp.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/battle-net.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/behance.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/bilibili.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/bimobject.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/bitbucket.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/bitcoin.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/bity.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/black-tie.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/blackberry.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/blogger-b.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/blogger.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/bluesky.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/bluetooth-b.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/bluetooth.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/bootstrap.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/bots.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/brave-reverse.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/brave.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/btc.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/buffer.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/buromobelexperte.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/buy-n-large.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/buysellads.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/canadian-maple-leaf.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/cc-amazon-pay.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/cc-amex.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/cc-apple-pay.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/cc-diners-club.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/cc-discover.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/cc-jcb.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/cc-mastercard.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/cc-paypal.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/cc-stripe.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/cc-visa.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/centercode.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/centos.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/chrome.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/chromecast.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/cloudflare.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/cloudscale.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/cloudsmith.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/cloudversify.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/cmplid.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/codepen.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/codiepie.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/confluence.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/connectdevelop.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/contao.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/cotton-bureau.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/cpanel.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/creative-commons-by.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/creative-commons-nc-eu.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/creative-commons-nc-jp.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/creative-commons-nc.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/creative-commons-nd.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/creative-commons-pd-alt.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/creative-commons-pd.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/creative-commons-remix.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/creative-commons-sa.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/creative-commons-sampling-plus.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/creative-commons-sampling.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/creative-commons-share.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/creative-commons-zero.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/creative-commons.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/critical-role.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/css.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/css3-alt.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/css3.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/cuttlefish.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/d-and-d-beyond.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/d-and-d.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/dailymotion.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/dart-lang.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/dashcube.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/debian.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/deezer.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/delicious.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/deploydog.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/deskpro.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/dev.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/deviantart.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/dhl.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/diaspora.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/digg.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/digital-ocean.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/discord.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/discourse.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/dochub.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/docker.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/draft2digital.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/dribbble.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/dropbox.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/drupal.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/dyalog.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/earlybirds.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/ebay.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/edge-legacy.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/edge.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/elementor.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/ello.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/ember.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/empire.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/envira.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/erlang.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/ethereum.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/etsy.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/evernote.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/expeditedssl.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/facebook-f.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/facebook-messenger.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/facebook.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/fantasy-flight-games.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/fedex.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/fedora.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/figma.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/files-pinwheel.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/firefox-browser.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/firefox.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/first-order-alt.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/first-order.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/firstdraft.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/flickr.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/flipboard.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/flutter.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/fly.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/font-awesome.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/fonticons-fi.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/fonticons.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/fort-awesome-alt.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/fort-awesome.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/forumbee.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/foursquare.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/free-code-camp.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/freebsd.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/fulcrum.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/galactic-republic.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/galactic-senate.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/get-pocket.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/gg-circle.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/gg.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/git-alt.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/git.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/github-alt.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/github.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/gitkraken.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/gitlab.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/gitter.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/glide-g.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/glide.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/gofore.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/golang.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/goodreads-g.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/goodreads.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/google-drive.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/google-pay.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/google-play.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/google-plus-g.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/google-plus.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/google-scholar.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/google-wallet.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/google.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/gratipay.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/grav.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/gripfire.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/grunt.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/guilded.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/gulp.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/hacker-news.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/hackerrank.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/hashnode.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/hips.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/hire-a-helper.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/hive.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/hooli.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/hornbill.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/hotjar.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/houzz.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/html5.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/hubspot.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/ideal.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/imdb.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/instagram.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/instalod.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/intercom.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/internet-explorer.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/invision.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/ioxhost.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/itch-io.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/itunes-note.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/itunes.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/java.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/jedi-order.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/jenkins.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/jira.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/joget.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/joomla.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/js.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/jsfiddle.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/jxl.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/kaggle.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/keybase.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/keycdn.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/kickstarter-k.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/kickstarter.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/korvue.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/laravel.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/lastfm.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/leanpub.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/less.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/letterboxd.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/line.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/linkedin-in.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/linkedin.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/linode.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/linux.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/lyft.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/magento.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/mailchimp.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/mandalorian.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/markdown.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/mastodon.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/maxcdn.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/mdb.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/medapps.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/medium.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/medrt.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/meetup.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/megaport.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/mendeley.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/meta.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/microblog.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/microsoft.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/mintbit.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/mix.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/mixcloud.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/mixer.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/mizuni.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/modx.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/monero.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/napster.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/neos.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/nfc-directional.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/nfc-symbol.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/nimblr.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/node-js.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/node.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/npm.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/ns8.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/nutritionix.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/octopus-deploy.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/odnoklassniki.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/odysee.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/old-republic.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/opencart.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/openid.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/opensuse.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/opera.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/optin-monster.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/orcid.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/osi.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/padlet.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/page4.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/pagelines.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/palfed.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/patreon.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/paypal.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/perbyte.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/periscope.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/phabricator.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/phoenix-framework.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/phoenix-squadron.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/php.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/pied-piper-alt.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/pied-piper-hat.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/pied-piper-pp.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/pied-piper.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/pinterest-p.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/pinterest.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/pix.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/pixiv.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/playstation.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/product-hunt.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/pushed.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/python.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/qq.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/quinscape.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/quora.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/r-project.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/raspberry-pi.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/ravelry.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/react.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/reacteurope.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/readme.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/rebel.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/red-river.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/reddit-alien.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/reddit.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/redhat.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/renren.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/replyd.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/researchgate.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/resolving.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/rev.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/rocketchat.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/rockrms.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/rust.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/safari.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/salesforce.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/sass.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/schlix.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/screenpal.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/scribd.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/searchengin.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/sellcast.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/sellsy.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/servicestack.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/shirtsinbulk.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/shoelace.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/shopify.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/shopware.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/signal-messenger.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/simplybuilt.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/sistrix.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/sith.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/sitrox.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/sketch.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/skyatlas.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/skype.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/slack.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/slideshare.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/snapchat.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/soundcloud.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/sourcetree.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/space-awesome.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/speakap.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/speaker-deck.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/spotify.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/square-behance.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/square-bluesky.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/square-dribbble.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/square-facebook.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/square-font-awesome-stroke.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/square-font-awesome.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/square-git.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/square-github.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/square-gitlab.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/square-google-plus.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/square-hacker-news.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/square-instagram.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/square-js.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/square-lastfm.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/square-letterboxd.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/square-odnoklassniki.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/square-pied-piper.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/square-pinterest.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/square-reddit.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/square-snapchat.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/square-steam.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/square-threads.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/square-tumblr.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/square-twitter.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/square-upwork.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/square-viadeo.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/square-vimeo.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/square-web-awesome-stroke.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/square-web-awesome.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/square-whatsapp.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/square-x-twitter.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/square-xing.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/square-youtube.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/squarespace.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/stack-exchange.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/stack-overflow.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/stackpath.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/staylinked.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/steam-symbol.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/steam.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/sticker-mule.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/strava.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/stripe-s.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/stripe.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/stubber.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/studiovinari.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/stumbleupon-circle.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/stumbleupon.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/superpowers.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/supple.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/suse.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/swift.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/symfony.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/teamspeak.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/telegram.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/tencent-weibo.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/the-red-yeti.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/themeco.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/themeisle.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/think-peaks.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/threads.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/tiktok.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/trade-federation.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/trello.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/tumblr.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/twitch.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/twitter.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/typo3.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/uber.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/ubuntu.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/uikit.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/umbraco.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/uncharted.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/uniregistry.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/unity.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/unsplash.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/untappd.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/ups.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/upwork.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/usb.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/usps.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/ussunnah.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/vaadin.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/viacoin.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/viadeo.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/viber.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/vimeo-v.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/vimeo.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/vine.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/vk.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/vnv.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/vuejs.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/watchman-monitoring.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/waze.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/web-awesome.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/webflow.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/weebly.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/weibo.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/weixin.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/whatsapp.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/whmcs.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/wikipedia-w.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/windows.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/wirsindhandwerk.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/wix.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/wizards-of-the-coast.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/wodu.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/wolf-pack-battalion.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/wordpress-simple.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/wordpress.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/wpbeginner.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/wpexplorer.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/wpforms.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/wpressr.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/x-twitter.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/xbox.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/xing.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/y-combinator.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/yahoo.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/yammer.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/yandex-international.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/yandex.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/yarn.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/yelp.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/yoast.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/youtube.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/brands/zhihu.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/address-book.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/address-card.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/bell-slash.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/bell.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/bookmark.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/building.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/calendar-check.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/calendar-days.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/calendar-minus.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/calendar-plus.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/calendar-xmark.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/calendar.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/chart-bar.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/chess-bishop.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/chess-king.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/chess-knight.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/chess-pawn.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/chess-queen.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/chess-rook.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/circle-check.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/circle-dot.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/circle-down.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/circle-left.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/circle-pause.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/circle-play.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/circle-question.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/circle-right.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/circle-stop.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/circle-up.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/circle-user.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/circle-xmark.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/circle.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/clipboard.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/clock.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/clone.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/closed-captioning.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/comment-dots.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/comment.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/comments.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/compass.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/copy.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/copyright.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/credit-card.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/envelope-open.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/envelope.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/eye-slash.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/eye.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/face-angry.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/face-dizzy.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/face-flushed.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/face-frown-open.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/face-frown.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/face-grimace.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/face-grin-beam-sweat.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/face-grin-beam.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/face-grin-hearts.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/face-grin-squint-tears.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/face-grin-squint.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/face-grin-stars.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/face-grin-tears.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/face-grin-tongue-squint.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/face-grin-tongue-wink.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/face-grin-tongue.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/face-grin-wide.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/face-grin-wink.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/face-grin.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/face-kiss-beam.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/face-kiss-wink-heart.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/face-kiss.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/face-laugh-beam.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/face-laugh-squint.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/face-laugh-wink.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/face-laugh.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/face-meh-blank.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/face-meh.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/face-rolling-eyes.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/face-sad-cry.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/face-sad-tear.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/face-smile-beam.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/face-smile-wink.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/face-smile.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/face-surprise.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/face-tired.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/file-audio.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/file-code.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/file-excel.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/file-image.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/file-lines.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/file-pdf.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/file-powerpoint.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/file-video.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/file-word.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/file-zipper.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/file.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/flag.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/floppy-disk.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/folder-closed.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/folder-open.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/folder.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/font-awesome.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/futbol.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/gem.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/hand-back-fist.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/hand-lizard.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/hand-peace.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/hand-point-down.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/hand-point-left.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/hand-point-right.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/hand-point-up.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/hand-pointer.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/hand-scissors.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/hand-spock.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/hand.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/handshake.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/hard-drive.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/heart.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/hospital.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/hourglass-half.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/hourglass.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/id-badge.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/id-card.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/image.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/images.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/keyboard.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/lemon.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/life-ring.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/lightbulb.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/map.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/message.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/money-bill-1.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/moon.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/newspaper.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/note-sticky.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/object-group.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/object-ungroup.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/paper-plane.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/paste.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/pen-to-square.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/rectangle-list.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/rectangle-xmark.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/registered.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/share-from-square.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/snowflake.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/square-caret-down.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/square-caret-left.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/square-caret-right.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/square-caret-up.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/square-check.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/square-full.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/square-minus.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/square-plus.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/square.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/star-half-stroke.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/star-half.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/star.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/sun.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/thumbs-down.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/thumbs-up.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/trash-can.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/user.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/window-maximize.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/window-minimize.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/regular/window-restore.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/0.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/1.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/2.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/3.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/4.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/5.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/6.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/7.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/8.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/9.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/a.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/address-book.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/address-card.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/align-center.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/align-justify.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/align-left.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/align-right.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/anchor-circle-check.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/anchor-circle-exclamation.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/anchor-circle-xmark.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/anchor-lock.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/anchor.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/angle-down.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/angle-left.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/angle-right.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/angle-up.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/angles-down.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/angles-left.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/angles-right.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/angles-up.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/ankh.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/apple-whole.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/archway.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrow-down-1-9.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrow-down-9-1.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrow-down-a-z.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrow-down-long.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrow-down-short-wide.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrow-down-up-across-line.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrow-down-up-lock.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrow-down-wide-short.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrow-down-z-a.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrow-down.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrow-left-long.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrow-left.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrow-pointer.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrow-right-arrow-left.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrow-right-from-bracket.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrow-right-long.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrow-right-to-bracket.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrow-right-to-city.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrow-right.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrow-rotate-left.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrow-rotate-right.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrow-trend-down.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrow-trend-up.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrow-turn-down.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrow-turn-up.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrow-up-1-9.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrow-up-9-1.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrow-up-a-z.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrow-up-from-bracket.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrow-up-from-ground-water.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrow-up-from-water-pump.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrow-up-long.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrow-up-right-dots.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrow-up-right-from-square.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrow-up-short-wide.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrow-up-wide-short.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrow-up-z-a.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrow-up.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrows-down-to-line.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrows-down-to-people.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrows-left-right-to-line.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrows-left-right.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrows-rotate.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrows-spin.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrows-split-up-and-left.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrows-to-circle.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrows-to-dot.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrows-to-eye.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrows-turn-right.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrows-turn-to-dots.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrows-up-down-left-right.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrows-up-down.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrows-up-to-line.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/asterisk.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/at.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/atom.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/audio-description.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/austral-sign.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/award.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/b.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/baby-carriage.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/baby.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/backward-fast.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/backward-step.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/backward.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/bacon.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/bacteria.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/bacterium.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/bag-shopping.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/bahai.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/baht-sign.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/ban-smoking.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/ban.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/bandage.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/bangladeshi-taka-sign.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/barcode.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/bars-progress.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/bars-staggered.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/bars.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/baseball-bat-ball.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/baseball.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/basket-shopping.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/basketball.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/bath.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/battery-empty.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/battery-full.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/battery-half.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/battery-quarter.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/battery-three-quarters.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/bed-pulse.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/bed.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/beer-mug-empty.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/bell-concierge.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/bell-slash.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/bell.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/bezier-curve.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/bicycle.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/binoculars.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/biohazard.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/bitcoin-sign.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/blender-phone.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/blender.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/blog.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/bold.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/bolt-lightning.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/bolt.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/bomb.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/bone.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/bong.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/book-atlas.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/book-bible.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/book-bookmark.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/book-journal-whills.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/book-medical.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/book-open-reader.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/book-open.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/book-quran.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/book-skull.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/book-tanakh.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/book.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/bookmark.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/border-all.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/border-none.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/border-top-left.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/bore-hole.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/bottle-droplet.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/bottle-water.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/bowl-food.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/bowl-rice.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/bowling-ball.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/box-archive.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/box-open.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/box-tissue.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/box.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/boxes-packing.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/boxes-stacked.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/braille.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/brain.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/brazilian-real-sign.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/bread-slice.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/bridge-circle-check.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/bridge-circle-exclamation.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/bridge-circle-xmark.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/bridge-lock.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/bridge-water.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/bridge.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/briefcase-medical.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/briefcase.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/broom-ball.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/broom.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/brush.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/bucket.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/bug-slash.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/bug.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/bugs.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/building-circle-arrow-right.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/building-circle-check.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/building-circle-exclamation.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/building-circle-xmark.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/building-columns.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/building-flag.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/building-lock.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/building-ngo.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/building-shield.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/building-un.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/building-user.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/building-wheat.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/building.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/bullhorn.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/bullseye.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/burger.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/burst.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/bus-simple.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/bus.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/business-time.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/c.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/cable-car.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/cake-candles.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/calculator.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/calendar-check.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/calendar-day.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/calendar-days.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/calendar-minus.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/calendar-plus.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/calendar-week.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/calendar-xmark.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/calendar.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/camera-retro.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/camera-rotate.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/camera.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/campground.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/candy-cane.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/cannabis.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/capsules.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/car-battery.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/car-burst.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/car-on.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/car-rear.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/car-side.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/car-tunnel.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/car.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/caravan.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/caret-down.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/caret-left.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/caret-right.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/caret-up.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/carrot.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/cart-arrow-down.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/cart-flatbed-suitcase.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/cart-flatbed.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/cart-plus.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/cart-shopping.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/cash-register.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/cat.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/cedi-sign.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/cent-sign.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/certificate.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/chair.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/chalkboard-user.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/chalkboard.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/champagne-glasses.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/charging-station.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/chart-area.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/chart-bar.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/chart-column.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/chart-diagram.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/chart-gantt.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/chart-line.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/chart-pie.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/chart-simple.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/check-double.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/check-to-slot.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/check.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/cheese.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/chess-bishop.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/chess-board.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/chess-king.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/chess-knight.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/chess-pawn.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/chess-queen.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/chess-rook.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/chess.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/chevron-down.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/chevron-left.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/chevron-right.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/chevron-up.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/child-combatant.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/child-dress.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/child-reaching.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/child.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/children.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/church.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/circle-arrow-down.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/circle-arrow-left.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/circle-arrow-right.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/circle-arrow-up.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/circle-check.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/circle-chevron-down.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/circle-chevron-left.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/circle-chevron-right.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/circle-chevron-up.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/circle-dollar-to-slot.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/circle-dot.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/circle-down.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/circle-exclamation.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/circle-h.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/circle-half-stroke.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/circle-info.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/circle-left.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/circle-minus.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/circle-nodes.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/circle-notch.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/circle-pause.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/circle-play.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/circle-plus.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/circle-question.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/circle-radiation.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/circle-right.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/circle-stop.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/circle-up.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/circle-user.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/circle-xmark.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/circle.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/city.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/clapperboard.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/clipboard-check.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/clipboard-list.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/clipboard-question.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/clipboard-user.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/clipboard.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/clock-rotate-left.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/clock.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/clone.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/closed-captioning.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/cloud-arrow-down.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/cloud-arrow-up.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/cloud-bolt.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/cloud-meatball.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/cloud-moon-rain.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/cloud-moon.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/cloud-rain.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/cloud-showers-heavy.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/cloud-showers-water.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/cloud-sun-rain.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/cloud-sun.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/cloud.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/clover.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/code-branch.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/code-commit.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/code-compare.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/code-fork.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/code-merge.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/code-pull-request.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/code.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/coins.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/colon-sign.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/comment-dollar.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/comment-dots.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/comment-medical.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/comment-nodes.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/comment-slash.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/comment-sms.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/comment.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/comments-dollar.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/comments.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/compact-disc.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/compass-drafting.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/compass.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/compress.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/computer-mouse.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/computer.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/cookie-bite.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/cookie.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/copy.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/copyright.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/couch.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/cow.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/credit-card.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/crop-simple.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/crop.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/cross.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/crosshairs.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/crow.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/crown.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/crutch.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/cruzeiro-sign.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/cube.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/cubes-stacked.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/cubes.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/d.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/database.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/delete-left.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/democrat.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/desktop.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/dharmachakra.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/diagram-next.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/diagram-predecessor.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/diagram-project.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/diagram-successor.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/diamond-turn-right.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/diamond.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/dice-d20.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/dice-d6.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/dice-five.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/dice-four.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/dice-one.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/dice-six.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/dice-three.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/dice-two.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/dice.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/disease.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/display.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/divide.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/dna.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/dog.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/dollar-sign.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/dolly.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/dong-sign.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/door-closed.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/door-open.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/dove.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/down-left-and-up-right-to-center.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/down-long.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/download.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/dragon.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/draw-polygon.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/droplet-slash.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/droplet.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/drum-steelpan.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/drum.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/drumstick-bite.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/dumbbell.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/dumpster-fire.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/dumpster.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/dungeon.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/e.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/ear-deaf.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/ear-listen.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/earth-africa.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/earth-americas.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/earth-asia.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/earth-europe.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/earth-oceania.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/egg.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/eject.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/elevator.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/ellipsis-vertical.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/ellipsis.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/envelope-circle-check.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/envelope-open-text.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/envelope-open.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/envelope.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/envelopes-bulk.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/equals.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/eraser.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/ethernet.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/euro-sign.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/exclamation.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/expand.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/explosion.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/eye-dropper.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/eye-low-vision.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/eye-slash.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/eye.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/f.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/face-angry.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/face-dizzy.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/face-flushed.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/face-frown-open.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/face-frown.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/face-grimace.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/face-grin-beam-sweat.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/face-grin-beam.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/face-grin-hearts.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/face-grin-squint-tears.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/face-grin-squint.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/face-grin-stars.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/face-grin-tears.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/face-grin-tongue-squint.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/face-grin-tongue-wink.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/face-grin-tongue.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/face-grin-wide.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/face-grin-wink.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/face-grin.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/face-kiss-beam.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/face-kiss-wink-heart.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/face-kiss.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/face-laugh-beam.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/face-laugh-squint.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/face-laugh-wink.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/face-laugh.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/face-meh-blank.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/face-meh.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/face-rolling-eyes.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/face-sad-cry.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/face-sad-tear.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/face-smile-beam.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/face-smile-wink.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/face-smile.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/face-surprise.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/face-tired.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/fan.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/faucet-drip.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/faucet.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/fax.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/feather-pointed.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/feather.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/ferry.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/file-arrow-down.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/file-arrow-up.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/file-audio.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/file-circle-check.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/file-circle-exclamation.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/file-circle-minus.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/file-circle-plus.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/file-circle-question.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/file-circle-xmark.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/file-code.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/file-contract.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/file-csv.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/file-excel.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/file-export.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/file-fragment.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/file-half-dashed.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/file-image.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/file-import.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/file-invoice-dollar.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/file-invoice.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/file-lines.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/file-medical.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/file-pdf.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/file-pen.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/file-powerpoint.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/file-prescription.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/file-shield.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/file-signature.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/file-video.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/file-waveform.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/file-word.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/file-zipper.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/file.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/fill-drip.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/fill.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/film.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/filter-circle-dollar.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/filter-circle-xmark.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/filter.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/fingerprint.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/fire-burner.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/fire-extinguisher.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/fire-flame-curved.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/fire-flame-simple.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/fire.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/fish-fins.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/fish.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/flag-checkered.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/flag-usa.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/flag.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/flask-vial.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/flask.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/floppy-disk.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/florin-sign.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/folder-closed.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/folder-minus.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/folder-open.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/folder-plus.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/folder-tree.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/folder.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/font-awesome.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/font.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/football.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/forward-fast.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/forward-step.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/forward.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/franc-sign.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/frog.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/futbol.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/g.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/gamepad.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/gas-pump.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/gauge-high.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/gauge-simple-high.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/gauge-simple.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/gauge.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/gavel.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/gear.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/gears.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/gem.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/genderless.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/ghost.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/gift.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/gifts.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/glass-water-droplet.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/glass-water.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/glasses.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/globe.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/golf-ball-tee.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/gopuram.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/graduation-cap.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/greater-than-equal.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/greater-than.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/grip-lines-vertical.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/grip-lines.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/grip-vertical.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/grip.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/group-arrows-rotate.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/guarani-sign.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/guitar.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/gun.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/h.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hammer.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hamsa.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hand-back-fist.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hand-dots.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hand-fist.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hand-holding-dollar.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hand-holding-droplet.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hand-holding-hand.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hand-holding-heart.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hand-holding-medical.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hand-holding.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hand-lizard.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hand-middle-finger.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hand-peace.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hand-point-down.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hand-point-left.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hand-point-right.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hand-point-up.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hand-pointer.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hand-scissors.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hand-sparkles.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hand-spock.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hand.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/handcuffs.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hands-asl-interpreting.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hands-bound.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hands-bubbles.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hands-clapping.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hands-holding-child.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hands-holding-circle.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hands-holding.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hands-praying.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hands.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/handshake-angle.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/handshake-simple-slash.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/handshake-simple.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/handshake-slash.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/handshake.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hanukiah.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hard-drive.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hashtag.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hat-cowboy-side.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hat-cowboy.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hat-wizard.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/head-side-cough-slash.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/head-side-cough.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/head-side-mask.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/head-side-virus.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/heading.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/headphones-simple.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/headphones.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/headset.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/heart-circle-bolt.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/heart-circle-check.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/heart-circle-exclamation.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/heart-circle-minus.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/heart-circle-plus.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/heart-circle-xmark.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/heart-crack.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/heart-pulse.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/heart.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/helicopter-symbol.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/helicopter.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/helmet-safety.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/helmet-un.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hexagon-nodes-bolt.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hexagon-nodes.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/highlighter.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hill-avalanche.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hill-rockslide.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hippo.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hockey-puck.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/holly-berry.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/horse-head.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/horse.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hospital-user.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hospital.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hot-tub-person.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hotdog.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hotel.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hourglass-end.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hourglass-half.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hourglass-start.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hourglass.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/house-chimney-crack.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/house-chimney-medical.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/house-chimney-user.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/house-chimney-window.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/house-chimney.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/house-circle-check.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/house-circle-exclamation.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/house-circle-xmark.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/house-crack.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/house-fire.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/house-flag.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/house-flood-water-circle-arrow-right.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/house-flood-water.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/house-laptop.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/house-lock.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/house-medical-circle-check.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/house-medical-circle-exclamation.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/house-medical-circle-xmark.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/house-medical-flag.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/house-medical.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/house-signal.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/house-tsunami.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/house-user.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/house.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hryvnia-sign.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/hurricane.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/i-cursor.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/i.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/ice-cream.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/icicles.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/icons.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/id-badge.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/id-card-clip.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/id-card.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/igloo.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/image-portrait.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/image.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/images.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/inbox.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/indent.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/indian-rupee-sign.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/industry.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/infinity.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/info.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/italic.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/j.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/jar-wheat.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/jar.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/jedi.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/jet-fighter-up.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/jet-fighter.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/joint.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/jug-detergent.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/k.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/kaaba.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/key.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/keyboard.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/khanda.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/kip-sign.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/kit-medical.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/kitchen-set.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/kiwi-bird.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/l.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/land-mine-on.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/landmark-dome.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/landmark-flag.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/landmark.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/language.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/laptop-code.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/laptop-file.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/laptop-medical.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/laptop.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/lari-sign.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/layer-group.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/leaf.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/left-long.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/left-right.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/lemon.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/less-than-equal.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/less-than.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/life-ring.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/lightbulb.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/lines-leaning.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/link-slash.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/link.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/lira-sign.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/list-check.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/list-ol.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/list-ul.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/list.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/litecoin-sign.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/location-arrow.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/location-crosshairs.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/location-dot.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/location-pin-lock.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/location-pin.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/lock-open.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/lock.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/locust.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/lungs-virus.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/lungs.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/m.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/magnet.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/magnifying-glass-arrow-right.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/magnifying-glass-chart.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/magnifying-glass-dollar.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/magnifying-glass-location.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/magnifying-glass-minus.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/magnifying-glass-plus.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/magnifying-glass.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/manat-sign.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/map-location-dot.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/map-location.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/map-pin.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/map.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/marker.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/mars-and-venus-burst.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/mars-and-venus.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/mars-double.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/mars-stroke-right.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/mars-stroke-up.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/mars-stroke.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/mars.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/martini-glass-citrus.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/martini-glass-empty.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/martini-glass.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/mask-face.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/mask-ventilator.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/mask.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/masks-theater.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/mattress-pillow.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/maximize.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/medal.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/memory.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/menorah.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/mercury.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/message.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/meteor.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/microchip.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/microphone-lines-slash.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/microphone-lines.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/microphone-slash.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/microphone.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/microscope.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/mill-sign.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/minimize.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/minus.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/mitten.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/mobile-button.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/mobile-retro.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/mobile-screen-button.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/mobile-screen.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/mobile.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/money-bill-1-wave.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/money-bill-1.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/money-bill-transfer.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/money-bill-trend-up.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/money-bill-wave.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/money-bill-wheat.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/money-bill.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/money-bills.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/money-check-dollar.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/money-check.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/monument.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/moon.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/mortar-pestle.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/mosque.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/mosquito-net.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/mosquito.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/motorcycle.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/mound.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/mountain-city.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/mountain-sun.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/mountain.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/mug-hot.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/mug-saucer.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/music.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/n.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/naira-sign.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/network-wired.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/neuter.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/newspaper.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/not-equal.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/notdef.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/note-sticky.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/notes-medical.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/o.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/object-group.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/object-ungroup.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/oil-can.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/oil-well.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/om.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/otter.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/outdent.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/p.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/pager.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/paint-roller.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/paintbrush.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/palette.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/pallet.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/panorama.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/paper-plane.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/paperclip.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/parachute-box.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/paragraph.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/passport.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/paste.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/pause.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/paw.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/peace.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/pen-clip.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/pen-fancy.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/pen-nib.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/pen-ruler.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/pen-to-square.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/pen.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/pencil.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/people-arrows.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/people-carry-box.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/people-group.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/people-line.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/people-pulling.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/people-robbery.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/people-roof.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/pepper-hot.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/percent.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/person-arrow-down-to-line.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/person-arrow-up-from-line.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/person-biking.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/person-booth.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/person-breastfeeding.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/person-burst.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/person-cane.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/person-chalkboard.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/person-circle-check.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/person-circle-exclamation.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/person-circle-minus.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/person-circle-plus.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/person-circle-question.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/person-circle-xmark.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/person-digging.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/person-dots-from-line.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/person-dress-burst.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/person-dress.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/person-drowning.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/person-falling-burst.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/person-falling.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/person-half-dress.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/person-harassing.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/person-hiking.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/person-military-pointing.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/person-military-rifle.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/person-military-to-person.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/person-praying.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/person-pregnant.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/person-rays.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/person-rifle.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/person-running.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/person-shelter.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/person-skating.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/person-skiing-nordic.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/person-skiing.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/person-snowboarding.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/person-swimming.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/person-through-window.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/person-walking-arrow-loop-left.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/person-walking-arrow-right.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/person-walking-dashed-line-arrow-right.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/person-walking-luggage.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/person-walking-with-cane.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/person-walking.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/person.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/peseta-sign.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/peso-sign.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/phone-flip.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/phone-slash.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/phone-volume.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/phone.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/photo-film.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/piggy-bank.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/pills.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/pizza-slice.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/place-of-worship.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/plane-arrival.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/plane-circle-check.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/plane-circle-exclamation.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/plane-circle-xmark.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/plane-departure.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/plane-lock.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/plane-slash.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/plane-up.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/plane.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/plant-wilt.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/plate-wheat.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/play.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/plug-circle-bolt.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/plug-circle-check.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/plug-circle-exclamation.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/plug-circle-minus.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/plug-circle-plus.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/plug-circle-xmark.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/plug.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/plus-minus.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/plus.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/podcast.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/poo-storm.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/poo.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/poop.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/power-off.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/prescription-bottle-medical.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/prescription-bottle.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/prescription.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/print.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/pump-medical.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/pump-soap.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/puzzle-piece.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/q.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/qrcode.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/question.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/quote-left.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/quote-right.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/r.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/radiation.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/radio.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/rainbow.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/ranking-star.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/receipt.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/record-vinyl.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/rectangle-ad.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/rectangle-list.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/rectangle-xmark.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/recycle.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/registered.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/repeat.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/reply-all.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/reply.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/republican.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/restroom.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/retweet.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/ribbon.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/right-from-bracket.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/right-left.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/right-long.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/right-to-bracket.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/ring.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/road-barrier.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/road-bridge.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/road-circle-check.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/road-circle-exclamation.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/road-circle-xmark.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/road-lock.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/road-spikes.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/road.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/robot.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/rocket.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/rotate-left.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/rotate-right.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/rotate.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/route.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/rss.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/ruble-sign.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/rug.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/ruler-combined.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/ruler-horizontal.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/ruler-vertical.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/ruler.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/rupee-sign.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/rupiah-sign.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/s.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/sack-dollar.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/sack-xmark.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/sailboat.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/satellite-dish.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/satellite.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/scale-balanced.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/scale-unbalanced-flip.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/scale-unbalanced.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/school-circle-check.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/school-circle-exclamation.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/school-circle-xmark.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/school-flag.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/school-lock.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/school.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/scissors.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/screwdriver-wrench.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/screwdriver.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/scroll-torah.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/scroll.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/sd-card.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/section.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/seedling.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/server.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/shapes.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/share-from-square.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/share-nodes.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/share.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/sheet-plastic.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/shekel-sign.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/shield-cat.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/shield-dog.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/shield-halved.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/shield-heart.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/shield-virus.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/shield.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/ship.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/shirt.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/shoe-prints.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/shop-lock.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/shop-slash.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/shop.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/shower.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/shrimp.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/shuffle.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/shuttle-space.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/sign-hanging.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/signal.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/signature.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/signs-post.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/sim-card.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/sink.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/sitemap.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/skull-crossbones.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/skull.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/slash.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/sleigh.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/sliders.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/smog.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/smoking.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/snowflake.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/snowman.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/snowplow.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/soap.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/socks.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/solar-panel.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/sort-down.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/sort-up.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/sort.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/spa.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/spaghetti-monster-flying.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/spell-check.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/spider.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/spinner.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/splotch.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/spoon.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/spray-can-sparkles.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/spray-can.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/square-arrow-up-right.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/square-binary.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/square-caret-down.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/square-caret-left.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/square-caret-right.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/square-caret-up.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/square-check.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/square-envelope.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/square-full.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/square-h.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/square-minus.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/square-nfi.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/square-parking.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/square-pen.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/square-person-confined.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/square-phone-flip.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/square-phone.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/square-plus.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/square-poll-horizontal.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/square-poll-vertical.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/square-root-variable.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/square-rss.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/square-share-nodes.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/square-up-right.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/square-virus.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/square-xmark.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/square.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/staff-snake.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/stairs.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/stamp.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/stapler.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/star-and-crescent.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/star-half-stroke.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/star-half.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/star-of-david.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/star-of-life.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/star.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/sterling-sign.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/stethoscope.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/stop.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/stopwatch-20.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/stopwatch.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/store-slash.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/store.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/street-view.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/strikethrough.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/stroopwafel.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/subscript.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/suitcase-medical.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/suitcase-rolling.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/suitcase.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/sun-plant-wilt.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/sun.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/superscript.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/swatchbook.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/synagogue.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/syringe.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/t.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/table-cells-column-lock.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/table-cells-large.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/table-cells-row-lock.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/table-cells-row-unlock.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/table-cells.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/table-columns.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/table-list.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/table-tennis-paddle-ball.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/table.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/tablet-button.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/tablet-screen-button.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/tablet.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/tablets.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/tachograph-digital.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/tag.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/tags.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/tape.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/tarp-droplet.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/tarp.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/taxi.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/teeth-open.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/teeth.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/temperature-arrow-down.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/temperature-arrow-up.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/temperature-empty.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/temperature-full.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/temperature-half.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/temperature-high.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/temperature-low.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/temperature-quarter.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/temperature-three-quarters.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/tenge-sign.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/tent-arrow-down-to-line.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/tent-arrow-left-right.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/tent-arrow-turn-left.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/tent-arrows-down.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/tent.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/tents.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/terminal.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/text-height.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/text-slash.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/text-width.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/thermometer.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/thumbs-down.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/thumbs-up.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/thumbtack-slash.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/thumbtack.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/ticket-simple.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/ticket.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/timeline.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/toggle-off.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/toggle-on.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/toilet-paper-slash.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/toilet-paper.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/toilet-portable.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/toilet.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/toilets-portable.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/toolbox.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/tooth.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/torii-gate.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/tornado.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/tower-broadcast.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/tower-cell.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/tower-observation.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/tractor.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/trademark.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/traffic-light.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/trailer.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/train-subway.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/train-tram.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/train.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/transgender.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/trash-arrow-up.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/trash-can-arrow-up.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/trash-can.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/trash.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/tree-city.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/tree.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/triangle-exclamation.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/trophy.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/trowel-bricks.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/trowel.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/truck-arrow-right.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/truck-droplet.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/truck-fast.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/truck-field-un.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/truck-field.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/truck-front.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/truck-medical.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/truck-monster.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/truck-moving.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/truck-pickup.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/truck-plane.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/truck-ramp-box.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/truck.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/tty.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/turkish-lira-sign.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/turn-down.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/turn-up.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/tv.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/u.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/umbrella-beach.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/umbrella.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/underline.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/universal-access.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/unlock-keyhole.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/unlock.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/up-down-left-right.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/up-down.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/up-long.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/up-right-and-down-left-from-center.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/up-right-from-square.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/upload.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/user-astronaut.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/user-check.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/user-clock.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/user-doctor.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/user-gear.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/user-graduate.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/user-group.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/user-injured.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/user-large-slash.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/user-large.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/user-lock.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/user-minus.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/user-ninja.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/user-nurse.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/user-pen.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/user-plus.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/user-secret.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/user-shield.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/user-slash.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/user-tag.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/user-tie.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/user-xmark.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/user.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/users-between-lines.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/users-gear.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/users-line.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/users-rays.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/users-rectangle.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/users-slash.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/users-viewfinder.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/users.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/utensils.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/v.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/van-shuttle.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/vault.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/vector-square.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/venus-double.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/venus-mars.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/venus.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/vest-patches.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/vest.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/vial-circle-check.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/vial-virus.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/vial.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/vials.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/video-slash.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/video.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/vihara.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/virus-covid-slash.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/virus-covid.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/virus-slash.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/virus.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/viruses.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/voicemail.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/volcano.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/volleyball.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/volume-high.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/volume-low.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/volume-off.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/volume-xmark.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/vr-cardboard.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/w.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/walkie-talkie.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/wallet.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/wand-magic-sparkles.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/wand-magic.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/wand-sparkles.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/warehouse.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/water-ladder.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/water.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/wave-square.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/web-awesome.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/weight-hanging.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/weight-scale.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/wheat-awn-circle-exclamation.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/wheat-awn.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/wheelchair-move.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/wheelchair.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/whiskey-glass.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/wifi.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/wind.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/window-maximize.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/window-minimize.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/window-restore.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/wine-bottle.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/wine-glass-empty.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/wine-glass.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/won-sign.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/worm.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/wrench.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/x-ray.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/x.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/xmark.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/xmarks-lines.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/y.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/yen-sign.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/yin-yang.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/svgs/solid/z.svg delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/webfonts/fa-brands-400.ttf delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/webfonts/fa-brands-400.woff2 delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/webfonts/fa-regular-400.ttf delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/webfonts/fa-regular-400.woff2 delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/webfonts/fa-solid-900.ttf delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff2 delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/webfonts/fa-v4compatibility.ttf delete mode 100644 XNSimHtml/node_modules/@fortawesome/fontawesome-free/webfonts/fa-v4compatibility.woff2 delete mode 100644 XNSimHtml/node_modules/@gar/promisify/LICENSE.md delete mode 100644 XNSimHtml/node_modules/@gar/promisify/README.md delete mode 100644 XNSimHtml/node_modules/@gar/promisify/index.js delete mode 100644 XNSimHtml/node_modules/@gar/promisify/package.json delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/LICENSE.md delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/README.md delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/lib/common/file-url-to-path/index.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/lib/common/file-url-to-path/polyfill.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/lib/common/get-options.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/lib/common/node.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/lib/common/owner.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/lib/copy-file.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/lib/cp/LICENSE delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/lib/cp/index.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/lib/cp/polyfill.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/lib/errors.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/lib/fs.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/lib/index.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/lib/mkdir/index.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/lib/mkdir/polyfill.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/lib/mkdtemp.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/lib/rm/index.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/lib/rm/polyfill.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/lib/with-temp-dir.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/lib/write-file.js delete mode 120000 XNSimHtml/node_modules/@npmcli/fs/node_modules/.bin/semver delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/LICENSE delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/README.md delete mode 100755 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/bin/semver.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/classes/comparator.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/classes/index.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/classes/range.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/classes/semver.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/functions/clean.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/functions/cmp.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/functions/coerce.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/functions/compare-build.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/functions/compare-loose.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/functions/compare.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/functions/diff.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/functions/eq.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/functions/gt.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/functions/gte.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/functions/inc.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/functions/lt.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/functions/lte.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/functions/major.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/functions/minor.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/functions/neq.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/functions/parse.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/functions/patch.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/functions/prerelease.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/functions/rcompare.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/functions/rsort.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/functions/satisfies.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/functions/sort.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/functions/valid.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/index.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/internal/constants.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/internal/debug.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/internal/identifiers.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/internal/lrucache.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/internal/parse-options.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/internal/re.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/package.json delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/preload.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/range.bnf delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/ranges/gtr.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/ranges/intersects.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/ranges/ltr.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/ranges/max-satisfying.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/ranges/min-satisfying.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/ranges/min-version.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/ranges/outside.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/ranges/simplify.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/ranges/subset.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/ranges/to-comparators.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/node_modules/semver/ranges/valid.js delete mode 100644 XNSimHtml/node_modules/@npmcli/fs/package.json delete mode 100644 XNSimHtml/node_modules/@npmcli/move-file/LICENSE.md delete mode 100644 XNSimHtml/node_modules/@npmcli/move-file/README.md delete mode 100644 XNSimHtml/node_modules/@npmcli/move-file/index.js delete mode 120000 XNSimHtml/node_modules/@npmcli/move-file/node_modules/.bin/mkdirp delete mode 100644 XNSimHtml/node_modules/@npmcli/move-file/node_modules/mkdirp/CHANGELOG.md delete mode 100644 XNSimHtml/node_modules/@npmcli/move-file/node_modules/mkdirp/LICENSE delete mode 100755 XNSimHtml/node_modules/@npmcli/move-file/node_modules/mkdirp/bin/cmd.js delete mode 100644 XNSimHtml/node_modules/@npmcli/move-file/node_modules/mkdirp/index.js delete mode 100644 XNSimHtml/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/find-made.js delete mode 100644 XNSimHtml/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-manual.js delete mode 100644 XNSimHtml/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-native.js delete mode 100644 XNSimHtml/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/opts-arg.js delete mode 100644 XNSimHtml/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/path-arg.js delete mode 100644 XNSimHtml/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/use-native.js delete mode 100644 XNSimHtml/node_modules/@npmcli/move-file/node_modules/mkdirp/package.json delete mode 100644 XNSimHtml/node_modules/@npmcli/move-file/node_modules/mkdirp/readme.markdown delete mode 100644 XNSimHtml/node_modules/@npmcli/move-file/package.json delete mode 100644 XNSimHtml/node_modules/@tootallnate/once/dist/index.d.ts delete mode 100644 XNSimHtml/node_modules/@tootallnate/once/dist/index.js delete mode 100644 XNSimHtml/node_modules/@tootallnate/once/dist/index.js.map delete mode 100644 XNSimHtml/node_modules/@tootallnate/once/package.json delete mode 100644 XNSimHtml/node_modules/abbrev/LICENSE delete mode 100644 XNSimHtml/node_modules/abbrev/README.md delete mode 100644 XNSimHtml/node_modules/abbrev/abbrev.js delete mode 100644 XNSimHtml/node_modules/abbrev/package.json delete mode 100644 XNSimHtml/node_modules/agent-base/README.md delete mode 100644 XNSimHtml/node_modules/agent-base/dist/src/index.d.ts delete mode 100644 XNSimHtml/node_modules/agent-base/dist/src/index.js delete mode 100644 XNSimHtml/node_modules/agent-base/dist/src/index.js.map delete mode 100644 XNSimHtml/node_modules/agent-base/dist/src/promisify.d.ts delete mode 100644 XNSimHtml/node_modules/agent-base/dist/src/promisify.js delete mode 100644 XNSimHtml/node_modules/agent-base/dist/src/promisify.js.map delete mode 100644 XNSimHtml/node_modules/agent-base/node_modules/debug/LICENSE delete mode 100644 XNSimHtml/node_modules/agent-base/node_modules/debug/README.md delete mode 100644 XNSimHtml/node_modules/agent-base/node_modules/debug/package.json delete mode 100644 XNSimHtml/node_modules/agent-base/node_modules/debug/src/browser.js delete mode 100644 XNSimHtml/node_modules/agent-base/node_modules/debug/src/common.js delete mode 100644 XNSimHtml/node_modules/agent-base/node_modules/debug/src/index.js delete mode 100644 XNSimHtml/node_modules/agent-base/node_modules/debug/src/node.js delete mode 100644 XNSimHtml/node_modules/agent-base/node_modules/ms/index.js delete mode 100644 XNSimHtml/node_modules/agent-base/node_modules/ms/license.md delete mode 100644 XNSimHtml/node_modules/agent-base/node_modules/ms/package.json delete mode 100644 XNSimHtml/node_modules/agent-base/node_modules/ms/readme.md delete mode 100644 XNSimHtml/node_modules/agent-base/package.json delete mode 100644 XNSimHtml/node_modules/agent-base/src/index.ts delete mode 100644 XNSimHtml/node_modules/agent-base/src/promisify.ts delete mode 100644 XNSimHtml/node_modules/agentkeepalive/LICENSE delete mode 100644 XNSimHtml/node_modules/agentkeepalive/README.md delete mode 100644 XNSimHtml/node_modules/agentkeepalive/browser.js delete mode 100644 XNSimHtml/node_modules/agentkeepalive/index.d.ts delete mode 100644 XNSimHtml/node_modules/agentkeepalive/index.js delete mode 100644 XNSimHtml/node_modules/agentkeepalive/lib/agent.js delete mode 100644 XNSimHtml/node_modules/agentkeepalive/lib/constants.js delete mode 100644 XNSimHtml/node_modules/agentkeepalive/lib/https_agent.js delete mode 100644 XNSimHtml/node_modules/agentkeepalive/package.json delete mode 100644 XNSimHtml/node_modules/aggregate-error/index.d.ts delete mode 100644 XNSimHtml/node_modules/aggregate-error/index.js delete mode 100644 XNSimHtml/node_modules/aggregate-error/license delete mode 100644 XNSimHtml/node_modules/aggregate-error/package.json delete mode 100644 XNSimHtml/node_modules/aggregate-error/readme.md delete mode 100644 XNSimHtml/node_modules/ansi-regex/index.d.ts delete mode 100644 XNSimHtml/node_modules/ansi-regex/index.js delete mode 100644 XNSimHtml/node_modules/ansi-regex/license delete mode 100644 XNSimHtml/node_modules/ansi-regex/package.json delete mode 100644 XNSimHtml/node_modules/ansi-regex/readme.md delete mode 100644 XNSimHtml/node_modules/aproba/CHANGELOG.md delete mode 100644 XNSimHtml/node_modules/aproba/LICENSE delete mode 100644 XNSimHtml/node_modules/aproba/README.md delete mode 100644 XNSimHtml/node_modules/aproba/index.js delete mode 100644 XNSimHtml/node_modules/aproba/package.json delete mode 100644 XNSimHtml/node_modules/are-we-there-yet/LICENSE.md delete mode 100644 XNSimHtml/node_modules/are-we-there-yet/README.md delete mode 100644 XNSimHtml/node_modules/are-we-there-yet/lib/index.js delete mode 100644 XNSimHtml/node_modules/are-we-there-yet/lib/tracker-base.js delete mode 100644 XNSimHtml/node_modules/are-we-there-yet/lib/tracker-group.js delete mode 100644 XNSimHtml/node_modules/are-we-there-yet/lib/tracker-stream.js delete mode 100644 XNSimHtml/node_modules/are-we-there-yet/lib/tracker.js delete mode 100644 XNSimHtml/node_modules/are-we-there-yet/node_modules/readable-stream/CONTRIBUTING.md delete mode 100644 XNSimHtml/node_modules/are-we-there-yet/node_modules/readable-stream/GOVERNANCE.md delete mode 100644 XNSimHtml/node_modules/are-we-there-yet/node_modules/readable-stream/LICENSE delete mode 100644 XNSimHtml/node_modules/are-we-there-yet/node_modules/readable-stream/README.md delete mode 100644 XNSimHtml/node_modules/are-we-there-yet/node_modules/readable-stream/errors-browser.js delete mode 100644 XNSimHtml/node_modules/are-we-there-yet/node_modules/readable-stream/errors.js delete mode 100644 XNSimHtml/node_modules/are-we-there-yet/node_modules/readable-stream/experimentalWarning.js delete mode 100644 XNSimHtml/node_modules/are-we-there-yet/node_modules/readable-stream/lib/_stream_duplex.js delete mode 100644 XNSimHtml/node_modules/are-we-there-yet/node_modules/readable-stream/lib/_stream_passthrough.js delete mode 100644 XNSimHtml/node_modules/are-we-there-yet/node_modules/readable-stream/lib/_stream_readable.js delete mode 100644 XNSimHtml/node_modules/are-we-there-yet/node_modules/readable-stream/lib/_stream_transform.js delete mode 100644 XNSimHtml/node_modules/are-we-there-yet/node_modules/readable-stream/lib/_stream_writable.js delete mode 100644 XNSimHtml/node_modules/are-we-there-yet/node_modules/readable-stream/lib/internal/streams/async_iterator.js delete mode 100644 XNSimHtml/node_modules/are-we-there-yet/node_modules/readable-stream/lib/internal/streams/buffer_list.js delete mode 100644 XNSimHtml/node_modules/are-we-there-yet/node_modules/readable-stream/lib/internal/streams/destroy.js delete mode 100644 XNSimHtml/node_modules/are-we-there-yet/node_modules/readable-stream/lib/internal/streams/end-of-stream.js delete mode 100644 XNSimHtml/node_modules/are-we-there-yet/node_modules/readable-stream/lib/internal/streams/from-browser.js delete mode 100644 XNSimHtml/node_modules/are-we-there-yet/node_modules/readable-stream/lib/internal/streams/from.js delete mode 100644 XNSimHtml/node_modules/are-we-there-yet/node_modules/readable-stream/lib/internal/streams/pipeline.js delete mode 100644 XNSimHtml/node_modules/are-we-there-yet/node_modules/readable-stream/lib/internal/streams/state.js delete mode 100644 XNSimHtml/node_modules/are-we-there-yet/node_modules/readable-stream/lib/internal/streams/stream-browser.js delete mode 100644 XNSimHtml/node_modules/are-we-there-yet/node_modules/readable-stream/lib/internal/streams/stream.js delete mode 100644 XNSimHtml/node_modules/are-we-there-yet/node_modules/readable-stream/package.json delete mode 100644 XNSimHtml/node_modules/are-we-there-yet/node_modules/readable-stream/readable-browser.js delete mode 100644 XNSimHtml/node_modules/are-we-there-yet/node_modules/readable-stream/readable.js delete mode 100644 XNSimHtml/node_modules/are-we-there-yet/package.json delete mode 100644 XNSimHtml/node_modules/cacache/LICENSE.md delete mode 100644 XNSimHtml/node_modules/cacache/README.md delete mode 100644 XNSimHtml/node_modules/cacache/get.js delete mode 100644 XNSimHtml/node_modules/cacache/index.js delete mode 100644 XNSimHtml/node_modules/cacache/lib/content/path.js delete mode 100644 XNSimHtml/node_modules/cacache/lib/content/read.js delete mode 100644 XNSimHtml/node_modules/cacache/lib/content/rm.js delete mode 100644 XNSimHtml/node_modules/cacache/lib/content/write.js delete mode 100644 XNSimHtml/node_modules/cacache/lib/entry-index.js delete mode 100644 XNSimHtml/node_modules/cacache/lib/memoization.js delete mode 100644 XNSimHtml/node_modules/cacache/lib/util/disposer.js delete mode 100644 XNSimHtml/node_modules/cacache/lib/util/fix-owner.js delete mode 100644 XNSimHtml/node_modules/cacache/lib/util/hash-to-segments.js delete mode 100644 XNSimHtml/node_modules/cacache/lib/util/move-file.js delete mode 100644 XNSimHtml/node_modules/cacache/lib/util/tmp.js delete mode 100644 XNSimHtml/node_modules/cacache/lib/verify.js delete mode 100644 XNSimHtml/node_modules/cacache/ls.js delete mode 120000 XNSimHtml/node_modules/cacache/node_modules/.bin/mkdirp delete mode 100644 XNSimHtml/node_modules/cacache/node_modules/mkdirp/CHANGELOG.md delete mode 100644 XNSimHtml/node_modules/cacache/node_modules/mkdirp/LICENSE delete mode 100755 XNSimHtml/node_modules/cacache/node_modules/mkdirp/bin/cmd.js delete mode 100644 XNSimHtml/node_modules/cacache/node_modules/mkdirp/index.js delete mode 100644 XNSimHtml/node_modules/cacache/node_modules/mkdirp/lib/find-made.js delete mode 100644 XNSimHtml/node_modules/cacache/node_modules/mkdirp/lib/mkdirp-manual.js delete mode 100644 XNSimHtml/node_modules/cacache/node_modules/mkdirp/lib/mkdirp-native.js delete mode 100644 XNSimHtml/node_modules/cacache/node_modules/mkdirp/lib/opts-arg.js delete mode 100644 XNSimHtml/node_modules/cacache/node_modules/mkdirp/lib/path-arg.js delete mode 100644 XNSimHtml/node_modules/cacache/node_modules/mkdirp/lib/use-native.js delete mode 100644 XNSimHtml/node_modules/cacache/node_modules/mkdirp/package.json delete mode 100644 XNSimHtml/node_modules/cacache/node_modules/mkdirp/readme.markdown delete mode 100644 XNSimHtml/node_modules/cacache/package.json delete mode 100644 XNSimHtml/node_modules/cacache/put.js delete mode 100644 XNSimHtml/node_modules/cacache/rm.js delete mode 100644 XNSimHtml/node_modules/cacache/verify.js delete mode 100644 XNSimHtml/node_modules/chownr/LICENSE delete mode 100644 XNSimHtml/node_modules/chownr/README.md delete mode 100644 XNSimHtml/node_modules/chownr/chownr.js delete mode 100644 XNSimHtml/node_modules/chownr/package.json delete mode 100644 XNSimHtml/node_modules/clean-stack/index.d.ts delete mode 100644 XNSimHtml/node_modules/clean-stack/index.js delete mode 100644 XNSimHtml/node_modules/clean-stack/license delete mode 100644 XNSimHtml/node_modules/clean-stack/package.json delete mode 100644 XNSimHtml/node_modules/clean-stack/readme.md delete mode 100644 XNSimHtml/node_modules/color-support/LICENSE delete mode 100644 XNSimHtml/node_modules/color-support/README.md delete mode 100755 XNSimHtml/node_modules/color-support/bin.js delete mode 100644 XNSimHtml/node_modules/color-support/browser.js delete mode 100644 XNSimHtml/node_modules/color-support/index.js delete mode 100644 XNSimHtml/node_modules/color-support/package.json delete mode 100644 XNSimHtml/node_modules/console-control-strings/LICENSE delete mode 100644 XNSimHtml/node_modules/console-control-strings/README.md delete mode 100644 XNSimHtml/node_modules/console-control-strings/README.md~ delete mode 100644 XNSimHtml/node_modules/console-control-strings/index.js delete mode 100644 XNSimHtml/node_modules/console-control-strings/package.json delete mode 100644 XNSimHtml/node_modules/delegates/.npmignore delete mode 100644 XNSimHtml/node_modules/delegates/History.md delete mode 100644 XNSimHtml/node_modules/delegates/License delete mode 100644 XNSimHtml/node_modules/delegates/Makefile delete mode 100644 XNSimHtml/node_modules/delegates/Readme.md delete mode 100644 XNSimHtml/node_modules/delegates/index.js delete mode 100644 XNSimHtml/node_modules/delegates/package.json delete mode 100644 XNSimHtml/node_modules/delegates/test/index.js delete mode 100644 XNSimHtml/node_modules/emoji-regex/LICENSE-MIT.txt delete mode 100644 XNSimHtml/node_modules/emoji-regex/README.md delete mode 100644 XNSimHtml/node_modules/emoji-regex/es2015/index.js delete mode 100644 XNSimHtml/node_modules/emoji-regex/es2015/text.js delete mode 100644 XNSimHtml/node_modules/emoji-regex/index.d.ts delete mode 100644 XNSimHtml/node_modules/emoji-regex/index.js delete mode 100644 XNSimHtml/node_modules/emoji-regex/package.json delete mode 100644 XNSimHtml/node_modules/emoji-regex/text.js delete mode 100644 XNSimHtml/node_modules/encoding/.prettierrc.js delete mode 100644 XNSimHtml/node_modules/encoding/.travis.yml delete mode 100644 XNSimHtml/node_modules/encoding/LICENSE delete mode 100644 XNSimHtml/node_modules/encoding/README.md delete mode 100644 XNSimHtml/node_modules/encoding/lib/encoding.js delete mode 100644 XNSimHtml/node_modules/encoding/package.json delete mode 100644 XNSimHtml/node_modules/encoding/test/test.js delete mode 100644 XNSimHtml/node_modules/env-paths/index.d.ts delete mode 100644 XNSimHtml/node_modules/env-paths/index.js delete mode 100644 XNSimHtml/node_modules/env-paths/license delete mode 100644 XNSimHtml/node_modules/env-paths/package.json delete mode 100644 XNSimHtml/node_modules/env-paths/readme.md delete mode 100644 XNSimHtml/node_modules/err-code/.editorconfig delete mode 100644 XNSimHtml/node_modules/err-code/.eslintrc.json delete mode 100644 XNSimHtml/node_modules/err-code/.travis.yml delete mode 100644 XNSimHtml/node_modules/err-code/README.md delete mode 100644 XNSimHtml/node_modules/err-code/bower.json delete mode 100644 XNSimHtml/node_modules/err-code/index.js delete mode 100644 XNSimHtml/node_modules/err-code/index.umd.js delete mode 100644 XNSimHtml/node_modules/err-code/package.json delete mode 100644 XNSimHtml/node_modules/err-code/test/.eslintrc.json delete mode 100644 XNSimHtml/node_modules/err-code/test/test.js delete mode 100644 XNSimHtml/node_modules/fs-minipass/LICENSE delete mode 100644 XNSimHtml/node_modules/fs-minipass/README.md delete mode 100644 XNSimHtml/node_modules/fs-minipass/index.js delete mode 100644 XNSimHtml/node_modules/fs-minipass/package.json delete mode 100644 XNSimHtml/node_modules/fs.realpath/LICENSE delete mode 100644 XNSimHtml/node_modules/fs.realpath/README.md delete mode 100644 XNSimHtml/node_modules/fs.realpath/index.js delete mode 100644 XNSimHtml/node_modules/fs.realpath/old.js delete mode 100644 XNSimHtml/node_modules/fs.realpath/package.json delete mode 100644 XNSimHtml/node_modules/gauge/LICENSE.md delete mode 100644 XNSimHtml/node_modules/gauge/README.md delete mode 100644 XNSimHtml/node_modules/gauge/lib/base-theme.js delete mode 100644 XNSimHtml/node_modules/gauge/lib/error.js delete mode 100644 XNSimHtml/node_modules/gauge/lib/has-color.js delete mode 100644 XNSimHtml/node_modules/gauge/lib/index.js delete mode 100644 XNSimHtml/node_modules/gauge/lib/plumbing.js delete mode 100644 XNSimHtml/node_modules/gauge/lib/process.js delete mode 100644 XNSimHtml/node_modules/gauge/lib/progress-bar.js delete mode 100644 XNSimHtml/node_modules/gauge/lib/render-template.js delete mode 100644 XNSimHtml/node_modules/gauge/lib/set-immediate.js delete mode 100644 XNSimHtml/node_modules/gauge/lib/set-interval.js delete mode 100644 XNSimHtml/node_modules/gauge/lib/spin.js delete mode 100644 XNSimHtml/node_modules/gauge/lib/template-item.js delete mode 100644 XNSimHtml/node_modules/gauge/lib/theme-set.js delete mode 100644 XNSimHtml/node_modules/gauge/lib/themes.js delete mode 100644 XNSimHtml/node_modules/gauge/lib/wide-truncate.js delete mode 100644 XNSimHtml/node_modules/gauge/package.json delete mode 100644 XNSimHtml/node_modules/glob/LICENSE delete mode 100644 XNSimHtml/node_modules/glob/README.md delete mode 100644 XNSimHtml/node_modules/glob/common.js delete mode 100644 XNSimHtml/node_modules/glob/glob.js delete mode 100644 XNSimHtml/node_modules/glob/package.json delete mode 100644 XNSimHtml/node_modules/glob/sync.js delete mode 100644 XNSimHtml/node_modules/graceful-fs/LICENSE delete mode 100644 XNSimHtml/node_modules/graceful-fs/README.md delete mode 100644 XNSimHtml/node_modules/graceful-fs/clone.js delete mode 100644 XNSimHtml/node_modules/graceful-fs/graceful-fs.js delete mode 100644 XNSimHtml/node_modules/graceful-fs/legacy-streams.js delete mode 100644 XNSimHtml/node_modules/graceful-fs/package.json delete mode 100644 XNSimHtml/node_modules/graceful-fs/polyfills.js delete mode 100644 XNSimHtml/node_modules/has-unicode/LICENSE delete mode 100644 XNSimHtml/node_modules/has-unicode/README.md delete mode 100644 XNSimHtml/node_modules/has-unicode/index.js delete mode 100644 XNSimHtml/node_modules/has-unicode/package.json delete mode 100644 XNSimHtml/node_modules/http-cache-semantics/LICENSE delete mode 100644 XNSimHtml/node_modules/http-cache-semantics/README.md delete mode 100644 XNSimHtml/node_modules/http-cache-semantics/index.js delete mode 100644 XNSimHtml/node_modules/http-cache-semantics/package.json delete mode 100644 XNSimHtml/node_modules/http-proxy-agent/README.md delete mode 100644 XNSimHtml/node_modules/http-proxy-agent/dist/agent.d.ts delete mode 100644 XNSimHtml/node_modules/http-proxy-agent/dist/agent.js delete mode 100644 XNSimHtml/node_modules/http-proxy-agent/dist/agent.js.map delete mode 100644 XNSimHtml/node_modules/http-proxy-agent/dist/index.d.ts delete mode 100644 XNSimHtml/node_modules/http-proxy-agent/dist/index.js delete mode 100644 XNSimHtml/node_modules/http-proxy-agent/dist/index.js.map delete mode 100644 XNSimHtml/node_modules/http-proxy-agent/node_modules/debug/LICENSE delete mode 100644 XNSimHtml/node_modules/http-proxy-agent/node_modules/debug/README.md delete mode 100644 XNSimHtml/node_modules/http-proxy-agent/node_modules/debug/package.json delete mode 100644 XNSimHtml/node_modules/http-proxy-agent/node_modules/debug/src/browser.js delete mode 100644 XNSimHtml/node_modules/http-proxy-agent/node_modules/debug/src/common.js delete mode 100644 XNSimHtml/node_modules/http-proxy-agent/node_modules/debug/src/index.js delete mode 100644 XNSimHtml/node_modules/http-proxy-agent/node_modules/debug/src/node.js delete mode 100644 XNSimHtml/node_modules/http-proxy-agent/node_modules/ms/index.js delete mode 100644 XNSimHtml/node_modules/http-proxy-agent/node_modules/ms/license.md delete mode 100644 XNSimHtml/node_modules/http-proxy-agent/node_modules/ms/package.json delete mode 100644 XNSimHtml/node_modules/http-proxy-agent/node_modules/ms/readme.md delete mode 100644 XNSimHtml/node_modules/http-proxy-agent/package.json delete mode 100644 XNSimHtml/node_modules/https-proxy-agent/README.md delete mode 100644 XNSimHtml/node_modules/https-proxy-agent/dist/agent.d.ts delete mode 100644 XNSimHtml/node_modules/https-proxy-agent/dist/agent.js delete mode 100644 XNSimHtml/node_modules/https-proxy-agent/dist/agent.js.map delete mode 100644 XNSimHtml/node_modules/https-proxy-agent/dist/index.d.ts delete mode 100644 XNSimHtml/node_modules/https-proxy-agent/dist/index.js delete mode 100644 XNSimHtml/node_modules/https-proxy-agent/dist/index.js.map delete mode 100644 XNSimHtml/node_modules/https-proxy-agent/dist/parse-proxy-response.d.ts delete mode 100644 XNSimHtml/node_modules/https-proxy-agent/dist/parse-proxy-response.js delete mode 100644 XNSimHtml/node_modules/https-proxy-agent/dist/parse-proxy-response.js.map delete mode 100644 XNSimHtml/node_modules/https-proxy-agent/node_modules/debug/LICENSE delete mode 100644 XNSimHtml/node_modules/https-proxy-agent/node_modules/debug/README.md delete mode 100644 XNSimHtml/node_modules/https-proxy-agent/node_modules/debug/package.json delete mode 100644 XNSimHtml/node_modules/https-proxy-agent/node_modules/debug/src/browser.js delete mode 100644 XNSimHtml/node_modules/https-proxy-agent/node_modules/debug/src/common.js delete mode 100644 XNSimHtml/node_modules/https-proxy-agent/node_modules/debug/src/index.js delete mode 100644 XNSimHtml/node_modules/https-proxy-agent/node_modules/debug/src/node.js delete mode 100644 XNSimHtml/node_modules/https-proxy-agent/node_modules/ms/index.js delete mode 100644 XNSimHtml/node_modules/https-proxy-agent/node_modules/ms/license.md delete mode 100644 XNSimHtml/node_modules/https-proxy-agent/node_modules/ms/package.json delete mode 100644 XNSimHtml/node_modules/https-proxy-agent/node_modules/ms/readme.md delete mode 100644 XNSimHtml/node_modules/https-proxy-agent/package.json delete mode 100644 XNSimHtml/node_modules/humanize-ms/History.md delete mode 100644 XNSimHtml/node_modules/humanize-ms/LICENSE delete mode 100644 XNSimHtml/node_modules/humanize-ms/README.md delete mode 100644 XNSimHtml/node_modules/humanize-ms/index.js delete mode 100644 XNSimHtml/node_modules/humanize-ms/package.json delete mode 100644 XNSimHtml/node_modules/imurmurhash/README.md delete mode 100644 XNSimHtml/node_modules/imurmurhash/imurmurhash.js delete mode 100644 XNSimHtml/node_modules/imurmurhash/imurmurhash.min.js delete mode 100644 XNSimHtml/node_modules/imurmurhash/package.json delete mode 100644 XNSimHtml/node_modules/indent-string/index.d.ts delete mode 100644 XNSimHtml/node_modules/indent-string/index.js delete mode 100644 XNSimHtml/node_modules/indent-string/license delete mode 100644 XNSimHtml/node_modules/indent-string/package.json delete mode 100644 XNSimHtml/node_modules/indent-string/readme.md delete mode 100644 XNSimHtml/node_modules/infer-owner/LICENSE delete mode 100644 XNSimHtml/node_modules/infer-owner/README.md delete mode 100644 XNSimHtml/node_modules/infer-owner/index.js delete mode 100644 XNSimHtml/node_modules/infer-owner/package.json delete mode 100644 XNSimHtml/node_modules/inflight/LICENSE delete mode 100644 XNSimHtml/node_modules/inflight/README.md delete mode 100644 XNSimHtml/node_modules/inflight/inflight.js delete mode 100644 XNSimHtml/node_modules/inflight/package.json delete mode 100644 XNSimHtml/node_modules/ip-address/LICENSE delete mode 100644 XNSimHtml/node_modules/ip-address/README.md delete mode 100644 XNSimHtml/node_modules/ip-address/dist/address-error.d.ts delete mode 100644 XNSimHtml/node_modules/ip-address/dist/address-error.d.ts.map delete mode 100644 XNSimHtml/node_modules/ip-address/dist/address-error.js delete mode 100644 XNSimHtml/node_modules/ip-address/dist/address-error.js.map delete mode 100644 XNSimHtml/node_modules/ip-address/dist/common.d.ts delete mode 100644 XNSimHtml/node_modules/ip-address/dist/common.d.ts.map delete mode 100644 XNSimHtml/node_modules/ip-address/dist/common.js delete mode 100644 XNSimHtml/node_modules/ip-address/dist/common.js.map delete mode 100644 XNSimHtml/node_modules/ip-address/dist/ip-address.d.ts delete mode 100644 XNSimHtml/node_modules/ip-address/dist/ip-address.d.ts.map delete mode 100644 XNSimHtml/node_modules/ip-address/dist/ip-address.js delete mode 100644 XNSimHtml/node_modules/ip-address/dist/ip-address.js.map delete mode 100644 XNSimHtml/node_modules/ip-address/dist/ipv4.d.ts delete mode 100644 XNSimHtml/node_modules/ip-address/dist/ipv4.d.ts.map delete mode 100644 XNSimHtml/node_modules/ip-address/dist/ipv4.js delete mode 100644 XNSimHtml/node_modules/ip-address/dist/ipv4.js.map delete mode 100644 XNSimHtml/node_modules/ip-address/dist/ipv6.d.ts delete mode 100644 XNSimHtml/node_modules/ip-address/dist/ipv6.d.ts.map delete mode 100644 XNSimHtml/node_modules/ip-address/dist/ipv6.js delete mode 100644 XNSimHtml/node_modules/ip-address/dist/ipv6.js.map delete mode 100644 XNSimHtml/node_modules/ip-address/dist/v4/constants.d.ts delete mode 100644 XNSimHtml/node_modules/ip-address/dist/v4/constants.d.ts.map delete mode 100644 XNSimHtml/node_modules/ip-address/dist/v4/constants.js delete mode 100644 XNSimHtml/node_modules/ip-address/dist/v4/constants.js.map delete mode 100644 XNSimHtml/node_modules/ip-address/dist/v6/constants.d.ts delete mode 100644 XNSimHtml/node_modules/ip-address/dist/v6/constants.d.ts.map delete mode 100644 XNSimHtml/node_modules/ip-address/dist/v6/constants.js delete mode 100644 XNSimHtml/node_modules/ip-address/dist/v6/constants.js.map delete mode 100644 XNSimHtml/node_modules/ip-address/dist/v6/helpers.d.ts delete mode 100644 XNSimHtml/node_modules/ip-address/dist/v6/helpers.d.ts.map delete mode 100644 XNSimHtml/node_modules/ip-address/dist/v6/helpers.js delete mode 100644 XNSimHtml/node_modules/ip-address/dist/v6/helpers.js.map delete mode 100644 XNSimHtml/node_modules/ip-address/dist/v6/regular-expressions.d.ts delete mode 100644 XNSimHtml/node_modules/ip-address/dist/v6/regular-expressions.d.ts.map delete mode 100644 XNSimHtml/node_modules/ip-address/dist/v6/regular-expressions.js delete mode 100644 XNSimHtml/node_modules/ip-address/dist/v6/regular-expressions.js.map delete mode 100644 XNSimHtml/node_modules/ip-address/package.json delete mode 100644 XNSimHtml/node_modules/ip-address/src/address-error.ts delete mode 100644 XNSimHtml/node_modules/ip-address/src/common.ts delete mode 100644 XNSimHtml/node_modules/ip-address/src/ip-address.ts delete mode 100644 XNSimHtml/node_modules/ip-address/src/ipv4.ts delete mode 100644 XNSimHtml/node_modules/ip-address/src/ipv6.ts delete mode 100644 XNSimHtml/node_modules/ip-address/src/v4/constants.ts delete mode 100644 XNSimHtml/node_modules/ip-address/src/v6/constants.ts delete mode 100644 XNSimHtml/node_modules/ip-address/src/v6/helpers.ts delete mode 100644 XNSimHtml/node_modules/ip-address/src/v6/regular-expressions.ts delete mode 100644 XNSimHtml/node_modules/is-fullwidth-code-point/index.d.ts delete mode 100644 XNSimHtml/node_modules/is-fullwidth-code-point/index.js delete mode 100644 XNSimHtml/node_modules/is-fullwidth-code-point/license delete mode 100644 XNSimHtml/node_modules/is-fullwidth-code-point/package.json delete mode 100644 XNSimHtml/node_modules/is-fullwidth-code-point/readme.md delete mode 100644 XNSimHtml/node_modules/is-lambda/.npmignore delete mode 100644 XNSimHtml/node_modules/is-lambda/.travis.yml delete mode 100644 XNSimHtml/node_modules/is-lambda/LICENSE delete mode 100644 XNSimHtml/node_modules/is-lambda/README.md delete mode 100644 XNSimHtml/node_modules/is-lambda/index.js delete mode 100644 XNSimHtml/node_modules/is-lambda/package.json delete mode 100644 XNSimHtml/node_modules/is-lambda/test.js delete mode 100644 XNSimHtml/node_modules/isexe/.npmignore delete mode 100644 XNSimHtml/node_modules/isexe/LICENSE delete mode 100644 XNSimHtml/node_modules/isexe/README.md delete mode 100644 XNSimHtml/node_modules/isexe/index.js delete mode 100644 XNSimHtml/node_modules/isexe/mode.js delete mode 100644 XNSimHtml/node_modules/isexe/package.json delete mode 100644 XNSimHtml/node_modules/isexe/test/basic.js delete mode 100644 XNSimHtml/node_modules/isexe/windows.js delete mode 100644 XNSimHtml/node_modules/jsbn/.npmignore delete mode 100644 XNSimHtml/node_modules/jsbn/CHANGELOG.md delete mode 100644 XNSimHtml/node_modules/jsbn/LICENSE delete mode 100644 XNSimHtml/node_modules/jsbn/README.md delete mode 100644 XNSimHtml/node_modules/jsbn/example.html delete mode 100644 XNSimHtml/node_modules/jsbn/example.js delete mode 100644 XNSimHtml/node_modules/jsbn/index.js delete mode 100644 XNSimHtml/node_modules/jsbn/package.json delete mode 100644 XNSimHtml/node_modules/jsbn/test/es6-import.js delete mode 100644 XNSimHtml/node_modules/lru-cache/LICENSE delete mode 100644 XNSimHtml/node_modules/lru-cache/README.md delete mode 100644 XNSimHtml/node_modules/lru-cache/index.js delete mode 100644 XNSimHtml/node_modules/lru-cache/package.json delete mode 100644 XNSimHtml/node_modules/make-fetch-happen/LICENSE delete mode 100644 XNSimHtml/node_modules/make-fetch-happen/README.md delete mode 100644 XNSimHtml/node_modules/make-fetch-happen/lib/agent.js delete mode 100644 XNSimHtml/node_modules/make-fetch-happen/lib/cache/entry.js delete mode 100644 XNSimHtml/node_modules/make-fetch-happen/lib/cache/errors.js delete mode 100644 XNSimHtml/node_modules/make-fetch-happen/lib/cache/index.js delete mode 100644 XNSimHtml/node_modules/make-fetch-happen/lib/cache/key.js delete mode 100644 XNSimHtml/node_modules/make-fetch-happen/lib/cache/policy.js delete mode 100644 XNSimHtml/node_modules/make-fetch-happen/lib/fetch.js delete mode 100644 XNSimHtml/node_modules/make-fetch-happen/lib/index.js delete mode 100644 XNSimHtml/node_modules/make-fetch-happen/lib/options.js delete mode 100644 XNSimHtml/node_modules/make-fetch-happen/lib/remote.js delete mode 100644 XNSimHtml/node_modules/make-fetch-happen/package.json delete mode 100644 XNSimHtml/node_modules/minipass-collect/LICENSE delete mode 100644 XNSimHtml/node_modules/minipass-collect/README.md delete mode 100644 XNSimHtml/node_modules/minipass-collect/index.js delete mode 100644 XNSimHtml/node_modules/minipass-collect/package.json delete mode 100644 XNSimHtml/node_modules/minipass-fetch/LICENSE delete mode 100644 XNSimHtml/node_modules/minipass-fetch/README.md delete mode 100644 XNSimHtml/node_modules/minipass-fetch/index.js delete mode 100644 XNSimHtml/node_modules/minipass-fetch/lib/abort-error.js delete mode 100644 XNSimHtml/node_modules/minipass-fetch/lib/blob.js delete mode 100644 XNSimHtml/node_modules/minipass-fetch/lib/body.js delete mode 100644 XNSimHtml/node_modules/minipass-fetch/lib/fetch-error.js delete mode 100644 XNSimHtml/node_modules/minipass-fetch/lib/headers.js delete mode 100644 XNSimHtml/node_modules/minipass-fetch/lib/index.js delete mode 100644 XNSimHtml/node_modules/minipass-fetch/lib/request.js delete mode 100644 XNSimHtml/node_modules/minipass-fetch/lib/response.js delete mode 100644 XNSimHtml/node_modules/minipass-fetch/package.json delete mode 100644 XNSimHtml/node_modules/minipass-flush/LICENSE delete mode 100644 XNSimHtml/node_modules/minipass-flush/README.md delete mode 100644 XNSimHtml/node_modules/minipass-flush/index.js delete mode 100644 XNSimHtml/node_modules/minipass-flush/package.json delete mode 100644 XNSimHtml/node_modules/minipass-pipeline/LICENSE delete mode 100644 XNSimHtml/node_modules/minipass-pipeline/README.md delete mode 100644 XNSimHtml/node_modules/minipass-pipeline/index.js delete mode 100644 XNSimHtml/node_modules/minipass-pipeline/package.json delete mode 100644 XNSimHtml/node_modules/minipass-sized/.npmignore delete mode 100644 XNSimHtml/node_modules/minipass-sized/LICENSE delete mode 100644 XNSimHtml/node_modules/minipass-sized/README.md delete mode 100644 XNSimHtml/node_modules/minipass-sized/index.js delete mode 100644 XNSimHtml/node_modules/minipass-sized/package-lock.json delete mode 100644 XNSimHtml/node_modules/minipass-sized/package.json delete mode 100644 XNSimHtml/node_modules/minipass-sized/test/basic.js delete mode 100644 XNSimHtml/node_modules/minipass/LICENSE delete mode 100644 XNSimHtml/node_modules/minipass/README.md delete mode 100644 XNSimHtml/node_modules/minipass/index.d.ts delete mode 100644 XNSimHtml/node_modules/minipass/index.js delete mode 100644 XNSimHtml/node_modules/minipass/package.json delete mode 100644 XNSimHtml/node_modules/minizlib/LICENSE delete mode 100644 XNSimHtml/node_modules/minizlib/README.md delete mode 100644 XNSimHtml/node_modules/minizlib/constants.js delete mode 100644 XNSimHtml/node_modules/minizlib/index.js delete mode 100644 XNSimHtml/node_modules/minizlib/package.json delete mode 100644 XNSimHtml/node_modules/node-gyp/.github/ISSUE_TEMPLATE.md delete mode 100644 XNSimHtml/node_modules/node-gyp/.github/PULL_REQUEST_TEMPLATE.md delete mode 100644 XNSimHtml/node_modules/node-gyp/.github/workflows/release-please.yml delete mode 100644 XNSimHtml/node_modules/node-gyp/.github/workflows/tests.yml delete mode 100644 XNSimHtml/node_modules/node-gyp/.github/workflows/visual-studio.yml delete mode 100644 XNSimHtml/node_modules/node-gyp/CHANGELOG.md delete mode 100644 XNSimHtml/node_modules/node-gyp/CONTRIBUTING.md delete mode 100644 XNSimHtml/node_modules/node-gyp/LICENSE delete mode 100644 XNSimHtml/node_modules/node-gyp/README.md delete mode 100644 XNSimHtml/node_modules/node-gyp/addon.gypi delete mode 100755 XNSimHtml/node_modules/node-gyp/bin/node-gyp.js delete mode 100644 XNSimHtml/node_modules/node-gyp/docs/Common-issues.md delete mode 100644 XNSimHtml/node_modules/node-gyp/docs/Error-pre-versions-of-node-cannot-be-installed.md delete mode 100644 XNSimHtml/node_modules/node-gyp/docs/Home.md delete mode 100644 XNSimHtml/node_modules/node-gyp/docs/Linking-to-OpenSSL.md delete mode 100644 XNSimHtml/node_modules/node-gyp/docs/Updating-npm-bundled-node-gyp.md delete mode 100644 XNSimHtml/node_modules/node-gyp/docs/binding.gyp-files-in-the-wild.md delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/.flake8 delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/.github/workflows/Python_tests.yml delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/.github/workflows/node-gyp.yml delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/.github/workflows/nodejs-windows.yml delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/.github/workflows/release-please.yml delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/AUTHORS delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/CHANGELOG.md delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/CODE_OF_CONDUCT.md delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/CONTRIBUTING.md delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/LICENSE delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/README.md delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/data/win/large-pdb-shim.cc delete mode 100755 XNSimHtml/node_modules/node-gyp/gyp/gyp delete mode 100755 XNSimHtml/node_modules/node-gyp/gyp/gyp.bat delete mode 100755 XNSimHtml/node_modules/node-gyp/gyp/gyp_main.py delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/pylib/gyp/MSVSNew.py delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/pylib/gyp/MSVSProject.py delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings.py delete mode 100755 XNSimHtml/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings_test.py delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/pylib/gyp/MSVSToolFile.py delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/pylib/gyp/MSVSUserFile.py delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/pylib/gyp/MSVSUtil.py delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/pylib/gyp/MSVSVersion.py delete mode 100755 XNSimHtml/node_modules/node-gyp/gyp/pylib/gyp/__init__.py delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/__init__.cpython-39.pyc delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/common.cpython-39.pyc delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/input.cpython-39.pyc delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/simple_copy.cpython-39.pyc delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/xcode_emulation.cpython-39.pyc delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/pylib/gyp/common.py delete mode 100755 XNSimHtml/node_modules/node-gyp/gyp/pylib/gyp/common_test.py delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/pylib/gyp/easy_xml.py delete mode 100755 XNSimHtml/node_modules/node-gyp/gyp/pylib/gyp/easy_xml_test.py delete mode 100755 XNSimHtml/node_modules/node-gyp/gyp/pylib/gyp/flock_tool.py delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/pylib/gyp/generator/__init__.py delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/pylib/gyp/generator/__pycache__/__init__.cpython-39.pyc delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/pylib/gyp/generator/__pycache__/make.cpython-39.pyc delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/pylib/gyp/generator/analyzer.py delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/pylib/gyp/generator/android.py delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/pylib/gyp/generator/cmake.py delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/pylib/gyp/generator/compile_commands_json.py delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/pylib/gyp/generator/dump_dependency_json.py delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/pylib/gyp/generator/eclipse.py delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/pylib/gyp/generator/gypd.py delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/pylib/gyp/generator/gypsh.py delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs.py delete mode 100755 XNSimHtml/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs_test.py delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja_test.py delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode.py delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode_test.py delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/pylib/gyp/input.py delete mode 100755 XNSimHtml/node_modules/node-gyp/gyp/pylib/gyp/input_test.py delete mode 100755 XNSimHtml/node_modules/node-gyp/gyp/pylib/gyp/mac_tool.py delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/pylib/gyp/ninja_syntax.py delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/pylib/gyp/simple_copy.py delete mode 100755 XNSimHtml/node_modules/node-gyp/gyp/pylib/gyp/win_tool.py delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/pylib/gyp/xcode_ninja.py delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/pylib/gyp/xcodeproj_file.py delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/pylib/gyp/xml_fix.py delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/requirements_dev.txt delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/setup.py delete mode 100755 XNSimHtml/node_modules/node-gyp/gyp/test_gyp.py delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/tools/README delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/tools/Xcode/README delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/tools/Xcode/Specifications/gyp.pbfilespec delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/tools/Xcode/Specifications/gyp.xclangspec delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/tools/emacs/README delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/tools/emacs/gyp-tests.el delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/tools/emacs/gyp.el delete mode 100755 XNSimHtml/node_modules/node-gyp/gyp/tools/emacs/run-unit-tests.sh delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/tools/emacs/testdata/media.gyp delete mode 100644 XNSimHtml/node_modules/node-gyp/gyp/tools/emacs/testdata/media.gyp.fontified delete mode 100755 XNSimHtml/node_modules/node-gyp/gyp/tools/graphviz.py delete mode 100755 XNSimHtml/node_modules/node-gyp/gyp/tools/pretty_gyp.py delete mode 100755 XNSimHtml/node_modules/node-gyp/gyp/tools/pretty_sln.py delete mode 100755 XNSimHtml/node_modules/node-gyp/gyp/tools/pretty_vcproj.py delete mode 100644 XNSimHtml/node_modules/node-gyp/lib/Find-VisualStudio.cs delete mode 100644 XNSimHtml/node_modules/node-gyp/lib/build.js delete mode 100644 XNSimHtml/node_modules/node-gyp/lib/clean.js delete mode 100644 XNSimHtml/node_modules/node-gyp/lib/configure.js delete mode 100644 XNSimHtml/node_modules/node-gyp/lib/create-config-gypi.js delete mode 100644 XNSimHtml/node_modules/node-gyp/lib/find-node-directory.js delete mode 100644 XNSimHtml/node_modules/node-gyp/lib/find-python.js delete mode 100644 XNSimHtml/node_modules/node-gyp/lib/find-visualstudio.js delete mode 100644 XNSimHtml/node_modules/node-gyp/lib/install.js delete mode 100644 XNSimHtml/node_modules/node-gyp/lib/list.js delete mode 100644 XNSimHtml/node_modules/node-gyp/lib/node-gyp.js delete mode 100644 XNSimHtml/node_modules/node-gyp/lib/process-release.js delete mode 100644 XNSimHtml/node_modules/node-gyp/lib/rebuild.js delete mode 100644 XNSimHtml/node_modules/node-gyp/lib/remove.js delete mode 100644 XNSimHtml/node_modules/node-gyp/lib/util.js delete mode 100644 XNSimHtml/node_modules/node-gyp/macOS_Catalina.md delete mode 100644 XNSimHtml/node_modules/node-gyp/macOS_Catalina_acid_test.sh delete mode 120000 XNSimHtml/node_modules/node-gyp/node_modules/.bin/semver delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/LICENSE delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/README.md delete mode 100755 XNSimHtml/node_modules/node-gyp/node_modules/semver/bin/semver.js delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/classes/comparator.js delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/classes/index.js delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/classes/range.js delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/classes/semver.js delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/functions/clean.js delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/functions/cmp.js delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/functions/coerce.js delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/functions/compare-build.js delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/functions/compare-loose.js delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/functions/compare.js delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/functions/diff.js delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/functions/eq.js delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/functions/gt.js delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/functions/gte.js delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/functions/inc.js delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/functions/lt.js delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/functions/lte.js delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/functions/major.js delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/functions/minor.js delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/functions/neq.js delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/functions/parse.js delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/functions/patch.js delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/functions/prerelease.js delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/functions/rcompare.js delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/functions/rsort.js delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/functions/satisfies.js delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/functions/sort.js delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/functions/valid.js delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/index.js delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/internal/constants.js delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/internal/debug.js delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/internal/identifiers.js delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/internal/lrucache.js delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/internal/parse-options.js delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/internal/re.js delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/package.json delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/preload.js delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/range.bnf delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/ranges/gtr.js delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/ranges/intersects.js delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/ranges/ltr.js delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/ranges/max-satisfying.js delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/ranges/min-satisfying.js delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/ranges/min-version.js delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/ranges/outside.js delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/ranges/simplify.js delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/ranges/subset.js delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/ranges/to-comparators.js delete mode 100644 XNSimHtml/node_modules/node-gyp/node_modules/semver/ranges/valid.js delete mode 100644 XNSimHtml/node_modules/node-gyp/package.json delete mode 100644 XNSimHtml/node_modules/node-gyp/src/win_delay_load_hook.cc delete mode 100644 XNSimHtml/node_modules/node-gyp/test/common.js delete mode 100644 XNSimHtml/node_modules/node-gyp/test/fixtures/VS_2017_BuildTools_minimal.txt delete mode 100644 XNSimHtml/node_modules/node-gyp/test/fixtures/VS_2017_Community_workload.txt delete mode 100644 XNSimHtml/node_modules/node-gyp/test/fixtures/VS_2017_Express.txt delete mode 100644 XNSimHtml/node_modules/node-gyp/test/fixtures/VS_2017_Unusable.txt delete mode 100644 XNSimHtml/node_modules/node-gyp/test/fixtures/VS_2019_BuildTools_minimal.txt delete mode 100644 XNSimHtml/node_modules/node-gyp/test/fixtures/VS_2019_Community_workload.txt delete mode 100644 XNSimHtml/node_modules/node-gyp/test/fixtures/VS_2019_Preview.txt delete mode 100644 XNSimHtml/node_modules/node-gyp/test/fixtures/ca-bundle.crt delete mode 100644 XNSimHtml/node_modules/node-gyp/test/fixtures/ca.crt delete mode 100644 XNSimHtml/node_modules/node-gyp/test/fixtures/nodedir/include/node/config.gypi delete mode 100644 XNSimHtml/node_modules/node-gyp/test/fixtures/server.crt delete mode 100644 XNSimHtml/node_modules/node-gyp/test/fixtures/server.key delete mode 100644 XNSimHtml/node_modules/node-gyp/test/fixtures/test-charmap.py delete mode 100644 XNSimHtml/node_modules/node-gyp/test/process-exec-sync.js delete mode 100644 XNSimHtml/node_modules/node-gyp/test/simple-proxy.js delete mode 100644 XNSimHtml/node_modules/node-gyp/test/test-addon.js delete mode 100644 XNSimHtml/node_modules/node-gyp/test/test-configure-python.js delete mode 100644 XNSimHtml/node_modules/node-gyp/test/test-create-config-gypi.js delete mode 100644 XNSimHtml/node_modules/node-gyp/test/test-download.js delete mode 100644 XNSimHtml/node_modules/node-gyp/test/test-find-accessible-sync.js delete mode 100644 XNSimHtml/node_modules/node-gyp/test/test-find-node-directory.js delete mode 100644 XNSimHtml/node_modules/node-gyp/test/test-find-python.js delete mode 100644 XNSimHtml/node_modules/node-gyp/test/test-find-visualstudio.js delete mode 100644 XNSimHtml/node_modules/node-gyp/test/test-install.js delete mode 100644 XNSimHtml/node_modules/node-gyp/test/test-options.js delete mode 100644 XNSimHtml/node_modules/node-gyp/test/test-process-release.js delete mode 100755 XNSimHtml/node_modules/node-gyp/update-gyp.py delete mode 100644 XNSimHtml/node_modules/nopt/CHANGELOG.md delete mode 100644 XNSimHtml/node_modules/nopt/LICENSE delete mode 100644 XNSimHtml/node_modules/nopt/README.md delete mode 100755 XNSimHtml/node_modules/nopt/bin/nopt.js delete mode 100644 XNSimHtml/node_modules/nopt/lib/nopt.js delete mode 100644 XNSimHtml/node_modules/nopt/package.json delete mode 100644 XNSimHtml/node_modules/npmlog/LICENSE.md delete mode 100644 XNSimHtml/node_modules/npmlog/README.md delete mode 100644 XNSimHtml/node_modules/npmlog/lib/log.js delete mode 100644 XNSimHtml/node_modules/npmlog/package.json delete mode 100644 XNSimHtml/node_modules/p-map/index.d.ts delete mode 100644 XNSimHtml/node_modules/p-map/index.js delete mode 100644 XNSimHtml/node_modules/p-map/license delete mode 100644 XNSimHtml/node_modules/p-map/package.json delete mode 100644 XNSimHtml/node_modules/p-map/readme.md delete mode 100644 XNSimHtml/node_modules/path-is-absolute/index.js delete mode 100644 XNSimHtml/node_modules/path-is-absolute/license delete mode 100644 XNSimHtml/node_modules/path-is-absolute/package.json delete mode 100644 XNSimHtml/node_modules/path-is-absolute/readme.md delete mode 100644 XNSimHtml/node_modules/promise-inflight/LICENSE delete mode 100644 XNSimHtml/node_modules/promise-inflight/README.md delete mode 100644 XNSimHtml/node_modules/promise-inflight/inflight.js delete mode 100644 XNSimHtml/node_modules/promise-inflight/package.json delete mode 100644 XNSimHtml/node_modules/promise-retry/.editorconfig delete mode 100644 XNSimHtml/node_modules/promise-retry/.jshintrc delete mode 100644 XNSimHtml/node_modules/promise-retry/.travis.yml delete mode 100644 XNSimHtml/node_modules/promise-retry/LICENSE delete mode 100644 XNSimHtml/node_modules/promise-retry/README.md delete mode 100644 XNSimHtml/node_modules/promise-retry/index.js delete mode 100644 XNSimHtml/node_modules/promise-retry/package.json delete mode 100644 XNSimHtml/node_modules/promise-retry/test/test.js delete mode 100644 XNSimHtml/node_modules/retry/.npmignore delete mode 100644 XNSimHtml/node_modules/retry/.travis.yml delete mode 100644 XNSimHtml/node_modules/retry/License delete mode 100644 XNSimHtml/node_modules/retry/Makefile delete mode 100644 XNSimHtml/node_modules/retry/README.md delete mode 100644 XNSimHtml/node_modules/retry/equation.gif delete mode 100644 XNSimHtml/node_modules/retry/example/dns.js delete mode 100644 XNSimHtml/node_modules/retry/example/stop.js delete mode 100644 XNSimHtml/node_modules/retry/index.js delete mode 100644 XNSimHtml/node_modules/retry/lib/retry.js delete mode 100644 XNSimHtml/node_modules/retry/lib/retry_operation.js delete mode 100644 XNSimHtml/node_modules/retry/package.json delete mode 100644 XNSimHtml/node_modules/retry/test/common.js delete mode 100644 XNSimHtml/node_modules/retry/test/integration/test-forever.js delete mode 100644 XNSimHtml/node_modules/retry/test/integration/test-retry-operation.js delete mode 100644 XNSimHtml/node_modules/retry/test/integration/test-retry-wrap.js delete mode 100644 XNSimHtml/node_modules/retry/test/integration/test-timeouts.js delete mode 100644 XNSimHtml/node_modules/rimraf/CHANGELOG.md delete mode 100644 XNSimHtml/node_modules/rimraf/LICENSE delete mode 100644 XNSimHtml/node_modules/rimraf/README.md delete mode 100755 XNSimHtml/node_modules/rimraf/bin.js delete mode 100644 XNSimHtml/node_modules/rimraf/package.json delete mode 100644 XNSimHtml/node_modules/rimraf/rimraf.js delete mode 100644 XNSimHtml/node_modules/sax/LICENSE delete mode 100644 XNSimHtml/node_modules/sax/README.md delete mode 100644 XNSimHtml/node_modules/sax/lib/sax.js delete mode 100644 XNSimHtml/node_modules/sax/package.json delete mode 100644 XNSimHtml/node_modules/set-blocking/CHANGELOG.md delete mode 100644 XNSimHtml/node_modules/set-blocking/LICENSE.txt delete mode 100644 XNSimHtml/node_modules/set-blocking/README.md delete mode 100644 XNSimHtml/node_modules/set-blocking/index.js delete mode 100644 XNSimHtml/node_modules/set-blocking/package.json delete mode 100644 XNSimHtml/node_modules/signal-exit/LICENSE.txt delete mode 100644 XNSimHtml/node_modules/signal-exit/README.md delete mode 100644 XNSimHtml/node_modules/signal-exit/index.js delete mode 100644 XNSimHtml/node_modules/signal-exit/package.json delete mode 100644 XNSimHtml/node_modules/signal-exit/signals.js delete mode 100644 XNSimHtml/node_modules/smart-buffer/.prettierrc.yaml delete mode 100644 XNSimHtml/node_modules/smart-buffer/.travis.yml delete mode 100644 XNSimHtml/node_modules/smart-buffer/LICENSE delete mode 100644 XNSimHtml/node_modules/smart-buffer/README.md delete mode 100644 XNSimHtml/node_modules/smart-buffer/docs/CHANGELOG.md delete mode 100644 XNSimHtml/node_modules/smart-buffer/docs/README_v3.md delete mode 100644 XNSimHtml/node_modules/smart-buffer/docs/ROADMAP.md delete mode 100644 XNSimHtml/node_modules/smart-buffer/package.json delete mode 100644 XNSimHtml/node_modules/smart-buffer/typings/smartbuffer.d.ts delete mode 100644 XNSimHtml/node_modules/smart-buffer/typings/utils.d.ts delete mode 100644 XNSimHtml/node_modules/socks-proxy-agent/README.md delete mode 100644 XNSimHtml/node_modules/socks-proxy-agent/dist/index.d.ts delete mode 100644 XNSimHtml/node_modules/socks-proxy-agent/dist/index.js delete mode 100644 XNSimHtml/node_modules/socks-proxy-agent/dist/index.js.map delete mode 100644 XNSimHtml/node_modules/socks-proxy-agent/node_modules/debug/LICENSE delete mode 100644 XNSimHtml/node_modules/socks-proxy-agent/node_modules/debug/README.md delete mode 100644 XNSimHtml/node_modules/socks-proxy-agent/node_modules/debug/package.json delete mode 100644 XNSimHtml/node_modules/socks-proxy-agent/node_modules/debug/src/browser.js delete mode 100644 XNSimHtml/node_modules/socks-proxy-agent/node_modules/debug/src/common.js delete mode 100644 XNSimHtml/node_modules/socks-proxy-agent/node_modules/debug/src/index.js delete mode 100644 XNSimHtml/node_modules/socks-proxy-agent/node_modules/debug/src/node.js delete mode 100644 XNSimHtml/node_modules/socks-proxy-agent/node_modules/ms/index.js delete mode 100644 XNSimHtml/node_modules/socks-proxy-agent/node_modules/ms/license.md delete mode 100644 XNSimHtml/node_modules/socks-proxy-agent/node_modules/ms/package.json delete mode 100644 XNSimHtml/node_modules/socks-proxy-agent/node_modules/ms/readme.md delete mode 100644 XNSimHtml/node_modules/socks-proxy-agent/package.json delete mode 100644 XNSimHtml/node_modules/socks/.eslintrc.cjs delete mode 100644 XNSimHtml/node_modules/socks/.prettierrc.yaml delete mode 100644 XNSimHtml/node_modules/socks/LICENSE delete mode 100644 XNSimHtml/node_modules/socks/README.md delete mode 100644 XNSimHtml/node_modules/socks/docs/examples/index.md delete mode 100644 XNSimHtml/node_modules/socks/docs/examples/javascript/associateExample.md delete mode 100644 XNSimHtml/node_modules/socks/docs/examples/javascript/bindExample.md delete mode 100644 XNSimHtml/node_modules/socks/docs/examples/javascript/connectExample.md delete mode 100644 XNSimHtml/node_modules/socks/docs/examples/typescript/associateExample.md delete mode 100644 XNSimHtml/node_modules/socks/docs/examples/typescript/bindExample.md delete mode 100644 XNSimHtml/node_modules/socks/docs/examples/typescript/connectExample.md delete mode 100644 XNSimHtml/node_modules/socks/docs/index.md delete mode 100644 XNSimHtml/node_modules/socks/docs/migratingFromV1.md delete mode 100644 XNSimHtml/node_modules/socks/package.json delete mode 100644 XNSimHtml/node_modules/socks/typings/client/socksclient.d.ts delete mode 100644 XNSimHtml/node_modules/socks/typings/common/constants.d.ts delete mode 100644 XNSimHtml/node_modules/socks/typings/common/helpers.d.ts delete mode 100644 XNSimHtml/node_modules/socks/typings/common/receivebuffer.d.ts delete mode 100644 XNSimHtml/node_modules/socks/typings/common/util.d.ts delete mode 100644 XNSimHtml/node_modules/socks/typings/index.d.ts delete mode 100644 XNSimHtml/node_modules/sprintf-js/CONTRIBUTORS.md delete mode 100644 XNSimHtml/node_modules/sprintf-js/LICENSE delete mode 100644 XNSimHtml/node_modules/sprintf-js/README.md delete mode 100644 XNSimHtml/node_modules/sprintf-js/dist/.gitattributes delete mode 100644 XNSimHtml/node_modules/sprintf-js/dist/angular-sprintf.min.js delete mode 100644 XNSimHtml/node_modules/sprintf-js/dist/angular-sprintf.min.js.map delete mode 100644 XNSimHtml/node_modules/sprintf-js/dist/sprintf.min.js delete mode 100644 XNSimHtml/node_modules/sprintf-js/dist/sprintf.min.js.map delete mode 100644 XNSimHtml/node_modules/sprintf-js/package.json delete mode 100644 XNSimHtml/node_modules/sprintf-js/src/angular-sprintf.js delete mode 100644 XNSimHtml/node_modules/sprintf-js/src/sprintf.js delete mode 100644 XNSimHtml/node_modules/sqlite3/LICENSE delete mode 100644 XNSimHtml/node_modules/sqlite3/README.md delete mode 100644 XNSimHtml/node_modules/sqlite3/binding.gyp delete mode 100644 XNSimHtml/node_modules/sqlite3/deps/common-sqlite.gypi delete mode 100644 XNSimHtml/node_modules/sqlite3/deps/extract.js delete mode 100644 XNSimHtml/node_modules/sqlite3/deps/sqlite-autoconf-3440200.tar.gz delete mode 100755 XNSimHtml/node_modules/sqlite3/deps/sqlite3.gyp delete mode 100644 XNSimHtml/node_modules/sqlite3/lib/sqlite3-binding.js delete mode 100644 XNSimHtml/node_modules/sqlite3/lib/sqlite3.d.ts delete mode 100644 XNSimHtml/node_modules/sqlite3/lib/sqlite3.js delete mode 100644 XNSimHtml/node_modules/sqlite3/lib/trace.js delete mode 100644 XNSimHtml/node_modules/sqlite3/node_modules/node-addon-api/LICENSE.md delete mode 100644 XNSimHtml/node_modules/sqlite3/node_modules/node-addon-api/README.md delete mode 100644 XNSimHtml/node_modules/sqlite3/node_modules/node-addon-api/common.gypi delete mode 100644 XNSimHtml/node_modules/sqlite3/node_modules/node-addon-api/except.gypi delete mode 100644 XNSimHtml/node_modules/sqlite3/node_modules/node-addon-api/index.js delete mode 100644 XNSimHtml/node_modules/sqlite3/node_modules/node-addon-api/napi-inl.deprecated.h delete mode 100644 XNSimHtml/node_modules/sqlite3/node_modules/node-addon-api/napi-inl.h delete mode 100644 XNSimHtml/node_modules/sqlite3/node_modules/node-addon-api/napi.h delete mode 100644 XNSimHtml/node_modules/sqlite3/node_modules/node-addon-api/node_addon_api.gyp delete mode 100644 XNSimHtml/node_modules/sqlite3/node_modules/node-addon-api/node_api.gyp delete mode 100644 XNSimHtml/node_modules/sqlite3/node_modules/node-addon-api/noexcept.gypi delete mode 100644 XNSimHtml/node_modules/sqlite3/node_modules/node-addon-api/nothing.c delete mode 100644 XNSimHtml/node_modules/sqlite3/node_modules/node-addon-api/package-support.json delete mode 100644 XNSimHtml/node_modules/sqlite3/node_modules/node-addon-api/package.json delete mode 100644 XNSimHtml/node_modules/sqlite3/node_modules/node-addon-api/tools/README.md delete mode 100644 XNSimHtml/node_modules/sqlite3/node_modules/node-addon-api/tools/check-napi.js delete mode 100644 XNSimHtml/node_modules/sqlite3/node_modules/node-addon-api/tools/clang-format.js delete mode 100755 XNSimHtml/node_modules/sqlite3/node_modules/node-addon-api/tools/conversion.js delete mode 100644 XNSimHtml/node_modules/sqlite3/node_modules/node-addon-api/tools/eslint-format.js delete mode 100644 XNSimHtml/node_modules/sqlite3/package.json delete mode 100644 XNSimHtml/node_modules/sqlite3/src/async.h delete mode 100644 XNSimHtml/node_modules/sqlite3/src/backup.cc delete mode 100644 XNSimHtml/node_modules/sqlite3/src/backup.h delete mode 100644 XNSimHtml/node_modules/sqlite3/src/database.cc delete mode 100644 XNSimHtml/node_modules/sqlite3/src/database.h delete mode 100644 XNSimHtml/node_modules/sqlite3/src/gcc-preinclude.h delete mode 100644 XNSimHtml/node_modules/sqlite3/src/macros.h delete mode 100644 XNSimHtml/node_modules/sqlite3/src/node_sqlite3.cc delete mode 100644 XNSimHtml/node_modules/sqlite3/src/statement.cc delete mode 100644 XNSimHtml/node_modules/sqlite3/src/statement.h delete mode 100644 XNSimHtml/node_modules/sqlite3/src/threading.h delete mode 100644 XNSimHtml/node_modules/ssri/CHANGELOG.md delete mode 100644 XNSimHtml/node_modules/ssri/LICENSE.md delete mode 100644 XNSimHtml/node_modules/ssri/README.md delete mode 100644 XNSimHtml/node_modules/ssri/index.js delete mode 100644 XNSimHtml/node_modules/ssri/package.json delete mode 100644 XNSimHtml/node_modules/string-width/index.d.ts delete mode 100644 XNSimHtml/node_modules/string-width/index.js delete mode 100644 XNSimHtml/node_modules/string-width/license delete mode 100644 XNSimHtml/node_modules/string-width/package.json delete mode 100644 XNSimHtml/node_modules/string-width/readme.md delete mode 100644 XNSimHtml/node_modules/strip-ansi/index.d.ts delete mode 100644 XNSimHtml/node_modules/strip-ansi/index.js delete mode 100644 XNSimHtml/node_modules/strip-ansi/license delete mode 100644 XNSimHtml/node_modules/strip-ansi/package.json delete mode 100644 XNSimHtml/node_modules/strip-ansi/readme.md delete mode 100644 XNSimHtml/node_modules/tar/LICENSE delete mode 100644 XNSimHtml/node_modules/tar/README.md delete mode 100644 XNSimHtml/node_modules/tar/index.js delete mode 100644 XNSimHtml/node_modules/tar/lib/create.js delete mode 100644 XNSimHtml/node_modules/tar/lib/extract.js delete mode 100644 XNSimHtml/node_modules/tar/lib/get-write-flag.js delete mode 100644 XNSimHtml/node_modules/tar/lib/header.js delete mode 100644 XNSimHtml/node_modules/tar/lib/high-level-opt.js delete mode 100644 XNSimHtml/node_modules/tar/lib/large-numbers.js delete mode 100644 XNSimHtml/node_modules/tar/lib/list.js delete mode 100644 XNSimHtml/node_modules/tar/lib/mkdir.js delete mode 100644 XNSimHtml/node_modules/tar/lib/mode-fix.js delete mode 100644 XNSimHtml/node_modules/tar/lib/normalize-unicode.js delete mode 100644 XNSimHtml/node_modules/tar/lib/normalize-windows-path.js delete mode 100644 XNSimHtml/node_modules/tar/lib/pack.js delete mode 100644 XNSimHtml/node_modules/tar/lib/parse.js delete mode 100644 XNSimHtml/node_modules/tar/lib/path-reservations.js delete mode 100644 XNSimHtml/node_modules/tar/lib/pax.js delete mode 100644 XNSimHtml/node_modules/tar/lib/read-entry.js delete mode 100644 XNSimHtml/node_modules/tar/lib/replace.js delete mode 100644 XNSimHtml/node_modules/tar/lib/strip-absolute-path.js delete mode 100644 XNSimHtml/node_modules/tar/lib/strip-trailing-slashes.js delete mode 100644 XNSimHtml/node_modules/tar/lib/types.js delete mode 100644 XNSimHtml/node_modules/tar/lib/unpack.js delete mode 100644 XNSimHtml/node_modules/tar/lib/update.js delete mode 100644 XNSimHtml/node_modules/tar/lib/warn-mixin.js delete mode 100644 XNSimHtml/node_modules/tar/lib/winchars.js delete mode 100644 XNSimHtml/node_modules/tar/lib/write-entry.js delete mode 120000 XNSimHtml/node_modules/tar/node_modules/.bin/mkdirp delete mode 100644 XNSimHtml/node_modules/tar/node_modules/minipass/LICENSE delete mode 100644 XNSimHtml/node_modules/tar/node_modules/minipass/README.md delete mode 100644 XNSimHtml/node_modules/tar/node_modules/minipass/index.d.ts delete mode 100644 XNSimHtml/node_modules/tar/node_modules/minipass/index.js delete mode 100644 XNSimHtml/node_modules/tar/node_modules/minipass/index.mjs delete mode 100644 XNSimHtml/node_modules/tar/node_modules/minipass/package.json delete mode 100644 XNSimHtml/node_modules/tar/node_modules/mkdirp/CHANGELOG.md delete mode 100644 XNSimHtml/node_modules/tar/node_modules/mkdirp/LICENSE delete mode 100755 XNSimHtml/node_modules/tar/node_modules/mkdirp/bin/cmd.js delete mode 100644 XNSimHtml/node_modules/tar/node_modules/mkdirp/index.js delete mode 100644 XNSimHtml/node_modules/tar/node_modules/mkdirp/lib/find-made.js delete mode 100644 XNSimHtml/node_modules/tar/node_modules/mkdirp/lib/mkdirp-manual.js delete mode 100644 XNSimHtml/node_modules/tar/node_modules/mkdirp/lib/mkdirp-native.js delete mode 100644 XNSimHtml/node_modules/tar/node_modules/mkdirp/lib/opts-arg.js delete mode 100644 XNSimHtml/node_modules/tar/node_modules/mkdirp/lib/path-arg.js delete mode 100644 XNSimHtml/node_modules/tar/node_modules/mkdirp/lib/use-native.js delete mode 100644 XNSimHtml/node_modules/tar/node_modules/mkdirp/package.json delete mode 100644 XNSimHtml/node_modules/tar/node_modules/mkdirp/readme.markdown delete mode 100644 XNSimHtml/node_modules/tar/package.json delete mode 100644 XNSimHtml/node_modules/unique-filename/.nyc_output/54942.json delete mode 100644 XNSimHtml/node_modules/unique-filename/.nyc_output/54944.json delete mode 100644 XNSimHtml/node_modules/unique-filename/LICENSE delete mode 100644 XNSimHtml/node_modules/unique-filename/README.md delete mode 100644 XNSimHtml/node_modules/unique-filename/coverage/__root__/index.html delete mode 100644 XNSimHtml/node_modules/unique-filename/coverage/__root__/index.js.html delete mode 100644 XNSimHtml/node_modules/unique-filename/coverage/base.css delete mode 100644 XNSimHtml/node_modules/unique-filename/coverage/index.html delete mode 100644 XNSimHtml/node_modules/unique-filename/coverage/prettify.css delete mode 100644 XNSimHtml/node_modules/unique-filename/coverage/prettify.js delete mode 100644 XNSimHtml/node_modules/unique-filename/coverage/sort-arrow-sprite.png delete mode 100644 XNSimHtml/node_modules/unique-filename/coverage/sorter.js delete mode 100644 XNSimHtml/node_modules/unique-filename/index.js delete mode 100644 XNSimHtml/node_modules/unique-filename/package.json delete mode 100644 XNSimHtml/node_modules/unique-filename/test/index.js delete mode 100644 XNSimHtml/node_modules/unique-slug/.travis.yml delete mode 100644 XNSimHtml/node_modules/unique-slug/LICENSE delete mode 100644 XNSimHtml/node_modules/unique-slug/README.md delete mode 100644 XNSimHtml/node_modules/unique-slug/index.js delete mode 100644 XNSimHtml/node_modules/unique-slug/package.json delete mode 100644 XNSimHtml/node_modules/unique-slug/test/index.js delete mode 100644 XNSimHtml/node_modules/which/CHANGELOG.md delete mode 100644 XNSimHtml/node_modules/which/LICENSE delete mode 100644 XNSimHtml/node_modules/which/README.md delete mode 100755 XNSimHtml/node_modules/which/bin/node-which delete mode 100644 XNSimHtml/node_modules/which/package.json delete mode 100644 XNSimHtml/node_modules/which/which.js delete mode 100755 XNSimHtml/node_modules/wide-align/LICENSE delete mode 100755 XNSimHtml/node_modules/wide-align/README.md delete mode 100755 XNSimHtml/node_modules/wide-align/align.js delete mode 100755 XNSimHtml/node_modules/wide-align/package.json delete mode 100644 XNSimHtml/node_modules/xml2js/LICENSE delete mode 100644 XNSimHtml/node_modules/xml2js/README.md delete mode 100644 XNSimHtml/node_modules/xml2js/lib/bom.js delete mode 100644 XNSimHtml/node_modules/xml2js/lib/builder.js delete mode 100644 XNSimHtml/node_modules/xml2js/lib/defaults.js delete mode 100644 XNSimHtml/node_modules/xml2js/lib/parser.js delete mode 100644 XNSimHtml/node_modules/xml2js/lib/processors.js delete mode 100644 XNSimHtml/node_modules/xml2js/lib/xml2js.bc.js delete mode 100644 XNSimHtml/node_modules/xml2js/lib/xml2js.js delete mode 100644 XNSimHtml/node_modules/xml2js/package.json delete mode 100644 XNSimHtml/node_modules/xmlbuilder/CHANGELOG.md delete mode 100644 XNSimHtml/node_modules/xmlbuilder/LICENSE delete mode 100644 XNSimHtml/node_modules/xmlbuilder/README.md delete mode 100644 XNSimHtml/node_modules/xmlbuilder/appveyor.yml delete mode 100644 XNSimHtml/node_modules/xmlbuilder/lib/Derivation.js delete mode 100644 XNSimHtml/node_modules/xmlbuilder/lib/DocumentPosition.js delete mode 100644 XNSimHtml/node_modules/xmlbuilder/lib/NodeType.js delete mode 100644 XNSimHtml/node_modules/xmlbuilder/lib/OperationType.js delete mode 100644 XNSimHtml/node_modules/xmlbuilder/lib/Utility.js delete mode 100644 XNSimHtml/node_modules/xmlbuilder/lib/WriterState.js delete mode 100644 XNSimHtml/node_modules/xmlbuilder/lib/XMLAttribute.js delete mode 100644 XNSimHtml/node_modules/xmlbuilder/lib/XMLCData.js delete mode 100644 XNSimHtml/node_modules/xmlbuilder/lib/XMLCharacterData.js delete mode 100644 XNSimHtml/node_modules/xmlbuilder/lib/XMLComment.js delete mode 100644 XNSimHtml/node_modules/xmlbuilder/lib/XMLDOMConfiguration.js delete mode 100644 XNSimHtml/node_modules/xmlbuilder/lib/XMLDOMErrorHandler.js delete mode 100644 XNSimHtml/node_modules/xmlbuilder/lib/XMLDOMImplementation.js delete mode 100644 XNSimHtml/node_modules/xmlbuilder/lib/XMLDOMStringList.js delete mode 100644 XNSimHtml/node_modules/xmlbuilder/lib/XMLDTDAttList.js delete mode 100644 XNSimHtml/node_modules/xmlbuilder/lib/XMLDTDElement.js delete mode 100644 XNSimHtml/node_modules/xmlbuilder/lib/XMLDTDEntity.js delete mode 100644 XNSimHtml/node_modules/xmlbuilder/lib/XMLDTDNotation.js delete mode 100644 XNSimHtml/node_modules/xmlbuilder/lib/XMLDeclaration.js delete mode 100644 XNSimHtml/node_modules/xmlbuilder/lib/XMLDocType.js delete mode 100644 XNSimHtml/node_modules/xmlbuilder/lib/XMLDocument.js delete mode 100644 XNSimHtml/node_modules/xmlbuilder/lib/XMLDocumentCB.js delete mode 100644 XNSimHtml/node_modules/xmlbuilder/lib/XMLDocumentFragment.js delete mode 100644 XNSimHtml/node_modules/xmlbuilder/lib/XMLDummy.js delete mode 100644 XNSimHtml/node_modules/xmlbuilder/lib/XMLElement.js delete mode 100644 XNSimHtml/node_modules/xmlbuilder/lib/XMLNamedNodeMap.js delete mode 100644 XNSimHtml/node_modules/xmlbuilder/lib/XMLNode.js delete mode 100644 XNSimHtml/node_modules/xmlbuilder/lib/XMLNodeFilter.js delete mode 100644 XNSimHtml/node_modules/xmlbuilder/lib/XMLNodeList.js delete mode 100644 XNSimHtml/node_modules/xmlbuilder/lib/XMLProcessingInstruction.js delete mode 100644 XNSimHtml/node_modules/xmlbuilder/lib/XMLRaw.js delete mode 100644 XNSimHtml/node_modules/xmlbuilder/lib/XMLStreamWriter.js delete mode 100644 XNSimHtml/node_modules/xmlbuilder/lib/XMLStringWriter.js delete mode 100644 XNSimHtml/node_modules/xmlbuilder/lib/XMLStringifier.js delete mode 100644 XNSimHtml/node_modules/xmlbuilder/lib/XMLText.js delete mode 100644 XNSimHtml/node_modules/xmlbuilder/lib/XMLTypeInfo.js delete mode 100644 XNSimHtml/node_modules/xmlbuilder/lib/XMLUserDataHandler.js delete mode 100644 XNSimHtml/node_modules/xmlbuilder/lib/XMLWriterBase.js delete mode 100644 XNSimHtml/node_modules/xmlbuilder/lib/index.js delete mode 100644 XNSimHtml/node_modules/xmlbuilder/package.json delete mode 100644 XNSimHtml/node_modules/xmlbuilder/typings/index.d.ts delete mode 100644 XNSimHtml/node_modules/yallist/LICENSE delete mode 100644 XNSimHtml/node_modules/yallist/README.md delete mode 100644 XNSimHtml/node_modules/yallist/iterator.js delete mode 100644 XNSimHtml/node_modules/yallist/package.json delete mode 100644 XNSimHtml/node_modules/yallist/yallist.js diff --git a/Release/database/XNSim.db b/Release/database/XNSim.db index 2bd0ecd7c51e178cdaa1ab50c7d7462c061309bd..4f0a6ea29accbb439866b09e811040ef24608260 100644 GIT binary patch delta 242 zcmZp8;MMTJYl1Z6go!fFj1w9YS`!$zCNM2|&uq$jd^-CFCVM8{KU4twqO3s1jNih%mT!$K+Fcj>_E)1{qkQ_(zA6U3yL?rf6&3RMk`qli zq!qx*TL x&u6tf**Eva)@gX85>s+B^V;vqaRD(m5c2>rFA(zqF+UIs0I}fqyK+Lx69MRlY5@QM delta 127 zcmZp8;MMTJYl1Xm|3n#Q#{R~H)&$0_2~11gGn?>Up3eS($$q=X2c~-7i2;1=m;W*W zF*6Xe05K~NvjH(X5OZw5{Fl>Eh>el&E(71)&58<_`P%QwaRD(m5c2>rFA#&o_<>je Nhy}Obl@n5)2mkWf>lXWEoVpFxIj~jKqX8wyaYU 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 bfc0=K4%vH63TwN8)jYt;+{UcI#5?JKtgxLH literal 0 HcmV?d00001 diff --git a/XNSimHtml/assets/icons/png/code_b.png b/XNSimHtml/assets/icons/png/code_b.png new file mode 100644 index 0000000000000000000000000000000000000000..c11a0e6d13acbdb4fda61a36cacdc7e41f7d989c GIT binary patch literal 5697 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 J%hex*{SOLMXaxWO literal 0 HcmV?d00001 diff --git a/XNSimHtml/assets/icons/png/delete.png b/XNSimHtml/assets/icons/png/delete.png new file mode 100644 index 0000000000000000000000000000000000000000..082503729c67a710a9a859d7e70cdc0a2acffdd1 GIT binary patch literal 4317 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 literal 3968 zcmeH~XHb)C7RMuEh?-~+R0M^H5x7^B7DTE>LkWmpij;t~NJ|7mK`K((~F?W{-d8jp#6GS4BGaN%R+tt&H37q zuD4owr?rhYG73wPW`q;HlO*qigF7LTb!nL@VmOY11-y<5$He@-9q!v9AvK{gbF~yM zr)qtntVqdCU1gAP;uAPziR^vC*WwQ|?Z3B2yZ$;wW=wohI{0Qv)S@Nmr;{IG&u&%^ ztQU|X1x68G!HW!yI0;Dfi&$~!STqQtdKm<6AKf9A1dm4F3XKLqV~HT~K=D+Bp8rDv zWQR=Yak*sA&yW}Y?t2_{2o<3q$GY3C6z__$e9H z!#K`6WL(3OsSWOzv1~gu?YmheHRzA$l4@&f$xTy>rz|NWDwMj3g%90bUH*anQ)U=t z9lu(M>S;FM;gpxDnyf*s|32T9Gjy~UbS6`&;m#Y~2JHdidM>C)5?sTJd_eX0>$q!I zZ-VFct8ywI5?b7oZO9Y{V$@ZP0J`^9es@rRYo_3bZ;%U~4f9|}P^i<_1u&YMUzL_H zL6Uo-N18x{6Bhy!KDHo6UadqyWbpFbCpT@5)r<@wc;lxrffmPfRC(G*@QZyc1|3L|}56l@j&laTa8&ka6{zz`-OHn}+hl_JFbPc6&{$_uPH?<(eD?iCvDwbI((K zoOcACm-Hj`TPhfZ-&xw)T<4tMud|%S{N#uUWRezx71s*II?}#={hForeDyssar~n> z0S}y|YuYmYycPU;JUzgAWb`=_o32dLn2$L8nbCY4NL|Fd$H?nmM6Sq?Ne@-*N>1>+ zf=xH@qd5w69|-6_!Uu9y=7KbP9whXLJldk^50Y!XWNtzI_ED=(Y~7!hxsvaCXX+)#;FW3cV^ZEJTsccwgU>#|^)T99|;I z25C}-$Qn9*X{ExqbQ0%ud#!TdJ-zYJYrE5jto#}EhrnMOV-4%nsS*_qW$I?n@?+2) zHS7v4=z)FO&;u!cp84*nw;lrAJT(uc#9e|>;_yz6-ZIFe1b~S?y_blY-vGw!ct^my z<7L6SyPrPkS2sI10`N2|=q|dW2;g5Khm;fEY;x8sB)hAu0MtqKih@VHyw$&;401_4a|l{7BLh05V?ZV+}dYNtM&gy;e1#vwIPd(t6EDcuFA>zWbG(^es_}29yxMR@?^)UsFGU+aDVM1jl?pnl>8!FsXIMo z)~i#=&xqFqiShBb`{PW^g{j?l+V)$AARH7RM=gN1@(uK#wiOx;&0iA9%E{@Yw6(v5 zOx>1n%|iAP@LV7RW3Ly2x3yL!H}ng_K0o5vS2)x#M+wJ(f3Yx1!j>yVokr}P)Chl} zD{?LnyoM1^4WnA8bVaQV$=i3Vq(#BaQ-&{d?$>`ez;j{!jcU*RHYRdHIqH1d6kqm~ z56#hDx>FX<#bWC2Q<-Gt4>vi&@a<~;$s;-hikT6~Ie&A}c}VAWgK(E7H1f-YFf~JJ*$Cx-0p+hVY2k)CDAOJc86cbY?UlmTplw zXjqJ*z9%i^(Hjj;ocs6^*BnEYm)iH_K7HU2VLjcEsGRVzBweX1C#hDIY+k%zn!)^} zB$(XUAwQrg+;!2f?1>7j_?+(CeQvmw&u!kgrsSEl6g=(I4aaQkH`#o(Q~&IluV`~N z8OYvXJa<%H+lpzH3I1xx=$8=^vOSf_H}9Gg*qetXTf0lf){iRPn>H=Orcd6a{fIH0 zI!}&gWvOLSjD}Ei%ioH+5%wCwefuL$4mrTAjjk`R8SU}f*OdKj{`I{-x!j{)-y9T7 z9t$maJ7@Euyq=f6+4jNaaPBqT`%U3RRoTS2r-QjIhap;XZp^x0* zx@VA7MwUr}xTJNtRcuQqx4jJp-L2SCjnV`*auv~Ta9x*+u@Lv;=(s}u4Kw(87Z(DO zdi3xCOuu;vCKmGO=SC_bvJeHB8M1$w|H{e#XF&k9Or=w{yM5R}%h!%x^Y`NG8xmtV z6v|Kq2%Kg^LC;p8%w;fUY?G@ssfZ3kHBVqn0yF5iq8=9ap3$s1AT%utOFn~5uad>f zuRM&P)9ph)Ub8mnw06%p*tsfQ&IrwAPB2KW8SGe};NajnF88wUW4Haph4=)Ywr)^} zmheycuqJ=8r-%7d-@Rs-HbK=II-{6f;VODgpQh09n6V<#-pY_2Ph|O0{ z#b@m(nZt{l_gYIt=fB_I#d+Yy_l>Cxz_NyQYgH0kEwpd<`*DODO=W?URYRyIBysNw z^$nujzRJk`$MT%$v`4y5KI!#r=$0^=x>XgF%e2=ML|(>l4#|j$KBVX`%4K9^1YFZl zlR+Zpa$uTmUxJ$>7RScMOaznO$r?*1i(8GYHWUGIv$NQ-E~t6Rg-58bR4z_R_^7HF zmQM|Cz_H_5EY`N|T#H+3be(BCV#j^gB%Zq23%@wDSO@zdATHo20Doh)duntcz^zjR z7)4whAkN8(2z=NFU@{T+60rjfFk?3YhzrP18j68H7hVB8J6L}gEfx##KM6UEnwn*h zUwBh%YHEg=Os327qnNYM7$kPQD`&EHoy~0-tyOwv(3f#=7`m2k+R$o549fELO3KA?)`dVLt@Bk6_u>w)(do$0J{eNl z(&utL+;E7C)`Fe_u$NgYciO7J<$guRk-zfdxhd>SSMnQwD2nD(~5bDudkSCmA# z8hj@p$AOtlqubzLW`gyOIZ1ame0|MMYaDs1FIemsh7)dh8R!hAp?VBv8%0?EKk^a= zU4ok#BvIFfQMdK1$v8robZQB4vUphwN#sP`$Dtw>Qld%z4H|s=t{g+hY|j~!$4t^` z=yI^FZ*F$g)s(Fje`jY$Sf5wQ(E4O|IVP}rqxVV0MuXiwoNTF`eq1Ls3k21)-H3Z diff --git a/XNSimHtml/assets/icons/png/excel.png b/XNSimHtml/assets/icons/png/excel.png new file mode 100644 index 0000000000000000000000000000000000000000..3ef40a706d850e6cb43d53f3c0ce37aaba6eaadd GIT binary patch literal 4281 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 M^^8enXB@)+1vWr;J^%m! literal 0 HcmV?d00001 diff --git a/XNSimHtml/assets/icons/png/excel_b.png b/XNSimHtml/assets/icons/png/excel_b.png new file mode 100644 index 0000000000000000000000000000000000000000..076880db1bcb4097e74a5e220f192bb90cc8411e GIT binary patch literal 4767 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 F{{T)4ae literal 0 HcmV?d00001 diff --git a/XNSimHtml/assets/icons/png/upload_b.png b/XNSimHtml/assets/icons/png/upload_b.png new file mode 100644 index 0000000000000000000000000000000000000000..b9176db646e9e54c6fab0f86f9530b4b653ac727 GIT binary patch literal 4802 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
@@ -444,7 +449,7 @@ class InterfaceToolbar extends HTMLElement {

从ICD导入

@@ -456,7 +461,7 @@ class InterfaceToolbar extends HTMLElement {

从IDL导入

diff --git a/XNSimHtml/node_modules/.bin/color-support b/XNSimHtml/node_modules/.bin/color-support deleted file mode 120000 index fcbcb28..0000000 --- a/XNSimHtml/node_modules/.bin/color-support +++ /dev/null @@ -1 +0,0 @@ -../color-support/bin.js \ No newline at end of file diff --git a/XNSimHtml/node_modules/.bin/node-gyp b/XNSimHtml/node_modules/.bin/node-gyp deleted file mode 120000 index 9b31a4f..0000000 --- a/XNSimHtml/node_modules/.bin/node-gyp +++ /dev/null @@ -1 +0,0 @@ -../node-gyp/bin/node-gyp.js \ No newline at end of file diff --git a/XNSimHtml/node_modules/.bin/node-which b/XNSimHtml/node_modules/.bin/node-which deleted file mode 120000 index 6f8415e..0000000 --- a/XNSimHtml/node_modules/.bin/node-which +++ /dev/null @@ -1 +0,0 @@ -../which/bin/node-which \ No newline at end of file diff --git a/XNSimHtml/node_modules/.bin/nopt b/XNSimHtml/node_modules/.bin/nopt deleted file mode 120000 index 6b6566e..0000000 --- a/XNSimHtml/node_modules/.bin/nopt +++ /dev/null @@ -1 +0,0 @@ -../nopt/bin/nopt.js \ No newline at end of file diff --git a/XNSimHtml/node_modules/.bin/rimraf b/XNSimHtml/node_modules/.bin/rimraf deleted file mode 120000 index 4cd49a4..0000000 --- a/XNSimHtml/node_modules/.bin/rimraf +++ /dev/null @@ -1 +0,0 @@ -../rimraf/bin.js \ No newline at end of file diff --git a/XNSimHtml/node_modules/.package-lock.json b/XNSimHtml/node_modules/.package-lock.json index 31616b9..949c3bb 100644 --- a/XNSimHtml/node_modules/.package-lock.json +++ b/XNSimHtml/node_modules/.package-lock.json @@ -4,83 +4,6 @@ "lockfileVersion": 2, "requires": true, "packages": { - "node_modules/@fortawesome/fontawesome-free": { - "version": "6.7.2", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.7.2.tgz", - "integrity": "sha512-JUOtgFW6k9u4Y+xeIaEiLr3+cjoUPiAuLXoyKOJSia6Duzb7pq+A76P9ZdPDoAoxHdHzq6gE9/jKBGXlZT8FbA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", - "optional": true - }, - "node_modules/@npmcli/fs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", - "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", - "optional": true, - "dependencies": { - "@gar/promisify": "^1.0.1", - "semver": "^7.3.5" - } - }, - "node_modules/@npmcli/fs/node_modules/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", - "optional": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", - "deprecated": "This functionality has been moved to @npmcli/fs", - "optional": true, - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@npmcli/move-file/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "optional": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "optional": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "optional": true - }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -101,75 +24,6 @@ "node": ">=0.8" } }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "optional": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/agent-base/node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", - "optional": true, - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/agent-base/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "optional": true - }, - "node_modules/agentkeepalive": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.6.0.tgz", - "integrity": "sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==", - "optional": true, - "dependencies": { - "humanize-ms": "^1.2.1" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "optional": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "optional": true, - "engines": { - "node": ">=8" - } - }, "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", @@ -188,40 +42,6 @@ "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==" }, - "node_modules/aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", - "optional": true - }, - "node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "deprecated": "This package is no longer supported.", - "optional": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/are-we-there-yet/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "optional": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", @@ -231,7 +51,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "devOptional": true + "dev": true }, "node_modules/base64-js": { "version": "1.5.1", @@ -343,7 +163,7 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "devOptional": true, + "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -413,47 +233,6 @@ "node": ">= 0.8" } }, - "node_modules/cacache": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", - "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", - "optional": true, - "dependencies": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/cacache/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "optional": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/call-bind-apply-helpers": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", @@ -518,23 +297,6 @@ "fsevents": "~2.3.2" } }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "engines": { - "node": ">=10" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "optional": true, - "engines": { - "node": ">=6" - } - }, "node_modules/codepage": { "version": "1.15.0", "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.15.0.tgz", @@ -543,20 +305,11 @@ "node": ">=0.8" } }, - "node_modules/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "optional": true, - "bin": { - "color-support": "bin.js" - } - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "devOptional": true + "dev": true }, "node_modules/concat-stream": { "version": "1.6.2", @@ -572,12 +325,6 @@ "typedarray": "^0.0.6" } }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", - "optional": true - }, "node_modules/content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", @@ -688,12 +435,6 @@ "node": ">=4.0.0" } }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", - "optional": true - }, "node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", @@ -745,12 +486,6 @@ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "optional": true - }, "node_modules/encodeurl": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", @@ -759,15 +494,6 @@ "node": ">= 0.8" } }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, "node_modules/end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", @@ -776,21 +502,6 @@ "once": "^1.4.0" } }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "optional": true - }, "node_modules/es-define-property": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", @@ -1016,23 +727,6 @@ "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "optional": true - }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -1055,26 +749,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "deprecated": "This package is no longer supported.", - "optional": true, - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, "node_modules/get-intrinsic": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", @@ -1128,27 +802,6 @@ "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==" }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "optional": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", @@ -1172,12 +825,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "optional": true - }, "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -1198,12 +845,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", - "optional": true - }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", @@ -1215,12 +856,6 @@ "node": ">= 0.4" } }, - "node_modules/http-cache-semantics": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", - "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", - "optional": true - }, "node_modules/http-errors": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", @@ -1236,88 +871,6 @@ "node": ">= 0.8" } }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "optional": true, - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/http-proxy-agent/node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", - "optional": true, - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/http-proxy-agent/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "optional": true - }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "optional": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/https-proxy-agent/node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", - "optional": true, - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/https-proxy-agent/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "optional": true - }, - "node_modules/humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", - "optional": true, - "dependencies": { - "ms": "^2.0.0" - } - }, "node_modules/iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", @@ -1354,41 +907,6 @@ "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", "dev": true }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "optional": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "optional": true - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "optional": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", @@ -1399,19 +917,6 @@ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, - "node_modules/ip-address": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", - "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", - "optional": true, - "dependencies": { - "jsbn": "1.1.0", - "sprintf-js": "^1.1.3" - }, - "engines": { - "node": ">= 12" - } - }, "node_modules/ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", @@ -1441,15 +946,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "optional": true, - "engines": { - "node": ">=8" - } - }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -1462,12 +958,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", - "optional": true - }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -1482,18 +972,6 @@ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "optional": true - }, - "node_modules/jsbn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", - "optional": true - }, "node_modules/jsonwebtoken": { "version": "9.0.2", "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", @@ -1585,45 +1063,6 @@ "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "optional": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-fetch-happen": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", - "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", - "optional": true, - "dependencies": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.2.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.2", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.0.0", - "ssri": "^8.0.0" - }, - "engines": { - "node": ">= 10" - } - }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", @@ -1701,7 +1140,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "devOptional": true, + "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -1717,95 +1156,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "optional": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-fetch": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", - "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", - "optional": true, - "dependencies": { - "encoding": "^0.1.12", - "minipass": "^3.1.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "optionalDependencies": { - "encoding": "^0.1.12" - } - }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "optional": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "optional": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "optional": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/mkdirp": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", @@ -1884,30 +1234,6 @@ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==" }, - "node_modules/node-gyp": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", - "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", - "optional": true, - "dependencies": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^9.1.0", - "nopt": "^5.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": ">= 10.12.0" - } - }, "node_modules/node-gyp-build": { "version": "4.8.4", "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz", @@ -1918,18 +1244,6 @@ "node-gyp-build-test": "build-test.js" } }, - "node_modules/node-gyp/node_modules/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", - "optional": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/nodemon": { "version": "2.0.22", "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.22.tgz", @@ -1973,21 +1287,6 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, - "node_modules/nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "optional": true, - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -1997,22 +1296,6 @@ "node": ">=0.10.0" } }, - "node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "deprecated": "This package is no longer supported.", - "optional": true, - "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -2059,21 +1342,6 @@ "wrappy": "1" } }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "optional": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -2082,15 +1350,6 @@ "node": ">= 0.8" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/path-to-regexp": { "version": "0.1.12", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", @@ -2138,25 +1397,6 @@ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", - "optional": true - }, - "node_modules/promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "optional": true, - "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -2341,31 +1581,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", - "optional": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "optional": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -2390,11 +1605,6 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, - "node_modules/sax": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", - "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==" - }, "node_modules/semver": { "version": "5.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", @@ -2454,12 +1664,6 @@ "node": ">= 0.8.0" } }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "optional": true - }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", @@ -2533,12 +1737,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "optional": true - }, "node_modules/simple-concat": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", @@ -2603,102 +1801,6 @@ "semver": "bin/semver.js" } }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "optional": true, - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks": { - "version": "2.8.4", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.4.tgz", - "integrity": "sha512-D3YaD0aRxR3mEcqnidIs7ReYJFVzWdd6fXJYUM8ixcQcJRGTka/b3saV0KflYhyVJXKhb947GndU35SxYNResQ==", - "optional": true, - "dependencies": { - "ip-address": "^9.0.5", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", - "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", - "optional": true, - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/socks-proxy-agent/node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", - "optional": true, - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/socks-proxy-agent/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "optional": true - }, - "node_modules/sprintf-js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", - "optional": true - }, - "node_modules/sqlite3": { - "version": "5.1.7", - "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-5.1.7.tgz", - "integrity": "sha512-GGIyOiFaG+TUra3JIfkI/zGP8yZYLPQ0pl1bH+ODjiX57sPhrLU5sQJn1y9bDKZUFYkX1crlrPfSYt0BKKdkog==", - "hasInstallScript": true, - "dependencies": { - "bindings": "^1.5.0", - "node-addon-api": "^7.0.0", - "node-gyp": "8.x", - "prebuild-install": "^7.1.1", - "tar": "^6.1.11" - }, - "optionalDependencies": { - "node-gyp": "8.x" - }, - "peerDependencies": { - "node-gyp": "8.x" - }, - "peerDependenciesMeta": { - "node-gyp": { - "optional": true - } - } - }, - "node_modules/sqlite3/node_modules/node-addon-api": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", - "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==" - }, "node_modules/ssf": { "version": "0.11.2", "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz", @@ -2710,18 +1812,6 @@ "node": ">=0.8" } }, - "node_modules/ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", - "optional": true, - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", @@ -2751,32 +1841,6 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "optional": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "optional": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", @@ -2822,22 +1886,6 @@ "url": "https://www.buymeacoffee.com/systeminfo" } }, - "node_modules/tar": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", - "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/tar-fs": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.2.tgz", @@ -2882,25 +1930,6 @@ "node": ">= 6" } }, - "node_modules/tar/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/tar/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -2975,24 +2004,6 @@ "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", "dev": true }, - "node_modules/unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "optional": true, - "dependencies": { - "unique-slug": "^2.0.0" - } - }, - "node_modules/unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "optional": true, - "dependencies": { - "imurmurhash": "^0.1.4" - } - }, "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -3022,30 +2033,6 @@ "node": ">= 0.8" } }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "optional": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "optional": true, - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, "node_modules/wmf": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz", @@ -3087,26 +2074,6 @@ "node": ">=0.8" } }, - "node_modules/xml2js": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz", - "integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==", - "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "engines": { - "node": ">=4.0" - } - }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", @@ -3114,11 +2081,6 @@ "engines": { "node": ">=0.4" } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" } } } diff --git a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/LICENSE.txt b/XNSimHtml/node_modules/@fortawesome/fontawesome-free/LICENSE.txt deleted file mode 100644 index e69c5e3..0000000 --- a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ -Fonticons, Inc. (https://fontawesome.com) - --------------------------------------------------------------------------------- - -Font Awesome Free License - -Font Awesome Free is free, open source, and GPL friendly. You can use it for -commercial projects, open source projects, or really almost whatever you want. -Full Font Awesome Free license: https://fontawesome.com/license/free. - --------------------------------------------------------------------------------- - -# Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/) - -The Font Awesome Free download is licensed under a Creative Commons -Attribution 4.0 International License and applies to all icons packaged -as SVG and JS file types. - --------------------------------------------------------------------------------- - -# Fonts: SIL OFL 1.1 License - -In the Font Awesome Free download, the SIL OFL license applies to all icons -packaged as web and desktop font files. - -Copyright (c) 2024 Fonticons, Inc. (https://fontawesome.com) -with Reserved Font Name: "Font Awesome". - -This Font Software is licensed under the SIL Open Font License, Version 1.1. -This license is copied below, and is also available with a FAQ at: -http://scripts.sil.org/OFL - -SIL OPEN FONT LICENSE -Version 1.1 - 26 February 2007 - -PREAMBLE -The goals of the Open Font License (OFL) are to stimulate worldwide -development of collaborative font projects, to support the font creation -efforts of academic and linguistic communities, and to provide a free and -open framework in which fonts may be shared and improved in partnership -with others. - -The OFL allows the licensed fonts to be used, studied, modified and -redistributed freely as long as they are not sold by themselves. The -fonts, including any derivative works, can be bundled, embedded, -redistributed and/or sold with any software provided that any reserved -names are not used by derivative works. The fonts and derivatives, -however, cannot be released under any other type of license. The -requirement for fonts to remain under this license does not apply -to any document created using the fonts or their derivatives. - -DEFINITIONS -"Font Software" refers to the set of files released by the Copyright -Holder(s) under this license and clearly marked as such. This may -include source files, build scripts and documentation. - -"Reserved Font Name" refers to any names specified as such after the -copyright statement(s). - -"Original Version" refers to the collection of Font Software components as -distributed by the Copyright Holder(s). - -"Modified Version" refers to any derivative made by adding to, deleting, -or substituting — in part or in whole — any of the components of the -Original Version, by changing formats or by porting the Font Software to a -new environment. - -"Author" refers to any designer, engineer, programmer, technical -writer or other person who contributed to the Font Software. - -PERMISSION & CONDITIONS -Permission is hereby granted, free of charge, to any person obtaining -a copy of the Font Software, to use, study, copy, merge, embed, modify, -redistribute, and sell modified and unmodified copies of the Font -Software, subject to the following conditions: - -1) Neither the Font Software nor any of its individual components, -in Original or Modified Versions, may be sold by itself. - -2) Original or Modified Versions of the Font Software may be bundled, -redistributed and/or sold with any software, provided that each copy -contains the above copyright notice and this license. These can be -included either as stand-alone text files, human-readable headers or -in the appropriate machine-readable metadata fields within text or -binary files as long as those fields can be easily viewed by the user. - -3) No Modified Version of the Font Software may use the Reserved Font -Name(s) unless explicit written permission is granted by the corresponding -Copyright Holder. This restriction only applies to the primary font name as -presented to the users. - -4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font -Software shall not be used to promote, endorse or advertise any -Modified Version, except to acknowledge the contribution(s) of the -Copyright Holder(s) and the Author(s) or with their explicit written -permission. - -5) The Font Software, modified or unmodified, in part or in whole, -must be distributed entirely under this license, and must not be -distributed under any other license. The requirement for fonts to -remain under this license does not apply to any document created -using the Font Software. - -TERMINATION -This license becomes null and void if any of the above conditions are -not met. - -DISCLAIMER -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT -OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE -COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL -DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM -OTHER DEALINGS IN THE FONT SOFTWARE. - --------------------------------------------------------------------------------- - -# Code: MIT License (https://opensource.org/licenses/MIT) - -In the Font Awesome Free download, the MIT license applies to all non-font and -non-icon files. - -Copyright 2024 Fonticons, Inc. - -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. - --------------------------------------------------------------------------------- - -# Attribution - -Attribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font -Awesome Free files already contain embedded comments with sufficient -attribution, so you shouldn't need to do anything additional when using these -files normally. - -We've kept attribution comments terse, so we ask that you do not actively work -to remove them from files, especially code. They're a great way for folks to -learn about Font Awesome. - --------------------------------------------------------------------------------- - -# Brand Icons - -All brand icons are trademarks of their respective owners. The use of these -trademarks does not indicate endorsement of the trademark holder by Font -Awesome, nor vice versa. **Please do not use brand logos for any purpose except -to represent the company, product, or service to which they refer.** diff --git a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/README.md b/XNSimHtml/node_modules/@fortawesome/fontawesome-free/README.md deleted file mode 100644 index 98b10a5..0000000 --- a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/README.md +++ /dev/null @@ -1,38 +0,0 @@ -# @fortawesome/fontawesome-free - The Official Font Awesome 6 NPM package - -> "I came here to chew bubblegum and install Font Awesome 6 - and I'm all out of bubblegum" - -[![npm](https://img.shields.io/npm/v/@fortawesome/fontawesome-free.svg?style=flat-square)](https://www.npmjs.com/package/@fortawesome/fontawesome-free) - -## Installation - -``` -$ npm i --save @fortawesome/fontawesome-free -``` - -Or - -``` -$ yarn add @fortawesome/fontawesome-free -``` - -## What's included? - -**This package includes all the same files available through our Free and Pro CDN.** - -* /js - All JavaScript files associated with Font Awesome 6 SVG with JS -* /css - All CSS using the classic Web Fonts with CSS implementation -* /sprites - SVG icons packaged in a convenient sprite -* /scss, /less - CSS Pre-processor files for Web Fonts with CSS -* /webfonts - Accompanying files for Web Fonts with CSS -* /svg - Individual icon files in SVG format - -## Documentation - -Get started [here](https://docs.fontawesome.com/web/setup/get-started). Continue your journey [here](https://docs.fontawesome.com/web/setup/packages). - -Or go straight to the [API documentation](https://docs.fontawesome.com/apis/javascript/get-started). - -## Issues and support - -Start with [GitHub issues](https://github.com/FortAwesome/Font-Awesome/issues) and ping us on [Twitter](https://twitter.com/fontawesome) if you need to. diff --git a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/all.css b/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/all.css deleted file mode 100644 index ffdf0f0..0000000 --- a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/all.css +++ /dev/null @@ -1,7913 +0,0 @@ -/*! - * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - * Copyright 2024 Fonticons, Inc. - */ -.fa { - font-family: var(--fa-style-family, "Font Awesome 6 Free"); - font-weight: var(--fa-style, 900); } - -.fas, -.far, -.fab, -.fa-solid, -.fa-regular, -.fa-brands, -.fa { - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - display: var(--fa-display, inline-block); - font-style: normal; - font-variant: normal; - line-height: 1; - text-rendering: auto; } - -.fas::before, -.far::before, -.fab::before, -.fa-solid::before, -.fa-regular::before, -.fa-brands::before, -.fa::before { - content: var(--fa); } - -.fa-classic, -.fas, -.fa-solid, -.far, -.fa-regular { - font-family: 'Font Awesome 6 Free'; } - -.fa-brands, -.fab { - font-family: 'Font Awesome 6 Brands'; } - -.fa-1x { - font-size: 1em; } - -.fa-2x { - font-size: 2em; } - -.fa-3x { - font-size: 3em; } - -.fa-4x { - font-size: 4em; } - -.fa-5x { - font-size: 5em; } - -.fa-6x { - font-size: 6em; } - -.fa-7x { - font-size: 7em; } - -.fa-8x { - font-size: 8em; } - -.fa-9x { - font-size: 9em; } - -.fa-10x { - font-size: 10em; } - -.fa-2xs { - font-size: 0.625em; - line-height: 0.1em; - vertical-align: 0.225em; } - -.fa-xs { - font-size: 0.75em; - line-height: 0.08333em; - vertical-align: 0.125em; } - -.fa-sm { - font-size: 0.875em; - line-height: 0.07143em; - vertical-align: 0.05357em; } - -.fa-lg { - font-size: 1.25em; - line-height: 0.05em; - vertical-align: -0.075em; } - -.fa-xl { - font-size: 1.5em; - line-height: 0.04167em; - vertical-align: -0.125em; } - -.fa-2xl { - font-size: 2em; - line-height: 0.03125em; - vertical-align: -0.1875em; } - -.fa-fw { - text-align: center; - width: 1.25em; } - -.fa-ul { - list-style-type: none; - margin-left: var(--fa-li-margin, 2.5em); - padding-left: 0; } - .fa-ul > li { - position: relative; } - -.fa-li { - left: calc(-1 * var(--fa-li-width, 2em)); - position: absolute; - text-align: center; - width: var(--fa-li-width, 2em); - line-height: inherit; } - -.fa-border { - border-color: var(--fa-border-color, #eee); - border-radius: var(--fa-border-radius, 0.1em); - border-style: var(--fa-border-style, solid); - border-width: var(--fa-border-width, 0.08em); - padding: var(--fa-border-padding, 0.2em 0.25em 0.15em); } - -.fa-pull-left { - float: left; - margin-right: var(--fa-pull-margin, 0.3em); } - -.fa-pull-right { - float: right; - margin-left: var(--fa-pull-margin, 0.3em); } - -.fa-beat { - animation-name: fa-beat; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, ease-in-out); } - -.fa-bounce { - animation-name: fa-bounce; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); } - -.fa-fade { - animation-name: fa-fade; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); } - -.fa-beat-fade { - animation-name: fa-beat-fade; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); } - -.fa-flip { - animation-name: fa-flip; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, ease-in-out); } - -.fa-shake { - animation-name: fa-shake; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, linear); } - -.fa-spin { - animation-name: fa-spin; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 2s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, linear); } - -.fa-spin-reverse { - --fa-animation-direction: reverse; } - -.fa-pulse, -.fa-spin-pulse { - animation-name: fa-spin; - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, steps(8)); } - -@media (prefers-reduced-motion: reduce) { - .fa-beat, - .fa-bounce, - .fa-fade, - .fa-beat-fade, - .fa-flip, - .fa-pulse, - .fa-shake, - .fa-spin, - .fa-spin-pulse { - animation-delay: -1ms; - animation-duration: 1ms; - animation-iteration-count: 1; - transition-delay: 0s; - transition-duration: 0s; } } - -@keyframes fa-beat { - 0%, 90% { - transform: scale(1); } - 45% { - transform: scale(var(--fa-beat-scale, 1.25)); } } - -@keyframes fa-bounce { - 0% { - transform: scale(1, 1) translateY(0); } - 10% { - transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); } - 30% { - transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); } - 50% { - transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); } - 57% { - transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); } - 64% { - transform: scale(1, 1) translateY(0); } - 100% { - transform: scale(1, 1) translateY(0); } } - -@keyframes fa-fade { - 50% { - opacity: var(--fa-fade-opacity, 0.4); } } - -@keyframes fa-beat-fade { - 0%, 100% { - opacity: var(--fa-beat-fade-opacity, 0.4); - transform: scale(1); } - 50% { - opacity: 1; - transform: scale(var(--fa-beat-fade-scale, 1.125)); } } - -@keyframes fa-flip { - 50% { - transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } } - -@keyframes fa-shake { - 0% { - transform: rotate(-15deg); } - 4% { - transform: rotate(15deg); } - 8%, 24% { - transform: rotate(-18deg); } - 12%, 28% { - transform: rotate(18deg); } - 16% { - transform: rotate(-22deg); } - 20% { - transform: rotate(22deg); } - 32% { - transform: rotate(-12deg); } - 36% { - transform: rotate(12deg); } - 40%, 100% { - transform: rotate(0deg); } } - -@keyframes fa-spin { - 0% { - transform: rotate(0deg); } - 100% { - transform: rotate(360deg); } } - -.fa-rotate-90 { - transform: rotate(90deg); } - -.fa-rotate-180 { - transform: rotate(180deg); } - -.fa-rotate-270 { - transform: rotate(270deg); } - -.fa-flip-horizontal { - transform: scale(-1, 1); } - -.fa-flip-vertical { - transform: scale(1, -1); } - -.fa-flip-both, -.fa-flip-horizontal.fa-flip-vertical { - transform: scale(-1, -1); } - -.fa-rotate-by { - transform: rotate(var(--fa-rotate-angle, 0)); } - -.fa-stack { - display: inline-block; - height: 2em; - line-height: 2em; - position: relative; - vertical-align: middle; - width: 2.5em; } - -.fa-stack-1x, -.fa-stack-2x { - left: 0; - position: absolute; - text-align: center; - width: 100%; - z-index: var(--fa-stack-z-index, auto); } - -.fa-stack-1x { - line-height: inherit; } - -.fa-stack-2x { - font-size: 2em; } - -.fa-inverse { - color: var(--fa-inverse, #fff); } - -/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen -readers do not read off random characters that represent icons */ - -.fa-0 { - --fa: "\30"; } - -.fa-1 { - --fa: "\31"; } - -.fa-2 { - --fa: "\32"; } - -.fa-3 { - --fa: "\33"; } - -.fa-4 { - --fa: "\34"; } - -.fa-5 { - --fa: "\35"; } - -.fa-6 { - --fa: "\36"; } - -.fa-7 { - --fa: "\37"; } - -.fa-8 { - --fa: "\38"; } - -.fa-9 { - --fa: "\39"; } - -.fa-fill-drip { - --fa: "\f576"; } - -.fa-arrows-to-circle { - --fa: "\e4bd"; } - -.fa-circle-chevron-right { - --fa: "\f138"; } - -.fa-chevron-circle-right { - --fa: "\f138"; } - -.fa-at { - --fa: "\40"; } - -.fa-trash-can { - --fa: "\f2ed"; } - -.fa-trash-alt { - --fa: "\f2ed"; } - -.fa-text-height { - --fa: "\f034"; } - -.fa-user-xmark { - --fa: "\f235"; } - -.fa-user-times { - --fa: "\f235"; } - -.fa-stethoscope { - --fa: "\f0f1"; } - -.fa-message { - --fa: "\f27a"; } - -.fa-comment-alt { - --fa: "\f27a"; } - -.fa-info { - --fa: "\f129"; } - -.fa-down-left-and-up-right-to-center { - --fa: "\f422"; } - -.fa-compress-alt { - --fa: "\f422"; } - -.fa-explosion { - --fa: "\e4e9"; } - -.fa-file-lines { - --fa: "\f15c"; } - -.fa-file-alt { - --fa: "\f15c"; } - -.fa-file-text { - --fa: "\f15c"; } - -.fa-wave-square { - --fa: "\f83e"; } - -.fa-ring { - --fa: "\f70b"; } - -.fa-building-un { - --fa: "\e4d9"; } - -.fa-dice-three { - --fa: "\f527"; } - -.fa-calendar-days { - --fa: "\f073"; } - -.fa-calendar-alt { - --fa: "\f073"; } - -.fa-anchor-circle-check { - --fa: "\e4aa"; } - -.fa-building-circle-arrow-right { - --fa: "\e4d1"; } - -.fa-volleyball { - --fa: "\f45f"; } - -.fa-volleyball-ball { - --fa: "\f45f"; } - -.fa-arrows-up-to-line { - --fa: "\e4c2"; } - -.fa-sort-down { - --fa: "\f0dd"; } - -.fa-sort-desc { - --fa: "\f0dd"; } - -.fa-circle-minus { - --fa: "\f056"; } - -.fa-minus-circle { - --fa: "\f056"; } - -.fa-door-open { - --fa: "\f52b"; } - -.fa-right-from-bracket { - --fa: "\f2f5"; } - -.fa-sign-out-alt { - --fa: "\f2f5"; } - -.fa-atom { - --fa: "\f5d2"; } - -.fa-soap { - --fa: "\e06e"; } - -.fa-icons { - --fa: "\f86d"; } - -.fa-heart-music-camera-bolt { - --fa: "\f86d"; } - -.fa-microphone-lines-slash { - --fa: "\f539"; } - -.fa-microphone-alt-slash { - --fa: "\f539"; } - -.fa-bridge-circle-check { - --fa: "\e4c9"; } - -.fa-pump-medical { - --fa: "\e06a"; } - -.fa-fingerprint { - --fa: "\f577"; } - -.fa-hand-point-right { - --fa: "\f0a4"; } - -.fa-magnifying-glass-location { - --fa: "\f689"; } - -.fa-search-location { - --fa: "\f689"; } - -.fa-forward-step { - --fa: "\f051"; } - -.fa-step-forward { - --fa: "\f051"; } - -.fa-face-smile-beam { - --fa: "\f5b8"; } - -.fa-smile-beam { - --fa: "\f5b8"; } - -.fa-flag-checkered { - --fa: "\f11e"; } - -.fa-football { - --fa: "\f44e"; } - -.fa-football-ball { - --fa: "\f44e"; } - -.fa-school-circle-exclamation { - --fa: "\e56c"; } - -.fa-crop { - --fa: "\f125"; } - -.fa-angles-down { - --fa: "\f103"; } - -.fa-angle-double-down { - --fa: "\f103"; } - -.fa-users-rectangle { - --fa: "\e594"; } - -.fa-people-roof { - --fa: "\e537"; } - -.fa-people-line { - --fa: "\e534"; } - -.fa-beer-mug-empty { - --fa: "\f0fc"; } - -.fa-beer { - --fa: "\f0fc"; } - -.fa-diagram-predecessor { - --fa: "\e477"; } - -.fa-arrow-up-long { - --fa: "\f176"; } - -.fa-long-arrow-up { - --fa: "\f176"; } - -.fa-fire-flame-simple { - --fa: "\f46a"; } - -.fa-burn { - --fa: "\f46a"; } - -.fa-person { - --fa: "\f183"; } - -.fa-male { - --fa: "\f183"; } - -.fa-laptop { - --fa: "\f109"; } - -.fa-file-csv { - --fa: "\f6dd"; } - -.fa-menorah { - --fa: "\f676"; } - -.fa-truck-plane { - --fa: "\e58f"; } - -.fa-record-vinyl { - --fa: "\f8d9"; } - -.fa-face-grin-stars { - --fa: "\f587"; } - -.fa-grin-stars { - --fa: "\f587"; } - -.fa-bong { - --fa: "\f55c"; } - -.fa-spaghetti-monster-flying { - --fa: "\f67b"; } - -.fa-pastafarianism { - --fa: "\f67b"; } - -.fa-arrow-down-up-across-line { - --fa: "\e4af"; } - -.fa-spoon { - --fa: "\f2e5"; } - -.fa-utensil-spoon { - --fa: "\f2e5"; } - -.fa-jar-wheat { - --fa: "\e517"; } - -.fa-envelopes-bulk { - --fa: "\f674"; } - -.fa-mail-bulk { - --fa: "\f674"; } - -.fa-file-circle-exclamation { - --fa: "\e4eb"; } - -.fa-circle-h { - --fa: "\f47e"; } - -.fa-hospital-symbol { - --fa: "\f47e"; } - -.fa-pager { - --fa: "\f815"; } - -.fa-address-book { - --fa: "\f2b9"; } - -.fa-contact-book { - --fa: "\f2b9"; } - -.fa-strikethrough { - --fa: "\f0cc"; } - -.fa-k { - --fa: "\4b"; } - -.fa-landmark-flag { - --fa: "\e51c"; } - -.fa-pencil { - --fa: "\f303"; } - -.fa-pencil-alt { - --fa: "\f303"; } - -.fa-backward { - --fa: "\f04a"; } - -.fa-caret-right { - --fa: "\f0da"; } - -.fa-comments { - --fa: "\f086"; } - -.fa-paste { - --fa: "\f0ea"; } - -.fa-file-clipboard { - --fa: "\f0ea"; } - -.fa-code-pull-request { - --fa: "\e13c"; } - -.fa-clipboard-list { - --fa: "\f46d"; } - -.fa-truck-ramp-box { - --fa: "\f4de"; } - -.fa-truck-loading { - --fa: "\f4de"; } - -.fa-user-check { - --fa: "\f4fc"; } - -.fa-vial-virus { - --fa: "\e597"; } - -.fa-sheet-plastic { - --fa: "\e571"; } - -.fa-blog { - --fa: "\f781"; } - -.fa-user-ninja { - --fa: "\f504"; } - -.fa-person-arrow-up-from-line { - --fa: "\e539"; } - -.fa-scroll-torah { - --fa: "\f6a0"; } - -.fa-torah { - --fa: "\f6a0"; } - -.fa-broom-ball { - --fa: "\f458"; } - -.fa-quidditch { - --fa: "\f458"; } - -.fa-quidditch-broom-ball { - --fa: "\f458"; } - -.fa-toggle-off { - --fa: "\f204"; } - -.fa-box-archive { - --fa: "\f187"; } - -.fa-archive { - --fa: "\f187"; } - -.fa-person-drowning { - --fa: "\e545"; } - -.fa-arrow-down-9-1 { - --fa: "\f886"; } - -.fa-sort-numeric-desc { - --fa: "\f886"; } - -.fa-sort-numeric-down-alt { - --fa: "\f886"; } - -.fa-face-grin-tongue-squint { - --fa: "\f58a"; } - -.fa-grin-tongue-squint { - --fa: "\f58a"; } - -.fa-spray-can { - --fa: "\f5bd"; } - -.fa-truck-monster { - --fa: "\f63b"; } - -.fa-w { - --fa: "\57"; } - -.fa-earth-africa { - --fa: "\f57c"; } - -.fa-globe-africa { - --fa: "\f57c"; } - -.fa-rainbow { - --fa: "\f75b"; } - -.fa-circle-notch { - --fa: "\f1ce"; } - -.fa-tablet-screen-button { - --fa: "\f3fa"; } - -.fa-tablet-alt { - --fa: "\f3fa"; } - -.fa-paw { - --fa: "\f1b0"; } - -.fa-cloud { - --fa: "\f0c2"; } - -.fa-trowel-bricks { - --fa: "\e58a"; } - -.fa-face-flushed { - --fa: "\f579"; } - -.fa-flushed { - --fa: "\f579"; } - -.fa-hospital-user { - --fa: "\f80d"; } - -.fa-tent-arrow-left-right { - --fa: "\e57f"; } - -.fa-gavel { - --fa: "\f0e3"; } - -.fa-legal { - --fa: "\f0e3"; } - -.fa-binoculars { - --fa: "\f1e5"; } - -.fa-microphone-slash { - --fa: "\f131"; } - -.fa-box-tissue { - --fa: "\e05b"; } - -.fa-motorcycle { - --fa: "\f21c"; } - -.fa-bell-concierge { - --fa: "\f562"; } - -.fa-concierge-bell { - --fa: "\f562"; } - -.fa-pen-ruler { - --fa: "\f5ae"; } - -.fa-pencil-ruler { - --fa: "\f5ae"; } - -.fa-people-arrows { - --fa: "\e068"; } - -.fa-people-arrows-left-right { - --fa: "\e068"; } - -.fa-mars-and-venus-burst { - --fa: "\e523"; } - -.fa-square-caret-right { - --fa: "\f152"; } - -.fa-caret-square-right { - --fa: "\f152"; } - -.fa-scissors { - --fa: "\f0c4"; } - -.fa-cut { - --fa: "\f0c4"; } - -.fa-sun-plant-wilt { - --fa: "\e57a"; } - -.fa-toilets-portable { - --fa: "\e584"; } - -.fa-hockey-puck { - --fa: "\f453"; } - -.fa-table { - --fa: "\f0ce"; } - -.fa-magnifying-glass-arrow-right { - --fa: "\e521"; } - -.fa-tachograph-digital { - --fa: "\f566"; } - -.fa-digital-tachograph { - --fa: "\f566"; } - -.fa-users-slash { - --fa: "\e073"; } - -.fa-clover { - --fa: "\e139"; } - -.fa-reply { - --fa: "\f3e5"; } - -.fa-mail-reply { - --fa: "\f3e5"; } - -.fa-star-and-crescent { - --fa: "\f699"; } - -.fa-house-fire { - --fa: "\e50c"; } - -.fa-square-minus { - --fa: "\f146"; } - -.fa-minus-square { - --fa: "\f146"; } - -.fa-helicopter { - --fa: "\f533"; } - -.fa-compass { - --fa: "\f14e"; } - -.fa-square-caret-down { - --fa: "\f150"; } - -.fa-caret-square-down { - --fa: "\f150"; } - -.fa-file-circle-question { - --fa: "\e4ef"; } - -.fa-laptop-code { - --fa: "\f5fc"; } - -.fa-swatchbook { - --fa: "\f5c3"; } - -.fa-prescription-bottle { - --fa: "\f485"; } - -.fa-bars { - --fa: "\f0c9"; } - -.fa-navicon { - --fa: "\f0c9"; } - -.fa-people-group { - --fa: "\e533"; } - -.fa-hourglass-end { - --fa: "\f253"; } - -.fa-hourglass-3 { - --fa: "\f253"; } - -.fa-heart-crack { - --fa: "\f7a9"; } - -.fa-heart-broken { - --fa: "\f7a9"; } - -.fa-square-up-right { - --fa: "\f360"; } - -.fa-external-link-square-alt { - --fa: "\f360"; } - -.fa-face-kiss-beam { - --fa: "\f597"; } - -.fa-kiss-beam { - --fa: "\f597"; } - -.fa-film { - --fa: "\f008"; } - -.fa-ruler-horizontal { - --fa: "\f547"; } - -.fa-people-robbery { - --fa: "\e536"; } - -.fa-lightbulb { - --fa: "\f0eb"; } - -.fa-caret-left { - --fa: "\f0d9"; } - -.fa-circle-exclamation { - --fa: "\f06a"; } - -.fa-exclamation-circle { - --fa: "\f06a"; } - -.fa-school-circle-xmark { - --fa: "\e56d"; } - -.fa-arrow-right-from-bracket { - --fa: "\f08b"; } - -.fa-sign-out { - --fa: "\f08b"; } - -.fa-circle-chevron-down { - --fa: "\f13a"; } - -.fa-chevron-circle-down { - --fa: "\f13a"; } - -.fa-unlock-keyhole { - --fa: "\f13e"; } - -.fa-unlock-alt { - --fa: "\f13e"; } - -.fa-cloud-showers-heavy { - --fa: "\f740"; } - -.fa-headphones-simple { - --fa: "\f58f"; } - -.fa-headphones-alt { - --fa: "\f58f"; } - -.fa-sitemap { - --fa: "\f0e8"; } - -.fa-circle-dollar-to-slot { - --fa: "\f4b9"; } - -.fa-donate { - --fa: "\f4b9"; } - -.fa-memory { - --fa: "\f538"; } - -.fa-road-spikes { - --fa: "\e568"; } - -.fa-fire-burner { - --fa: "\e4f1"; } - -.fa-flag { - --fa: "\f024"; } - -.fa-hanukiah { - --fa: "\f6e6"; } - -.fa-feather { - --fa: "\f52d"; } - -.fa-volume-low { - --fa: "\f027"; } - -.fa-volume-down { - --fa: "\f027"; } - -.fa-comment-slash { - --fa: "\f4b3"; } - -.fa-cloud-sun-rain { - --fa: "\f743"; } - -.fa-compress { - --fa: "\f066"; } - -.fa-wheat-awn { - --fa: "\e2cd"; } - -.fa-wheat-alt { - --fa: "\e2cd"; } - -.fa-ankh { - --fa: "\f644"; } - -.fa-hands-holding-child { - --fa: "\e4fa"; } - -.fa-asterisk { - --fa: "\2a"; } - -.fa-square-check { - --fa: "\f14a"; } - -.fa-check-square { - --fa: "\f14a"; } - -.fa-peseta-sign { - --fa: "\e221"; } - -.fa-heading { - --fa: "\f1dc"; } - -.fa-header { - --fa: "\f1dc"; } - -.fa-ghost { - --fa: "\f6e2"; } - -.fa-list { - --fa: "\f03a"; } - -.fa-list-squares { - --fa: "\f03a"; } - -.fa-square-phone-flip { - --fa: "\f87b"; } - -.fa-phone-square-alt { - --fa: "\f87b"; } - -.fa-cart-plus { - --fa: "\f217"; } - -.fa-gamepad { - --fa: "\f11b"; } - -.fa-circle-dot { - --fa: "\f192"; } - -.fa-dot-circle { - --fa: "\f192"; } - -.fa-face-dizzy { - --fa: "\f567"; } - -.fa-dizzy { - --fa: "\f567"; } - -.fa-egg { - --fa: "\f7fb"; } - -.fa-house-medical-circle-xmark { - --fa: "\e513"; } - -.fa-campground { - --fa: "\f6bb"; } - -.fa-folder-plus { - --fa: "\f65e"; } - -.fa-futbol { - --fa: "\f1e3"; } - -.fa-futbol-ball { - --fa: "\f1e3"; } - -.fa-soccer-ball { - --fa: "\f1e3"; } - -.fa-paintbrush { - --fa: "\f1fc"; } - -.fa-paint-brush { - --fa: "\f1fc"; } - -.fa-lock { - --fa: "\f023"; } - -.fa-gas-pump { - --fa: "\f52f"; } - -.fa-hot-tub-person { - --fa: "\f593"; } - -.fa-hot-tub { - --fa: "\f593"; } - -.fa-map-location { - --fa: "\f59f"; } - -.fa-map-marked { - --fa: "\f59f"; } - -.fa-house-flood-water { - --fa: "\e50e"; } - -.fa-tree { - --fa: "\f1bb"; } - -.fa-bridge-lock { - --fa: "\e4cc"; } - -.fa-sack-dollar { - --fa: "\f81d"; } - -.fa-pen-to-square { - --fa: "\f044"; } - -.fa-edit { - --fa: "\f044"; } - -.fa-car-side { - --fa: "\f5e4"; } - -.fa-share-nodes { - --fa: "\f1e0"; } - -.fa-share-alt { - --fa: "\f1e0"; } - -.fa-heart-circle-minus { - --fa: "\e4ff"; } - -.fa-hourglass-half { - --fa: "\f252"; } - -.fa-hourglass-2 { - --fa: "\f252"; } - -.fa-microscope { - --fa: "\f610"; } - -.fa-sink { - --fa: "\e06d"; } - -.fa-bag-shopping { - --fa: "\f290"; } - -.fa-shopping-bag { - --fa: "\f290"; } - -.fa-arrow-down-z-a { - --fa: "\f881"; } - -.fa-sort-alpha-desc { - --fa: "\f881"; } - -.fa-sort-alpha-down-alt { - --fa: "\f881"; } - -.fa-mitten { - --fa: "\f7b5"; } - -.fa-person-rays { - --fa: "\e54d"; } - -.fa-users { - --fa: "\f0c0"; } - -.fa-eye-slash { - --fa: "\f070"; } - -.fa-flask-vial { - --fa: "\e4f3"; } - -.fa-hand { - --fa: "\f256"; } - -.fa-hand-paper { - --fa: "\f256"; } - -.fa-om { - --fa: "\f679"; } - -.fa-worm { - --fa: "\e599"; } - -.fa-house-circle-xmark { - --fa: "\e50b"; } - -.fa-plug { - --fa: "\f1e6"; } - -.fa-chevron-up { - --fa: "\f077"; } - -.fa-hand-spock { - --fa: "\f259"; } - -.fa-stopwatch { - --fa: "\f2f2"; } - -.fa-face-kiss { - --fa: "\f596"; } - -.fa-kiss { - --fa: "\f596"; } - -.fa-bridge-circle-xmark { - --fa: "\e4cb"; } - -.fa-face-grin-tongue { - --fa: "\f589"; } - -.fa-grin-tongue { - --fa: "\f589"; } - -.fa-chess-bishop { - --fa: "\f43a"; } - -.fa-face-grin-wink { - --fa: "\f58c"; } - -.fa-grin-wink { - --fa: "\f58c"; } - -.fa-ear-deaf { - --fa: "\f2a4"; } - -.fa-deaf { - --fa: "\f2a4"; } - -.fa-deafness { - --fa: "\f2a4"; } - -.fa-hard-of-hearing { - --fa: "\f2a4"; } - -.fa-road-circle-check { - --fa: "\e564"; } - -.fa-dice-five { - --fa: "\f523"; } - -.fa-square-rss { - --fa: "\f143"; } - -.fa-rss-square { - --fa: "\f143"; } - -.fa-land-mine-on { - --fa: "\e51b"; } - -.fa-i-cursor { - --fa: "\f246"; } - -.fa-stamp { - --fa: "\f5bf"; } - -.fa-stairs { - --fa: "\e289"; } - -.fa-i { - --fa: "\49"; } - -.fa-hryvnia-sign { - --fa: "\f6f2"; } - -.fa-hryvnia { - --fa: "\f6f2"; } - -.fa-pills { - --fa: "\f484"; } - -.fa-face-grin-wide { - --fa: "\f581"; } - -.fa-grin-alt { - --fa: "\f581"; } - -.fa-tooth { - --fa: "\f5c9"; } - -.fa-v { - --fa: "\56"; } - -.fa-bangladeshi-taka-sign { - --fa: "\e2e6"; } - -.fa-bicycle { - --fa: "\f206"; } - -.fa-staff-snake { - --fa: "\e579"; } - -.fa-rod-asclepius { - --fa: "\e579"; } - -.fa-rod-snake { - --fa: "\e579"; } - -.fa-staff-aesculapius { - --fa: "\e579"; } - -.fa-head-side-cough-slash { - --fa: "\e062"; } - -.fa-truck-medical { - --fa: "\f0f9"; } - -.fa-ambulance { - --fa: "\f0f9"; } - -.fa-wheat-awn-circle-exclamation { - --fa: "\e598"; } - -.fa-snowman { - --fa: "\f7d0"; } - -.fa-mortar-pestle { - --fa: "\f5a7"; } - -.fa-road-barrier { - --fa: "\e562"; } - -.fa-school { - --fa: "\f549"; } - -.fa-igloo { - --fa: "\f7ae"; } - -.fa-joint { - --fa: "\f595"; } - -.fa-angle-right { - --fa: "\f105"; } - -.fa-horse { - --fa: "\f6f0"; } - -.fa-q { - --fa: "\51"; } - -.fa-g { - --fa: "\47"; } - -.fa-notes-medical { - --fa: "\f481"; } - -.fa-temperature-half { - --fa: "\f2c9"; } - -.fa-temperature-2 { - --fa: "\f2c9"; } - -.fa-thermometer-2 { - --fa: "\f2c9"; } - -.fa-thermometer-half { - --fa: "\f2c9"; } - -.fa-dong-sign { - --fa: "\e169"; } - -.fa-capsules { - --fa: "\f46b"; } - -.fa-poo-storm { - --fa: "\f75a"; } - -.fa-poo-bolt { - --fa: "\f75a"; } - -.fa-face-frown-open { - --fa: "\f57a"; } - -.fa-frown-open { - --fa: "\f57a"; } - -.fa-hand-point-up { - --fa: "\f0a6"; } - -.fa-money-bill { - --fa: "\f0d6"; } - -.fa-bookmark { - --fa: "\f02e"; } - -.fa-align-justify { - --fa: "\f039"; } - -.fa-umbrella-beach { - --fa: "\f5ca"; } - -.fa-helmet-un { - --fa: "\e503"; } - -.fa-bullseye { - --fa: "\f140"; } - -.fa-bacon { - --fa: "\f7e5"; } - -.fa-hand-point-down { - --fa: "\f0a7"; } - -.fa-arrow-up-from-bracket { - --fa: "\e09a"; } - -.fa-folder { - --fa: "\f07b"; } - -.fa-folder-blank { - --fa: "\f07b"; } - -.fa-file-waveform { - --fa: "\f478"; } - -.fa-file-medical-alt { - --fa: "\f478"; } - -.fa-radiation { - --fa: "\f7b9"; } - -.fa-chart-simple { - --fa: "\e473"; } - -.fa-mars-stroke { - --fa: "\f229"; } - -.fa-vial { - --fa: "\f492"; } - -.fa-gauge { - --fa: "\f624"; } - -.fa-dashboard { - --fa: "\f624"; } - -.fa-gauge-med { - --fa: "\f624"; } - -.fa-tachometer-alt-average { - --fa: "\f624"; } - -.fa-wand-magic-sparkles { - --fa: "\e2ca"; } - -.fa-magic-wand-sparkles { - --fa: "\e2ca"; } - -.fa-e { - --fa: "\45"; } - -.fa-pen-clip { - --fa: "\f305"; } - -.fa-pen-alt { - --fa: "\f305"; } - -.fa-bridge-circle-exclamation { - --fa: "\e4ca"; } - -.fa-user { - --fa: "\f007"; } - -.fa-school-circle-check { - --fa: "\e56b"; } - -.fa-dumpster { - --fa: "\f793"; } - -.fa-van-shuttle { - --fa: "\f5b6"; } - -.fa-shuttle-van { - --fa: "\f5b6"; } - -.fa-building-user { - --fa: "\e4da"; } - -.fa-square-caret-left { - --fa: "\f191"; } - -.fa-caret-square-left { - --fa: "\f191"; } - -.fa-highlighter { - --fa: "\f591"; } - -.fa-key { - --fa: "\f084"; } - -.fa-bullhorn { - --fa: "\f0a1"; } - -.fa-globe { - --fa: "\f0ac"; } - -.fa-synagogue { - --fa: "\f69b"; } - -.fa-person-half-dress { - --fa: "\e548"; } - -.fa-road-bridge { - --fa: "\e563"; } - -.fa-location-arrow { - --fa: "\f124"; } - -.fa-c { - --fa: "\43"; } - -.fa-tablet-button { - --fa: "\f10a"; } - -.fa-building-lock { - --fa: "\e4d6"; } - -.fa-pizza-slice { - --fa: "\f818"; } - -.fa-money-bill-wave { - --fa: "\f53a"; } - -.fa-chart-area { - --fa: "\f1fe"; } - -.fa-area-chart { - --fa: "\f1fe"; } - -.fa-house-flag { - --fa: "\e50d"; } - -.fa-person-circle-minus { - --fa: "\e540"; } - -.fa-ban { - --fa: "\f05e"; } - -.fa-cancel { - --fa: "\f05e"; } - -.fa-camera-rotate { - --fa: "\e0d8"; } - -.fa-spray-can-sparkles { - --fa: "\f5d0"; } - -.fa-air-freshener { - --fa: "\f5d0"; } - -.fa-star { - --fa: "\f005"; } - -.fa-repeat { - --fa: "\f363"; } - -.fa-cross { - --fa: "\f654"; } - -.fa-box { - --fa: "\f466"; } - -.fa-venus-mars { - --fa: "\f228"; } - -.fa-arrow-pointer { - --fa: "\f245"; } - -.fa-mouse-pointer { - --fa: "\f245"; } - -.fa-maximize { - --fa: "\f31e"; } - -.fa-expand-arrows-alt { - --fa: "\f31e"; } - -.fa-charging-station { - --fa: "\f5e7"; } - -.fa-shapes { - --fa: "\f61f"; } - -.fa-triangle-circle-square { - --fa: "\f61f"; } - -.fa-shuffle { - --fa: "\f074"; } - -.fa-random { - --fa: "\f074"; } - -.fa-person-running { - --fa: "\f70c"; } - -.fa-running { - --fa: "\f70c"; } - -.fa-mobile-retro { - --fa: "\e527"; } - -.fa-grip-lines-vertical { - --fa: "\f7a5"; } - -.fa-spider { - --fa: "\f717"; } - -.fa-hands-bound { - --fa: "\e4f9"; } - -.fa-file-invoice-dollar { - --fa: "\f571"; } - -.fa-plane-circle-exclamation { - --fa: "\e556"; } - -.fa-x-ray { - --fa: "\f497"; } - -.fa-spell-check { - --fa: "\f891"; } - -.fa-slash { - --fa: "\f715"; } - -.fa-computer-mouse { - --fa: "\f8cc"; } - -.fa-mouse { - --fa: "\f8cc"; } - -.fa-arrow-right-to-bracket { - --fa: "\f090"; } - -.fa-sign-in { - --fa: "\f090"; } - -.fa-shop-slash { - --fa: "\e070"; } - -.fa-store-alt-slash { - --fa: "\e070"; } - -.fa-server { - --fa: "\f233"; } - -.fa-virus-covid-slash { - --fa: "\e4a9"; } - -.fa-shop-lock { - --fa: "\e4a5"; } - -.fa-hourglass-start { - --fa: "\f251"; } - -.fa-hourglass-1 { - --fa: "\f251"; } - -.fa-blender-phone { - --fa: "\f6b6"; } - -.fa-building-wheat { - --fa: "\e4db"; } - -.fa-person-breastfeeding { - --fa: "\e53a"; } - -.fa-right-to-bracket { - --fa: "\f2f6"; } - -.fa-sign-in-alt { - --fa: "\f2f6"; } - -.fa-venus { - --fa: "\f221"; } - -.fa-passport { - --fa: "\f5ab"; } - -.fa-thumbtack-slash { - --fa: "\e68f"; } - -.fa-thumb-tack-slash { - --fa: "\e68f"; } - -.fa-heart-pulse { - --fa: "\f21e"; } - -.fa-heartbeat { - --fa: "\f21e"; } - -.fa-people-carry-box { - --fa: "\f4ce"; } - -.fa-people-carry { - --fa: "\f4ce"; } - -.fa-temperature-high { - --fa: "\f769"; } - -.fa-microchip { - --fa: "\f2db"; } - -.fa-crown { - --fa: "\f521"; } - -.fa-weight-hanging { - --fa: "\f5cd"; } - -.fa-xmarks-lines { - --fa: "\e59a"; } - -.fa-file-prescription { - --fa: "\f572"; } - -.fa-weight-scale { - --fa: "\f496"; } - -.fa-weight { - --fa: "\f496"; } - -.fa-user-group { - --fa: "\f500"; } - -.fa-user-friends { - --fa: "\f500"; } - -.fa-arrow-up-a-z { - --fa: "\f15e"; } - -.fa-sort-alpha-up { - --fa: "\f15e"; } - -.fa-chess-knight { - --fa: "\f441"; } - -.fa-face-laugh-squint { - --fa: "\f59b"; } - -.fa-laugh-squint { - --fa: "\f59b"; } - -.fa-wheelchair { - --fa: "\f193"; } - -.fa-circle-arrow-up { - --fa: "\f0aa"; } - -.fa-arrow-circle-up { - --fa: "\f0aa"; } - -.fa-toggle-on { - --fa: "\f205"; } - -.fa-person-walking { - --fa: "\f554"; } - -.fa-walking { - --fa: "\f554"; } - -.fa-l { - --fa: "\4c"; } - -.fa-fire { - --fa: "\f06d"; } - -.fa-bed-pulse { - --fa: "\f487"; } - -.fa-procedures { - --fa: "\f487"; } - -.fa-shuttle-space { - --fa: "\f197"; } - -.fa-space-shuttle { - --fa: "\f197"; } - -.fa-face-laugh { - --fa: "\f599"; } - -.fa-laugh { - --fa: "\f599"; } - -.fa-folder-open { - --fa: "\f07c"; } - -.fa-heart-circle-plus { - --fa: "\e500"; } - -.fa-code-fork { - --fa: "\e13b"; } - -.fa-city { - --fa: "\f64f"; } - -.fa-microphone-lines { - --fa: "\f3c9"; } - -.fa-microphone-alt { - --fa: "\f3c9"; } - -.fa-pepper-hot { - --fa: "\f816"; } - -.fa-unlock { - --fa: "\f09c"; } - -.fa-colon-sign { - --fa: "\e140"; } - -.fa-headset { - --fa: "\f590"; } - -.fa-store-slash { - --fa: "\e071"; } - -.fa-road-circle-xmark { - --fa: "\e566"; } - -.fa-user-minus { - --fa: "\f503"; } - -.fa-mars-stroke-up { - --fa: "\f22a"; } - -.fa-mars-stroke-v { - --fa: "\f22a"; } - -.fa-champagne-glasses { - --fa: "\f79f"; } - -.fa-glass-cheers { - --fa: "\f79f"; } - -.fa-clipboard { - --fa: "\f328"; } - -.fa-house-circle-exclamation { - --fa: "\e50a"; } - -.fa-file-arrow-up { - --fa: "\f574"; } - -.fa-file-upload { - --fa: "\f574"; } - -.fa-wifi { - --fa: "\f1eb"; } - -.fa-wifi-3 { - --fa: "\f1eb"; } - -.fa-wifi-strong { - --fa: "\f1eb"; } - -.fa-bath { - --fa: "\f2cd"; } - -.fa-bathtub { - --fa: "\f2cd"; } - -.fa-underline { - --fa: "\f0cd"; } - -.fa-user-pen { - --fa: "\f4ff"; } - -.fa-user-edit { - --fa: "\f4ff"; } - -.fa-signature { - --fa: "\f5b7"; } - -.fa-stroopwafel { - --fa: "\f551"; } - -.fa-bold { - --fa: "\f032"; } - -.fa-anchor-lock { - --fa: "\e4ad"; } - -.fa-building-ngo { - --fa: "\e4d7"; } - -.fa-manat-sign { - --fa: "\e1d5"; } - -.fa-not-equal { - --fa: "\f53e"; } - -.fa-border-top-left { - --fa: "\f853"; } - -.fa-border-style { - --fa: "\f853"; } - -.fa-map-location-dot { - --fa: "\f5a0"; } - -.fa-map-marked-alt { - --fa: "\f5a0"; } - -.fa-jedi { - --fa: "\f669"; } - -.fa-square-poll-vertical { - --fa: "\f681"; } - -.fa-poll { - --fa: "\f681"; } - -.fa-mug-hot { - --fa: "\f7b6"; } - -.fa-car-battery { - --fa: "\f5df"; } - -.fa-battery-car { - --fa: "\f5df"; } - -.fa-gift { - --fa: "\f06b"; } - -.fa-dice-two { - --fa: "\f528"; } - -.fa-chess-queen { - --fa: "\f445"; } - -.fa-glasses { - --fa: "\f530"; } - -.fa-chess-board { - --fa: "\f43c"; } - -.fa-building-circle-check { - --fa: "\e4d2"; } - -.fa-person-chalkboard { - --fa: "\e53d"; } - -.fa-mars-stroke-right { - --fa: "\f22b"; } - -.fa-mars-stroke-h { - --fa: "\f22b"; } - -.fa-hand-back-fist { - --fa: "\f255"; } - -.fa-hand-rock { - --fa: "\f255"; } - -.fa-square-caret-up { - --fa: "\f151"; } - -.fa-caret-square-up { - --fa: "\f151"; } - -.fa-cloud-showers-water { - --fa: "\e4e4"; } - -.fa-chart-bar { - --fa: "\f080"; } - -.fa-bar-chart { - --fa: "\f080"; } - -.fa-hands-bubbles { - --fa: "\e05e"; } - -.fa-hands-wash { - --fa: "\e05e"; } - -.fa-less-than-equal { - --fa: "\f537"; } - -.fa-train { - --fa: "\f238"; } - -.fa-eye-low-vision { - --fa: "\f2a8"; } - -.fa-low-vision { - --fa: "\f2a8"; } - -.fa-crow { - --fa: "\f520"; } - -.fa-sailboat { - --fa: "\e445"; } - -.fa-window-restore { - --fa: "\f2d2"; } - -.fa-square-plus { - --fa: "\f0fe"; } - -.fa-plus-square { - --fa: "\f0fe"; } - -.fa-torii-gate { - --fa: "\f6a1"; } - -.fa-frog { - --fa: "\f52e"; } - -.fa-bucket { - --fa: "\e4cf"; } - -.fa-image { - --fa: "\f03e"; } - -.fa-microphone { - --fa: "\f130"; } - -.fa-cow { - --fa: "\f6c8"; } - -.fa-caret-up { - --fa: "\f0d8"; } - -.fa-screwdriver { - --fa: "\f54a"; } - -.fa-folder-closed { - --fa: "\e185"; } - -.fa-house-tsunami { - --fa: "\e515"; } - -.fa-square-nfi { - --fa: "\e576"; } - -.fa-arrow-up-from-ground-water { - --fa: "\e4b5"; } - -.fa-martini-glass { - --fa: "\f57b"; } - -.fa-glass-martini-alt { - --fa: "\f57b"; } - -.fa-square-binary { - --fa: "\e69b"; } - -.fa-rotate-left { - --fa: "\f2ea"; } - -.fa-rotate-back { - --fa: "\f2ea"; } - -.fa-rotate-backward { - --fa: "\f2ea"; } - -.fa-undo-alt { - --fa: "\f2ea"; } - -.fa-table-columns { - --fa: "\f0db"; } - -.fa-columns { - --fa: "\f0db"; } - -.fa-lemon { - --fa: "\f094"; } - -.fa-head-side-mask { - --fa: "\e063"; } - -.fa-handshake { - --fa: "\f2b5"; } - -.fa-gem { - --fa: "\f3a5"; } - -.fa-dolly { - --fa: "\f472"; } - -.fa-dolly-box { - --fa: "\f472"; } - -.fa-smoking { - --fa: "\f48d"; } - -.fa-minimize { - --fa: "\f78c"; } - -.fa-compress-arrows-alt { - --fa: "\f78c"; } - -.fa-monument { - --fa: "\f5a6"; } - -.fa-snowplow { - --fa: "\f7d2"; } - -.fa-angles-right { - --fa: "\f101"; } - -.fa-angle-double-right { - --fa: "\f101"; } - -.fa-cannabis { - --fa: "\f55f"; } - -.fa-circle-play { - --fa: "\f144"; } - -.fa-play-circle { - --fa: "\f144"; } - -.fa-tablets { - --fa: "\f490"; } - -.fa-ethernet { - --fa: "\f796"; } - -.fa-euro-sign { - --fa: "\f153"; } - -.fa-eur { - --fa: "\f153"; } - -.fa-euro { - --fa: "\f153"; } - -.fa-chair { - --fa: "\f6c0"; } - -.fa-circle-check { - --fa: "\f058"; } - -.fa-check-circle { - --fa: "\f058"; } - -.fa-circle-stop { - --fa: "\f28d"; } - -.fa-stop-circle { - --fa: "\f28d"; } - -.fa-compass-drafting { - --fa: "\f568"; } - -.fa-drafting-compass { - --fa: "\f568"; } - -.fa-plate-wheat { - --fa: "\e55a"; } - -.fa-icicles { - --fa: "\f7ad"; } - -.fa-person-shelter { - --fa: "\e54f"; } - -.fa-neuter { - --fa: "\f22c"; } - -.fa-id-badge { - --fa: "\f2c1"; } - -.fa-marker { - --fa: "\f5a1"; } - -.fa-face-laugh-beam { - --fa: "\f59a"; } - -.fa-laugh-beam { - --fa: "\f59a"; } - -.fa-helicopter-symbol { - --fa: "\e502"; } - -.fa-universal-access { - --fa: "\f29a"; } - -.fa-circle-chevron-up { - --fa: "\f139"; } - -.fa-chevron-circle-up { - --fa: "\f139"; } - -.fa-lari-sign { - --fa: "\e1c8"; } - -.fa-volcano { - --fa: "\f770"; } - -.fa-person-walking-dashed-line-arrow-right { - --fa: "\e553"; } - -.fa-sterling-sign { - --fa: "\f154"; } - -.fa-gbp { - --fa: "\f154"; } - -.fa-pound-sign { - --fa: "\f154"; } - -.fa-viruses { - --fa: "\e076"; } - -.fa-square-person-confined { - --fa: "\e577"; } - -.fa-user-tie { - --fa: "\f508"; } - -.fa-arrow-down-long { - --fa: "\f175"; } - -.fa-long-arrow-down { - --fa: "\f175"; } - -.fa-tent-arrow-down-to-line { - --fa: "\e57e"; } - -.fa-certificate { - --fa: "\f0a3"; } - -.fa-reply-all { - --fa: "\f122"; } - -.fa-mail-reply-all { - --fa: "\f122"; } - -.fa-suitcase { - --fa: "\f0f2"; } - -.fa-person-skating { - --fa: "\f7c5"; } - -.fa-skating { - --fa: "\f7c5"; } - -.fa-filter-circle-dollar { - --fa: "\f662"; } - -.fa-funnel-dollar { - --fa: "\f662"; } - -.fa-camera-retro { - --fa: "\f083"; } - -.fa-circle-arrow-down { - --fa: "\f0ab"; } - -.fa-arrow-circle-down { - --fa: "\f0ab"; } - -.fa-file-import { - --fa: "\f56f"; } - -.fa-arrow-right-to-file { - --fa: "\f56f"; } - -.fa-square-arrow-up-right { - --fa: "\f14c"; } - -.fa-external-link-square { - --fa: "\f14c"; } - -.fa-box-open { - --fa: "\f49e"; } - -.fa-scroll { - --fa: "\f70e"; } - -.fa-spa { - --fa: "\f5bb"; } - -.fa-location-pin-lock { - --fa: "\e51f"; } - -.fa-pause { - --fa: "\f04c"; } - -.fa-hill-avalanche { - --fa: "\e507"; } - -.fa-temperature-empty { - --fa: "\f2cb"; } - -.fa-temperature-0 { - --fa: "\f2cb"; } - -.fa-thermometer-0 { - --fa: "\f2cb"; } - -.fa-thermometer-empty { - --fa: "\f2cb"; } - -.fa-bomb { - --fa: "\f1e2"; } - -.fa-registered { - --fa: "\f25d"; } - -.fa-address-card { - --fa: "\f2bb"; } - -.fa-contact-card { - --fa: "\f2bb"; } - -.fa-vcard { - --fa: "\f2bb"; } - -.fa-scale-unbalanced-flip { - --fa: "\f516"; } - -.fa-balance-scale-right { - --fa: "\f516"; } - -.fa-subscript { - --fa: "\f12c"; } - -.fa-diamond-turn-right { - --fa: "\f5eb"; } - -.fa-directions { - --fa: "\f5eb"; } - -.fa-burst { - --fa: "\e4dc"; } - -.fa-house-laptop { - --fa: "\e066"; } - -.fa-laptop-house { - --fa: "\e066"; } - -.fa-face-tired { - --fa: "\f5c8"; } - -.fa-tired { - --fa: "\f5c8"; } - -.fa-money-bills { - --fa: "\e1f3"; } - -.fa-smog { - --fa: "\f75f"; } - -.fa-crutch { - --fa: "\f7f7"; } - -.fa-cloud-arrow-up { - --fa: "\f0ee"; } - -.fa-cloud-upload { - --fa: "\f0ee"; } - -.fa-cloud-upload-alt { - --fa: "\f0ee"; } - -.fa-palette { - --fa: "\f53f"; } - -.fa-arrows-turn-right { - --fa: "\e4c0"; } - -.fa-vest { - --fa: "\e085"; } - -.fa-ferry { - --fa: "\e4ea"; } - -.fa-arrows-down-to-people { - --fa: "\e4b9"; } - -.fa-seedling { - --fa: "\f4d8"; } - -.fa-sprout { - --fa: "\f4d8"; } - -.fa-left-right { - --fa: "\f337"; } - -.fa-arrows-alt-h { - --fa: "\f337"; } - -.fa-boxes-packing { - --fa: "\e4c7"; } - -.fa-circle-arrow-left { - --fa: "\f0a8"; } - -.fa-arrow-circle-left { - --fa: "\f0a8"; } - -.fa-group-arrows-rotate { - --fa: "\e4f6"; } - -.fa-bowl-food { - --fa: "\e4c6"; } - -.fa-candy-cane { - --fa: "\f786"; } - -.fa-arrow-down-wide-short { - --fa: "\f160"; } - -.fa-sort-amount-asc { - --fa: "\f160"; } - -.fa-sort-amount-down { - --fa: "\f160"; } - -.fa-cloud-bolt { - --fa: "\f76c"; } - -.fa-thunderstorm { - --fa: "\f76c"; } - -.fa-text-slash { - --fa: "\f87d"; } - -.fa-remove-format { - --fa: "\f87d"; } - -.fa-face-smile-wink { - --fa: "\f4da"; } - -.fa-smile-wink { - --fa: "\f4da"; } - -.fa-file-word { - --fa: "\f1c2"; } - -.fa-file-powerpoint { - --fa: "\f1c4"; } - -.fa-arrows-left-right { - --fa: "\f07e"; } - -.fa-arrows-h { - --fa: "\f07e"; } - -.fa-house-lock { - --fa: "\e510"; } - -.fa-cloud-arrow-down { - --fa: "\f0ed"; } - -.fa-cloud-download { - --fa: "\f0ed"; } - -.fa-cloud-download-alt { - --fa: "\f0ed"; } - -.fa-children { - --fa: "\e4e1"; } - -.fa-chalkboard { - --fa: "\f51b"; } - -.fa-blackboard { - --fa: "\f51b"; } - -.fa-user-large-slash { - --fa: "\f4fa"; } - -.fa-user-alt-slash { - --fa: "\f4fa"; } - -.fa-envelope-open { - --fa: "\f2b6"; } - -.fa-handshake-simple-slash { - --fa: "\e05f"; } - -.fa-handshake-alt-slash { - --fa: "\e05f"; } - -.fa-mattress-pillow { - --fa: "\e525"; } - -.fa-guarani-sign { - --fa: "\e19a"; } - -.fa-arrows-rotate { - --fa: "\f021"; } - -.fa-refresh { - --fa: "\f021"; } - -.fa-sync { - --fa: "\f021"; } - -.fa-fire-extinguisher { - --fa: "\f134"; } - -.fa-cruzeiro-sign { - --fa: "\e152"; } - -.fa-greater-than-equal { - --fa: "\f532"; } - -.fa-shield-halved { - --fa: "\f3ed"; } - -.fa-shield-alt { - --fa: "\f3ed"; } - -.fa-book-atlas { - --fa: "\f558"; } - -.fa-atlas { - --fa: "\f558"; } - -.fa-virus { - --fa: "\e074"; } - -.fa-envelope-circle-check { - --fa: "\e4e8"; } - -.fa-layer-group { - --fa: "\f5fd"; } - -.fa-arrows-to-dot { - --fa: "\e4be"; } - -.fa-archway { - --fa: "\f557"; } - -.fa-heart-circle-check { - --fa: "\e4fd"; } - -.fa-house-chimney-crack { - --fa: "\f6f1"; } - -.fa-house-damage { - --fa: "\f6f1"; } - -.fa-file-zipper { - --fa: "\f1c6"; } - -.fa-file-archive { - --fa: "\f1c6"; } - -.fa-square { - --fa: "\f0c8"; } - -.fa-martini-glass-empty { - --fa: "\f000"; } - -.fa-glass-martini { - --fa: "\f000"; } - -.fa-couch { - --fa: "\f4b8"; } - -.fa-cedi-sign { - --fa: "\e0df"; } - -.fa-italic { - --fa: "\f033"; } - -.fa-table-cells-column-lock { - --fa: "\e678"; } - -.fa-church { - --fa: "\f51d"; } - -.fa-comments-dollar { - --fa: "\f653"; } - -.fa-democrat { - --fa: "\f747"; } - -.fa-z { - --fa: "\5a"; } - -.fa-person-skiing { - --fa: "\f7c9"; } - -.fa-skiing { - --fa: "\f7c9"; } - -.fa-road-lock { - --fa: "\e567"; } - -.fa-a { - --fa: "\41"; } - -.fa-temperature-arrow-down { - --fa: "\e03f"; } - -.fa-temperature-down { - --fa: "\e03f"; } - -.fa-feather-pointed { - --fa: "\f56b"; } - -.fa-feather-alt { - --fa: "\f56b"; } - -.fa-p { - --fa: "\50"; } - -.fa-snowflake { - --fa: "\f2dc"; } - -.fa-newspaper { - --fa: "\f1ea"; } - -.fa-rectangle-ad { - --fa: "\f641"; } - -.fa-ad { - --fa: "\f641"; } - -.fa-circle-arrow-right { - --fa: "\f0a9"; } - -.fa-arrow-circle-right { - --fa: "\f0a9"; } - -.fa-filter-circle-xmark { - --fa: "\e17b"; } - -.fa-locust { - --fa: "\e520"; } - -.fa-sort { - --fa: "\f0dc"; } - -.fa-unsorted { - --fa: "\f0dc"; } - -.fa-list-ol { - --fa: "\f0cb"; } - -.fa-list-1-2 { - --fa: "\f0cb"; } - -.fa-list-numeric { - --fa: "\f0cb"; } - -.fa-person-dress-burst { - --fa: "\e544"; } - -.fa-money-check-dollar { - --fa: "\f53d"; } - -.fa-money-check-alt { - --fa: "\f53d"; } - -.fa-vector-square { - --fa: "\f5cb"; } - -.fa-bread-slice { - --fa: "\f7ec"; } - -.fa-language { - --fa: "\f1ab"; } - -.fa-face-kiss-wink-heart { - --fa: "\f598"; } - -.fa-kiss-wink-heart { - --fa: "\f598"; } - -.fa-filter { - --fa: "\f0b0"; } - -.fa-question { - --fa: "\3f"; } - -.fa-file-signature { - --fa: "\f573"; } - -.fa-up-down-left-right { - --fa: "\f0b2"; } - -.fa-arrows-alt { - --fa: "\f0b2"; } - -.fa-house-chimney-user { - --fa: "\e065"; } - -.fa-hand-holding-heart { - --fa: "\f4be"; } - -.fa-puzzle-piece { - --fa: "\f12e"; } - -.fa-money-check { - --fa: "\f53c"; } - -.fa-star-half-stroke { - --fa: "\f5c0"; } - -.fa-star-half-alt { - --fa: "\f5c0"; } - -.fa-code { - --fa: "\f121"; } - -.fa-whiskey-glass { - --fa: "\f7a0"; } - -.fa-glass-whiskey { - --fa: "\f7a0"; } - -.fa-building-circle-exclamation { - --fa: "\e4d3"; } - -.fa-magnifying-glass-chart { - --fa: "\e522"; } - -.fa-arrow-up-right-from-square { - --fa: "\f08e"; } - -.fa-external-link { - --fa: "\f08e"; } - -.fa-cubes-stacked { - --fa: "\e4e6"; } - -.fa-won-sign { - --fa: "\f159"; } - -.fa-krw { - --fa: "\f159"; } - -.fa-won { - --fa: "\f159"; } - -.fa-virus-covid { - --fa: "\e4a8"; } - -.fa-austral-sign { - --fa: "\e0a9"; } - -.fa-f { - --fa: "\46"; } - -.fa-leaf { - --fa: "\f06c"; } - -.fa-road { - --fa: "\f018"; } - -.fa-taxi { - --fa: "\f1ba"; } - -.fa-cab { - --fa: "\f1ba"; } - -.fa-person-circle-plus { - --fa: "\e541"; } - -.fa-chart-pie { - --fa: "\f200"; } - -.fa-pie-chart { - --fa: "\f200"; } - -.fa-bolt-lightning { - --fa: "\e0b7"; } - -.fa-sack-xmark { - --fa: "\e56a"; } - -.fa-file-excel { - --fa: "\f1c3"; } - -.fa-file-contract { - --fa: "\f56c"; } - -.fa-fish-fins { - --fa: "\e4f2"; } - -.fa-building-flag { - --fa: "\e4d5"; } - -.fa-face-grin-beam { - --fa: "\f582"; } - -.fa-grin-beam { - --fa: "\f582"; } - -.fa-object-ungroup { - --fa: "\f248"; } - -.fa-poop { - --fa: "\f619"; } - -.fa-location-pin { - --fa: "\f041"; } - -.fa-map-marker { - --fa: "\f041"; } - -.fa-kaaba { - --fa: "\f66b"; } - -.fa-toilet-paper { - --fa: "\f71e"; } - -.fa-helmet-safety { - --fa: "\f807"; } - -.fa-hard-hat { - --fa: "\f807"; } - -.fa-hat-hard { - --fa: "\f807"; } - -.fa-eject { - --fa: "\f052"; } - -.fa-circle-right { - --fa: "\f35a"; } - -.fa-arrow-alt-circle-right { - --fa: "\f35a"; } - -.fa-plane-circle-check { - --fa: "\e555"; } - -.fa-face-rolling-eyes { - --fa: "\f5a5"; } - -.fa-meh-rolling-eyes { - --fa: "\f5a5"; } - -.fa-object-group { - --fa: "\f247"; } - -.fa-chart-line { - --fa: "\f201"; } - -.fa-line-chart { - --fa: "\f201"; } - -.fa-mask-ventilator { - --fa: "\e524"; } - -.fa-arrow-right { - --fa: "\f061"; } - -.fa-signs-post { - --fa: "\f277"; } - -.fa-map-signs { - --fa: "\f277"; } - -.fa-cash-register { - --fa: "\f788"; } - -.fa-person-circle-question { - --fa: "\e542"; } - -.fa-h { - --fa: "\48"; } - -.fa-tarp { - --fa: "\e57b"; } - -.fa-screwdriver-wrench { - --fa: "\f7d9"; } - -.fa-tools { - --fa: "\f7d9"; } - -.fa-arrows-to-eye { - --fa: "\e4bf"; } - -.fa-plug-circle-bolt { - --fa: "\e55b"; } - -.fa-heart { - --fa: "\f004"; } - -.fa-mars-and-venus { - --fa: "\f224"; } - -.fa-house-user { - --fa: "\e1b0"; } - -.fa-home-user { - --fa: "\e1b0"; } - -.fa-dumpster-fire { - --fa: "\f794"; } - -.fa-house-crack { - --fa: "\e3b1"; } - -.fa-martini-glass-citrus { - --fa: "\f561"; } - -.fa-cocktail { - --fa: "\f561"; } - -.fa-face-surprise { - --fa: "\f5c2"; } - -.fa-surprise { - --fa: "\f5c2"; } - -.fa-bottle-water { - --fa: "\e4c5"; } - -.fa-circle-pause { - --fa: "\f28b"; } - -.fa-pause-circle { - --fa: "\f28b"; } - -.fa-toilet-paper-slash { - --fa: "\e072"; } - -.fa-apple-whole { - --fa: "\f5d1"; } - -.fa-apple-alt { - --fa: "\f5d1"; } - -.fa-kitchen-set { - --fa: "\e51a"; } - -.fa-r { - --fa: "\52"; } - -.fa-temperature-quarter { - --fa: "\f2ca"; } - -.fa-temperature-1 { - --fa: "\f2ca"; } - -.fa-thermometer-1 { - --fa: "\f2ca"; } - -.fa-thermometer-quarter { - --fa: "\f2ca"; } - -.fa-cube { - --fa: "\f1b2"; } - -.fa-bitcoin-sign { - --fa: "\e0b4"; } - -.fa-shield-dog { - --fa: "\e573"; } - -.fa-solar-panel { - --fa: "\f5ba"; } - -.fa-lock-open { - --fa: "\f3c1"; } - -.fa-elevator { - --fa: "\e16d"; } - -.fa-money-bill-transfer { - --fa: "\e528"; } - -.fa-money-bill-trend-up { - --fa: "\e529"; } - -.fa-house-flood-water-circle-arrow-right { - --fa: "\e50f"; } - -.fa-square-poll-horizontal { - --fa: "\f682"; } - -.fa-poll-h { - --fa: "\f682"; } - -.fa-circle { - --fa: "\f111"; } - -.fa-backward-fast { - --fa: "\f049"; } - -.fa-fast-backward { - --fa: "\f049"; } - -.fa-recycle { - --fa: "\f1b8"; } - -.fa-user-astronaut { - --fa: "\f4fb"; } - -.fa-plane-slash { - --fa: "\e069"; } - -.fa-trademark { - --fa: "\f25c"; } - -.fa-basketball { - --fa: "\f434"; } - -.fa-basketball-ball { - --fa: "\f434"; } - -.fa-satellite-dish { - --fa: "\f7c0"; } - -.fa-circle-up { - --fa: "\f35b"; } - -.fa-arrow-alt-circle-up { - --fa: "\f35b"; } - -.fa-mobile-screen-button { - --fa: "\f3cd"; } - -.fa-mobile-alt { - --fa: "\f3cd"; } - -.fa-volume-high { - --fa: "\f028"; } - -.fa-volume-up { - --fa: "\f028"; } - -.fa-users-rays { - --fa: "\e593"; } - -.fa-wallet { - --fa: "\f555"; } - -.fa-clipboard-check { - --fa: "\f46c"; } - -.fa-file-audio { - --fa: "\f1c7"; } - -.fa-burger { - --fa: "\f805"; } - -.fa-hamburger { - --fa: "\f805"; } - -.fa-wrench { - --fa: "\f0ad"; } - -.fa-bugs { - --fa: "\e4d0"; } - -.fa-rupee-sign { - --fa: "\f156"; } - -.fa-rupee { - --fa: "\f156"; } - -.fa-file-image { - --fa: "\f1c5"; } - -.fa-circle-question { - --fa: "\f059"; } - -.fa-question-circle { - --fa: "\f059"; } - -.fa-plane-departure { - --fa: "\f5b0"; } - -.fa-handshake-slash { - --fa: "\e060"; } - -.fa-book-bookmark { - --fa: "\e0bb"; } - -.fa-code-branch { - --fa: "\f126"; } - -.fa-hat-cowboy { - --fa: "\f8c0"; } - -.fa-bridge { - --fa: "\e4c8"; } - -.fa-phone-flip { - --fa: "\f879"; } - -.fa-phone-alt { - --fa: "\f879"; } - -.fa-truck-front { - --fa: "\e2b7"; } - -.fa-cat { - --fa: "\f6be"; } - -.fa-anchor-circle-exclamation { - --fa: "\e4ab"; } - -.fa-truck-field { - --fa: "\e58d"; } - -.fa-route { - --fa: "\f4d7"; } - -.fa-clipboard-question { - --fa: "\e4e3"; } - -.fa-panorama { - --fa: "\e209"; } - -.fa-comment-medical { - --fa: "\f7f5"; } - -.fa-teeth-open { - --fa: "\f62f"; } - -.fa-file-circle-minus { - --fa: "\e4ed"; } - -.fa-tags { - --fa: "\f02c"; } - -.fa-wine-glass { - --fa: "\f4e3"; } - -.fa-forward-fast { - --fa: "\f050"; } - -.fa-fast-forward { - --fa: "\f050"; } - -.fa-face-meh-blank { - --fa: "\f5a4"; } - -.fa-meh-blank { - --fa: "\f5a4"; } - -.fa-square-parking { - --fa: "\f540"; } - -.fa-parking { - --fa: "\f540"; } - -.fa-house-signal { - --fa: "\e012"; } - -.fa-bars-progress { - --fa: "\f828"; } - -.fa-tasks-alt { - --fa: "\f828"; } - -.fa-faucet-drip { - --fa: "\e006"; } - -.fa-cart-flatbed { - --fa: "\f474"; } - -.fa-dolly-flatbed { - --fa: "\f474"; } - -.fa-ban-smoking { - --fa: "\f54d"; } - -.fa-smoking-ban { - --fa: "\f54d"; } - -.fa-terminal { - --fa: "\f120"; } - -.fa-mobile-button { - --fa: "\f10b"; } - -.fa-house-medical-flag { - --fa: "\e514"; } - -.fa-basket-shopping { - --fa: "\f291"; } - -.fa-shopping-basket { - --fa: "\f291"; } - -.fa-tape { - --fa: "\f4db"; } - -.fa-bus-simple { - --fa: "\f55e"; } - -.fa-bus-alt { - --fa: "\f55e"; } - -.fa-eye { - --fa: "\f06e"; } - -.fa-face-sad-cry { - --fa: "\f5b3"; } - -.fa-sad-cry { - --fa: "\f5b3"; } - -.fa-audio-description { - --fa: "\f29e"; } - -.fa-person-military-to-person { - --fa: "\e54c"; } - -.fa-file-shield { - --fa: "\e4f0"; } - -.fa-user-slash { - --fa: "\f506"; } - -.fa-pen { - --fa: "\f304"; } - -.fa-tower-observation { - --fa: "\e586"; } - -.fa-file-code { - --fa: "\f1c9"; } - -.fa-signal { - --fa: "\f012"; } - -.fa-signal-5 { - --fa: "\f012"; } - -.fa-signal-perfect { - --fa: "\f012"; } - -.fa-bus { - --fa: "\f207"; } - -.fa-heart-circle-xmark { - --fa: "\e501"; } - -.fa-house-chimney { - --fa: "\e3af"; } - -.fa-home-lg { - --fa: "\e3af"; } - -.fa-window-maximize { - --fa: "\f2d0"; } - -.fa-face-frown { - --fa: "\f119"; } - -.fa-frown { - --fa: "\f119"; } - -.fa-prescription { - --fa: "\f5b1"; } - -.fa-shop { - --fa: "\f54f"; } - -.fa-store-alt { - --fa: "\f54f"; } - -.fa-floppy-disk { - --fa: "\f0c7"; } - -.fa-save { - --fa: "\f0c7"; } - -.fa-vihara { - --fa: "\f6a7"; } - -.fa-scale-unbalanced { - --fa: "\f515"; } - -.fa-balance-scale-left { - --fa: "\f515"; } - -.fa-sort-up { - --fa: "\f0de"; } - -.fa-sort-asc { - --fa: "\f0de"; } - -.fa-comment-dots { - --fa: "\f4ad"; } - -.fa-commenting { - --fa: "\f4ad"; } - -.fa-plant-wilt { - --fa: "\e5aa"; } - -.fa-diamond { - --fa: "\f219"; } - -.fa-face-grin-squint { - --fa: "\f585"; } - -.fa-grin-squint { - --fa: "\f585"; } - -.fa-hand-holding-dollar { - --fa: "\f4c0"; } - -.fa-hand-holding-usd { - --fa: "\f4c0"; } - -.fa-chart-diagram { - --fa: "\e695"; } - -.fa-bacterium { - --fa: "\e05a"; } - -.fa-hand-pointer { - --fa: "\f25a"; } - -.fa-drum-steelpan { - --fa: "\f56a"; } - -.fa-hand-scissors { - --fa: "\f257"; } - -.fa-hands-praying { - --fa: "\f684"; } - -.fa-praying-hands { - --fa: "\f684"; } - -.fa-arrow-rotate-right { - --fa: "\f01e"; } - -.fa-arrow-right-rotate { - --fa: "\f01e"; } - -.fa-arrow-rotate-forward { - --fa: "\f01e"; } - -.fa-redo { - --fa: "\f01e"; } - -.fa-biohazard { - --fa: "\f780"; } - -.fa-location-crosshairs { - --fa: "\f601"; } - -.fa-location { - --fa: "\f601"; } - -.fa-mars-double { - --fa: "\f227"; } - -.fa-child-dress { - --fa: "\e59c"; } - -.fa-users-between-lines { - --fa: "\e591"; } - -.fa-lungs-virus { - --fa: "\e067"; } - -.fa-face-grin-tears { - --fa: "\f588"; } - -.fa-grin-tears { - --fa: "\f588"; } - -.fa-phone { - --fa: "\f095"; } - -.fa-calendar-xmark { - --fa: "\f273"; } - -.fa-calendar-times { - --fa: "\f273"; } - -.fa-child-reaching { - --fa: "\e59d"; } - -.fa-head-side-virus { - --fa: "\e064"; } - -.fa-user-gear { - --fa: "\f4fe"; } - -.fa-user-cog { - --fa: "\f4fe"; } - -.fa-arrow-up-1-9 { - --fa: "\f163"; } - -.fa-sort-numeric-up { - --fa: "\f163"; } - -.fa-door-closed { - --fa: "\f52a"; } - -.fa-shield-virus { - --fa: "\e06c"; } - -.fa-dice-six { - --fa: "\f526"; } - -.fa-mosquito-net { - --fa: "\e52c"; } - -.fa-file-fragment { - --fa: "\e697"; } - -.fa-bridge-water { - --fa: "\e4ce"; } - -.fa-person-booth { - --fa: "\f756"; } - -.fa-text-width { - --fa: "\f035"; } - -.fa-hat-wizard { - --fa: "\f6e8"; } - -.fa-pen-fancy { - --fa: "\f5ac"; } - -.fa-person-digging { - --fa: "\f85e"; } - -.fa-digging { - --fa: "\f85e"; } - -.fa-trash { - --fa: "\f1f8"; } - -.fa-gauge-simple { - --fa: "\f629"; } - -.fa-gauge-simple-med { - --fa: "\f629"; } - -.fa-tachometer-average { - --fa: "\f629"; } - -.fa-book-medical { - --fa: "\f7e6"; } - -.fa-poo { - --fa: "\f2fe"; } - -.fa-quote-right { - --fa: "\f10e"; } - -.fa-quote-right-alt { - --fa: "\f10e"; } - -.fa-shirt { - --fa: "\f553"; } - -.fa-t-shirt { - --fa: "\f553"; } - -.fa-tshirt { - --fa: "\f553"; } - -.fa-cubes { - --fa: "\f1b3"; } - -.fa-divide { - --fa: "\f529"; } - -.fa-tenge-sign { - --fa: "\f7d7"; } - -.fa-tenge { - --fa: "\f7d7"; } - -.fa-headphones { - --fa: "\f025"; } - -.fa-hands-holding { - --fa: "\f4c2"; } - -.fa-hands-clapping { - --fa: "\e1a8"; } - -.fa-republican { - --fa: "\f75e"; } - -.fa-arrow-left { - --fa: "\f060"; } - -.fa-person-circle-xmark { - --fa: "\e543"; } - -.fa-ruler { - --fa: "\f545"; } - -.fa-align-left { - --fa: "\f036"; } - -.fa-dice-d6 { - --fa: "\f6d1"; } - -.fa-restroom { - --fa: "\f7bd"; } - -.fa-j { - --fa: "\4a"; } - -.fa-users-viewfinder { - --fa: "\e595"; } - -.fa-file-video { - --fa: "\f1c8"; } - -.fa-up-right-from-square { - --fa: "\f35d"; } - -.fa-external-link-alt { - --fa: "\f35d"; } - -.fa-table-cells { - --fa: "\f00a"; } - -.fa-th { - --fa: "\f00a"; } - -.fa-file-pdf { - --fa: "\f1c1"; } - -.fa-book-bible { - --fa: "\f647"; } - -.fa-bible { - --fa: "\f647"; } - -.fa-o { - --fa: "\4f"; } - -.fa-suitcase-medical { - --fa: "\f0fa"; } - -.fa-medkit { - --fa: "\f0fa"; } - -.fa-user-secret { - --fa: "\f21b"; } - -.fa-otter { - --fa: "\f700"; } - -.fa-person-dress { - --fa: "\f182"; } - -.fa-female { - --fa: "\f182"; } - -.fa-comment-dollar { - --fa: "\f651"; } - -.fa-business-time { - --fa: "\f64a"; } - -.fa-briefcase-clock { - --fa: "\f64a"; } - -.fa-table-cells-large { - --fa: "\f009"; } - -.fa-th-large { - --fa: "\f009"; } - -.fa-book-tanakh { - --fa: "\f827"; } - -.fa-tanakh { - --fa: "\f827"; } - -.fa-phone-volume { - --fa: "\f2a0"; } - -.fa-volume-control-phone { - --fa: "\f2a0"; } - -.fa-hat-cowboy-side { - --fa: "\f8c1"; } - -.fa-clipboard-user { - --fa: "\f7f3"; } - -.fa-child { - --fa: "\f1ae"; } - -.fa-lira-sign { - --fa: "\f195"; } - -.fa-satellite { - --fa: "\f7bf"; } - -.fa-plane-lock { - --fa: "\e558"; } - -.fa-tag { - --fa: "\f02b"; } - -.fa-comment { - --fa: "\f075"; } - -.fa-cake-candles { - --fa: "\f1fd"; } - -.fa-birthday-cake { - --fa: "\f1fd"; } - -.fa-cake { - --fa: "\f1fd"; } - -.fa-envelope { - --fa: "\f0e0"; } - -.fa-angles-up { - --fa: "\f102"; } - -.fa-angle-double-up { - --fa: "\f102"; } - -.fa-paperclip { - --fa: "\f0c6"; } - -.fa-arrow-right-to-city { - --fa: "\e4b3"; } - -.fa-ribbon { - --fa: "\f4d6"; } - -.fa-lungs { - --fa: "\f604"; } - -.fa-arrow-up-9-1 { - --fa: "\f887"; } - -.fa-sort-numeric-up-alt { - --fa: "\f887"; } - -.fa-litecoin-sign { - --fa: "\e1d3"; } - -.fa-border-none { - --fa: "\f850"; } - -.fa-circle-nodes { - --fa: "\e4e2"; } - -.fa-parachute-box { - --fa: "\f4cd"; } - -.fa-indent { - --fa: "\f03c"; } - -.fa-truck-field-un { - --fa: "\e58e"; } - -.fa-hourglass { - --fa: "\f254"; } - -.fa-hourglass-empty { - --fa: "\f254"; } - -.fa-mountain { - --fa: "\f6fc"; } - -.fa-user-doctor { - --fa: "\f0f0"; } - -.fa-user-md { - --fa: "\f0f0"; } - -.fa-circle-info { - --fa: "\f05a"; } - -.fa-info-circle { - --fa: "\f05a"; } - -.fa-cloud-meatball { - --fa: "\f73b"; } - -.fa-camera { - --fa: "\f030"; } - -.fa-camera-alt { - --fa: "\f030"; } - -.fa-square-virus { - --fa: "\e578"; } - -.fa-meteor { - --fa: "\f753"; } - -.fa-car-on { - --fa: "\e4dd"; } - -.fa-sleigh { - --fa: "\f7cc"; } - -.fa-arrow-down-1-9 { - --fa: "\f162"; } - -.fa-sort-numeric-asc { - --fa: "\f162"; } - -.fa-sort-numeric-down { - --fa: "\f162"; } - -.fa-hand-holding-droplet { - --fa: "\f4c1"; } - -.fa-hand-holding-water { - --fa: "\f4c1"; } - -.fa-water { - --fa: "\f773"; } - -.fa-calendar-check { - --fa: "\f274"; } - -.fa-braille { - --fa: "\f2a1"; } - -.fa-prescription-bottle-medical { - --fa: "\f486"; } - -.fa-prescription-bottle-alt { - --fa: "\f486"; } - -.fa-landmark { - --fa: "\f66f"; } - -.fa-truck { - --fa: "\f0d1"; } - -.fa-crosshairs { - --fa: "\f05b"; } - -.fa-person-cane { - --fa: "\e53c"; } - -.fa-tent { - --fa: "\e57d"; } - -.fa-vest-patches { - --fa: "\e086"; } - -.fa-check-double { - --fa: "\f560"; } - -.fa-arrow-down-a-z { - --fa: "\f15d"; } - -.fa-sort-alpha-asc { - --fa: "\f15d"; } - -.fa-sort-alpha-down { - --fa: "\f15d"; } - -.fa-money-bill-wheat { - --fa: "\e52a"; } - -.fa-cookie { - --fa: "\f563"; } - -.fa-arrow-rotate-left { - --fa: "\f0e2"; } - -.fa-arrow-left-rotate { - --fa: "\f0e2"; } - -.fa-arrow-rotate-back { - --fa: "\f0e2"; } - -.fa-arrow-rotate-backward { - --fa: "\f0e2"; } - -.fa-undo { - --fa: "\f0e2"; } - -.fa-hard-drive { - --fa: "\f0a0"; } - -.fa-hdd { - --fa: "\f0a0"; } - -.fa-face-grin-squint-tears { - --fa: "\f586"; } - -.fa-grin-squint-tears { - --fa: "\f586"; } - -.fa-dumbbell { - --fa: "\f44b"; } - -.fa-rectangle-list { - --fa: "\f022"; } - -.fa-list-alt { - --fa: "\f022"; } - -.fa-tarp-droplet { - --fa: "\e57c"; } - -.fa-house-medical-circle-check { - --fa: "\e511"; } - -.fa-person-skiing-nordic { - --fa: "\f7ca"; } - -.fa-skiing-nordic { - --fa: "\f7ca"; } - -.fa-calendar-plus { - --fa: "\f271"; } - -.fa-plane-arrival { - --fa: "\f5af"; } - -.fa-circle-left { - --fa: "\f359"; } - -.fa-arrow-alt-circle-left { - --fa: "\f359"; } - -.fa-train-subway { - --fa: "\f239"; } - -.fa-subway { - --fa: "\f239"; } - -.fa-chart-gantt { - --fa: "\e0e4"; } - -.fa-indian-rupee-sign { - --fa: "\e1bc"; } - -.fa-indian-rupee { - --fa: "\e1bc"; } - -.fa-inr { - --fa: "\e1bc"; } - -.fa-crop-simple { - --fa: "\f565"; } - -.fa-crop-alt { - --fa: "\f565"; } - -.fa-money-bill-1 { - --fa: "\f3d1"; } - -.fa-money-bill-alt { - --fa: "\f3d1"; } - -.fa-left-long { - --fa: "\f30a"; } - -.fa-long-arrow-alt-left { - --fa: "\f30a"; } - -.fa-dna { - --fa: "\f471"; } - -.fa-virus-slash { - --fa: "\e075"; } - -.fa-minus { - --fa: "\f068"; } - -.fa-subtract { - --fa: "\f068"; } - -.fa-chess { - --fa: "\f439"; } - -.fa-arrow-left-long { - --fa: "\f177"; } - -.fa-long-arrow-left { - --fa: "\f177"; } - -.fa-plug-circle-check { - --fa: "\e55c"; } - -.fa-street-view { - --fa: "\f21d"; } - -.fa-franc-sign { - --fa: "\e18f"; } - -.fa-volume-off { - --fa: "\f026"; } - -.fa-hands-asl-interpreting { - --fa: "\f2a3"; } - -.fa-american-sign-language-interpreting { - --fa: "\f2a3"; } - -.fa-asl-interpreting { - --fa: "\f2a3"; } - -.fa-hands-american-sign-language-interpreting { - --fa: "\f2a3"; } - -.fa-gear { - --fa: "\f013"; } - -.fa-cog { - --fa: "\f013"; } - -.fa-droplet-slash { - --fa: "\f5c7"; } - -.fa-tint-slash { - --fa: "\f5c7"; } - -.fa-mosque { - --fa: "\f678"; } - -.fa-mosquito { - --fa: "\e52b"; } - -.fa-star-of-david { - --fa: "\f69a"; } - -.fa-person-military-rifle { - --fa: "\e54b"; } - -.fa-cart-shopping { - --fa: "\f07a"; } - -.fa-shopping-cart { - --fa: "\f07a"; } - -.fa-vials { - --fa: "\f493"; } - -.fa-plug-circle-plus { - --fa: "\e55f"; } - -.fa-place-of-worship { - --fa: "\f67f"; } - -.fa-grip-vertical { - --fa: "\f58e"; } - -.fa-hexagon-nodes { - --fa: "\e699"; } - -.fa-arrow-turn-up { - --fa: "\f148"; } - -.fa-level-up { - --fa: "\f148"; } - -.fa-u { - --fa: "\55"; } - -.fa-square-root-variable { - --fa: "\f698"; } - -.fa-square-root-alt { - --fa: "\f698"; } - -.fa-clock { - --fa: "\f017"; } - -.fa-clock-four { - --fa: "\f017"; } - -.fa-backward-step { - --fa: "\f048"; } - -.fa-step-backward { - --fa: "\f048"; } - -.fa-pallet { - --fa: "\f482"; } - -.fa-faucet { - --fa: "\e005"; } - -.fa-baseball-bat-ball { - --fa: "\f432"; } - -.fa-s { - --fa: "\53"; } - -.fa-timeline { - --fa: "\e29c"; } - -.fa-keyboard { - --fa: "\f11c"; } - -.fa-caret-down { - --fa: "\f0d7"; } - -.fa-house-chimney-medical { - --fa: "\f7f2"; } - -.fa-clinic-medical { - --fa: "\f7f2"; } - -.fa-temperature-three-quarters { - --fa: "\f2c8"; } - -.fa-temperature-3 { - --fa: "\f2c8"; } - -.fa-thermometer-3 { - --fa: "\f2c8"; } - -.fa-thermometer-three-quarters { - --fa: "\f2c8"; } - -.fa-mobile-screen { - --fa: "\f3cf"; } - -.fa-mobile-android-alt { - --fa: "\f3cf"; } - -.fa-plane-up { - --fa: "\e22d"; } - -.fa-piggy-bank { - --fa: "\f4d3"; } - -.fa-battery-half { - --fa: "\f242"; } - -.fa-battery-3 { - --fa: "\f242"; } - -.fa-mountain-city { - --fa: "\e52e"; } - -.fa-coins { - --fa: "\f51e"; } - -.fa-khanda { - --fa: "\f66d"; } - -.fa-sliders { - --fa: "\f1de"; } - -.fa-sliders-h { - --fa: "\f1de"; } - -.fa-folder-tree { - --fa: "\f802"; } - -.fa-network-wired { - --fa: "\f6ff"; } - -.fa-map-pin { - --fa: "\f276"; } - -.fa-hamsa { - --fa: "\f665"; } - -.fa-cent-sign { - --fa: "\e3f5"; } - -.fa-flask { - --fa: "\f0c3"; } - -.fa-person-pregnant { - --fa: "\e31e"; } - -.fa-wand-sparkles { - --fa: "\f72b"; } - -.fa-ellipsis-vertical { - --fa: "\f142"; } - -.fa-ellipsis-v { - --fa: "\f142"; } - -.fa-ticket { - --fa: "\f145"; } - -.fa-power-off { - --fa: "\f011"; } - -.fa-right-long { - --fa: "\f30b"; } - -.fa-long-arrow-alt-right { - --fa: "\f30b"; } - -.fa-flag-usa { - --fa: "\f74d"; } - -.fa-laptop-file { - --fa: "\e51d"; } - -.fa-tty { - --fa: "\f1e4"; } - -.fa-teletype { - --fa: "\f1e4"; } - -.fa-diagram-next { - --fa: "\e476"; } - -.fa-person-rifle { - --fa: "\e54e"; } - -.fa-house-medical-circle-exclamation { - --fa: "\e512"; } - -.fa-closed-captioning { - --fa: "\f20a"; } - -.fa-person-hiking { - --fa: "\f6ec"; } - -.fa-hiking { - --fa: "\f6ec"; } - -.fa-venus-double { - --fa: "\f226"; } - -.fa-images { - --fa: "\f302"; } - -.fa-calculator { - --fa: "\f1ec"; } - -.fa-people-pulling { - --fa: "\e535"; } - -.fa-n { - --fa: "\4e"; } - -.fa-cable-car { - --fa: "\f7da"; } - -.fa-tram { - --fa: "\f7da"; } - -.fa-cloud-rain { - --fa: "\f73d"; } - -.fa-building-circle-xmark { - --fa: "\e4d4"; } - -.fa-ship { - --fa: "\f21a"; } - -.fa-arrows-down-to-line { - --fa: "\e4b8"; } - -.fa-download { - --fa: "\f019"; } - -.fa-face-grin { - --fa: "\f580"; } - -.fa-grin { - --fa: "\f580"; } - -.fa-delete-left { - --fa: "\f55a"; } - -.fa-backspace { - --fa: "\f55a"; } - -.fa-eye-dropper { - --fa: "\f1fb"; } - -.fa-eye-dropper-empty { - --fa: "\f1fb"; } - -.fa-eyedropper { - --fa: "\f1fb"; } - -.fa-file-circle-check { - --fa: "\e5a0"; } - -.fa-forward { - --fa: "\f04e"; } - -.fa-mobile { - --fa: "\f3ce"; } - -.fa-mobile-android { - --fa: "\f3ce"; } - -.fa-mobile-phone { - --fa: "\f3ce"; } - -.fa-face-meh { - --fa: "\f11a"; } - -.fa-meh { - --fa: "\f11a"; } - -.fa-align-center { - --fa: "\f037"; } - -.fa-book-skull { - --fa: "\f6b7"; } - -.fa-book-dead { - --fa: "\f6b7"; } - -.fa-id-card { - --fa: "\f2c2"; } - -.fa-drivers-license { - --fa: "\f2c2"; } - -.fa-outdent { - --fa: "\f03b"; } - -.fa-dedent { - --fa: "\f03b"; } - -.fa-heart-circle-exclamation { - --fa: "\e4fe"; } - -.fa-house { - --fa: "\f015"; } - -.fa-home { - --fa: "\f015"; } - -.fa-home-alt { - --fa: "\f015"; } - -.fa-home-lg-alt { - --fa: "\f015"; } - -.fa-calendar-week { - --fa: "\f784"; } - -.fa-laptop-medical { - --fa: "\f812"; } - -.fa-b { - --fa: "\42"; } - -.fa-file-medical { - --fa: "\f477"; } - -.fa-dice-one { - --fa: "\f525"; } - -.fa-kiwi-bird { - --fa: "\f535"; } - -.fa-arrow-right-arrow-left { - --fa: "\f0ec"; } - -.fa-exchange { - --fa: "\f0ec"; } - -.fa-rotate-right { - --fa: "\f2f9"; } - -.fa-redo-alt { - --fa: "\f2f9"; } - -.fa-rotate-forward { - --fa: "\f2f9"; } - -.fa-utensils { - --fa: "\f2e7"; } - -.fa-cutlery { - --fa: "\f2e7"; } - -.fa-arrow-up-wide-short { - --fa: "\f161"; } - -.fa-sort-amount-up { - --fa: "\f161"; } - -.fa-mill-sign { - --fa: "\e1ed"; } - -.fa-bowl-rice { - --fa: "\e2eb"; } - -.fa-skull { - --fa: "\f54c"; } - -.fa-tower-broadcast { - --fa: "\f519"; } - -.fa-broadcast-tower { - --fa: "\f519"; } - -.fa-truck-pickup { - --fa: "\f63c"; } - -.fa-up-long { - --fa: "\f30c"; } - -.fa-long-arrow-alt-up { - --fa: "\f30c"; } - -.fa-stop { - --fa: "\f04d"; } - -.fa-code-merge { - --fa: "\f387"; } - -.fa-upload { - --fa: "\f093"; } - -.fa-hurricane { - --fa: "\f751"; } - -.fa-mound { - --fa: "\e52d"; } - -.fa-toilet-portable { - --fa: "\e583"; } - -.fa-compact-disc { - --fa: "\f51f"; } - -.fa-file-arrow-down { - --fa: "\f56d"; } - -.fa-file-download { - --fa: "\f56d"; } - -.fa-caravan { - --fa: "\f8ff"; } - -.fa-shield-cat { - --fa: "\e572"; } - -.fa-bolt { - --fa: "\f0e7"; } - -.fa-zap { - --fa: "\f0e7"; } - -.fa-glass-water { - --fa: "\e4f4"; } - -.fa-oil-well { - --fa: "\e532"; } - -.fa-vault { - --fa: "\e2c5"; } - -.fa-mars { - --fa: "\f222"; } - -.fa-toilet { - --fa: "\f7d8"; } - -.fa-plane-circle-xmark { - --fa: "\e557"; } - -.fa-yen-sign { - --fa: "\f157"; } - -.fa-cny { - --fa: "\f157"; } - -.fa-jpy { - --fa: "\f157"; } - -.fa-rmb { - --fa: "\f157"; } - -.fa-yen { - --fa: "\f157"; } - -.fa-ruble-sign { - --fa: "\f158"; } - -.fa-rouble { - --fa: "\f158"; } - -.fa-rub { - --fa: "\f158"; } - -.fa-ruble { - --fa: "\f158"; } - -.fa-sun { - --fa: "\f185"; } - -.fa-guitar { - --fa: "\f7a6"; } - -.fa-face-laugh-wink { - --fa: "\f59c"; } - -.fa-laugh-wink { - --fa: "\f59c"; } - -.fa-horse-head { - --fa: "\f7ab"; } - -.fa-bore-hole { - --fa: "\e4c3"; } - -.fa-industry { - --fa: "\f275"; } - -.fa-circle-down { - --fa: "\f358"; } - -.fa-arrow-alt-circle-down { - --fa: "\f358"; } - -.fa-arrows-turn-to-dots { - --fa: "\e4c1"; } - -.fa-florin-sign { - --fa: "\e184"; } - -.fa-arrow-down-short-wide { - --fa: "\f884"; } - -.fa-sort-amount-desc { - --fa: "\f884"; } - -.fa-sort-amount-down-alt { - --fa: "\f884"; } - -.fa-less-than { - --fa: "\3c"; } - -.fa-angle-down { - --fa: "\f107"; } - -.fa-car-tunnel { - --fa: "\e4de"; } - -.fa-head-side-cough { - --fa: "\e061"; } - -.fa-grip-lines { - --fa: "\f7a4"; } - -.fa-thumbs-down { - --fa: "\f165"; } - -.fa-user-lock { - --fa: "\f502"; } - -.fa-arrow-right-long { - --fa: "\f178"; } - -.fa-long-arrow-right { - --fa: "\f178"; } - -.fa-anchor-circle-xmark { - --fa: "\e4ac"; } - -.fa-ellipsis { - --fa: "\f141"; } - -.fa-ellipsis-h { - --fa: "\f141"; } - -.fa-chess-pawn { - --fa: "\f443"; } - -.fa-kit-medical { - --fa: "\f479"; } - -.fa-first-aid { - --fa: "\f479"; } - -.fa-person-through-window { - --fa: "\e5a9"; } - -.fa-toolbox { - --fa: "\f552"; } - -.fa-hands-holding-circle { - --fa: "\e4fb"; } - -.fa-bug { - --fa: "\f188"; } - -.fa-credit-card { - --fa: "\f09d"; } - -.fa-credit-card-alt { - --fa: "\f09d"; } - -.fa-car { - --fa: "\f1b9"; } - -.fa-automobile { - --fa: "\f1b9"; } - -.fa-hand-holding-hand { - --fa: "\e4f7"; } - -.fa-book-open-reader { - --fa: "\f5da"; } - -.fa-book-reader { - --fa: "\f5da"; } - -.fa-mountain-sun { - --fa: "\e52f"; } - -.fa-arrows-left-right-to-line { - --fa: "\e4ba"; } - -.fa-dice-d20 { - --fa: "\f6cf"; } - -.fa-truck-droplet { - --fa: "\e58c"; } - -.fa-file-circle-xmark { - --fa: "\e5a1"; } - -.fa-temperature-arrow-up { - --fa: "\e040"; } - -.fa-temperature-up { - --fa: "\e040"; } - -.fa-medal { - --fa: "\f5a2"; } - -.fa-bed { - --fa: "\f236"; } - -.fa-square-h { - --fa: "\f0fd"; } - -.fa-h-square { - --fa: "\f0fd"; } - -.fa-podcast { - --fa: "\f2ce"; } - -.fa-temperature-full { - --fa: "\f2c7"; } - -.fa-temperature-4 { - --fa: "\f2c7"; } - -.fa-thermometer-4 { - --fa: "\f2c7"; } - -.fa-thermometer-full { - --fa: "\f2c7"; } - -.fa-bell { - --fa: "\f0f3"; } - -.fa-superscript { - --fa: "\f12b"; } - -.fa-plug-circle-xmark { - --fa: "\e560"; } - -.fa-star-of-life { - --fa: "\f621"; } - -.fa-phone-slash { - --fa: "\f3dd"; } - -.fa-paint-roller { - --fa: "\f5aa"; } - -.fa-handshake-angle { - --fa: "\f4c4"; } - -.fa-hands-helping { - --fa: "\f4c4"; } - -.fa-location-dot { - --fa: "\f3c5"; } - -.fa-map-marker-alt { - --fa: "\f3c5"; } - -.fa-file { - --fa: "\f15b"; } - -.fa-greater-than { - --fa: "\3e"; } - -.fa-person-swimming { - --fa: "\f5c4"; } - -.fa-swimmer { - --fa: "\f5c4"; } - -.fa-arrow-down { - --fa: "\f063"; } - -.fa-droplet { - --fa: "\f043"; } - -.fa-tint { - --fa: "\f043"; } - -.fa-eraser { - --fa: "\f12d"; } - -.fa-earth-americas { - --fa: "\f57d"; } - -.fa-earth { - --fa: "\f57d"; } - -.fa-earth-america { - --fa: "\f57d"; } - -.fa-globe-americas { - --fa: "\f57d"; } - -.fa-person-burst { - --fa: "\e53b"; } - -.fa-dove { - --fa: "\f4ba"; } - -.fa-battery-empty { - --fa: "\f244"; } - -.fa-battery-0 { - --fa: "\f244"; } - -.fa-socks { - --fa: "\f696"; } - -.fa-inbox { - --fa: "\f01c"; } - -.fa-section { - --fa: "\e447"; } - -.fa-gauge-high { - --fa: "\f625"; } - -.fa-tachometer-alt { - --fa: "\f625"; } - -.fa-tachometer-alt-fast { - --fa: "\f625"; } - -.fa-envelope-open-text { - --fa: "\f658"; } - -.fa-hospital { - --fa: "\f0f8"; } - -.fa-hospital-alt { - --fa: "\f0f8"; } - -.fa-hospital-wide { - --fa: "\f0f8"; } - -.fa-wine-bottle { - --fa: "\f72f"; } - -.fa-chess-rook { - --fa: "\f447"; } - -.fa-bars-staggered { - --fa: "\f550"; } - -.fa-reorder { - --fa: "\f550"; } - -.fa-stream { - --fa: "\f550"; } - -.fa-dharmachakra { - --fa: "\f655"; } - -.fa-hotdog { - --fa: "\f80f"; } - -.fa-person-walking-with-cane { - --fa: "\f29d"; } - -.fa-blind { - --fa: "\f29d"; } - -.fa-drum { - --fa: "\f569"; } - -.fa-ice-cream { - --fa: "\f810"; } - -.fa-heart-circle-bolt { - --fa: "\e4fc"; } - -.fa-fax { - --fa: "\f1ac"; } - -.fa-paragraph { - --fa: "\f1dd"; } - -.fa-check-to-slot { - --fa: "\f772"; } - -.fa-vote-yea { - --fa: "\f772"; } - -.fa-star-half { - --fa: "\f089"; } - -.fa-boxes-stacked { - --fa: "\f468"; } - -.fa-boxes { - --fa: "\f468"; } - -.fa-boxes-alt { - --fa: "\f468"; } - -.fa-link { - --fa: "\f0c1"; } - -.fa-chain { - --fa: "\f0c1"; } - -.fa-ear-listen { - --fa: "\f2a2"; } - -.fa-assistive-listening-systems { - --fa: "\f2a2"; } - -.fa-tree-city { - --fa: "\e587"; } - -.fa-play { - --fa: "\f04b"; } - -.fa-font { - --fa: "\f031"; } - -.fa-table-cells-row-lock { - --fa: "\e67a"; } - -.fa-rupiah-sign { - --fa: "\e23d"; } - -.fa-magnifying-glass { - --fa: "\f002"; } - -.fa-search { - --fa: "\f002"; } - -.fa-table-tennis-paddle-ball { - --fa: "\f45d"; } - -.fa-ping-pong-paddle-ball { - --fa: "\f45d"; } - -.fa-table-tennis { - --fa: "\f45d"; } - -.fa-person-dots-from-line { - --fa: "\f470"; } - -.fa-diagnoses { - --fa: "\f470"; } - -.fa-trash-can-arrow-up { - --fa: "\f82a"; } - -.fa-trash-restore-alt { - --fa: "\f82a"; } - -.fa-naira-sign { - --fa: "\e1f6"; } - -.fa-cart-arrow-down { - --fa: "\f218"; } - -.fa-walkie-talkie { - --fa: "\f8ef"; } - -.fa-file-pen { - --fa: "\f31c"; } - -.fa-file-edit { - --fa: "\f31c"; } - -.fa-receipt { - --fa: "\f543"; } - -.fa-square-pen { - --fa: "\f14b"; } - -.fa-pen-square { - --fa: "\f14b"; } - -.fa-pencil-square { - --fa: "\f14b"; } - -.fa-suitcase-rolling { - --fa: "\f5c1"; } - -.fa-person-circle-exclamation { - --fa: "\e53f"; } - -.fa-chevron-down { - --fa: "\f078"; } - -.fa-battery-full { - --fa: "\f240"; } - -.fa-battery { - --fa: "\f240"; } - -.fa-battery-5 { - --fa: "\f240"; } - -.fa-skull-crossbones { - --fa: "\f714"; } - -.fa-code-compare { - --fa: "\e13a"; } - -.fa-list-ul { - --fa: "\f0ca"; } - -.fa-list-dots { - --fa: "\f0ca"; } - -.fa-school-lock { - --fa: "\e56f"; } - -.fa-tower-cell { - --fa: "\e585"; } - -.fa-down-long { - --fa: "\f309"; } - -.fa-long-arrow-alt-down { - --fa: "\f309"; } - -.fa-ranking-star { - --fa: "\e561"; } - -.fa-chess-king { - --fa: "\f43f"; } - -.fa-person-harassing { - --fa: "\e549"; } - -.fa-brazilian-real-sign { - --fa: "\e46c"; } - -.fa-landmark-dome { - --fa: "\f752"; } - -.fa-landmark-alt { - --fa: "\f752"; } - -.fa-arrow-up { - --fa: "\f062"; } - -.fa-tv { - --fa: "\f26c"; } - -.fa-television { - --fa: "\f26c"; } - -.fa-tv-alt { - --fa: "\f26c"; } - -.fa-shrimp { - --fa: "\e448"; } - -.fa-list-check { - --fa: "\f0ae"; } - -.fa-tasks { - --fa: "\f0ae"; } - -.fa-jug-detergent { - --fa: "\e519"; } - -.fa-circle-user { - --fa: "\f2bd"; } - -.fa-user-circle { - --fa: "\f2bd"; } - -.fa-user-shield { - --fa: "\f505"; } - -.fa-wind { - --fa: "\f72e"; } - -.fa-car-burst { - --fa: "\f5e1"; } - -.fa-car-crash { - --fa: "\f5e1"; } - -.fa-y { - --fa: "\59"; } - -.fa-person-snowboarding { - --fa: "\f7ce"; } - -.fa-snowboarding { - --fa: "\f7ce"; } - -.fa-truck-fast { - --fa: "\f48b"; } - -.fa-shipping-fast { - --fa: "\f48b"; } - -.fa-fish { - --fa: "\f578"; } - -.fa-user-graduate { - --fa: "\f501"; } - -.fa-circle-half-stroke { - --fa: "\f042"; } - -.fa-adjust { - --fa: "\f042"; } - -.fa-clapperboard { - --fa: "\e131"; } - -.fa-circle-radiation { - --fa: "\f7ba"; } - -.fa-radiation-alt { - --fa: "\f7ba"; } - -.fa-baseball { - --fa: "\f433"; } - -.fa-baseball-ball { - --fa: "\f433"; } - -.fa-jet-fighter-up { - --fa: "\e518"; } - -.fa-diagram-project { - --fa: "\f542"; } - -.fa-project-diagram { - --fa: "\f542"; } - -.fa-copy { - --fa: "\f0c5"; } - -.fa-volume-xmark { - --fa: "\f6a9"; } - -.fa-volume-mute { - --fa: "\f6a9"; } - -.fa-volume-times { - --fa: "\f6a9"; } - -.fa-hand-sparkles { - --fa: "\e05d"; } - -.fa-grip { - --fa: "\f58d"; } - -.fa-grip-horizontal { - --fa: "\f58d"; } - -.fa-share-from-square { - --fa: "\f14d"; } - -.fa-share-square { - --fa: "\f14d"; } - -.fa-child-combatant { - --fa: "\e4e0"; } - -.fa-child-rifle { - --fa: "\e4e0"; } - -.fa-gun { - --fa: "\e19b"; } - -.fa-square-phone { - --fa: "\f098"; } - -.fa-phone-square { - --fa: "\f098"; } - -.fa-plus { - --fa: "\2b"; } - -.fa-add { - --fa: "\2b"; } - -.fa-expand { - --fa: "\f065"; } - -.fa-computer { - --fa: "\e4e5"; } - -.fa-xmark { - --fa: "\f00d"; } - -.fa-close { - --fa: "\f00d"; } - -.fa-multiply { - --fa: "\f00d"; } - -.fa-remove { - --fa: "\f00d"; } - -.fa-times { - --fa: "\f00d"; } - -.fa-arrows-up-down-left-right { - --fa: "\f047"; } - -.fa-arrows { - --fa: "\f047"; } - -.fa-chalkboard-user { - --fa: "\f51c"; } - -.fa-chalkboard-teacher { - --fa: "\f51c"; } - -.fa-peso-sign { - --fa: "\e222"; } - -.fa-building-shield { - --fa: "\e4d8"; } - -.fa-baby { - --fa: "\f77c"; } - -.fa-users-line { - --fa: "\e592"; } - -.fa-quote-left { - --fa: "\f10d"; } - -.fa-quote-left-alt { - --fa: "\f10d"; } - -.fa-tractor { - --fa: "\f722"; } - -.fa-trash-arrow-up { - --fa: "\f829"; } - -.fa-trash-restore { - --fa: "\f829"; } - -.fa-arrow-down-up-lock { - --fa: "\e4b0"; } - -.fa-lines-leaning { - --fa: "\e51e"; } - -.fa-ruler-combined { - --fa: "\f546"; } - -.fa-copyright { - --fa: "\f1f9"; } - -.fa-equals { - --fa: "\3d"; } - -.fa-blender { - --fa: "\f517"; } - -.fa-teeth { - --fa: "\f62e"; } - -.fa-shekel-sign { - --fa: "\f20b"; } - -.fa-ils { - --fa: "\f20b"; } - -.fa-shekel { - --fa: "\f20b"; } - -.fa-sheqel { - --fa: "\f20b"; } - -.fa-sheqel-sign { - --fa: "\f20b"; } - -.fa-map { - --fa: "\f279"; } - -.fa-rocket { - --fa: "\f135"; } - -.fa-photo-film { - --fa: "\f87c"; } - -.fa-photo-video { - --fa: "\f87c"; } - -.fa-folder-minus { - --fa: "\f65d"; } - -.fa-hexagon-nodes-bolt { - --fa: "\e69a"; } - -.fa-store { - --fa: "\f54e"; } - -.fa-arrow-trend-up { - --fa: "\e098"; } - -.fa-plug-circle-minus { - --fa: "\e55e"; } - -.fa-sign-hanging { - --fa: "\f4d9"; } - -.fa-sign { - --fa: "\f4d9"; } - -.fa-bezier-curve { - --fa: "\f55b"; } - -.fa-bell-slash { - --fa: "\f1f6"; } - -.fa-tablet { - --fa: "\f3fb"; } - -.fa-tablet-android { - --fa: "\f3fb"; } - -.fa-school-flag { - --fa: "\e56e"; } - -.fa-fill { - --fa: "\f575"; } - -.fa-angle-up { - --fa: "\f106"; } - -.fa-drumstick-bite { - --fa: "\f6d7"; } - -.fa-holly-berry { - --fa: "\f7aa"; } - -.fa-chevron-left { - --fa: "\f053"; } - -.fa-bacteria { - --fa: "\e059"; } - -.fa-hand-lizard { - --fa: "\f258"; } - -.fa-notdef { - --fa: "\e1fe"; } - -.fa-disease { - --fa: "\f7fa"; } - -.fa-briefcase-medical { - --fa: "\f469"; } - -.fa-genderless { - --fa: "\f22d"; } - -.fa-chevron-right { - --fa: "\f054"; } - -.fa-retweet { - --fa: "\f079"; } - -.fa-car-rear { - --fa: "\f5de"; } - -.fa-car-alt { - --fa: "\f5de"; } - -.fa-pump-soap { - --fa: "\e06b"; } - -.fa-video-slash { - --fa: "\f4e2"; } - -.fa-battery-quarter { - --fa: "\f243"; } - -.fa-battery-2 { - --fa: "\f243"; } - -.fa-radio { - --fa: "\f8d7"; } - -.fa-baby-carriage { - --fa: "\f77d"; } - -.fa-carriage-baby { - --fa: "\f77d"; } - -.fa-traffic-light { - --fa: "\f637"; } - -.fa-thermometer { - --fa: "\f491"; } - -.fa-vr-cardboard { - --fa: "\f729"; } - -.fa-hand-middle-finger { - --fa: "\f806"; } - -.fa-percent { - --fa: "\25"; } - -.fa-percentage { - --fa: "\25"; } - -.fa-truck-moving { - --fa: "\f4df"; } - -.fa-glass-water-droplet { - --fa: "\e4f5"; } - -.fa-display { - --fa: "\e163"; } - -.fa-face-smile { - --fa: "\f118"; } - -.fa-smile { - --fa: "\f118"; } - -.fa-thumbtack { - --fa: "\f08d"; } - -.fa-thumb-tack { - --fa: "\f08d"; } - -.fa-trophy { - --fa: "\f091"; } - -.fa-person-praying { - --fa: "\f683"; } - -.fa-pray { - --fa: "\f683"; } - -.fa-hammer { - --fa: "\f6e3"; } - -.fa-hand-peace { - --fa: "\f25b"; } - -.fa-rotate { - --fa: "\f2f1"; } - -.fa-sync-alt { - --fa: "\f2f1"; } - -.fa-spinner { - --fa: "\f110"; } - -.fa-robot { - --fa: "\f544"; } - -.fa-peace { - --fa: "\f67c"; } - -.fa-gears { - --fa: "\f085"; } - -.fa-cogs { - --fa: "\f085"; } - -.fa-warehouse { - --fa: "\f494"; } - -.fa-arrow-up-right-dots { - --fa: "\e4b7"; } - -.fa-splotch { - --fa: "\f5bc"; } - -.fa-face-grin-hearts { - --fa: "\f584"; } - -.fa-grin-hearts { - --fa: "\f584"; } - -.fa-dice-four { - --fa: "\f524"; } - -.fa-sim-card { - --fa: "\f7c4"; } - -.fa-transgender { - --fa: "\f225"; } - -.fa-transgender-alt { - --fa: "\f225"; } - -.fa-mercury { - --fa: "\f223"; } - -.fa-arrow-turn-down { - --fa: "\f149"; } - -.fa-level-down { - --fa: "\f149"; } - -.fa-person-falling-burst { - --fa: "\e547"; } - -.fa-award { - --fa: "\f559"; } - -.fa-ticket-simple { - --fa: "\f3ff"; } - -.fa-ticket-alt { - --fa: "\f3ff"; } - -.fa-building { - --fa: "\f1ad"; } - -.fa-angles-left { - --fa: "\f100"; } - -.fa-angle-double-left { - --fa: "\f100"; } - -.fa-qrcode { - --fa: "\f029"; } - -.fa-clock-rotate-left { - --fa: "\f1da"; } - -.fa-history { - --fa: "\f1da"; } - -.fa-face-grin-beam-sweat { - --fa: "\f583"; } - -.fa-grin-beam-sweat { - --fa: "\f583"; } - -.fa-file-export { - --fa: "\f56e"; } - -.fa-arrow-right-from-file { - --fa: "\f56e"; } - -.fa-shield { - --fa: "\f132"; } - -.fa-shield-blank { - --fa: "\f132"; } - -.fa-arrow-up-short-wide { - --fa: "\f885"; } - -.fa-sort-amount-up-alt { - --fa: "\f885"; } - -.fa-comment-nodes { - --fa: "\e696"; } - -.fa-house-medical { - --fa: "\e3b2"; } - -.fa-golf-ball-tee { - --fa: "\f450"; } - -.fa-golf-ball { - --fa: "\f450"; } - -.fa-circle-chevron-left { - --fa: "\f137"; } - -.fa-chevron-circle-left { - --fa: "\f137"; } - -.fa-house-chimney-window { - --fa: "\e00d"; } - -.fa-pen-nib { - --fa: "\f5ad"; } - -.fa-tent-arrow-turn-left { - --fa: "\e580"; } - -.fa-tents { - --fa: "\e582"; } - -.fa-wand-magic { - --fa: "\f0d0"; } - -.fa-magic { - --fa: "\f0d0"; } - -.fa-dog { - --fa: "\f6d3"; } - -.fa-carrot { - --fa: "\f787"; } - -.fa-moon { - --fa: "\f186"; } - -.fa-wine-glass-empty { - --fa: "\f5ce"; } - -.fa-wine-glass-alt { - --fa: "\f5ce"; } - -.fa-cheese { - --fa: "\f7ef"; } - -.fa-yin-yang { - --fa: "\f6ad"; } - -.fa-music { - --fa: "\f001"; } - -.fa-code-commit { - --fa: "\f386"; } - -.fa-temperature-low { - --fa: "\f76b"; } - -.fa-person-biking { - --fa: "\f84a"; } - -.fa-biking { - --fa: "\f84a"; } - -.fa-broom { - --fa: "\f51a"; } - -.fa-shield-heart { - --fa: "\e574"; } - -.fa-gopuram { - --fa: "\f664"; } - -.fa-earth-oceania { - --fa: "\e47b"; } - -.fa-globe-oceania { - --fa: "\e47b"; } - -.fa-square-xmark { - --fa: "\f2d3"; } - -.fa-times-square { - --fa: "\f2d3"; } - -.fa-xmark-square { - --fa: "\f2d3"; } - -.fa-hashtag { - --fa: "\23"; } - -.fa-up-right-and-down-left-from-center { - --fa: "\f424"; } - -.fa-expand-alt { - --fa: "\f424"; } - -.fa-oil-can { - --fa: "\f613"; } - -.fa-t { - --fa: "\54"; } - -.fa-hippo { - --fa: "\f6ed"; } - -.fa-chart-column { - --fa: "\e0e3"; } - -.fa-infinity { - --fa: "\f534"; } - -.fa-vial-circle-check { - --fa: "\e596"; } - -.fa-person-arrow-down-to-line { - --fa: "\e538"; } - -.fa-voicemail { - --fa: "\f897"; } - -.fa-fan { - --fa: "\f863"; } - -.fa-person-walking-luggage { - --fa: "\e554"; } - -.fa-up-down { - --fa: "\f338"; } - -.fa-arrows-alt-v { - --fa: "\f338"; } - -.fa-cloud-moon-rain { - --fa: "\f73c"; } - -.fa-calendar { - --fa: "\f133"; } - -.fa-trailer { - --fa: "\e041"; } - -.fa-bahai { - --fa: "\f666"; } - -.fa-haykal { - --fa: "\f666"; } - -.fa-sd-card { - --fa: "\f7c2"; } - -.fa-dragon { - --fa: "\f6d5"; } - -.fa-shoe-prints { - --fa: "\f54b"; } - -.fa-circle-plus { - --fa: "\f055"; } - -.fa-plus-circle { - --fa: "\f055"; } - -.fa-face-grin-tongue-wink { - --fa: "\f58b"; } - -.fa-grin-tongue-wink { - --fa: "\f58b"; } - -.fa-hand-holding { - --fa: "\f4bd"; } - -.fa-plug-circle-exclamation { - --fa: "\e55d"; } - -.fa-link-slash { - --fa: "\f127"; } - -.fa-chain-broken { - --fa: "\f127"; } - -.fa-chain-slash { - --fa: "\f127"; } - -.fa-unlink { - --fa: "\f127"; } - -.fa-clone { - --fa: "\f24d"; } - -.fa-person-walking-arrow-loop-left { - --fa: "\e551"; } - -.fa-arrow-up-z-a { - --fa: "\f882"; } - -.fa-sort-alpha-up-alt { - --fa: "\f882"; } - -.fa-fire-flame-curved { - --fa: "\f7e4"; } - -.fa-fire-alt { - --fa: "\f7e4"; } - -.fa-tornado { - --fa: "\f76f"; } - -.fa-file-circle-plus { - --fa: "\e494"; } - -.fa-book-quran { - --fa: "\f687"; } - -.fa-quran { - --fa: "\f687"; } - -.fa-anchor { - --fa: "\f13d"; } - -.fa-border-all { - --fa: "\f84c"; } - -.fa-face-angry { - --fa: "\f556"; } - -.fa-angry { - --fa: "\f556"; } - -.fa-cookie-bite { - --fa: "\f564"; } - -.fa-arrow-trend-down { - --fa: "\e097"; } - -.fa-rss { - --fa: "\f09e"; } - -.fa-feed { - --fa: "\f09e"; } - -.fa-draw-polygon { - --fa: "\f5ee"; } - -.fa-scale-balanced { - --fa: "\f24e"; } - -.fa-balance-scale { - --fa: "\f24e"; } - -.fa-gauge-simple-high { - --fa: "\f62a"; } - -.fa-tachometer { - --fa: "\f62a"; } - -.fa-tachometer-fast { - --fa: "\f62a"; } - -.fa-shower { - --fa: "\f2cc"; } - -.fa-desktop { - --fa: "\f390"; } - -.fa-desktop-alt { - --fa: "\f390"; } - -.fa-m { - --fa: "\4d"; } - -.fa-table-list { - --fa: "\f00b"; } - -.fa-th-list { - --fa: "\f00b"; } - -.fa-comment-sms { - --fa: "\f7cd"; } - -.fa-sms { - --fa: "\f7cd"; } - -.fa-book { - --fa: "\f02d"; } - -.fa-user-plus { - --fa: "\f234"; } - -.fa-check { - --fa: "\f00c"; } - -.fa-battery-three-quarters { - --fa: "\f241"; } - -.fa-battery-4 { - --fa: "\f241"; } - -.fa-house-circle-check { - --fa: "\e509"; } - -.fa-angle-left { - --fa: "\f104"; } - -.fa-diagram-successor { - --fa: "\e47a"; } - -.fa-truck-arrow-right { - --fa: "\e58b"; } - -.fa-arrows-split-up-and-left { - --fa: "\e4bc"; } - -.fa-hand-fist { - --fa: "\f6de"; } - -.fa-fist-raised { - --fa: "\f6de"; } - -.fa-cloud-moon { - --fa: "\f6c3"; } - -.fa-briefcase { - --fa: "\f0b1"; } - -.fa-person-falling { - --fa: "\e546"; } - -.fa-image-portrait { - --fa: "\f3e0"; } - -.fa-portrait { - --fa: "\f3e0"; } - -.fa-user-tag { - --fa: "\f507"; } - -.fa-rug { - --fa: "\e569"; } - -.fa-earth-europe { - --fa: "\f7a2"; } - -.fa-globe-europe { - --fa: "\f7a2"; } - -.fa-cart-flatbed-suitcase { - --fa: "\f59d"; } - -.fa-luggage-cart { - --fa: "\f59d"; } - -.fa-rectangle-xmark { - --fa: "\f410"; } - -.fa-rectangle-times { - --fa: "\f410"; } - -.fa-times-rectangle { - --fa: "\f410"; } - -.fa-window-close { - --fa: "\f410"; } - -.fa-baht-sign { - --fa: "\e0ac"; } - -.fa-book-open { - --fa: "\f518"; } - -.fa-book-journal-whills { - --fa: "\f66a"; } - -.fa-journal-whills { - --fa: "\f66a"; } - -.fa-handcuffs { - --fa: "\e4f8"; } - -.fa-triangle-exclamation { - --fa: "\f071"; } - -.fa-exclamation-triangle { - --fa: "\f071"; } - -.fa-warning { - --fa: "\f071"; } - -.fa-database { - --fa: "\f1c0"; } - -.fa-share { - --fa: "\f064"; } - -.fa-mail-forward { - --fa: "\f064"; } - -.fa-bottle-droplet { - --fa: "\e4c4"; } - -.fa-mask-face { - --fa: "\e1d7"; } - -.fa-hill-rockslide { - --fa: "\e508"; } - -.fa-right-left { - --fa: "\f362"; } - -.fa-exchange-alt { - --fa: "\f362"; } - -.fa-paper-plane { - --fa: "\f1d8"; } - -.fa-road-circle-exclamation { - --fa: "\e565"; } - -.fa-dungeon { - --fa: "\f6d9"; } - -.fa-align-right { - --fa: "\f038"; } - -.fa-money-bill-1-wave { - --fa: "\f53b"; } - -.fa-money-bill-wave-alt { - --fa: "\f53b"; } - -.fa-life-ring { - --fa: "\f1cd"; } - -.fa-hands { - --fa: "\f2a7"; } - -.fa-sign-language { - --fa: "\f2a7"; } - -.fa-signing { - --fa: "\f2a7"; } - -.fa-calendar-day { - --fa: "\f783"; } - -.fa-water-ladder { - --fa: "\f5c5"; } - -.fa-ladder-water { - --fa: "\f5c5"; } - -.fa-swimming-pool { - --fa: "\f5c5"; } - -.fa-arrows-up-down { - --fa: "\f07d"; } - -.fa-arrows-v { - --fa: "\f07d"; } - -.fa-face-grimace { - --fa: "\f57f"; } - -.fa-grimace { - --fa: "\f57f"; } - -.fa-wheelchair-move { - --fa: "\e2ce"; } - -.fa-wheelchair-alt { - --fa: "\e2ce"; } - -.fa-turn-down { - --fa: "\f3be"; } - -.fa-level-down-alt { - --fa: "\f3be"; } - -.fa-person-walking-arrow-right { - --fa: "\e552"; } - -.fa-square-envelope { - --fa: "\f199"; } - -.fa-envelope-square { - --fa: "\f199"; } - -.fa-dice { - --fa: "\f522"; } - -.fa-bowling-ball { - --fa: "\f436"; } - -.fa-brain { - --fa: "\f5dc"; } - -.fa-bandage { - --fa: "\f462"; } - -.fa-band-aid { - --fa: "\f462"; } - -.fa-calendar-minus { - --fa: "\f272"; } - -.fa-circle-xmark { - --fa: "\f057"; } - -.fa-times-circle { - --fa: "\f057"; } - -.fa-xmark-circle { - --fa: "\f057"; } - -.fa-gifts { - --fa: "\f79c"; } - -.fa-hotel { - --fa: "\f594"; } - -.fa-earth-asia { - --fa: "\f57e"; } - -.fa-globe-asia { - --fa: "\f57e"; } - -.fa-id-card-clip { - --fa: "\f47f"; } - -.fa-id-card-alt { - --fa: "\f47f"; } - -.fa-magnifying-glass-plus { - --fa: "\f00e"; } - -.fa-search-plus { - --fa: "\f00e"; } - -.fa-thumbs-up { - --fa: "\f164"; } - -.fa-user-clock { - --fa: "\f4fd"; } - -.fa-hand-dots { - --fa: "\f461"; } - -.fa-allergies { - --fa: "\f461"; } - -.fa-file-invoice { - --fa: "\f570"; } - -.fa-window-minimize { - --fa: "\f2d1"; } - -.fa-mug-saucer { - --fa: "\f0f4"; } - -.fa-coffee { - --fa: "\f0f4"; } - -.fa-brush { - --fa: "\f55d"; } - -.fa-file-half-dashed { - --fa: "\e698"; } - -.fa-mask { - --fa: "\f6fa"; } - -.fa-magnifying-glass-minus { - --fa: "\f010"; } - -.fa-search-minus { - --fa: "\f010"; } - -.fa-ruler-vertical { - --fa: "\f548"; } - -.fa-user-large { - --fa: "\f406"; } - -.fa-user-alt { - --fa: "\f406"; } - -.fa-train-tram { - --fa: "\e5b4"; } - -.fa-user-nurse { - --fa: "\f82f"; } - -.fa-syringe { - --fa: "\f48e"; } - -.fa-cloud-sun { - --fa: "\f6c4"; } - -.fa-stopwatch-20 { - --fa: "\e06f"; } - -.fa-square-full { - --fa: "\f45c"; } - -.fa-magnet { - --fa: "\f076"; } - -.fa-jar { - --fa: "\e516"; } - -.fa-note-sticky { - --fa: "\f249"; } - -.fa-sticky-note { - --fa: "\f249"; } - -.fa-bug-slash { - --fa: "\e490"; } - -.fa-arrow-up-from-water-pump { - --fa: "\e4b6"; } - -.fa-bone { - --fa: "\f5d7"; } - -.fa-table-cells-row-unlock { - --fa: "\e691"; } - -.fa-user-injured { - --fa: "\f728"; } - -.fa-face-sad-tear { - --fa: "\f5b4"; } - -.fa-sad-tear { - --fa: "\f5b4"; } - -.fa-plane { - --fa: "\f072"; } - -.fa-tent-arrows-down { - --fa: "\e581"; } - -.fa-exclamation { - --fa: "\21"; } - -.fa-arrows-spin { - --fa: "\e4bb"; } - -.fa-print { - --fa: "\f02f"; } - -.fa-turkish-lira-sign { - --fa: "\e2bb"; } - -.fa-try { - --fa: "\e2bb"; } - -.fa-turkish-lira { - --fa: "\e2bb"; } - -.fa-dollar-sign { - --fa: "\24"; } - -.fa-dollar { - --fa: "\24"; } - -.fa-usd { - --fa: "\24"; } - -.fa-x { - --fa: "\58"; } - -.fa-magnifying-glass-dollar { - --fa: "\f688"; } - -.fa-search-dollar { - --fa: "\f688"; } - -.fa-users-gear { - --fa: "\f509"; } - -.fa-users-cog { - --fa: "\f509"; } - -.fa-person-military-pointing { - --fa: "\e54a"; } - -.fa-building-columns { - --fa: "\f19c"; } - -.fa-bank { - --fa: "\f19c"; } - -.fa-institution { - --fa: "\f19c"; } - -.fa-museum { - --fa: "\f19c"; } - -.fa-university { - --fa: "\f19c"; } - -.fa-umbrella { - --fa: "\f0e9"; } - -.fa-trowel { - --fa: "\e589"; } - -.fa-d { - --fa: "\44"; } - -.fa-stapler { - --fa: "\e5af"; } - -.fa-masks-theater { - --fa: "\f630"; } - -.fa-theater-masks { - --fa: "\f630"; } - -.fa-kip-sign { - --fa: "\e1c4"; } - -.fa-hand-point-left { - --fa: "\f0a5"; } - -.fa-handshake-simple { - --fa: "\f4c6"; } - -.fa-handshake-alt { - --fa: "\f4c6"; } - -.fa-jet-fighter { - --fa: "\f0fb"; } - -.fa-fighter-jet { - --fa: "\f0fb"; } - -.fa-square-share-nodes { - --fa: "\f1e1"; } - -.fa-share-alt-square { - --fa: "\f1e1"; } - -.fa-barcode { - --fa: "\f02a"; } - -.fa-plus-minus { - --fa: "\e43c"; } - -.fa-video { - --fa: "\f03d"; } - -.fa-video-camera { - --fa: "\f03d"; } - -.fa-graduation-cap { - --fa: "\f19d"; } - -.fa-mortar-board { - --fa: "\f19d"; } - -.fa-hand-holding-medical { - --fa: "\e05c"; } - -.fa-person-circle-check { - --fa: "\e53e"; } - -.fa-turn-up { - --fa: "\f3bf"; } - -.fa-level-up-alt { - --fa: "\f3bf"; } - -.sr-only, -.fa-sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - white-space: nowrap; - border-width: 0; } - -.sr-only-focusable:not(:focus), -.fa-sr-only-focusable:not(:focus) { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - white-space: nowrap; - border-width: 0; } -:root, :host { - --fa-style-family-brands: 'Font Awesome 6 Brands'; - --fa-font-brands: normal 400 1em/1 'Font Awesome 6 Brands'; } - -@font-face { - font-family: 'Font Awesome 6 Brands'; - font-style: normal; - font-weight: 400; - font-display: block; - src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); } - -.fab, -.fa-brands { - font-weight: 400; } - -.fa-monero { - --fa: "\f3d0"; } - -.fa-hooli { - --fa: "\f427"; } - -.fa-yelp { - --fa: "\f1e9"; } - -.fa-cc-visa { - --fa: "\f1f0"; } - -.fa-lastfm { - --fa: "\f202"; } - -.fa-shopware { - --fa: "\f5b5"; } - -.fa-creative-commons-nc { - --fa: "\f4e8"; } - -.fa-aws { - --fa: "\f375"; } - -.fa-redhat { - --fa: "\f7bc"; } - -.fa-yoast { - --fa: "\f2b1"; } - -.fa-cloudflare { - --fa: "\e07d"; } - -.fa-ups { - --fa: "\f7e0"; } - -.fa-pixiv { - --fa: "\e640"; } - -.fa-wpexplorer { - --fa: "\f2de"; } - -.fa-dyalog { - --fa: "\f399"; } - -.fa-bity { - --fa: "\f37a"; } - -.fa-stackpath { - --fa: "\f842"; } - -.fa-buysellads { - --fa: "\f20d"; } - -.fa-first-order { - --fa: "\f2b0"; } - -.fa-modx { - --fa: "\f285"; } - -.fa-guilded { - --fa: "\e07e"; } - -.fa-vnv { - --fa: "\f40b"; } - -.fa-square-js { - --fa: "\f3b9"; } - -.fa-js-square { - --fa: "\f3b9"; } - -.fa-microsoft { - --fa: "\f3ca"; } - -.fa-qq { - --fa: "\f1d6"; } - -.fa-orcid { - --fa: "\f8d2"; } - -.fa-java { - --fa: "\f4e4"; } - -.fa-invision { - --fa: "\f7b0"; } - -.fa-creative-commons-pd-alt { - --fa: "\f4ed"; } - -.fa-centercode { - --fa: "\f380"; } - -.fa-glide-g { - --fa: "\f2a6"; } - -.fa-drupal { - --fa: "\f1a9"; } - -.fa-jxl { - --fa: "\e67b"; } - -.fa-dart-lang { - --fa: "\e693"; } - -.fa-hire-a-helper { - --fa: "\f3b0"; } - -.fa-creative-commons-by { - --fa: "\f4e7"; } - -.fa-unity { - --fa: "\e049"; } - -.fa-whmcs { - --fa: "\f40d"; } - -.fa-rocketchat { - --fa: "\f3e8"; } - -.fa-vk { - --fa: "\f189"; } - -.fa-untappd { - --fa: "\f405"; } - -.fa-mailchimp { - --fa: "\f59e"; } - -.fa-css3-alt { - --fa: "\f38b"; } - -.fa-square-reddit { - --fa: "\f1a2"; } - -.fa-reddit-square { - --fa: "\f1a2"; } - -.fa-vimeo-v { - --fa: "\f27d"; } - -.fa-contao { - --fa: "\f26d"; } - -.fa-square-font-awesome { - --fa: "\e5ad"; } - -.fa-deskpro { - --fa: "\f38f"; } - -.fa-brave { - --fa: "\e63c"; } - -.fa-sistrix { - --fa: "\f3ee"; } - -.fa-square-instagram { - --fa: "\e055"; } - -.fa-instagram-square { - --fa: "\e055"; } - -.fa-battle-net { - --fa: "\f835"; } - -.fa-the-red-yeti { - --fa: "\f69d"; } - -.fa-square-hacker-news { - --fa: "\f3af"; } - -.fa-hacker-news-square { - --fa: "\f3af"; } - -.fa-edge { - --fa: "\f282"; } - -.fa-threads { - --fa: "\e618"; } - -.fa-napster { - --fa: "\f3d2"; } - -.fa-square-snapchat { - --fa: "\f2ad"; } - -.fa-snapchat-square { - --fa: "\f2ad"; } - -.fa-google-plus-g { - --fa: "\f0d5"; } - -.fa-artstation { - --fa: "\f77a"; } - -.fa-markdown { - --fa: "\f60f"; } - -.fa-sourcetree { - --fa: "\f7d3"; } - -.fa-google-plus { - --fa: "\f2b3"; } - -.fa-diaspora { - --fa: "\f791"; } - -.fa-foursquare { - --fa: "\f180"; } - -.fa-stack-overflow { - --fa: "\f16c"; } - -.fa-github-alt { - --fa: "\f113"; } - -.fa-phoenix-squadron { - --fa: "\f511"; } - -.fa-pagelines { - --fa: "\f18c"; } - -.fa-algolia { - --fa: "\f36c"; } - -.fa-red-river { - --fa: "\f3e3"; } - -.fa-creative-commons-sa { - --fa: "\f4ef"; } - -.fa-safari { - --fa: "\f267"; } - -.fa-google { - --fa: "\f1a0"; } - -.fa-square-font-awesome-stroke { - --fa: "\f35c"; } - -.fa-font-awesome-alt { - --fa: "\f35c"; } - -.fa-atlassian { - --fa: "\f77b"; } - -.fa-linkedin-in { - --fa: "\f0e1"; } - -.fa-digital-ocean { - --fa: "\f391"; } - -.fa-nimblr { - --fa: "\f5a8"; } - -.fa-chromecast { - --fa: "\f838"; } - -.fa-evernote { - --fa: "\f839"; } - -.fa-hacker-news { - --fa: "\f1d4"; } - -.fa-creative-commons-sampling { - --fa: "\f4f0"; } - -.fa-adversal { - --fa: "\f36a"; } - -.fa-creative-commons { - --fa: "\f25e"; } - -.fa-watchman-monitoring { - --fa: "\e087"; } - -.fa-fonticons { - --fa: "\f280"; } - -.fa-weixin { - --fa: "\f1d7"; } - -.fa-shirtsinbulk { - --fa: "\f214"; } - -.fa-codepen { - --fa: "\f1cb"; } - -.fa-git-alt { - --fa: "\f841"; } - -.fa-lyft { - --fa: "\f3c3"; } - -.fa-rev { - --fa: "\f5b2"; } - -.fa-windows { - --fa: "\f17a"; } - -.fa-wizards-of-the-coast { - --fa: "\f730"; } - -.fa-square-viadeo { - --fa: "\f2aa"; } - -.fa-viadeo-square { - --fa: "\f2aa"; } - -.fa-meetup { - --fa: "\f2e0"; } - -.fa-centos { - --fa: "\f789"; } - -.fa-adn { - --fa: "\f170"; } - -.fa-cloudsmith { - --fa: "\f384"; } - -.fa-opensuse { - --fa: "\e62b"; } - -.fa-pied-piper-alt { - --fa: "\f1a8"; } - -.fa-square-dribbble { - --fa: "\f397"; } - -.fa-dribbble-square { - --fa: "\f397"; } - -.fa-codiepie { - --fa: "\f284"; } - -.fa-node { - --fa: "\f419"; } - -.fa-mix { - --fa: "\f3cb"; } - -.fa-steam { - --fa: "\f1b6"; } - -.fa-cc-apple-pay { - --fa: "\f416"; } - -.fa-scribd { - --fa: "\f28a"; } - -.fa-debian { - --fa: "\e60b"; } - -.fa-openid { - --fa: "\f19b"; } - -.fa-instalod { - --fa: "\e081"; } - -.fa-files-pinwheel { - --fa: "\e69f"; } - -.fa-expeditedssl { - --fa: "\f23e"; } - -.fa-sellcast { - --fa: "\f2da"; } - -.fa-square-twitter { - --fa: "\f081"; } - -.fa-twitter-square { - --fa: "\f081"; } - -.fa-r-project { - --fa: "\f4f7"; } - -.fa-delicious { - --fa: "\f1a5"; } - -.fa-freebsd { - --fa: "\f3a4"; } - -.fa-vuejs { - --fa: "\f41f"; } - -.fa-accusoft { - --fa: "\f369"; } - -.fa-ioxhost { - --fa: "\f208"; } - -.fa-fonticons-fi { - --fa: "\f3a2"; } - -.fa-app-store { - --fa: "\f36f"; } - -.fa-cc-mastercard { - --fa: "\f1f1"; } - -.fa-itunes-note { - --fa: "\f3b5"; } - -.fa-golang { - --fa: "\e40f"; } - -.fa-kickstarter { - --fa: "\f3bb"; } - -.fa-square-kickstarter { - --fa: "\f3bb"; } - -.fa-grav { - --fa: "\f2d6"; } - -.fa-weibo { - --fa: "\f18a"; } - -.fa-uncharted { - --fa: "\e084"; } - -.fa-firstdraft { - --fa: "\f3a1"; } - -.fa-square-youtube { - --fa: "\f431"; } - -.fa-youtube-square { - --fa: "\f431"; } - -.fa-wikipedia-w { - --fa: "\f266"; } - -.fa-wpressr { - --fa: "\f3e4"; } - -.fa-rendact { - --fa: "\f3e4"; } - -.fa-angellist { - --fa: "\f209"; } - -.fa-galactic-republic { - --fa: "\f50c"; } - -.fa-nfc-directional { - --fa: "\e530"; } - -.fa-skype { - --fa: "\f17e"; } - -.fa-joget { - --fa: "\f3b7"; } - -.fa-fedora { - --fa: "\f798"; } - -.fa-stripe-s { - --fa: "\f42a"; } - -.fa-meta { - --fa: "\e49b"; } - -.fa-laravel { - --fa: "\f3bd"; } - -.fa-hotjar { - --fa: "\f3b1"; } - -.fa-bluetooth-b { - --fa: "\f294"; } - -.fa-square-letterboxd { - --fa: "\e62e"; } - -.fa-sticker-mule { - --fa: "\f3f7"; } - -.fa-creative-commons-zero { - --fa: "\f4f3"; } - -.fa-hips { - --fa: "\f452"; } - -.fa-css { - --fa: "\e6a2"; } - -.fa-behance { - --fa: "\f1b4"; } - -.fa-reddit { - --fa: "\f1a1"; } - -.fa-discord { - --fa: "\f392"; } - -.fa-chrome { - --fa: "\f268"; } - -.fa-app-store-ios { - --fa: "\f370"; } - -.fa-cc-discover { - --fa: "\f1f2"; } - -.fa-wpbeginner { - --fa: "\f297"; } - -.fa-confluence { - --fa: "\f78d"; } - -.fa-shoelace { - --fa: "\e60c"; } - -.fa-mdb { - --fa: "\f8ca"; } - -.fa-dochub { - --fa: "\f394"; } - -.fa-accessible-icon { - --fa: "\f368"; } - -.fa-ebay { - --fa: "\f4f4"; } - -.fa-amazon { - --fa: "\f270"; } - -.fa-unsplash { - --fa: "\e07c"; } - -.fa-yarn { - --fa: "\f7e3"; } - -.fa-square-steam { - --fa: "\f1b7"; } - -.fa-steam-square { - --fa: "\f1b7"; } - -.fa-500px { - --fa: "\f26e"; } - -.fa-square-vimeo { - --fa: "\f194"; } - -.fa-vimeo-square { - --fa: "\f194"; } - -.fa-asymmetrik { - --fa: "\f372"; } - -.fa-font-awesome { - --fa: "\f2b4"; } - -.fa-font-awesome-flag { - --fa: "\f2b4"; } - -.fa-font-awesome-logo-full { - --fa: "\f2b4"; } - -.fa-gratipay { - --fa: "\f184"; } - -.fa-apple { - --fa: "\f179"; } - -.fa-hive { - --fa: "\e07f"; } - -.fa-gitkraken { - --fa: "\f3a6"; } - -.fa-keybase { - --fa: "\f4f5"; } - -.fa-apple-pay { - --fa: "\f415"; } - -.fa-padlet { - --fa: "\e4a0"; } - -.fa-amazon-pay { - --fa: "\f42c"; } - -.fa-square-github { - --fa: "\f092"; } - -.fa-github-square { - --fa: "\f092"; } - -.fa-stumbleupon { - --fa: "\f1a4"; } - -.fa-fedex { - --fa: "\f797"; } - -.fa-phoenix-framework { - --fa: "\f3dc"; } - -.fa-shopify { - --fa: "\e057"; } - -.fa-neos { - --fa: "\f612"; } - -.fa-square-threads { - --fa: "\e619"; } - -.fa-hackerrank { - --fa: "\f5f7"; } - -.fa-researchgate { - --fa: "\f4f8"; } - -.fa-swift { - --fa: "\f8e1"; } - -.fa-angular { - --fa: "\f420"; } - -.fa-speakap { - --fa: "\f3f3"; } - -.fa-angrycreative { - --fa: "\f36e"; } - -.fa-y-combinator { - --fa: "\f23b"; } - -.fa-empire { - --fa: "\f1d1"; } - -.fa-envira { - --fa: "\f299"; } - -.fa-google-scholar { - --fa: "\e63b"; } - -.fa-square-gitlab { - --fa: "\e5ae"; } - -.fa-gitlab-square { - --fa: "\e5ae"; } - -.fa-studiovinari { - --fa: "\f3f8"; } - -.fa-pied-piper { - --fa: "\f2ae"; } - -.fa-wordpress { - --fa: "\f19a"; } - -.fa-product-hunt { - --fa: "\f288"; } - -.fa-firefox { - --fa: "\f269"; } - -.fa-linode { - --fa: "\f2b8"; } - -.fa-goodreads { - --fa: "\f3a8"; } - -.fa-square-odnoklassniki { - --fa: "\f264"; } - -.fa-odnoklassniki-square { - --fa: "\f264"; } - -.fa-jsfiddle { - --fa: "\f1cc"; } - -.fa-sith { - --fa: "\f512"; } - -.fa-themeisle { - --fa: "\f2b2"; } - -.fa-page4 { - --fa: "\f3d7"; } - -.fa-hashnode { - --fa: "\e499"; } - -.fa-react { - --fa: "\f41b"; } - -.fa-cc-paypal { - --fa: "\f1f4"; } - -.fa-squarespace { - --fa: "\f5be"; } - -.fa-cc-stripe { - --fa: "\f1f5"; } - -.fa-creative-commons-share { - --fa: "\f4f2"; } - -.fa-bitcoin { - --fa: "\f379"; } - -.fa-keycdn { - --fa: "\f3ba"; } - -.fa-opera { - --fa: "\f26a"; } - -.fa-itch-io { - --fa: "\f83a"; } - -.fa-umbraco { - --fa: "\f8e8"; } - -.fa-galactic-senate { - --fa: "\f50d"; } - -.fa-ubuntu { - --fa: "\f7df"; } - -.fa-draft2digital { - --fa: "\f396"; } - -.fa-stripe { - --fa: "\f429"; } - -.fa-houzz { - --fa: "\f27c"; } - -.fa-gg { - --fa: "\f260"; } - -.fa-dhl { - --fa: "\f790"; } - -.fa-square-pinterest { - --fa: "\f0d3"; } - -.fa-pinterest-square { - --fa: "\f0d3"; } - -.fa-xing { - --fa: "\f168"; } - -.fa-blackberry { - --fa: "\f37b"; } - -.fa-creative-commons-pd { - --fa: "\f4ec"; } - -.fa-playstation { - --fa: "\f3df"; } - -.fa-quinscape { - --fa: "\f459"; } - -.fa-less { - --fa: "\f41d"; } - -.fa-blogger-b { - --fa: "\f37d"; } - -.fa-opencart { - --fa: "\f23d"; } - -.fa-vine { - --fa: "\f1ca"; } - -.fa-signal-messenger { - --fa: "\e663"; } - -.fa-paypal { - --fa: "\f1ed"; } - -.fa-gitlab { - --fa: "\f296"; } - -.fa-typo3 { - --fa: "\f42b"; } - -.fa-reddit-alien { - --fa: "\f281"; } - -.fa-yahoo { - --fa: "\f19e"; } - -.fa-dailymotion { - --fa: "\e052"; } - -.fa-affiliatetheme { - --fa: "\f36b"; } - -.fa-pied-piper-pp { - --fa: "\f1a7"; } - -.fa-bootstrap { - --fa: "\f836"; } - -.fa-odnoklassniki { - --fa: "\f263"; } - -.fa-nfc-symbol { - --fa: "\e531"; } - -.fa-mintbit { - --fa: "\e62f"; } - -.fa-ethereum { - --fa: "\f42e"; } - -.fa-speaker-deck { - --fa: "\f83c"; } - -.fa-creative-commons-nc-eu { - --fa: "\f4e9"; } - -.fa-patreon { - --fa: "\f3d9"; } - -.fa-avianex { - --fa: "\f374"; } - -.fa-ello { - --fa: "\f5f1"; } - -.fa-gofore { - --fa: "\f3a7"; } - -.fa-bimobject { - --fa: "\f378"; } - -.fa-brave-reverse { - --fa: "\e63d"; } - -.fa-facebook-f { - --fa: "\f39e"; } - -.fa-square-google-plus { - --fa: "\f0d4"; } - -.fa-google-plus-square { - --fa: "\f0d4"; } - -.fa-web-awesome { - --fa: "\e682"; } - -.fa-mandalorian { - --fa: "\f50f"; } - -.fa-first-order-alt { - --fa: "\f50a"; } - -.fa-osi { - --fa: "\f41a"; } - -.fa-google-wallet { - --fa: "\f1ee"; } - -.fa-d-and-d-beyond { - --fa: "\f6ca"; } - -.fa-periscope { - --fa: "\f3da"; } - -.fa-fulcrum { - --fa: "\f50b"; } - -.fa-cloudscale { - --fa: "\f383"; } - -.fa-forumbee { - --fa: "\f211"; } - -.fa-mizuni { - --fa: "\f3cc"; } - -.fa-schlix { - --fa: "\f3ea"; } - -.fa-square-xing { - --fa: "\f169"; } - -.fa-xing-square { - --fa: "\f169"; } - -.fa-bandcamp { - --fa: "\f2d5"; } - -.fa-wpforms { - --fa: "\f298"; } - -.fa-cloudversify { - --fa: "\f385"; } - -.fa-usps { - --fa: "\f7e1"; } - -.fa-megaport { - --fa: "\f5a3"; } - -.fa-magento { - --fa: "\f3c4"; } - -.fa-spotify { - --fa: "\f1bc"; } - -.fa-optin-monster { - --fa: "\f23c"; } - -.fa-fly { - --fa: "\f417"; } - -.fa-square-bluesky { - --fa: "\e6a3"; } - -.fa-aviato { - --fa: "\f421"; } - -.fa-itunes { - --fa: "\f3b4"; } - -.fa-cuttlefish { - --fa: "\f38c"; } - -.fa-blogger { - --fa: "\f37c"; } - -.fa-flickr { - --fa: "\f16e"; } - -.fa-viber { - --fa: "\f409"; } - -.fa-soundcloud { - --fa: "\f1be"; } - -.fa-digg { - --fa: "\f1a6"; } - -.fa-tencent-weibo { - --fa: "\f1d5"; } - -.fa-letterboxd { - --fa: "\e62d"; } - -.fa-symfony { - --fa: "\f83d"; } - -.fa-maxcdn { - --fa: "\f136"; } - -.fa-etsy { - --fa: "\f2d7"; } - -.fa-facebook-messenger { - --fa: "\f39f"; } - -.fa-audible { - --fa: "\f373"; } - -.fa-think-peaks { - --fa: "\f731"; } - -.fa-bilibili { - --fa: "\e3d9"; } - -.fa-erlang { - --fa: "\f39d"; } - -.fa-x-twitter { - --fa: "\e61b"; } - -.fa-cotton-bureau { - --fa: "\f89e"; } - -.fa-dashcube { - --fa: "\f210"; } - -.fa-42-group { - --fa: "\e080"; } - -.fa-innosoft { - --fa: "\e080"; } - -.fa-stack-exchange { - --fa: "\f18d"; } - -.fa-elementor { - --fa: "\f430"; } - -.fa-square-pied-piper { - --fa: "\e01e"; } - -.fa-pied-piper-square { - --fa: "\e01e"; } - -.fa-creative-commons-nd { - --fa: "\f4eb"; } - -.fa-palfed { - --fa: "\f3d8"; } - -.fa-superpowers { - --fa: "\f2dd"; } - -.fa-resolving { - --fa: "\f3e7"; } - -.fa-xbox { - --fa: "\f412"; } - -.fa-square-web-awesome-stroke { - --fa: "\e684"; } - -.fa-searchengin { - --fa: "\f3eb"; } - -.fa-tiktok { - --fa: "\e07b"; } - -.fa-square-facebook { - --fa: "\f082"; } - -.fa-facebook-square { - --fa: "\f082"; } - -.fa-renren { - --fa: "\f18b"; } - -.fa-linux { - --fa: "\f17c"; } - -.fa-glide { - --fa: "\f2a5"; } - -.fa-linkedin { - --fa: "\f08c"; } - -.fa-hubspot { - --fa: "\f3b2"; } - -.fa-deploydog { - --fa: "\f38e"; } - -.fa-twitch { - --fa: "\f1e8"; } - -.fa-flutter { - --fa: "\e694"; } - -.fa-ravelry { - --fa: "\f2d9"; } - -.fa-mixer { - --fa: "\e056"; } - -.fa-square-lastfm { - --fa: "\f203"; } - -.fa-lastfm-square { - --fa: "\f203"; } - -.fa-vimeo { - --fa: "\f40a"; } - -.fa-mendeley { - --fa: "\f7b3"; } - -.fa-uniregistry { - --fa: "\f404"; } - -.fa-figma { - --fa: "\f799"; } - -.fa-creative-commons-remix { - --fa: "\f4ee"; } - -.fa-cc-amazon-pay { - --fa: "\f42d"; } - -.fa-dropbox { - --fa: "\f16b"; } - -.fa-instagram { - --fa: "\f16d"; } - -.fa-cmplid { - --fa: "\e360"; } - -.fa-upwork { - --fa: "\e641"; } - -.fa-facebook { - --fa: "\f09a"; } - -.fa-gripfire { - --fa: "\f3ac"; } - -.fa-jedi-order { - --fa: "\f50e"; } - -.fa-uikit { - --fa: "\f403"; } - -.fa-fort-awesome-alt { - --fa: "\f3a3"; } - -.fa-phabricator { - --fa: "\f3db"; } - -.fa-ussunnah { - --fa: "\f407"; } - -.fa-earlybirds { - --fa: "\f39a"; } - -.fa-trade-federation { - --fa: "\f513"; } - -.fa-autoprefixer { - --fa: "\f41c"; } - -.fa-whatsapp { - --fa: "\f232"; } - -.fa-square-upwork { - --fa: "\e67c"; } - -.fa-slideshare { - --fa: "\f1e7"; } - -.fa-google-play { - --fa: "\f3ab"; } - -.fa-viadeo { - --fa: "\f2a9"; } - -.fa-line { - --fa: "\f3c0"; } - -.fa-google-drive { - --fa: "\f3aa"; } - -.fa-servicestack { - --fa: "\f3ec"; } - -.fa-simplybuilt { - --fa: "\f215"; } - -.fa-bitbucket { - --fa: "\f171"; } - -.fa-imdb { - --fa: "\f2d8"; } - -.fa-deezer { - --fa: "\e077"; } - -.fa-raspberry-pi { - --fa: "\f7bb"; } - -.fa-jira { - --fa: "\f7b1"; } - -.fa-docker { - --fa: "\f395"; } - -.fa-screenpal { - --fa: "\e570"; } - -.fa-bluetooth { - --fa: "\f293"; } - -.fa-gitter { - --fa: "\f426"; } - -.fa-d-and-d { - --fa: "\f38d"; } - -.fa-microblog { - --fa: "\e01a"; } - -.fa-cc-diners-club { - --fa: "\f24c"; } - -.fa-gg-circle { - --fa: "\f261"; } - -.fa-pied-piper-hat { - --fa: "\f4e5"; } - -.fa-kickstarter-k { - --fa: "\f3bc"; } - -.fa-yandex { - --fa: "\f413"; } - -.fa-readme { - --fa: "\f4d5"; } - -.fa-html5 { - --fa: "\f13b"; } - -.fa-sellsy { - --fa: "\f213"; } - -.fa-square-web-awesome { - --fa: "\e683"; } - -.fa-sass { - --fa: "\f41e"; } - -.fa-wirsindhandwerk { - --fa: "\e2d0"; } - -.fa-wsh { - --fa: "\e2d0"; } - -.fa-buromobelexperte { - --fa: "\f37f"; } - -.fa-salesforce { - --fa: "\f83b"; } - -.fa-octopus-deploy { - --fa: "\e082"; } - -.fa-medapps { - --fa: "\f3c6"; } - -.fa-ns8 { - --fa: "\f3d5"; } - -.fa-pinterest-p { - --fa: "\f231"; } - -.fa-apper { - --fa: "\f371"; } - -.fa-fort-awesome { - --fa: "\f286"; } - -.fa-waze { - --fa: "\f83f"; } - -.fa-bluesky { - --fa: "\e671"; } - -.fa-cc-jcb { - --fa: "\f24b"; } - -.fa-snapchat { - --fa: "\f2ab"; } - -.fa-snapchat-ghost { - --fa: "\f2ab"; } - -.fa-fantasy-flight-games { - --fa: "\f6dc"; } - -.fa-rust { - --fa: "\e07a"; } - -.fa-wix { - --fa: "\f5cf"; } - -.fa-square-behance { - --fa: "\f1b5"; } - -.fa-behance-square { - --fa: "\f1b5"; } - -.fa-supple { - --fa: "\f3f9"; } - -.fa-webflow { - --fa: "\e65c"; } - -.fa-rebel { - --fa: "\f1d0"; } - -.fa-css3 { - --fa: "\f13c"; } - -.fa-staylinked { - --fa: "\f3f5"; } - -.fa-kaggle { - --fa: "\f5fa"; } - -.fa-space-awesome { - --fa: "\e5ac"; } - -.fa-deviantart { - --fa: "\f1bd"; } - -.fa-cpanel { - --fa: "\f388"; } - -.fa-goodreads-g { - --fa: "\f3a9"; } - -.fa-square-git { - --fa: "\f1d2"; } - -.fa-git-square { - --fa: "\f1d2"; } - -.fa-square-tumblr { - --fa: "\f174"; } - -.fa-tumblr-square { - --fa: "\f174"; } - -.fa-trello { - --fa: "\f181"; } - -.fa-creative-commons-nc-jp { - --fa: "\f4ea"; } - -.fa-get-pocket { - --fa: "\f265"; } - -.fa-perbyte { - --fa: "\e083"; } - -.fa-grunt { - --fa: "\f3ad"; } - -.fa-weebly { - --fa: "\f5cc"; } - -.fa-connectdevelop { - --fa: "\f20e"; } - -.fa-leanpub { - --fa: "\f212"; } - -.fa-black-tie { - --fa: "\f27e"; } - -.fa-themeco { - --fa: "\f5c6"; } - -.fa-python { - --fa: "\f3e2"; } - -.fa-android { - --fa: "\f17b"; } - -.fa-bots { - --fa: "\e340"; } - -.fa-free-code-camp { - --fa: "\f2c5"; } - -.fa-hornbill { - --fa: "\f592"; } - -.fa-js { - --fa: "\f3b8"; } - -.fa-ideal { - --fa: "\e013"; } - -.fa-git { - --fa: "\f1d3"; } - -.fa-dev { - --fa: "\f6cc"; } - -.fa-sketch { - --fa: "\f7c6"; } - -.fa-yandex-international { - --fa: "\f414"; } - -.fa-cc-amex { - --fa: "\f1f3"; } - -.fa-uber { - --fa: "\f402"; } - -.fa-github { - --fa: "\f09b"; } - -.fa-php { - --fa: "\f457"; } - -.fa-alipay { - --fa: "\f642"; } - -.fa-youtube { - --fa: "\f167"; } - -.fa-skyatlas { - --fa: "\f216"; } - -.fa-firefox-browser { - --fa: "\e007"; } - -.fa-replyd { - --fa: "\f3e6"; } - -.fa-suse { - --fa: "\f7d6"; } - -.fa-jenkins { - --fa: "\f3b6"; } - -.fa-twitter { - --fa: "\f099"; } - -.fa-rockrms { - --fa: "\f3e9"; } - -.fa-pinterest { - --fa: "\f0d2"; } - -.fa-buffer { - --fa: "\f837"; } - -.fa-npm { - --fa: "\f3d4"; } - -.fa-yammer { - --fa: "\f840"; } - -.fa-btc { - --fa: "\f15a"; } - -.fa-dribbble { - --fa: "\f17d"; } - -.fa-stumbleupon-circle { - --fa: "\f1a3"; } - -.fa-internet-explorer { - --fa: "\f26b"; } - -.fa-stubber { - --fa: "\e5c7"; } - -.fa-telegram { - --fa: "\f2c6"; } - -.fa-telegram-plane { - --fa: "\f2c6"; } - -.fa-old-republic { - --fa: "\f510"; } - -.fa-odysee { - --fa: "\e5c6"; } - -.fa-square-whatsapp { - --fa: "\f40c"; } - -.fa-whatsapp-square { - --fa: "\f40c"; } - -.fa-node-js { - --fa: "\f3d3"; } - -.fa-edge-legacy { - --fa: "\e078"; } - -.fa-slack { - --fa: "\f198"; } - -.fa-slack-hash { - --fa: "\f198"; } - -.fa-medrt { - --fa: "\f3c8"; } - -.fa-usb { - --fa: "\f287"; } - -.fa-tumblr { - --fa: "\f173"; } - -.fa-vaadin { - --fa: "\f408"; } - -.fa-quora { - --fa: "\f2c4"; } - -.fa-square-x-twitter { - --fa: "\e61a"; } - -.fa-reacteurope { - --fa: "\f75d"; } - -.fa-medium { - --fa: "\f23a"; } - -.fa-medium-m { - --fa: "\f23a"; } - -.fa-amilia { - --fa: "\f36d"; } - -.fa-mixcloud { - --fa: "\f289"; } - -.fa-flipboard { - --fa: "\f44d"; } - -.fa-viacoin { - --fa: "\f237"; } - -.fa-critical-role { - --fa: "\f6c9"; } - -.fa-sitrox { - --fa: "\e44a"; } - -.fa-discourse { - --fa: "\f393"; } - -.fa-joomla { - --fa: "\f1aa"; } - -.fa-mastodon { - --fa: "\f4f6"; } - -.fa-airbnb { - --fa: "\f834"; } - -.fa-wolf-pack-battalion { - --fa: "\f514"; } - -.fa-buy-n-large { - --fa: "\f8a6"; } - -.fa-gulp { - --fa: "\f3ae"; } - -.fa-creative-commons-sampling-plus { - --fa: "\f4f1"; } - -.fa-strava { - --fa: "\f428"; } - -.fa-ember { - --fa: "\f423"; } - -.fa-canadian-maple-leaf { - --fa: "\f785"; } - -.fa-teamspeak { - --fa: "\f4f9"; } - -.fa-pushed { - --fa: "\f3e1"; } - -.fa-wordpress-simple { - --fa: "\f411"; } - -.fa-nutritionix { - --fa: "\f3d6"; } - -.fa-wodu { - --fa: "\e088"; } - -.fa-google-pay { - --fa: "\e079"; } - -.fa-intercom { - --fa: "\f7af"; } - -.fa-zhihu { - --fa: "\f63f"; } - -.fa-korvue { - --fa: "\f42f"; } - -.fa-pix { - --fa: "\e43a"; } - -.fa-steam-symbol { - --fa: "\f3f6"; } -:root, :host { - --fa-style-family-classic: 'Font Awesome 6 Free'; - --fa-font-regular: normal 400 1em/1 'Font Awesome 6 Free'; } - -@font-face { - font-family: 'Font Awesome 6 Free'; - font-style: normal; - font-weight: 400; - font-display: block; - src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); } - -.far, -.fa-regular { - font-weight: 400; } -:root, :host { - --fa-style-family-classic: 'Font Awesome 6 Free'; - --fa-font-solid: normal 900 1em/1 'Font Awesome 6 Free'; } - -@font-face { - font-family: 'Font Awesome 6 Free'; - font-style: normal; - font-weight: 900; - font-display: block; - src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); } - -.fas, -.fa-solid { - font-weight: 900; } -@font-face { - font-family: 'Font Awesome 5 Brands'; - font-display: block; - font-weight: 400; - src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); } - -@font-face { - font-family: 'Font Awesome 5 Free'; - font-display: block; - font-weight: 900; - src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); } - -@font-face { - font-family: 'Font Awesome 5 Free'; - font-display: block; - font-weight: 400; - src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); } -@font-face { - font-family: 'FontAwesome'; - font-display: block; - src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); } - -@font-face { - font-family: 'FontAwesome'; - font-display: block; - src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); } - -@font-face { - font-family: 'FontAwesome'; - font-display: block; - src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); - unicode-range: U+F003,U+F006,U+F014,U+F016-F017,U+F01A-F01B,U+F01D,U+F022,U+F03E,U+F044,U+F046,U+F05C-F05D,U+F06E,U+F070,U+F087-F088,U+F08A,U+F094,U+F096-F097,U+F09D,U+F0A0,U+F0A2,U+F0A4-F0A7,U+F0C5,U+F0C7,U+F0E5-F0E6,U+F0EB,U+F0F6-F0F8,U+F10C,U+F114-F115,U+F118-F11A,U+F11C-F11D,U+F133,U+F147,U+F14E,U+F150-F152,U+F185-F186,U+F18E,U+F190-F192,U+F196,U+F1C1-F1C9,U+F1D9,U+F1DB,U+F1E3,U+F1EA,U+F1F7,U+F1F9,U+F20A,U+F247-F248,U+F24A,U+F24D,U+F255-F25B,U+F25D,U+F271-F274,U+F278,U+F27B,U+F28C,U+F28E,U+F29C,U+F2B5,U+F2B7,U+F2BA,U+F2BC,U+F2BE,U+F2C0-F2C1,U+F2C3,U+F2D0,U+F2D2,U+F2D4,U+F2DC; } - -@font-face { - font-family: 'FontAwesome'; - font-display: block; - src: url("../webfonts/fa-v4compatibility.woff2") format("woff2"), url("../webfonts/fa-v4compatibility.ttf") format("truetype"); - unicode-range: U+F041,U+F047,U+F065-F066,U+F07D-F07E,U+F080,U+F08B,U+F08E,U+F090,U+F09A,U+F0AC,U+F0AE,U+F0B2,U+F0D0,U+F0D6,U+F0E4,U+F0EC,U+F10A-F10B,U+F123,U+F13E,U+F148-F149,U+F14C,U+F156,U+F15E,U+F160-F161,U+F163,U+F175-F178,U+F195,U+F1F8,U+F219,U+F27A; } diff --git a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/all.min.css b/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/all.min.css deleted file mode 100644 index 29542ac..0000000 --- a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/all.min.css +++ /dev/null @@ -1,9 +0,0 @@ -/*! - * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - * Copyright 2024 Fonticons, Inc. - */ -.fa{font-family:var(--fa-style-family,"Font Awesome 6 Free");font-weight:var(--fa-style,900)}.fa,.fa-brands,.fa-regular,.fa-solid,.fab,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-brands:before,.fa-regular:before,.fa-solid:before,.fa:before,.fab:before,.far:before,.fas:before{content:var(--fa)}.fa-classic,.fa-regular,.fa-solid,.far,.fas{font-family:"Font Awesome 6 Free"}.fa-brands,.fab{font-family:"Font Awesome 6 Brands"}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em)*-1);position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-radius:var(--fa-border-radius,.1em);border:var(--fa-border-width,.08em) var(--fa-border-style,solid) var(--fa-border-color,#eee);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{animation-name:fa-beat;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{animation-name:fa-bounce;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{animation-name:fa-fade;animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{animation-name:fa-beat-fade;animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{animation-name:fa-flip;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{animation-name:fa-shake;animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{animation-name:fa-spin;animation-duration:var(--fa-animation-duration,2s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{animation-name:fa-spin;animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{animation-delay:-1ms;animation-duration:1ms;animation-iteration-count:1;transition-delay:0s;transition-duration:0s}}@keyframes fa-beat{0%,90%{transform:scale(1)}45%{transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-bounce{0%{transform:scale(1) translateY(0)}10%{transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{transform:scale(1) translateY(0)}to{transform:scale(1) translateY(0)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);transform:scale(1)}50%{opacity:1;transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-flip{50%{transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-shake{0%{transform:rotate(-15deg)}4%{transform:rotate(15deg)}8%,24%{transform:rotate(-18deg)}12%,28%{transform:rotate(18deg)}16%{transform:rotate(-22deg)}20%{transform:rotate(22deg)}32%{transform:rotate(-12deg)}36%{transform:rotate(12deg)}40%,to{transform:rotate(0deg)}}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{transform:rotate(90deg)}.fa-rotate-180{transform:rotate(180deg)}.fa-rotate-270{transform:rotate(270deg)}.fa-flip-horizontal{transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}.fa-rotate-by{transform:rotate(var(--fa-rotate-angle,0))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%;z-index:var(--fa-stack-z-index,auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse,#fff)} - -.fa-0{--fa:"\30"}.fa-1{--fa:"\31"}.fa-2{--fa:"\32"}.fa-3{--fa:"\33"}.fa-4{--fa:"\34"}.fa-5{--fa:"\35"}.fa-6{--fa:"\36"}.fa-7{--fa:"\37"}.fa-8{--fa:"\38"}.fa-9{--fa:"\39"}.fa-fill-drip{--fa:"\f576"}.fa-arrows-to-circle{--fa:"\e4bd"}.fa-chevron-circle-right,.fa-circle-chevron-right{--fa:"\f138"}.fa-at{--fa:"\40"}.fa-trash-alt,.fa-trash-can{--fa:"\f2ed"}.fa-text-height{--fa:"\f034"}.fa-user-times,.fa-user-xmark{--fa:"\f235"}.fa-stethoscope{--fa:"\f0f1"}.fa-comment-alt,.fa-message{--fa:"\f27a"}.fa-info{--fa:"\f129"}.fa-compress-alt,.fa-down-left-and-up-right-to-center{--fa:"\f422"}.fa-explosion{--fa:"\e4e9"}.fa-file-alt,.fa-file-lines,.fa-file-text{--fa:"\f15c"}.fa-wave-square{--fa:"\f83e"}.fa-ring{--fa:"\f70b"}.fa-building-un{--fa:"\e4d9"}.fa-dice-three{--fa:"\f527"}.fa-calendar-alt,.fa-calendar-days{--fa:"\f073"}.fa-anchor-circle-check{--fa:"\e4aa"}.fa-building-circle-arrow-right{--fa:"\e4d1"}.fa-volleyball,.fa-volleyball-ball{--fa:"\f45f"}.fa-arrows-up-to-line{--fa:"\e4c2"}.fa-sort-desc,.fa-sort-down{--fa:"\f0dd"}.fa-circle-minus,.fa-minus-circle{--fa:"\f056"}.fa-door-open{--fa:"\f52b"}.fa-right-from-bracket,.fa-sign-out-alt{--fa:"\f2f5"}.fa-atom{--fa:"\f5d2"}.fa-soap{--fa:"\e06e"}.fa-heart-music-camera-bolt,.fa-icons{--fa:"\f86d"}.fa-microphone-alt-slash,.fa-microphone-lines-slash{--fa:"\f539"}.fa-bridge-circle-check{--fa:"\e4c9"}.fa-pump-medical{--fa:"\e06a"}.fa-fingerprint{--fa:"\f577"}.fa-hand-point-right{--fa:"\f0a4"}.fa-magnifying-glass-location,.fa-search-location{--fa:"\f689"}.fa-forward-step,.fa-step-forward{--fa:"\f051"}.fa-face-smile-beam,.fa-smile-beam{--fa:"\f5b8"}.fa-flag-checkered{--fa:"\f11e"}.fa-football,.fa-football-ball{--fa:"\f44e"}.fa-school-circle-exclamation{--fa:"\e56c"}.fa-crop{--fa:"\f125"}.fa-angle-double-down,.fa-angles-down{--fa:"\f103"}.fa-users-rectangle{--fa:"\e594"}.fa-people-roof{--fa:"\e537"}.fa-people-line{--fa:"\e534"}.fa-beer,.fa-beer-mug-empty{--fa:"\f0fc"}.fa-diagram-predecessor{--fa:"\e477"}.fa-arrow-up-long,.fa-long-arrow-up{--fa:"\f176"}.fa-burn,.fa-fire-flame-simple{--fa:"\f46a"}.fa-male,.fa-person{--fa:"\f183"}.fa-laptop{--fa:"\f109"}.fa-file-csv{--fa:"\f6dd"}.fa-menorah{--fa:"\f676"}.fa-truck-plane{--fa:"\e58f"}.fa-record-vinyl{--fa:"\f8d9"}.fa-face-grin-stars,.fa-grin-stars{--fa:"\f587"}.fa-bong{--fa:"\f55c"}.fa-pastafarianism,.fa-spaghetti-monster-flying{--fa:"\f67b"}.fa-arrow-down-up-across-line{--fa:"\e4af"}.fa-spoon,.fa-utensil-spoon{--fa:"\f2e5"}.fa-jar-wheat{--fa:"\e517"}.fa-envelopes-bulk,.fa-mail-bulk{--fa:"\f674"}.fa-file-circle-exclamation{--fa:"\e4eb"}.fa-circle-h,.fa-hospital-symbol{--fa:"\f47e"}.fa-pager{--fa:"\f815"}.fa-address-book,.fa-contact-book{--fa:"\f2b9"}.fa-strikethrough{--fa:"\f0cc"}.fa-k{--fa:"\4b"}.fa-landmark-flag{--fa:"\e51c"}.fa-pencil,.fa-pencil-alt{--fa:"\f303"}.fa-backward{--fa:"\f04a"}.fa-caret-right{--fa:"\f0da"}.fa-comments{--fa:"\f086"}.fa-file-clipboard,.fa-paste{--fa:"\f0ea"}.fa-code-pull-request{--fa:"\e13c"}.fa-clipboard-list{--fa:"\f46d"}.fa-truck-loading,.fa-truck-ramp-box{--fa:"\f4de"}.fa-user-check{--fa:"\f4fc"}.fa-vial-virus{--fa:"\e597"}.fa-sheet-plastic{--fa:"\e571"}.fa-blog{--fa:"\f781"}.fa-user-ninja{--fa:"\f504"}.fa-person-arrow-up-from-line{--fa:"\e539"}.fa-scroll-torah,.fa-torah{--fa:"\f6a0"}.fa-broom-ball,.fa-quidditch,.fa-quidditch-broom-ball{--fa:"\f458"}.fa-toggle-off{--fa:"\f204"}.fa-archive,.fa-box-archive{--fa:"\f187"}.fa-person-drowning{--fa:"\e545"}.fa-arrow-down-9-1,.fa-sort-numeric-desc,.fa-sort-numeric-down-alt{--fa:"\f886"}.fa-face-grin-tongue-squint,.fa-grin-tongue-squint{--fa:"\f58a"}.fa-spray-can{--fa:"\f5bd"}.fa-truck-monster{--fa:"\f63b"}.fa-w{--fa:"\57"}.fa-earth-africa,.fa-globe-africa{--fa:"\f57c"}.fa-rainbow{--fa:"\f75b"}.fa-circle-notch{--fa:"\f1ce"}.fa-tablet-alt,.fa-tablet-screen-button{--fa:"\f3fa"}.fa-paw{--fa:"\f1b0"}.fa-cloud{--fa:"\f0c2"}.fa-trowel-bricks{--fa:"\e58a"}.fa-face-flushed,.fa-flushed{--fa:"\f579"}.fa-hospital-user{--fa:"\f80d"}.fa-tent-arrow-left-right{--fa:"\e57f"}.fa-gavel,.fa-legal{--fa:"\f0e3"}.fa-binoculars{--fa:"\f1e5"}.fa-microphone-slash{--fa:"\f131"}.fa-box-tissue{--fa:"\e05b"}.fa-motorcycle{--fa:"\f21c"}.fa-bell-concierge,.fa-concierge-bell{--fa:"\f562"}.fa-pen-ruler,.fa-pencil-ruler{--fa:"\f5ae"}.fa-people-arrows,.fa-people-arrows-left-right{--fa:"\e068"}.fa-mars-and-venus-burst{--fa:"\e523"}.fa-caret-square-right,.fa-square-caret-right{--fa:"\f152"}.fa-cut,.fa-scissors{--fa:"\f0c4"}.fa-sun-plant-wilt{--fa:"\e57a"}.fa-toilets-portable{--fa:"\e584"}.fa-hockey-puck{--fa:"\f453"}.fa-table{--fa:"\f0ce"}.fa-magnifying-glass-arrow-right{--fa:"\e521"}.fa-digital-tachograph,.fa-tachograph-digital{--fa:"\f566"}.fa-users-slash{--fa:"\e073"}.fa-clover{--fa:"\e139"}.fa-mail-reply,.fa-reply{--fa:"\f3e5"}.fa-star-and-crescent{--fa:"\f699"}.fa-house-fire{--fa:"\e50c"}.fa-minus-square,.fa-square-minus{--fa:"\f146"}.fa-helicopter{--fa:"\f533"}.fa-compass{--fa:"\f14e"}.fa-caret-square-down,.fa-square-caret-down{--fa:"\f150"}.fa-file-circle-question{--fa:"\e4ef"}.fa-laptop-code{--fa:"\f5fc"}.fa-swatchbook{--fa:"\f5c3"}.fa-prescription-bottle{--fa:"\f485"}.fa-bars,.fa-navicon{--fa:"\f0c9"}.fa-people-group{--fa:"\e533"}.fa-hourglass-3,.fa-hourglass-end{--fa:"\f253"}.fa-heart-broken,.fa-heart-crack{--fa:"\f7a9"}.fa-external-link-square-alt,.fa-square-up-right{--fa:"\f360"}.fa-face-kiss-beam,.fa-kiss-beam{--fa:"\f597"}.fa-film{--fa:"\f008"}.fa-ruler-horizontal{--fa:"\f547"}.fa-people-robbery{--fa:"\e536"}.fa-lightbulb{--fa:"\f0eb"}.fa-caret-left{--fa:"\f0d9"}.fa-circle-exclamation,.fa-exclamation-circle{--fa:"\f06a"}.fa-school-circle-xmark{--fa:"\e56d"}.fa-arrow-right-from-bracket,.fa-sign-out{--fa:"\f08b"}.fa-chevron-circle-down,.fa-circle-chevron-down{--fa:"\f13a"}.fa-unlock-alt,.fa-unlock-keyhole{--fa:"\f13e"}.fa-cloud-showers-heavy{--fa:"\f740"}.fa-headphones-alt,.fa-headphones-simple{--fa:"\f58f"}.fa-sitemap{--fa:"\f0e8"}.fa-circle-dollar-to-slot,.fa-donate{--fa:"\f4b9"}.fa-memory{--fa:"\f538"}.fa-road-spikes{--fa:"\e568"}.fa-fire-burner{--fa:"\e4f1"}.fa-flag{--fa:"\f024"}.fa-hanukiah{--fa:"\f6e6"}.fa-feather{--fa:"\f52d"}.fa-volume-down,.fa-volume-low{--fa:"\f027"}.fa-comment-slash{--fa:"\f4b3"}.fa-cloud-sun-rain{--fa:"\f743"}.fa-compress{--fa:"\f066"}.fa-wheat-alt,.fa-wheat-awn{--fa:"\e2cd"}.fa-ankh{--fa:"\f644"}.fa-hands-holding-child{--fa:"\e4fa"}.fa-asterisk{--fa:"\2a"}.fa-check-square,.fa-square-check{--fa:"\f14a"}.fa-peseta-sign{--fa:"\e221"}.fa-header,.fa-heading{--fa:"\f1dc"}.fa-ghost{--fa:"\f6e2"}.fa-list,.fa-list-squares{--fa:"\f03a"}.fa-phone-square-alt,.fa-square-phone-flip{--fa:"\f87b"}.fa-cart-plus{--fa:"\f217"}.fa-gamepad{--fa:"\f11b"}.fa-circle-dot,.fa-dot-circle{--fa:"\f192"}.fa-dizzy,.fa-face-dizzy{--fa:"\f567"}.fa-egg{--fa:"\f7fb"}.fa-house-medical-circle-xmark{--fa:"\e513"}.fa-campground{--fa:"\f6bb"}.fa-folder-plus{--fa:"\f65e"}.fa-futbol,.fa-futbol-ball,.fa-soccer-ball{--fa:"\f1e3"}.fa-paint-brush,.fa-paintbrush{--fa:"\f1fc"}.fa-lock{--fa:"\f023"}.fa-gas-pump{--fa:"\f52f"}.fa-hot-tub,.fa-hot-tub-person{--fa:"\f593"}.fa-map-location,.fa-map-marked{--fa:"\f59f"}.fa-house-flood-water{--fa:"\e50e"}.fa-tree{--fa:"\f1bb"}.fa-bridge-lock{--fa:"\e4cc"}.fa-sack-dollar{--fa:"\f81d"}.fa-edit,.fa-pen-to-square{--fa:"\f044"}.fa-car-side{--fa:"\f5e4"}.fa-share-alt,.fa-share-nodes{--fa:"\f1e0"}.fa-heart-circle-minus{--fa:"\e4ff"}.fa-hourglass-2,.fa-hourglass-half{--fa:"\f252"}.fa-microscope{--fa:"\f610"}.fa-sink{--fa:"\e06d"}.fa-bag-shopping,.fa-shopping-bag{--fa:"\f290"}.fa-arrow-down-z-a,.fa-sort-alpha-desc,.fa-sort-alpha-down-alt{--fa:"\f881"}.fa-mitten{--fa:"\f7b5"}.fa-person-rays{--fa:"\e54d"}.fa-users{--fa:"\f0c0"}.fa-eye-slash{--fa:"\f070"}.fa-flask-vial{--fa:"\e4f3"}.fa-hand,.fa-hand-paper{--fa:"\f256"}.fa-om{--fa:"\f679"}.fa-worm{--fa:"\e599"}.fa-house-circle-xmark{--fa:"\e50b"}.fa-plug{--fa:"\f1e6"}.fa-chevron-up{--fa:"\f077"}.fa-hand-spock{--fa:"\f259"}.fa-stopwatch{--fa:"\f2f2"}.fa-face-kiss,.fa-kiss{--fa:"\f596"}.fa-bridge-circle-xmark{--fa:"\e4cb"}.fa-face-grin-tongue,.fa-grin-tongue{--fa:"\f589"}.fa-chess-bishop{--fa:"\f43a"}.fa-face-grin-wink,.fa-grin-wink{--fa:"\f58c"}.fa-deaf,.fa-deafness,.fa-ear-deaf,.fa-hard-of-hearing{--fa:"\f2a4"}.fa-road-circle-check{--fa:"\e564"}.fa-dice-five{--fa:"\f523"}.fa-rss-square,.fa-square-rss{--fa:"\f143"}.fa-land-mine-on{--fa:"\e51b"}.fa-i-cursor{--fa:"\f246"}.fa-stamp{--fa:"\f5bf"}.fa-stairs{--fa:"\e289"}.fa-i{--fa:"\49"}.fa-hryvnia,.fa-hryvnia-sign{--fa:"\f6f2"}.fa-pills{--fa:"\f484"}.fa-face-grin-wide,.fa-grin-alt{--fa:"\f581"}.fa-tooth{--fa:"\f5c9"}.fa-v{--fa:"\56"}.fa-bangladeshi-taka-sign{--fa:"\e2e6"}.fa-bicycle{--fa:"\f206"}.fa-rod-asclepius,.fa-rod-snake,.fa-staff-aesculapius,.fa-staff-snake{--fa:"\e579"}.fa-head-side-cough-slash{--fa:"\e062"}.fa-ambulance,.fa-truck-medical{--fa:"\f0f9"}.fa-wheat-awn-circle-exclamation{--fa:"\e598"}.fa-snowman{--fa:"\f7d0"}.fa-mortar-pestle{--fa:"\f5a7"}.fa-road-barrier{--fa:"\e562"}.fa-school{--fa:"\f549"}.fa-igloo{--fa:"\f7ae"}.fa-joint{--fa:"\f595"}.fa-angle-right{--fa:"\f105"}.fa-horse{--fa:"\f6f0"}.fa-q{--fa:"\51"}.fa-g{--fa:"\47"}.fa-notes-medical{--fa:"\f481"}.fa-temperature-2,.fa-temperature-half,.fa-thermometer-2,.fa-thermometer-half{--fa:"\f2c9"}.fa-dong-sign{--fa:"\e169"}.fa-capsules{--fa:"\f46b"}.fa-poo-bolt,.fa-poo-storm{--fa:"\f75a"}.fa-face-frown-open,.fa-frown-open{--fa:"\f57a"}.fa-hand-point-up{--fa:"\f0a6"}.fa-money-bill{--fa:"\f0d6"}.fa-bookmark{--fa:"\f02e"}.fa-align-justify{--fa:"\f039"}.fa-umbrella-beach{--fa:"\f5ca"}.fa-helmet-un{--fa:"\e503"}.fa-bullseye{--fa:"\f140"}.fa-bacon{--fa:"\f7e5"}.fa-hand-point-down{--fa:"\f0a7"}.fa-arrow-up-from-bracket{--fa:"\e09a"}.fa-folder,.fa-folder-blank{--fa:"\f07b"}.fa-file-medical-alt,.fa-file-waveform{--fa:"\f478"}.fa-radiation{--fa:"\f7b9"}.fa-chart-simple{--fa:"\e473"}.fa-mars-stroke{--fa:"\f229"}.fa-vial{--fa:"\f492"}.fa-dashboard,.fa-gauge,.fa-gauge-med,.fa-tachometer-alt-average{--fa:"\f624"}.fa-magic-wand-sparkles,.fa-wand-magic-sparkles{--fa:"\e2ca"}.fa-e{--fa:"\45"}.fa-pen-alt,.fa-pen-clip{--fa:"\f305"}.fa-bridge-circle-exclamation{--fa:"\e4ca"}.fa-user{--fa:"\f007"}.fa-school-circle-check{--fa:"\e56b"}.fa-dumpster{--fa:"\f793"}.fa-shuttle-van,.fa-van-shuttle{--fa:"\f5b6"}.fa-building-user{--fa:"\e4da"}.fa-caret-square-left,.fa-square-caret-left{--fa:"\f191"}.fa-highlighter{--fa:"\f591"}.fa-key{--fa:"\f084"}.fa-bullhorn{--fa:"\f0a1"}.fa-globe{--fa:"\f0ac"}.fa-synagogue{--fa:"\f69b"}.fa-person-half-dress{--fa:"\e548"}.fa-road-bridge{--fa:"\e563"}.fa-location-arrow{--fa:"\f124"}.fa-c{--fa:"\43"}.fa-tablet-button{--fa:"\f10a"}.fa-building-lock{--fa:"\e4d6"}.fa-pizza-slice{--fa:"\f818"}.fa-money-bill-wave{--fa:"\f53a"}.fa-area-chart,.fa-chart-area{--fa:"\f1fe"}.fa-house-flag{--fa:"\e50d"}.fa-person-circle-minus{--fa:"\e540"}.fa-ban,.fa-cancel{--fa:"\f05e"}.fa-camera-rotate{--fa:"\e0d8"}.fa-air-freshener,.fa-spray-can-sparkles{--fa:"\f5d0"}.fa-star{--fa:"\f005"}.fa-repeat{--fa:"\f363"}.fa-cross{--fa:"\f654"}.fa-box{--fa:"\f466"}.fa-venus-mars{--fa:"\f228"}.fa-arrow-pointer,.fa-mouse-pointer{--fa:"\f245"}.fa-expand-arrows-alt,.fa-maximize{--fa:"\f31e"}.fa-charging-station{--fa:"\f5e7"}.fa-shapes,.fa-triangle-circle-square{--fa:"\f61f"}.fa-random,.fa-shuffle{--fa:"\f074"}.fa-person-running,.fa-running{--fa:"\f70c"}.fa-mobile-retro{--fa:"\e527"}.fa-grip-lines-vertical{--fa:"\f7a5"}.fa-spider{--fa:"\f717"}.fa-hands-bound{--fa:"\e4f9"}.fa-file-invoice-dollar{--fa:"\f571"}.fa-plane-circle-exclamation{--fa:"\e556"}.fa-x-ray{--fa:"\f497"}.fa-spell-check{--fa:"\f891"}.fa-slash{--fa:"\f715"}.fa-computer-mouse,.fa-mouse{--fa:"\f8cc"}.fa-arrow-right-to-bracket,.fa-sign-in{--fa:"\f090"}.fa-shop-slash,.fa-store-alt-slash{--fa:"\e070"}.fa-server{--fa:"\f233"}.fa-virus-covid-slash{--fa:"\e4a9"}.fa-shop-lock{--fa:"\e4a5"}.fa-hourglass-1,.fa-hourglass-start{--fa:"\f251"}.fa-blender-phone{--fa:"\f6b6"}.fa-building-wheat{--fa:"\e4db"}.fa-person-breastfeeding{--fa:"\e53a"}.fa-right-to-bracket,.fa-sign-in-alt{--fa:"\f2f6"}.fa-venus{--fa:"\f221"}.fa-passport{--fa:"\f5ab"}.fa-thumb-tack-slash,.fa-thumbtack-slash{--fa:"\e68f"}.fa-heart-pulse,.fa-heartbeat{--fa:"\f21e"}.fa-people-carry,.fa-people-carry-box{--fa:"\f4ce"}.fa-temperature-high{--fa:"\f769"}.fa-microchip{--fa:"\f2db"}.fa-crown{--fa:"\f521"}.fa-weight-hanging{--fa:"\f5cd"}.fa-xmarks-lines{--fa:"\e59a"}.fa-file-prescription{--fa:"\f572"}.fa-weight,.fa-weight-scale{--fa:"\f496"}.fa-user-friends,.fa-user-group{--fa:"\f500"}.fa-arrow-up-a-z,.fa-sort-alpha-up{--fa:"\f15e"}.fa-chess-knight{--fa:"\f441"}.fa-face-laugh-squint,.fa-laugh-squint{--fa:"\f59b"}.fa-wheelchair{--fa:"\f193"}.fa-arrow-circle-up,.fa-circle-arrow-up{--fa:"\f0aa"}.fa-toggle-on{--fa:"\f205"}.fa-person-walking,.fa-walking{--fa:"\f554"}.fa-l{--fa:"\4c"}.fa-fire{--fa:"\f06d"}.fa-bed-pulse,.fa-procedures{--fa:"\f487"}.fa-shuttle-space,.fa-space-shuttle{--fa:"\f197"}.fa-face-laugh,.fa-laugh{--fa:"\f599"}.fa-folder-open{--fa:"\f07c"}.fa-heart-circle-plus{--fa:"\e500"}.fa-code-fork{--fa:"\e13b"}.fa-city{--fa:"\f64f"}.fa-microphone-alt,.fa-microphone-lines{--fa:"\f3c9"}.fa-pepper-hot{--fa:"\f816"}.fa-unlock{--fa:"\f09c"}.fa-colon-sign{--fa:"\e140"}.fa-headset{--fa:"\f590"}.fa-store-slash{--fa:"\e071"}.fa-road-circle-xmark{--fa:"\e566"}.fa-user-minus{--fa:"\f503"}.fa-mars-stroke-up,.fa-mars-stroke-v{--fa:"\f22a"}.fa-champagne-glasses,.fa-glass-cheers{--fa:"\f79f"}.fa-clipboard{--fa:"\f328"}.fa-house-circle-exclamation{--fa:"\e50a"}.fa-file-arrow-up,.fa-file-upload{--fa:"\f574"}.fa-wifi,.fa-wifi-3,.fa-wifi-strong{--fa:"\f1eb"}.fa-bath,.fa-bathtub{--fa:"\f2cd"}.fa-underline{--fa:"\f0cd"}.fa-user-edit,.fa-user-pen{--fa:"\f4ff"}.fa-signature{--fa:"\f5b7"}.fa-stroopwafel{--fa:"\f551"}.fa-bold{--fa:"\f032"}.fa-anchor-lock{--fa:"\e4ad"}.fa-building-ngo{--fa:"\e4d7"}.fa-manat-sign{--fa:"\e1d5"}.fa-not-equal{--fa:"\f53e"}.fa-border-style,.fa-border-top-left{--fa:"\f853"}.fa-map-location-dot,.fa-map-marked-alt{--fa:"\f5a0"}.fa-jedi{--fa:"\f669"}.fa-poll,.fa-square-poll-vertical{--fa:"\f681"}.fa-mug-hot{--fa:"\f7b6"}.fa-battery-car,.fa-car-battery{--fa:"\f5df"}.fa-gift{--fa:"\f06b"}.fa-dice-two{--fa:"\f528"}.fa-chess-queen{--fa:"\f445"}.fa-glasses{--fa:"\f530"}.fa-chess-board{--fa:"\f43c"}.fa-building-circle-check{--fa:"\e4d2"}.fa-person-chalkboard{--fa:"\e53d"}.fa-mars-stroke-h,.fa-mars-stroke-right{--fa:"\f22b"}.fa-hand-back-fist,.fa-hand-rock{--fa:"\f255"}.fa-caret-square-up,.fa-square-caret-up{--fa:"\f151"}.fa-cloud-showers-water{--fa:"\e4e4"}.fa-bar-chart,.fa-chart-bar{--fa:"\f080"}.fa-hands-bubbles,.fa-hands-wash{--fa:"\e05e"}.fa-less-than-equal{--fa:"\f537"}.fa-train{--fa:"\f238"}.fa-eye-low-vision,.fa-low-vision{--fa:"\f2a8"}.fa-crow{--fa:"\f520"}.fa-sailboat{--fa:"\e445"}.fa-window-restore{--fa:"\f2d2"}.fa-plus-square,.fa-square-plus{--fa:"\f0fe"}.fa-torii-gate{--fa:"\f6a1"}.fa-frog{--fa:"\f52e"}.fa-bucket{--fa:"\e4cf"}.fa-image{--fa:"\f03e"}.fa-microphone{--fa:"\f130"}.fa-cow{--fa:"\f6c8"}.fa-caret-up{--fa:"\f0d8"}.fa-screwdriver{--fa:"\f54a"}.fa-folder-closed{--fa:"\e185"}.fa-house-tsunami{--fa:"\e515"}.fa-square-nfi{--fa:"\e576"}.fa-arrow-up-from-ground-water{--fa:"\e4b5"}.fa-glass-martini-alt,.fa-martini-glass{--fa:"\f57b"}.fa-square-binary{--fa:"\e69b"}.fa-rotate-back,.fa-rotate-backward,.fa-rotate-left,.fa-undo-alt{--fa:"\f2ea"}.fa-columns,.fa-table-columns{--fa:"\f0db"}.fa-lemon{--fa:"\f094"}.fa-head-side-mask{--fa:"\e063"}.fa-handshake{--fa:"\f2b5"}.fa-gem{--fa:"\f3a5"}.fa-dolly,.fa-dolly-box{--fa:"\f472"}.fa-smoking{--fa:"\f48d"}.fa-compress-arrows-alt,.fa-minimize{--fa:"\f78c"}.fa-monument{--fa:"\f5a6"}.fa-snowplow{--fa:"\f7d2"}.fa-angle-double-right,.fa-angles-right{--fa:"\f101"}.fa-cannabis{--fa:"\f55f"}.fa-circle-play,.fa-play-circle{--fa:"\f144"}.fa-tablets{--fa:"\f490"}.fa-ethernet{--fa:"\f796"}.fa-eur,.fa-euro,.fa-euro-sign{--fa:"\f153"}.fa-chair{--fa:"\f6c0"}.fa-check-circle,.fa-circle-check{--fa:"\f058"}.fa-circle-stop,.fa-stop-circle{--fa:"\f28d"}.fa-compass-drafting,.fa-drafting-compass{--fa:"\f568"}.fa-plate-wheat{--fa:"\e55a"}.fa-icicles{--fa:"\f7ad"}.fa-person-shelter{--fa:"\e54f"}.fa-neuter{--fa:"\f22c"}.fa-id-badge{--fa:"\f2c1"}.fa-marker{--fa:"\f5a1"}.fa-face-laugh-beam,.fa-laugh-beam{--fa:"\f59a"}.fa-helicopter-symbol{--fa:"\e502"}.fa-universal-access{--fa:"\f29a"}.fa-chevron-circle-up,.fa-circle-chevron-up{--fa:"\f139"}.fa-lari-sign{--fa:"\e1c8"}.fa-volcano{--fa:"\f770"}.fa-person-walking-dashed-line-arrow-right{--fa:"\e553"}.fa-gbp,.fa-pound-sign,.fa-sterling-sign{--fa:"\f154"}.fa-viruses{--fa:"\e076"}.fa-square-person-confined{--fa:"\e577"}.fa-user-tie{--fa:"\f508"}.fa-arrow-down-long,.fa-long-arrow-down{--fa:"\f175"}.fa-tent-arrow-down-to-line{--fa:"\e57e"}.fa-certificate{--fa:"\f0a3"}.fa-mail-reply-all,.fa-reply-all{--fa:"\f122"}.fa-suitcase{--fa:"\f0f2"}.fa-person-skating,.fa-skating{--fa:"\f7c5"}.fa-filter-circle-dollar,.fa-funnel-dollar{--fa:"\f662"}.fa-camera-retro{--fa:"\f083"}.fa-arrow-circle-down,.fa-circle-arrow-down{--fa:"\f0ab"}.fa-arrow-right-to-file,.fa-file-import{--fa:"\f56f"}.fa-external-link-square,.fa-square-arrow-up-right{--fa:"\f14c"}.fa-box-open{--fa:"\f49e"}.fa-scroll{--fa:"\f70e"}.fa-spa{--fa:"\f5bb"}.fa-location-pin-lock{--fa:"\e51f"}.fa-pause{--fa:"\f04c"}.fa-hill-avalanche{--fa:"\e507"}.fa-temperature-0,.fa-temperature-empty,.fa-thermometer-0,.fa-thermometer-empty{--fa:"\f2cb"}.fa-bomb{--fa:"\f1e2"}.fa-registered{--fa:"\f25d"}.fa-address-card,.fa-contact-card,.fa-vcard{--fa:"\f2bb"}.fa-balance-scale-right,.fa-scale-unbalanced-flip{--fa:"\f516"}.fa-subscript{--fa:"\f12c"}.fa-diamond-turn-right,.fa-directions{--fa:"\f5eb"}.fa-burst{--fa:"\e4dc"}.fa-house-laptop,.fa-laptop-house{--fa:"\e066"}.fa-face-tired,.fa-tired{--fa:"\f5c8"}.fa-money-bills{--fa:"\e1f3"}.fa-smog{--fa:"\f75f"}.fa-crutch{--fa:"\f7f7"}.fa-cloud-arrow-up,.fa-cloud-upload,.fa-cloud-upload-alt{--fa:"\f0ee"}.fa-palette{--fa:"\f53f"}.fa-arrows-turn-right{--fa:"\e4c0"}.fa-vest{--fa:"\e085"}.fa-ferry{--fa:"\e4ea"}.fa-arrows-down-to-people{--fa:"\e4b9"}.fa-seedling,.fa-sprout{--fa:"\f4d8"}.fa-arrows-alt-h,.fa-left-right{--fa:"\f337"}.fa-boxes-packing{--fa:"\e4c7"}.fa-arrow-circle-left,.fa-circle-arrow-left{--fa:"\f0a8"}.fa-group-arrows-rotate{--fa:"\e4f6"}.fa-bowl-food{--fa:"\e4c6"}.fa-candy-cane{--fa:"\f786"}.fa-arrow-down-wide-short,.fa-sort-amount-asc,.fa-sort-amount-down{--fa:"\f160"}.fa-cloud-bolt,.fa-thunderstorm{--fa:"\f76c"}.fa-remove-format,.fa-text-slash{--fa:"\f87d"}.fa-face-smile-wink,.fa-smile-wink{--fa:"\f4da"}.fa-file-word{--fa:"\f1c2"}.fa-file-powerpoint{--fa:"\f1c4"}.fa-arrows-h,.fa-arrows-left-right{--fa:"\f07e"}.fa-house-lock{--fa:"\e510"}.fa-cloud-arrow-down,.fa-cloud-download,.fa-cloud-download-alt{--fa:"\f0ed"}.fa-children{--fa:"\e4e1"}.fa-blackboard,.fa-chalkboard{--fa:"\f51b"}.fa-user-alt-slash,.fa-user-large-slash{--fa:"\f4fa"}.fa-envelope-open{--fa:"\f2b6"}.fa-handshake-alt-slash,.fa-handshake-simple-slash{--fa:"\e05f"}.fa-mattress-pillow{--fa:"\e525"}.fa-guarani-sign{--fa:"\e19a"}.fa-arrows-rotate,.fa-refresh,.fa-sync{--fa:"\f021"}.fa-fire-extinguisher{--fa:"\f134"}.fa-cruzeiro-sign{--fa:"\e152"}.fa-greater-than-equal{--fa:"\f532"}.fa-shield-alt,.fa-shield-halved{--fa:"\f3ed"}.fa-atlas,.fa-book-atlas{--fa:"\f558"}.fa-virus{--fa:"\e074"}.fa-envelope-circle-check{--fa:"\e4e8"}.fa-layer-group{--fa:"\f5fd"}.fa-arrows-to-dot{--fa:"\e4be"}.fa-archway{--fa:"\f557"}.fa-heart-circle-check{--fa:"\e4fd"}.fa-house-chimney-crack,.fa-house-damage{--fa:"\f6f1"}.fa-file-archive,.fa-file-zipper{--fa:"\f1c6"}.fa-square{--fa:"\f0c8"}.fa-glass-martini,.fa-martini-glass-empty{--fa:"\f000"}.fa-couch{--fa:"\f4b8"}.fa-cedi-sign{--fa:"\e0df"}.fa-italic{--fa:"\f033"}.fa-table-cells-column-lock{--fa:"\e678"}.fa-church{--fa:"\f51d"}.fa-comments-dollar{--fa:"\f653"}.fa-democrat{--fa:"\f747"}.fa-z{--fa:"\5a"}.fa-person-skiing,.fa-skiing{--fa:"\f7c9"}.fa-road-lock{--fa:"\e567"}.fa-a{--fa:"\41"}.fa-temperature-arrow-down,.fa-temperature-down{--fa:"\e03f"}.fa-feather-alt,.fa-feather-pointed{--fa:"\f56b"}.fa-p{--fa:"\50"}.fa-snowflake{--fa:"\f2dc"}.fa-newspaper{--fa:"\f1ea"}.fa-ad,.fa-rectangle-ad{--fa:"\f641"}.fa-arrow-circle-right,.fa-circle-arrow-right{--fa:"\f0a9"}.fa-filter-circle-xmark{--fa:"\e17b"}.fa-locust{--fa:"\e520"}.fa-sort,.fa-unsorted{--fa:"\f0dc"}.fa-list-1-2,.fa-list-numeric,.fa-list-ol{--fa:"\f0cb"}.fa-person-dress-burst{--fa:"\e544"}.fa-money-check-alt,.fa-money-check-dollar{--fa:"\f53d"}.fa-vector-square{--fa:"\f5cb"}.fa-bread-slice{--fa:"\f7ec"}.fa-language{--fa:"\f1ab"}.fa-face-kiss-wink-heart,.fa-kiss-wink-heart{--fa:"\f598"}.fa-filter{--fa:"\f0b0"}.fa-question{--fa:"\3f"}.fa-file-signature{--fa:"\f573"}.fa-arrows-alt,.fa-up-down-left-right{--fa:"\f0b2"}.fa-house-chimney-user{--fa:"\e065"}.fa-hand-holding-heart{--fa:"\f4be"}.fa-puzzle-piece{--fa:"\f12e"}.fa-money-check{--fa:"\f53c"}.fa-star-half-alt,.fa-star-half-stroke{--fa:"\f5c0"}.fa-code{--fa:"\f121"}.fa-glass-whiskey,.fa-whiskey-glass{--fa:"\f7a0"}.fa-building-circle-exclamation{--fa:"\e4d3"}.fa-magnifying-glass-chart{--fa:"\e522"}.fa-arrow-up-right-from-square,.fa-external-link{--fa:"\f08e"}.fa-cubes-stacked{--fa:"\e4e6"}.fa-krw,.fa-won,.fa-won-sign{--fa:"\f159"}.fa-virus-covid{--fa:"\e4a8"}.fa-austral-sign{--fa:"\e0a9"}.fa-f{--fa:"\46"}.fa-leaf{--fa:"\f06c"}.fa-road{--fa:"\f018"}.fa-cab,.fa-taxi{--fa:"\f1ba"}.fa-person-circle-plus{--fa:"\e541"}.fa-chart-pie,.fa-pie-chart{--fa:"\f200"}.fa-bolt-lightning{--fa:"\e0b7"}.fa-sack-xmark{--fa:"\e56a"}.fa-file-excel{--fa:"\f1c3"}.fa-file-contract{--fa:"\f56c"}.fa-fish-fins{--fa:"\e4f2"}.fa-building-flag{--fa:"\e4d5"}.fa-face-grin-beam,.fa-grin-beam{--fa:"\f582"}.fa-object-ungroup{--fa:"\f248"}.fa-poop{--fa:"\f619"}.fa-location-pin,.fa-map-marker{--fa:"\f041"}.fa-kaaba{--fa:"\f66b"}.fa-toilet-paper{--fa:"\f71e"}.fa-hard-hat,.fa-hat-hard,.fa-helmet-safety{--fa:"\f807"}.fa-eject{--fa:"\f052"}.fa-arrow-alt-circle-right,.fa-circle-right{--fa:"\f35a"}.fa-plane-circle-check{--fa:"\e555"}.fa-face-rolling-eyes,.fa-meh-rolling-eyes{--fa:"\f5a5"}.fa-object-group{--fa:"\f247"}.fa-chart-line,.fa-line-chart{--fa:"\f201"}.fa-mask-ventilator{--fa:"\e524"}.fa-arrow-right{--fa:"\f061"}.fa-map-signs,.fa-signs-post{--fa:"\f277"}.fa-cash-register{--fa:"\f788"}.fa-person-circle-question{--fa:"\e542"}.fa-h{--fa:"\48"}.fa-tarp{--fa:"\e57b"}.fa-screwdriver-wrench,.fa-tools{--fa:"\f7d9"}.fa-arrows-to-eye{--fa:"\e4bf"}.fa-plug-circle-bolt{--fa:"\e55b"}.fa-heart{--fa:"\f004"}.fa-mars-and-venus{--fa:"\f224"}.fa-home-user,.fa-house-user{--fa:"\e1b0"}.fa-dumpster-fire{--fa:"\f794"}.fa-house-crack{--fa:"\e3b1"}.fa-cocktail,.fa-martini-glass-citrus{--fa:"\f561"}.fa-face-surprise,.fa-surprise{--fa:"\f5c2"}.fa-bottle-water{--fa:"\e4c5"}.fa-circle-pause,.fa-pause-circle{--fa:"\f28b"}.fa-toilet-paper-slash{--fa:"\e072"}.fa-apple-alt,.fa-apple-whole{--fa:"\f5d1"}.fa-kitchen-set{--fa:"\e51a"}.fa-r{--fa:"\52"}.fa-temperature-1,.fa-temperature-quarter,.fa-thermometer-1,.fa-thermometer-quarter{--fa:"\f2ca"}.fa-cube{--fa:"\f1b2"}.fa-bitcoin-sign{--fa:"\e0b4"}.fa-shield-dog{--fa:"\e573"}.fa-solar-panel{--fa:"\f5ba"}.fa-lock-open{--fa:"\f3c1"}.fa-elevator{--fa:"\e16d"}.fa-money-bill-transfer{--fa:"\e528"}.fa-money-bill-trend-up{--fa:"\e529"}.fa-house-flood-water-circle-arrow-right{--fa:"\e50f"}.fa-poll-h,.fa-square-poll-horizontal{--fa:"\f682"}.fa-circle{--fa:"\f111"}.fa-backward-fast,.fa-fast-backward{--fa:"\f049"}.fa-recycle{--fa:"\f1b8"}.fa-user-astronaut{--fa:"\f4fb"}.fa-plane-slash{--fa:"\e069"}.fa-trademark{--fa:"\f25c"}.fa-basketball,.fa-basketball-ball{--fa:"\f434"}.fa-satellite-dish{--fa:"\f7c0"}.fa-arrow-alt-circle-up,.fa-circle-up{--fa:"\f35b"}.fa-mobile-alt,.fa-mobile-screen-button{--fa:"\f3cd"}.fa-volume-high,.fa-volume-up{--fa:"\f028"}.fa-users-rays{--fa:"\e593"}.fa-wallet{--fa:"\f555"}.fa-clipboard-check{--fa:"\f46c"}.fa-file-audio{--fa:"\f1c7"}.fa-burger,.fa-hamburger{--fa:"\f805"}.fa-wrench{--fa:"\f0ad"}.fa-bugs{--fa:"\e4d0"}.fa-rupee,.fa-rupee-sign{--fa:"\f156"}.fa-file-image{--fa:"\f1c5"}.fa-circle-question,.fa-question-circle{--fa:"\f059"}.fa-plane-departure{--fa:"\f5b0"}.fa-handshake-slash{--fa:"\e060"}.fa-book-bookmark{--fa:"\e0bb"}.fa-code-branch{--fa:"\f126"}.fa-hat-cowboy{--fa:"\f8c0"}.fa-bridge{--fa:"\e4c8"}.fa-phone-alt,.fa-phone-flip{--fa:"\f879"}.fa-truck-front{--fa:"\e2b7"}.fa-cat{--fa:"\f6be"}.fa-anchor-circle-exclamation{--fa:"\e4ab"}.fa-truck-field{--fa:"\e58d"}.fa-route{--fa:"\f4d7"}.fa-clipboard-question{--fa:"\e4e3"}.fa-panorama{--fa:"\e209"}.fa-comment-medical{--fa:"\f7f5"}.fa-teeth-open{--fa:"\f62f"}.fa-file-circle-minus{--fa:"\e4ed"}.fa-tags{--fa:"\f02c"}.fa-wine-glass{--fa:"\f4e3"}.fa-fast-forward,.fa-forward-fast{--fa:"\f050"}.fa-face-meh-blank,.fa-meh-blank{--fa:"\f5a4"}.fa-parking,.fa-square-parking{--fa:"\f540"}.fa-house-signal{--fa:"\e012"}.fa-bars-progress,.fa-tasks-alt{--fa:"\f828"}.fa-faucet-drip{--fa:"\e006"}.fa-cart-flatbed,.fa-dolly-flatbed{--fa:"\f474"}.fa-ban-smoking,.fa-smoking-ban{--fa:"\f54d"}.fa-terminal{--fa:"\f120"}.fa-mobile-button{--fa:"\f10b"}.fa-house-medical-flag{--fa:"\e514"}.fa-basket-shopping,.fa-shopping-basket{--fa:"\f291"}.fa-tape{--fa:"\f4db"}.fa-bus-alt,.fa-bus-simple{--fa:"\f55e"}.fa-eye{--fa:"\f06e"}.fa-face-sad-cry,.fa-sad-cry{--fa:"\f5b3"}.fa-audio-description{--fa:"\f29e"}.fa-person-military-to-person{--fa:"\e54c"}.fa-file-shield{--fa:"\e4f0"}.fa-user-slash{--fa:"\f506"}.fa-pen{--fa:"\f304"}.fa-tower-observation{--fa:"\e586"}.fa-file-code{--fa:"\f1c9"}.fa-signal,.fa-signal-5,.fa-signal-perfect{--fa:"\f012"}.fa-bus{--fa:"\f207"}.fa-heart-circle-xmark{--fa:"\e501"}.fa-home-lg,.fa-house-chimney{--fa:"\e3af"}.fa-window-maximize{--fa:"\f2d0"}.fa-face-frown,.fa-frown{--fa:"\f119"}.fa-prescription{--fa:"\f5b1"}.fa-shop,.fa-store-alt{--fa:"\f54f"}.fa-floppy-disk,.fa-save{--fa:"\f0c7"}.fa-vihara{--fa:"\f6a7"}.fa-balance-scale-left,.fa-scale-unbalanced{--fa:"\f515"}.fa-sort-asc,.fa-sort-up{--fa:"\f0de"}.fa-comment-dots,.fa-commenting{--fa:"\f4ad"}.fa-plant-wilt{--fa:"\e5aa"}.fa-diamond{--fa:"\f219"}.fa-face-grin-squint,.fa-grin-squint{--fa:"\f585"}.fa-hand-holding-dollar,.fa-hand-holding-usd{--fa:"\f4c0"}.fa-chart-diagram{--fa:"\e695"}.fa-bacterium{--fa:"\e05a"}.fa-hand-pointer{--fa:"\f25a"}.fa-drum-steelpan{--fa:"\f56a"}.fa-hand-scissors{--fa:"\f257"}.fa-hands-praying,.fa-praying-hands{--fa:"\f684"}.fa-arrow-right-rotate,.fa-arrow-rotate-forward,.fa-arrow-rotate-right,.fa-redo{--fa:"\f01e"}.fa-biohazard{--fa:"\f780"}.fa-location,.fa-location-crosshairs{--fa:"\f601"}.fa-mars-double{--fa:"\f227"}.fa-child-dress{--fa:"\e59c"}.fa-users-between-lines{--fa:"\e591"}.fa-lungs-virus{--fa:"\e067"}.fa-face-grin-tears,.fa-grin-tears{--fa:"\f588"}.fa-phone{--fa:"\f095"}.fa-calendar-times,.fa-calendar-xmark{--fa:"\f273"}.fa-child-reaching{--fa:"\e59d"}.fa-head-side-virus{--fa:"\e064"}.fa-user-cog,.fa-user-gear{--fa:"\f4fe"}.fa-arrow-up-1-9,.fa-sort-numeric-up{--fa:"\f163"}.fa-door-closed{--fa:"\f52a"}.fa-shield-virus{--fa:"\e06c"}.fa-dice-six{--fa:"\f526"}.fa-mosquito-net{--fa:"\e52c"}.fa-file-fragment{--fa:"\e697"}.fa-bridge-water{--fa:"\e4ce"}.fa-person-booth{--fa:"\f756"}.fa-text-width{--fa:"\f035"}.fa-hat-wizard{--fa:"\f6e8"}.fa-pen-fancy{--fa:"\f5ac"}.fa-digging,.fa-person-digging{--fa:"\f85e"}.fa-trash{--fa:"\f1f8"}.fa-gauge-simple,.fa-gauge-simple-med,.fa-tachometer-average{--fa:"\f629"}.fa-book-medical{--fa:"\f7e6"}.fa-poo{--fa:"\f2fe"}.fa-quote-right,.fa-quote-right-alt{--fa:"\f10e"}.fa-shirt,.fa-t-shirt,.fa-tshirt{--fa:"\f553"}.fa-cubes{--fa:"\f1b3"}.fa-divide{--fa:"\f529"}.fa-tenge,.fa-tenge-sign{--fa:"\f7d7"}.fa-headphones{--fa:"\f025"}.fa-hands-holding{--fa:"\f4c2"}.fa-hands-clapping{--fa:"\e1a8"}.fa-republican{--fa:"\f75e"}.fa-arrow-left{--fa:"\f060"}.fa-person-circle-xmark{--fa:"\e543"}.fa-ruler{--fa:"\f545"}.fa-align-left{--fa:"\f036"}.fa-dice-d6{--fa:"\f6d1"}.fa-restroom{--fa:"\f7bd"}.fa-j{--fa:"\4a"}.fa-users-viewfinder{--fa:"\e595"}.fa-file-video{--fa:"\f1c8"}.fa-external-link-alt,.fa-up-right-from-square{--fa:"\f35d"}.fa-table-cells,.fa-th{--fa:"\f00a"}.fa-file-pdf{--fa:"\f1c1"}.fa-bible,.fa-book-bible{--fa:"\f647"}.fa-o{--fa:"\4f"}.fa-medkit,.fa-suitcase-medical{--fa:"\f0fa"}.fa-user-secret{--fa:"\f21b"}.fa-otter{--fa:"\f700"}.fa-female,.fa-person-dress{--fa:"\f182"}.fa-comment-dollar{--fa:"\f651"}.fa-briefcase-clock,.fa-business-time{--fa:"\f64a"}.fa-table-cells-large,.fa-th-large{--fa:"\f009"}.fa-book-tanakh,.fa-tanakh{--fa:"\f827"}.fa-phone-volume,.fa-volume-control-phone{--fa:"\f2a0"}.fa-hat-cowboy-side{--fa:"\f8c1"}.fa-clipboard-user{--fa:"\f7f3"}.fa-child{--fa:"\f1ae"}.fa-lira-sign{--fa:"\f195"}.fa-satellite{--fa:"\f7bf"}.fa-plane-lock{--fa:"\e558"}.fa-tag{--fa:"\f02b"}.fa-comment{--fa:"\f075"}.fa-birthday-cake,.fa-cake,.fa-cake-candles{--fa:"\f1fd"}.fa-envelope{--fa:"\f0e0"}.fa-angle-double-up,.fa-angles-up{--fa:"\f102"}.fa-paperclip{--fa:"\f0c6"}.fa-arrow-right-to-city{--fa:"\e4b3"}.fa-ribbon{--fa:"\f4d6"}.fa-lungs{--fa:"\f604"}.fa-arrow-up-9-1,.fa-sort-numeric-up-alt{--fa:"\f887"}.fa-litecoin-sign{--fa:"\e1d3"}.fa-border-none{--fa:"\f850"}.fa-circle-nodes{--fa:"\e4e2"}.fa-parachute-box{--fa:"\f4cd"}.fa-indent{--fa:"\f03c"}.fa-truck-field-un{--fa:"\e58e"}.fa-hourglass,.fa-hourglass-empty{--fa:"\f254"}.fa-mountain{--fa:"\f6fc"}.fa-user-doctor,.fa-user-md{--fa:"\f0f0"}.fa-circle-info,.fa-info-circle{--fa:"\f05a"}.fa-cloud-meatball{--fa:"\f73b"}.fa-camera,.fa-camera-alt{--fa:"\f030"}.fa-square-virus{--fa:"\e578"}.fa-meteor{--fa:"\f753"}.fa-car-on{--fa:"\e4dd"}.fa-sleigh{--fa:"\f7cc"}.fa-arrow-down-1-9,.fa-sort-numeric-asc,.fa-sort-numeric-down{--fa:"\f162"}.fa-hand-holding-droplet,.fa-hand-holding-water{--fa:"\f4c1"}.fa-water{--fa:"\f773"}.fa-calendar-check{--fa:"\f274"}.fa-braille{--fa:"\f2a1"}.fa-prescription-bottle-alt,.fa-prescription-bottle-medical{--fa:"\f486"}.fa-landmark{--fa:"\f66f"}.fa-truck{--fa:"\f0d1"}.fa-crosshairs{--fa:"\f05b"}.fa-person-cane{--fa:"\e53c"}.fa-tent{--fa:"\e57d"}.fa-vest-patches{--fa:"\e086"}.fa-check-double{--fa:"\f560"}.fa-arrow-down-a-z,.fa-sort-alpha-asc,.fa-sort-alpha-down{--fa:"\f15d"}.fa-money-bill-wheat{--fa:"\e52a"}.fa-cookie{--fa:"\f563"}.fa-arrow-left-rotate,.fa-arrow-rotate-back,.fa-arrow-rotate-backward,.fa-arrow-rotate-left,.fa-undo{--fa:"\f0e2"}.fa-hard-drive,.fa-hdd{--fa:"\f0a0"}.fa-face-grin-squint-tears,.fa-grin-squint-tears{--fa:"\f586"}.fa-dumbbell{--fa:"\f44b"}.fa-list-alt,.fa-rectangle-list{--fa:"\f022"}.fa-tarp-droplet{--fa:"\e57c"}.fa-house-medical-circle-check{--fa:"\e511"}.fa-person-skiing-nordic,.fa-skiing-nordic{--fa:"\f7ca"}.fa-calendar-plus{--fa:"\f271"}.fa-plane-arrival{--fa:"\f5af"}.fa-arrow-alt-circle-left,.fa-circle-left{--fa:"\f359"}.fa-subway,.fa-train-subway{--fa:"\f239"}.fa-chart-gantt{--fa:"\e0e4"}.fa-indian-rupee,.fa-indian-rupee-sign,.fa-inr{--fa:"\e1bc"}.fa-crop-alt,.fa-crop-simple{--fa:"\f565"}.fa-money-bill-1,.fa-money-bill-alt{--fa:"\f3d1"}.fa-left-long,.fa-long-arrow-alt-left{--fa:"\f30a"}.fa-dna{--fa:"\f471"}.fa-virus-slash{--fa:"\e075"}.fa-minus,.fa-subtract{--fa:"\f068"}.fa-chess{--fa:"\f439"}.fa-arrow-left-long,.fa-long-arrow-left{--fa:"\f177"}.fa-plug-circle-check{--fa:"\e55c"}.fa-street-view{--fa:"\f21d"}.fa-franc-sign{--fa:"\e18f"}.fa-volume-off{--fa:"\f026"}.fa-american-sign-language-interpreting,.fa-asl-interpreting,.fa-hands-american-sign-language-interpreting,.fa-hands-asl-interpreting{--fa:"\f2a3"}.fa-cog,.fa-gear{--fa:"\f013"}.fa-droplet-slash,.fa-tint-slash{--fa:"\f5c7"}.fa-mosque{--fa:"\f678"}.fa-mosquito{--fa:"\e52b"}.fa-star-of-david{--fa:"\f69a"}.fa-person-military-rifle{--fa:"\e54b"}.fa-cart-shopping,.fa-shopping-cart{--fa:"\f07a"}.fa-vials{--fa:"\f493"}.fa-plug-circle-plus{--fa:"\e55f"}.fa-place-of-worship{--fa:"\f67f"}.fa-grip-vertical{--fa:"\f58e"}.fa-hexagon-nodes{--fa:"\e699"}.fa-arrow-turn-up,.fa-level-up{--fa:"\f148"}.fa-u{--fa:"\55"}.fa-square-root-alt,.fa-square-root-variable{--fa:"\f698"}.fa-clock,.fa-clock-four{--fa:"\f017"}.fa-backward-step,.fa-step-backward{--fa:"\f048"}.fa-pallet{--fa:"\f482"}.fa-faucet{--fa:"\e005"}.fa-baseball-bat-ball{--fa:"\f432"}.fa-s{--fa:"\53"}.fa-timeline{--fa:"\e29c"}.fa-keyboard{--fa:"\f11c"}.fa-caret-down{--fa:"\f0d7"}.fa-clinic-medical,.fa-house-chimney-medical{--fa:"\f7f2"}.fa-temperature-3,.fa-temperature-three-quarters,.fa-thermometer-3,.fa-thermometer-three-quarters{--fa:"\f2c8"}.fa-mobile-android-alt,.fa-mobile-screen{--fa:"\f3cf"}.fa-plane-up{--fa:"\e22d"}.fa-piggy-bank{--fa:"\f4d3"}.fa-battery-3,.fa-battery-half{--fa:"\f242"}.fa-mountain-city{--fa:"\e52e"}.fa-coins{--fa:"\f51e"}.fa-khanda{--fa:"\f66d"}.fa-sliders,.fa-sliders-h{--fa:"\f1de"}.fa-folder-tree{--fa:"\f802"}.fa-network-wired{--fa:"\f6ff"}.fa-map-pin{--fa:"\f276"}.fa-hamsa{--fa:"\f665"}.fa-cent-sign{--fa:"\e3f5"}.fa-flask{--fa:"\f0c3"}.fa-person-pregnant{--fa:"\e31e"}.fa-wand-sparkles{--fa:"\f72b"}.fa-ellipsis-v,.fa-ellipsis-vertical{--fa:"\f142"}.fa-ticket{--fa:"\f145"}.fa-power-off{--fa:"\f011"}.fa-long-arrow-alt-right,.fa-right-long{--fa:"\f30b"}.fa-flag-usa{--fa:"\f74d"}.fa-laptop-file{--fa:"\e51d"}.fa-teletype,.fa-tty{--fa:"\f1e4"}.fa-diagram-next{--fa:"\e476"}.fa-person-rifle{--fa:"\e54e"}.fa-house-medical-circle-exclamation{--fa:"\e512"}.fa-closed-captioning{--fa:"\f20a"}.fa-hiking,.fa-person-hiking{--fa:"\f6ec"}.fa-venus-double{--fa:"\f226"}.fa-images{--fa:"\f302"}.fa-calculator{--fa:"\f1ec"}.fa-people-pulling{--fa:"\e535"}.fa-n{--fa:"\4e"}.fa-cable-car,.fa-tram{--fa:"\f7da"}.fa-cloud-rain{--fa:"\f73d"}.fa-building-circle-xmark{--fa:"\e4d4"}.fa-ship{--fa:"\f21a"}.fa-arrows-down-to-line{--fa:"\e4b8"}.fa-download{--fa:"\f019"}.fa-face-grin,.fa-grin{--fa:"\f580"}.fa-backspace,.fa-delete-left{--fa:"\f55a"}.fa-eye-dropper,.fa-eye-dropper-empty,.fa-eyedropper{--fa:"\f1fb"}.fa-file-circle-check{--fa:"\e5a0"}.fa-forward{--fa:"\f04e"}.fa-mobile,.fa-mobile-android,.fa-mobile-phone{--fa:"\f3ce"}.fa-face-meh,.fa-meh{--fa:"\f11a"}.fa-align-center{--fa:"\f037"}.fa-book-dead,.fa-book-skull{--fa:"\f6b7"}.fa-drivers-license,.fa-id-card{--fa:"\f2c2"}.fa-dedent,.fa-outdent{--fa:"\f03b"}.fa-heart-circle-exclamation{--fa:"\e4fe"}.fa-home,.fa-home-alt,.fa-home-lg-alt,.fa-house{--fa:"\f015"}.fa-calendar-week{--fa:"\f784"}.fa-laptop-medical{--fa:"\f812"}.fa-b{--fa:"\42"}.fa-file-medical{--fa:"\f477"}.fa-dice-one{--fa:"\f525"}.fa-kiwi-bird{--fa:"\f535"}.fa-arrow-right-arrow-left,.fa-exchange{--fa:"\f0ec"}.fa-redo-alt,.fa-rotate-forward,.fa-rotate-right{--fa:"\f2f9"}.fa-cutlery,.fa-utensils{--fa:"\f2e7"}.fa-arrow-up-wide-short,.fa-sort-amount-up{--fa:"\f161"}.fa-mill-sign{--fa:"\e1ed"}.fa-bowl-rice{--fa:"\e2eb"}.fa-skull{--fa:"\f54c"}.fa-broadcast-tower,.fa-tower-broadcast{--fa:"\f519"}.fa-truck-pickup{--fa:"\f63c"}.fa-long-arrow-alt-up,.fa-up-long{--fa:"\f30c"}.fa-stop{--fa:"\f04d"}.fa-code-merge{--fa:"\f387"}.fa-upload{--fa:"\f093"}.fa-hurricane{--fa:"\f751"}.fa-mound{--fa:"\e52d"}.fa-toilet-portable{--fa:"\e583"}.fa-compact-disc{--fa:"\f51f"}.fa-file-arrow-down,.fa-file-download{--fa:"\f56d"}.fa-caravan{--fa:"\f8ff"}.fa-shield-cat{--fa:"\e572"}.fa-bolt,.fa-zap{--fa:"\f0e7"}.fa-glass-water{--fa:"\e4f4"}.fa-oil-well{--fa:"\e532"}.fa-vault{--fa:"\e2c5"}.fa-mars{--fa:"\f222"}.fa-toilet{--fa:"\f7d8"}.fa-plane-circle-xmark{--fa:"\e557"}.fa-cny,.fa-jpy,.fa-rmb,.fa-yen,.fa-yen-sign{--fa:"\f157"}.fa-rouble,.fa-rub,.fa-ruble,.fa-ruble-sign{--fa:"\f158"}.fa-sun{--fa:"\f185"}.fa-guitar{--fa:"\f7a6"}.fa-face-laugh-wink,.fa-laugh-wink{--fa:"\f59c"}.fa-horse-head{--fa:"\f7ab"}.fa-bore-hole{--fa:"\e4c3"}.fa-industry{--fa:"\f275"}.fa-arrow-alt-circle-down,.fa-circle-down{--fa:"\f358"}.fa-arrows-turn-to-dots{--fa:"\e4c1"}.fa-florin-sign{--fa:"\e184"}.fa-arrow-down-short-wide,.fa-sort-amount-desc,.fa-sort-amount-down-alt{--fa:"\f884"}.fa-less-than{--fa:"\3c"}.fa-angle-down{--fa:"\f107"}.fa-car-tunnel{--fa:"\e4de"}.fa-head-side-cough{--fa:"\e061"}.fa-grip-lines{--fa:"\f7a4"}.fa-thumbs-down{--fa:"\f165"}.fa-user-lock{--fa:"\f502"}.fa-arrow-right-long,.fa-long-arrow-right{--fa:"\f178"}.fa-anchor-circle-xmark{--fa:"\e4ac"}.fa-ellipsis,.fa-ellipsis-h{--fa:"\f141"}.fa-chess-pawn{--fa:"\f443"}.fa-first-aid,.fa-kit-medical{--fa:"\f479"}.fa-person-through-window{--fa:"\e5a9"}.fa-toolbox{--fa:"\f552"}.fa-hands-holding-circle{--fa:"\e4fb"}.fa-bug{--fa:"\f188"}.fa-credit-card,.fa-credit-card-alt{--fa:"\f09d"}.fa-automobile,.fa-car{--fa:"\f1b9"}.fa-hand-holding-hand{--fa:"\e4f7"}.fa-book-open-reader,.fa-book-reader{--fa:"\f5da"}.fa-mountain-sun{--fa:"\e52f"}.fa-arrows-left-right-to-line{--fa:"\e4ba"}.fa-dice-d20{--fa:"\f6cf"}.fa-truck-droplet{--fa:"\e58c"}.fa-file-circle-xmark{--fa:"\e5a1"}.fa-temperature-arrow-up,.fa-temperature-up{--fa:"\e040"}.fa-medal{--fa:"\f5a2"}.fa-bed{--fa:"\f236"}.fa-h-square,.fa-square-h{--fa:"\f0fd"}.fa-podcast{--fa:"\f2ce"}.fa-temperature-4,.fa-temperature-full,.fa-thermometer-4,.fa-thermometer-full{--fa:"\f2c7"}.fa-bell{--fa:"\f0f3"}.fa-superscript{--fa:"\f12b"}.fa-plug-circle-xmark{--fa:"\e560"}.fa-star-of-life{--fa:"\f621"}.fa-phone-slash{--fa:"\f3dd"}.fa-paint-roller{--fa:"\f5aa"}.fa-hands-helping,.fa-handshake-angle{--fa:"\f4c4"}.fa-location-dot,.fa-map-marker-alt{--fa:"\f3c5"}.fa-file{--fa:"\f15b"}.fa-greater-than{--fa:"\3e"}.fa-person-swimming,.fa-swimmer{--fa:"\f5c4"}.fa-arrow-down{--fa:"\f063"}.fa-droplet,.fa-tint{--fa:"\f043"}.fa-eraser{--fa:"\f12d"}.fa-earth,.fa-earth-america,.fa-earth-americas,.fa-globe-americas{--fa:"\f57d"}.fa-person-burst{--fa:"\e53b"}.fa-dove{--fa:"\f4ba"}.fa-battery-0,.fa-battery-empty{--fa:"\f244"}.fa-socks{--fa:"\f696"}.fa-inbox{--fa:"\f01c"}.fa-section{--fa:"\e447"}.fa-gauge-high,.fa-tachometer-alt,.fa-tachometer-alt-fast{--fa:"\f625"}.fa-envelope-open-text{--fa:"\f658"}.fa-hospital,.fa-hospital-alt,.fa-hospital-wide{--fa:"\f0f8"}.fa-wine-bottle{--fa:"\f72f"}.fa-chess-rook{--fa:"\f447"}.fa-bars-staggered,.fa-reorder,.fa-stream{--fa:"\f550"}.fa-dharmachakra{--fa:"\f655"}.fa-hotdog{--fa:"\f80f"}.fa-blind,.fa-person-walking-with-cane{--fa:"\f29d"}.fa-drum{--fa:"\f569"}.fa-ice-cream{--fa:"\f810"}.fa-heart-circle-bolt{--fa:"\e4fc"}.fa-fax{--fa:"\f1ac"}.fa-paragraph{--fa:"\f1dd"}.fa-check-to-slot,.fa-vote-yea{--fa:"\f772"}.fa-star-half{--fa:"\f089"}.fa-boxes,.fa-boxes-alt,.fa-boxes-stacked{--fa:"\f468"}.fa-chain,.fa-link{--fa:"\f0c1"}.fa-assistive-listening-systems,.fa-ear-listen{--fa:"\f2a2"}.fa-tree-city{--fa:"\e587"}.fa-play{--fa:"\f04b"}.fa-font{--fa:"\f031"}.fa-table-cells-row-lock{--fa:"\e67a"}.fa-rupiah-sign{--fa:"\e23d"}.fa-magnifying-glass,.fa-search{--fa:"\f002"}.fa-ping-pong-paddle-ball,.fa-table-tennis,.fa-table-tennis-paddle-ball{--fa:"\f45d"}.fa-diagnoses,.fa-person-dots-from-line{--fa:"\f470"}.fa-trash-can-arrow-up,.fa-trash-restore-alt{--fa:"\f82a"}.fa-naira-sign{--fa:"\e1f6"}.fa-cart-arrow-down{--fa:"\f218"}.fa-walkie-talkie{--fa:"\f8ef"}.fa-file-edit,.fa-file-pen{--fa:"\f31c"}.fa-receipt{--fa:"\f543"}.fa-pen-square,.fa-pencil-square,.fa-square-pen{--fa:"\f14b"}.fa-suitcase-rolling{--fa:"\f5c1"}.fa-person-circle-exclamation{--fa:"\e53f"}.fa-chevron-down{--fa:"\f078"}.fa-battery,.fa-battery-5,.fa-battery-full{--fa:"\f240"}.fa-skull-crossbones{--fa:"\f714"}.fa-code-compare{--fa:"\e13a"}.fa-list-dots,.fa-list-ul{--fa:"\f0ca"}.fa-school-lock{--fa:"\e56f"}.fa-tower-cell{--fa:"\e585"}.fa-down-long,.fa-long-arrow-alt-down{--fa:"\f309"}.fa-ranking-star{--fa:"\e561"}.fa-chess-king{--fa:"\f43f"}.fa-person-harassing{--fa:"\e549"}.fa-brazilian-real-sign{--fa:"\e46c"}.fa-landmark-alt,.fa-landmark-dome{--fa:"\f752"}.fa-arrow-up{--fa:"\f062"}.fa-television,.fa-tv,.fa-tv-alt{--fa:"\f26c"}.fa-shrimp{--fa:"\e448"}.fa-list-check,.fa-tasks{--fa:"\f0ae"}.fa-jug-detergent{--fa:"\e519"}.fa-circle-user,.fa-user-circle{--fa:"\f2bd"}.fa-user-shield{--fa:"\f505"}.fa-wind{--fa:"\f72e"}.fa-car-burst,.fa-car-crash{--fa:"\f5e1"}.fa-y{--fa:"\59"}.fa-person-snowboarding,.fa-snowboarding{--fa:"\f7ce"}.fa-shipping-fast,.fa-truck-fast{--fa:"\f48b"}.fa-fish{--fa:"\f578"}.fa-user-graduate{--fa:"\f501"}.fa-adjust,.fa-circle-half-stroke{--fa:"\f042"}.fa-clapperboard{--fa:"\e131"}.fa-circle-radiation,.fa-radiation-alt{--fa:"\f7ba"}.fa-baseball,.fa-baseball-ball{--fa:"\f433"}.fa-jet-fighter-up{--fa:"\e518"}.fa-diagram-project,.fa-project-diagram{--fa:"\f542"}.fa-copy{--fa:"\f0c5"}.fa-volume-mute,.fa-volume-times,.fa-volume-xmark{--fa:"\f6a9"}.fa-hand-sparkles{--fa:"\e05d"}.fa-grip,.fa-grip-horizontal{--fa:"\f58d"}.fa-share-from-square,.fa-share-square{--fa:"\f14d"}.fa-child-combatant,.fa-child-rifle{--fa:"\e4e0"}.fa-gun{--fa:"\e19b"}.fa-phone-square,.fa-square-phone{--fa:"\f098"}.fa-add,.fa-plus{--fa:"\2b"}.fa-expand{--fa:"\f065"}.fa-computer{--fa:"\e4e5"}.fa-close,.fa-multiply,.fa-remove,.fa-times,.fa-xmark{--fa:"\f00d"}.fa-arrows,.fa-arrows-up-down-left-right{--fa:"\f047"}.fa-chalkboard-teacher,.fa-chalkboard-user{--fa:"\f51c"}.fa-peso-sign{--fa:"\e222"}.fa-building-shield{--fa:"\e4d8"}.fa-baby{--fa:"\f77c"}.fa-users-line{--fa:"\e592"}.fa-quote-left,.fa-quote-left-alt{--fa:"\f10d"}.fa-tractor{--fa:"\f722"}.fa-trash-arrow-up,.fa-trash-restore{--fa:"\f829"}.fa-arrow-down-up-lock{--fa:"\e4b0"}.fa-lines-leaning{--fa:"\e51e"}.fa-ruler-combined{--fa:"\f546"}.fa-copyright{--fa:"\f1f9"}.fa-equals{--fa:"\3d"}.fa-blender{--fa:"\f517"}.fa-teeth{--fa:"\f62e"}.fa-ils,.fa-shekel,.fa-shekel-sign,.fa-sheqel,.fa-sheqel-sign{--fa:"\f20b"}.fa-map{--fa:"\f279"}.fa-rocket{--fa:"\f135"}.fa-photo-film,.fa-photo-video{--fa:"\f87c"}.fa-folder-minus{--fa:"\f65d"}.fa-hexagon-nodes-bolt{--fa:"\e69a"}.fa-store{--fa:"\f54e"}.fa-arrow-trend-up{--fa:"\e098"}.fa-plug-circle-minus{--fa:"\e55e"}.fa-sign,.fa-sign-hanging{--fa:"\f4d9"}.fa-bezier-curve{--fa:"\f55b"}.fa-bell-slash{--fa:"\f1f6"}.fa-tablet,.fa-tablet-android{--fa:"\f3fb"}.fa-school-flag{--fa:"\e56e"}.fa-fill{--fa:"\f575"}.fa-angle-up{--fa:"\f106"}.fa-drumstick-bite{--fa:"\f6d7"}.fa-holly-berry{--fa:"\f7aa"}.fa-chevron-left{--fa:"\f053"}.fa-bacteria{--fa:"\e059"}.fa-hand-lizard{--fa:"\f258"}.fa-notdef{--fa:"\e1fe"}.fa-disease{--fa:"\f7fa"}.fa-briefcase-medical{--fa:"\f469"}.fa-genderless{--fa:"\f22d"}.fa-chevron-right{--fa:"\f054"}.fa-retweet{--fa:"\f079"}.fa-car-alt,.fa-car-rear{--fa:"\f5de"}.fa-pump-soap{--fa:"\e06b"}.fa-video-slash{--fa:"\f4e2"}.fa-battery-2,.fa-battery-quarter{--fa:"\f243"}.fa-radio{--fa:"\f8d7"}.fa-baby-carriage,.fa-carriage-baby{--fa:"\f77d"}.fa-traffic-light{--fa:"\f637"}.fa-thermometer{--fa:"\f491"}.fa-vr-cardboard{--fa:"\f729"}.fa-hand-middle-finger{--fa:"\f806"}.fa-percent,.fa-percentage{--fa:"\25"}.fa-truck-moving{--fa:"\f4df"}.fa-glass-water-droplet{--fa:"\e4f5"}.fa-display{--fa:"\e163"}.fa-face-smile,.fa-smile{--fa:"\f118"}.fa-thumb-tack,.fa-thumbtack{--fa:"\f08d"}.fa-trophy{--fa:"\f091"}.fa-person-praying,.fa-pray{--fa:"\f683"}.fa-hammer{--fa:"\f6e3"}.fa-hand-peace{--fa:"\f25b"}.fa-rotate,.fa-sync-alt{--fa:"\f2f1"}.fa-spinner{--fa:"\f110"}.fa-robot{--fa:"\f544"}.fa-peace{--fa:"\f67c"}.fa-cogs,.fa-gears{--fa:"\f085"}.fa-warehouse{--fa:"\f494"}.fa-arrow-up-right-dots{--fa:"\e4b7"}.fa-splotch{--fa:"\f5bc"}.fa-face-grin-hearts,.fa-grin-hearts{--fa:"\f584"}.fa-dice-four{--fa:"\f524"}.fa-sim-card{--fa:"\f7c4"}.fa-transgender,.fa-transgender-alt{--fa:"\f225"}.fa-mercury{--fa:"\f223"}.fa-arrow-turn-down,.fa-level-down{--fa:"\f149"}.fa-person-falling-burst{--fa:"\e547"}.fa-award{--fa:"\f559"}.fa-ticket-alt,.fa-ticket-simple{--fa:"\f3ff"}.fa-building{--fa:"\f1ad"}.fa-angle-double-left,.fa-angles-left{--fa:"\f100"}.fa-qrcode{--fa:"\f029"}.fa-clock-rotate-left,.fa-history{--fa:"\f1da"}.fa-face-grin-beam-sweat,.fa-grin-beam-sweat{--fa:"\f583"}.fa-arrow-right-from-file,.fa-file-export{--fa:"\f56e"}.fa-shield,.fa-shield-blank{--fa:"\f132"}.fa-arrow-up-short-wide,.fa-sort-amount-up-alt{--fa:"\f885"}.fa-comment-nodes{--fa:"\e696"}.fa-house-medical{--fa:"\e3b2"}.fa-golf-ball,.fa-golf-ball-tee{--fa:"\f450"}.fa-chevron-circle-left,.fa-circle-chevron-left{--fa:"\f137"}.fa-house-chimney-window{--fa:"\e00d"}.fa-pen-nib{--fa:"\f5ad"}.fa-tent-arrow-turn-left{--fa:"\e580"}.fa-tents{--fa:"\e582"}.fa-magic,.fa-wand-magic{--fa:"\f0d0"}.fa-dog{--fa:"\f6d3"}.fa-carrot{--fa:"\f787"}.fa-moon{--fa:"\f186"}.fa-wine-glass-alt,.fa-wine-glass-empty{--fa:"\f5ce"}.fa-cheese{--fa:"\f7ef"}.fa-yin-yang{--fa:"\f6ad"}.fa-music{--fa:"\f001"}.fa-code-commit{--fa:"\f386"}.fa-temperature-low{--fa:"\f76b"}.fa-biking,.fa-person-biking{--fa:"\f84a"}.fa-broom{--fa:"\f51a"}.fa-shield-heart{--fa:"\e574"}.fa-gopuram{--fa:"\f664"}.fa-earth-oceania,.fa-globe-oceania{--fa:"\e47b"}.fa-square-xmark,.fa-times-square,.fa-xmark-square{--fa:"\f2d3"}.fa-hashtag{--fa:"\23"}.fa-expand-alt,.fa-up-right-and-down-left-from-center{--fa:"\f424"}.fa-oil-can{--fa:"\f613"}.fa-t{--fa:"\54"}.fa-hippo{--fa:"\f6ed"}.fa-chart-column{--fa:"\e0e3"}.fa-infinity{--fa:"\f534"}.fa-vial-circle-check{--fa:"\e596"}.fa-person-arrow-down-to-line{--fa:"\e538"}.fa-voicemail{--fa:"\f897"}.fa-fan{--fa:"\f863"}.fa-person-walking-luggage{--fa:"\e554"}.fa-arrows-alt-v,.fa-up-down{--fa:"\f338"}.fa-cloud-moon-rain{--fa:"\f73c"}.fa-calendar{--fa:"\f133"}.fa-trailer{--fa:"\e041"}.fa-bahai,.fa-haykal{--fa:"\f666"}.fa-sd-card{--fa:"\f7c2"}.fa-dragon{--fa:"\f6d5"}.fa-shoe-prints{--fa:"\f54b"}.fa-circle-plus,.fa-plus-circle{--fa:"\f055"}.fa-face-grin-tongue-wink,.fa-grin-tongue-wink{--fa:"\f58b"}.fa-hand-holding{--fa:"\f4bd"}.fa-plug-circle-exclamation{--fa:"\e55d"}.fa-chain-broken,.fa-chain-slash,.fa-link-slash,.fa-unlink{--fa:"\f127"}.fa-clone{--fa:"\f24d"}.fa-person-walking-arrow-loop-left{--fa:"\e551"}.fa-arrow-up-z-a,.fa-sort-alpha-up-alt{--fa:"\f882"}.fa-fire-alt,.fa-fire-flame-curved{--fa:"\f7e4"}.fa-tornado{--fa:"\f76f"}.fa-file-circle-plus{--fa:"\e494"}.fa-book-quran,.fa-quran{--fa:"\f687"}.fa-anchor{--fa:"\f13d"}.fa-border-all{--fa:"\f84c"}.fa-angry,.fa-face-angry{--fa:"\f556"}.fa-cookie-bite{--fa:"\f564"}.fa-arrow-trend-down{--fa:"\e097"}.fa-feed,.fa-rss{--fa:"\f09e"}.fa-draw-polygon{--fa:"\f5ee"}.fa-balance-scale,.fa-scale-balanced{--fa:"\f24e"}.fa-gauge-simple-high,.fa-tachometer,.fa-tachometer-fast{--fa:"\f62a"}.fa-shower{--fa:"\f2cc"}.fa-desktop,.fa-desktop-alt{--fa:"\f390"}.fa-m{--fa:"\4d"}.fa-table-list,.fa-th-list{--fa:"\f00b"}.fa-comment-sms,.fa-sms{--fa:"\f7cd"}.fa-book{--fa:"\f02d"}.fa-user-plus{--fa:"\f234"}.fa-check{--fa:"\f00c"}.fa-battery-4,.fa-battery-three-quarters{--fa:"\f241"}.fa-house-circle-check{--fa:"\e509"}.fa-angle-left{--fa:"\f104"}.fa-diagram-successor{--fa:"\e47a"}.fa-truck-arrow-right{--fa:"\e58b"}.fa-arrows-split-up-and-left{--fa:"\e4bc"}.fa-fist-raised,.fa-hand-fist{--fa:"\f6de"}.fa-cloud-moon{--fa:"\f6c3"}.fa-briefcase{--fa:"\f0b1"}.fa-person-falling{--fa:"\e546"}.fa-image-portrait,.fa-portrait{--fa:"\f3e0"}.fa-user-tag{--fa:"\f507"}.fa-rug{--fa:"\e569"}.fa-earth-europe,.fa-globe-europe{--fa:"\f7a2"}.fa-cart-flatbed-suitcase,.fa-luggage-cart{--fa:"\f59d"}.fa-rectangle-times,.fa-rectangle-xmark,.fa-times-rectangle,.fa-window-close{--fa:"\f410"}.fa-baht-sign{--fa:"\e0ac"}.fa-book-open{--fa:"\f518"}.fa-book-journal-whills,.fa-journal-whills{--fa:"\f66a"}.fa-handcuffs{--fa:"\e4f8"}.fa-exclamation-triangle,.fa-triangle-exclamation,.fa-warning{--fa:"\f071"}.fa-database{--fa:"\f1c0"}.fa-mail-forward,.fa-share{--fa:"\f064"}.fa-bottle-droplet{--fa:"\e4c4"}.fa-mask-face{--fa:"\e1d7"}.fa-hill-rockslide{--fa:"\e508"}.fa-exchange-alt,.fa-right-left{--fa:"\f362"}.fa-paper-plane{--fa:"\f1d8"}.fa-road-circle-exclamation{--fa:"\e565"}.fa-dungeon{--fa:"\f6d9"}.fa-align-right{--fa:"\f038"}.fa-money-bill-1-wave,.fa-money-bill-wave-alt{--fa:"\f53b"}.fa-life-ring{--fa:"\f1cd"}.fa-hands,.fa-sign-language,.fa-signing{--fa:"\f2a7"}.fa-calendar-day{--fa:"\f783"}.fa-ladder-water,.fa-swimming-pool,.fa-water-ladder{--fa:"\f5c5"}.fa-arrows-up-down,.fa-arrows-v{--fa:"\f07d"}.fa-face-grimace,.fa-grimace{--fa:"\f57f"}.fa-wheelchair-alt,.fa-wheelchair-move{--fa:"\e2ce"}.fa-level-down-alt,.fa-turn-down{--fa:"\f3be"}.fa-person-walking-arrow-right{--fa:"\e552"}.fa-envelope-square,.fa-square-envelope{--fa:"\f199"}.fa-dice{--fa:"\f522"}.fa-bowling-ball{--fa:"\f436"}.fa-brain{--fa:"\f5dc"}.fa-band-aid,.fa-bandage{--fa:"\f462"}.fa-calendar-minus{--fa:"\f272"}.fa-circle-xmark,.fa-times-circle,.fa-xmark-circle{--fa:"\f057"}.fa-gifts{--fa:"\f79c"}.fa-hotel{--fa:"\f594"}.fa-earth-asia,.fa-globe-asia{--fa:"\f57e"}.fa-id-card-alt,.fa-id-card-clip{--fa:"\f47f"}.fa-magnifying-glass-plus,.fa-search-plus{--fa:"\f00e"}.fa-thumbs-up{--fa:"\f164"}.fa-user-clock{--fa:"\f4fd"}.fa-allergies,.fa-hand-dots{--fa:"\f461"}.fa-file-invoice{--fa:"\f570"}.fa-window-minimize{--fa:"\f2d1"}.fa-coffee,.fa-mug-saucer{--fa:"\f0f4"}.fa-brush{--fa:"\f55d"}.fa-file-half-dashed{--fa:"\e698"}.fa-mask{--fa:"\f6fa"}.fa-magnifying-glass-minus,.fa-search-minus{--fa:"\f010"}.fa-ruler-vertical{--fa:"\f548"}.fa-user-alt,.fa-user-large{--fa:"\f406"}.fa-train-tram{--fa:"\e5b4"}.fa-user-nurse{--fa:"\f82f"}.fa-syringe{--fa:"\f48e"}.fa-cloud-sun{--fa:"\f6c4"}.fa-stopwatch-20{--fa:"\e06f"}.fa-square-full{--fa:"\f45c"}.fa-magnet{--fa:"\f076"}.fa-jar{--fa:"\e516"}.fa-note-sticky,.fa-sticky-note{--fa:"\f249"}.fa-bug-slash{--fa:"\e490"}.fa-arrow-up-from-water-pump{--fa:"\e4b6"}.fa-bone{--fa:"\f5d7"}.fa-table-cells-row-unlock{--fa:"\e691"}.fa-user-injured{--fa:"\f728"}.fa-face-sad-tear,.fa-sad-tear{--fa:"\f5b4"}.fa-plane{--fa:"\f072"}.fa-tent-arrows-down{--fa:"\e581"}.fa-exclamation{--fa:"\21"}.fa-arrows-spin{--fa:"\e4bb"}.fa-print{--fa:"\f02f"}.fa-try,.fa-turkish-lira,.fa-turkish-lira-sign{--fa:"\e2bb"}.fa-dollar,.fa-dollar-sign,.fa-usd{--fa:"\24"}.fa-x{--fa:"\58"}.fa-magnifying-glass-dollar,.fa-search-dollar{--fa:"\f688"}.fa-users-cog,.fa-users-gear{--fa:"\f509"}.fa-person-military-pointing{--fa:"\e54a"}.fa-bank,.fa-building-columns,.fa-institution,.fa-museum,.fa-university{--fa:"\f19c"}.fa-umbrella{--fa:"\f0e9"}.fa-trowel{--fa:"\e589"}.fa-d{--fa:"\44"}.fa-stapler{--fa:"\e5af"}.fa-masks-theater,.fa-theater-masks{--fa:"\f630"}.fa-kip-sign{--fa:"\e1c4"}.fa-hand-point-left{--fa:"\f0a5"}.fa-handshake-alt,.fa-handshake-simple{--fa:"\f4c6"}.fa-fighter-jet,.fa-jet-fighter{--fa:"\f0fb"}.fa-share-alt-square,.fa-square-share-nodes{--fa:"\f1e1"}.fa-barcode{--fa:"\f02a"}.fa-plus-minus{--fa:"\e43c"}.fa-video,.fa-video-camera{--fa:"\f03d"}.fa-graduation-cap,.fa-mortar-board{--fa:"\f19d"}.fa-hand-holding-medical{--fa:"\e05c"}.fa-person-circle-check{--fa:"\e53e"}.fa-level-up-alt,.fa-turn-up{--fa:"\f3bf"} -.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}:host,:root{--fa-style-family-brands:"Font Awesome 6 Brands";--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}@font-face{font-family:"Font Awesome 6 Brands";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}.fa-brands,.fab{font-weight:400}.fa-monero{--fa:"\f3d0"}.fa-hooli{--fa:"\f427"}.fa-yelp{--fa:"\f1e9"}.fa-cc-visa{--fa:"\f1f0"}.fa-lastfm{--fa:"\f202"}.fa-shopware{--fa:"\f5b5"}.fa-creative-commons-nc{--fa:"\f4e8"}.fa-aws{--fa:"\f375"}.fa-redhat{--fa:"\f7bc"}.fa-yoast{--fa:"\f2b1"}.fa-cloudflare{--fa:"\e07d"}.fa-ups{--fa:"\f7e0"}.fa-pixiv{--fa:"\e640"}.fa-wpexplorer{--fa:"\f2de"}.fa-dyalog{--fa:"\f399"}.fa-bity{--fa:"\f37a"}.fa-stackpath{--fa:"\f842"}.fa-buysellads{--fa:"\f20d"}.fa-first-order{--fa:"\f2b0"}.fa-modx{--fa:"\f285"}.fa-guilded{--fa:"\e07e"}.fa-vnv{--fa:"\f40b"}.fa-js-square,.fa-square-js{--fa:"\f3b9"}.fa-microsoft{--fa:"\f3ca"}.fa-qq{--fa:"\f1d6"}.fa-orcid{--fa:"\f8d2"}.fa-java{--fa:"\f4e4"}.fa-invision{--fa:"\f7b0"}.fa-creative-commons-pd-alt{--fa:"\f4ed"}.fa-centercode{--fa:"\f380"}.fa-glide-g{--fa:"\f2a6"}.fa-drupal{--fa:"\f1a9"}.fa-jxl{--fa:"\e67b"}.fa-dart-lang{--fa:"\e693"}.fa-hire-a-helper{--fa:"\f3b0"}.fa-creative-commons-by{--fa:"\f4e7"}.fa-unity{--fa:"\e049"}.fa-whmcs{--fa:"\f40d"}.fa-rocketchat{--fa:"\f3e8"}.fa-vk{--fa:"\f189"}.fa-untappd{--fa:"\f405"}.fa-mailchimp{--fa:"\f59e"}.fa-css3-alt{--fa:"\f38b"}.fa-reddit-square,.fa-square-reddit{--fa:"\f1a2"}.fa-vimeo-v{--fa:"\f27d"}.fa-contao{--fa:"\f26d"}.fa-square-font-awesome{--fa:"\e5ad"}.fa-deskpro{--fa:"\f38f"}.fa-brave{--fa:"\e63c"}.fa-sistrix{--fa:"\f3ee"}.fa-instagram-square,.fa-square-instagram{--fa:"\e055"}.fa-battle-net{--fa:"\f835"}.fa-the-red-yeti{--fa:"\f69d"}.fa-hacker-news-square,.fa-square-hacker-news{--fa:"\f3af"}.fa-edge{--fa:"\f282"}.fa-threads{--fa:"\e618"}.fa-napster{--fa:"\f3d2"}.fa-snapchat-square,.fa-square-snapchat{--fa:"\f2ad"}.fa-google-plus-g{--fa:"\f0d5"}.fa-artstation{--fa:"\f77a"}.fa-markdown{--fa:"\f60f"}.fa-sourcetree{--fa:"\f7d3"}.fa-google-plus{--fa:"\f2b3"}.fa-diaspora{--fa:"\f791"}.fa-foursquare{--fa:"\f180"}.fa-stack-overflow{--fa:"\f16c"}.fa-github-alt{--fa:"\f113"}.fa-phoenix-squadron{--fa:"\f511"}.fa-pagelines{--fa:"\f18c"}.fa-algolia{--fa:"\f36c"}.fa-red-river{--fa:"\f3e3"}.fa-creative-commons-sa{--fa:"\f4ef"}.fa-safari{--fa:"\f267"}.fa-google{--fa:"\f1a0"}.fa-font-awesome-alt,.fa-square-font-awesome-stroke{--fa:"\f35c"}.fa-atlassian{--fa:"\f77b"}.fa-linkedin-in{--fa:"\f0e1"}.fa-digital-ocean{--fa:"\f391"}.fa-nimblr{--fa:"\f5a8"}.fa-chromecast{--fa:"\f838"}.fa-evernote{--fa:"\f839"}.fa-hacker-news{--fa:"\f1d4"}.fa-creative-commons-sampling{--fa:"\f4f0"}.fa-adversal{--fa:"\f36a"}.fa-creative-commons{--fa:"\f25e"}.fa-watchman-monitoring{--fa:"\e087"}.fa-fonticons{--fa:"\f280"}.fa-weixin{--fa:"\f1d7"}.fa-shirtsinbulk{--fa:"\f214"}.fa-codepen{--fa:"\f1cb"}.fa-git-alt{--fa:"\f841"}.fa-lyft{--fa:"\f3c3"}.fa-rev{--fa:"\f5b2"}.fa-windows{--fa:"\f17a"}.fa-wizards-of-the-coast{--fa:"\f730"}.fa-square-viadeo,.fa-viadeo-square{--fa:"\f2aa"}.fa-meetup{--fa:"\f2e0"}.fa-centos{--fa:"\f789"}.fa-adn{--fa:"\f170"}.fa-cloudsmith{--fa:"\f384"}.fa-opensuse{--fa:"\e62b"}.fa-pied-piper-alt{--fa:"\f1a8"}.fa-dribbble-square,.fa-square-dribbble{--fa:"\f397"}.fa-codiepie{--fa:"\f284"}.fa-node{--fa:"\f419"}.fa-mix{--fa:"\f3cb"}.fa-steam{--fa:"\f1b6"}.fa-cc-apple-pay{--fa:"\f416"}.fa-scribd{--fa:"\f28a"}.fa-debian{--fa:"\e60b"}.fa-openid{--fa:"\f19b"}.fa-instalod{--fa:"\e081"}.fa-files-pinwheel{--fa:"\e69f"}.fa-expeditedssl{--fa:"\f23e"}.fa-sellcast{--fa:"\f2da"}.fa-square-twitter,.fa-twitter-square{--fa:"\f081"}.fa-r-project{--fa:"\f4f7"}.fa-delicious{--fa:"\f1a5"}.fa-freebsd{--fa:"\f3a4"}.fa-vuejs{--fa:"\f41f"}.fa-accusoft{--fa:"\f369"}.fa-ioxhost{--fa:"\f208"}.fa-fonticons-fi{--fa:"\f3a2"}.fa-app-store{--fa:"\f36f"}.fa-cc-mastercard{--fa:"\f1f1"}.fa-itunes-note{--fa:"\f3b5"}.fa-golang{--fa:"\e40f"}.fa-kickstarter,.fa-square-kickstarter{--fa:"\f3bb"}.fa-grav{--fa:"\f2d6"}.fa-weibo{--fa:"\f18a"}.fa-uncharted{--fa:"\e084"}.fa-firstdraft{--fa:"\f3a1"}.fa-square-youtube,.fa-youtube-square{--fa:"\f431"}.fa-wikipedia-w{--fa:"\f266"}.fa-rendact,.fa-wpressr{--fa:"\f3e4"}.fa-angellist{--fa:"\f209"}.fa-galactic-republic{--fa:"\f50c"}.fa-nfc-directional{--fa:"\e530"}.fa-skype{--fa:"\f17e"}.fa-joget{--fa:"\f3b7"}.fa-fedora{--fa:"\f798"}.fa-stripe-s{--fa:"\f42a"}.fa-meta{--fa:"\e49b"}.fa-laravel{--fa:"\f3bd"}.fa-hotjar{--fa:"\f3b1"}.fa-bluetooth-b{--fa:"\f294"}.fa-square-letterboxd{--fa:"\e62e"}.fa-sticker-mule{--fa:"\f3f7"}.fa-creative-commons-zero{--fa:"\f4f3"}.fa-hips{--fa:"\f452"}.fa-css{--fa:"\e6a2"}.fa-behance{--fa:"\f1b4"}.fa-reddit{--fa:"\f1a1"}.fa-discord{--fa:"\f392"}.fa-chrome{--fa:"\f268"}.fa-app-store-ios{--fa:"\f370"}.fa-cc-discover{--fa:"\f1f2"}.fa-wpbeginner{--fa:"\f297"}.fa-confluence{--fa:"\f78d"}.fa-shoelace{--fa:"\e60c"}.fa-mdb{--fa:"\f8ca"}.fa-dochub{--fa:"\f394"}.fa-accessible-icon{--fa:"\f368"}.fa-ebay{--fa:"\f4f4"}.fa-amazon{--fa:"\f270"}.fa-unsplash{--fa:"\e07c"}.fa-yarn{--fa:"\f7e3"}.fa-square-steam,.fa-steam-square{--fa:"\f1b7"}.fa-500px{--fa:"\f26e"}.fa-square-vimeo,.fa-vimeo-square{--fa:"\f194"}.fa-asymmetrik{--fa:"\f372"}.fa-font-awesome,.fa-font-awesome-flag,.fa-font-awesome-logo-full{--fa:"\f2b4"}.fa-gratipay{--fa:"\f184"}.fa-apple{--fa:"\f179"}.fa-hive{--fa:"\e07f"}.fa-gitkraken{--fa:"\f3a6"}.fa-keybase{--fa:"\f4f5"}.fa-apple-pay{--fa:"\f415"}.fa-padlet{--fa:"\e4a0"}.fa-amazon-pay{--fa:"\f42c"}.fa-github-square,.fa-square-github{--fa:"\f092"}.fa-stumbleupon{--fa:"\f1a4"}.fa-fedex{--fa:"\f797"}.fa-phoenix-framework{--fa:"\f3dc"}.fa-shopify{--fa:"\e057"}.fa-neos{--fa:"\f612"}.fa-square-threads{--fa:"\e619"}.fa-hackerrank{--fa:"\f5f7"}.fa-researchgate{--fa:"\f4f8"}.fa-swift{--fa:"\f8e1"}.fa-angular{--fa:"\f420"}.fa-speakap{--fa:"\f3f3"}.fa-angrycreative{--fa:"\f36e"}.fa-y-combinator{--fa:"\f23b"}.fa-empire{--fa:"\f1d1"}.fa-envira{--fa:"\f299"}.fa-google-scholar{--fa:"\e63b"}.fa-gitlab-square,.fa-square-gitlab{--fa:"\e5ae"}.fa-studiovinari{--fa:"\f3f8"}.fa-pied-piper{--fa:"\f2ae"}.fa-wordpress{--fa:"\f19a"}.fa-product-hunt{--fa:"\f288"}.fa-firefox{--fa:"\f269"}.fa-linode{--fa:"\f2b8"}.fa-goodreads{--fa:"\f3a8"}.fa-odnoklassniki-square,.fa-square-odnoklassniki{--fa:"\f264"}.fa-jsfiddle{--fa:"\f1cc"}.fa-sith{--fa:"\f512"}.fa-themeisle{--fa:"\f2b2"}.fa-page4{--fa:"\f3d7"}.fa-hashnode{--fa:"\e499"}.fa-react{--fa:"\f41b"}.fa-cc-paypal{--fa:"\f1f4"}.fa-squarespace{--fa:"\f5be"}.fa-cc-stripe{--fa:"\f1f5"}.fa-creative-commons-share{--fa:"\f4f2"}.fa-bitcoin{--fa:"\f379"}.fa-keycdn{--fa:"\f3ba"}.fa-opera{--fa:"\f26a"}.fa-itch-io{--fa:"\f83a"}.fa-umbraco{--fa:"\f8e8"}.fa-galactic-senate{--fa:"\f50d"}.fa-ubuntu{--fa:"\f7df"}.fa-draft2digital{--fa:"\f396"}.fa-stripe{--fa:"\f429"}.fa-houzz{--fa:"\f27c"}.fa-gg{--fa:"\f260"}.fa-dhl{--fa:"\f790"}.fa-pinterest-square,.fa-square-pinterest{--fa:"\f0d3"}.fa-xing{--fa:"\f168"}.fa-blackberry{--fa:"\f37b"}.fa-creative-commons-pd{--fa:"\f4ec"}.fa-playstation{--fa:"\f3df"}.fa-quinscape{--fa:"\f459"}.fa-less{--fa:"\f41d"}.fa-blogger-b{--fa:"\f37d"}.fa-opencart{--fa:"\f23d"}.fa-vine{--fa:"\f1ca"}.fa-signal-messenger{--fa:"\e663"}.fa-paypal{--fa:"\f1ed"}.fa-gitlab{--fa:"\f296"}.fa-typo3{--fa:"\f42b"}.fa-reddit-alien{--fa:"\f281"}.fa-yahoo{--fa:"\f19e"}.fa-dailymotion{--fa:"\e052"}.fa-affiliatetheme{--fa:"\f36b"}.fa-pied-piper-pp{--fa:"\f1a7"}.fa-bootstrap{--fa:"\f836"}.fa-odnoklassniki{--fa:"\f263"}.fa-nfc-symbol{--fa:"\e531"}.fa-mintbit{--fa:"\e62f"}.fa-ethereum{--fa:"\f42e"}.fa-speaker-deck{--fa:"\f83c"}.fa-creative-commons-nc-eu{--fa:"\f4e9"}.fa-patreon{--fa:"\f3d9"}.fa-avianex{--fa:"\f374"}.fa-ello{--fa:"\f5f1"}.fa-gofore{--fa:"\f3a7"}.fa-bimobject{--fa:"\f378"}.fa-brave-reverse{--fa:"\e63d"}.fa-facebook-f{--fa:"\f39e"}.fa-google-plus-square,.fa-square-google-plus{--fa:"\f0d4"}.fa-web-awesome{--fa:"\e682"}.fa-mandalorian{--fa:"\f50f"}.fa-first-order-alt{--fa:"\f50a"}.fa-osi{--fa:"\f41a"}.fa-google-wallet{--fa:"\f1ee"}.fa-d-and-d-beyond{--fa:"\f6ca"}.fa-periscope{--fa:"\f3da"}.fa-fulcrum{--fa:"\f50b"}.fa-cloudscale{--fa:"\f383"}.fa-forumbee{--fa:"\f211"}.fa-mizuni{--fa:"\f3cc"}.fa-schlix{--fa:"\f3ea"}.fa-square-xing,.fa-xing-square{--fa:"\f169"}.fa-bandcamp{--fa:"\f2d5"}.fa-wpforms{--fa:"\f298"}.fa-cloudversify{--fa:"\f385"}.fa-usps{--fa:"\f7e1"}.fa-megaport{--fa:"\f5a3"}.fa-magento{--fa:"\f3c4"}.fa-spotify{--fa:"\f1bc"}.fa-optin-monster{--fa:"\f23c"}.fa-fly{--fa:"\f417"}.fa-square-bluesky{--fa:"\e6a3"}.fa-aviato{--fa:"\f421"}.fa-itunes{--fa:"\f3b4"}.fa-cuttlefish{--fa:"\f38c"}.fa-blogger{--fa:"\f37c"}.fa-flickr{--fa:"\f16e"}.fa-viber{--fa:"\f409"}.fa-soundcloud{--fa:"\f1be"}.fa-digg{--fa:"\f1a6"}.fa-tencent-weibo{--fa:"\f1d5"}.fa-letterboxd{--fa:"\e62d"}.fa-symfony{--fa:"\f83d"}.fa-maxcdn{--fa:"\f136"}.fa-etsy{--fa:"\f2d7"}.fa-facebook-messenger{--fa:"\f39f"}.fa-audible{--fa:"\f373"}.fa-think-peaks{--fa:"\f731"}.fa-bilibili{--fa:"\e3d9"}.fa-erlang{--fa:"\f39d"}.fa-x-twitter{--fa:"\e61b"}.fa-cotton-bureau{--fa:"\f89e"}.fa-dashcube{--fa:"\f210"}.fa-42-group,.fa-innosoft{--fa:"\e080"}.fa-stack-exchange{--fa:"\f18d"}.fa-elementor{--fa:"\f430"}.fa-pied-piper-square,.fa-square-pied-piper{--fa:"\e01e"}.fa-creative-commons-nd{--fa:"\f4eb"}.fa-palfed{--fa:"\f3d8"}.fa-superpowers{--fa:"\f2dd"}.fa-resolving{--fa:"\f3e7"}.fa-xbox{--fa:"\f412"}.fa-square-web-awesome-stroke{--fa:"\e684"}.fa-searchengin{--fa:"\f3eb"}.fa-tiktok{--fa:"\e07b"}.fa-facebook-square,.fa-square-facebook{--fa:"\f082"}.fa-renren{--fa:"\f18b"}.fa-linux{--fa:"\f17c"}.fa-glide{--fa:"\f2a5"}.fa-linkedin{--fa:"\f08c"}.fa-hubspot{--fa:"\f3b2"}.fa-deploydog{--fa:"\f38e"}.fa-twitch{--fa:"\f1e8"}.fa-flutter{--fa:"\e694"}.fa-ravelry{--fa:"\f2d9"}.fa-mixer{--fa:"\e056"}.fa-lastfm-square,.fa-square-lastfm{--fa:"\f203"}.fa-vimeo{--fa:"\f40a"}.fa-mendeley{--fa:"\f7b3"}.fa-uniregistry{--fa:"\f404"}.fa-figma{--fa:"\f799"}.fa-creative-commons-remix{--fa:"\f4ee"}.fa-cc-amazon-pay{--fa:"\f42d"}.fa-dropbox{--fa:"\f16b"}.fa-instagram{--fa:"\f16d"}.fa-cmplid{--fa:"\e360"}.fa-upwork{--fa:"\e641"}.fa-facebook{--fa:"\f09a"}.fa-gripfire{--fa:"\f3ac"}.fa-jedi-order{--fa:"\f50e"}.fa-uikit{--fa:"\f403"}.fa-fort-awesome-alt{--fa:"\f3a3"}.fa-phabricator{--fa:"\f3db"}.fa-ussunnah{--fa:"\f407"}.fa-earlybirds{--fa:"\f39a"}.fa-trade-federation{--fa:"\f513"}.fa-autoprefixer{--fa:"\f41c"}.fa-whatsapp{--fa:"\f232"}.fa-square-upwork{--fa:"\e67c"}.fa-slideshare{--fa:"\f1e7"}.fa-google-play{--fa:"\f3ab"}.fa-viadeo{--fa:"\f2a9"}.fa-line{--fa:"\f3c0"}.fa-google-drive{--fa:"\f3aa"}.fa-servicestack{--fa:"\f3ec"}.fa-simplybuilt{--fa:"\f215"}.fa-bitbucket{--fa:"\f171"}.fa-imdb{--fa:"\f2d8"}.fa-deezer{--fa:"\e077"}.fa-raspberry-pi{--fa:"\f7bb"}.fa-jira{--fa:"\f7b1"}.fa-docker{--fa:"\f395"}.fa-screenpal{--fa:"\e570"}.fa-bluetooth{--fa:"\f293"}.fa-gitter{--fa:"\f426"}.fa-d-and-d{--fa:"\f38d"}.fa-microblog{--fa:"\e01a"}.fa-cc-diners-club{--fa:"\f24c"}.fa-gg-circle{--fa:"\f261"}.fa-pied-piper-hat{--fa:"\f4e5"}.fa-kickstarter-k{--fa:"\f3bc"}.fa-yandex{--fa:"\f413"}.fa-readme{--fa:"\f4d5"}.fa-html5{--fa:"\f13b"}.fa-sellsy{--fa:"\f213"}.fa-square-web-awesome{--fa:"\e683"}.fa-sass{--fa:"\f41e"}.fa-wirsindhandwerk,.fa-wsh{--fa:"\e2d0"}.fa-buromobelexperte{--fa:"\f37f"}.fa-salesforce{--fa:"\f83b"}.fa-octopus-deploy{--fa:"\e082"}.fa-medapps{--fa:"\f3c6"}.fa-ns8{--fa:"\f3d5"}.fa-pinterest-p{--fa:"\f231"}.fa-apper{--fa:"\f371"}.fa-fort-awesome{--fa:"\f286"}.fa-waze{--fa:"\f83f"}.fa-bluesky{--fa:"\e671"}.fa-cc-jcb{--fa:"\f24b"}.fa-snapchat,.fa-snapchat-ghost{--fa:"\f2ab"}.fa-fantasy-flight-games{--fa:"\f6dc"}.fa-rust{--fa:"\e07a"}.fa-wix{--fa:"\f5cf"}.fa-behance-square,.fa-square-behance{--fa:"\f1b5"}.fa-supple{--fa:"\f3f9"}.fa-webflow{--fa:"\e65c"}.fa-rebel{--fa:"\f1d0"}.fa-css3{--fa:"\f13c"}.fa-staylinked{--fa:"\f3f5"}.fa-kaggle{--fa:"\f5fa"}.fa-space-awesome{--fa:"\e5ac"}.fa-deviantart{--fa:"\f1bd"}.fa-cpanel{--fa:"\f388"}.fa-goodreads-g{--fa:"\f3a9"}.fa-git-square,.fa-square-git{--fa:"\f1d2"}.fa-square-tumblr,.fa-tumblr-square{--fa:"\f174"}.fa-trello{--fa:"\f181"}.fa-creative-commons-nc-jp{--fa:"\f4ea"}.fa-get-pocket{--fa:"\f265"}.fa-perbyte{--fa:"\e083"}.fa-grunt{--fa:"\f3ad"}.fa-weebly{--fa:"\f5cc"}.fa-connectdevelop{--fa:"\f20e"}.fa-leanpub{--fa:"\f212"}.fa-black-tie{--fa:"\f27e"}.fa-themeco{--fa:"\f5c6"}.fa-python{--fa:"\f3e2"}.fa-android{--fa:"\f17b"}.fa-bots{--fa:"\e340"}.fa-free-code-camp{--fa:"\f2c5"}.fa-hornbill{--fa:"\f592"}.fa-js{--fa:"\f3b8"}.fa-ideal{--fa:"\e013"}.fa-git{--fa:"\f1d3"}.fa-dev{--fa:"\f6cc"}.fa-sketch{--fa:"\f7c6"}.fa-yandex-international{--fa:"\f414"}.fa-cc-amex{--fa:"\f1f3"}.fa-uber{--fa:"\f402"}.fa-github{--fa:"\f09b"}.fa-php{--fa:"\f457"}.fa-alipay{--fa:"\f642"}.fa-youtube{--fa:"\f167"}.fa-skyatlas{--fa:"\f216"}.fa-firefox-browser{--fa:"\e007"}.fa-replyd{--fa:"\f3e6"}.fa-suse{--fa:"\f7d6"}.fa-jenkins{--fa:"\f3b6"}.fa-twitter{--fa:"\f099"}.fa-rockrms{--fa:"\f3e9"}.fa-pinterest{--fa:"\f0d2"}.fa-buffer{--fa:"\f837"}.fa-npm{--fa:"\f3d4"}.fa-yammer{--fa:"\f840"}.fa-btc{--fa:"\f15a"}.fa-dribbble{--fa:"\f17d"}.fa-stumbleupon-circle{--fa:"\f1a3"}.fa-internet-explorer{--fa:"\f26b"}.fa-stubber{--fa:"\e5c7"}.fa-telegram,.fa-telegram-plane{--fa:"\f2c6"}.fa-old-republic{--fa:"\f510"}.fa-odysee{--fa:"\e5c6"}.fa-square-whatsapp,.fa-whatsapp-square{--fa:"\f40c"}.fa-node-js{--fa:"\f3d3"}.fa-edge-legacy{--fa:"\e078"}.fa-slack,.fa-slack-hash{--fa:"\f198"}.fa-medrt{--fa:"\f3c8"}.fa-usb{--fa:"\f287"}.fa-tumblr{--fa:"\f173"}.fa-vaadin{--fa:"\f408"}.fa-quora{--fa:"\f2c4"}.fa-square-x-twitter{--fa:"\e61a"}.fa-reacteurope{--fa:"\f75d"}.fa-medium,.fa-medium-m{--fa:"\f23a"}.fa-amilia{--fa:"\f36d"}.fa-mixcloud{--fa:"\f289"}.fa-flipboard{--fa:"\f44d"}.fa-viacoin{--fa:"\f237"}.fa-critical-role{--fa:"\f6c9"}.fa-sitrox{--fa:"\e44a"}.fa-discourse{--fa:"\f393"}.fa-joomla{--fa:"\f1aa"}.fa-mastodon{--fa:"\f4f6"}.fa-airbnb{--fa:"\f834"}.fa-wolf-pack-battalion{--fa:"\f514"}.fa-buy-n-large{--fa:"\f8a6"}.fa-gulp{--fa:"\f3ae"}.fa-creative-commons-sampling-plus{--fa:"\f4f1"}.fa-strava{--fa:"\f428"}.fa-ember{--fa:"\f423"}.fa-canadian-maple-leaf{--fa:"\f785"}.fa-teamspeak{--fa:"\f4f9"}.fa-pushed{--fa:"\f3e1"}.fa-wordpress-simple{--fa:"\f411"}.fa-nutritionix{--fa:"\f3d6"}.fa-wodu{--fa:"\e088"}.fa-google-pay{--fa:"\e079"}.fa-intercom{--fa:"\f7af"}.fa-zhihu{--fa:"\f63f"}.fa-korvue{--fa:"\f42f"}.fa-pix{--fa:"\e43a"}.fa-steam-symbol{--fa:"\f3f6"}:host,:root{--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}.fa-regular,.far{font-weight:400}:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-weight:900}@font-face{font-family:"Font Awesome 5 Brands";font-display:block;font-weight:400;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:900;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:400;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-v4compatibility.woff2) format("woff2"),url(../webfonts/fa-v4compatibility.ttf) format("truetype");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f27a} \ No newline at end of file diff --git a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/brands.css b/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/brands.css deleted file mode 100644 index 8ae2f76..0000000 --- a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/brands.css +++ /dev/null @@ -1,1609 +0,0 @@ -/*! - * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - * Copyright 2024 Fonticons, Inc. - */ -:root, :host { - --fa-style-family-brands: 'Font Awesome 6 Brands'; - --fa-font-brands: normal 400 1em/1 'Font Awesome 6 Brands'; } - -@font-face { - font-family: 'Font Awesome 6 Brands'; - font-style: normal; - font-weight: 400; - font-display: block; - src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); } - -.fab, -.fa-brands { - font-weight: 400; } - -.fa-monero { - --fa: "\f3d0"; } - -.fa-hooli { - --fa: "\f427"; } - -.fa-yelp { - --fa: "\f1e9"; } - -.fa-cc-visa { - --fa: "\f1f0"; } - -.fa-lastfm { - --fa: "\f202"; } - -.fa-shopware { - --fa: "\f5b5"; } - -.fa-creative-commons-nc { - --fa: "\f4e8"; } - -.fa-aws { - --fa: "\f375"; } - -.fa-redhat { - --fa: "\f7bc"; } - -.fa-yoast { - --fa: "\f2b1"; } - -.fa-cloudflare { - --fa: "\e07d"; } - -.fa-ups { - --fa: "\f7e0"; } - -.fa-pixiv { - --fa: "\e640"; } - -.fa-wpexplorer { - --fa: "\f2de"; } - -.fa-dyalog { - --fa: "\f399"; } - -.fa-bity { - --fa: "\f37a"; } - -.fa-stackpath { - --fa: "\f842"; } - -.fa-buysellads { - --fa: "\f20d"; } - -.fa-first-order { - --fa: "\f2b0"; } - -.fa-modx { - --fa: "\f285"; } - -.fa-guilded { - --fa: "\e07e"; } - -.fa-vnv { - --fa: "\f40b"; } - -.fa-square-js { - --fa: "\f3b9"; } - -.fa-js-square { - --fa: "\f3b9"; } - -.fa-microsoft { - --fa: "\f3ca"; } - -.fa-qq { - --fa: "\f1d6"; } - -.fa-orcid { - --fa: "\f8d2"; } - -.fa-java { - --fa: "\f4e4"; } - -.fa-invision { - --fa: "\f7b0"; } - -.fa-creative-commons-pd-alt { - --fa: "\f4ed"; } - -.fa-centercode { - --fa: "\f380"; } - -.fa-glide-g { - --fa: "\f2a6"; } - -.fa-drupal { - --fa: "\f1a9"; } - -.fa-jxl { - --fa: "\e67b"; } - -.fa-dart-lang { - --fa: "\e693"; } - -.fa-hire-a-helper { - --fa: "\f3b0"; } - -.fa-creative-commons-by { - --fa: "\f4e7"; } - -.fa-unity { - --fa: "\e049"; } - -.fa-whmcs { - --fa: "\f40d"; } - -.fa-rocketchat { - --fa: "\f3e8"; } - -.fa-vk { - --fa: "\f189"; } - -.fa-untappd { - --fa: "\f405"; } - -.fa-mailchimp { - --fa: "\f59e"; } - -.fa-css3-alt { - --fa: "\f38b"; } - -.fa-square-reddit { - --fa: "\f1a2"; } - -.fa-reddit-square { - --fa: "\f1a2"; } - -.fa-vimeo-v { - --fa: "\f27d"; } - -.fa-contao { - --fa: "\f26d"; } - -.fa-square-font-awesome { - --fa: "\e5ad"; } - -.fa-deskpro { - --fa: "\f38f"; } - -.fa-brave { - --fa: "\e63c"; } - -.fa-sistrix { - --fa: "\f3ee"; } - -.fa-square-instagram { - --fa: "\e055"; } - -.fa-instagram-square { - --fa: "\e055"; } - -.fa-battle-net { - --fa: "\f835"; } - -.fa-the-red-yeti { - --fa: "\f69d"; } - -.fa-square-hacker-news { - --fa: "\f3af"; } - -.fa-hacker-news-square { - --fa: "\f3af"; } - -.fa-edge { - --fa: "\f282"; } - -.fa-threads { - --fa: "\e618"; } - -.fa-napster { - --fa: "\f3d2"; } - -.fa-square-snapchat { - --fa: "\f2ad"; } - -.fa-snapchat-square { - --fa: "\f2ad"; } - -.fa-google-plus-g { - --fa: "\f0d5"; } - -.fa-artstation { - --fa: "\f77a"; } - -.fa-markdown { - --fa: "\f60f"; } - -.fa-sourcetree { - --fa: "\f7d3"; } - -.fa-google-plus { - --fa: "\f2b3"; } - -.fa-diaspora { - --fa: "\f791"; } - -.fa-foursquare { - --fa: "\f180"; } - -.fa-stack-overflow { - --fa: "\f16c"; } - -.fa-github-alt { - --fa: "\f113"; } - -.fa-phoenix-squadron { - --fa: "\f511"; } - -.fa-pagelines { - --fa: "\f18c"; } - -.fa-algolia { - --fa: "\f36c"; } - -.fa-red-river { - --fa: "\f3e3"; } - -.fa-creative-commons-sa { - --fa: "\f4ef"; } - -.fa-safari { - --fa: "\f267"; } - -.fa-google { - --fa: "\f1a0"; } - -.fa-square-font-awesome-stroke { - --fa: "\f35c"; } - -.fa-font-awesome-alt { - --fa: "\f35c"; } - -.fa-atlassian { - --fa: "\f77b"; } - -.fa-linkedin-in { - --fa: "\f0e1"; } - -.fa-digital-ocean { - --fa: "\f391"; } - -.fa-nimblr { - --fa: "\f5a8"; } - -.fa-chromecast { - --fa: "\f838"; } - -.fa-evernote { - --fa: "\f839"; } - -.fa-hacker-news { - --fa: "\f1d4"; } - -.fa-creative-commons-sampling { - --fa: "\f4f0"; } - -.fa-adversal { - --fa: "\f36a"; } - -.fa-creative-commons { - --fa: "\f25e"; } - -.fa-watchman-monitoring { - --fa: "\e087"; } - -.fa-fonticons { - --fa: "\f280"; } - -.fa-weixin { - --fa: "\f1d7"; } - -.fa-shirtsinbulk { - --fa: "\f214"; } - -.fa-codepen { - --fa: "\f1cb"; } - -.fa-git-alt { - --fa: "\f841"; } - -.fa-lyft { - --fa: "\f3c3"; } - -.fa-rev { - --fa: "\f5b2"; } - -.fa-windows { - --fa: "\f17a"; } - -.fa-wizards-of-the-coast { - --fa: "\f730"; } - -.fa-square-viadeo { - --fa: "\f2aa"; } - -.fa-viadeo-square { - --fa: "\f2aa"; } - -.fa-meetup { - --fa: "\f2e0"; } - -.fa-centos { - --fa: "\f789"; } - -.fa-adn { - --fa: "\f170"; } - -.fa-cloudsmith { - --fa: "\f384"; } - -.fa-opensuse { - --fa: "\e62b"; } - -.fa-pied-piper-alt { - --fa: "\f1a8"; } - -.fa-square-dribbble { - --fa: "\f397"; } - -.fa-dribbble-square { - --fa: "\f397"; } - -.fa-codiepie { - --fa: "\f284"; } - -.fa-node { - --fa: "\f419"; } - -.fa-mix { - --fa: "\f3cb"; } - -.fa-steam { - --fa: "\f1b6"; } - -.fa-cc-apple-pay { - --fa: "\f416"; } - -.fa-scribd { - --fa: "\f28a"; } - -.fa-debian { - --fa: "\e60b"; } - -.fa-openid { - --fa: "\f19b"; } - -.fa-instalod { - --fa: "\e081"; } - -.fa-files-pinwheel { - --fa: "\e69f"; } - -.fa-expeditedssl { - --fa: "\f23e"; } - -.fa-sellcast { - --fa: "\f2da"; } - -.fa-square-twitter { - --fa: "\f081"; } - -.fa-twitter-square { - --fa: "\f081"; } - -.fa-r-project { - --fa: "\f4f7"; } - -.fa-delicious { - --fa: "\f1a5"; } - -.fa-freebsd { - --fa: "\f3a4"; } - -.fa-vuejs { - --fa: "\f41f"; } - -.fa-accusoft { - --fa: "\f369"; } - -.fa-ioxhost { - --fa: "\f208"; } - -.fa-fonticons-fi { - --fa: "\f3a2"; } - -.fa-app-store { - --fa: "\f36f"; } - -.fa-cc-mastercard { - --fa: "\f1f1"; } - -.fa-itunes-note { - --fa: "\f3b5"; } - -.fa-golang { - --fa: "\e40f"; } - -.fa-kickstarter { - --fa: "\f3bb"; } - -.fa-square-kickstarter { - --fa: "\f3bb"; } - -.fa-grav { - --fa: "\f2d6"; } - -.fa-weibo { - --fa: "\f18a"; } - -.fa-uncharted { - --fa: "\e084"; } - -.fa-firstdraft { - --fa: "\f3a1"; } - -.fa-square-youtube { - --fa: "\f431"; } - -.fa-youtube-square { - --fa: "\f431"; } - -.fa-wikipedia-w { - --fa: "\f266"; } - -.fa-wpressr { - --fa: "\f3e4"; } - -.fa-rendact { - --fa: "\f3e4"; } - -.fa-angellist { - --fa: "\f209"; } - -.fa-galactic-republic { - --fa: "\f50c"; } - -.fa-nfc-directional { - --fa: "\e530"; } - -.fa-skype { - --fa: "\f17e"; } - -.fa-joget { - --fa: "\f3b7"; } - -.fa-fedora { - --fa: "\f798"; } - -.fa-stripe-s { - --fa: "\f42a"; } - -.fa-meta { - --fa: "\e49b"; } - -.fa-laravel { - --fa: "\f3bd"; } - -.fa-hotjar { - --fa: "\f3b1"; } - -.fa-bluetooth-b { - --fa: "\f294"; } - -.fa-square-letterboxd { - --fa: "\e62e"; } - -.fa-sticker-mule { - --fa: "\f3f7"; } - -.fa-creative-commons-zero { - --fa: "\f4f3"; } - -.fa-hips { - --fa: "\f452"; } - -.fa-css { - --fa: "\e6a2"; } - -.fa-behance { - --fa: "\f1b4"; } - -.fa-reddit { - --fa: "\f1a1"; } - -.fa-discord { - --fa: "\f392"; } - -.fa-chrome { - --fa: "\f268"; } - -.fa-app-store-ios { - --fa: "\f370"; } - -.fa-cc-discover { - --fa: "\f1f2"; } - -.fa-wpbeginner { - --fa: "\f297"; } - -.fa-confluence { - --fa: "\f78d"; } - -.fa-shoelace { - --fa: "\e60c"; } - -.fa-mdb { - --fa: "\f8ca"; } - -.fa-dochub { - --fa: "\f394"; } - -.fa-accessible-icon { - --fa: "\f368"; } - -.fa-ebay { - --fa: "\f4f4"; } - -.fa-amazon { - --fa: "\f270"; } - -.fa-unsplash { - --fa: "\e07c"; } - -.fa-yarn { - --fa: "\f7e3"; } - -.fa-square-steam { - --fa: "\f1b7"; } - -.fa-steam-square { - --fa: "\f1b7"; } - -.fa-500px { - --fa: "\f26e"; } - -.fa-square-vimeo { - --fa: "\f194"; } - -.fa-vimeo-square { - --fa: "\f194"; } - -.fa-asymmetrik { - --fa: "\f372"; } - -.fa-font-awesome { - --fa: "\f2b4"; } - -.fa-font-awesome-flag { - --fa: "\f2b4"; } - -.fa-font-awesome-logo-full { - --fa: "\f2b4"; } - -.fa-gratipay { - --fa: "\f184"; } - -.fa-apple { - --fa: "\f179"; } - -.fa-hive { - --fa: "\e07f"; } - -.fa-gitkraken { - --fa: "\f3a6"; } - -.fa-keybase { - --fa: "\f4f5"; } - -.fa-apple-pay { - --fa: "\f415"; } - -.fa-padlet { - --fa: "\e4a0"; } - -.fa-amazon-pay { - --fa: "\f42c"; } - -.fa-square-github { - --fa: "\f092"; } - -.fa-github-square { - --fa: "\f092"; } - -.fa-stumbleupon { - --fa: "\f1a4"; } - -.fa-fedex { - --fa: "\f797"; } - -.fa-phoenix-framework { - --fa: "\f3dc"; } - -.fa-shopify { - --fa: "\e057"; } - -.fa-neos { - --fa: "\f612"; } - -.fa-square-threads { - --fa: "\e619"; } - -.fa-hackerrank { - --fa: "\f5f7"; } - -.fa-researchgate { - --fa: "\f4f8"; } - -.fa-swift { - --fa: "\f8e1"; } - -.fa-angular { - --fa: "\f420"; } - -.fa-speakap { - --fa: "\f3f3"; } - -.fa-angrycreative { - --fa: "\f36e"; } - -.fa-y-combinator { - --fa: "\f23b"; } - -.fa-empire { - --fa: "\f1d1"; } - -.fa-envira { - --fa: "\f299"; } - -.fa-google-scholar { - --fa: "\e63b"; } - -.fa-square-gitlab { - --fa: "\e5ae"; } - -.fa-gitlab-square { - --fa: "\e5ae"; } - -.fa-studiovinari { - --fa: "\f3f8"; } - -.fa-pied-piper { - --fa: "\f2ae"; } - -.fa-wordpress { - --fa: "\f19a"; } - -.fa-product-hunt { - --fa: "\f288"; } - -.fa-firefox { - --fa: "\f269"; } - -.fa-linode { - --fa: "\f2b8"; } - -.fa-goodreads { - --fa: "\f3a8"; } - -.fa-square-odnoklassniki { - --fa: "\f264"; } - -.fa-odnoklassniki-square { - --fa: "\f264"; } - -.fa-jsfiddle { - --fa: "\f1cc"; } - -.fa-sith { - --fa: "\f512"; } - -.fa-themeisle { - --fa: "\f2b2"; } - -.fa-page4 { - --fa: "\f3d7"; } - -.fa-hashnode { - --fa: "\e499"; } - -.fa-react { - --fa: "\f41b"; } - -.fa-cc-paypal { - --fa: "\f1f4"; } - -.fa-squarespace { - --fa: "\f5be"; } - -.fa-cc-stripe { - --fa: "\f1f5"; } - -.fa-creative-commons-share { - --fa: "\f4f2"; } - -.fa-bitcoin { - --fa: "\f379"; } - -.fa-keycdn { - --fa: "\f3ba"; } - -.fa-opera { - --fa: "\f26a"; } - -.fa-itch-io { - --fa: "\f83a"; } - -.fa-umbraco { - --fa: "\f8e8"; } - -.fa-galactic-senate { - --fa: "\f50d"; } - -.fa-ubuntu { - --fa: "\f7df"; } - -.fa-draft2digital { - --fa: "\f396"; } - -.fa-stripe { - --fa: "\f429"; } - -.fa-houzz { - --fa: "\f27c"; } - -.fa-gg { - --fa: "\f260"; } - -.fa-dhl { - --fa: "\f790"; } - -.fa-square-pinterest { - --fa: "\f0d3"; } - -.fa-pinterest-square { - --fa: "\f0d3"; } - -.fa-xing { - --fa: "\f168"; } - -.fa-blackberry { - --fa: "\f37b"; } - -.fa-creative-commons-pd { - --fa: "\f4ec"; } - -.fa-playstation { - --fa: "\f3df"; } - -.fa-quinscape { - --fa: "\f459"; } - -.fa-less { - --fa: "\f41d"; } - -.fa-blogger-b { - --fa: "\f37d"; } - -.fa-opencart { - --fa: "\f23d"; } - -.fa-vine { - --fa: "\f1ca"; } - -.fa-signal-messenger { - --fa: "\e663"; } - -.fa-paypal { - --fa: "\f1ed"; } - -.fa-gitlab { - --fa: "\f296"; } - -.fa-typo3 { - --fa: "\f42b"; } - -.fa-reddit-alien { - --fa: "\f281"; } - -.fa-yahoo { - --fa: "\f19e"; } - -.fa-dailymotion { - --fa: "\e052"; } - -.fa-affiliatetheme { - --fa: "\f36b"; } - -.fa-pied-piper-pp { - --fa: "\f1a7"; } - -.fa-bootstrap { - --fa: "\f836"; } - -.fa-odnoklassniki { - --fa: "\f263"; } - -.fa-nfc-symbol { - --fa: "\e531"; } - -.fa-mintbit { - --fa: "\e62f"; } - -.fa-ethereum { - --fa: "\f42e"; } - -.fa-speaker-deck { - --fa: "\f83c"; } - -.fa-creative-commons-nc-eu { - --fa: "\f4e9"; } - -.fa-patreon { - --fa: "\f3d9"; } - -.fa-avianex { - --fa: "\f374"; } - -.fa-ello { - --fa: "\f5f1"; } - -.fa-gofore { - --fa: "\f3a7"; } - -.fa-bimobject { - --fa: "\f378"; } - -.fa-brave-reverse { - --fa: "\e63d"; } - -.fa-facebook-f { - --fa: "\f39e"; } - -.fa-square-google-plus { - --fa: "\f0d4"; } - -.fa-google-plus-square { - --fa: "\f0d4"; } - -.fa-web-awesome { - --fa: "\e682"; } - -.fa-mandalorian { - --fa: "\f50f"; } - -.fa-first-order-alt { - --fa: "\f50a"; } - -.fa-osi { - --fa: "\f41a"; } - -.fa-google-wallet { - --fa: "\f1ee"; } - -.fa-d-and-d-beyond { - --fa: "\f6ca"; } - -.fa-periscope { - --fa: "\f3da"; } - -.fa-fulcrum { - --fa: "\f50b"; } - -.fa-cloudscale { - --fa: "\f383"; } - -.fa-forumbee { - --fa: "\f211"; } - -.fa-mizuni { - --fa: "\f3cc"; } - -.fa-schlix { - --fa: "\f3ea"; } - -.fa-square-xing { - --fa: "\f169"; } - -.fa-xing-square { - --fa: "\f169"; } - -.fa-bandcamp { - --fa: "\f2d5"; } - -.fa-wpforms { - --fa: "\f298"; } - -.fa-cloudversify { - --fa: "\f385"; } - -.fa-usps { - --fa: "\f7e1"; } - -.fa-megaport { - --fa: "\f5a3"; } - -.fa-magento { - --fa: "\f3c4"; } - -.fa-spotify { - --fa: "\f1bc"; } - -.fa-optin-monster { - --fa: "\f23c"; } - -.fa-fly { - --fa: "\f417"; } - -.fa-square-bluesky { - --fa: "\e6a3"; } - -.fa-aviato { - --fa: "\f421"; } - -.fa-itunes { - --fa: "\f3b4"; } - -.fa-cuttlefish { - --fa: "\f38c"; } - -.fa-blogger { - --fa: "\f37c"; } - -.fa-flickr { - --fa: "\f16e"; } - -.fa-viber { - --fa: "\f409"; } - -.fa-soundcloud { - --fa: "\f1be"; } - -.fa-digg { - --fa: "\f1a6"; } - -.fa-tencent-weibo { - --fa: "\f1d5"; } - -.fa-letterboxd { - --fa: "\e62d"; } - -.fa-symfony { - --fa: "\f83d"; } - -.fa-maxcdn { - --fa: "\f136"; } - -.fa-etsy { - --fa: "\f2d7"; } - -.fa-facebook-messenger { - --fa: "\f39f"; } - -.fa-audible { - --fa: "\f373"; } - -.fa-think-peaks { - --fa: "\f731"; } - -.fa-bilibili { - --fa: "\e3d9"; } - -.fa-erlang { - --fa: "\f39d"; } - -.fa-x-twitter { - --fa: "\e61b"; } - -.fa-cotton-bureau { - --fa: "\f89e"; } - -.fa-dashcube { - --fa: "\f210"; } - -.fa-42-group { - --fa: "\e080"; } - -.fa-innosoft { - --fa: "\e080"; } - -.fa-stack-exchange { - --fa: "\f18d"; } - -.fa-elementor { - --fa: "\f430"; } - -.fa-square-pied-piper { - --fa: "\e01e"; } - -.fa-pied-piper-square { - --fa: "\e01e"; } - -.fa-creative-commons-nd { - --fa: "\f4eb"; } - -.fa-palfed { - --fa: "\f3d8"; } - -.fa-superpowers { - --fa: "\f2dd"; } - -.fa-resolving { - --fa: "\f3e7"; } - -.fa-xbox { - --fa: "\f412"; } - -.fa-square-web-awesome-stroke { - --fa: "\e684"; } - -.fa-searchengin { - --fa: "\f3eb"; } - -.fa-tiktok { - --fa: "\e07b"; } - -.fa-square-facebook { - --fa: "\f082"; } - -.fa-facebook-square { - --fa: "\f082"; } - -.fa-renren { - --fa: "\f18b"; } - -.fa-linux { - --fa: "\f17c"; } - -.fa-glide { - --fa: "\f2a5"; } - -.fa-linkedin { - --fa: "\f08c"; } - -.fa-hubspot { - --fa: "\f3b2"; } - -.fa-deploydog { - --fa: "\f38e"; } - -.fa-twitch { - --fa: "\f1e8"; } - -.fa-flutter { - --fa: "\e694"; } - -.fa-ravelry { - --fa: "\f2d9"; } - -.fa-mixer { - --fa: "\e056"; } - -.fa-square-lastfm { - --fa: "\f203"; } - -.fa-lastfm-square { - --fa: "\f203"; } - -.fa-vimeo { - --fa: "\f40a"; } - -.fa-mendeley { - --fa: "\f7b3"; } - -.fa-uniregistry { - --fa: "\f404"; } - -.fa-figma { - --fa: "\f799"; } - -.fa-creative-commons-remix { - --fa: "\f4ee"; } - -.fa-cc-amazon-pay { - --fa: "\f42d"; } - -.fa-dropbox { - --fa: "\f16b"; } - -.fa-instagram { - --fa: "\f16d"; } - -.fa-cmplid { - --fa: "\e360"; } - -.fa-upwork { - --fa: "\e641"; } - -.fa-facebook { - --fa: "\f09a"; } - -.fa-gripfire { - --fa: "\f3ac"; } - -.fa-jedi-order { - --fa: "\f50e"; } - -.fa-uikit { - --fa: "\f403"; } - -.fa-fort-awesome-alt { - --fa: "\f3a3"; } - -.fa-phabricator { - --fa: "\f3db"; } - -.fa-ussunnah { - --fa: "\f407"; } - -.fa-earlybirds { - --fa: "\f39a"; } - -.fa-trade-federation { - --fa: "\f513"; } - -.fa-autoprefixer { - --fa: "\f41c"; } - -.fa-whatsapp { - --fa: "\f232"; } - -.fa-square-upwork { - --fa: "\e67c"; } - -.fa-slideshare { - --fa: "\f1e7"; } - -.fa-google-play { - --fa: "\f3ab"; } - -.fa-viadeo { - --fa: "\f2a9"; } - -.fa-line { - --fa: "\f3c0"; } - -.fa-google-drive { - --fa: "\f3aa"; } - -.fa-servicestack { - --fa: "\f3ec"; } - -.fa-simplybuilt { - --fa: "\f215"; } - -.fa-bitbucket { - --fa: "\f171"; } - -.fa-imdb { - --fa: "\f2d8"; } - -.fa-deezer { - --fa: "\e077"; } - -.fa-raspberry-pi { - --fa: "\f7bb"; } - -.fa-jira { - --fa: "\f7b1"; } - -.fa-docker { - --fa: "\f395"; } - -.fa-screenpal { - --fa: "\e570"; } - -.fa-bluetooth { - --fa: "\f293"; } - -.fa-gitter { - --fa: "\f426"; } - -.fa-d-and-d { - --fa: "\f38d"; } - -.fa-microblog { - --fa: "\e01a"; } - -.fa-cc-diners-club { - --fa: "\f24c"; } - -.fa-gg-circle { - --fa: "\f261"; } - -.fa-pied-piper-hat { - --fa: "\f4e5"; } - -.fa-kickstarter-k { - --fa: "\f3bc"; } - -.fa-yandex { - --fa: "\f413"; } - -.fa-readme { - --fa: "\f4d5"; } - -.fa-html5 { - --fa: "\f13b"; } - -.fa-sellsy { - --fa: "\f213"; } - -.fa-square-web-awesome { - --fa: "\e683"; } - -.fa-sass { - --fa: "\f41e"; } - -.fa-wirsindhandwerk { - --fa: "\e2d0"; } - -.fa-wsh { - --fa: "\e2d0"; } - -.fa-buromobelexperte { - --fa: "\f37f"; } - -.fa-salesforce { - --fa: "\f83b"; } - -.fa-octopus-deploy { - --fa: "\e082"; } - -.fa-medapps { - --fa: "\f3c6"; } - -.fa-ns8 { - --fa: "\f3d5"; } - -.fa-pinterest-p { - --fa: "\f231"; } - -.fa-apper { - --fa: "\f371"; } - -.fa-fort-awesome { - --fa: "\f286"; } - -.fa-waze { - --fa: "\f83f"; } - -.fa-bluesky { - --fa: "\e671"; } - -.fa-cc-jcb { - --fa: "\f24b"; } - -.fa-snapchat { - --fa: "\f2ab"; } - -.fa-snapchat-ghost { - --fa: "\f2ab"; } - -.fa-fantasy-flight-games { - --fa: "\f6dc"; } - -.fa-rust { - --fa: "\e07a"; } - -.fa-wix { - --fa: "\f5cf"; } - -.fa-square-behance { - --fa: "\f1b5"; } - -.fa-behance-square { - --fa: "\f1b5"; } - -.fa-supple { - --fa: "\f3f9"; } - -.fa-webflow { - --fa: "\e65c"; } - -.fa-rebel { - --fa: "\f1d0"; } - -.fa-css3 { - --fa: "\f13c"; } - -.fa-staylinked { - --fa: "\f3f5"; } - -.fa-kaggle { - --fa: "\f5fa"; } - -.fa-space-awesome { - --fa: "\e5ac"; } - -.fa-deviantart { - --fa: "\f1bd"; } - -.fa-cpanel { - --fa: "\f388"; } - -.fa-goodreads-g { - --fa: "\f3a9"; } - -.fa-square-git { - --fa: "\f1d2"; } - -.fa-git-square { - --fa: "\f1d2"; } - -.fa-square-tumblr { - --fa: "\f174"; } - -.fa-tumblr-square { - --fa: "\f174"; } - -.fa-trello { - --fa: "\f181"; } - -.fa-creative-commons-nc-jp { - --fa: "\f4ea"; } - -.fa-get-pocket { - --fa: "\f265"; } - -.fa-perbyte { - --fa: "\e083"; } - -.fa-grunt { - --fa: "\f3ad"; } - -.fa-weebly { - --fa: "\f5cc"; } - -.fa-connectdevelop { - --fa: "\f20e"; } - -.fa-leanpub { - --fa: "\f212"; } - -.fa-black-tie { - --fa: "\f27e"; } - -.fa-themeco { - --fa: "\f5c6"; } - -.fa-python { - --fa: "\f3e2"; } - -.fa-android { - --fa: "\f17b"; } - -.fa-bots { - --fa: "\e340"; } - -.fa-free-code-camp { - --fa: "\f2c5"; } - -.fa-hornbill { - --fa: "\f592"; } - -.fa-js { - --fa: "\f3b8"; } - -.fa-ideal { - --fa: "\e013"; } - -.fa-git { - --fa: "\f1d3"; } - -.fa-dev { - --fa: "\f6cc"; } - -.fa-sketch { - --fa: "\f7c6"; } - -.fa-yandex-international { - --fa: "\f414"; } - -.fa-cc-amex { - --fa: "\f1f3"; } - -.fa-uber { - --fa: "\f402"; } - -.fa-github { - --fa: "\f09b"; } - -.fa-php { - --fa: "\f457"; } - -.fa-alipay { - --fa: "\f642"; } - -.fa-youtube { - --fa: "\f167"; } - -.fa-skyatlas { - --fa: "\f216"; } - -.fa-firefox-browser { - --fa: "\e007"; } - -.fa-replyd { - --fa: "\f3e6"; } - -.fa-suse { - --fa: "\f7d6"; } - -.fa-jenkins { - --fa: "\f3b6"; } - -.fa-twitter { - --fa: "\f099"; } - -.fa-rockrms { - --fa: "\f3e9"; } - -.fa-pinterest { - --fa: "\f0d2"; } - -.fa-buffer { - --fa: "\f837"; } - -.fa-npm { - --fa: "\f3d4"; } - -.fa-yammer { - --fa: "\f840"; } - -.fa-btc { - --fa: "\f15a"; } - -.fa-dribbble { - --fa: "\f17d"; } - -.fa-stumbleupon-circle { - --fa: "\f1a3"; } - -.fa-internet-explorer { - --fa: "\f26b"; } - -.fa-stubber { - --fa: "\e5c7"; } - -.fa-telegram { - --fa: "\f2c6"; } - -.fa-telegram-plane { - --fa: "\f2c6"; } - -.fa-old-republic { - --fa: "\f510"; } - -.fa-odysee { - --fa: "\e5c6"; } - -.fa-square-whatsapp { - --fa: "\f40c"; } - -.fa-whatsapp-square { - --fa: "\f40c"; } - -.fa-node-js { - --fa: "\f3d3"; } - -.fa-edge-legacy { - --fa: "\e078"; } - -.fa-slack { - --fa: "\f198"; } - -.fa-slack-hash { - --fa: "\f198"; } - -.fa-medrt { - --fa: "\f3c8"; } - -.fa-usb { - --fa: "\f287"; } - -.fa-tumblr { - --fa: "\f173"; } - -.fa-vaadin { - --fa: "\f408"; } - -.fa-quora { - --fa: "\f2c4"; } - -.fa-square-x-twitter { - --fa: "\e61a"; } - -.fa-reacteurope { - --fa: "\f75d"; } - -.fa-medium { - --fa: "\f23a"; } - -.fa-medium-m { - --fa: "\f23a"; } - -.fa-amilia { - --fa: "\f36d"; } - -.fa-mixcloud { - --fa: "\f289"; } - -.fa-flipboard { - --fa: "\f44d"; } - -.fa-viacoin { - --fa: "\f237"; } - -.fa-critical-role { - --fa: "\f6c9"; } - -.fa-sitrox { - --fa: "\e44a"; } - -.fa-discourse { - --fa: "\f393"; } - -.fa-joomla { - --fa: "\f1aa"; } - -.fa-mastodon { - --fa: "\f4f6"; } - -.fa-airbnb { - --fa: "\f834"; } - -.fa-wolf-pack-battalion { - --fa: "\f514"; } - -.fa-buy-n-large { - --fa: "\f8a6"; } - -.fa-gulp { - --fa: "\f3ae"; } - -.fa-creative-commons-sampling-plus { - --fa: "\f4f1"; } - -.fa-strava { - --fa: "\f428"; } - -.fa-ember { - --fa: "\f423"; } - -.fa-canadian-maple-leaf { - --fa: "\f785"; } - -.fa-teamspeak { - --fa: "\f4f9"; } - -.fa-pushed { - --fa: "\f3e1"; } - -.fa-wordpress-simple { - --fa: "\f411"; } - -.fa-nutritionix { - --fa: "\f3d6"; } - -.fa-wodu { - --fa: "\e088"; } - -.fa-google-pay { - --fa: "\e079"; } - -.fa-intercom { - --fa: "\f7af"; } - -.fa-zhihu { - --fa: "\f63f"; } - -.fa-korvue { - --fa: "\f42f"; } - -.fa-pix { - --fa: "\e43a"; } - -.fa-steam-symbol { - --fa: "\f3f6"; } diff --git a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/brands.min.css b/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/brands.min.css deleted file mode 100644 index 7aa3689..0000000 --- a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/brands.min.css +++ /dev/null @@ -1,6 +0,0 @@ -/*! - * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - * Copyright 2024 Fonticons, Inc. - */ -:host,:root{--fa-style-family-brands:"Font Awesome 6 Brands";--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}@font-face{font-family:"Font Awesome 6 Brands";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}.fa-brands,.fab{font-weight:400}.fa-monero{--fa:"\f3d0"}.fa-hooli{--fa:"\f427"}.fa-yelp{--fa:"\f1e9"}.fa-cc-visa{--fa:"\f1f0"}.fa-lastfm{--fa:"\f202"}.fa-shopware{--fa:"\f5b5"}.fa-creative-commons-nc{--fa:"\f4e8"}.fa-aws{--fa:"\f375"}.fa-redhat{--fa:"\f7bc"}.fa-yoast{--fa:"\f2b1"}.fa-cloudflare{--fa:"\e07d"}.fa-ups{--fa:"\f7e0"}.fa-pixiv{--fa:"\e640"}.fa-wpexplorer{--fa:"\f2de"}.fa-dyalog{--fa:"\f399"}.fa-bity{--fa:"\f37a"}.fa-stackpath{--fa:"\f842"}.fa-buysellads{--fa:"\f20d"}.fa-first-order{--fa:"\f2b0"}.fa-modx{--fa:"\f285"}.fa-guilded{--fa:"\e07e"}.fa-vnv{--fa:"\f40b"}.fa-js-square,.fa-square-js{--fa:"\f3b9"}.fa-microsoft{--fa:"\f3ca"}.fa-qq{--fa:"\f1d6"}.fa-orcid{--fa:"\f8d2"}.fa-java{--fa:"\f4e4"}.fa-invision{--fa:"\f7b0"}.fa-creative-commons-pd-alt{--fa:"\f4ed"}.fa-centercode{--fa:"\f380"}.fa-glide-g{--fa:"\f2a6"}.fa-drupal{--fa:"\f1a9"}.fa-jxl{--fa:"\e67b"}.fa-dart-lang{--fa:"\e693"}.fa-hire-a-helper{--fa:"\f3b0"}.fa-creative-commons-by{--fa:"\f4e7"}.fa-unity{--fa:"\e049"}.fa-whmcs{--fa:"\f40d"}.fa-rocketchat{--fa:"\f3e8"}.fa-vk{--fa:"\f189"}.fa-untappd{--fa:"\f405"}.fa-mailchimp{--fa:"\f59e"}.fa-css3-alt{--fa:"\f38b"}.fa-reddit-square,.fa-square-reddit{--fa:"\f1a2"}.fa-vimeo-v{--fa:"\f27d"}.fa-contao{--fa:"\f26d"}.fa-square-font-awesome{--fa:"\e5ad"}.fa-deskpro{--fa:"\f38f"}.fa-brave{--fa:"\e63c"}.fa-sistrix{--fa:"\f3ee"}.fa-instagram-square,.fa-square-instagram{--fa:"\e055"}.fa-battle-net{--fa:"\f835"}.fa-the-red-yeti{--fa:"\f69d"}.fa-hacker-news-square,.fa-square-hacker-news{--fa:"\f3af"}.fa-edge{--fa:"\f282"}.fa-threads{--fa:"\e618"}.fa-napster{--fa:"\f3d2"}.fa-snapchat-square,.fa-square-snapchat{--fa:"\f2ad"}.fa-google-plus-g{--fa:"\f0d5"}.fa-artstation{--fa:"\f77a"}.fa-markdown{--fa:"\f60f"}.fa-sourcetree{--fa:"\f7d3"}.fa-google-plus{--fa:"\f2b3"}.fa-diaspora{--fa:"\f791"}.fa-foursquare{--fa:"\f180"}.fa-stack-overflow{--fa:"\f16c"}.fa-github-alt{--fa:"\f113"}.fa-phoenix-squadron{--fa:"\f511"}.fa-pagelines{--fa:"\f18c"}.fa-algolia{--fa:"\f36c"}.fa-red-river{--fa:"\f3e3"}.fa-creative-commons-sa{--fa:"\f4ef"}.fa-safari{--fa:"\f267"}.fa-google{--fa:"\f1a0"}.fa-font-awesome-alt,.fa-square-font-awesome-stroke{--fa:"\f35c"}.fa-atlassian{--fa:"\f77b"}.fa-linkedin-in{--fa:"\f0e1"}.fa-digital-ocean{--fa:"\f391"}.fa-nimblr{--fa:"\f5a8"}.fa-chromecast{--fa:"\f838"}.fa-evernote{--fa:"\f839"}.fa-hacker-news{--fa:"\f1d4"}.fa-creative-commons-sampling{--fa:"\f4f0"}.fa-adversal{--fa:"\f36a"}.fa-creative-commons{--fa:"\f25e"}.fa-watchman-monitoring{--fa:"\e087"}.fa-fonticons{--fa:"\f280"}.fa-weixin{--fa:"\f1d7"}.fa-shirtsinbulk{--fa:"\f214"}.fa-codepen{--fa:"\f1cb"}.fa-git-alt{--fa:"\f841"}.fa-lyft{--fa:"\f3c3"}.fa-rev{--fa:"\f5b2"}.fa-windows{--fa:"\f17a"}.fa-wizards-of-the-coast{--fa:"\f730"}.fa-square-viadeo,.fa-viadeo-square{--fa:"\f2aa"}.fa-meetup{--fa:"\f2e0"}.fa-centos{--fa:"\f789"}.fa-adn{--fa:"\f170"}.fa-cloudsmith{--fa:"\f384"}.fa-opensuse{--fa:"\e62b"}.fa-pied-piper-alt{--fa:"\f1a8"}.fa-dribbble-square,.fa-square-dribbble{--fa:"\f397"}.fa-codiepie{--fa:"\f284"}.fa-node{--fa:"\f419"}.fa-mix{--fa:"\f3cb"}.fa-steam{--fa:"\f1b6"}.fa-cc-apple-pay{--fa:"\f416"}.fa-scribd{--fa:"\f28a"}.fa-debian{--fa:"\e60b"}.fa-openid{--fa:"\f19b"}.fa-instalod{--fa:"\e081"}.fa-files-pinwheel{--fa:"\e69f"}.fa-expeditedssl{--fa:"\f23e"}.fa-sellcast{--fa:"\f2da"}.fa-square-twitter,.fa-twitter-square{--fa:"\f081"}.fa-r-project{--fa:"\f4f7"}.fa-delicious{--fa:"\f1a5"}.fa-freebsd{--fa:"\f3a4"}.fa-vuejs{--fa:"\f41f"}.fa-accusoft{--fa:"\f369"}.fa-ioxhost{--fa:"\f208"}.fa-fonticons-fi{--fa:"\f3a2"}.fa-app-store{--fa:"\f36f"}.fa-cc-mastercard{--fa:"\f1f1"}.fa-itunes-note{--fa:"\f3b5"}.fa-golang{--fa:"\e40f"}.fa-kickstarter,.fa-square-kickstarter{--fa:"\f3bb"}.fa-grav{--fa:"\f2d6"}.fa-weibo{--fa:"\f18a"}.fa-uncharted{--fa:"\e084"}.fa-firstdraft{--fa:"\f3a1"}.fa-square-youtube,.fa-youtube-square{--fa:"\f431"}.fa-wikipedia-w{--fa:"\f266"}.fa-rendact,.fa-wpressr{--fa:"\f3e4"}.fa-angellist{--fa:"\f209"}.fa-galactic-republic{--fa:"\f50c"}.fa-nfc-directional{--fa:"\e530"}.fa-skype{--fa:"\f17e"}.fa-joget{--fa:"\f3b7"}.fa-fedora{--fa:"\f798"}.fa-stripe-s{--fa:"\f42a"}.fa-meta{--fa:"\e49b"}.fa-laravel{--fa:"\f3bd"}.fa-hotjar{--fa:"\f3b1"}.fa-bluetooth-b{--fa:"\f294"}.fa-square-letterboxd{--fa:"\e62e"}.fa-sticker-mule{--fa:"\f3f7"}.fa-creative-commons-zero{--fa:"\f4f3"}.fa-hips{--fa:"\f452"}.fa-css{--fa:"\e6a2"}.fa-behance{--fa:"\f1b4"}.fa-reddit{--fa:"\f1a1"}.fa-discord{--fa:"\f392"}.fa-chrome{--fa:"\f268"}.fa-app-store-ios{--fa:"\f370"}.fa-cc-discover{--fa:"\f1f2"}.fa-wpbeginner{--fa:"\f297"}.fa-confluence{--fa:"\f78d"}.fa-shoelace{--fa:"\e60c"}.fa-mdb{--fa:"\f8ca"}.fa-dochub{--fa:"\f394"}.fa-accessible-icon{--fa:"\f368"}.fa-ebay{--fa:"\f4f4"}.fa-amazon{--fa:"\f270"}.fa-unsplash{--fa:"\e07c"}.fa-yarn{--fa:"\f7e3"}.fa-square-steam,.fa-steam-square{--fa:"\f1b7"}.fa-500px{--fa:"\f26e"}.fa-square-vimeo,.fa-vimeo-square{--fa:"\f194"}.fa-asymmetrik{--fa:"\f372"}.fa-font-awesome,.fa-font-awesome-flag,.fa-font-awesome-logo-full{--fa:"\f2b4"}.fa-gratipay{--fa:"\f184"}.fa-apple{--fa:"\f179"}.fa-hive{--fa:"\e07f"}.fa-gitkraken{--fa:"\f3a6"}.fa-keybase{--fa:"\f4f5"}.fa-apple-pay{--fa:"\f415"}.fa-padlet{--fa:"\e4a0"}.fa-amazon-pay{--fa:"\f42c"}.fa-github-square,.fa-square-github{--fa:"\f092"}.fa-stumbleupon{--fa:"\f1a4"}.fa-fedex{--fa:"\f797"}.fa-phoenix-framework{--fa:"\f3dc"}.fa-shopify{--fa:"\e057"}.fa-neos{--fa:"\f612"}.fa-square-threads{--fa:"\e619"}.fa-hackerrank{--fa:"\f5f7"}.fa-researchgate{--fa:"\f4f8"}.fa-swift{--fa:"\f8e1"}.fa-angular{--fa:"\f420"}.fa-speakap{--fa:"\f3f3"}.fa-angrycreative{--fa:"\f36e"}.fa-y-combinator{--fa:"\f23b"}.fa-empire{--fa:"\f1d1"}.fa-envira{--fa:"\f299"}.fa-google-scholar{--fa:"\e63b"}.fa-gitlab-square,.fa-square-gitlab{--fa:"\e5ae"}.fa-studiovinari{--fa:"\f3f8"}.fa-pied-piper{--fa:"\f2ae"}.fa-wordpress{--fa:"\f19a"}.fa-product-hunt{--fa:"\f288"}.fa-firefox{--fa:"\f269"}.fa-linode{--fa:"\f2b8"}.fa-goodreads{--fa:"\f3a8"}.fa-odnoklassniki-square,.fa-square-odnoklassniki{--fa:"\f264"}.fa-jsfiddle{--fa:"\f1cc"}.fa-sith{--fa:"\f512"}.fa-themeisle{--fa:"\f2b2"}.fa-page4{--fa:"\f3d7"}.fa-hashnode{--fa:"\e499"}.fa-react{--fa:"\f41b"}.fa-cc-paypal{--fa:"\f1f4"}.fa-squarespace{--fa:"\f5be"}.fa-cc-stripe{--fa:"\f1f5"}.fa-creative-commons-share{--fa:"\f4f2"}.fa-bitcoin{--fa:"\f379"}.fa-keycdn{--fa:"\f3ba"}.fa-opera{--fa:"\f26a"}.fa-itch-io{--fa:"\f83a"}.fa-umbraco{--fa:"\f8e8"}.fa-galactic-senate{--fa:"\f50d"}.fa-ubuntu{--fa:"\f7df"}.fa-draft2digital{--fa:"\f396"}.fa-stripe{--fa:"\f429"}.fa-houzz{--fa:"\f27c"}.fa-gg{--fa:"\f260"}.fa-dhl{--fa:"\f790"}.fa-pinterest-square,.fa-square-pinterest{--fa:"\f0d3"}.fa-xing{--fa:"\f168"}.fa-blackberry{--fa:"\f37b"}.fa-creative-commons-pd{--fa:"\f4ec"}.fa-playstation{--fa:"\f3df"}.fa-quinscape{--fa:"\f459"}.fa-less{--fa:"\f41d"}.fa-blogger-b{--fa:"\f37d"}.fa-opencart{--fa:"\f23d"}.fa-vine{--fa:"\f1ca"}.fa-signal-messenger{--fa:"\e663"}.fa-paypal{--fa:"\f1ed"}.fa-gitlab{--fa:"\f296"}.fa-typo3{--fa:"\f42b"}.fa-reddit-alien{--fa:"\f281"}.fa-yahoo{--fa:"\f19e"}.fa-dailymotion{--fa:"\e052"}.fa-affiliatetheme{--fa:"\f36b"}.fa-pied-piper-pp{--fa:"\f1a7"}.fa-bootstrap{--fa:"\f836"}.fa-odnoklassniki{--fa:"\f263"}.fa-nfc-symbol{--fa:"\e531"}.fa-mintbit{--fa:"\e62f"}.fa-ethereum{--fa:"\f42e"}.fa-speaker-deck{--fa:"\f83c"}.fa-creative-commons-nc-eu{--fa:"\f4e9"}.fa-patreon{--fa:"\f3d9"}.fa-avianex{--fa:"\f374"}.fa-ello{--fa:"\f5f1"}.fa-gofore{--fa:"\f3a7"}.fa-bimobject{--fa:"\f378"}.fa-brave-reverse{--fa:"\e63d"}.fa-facebook-f{--fa:"\f39e"}.fa-google-plus-square,.fa-square-google-plus{--fa:"\f0d4"}.fa-web-awesome{--fa:"\e682"}.fa-mandalorian{--fa:"\f50f"}.fa-first-order-alt{--fa:"\f50a"}.fa-osi{--fa:"\f41a"}.fa-google-wallet{--fa:"\f1ee"}.fa-d-and-d-beyond{--fa:"\f6ca"}.fa-periscope{--fa:"\f3da"}.fa-fulcrum{--fa:"\f50b"}.fa-cloudscale{--fa:"\f383"}.fa-forumbee{--fa:"\f211"}.fa-mizuni{--fa:"\f3cc"}.fa-schlix{--fa:"\f3ea"}.fa-square-xing,.fa-xing-square{--fa:"\f169"}.fa-bandcamp{--fa:"\f2d5"}.fa-wpforms{--fa:"\f298"}.fa-cloudversify{--fa:"\f385"}.fa-usps{--fa:"\f7e1"}.fa-megaport{--fa:"\f5a3"}.fa-magento{--fa:"\f3c4"}.fa-spotify{--fa:"\f1bc"}.fa-optin-monster{--fa:"\f23c"}.fa-fly{--fa:"\f417"}.fa-square-bluesky{--fa:"\e6a3"}.fa-aviato{--fa:"\f421"}.fa-itunes{--fa:"\f3b4"}.fa-cuttlefish{--fa:"\f38c"}.fa-blogger{--fa:"\f37c"}.fa-flickr{--fa:"\f16e"}.fa-viber{--fa:"\f409"}.fa-soundcloud{--fa:"\f1be"}.fa-digg{--fa:"\f1a6"}.fa-tencent-weibo{--fa:"\f1d5"}.fa-letterboxd{--fa:"\e62d"}.fa-symfony{--fa:"\f83d"}.fa-maxcdn{--fa:"\f136"}.fa-etsy{--fa:"\f2d7"}.fa-facebook-messenger{--fa:"\f39f"}.fa-audible{--fa:"\f373"}.fa-think-peaks{--fa:"\f731"}.fa-bilibili{--fa:"\e3d9"}.fa-erlang{--fa:"\f39d"}.fa-x-twitter{--fa:"\e61b"}.fa-cotton-bureau{--fa:"\f89e"}.fa-dashcube{--fa:"\f210"}.fa-42-group,.fa-innosoft{--fa:"\e080"}.fa-stack-exchange{--fa:"\f18d"}.fa-elementor{--fa:"\f430"}.fa-pied-piper-square,.fa-square-pied-piper{--fa:"\e01e"}.fa-creative-commons-nd{--fa:"\f4eb"}.fa-palfed{--fa:"\f3d8"}.fa-superpowers{--fa:"\f2dd"}.fa-resolving{--fa:"\f3e7"}.fa-xbox{--fa:"\f412"}.fa-square-web-awesome-stroke{--fa:"\e684"}.fa-searchengin{--fa:"\f3eb"}.fa-tiktok{--fa:"\e07b"}.fa-facebook-square,.fa-square-facebook{--fa:"\f082"}.fa-renren{--fa:"\f18b"}.fa-linux{--fa:"\f17c"}.fa-glide{--fa:"\f2a5"}.fa-linkedin{--fa:"\f08c"}.fa-hubspot{--fa:"\f3b2"}.fa-deploydog{--fa:"\f38e"}.fa-twitch{--fa:"\f1e8"}.fa-flutter{--fa:"\e694"}.fa-ravelry{--fa:"\f2d9"}.fa-mixer{--fa:"\e056"}.fa-lastfm-square,.fa-square-lastfm{--fa:"\f203"}.fa-vimeo{--fa:"\f40a"}.fa-mendeley{--fa:"\f7b3"}.fa-uniregistry{--fa:"\f404"}.fa-figma{--fa:"\f799"}.fa-creative-commons-remix{--fa:"\f4ee"}.fa-cc-amazon-pay{--fa:"\f42d"}.fa-dropbox{--fa:"\f16b"}.fa-instagram{--fa:"\f16d"}.fa-cmplid{--fa:"\e360"}.fa-upwork{--fa:"\e641"}.fa-facebook{--fa:"\f09a"}.fa-gripfire{--fa:"\f3ac"}.fa-jedi-order{--fa:"\f50e"}.fa-uikit{--fa:"\f403"}.fa-fort-awesome-alt{--fa:"\f3a3"}.fa-phabricator{--fa:"\f3db"}.fa-ussunnah{--fa:"\f407"}.fa-earlybirds{--fa:"\f39a"}.fa-trade-federation{--fa:"\f513"}.fa-autoprefixer{--fa:"\f41c"}.fa-whatsapp{--fa:"\f232"}.fa-square-upwork{--fa:"\e67c"}.fa-slideshare{--fa:"\f1e7"}.fa-google-play{--fa:"\f3ab"}.fa-viadeo{--fa:"\f2a9"}.fa-line{--fa:"\f3c0"}.fa-google-drive{--fa:"\f3aa"}.fa-servicestack{--fa:"\f3ec"}.fa-simplybuilt{--fa:"\f215"}.fa-bitbucket{--fa:"\f171"}.fa-imdb{--fa:"\f2d8"}.fa-deezer{--fa:"\e077"}.fa-raspberry-pi{--fa:"\f7bb"}.fa-jira{--fa:"\f7b1"}.fa-docker{--fa:"\f395"}.fa-screenpal{--fa:"\e570"}.fa-bluetooth{--fa:"\f293"}.fa-gitter{--fa:"\f426"}.fa-d-and-d{--fa:"\f38d"}.fa-microblog{--fa:"\e01a"}.fa-cc-diners-club{--fa:"\f24c"}.fa-gg-circle{--fa:"\f261"}.fa-pied-piper-hat{--fa:"\f4e5"}.fa-kickstarter-k{--fa:"\f3bc"}.fa-yandex{--fa:"\f413"}.fa-readme{--fa:"\f4d5"}.fa-html5{--fa:"\f13b"}.fa-sellsy{--fa:"\f213"}.fa-square-web-awesome{--fa:"\e683"}.fa-sass{--fa:"\f41e"}.fa-wirsindhandwerk,.fa-wsh{--fa:"\e2d0"}.fa-buromobelexperte{--fa:"\f37f"}.fa-salesforce{--fa:"\f83b"}.fa-octopus-deploy{--fa:"\e082"}.fa-medapps{--fa:"\f3c6"}.fa-ns8{--fa:"\f3d5"}.fa-pinterest-p{--fa:"\f231"}.fa-apper{--fa:"\f371"}.fa-fort-awesome{--fa:"\f286"}.fa-waze{--fa:"\f83f"}.fa-bluesky{--fa:"\e671"}.fa-cc-jcb{--fa:"\f24b"}.fa-snapchat,.fa-snapchat-ghost{--fa:"\f2ab"}.fa-fantasy-flight-games{--fa:"\f6dc"}.fa-rust{--fa:"\e07a"}.fa-wix{--fa:"\f5cf"}.fa-behance-square,.fa-square-behance{--fa:"\f1b5"}.fa-supple{--fa:"\f3f9"}.fa-webflow{--fa:"\e65c"}.fa-rebel{--fa:"\f1d0"}.fa-css3{--fa:"\f13c"}.fa-staylinked{--fa:"\f3f5"}.fa-kaggle{--fa:"\f5fa"}.fa-space-awesome{--fa:"\e5ac"}.fa-deviantart{--fa:"\f1bd"}.fa-cpanel{--fa:"\f388"}.fa-goodreads-g{--fa:"\f3a9"}.fa-git-square,.fa-square-git{--fa:"\f1d2"}.fa-square-tumblr,.fa-tumblr-square{--fa:"\f174"}.fa-trello{--fa:"\f181"}.fa-creative-commons-nc-jp{--fa:"\f4ea"}.fa-get-pocket{--fa:"\f265"}.fa-perbyte{--fa:"\e083"}.fa-grunt{--fa:"\f3ad"}.fa-weebly{--fa:"\f5cc"}.fa-connectdevelop{--fa:"\f20e"}.fa-leanpub{--fa:"\f212"}.fa-black-tie{--fa:"\f27e"}.fa-themeco{--fa:"\f5c6"}.fa-python{--fa:"\f3e2"}.fa-android{--fa:"\f17b"}.fa-bots{--fa:"\e340"}.fa-free-code-camp{--fa:"\f2c5"}.fa-hornbill{--fa:"\f592"}.fa-js{--fa:"\f3b8"}.fa-ideal{--fa:"\e013"}.fa-git{--fa:"\f1d3"}.fa-dev{--fa:"\f6cc"}.fa-sketch{--fa:"\f7c6"}.fa-yandex-international{--fa:"\f414"}.fa-cc-amex{--fa:"\f1f3"}.fa-uber{--fa:"\f402"}.fa-github{--fa:"\f09b"}.fa-php{--fa:"\f457"}.fa-alipay{--fa:"\f642"}.fa-youtube{--fa:"\f167"}.fa-skyatlas{--fa:"\f216"}.fa-firefox-browser{--fa:"\e007"}.fa-replyd{--fa:"\f3e6"}.fa-suse{--fa:"\f7d6"}.fa-jenkins{--fa:"\f3b6"}.fa-twitter{--fa:"\f099"}.fa-rockrms{--fa:"\f3e9"}.fa-pinterest{--fa:"\f0d2"}.fa-buffer{--fa:"\f837"}.fa-npm{--fa:"\f3d4"}.fa-yammer{--fa:"\f840"}.fa-btc{--fa:"\f15a"}.fa-dribbble{--fa:"\f17d"}.fa-stumbleupon-circle{--fa:"\f1a3"}.fa-internet-explorer{--fa:"\f26b"}.fa-stubber{--fa:"\e5c7"}.fa-telegram,.fa-telegram-plane{--fa:"\f2c6"}.fa-old-republic{--fa:"\f510"}.fa-odysee{--fa:"\e5c6"}.fa-square-whatsapp,.fa-whatsapp-square{--fa:"\f40c"}.fa-node-js{--fa:"\f3d3"}.fa-edge-legacy{--fa:"\e078"}.fa-slack,.fa-slack-hash{--fa:"\f198"}.fa-medrt{--fa:"\f3c8"}.fa-usb{--fa:"\f287"}.fa-tumblr{--fa:"\f173"}.fa-vaadin{--fa:"\f408"}.fa-quora{--fa:"\f2c4"}.fa-square-x-twitter{--fa:"\e61a"}.fa-reacteurope{--fa:"\f75d"}.fa-medium,.fa-medium-m{--fa:"\f23a"}.fa-amilia{--fa:"\f36d"}.fa-mixcloud{--fa:"\f289"}.fa-flipboard{--fa:"\f44d"}.fa-viacoin{--fa:"\f237"}.fa-critical-role{--fa:"\f6c9"}.fa-sitrox{--fa:"\e44a"}.fa-discourse{--fa:"\f393"}.fa-joomla{--fa:"\f1aa"}.fa-mastodon{--fa:"\f4f6"}.fa-airbnb{--fa:"\f834"}.fa-wolf-pack-battalion{--fa:"\f514"}.fa-buy-n-large{--fa:"\f8a6"}.fa-gulp{--fa:"\f3ae"}.fa-creative-commons-sampling-plus{--fa:"\f4f1"}.fa-strava{--fa:"\f428"}.fa-ember{--fa:"\f423"}.fa-canadian-maple-leaf{--fa:"\f785"}.fa-teamspeak{--fa:"\f4f9"}.fa-pushed{--fa:"\f3e1"}.fa-wordpress-simple{--fa:"\f411"}.fa-nutritionix{--fa:"\f3d6"}.fa-wodu{--fa:"\e088"}.fa-google-pay{--fa:"\e079"}.fa-intercom{--fa:"\f7af"}.fa-zhihu{--fa:"\f63f"}.fa-korvue{--fa:"\f42f"}.fa-pix{--fa:"\e43a"}.fa-steam-symbol{--fa:"\f3f6"} \ No newline at end of file diff --git a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/fontawesome.css b/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/fontawesome.css deleted file mode 100644 index a9b2ec8..0000000 --- a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/fontawesome.css +++ /dev/null @@ -1,6243 +0,0 @@ -/*! - * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - * Copyright 2024 Fonticons, Inc. - */ -.fa { - font-family: var(--fa-style-family, "Font Awesome 6 Free"); - font-weight: var(--fa-style, 900); } - -.fas, -.far, -.fab, -.fa-solid, -.fa-regular, -.fa-brands, -.fa { - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - display: var(--fa-display, inline-block); - font-style: normal; - font-variant: normal; - line-height: 1; - text-rendering: auto; } - -.fas::before, -.far::before, -.fab::before, -.fa-solid::before, -.fa-regular::before, -.fa-brands::before, -.fa::before { - content: var(--fa); } - -.fa-classic, -.fas, -.fa-solid, -.far, -.fa-regular { - font-family: 'Font Awesome 6 Free'; } - -.fa-brands, -.fab { - font-family: 'Font Awesome 6 Brands'; } - -.fa-1x { - font-size: 1em; } - -.fa-2x { - font-size: 2em; } - -.fa-3x { - font-size: 3em; } - -.fa-4x { - font-size: 4em; } - -.fa-5x { - font-size: 5em; } - -.fa-6x { - font-size: 6em; } - -.fa-7x { - font-size: 7em; } - -.fa-8x { - font-size: 8em; } - -.fa-9x { - font-size: 9em; } - -.fa-10x { - font-size: 10em; } - -.fa-2xs { - font-size: 0.625em; - line-height: 0.1em; - vertical-align: 0.225em; } - -.fa-xs { - font-size: 0.75em; - line-height: 0.08333em; - vertical-align: 0.125em; } - -.fa-sm { - font-size: 0.875em; - line-height: 0.07143em; - vertical-align: 0.05357em; } - -.fa-lg { - font-size: 1.25em; - line-height: 0.05em; - vertical-align: -0.075em; } - -.fa-xl { - font-size: 1.5em; - line-height: 0.04167em; - vertical-align: -0.125em; } - -.fa-2xl { - font-size: 2em; - line-height: 0.03125em; - vertical-align: -0.1875em; } - -.fa-fw { - text-align: center; - width: 1.25em; } - -.fa-ul { - list-style-type: none; - margin-left: var(--fa-li-margin, 2.5em); - padding-left: 0; } - .fa-ul > li { - position: relative; } - -.fa-li { - left: calc(-1 * var(--fa-li-width, 2em)); - position: absolute; - text-align: center; - width: var(--fa-li-width, 2em); - line-height: inherit; } - -.fa-border { - border-color: var(--fa-border-color, #eee); - border-radius: var(--fa-border-radius, 0.1em); - border-style: var(--fa-border-style, solid); - border-width: var(--fa-border-width, 0.08em); - padding: var(--fa-border-padding, 0.2em 0.25em 0.15em); } - -.fa-pull-left { - float: left; - margin-right: var(--fa-pull-margin, 0.3em); } - -.fa-pull-right { - float: right; - margin-left: var(--fa-pull-margin, 0.3em); } - -.fa-beat { - animation-name: fa-beat; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, ease-in-out); } - -.fa-bounce { - animation-name: fa-bounce; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); } - -.fa-fade { - animation-name: fa-fade; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); } - -.fa-beat-fade { - animation-name: fa-beat-fade; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); } - -.fa-flip { - animation-name: fa-flip; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, ease-in-out); } - -.fa-shake { - animation-name: fa-shake; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, linear); } - -.fa-spin { - animation-name: fa-spin; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 2s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, linear); } - -.fa-spin-reverse { - --fa-animation-direction: reverse; } - -.fa-pulse, -.fa-spin-pulse { - animation-name: fa-spin; - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, steps(8)); } - -@media (prefers-reduced-motion: reduce) { - .fa-beat, - .fa-bounce, - .fa-fade, - .fa-beat-fade, - .fa-flip, - .fa-pulse, - .fa-shake, - .fa-spin, - .fa-spin-pulse { - animation-delay: -1ms; - animation-duration: 1ms; - animation-iteration-count: 1; - transition-delay: 0s; - transition-duration: 0s; } } - -@keyframes fa-beat { - 0%, 90% { - transform: scale(1); } - 45% { - transform: scale(var(--fa-beat-scale, 1.25)); } } - -@keyframes fa-bounce { - 0% { - transform: scale(1, 1) translateY(0); } - 10% { - transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); } - 30% { - transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); } - 50% { - transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); } - 57% { - transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); } - 64% { - transform: scale(1, 1) translateY(0); } - 100% { - transform: scale(1, 1) translateY(0); } } - -@keyframes fa-fade { - 50% { - opacity: var(--fa-fade-opacity, 0.4); } } - -@keyframes fa-beat-fade { - 0%, 100% { - opacity: var(--fa-beat-fade-opacity, 0.4); - transform: scale(1); } - 50% { - opacity: 1; - transform: scale(var(--fa-beat-fade-scale, 1.125)); } } - -@keyframes fa-flip { - 50% { - transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } } - -@keyframes fa-shake { - 0% { - transform: rotate(-15deg); } - 4% { - transform: rotate(15deg); } - 8%, 24% { - transform: rotate(-18deg); } - 12%, 28% { - transform: rotate(18deg); } - 16% { - transform: rotate(-22deg); } - 20% { - transform: rotate(22deg); } - 32% { - transform: rotate(-12deg); } - 36% { - transform: rotate(12deg); } - 40%, 100% { - transform: rotate(0deg); } } - -@keyframes fa-spin { - 0% { - transform: rotate(0deg); } - 100% { - transform: rotate(360deg); } } - -.fa-rotate-90 { - transform: rotate(90deg); } - -.fa-rotate-180 { - transform: rotate(180deg); } - -.fa-rotate-270 { - transform: rotate(270deg); } - -.fa-flip-horizontal { - transform: scale(-1, 1); } - -.fa-flip-vertical { - transform: scale(1, -1); } - -.fa-flip-both, -.fa-flip-horizontal.fa-flip-vertical { - transform: scale(-1, -1); } - -.fa-rotate-by { - transform: rotate(var(--fa-rotate-angle, 0)); } - -.fa-stack { - display: inline-block; - height: 2em; - line-height: 2em; - position: relative; - vertical-align: middle; - width: 2.5em; } - -.fa-stack-1x, -.fa-stack-2x { - left: 0; - position: absolute; - text-align: center; - width: 100%; - z-index: var(--fa-stack-z-index, auto); } - -.fa-stack-1x { - line-height: inherit; } - -.fa-stack-2x { - font-size: 2em; } - -.fa-inverse { - color: var(--fa-inverse, #fff); } - -/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen -readers do not read off random characters that represent icons */ - -.fa-0 { - --fa: "\30"; } - -.fa-1 { - --fa: "\31"; } - -.fa-2 { - --fa: "\32"; } - -.fa-3 { - --fa: "\33"; } - -.fa-4 { - --fa: "\34"; } - -.fa-5 { - --fa: "\35"; } - -.fa-6 { - --fa: "\36"; } - -.fa-7 { - --fa: "\37"; } - -.fa-8 { - --fa: "\38"; } - -.fa-9 { - --fa: "\39"; } - -.fa-fill-drip { - --fa: "\f576"; } - -.fa-arrows-to-circle { - --fa: "\e4bd"; } - -.fa-circle-chevron-right { - --fa: "\f138"; } - -.fa-chevron-circle-right { - --fa: "\f138"; } - -.fa-at { - --fa: "\40"; } - -.fa-trash-can { - --fa: "\f2ed"; } - -.fa-trash-alt { - --fa: "\f2ed"; } - -.fa-text-height { - --fa: "\f034"; } - -.fa-user-xmark { - --fa: "\f235"; } - -.fa-user-times { - --fa: "\f235"; } - -.fa-stethoscope { - --fa: "\f0f1"; } - -.fa-message { - --fa: "\f27a"; } - -.fa-comment-alt { - --fa: "\f27a"; } - -.fa-info { - --fa: "\f129"; } - -.fa-down-left-and-up-right-to-center { - --fa: "\f422"; } - -.fa-compress-alt { - --fa: "\f422"; } - -.fa-explosion { - --fa: "\e4e9"; } - -.fa-file-lines { - --fa: "\f15c"; } - -.fa-file-alt { - --fa: "\f15c"; } - -.fa-file-text { - --fa: "\f15c"; } - -.fa-wave-square { - --fa: "\f83e"; } - -.fa-ring { - --fa: "\f70b"; } - -.fa-building-un { - --fa: "\e4d9"; } - -.fa-dice-three { - --fa: "\f527"; } - -.fa-calendar-days { - --fa: "\f073"; } - -.fa-calendar-alt { - --fa: "\f073"; } - -.fa-anchor-circle-check { - --fa: "\e4aa"; } - -.fa-building-circle-arrow-right { - --fa: "\e4d1"; } - -.fa-volleyball { - --fa: "\f45f"; } - -.fa-volleyball-ball { - --fa: "\f45f"; } - -.fa-arrows-up-to-line { - --fa: "\e4c2"; } - -.fa-sort-down { - --fa: "\f0dd"; } - -.fa-sort-desc { - --fa: "\f0dd"; } - -.fa-circle-minus { - --fa: "\f056"; } - -.fa-minus-circle { - --fa: "\f056"; } - -.fa-door-open { - --fa: "\f52b"; } - -.fa-right-from-bracket { - --fa: "\f2f5"; } - -.fa-sign-out-alt { - --fa: "\f2f5"; } - -.fa-atom { - --fa: "\f5d2"; } - -.fa-soap { - --fa: "\e06e"; } - -.fa-icons { - --fa: "\f86d"; } - -.fa-heart-music-camera-bolt { - --fa: "\f86d"; } - -.fa-microphone-lines-slash { - --fa: "\f539"; } - -.fa-microphone-alt-slash { - --fa: "\f539"; } - -.fa-bridge-circle-check { - --fa: "\e4c9"; } - -.fa-pump-medical { - --fa: "\e06a"; } - -.fa-fingerprint { - --fa: "\f577"; } - -.fa-hand-point-right { - --fa: "\f0a4"; } - -.fa-magnifying-glass-location { - --fa: "\f689"; } - -.fa-search-location { - --fa: "\f689"; } - -.fa-forward-step { - --fa: "\f051"; } - -.fa-step-forward { - --fa: "\f051"; } - -.fa-face-smile-beam { - --fa: "\f5b8"; } - -.fa-smile-beam { - --fa: "\f5b8"; } - -.fa-flag-checkered { - --fa: "\f11e"; } - -.fa-football { - --fa: "\f44e"; } - -.fa-football-ball { - --fa: "\f44e"; } - -.fa-school-circle-exclamation { - --fa: "\e56c"; } - -.fa-crop { - --fa: "\f125"; } - -.fa-angles-down { - --fa: "\f103"; } - -.fa-angle-double-down { - --fa: "\f103"; } - -.fa-users-rectangle { - --fa: "\e594"; } - -.fa-people-roof { - --fa: "\e537"; } - -.fa-people-line { - --fa: "\e534"; } - -.fa-beer-mug-empty { - --fa: "\f0fc"; } - -.fa-beer { - --fa: "\f0fc"; } - -.fa-diagram-predecessor { - --fa: "\e477"; } - -.fa-arrow-up-long { - --fa: "\f176"; } - -.fa-long-arrow-up { - --fa: "\f176"; } - -.fa-fire-flame-simple { - --fa: "\f46a"; } - -.fa-burn { - --fa: "\f46a"; } - -.fa-person { - --fa: "\f183"; } - -.fa-male { - --fa: "\f183"; } - -.fa-laptop { - --fa: "\f109"; } - -.fa-file-csv { - --fa: "\f6dd"; } - -.fa-menorah { - --fa: "\f676"; } - -.fa-truck-plane { - --fa: "\e58f"; } - -.fa-record-vinyl { - --fa: "\f8d9"; } - -.fa-face-grin-stars { - --fa: "\f587"; } - -.fa-grin-stars { - --fa: "\f587"; } - -.fa-bong { - --fa: "\f55c"; } - -.fa-spaghetti-monster-flying { - --fa: "\f67b"; } - -.fa-pastafarianism { - --fa: "\f67b"; } - -.fa-arrow-down-up-across-line { - --fa: "\e4af"; } - -.fa-spoon { - --fa: "\f2e5"; } - -.fa-utensil-spoon { - --fa: "\f2e5"; } - -.fa-jar-wheat { - --fa: "\e517"; } - -.fa-envelopes-bulk { - --fa: "\f674"; } - -.fa-mail-bulk { - --fa: "\f674"; } - -.fa-file-circle-exclamation { - --fa: "\e4eb"; } - -.fa-circle-h { - --fa: "\f47e"; } - -.fa-hospital-symbol { - --fa: "\f47e"; } - -.fa-pager { - --fa: "\f815"; } - -.fa-address-book { - --fa: "\f2b9"; } - -.fa-contact-book { - --fa: "\f2b9"; } - -.fa-strikethrough { - --fa: "\f0cc"; } - -.fa-k { - --fa: "\4b"; } - -.fa-landmark-flag { - --fa: "\e51c"; } - -.fa-pencil { - --fa: "\f303"; } - -.fa-pencil-alt { - --fa: "\f303"; } - -.fa-backward { - --fa: "\f04a"; } - -.fa-caret-right { - --fa: "\f0da"; } - -.fa-comments { - --fa: "\f086"; } - -.fa-paste { - --fa: "\f0ea"; } - -.fa-file-clipboard { - --fa: "\f0ea"; } - -.fa-code-pull-request { - --fa: "\e13c"; } - -.fa-clipboard-list { - --fa: "\f46d"; } - -.fa-truck-ramp-box { - --fa: "\f4de"; } - -.fa-truck-loading { - --fa: "\f4de"; } - -.fa-user-check { - --fa: "\f4fc"; } - -.fa-vial-virus { - --fa: "\e597"; } - -.fa-sheet-plastic { - --fa: "\e571"; } - -.fa-blog { - --fa: "\f781"; } - -.fa-user-ninja { - --fa: "\f504"; } - -.fa-person-arrow-up-from-line { - --fa: "\e539"; } - -.fa-scroll-torah { - --fa: "\f6a0"; } - -.fa-torah { - --fa: "\f6a0"; } - -.fa-broom-ball { - --fa: "\f458"; } - -.fa-quidditch { - --fa: "\f458"; } - -.fa-quidditch-broom-ball { - --fa: "\f458"; } - -.fa-toggle-off { - --fa: "\f204"; } - -.fa-box-archive { - --fa: "\f187"; } - -.fa-archive { - --fa: "\f187"; } - -.fa-person-drowning { - --fa: "\e545"; } - -.fa-arrow-down-9-1 { - --fa: "\f886"; } - -.fa-sort-numeric-desc { - --fa: "\f886"; } - -.fa-sort-numeric-down-alt { - --fa: "\f886"; } - -.fa-face-grin-tongue-squint { - --fa: "\f58a"; } - -.fa-grin-tongue-squint { - --fa: "\f58a"; } - -.fa-spray-can { - --fa: "\f5bd"; } - -.fa-truck-monster { - --fa: "\f63b"; } - -.fa-w { - --fa: "\57"; } - -.fa-earth-africa { - --fa: "\f57c"; } - -.fa-globe-africa { - --fa: "\f57c"; } - -.fa-rainbow { - --fa: "\f75b"; } - -.fa-circle-notch { - --fa: "\f1ce"; } - -.fa-tablet-screen-button { - --fa: "\f3fa"; } - -.fa-tablet-alt { - --fa: "\f3fa"; } - -.fa-paw { - --fa: "\f1b0"; } - -.fa-cloud { - --fa: "\f0c2"; } - -.fa-trowel-bricks { - --fa: "\e58a"; } - -.fa-face-flushed { - --fa: "\f579"; } - -.fa-flushed { - --fa: "\f579"; } - -.fa-hospital-user { - --fa: "\f80d"; } - -.fa-tent-arrow-left-right { - --fa: "\e57f"; } - -.fa-gavel { - --fa: "\f0e3"; } - -.fa-legal { - --fa: "\f0e3"; } - -.fa-binoculars { - --fa: "\f1e5"; } - -.fa-microphone-slash { - --fa: "\f131"; } - -.fa-box-tissue { - --fa: "\e05b"; } - -.fa-motorcycle { - --fa: "\f21c"; } - -.fa-bell-concierge { - --fa: "\f562"; } - -.fa-concierge-bell { - --fa: "\f562"; } - -.fa-pen-ruler { - --fa: "\f5ae"; } - -.fa-pencil-ruler { - --fa: "\f5ae"; } - -.fa-people-arrows { - --fa: "\e068"; } - -.fa-people-arrows-left-right { - --fa: "\e068"; } - -.fa-mars-and-venus-burst { - --fa: "\e523"; } - -.fa-square-caret-right { - --fa: "\f152"; } - -.fa-caret-square-right { - --fa: "\f152"; } - -.fa-scissors { - --fa: "\f0c4"; } - -.fa-cut { - --fa: "\f0c4"; } - -.fa-sun-plant-wilt { - --fa: "\e57a"; } - -.fa-toilets-portable { - --fa: "\e584"; } - -.fa-hockey-puck { - --fa: "\f453"; } - -.fa-table { - --fa: "\f0ce"; } - -.fa-magnifying-glass-arrow-right { - --fa: "\e521"; } - -.fa-tachograph-digital { - --fa: "\f566"; } - -.fa-digital-tachograph { - --fa: "\f566"; } - -.fa-users-slash { - --fa: "\e073"; } - -.fa-clover { - --fa: "\e139"; } - -.fa-reply { - --fa: "\f3e5"; } - -.fa-mail-reply { - --fa: "\f3e5"; } - -.fa-star-and-crescent { - --fa: "\f699"; } - -.fa-house-fire { - --fa: "\e50c"; } - -.fa-square-minus { - --fa: "\f146"; } - -.fa-minus-square { - --fa: "\f146"; } - -.fa-helicopter { - --fa: "\f533"; } - -.fa-compass { - --fa: "\f14e"; } - -.fa-square-caret-down { - --fa: "\f150"; } - -.fa-caret-square-down { - --fa: "\f150"; } - -.fa-file-circle-question { - --fa: "\e4ef"; } - -.fa-laptop-code { - --fa: "\f5fc"; } - -.fa-swatchbook { - --fa: "\f5c3"; } - -.fa-prescription-bottle { - --fa: "\f485"; } - -.fa-bars { - --fa: "\f0c9"; } - -.fa-navicon { - --fa: "\f0c9"; } - -.fa-people-group { - --fa: "\e533"; } - -.fa-hourglass-end { - --fa: "\f253"; } - -.fa-hourglass-3 { - --fa: "\f253"; } - -.fa-heart-crack { - --fa: "\f7a9"; } - -.fa-heart-broken { - --fa: "\f7a9"; } - -.fa-square-up-right { - --fa: "\f360"; } - -.fa-external-link-square-alt { - --fa: "\f360"; } - -.fa-face-kiss-beam { - --fa: "\f597"; } - -.fa-kiss-beam { - --fa: "\f597"; } - -.fa-film { - --fa: "\f008"; } - -.fa-ruler-horizontal { - --fa: "\f547"; } - -.fa-people-robbery { - --fa: "\e536"; } - -.fa-lightbulb { - --fa: "\f0eb"; } - -.fa-caret-left { - --fa: "\f0d9"; } - -.fa-circle-exclamation { - --fa: "\f06a"; } - -.fa-exclamation-circle { - --fa: "\f06a"; } - -.fa-school-circle-xmark { - --fa: "\e56d"; } - -.fa-arrow-right-from-bracket { - --fa: "\f08b"; } - -.fa-sign-out { - --fa: "\f08b"; } - -.fa-circle-chevron-down { - --fa: "\f13a"; } - -.fa-chevron-circle-down { - --fa: "\f13a"; } - -.fa-unlock-keyhole { - --fa: "\f13e"; } - -.fa-unlock-alt { - --fa: "\f13e"; } - -.fa-cloud-showers-heavy { - --fa: "\f740"; } - -.fa-headphones-simple { - --fa: "\f58f"; } - -.fa-headphones-alt { - --fa: "\f58f"; } - -.fa-sitemap { - --fa: "\f0e8"; } - -.fa-circle-dollar-to-slot { - --fa: "\f4b9"; } - -.fa-donate { - --fa: "\f4b9"; } - -.fa-memory { - --fa: "\f538"; } - -.fa-road-spikes { - --fa: "\e568"; } - -.fa-fire-burner { - --fa: "\e4f1"; } - -.fa-flag { - --fa: "\f024"; } - -.fa-hanukiah { - --fa: "\f6e6"; } - -.fa-feather { - --fa: "\f52d"; } - -.fa-volume-low { - --fa: "\f027"; } - -.fa-volume-down { - --fa: "\f027"; } - -.fa-comment-slash { - --fa: "\f4b3"; } - -.fa-cloud-sun-rain { - --fa: "\f743"; } - -.fa-compress { - --fa: "\f066"; } - -.fa-wheat-awn { - --fa: "\e2cd"; } - -.fa-wheat-alt { - --fa: "\e2cd"; } - -.fa-ankh { - --fa: "\f644"; } - -.fa-hands-holding-child { - --fa: "\e4fa"; } - -.fa-asterisk { - --fa: "\2a"; } - -.fa-square-check { - --fa: "\f14a"; } - -.fa-check-square { - --fa: "\f14a"; } - -.fa-peseta-sign { - --fa: "\e221"; } - -.fa-heading { - --fa: "\f1dc"; } - -.fa-header { - --fa: "\f1dc"; } - -.fa-ghost { - --fa: "\f6e2"; } - -.fa-list { - --fa: "\f03a"; } - -.fa-list-squares { - --fa: "\f03a"; } - -.fa-square-phone-flip { - --fa: "\f87b"; } - -.fa-phone-square-alt { - --fa: "\f87b"; } - -.fa-cart-plus { - --fa: "\f217"; } - -.fa-gamepad { - --fa: "\f11b"; } - -.fa-circle-dot { - --fa: "\f192"; } - -.fa-dot-circle { - --fa: "\f192"; } - -.fa-face-dizzy { - --fa: "\f567"; } - -.fa-dizzy { - --fa: "\f567"; } - -.fa-egg { - --fa: "\f7fb"; } - -.fa-house-medical-circle-xmark { - --fa: "\e513"; } - -.fa-campground { - --fa: "\f6bb"; } - -.fa-folder-plus { - --fa: "\f65e"; } - -.fa-futbol { - --fa: "\f1e3"; } - -.fa-futbol-ball { - --fa: "\f1e3"; } - -.fa-soccer-ball { - --fa: "\f1e3"; } - -.fa-paintbrush { - --fa: "\f1fc"; } - -.fa-paint-brush { - --fa: "\f1fc"; } - -.fa-lock { - --fa: "\f023"; } - -.fa-gas-pump { - --fa: "\f52f"; } - -.fa-hot-tub-person { - --fa: "\f593"; } - -.fa-hot-tub { - --fa: "\f593"; } - -.fa-map-location { - --fa: "\f59f"; } - -.fa-map-marked { - --fa: "\f59f"; } - -.fa-house-flood-water { - --fa: "\e50e"; } - -.fa-tree { - --fa: "\f1bb"; } - -.fa-bridge-lock { - --fa: "\e4cc"; } - -.fa-sack-dollar { - --fa: "\f81d"; } - -.fa-pen-to-square { - --fa: "\f044"; } - -.fa-edit { - --fa: "\f044"; } - -.fa-car-side { - --fa: "\f5e4"; } - -.fa-share-nodes { - --fa: "\f1e0"; } - -.fa-share-alt { - --fa: "\f1e0"; } - -.fa-heart-circle-minus { - --fa: "\e4ff"; } - -.fa-hourglass-half { - --fa: "\f252"; } - -.fa-hourglass-2 { - --fa: "\f252"; } - -.fa-microscope { - --fa: "\f610"; } - -.fa-sink { - --fa: "\e06d"; } - -.fa-bag-shopping { - --fa: "\f290"; } - -.fa-shopping-bag { - --fa: "\f290"; } - -.fa-arrow-down-z-a { - --fa: "\f881"; } - -.fa-sort-alpha-desc { - --fa: "\f881"; } - -.fa-sort-alpha-down-alt { - --fa: "\f881"; } - -.fa-mitten { - --fa: "\f7b5"; } - -.fa-person-rays { - --fa: "\e54d"; } - -.fa-users { - --fa: "\f0c0"; } - -.fa-eye-slash { - --fa: "\f070"; } - -.fa-flask-vial { - --fa: "\e4f3"; } - -.fa-hand { - --fa: "\f256"; } - -.fa-hand-paper { - --fa: "\f256"; } - -.fa-om { - --fa: "\f679"; } - -.fa-worm { - --fa: "\e599"; } - -.fa-house-circle-xmark { - --fa: "\e50b"; } - -.fa-plug { - --fa: "\f1e6"; } - -.fa-chevron-up { - --fa: "\f077"; } - -.fa-hand-spock { - --fa: "\f259"; } - -.fa-stopwatch { - --fa: "\f2f2"; } - -.fa-face-kiss { - --fa: "\f596"; } - -.fa-kiss { - --fa: "\f596"; } - -.fa-bridge-circle-xmark { - --fa: "\e4cb"; } - -.fa-face-grin-tongue { - --fa: "\f589"; } - -.fa-grin-tongue { - --fa: "\f589"; } - -.fa-chess-bishop { - --fa: "\f43a"; } - -.fa-face-grin-wink { - --fa: "\f58c"; } - -.fa-grin-wink { - --fa: "\f58c"; } - -.fa-ear-deaf { - --fa: "\f2a4"; } - -.fa-deaf { - --fa: "\f2a4"; } - -.fa-deafness { - --fa: "\f2a4"; } - -.fa-hard-of-hearing { - --fa: "\f2a4"; } - -.fa-road-circle-check { - --fa: "\e564"; } - -.fa-dice-five { - --fa: "\f523"; } - -.fa-square-rss { - --fa: "\f143"; } - -.fa-rss-square { - --fa: "\f143"; } - -.fa-land-mine-on { - --fa: "\e51b"; } - -.fa-i-cursor { - --fa: "\f246"; } - -.fa-stamp { - --fa: "\f5bf"; } - -.fa-stairs { - --fa: "\e289"; } - -.fa-i { - --fa: "\49"; } - -.fa-hryvnia-sign { - --fa: "\f6f2"; } - -.fa-hryvnia { - --fa: "\f6f2"; } - -.fa-pills { - --fa: "\f484"; } - -.fa-face-grin-wide { - --fa: "\f581"; } - -.fa-grin-alt { - --fa: "\f581"; } - -.fa-tooth { - --fa: "\f5c9"; } - -.fa-v { - --fa: "\56"; } - -.fa-bangladeshi-taka-sign { - --fa: "\e2e6"; } - -.fa-bicycle { - --fa: "\f206"; } - -.fa-staff-snake { - --fa: "\e579"; } - -.fa-rod-asclepius { - --fa: "\e579"; } - -.fa-rod-snake { - --fa: "\e579"; } - -.fa-staff-aesculapius { - --fa: "\e579"; } - -.fa-head-side-cough-slash { - --fa: "\e062"; } - -.fa-truck-medical { - --fa: "\f0f9"; } - -.fa-ambulance { - --fa: "\f0f9"; } - -.fa-wheat-awn-circle-exclamation { - --fa: "\e598"; } - -.fa-snowman { - --fa: "\f7d0"; } - -.fa-mortar-pestle { - --fa: "\f5a7"; } - -.fa-road-barrier { - --fa: "\e562"; } - -.fa-school { - --fa: "\f549"; } - -.fa-igloo { - --fa: "\f7ae"; } - -.fa-joint { - --fa: "\f595"; } - -.fa-angle-right { - --fa: "\f105"; } - -.fa-horse { - --fa: "\f6f0"; } - -.fa-q { - --fa: "\51"; } - -.fa-g { - --fa: "\47"; } - -.fa-notes-medical { - --fa: "\f481"; } - -.fa-temperature-half { - --fa: "\f2c9"; } - -.fa-temperature-2 { - --fa: "\f2c9"; } - -.fa-thermometer-2 { - --fa: "\f2c9"; } - -.fa-thermometer-half { - --fa: "\f2c9"; } - -.fa-dong-sign { - --fa: "\e169"; } - -.fa-capsules { - --fa: "\f46b"; } - -.fa-poo-storm { - --fa: "\f75a"; } - -.fa-poo-bolt { - --fa: "\f75a"; } - -.fa-face-frown-open { - --fa: "\f57a"; } - -.fa-frown-open { - --fa: "\f57a"; } - -.fa-hand-point-up { - --fa: "\f0a6"; } - -.fa-money-bill { - --fa: "\f0d6"; } - -.fa-bookmark { - --fa: "\f02e"; } - -.fa-align-justify { - --fa: "\f039"; } - -.fa-umbrella-beach { - --fa: "\f5ca"; } - -.fa-helmet-un { - --fa: "\e503"; } - -.fa-bullseye { - --fa: "\f140"; } - -.fa-bacon { - --fa: "\f7e5"; } - -.fa-hand-point-down { - --fa: "\f0a7"; } - -.fa-arrow-up-from-bracket { - --fa: "\e09a"; } - -.fa-folder { - --fa: "\f07b"; } - -.fa-folder-blank { - --fa: "\f07b"; } - -.fa-file-waveform { - --fa: "\f478"; } - -.fa-file-medical-alt { - --fa: "\f478"; } - -.fa-radiation { - --fa: "\f7b9"; } - -.fa-chart-simple { - --fa: "\e473"; } - -.fa-mars-stroke { - --fa: "\f229"; } - -.fa-vial { - --fa: "\f492"; } - -.fa-gauge { - --fa: "\f624"; } - -.fa-dashboard { - --fa: "\f624"; } - -.fa-gauge-med { - --fa: "\f624"; } - -.fa-tachometer-alt-average { - --fa: "\f624"; } - -.fa-wand-magic-sparkles { - --fa: "\e2ca"; } - -.fa-magic-wand-sparkles { - --fa: "\e2ca"; } - -.fa-e { - --fa: "\45"; } - -.fa-pen-clip { - --fa: "\f305"; } - -.fa-pen-alt { - --fa: "\f305"; } - -.fa-bridge-circle-exclamation { - --fa: "\e4ca"; } - -.fa-user { - --fa: "\f007"; } - -.fa-school-circle-check { - --fa: "\e56b"; } - -.fa-dumpster { - --fa: "\f793"; } - -.fa-van-shuttle { - --fa: "\f5b6"; } - -.fa-shuttle-van { - --fa: "\f5b6"; } - -.fa-building-user { - --fa: "\e4da"; } - -.fa-square-caret-left { - --fa: "\f191"; } - -.fa-caret-square-left { - --fa: "\f191"; } - -.fa-highlighter { - --fa: "\f591"; } - -.fa-key { - --fa: "\f084"; } - -.fa-bullhorn { - --fa: "\f0a1"; } - -.fa-globe { - --fa: "\f0ac"; } - -.fa-synagogue { - --fa: "\f69b"; } - -.fa-person-half-dress { - --fa: "\e548"; } - -.fa-road-bridge { - --fa: "\e563"; } - -.fa-location-arrow { - --fa: "\f124"; } - -.fa-c { - --fa: "\43"; } - -.fa-tablet-button { - --fa: "\f10a"; } - -.fa-building-lock { - --fa: "\e4d6"; } - -.fa-pizza-slice { - --fa: "\f818"; } - -.fa-money-bill-wave { - --fa: "\f53a"; } - -.fa-chart-area { - --fa: "\f1fe"; } - -.fa-area-chart { - --fa: "\f1fe"; } - -.fa-house-flag { - --fa: "\e50d"; } - -.fa-person-circle-minus { - --fa: "\e540"; } - -.fa-ban { - --fa: "\f05e"; } - -.fa-cancel { - --fa: "\f05e"; } - -.fa-camera-rotate { - --fa: "\e0d8"; } - -.fa-spray-can-sparkles { - --fa: "\f5d0"; } - -.fa-air-freshener { - --fa: "\f5d0"; } - -.fa-star { - --fa: "\f005"; } - -.fa-repeat { - --fa: "\f363"; } - -.fa-cross { - --fa: "\f654"; } - -.fa-box { - --fa: "\f466"; } - -.fa-venus-mars { - --fa: "\f228"; } - -.fa-arrow-pointer { - --fa: "\f245"; } - -.fa-mouse-pointer { - --fa: "\f245"; } - -.fa-maximize { - --fa: "\f31e"; } - -.fa-expand-arrows-alt { - --fa: "\f31e"; } - -.fa-charging-station { - --fa: "\f5e7"; } - -.fa-shapes { - --fa: "\f61f"; } - -.fa-triangle-circle-square { - --fa: "\f61f"; } - -.fa-shuffle { - --fa: "\f074"; } - -.fa-random { - --fa: "\f074"; } - -.fa-person-running { - --fa: "\f70c"; } - -.fa-running { - --fa: "\f70c"; } - -.fa-mobile-retro { - --fa: "\e527"; } - -.fa-grip-lines-vertical { - --fa: "\f7a5"; } - -.fa-spider { - --fa: "\f717"; } - -.fa-hands-bound { - --fa: "\e4f9"; } - -.fa-file-invoice-dollar { - --fa: "\f571"; } - -.fa-plane-circle-exclamation { - --fa: "\e556"; } - -.fa-x-ray { - --fa: "\f497"; } - -.fa-spell-check { - --fa: "\f891"; } - -.fa-slash { - --fa: "\f715"; } - -.fa-computer-mouse { - --fa: "\f8cc"; } - -.fa-mouse { - --fa: "\f8cc"; } - -.fa-arrow-right-to-bracket { - --fa: "\f090"; } - -.fa-sign-in { - --fa: "\f090"; } - -.fa-shop-slash { - --fa: "\e070"; } - -.fa-store-alt-slash { - --fa: "\e070"; } - -.fa-server { - --fa: "\f233"; } - -.fa-virus-covid-slash { - --fa: "\e4a9"; } - -.fa-shop-lock { - --fa: "\e4a5"; } - -.fa-hourglass-start { - --fa: "\f251"; } - -.fa-hourglass-1 { - --fa: "\f251"; } - -.fa-blender-phone { - --fa: "\f6b6"; } - -.fa-building-wheat { - --fa: "\e4db"; } - -.fa-person-breastfeeding { - --fa: "\e53a"; } - -.fa-right-to-bracket { - --fa: "\f2f6"; } - -.fa-sign-in-alt { - --fa: "\f2f6"; } - -.fa-venus { - --fa: "\f221"; } - -.fa-passport { - --fa: "\f5ab"; } - -.fa-thumbtack-slash { - --fa: "\e68f"; } - -.fa-thumb-tack-slash { - --fa: "\e68f"; } - -.fa-heart-pulse { - --fa: "\f21e"; } - -.fa-heartbeat { - --fa: "\f21e"; } - -.fa-people-carry-box { - --fa: "\f4ce"; } - -.fa-people-carry { - --fa: "\f4ce"; } - -.fa-temperature-high { - --fa: "\f769"; } - -.fa-microchip { - --fa: "\f2db"; } - -.fa-crown { - --fa: "\f521"; } - -.fa-weight-hanging { - --fa: "\f5cd"; } - -.fa-xmarks-lines { - --fa: "\e59a"; } - -.fa-file-prescription { - --fa: "\f572"; } - -.fa-weight-scale { - --fa: "\f496"; } - -.fa-weight { - --fa: "\f496"; } - -.fa-user-group { - --fa: "\f500"; } - -.fa-user-friends { - --fa: "\f500"; } - -.fa-arrow-up-a-z { - --fa: "\f15e"; } - -.fa-sort-alpha-up { - --fa: "\f15e"; } - -.fa-chess-knight { - --fa: "\f441"; } - -.fa-face-laugh-squint { - --fa: "\f59b"; } - -.fa-laugh-squint { - --fa: "\f59b"; } - -.fa-wheelchair { - --fa: "\f193"; } - -.fa-circle-arrow-up { - --fa: "\f0aa"; } - -.fa-arrow-circle-up { - --fa: "\f0aa"; } - -.fa-toggle-on { - --fa: "\f205"; } - -.fa-person-walking { - --fa: "\f554"; } - -.fa-walking { - --fa: "\f554"; } - -.fa-l { - --fa: "\4c"; } - -.fa-fire { - --fa: "\f06d"; } - -.fa-bed-pulse { - --fa: "\f487"; } - -.fa-procedures { - --fa: "\f487"; } - -.fa-shuttle-space { - --fa: "\f197"; } - -.fa-space-shuttle { - --fa: "\f197"; } - -.fa-face-laugh { - --fa: "\f599"; } - -.fa-laugh { - --fa: "\f599"; } - -.fa-folder-open { - --fa: "\f07c"; } - -.fa-heart-circle-plus { - --fa: "\e500"; } - -.fa-code-fork { - --fa: "\e13b"; } - -.fa-city { - --fa: "\f64f"; } - -.fa-microphone-lines { - --fa: "\f3c9"; } - -.fa-microphone-alt { - --fa: "\f3c9"; } - -.fa-pepper-hot { - --fa: "\f816"; } - -.fa-unlock { - --fa: "\f09c"; } - -.fa-colon-sign { - --fa: "\e140"; } - -.fa-headset { - --fa: "\f590"; } - -.fa-store-slash { - --fa: "\e071"; } - -.fa-road-circle-xmark { - --fa: "\e566"; } - -.fa-user-minus { - --fa: "\f503"; } - -.fa-mars-stroke-up { - --fa: "\f22a"; } - -.fa-mars-stroke-v { - --fa: "\f22a"; } - -.fa-champagne-glasses { - --fa: "\f79f"; } - -.fa-glass-cheers { - --fa: "\f79f"; } - -.fa-clipboard { - --fa: "\f328"; } - -.fa-house-circle-exclamation { - --fa: "\e50a"; } - -.fa-file-arrow-up { - --fa: "\f574"; } - -.fa-file-upload { - --fa: "\f574"; } - -.fa-wifi { - --fa: "\f1eb"; } - -.fa-wifi-3 { - --fa: "\f1eb"; } - -.fa-wifi-strong { - --fa: "\f1eb"; } - -.fa-bath { - --fa: "\f2cd"; } - -.fa-bathtub { - --fa: "\f2cd"; } - -.fa-underline { - --fa: "\f0cd"; } - -.fa-user-pen { - --fa: "\f4ff"; } - -.fa-user-edit { - --fa: "\f4ff"; } - -.fa-signature { - --fa: "\f5b7"; } - -.fa-stroopwafel { - --fa: "\f551"; } - -.fa-bold { - --fa: "\f032"; } - -.fa-anchor-lock { - --fa: "\e4ad"; } - -.fa-building-ngo { - --fa: "\e4d7"; } - -.fa-manat-sign { - --fa: "\e1d5"; } - -.fa-not-equal { - --fa: "\f53e"; } - -.fa-border-top-left { - --fa: "\f853"; } - -.fa-border-style { - --fa: "\f853"; } - -.fa-map-location-dot { - --fa: "\f5a0"; } - -.fa-map-marked-alt { - --fa: "\f5a0"; } - -.fa-jedi { - --fa: "\f669"; } - -.fa-square-poll-vertical { - --fa: "\f681"; } - -.fa-poll { - --fa: "\f681"; } - -.fa-mug-hot { - --fa: "\f7b6"; } - -.fa-car-battery { - --fa: "\f5df"; } - -.fa-battery-car { - --fa: "\f5df"; } - -.fa-gift { - --fa: "\f06b"; } - -.fa-dice-two { - --fa: "\f528"; } - -.fa-chess-queen { - --fa: "\f445"; } - -.fa-glasses { - --fa: "\f530"; } - -.fa-chess-board { - --fa: "\f43c"; } - -.fa-building-circle-check { - --fa: "\e4d2"; } - -.fa-person-chalkboard { - --fa: "\e53d"; } - -.fa-mars-stroke-right { - --fa: "\f22b"; } - -.fa-mars-stroke-h { - --fa: "\f22b"; } - -.fa-hand-back-fist { - --fa: "\f255"; } - -.fa-hand-rock { - --fa: "\f255"; } - -.fa-square-caret-up { - --fa: "\f151"; } - -.fa-caret-square-up { - --fa: "\f151"; } - -.fa-cloud-showers-water { - --fa: "\e4e4"; } - -.fa-chart-bar { - --fa: "\f080"; } - -.fa-bar-chart { - --fa: "\f080"; } - -.fa-hands-bubbles { - --fa: "\e05e"; } - -.fa-hands-wash { - --fa: "\e05e"; } - -.fa-less-than-equal { - --fa: "\f537"; } - -.fa-train { - --fa: "\f238"; } - -.fa-eye-low-vision { - --fa: "\f2a8"; } - -.fa-low-vision { - --fa: "\f2a8"; } - -.fa-crow { - --fa: "\f520"; } - -.fa-sailboat { - --fa: "\e445"; } - -.fa-window-restore { - --fa: "\f2d2"; } - -.fa-square-plus { - --fa: "\f0fe"; } - -.fa-plus-square { - --fa: "\f0fe"; } - -.fa-torii-gate { - --fa: "\f6a1"; } - -.fa-frog { - --fa: "\f52e"; } - -.fa-bucket { - --fa: "\e4cf"; } - -.fa-image { - --fa: "\f03e"; } - -.fa-microphone { - --fa: "\f130"; } - -.fa-cow { - --fa: "\f6c8"; } - -.fa-caret-up { - --fa: "\f0d8"; } - -.fa-screwdriver { - --fa: "\f54a"; } - -.fa-folder-closed { - --fa: "\e185"; } - -.fa-house-tsunami { - --fa: "\e515"; } - -.fa-square-nfi { - --fa: "\e576"; } - -.fa-arrow-up-from-ground-water { - --fa: "\e4b5"; } - -.fa-martini-glass { - --fa: "\f57b"; } - -.fa-glass-martini-alt { - --fa: "\f57b"; } - -.fa-square-binary { - --fa: "\e69b"; } - -.fa-rotate-left { - --fa: "\f2ea"; } - -.fa-rotate-back { - --fa: "\f2ea"; } - -.fa-rotate-backward { - --fa: "\f2ea"; } - -.fa-undo-alt { - --fa: "\f2ea"; } - -.fa-table-columns { - --fa: "\f0db"; } - -.fa-columns { - --fa: "\f0db"; } - -.fa-lemon { - --fa: "\f094"; } - -.fa-head-side-mask { - --fa: "\e063"; } - -.fa-handshake { - --fa: "\f2b5"; } - -.fa-gem { - --fa: "\f3a5"; } - -.fa-dolly { - --fa: "\f472"; } - -.fa-dolly-box { - --fa: "\f472"; } - -.fa-smoking { - --fa: "\f48d"; } - -.fa-minimize { - --fa: "\f78c"; } - -.fa-compress-arrows-alt { - --fa: "\f78c"; } - -.fa-monument { - --fa: "\f5a6"; } - -.fa-snowplow { - --fa: "\f7d2"; } - -.fa-angles-right { - --fa: "\f101"; } - -.fa-angle-double-right { - --fa: "\f101"; } - -.fa-cannabis { - --fa: "\f55f"; } - -.fa-circle-play { - --fa: "\f144"; } - -.fa-play-circle { - --fa: "\f144"; } - -.fa-tablets { - --fa: "\f490"; } - -.fa-ethernet { - --fa: "\f796"; } - -.fa-euro-sign { - --fa: "\f153"; } - -.fa-eur { - --fa: "\f153"; } - -.fa-euro { - --fa: "\f153"; } - -.fa-chair { - --fa: "\f6c0"; } - -.fa-circle-check { - --fa: "\f058"; } - -.fa-check-circle { - --fa: "\f058"; } - -.fa-circle-stop { - --fa: "\f28d"; } - -.fa-stop-circle { - --fa: "\f28d"; } - -.fa-compass-drafting { - --fa: "\f568"; } - -.fa-drafting-compass { - --fa: "\f568"; } - -.fa-plate-wheat { - --fa: "\e55a"; } - -.fa-icicles { - --fa: "\f7ad"; } - -.fa-person-shelter { - --fa: "\e54f"; } - -.fa-neuter { - --fa: "\f22c"; } - -.fa-id-badge { - --fa: "\f2c1"; } - -.fa-marker { - --fa: "\f5a1"; } - -.fa-face-laugh-beam { - --fa: "\f59a"; } - -.fa-laugh-beam { - --fa: "\f59a"; } - -.fa-helicopter-symbol { - --fa: "\e502"; } - -.fa-universal-access { - --fa: "\f29a"; } - -.fa-circle-chevron-up { - --fa: "\f139"; } - -.fa-chevron-circle-up { - --fa: "\f139"; } - -.fa-lari-sign { - --fa: "\e1c8"; } - -.fa-volcano { - --fa: "\f770"; } - -.fa-person-walking-dashed-line-arrow-right { - --fa: "\e553"; } - -.fa-sterling-sign { - --fa: "\f154"; } - -.fa-gbp { - --fa: "\f154"; } - -.fa-pound-sign { - --fa: "\f154"; } - -.fa-viruses { - --fa: "\e076"; } - -.fa-square-person-confined { - --fa: "\e577"; } - -.fa-user-tie { - --fa: "\f508"; } - -.fa-arrow-down-long { - --fa: "\f175"; } - -.fa-long-arrow-down { - --fa: "\f175"; } - -.fa-tent-arrow-down-to-line { - --fa: "\e57e"; } - -.fa-certificate { - --fa: "\f0a3"; } - -.fa-reply-all { - --fa: "\f122"; } - -.fa-mail-reply-all { - --fa: "\f122"; } - -.fa-suitcase { - --fa: "\f0f2"; } - -.fa-person-skating { - --fa: "\f7c5"; } - -.fa-skating { - --fa: "\f7c5"; } - -.fa-filter-circle-dollar { - --fa: "\f662"; } - -.fa-funnel-dollar { - --fa: "\f662"; } - -.fa-camera-retro { - --fa: "\f083"; } - -.fa-circle-arrow-down { - --fa: "\f0ab"; } - -.fa-arrow-circle-down { - --fa: "\f0ab"; } - -.fa-file-import { - --fa: "\f56f"; } - -.fa-arrow-right-to-file { - --fa: "\f56f"; } - -.fa-square-arrow-up-right { - --fa: "\f14c"; } - -.fa-external-link-square { - --fa: "\f14c"; } - -.fa-box-open { - --fa: "\f49e"; } - -.fa-scroll { - --fa: "\f70e"; } - -.fa-spa { - --fa: "\f5bb"; } - -.fa-location-pin-lock { - --fa: "\e51f"; } - -.fa-pause { - --fa: "\f04c"; } - -.fa-hill-avalanche { - --fa: "\e507"; } - -.fa-temperature-empty { - --fa: "\f2cb"; } - -.fa-temperature-0 { - --fa: "\f2cb"; } - -.fa-thermometer-0 { - --fa: "\f2cb"; } - -.fa-thermometer-empty { - --fa: "\f2cb"; } - -.fa-bomb { - --fa: "\f1e2"; } - -.fa-registered { - --fa: "\f25d"; } - -.fa-address-card { - --fa: "\f2bb"; } - -.fa-contact-card { - --fa: "\f2bb"; } - -.fa-vcard { - --fa: "\f2bb"; } - -.fa-scale-unbalanced-flip { - --fa: "\f516"; } - -.fa-balance-scale-right { - --fa: "\f516"; } - -.fa-subscript { - --fa: "\f12c"; } - -.fa-diamond-turn-right { - --fa: "\f5eb"; } - -.fa-directions { - --fa: "\f5eb"; } - -.fa-burst { - --fa: "\e4dc"; } - -.fa-house-laptop { - --fa: "\e066"; } - -.fa-laptop-house { - --fa: "\e066"; } - -.fa-face-tired { - --fa: "\f5c8"; } - -.fa-tired { - --fa: "\f5c8"; } - -.fa-money-bills { - --fa: "\e1f3"; } - -.fa-smog { - --fa: "\f75f"; } - -.fa-crutch { - --fa: "\f7f7"; } - -.fa-cloud-arrow-up { - --fa: "\f0ee"; } - -.fa-cloud-upload { - --fa: "\f0ee"; } - -.fa-cloud-upload-alt { - --fa: "\f0ee"; } - -.fa-palette { - --fa: "\f53f"; } - -.fa-arrows-turn-right { - --fa: "\e4c0"; } - -.fa-vest { - --fa: "\e085"; } - -.fa-ferry { - --fa: "\e4ea"; } - -.fa-arrows-down-to-people { - --fa: "\e4b9"; } - -.fa-seedling { - --fa: "\f4d8"; } - -.fa-sprout { - --fa: "\f4d8"; } - -.fa-left-right { - --fa: "\f337"; } - -.fa-arrows-alt-h { - --fa: "\f337"; } - -.fa-boxes-packing { - --fa: "\e4c7"; } - -.fa-circle-arrow-left { - --fa: "\f0a8"; } - -.fa-arrow-circle-left { - --fa: "\f0a8"; } - -.fa-group-arrows-rotate { - --fa: "\e4f6"; } - -.fa-bowl-food { - --fa: "\e4c6"; } - -.fa-candy-cane { - --fa: "\f786"; } - -.fa-arrow-down-wide-short { - --fa: "\f160"; } - -.fa-sort-amount-asc { - --fa: "\f160"; } - -.fa-sort-amount-down { - --fa: "\f160"; } - -.fa-cloud-bolt { - --fa: "\f76c"; } - -.fa-thunderstorm { - --fa: "\f76c"; } - -.fa-text-slash { - --fa: "\f87d"; } - -.fa-remove-format { - --fa: "\f87d"; } - -.fa-face-smile-wink { - --fa: "\f4da"; } - -.fa-smile-wink { - --fa: "\f4da"; } - -.fa-file-word { - --fa: "\f1c2"; } - -.fa-file-powerpoint { - --fa: "\f1c4"; } - -.fa-arrows-left-right { - --fa: "\f07e"; } - -.fa-arrows-h { - --fa: "\f07e"; } - -.fa-house-lock { - --fa: "\e510"; } - -.fa-cloud-arrow-down { - --fa: "\f0ed"; } - -.fa-cloud-download { - --fa: "\f0ed"; } - -.fa-cloud-download-alt { - --fa: "\f0ed"; } - -.fa-children { - --fa: "\e4e1"; } - -.fa-chalkboard { - --fa: "\f51b"; } - -.fa-blackboard { - --fa: "\f51b"; } - -.fa-user-large-slash { - --fa: "\f4fa"; } - -.fa-user-alt-slash { - --fa: "\f4fa"; } - -.fa-envelope-open { - --fa: "\f2b6"; } - -.fa-handshake-simple-slash { - --fa: "\e05f"; } - -.fa-handshake-alt-slash { - --fa: "\e05f"; } - -.fa-mattress-pillow { - --fa: "\e525"; } - -.fa-guarani-sign { - --fa: "\e19a"; } - -.fa-arrows-rotate { - --fa: "\f021"; } - -.fa-refresh { - --fa: "\f021"; } - -.fa-sync { - --fa: "\f021"; } - -.fa-fire-extinguisher { - --fa: "\f134"; } - -.fa-cruzeiro-sign { - --fa: "\e152"; } - -.fa-greater-than-equal { - --fa: "\f532"; } - -.fa-shield-halved { - --fa: "\f3ed"; } - -.fa-shield-alt { - --fa: "\f3ed"; } - -.fa-book-atlas { - --fa: "\f558"; } - -.fa-atlas { - --fa: "\f558"; } - -.fa-virus { - --fa: "\e074"; } - -.fa-envelope-circle-check { - --fa: "\e4e8"; } - -.fa-layer-group { - --fa: "\f5fd"; } - -.fa-arrows-to-dot { - --fa: "\e4be"; } - -.fa-archway { - --fa: "\f557"; } - -.fa-heart-circle-check { - --fa: "\e4fd"; } - -.fa-house-chimney-crack { - --fa: "\f6f1"; } - -.fa-house-damage { - --fa: "\f6f1"; } - -.fa-file-zipper { - --fa: "\f1c6"; } - -.fa-file-archive { - --fa: "\f1c6"; } - -.fa-square { - --fa: "\f0c8"; } - -.fa-martini-glass-empty { - --fa: "\f000"; } - -.fa-glass-martini { - --fa: "\f000"; } - -.fa-couch { - --fa: "\f4b8"; } - -.fa-cedi-sign { - --fa: "\e0df"; } - -.fa-italic { - --fa: "\f033"; } - -.fa-table-cells-column-lock { - --fa: "\e678"; } - -.fa-church { - --fa: "\f51d"; } - -.fa-comments-dollar { - --fa: "\f653"; } - -.fa-democrat { - --fa: "\f747"; } - -.fa-z { - --fa: "\5a"; } - -.fa-person-skiing { - --fa: "\f7c9"; } - -.fa-skiing { - --fa: "\f7c9"; } - -.fa-road-lock { - --fa: "\e567"; } - -.fa-a { - --fa: "\41"; } - -.fa-temperature-arrow-down { - --fa: "\e03f"; } - -.fa-temperature-down { - --fa: "\e03f"; } - -.fa-feather-pointed { - --fa: "\f56b"; } - -.fa-feather-alt { - --fa: "\f56b"; } - -.fa-p { - --fa: "\50"; } - -.fa-snowflake { - --fa: "\f2dc"; } - -.fa-newspaper { - --fa: "\f1ea"; } - -.fa-rectangle-ad { - --fa: "\f641"; } - -.fa-ad { - --fa: "\f641"; } - -.fa-circle-arrow-right { - --fa: "\f0a9"; } - -.fa-arrow-circle-right { - --fa: "\f0a9"; } - -.fa-filter-circle-xmark { - --fa: "\e17b"; } - -.fa-locust { - --fa: "\e520"; } - -.fa-sort { - --fa: "\f0dc"; } - -.fa-unsorted { - --fa: "\f0dc"; } - -.fa-list-ol { - --fa: "\f0cb"; } - -.fa-list-1-2 { - --fa: "\f0cb"; } - -.fa-list-numeric { - --fa: "\f0cb"; } - -.fa-person-dress-burst { - --fa: "\e544"; } - -.fa-money-check-dollar { - --fa: "\f53d"; } - -.fa-money-check-alt { - --fa: "\f53d"; } - -.fa-vector-square { - --fa: "\f5cb"; } - -.fa-bread-slice { - --fa: "\f7ec"; } - -.fa-language { - --fa: "\f1ab"; } - -.fa-face-kiss-wink-heart { - --fa: "\f598"; } - -.fa-kiss-wink-heart { - --fa: "\f598"; } - -.fa-filter { - --fa: "\f0b0"; } - -.fa-question { - --fa: "\3f"; } - -.fa-file-signature { - --fa: "\f573"; } - -.fa-up-down-left-right { - --fa: "\f0b2"; } - -.fa-arrows-alt { - --fa: "\f0b2"; } - -.fa-house-chimney-user { - --fa: "\e065"; } - -.fa-hand-holding-heart { - --fa: "\f4be"; } - -.fa-puzzle-piece { - --fa: "\f12e"; } - -.fa-money-check { - --fa: "\f53c"; } - -.fa-star-half-stroke { - --fa: "\f5c0"; } - -.fa-star-half-alt { - --fa: "\f5c0"; } - -.fa-code { - --fa: "\f121"; } - -.fa-whiskey-glass { - --fa: "\f7a0"; } - -.fa-glass-whiskey { - --fa: "\f7a0"; } - -.fa-building-circle-exclamation { - --fa: "\e4d3"; } - -.fa-magnifying-glass-chart { - --fa: "\e522"; } - -.fa-arrow-up-right-from-square { - --fa: "\f08e"; } - -.fa-external-link { - --fa: "\f08e"; } - -.fa-cubes-stacked { - --fa: "\e4e6"; } - -.fa-won-sign { - --fa: "\f159"; } - -.fa-krw { - --fa: "\f159"; } - -.fa-won { - --fa: "\f159"; } - -.fa-virus-covid { - --fa: "\e4a8"; } - -.fa-austral-sign { - --fa: "\e0a9"; } - -.fa-f { - --fa: "\46"; } - -.fa-leaf { - --fa: "\f06c"; } - -.fa-road { - --fa: "\f018"; } - -.fa-taxi { - --fa: "\f1ba"; } - -.fa-cab { - --fa: "\f1ba"; } - -.fa-person-circle-plus { - --fa: "\e541"; } - -.fa-chart-pie { - --fa: "\f200"; } - -.fa-pie-chart { - --fa: "\f200"; } - -.fa-bolt-lightning { - --fa: "\e0b7"; } - -.fa-sack-xmark { - --fa: "\e56a"; } - -.fa-file-excel { - --fa: "\f1c3"; } - -.fa-file-contract { - --fa: "\f56c"; } - -.fa-fish-fins { - --fa: "\e4f2"; } - -.fa-building-flag { - --fa: "\e4d5"; } - -.fa-face-grin-beam { - --fa: "\f582"; } - -.fa-grin-beam { - --fa: "\f582"; } - -.fa-object-ungroup { - --fa: "\f248"; } - -.fa-poop { - --fa: "\f619"; } - -.fa-location-pin { - --fa: "\f041"; } - -.fa-map-marker { - --fa: "\f041"; } - -.fa-kaaba { - --fa: "\f66b"; } - -.fa-toilet-paper { - --fa: "\f71e"; } - -.fa-helmet-safety { - --fa: "\f807"; } - -.fa-hard-hat { - --fa: "\f807"; } - -.fa-hat-hard { - --fa: "\f807"; } - -.fa-eject { - --fa: "\f052"; } - -.fa-circle-right { - --fa: "\f35a"; } - -.fa-arrow-alt-circle-right { - --fa: "\f35a"; } - -.fa-plane-circle-check { - --fa: "\e555"; } - -.fa-face-rolling-eyes { - --fa: "\f5a5"; } - -.fa-meh-rolling-eyes { - --fa: "\f5a5"; } - -.fa-object-group { - --fa: "\f247"; } - -.fa-chart-line { - --fa: "\f201"; } - -.fa-line-chart { - --fa: "\f201"; } - -.fa-mask-ventilator { - --fa: "\e524"; } - -.fa-arrow-right { - --fa: "\f061"; } - -.fa-signs-post { - --fa: "\f277"; } - -.fa-map-signs { - --fa: "\f277"; } - -.fa-cash-register { - --fa: "\f788"; } - -.fa-person-circle-question { - --fa: "\e542"; } - -.fa-h { - --fa: "\48"; } - -.fa-tarp { - --fa: "\e57b"; } - -.fa-screwdriver-wrench { - --fa: "\f7d9"; } - -.fa-tools { - --fa: "\f7d9"; } - -.fa-arrows-to-eye { - --fa: "\e4bf"; } - -.fa-plug-circle-bolt { - --fa: "\e55b"; } - -.fa-heart { - --fa: "\f004"; } - -.fa-mars-and-venus { - --fa: "\f224"; } - -.fa-house-user { - --fa: "\e1b0"; } - -.fa-home-user { - --fa: "\e1b0"; } - -.fa-dumpster-fire { - --fa: "\f794"; } - -.fa-house-crack { - --fa: "\e3b1"; } - -.fa-martini-glass-citrus { - --fa: "\f561"; } - -.fa-cocktail { - --fa: "\f561"; } - -.fa-face-surprise { - --fa: "\f5c2"; } - -.fa-surprise { - --fa: "\f5c2"; } - -.fa-bottle-water { - --fa: "\e4c5"; } - -.fa-circle-pause { - --fa: "\f28b"; } - -.fa-pause-circle { - --fa: "\f28b"; } - -.fa-toilet-paper-slash { - --fa: "\e072"; } - -.fa-apple-whole { - --fa: "\f5d1"; } - -.fa-apple-alt { - --fa: "\f5d1"; } - -.fa-kitchen-set { - --fa: "\e51a"; } - -.fa-r { - --fa: "\52"; } - -.fa-temperature-quarter { - --fa: "\f2ca"; } - -.fa-temperature-1 { - --fa: "\f2ca"; } - -.fa-thermometer-1 { - --fa: "\f2ca"; } - -.fa-thermometer-quarter { - --fa: "\f2ca"; } - -.fa-cube { - --fa: "\f1b2"; } - -.fa-bitcoin-sign { - --fa: "\e0b4"; } - -.fa-shield-dog { - --fa: "\e573"; } - -.fa-solar-panel { - --fa: "\f5ba"; } - -.fa-lock-open { - --fa: "\f3c1"; } - -.fa-elevator { - --fa: "\e16d"; } - -.fa-money-bill-transfer { - --fa: "\e528"; } - -.fa-money-bill-trend-up { - --fa: "\e529"; } - -.fa-house-flood-water-circle-arrow-right { - --fa: "\e50f"; } - -.fa-square-poll-horizontal { - --fa: "\f682"; } - -.fa-poll-h { - --fa: "\f682"; } - -.fa-circle { - --fa: "\f111"; } - -.fa-backward-fast { - --fa: "\f049"; } - -.fa-fast-backward { - --fa: "\f049"; } - -.fa-recycle { - --fa: "\f1b8"; } - -.fa-user-astronaut { - --fa: "\f4fb"; } - -.fa-plane-slash { - --fa: "\e069"; } - -.fa-trademark { - --fa: "\f25c"; } - -.fa-basketball { - --fa: "\f434"; } - -.fa-basketball-ball { - --fa: "\f434"; } - -.fa-satellite-dish { - --fa: "\f7c0"; } - -.fa-circle-up { - --fa: "\f35b"; } - -.fa-arrow-alt-circle-up { - --fa: "\f35b"; } - -.fa-mobile-screen-button { - --fa: "\f3cd"; } - -.fa-mobile-alt { - --fa: "\f3cd"; } - -.fa-volume-high { - --fa: "\f028"; } - -.fa-volume-up { - --fa: "\f028"; } - -.fa-users-rays { - --fa: "\e593"; } - -.fa-wallet { - --fa: "\f555"; } - -.fa-clipboard-check { - --fa: "\f46c"; } - -.fa-file-audio { - --fa: "\f1c7"; } - -.fa-burger { - --fa: "\f805"; } - -.fa-hamburger { - --fa: "\f805"; } - -.fa-wrench { - --fa: "\f0ad"; } - -.fa-bugs { - --fa: "\e4d0"; } - -.fa-rupee-sign { - --fa: "\f156"; } - -.fa-rupee { - --fa: "\f156"; } - -.fa-file-image { - --fa: "\f1c5"; } - -.fa-circle-question { - --fa: "\f059"; } - -.fa-question-circle { - --fa: "\f059"; } - -.fa-plane-departure { - --fa: "\f5b0"; } - -.fa-handshake-slash { - --fa: "\e060"; } - -.fa-book-bookmark { - --fa: "\e0bb"; } - -.fa-code-branch { - --fa: "\f126"; } - -.fa-hat-cowboy { - --fa: "\f8c0"; } - -.fa-bridge { - --fa: "\e4c8"; } - -.fa-phone-flip { - --fa: "\f879"; } - -.fa-phone-alt { - --fa: "\f879"; } - -.fa-truck-front { - --fa: "\e2b7"; } - -.fa-cat { - --fa: "\f6be"; } - -.fa-anchor-circle-exclamation { - --fa: "\e4ab"; } - -.fa-truck-field { - --fa: "\e58d"; } - -.fa-route { - --fa: "\f4d7"; } - -.fa-clipboard-question { - --fa: "\e4e3"; } - -.fa-panorama { - --fa: "\e209"; } - -.fa-comment-medical { - --fa: "\f7f5"; } - -.fa-teeth-open { - --fa: "\f62f"; } - -.fa-file-circle-minus { - --fa: "\e4ed"; } - -.fa-tags { - --fa: "\f02c"; } - -.fa-wine-glass { - --fa: "\f4e3"; } - -.fa-forward-fast { - --fa: "\f050"; } - -.fa-fast-forward { - --fa: "\f050"; } - -.fa-face-meh-blank { - --fa: "\f5a4"; } - -.fa-meh-blank { - --fa: "\f5a4"; } - -.fa-square-parking { - --fa: "\f540"; } - -.fa-parking { - --fa: "\f540"; } - -.fa-house-signal { - --fa: "\e012"; } - -.fa-bars-progress { - --fa: "\f828"; } - -.fa-tasks-alt { - --fa: "\f828"; } - -.fa-faucet-drip { - --fa: "\e006"; } - -.fa-cart-flatbed { - --fa: "\f474"; } - -.fa-dolly-flatbed { - --fa: "\f474"; } - -.fa-ban-smoking { - --fa: "\f54d"; } - -.fa-smoking-ban { - --fa: "\f54d"; } - -.fa-terminal { - --fa: "\f120"; } - -.fa-mobile-button { - --fa: "\f10b"; } - -.fa-house-medical-flag { - --fa: "\e514"; } - -.fa-basket-shopping { - --fa: "\f291"; } - -.fa-shopping-basket { - --fa: "\f291"; } - -.fa-tape { - --fa: "\f4db"; } - -.fa-bus-simple { - --fa: "\f55e"; } - -.fa-bus-alt { - --fa: "\f55e"; } - -.fa-eye { - --fa: "\f06e"; } - -.fa-face-sad-cry { - --fa: "\f5b3"; } - -.fa-sad-cry { - --fa: "\f5b3"; } - -.fa-audio-description { - --fa: "\f29e"; } - -.fa-person-military-to-person { - --fa: "\e54c"; } - -.fa-file-shield { - --fa: "\e4f0"; } - -.fa-user-slash { - --fa: "\f506"; } - -.fa-pen { - --fa: "\f304"; } - -.fa-tower-observation { - --fa: "\e586"; } - -.fa-file-code { - --fa: "\f1c9"; } - -.fa-signal { - --fa: "\f012"; } - -.fa-signal-5 { - --fa: "\f012"; } - -.fa-signal-perfect { - --fa: "\f012"; } - -.fa-bus { - --fa: "\f207"; } - -.fa-heart-circle-xmark { - --fa: "\e501"; } - -.fa-house-chimney { - --fa: "\e3af"; } - -.fa-home-lg { - --fa: "\e3af"; } - -.fa-window-maximize { - --fa: "\f2d0"; } - -.fa-face-frown { - --fa: "\f119"; } - -.fa-frown { - --fa: "\f119"; } - -.fa-prescription { - --fa: "\f5b1"; } - -.fa-shop { - --fa: "\f54f"; } - -.fa-store-alt { - --fa: "\f54f"; } - -.fa-floppy-disk { - --fa: "\f0c7"; } - -.fa-save { - --fa: "\f0c7"; } - -.fa-vihara { - --fa: "\f6a7"; } - -.fa-scale-unbalanced { - --fa: "\f515"; } - -.fa-balance-scale-left { - --fa: "\f515"; } - -.fa-sort-up { - --fa: "\f0de"; } - -.fa-sort-asc { - --fa: "\f0de"; } - -.fa-comment-dots { - --fa: "\f4ad"; } - -.fa-commenting { - --fa: "\f4ad"; } - -.fa-plant-wilt { - --fa: "\e5aa"; } - -.fa-diamond { - --fa: "\f219"; } - -.fa-face-grin-squint { - --fa: "\f585"; } - -.fa-grin-squint { - --fa: "\f585"; } - -.fa-hand-holding-dollar { - --fa: "\f4c0"; } - -.fa-hand-holding-usd { - --fa: "\f4c0"; } - -.fa-chart-diagram { - --fa: "\e695"; } - -.fa-bacterium { - --fa: "\e05a"; } - -.fa-hand-pointer { - --fa: "\f25a"; } - -.fa-drum-steelpan { - --fa: "\f56a"; } - -.fa-hand-scissors { - --fa: "\f257"; } - -.fa-hands-praying { - --fa: "\f684"; } - -.fa-praying-hands { - --fa: "\f684"; } - -.fa-arrow-rotate-right { - --fa: "\f01e"; } - -.fa-arrow-right-rotate { - --fa: "\f01e"; } - -.fa-arrow-rotate-forward { - --fa: "\f01e"; } - -.fa-redo { - --fa: "\f01e"; } - -.fa-biohazard { - --fa: "\f780"; } - -.fa-location-crosshairs { - --fa: "\f601"; } - -.fa-location { - --fa: "\f601"; } - -.fa-mars-double { - --fa: "\f227"; } - -.fa-child-dress { - --fa: "\e59c"; } - -.fa-users-between-lines { - --fa: "\e591"; } - -.fa-lungs-virus { - --fa: "\e067"; } - -.fa-face-grin-tears { - --fa: "\f588"; } - -.fa-grin-tears { - --fa: "\f588"; } - -.fa-phone { - --fa: "\f095"; } - -.fa-calendar-xmark { - --fa: "\f273"; } - -.fa-calendar-times { - --fa: "\f273"; } - -.fa-child-reaching { - --fa: "\e59d"; } - -.fa-head-side-virus { - --fa: "\e064"; } - -.fa-user-gear { - --fa: "\f4fe"; } - -.fa-user-cog { - --fa: "\f4fe"; } - -.fa-arrow-up-1-9 { - --fa: "\f163"; } - -.fa-sort-numeric-up { - --fa: "\f163"; } - -.fa-door-closed { - --fa: "\f52a"; } - -.fa-shield-virus { - --fa: "\e06c"; } - -.fa-dice-six { - --fa: "\f526"; } - -.fa-mosquito-net { - --fa: "\e52c"; } - -.fa-file-fragment { - --fa: "\e697"; } - -.fa-bridge-water { - --fa: "\e4ce"; } - -.fa-person-booth { - --fa: "\f756"; } - -.fa-text-width { - --fa: "\f035"; } - -.fa-hat-wizard { - --fa: "\f6e8"; } - -.fa-pen-fancy { - --fa: "\f5ac"; } - -.fa-person-digging { - --fa: "\f85e"; } - -.fa-digging { - --fa: "\f85e"; } - -.fa-trash { - --fa: "\f1f8"; } - -.fa-gauge-simple { - --fa: "\f629"; } - -.fa-gauge-simple-med { - --fa: "\f629"; } - -.fa-tachometer-average { - --fa: "\f629"; } - -.fa-book-medical { - --fa: "\f7e6"; } - -.fa-poo { - --fa: "\f2fe"; } - -.fa-quote-right { - --fa: "\f10e"; } - -.fa-quote-right-alt { - --fa: "\f10e"; } - -.fa-shirt { - --fa: "\f553"; } - -.fa-t-shirt { - --fa: "\f553"; } - -.fa-tshirt { - --fa: "\f553"; } - -.fa-cubes { - --fa: "\f1b3"; } - -.fa-divide { - --fa: "\f529"; } - -.fa-tenge-sign { - --fa: "\f7d7"; } - -.fa-tenge { - --fa: "\f7d7"; } - -.fa-headphones { - --fa: "\f025"; } - -.fa-hands-holding { - --fa: "\f4c2"; } - -.fa-hands-clapping { - --fa: "\e1a8"; } - -.fa-republican { - --fa: "\f75e"; } - -.fa-arrow-left { - --fa: "\f060"; } - -.fa-person-circle-xmark { - --fa: "\e543"; } - -.fa-ruler { - --fa: "\f545"; } - -.fa-align-left { - --fa: "\f036"; } - -.fa-dice-d6 { - --fa: "\f6d1"; } - -.fa-restroom { - --fa: "\f7bd"; } - -.fa-j { - --fa: "\4a"; } - -.fa-users-viewfinder { - --fa: "\e595"; } - -.fa-file-video { - --fa: "\f1c8"; } - -.fa-up-right-from-square { - --fa: "\f35d"; } - -.fa-external-link-alt { - --fa: "\f35d"; } - -.fa-table-cells { - --fa: "\f00a"; } - -.fa-th { - --fa: "\f00a"; } - -.fa-file-pdf { - --fa: "\f1c1"; } - -.fa-book-bible { - --fa: "\f647"; } - -.fa-bible { - --fa: "\f647"; } - -.fa-o { - --fa: "\4f"; } - -.fa-suitcase-medical { - --fa: "\f0fa"; } - -.fa-medkit { - --fa: "\f0fa"; } - -.fa-user-secret { - --fa: "\f21b"; } - -.fa-otter { - --fa: "\f700"; } - -.fa-person-dress { - --fa: "\f182"; } - -.fa-female { - --fa: "\f182"; } - -.fa-comment-dollar { - --fa: "\f651"; } - -.fa-business-time { - --fa: "\f64a"; } - -.fa-briefcase-clock { - --fa: "\f64a"; } - -.fa-table-cells-large { - --fa: "\f009"; } - -.fa-th-large { - --fa: "\f009"; } - -.fa-book-tanakh { - --fa: "\f827"; } - -.fa-tanakh { - --fa: "\f827"; } - -.fa-phone-volume { - --fa: "\f2a0"; } - -.fa-volume-control-phone { - --fa: "\f2a0"; } - -.fa-hat-cowboy-side { - --fa: "\f8c1"; } - -.fa-clipboard-user { - --fa: "\f7f3"; } - -.fa-child { - --fa: "\f1ae"; } - -.fa-lira-sign { - --fa: "\f195"; } - -.fa-satellite { - --fa: "\f7bf"; } - -.fa-plane-lock { - --fa: "\e558"; } - -.fa-tag { - --fa: "\f02b"; } - -.fa-comment { - --fa: "\f075"; } - -.fa-cake-candles { - --fa: "\f1fd"; } - -.fa-birthday-cake { - --fa: "\f1fd"; } - -.fa-cake { - --fa: "\f1fd"; } - -.fa-envelope { - --fa: "\f0e0"; } - -.fa-angles-up { - --fa: "\f102"; } - -.fa-angle-double-up { - --fa: "\f102"; } - -.fa-paperclip { - --fa: "\f0c6"; } - -.fa-arrow-right-to-city { - --fa: "\e4b3"; } - -.fa-ribbon { - --fa: "\f4d6"; } - -.fa-lungs { - --fa: "\f604"; } - -.fa-arrow-up-9-1 { - --fa: "\f887"; } - -.fa-sort-numeric-up-alt { - --fa: "\f887"; } - -.fa-litecoin-sign { - --fa: "\e1d3"; } - -.fa-border-none { - --fa: "\f850"; } - -.fa-circle-nodes { - --fa: "\e4e2"; } - -.fa-parachute-box { - --fa: "\f4cd"; } - -.fa-indent { - --fa: "\f03c"; } - -.fa-truck-field-un { - --fa: "\e58e"; } - -.fa-hourglass { - --fa: "\f254"; } - -.fa-hourglass-empty { - --fa: "\f254"; } - -.fa-mountain { - --fa: "\f6fc"; } - -.fa-user-doctor { - --fa: "\f0f0"; } - -.fa-user-md { - --fa: "\f0f0"; } - -.fa-circle-info { - --fa: "\f05a"; } - -.fa-info-circle { - --fa: "\f05a"; } - -.fa-cloud-meatball { - --fa: "\f73b"; } - -.fa-camera { - --fa: "\f030"; } - -.fa-camera-alt { - --fa: "\f030"; } - -.fa-square-virus { - --fa: "\e578"; } - -.fa-meteor { - --fa: "\f753"; } - -.fa-car-on { - --fa: "\e4dd"; } - -.fa-sleigh { - --fa: "\f7cc"; } - -.fa-arrow-down-1-9 { - --fa: "\f162"; } - -.fa-sort-numeric-asc { - --fa: "\f162"; } - -.fa-sort-numeric-down { - --fa: "\f162"; } - -.fa-hand-holding-droplet { - --fa: "\f4c1"; } - -.fa-hand-holding-water { - --fa: "\f4c1"; } - -.fa-water { - --fa: "\f773"; } - -.fa-calendar-check { - --fa: "\f274"; } - -.fa-braille { - --fa: "\f2a1"; } - -.fa-prescription-bottle-medical { - --fa: "\f486"; } - -.fa-prescription-bottle-alt { - --fa: "\f486"; } - -.fa-landmark { - --fa: "\f66f"; } - -.fa-truck { - --fa: "\f0d1"; } - -.fa-crosshairs { - --fa: "\f05b"; } - -.fa-person-cane { - --fa: "\e53c"; } - -.fa-tent { - --fa: "\e57d"; } - -.fa-vest-patches { - --fa: "\e086"; } - -.fa-check-double { - --fa: "\f560"; } - -.fa-arrow-down-a-z { - --fa: "\f15d"; } - -.fa-sort-alpha-asc { - --fa: "\f15d"; } - -.fa-sort-alpha-down { - --fa: "\f15d"; } - -.fa-money-bill-wheat { - --fa: "\e52a"; } - -.fa-cookie { - --fa: "\f563"; } - -.fa-arrow-rotate-left { - --fa: "\f0e2"; } - -.fa-arrow-left-rotate { - --fa: "\f0e2"; } - -.fa-arrow-rotate-back { - --fa: "\f0e2"; } - -.fa-arrow-rotate-backward { - --fa: "\f0e2"; } - -.fa-undo { - --fa: "\f0e2"; } - -.fa-hard-drive { - --fa: "\f0a0"; } - -.fa-hdd { - --fa: "\f0a0"; } - -.fa-face-grin-squint-tears { - --fa: "\f586"; } - -.fa-grin-squint-tears { - --fa: "\f586"; } - -.fa-dumbbell { - --fa: "\f44b"; } - -.fa-rectangle-list { - --fa: "\f022"; } - -.fa-list-alt { - --fa: "\f022"; } - -.fa-tarp-droplet { - --fa: "\e57c"; } - -.fa-house-medical-circle-check { - --fa: "\e511"; } - -.fa-person-skiing-nordic { - --fa: "\f7ca"; } - -.fa-skiing-nordic { - --fa: "\f7ca"; } - -.fa-calendar-plus { - --fa: "\f271"; } - -.fa-plane-arrival { - --fa: "\f5af"; } - -.fa-circle-left { - --fa: "\f359"; } - -.fa-arrow-alt-circle-left { - --fa: "\f359"; } - -.fa-train-subway { - --fa: "\f239"; } - -.fa-subway { - --fa: "\f239"; } - -.fa-chart-gantt { - --fa: "\e0e4"; } - -.fa-indian-rupee-sign { - --fa: "\e1bc"; } - -.fa-indian-rupee { - --fa: "\e1bc"; } - -.fa-inr { - --fa: "\e1bc"; } - -.fa-crop-simple { - --fa: "\f565"; } - -.fa-crop-alt { - --fa: "\f565"; } - -.fa-money-bill-1 { - --fa: "\f3d1"; } - -.fa-money-bill-alt { - --fa: "\f3d1"; } - -.fa-left-long { - --fa: "\f30a"; } - -.fa-long-arrow-alt-left { - --fa: "\f30a"; } - -.fa-dna { - --fa: "\f471"; } - -.fa-virus-slash { - --fa: "\e075"; } - -.fa-minus { - --fa: "\f068"; } - -.fa-subtract { - --fa: "\f068"; } - -.fa-chess { - --fa: "\f439"; } - -.fa-arrow-left-long { - --fa: "\f177"; } - -.fa-long-arrow-left { - --fa: "\f177"; } - -.fa-plug-circle-check { - --fa: "\e55c"; } - -.fa-street-view { - --fa: "\f21d"; } - -.fa-franc-sign { - --fa: "\e18f"; } - -.fa-volume-off { - --fa: "\f026"; } - -.fa-hands-asl-interpreting { - --fa: "\f2a3"; } - -.fa-american-sign-language-interpreting { - --fa: "\f2a3"; } - -.fa-asl-interpreting { - --fa: "\f2a3"; } - -.fa-hands-american-sign-language-interpreting { - --fa: "\f2a3"; } - -.fa-gear { - --fa: "\f013"; } - -.fa-cog { - --fa: "\f013"; } - -.fa-droplet-slash { - --fa: "\f5c7"; } - -.fa-tint-slash { - --fa: "\f5c7"; } - -.fa-mosque { - --fa: "\f678"; } - -.fa-mosquito { - --fa: "\e52b"; } - -.fa-star-of-david { - --fa: "\f69a"; } - -.fa-person-military-rifle { - --fa: "\e54b"; } - -.fa-cart-shopping { - --fa: "\f07a"; } - -.fa-shopping-cart { - --fa: "\f07a"; } - -.fa-vials { - --fa: "\f493"; } - -.fa-plug-circle-plus { - --fa: "\e55f"; } - -.fa-place-of-worship { - --fa: "\f67f"; } - -.fa-grip-vertical { - --fa: "\f58e"; } - -.fa-hexagon-nodes { - --fa: "\e699"; } - -.fa-arrow-turn-up { - --fa: "\f148"; } - -.fa-level-up { - --fa: "\f148"; } - -.fa-u { - --fa: "\55"; } - -.fa-square-root-variable { - --fa: "\f698"; } - -.fa-square-root-alt { - --fa: "\f698"; } - -.fa-clock { - --fa: "\f017"; } - -.fa-clock-four { - --fa: "\f017"; } - -.fa-backward-step { - --fa: "\f048"; } - -.fa-step-backward { - --fa: "\f048"; } - -.fa-pallet { - --fa: "\f482"; } - -.fa-faucet { - --fa: "\e005"; } - -.fa-baseball-bat-ball { - --fa: "\f432"; } - -.fa-s { - --fa: "\53"; } - -.fa-timeline { - --fa: "\e29c"; } - -.fa-keyboard { - --fa: "\f11c"; } - -.fa-caret-down { - --fa: "\f0d7"; } - -.fa-house-chimney-medical { - --fa: "\f7f2"; } - -.fa-clinic-medical { - --fa: "\f7f2"; } - -.fa-temperature-three-quarters { - --fa: "\f2c8"; } - -.fa-temperature-3 { - --fa: "\f2c8"; } - -.fa-thermometer-3 { - --fa: "\f2c8"; } - -.fa-thermometer-three-quarters { - --fa: "\f2c8"; } - -.fa-mobile-screen { - --fa: "\f3cf"; } - -.fa-mobile-android-alt { - --fa: "\f3cf"; } - -.fa-plane-up { - --fa: "\e22d"; } - -.fa-piggy-bank { - --fa: "\f4d3"; } - -.fa-battery-half { - --fa: "\f242"; } - -.fa-battery-3 { - --fa: "\f242"; } - -.fa-mountain-city { - --fa: "\e52e"; } - -.fa-coins { - --fa: "\f51e"; } - -.fa-khanda { - --fa: "\f66d"; } - -.fa-sliders { - --fa: "\f1de"; } - -.fa-sliders-h { - --fa: "\f1de"; } - -.fa-folder-tree { - --fa: "\f802"; } - -.fa-network-wired { - --fa: "\f6ff"; } - -.fa-map-pin { - --fa: "\f276"; } - -.fa-hamsa { - --fa: "\f665"; } - -.fa-cent-sign { - --fa: "\e3f5"; } - -.fa-flask { - --fa: "\f0c3"; } - -.fa-person-pregnant { - --fa: "\e31e"; } - -.fa-wand-sparkles { - --fa: "\f72b"; } - -.fa-ellipsis-vertical { - --fa: "\f142"; } - -.fa-ellipsis-v { - --fa: "\f142"; } - -.fa-ticket { - --fa: "\f145"; } - -.fa-power-off { - --fa: "\f011"; } - -.fa-right-long { - --fa: "\f30b"; } - -.fa-long-arrow-alt-right { - --fa: "\f30b"; } - -.fa-flag-usa { - --fa: "\f74d"; } - -.fa-laptop-file { - --fa: "\e51d"; } - -.fa-tty { - --fa: "\f1e4"; } - -.fa-teletype { - --fa: "\f1e4"; } - -.fa-diagram-next { - --fa: "\e476"; } - -.fa-person-rifle { - --fa: "\e54e"; } - -.fa-house-medical-circle-exclamation { - --fa: "\e512"; } - -.fa-closed-captioning { - --fa: "\f20a"; } - -.fa-person-hiking { - --fa: "\f6ec"; } - -.fa-hiking { - --fa: "\f6ec"; } - -.fa-venus-double { - --fa: "\f226"; } - -.fa-images { - --fa: "\f302"; } - -.fa-calculator { - --fa: "\f1ec"; } - -.fa-people-pulling { - --fa: "\e535"; } - -.fa-n { - --fa: "\4e"; } - -.fa-cable-car { - --fa: "\f7da"; } - -.fa-tram { - --fa: "\f7da"; } - -.fa-cloud-rain { - --fa: "\f73d"; } - -.fa-building-circle-xmark { - --fa: "\e4d4"; } - -.fa-ship { - --fa: "\f21a"; } - -.fa-arrows-down-to-line { - --fa: "\e4b8"; } - -.fa-download { - --fa: "\f019"; } - -.fa-face-grin { - --fa: "\f580"; } - -.fa-grin { - --fa: "\f580"; } - -.fa-delete-left { - --fa: "\f55a"; } - -.fa-backspace { - --fa: "\f55a"; } - -.fa-eye-dropper { - --fa: "\f1fb"; } - -.fa-eye-dropper-empty { - --fa: "\f1fb"; } - -.fa-eyedropper { - --fa: "\f1fb"; } - -.fa-file-circle-check { - --fa: "\e5a0"; } - -.fa-forward { - --fa: "\f04e"; } - -.fa-mobile { - --fa: "\f3ce"; } - -.fa-mobile-android { - --fa: "\f3ce"; } - -.fa-mobile-phone { - --fa: "\f3ce"; } - -.fa-face-meh { - --fa: "\f11a"; } - -.fa-meh { - --fa: "\f11a"; } - -.fa-align-center { - --fa: "\f037"; } - -.fa-book-skull { - --fa: "\f6b7"; } - -.fa-book-dead { - --fa: "\f6b7"; } - -.fa-id-card { - --fa: "\f2c2"; } - -.fa-drivers-license { - --fa: "\f2c2"; } - -.fa-outdent { - --fa: "\f03b"; } - -.fa-dedent { - --fa: "\f03b"; } - -.fa-heart-circle-exclamation { - --fa: "\e4fe"; } - -.fa-house { - --fa: "\f015"; } - -.fa-home { - --fa: "\f015"; } - -.fa-home-alt { - --fa: "\f015"; } - -.fa-home-lg-alt { - --fa: "\f015"; } - -.fa-calendar-week { - --fa: "\f784"; } - -.fa-laptop-medical { - --fa: "\f812"; } - -.fa-b { - --fa: "\42"; } - -.fa-file-medical { - --fa: "\f477"; } - -.fa-dice-one { - --fa: "\f525"; } - -.fa-kiwi-bird { - --fa: "\f535"; } - -.fa-arrow-right-arrow-left { - --fa: "\f0ec"; } - -.fa-exchange { - --fa: "\f0ec"; } - -.fa-rotate-right { - --fa: "\f2f9"; } - -.fa-redo-alt { - --fa: "\f2f9"; } - -.fa-rotate-forward { - --fa: "\f2f9"; } - -.fa-utensils { - --fa: "\f2e7"; } - -.fa-cutlery { - --fa: "\f2e7"; } - -.fa-arrow-up-wide-short { - --fa: "\f161"; } - -.fa-sort-amount-up { - --fa: "\f161"; } - -.fa-mill-sign { - --fa: "\e1ed"; } - -.fa-bowl-rice { - --fa: "\e2eb"; } - -.fa-skull { - --fa: "\f54c"; } - -.fa-tower-broadcast { - --fa: "\f519"; } - -.fa-broadcast-tower { - --fa: "\f519"; } - -.fa-truck-pickup { - --fa: "\f63c"; } - -.fa-up-long { - --fa: "\f30c"; } - -.fa-long-arrow-alt-up { - --fa: "\f30c"; } - -.fa-stop { - --fa: "\f04d"; } - -.fa-code-merge { - --fa: "\f387"; } - -.fa-upload { - --fa: "\f093"; } - -.fa-hurricane { - --fa: "\f751"; } - -.fa-mound { - --fa: "\e52d"; } - -.fa-toilet-portable { - --fa: "\e583"; } - -.fa-compact-disc { - --fa: "\f51f"; } - -.fa-file-arrow-down { - --fa: "\f56d"; } - -.fa-file-download { - --fa: "\f56d"; } - -.fa-caravan { - --fa: "\f8ff"; } - -.fa-shield-cat { - --fa: "\e572"; } - -.fa-bolt { - --fa: "\f0e7"; } - -.fa-zap { - --fa: "\f0e7"; } - -.fa-glass-water { - --fa: "\e4f4"; } - -.fa-oil-well { - --fa: "\e532"; } - -.fa-vault { - --fa: "\e2c5"; } - -.fa-mars { - --fa: "\f222"; } - -.fa-toilet { - --fa: "\f7d8"; } - -.fa-plane-circle-xmark { - --fa: "\e557"; } - -.fa-yen-sign { - --fa: "\f157"; } - -.fa-cny { - --fa: "\f157"; } - -.fa-jpy { - --fa: "\f157"; } - -.fa-rmb { - --fa: "\f157"; } - -.fa-yen { - --fa: "\f157"; } - -.fa-ruble-sign { - --fa: "\f158"; } - -.fa-rouble { - --fa: "\f158"; } - -.fa-rub { - --fa: "\f158"; } - -.fa-ruble { - --fa: "\f158"; } - -.fa-sun { - --fa: "\f185"; } - -.fa-guitar { - --fa: "\f7a6"; } - -.fa-face-laugh-wink { - --fa: "\f59c"; } - -.fa-laugh-wink { - --fa: "\f59c"; } - -.fa-horse-head { - --fa: "\f7ab"; } - -.fa-bore-hole { - --fa: "\e4c3"; } - -.fa-industry { - --fa: "\f275"; } - -.fa-circle-down { - --fa: "\f358"; } - -.fa-arrow-alt-circle-down { - --fa: "\f358"; } - -.fa-arrows-turn-to-dots { - --fa: "\e4c1"; } - -.fa-florin-sign { - --fa: "\e184"; } - -.fa-arrow-down-short-wide { - --fa: "\f884"; } - -.fa-sort-amount-desc { - --fa: "\f884"; } - -.fa-sort-amount-down-alt { - --fa: "\f884"; } - -.fa-less-than { - --fa: "\3c"; } - -.fa-angle-down { - --fa: "\f107"; } - -.fa-car-tunnel { - --fa: "\e4de"; } - -.fa-head-side-cough { - --fa: "\e061"; } - -.fa-grip-lines { - --fa: "\f7a4"; } - -.fa-thumbs-down { - --fa: "\f165"; } - -.fa-user-lock { - --fa: "\f502"; } - -.fa-arrow-right-long { - --fa: "\f178"; } - -.fa-long-arrow-right { - --fa: "\f178"; } - -.fa-anchor-circle-xmark { - --fa: "\e4ac"; } - -.fa-ellipsis { - --fa: "\f141"; } - -.fa-ellipsis-h { - --fa: "\f141"; } - -.fa-chess-pawn { - --fa: "\f443"; } - -.fa-kit-medical { - --fa: "\f479"; } - -.fa-first-aid { - --fa: "\f479"; } - -.fa-person-through-window { - --fa: "\e5a9"; } - -.fa-toolbox { - --fa: "\f552"; } - -.fa-hands-holding-circle { - --fa: "\e4fb"; } - -.fa-bug { - --fa: "\f188"; } - -.fa-credit-card { - --fa: "\f09d"; } - -.fa-credit-card-alt { - --fa: "\f09d"; } - -.fa-car { - --fa: "\f1b9"; } - -.fa-automobile { - --fa: "\f1b9"; } - -.fa-hand-holding-hand { - --fa: "\e4f7"; } - -.fa-book-open-reader { - --fa: "\f5da"; } - -.fa-book-reader { - --fa: "\f5da"; } - -.fa-mountain-sun { - --fa: "\e52f"; } - -.fa-arrows-left-right-to-line { - --fa: "\e4ba"; } - -.fa-dice-d20 { - --fa: "\f6cf"; } - -.fa-truck-droplet { - --fa: "\e58c"; } - -.fa-file-circle-xmark { - --fa: "\e5a1"; } - -.fa-temperature-arrow-up { - --fa: "\e040"; } - -.fa-temperature-up { - --fa: "\e040"; } - -.fa-medal { - --fa: "\f5a2"; } - -.fa-bed { - --fa: "\f236"; } - -.fa-square-h { - --fa: "\f0fd"; } - -.fa-h-square { - --fa: "\f0fd"; } - -.fa-podcast { - --fa: "\f2ce"; } - -.fa-temperature-full { - --fa: "\f2c7"; } - -.fa-temperature-4 { - --fa: "\f2c7"; } - -.fa-thermometer-4 { - --fa: "\f2c7"; } - -.fa-thermometer-full { - --fa: "\f2c7"; } - -.fa-bell { - --fa: "\f0f3"; } - -.fa-superscript { - --fa: "\f12b"; } - -.fa-plug-circle-xmark { - --fa: "\e560"; } - -.fa-star-of-life { - --fa: "\f621"; } - -.fa-phone-slash { - --fa: "\f3dd"; } - -.fa-paint-roller { - --fa: "\f5aa"; } - -.fa-handshake-angle { - --fa: "\f4c4"; } - -.fa-hands-helping { - --fa: "\f4c4"; } - -.fa-location-dot { - --fa: "\f3c5"; } - -.fa-map-marker-alt { - --fa: "\f3c5"; } - -.fa-file { - --fa: "\f15b"; } - -.fa-greater-than { - --fa: "\3e"; } - -.fa-person-swimming { - --fa: "\f5c4"; } - -.fa-swimmer { - --fa: "\f5c4"; } - -.fa-arrow-down { - --fa: "\f063"; } - -.fa-droplet { - --fa: "\f043"; } - -.fa-tint { - --fa: "\f043"; } - -.fa-eraser { - --fa: "\f12d"; } - -.fa-earth-americas { - --fa: "\f57d"; } - -.fa-earth { - --fa: "\f57d"; } - -.fa-earth-america { - --fa: "\f57d"; } - -.fa-globe-americas { - --fa: "\f57d"; } - -.fa-person-burst { - --fa: "\e53b"; } - -.fa-dove { - --fa: "\f4ba"; } - -.fa-battery-empty { - --fa: "\f244"; } - -.fa-battery-0 { - --fa: "\f244"; } - -.fa-socks { - --fa: "\f696"; } - -.fa-inbox { - --fa: "\f01c"; } - -.fa-section { - --fa: "\e447"; } - -.fa-gauge-high { - --fa: "\f625"; } - -.fa-tachometer-alt { - --fa: "\f625"; } - -.fa-tachometer-alt-fast { - --fa: "\f625"; } - -.fa-envelope-open-text { - --fa: "\f658"; } - -.fa-hospital { - --fa: "\f0f8"; } - -.fa-hospital-alt { - --fa: "\f0f8"; } - -.fa-hospital-wide { - --fa: "\f0f8"; } - -.fa-wine-bottle { - --fa: "\f72f"; } - -.fa-chess-rook { - --fa: "\f447"; } - -.fa-bars-staggered { - --fa: "\f550"; } - -.fa-reorder { - --fa: "\f550"; } - -.fa-stream { - --fa: "\f550"; } - -.fa-dharmachakra { - --fa: "\f655"; } - -.fa-hotdog { - --fa: "\f80f"; } - -.fa-person-walking-with-cane { - --fa: "\f29d"; } - -.fa-blind { - --fa: "\f29d"; } - -.fa-drum { - --fa: "\f569"; } - -.fa-ice-cream { - --fa: "\f810"; } - -.fa-heart-circle-bolt { - --fa: "\e4fc"; } - -.fa-fax { - --fa: "\f1ac"; } - -.fa-paragraph { - --fa: "\f1dd"; } - -.fa-check-to-slot { - --fa: "\f772"; } - -.fa-vote-yea { - --fa: "\f772"; } - -.fa-star-half { - --fa: "\f089"; } - -.fa-boxes-stacked { - --fa: "\f468"; } - -.fa-boxes { - --fa: "\f468"; } - -.fa-boxes-alt { - --fa: "\f468"; } - -.fa-link { - --fa: "\f0c1"; } - -.fa-chain { - --fa: "\f0c1"; } - -.fa-ear-listen { - --fa: "\f2a2"; } - -.fa-assistive-listening-systems { - --fa: "\f2a2"; } - -.fa-tree-city { - --fa: "\e587"; } - -.fa-play { - --fa: "\f04b"; } - -.fa-font { - --fa: "\f031"; } - -.fa-table-cells-row-lock { - --fa: "\e67a"; } - -.fa-rupiah-sign { - --fa: "\e23d"; } - -.fa-magnifying-glass { - --fa: "\f002"; } - -.fa-search { - --fa: "\f002"; } - -.fa-table-tennis-paddle-ball { - --fa: "\f45d"; } - -.fa-ping-pong-paddle-ball { - --fa: "\f45d"; } - -.fa-table-tennis { - --fa: "\f45d"; } - -.fa-person-dots-from-line { - --fa: "\f470"; } - -.fa-diagnoses { - --fa: "\f470"; } - -.fa-trash-can-arrow-up { - --fa: "\f82a"; } - -.fa-trash-restore-alt { - --fa: "\f82a"; } - -.fa-naira-sign { - --fa: "\e1f6"; } - -.fa-cart-arrow-down { - --fa: "\f218"; } - -.fa-walkie-talkie { - --fa: "\f8ef"; } - -.fa-file-pen { - --fa: "\f31c"; } - -.fa-file-edit { - --fa: "\f31c"; } - -.fa-receipt { - --fa: "\f543"; } - -.fa-square-pen { - --fa: "\f14b"; } - -.fa-pen-square { - --fa: "\f14b"; } - -.fa-pencil-square { - --fa: "\f14b"; } - -.fa-suitcase-rolling { - --fa: "\f5c1"; } - -.fa-person-circle-exclamation { - --fa: "\e53f"; } - -.fa-chevron-down { - --fa: "\f078"; } - -.fa-battery-full { - --fa: "\f240"; } - -.fa-battery { - --fa: "\f240"; } - -.fa-battery-5 { - --fa: "\f240"; } - -.fa-skull-crossbones { - --fa: "\f714"; } - -.fa-code-compare { - --fa: "\e13a"; } - -.fa-list-ul { - --fa: "\f0ca"; } - -.fa-list-dots { - --fa: "\f0ca"; } - -.fa-school-lock { - --fa: "\e56f"; } - -.fa-tower-cell { - --fa: "\e585"; } - -.fa-down-long { - --fa: "\f309"; } - -.fa-long-arrow-alt-down { - --fa: "\f309"; } - -.fa-ranking-star { - --fa: "\e561"; } - -.fa-chess-king { - --fa: "\f43f"; } - -.fa-person-harassing { - --fa: "\e549"; } - -.fa-brazilian-real-sign { - --fa: "\e46c"; } - -.fa-landmark-dome { - --fa: "\f752"; } - -.fa-landmark-alt { - --fa: "\f752"; } - -.fa-arrow-up { - --fa: "\f062"; } - -.fa-tv { - --fa: "\f26c"; } - -.fa-television { - --fa: "\f26c"; } - -.fa-tv-alt { - --fa: "\f26c"; } - -.fa-shrimp { - --fa: "\e448"; } - -.fa-list-check { - --fa: "\f0ae"; } - -.fa-tasks { - --fa: "\f0ae"; } - -.fa-jug-detergent { - --fa: "\e519"; } - -.fa-circle-user { - --fa: "\f2bd"; } - -.fa-user-circle { - --fa: "\f2bd"; } - -.fa-user-shield { - --fa: "\f505"; } - -.fa-wind { - --fa: "\f72e"; } - -.fa-car-burst { - --fa: "\f5e1"; } - -.fa-car-crash { - --fa: "\f5e1"; } - -.fa-y { - --fa: "\59"; } - -.fa-person-snowboarding { - --fa: "\f7ce"; } - -.fa-snowboarding { - --fa: "\f7ce"; } - -.fa-truck-fast { - --fa: "\f48b"; } - -.fa-shipping-fast { - --fa: "\f48b"; } - -.fa-fish { - --fa: "\f578"; } - -.fa-user-graduate { - --fa: "\f501"; } - -.fa-circle-half-stroke { - --fa: "\f042"; } - -.fa-adjust { - --fa: "\f042"; } - -.fa-clapperboard { - --fa: "\e131"; } - -.fa-circle-radiation { - --fa: "\f7ba"; } - -.fa-radiation-alt { - --fa: "\f7ba"; } - -.fa-baseball { - --fa: "\f433"; } - -.fa-baseball-ball { - --fa: "\f433"; } - -.fa-jet-fighter-up { - --fa: "\e518"; } - -.fa-diagram-project { - --fa: "\f542"; } - -.fa-project-diagram { - --fa: "\f542"; } - -.fa-copy { - --fa: "\f0c5"; } - -.fa-volume-xmark { - --fa: "\f6a9"; } - -.fa-volume-mute { - --fa: "\f6a9"; } - -.fa-volume-times { - --fa: "\f6a9"; } - -.fa-hand-sparkles { - --fa: "\e05d"; } - -.fa-grip { - --fa: "\f58d"; } - -.fa-grip-horizontal { - --fa: "\f58d"; } - -.fa-share-from-square { - --fa: "\f14d"; } - -.fa-share-square { - --fa: "\f14d"; } - -.fa-child-combatant { - --fa: "\e4e0"; } - -.fa-child-rifle { - --fa: "\e4e0"; } - -.fa-gun { - --fa: "\e19b"; } - -.fa-square-phone { - --fa: "\f098"; } - -.fa-phone-square { - --fa: "\f098"; } - -.fa-plus { - --fa: "\2b"; } - -.fa-add { - --fa: "\2b"; } - -.fa-expand { - --fa: "\f065"; } - -.fa-computer { - --fa: "\e4e5"; } - -.fa-xmark { - --fa: "\f00d"; } - -.fa-close { - --fa: "\f00d"; } - -.fa-multiply { - --fa: "\f00d"; } - -.fa-remove { - --fa: "\f00d"; } - -.fa-times { - --fa: "\f00d"; } - -.fa-arrows-up-down-left-right { - --fa: "\f047"; } - -.fa-arrows { - --fa: "\f047"; } - -.fa-chalkboard-user { - --fa: "\f51c"; } - -.fa-chalkboard-teacher { - --fa: "\f51c"; } - -.fa-peso-sign { - --fa: "\e222"; } - -.fa-building-shield { - --fa: "\e4d8"; } - -.fa-baby { - --fa: "\f77c"; } - -.fa-users-line { - --fa: "\e592"; } - -.fa-quote-left { - --fa: "\f10d"; } - -.fa-quote-left-alt { - --fa: "\f10d"; } - -.fa-tractor { - --fa: "\f722"; } - -.fa-trash-arrow-up { - --fa: "\f829"; } - -.fa-trash-restore { - --fa: "\f829"; } - -.fa-arrow-down-up-lock { - --fa: "\e4b0"; } - -.fa-lines-leaning { - --fa: "\e51e"; } - -.fa-ruler-combined { - --fa: "\f546"; } - -.fa-copyright { - --fa: "\f1f9"; } - -.fa-equals { - --fa: "\3d"; } - -.fa-blender { - --fa: "\f517"; } - -.fa-teeth { - --fa: "\f62e"; } - -.fa-shekel-sign { - --fa: "\f20b"; } - -.fa-ils { - --fa: "\f20b"; } - -.fa-shekel { - --fa: "\f20b"; } - -.fa-sheqel { - --fa: "\f20b"; } - -.fa-sheqel-sign { - --fa: "\f20b"; } - -.fa-map { - --fa: "\f279"; } - -.fa-rocket { - --fa: "\f135"; } - -.fa-photo-film { - --fa: "\f87c"; } - -.fa-photo-video { - --fa: "\f87c"; } - -.fa-folder-minus { - --fa: "\f65d"; } - -.fa-hexagon-nodes-bolt { - --fa: "\e69a"; } - -.fa-store { - --fa: "\f54e"; } - -.fa-arrow-trend-up { - --fa: "\e098"; } - -.fa-plug-circle-minus { - --fa: "\e55e"; } - -.fa-sign-hanging { - --fa: "\f4d9"; } - -.fa-sign { - --fa: "\f4d9"; } - -.fa-bezier-curve { - --fa: "\f55b"; } - -.fa-bell-slash { - --fa: "\f1f6"; } - -.fa-tablet { - --fa: "\f3fb"; } - -.fa-tablet-android { - --fa: "\f3fb"; } - -.fa-school-flag { - --fa: "\e56e"; } - -.fa-fill { - --fa: "\f575"; } - -.fa-angle-up { - --fa: "\f106"; } - -.fa-drumstick-bite { - --fa: "\f6d7"; } - -.fa-holly-berry { - --fa: "\f7aa"; } - -.fa-chevron-left { - --fa: "\f053"; } - -.fa-bacteria { - --fa: "\e059"; } - -.fa-hand-lizard { - --fa: "\f258"; } - -.fa-notdef { - --fa: "\e1fe"; } - -.fa-disease { - --fa: "\f7fa"; } - -.fa-briefcase-medical { - --fa: "\f469"; } - -.fa-genderless { - --fa: "\f22d"; } - -.fa-chevron-right { - --fa: "\f054"; } - -.fa-retweet { - --fa: "\f079"; } - -.fa-car-rear { - --fa: "\f5de"; } - -.fa-car-alt { - --fa: "\f5de"; } - -.fa-pump-soap { - --fa: "\e06b"; } - -.fa-video-slash { - --fa: "\f4e2"; } - -.fa-battery-quarter { - --fa: "\f243"; } - -.fa-battery-2 { - --fa: "\f243"; } - -.fa-radio { - --fa: "\f8d7"; } - -.fa-baby-carriage { - --fa: "\f77d"; } - -.fa-carriage-baby { - --fa: "\f77d"; } - -.fa-traffic-light { - --fa: "\f637"; } - -.fa-thermometer { - --fa: "\f491"; } - -.fa-vr-cardboard { - --fa: "\f729"; } - -.fa-hand-middle-finger { - --fa: "\f806"; } - -.fa-percent { - --fa: "\25"; } - -.fa-percentage { - --fa: "\25"; } - -.fa-truck-moving { - --fa: "\f4df"; } - -.fa-glass-water-droplet { - --fa: "\e4f5"; } - -.fa-display { - --fa: "\e163"; } - -.fa-face-smile { - --fa: "\f118"; } - -.fa-smile { - --fa: "\f118"; } - -.fa-thumbtack { - --fa: "\f08d"; } - -.fa-thumb-tack { - --fa: "\f08d"; } - -.fa-trophy { - --fa: "\f091"; } - -.fa-person-praying { - --fa: "\f683"; } - -.fa-pray { - --fa: "\f683"; } - -.fa-hammer { - --fa: "\f6e3"; } - -.fa-hand-peace { - --fa: "\f25b"; } - -.fa-rotate { - --fa: "\f2f1"; } - -.fa-sync-alt { - --fa: "\f2f1"; } - -.fa-spinner { - --fa: "\f110"; } - -.fa-robot { - --fa: "\f544"; } - -.fa-peace { - --fa: "\f67c"; } - -.fa-gears { - --fa: "\f085"; } - -.fa-cogs { - --fa: "\f085"; } - -.fa-warehouse { - --fa: "\f494"; } - -.fa-arrow-up-right-dots { - --fa: "\e4b7"; } - -.fa-splotch { - --fa: "\f5bc"; } - -.fa-face-grin-hearts { - --fa: "\f584"; } - -.fa-grin-hearts { - --fa: "\f584"; } - -.fa-dice-four { - --fa: "\f524"; } - -.fa-sim-card { - --fa: "\f7c4"; } - -.fa-transgender { - --fa: "\f225"; } - -.fa-transgender-alt { - --fa: "\f225"; } - -.fa-mercury { - --fa: "\f223"; } - -.fa-arrow-turn-down { - --fa: "\f149"; } - -.fa-level-down { - --fa: "\f149"; } - -.fa-person-falling-burst { - --fa: "\e547"; } - -.fa-award { - --fa: "\f559"; } - -.fa-ticket-simple { - --fa: "\f3ff"; } - -.fa-ticket-alt { - --fa: "\f3ff"; } - -.fa-building { - --fa: "\f1ad"; } - -.fa-angles-left { - --fa: "\f100"; } - -.fa-angle-double-left { - --fa: "\f100"; } - -.fa-qrcode { - --fa: "\f029"; } - -.fa-clock-rotate-left { - --fa: "\f1da"; } - -.fa-history { - --fa: "\f1da"; } - -.fa-face-grin-beam-sweat { - --fa: "\f583"; } - -.fa-grin-beam-sweat { - --fa: "\f583"; } - -.fa-file-export { - --fa: "\f56e"; } - -.fa-arrow-right-from-file { - --fa: "\f56e"; } - -.fa-shield { - --fa: "\f132"; } - -.fa-shield-blank { - --fa: "\f132"; } - -.fa-arrow-up-short-wide { - --fa: "\f885"; } - -.fa-sort-amount-up-alt { - --fa: "\f885"; } - -.fa-comment-nodes { - --fa: "\e696"; } - -.fa-house-medical { - --fa: "\e3b2"; } - -.fa-golf-ball-tee { - --fa: "\f450"; } - -.fa-golf-ball { - --fa: "\f450"; } - -.fa-circle-chevron-left { - --fa: "\f137"; } - -.fa-chevron-circle-left { - --fa: "\f137"; } - -.fa-house-chimney-window { - --fa: "\e00d"; } - -.fa-pen-nib { - --fa: "\f5ad"; } - -.fa-tent-arrow-turn-left { - --fa: "\e580"; } - -.fa-tents { - --fa: "\e582"; } - -.fa-wand-magic { - --fa: "\f0d0"; } - -.fa-magic { - --fa: "\f0d0"; } - -.fa-dog { - --fa: "\f6d3"; } - -.fa-carrot { - --fa: "\f787"; } - -.fa-moon { - --fa: "\f186"; } - -.fa-wine-glass-empty { - --fa: "\f5ce"; } - -.fa-wine-glass-alt { - --fa: "\f5ce"; } - -.fa-cheese { - --fa: "\f7ef"; } - -.fa-yin-yang { - --fa: "\f6ad"; } - -.fa-music { - --fa: "\f001"; } - -.fa-code-commit { - --fa: "\f386"; } - -.fa-temperature-low { - --fa: "\f76b"; } - -.fa-person-biking { - --fa: "\f84a"; } - -.fa-biking { - --fa: "\f84a"; } - -.fa-broom { - --fa: "\f51a"; } - -.fa-shield-heart { - --fa: "\e574"; } - -.fa-gopuram { - --fa: "\f664"; } - -.fa-earth-oceania { - --fa: "\e47b"; } - -.fa-globe-oceania { - --fa: "\e47b"; } - -.fa-square-xmark { - --fa: "\f2d3"; } - -.fa-times-square { - --fa: "\f2d3"; } - -.fa-xmark-square { - --fa: "\f2d3"; } - -.fa-hashtag { - --fa: "\23"; } - -.fa-up-right-and-down-left-from-center { - --fa: "\f424"; } - -.fa-expand-alt { - --fa: "\f424"; } - -.fa-oil-can { - --fa: "\f613"; } - -.fa-t { - --fa: "\54"; } - -.fa-hippo { - --fa: "\f6ed"; } - -.fa-chart-column { - --fa: "\e0e3"; } - -.fa-infinity { - --fa: "\f534"; } - -.fa-vial-circle-check { - --fa: "\e596"; } - -.fa-person-arrow-down-to-line { - --fa: "\e538"; } - -.fa-voicemail { - --fa: "\f897"; } - -.fa-fan { - --fa: "\f863"; } - -.fa-person-walking-luggage { - --fa: "\e554"; } - -.fa-up-down { - --fa: "\f338"; } - -.fa-arrows-alt-v { - --fa: "\f338"; } - -.fa-cloud-moon-rain { - --fa: "\f73c"; } - -.fa-calendar { - --fa: "\f133"; } - -.fa-trailer { - --fa: "\e041"; } - -.fa-bahai { - --fa: "\f666"; } - -.fa-haykal { - --fa: "\f666"; } - -.fa-sd-card { - --fa: "\f7c2"; } - -.fa-dragon { - --fa: "\f6d5"; } - -.fa-shoe-prints { - --fa: "\f54b"; } - -.fa-circle-plus { - --fa: "\f055"; } - -.fa-plus-circle { - --fa: "\f055"; } - -.fa-face-grin-tongue-wink { - --fa: "\f58b"; } - -.fa-grin-tongue-wink { - --fa: "\f58b"; } - -.fa-hand-holding { - --fa: "\f4bd"; } - -.fa-plug-circle-exclamation { - --fa: "\e55d"; } - -.fa-link-slash { - --fa: "\f127"; } - -.fa-chain-broken { - --fa: "\f127"; } - -.fa-chain-slash { - --fa: "\f127"; } - -.fa-unlink { - --fa: "\f127"; } - -.fa-clone { - --fa: "\f24d"; } - -.fa-person-walking-arrow-loop-left { - --fa: "\e551"; } - -.fa-arrow-up-z-a { - --fa: "\f882"; } - -.fa-sort-alpha-up-alt { - --fa: "\f882"; } - -.fa-fire-flame-curved { - --fa: "\f7e4"; } - -.fa-fire-alt { - --fa: "\f7e4"; } - -.fa-tornado { - --fa: "\f76f"; } - -.fa-file-circle-plus { - --fa: "\e494"; } - -.fa-book-quran { - --fa: "\f687"; } - -.fa-quran { - --fa: "\f687"; } - -.fa-anchor { - --fa: "\f13d"; } - -.fa-border-all { - --fa: "\f84c"; } - -.fa-face-angry { - --fa: "\f556"; } - -.fa-angry { - --fa: "\f556"; } - -.fa-cookie-bite { - --fa: "\f564"; } - -.fa-arrow-trend-down { - --fa: "\e097"; } - -.fa-rss { - --fa: "\f09e"; } - -.fa-feed { - --fa: "\f09e"; } - -.fa-draw-polygon { - --fa: "\f5ee"; } - -.fa-scale-balanced { - --fa: "\f24e"; } - -.fa-balance-scale { - --fa: "\f24e"; } - -.fa-gauge-simple-high { - --fa: "\f62a"; } - -.fa-tachometer { - --fa: "\f62a"; } - -.fa-tachometer-fast { - --fa: "\f62a"; } - -.fa-shower { - --fa: "\f2cc"; } - -.fa-desktop { - --fa: "\f390"; } - -.fa-desktop-alt { - --fa: "\f390"; } - -.fa-m { - --fa: "\4d"; } - -.fa-table-list { - --fa: "\f00b"; } - -.fa-th-list { - --fa: "\f00b"; } - -.fa-comment-sms { - --fa: "\f7cd"; } - -.fa-sms { - --fa: "\f7cd"; } - -.fa-book { - --fa: "\f02d"; } - -.fa-user-plus { - --fa: "\f234"; } - -.fa-check { - --fa: "\f00c"; } - -.fa-battery-three-quarters { - --fa: "\f241"; } - -.fa-battery-4 { - --fa: "\f241"; } - -.fa-house-circle-check { - --fa: "\e509"; } - -.fa-angle-left { - --fa: "\f104"; } - -.fa-diagram-successor { - --fa: "\e47a"; } - -.fa-truck-arrow-right { - --fa: "\e58b"; } - -.fa-arrows-split-up-and-left { - --fa: "\e4bc"; } - -.fa-hand-fist { - --fa: "\f6de"; } - -.fa-fist-raised { - --fa: "\f6de"; } - -.fa-cloud-moon { - --fa: "\f6c3"; } - -.fa-briefcase { - --fa: "\f0b1"; } - -.fa-person-falling { - --fa: "\e546"; } - -.fa-image-portrait { - --fa: "\f3e0"; } - -.fa-portrait { - --fa: "\f3e0"; } - -.fa-user-tag { - --fa: "\f507"; } - -.fa-rug { - --fa: "\e569"; } - -.fa-earth-europe { - --fa: "\f7a2"; } - -.fa-globe-europe { - --fa: "\f7a2"; } - -.fa-cart-flatbed-suitcase { - --fa: "\f59d"; } - -.fa-luggage-cart { - --fa: "\f59d"; } - -.fa-rectangle-xmark { - --fa: "\f410"; } - -.fa-rectangle-times { - --fa: "\f410"; } - -.fa-times-rectangle { - --fa: "\f410"; } - -.fa-window-close { - --fa: "\f410"; } - -.fa-baht-sign { - --fa: "\e0ac"; } - -.fa-book-open { - --fa: "\f518"; } - -.fa-book-journal-whills { - --fa: "\f66a"; } - -.fa-journal-whills { - --fa: "\f66a"; } - -.fa-handcuffs { - --fa: "\e4f8"; } - -.fa-triangle-exclamation { - --fa: "\f071"; } - -.fa-exclamation-triangle { - --fa: "\f071"; } - -.fa-warning { - --fa: "\f071"; } - -.fa-database { - --fa: "\f1c0"; } - -.fa-share { - --fa: "\f064"; } - -.fa-mail-forward { - --fa: "\f064"; } - -.fa-bottle-droplet { - --fa: "\e4c4"; } - -.fa-mask-face { - --fa: "\e1d7"; } - -.fa-hill-rockslide { - --fa: "\e508"; } - -.fa-right-left { - --fa: "\f362"; } - -.fa-exchange-alt { - --fa: "\f362"; } - -.fa-paper-plane { - --fa: "\f1d8"; } - -.fa-road-circle-exclamation { - --fa: "\e565"; } - -.fa-dungeon { - --fa: "\f6d9"; } - -.fa-align-right { - --fa: "\f038"; } - -.fa-money-bill-1-wave { - --fa: "\f53b"; } - -.fa-money-bill-wave-alt { - --fa: "\f53b"; } - -.fa-life-ring { - --fa: "\f1cd"; } - -.fa-hands { - --fa: "\f2a7"; } - -.fa-sign-language { - --fa: "\f2a7"; } - -.fa-signing { - --fa: "\f2a7"; } - -.fa-calendar-day { - --fa: "\f783"; } - -.fa-water-ladder { - --fa: "\f5c5"; } - -.fa-ladder-water { - --fa: "\f5c5"; } - -.fa-swimming-pool { - --fa: "\f5c5"; } - -.fa-arrows-up-down { - --fa: "\f07d"; } - -.fa-arrows-v { - --fa: "\f07d"; } - -.fa-face-grimace { - --fa: "\f57f"; } - -.fa-grimace { - --fa: "\f57f"; } - -.fa-wheelchair-move { - --fa: "\e2ce"; } - -.fa-wheelchair-alt { - --fa: "\e2ce"; } - -.fa-turn-down { - --fa: "\f3be"; } - -.fa-level-down-alt { - --fa: "\f3be"; } - -.fa-person-walking-arrow-right { - --fa: "\e552"; } - -.fa-square-envelope { - --fa: "\f199"; } - -.fa-envelope-square { - --fa: "\f199"; } - -.fa-dice { - --fa: "\f522"; } - -.fa-bowling-ball { - --fa: "\f436"; } - -.fa-brain { - --fa: "\f5dc"; } - -.fa-bandage { - --fa: "\f462"; } - -.fa-band-aid { - --fa: "\f462"; } - -.fa-calendar-minus { - --fa: "\f272"; } - -.fa-circle-xmark { - --fa: "\f057"; } - -.fa-times-circle { - --fa: "\f057"; } - -.fa-xmark-circle { - --fa: "\f057"; } - -.fa-gifts { - --fa: "\f79c"; } - -.fa-hotel { - --fa: "\f594"; } - -.fa-earth-asia { - --fa: "\f57e"; } - -.fa-globe-asia { - --fa: "\f57e"; } - -.fa-id-card-clip { - --fa: "\f47f"; } - -.fa-id-card-alt { - --fa: "\f47f"; } - -.fa-magnifying-glass-plus { - --fa: "\f00e"; } - -.fa-search-plus { - --fa: "\f00e"; } - -.fa-thumbs-up { - --fa: "\f164"; } - -.fa-user-clock { - --fa: "\f4fd"; } - -.fa-hand-dots { - --fa: "\f461"; } - -.fa-allergies { - --fa: "\f461"; } - -.fa-file-invoice { - --fa: "\f570"; } - -.fa-window-minimize { - --fa: "\f2d1"; } - -.fa-mug-saucer { - --fa: "\f0f4"; } - -.fa-coffee { - --fa: "\f0f4"; } - -.fa-brush { - --fa: "\f55d"; } - -.fa-file-half-dashed { - --fa: "\e698"; } - -.fa-mask { - --fa: "\f6fa"; } - -.fa-magnifying-glass-minus { - --fa: "\f010"; } - -.fa-search-minus { - --fa: "\f010"; } - -.fa-ruler-vertical { - --fa: "\f548"; } - -.fa-user-large { - --fa: "\f406"; } - -.fa-user-alt { - --fa: "\f406"; } - -.fa-train-tram { - --fa: "\e5b4"; } - -.fa-user-nurse { - --fa: "\f82f"; } - -.fa-syringe { - --fa: "\f48e"; } - -.fa-cloud-sun { - --fa: "\f6c4"; } - -.fa-stopwatch-20 { - --fa: "\e06f"; } - -.fa-square-full { - --fa: "\f45c"; } - -.fa-magnet { - --fa: "\f076"; } - -.fa-jar { - --fa: "\e516"; } - -.fa-note-sticky { - --fa: "\f249"; } - -.fa-sticky-note { - --fa: "\f249"; } - -.fa-bug-slash { - --fa: "\e490"; } - -.fa-arrow-up-from-water-pump { - --fa: "\e4b6"; } - -.fa-bone { - --fa: "\f5d7"; } - -.fa-table-cells-row-unlock { - --fa: "\e691"; } - -.fa-user-injured { - --fa: "\f728"; } - -.fa-face-sad-tear { - --fa: "\f5b4"; } - -.fa-sad-tear { - --fa: "\f5b4"; } - -.fa-plane { - --fa: "\f072"; } - -.fa-tent-arrows-down { - --fa: "\e581"; } - -.fa-exclamation { - --fa: "\21"; } - -.fa-arrows-spin { - --fa: "\e4bb"; } - -.fa-print { - --fa: "\f02f"; } - -.fa-turkish-lira-sign { - --fa: "\e2bb"; } - -.fa-try { - --fa: "\e2bb"; } - -.fa-turkish-lira { - --fa: "\e2bb"; } - -.fa-dollar-sign { - --fa: "\24"; } - -.fa-dollar { - --fa: "\24"; } - -.fa-usd { - --fa: "\24"; } - -.fa-x { - --fa: "\58"; } - -.fa-magnifying-glass-dollar { - --fa: "\f688"; } - -.fa-search-dollar { - --fa: "\f688"; } - -.fa-users-gear { - --fa: "\f509"; } - -.fa-users-cog { - --fa: "\f509"; } - -.fa-person-military-pointing { - --fa: "\e54a"; } - -.fa-building-columns { - --fa: "\f19c"; } - -.fa-bank { - --fa: "\f19c"; } - -.fa-institution { - --fa: "\f19c"; } - -.fa-museum { - --fa: "\f19c"; } - -.fa-university { - --fa: "\f19c"; } - -.fa-umbrella { - --fa: "\f0e9"; } - -.fa-trowel { - --fa: "\e589"; } - -.fa-d { - --fa: "\44"; } - -.fa-stapler { - --fa: "\e5af"; } - -.fa-masks-theater { - --fa: "\f630"; } - -.fa-theater-masks { - --fa: "\f630"; } - -.fa-kip-sign { - --fa: "\e1c4"; } - -.fa-hand-point-left { - --fa: "\f0a5"; } - -.fa-handshake-simple { - --fa: "\f4c6"; } - -.fa-handshake-alt { - --fa: "\f4c6"; } - -.fa-jet-fighter { - --fa: "\f0fb"; } - -.fa-fighter-jet { - --fa: "\f0fb"; } - -.fa-square-share-nodes { - --fa: "\f1e1"; } - -.fa-share-alt-square { - --fa: "\f1e1"; } - -.fa-barcode { - --fa: "\f02a"; } - -.fa-plus-minus { - --fa: "\e43c"; } - -.fa-video { - --fa: "\f03d"; } - -.fa-video-camera { - --fa: "\f03d"; } - -.fa-graduation-cap { - --fa: "\f19d"; } - -.fa-mortar-board { - --fa: "\f19d"; } - -.fa-hand-holding-medical { - --fa: "\e05c"; } - -.fa-person-circle-check { - --fa: "\e53e"; } - -.fa-turn-up { - --fa: "\f3bf"; } - -.fa-level-up-alt { - --fa: "\f3bf"; } - -.sr-only, -.fa-sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - white-space: nowrap; - border-width: 0; } - -.sr-only-focusable:not(:focus), -.fa-sr-only-focusable:not(:focus) { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - white-space: nowrap; - border-width: 0; } diff --git a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/fontawesome.min.css b/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/fontawesome.min.css deleted file mode 100644 index 4e07e30..0000000 --- a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/fontawesome.min.css +++ /dev/null @@ -1,9 +0,0 @@ -/*! - * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - * Copyright 2024 Fonticons, Inc. - */ -.fa{font-family:var(--fa-style-family,"Font Awesome 6 Free");font-weight:var(--fa-style,900)}.fa,.fa-brands,.fa-regular,.fa-solid,.fab,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-brands:before,.fa-regular:before,.fa-solid:before,.fa:before,.fab:before,.far:before,.fas:before{content:var(--fa)}.fa-classic,.fa-regular,.fa-solid,.far,.fas{font-family:"Font Awesome 6 Free"}.fa-brands,.fab{font-family:"Font Awesome 6 Brands"}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em)*-1);position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-radius:var(--fa-border-radius,.1em);border:var(--fa-border-width,.08em) var(--fa-border-style,solid) var(--fa-border-color,#eee);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{animation-name:fa-beat;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{animation-name:fa-bounce;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{animation-name:fa-fade;animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{animation-name:fa-beat-fade;animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{animation-name:fa-flip;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{animation-name:fa-shake;animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{animation-name:fa-spin;animation-duration:var(--fa-animation-duration,2s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{animation-name:fa-spin;animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{animation-delay:-1ms;animation-duration:1ms;animation-iteration-count:1;transition-delay:0s;transition-duration:0s}}@keyframes fa-beat{0%,90%{transform:scale(1)}45%{transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-bounce{0%{transform:scale(1) translateY(0)}10%{transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{transform:scale(1) translateY(0)}to{transform:scale(1) translateY(0)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);transform:scale(1)}50%{opacity:1;transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-flip{50%{transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-shake{0%{transform:rotate(-15deg)}4%{transform:rotate(15deg)}8%,24%{transform:rotate(-18deg)}12%,28%{transform:rotate(18deg)}16%{transform:rotate(-22deg)}20%{transform:rotate(22deg)}32%{transform:rotate(-12deg)}36%{transform:rotate(12deg)}40%,to{transform:rotate(0deg)}}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{transform:rotate(90deg)}.fa-rotate-180{transform:rotate(180deg)}.fa-rotate-270{transform:rotate(270deg)}.fa-flip-horizontal{transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}.fa-rotate-by{transform:rotate(var(--fa-rotate-angle,0))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%;z-index:var(--fa-stack-z-index,auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse,#fff)} - -.fa-0{--fa:"\30"}.fa-1{--fa:"\31"}.fa-2{--fa:"\32"}.fa-3{--fa:"\33"}.fa-4{--fa:"\34"}.fa-5{--fa:"\35"}.fa-6{--fa:"\36"}.fa-7{--fa:"\37"}.fa-8{--fa:"\38"}.fa-9{--fa:"\39"}.fa-fill-drip{--fa:"\f576"}.fa-arrows-to-circle{--fa:"\e4bd"}.fa-chevron-circle-right,.fa-circle-chevron-right{--fa:"\f138"}.fa-at{--fa:"\40"}.fa-trash-alt,.fa-trash-can{--fa:"\f2ed"}.fa-text-height{--fa:"\f034"}.fa-user-times,.fa-user-xmark{--fa:"\f235"}.fa-stethoscope{--fa:"\f0f1"}.fa-comment-alt,.fa-message{--fa:"\f27a"}.fa-info{--fa:"\f129"}.fa-compress-alt,.fa-down-left-and-up-right-to-center{--fa:"\f422"}.fa-explosion{--fa:"\e4e9"}.fa-file-alt,.fa-file-lines,.fa-file-text{--fa:"\f15c"}.fa-wave-square{--fa:"\f83e"}.fa-ring{--fa:"\f70b"}.fa-building-un{--fa:"\e4d9"}.fa-dice-three{--fa:"\f527"}.fa-calendar-alt,.fa-calendar-days{--fa:"\f073"}.fa-anchor-circle-check{--fa:"\e4aa"}.fa-building-circle-arrow-right{--fa:"\e4d1"}.fa-volleyball,.fa-volleyball-ball{--fa:"\f45f"}.fa-arrows-up-to-line{--fa:"\e4c2"}.fa-sort-desc,.fa-sort-down{--fa:"\f0dd"}.fa-circle-minus,.fa-minus-circle{--fa:"\f056"}.fa-door-open{--fa:"\f52b"}.fa-right-from-bracket,.fa-sign-out-alt{--fa:"\f2f5"}.fa-atom{--fa:"\f5d2"}.fa-soap{--fa:"\e06e"}.fa-heart-music-camera-bolt,.fa-icons{--fa:"\f86d"}.fa-microphone-alt-slash,.fa-microphone-lines-slash{--fa:"\f539"}.fa-bridge-circle-check{--fa:"\e4c9"}.fa-pump-medical{--fa:"\e06a"}.fa-fingerprint{--fa:"\f577"}.fa-hand-point-right{--fa:"\f0a4"}.fa-magnifying-glass-location,.fa-search-location{--fa:"\f689"}.fa-forward-step,.fa-step-forward{--fa:"\f051"}.fa-face-smile-beam,.fa-smile-beam{--fa:"\f5b8"}.fa-flag-checkered{--fa:"\f11e"}.fa-football,.fa-football-ball{--fa:"\f44e"}.fa-school-circle-exclamation{--fa:"\e56c"}.fa-crop{--fa:"\f125"}.fa-angle-double-down,.fa-angles-down{--fa:"\f103"}.fa-users-rectangle{--fa:"\e594"}.fa-people-roof{--fa:"\e537"}.fa-people-line{--fa:"\e534"}.fa-beer,.fa-beer-mug-empty{--fa:"\f0fc"}.fa-diagram-predecessor{--fa:"\e477"}.fa-arrow-up-long,.fa-long-arrow-up{--fa:"\f176"}.fa-burn,.fa-fire-flame-simple{--fa:"\f46a"}.fa-male,.fa-person{--fa:"\f183"}.fa-laptop{--fa:"\f109"}.fa-file-csv{--fa:"\f6dd"}.fa-menorah{--fa:"\f676"}.fa-truck-plane{--fa:"\e58f"}.fa-record-vinyl{--fa:"\f8d9"}.fa-face-grin-stars,.fa-grin-stars{--fa:"\f587"}.fa-bong{--fa:"\f55c"}.fa-pastafarianism,.fa-spaghetti-monster-flying{--fa:"\f67b"}.fa-arrow-down-up-across-line{--fa:"\e4af"}.fa-spoon,.fa-utensil-spoon{--fa:"\f2e5"}.fa-jar-wheat{--fa:"\e517"}.fa-envelopes-bulk,.fa-mail-bulk{--fa:"\f674"}.fa-file-circle-exclamation{--fa:"\e4eb"}.fa-circle-h,.fa-hospital-symbol{--fa:"\f47e"}.fa-pager{--fa:"\f815"}.fa-address-book,.fa-contact-book{--fa:"\f2b9"}.fa-strikethrough{--fa:"\f0cc"}.fa-k{--fa:"\4b"}.fa-landmark-flag{--fa:"\e51c"}.fa-pencil,.fa-pencil-alt{--fa:"\f303"}.fa-backward{--fa:"\f04a"}.fa-caret-right{--fa:"\f0da"}.fa-comments{--fa:"\f086"}.fa-file-clipboard,.fa-paste{--fa:"\f0ea"}.fa-code-pull-request{--fa:"\e13c"}.fa-clipboard-list{--fa:"\f46d"}.fa-truck-loading,.fa-truck-ramp-box{--fa:"\f4de"}.fa-user-check{--fa:"\f4fc"}.fa-vial-virus{--fa:"\e597"}.fa-sheet-plastic{--fa:"\e571"}.fa-blog{--fa:"\f781"}.fa-user-ninja{--fa:"\f504"}.fa-person-arrow-up-from-line{--fa:"\e539"}.fa-scroll-torah,.fa-torah{--fa:"\f6a0"}.fa-broom-ball,.fa-quidditch,.fa-quidditch-broom-ball{--fa:"\f458"}.fa-toggle-off{--fa:"\f204"}.fa-archive,.fa-box-archive{--fa:"\f187"}.fa-person-drowning{--fa:"\e545"}.fa-arrow-down-9-1,.fa-sort-numeric-desc,.fa-sort-numeric-down-alt{--fa:"\f886"}.fa-face-grin-tongue-squint,.fa-grin-tongue-squint{--fa:"\f58a"}.fa-spray-can{--fa:"\f5bd"}.fa-truck-monster{--fa:"\f63b"}.fa-w{--fa:"\57"}.fa-earth-africa,.fa-globe-africa{--fa:"\f57c"}.fa-rainbow{--fa:"\f75b"}.fa-circle-notch{--fa:"\f1ce"}.fa-tablet-alt,.fa-tablet-screen-button{--fa:"\f3fa"}.fa-paw{--fa:"\f1b0"}.fa-cloud{--fa:"\f0c2"}.fa-trowel-bricks{--fa:"\e58a"}.fa-face-flushed,.fa-flushed{--fa:"\f579"}.fa-hospital-user{--fa:"\f80d"}.fa-tent-arrow-left-right{--fa:"\e57f"}.fa-gavel,.fa-legal{--fa:"\f0e3"}.fa-binoculars{--fa:"\f1e5"}.fa-microphone-slash{--fa:"\f131"}.fa-box-tissue{--fa:"\e05b"}.fa-motorcycle{--fa:"\f21c"}.fa-bell-concierge,.fa-concierge-bell{--fa:"\f562"}.fa-pen-ruler,.fa-pencil-ruler{--fa:"\f5ae"}.fa-people-arrows,.fa-people-arrows-left-right{--fa:"\e068"}.fa-mars-and-venus-burst{--fa:"\e523"}.fa-caret-square-right,.fa-square-caret-right{--fa:"\f152"}.fa-cut,.fa-scissors{--fa:"\f0c4"}.fa-sun-plant-wilt{--fa:"\e57a"}.fa-toilets-portable{--fa:"\e584"}.fa-hockey-puck{--fa:"\f453"}.fa-table{--fa:"\f0ce"}.fa-magnifying-glass-arrow-right{--fa:"\e521"}.fa-digital-tachograph,.fa-tachograph-digital{--fa:"\f566"}.fa-users-slash{--fa:"\e073"}.fa-clover{--fa:"\e139"}.fa-mail-reply,.fa-reply{--fa:"\f3e5"}.fa-star-and-crescent{--fa:"\f699"}.fa-house-fire{--fa:"\e50c"}.fa-minus-square,.fa-square-minus{--fa:"\f146"}.fa-helicopter{--fa:"\f533"}.fa-compass{--fa:"\f14e"}.fa-caret-square-down,.fa-square-caret-down{--fa:"\f150"}.fa-file-circle-question{--fa:"\e4ef"}.fa-laptop-code{--fa:"\f5fc"}.fa-swatchbook{--fa:"\f5c3"}.fa-prescription-bottle{--fa:"\f485"}.fa-bars,.fa-navicon{--fa:"\f0c9"}.fa-people-group{--fa:"\e533"}.fa-hourglass-3,.fa-hourglass-end{--fa:"\f253"}.fa-heart-broken,.fa-heart-crack{--fa:"\f7a9"}.fa-external-link-square-alt,.fa-square-up-right{--fa:"\f360"}.fa-face-kiss-beam,.fa-kiss-beam{--fa:"\f597"}.fa-film{--fa:"\f008"}.fa-ruler-horizontal{--fa:"\f547"}.fa-people-robbery{--fa:"\e536"}.fa-lightbulb{--fa:"\f0eb"}.fa-caret-left{--fa:"\f0d9"}.fa-circle-exclamation,.fa-exclamation-circle{--fa:"\f06a"}.fa-school-circle-xmark{--fa:"\e56d"}.fa-arrow-right-from-bracket,.fa-sign-out{--fa:"\f08b"}.fa-chevron-circle-down,.fa-circle-chevron-down{--fa:"\f13a"}.fa-unlock-alt,.fa-unlock-keyhole{--fa:"\f13e"}.fa-cloud-showers-heavy{--fa:"\f740"}.fa-headphones-alt,.fa-headphones-simple{--fa:"\f58f"}.fa-sitemap{--fa:"\f0e8"}.fa-circle-dollar-to-slot,.fa-donate{--fa:"\f4b9"}.fa-memory{--fa:"\f538"}.fa-road-spikes{--fa:"\e568"}.fa-fire-burner{--fa:"\e4f1"}.fa-flag{--fa:"\f024"}.fa-hanukiah{--fa:"\f6e6"}.fa-feather{--fa:"\f52d"}.fa-volume-down,.fa-volume-low{--fa:"\f027"}.fa-comment-slash{--fa:"\f4b3"}.fa-cloud-sun-rain{--fa:"\f743"}.fa-compress{--fa:"\f066"}.fa-wheat-alt,.fa-wheat-awn{--fa:"\e2cd"}.fa-ankh{--fa:"\f644"}.fa-hands-holding-child{--fa:"\e4fa"}.fa-asterisk{--fa:"\2a"}.fa-check-square,.fa-square-check{--fa:"\f14a"}.fa-peseta-sign{--fa:"\e221"}.fa-header,.fa-heading{--fa:"\f1dc"}.fa-ghost{--fa:"\f6e2"}.fa-list,.fa-list-squares{--fa:"\f03a"}.fa-phone-square-alt,.fa-square-phone-flip{--fa:"\f87b"}.fa-cart-plus{--fa:"\f217"}.fa-gamepad{--fa:"\f11b"}.fa-circle-dot,.fa-dot-circle{--fa:"\f192"}.fa-dizzy,.fa-face-dizzy{--fa:"\f567"}.fa-egg{--fa:"\f7fb"}.fa-house-medical-circle-xmark{--fa:"\e513"}.fa-campground{--fa:"\f6bb"}.fa-folder-plus{--fa:"\f65e"}.fa-futbol,.fa-futbol-ball,.fa-soccer-ball{--fa:"\f1e3"}.fa-paint-brush,.fa-paintbrush{--fa:"\f1fc"}.fa-lock{--fa:"\f023"}.fa-gas-pump{--fa:"\f52f"}.fa-hot-tub,.fa-hot-tub-person{--fa:"\f593"}.fa-map-location,.fa-map-marked{--fa:"\f59f"}.fa-house-flood-water{--fa:"\e50e"}.fa-tree{--fa:"\f1bb"}.fa-bridge-lock{--fa:"\e4cc"}.fa-sack-dollar{--fa:"\f81d"}.fa-edit,.fa-pen-to-square{--fa:"\f044"}.fa-car-side{--fa:"\f5e4"}.fa-share-alt,.fa-share-nodes{--fa:"\f1e0"}.fa-heart-circle-minus{--fa:"\e4ff"}.fa-hourglass-2,.fa-hourglass-half{--fa:"\f252"}.fa-microscope{--fa:"\f610"}.fa-sink{--fa:"\e06d"}.fa-bag-shopping,.fa-shopping-bag{--fa:"\f290"}.fa-arrow-down-z-a,.fa-sort-alpha-desc,.fa-sort-alpha-down-alt{--fa:"\f881"}.fa-mitten{--fa:"\f7b5"}.fa-person-rays{--fa:"\e54d"}.fa-users{--fa:"\f0c0"}.fa-eye-slash{--fa:"\f070"}.fa-flask-vial{--fa:"\e4f3"}.fa-hand,.fa-hand-paper{--fa:"\f256"}.fa-om{--fa:"\f679"}.fa-worm{--fa:"\e599"}.fa-house-circle-xmark{--fa:"\e50b"}.fa-plug{--fa:"\f1e6"}.fa-chevron-up{--fa:"\f077"}.fa-hand-spock{--fa:"\f259"}.fa-stopwatch{--fa:"\f2f2"}.fa-face-kiss,.fa-kiss{--fa:"\f596"}.fa-bridge-circle-xmark{--fa:"\e4cb"}.fa-face-grin-tongue,.fa-grin-tongue{--fa:"\f589"}.fa-chess-bishop{--fa:"\f43a"}.fa-face-grin-wink,.fa-grin-wink{--fa:"\f58c"}.fa-deaf,.fa-deafness,.fa-ear-deaf,.fa-hard-of-hearing{--fa:"\f2a4"}.fa-road-circle-check{--fa:"\e564"}.fa-dice-five{--fa:"\f523"}.fa-rss-square,.fa-square-rss{--fa:"\f143"}.fa-land-mine-on{--fa:"\e51b"}.fa-i-cursor{--fa:"\f246"}.fa-stamp{--fa:"\f5bf"}.fa-stairs{--fa:"\e289"}.fa-i{--fa:"\49"}.fa-hryvnia,.fa-hryvnia-sign{--fa:"\f6f2"}.fa-pills{--fa:"\f484"}.fa-face-grin-wide,.fa-grin-alt{--fa:"\f581"}.fa-tooth{--fa:"\f5c9"}.fa-v{--fa:"\56"}.fa-bangladeshi-taka-sign{--fa:"\e2e6"}.fa-bicycle{--fa:"\f206"}.fa-rod-asclepius,.fa-rod-snake,.fa-staff-aesculapius,.fa-staff-snake{--fa:"\e579"}.fa-head-side-cough-slash{--fa:"\e062"}.fa-ambulance,.fa-truck-medical{--fa:"\f0f9"}.fa-wheat-awn-circle-exclamation{--fa:"\e598"}.fa-snowman{--fa:"\f7d0"}.fa-mortar-pestle{--fa:"\f5a7"}.fa-road-barrier{--fa:"\e562"}.fa-school{--fa:"\f549"}.fa-igloo{--fa:"\f7ae"}.fa-joint{--fa:"\f595"}.fa-angle-right{--fa:"\f105"}.fa-horse{--fa:"\f6f0"}.fa-q{--fa:"\51"}.fa-g{--fa:"\47"}.fa-notes-medical{--fa:"\f481"}.fa-temperature-2,.fa-temperature-half,.fa-thermometer-2,.fa-thermometer-half{--fa:"\f2c9"}.fa-dong-sign{--fa:"\e169"}.fa-capsules{--fa:"\f46b"}.fa-poo-bolt,.fa-poo-storm{--fa:"\f75a"}.fa-face-frown-open,.fa-frown-open{--fa:"\f57a"}.fa-hand-point-up{--fa:"\f0a6"}.fa-money-bill{--fa:"\f0d6"}.fa-bookmark{--fa:"\f02e"}.fa-align-justify{--fa:"\f039"}.fa-umbrella-beach{--fa:"\f5ca"}.fa-helmet-un{--fa:"\e503"}.fa-bullseye{--fa:"\f140"}.fa-bacon{--fa:"\f7e5"}.fa-hand-point-down{--fa:"\f0a7"}.fa-arrow-up-from-bracket{--fa:"\e09a"}.fa-folder,.fa-folder-blank{--fa:"\f07b"}.fa-file-medical-alt,.fa-file-waveform{--fa:"\f478"}.fa-radiation{--fa:"\f7b9"}.fa-chart-simple{--fa:"\e473"}.fa-mars-stroke{--fa:"\f229"}.fa-vial{--fa:"\f492"}.fa-dashboard,.fa-gauge,.fa-gauge-med,.fa-tachometer-alt-average{--fa:"\f624"}.fa-magic-wand-sparkles,.fa-wand-magic-sparkles{--fa:"\e2ca"}.fa-e{--fa:"\45"}.fa-pen-alt,.fa-pen-clip{--fa:"\f305"}.fa-bridge-circle-exclamation{--fa:"\e4ca"}.fa-user{--fa:"\f007"}.fa-school-circle-check{--fa:"\e56b"}.fa-dumpster{--fa:"\f793"}.fa-shuttle-van,.fa-van-shuttle{--fa:"\f5b6"}.fa-building-user{--fa:"\e4da"}.fa-caret-square-left,.fa-square-caret-left{--fa:"\f191"}.fa-highlighter{--fa:"\f591"}.fa-key{--fa:"\f084"}.fa-bullhorn{--fa:"\f0a1"}.fa-globe{--fa:"\f0ac"}.fa-synagogue{--fa:"\f69b"}.fa-person-half-dress{--fa:"\e548"}.fa-road-bridge{--fa:"\e563"}.fa-location-arrow{--fa:"\f124"}.fa-c{--fa:"\43"}.fa-tablet-button{--fa:"\f10a"}.fa-building-lock{--fa:"\e4d6"}.fa-pizza-slice{--fa:"\f818"}.fa-money-bill-wave{--fa:"\f53a"}.fa-area-chart,.fa-chart-area{--fa:"\f1fe"}.fa-house-flag{--fa:"\e50d"}.fa-person-circle-minus{--fa:"\e540"}.fa-ban,.fa-cancel{--fa:"\f05e"}.fa-camera-rotate{--fa:"\e0d8"}.fa-air-freshener,.fa-spray-can-sparkles{--fa:"\f5d0"}.fa-star{--fa:"\f005"}.fa-repeat{--fa:"\f363"}.fa-cross{--fa:"\f654"}.fa-box{--fa:"\f466"}.fa-venus-mars{--fa:"\f228"}.fa-arrow-pointer,.fa-mouse-pointer{--fa:"\f245"}.fa-expand-arrows-alt,.fa-maximize{--fa:"\f31e"}.fa-charging-station{--fa:"\f5e7"}.fa-shapes,.fa-triangle-circle-square{--fa:"\f61f"}.fa-random,.fa-shuffle{--fa:"\f074"}.fa-person-running,.fa-running{--fa:"\f70c"}.fa-mobile-retro{--fa:"\e527"}.fa-grip-lines-vertical{--fa:"\f7a5"}.fa-spider{--fa:"\f717"}.fa-hands-bound{--fa:"\e4f9"}.fa-file-invoice-dollar{--fa:"\f571"}.fa-plane-circle-exclamation{--fa:"\e556"}.fa-x-ray{--fa:"\f497"}.fa-spell-check{--fa:"\f891"}.fa-slash{--fa:"\f715"}.fa-computer-mouse,.fa-mouse{--fa:"\f8cc"}.fa-arrow-right-to-bracket,.fa-sign-in{--fa:"\f090"}.fa-shop-slash,.fa-store-alt-slash{--fa:"\e070"}.fa-server{--fa:"\f233"}.fa-virus-covid-slash{--fa:"\e4a9"}.fa-shop-lock{--fa:"\e4a5"}.fa-hourglass-1,.fa-hourglass-start{--fa:"\f251"}.fa-blender-phone{--fa:"\f6b6"}.fa-building-wheat{--fa:"\e4db"}.fa-person-breastfeeding{--fa:"\e53a"}.fa-right-to-bracket,.fa-sign-in-alt{--fa:"\f2f6"}.fa-venus{--fa:"\f221"}.fa-passport{--fa:"\f5ab"}.fa-thumb-tack-slash,.fa-thumbtack-slash{--fa:"\e68f"}.fa-heart-pulse,.fa-heartbeat{--fa:"\f21e"}.fa-people-carry,.fa-people-carry-box{--fa:"\f4ce"}.fa-temperature-high{--fa:"\f769"}.fa-microchip{--fa:"\f2db"}.fa-crown{--fa:"\f521"}.fa-weight-hanging{--fa:"\f5cd"}.fa-xmarks-lines{--fa:"\e59a"}.fa-file-prescription{--fa:"\f572"}.fa-weight,.fa-weight-scale{--fa:"\f496"}.fa-user-friends,.fa-user-group{--fa:"\f500"}.fa-arrow-up-a-z,.fa-sort-alpha-up{--fa:"\f15e"}.fa-chess-knight{--fa:"\f441"}.fa-face-laugh-squint,.fa-laugh-squint{--fa:"\f59b"}.fa-wheelchair{--fa:"\f193"}.fa-arrow-circle-up,.fa-circle-arrow-up{--fa:"\f0aa"}.fa-toggle-on{--fa:"\f205"}.fa-person-walking,.fa-walking{--fa:"\f554"}.fa-l{--fa:"\4c"}.fa-fire{--fa:"\f06d"}.fa-bed-pulse,.fa-procedures{--fa:"\f487"}.fa-shuttle-space,.fa-space-shuttle{--fa:"\f197"}.fa-face-laugh,.fa-laugh{--fa:"\f599"}.fa-folder-open{--fa:"\f07c"}.fa-heart-circle-plus{--fa:"\e500"}.fa-code-fork{--fa:"\e13b"}.fa-city{--fa:"\f64f"}.fa-microphone-alt,.fa-microphone-lines{--fa:"\f3c9"}.fa-pepper-hot{--fa:"\f816"}.fa-unlock{--fa:"\f09c"}.fa-colon-sign{--fa:"\e140"}.fa-headset{--fa:"\f590"}.fa-store-slash{--fa:"\e071"}.fa-road-circle-xmark{--fa:"\e566"}.fa-user-minus{--fa:"\f503"}.fa-mars-stroke-up,.fa-mars-stroke-v{--fa:"\f22a"}.fa-champagne-glasses,.fa-glass-cheers{--fa:"\f79f"}.fa-clipboard{--fa:"\f328"}.fa-house-circle-exclamation{--fa:"\e50a"}.fa-file-arrow-up,.fa-file-upload{--fa:"\f574"}.fa-wifi,.fa-wifi-3,.fa-wifi-strong{--fa:"\f1eb"}.fa-bath,.fa-bathtub{--fa:"\f2cd"}.fa-underline{--fa:"\f0cd"}.fa-user-edit,.fa-user-pen{--fa:"\f4ff"}.fa-signature{--fa:"\f5b7"}.fa-stroopwafel{--fa:"\f551"}.fa-bold{--fa:"\f032"}.fa-anchor-lock{--fa:"\e4ad"}.fa-building-ngo{--fa:"\e4d7"}.fa-manat-sign{--fa:"\e1d5"}.fa-not-equal{--fa:"\f53e"}.fa-border-style,.fa-border-top-left{--fa:"\f853"}.fa-map-location-dot,.fa-map-marked-alt{--fa:"\f5a0"}.fa-jedi{--fa:"\f669"}.fa-poll,.fa-square-poll-vertical{--fa:"\f681"}.fa-mug-hot{--fa:"\f7b6"}.fa-battery-car,.fa-car-battery{--fa:"\f5df"}.fa-gift{--fa:"\f06b"}.fa-dice-two{--fa:"\f528"}.fa-chess-queen{--fa:"\f445"}.fa-glasses{--fa:"\f530"}.fa-chess-board{--fa:"\f43c"}.fa-building-circle-check{--fa:"\e4d2"}.fa-person-chalkboard{--fa:"\e53d"}.fa-mars-stroke-h,.fa-mars-stroke-right{--fa:"\f22b"}.fa-hand-back-fist,.fa-hand-rock{--fa:"\f255"}.fa-caret-square-up,.fa-square-caret-up{--fa:"\f151"}.fa-cloud-showers-water{--fa:"\e4e4"}.fa-bar-chart,.fa-chart-bar{--fa:"\f080"}.fa-hands-bubbles,.fa-hands-wash{--fa:"\e05e"}.fa-less-than-equal{--fa:"\f537"}.fa-train{--fa:"\f238"}.fa-eye-low-vision,.fa-low-vision{--fa:"\f2a8"}.fa-crow{--fa:"\f520"}.fa-sailboat{--fa:"\e445"}.fa-window-restore{--fa:"\f2d2"}.fa-plus-square,.fa-square-plus{--fa:"\f0fe"}.fa-torii-gate{--fa:"\f6a1"}.fa-frog{--fa:"\f52e"}.fa-bucket{--fa:"\e4cf"}.fa-image{--fa:"\f03e"}.fa-microphone{--fa:"\f130"}.fa-cow{--fa:"\f6c8"}.fa-caret-up{--fa:"\f0d8"}.fa-screwdriver{--fa:"\f54a"}.fa-folder-closed{--fa:"\e185"}.fa-house-tsunami{--fa:"\e515"}.fa-square-nfi{--fa:"\e576"}.fa-arrow-up-from-ground-water{--fa:"\e4b5"}.fa-glass-martini-alt,.fa-martini-glass{--fa:"\f57b"}.fa-square-binary{--fa:"\e69b"}.fa-rotate-back,.fa-rotate-backward,.fa-rotate-left,.fa-undo-alt{--fa:"\f2ea"}.fa-columns,.fa-table-columns{--fa:"\f0db"}.fa-lemon{--fa:"\f094"}.fa-head-side-mask{--fa:"\e063"}.fa-handshake{--fa:"\f2b5"}.fa-gem{--fa:"\f3a5"}.fa-dolly,.fa-dolly-box{--fa:"\f472"}.fa-smoking{--fa:"\f48d"}.fa-compress-arrows-alt,.fa-minimize{--fa:"\f78c"}.fa-monument{--fa:"\f5a6"}.fa-snowplow{--fa:"\f7d2"}.fa-angle-double-right,.fa-angles-right{--fa:"\f101"}.fa-cannabis{--fa:"\f55f"}.fa-circle-play,.fa-play-circle{--fa:"\f144"}.fa-tablets{--fa:"\f490"}.fa-ethernet{--fa:"\f796"}.fa-eur,.fa-euro,.fa-euro-sign{--fa:"\f153"}.fa-chair{--fa:"\f6c0"}.fa-check-circle,.fa-circle-check{--fa:"\f058"}.fa-circle-stop,.fa-stop-circle{--fa:"\f28d"}.fa-compass-drafting,.fa-drafting-compass{--fa:"\f568"}.fa-plate-wheat{--fa:"\e55a"}.fa-icicles{--fa:"\f7ad"}.fa-person-shelter{--fa:"\e54f"}.fa-neuter{--fa:"\f22c"}.fa-id-badge{--fa:"\f2c1"}.fa-marker{--fa:"\f5a1"}.fa-face-laugh-beam,.fa-laugh-beam{--fa:"\f59a"}.fa-helicopter-symbol{--fa:"\e502"}.fa-universal-access{--fa:"\f29a"}.fa-chevron-circle-up,.fa-circle-chevron-up{--fa:"\f139"}.fa-lari-sign{--fa:"\e1c8"}.fa-volcano{--fa:"\f770"}.fa-person-walking-dashed-line-arrow-right{--fa:"\e553"}.fa-gbp,.fa-pound-sign,.fa-sterling-sign{--fa:"\f154"}.fa-viruses{--fa:"\e076"}.fa-square-person-confined{--fa:"\e577"}.fa-user-tie{--fa:"\f508"}.fa-arrow-down-long,.fa-long-arrow-down{--fa:"\f175"}.fa-tent-arrow-down-to-line{--fa:"\e57e"}.fa-certificate{--fa:"\f0a3"}.fa-mail-reply-all,.fa-reply-all{--fa:"\f122"}.fa-suitcase{--fa:"\f0f2"}.fa-person-skating,.fa-skating{--fa:"\f7c5"}.fa-filter-circle-dollar,.fa-funnel-dollar{--fa:"\f662"}.fa-camera-retro{--fa:"\f083"}.fa-arrow-circle-down,.fa-circle-arrow-down{--fa:"\f0ab"}.fa-arrow-right-to-file,.fa-file-import{--fa:"\f56f"}.fa-external-link-square,.fa-square-arrow-up-right{--fa:"\f14c"}.fa-box-open{--fa:"\f49e"}.fa-scroll{--fa:"\f70e"}.fa-spa{--fa:"\f5bb"}.fa-location-pin-lock{--fa:"\e51f"}.fa-pause{--fa:"\f04c"}.fa-hill-avalanche{--fa:"\e507"}.fa-temperature-0,.fa-temperature-empty,.fa-thermometer-0,.fa-thermometer-empty{--fa:"\f2cb"}.fa-bomb{--fa:"\f1e2"}.fa-registered{--fa:"\f25d"}.fa-address-card,.fa-contact-card,.fa-vcard{--fa:"\f2bb"}.fa-balance-scale-right,.fa-scale-unbalanced-flip{--fa:"\f516"}.fa-subscript{--fa:"\f12c"}.fa-diamond-turn-right,.fa-directions{--fa:"\f5eb"}.fa-burst{--fa:"\e4dc"}.fa-house-laptop,.fa-laptop-house{--fa:"\e066"}.fa-face-tired,.fa-tired{--fa:"\f5c8"}.fa-money-bills{--fa:"\e1f3"}.fa-smog{--fa:"\f75f"}.fa-crutch{--fa:"\f7f7"}.fa-cloud-arrow-up,.fa-cloud-upload,.fa-cloud-upload-alt{--fa:"\f0ee"}.fa-palette{--fa:"\f53f"}.fa-arrows-turn-right{--fa:"\e4c0"}.fa-vest{--fa:"\e085"}.fa-ferry{--fa:"\e4ea"}.fa-arrows-down-to-people{--fa:"\e4b9"}.fa-seedling,.fa-sprout{--fa:"\f4d8"}.fa-arrows-alt-h,.fa-left-right{--fa:"\f337"}.fa-boxes-packing{--fa:"\e4c7"}.fa-arrow-circle-left,.fa-circle-arrow-left{--fa:"\f0a8"}.fa-group-arrows-rotate{--fa:"\e4f6"}.fa-bowl-food{--fa:"\e4c6"}.fa-candy-cane{--fa:"\f786"}.fa-arrow-down-wide-short,.fa-sort-amount-asc,.fa-sort-amount-down{--fa:"\f160"}.fa-cloud-bolt,.fa-thunderstorm{--fa:"\f76c"}.fa-remove-format,.fa-text-slash{--fa:"\f87d"}.fa-face-smile-wink,.fa-smile-wink{--fa:"\f4da"}.fa-file-word{--fa:"\f1c2"}.fa-file-powerpoint{--fa:"\f1c4"}.fa-arrows-h,.fa-arrows-left-right{--fa:"\f07e"}.fa-house-lock{--fa:"\e510"}.fa-cloud-arrow-down,.fa-cloud-download,.fa-cloud-download-alt{--fa:"\f0ed"}.fa-children{--fa:"\e4e1"}.fa-blackboard,.fa-chalkboard{--fa:"\f51b"}.fa-user-alt-slash,.fa-user-large-slash{--fa:"\f4fa"}.fa-envelope-open{--fa:"\f2b6"}.fa-handshake-alt-slash,.fa-handshake-simple-slash{--fa:"\e05f"}.fa-mattress-pillow{--fa:"\e525"}.fa-guarani-sign{--fa:"\e19a"}.fa-arrows-rotate,.fa-refresh,.fa-sync{--fa:"\f021"}.fa-fire-extinguisher{--fa:"\f134"}.fa-cruzeiro-sign{--fa:"\e152"}.fa-greater-than-equal{--fa:"\f532"}.fa-shield-alt,.fa-shield-halved{--fa:"\f3ed"}.fa-atlas,.fa-book-atlas{--fa:"\f558"}.fa-virus{--fa:"\e074"}.fa-envelope-circle-check{--fa:"\e4e8"}.fa-layer-group{--fa:"\f5fd"}.fa-arrows-to-dot{--fa:"\e4be"}.fa-archway{--fa:"\f557"}.fa-heart-circle-check{--fa:"\e4fd"}.fa-house-chimney-crack,.fa-house-damage{--fa:"\f6f1"}.fa-file-archive,.fa-file-zipper{--fa:"\f1c6"}.fa-square{--fa:"\f0c8"}.fa-glass-martini,.fa-martini-glass-empty{--fa:"\f000"}.fa-couch{--fa:"\f4b8"}.fa-cedi-sign{--fa:"\e0df"}.fa-italic{--fa:"\f033"}.fa-table-cells-column-lock{--fa:"\e678"}.fa-church{--fa:"\f51d"}.fa-comments-dollar{--fa:"\f653"}.fa-democrat{--fa:"\f747"}.fa-z{--fa:"\5a"}.fa-person-skiing,.fa-skiing{--fa:"\f7c9"}.fa-road-lock{--fa:"\e567"}.fa-a{--fa:"\41"}.fa-temperature-arrow-down,.fa-temperature-down{--fa:"\e03f"}.fa-feather-alt,.fa-feather-pointed{--fa:"\f56b"}.fa-p{--fa:"\50"}.fa-snowflake{--fa:"\f2dc"}.fa-newspaper{--fa:"\f1ea"}.fa-ad,.fa-rectangle-ad{--fa:"\f641"}.fa-arrow-circle-right,.fa-circle-arrow-right{--fa:"\f0a9"}.fa-filter-circle-xmark{--fa:"\e17b"}.fa-locust{--fa:"\e520"}.fa-sort,.fa-unsorted{--fa:"\f0dc"}.fa-list-1-2,.fa-list-numeric,.fa-list-ol{--fa:"\f0cb"}.fa-person-dress-burst{--fa:"\e544"}.fa-money-check-alt,.fa-money-check-dollar{--fa:"\f53d"}.fa-vector-square{--fa:"\f5cb"}.fa-bread-slice{--fa:"\f7ec"}.fa-language{--fa:"\f1ab"}.fa-face-kiss-wink-heart,.fa-kiss-wink-heart{--fa:"\f598"}.fa-filter{--fa:"\f0b0"}.fa-question{--fa:"\3f"}.fa-file-signature{--fa:"\f573"}.fa-arrows-alt,.fa-up-down-left-right{--fa:"\f0b2"}.fa-house-chimney-user{--fa:"\e065"}.fa-hand-holding-heart{--fa:"\f4be"}.fa-puzzle-piece{--fa:"\f12e"}.fa-money-check{--fa:"\f53c"}.fa-star-half-alt,.fa-star-half-stroke{--fa:"\f5c0"}.fa-code{--fa:"\f121"}.fa-glass-whiskey,.fa-whiskey-glass{--fa:"\f7a0"}.fa-building-circle-exclamation{--fa:"\e4d3"}.fa-magnifying-glass-chart{--fa:"\e522"}.fa-arrow-up-right-from-square,.fa-external-link{--fa:"\f08e"}.fa-cubes-stacked{--fa:"\e4e6"}.fa-krw,.fa-won,.fa-won-sign{--fa:"\f159"}.fa-virus-covid{--fa:"\e4a8"}.fa-austral-sign{--fa:"\e0a9"}.fa-f{--fa:"\46"}.fa-leaf{--fa:"\f06c"}.fa-road{--fa:"\f018"}.fa-cab,.fa-taxi{--fa:"\f1ba"}.fa-person-circle-plus{--fa:"\e541"}.fa-chart-pie,.fa-pie-chart{--fa:"\f200"}.fa-bolt-lightning{--fa:"\e0b7"}.fa-sack-xmark{--fa:"\e56a"}.fa-file-excel{--fa:"\f1c3"}.fa-file-contract{--fa:"\f56c"}.fa-fish-fins{--fa:"\e4f2"}.fa-building-flag{--fa:"\e4d5"}.fa-face-grin-beam,.fa-grin-beam{--fa:"\f582"}.fa-object-ungroup{--fa:"\f248"}.fa-poop{--fa:"\f619"}.fa-location-pin,.fa-map-marker{--fa:"\f041"}.fa-kaaba{--fa:"\f66b"}.fa-toilet-paper{--fa:"\f71e"}.fa-hard-hat,.fa-hat-hard,.fa-helmet-safety{--fa:"\f807"}.fa-eject{--fa:"\f052"}.fa-arrow-alt-circle-right,.fa-circle-right{--fa:"\f35a"}.fa-plane-circle-check{--fa:"\e555"}.fa-face-rolling-eyes,.fa-meh-rolling-eyes{--fa:"\f5a5"}.fa-object-group{--fa:"\f247"}.fa-chart-line,.fa-line-chart{--fa:"\f201"}.fa-mask-ventilator{--fa:"\e524"}.fa-arrow-right{--fa:"\f061"}.fa-map-signs,.fa-signs-post{--fa:"\f277"}.fa-cash-register{--fa:"\f788"}.fa-person-circle-question{--fa:"\e542"}.fa-h{--fa:"\48"}.fa-tarp{--fa:"\e57b"}.fa-screwdriver-wrench,.fa-tools{--fa:"\f7d9"}.fa-arrows-to-eye{--fa:"\e4bf"}.fa-plug-circle-bolt{--fa:"\e55b"}.fa-heart{--fa:"\f004"}.fa-mars-and-venus{--fa:"\f224"}.fa-home-user,.fa-house-user{--fa:"\e1b0"}.fa-dumpster-fire{--fa:"\f794"}.fa-house-crack{--fa:"\e3b1"}.fa-cocktail,.fa-martini-glass-citrus{--fa:"\f561"}.fa-face-surprise,.fa-surprise{--fa:"\f5c2"}.fa-bottle-water{--fa:"\e4c5"}.fa-circle-pause,.fa-pause-circle{--fa:"\f28b"}.fa-toilet-paper-slash{--fa:"\e072"}.fa-apple-alt,.fa-apple-whole{--fa:"\f5d1"}.fa-kitchen-set{--fa:"\e51a"}.fa-r{--fa:"\52"}.fa-temperature-1,.fa-temperature-quarter,.fa-thermometer-1,.fa-thermometer-quarter{--fa:"\f2ca"}.fa-cube{--fa:"\f1b2"}.fa-bitcoin-sign{--fa:"\e0b4"}.fa-shield-dog{--fa:"\e573"}.fa-solar-panel{--fa:"\f5ba"}.fa-lock-open{--fa:"\f3c1"}.fa-elevator{--fa:"\e16d"}.fa-money-bill-transfer{--fa:"\e528"}.fa-money-bill-trend-up{--fa:"\e529"}.fa-house-flood-water-circle-arrow-right{--fa:"\e50f"}.fa-poll-h,.fa-square-poll-horizontal{--fa:"\f682"}.fa-circle{--fa:"\f111"}.fa-backward-fast,.fa-fast-backward{--fa:"\f049"}.fa-recycle{--fa:"\f1b8"}.fa-user-astronaut{--fa:"\f4fb"}.fa-plane-slash{--fa:"\e069"}.fa-trademark{--fa:"\f25c"}.fa-basketball,.fa-basketball-ball{--fa:"\f434"}.fa-satellite-dish{--fa:"\f7c0"}.fa-arrow-alt-circle-up,.fa-circle-up{--fa:"\f35b"}.fa-mobile-alt,.fa-mobile-screen-button{--fa:"\f3cd"}.fa-volume-high,.fa-volume-up{--fa:"\f028"}.fa-users-rays{--fa:"\e593"}.fa-wallet{--fa:"\f555"}.fa-clipboard-check{--fa:"\f46c"}.fa-file-audio{--fa:"\f1c7"}.fa-burger,.fa-hamburger{--fa:"\f805"}.fa-wrench{--fa:"\f0ad"}.fa-bugs{--fa:"\e4d0"}.fa-rupee,.fa-rupee-sign{--fa:"\f156"}.fa-file-image{--fa:"\f1c5"}.fa-circle-question,.fa-question-circle{--fa:"\f059"}.fa-plane-departure{--fa:"\f5b0"}.fa-handshake-slash{--fa:"\e060"}.fa-book-bookmark{--fa:"\e0bb"}.fa-code-branch{--fa:"\f126"}.fa-hat-cowboy{--fa:"\f8c0"}.fa-bridge{--fa:"\e4c8"}.fa-phone-alt,.fa-phone-flip{--fa:"\f879"}.fa-truck-front{--fa:"\e2b7"}.fa-cat{--fa:"\f6be"}.fa-anchor-circle-exclamation{--fa:"\e4ab"}.fa-truck-field{--fa:"\e58d"}.fa-route{--fa:"\f4d7"}.fa-clipboard-question{--fa:"\e4e3"}.fa-panorama{--fa:"\e209"}.fa-comment-medical{--fa:"\f7f5"}.fa-teeth-open{--fa:"\f62f"}.fa-file-circle-minus{--fa:"\e4ed"}.fa-tags{--fa:"\f02c"}.fa-wine-glass{--fa:"\f4e3"}.fa-fast-forward,.fa-forward-fast{--fa:"\f050"}.fa-face-meh-blank,.fa-meh-blank{--fa:"\f5a4"}.fa-parking,.fa-square-parking{--fa:"\f540"}.fa-house-signal{--fa:"\e012"}.fa-bars-progress,.fa-tasks-alt{--fa:"\f828"}.fa-faucet-drip{--fa:"\e006"}.fa-cart-flatbed,.fa-dolly-flatbed{--fa:"\f474"}.fa-ban-smoking,.fa-smoking-ban{--fa:"\f54d"}.fa-terminal{--fa:"\f120"}.fa-mobile-button{--fa:"\f10b"}.fa-house-medical-flag{--fa:"\e514"}.fa-basket-shopping,.fa-shopping-basket{--fa:"\f291"}.fa-tape{--fa:"\f4db"}.fa-bus-alt,.fa-bus-simple{--fa:"\f55e"}.fa-eye{--fa:"\f06e"}.fa-face-sad-cry,.fa-sad-cry{--fa:"\f5b3"}.fa-audio-description{--fa:"\f29e"}.fa-person-military-to-person{--fa:"\e54c"}.fa-file-shield{--fa:"\e4f0"}.fa-user-slash{--fa:"\f506"}.fa-pen{--fa:"\f304"}.fa-tower-observation{--fa:"\e586"}.fa-file-code{--fa:"\f1c9"}.fa-signal,.fa-signal-5,.fa-signal-perfect{--fa:"\f012"}.fa-bus{--fa:"\f207"}.fa-heart-circle-xmark{--fa:"\e501"}.fa-home-lg,.fa-house-chimney{--fa:"\e3af"}.fa-window-maximize{--fa:"\f2d0"}.fa-face-frown,.fa-frown{--fa:"\f119"}.fa-prescription{--fa:"\f5b1"}.fa-shop,.fa-store-alt{--fa:"\f54f"}.fa-floppy-disk,.fa-save{--fa:"\f0c7"}.fa-vihara{--fa:"\f6a7"}.fa-balance-scale-left,.fa-scale-unbalanced{--fa:"\f515"}.fa-sort-asc,.fa-sort-up{--fa:"\f0de"}.fa-comment-dots,.fa-commenting{--fa:"\f4ad"}.fa-plant-wilt{--fa:"\e5aa"}.fa-diamond{--fa:"\f219"}.fa-face-grin-squint,.fa-grin-squint{--fa:"\f585"}.fa-hand-holding-dollar,.fa-hand-holding-usd{--fa:"\f4c0"}.fa-chart-diagram{--fa:"\e695"}.fa-bacterium{--fa:"\e05a"}.fa-hand-pointer{--fa:"\f25a"}.fa-drum-steelpan{--fa:"\f56a"}.fa-hand-scissors{--fa:"\f257"}.fa-hands-praying,.fa-praying-hands{--fa:"\f684"}.fa-arrow-right-rotate,.fa-arrow-rotate-forward,.fa-arrow-rotate-right,.fa-redo{--fa:"\f01e"}.fa-biohazard{--fa:"\f780"}.fa-location,.fa-location-crosshairs{--fa:"\f601"}.fa-mars-double{--fa:"\f227"}.fa-child-dress{--fa:"\e59c"}.fa-users-between-lines{--fa:"\e591"}.fa-lungs-virus{--fa:"\e067"}.fa-face-grin-tears,.fa-grin-tears{--fa:"\f588"}.fa-phone{--fa:"\f095"}.fa-calendar-times,.fa-calendar-xmark{--fa:"\f273"}.fa-child-reaching{--fa:"\e59d"}.fa-head-side-virus{--fa:"\e064"}.fa-user-cog,.fa-user-gear{--fa:"\f4fe"}.fa-arrow-up-1-9,.fa-sort-numeric-up{--fa:"\f163"}.fa-door-closed{--fa:"\f52a"}.fa-shield-virus{--fa:"\e06c"}.fa-dice-six{--fa:"\f526"}.fa-mosquito-net{--fa:"\e52c"}.fa-file-fragment{--fa:"\e697"}.fa-bridge-water{--fa:"\e4ce"}.fa-person-booth{--fa:"\f756"}.fa-text-width{--fa:"\f035"}.fa-hat-wizard{--fa:"\f6e8"}.fa-pen-fancy{--fa:"\f5ac"}.fa-digging,.fa-person-digging{--fa:"\f85e"}.fa-trash{--fa:"\f1f8"}.fa-gauge-simple,.fa-gauge-simple-med,.fa-tachometer-average{--fa:"\f629"}.fa-book-medical{--fa:"\f7e6"}.fa-poo{--fa:"\f2fe"}.fa-quote-right,.fa-quote-right-alt{--fa:"\f10e"}.fa-shirt,.fa-t-shirt,.fa-tshirt{--fa:"\f553"}.fa-cubes{--fa:"\f1b3"}.fa-divide{--fa:"\f529"}.fa-tenge,.fa-tenge-sign{--fa:"\f7d7"}.fa-headphones{--fa:"\f025"}.fa-hands-holding{--fa:"\f4c2"}.fa-hands-clapping{--fa:"\e1a8"}.fa-republican{--fa:"\f75e"}.fa-arrow-left{--fa:"\f060"}.fa-person-circle-xmark{--fa:"\e543"}.fa-ruler{--fa:"\f545"}.fa-align-left{--fa:"\f036"}.fa-dice-d6{--fa:"\f6d1"}.fa-restroom{--fa:"\f7bd"}.fa-j{--fa:"\4a"}.fa-users-viewfinder{--fa:"\e595"}.fa-file-video{--fa:"\f1c8"}.fa-external-link-alt,.fa-up-right-from-square{--fa:"\f35d"}.fa-table-cells,.fa-th{--fa:"\f00a"}.fa-file-pdf{--fa:"\f1c1"}.fa-bible,.fa-book-bible{--fa:"\f647"}.fa-o{--fa:"\4f"}.fa-medkit,.fa-suitcase-medical{--fa:"\f0fa"}.fa-user-secret{--fa:"\f21b"}.fa-otter{--fa:"\f700"}.fa-female,.fa-person-dress{--fa:"\f182"}.fa-comment-dollar{--fa:"\f651"}.fa-briefcase-clock,.fa-business-time{--fa:"\f64a"}.fa-table-cells-large,.fa-th-large{--fa:"\f009"}.fa-book-tanakh,.fa-tanakh{--fa:"\f827"}.fa-phone-volume,.fa-volume-control-phone{--fa:"\f2a0"}.fa-hat-cowboy-side{--fa:"\f8c1"}.fa-clipboard-user{--fa:"\f7f3"}.fa-child{--fa:"\f1ae"}.fa-lira-sign{--fa:"\f195"}.fa-satellite{--fa:"\f7bf"}.fa-plane-lock{--fa:"\e558"}.fa-tag{--fa:"\f02b"}.fa-comment{--fa:"\f075"}.fa-birthday-cake,.fa-cake,.fa-cake-candles{--fa:"\f1fd"}.fa-envelope{--fa:"\f0e0"}.fa-angle-double-up,.fa-angles-up{--fa:"\f102"}.fa-paperclip{--fa:"\f0c6"}.fa-arrow-right-to-city{--fa:"\e4b3"}.fa-ribbon{--fa:"\f4d6"}.fa-lungs{--fa:"\f604"}.fa-arrow-up-9-1,.fa-sort-numeric-up-alt{--fa:"\f887"}.fa-litecoin-sign{--fa:"\e1d3"}.fa-border-none{--fa:"\f850"}.fa-circle-nodes{--fa:"\e4e2"}.fa-parachute-box{--fa:"\f4cd"}.fa-indent{--fa:"\f03c"}.fa-truck-field-un{--fa:"\e58e"}.fa-hourglass,.fa-hourglass-empty{--fa:"\f254"}.fa-mountain{--fa:"\f6fc"}.fa-user-doctor,.fa-user-md{--fa:"\f0f0"}.fa-circle-info,.fa-info-circle{--fa:"\f05a"}.fa-cloud-meatball{--fa:"\f73b"}.fa-camera,.fa-camera-alt{--fa:"\f030"}.fa-square-virus{--fa:"\e578"}.fa-meteor{--fa:"\f753"}.fa-car-on{--fa:"\e4dd"}.fa-sleigh{--fa:"\f7cc"}.fa-arrow-down-1-9,.fa-sort-numeric-asc,.fa-sort-numeric-down{--fa:"\f162"}.fa-hand-holding-droplet,.fa-hand-holding-water{--fa:"\f4c1"}.fa-water{--fa:"\f773"}.fa-calendar-check{--fa:"\f274"}.fa-braille{--fa:"\f2a1"}.fa-prescription-bottle-alt,.fa-prescription-bottle-medical{--fa:"\f486"}.fa-landmark{--fa:"\f66f"}.fa-truck{--fa:"\f0d1"}.fa-crosshairs{--fa:"\f05b"}.fa-person-cane{--fa:"\e53c"}.fa-tent{--fa:"\e57d"}.fa-vest-patches{--fa:"\e086"}.fa-check-double{--fa:"\f560"}.fa-arrow-down-a-z,.fa-sort-alpha-asc,.fa-sort-alpha-down{--fa:"\f15d"}.fa-money-bill-wheat{--fa:"\e52a"}.fa-cookie{--fa:"\f563"}.fa-arrow-left-rotate,.fa-arrow-rotate-back,.fa-arrow-rotate-backward,.fa-arrow-rotate-left,.fa-undo{--fa:"\f0e2"}.fa-hard-drive,.fa-hdd{--fa:"\f0a0"}.fa-face-grin-squint-tears,.fa-grin-squint-tears{--fa:"\f586"}.fa-dumbbell{--fa:"\f44b"}.fa-list-alt,.fa-rectangle-list{--fa:"\f022"}.fa-tarp-droplet{--fa:"\e57c"}.fa-house-medical-circle-check{--fa:"\e511"}.fa-person-skiing-nordic,.fa-skiing-nordic{--fa:"\f7ca"}.fa-calendar-plus{--fa:"\f271"}.fa-plane-arrival{--fa:"\f5af"}.fa-arrow-alt-circle-left,.fa-circle-left{--fa:"\f359"}.fa-subway,.fa-train-subway{--fa:"\f239"}.fa-chart-gantt{--fa:"\e0e4"}.fa-indian-rupee,.fa-indian-rupee-sign,.fa-inr{--fa:"\e1bc"}.fa-crop-alt,.fa-crop-simple{--fa:"\f565"}.fa-money-bill-1,.fa-money-bill-alt{--fa:"\f3d1"}.fa-left-long,.fa-long-arrow-alt-left{--fa:"\f30a"}.fa-dna{--fa:"\f471"}.fa-virus-slash{--fa:"\e075"}.fa-minus,.fa-subtract{--fa:"\f068"}.fa-chess{--fa:"\f439"}.fa-arrow-left-long,.fa-long-arrow-left{--fa:"\f177"}.fa-plug-circle-check{--fa:"\e55c"}.fa-street-view{--fa:"\f21d"}.fa-franc-sign{--fa:"\e18f"}.fa-volume-off{--fa:"\f026"}.fa-american-sign-language-interpreting,.fa-asl-interpreting,.fa-hands-american-sign-language-interpreting,.fa-hands-asl-interpreting{--fa:"\f2a3"}.fa-cog,.fa-gear{--fa:"\f013"}.fa-droplet-slash,.fa-tint-slash{--fa:"\f5c7"}.fa-mosque{--fa:"\f678"}.fa-mosquito{--fa:"\e52b"}.fa-star-of-david{--fa:"\f69a"}.fa-person-military-rifle{--fa:"\e54b"}.fa-cart-shopping,.fa-shopping-cart{--fa:"\f07a"}.fa-vials{--fa:"\f493"}.fa-plug-circle-plus{--fa:"\e55f"}.fa-place-of-worship{--fa:"\f67f"}.fa-grip-vertical{--fa:"\f58e"}.fa-hexagon-nodes{--fa:"\e699"}.fa-arrow-turn-up,.fa-level-up{--fa:"\f148"}.fa-u{--fa:"\55"}.fa-square-root-alt,.fa-square-root-variable{--fa:"\f698"}.fa-clock,.fa-clock-four{--fa:"\f017"}.fa-backward-step,.fa-step-backward{--fa:"\f048"}.fa-pallet{--fa:"\f482"}.fa-faucet{--fa:"\e005"}.fa-baseball-bat-ball{--fa:"\f432"}.fa-s{--fa:"\53"}.fa-timeline{--fa:"\e29c"}.fa-keyboard{--fa:"\f11c"}.fa-caret-down{--fa:"\f0d7"}.fa-clinic-medical,.fa-house-chimney-medical{--fa:"\f7f2"}.fa-temperature-3,.fa-temperature-three-quarters,.fa-thermometer-3,.fa-thermometer-three-quarters{--fa:"\f2c8"}.fa-mobile-android-alt,.fa-mobile-screen{--fa:"\f3cf"}.fa-plane-up{--fa:"\e22d"}.fa-piggy-bank{--fa:"\f4d3"}.fa-battery-3,.fa-battery-half{--fa:"\f242"}.fa-mountain-city{--fa:"\e52e"}.fa-coins{--fa:"\f51e"}.fa-khanda{--fa:"\f66d"}.fa-sliders,.fa-sliders-h{--fa:"\f1de"}.fa-folder-tree{--fa:"\f802"}.fa-network-wired{--fa:"\f6ff"}.fa-map-pin{--fa:"\f276"}.fa-hamsa{--fa:"\f665"}.fa-cent-sign{--fa:"\e3f5"}.fa-flask{--fa:"\f0c3"}.fa-person-pregnant{--fa:"\e31e"}.fa-wand-sparkles{--fa:"\f72b"}.fa-ellipsis-v,.fa-ellipsis-vertical{--fa:"\f142"}.fa-ticket{--fa:"\f145"}.fa-power-off{--fa:"\f011"}.fa-long-arrow-alt-right,.fa-right-long{--fa:"\f30b"}.fa-flag-usa{--fa:"\f74d"}.fa-laptop-file{--fa:"\e51d"}.fa-teletype,.fa-tty{--fa:"\f1e4"}.fa-diagram-next{--fa:"\e476"}.fa-person-rifle{--fa:"\e54e"}.fa-house-medical-circle-exclamation{--fa:"\e512"}.fa-closed-captioning{--fa:"\f20a"}.fa-hiking,.fa-person-hiking{--fa:"\f6ec"}.fa-venus-double{--fa:"\f226"}.fa-images{--fa:"\f302"}.fa-calculator{--fa:"\f1ec"}.fa-people-pulling{--fa:"\e535"}.fa-n{--fa:"\4e"}.fa-cable-car,.fa-tram{--fa:"\f7da"}.fa-cloud-rain{--fa:"\f73d"}.fa-building-circle-xmark{--fa:"\e4d4"}.fa-ship{--fa:"\f21a"}.fa-arrows-down-to-line{--fa:"\e4b8"}.fa-download{--fa:"\f019"}.fa-face-grin,.fa-grin{--fa:"\f580"}.fa-backspace,.fa-delete-left{--fa:"\f55a"}.fa-eye-dropper,.fa-eye-dropper-empty,.fa-eyedropper{--fa:"\f1fb"}.fa-file-circle-check{--fa:"\e5a0"}.fa-forward{--fa:"\f04e"}.fa-mobile,.fa-mobile-android,.fa-mobile-phone{--fa:"\f3ce"}.fa-face-meh,.fa-meh{--fa:"\f11a"}.fa-align-center{--fa:"\f037"}.fa-book-dead,.fa-book-skull{--fa:"\f6b7"}.fa-drivers-license,.fa-id-card{--fa:"\f2c2"}.fa-dedent,.fa-outdent{--fa:"\f03b"}.fa-heart-circle-exclamation{--fa:"\e4fe"}.fa-home,.fa-home-alt,.fa-home-lg-alt,.fa-house{--fa:"\f015"}.fa-calendar-week{--fa:"\f784"}.fa-laptop-medical{--fa:"\f812"}.fa-b{--fa:"\42"}.fa-file-medical{--fa:"\f477"}.fa-dice-one{--fa:"\f525"}.fa-kiwi-bird{--fa:"\f535"}.fa-arrow-right-arrow-left,.fa-exchange{--fa:"\f0ec"}.fa-redo-alt,.fa-rotate-forward,.fa-rotate-right{--fa:"\f2f9"}.fa-cutlery,.fa-utensils{--fa:"\f2e7"}.fa-arrow-up-wide-short,.fa-sort-amount-up{--fa:"\f161"}.fa-mill-sign{--fa:"\e1ed"}.fa-bowl-rice{--fa:"\e2eb"}.fa-skull{--fa:"\f54c"}.fa-broadcast-tower,.fa-tower-broadcast{--fa:"\f519"}.fa-truck-pickup{--fa:"\f63c"}.fa-long-arrow-alt-up,.fa-up-long{--fa:"\f30c"}.fa-stop{--fa:"\f04d"}.fa-code-merge{--fa:"\f387"}.fa-upload{--fa:"\f093"}.fa-hurricane{--fa:"\f751"}.fa-mound{--fa:"\e52d"}.fa-toilet-portable{--fa:"\e583"}.fa-compact-disc{--fa:"\f51f"}.fa-file-arrow-down,.fa-file-download{--fa:"\f56d"}.fa-caravan{--fa:"\f8ff"}.fa-shield-cat{--fa:"\e572"}.fa-bolt,.fa-zap{--fa:"\f0e7"}.fa-glass-water{--fa:"\e4f4"}.fa-oil-well{--fa:"\e532"}.fa-vault{--fa:"\e2c5"}.fa-mars{--fa:"\f222"}.fa-toilet{--fa:"\f7d8"}.fa-plane-circle-xmark{--fa:"\e557"}.fa-cny,.fa-jpy,.fa-rmb,.fa-yen,.fa-yen-sign{--fa:"\f157"}.fa-rouble,.fa-rub,.fa-ruble,.fa-ruble-sign{--fa:"\f158"}.fa-sun{--fa:"\f185"}.fa-guitar{--fa:"\f7a6"}.fa-face-laugh-wink,.fa-laugh-wink{--fa:"\f59c"}.fa-horse-head{--fa:"\f7ab"}.fa-bore-hole{--fa:"\e4c3"}.fa-industry{--fa:"\f275"}.fa-arrow-alt-circle-down,.fa-circle-down{--fa:"\f358"}.fa-arrows-turn-to-dots{--fa:"\e4c1"}.fa-florin-sign{--fa:"\e184"}.fa-arrow-down-short-wide,.fa-sort-amount-desc,.fa-sort-amount-down-alt{--fa:"\f884"}.fa-less-than{--fa:"\3c"}.fa-angle-down{--fa:"\f107"}.fa-car-tunnel{--fa:"\e4de"}.fa-head-side-cough{--fa:"\e061"}.fa-grip-lines{--fa:"\f7a4"}.fa-thumbs-down{--fa:"\f165"}.fa-user-lock{--fa:"\f502"}.fa-arrow-right-long,.fa-long-arrow-right{--fa:"\f178"}.fa-anchor-circle-xmark{--fa:"\e4ac"}.fa-ellipsis,.fa-ellipsis-h{--fa:"\f141"}.fa-chess-pawn{--fa:"\f443"}.fa-first-aid,.fa-kit-medical{--fa:"\f479"}.fa-person-through-window{--fa:"\e5a9"}.fa-toolbox{--fa:"\f552"}.fa-hands-holding-circle{--fa:"\e4fb"}.fa-bug{--fa:"\f188"}.fa-credit-card,.fa-credit-card-alt{--fa:"\f09d"}.fa-automobile,.fa-car{--fa:"\f1b9"}.fa-hand-holding-hand{--fa:"\e4f7"}.fa-book-open-reader,.fa-book-reader{--fa:"\f5da"}.fa-mountain-sun{--fa:"\e52f"}.fa-arrows-left-right-to-line{--fa:"\e4ba"}.fa-dice-d20{--fa:"\f6cf"}.fa-truck-droplet{--fa:"\e58c"}.fa-file-circle-xmark{--fa:"\e5a1"}.fa-temperature-arrow-up,.fa-temperature-up{--fa:"\e040"}.fa-medal{--fa:"\f5a2"}.fa-bed{--fa:"\f236"}.fa-h-square,.fa-square-h{--fa:"\f0fd"}.fa-podcast{--fa:"\f2ce"}.fa-temperature-4,.fa-temperature-full,.fa-thermometer-4,.fa-thermometer-full{--fa:"\f2c7"}.fa-bell{--fa:"\f0f3"}.fa-superscript{--fa:"\f12b"}.fa-plug-circle-xmark{--fa:"\e560"}.fa-star-of-life{--fa:"\f621"}.fa-phone-slash{--fa:"\f3dd"}.fa-paint-roller{--fa:"\f5aa"}.fa-hands-helping,.fa-handshake-angle{--fa:"\f4c4"}.fa-location-dot,.fa-map-marker-alt{--fa:"\f3c5"}.fa-file{--fa:"\f15b"}.fa-greater-than{--fa:"\3e"}.fa-person-swimming,.fa-swimmer{--fa:"\f5c4"}.fa-arrow-down{--fa:"\f063"}.fa-droplet,.fa-tint{--fa:"\f043"}.fa-eraser{--fa:"\f12d"}.fa-earth,.fa-earth-america,.fa-earth-americas,.fa-globe-americas{--fa:"\f57d"}.fa-person-burst{--fa:"\e53b"}.fa-dove{--fa:"\f4ba"}.fa-battery-0,.fa-battery-empty{--fa:"\f244"}.fa-socks{--fa:"\f696"}.fa-inbox{--fa:"\f01c"}.fa-section{--fa:"\e447"}.fa-gauge-high,.fa-tachometer-alt,.fa-tachometer-alt-fast{--fa:"\f625"}.fa-envelope-open-text{--fa:"\f658"}.fa-hospital,.fa-hospital-alt,.fa-hospital-wide{--fa:"\f0f8"}.fa-wine-bottle{--fa:"\f72f"}.fa-chess-rook{--fa:"\f447"}.fa-bars-staggered,.fa-reorder,.fa-stream{--fa:"\f550"}.fa-dharmachakra{--fa:"\f655"}.fa-hotdog{--fa:"\f80f"}.fa-blind,.fa-person-walking-with-cane{--fa:"\f29d"}.fa-drum{--fa:"\f569"}.fa-ice-cream{--fa:"\f810"}.fa-heart-circle-bolt{--fa:"\e4fc"}.fa-fax{--fa:"\f1ac"}.fa-paragraph{--fa:"\f1dd"}.fa-check-to-slot,.fa-vote-yea{--fa:"\f772"}.fa-star-half{--fa:"\f089"}.fa-boxes,.fa-boxes-alt,.fa-boxes-stacked{--fa:"\f468"}.fa-chain,.fa-link{--fa:"\f0c1"}.fa-assistive-listening-systems,.fa-ear-listen{--fa:"\f2a2"}.fa-tree-city{--fa:"\e587"}.fa-play{--fa:"\f04b"}.fa-font{--fa:"\f031"}.fa-table-cells-row-lock{--fa:"\e67a"}.fa-rupiah-sign{--fa:"\e23d"}.fa-magnifying-glass,.fa-search{--fa:"\f002"}.fa-ping-pong-paddle-ball,.fa-table-tennis,.fa-table-tennis-paddle-ball{--fa:"\f45d"}.fa-diagnoses,.fa-person-dots-from-line{--fa:"\f470"}.fa-trash-can-arrow-up,.fa-trash-restore-alt{--fa:"\f82a"}.fa-naira-sign{--fa:"\e1f6"}.fa-cart-arrow-down{--fa:"\f218"}.fa-walkie-talkie{--fa:"\f8ef"}.fa-file-edit,.fa-file-pen{--fa:"\f31c"}.fa-receipt{--fa:"\f543"}.fa-pen-square,.fa-pencil-square,.fa-square-pen{--fa:"\f14b"}.fa-suitcase-rolling{--fa:"\f5c1"}.fa-person-circle-exclamation{--fa:"\e53f"}.fa-chevron-down{--fa:"\f078"}.fa-battery,.fa-battery-5,.fa-battery-full{--fa:"\f240"}.fa-skull-crossbones{--fa:"\f714"}.fa-code-compare{--fa:"\e13a"}.fa-list-dots,.fa-list-ul{--fa:"\f0ca"}.fa-school-lock{--fa:"\e56f"}.fa-tower-cell{--fa:"\e585"}.fa-down-long,.fa-long-arrow-alt-down{--fa:"\f309"}.fa-ranking-star{--fa:"\e561"}.fa-chess-king{--fa:"\f43f"}.fa-person-harassing{--fa:"\e549"}.fa-brazilian-real-sign{--fa:"\e46c"}.fa-landmark-alt,.fa-landmark-dome{--fa:"\f752"}.fa-arrow-up{--fa:"\f062"}.fa-television,.fa-tv,.fa-tv-alt{--fa:"\f26c"}.fa-shrimp{--fa:"\e448"}.fa-list-check,.fa-tasks{--fa:"\f0ae"}.fa-jug-detergent{--fa:"\e519"}.fa-circle-user,.fa-user-circle{--fa:"\f2bd"}.fa-user-shield{--fa:"\f505"}.fa-wind{--fa:"\f72e"}.fa-car-burst,.fa-car-crash{--fa:"\f5e1"}.fa-y{--fa:"\59"}.fa-person-snowboarding,.fa-snowboarding{--fa:"\f7ce"}.fa-shipping-fast,.fa-truck-fast{--fa:"\f48b"}.fa-fish{--fa:"\f578"}.fa-user-graduate{--fa:"\f501"}.fa-adjust,.fa-circle-half-stroke{--fa:"\f042"}.fa-clapperboard{--fa:"\e131"}.fa-circle-radiation,.fa-radiation-alt{--fa:"\f7ba"}.fa-baseball,.fa-baseball-ball{--fa:"\f433"}.fa-jet-fighter-up{--fa:"\e518"}.fa-diagram-project,.fa-project-diagram{--fa:"\f542"}.fa-copy{--fa:"\f0c5"}.fa-volume-mute,.fa-volume-times,.fa-volume-xmark{--fa:"\f6a9"}.fa-hand-sparkles{--fa:"\e05d"}.fa-grip,.fa-grip-horizontal{--fa:"\f58d"}.fa-share-from-square,.fa-share-square{--fa:"\f14d"}.fa-child-combatant,.fa-child-rifle{--fa:"\e4e0"}.fa-gun{--fa:"\e19b"}.fa-phone-square,.fa-square-phone{--fa:"\f098"}.fa-add,.fa-plus{--fa:"\2b"}.fa-expand{--fa:"\f065"}.fa-computer{--fa:"\e4e5"}.fa-close,.fa-multiply,.fa-remove,.fa-times,.fa-xmark{--fa:"\f00d"}.fa-arrows,.fa-arrows-up-down-left-right{--fa:"\f047"}.fa-chalkboard-teacher,.fa-chalkboard-user{--fa:"\f51c"}.fa-peso-sign{--fa:"\e222"}.fa-building-shield{--fa:"\e4d8"}.fa-baby{--fa:"\f77c"}.fa-users-line{--fa:"\e592"}.fa-quote-left,.fa-quote-left-alt{--fa:"\f10d"}.fa-tractor{--fa:"\f722"}.fa-trash-arrow-up,.fa-trash-restore{--fa:"\f829"}.fa-arrow-down-up-lock{--fa:"\e4b0"}.fa-lines-leaning{--fa:"\e51e"}.fa-ruler-combined{--fa:"\f546"}.fa-copyright{--fa:"\f1f9"}.fa-equals{--fa:"\3d"}.fa-blender{--fa:"\f517"}.fa-teeth{--fa:"\f62e"}.fa-ils,.fa-shekel,.fa-shekel-sign,.fa-sheqel,.fa-sheqel-sign{--fa:"\f20b"}.fa-map{--fa:"\f279"}.fa-rocket{--fa:"\f135"}.fa-photo-film,.fa-photo-video{--fa:"\f87c"}.fa-folder-minus{--fa:"\f65d"}.fa-hexagon-nodes-bolt{--fa:"\e69a"}.fa-store{--fa:"\f54e"}.fa-arrow-trend-up{--fa:"\e098"}.fa-plug-circle-minus{--fa:"\e55e"}.fa-sign,.fa-sign-hanging{--fa:"\f4d9"}.fa-bezier-curve{--fa:"\f55b"}.fa-bell-slash{--fa:"\f1f6"}.fa-tablet,.fa-tablet-android{--fa:"\f3fb"}.fa-school-flag{--fa:"\e56e"}.fa-fill{--fa:"\f575"}.fa-angle-up{--fa:"\f106"}.fa-drumstick-bite{--fa:"\f6d7"}.fa-holly-berry{--fa:"\f7aa"}.fa-chevron-left{--fa:"\f053"}.fa-bacteria{--fa:"\e059"}.fa-hand-lizard{--fa:"\f258"}.fa-notdef{--fa:"\e1fe"}.fa-disease{--fa:"\f7fa"}.fa-briefcase-medical{--fa:"\f469"}.fa-genderless{--fa:"\f22d"}.fa-chevron-right{--fa:"\f054"}.fa-retweet{--fa:"\f079"}.fa-car-alt,.fa-car-rear{--fa:"\f5de"}.fa-pump-soap{--fa:"\e06b"}.fa-video-slash{--fa:"\f4e2"}.fa-battery-2,.fa-battery-quarter{--fa:"\f243"}.fa-radio{--fa:"\f8d7"}.fa-baby-carriage,.fa-carriage-baby{--fa:"\f77d"}.fa-traffic-light{--fa:"\f637"}.fa-thermometer{--fa:"\f491"}.fa-vr-cardboard{--fa:"\f729"}.fa-hand-middle-finger{--fa:"\f806"}.fa-percent,.fa-percentage{--fa:"\25"}.fa-truck-moving{--fa:"\f4df"}.fa-glass-water-droplet{--fa:"\e4f5"}.fa-display{--fa:"\e163"}.fa-face-smile,.fa-smile{--fa:"\f118"}.fa-thumb-tack,.fa-thumbtack{--fa:"\f08d"}.fa-trophy{--fa:"\f091"}.fa-person-praying,.fa-pray{--fa:"\f683"}.fa-hammer{--fa:"\f6e3"}.fa-hand-peace{--fa:"\f25b"}.fa-rotate,.fa-sync-alt{--fa:"\f2f1"}.fa-spinner{--fa:"\f110"}.fa-robot{--fa:"\f544"}.fa-peace{--fa:"\f67c"}.fa-cogs,.fa-gears{--fa:"\f085"}.fa-warehouse{--fa:"\f494"}.fa-arrow-up-right-dots{--fa:"\e4b7"}.fa-splotch{--fa:"\f5bc"}.fa-face-grin-hearts,.fa-grin-hearts{--fa:"\f584"}.fa-dice-four{--fa:"\f524"}.fa-sim-card{--fa:"\f7c4"}.fa-transgender,.fa-transgender-alt{--fa:"\f225"}.fa-mercury{--fa:"\f223"}.fa-arrow-turn-down,.fa-level-down{--fa:"\f149"}.fa-person-falling-burst{--fa:"\e547"}.fa-award{--fa:"\f559"}.fa-ticket-alt,.fa-ticket-simple{--fa:"\f3ff"}.fa-building{--fa:"\f1ad"}.fa-angle-double-left,.fa-angles-left{--fa:"\f100"}.fa-qrcode{--fa:"\f029"}.fa-clock-rotate-left,.fa-history{--fa:"\f1da"}.fa-face-grin-beam-sweat,.fa-grin-beam-sweat{--fa:"\f583"}.fa-arrow-right-from-file,.fa-file-export{--fa:"\f56e"}.fa-shield,.fa-shield-blank{--fa:"\f132"}.fa-arrow-up-short-wide,.fa-sort-amount-up-alt{--fa:"\f885"}.fa-comment-nodes{--fa:"\e696"}.fa-house-medical{--fa:"\e3b2"}.fa-golf-ball,.fa-golf-ball-tee{--fa:"\f450"}.fa-chevron-circle-left,.fa-circle-chevron-left{--fa:"\f137"}.fa-house-chimney-window{--fa:"\e00d"}.fa-pen-nib{--fa:"\f5ad"}.fa-tent-arrow-turn-left{--fa:"\e580"}.fa-tents{--fa:"\e582"}.fa-magic,.fa-wand-magic{--fa:"\f0d0"}.fa-dog{--fa:"\f6d3"}.fa-carrot{--fa:"\f787"}.fa-moon{--fa:"\f186"}.fa-wine-glass-alt,.fa-wine-glass-empty{--fa:"\f5ce"}.fa-cheese{--fa:"\f7ef"}.fa-yin-yang{--fa:"\f6ad"}.fa-music{--fa:"\f001"}.fa-code-commit{--fa:"\f386"}.fa-temperature-low{--fa:"\f76b"}.fa-biking,.fa-person-biking{--fa:"\f84a"}.fa-broom{--fa:"\f51a"}.fa-shield-heart{--fa:"\e574"}.fa-gopuram{--fa:"\f664"}.fa-earth-oceania,.fa-globe-oceania{--fa:"\e47b"}.fa-square-xmark,.fa-times-square,.fa-xmark-square{--fa:"\f2d3"}.fa-hashtag{--fa:"\23"}.fa-expand-alt,.fa-up-right-and-down-left-from-center{--fa:"\f424"}.fa-oil-can{--fa:"\f613"}.fa-t{--fa:"\54"}.fa-hippo{--fa:"\f6ed"}.fa-chart-column{--fa:"\e0e3"}.fa-infinity{--fa:"\f534"}.fa-vial-circle-check{--fa:"\e596"}.fa-person-arrow-down-to-line{--fa:"\e538"}.fa-voicemail{--fa:"\f897"}.fa-fan{--fa:"\f863"}.fa-person-walking-luggage{--fa:"\e554"}.fa-arrows-alt-v,.fa-up-down{--fa:"\f338"}.fa-cloud-moon-rain{--fa:"\f73c"}.fa-calendar{--fa:"\f133"}.fa-trailer{--fa:"\e041"}.fa-bahai,.fa-haykal{--fa:"\f666"}.fa-sd-card{--fa:"\f7c2"}.fa-dragon{--fa:"\f6d5"}.fa-shoe-prints{--fa:"\f54b"}.fa-circle-plus,.fa-plus-circle{--fa:"\f055"}.fa-face-grin-tongue-wink,.fa-grin-tongue-wink{--fa:"\f58b"}.fa-hand-holding{--fa:"\f4bd"}.fa-plug-circle-exclamation{--fa:"\e55d"}.fa-chain-broken,.fa-chain-slash,.fa-link-slash,.fa-unlink{--fa:"\f127"}.fa-clone{--fa:"\f24d"}.fa-person-walking-arrow-loop-left{--fa:"\e551"}.fa-arrow-up-z-a,.fa-sort-alpha-up-alt{--fa:"\f882"}.fa-fire-alt,.fa-fire-flame-curved{--fa:"\f7e4"}.fa-tornado{--fa:"\f76f"}.fa-file-circle-plus{--fa:"\e494"}.fa-book-quran,.fa-quran{--fa:"\f687"}.fa-anchor{--fa:"\f13d"}.fa-border-all{--fa:"\f84c"}.fa-angry,.fa-face-angry{--fa:"\f556"}.fa-cookie-bite{--fa:"\f564"}.fa-arrow-trend-down{--fa:"\e097"}.fa-feed,.fa-rss{--fa:"\f09e"}.fa-draw-polygon{--fa:"\f5ee"}.fa-balance-scale,.fa-scale-balanced{--fa:"\f24e"}.fa-gauge-simple-high,.fa-tachometer,.fa-tachometer-fast{--fa:"\f62a"}.fa-shower{--fa:"\f2cc"}.fa-desktop,.fa-desktop-alt{--fa:"\f390"}.fa-m{--fa:"\4d"}.fa-table-list,.fa-th-list{--fa:"\f00b"}.fa-comment-sms,.fa-sms{--fa:"\f7cd"}.fa-book{--fa:"\f02d"}.fa-user-plus{--fa:"\f234"}.fa-check{--fa:"\f00c"}.fa-battery-4,.fa-battery-three-quarters{--fa:"\f241"}.fa-house-circle-check{--fa:"\e509"}.fa-angle-left{--fa:"\f104"}.fa-diagram-successor{--fa:"\e47a"}.fa-truck-arrow-right{--fa:"\e58b"}.fa-arrows-split-up-and-left{--fa:"\e4bc"}.fa-fist-raised,.fa-hand-fist{--fa:"\f6de"}.fa-cloud-moon{--fa:"\f6c3"}.fa-briefcase{--fa:"\f0b1"}.fa-person-falling{--fa:"\e546"}.fa-image-portrait,.fa-portrait{--fa:"\f3e0"}.fa-user-tag{--fa:"\f507"}.fa-rug{--fa:"\e569"}.fa-earth-europe,.fa-globe-europe{--fa:"\f7a2"}.fa-cart-flatbed-suitcase,.fa-luggage-cart{--fa:"\f59d"}.fa-rectangle-times,.fa-rectangle-xmark,.fa-times-rectangle,.fa-window-close{--fa:"\f410"}.fa-baht-sign{--fa:"\e0ac"}.fa-book-open{--fa:"\f518"}.fa-book-journal-whills,.fa-journal-whills{--fa:"\f66a"}.fa-handcuffs{--fa:"\e4f8"}.fa-exclamation-triangle,.fa-triangle-exclamation,.fa-warning{--fa:"\f071"}.fa-database{--fa:"\f1c0"}.fa-mail-forward,.fa-share{--fa:"\f064"}.fa-bottle-droplet{--fa:"\e4c4"}.fa-mask-face{--fa:"\e1d7"}.fa-hill-rockslide{--fa:"\e508"}.fa-exchange-alt,.fa-right-left{--fa:"\f362"}.fa-paper-plane{--fa:"\f1d8"}.fa-road-circle-exclamation{--fa:"\e565"}.fa-dungeon{--fa:"\f6d9"}.fa-align-right{--fa:"\f038"}.fa-money-bill-1-wave,.fa-money-bill-wave-alt{--fa:"\f53b"}.fa-life-ring{--fa:"\f1cd"}.fa-hands,.fa-sign-language,.fa-signing{--fa:"\f2a7"}.fa-calendar-day{--fa:"\f783"}.fa-ladder-water,.fa-swimming-pool,.fa-water-ladder{--fa:"\f5c5"}.fa-arrows-up-down,.fa-arrows-v{--fa:"\f07d"}.fa-face-grimace,.fa-grimace{--fa:"\f57f"}.fa-wheelchair-alt,.fa-wheelchair-move{--fa:"\e2ce"}.fa-level-down-alt,.fa-turn-down{--fa:"\f3be"}.fa-person-walking-arrow-right{--fa:"\e552"}.fa-envelope-square,.fa-square-envelope{--fa:"\f199"}.fa-dice{--fa:"\f522"}.fa-bowling-ball{--fa:"\f436"}.fa-brain{--fa:"\f5dc"}.fa-band-aid,.fa-bandage{--fa:"\f462"}.fa-calendar-minus{--fa:"\f272"}.fa-circle-xmark,.fa-times-circle,.fa-xmark-circle{--fa:"\f057"}.fa-gifts{--fa:"\f79c"}.fa-hotel{--fa:"\f594"}.fa-earth-asia,.fa-globe-asia{--fa:"\f57e"}.fa-id-card-alt,.fa-id-card-clip{--fa:"\f47f"}.fa-magnifying-glass-plus,.fa-search-plus{--fa:"\f00e"}.fa-thumbs-up{--fa:"\f164"}.fa-user-clock{--fa:"\f4fd"}.fa-allergies,.fa-hand-dots{--fa:"\f461"}.fa-file-invoice{--fa:"\f570"}.fa-window-minimize{--fa:"\f2d1"}.fa-coffee,.fa-mug-saucer{--fa:"\f0f4"}.fa-brush{--fa:"\f55d"}.fa-file-half-dashed{--fa:"\e698"}.fa-mask{--fa:"\f6fa"}.fa-magnifying-glass-minus,.fa-search-minus{--fa:"\f010"}.fa-ruler-vertical{--fa:"\f548"}.fa-user-alt,.fa-user-large{--fa:"\f406"}.fa-train-tram{--fa:"\e5b4"}.fa-user-nurse{--fa:"\f82f"}.fa-syringe{--fa:"\f48e"}.fa-cloud-sun{--fa:"\f6c4"}.fa-stopwatch-20{--fa:"\e06f"}.fa-square-full{--fa:"\f45c"}.fa-magnet{--fa:"\f076"}.fa-jar{--fa:"\e516"}.fa-note-sticky,.fa-sticky-note{--fa:"\f249"}.fa-bug-slash{--fa:"\e490"}.fa-arrow-up-from-water-pump{--fa:"\e4b6"}.fa-bone{--fa:"\f5d7"}.fa-table-cells-row-unlock{--fa:"\e691"}.fa-user-injured{--fa:"\f728"}.fa-face-sad-tear,.fa-sad-tear{--fa:"\f5b4"}.fa-plane{--fa:"\f072"}.fa-tent-arrows-down{--fa:"\e581"}.fa-exclamation{--fa:"\21"}.fa-arrows-spin{--fa:"\e4bb"}.fa-print{--fa:"\f02f"}.fa-try,.fa-turkish-lira,.fa-turkish-lira-sign{--fa:"\e2bb"}.fa-dollar,.fa-dollar-sign,.fa-usd{--fa:"\24"}.fa-x{--fa:"\58"}.fa-magnifying-glass-dollar,.fa-search-dollar{--fa:"\f688"}.fa-users-cog,.fa-users-gear{--fa:"\f509"}.fa-person-military-pointing{--fa:"\e54a"}.fa-bank,.fa-building-columns,.fa-institution,.fa-museum,.fa-university{--fa:"\f19c"}.fa-umbrella{--fa:"\f0e9"}.fa-trowel{--fa:"\e589"}.fa-d{--fa:"\44"}.fa-stapler{--fa:"\e5af"}.fa-masks-theater,.fa-theater-masks{--fa:"\f630"}.fa-kip-sign{--fa:"\e1c4"}.fa-hand-point-left{--fa:"\f0a5"}.fa-handshake-alt,.fa-handshake-simple{--fa:"\f4c6"}.fa-fighter-jet,.fa-jet-fighter{--fa:"\f0fb"}.fa-share-alt-square,.fa-square-share-nodes{--fa:"\f1e1"}.fa-barcode{--fa:"\f02a"}.fa-plus-minus{--fa:"\e43c"}.fa-video,.fa-video-camera{--fa:"\f03d"}.fa-graduation-cap,.fa-mortar-board{--fa:"\f19d"}.fa-hand-holding-medical{--fa:"\e05c"}.fa-person-circle-check{--fa:"\e53e"}.fa-level-up-alt,.fa-turn-up{--fa:"\f3bf"} -.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0} \ No newline at end of file diff --git a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/regular.css b/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/regular.css deleted file mode 100644 index be1e468..0000000 --- a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/regular.css +++ /dev/null @@ -1,19 +0,0 @@ -/*! - * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - * Copyright 2024 Fonticons, Inc. - */ -:root, :host { - --fa-style-family-classic: 'Font Awesome 6 Free'; - --fa-font-regular: normal 400 1em/1 'Font Awesome 6 Free'; } - -@font-face { - font-family: 'Font Awesome 6 Free'; - font-style: normal; - font-weight: 400; - font-display: block; - src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); } - -.far, -.fa-regular { - font-weight: 400; } diff --git a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/regular.min.css b/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/regular.min.css deleted file mode 100644 index 31256ee..0000000 --- a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/regular.min.css +++ /dev/null @@ -1,6 +0,0 @@ -/*! - * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - * Copyright 2024 Fonticons, Inc. - */ -:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}.fa-regular,.far{font-weight:400} \ No newline at end of file diff --git a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/solid.css b/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/solid.css deleted file mode 100644 index 6742be3..0000000 --- a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/solid.css +++ /dev/null @@ -1,19 +0,0 @@ -/*! - * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - * Copyright 2024 Fonticons, Inc. - */ -:root, :host { - --fa-style-family-classic: 'Font Awesome 6 Free'; - --fa-font-solid: normal 900 1em/1 'Font Awesome 6 Free'; } - -@font-face { - font-family: 'Font Awesome 6 Free'; - font-style: normal; - font-weight: 900; - font-display: block; - src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); } - -.fas, -.fa-solid { - font-weight: 900; } diff --git a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/solid.min.css b/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/solid.min.css deleted file mode 100644 index 8dc0112..0000000 --- a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/solid.min.css +++ /dev/null @@ -1,6 +0,0 @@ -/*! - * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - * Copyright 2024 Fonticons, Inc. - */ -:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-weight:900} \ No newline at end of file diff --git a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/svg-with-js.css b/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/svg-with-js.css deleted file mode 100644 index d780146..0000000 --- a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/svg-with-js.css +++ /dev/null @@ -1,461 +0,0 @@ -/*! - * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - * Copyright 2024 Fonticons, Inc. - */ -:root, :host { - --fa-font-solid: normal 900 1em/1 'Font Awesome 6 Free'; - --fa-font-regular: normal 400 1em/1 'Font Awesome 6 Free'; - --fa-font-light: normal 300 1em/1 'Font Awesome 6 Pro'; - --fa-font-thin: normal 100 1em/1 'Font Awesome 6 Pro'; - --fa-font-duotone: normal 900 1em/1 'Font Awesome 6 Duotone'; - --fa-font-duotone-regular: normal 400 1em/1 'Font Awesome 6 Duotone'; - --fa-font-duotone-light: normal 300 1em/1 'Font Awesome 6 Duotone'; - --fa-font-duotone-thin: normal 100 1em/1 'Font Awesome 6 Duotone'; - --fa-font-brands: normal 400 1em/1 'Font Awesome 6 Brands'; - --fa-font-sharp-solid: normal 900 1em/1 'Font Awesome 6 Sharp'; - --fa-font-sharp-regular: normal 400 1em/1 'Font Awesome 6 Sharp'; - --fa-font-sharp-light: normal 300 1em/1 'Font Awesome 6 Sharp'; - --fa-font-sharp-thin: normal 100 1em/1 'Font Awesome 6 Sharp'; - --fa-font-sharp-duotone-solid: normal 900 1em/1 'Font Awesome 6 Sharp Duotone'; - --fa-font-sharp-duotone-regular: normal 400 1em/1 'Font Awesome 6 Sharp Duotone'; - --fa-font-sharp-duotone-light: normal 300 1em/1 'Font Awesome 6 Sharp Duotone'; - --fa-font-sharp-duotone-thin: normal 100 1em/1 'Font Awesome 6 Sharp Duotone'; } - -svg.svg-inline--fa:not(:root), svg.svg-inline--fa:not(:host) { - overflow: visible; - box-sizing: content-box; } - -.svg-inline--fa { - display: var(--fa-display, inline-block); - height: 1em; - overflow: visible; - vertical-align: -.125em; } - .svg-inline--fa.fa-2xs { - vertical-align: 0.1em; } - .svg-inline--fa.fa-xs { - vertical-align: 0em; } - .svg-inline--fa.fa-sm { - vertical-align: -0.07143em; } - .svg-inline--fa.fa-lg { - vertical-align: -0.2em; } - .svg-inline--fa.fa-xl { - vertical-align: -0.25em; } - .svg-inline--fa.fa-2xl { - vertical-align: -0.3125em; } - .svg-inline--fa.fa-pull-left { - margin-right: var(--fa-pull-margin, 0.3em); - width: auto; } - .svg-inline--fa.fa-pull-right { - margin-left: var(--fa-pull-margin, 0.3em); - width: auto; } - .svg-inline--fa.fa-li { - width: var(--fa-li-width, 2em); - top: 0.25em; } - .svg-inline--fa.fa-fw { - width: var(--fa-fw-width, 1.25em); } - -.fa-layers svg.svg-inline--fa { - bottom: 0; - left: 0; - margin: auto; - position: absolute; - right: 0; - top: 0; } - -.fa-layers-counter, .fa-layers-text { - display: inline-block; - position: absolute; - text-align: center; } - -.fa-layers { - display: inline-block; - height: 1em; - position: relative; - text-align: center; - vertical-align: -.125em; - width: 1em; } - .fa-layers svg.svg-inline--fa { - transform-origin: center center; } - -.fa-layers-text { - left: 50%; - top: 50%; - transform: translate(-50%, -50%); - transform-origin: center center; } - -.fa-layers-counter { - background-color: var(--fa-counter-background-color, #ff253a); - border-radius: var(--fa-counter-border-radius, 1em); - box-sizing: border-box; - color: var(--fa-inverse, #fff); - line-height: var(--fa-counter-line-height, 1); - max-width: var(--fa-counter-max-width, 5em); - min-width: var(--fa-counter-min-width, 1.5em); - overflow: hidden; - padding: var(--fa-counter-padding, 0.25em 0.5em); - right: var(--fa-right, 0); - text-overflow: ellipsis; - top: var(--fa-top, 0); - transform: scale(var(--fa-counter-scale, 0.25)); - transform-origin: top right; } - -.fa-layers-bottom-right { - bottom: var(--fa-bottom, 0); - right: var(--fa-right, 0); - top: auto; - transform: scale(var(--fa-layers-scale, 0.25)); - transform-origin: bottom right; } - -.fa-layers-bottom-left { - bottom: var(--fa-bottom, 0); - left: var(--fa-left, 0); - right: auto; - top: auto; - transform: scale(var(--fa-layers-scale, 0.25)); - transform-origin: bottom left; } - -.fa-layers-top-right { - top: var(--fa-top, 0); - right: var(--fa-right, 0); - transform: scale(var(--fa-layers-scale, 0.25)); - transform-origin: top right; } - -.fa-layers-top-left { - left: var(--fa-left, 0); - right: auto; - top: var(--fa-top, 0); - transform: scale(var(--fa-layers-scale, 0.25)); - transform-origin: top left; } - -.fa-1x { - font-size: 1em; } - -.fa-2x { - font-size: 2em; } - -.fa-3x { - font-size: 3em; } - -.fa-4x { - font-size: 4em; } - -.fa-5x { - font-size: 5em; } - -.fa-6x { - font-size: 6em; } - -.fa-7x { - font-size: 7em; } - -.fa-8x { - font-size: 8em; } - -.fa-9x { - font-size: 9em; } - -.fa-10x { - font-size: 10em; } - -.fa-2xs { - font-size: 0.625em; - line-height: 0.1em; - vertical-align: 0.225em; } - -.fa-xs { - font-size: 0.75em; - line-height: 0.08333em; - vertical-align: 0.125em; } - -.fa-sm { - font-size: 0.875em; - line-height: 0.07143em; - vertical-align: 0.05357em; } - -.fa-lg { - font-size: 1.25em; - line-height: 0.05em; - vertical-align: -0.075em; } - -.fa-xl { - font-size: 1.5em; - line-height: 0.04167em; - vertical-align: -0.125em; } - -.fa-2xl { - font-size: 2em; - line-height: 0.03125em; - vertical-align: -0.1875em; } - -.fa-fw { - text-align: center; - width: 1.25em; } - -.fa-ul { - list-style-type: none; - margin-left: var(--fa-li-margin, 2.5em); - padding-left: 0; } - .fa-ul > li { - position: relative; } - -.fa-li { - left: calc(-1 * var(--fa-li-width, 2em)); - position: absolute; - text-align: center; - width: var(--fa-li-width, 2em); - line-height: inherit; } - -.fa-border { - border-color: var(--fa-border-color, #eee); - border-radius: var(--fa-border-radius, 0.1em); - border-style: var(--fa-border-style, solid); - border-width: var(--fa-border-width, 0.08em); - padding: var(--fa-border-padding, 0.2em 0.25em 0.15em); } - -.fa-pull-left { - float: left; - margin-right: var(--fa-pull-margin, 0.3em); } - -.fa-pull-right { - float: right; - margin-left: var(--fa-pull-margin, 0.3em); } - -.fa-beat { - animation-name: fa-beat; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, ease-in-out); } - -.fa-bounce { - animation-name: fa-bounce; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); } - -.fa-fade { - animation-name: fa-fade; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); } - -.fa-beat-fade { - animation-name: fa-beat-fade; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); } - -.fa-flip { - animation-name: fa-flip; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, ease-in-out); } - -.fa-shake { - animation-name: fa-shake; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, linear); } - -.fa-spin { - animation-name: fa-spin; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 2s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, linear); } - -.fa-spin-reverse { - --fa-animation-direction: reverse; } - -.fa-pulse, -.fa-spin-pulse { - animation-name: fa-spin; - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, steps(8)); } - -@media (prefers-reduced-motion: reduce) { - .fa-beat, - .fa-bounce, - .fa-fade, - .fa-beat-fade, - .fa-flip, - .fa-pulse, - .fa-shake, - .fa-spin, - .fa-spin-pulse { - animation-delay: -1ms; - animation-duration: 1ms; - animation-iteration-count: 1; - transition-delay: 0s; - transition-duration: 0s; } } - -@keyframes fa-beat { - 0%, 90% { - transform: scale(1); } - 45% { - transform: scale(var(--fa-beat-scale, 1.25)); } } - -@keyframes fa-bounce { - 0% { - transform: scale(1, 1) translateY(0); } - 10% { - transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); } - 30% { - transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); } - 50% { - transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); } - 57% { - transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); } - 64% { - transform: scale(1, 1) translateY(0); } - 100% { - transform: scale(1, 1) translateY(0); } } - -@keyframes fa-fade { - 50% { - opacity: var(--fa-fade-opacity, 0.4); } } - -@keyframes fa-beat-fade { - 0%, 100% { - opacity: var(--fa-beat-fade-opacity, 0.4); - transform: scale(1); } - 50% { - opacity: 1; - transform: scale(var(--fa-beat-fade-scale, 1.125)); } } - -@keyframes fa-flip { - 50% { - transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } } - -@keyframes fa-shake { - 0% { - transform: rotate(-15deg); } - 4% { - transform: rotate(15deg); } - 8%, 24% { - transform: rotate(-18deg); } - 12%, 28% { - transform: rotate(18deg); } - 16% { - transform: rotate(-22deg); } - 20% { - transform: rotate(22deg); } - 32% { - transform: rotate(-12deg); } - 36% { - transform: rotate(12deg); } - 40%, 100% { - transform: rotate(0deg); } } - -@keyframes fa-spin { - 0% { - transform: rotate(0deg); } - 100% { - transform: rotate(360deg); } } - -.fa-rotate-90 { - transform: rotate(90deg); } - -.fa-rotate-180 { - transform: rotate(180deg); } - -.fa-rotate-270 { - transform: rotate(270deg); } - -.fa-flip-horizontal { - transform: scale(-1, 1); } - -.fa-flip-vertical { - transform: scale(1, -1); } - -.fa-flip-both, -.fa-flip-horizontal.fa-flip-vertical { - transform: scale(-1, -1); } - -.fa-rotate-by { - transform: rotate(var(--fa-rotate-angle, 0)); } - -.fa-stack { - display: inline-block; - vertical-align: middle; - height: 2em; - position: relative; - width: 2.5em; } - -.fa-stack-1x, -.fa-stack-2x { - bottom: 0; - left: 0; - margin: auto; - position: absolute; - right: 0; - top: 0; - z-index: var(--fa-stack-z-index, auto); } - -.svg-inline--fa.fa-stack-1x { - height: 1em; - width: 1.25em; } - -.svg-inline--fa.fa-stack-2x { - height: 2em; - width: 2.5em; } - -.fa-inverse { - color: var(--fa-inverse, #fff); } - -.sr-only, -.fa-sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - white-space: nowrap; - border-width: 0; } - -.sr-only-focusable:not(:focus), -.fa-sr-only-focusable:not(:focus) { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - white-space: nowrap; - border-width: 0; } - -.svg-inline--fa .fa-primary { - fill: var(--fa-primary-color, currentColor); - opacity: var(--fa-primary-opacity, 1); } - -.svg-inline--fa .fa-secondary { - fill: var(--fa-secondary-color, currentColor); - opacity: var(--fa-secondary-opacity, 0.4); } - -.svg-inline--fa.fa-swap-opacity .fa-primary { - opacity: var(--fa-secondary-opacity, 0.4); } - -.svg-inline--fa.fa-swap-opacity .fa-secondary { - opacity: var(--fa-primary-opacity, 1); } - -.svg-inline--fa mask .fa-primary, -.svg-inline--fa mask .fa-secondary { - fill: black; } diff --git a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/svg-with-js.min.css b/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/svg-with-js.min.css deleted file mode 100644 index cb091a6..0000000 --- a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/svg-with-js.min.css +++ /dev/null @@ -1,6 +0,0 @@ -/*! - * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - * Copyright 2024 Fonticons, Inc. - */ -:host,:root{--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free";--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free";--fa-font-light:normal 300 1em/1 "Font Awesome 6 Pro";--fa-font-thin:normal 100 1em/1 "Font Awesome 6 Pro";--fa-font-duotone:normal 900 1em/1 "Font Awesome 6 Duotone";--fa-font-duotone-regular:normal 400 1em/1 "Font Awesome 6 Duotone";--fa-font-duotone-light:normal 300 1em/1 "Font Awesome 6 Duotone";--fa-font-duotone-thin:normal 100 1em/1 "Font Awesome 6 Duotone";--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands";--fa-font-sharp-solid:normal 900 1em/1 "Font Awesome 6 Sharp";--fa-font-sharp-regular:normal 400 1em/1 "Font Awesome 6 Sharp";--fa-font-sharp-light:normal 300 1em/1 "Font Awesome 6 Sharp";--fa-font-sharp-thin:normal 100 1em/1 "Font Awesome 6 Sharp";--fa-font-sharp-duotone-solid:normal 900 1em/1 "Font Awesome 6 Sharp Duotone";--fa-font-sharp-duotone-regular:normal 400 1em/1 "Font Awesome 6 Sharp Duotone";--fa-font-sharp-duotone-light:normal 300 1em/1 "Font Awesome 6 Sharp Duotone";--fa-font-sharp-duotone-thin:normal 100 1em/1 "Font Awesome 6 Sharp Duotone"}svg.svg-inline--fa:not(:host),svg.svg-inline--fa:not(:root){overflow:visible;box-sizing:initial}.svg-inline--fa{display:var(--fa-display,inline-block);height:1em;overflow:visible;vertical-align:-.125em}.svg-inline--fa.fa-2xs{vertical-align:.1em}.svg-inline--fa.fa-xs{vertical-align:0}.svg-inline--fa.fa-sm{vertical-align:-.07143em}.svg-inline--fa.fa-lg{vertical-align:-.2em}.svg-inline--fa.fa-xl{vertical-align:-.25em}.svg-inline--fa.fa-2xl{vertical-align:-.3125em}.svg-inline--fa.fa-pull-left{margin-right:var(--fa-pull-margin,.3em);width:auto}.svg-inline--fa.fa-pull-right{margin-left:var(--fa-pull-margin,.3em);width:auto}.svg-inline--fa.fa-li{width:var(--fa-li-width,2em);top:.25em}.svg-inline--fa.fa-fw{width:var(--fa-fw-width,1.25em)}.fa-layers svg.svg-inline--fa{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:1em}.fa-layers svg.svg-inline--fa{transform-origin:center center}.fa-layers-text{left:50%;top:50%;transform:translate(-50%,-50%);transform-origin:center center}.fa-layers-counter{background-color:var(--fa-counter-background-color,#ff253a);border-radius:var(--fa-counter-border-radius,1em);box-sizing:border-box;color:var(--fa-inverse,#fff);line-height:var(--fa-counter-line-height,1);max-width:var(--fa-counter-max-width,5em);min-width:var(--fa-counter-min-width,1.5em);overflow:hidden;padding:var(--fa-counter-padding,.25em .5em);right:var(--fa-right,0);text-overflow:ellipsis;top:var(--fa-top,0);transform:scale(var(--fa-counter-scale,.25));transform-origin:top right}.fa-layers-bottom-right{bottom:var(--fa-bottom,0);right:var(--fa-right,0);top:auto;transform:scale(var(--fa-layers-scale,.25));transform-origin:bottom right}.fa-layers-bottom-left{bottom:var(--fa-bottom,0);left:var(--fa-left,0);right:auto;top:auto;transform:scale(var(--fa-layers-scale,.25));transform-origin:bottom left}.fa-layers-top-right{top:var(--fa-top,0);right:var(--fa-right,0);transform:scale(var(--fa-layers-scale,.25));transform-origin:top right}.fa-layers-top-left{left:var(--fa-left,0);right:auto;top:var(--fa-top,0);transform:scale(var(--fa-layers-scale,.25));transform-origin:top left}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em)*-1);position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-radius:var(--fa-border-radius,.1em);border:var(--fa-border-width,.08em) var(--fa-border-style,solid) var(--fa-border-color,#eee);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{animation-name:fa-beat;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{animation-name:fa-bounce;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{animation-name:fa-fade;animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{animation-name:fa-beat-fade;animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{animation-name:fa-flip;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{animation-name:fa-shake;animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{animation-name:fa-spin;animation-duration:var(--fa-animation-duration,2s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{animation-name:fa-spin;animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{animation-delay:-1ms;animation-duration:1ms;animation-iteration-count:1;transition-delay:0s;transition-duration:0s}}@keyframes fa-beat{0%,90%{transform:scale(1)}45%{transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-bounce{0%{transform:scale(1) translateY(0)}10%{transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{transform:scale(1) translateY(0)}to{transform:scale(1) translateY(0)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);transform:scale(1)}50%{opacity:1;transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-flip{50%{transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-shake{0%{transform:rotate(-15deg)}4%{transform:rotate(15deg)}8%,24%{transform:rotate(-18deg)}12%,28%{transform:rotate(18deg)}16%{transform:rotate(-22deg)}20%{transform:rotate(22deg)}32%{transform:rotate(-12deg)}36%{transform:rotate(12deg)}40%,to{transform:rotate(0deg)}}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{transform:rotate(90deg)}.fa-rotate-180{transform:rotate(180deg)}.fa-rotate-270{transform:rotate(270deg)}.fa-flip-horizontal{transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}.fa-rotate-by{transform:rotate(var(--fa-rotate-angle,0))}.fa-stack{display:inline-block;vertical-align:middle;height:2em;position:relative;width:2.5em}.fa-stack-1x,.fa-stack-2x{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0;z-index:var(--fa-stack-z-index,auto)}.svg-inline--fa.fa-stack-1x{height:1em;width:1.25em}.svg-inline--fa.fa-stack-2x{height:2em;width:2.5em}.fa-inverse{color:var(--fa-inverse,#fff)}.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.svg-inline--fa .fa-primary{fill:var(--fa-primary-color,currentColor);opacity:var(--fa-primary-opacity,1)}.svg-inline--fa .fa-secondary{fill:var(--fa-secondary-color,currentColor)}.svg-inline--fa .fa-secondary,.svg-inline--fa.fa-swap-opacity .fa-primary{opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-secondary{opacity:var(--fa-primary-opacity,1)}.svg-inline--fa mask .fa-primary,.svg-inline--fa mask .fa-secondary{fill:#000} \ No newline at end of file diff --git a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/v4-font-face.css b/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/v4-font-face.css deleted file mode 100644 index c453a99..0000000 --- a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/v4-font-face.css +++ /dev/null @@ -1,26 +0,0 @@ -/*! - * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - * Copyright 2024 Fonticons, Inc. - */ -@font-face { - font-family: 'FontAwesome'; - font-display: block; - src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); } - -@font-face { - font-family: 'FontAwesome'; - font-display: block; - src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); } - -@font-face { - font-family: 'FontAwesome'; - font-display: block; - src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); - unicode-range: U+F003,U+F006,U+F014,U+F016-F017,U+F01A-F01B,U+F01D,U+F022,U+F03E,U+F044,U+F046,U+F05C-F05D,U+F06E,U+F070,U+F087-F088,U+F08A,U+F094,U+F096-F097,U+F09D,U+F0A0,U+F0A2,U+F0A4-F0A7,U+F0C5,U+F0C7,U+F0E5-F0E6,U+F0EB,U+F0F6-F0F8,U+F10C,U+F114-F115,U+F118-F11A,U+F11C-F11D,U+F133,U+F147,U+F14E,U+F150-F152,U+F185-F186,U+F18E,U+F190-F192,U+F196,U+F1C1-F1C9,U+F1D9,U+F1DB,U+F1E3,U+F1EA,U+F1F7,U+F1F9,U+F20A,U+F247-F248,U+F24A,U+F24D,U+F255-F25B,U+F25D,U+F271-F274,U+F278,U+F27B,U+F28C,U+F28E,U+F29C,U+F2B5,U+F2B7,U+F2BA,U+F2BC,U+F2BE,U+F2C0-F2C1,U+F2C3,U+F2D0,U+F2D2,U+F2D4,U+F2DC; } - -@font-face { - font-family: 'FontAwesome'; - font-display: block; - src: url("../webfonts/fa-v4compatibility.woff2") format("woff2"), url("../webfonts/fa-v4compatibility.ttf") format("truetype"); - unicode-range: U+F041,U+F047,U+F065-F066,U+F07D-F07E,U+F080,U+F08B,U+F08E,U+F090,U+F09A,U+F0AC,U+F0AE,U+F0B2,U+F0D0,U+F0D6,U+F0E4,U+F0EC,U+F10A-F10B,U+F123,U+F13E,U+F148-F149,U+F14C,U+F156,U+F15E,U+F160-F161,U+F163,U+F175-F178,U+F195,U+F1F8,U+F219,U+F27A; } diff --git a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/v4-font-face.min.css b/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/v4-font-face.min.css deleted file mode 100644 index fa58107..0000000 --- a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/v4-font-face.min.css +++ /dev/null @@ -1,6 +0,0 @@ -/*! - * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - * Copyright 2024 Fonticons, Inc. - */ -@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-v4compatibility.woff2) format("woff2"),url(../webfonts/fa-v4compatibility.ttf) format("truetype");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f27a} \ No newline at end of file diff --git a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/v4-shims.css b/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/v4-shims.css deleted file mode 100644 index 7ed4af7..0000000 --- a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/v4-shims.css +++ /dev/null @@ -1,2194 +0,0 @@ -/*! - * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - * Copyright 2024 Fonticons, Inc. - */ -.fa.fa-glass { - --fa: "\f000"; } - -.fa.fa-envelope-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-envelope-o { - --fa: "\f0e0"; } - -.fa.fa-star-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-star-o { - --fa: "\f005"; } - -.fa.fa-remove { - --fa: "\f00d"; } - -.fa.fa-close { - --fa: "\f00d"; } - -.fa.fa-gear { - --fa: "\f013"; } - -.fa.fa-trash-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-trash-o { - --fa: "\f2ed"; } - -.fa.fa-home { - --fa: "\f015"; } - -.fa.fa-file-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-file-o { - --fa: "\f15b"; } - -.fa.fa-clock-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-clock-o { - --fa: "\f017"; } - -.fa.fa-arrow-circle-o-down { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-arrow-circle-o-down { - --fa: "\f358"; } - -.fa.fa-arrow-circle-o-up { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-arrow-circle-o-up { - --fa: "\f35b"; } - -.fa.fa-play-circle-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-play-circle-o { - --fa: "\f144"; } - -.fa.fa-repeat { - --fa: "\f01e"; } - -.fa.fa-rotate-right { - --fa: "\f01e"; } - -.fa.fa-refresh { - --fa: "\f021"; } - -.fa.fa-list-alt { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-list-alt { - --fa: "\f022"; } - -.fa.fa-dedent { - --fa: "\f03b"; } - -.fa.fa-video-camera { - --fa: "\f03d"; } - -.fa.fa-picture-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-picture-o { - --fa: "\f03e"; } - -.fa.fa-photo { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-photo { - --fa: "\f03e"; } - -.fa.fa-image { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-image { - --fa: "\f03e"; } - -.fa.fa-map-marker { - --fa: "\f3c5"; } - -.fa.fa-pencil-square-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-pencil-square-o { - --fa: "\f044"; } - -.fa.fa-edit { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-edit { - --fa: "\f044"; } - -.fa.fa-share-square-o { - --fa: "\f14d"; } - -.fa.fa-check-square-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-check-square-o { - --fa: "\f14a"; } - -.fa.fa-arrows { - --fa: "\f0b2"; } - -.fa.fa-times-circle-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-times-circle-o { - --fa: "\f057"; } - -.fa.fa-check-circle-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-check-circle-o { - --fa: "\f058"; } - -.fa.fa-mail-forward { - --fa: "\f064"; } - -.fa.fa-expand { - --fa: "\f424"; } - -.fa.fa-compress { - --fa: "\f422"; } - -.fa.fa-eye { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-eye-slash { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-warning { - --fa: "\f071"; } - -.fa.fa-calendar { - --fa: "\f073"; } - -.fa.fa-arrows-v { - --fa: "\f338"; } - -.fa.fa-arrows-h { - --fa: "\f337"; } - -.fa.fa-bar-chart { - --fa: "\e0e3"; } - -.fa.fa-bar-chart-o { - --fa: "\e0e3"; } - -.fa.fa-twitter-square { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-twitter-square { - --fa: "\f081"; } - -.fa.fa-facebook-square { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-facebook-square { - --fa: "\f082"; } - -.fa.fa-gears { - --fa: "\f085"; } - -.fa.fa-thumbs-o-up { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-thumbs-o-up { - --fa: "\f164"; } - -.fa.fa-thumbs-o-down { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-thumbs-o-down { - --fa: "\f165"; } - -.fa.fa-heart-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-heart-o { - --fa: "\f004"; } - -.fa.fa-sign-out { - --fa: "\f2f5"; } - -.fa.fa-linkedin-square { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-linkedin-square { - --fa: "\f08c"; } - -.fa.fa-thumb-tack { - --fa: "\f08d"; } - -.fa.fa-external-link { - --fa: "\f35d"; } - -.fa.fa-sign-in { - --fa: "\f2f6"; } - -.fa.fa-github-square { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-github-square { - --fa: "\f092"; } - -.fa.fa-lemon-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-lemon-o { - --fa: "\f094"; } - -.fa.fa-square-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-square-o { - --fa: "\f0c8"; } - -.fa.fa-bookmark-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-bookmark-o { - --fa: "\f02e"; } - -.fa.fa-twitter { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-facebook { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-facebook { - --fa: "\f39e"; } - -.fa.fa-facebook-f { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-facebook-f { - --fa: "\f39e"; } - -.fa.fa-github { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-credit-card { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-feed { - --fa: "\f09e"; } - -.fa.fa-hdd-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-hdd-o { - --fa: "\f0a0"; } - -.fa.fa-hand-o-right { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-hand-o-right { - --fa: "\f0a4"; } - -.fa.fa-hand-o-left { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-hand-o-left { - --fa: "\f0a5"; } - -.fa.fa-hand-o-up { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-hand-o-up { - --fa: "\f0a6"; } - -.fa.fa-hand-o-down { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-hand-o-down { - --fa: "\f0a7"; } - -.fa.fa-globe { - --fa: "\f57d"; } - -.fa.fa-tasks { - --fa: "\f828"; } - -.fa.fa-arrows-alt { - --fa: "\f31e"; } - -.fa.fa-group { - --fa: "\f0c0"; } - -.fa.fa-chain { - --fa: "\f0c1"; } - -.fa.fa-cut { - --fa: "\f0c4"; } - -.fa.fa-files-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-files-o { - --fa: "\f0c5"; } - -.fa.fa-floppy-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-floppy-o { - --fa: "\f0c7"; } - -.fa.fa-save { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-save { - --fa: "\f0c7"; } - -.fa.fa-navicon { - --fa: "\f0c9"; } - -.fa.fa-reorder { - --fa: "\f0c9"; } - -.fa.fa-magic { - --fa: "\e2ca"; } - -.fa.fa-pinterest { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-pinterest-square { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-pinterest-square { - --fa: "\f0d3"; } - -.fa.fa-google-plus-square { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-google-plus-square { - --fa: "\f0d4"; } - -.fa.fa-google-plus { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-google-plus { - --fa: "\f0d5"; } - -.fa.fa-money { - --fa: "\f3d1"; } - -.fa.fa-unsorted { - --fa: "\f0dc"; } - -.fa.fa-sort-desc { - --fa: "\f0dd"; } - -.fa.fa-sort-asc { - --fa: "\f0de"; } - -.fa.fa-linkedin { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-linkedin { - --fa: "\f0e1"; } - -.fa.fa-rotate-left { - --fa: "\f0e2"; } - -.fa.fa-legal { - --fa: "\f0e3"; } - -.fa.fa-tachometer { - --fa: "\f625"; } - -.fa.fa-dashboard { - --fa: "\f625"; } - -.fa.fa-comment-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-comment-o { - --fa: "\f075"; } - -.fa.fa-comments-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-comments-o { - --fa: "\f086"; } - -.fa.fa-flash { - --fa: "\f0e7"; } - -.fa.fa-clipboard { - --fa: "\f0ea"; } - -.fa.fa-lightbulb-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-lightbulb-o { - --fa: "\f0eb"; } - -.fa.fa-exchange { - --fa: "\f362"; } - -.fa.fa-cloud-download { - --fa: "\f0ed"; } - -.fa.fa-cloud-upload { - --fa: "\f0ee"; } - -.fa.fa-bell-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-bell-o { - --fa: "\f0f3"; } - -.fa.fa-cutlery { - --fa: "\f2e7"; } - -.fa.fa-file-text-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-file-text-o { - --fa: "\f15c"; } - -.fa.fa-building-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-building-o { - --fa: "\f1ad"; } - -.fa.fa-hospital-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-hospital-o { - --fa: "\f0f8"; } - -.fa.fa-tablet { - --fa: "\f3fa"; } - -.fa.fa-mobile { - --fa: "\f3cd"; } - -.fa.fa-mobile-phone { - --fa: "\f3cd"; } - -.fa.fa-circle-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-circle-o { - --fa: "\f111"; } - -.fa.fa-mail-reply { - --fa: "\f3e5"; } - -.fa.fa-github-alt { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-folder-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-folder-o { - --fa: "\f07b"; } - -.fa.fa-folder-open-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-folder-open-o { - --fa: "\f07c"; } - -.fa.fa-smile-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-smile-o { - --fa: "\f118"; } - -.fa.fa-frown-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-frown-o { - --fa: "\f119"; } - -.fa.fa-meh-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-meh-o { - --fa: "\f11a"; } - -.fa.fa-keyboard-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-keyboard-o { - --fa: "\f11c"; } - -.fa.fa-flag-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-flag-o { - --fa: "\f024"; } - -.fa.fa-mail-reply-all { - --fa: "\f122"; } - -.fa.fa-star-half-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-star-half-o { - --fa: "\f5c0"; } - -.fa.fa-star-half-empty { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-star-half-empty { - --fa: "\f5c0"; } - -.fa.fa-star-half-full { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-star-half-full { - --fa: "\f5c0"; } - -.fa.fa-code-fork { - --fa: "\f126"; } - -.fa.fa-chain-broken { - --fa: "\f127"; } - -.fa.fa-unlink { - --fa: "\f127"; } - -.fa.fa-calendar-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-calendar-o { - --fa: "\f133"; } - -.fa.fa-maxcdn { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-html5 { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-css3 { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-unlock-alt { - --fa: "\f09c"; } - -.fa.fa-minus-square-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-minus-square-o { - --fa: "\f146"; } - -.fa.fa-level-up { - --fa: "\f3bf"; } - -.fa.fa-level-down { - --fa: "\f3be"; } - -.fa.fa-pencil-square { - --fa: "\f14b"; } - -.fa.fa-external-link-square { - --fa: "\f360"; } - -.fa.fa-compass { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-caret-square-o-down { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-caret-square-o-down { - --fa: "\f150"; } - -.fa.fa-toggle-down { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-toggle-down { - --fa: "\f150"; } - -.fa.fa-caret-square-o-up { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-caret-square-o-up { - --fa: "\f151"; } - -.fa.fa-toggle-up { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-toggle-up { - --fa: "\f151"; } - -.fa.fa-caret-square-o-right { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-caret-square-o-right { - --fa: "\f152"; } - -.fa.fa-toggle-right { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-toggle-right { - --fa: "\f152"; } - -.fa.fa-eur { - --fa: "\f153"; } - -.fa.fa-euro { - --fa: "\f153"; } - -.fa.fa-gbp { - --fa: "\f154"; } - -.fa.fa-usd { - --fa: "\24"; } - -.fa.fa-dollar { - --fa: "\24"; } - -.fa.fa-inr { - --fa: "\e1bc"; } - -.fa.fa-rupee { - --fa: "\e1bc"; } - -.fa.fa-jpy { - --fa: "\f157"; } - -.fa.fa-cny { - --fa: "\f157"; } - -.fa.fa-rmb { - --fa: "\f157"; } - -.fa.fa-yen { - --fa: "\f157"; } - -.fa.fa-rub { - --fa: "\f158"; } - -.fa.fa-ruble { - --fa: "\f158"; } - -.fa.fa-rouble { - --fa: "\f158"; } - -.fa.fa-krw { - --fa: "\f159"; } - -.fa.fa-won { - --fa: "\f159"; } - -.fa.fa-btc { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-bitcoin { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-bitcoin { - --fa: "\f15a"; } - -.fa.fa-file-text { - --fa: "\f15c"; } - -.fa.fa-sort-alpha-asc { - --fa: "\f15d"; } - -.fa.fa-sort-alpha-desc { - --fa: "\f881"; } - -.fa.fa-sort-amount-asc { - --fa: "\f884"; } - -.fa.fa-sort-amount-desc { - --fa: "\f160"; } - -.fa.fa-sort-numeric-asc { - --fa: "\f162"; } - -.fa.fa-sort-numeric-desc { - --fa: "\f886"; } - -.fa.fa-youtube-square { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-youtube-square { - --fa: "\f431"; } - -.fa.fa-youtube { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-xing { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-xing-square { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-xing-square { - --fa: "\f169"; } - -.fa.fa-youtube-play { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-youtube-play { - --fa: "\f167"; } - -.fa.fa-dropbox { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-stack-overflow { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-instagram { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-flickr { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-adn { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-bitbucket { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-bitbucket-square { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-bitbucket-square { - --fa: "\f171"; } - -.fa.fa-tumblr { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-tumblr-square { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-tumblr-square { - --fa: "\f174"; } - -.fa.fa-long-arrow-down { - --fa: "\f309"; } - -.fa.fa-long-arrow-up { - --fa: "\f30c"; } - -.fa.fa-long-arrow-left { - --fa: "\f30a"; } - -.fa.fa-long-arrow-right { - --fa: "\f30b"; } - -.fa.fa-apple { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-windows { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-android { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-linux { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-dribbble { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-skype { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-foursquare { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-trello { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-gratipay { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-gittip { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-gittip { - --fa: "\f184"; } - -.fa.fa-sun-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-sun-o { - --fa: "\f185"; } - -.fa.fa-moon-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-moon-o { - --fa: "\f186"; } - -.fa.fa-vk { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-weibo { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-renren { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-pagelines { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-stack-exchange { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-arrow-circle-o-right { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-arrow-circle-o-right { - --fa: "\f35a"; } - -.fa.fa-arrow-circle-o-left { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-arrow-circle-o-left { - --fa: "\f359"; } - -.fa.fa-caret-square-o-left { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-caret-square-o-left { - --fa: "\f191"; } - -.fa.fa-toggle-left { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-toggle-left { - --fa: "\f191"; } - -.fa.fa-dot-circle-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-dot-circle-o { - --fa: "\f192"; } - -.fa.fa-vimeo-square { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-vimeo-square { - --fa: "\f194"; } - -.fa.fa-try { - --fa: "\e2bb"; } - -.fa.fa-turkish-lira { - --fa: "\e2bb"; } - -.fa.fa-plus-square-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-plus-square-o { - --fa: "\f0fe"; } - -.fa.fa-slack { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-wordpress { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-openid { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-institution { - --fa: "\f19c"; } - -.fa.fa-bank { - --fa: "\f19c"; } - -.fa.fa-mortar-board { - --fa: "\f19d"; } - -.fa.fa-yahoo { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-google { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-reddit { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-reddit-square { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-reddit-square { - --fa: "\f1a2"; } - -.fa.fa-stumbleupon-circle { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-stumbleupon { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-delicious { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-digg { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-pied-piper-pp { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-pied-piper-alt { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-drupal { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-joomla { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-behance { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-behance-square { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-behance-square { - --fa: "\f1b5"; } - -.fa.fa-steam { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-steam-square { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-steam-square { - --fa: "\f1b7"; } - -.fa.fa-automobile { - --fa: "\f1b9"; } - -.fa.fa-cab { - --fa: "\f1ba"; } - -.fa.fa-spotify { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-deviantart { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-soundcloud { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-file-pdf-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-file-pdf-o { - --fa: "\f1c1"; } - -.fa.fa-file-word-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-file-word-o { - --fa: "\f1c2"; } - -.fa.fa-file-excel-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-file-excel-o { - --fa: "\f1c3"; } - -.fa.fa-file-powerpoint-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-file-powerpoint-o { - --fa: "\f1c4"; } - -.fa.fa-file-image-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-file-image-o { - --fa: "\f1c5"; } - -.fa.fa-file-photo-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-file-photo-o { - --fa: "\f1c5"; } - -.fa.fa-file-picture-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-file-picture-o { - --fa: "\f1c5"; } - -.fa.fa-file-archive-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-file-archive-o { - --fa: "\f1c6"; } - -.fa.fa-file-zip-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-file-zip-o { - --fa: "\f1c6"; } - -.fa.fa-file-audio-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-file-audio-o { - --fa: "\f1c7"; } - -.fa.fa-file-sound-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-file-sound-o { - --fa: "\f1c7"; } - -.fa.fa-file-video-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-file-video-o { - --fa: "\f1c8"; } - -.fa.fa-file-movie-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-file-movie-o { - --fa: "\f1c8"; } - -.fa.fa-file-code-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-file-code-o { - --fa: "\f1c9"; } - -.fa.fa-vine { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-codepen { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-jsfiddle { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-life-bouy { - --fa: "\f1cd"; } - -.fa.fa-life-buoy { - --fa: "\f1cd"; } - -.fa.fa-life-saver { - --fa: "\f1cd"; } - -.fa.fa-support { - --fa: "\f1cd"; } - -.fa.fa-circle-o-notch { - --fa: "\f1ce"; } - -.fa.fa-rebel { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-ra { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-ra { - --fa: "\f1d0"; } - -.fa.fa-resistance { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-resistance { - --fa: "\f1d0"; } - -.fa.fa-empire { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-ge { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-ge { - --fa: "\f1d1"; } - -.fa.fa-git-square { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-git-square { - --fa: "\f1d2"; } - -.fa.fa-git { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-hacker-news { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-y-combinator-square { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-y-combinator-square { - --fa: "\f1d4"; } - -.fa.fa-yc-square { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-yc-square { - --fa: "\f1d4"; } - -.fa.fa-tencent-weibo { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-qq { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-weixin { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-wechat { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-wechat { - --fa: "\f1d7"; } - -.fa.fa-send { - --fa: "\f1d8"; } - -.fa.fa-paper-plane-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-paper-plane-o { - --fa: "\f1d8"; } - -.fa.fa-send-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-send-o { - --fa: "\f1d8"; } - -.fa.fa-circle-thin { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-circle-thin { - --fa: "\f111"; } - -.fa.fa-header { - --fa: "\f1dc"; } - -.fa.fa-futbol-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-futbol-o { - --fa: "\f1e3"; } - -.fa.fa-soccer-ball-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-soccer-ball-o { - --fa: "\f1e3"; } - -.fa.fa-slideshare { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-twitch { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-yelp { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-newspaper-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-newspaper-o { - --fa: "\f1ea"; } - -.fa.fa-paypal { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-google-wallet { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-cc-visa { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-cc-mastercard { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-cc-discover { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-cc-amex { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-cc-paypal { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-cc-stripe { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-bell-slash-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-bell-slash-o { - --fa: "\f1f6"; } - -.fa.fa-trash { - --fa: "\f2ed"; } - -.fa.fa-copyright { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-eyedropper { - --fa: "\f1fb"; } - -.fa.fa-area-chart { - --fa: "\f1fe"; } - -.fa.fa-pie-chart { - --fa: "\f200"; } - -.fa.fa-line-chart { - --fa: "\f201"; } - -.fa.fa-lastfm { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-lastfm-square { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-lastfm-square { - --fa: "\f203"; } - -.fa.fa-ioxhost { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-angellist { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-cc { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-cc { - --fa: "\f20a"; } - -.fa.fa-ils { - --fa: "\f20b"; } - -.fa.fa-shekel { - --fa: "\f20b"; } - -.fa.fa-sheqel { - --fa: "\f20b"; } - -.fa.fa-buysellads { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-connectdevelop { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-dashcube { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-forumbee { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-leanpub { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-sellsy { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-shirtsinbulk { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-simplybuilt { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-skyatlas { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-diamond { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-diamond { - --fa: "\f3a5"; } - -.fa.fa-transgender { - --fa: "\f224"; } - -.fa.fa-intersex { - --fa: "\f224"; } - -.fa.fa-transgender-alt { - --fa: "\f225"; } - -.fa.fa-facebook-official { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-facebook-official { - --fa: "\f09a"; } - -.fa.fa-pinterest-p { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-whatsapp { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-hotel { - --fa: "\f236"; } - -.fa.fa-viacoin { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-medium { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-y-combinator { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-yc { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-yc { - --fa: "\f23b"; } - -.fa.fa-optin-monster { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-opencart { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-expeditedssl { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-battery-4 { - --fa: "\f240"; } - -.fa.fa-battery { - --fa: "\f240"; } - -.fa.fa-battery-3 { - --fa: "\f241"; } - -.fa.fa-battery-2 { - --fa: "\f242"; } - -.fa.fa-battery-1 { - --fa: "\f243"; } - -.fa.fa-battery-0 { - --fa: "\f244"; } - -.fa.fa-object-group { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-object-ungroup { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-sticky-note-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-sticky-note-o { - --fa: "\f249"; } - -.fa.fa-cc-jcb { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-cc-diners-club { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-clone { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-hourglass-o { - --fa: "\f254"; } - -.fa.fa-hourglass-1 { - --fa: "\f251"; } - -.fa.fa-hourglass-2 { - --fa: "\f252"; } - -.fa.fa-hourglass-3 { - --fa: "\f253"; } - -.fa.fa-hand-rock-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-hand-rock-o { - --fa: "\f255"; } - -.fa.fa-hand-grab-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-hand-grab-o { - --fa: "\f255"; } - -.fa.fa-hand-paper-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-hand-paper-o { - --fa: "\f256"; } - -.fa.fa-hand-stop-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-hand-stop-o { - --fa: "\f256"; } - -.fa.fa-hand-scissors-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-hand-scissors-o { - --fa: "\f257"; } - -.fa.fa-hand-lizard-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-hand-lizard-o { - --fa: "\f258"; } - -.fa.fa-hand-spock-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-hand-spock-o { - --fa: "\f259"; } - -.fa.fa-hand-pointer-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-hand-pointer-o { - --fa: "\f25a"; } - -.fa.fa-hand-peace-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-hand-peace-o { - --fa: "\f25b"; } - -.fa.fa-registered { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-creative-commons { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-gg { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-gg-circle { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-odnoklassniki { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-odnoklassniki-square { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-odnoklassniki-square { - --fa: "\f264"; } - -.fa.fa-get-pocket { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-wikipedia-w { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-safari { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-chrome { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-firefox { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-opera { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-internet-explorer { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-television { - --fa: "\f26c"; } - -.fa.fa-contao { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-500px { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-amazon { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-calendar-plus-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-calendar-plus-o { - --fa: "\f271"; } - -.fa.fa-calendar-minus-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-calendar-minus-o { - --fa: "\f272"; } - -.fa.fa-calendar-times-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-calendar-times-o { - --fa: "\f273"; } - -.fa.fa-calendar-check-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-calendar-check-o { - --fa: "\f274"; } - -.fa.fa-map-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-map-o { - --fa: "\f279"; } - -.fa.fa-commenting { - --fa: "\f4ad"; } - -.fa.fa-commenting-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-commenting-o { - --fa: "\f4ad"; } - -.fa.fa-houzz { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-vimeo { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-vimeo { - --fa: "\f27d"; } - -.fa.fa-black-tie { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-fonticons { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-reddit-alien { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-edge { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-credit-card-alt { - --fa: "\f09d"; } - -.fa.fa-codiepie { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-modx { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-fort-awesome { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-usb { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-product-hunt { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-mixcloud { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-scribd { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-pause-circle-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-pause-circle-o { - --fa: "\f28b"; } - -.fa.fa-stop-circle-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-stop-circle-o { - --fa: "\f28d"; } - -.fa.fa-bluetooth { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-bluetooth-b { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-gitlab { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-wpbeginner { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-wpforms { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-envira { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-wheelchair-alt { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-wheelchair-alt { - --fa: "\f368"; } - -.fa.fa-question-circle-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-question-circle-o { - --fa: "\f059"; } - -.fa.fa-volume-control-phone { - --fa: "\f2a0"; } - -.fa.fa-asl-interpreting { - --fa: "\f2a3"; } - -.fa.fa-deafness { - --fa: "\f2a4"; } - -.fa.fa-hard-of-hearing { - --fa: "\f2a4"; } - -.fa.fa-glide { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-glide-g { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-signing { - --fa: "\f2a7"; } - -.fa.fa-viadeo { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-viadeo-square { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-viadeo-square { - --fa: "\f2aa"; } - -.fa.fa-snapchat { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-snapchat-ghost { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-snapchat-ghost { - --fa: "\f2ab"; } - -.fa.fa-snapchat-square { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-snapchat-square { - --fa: "\f2ad"; } - -.fa.fa-pied-piper { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-first-order { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-yoast { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-themeisle { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-google-plus-official { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-google-plus-official { - --fa: "\f2b3"; } - -.fa.fa-google-plus-circle { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-google-plus-circle { - --fa: "\f2b3"; } - -.fa.fa-font-awesome { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-fa { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-fa { - --fa: "\f2b4"; } - -.fa.fa-handshake-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-handshake-o { - --fa: "\f2b5"; } - -.fa.fa-envelope-open-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-envelope-open-o { - --fa: "\f2b6"; } - -.fa.fa-linode { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-address-book-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-address-book-o { - --fa: "\f2b9"; } - -.fa.fa-vcard { - --fa: "\f2bb"; } - -.fa.fa-address-card-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-address-card-o { - --fa: "\f2bb"; } - -.fa.fa-vcard-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-vcard-o { - --fa: "\f2bb"; } - -.fa.fa-user-circle-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-user-circle-o { - --fa: "\f2bd"; } - -.fa.fa-user-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-user-o { - --fa: "\f007"; } - -.fa.fa-id-badge { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-drivers-license { - --fa: "\f2c2"; } - -.fa.fa-id-card-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-id-card-o { - --fa: "\f2c2"; } - -.fa.fa-drivers-license-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-drivers-license-o { - --fa: "\f2c2"; } - -.fa.fa-quora { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-free-code-camp { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-telegram { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-thermometer-4 { - --fa: "\f2c7"; } - -.fa.fa-thermometer { - --fa: "\f2c7"; } - -.fa.fa-thermometer-3 { - --fa: "\f2c8"; } - -.fa.fa-thermometer-2 { - --fa: "\f2c9"; } - -.fa.fa-thermometer-1 { - --fa: "\f2ca"; } - -.fa.fa-thermometer-0 { - --fa: "\f2cb"; } - -.fa.fa-bathtub { - --fa: "\f2cd"; } - -.fa.fa-s15 { - --fa: "\f2cd"; } - -.fa.fa-window-maximize { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-window-restore { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-times-rectangle { - --fa: "\f410"; } - -.fa.fa-window-close-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-window-close-o { - --fa: "\f410"; } - -.fa.fa-times-rectangle-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-times-rectangle-o { - --fa: "\f410"; } - -.fa.fa-bandcamp { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-grav { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-etsy { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-imdb { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-ravelry { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-eercast { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-eercast { - --fa: "\f2da"; } - -.fa.fa-snowflake-o { - font-family: 'Font Awesome 6 Free'; - font-weight: 400; } - -.fa.fa-snowflake-o { - --fa: "\f2dc"; } - -.fa.fa-superpowers { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-wpexplorer { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } - -.fa.fa-meetup { - font-family: 'Font Awesome 6 Brands'; - font-weight: 400; } diff --git a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/v4-shims.min.css b/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/v4-shims.min.css deleted file mode 100644 index 93685c8..0000000 --- a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/v4-shims.min.css +++ /dev/null @@ -1,6 +0,0 @@ -/*! - * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - * Copyright 2024 Fonticons, Inc. - */ -.fa.fa-glass{--fa:"\f000"}.fa.fa-envelope-o{--fa:"\f0e0"}.fa.fa-envelope-o,.fa.fa-star-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-star-o{--fa:"\f005"}.fa.fa-close,.fa.fa-remove{--fa:"\f00d"}.fa.fa-gear{--fa:"\f013"}.fa.fa-trash-o{font-family:"Font Awesome 6 Free";font-weight:400;--fa:"\f2ed"}.fa.fa-home{--fa:"\f015"}.fa.fa-file-o{--fa:"\f15b"}.fa.fa-clock-o,.fa.fa-file-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-clock-o{--fa:"\f017"}.fa.fa-arrow-circle-o-down{--fa:"\f358"}.fa.fa-arrow-circle-o-down,.fa.fa-arrow-circle-o-up{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-arrow-circle-o-up{--fa:"\f35b"}.fa.fa-play-circle-o{font-family:"Font Awesome 6 Free";font-weight:400;--fa:"\f144"}.fa.fa-repeat,.fa.fa-rotate-right{--fa:"\f01e"}.fa.fa-refresh{--fa:"\f021"}.fa.fa-list-alt{font-family:"Font Awesome 6 Free";font-weight:400;--fa:"\f022"}.fa.fa-dedent{--fa:"\f03b"}.fa.fa-video-camera{--fa:"\f03d"}.fa.fa-picture-o{--fa:"\f03e"}.fa.fa-photo,.fa.fa-picture-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-photo{--fa:"\f03e"}.fa.fa-image{font-family:"Font Awesome 6 Free";font-weight:400;--fa:"\f03e"}.fa.fa-map-marker{--fa:"\f3c5"}.fa.fa-pencil-square-o{--fa:"\f044"}.fa.fa-edit,.fa.fa-pencil-square-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-edit{--fa:"\f044"}.fa.fa-share-square-o{--fa:"\f14d"}.fa.fa-check-square-o{font-family:"Font Awesome 6 Free";font-weight:400;--fa:"\f14a"}.fa.fa-arrows{--fa:"\f0b2"}.fa.fa-times-circle-o{--fa:"\f057"}.fa.fa-check-circle-o,.fa.fa-times-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-check-circle-o{--fa:"\f058"}.fa.fa-mail-forward{--fa:"\f064"}.fa.fa-expand{--fa:"\f424"}.fa.fa-compress{--fa:"\f422"}.fa.fa-eye,.fa.fa-eye-slash{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-warning{--fa:"\f071"}.fa.fa-calendar{--fa:"\f073"}.fa.fa-arrows-v{--fa:"\f338"}.fa.fa-arrows-h{--fa:"\f337"}.fa.fa-bar-chart,.fa.fa-bar-chart-o{--fa:"\e0e3"}.fa.fa-twitter-square{--fa:"\f081"}.fa.fa-facebook-square,.fa.fa-twitter-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-facebook-square{--fa:"\f082"}.fa.fa-gears{--fa:"\f085"}.fa.fa-thumbs-o-up{--fa:"\f164"}.fa.fa-thumbs-o-down,.fa.fa-thumbs-o-up{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-thumbs-o-down{--fa:"\f165"}.fa.fa-heart-o{font-family:"Font Awesome 6 Free";font-weight:400;--fa:"\f004"}.fa.fa-sign-out{--fa:"\f2f5"}.fa.fa-linkedin-square{font-family:"Font Awesome 6 Brands";font-weight:400;--fa:"\f08c"}.fa.fa-thumb-tack{--fa:"\f08d"}.fa.fa-external-link{--fa:"\f35d"}.fa.fa-sign-in{--fa:"\f2f6"}.fa.fa-github-square{font-family:"Font Awesome 6 Brands";font-weight:400;--fa:"\f092"}.fa.fa-lemon-o{--fa:"\f094"}.fa.fa-lemon-o,.fa.fa-square-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-square-o{--fa:"\f0c8"}.fa.fa-bookmark-o{font-family:"Font Awesome 6 Free";font-weight:400;--fa:"\f02e"}.fa.fa-facebook,.fa.fa-twitter{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-facebook{--fa:"\f39e"}.fa.fa-facebook-f{--fa:"\f39e"}.fa.fa-facebook-f,.fa.fa-github{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-credit-card{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-feed{--fa:"\f09e"}.fa.fa-hdd-o{font-family:"Font Awesome 6 Free";font-weight:400;--fa:"\f0a0"}.fa.fa-hand-o-right{--fa:"\f0a4"}.fa.fa-hand-o-left,.fa.fa-hand-o-right{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-o-left{--fa:"\f0a5"}.fa.fa-hand-o-up{--fa:"\f0a6"}.fa.fa-hand-o-down,.fa.fa-hand-o-up{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-o-down{--fa:"\f0a7"}.fa.fa-globe{--fa:"\f57d"}.fa.fa-tasks{--fa:"\f828"}.fa.fa-arrows-alt{--fa:"\f31e"}.fa.fa-group{--fa:"\f0c0"}.fa.fa-chain{--fa:"\f0c1"}.fa.fa-cut{--fa:"\f0c4"}.fa.fa-files-o{--fa:"\f0c5"}.fa.fa-files-o,.fa.fa-floppy-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-floppy-o{--fa:"\f0c7"}.fa.fa-save{font-family:"Font Awesome 6 Free";font-weight:400;--fa:"\f0c7"}.fa.fa-navicon,.fa.fa-reorder{--fa:"\f0c9"}.fa.fa-magic{--fa:"\e2ca"}.fa.fa-pinterest,.fa.fa-pinterest-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-pinterest-square{--fa:"\f0d3"}.fa.fa-google-plus-square{--fa:"\f0d4"}.fa.fa-google-plus,.fa.fa-google-plus-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-google-plus{--fa:"\f0d5"}.fa.fa-money{--fa:"\f3d1"}.fa.fa-unsorted{--fa:"\f0dc"}.fa.fa-sort-desc{--fa:"\f0dd"}.fa.fa-sort-asc{--fa:"\f0de"}.fa.fa-linkedin{font-family:"Font Awesome 6 Brands";font-weight:400;--fa:"\f0e1"}.fa.fa-rotate-left{--fa:"\f0e2"}.fa.fa-legal{--fa:"\f0e3"}.fa.fa-dashboard,.fa.fa-tachometer{--fa:"\f625"}.fa.fa-comment-o{--fa:"\f075"}.fa.fa-comment-o,.fa.fa-comments-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-comments-o{--fa:"\f086"}.fa.fa-flash{--fa:"\f0e7"}.fa.fa-clipboard{--fa:"\f0ea"}.fa.fa-lightbulb-o{font-family:"Font Awesome 6 Free";font-weight:400;--fa:"\f0eb"}.fa.fa-exchange{--fa:"\f362"}.fa.fa-cloud-download{--fa:"\f0ed"}.fa.fa-cloud-upload{--fa:"\f0ee"}.fa.fa-bell-o{font-family:"Font Awesome 6 Free";font-weight:400;--fa:"\f0f3"}.fa.fa-cutlery{--fa:"\f2e7"}.fa.fa-file-text-o{--fa:"\f15c"}.fa.fa-building-o,.fa.fa-file-text-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-building-o{--fa:"\f1ad"}.fa.fa-hospital-o{font-family:"Font Awesome 6 Free";font-weight:400;--fa:"\f0f8"}.fa.fa-tablet{--fa:"\f3fa"}.fa.fa-mobile,.fa.fa-mobile-phone{--fa:"\f3cd"}.fa.fa-circle-o{font-family:"Font Awesome 6 Free";font-weight:400;--fa:"\f111"}.fa.fa-mail-reply{--fa:"\f3e5"}.fa.fa-github-alt{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-folder-o{--fa:"\f07b"}.fa.fa-folder-o,.fa.fa-folder-open-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-folder-open-o{--fa:"\f07c"}.fa.fa-smile-o{--fa:"\f118"}.fa.fa-frown-o,.fa.fa-smile-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-frown-o{--fa:"\f119"}.fa.fa-meh-o{--fa:"\f11a"}.fa.fa-keyboard-o,.fa.fa-meh-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-keyboard-o{--fa:"\f11c"}.fa.fa-flag-o{font-family:"Font Awesome 6 Free";font-weight:400;--fa:"\f024"}.fa.fa-mail-reply-all{--fa:"\f122"}.fa.fa-star-half-o{--fa:"\f5c0"}.fa.fa-star-half-empty,.fa.fa-star-half-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-star-half-empty{--fa:"\f5c0"}.fa.fa-star-half-full{font-family:"Font Awesome 6 Free";font-weight:400;--fa:"\f5c0"}.fa.fa-code-fork{--fa:"\f126"}.fa.fa-chain-broken,.fa.fa-unlink{--fa:"\f127"}.fa.fa-calendar-o{font-family:"Font Awesome 6 Free";font-weight:400;--fa:"\f133"}.fa.fa-css3,.fa.fa-html5,.fa.fa-maxcdn{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-unlock-alt{--fa:"\f09c"}.fa.fa-minus-square-o{font-family:"Font Awesome 6 Free";font-weight:400;--fa:"\f146"}.fa.fa-level-up{--fa:"\f3bf"}.fa.fa-level-down{--fa:"\f3be"}.fa.fa-pencil-square{--fa:"\f14b"}.fa.fa-external-link-square{--fa:"\f360"}.fa.fa-compass{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-caret-square-o-down{font-family:"Font Awesome 6 Free";font-weight:400;--fa:"\f150"}.fa.fa-toggle-down{font-family:"Font Awesome 6 Free";font-weight:400;--fa:"\f150"}.fa.fa-caret-square-o-up{font-family:"Font Awesome 6 Free";font-weight:400;--fa:"\f151"}.fa.fa-toggle-up{font-family:"Font Awesome 6 Free";font-weight:400;--fa:"\f151"}.fa.fa-caret-square-o-right{font-family:"Font Awesome 6 Free";font-weight:400;--fa:"\f152"}.fa.fa-toggle-right{font-family:"Font Awesome 6 Free";font-weight:400;--fa:"\f152"}.fa.fa-eur,.fa.fa-euro{--fa:"\f153"}.fa.fa-gbp{--fa:"\f154"}.fa.fa-dollar,.fa.fa-usd{--fa:"\24"}.fa.fa-inr,.fa.fa-rupee{--fa:"\e1bc"}.fa.fa-cny,.fa.fa-jpy,.fa.fa-rmb,.fa.fa-yen{--fa:"\f157"}.fa.fa-rouble,.fa.fa-rub,.fa.fa-ruble{--fa:"\f158"}.fa.fa-krw,.fa.fa-won{--fa:"\f159"}.fa.fa-bitcoin,.fa.fa-btc{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-bitcoin{--fa:"\f15a"}.fa.fa-file-text{--fa:"\f15c"}.fa.fa-sort-alpha-asc{--fa:"\f15d"}.fa.fa-sort-alpha-desc{--fa:"\f881"}.fa.fa-sort-amount-asc{--fa:"\f884"}.fa.fa-sort-amount-desc{--fa:"\f160"}.fa.fa-sort-numeric-asc{--fa:"\f162"}.fa.fa-sort-numeric-desc{--fa:"\f886"}.fa.fa-youtube-square{--fa:"\f431"}.fa.fa-xing,.fa.fa-xing-square,.fa.fa-youtube,.fa.fa-youtube-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-xing-square{--fa:"\f169"}.fa.fa-youtube-play{--fa:"\f167"}.fa.fa-adn,.fa.fa-bitbucket,.fa.fa-bitbucket-square,.fa.fa-dropbox,.fa.fa-flickr,.fa.fa-instagram,.fa.fa-stack-overflow,.fa.fa-youtube-play{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-bitbucket-square{--fa:"\f171"}.fa.fa-tumblr,.fa.fa-tumblr-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-tumblr-square{--fa:"\f174"}.fa.fa-long-arrow-down{--fa:"\f309"}.fa.fa-long-arrow-up{--fa:"\f30c"}.fa.fa-long-arrow-left{--fa:"\f30a"}.fa.fa-long-arrow-right{--fa:"\f30b"}.fa.fa-android,.fa.fa-apple,.fa.fa-dribbble,.fa.fa-foursquare,.fa.fa-gittip,.fa.fa-gratipay,.fa.fa-linux,.fa.fa-skype,.fa.fa-trello,.fa.fa-windows{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-gittip{--fa:"\f184"}.fa.fa-sun-o{--fa:"\f185"}.fa.fa-moon-o,.fa.fa-sun-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-moon-o{--fa:"\f186"}.fa.fa-pagelines,.fa.fa-renren,.fa.fa-stack-exchange,.fa.fa-vk,.fa.fa-weibo{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-arrow-circle-o-right{--fa:"\f35a"}.fa.fa-arrow-circle-o-left,.fa.fa-arrow-circle-o-right{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-arrow-circle-o-left{--fa:"\f359"}.fa.fa-caret-square-o-left{font-family:"Font Awesome 6 Free";font-weight:400;--fa:"\f191"}.fa.fa-toggle-left{--fa:"\f191"}.fa.fa-dot-circle-o,.fa.fa-toggle-left{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-dot-circle-o{--fa:"\f192"}.fa.fa-vimeo-square{font-family:"Font Awesome 6 Brands";font-weight:400;--fa:"\f194"}.fa.fa-try,.fa.fa-turkish-lira{--fa:"\e2bb"}.fa.fa-plus-square-o{font-family:"Font Awesome 6 Free";font-weight:400;--fa:"\f0fe"}.fa.fa-openid,.fa.fa-slack,.fa.fa-wordpress{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-bank,.fa.fa-institution{--fa:"\f19c"}.fa.fa-mortar-board{--fa:"\f19d"}.fa.fa-google,.fa.fa-reddit,.fa.fa-reddit-square,.fa.fa-yahoo{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-reddit-square{--fa:"\f1a2"}.fa.fa-behance,.fa.fa-behance-square,.fa.fa-delicious,.fa.fa-digg,.fa.fa-drupal,.fa.fa-joomla,.fa.fa-pied-piper-alt,.fa.fa-pied-piper-pp,.fa.fa-stumbleupon,.fa.fa-stumbleupon-circle{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-behance-square{--fa:"\f1b5"}.fa.fa-steam,.fa.fa-steam-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-steam-square{--fa:"\f1b7"}.fa.fa-automobile{--fa:"\f1b9"}.fa.fa-cab{--fa:"\f1ba"}.fa.fa-deviantart,.fa.fa-soundcloud,.fa.fa-spotify{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-file-pdf-o{--fa:"\f1c1"}.fa.fa-file-pdf-o,.fa.fa-file-word-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-word-o{--fa:"\f1c2"}.fa.fa-file-excel-o{--fa:"\f1c3"}.fa.fa-file-excel-o,.fa.fa-file-powerpoint-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-powerpoint-o{--fa:"\f1c4"}.fa.fa-file-image-o{--fa:"\f1c5"}.fa.fa-file-image-o,.fa.fa-file-photo-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-photo-o{--fa:"\f1c5"}.fa.fa-file-picture-o{--fa:"\f1c5"}.fa.fa-file-archive-o,.fa.fa-file-picture-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-archive-o{--fa:"\f1c6"}.fa.fa-file-zip-o{--fa:"\f1c6"}.fa.fa-file-audio-o,.fa.fa-file-zip-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-audio-o{--fa:"\f1c7"}.fa.fa-file-sound-o{--fa:"\f1c7"}.fa.fa-file-sound-o,.fa.fa-file-video-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-video-o{--fa:"\f1c8"}.fa.fa-file-movie-o{--fa:"\f1c8"}.fa.fa-file-code-o,.fa.fa-file-movie-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-code-o{--fa:"\f1c9"}.fa.fa-codepen,.fa.fa-jsfiddle,.fa.fa-vine{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-life-bouy,.fa.fa-life-buoy,.fa.fa-life-saver,.fa.fa-support{--fa:"\f1cd"}.fa.fa-circle-o-notch{--fa:"\f1ce"}.fa.fa-ra,.fa.fa-rebel{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-ra{--fa:"\f1d0"}.fa.fa-resistance{--fa:"\f1d0"}.fa.fa-empire,.fa.fa-ge,.fa.fa-resistance{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-ge{--fa:"\f1d1"}.fa.fa-git-square{--fa:"\f1d2"}.fa.fa-git,.fa.fa-git-square,.fa.fa-hacker-news,.fa.fa-y-combinator-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-y-combinator-square{--fa:"\f1d4"}.fa.fa-yc-square{--fa:"\f1d4"}.fa.fa-qq,.fa.fa-tencent-weibo,.fa.fa-wechat,.fa.fa-weixin,.fa.fa-yc-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-wechat{--fa:"\f1d7"}.fa.fa-send{--fa:"\f1d8"}.fa.fa-paper-plane-o{--fa:"\f1d8"}.fa.fa-paper-plane-o,.fa.fa-send-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-send-o{--fa:"\f1d8"}.fa.fa-circle-thin{font-family:"Font Awesome 6 Free";font-weight:400;--fa:"\f111"}.fa.fa-header{--fa:"\f1dc"}.fa.fa-futbol-o{--fa:"\f1e3"}.fa.fa-futbol-o,.fa.fa-soccer-ball-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-soccer-ball-o{--fa:"\f1e3"}.fa.fa-slideshare,.fa.fa-twitch,.fa.fa-yelp{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-newspaper-o{font-family:"Font Awesome 6 Free";font-weight:400;--fa:"\f1ea"}.fa.fa-cc-amex,.fa.fa-cc-discover,.fa.fa-cc-mastercard,.fa.fa-cc-paypal,.fa.fa-cc-stripe,.fa.fa-cc-visa,.fa.fa-google-wallet,.fa.fa-paypal{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-bell-slash-o{font-family:"Font Awesome 6 Free";font-weight:400;--fa:"\f1f6"}.fa.fa-trash{--fa:"\f2ed"}.fa.fa-copyright{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-eyedropper{--fa:"\f1fb"}.fa.fa-area-chart{--fa:"\f1fe"}.fa.fa-pie-chart{--fa:"\f200"}.fa.fa-line-chart{--fa:"\f201"}.fa.fa-lastfm,.fa.fa-lastfm-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-lastfm-square{--fa:"\f203"}.fa.fa-angellist,.fa.fa-ioxhost{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-cc{font-family:"Font Awesome 6 Free";font-weight:400;--fa:"\f20a"}.fa.fa-ils,.fa.fa-shekel,.fa.fa-sheqel{--fa:"\f20b"}.fa.fa-buysellads,.fa.fa-connectdevelop,.fa.fa-dashcube,.fa.fa-forumbee,.fa.fa-leanpub,.fa.fa-sellsy,.fa.fa-shirtsinbulk,.fa.fa-simplybuilt,.fa.fa-skyatlas{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-diamond{font-family:"Font Awesome 6 Free";font-weight:400;--fa:"\f3a5"}.fa.fa-intersex,.fa.fa-transgender{--fa:"\f224"}.fa.fa-transgender-alt{--fa:"\f225"}.fa.fa-facebook-official{--fa:"\f09a"}.fa.fa-facebook-official,.fa.fa-pinterest-p,.fa.fa-whatsapp{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-hotel{--fa:"\f236"}.fa.fa-medium,.fa.fa-viacoin,.fa.fa-y-combinator,.fa.fa-yc{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-yc{--fa:"\f23b"}.fa.fa-expeditedssl,.fa.fa-opencart,.fa.fa-optin-monster{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-battery,.fa.fa-battery-4{--fa:"\f240"}.fa.fa-battery-3{--fa:"\f241"}.fa.fa-battery-2{--fa:"\f242"}.fa.fa-battery-1{--fa:"\f243"}.fa.fa-battery-0{--fa:"\f244"}.fa.fa-object-group,.fa.fa-object-ungroup,.fa.fa-sticky-note-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-sticky-note-o{--fa:"\f249"}.fa.fa-cc-diners-club,.fa.fa-cc-jcb{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-clone{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hourglass-o{--fa:"\f254"}.fa.fa-hourglass-1{--fa:"\f251"}.fa.fa-hourglass-2{--fa:"\f252"}.fa.fa-hourglass-3{--fa:"\f253"}.fa.fa-hand-rock-o{--fa:"\f255"}.fa.fa-hand-grab-o,.fa.fa-hand-rock-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-grab-o{--fa:"\f255"}.fa.fa-hand-paper-o{--fa:"\f256"}.fa.fa-hand-paper-o,.fa.fa-hand-stop-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-stop-o{--fa:"\f256"}.fa.fa-hand-scissors-o{--fa:"\f257"}.fa.fa-hand-lizard-o,.fa.fa-hand-scissors-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-lizard-o{--fa:"\f258"}.fa.fa-hand-spock-o{--fa:"\f259"}.fa.fa-hand-pointer-o,.fa.fa-hand-spock-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-pointer-o{--fa:"\f25a"}.fa.fa-hand-peace-o{--fa:"\f25b"}.fa.fa-hand-peace-o,.fa.fa-registered{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-creative-commons,.fa.fa-gg,.fa.fa-gg-circle,.fa.fa-odnoklassniki,.fa.fa-odnoklassniki-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-odnoklassniki-square{--fa:"\f264"}.fa.fa-chrome,.fa.fa-firefox,.fa.fa-get-pocket,.fa.fa-internet-explorer,.fa.fa-opera,.fa.fa-safari,.fa.fa-wikipedia-w{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-television{--fa:"\f26c"}.fa.fa-500px,.fa.fa-amazon,.fa.fa-contao{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-calendar-plus-o{--fa:"\f271"}.fa.fa-calendar-minus-o,.fa.fa-calendar-plus-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-calendar-minus-o{--fa:"\f272"}.fa.fa-calendar-times-o{--fa:"\f273"}.fa.fa-calendar-check-o,.fa.fa-calendar-times-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-calendar-check-o{--fa:"\f274"}.fa.fa-map-o{font-family:"Font Awesome 6 Free";font-weight:400;--fa:"\f279"}.fa.fa-commenting{--fa:"\f4ad"}.fa.fa-commenting-o{font-family:"Font Awesome 6 Free";font-weight:400;--fa:"\f4ad"}.fa.fa-houzz,.fa.fa-vimeo{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-vimeo{--fa:"\f27d"}.fa.fa-black-tie,.fa.fa-edge,.fa.fa-fonticons,.fa.fa-reddit-alien{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-credit-card-alt{--fa:"\f09d"}.fa.fa-codiepie,.fa.fa-fort-awesome,.fa.fa-mixcloud,.fa.fa-modx,.fa.fa-product-hunt,.fa.fa-scribd,.fa.fa-usb{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-pause-circle-o{--fa:"\f28b"}.fa.fa-pause-circle-o,.fa.fa-stop-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-stop-circle-o{--fa:"\f28d"}.fa.fa-bluetooth,.fa.fa-bluetooth-b,.fa.fa-envira,.fa.fa-gitlab,.fa.fa-wheelchair-alt,.fa.fa-wpbeginner,.fa.fa-wpforms{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-wheelchair-alt{--fa:"\f368"}.fa.fa-question-circle-o{font-family:"Font Awesome 6 Free";font-weight:400;--fa:"\f059"}.fa.fa-volume-control-phone{--fa:"\f2a0"}.fa.fa-asl-interpreting{--fa:"\f2a3"}.fa.fa-deafness,.fa.fa-hard-of-hearing{--fa:"\f2a4"}.fa.fa-glide,.fa.fa-glide-g{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-signing{--fa:"\f2a7"}.fa.fa-viadeo,.fa.fa-viadeo-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-viadeo-square{--fa:"\f2aa"}.fa.fa-snapchat,.fa.fa-snapchat-ghost{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-snapchat-ghost{--fa:"\f2ab"}.fa.fa-snapchat-square{--fa:"\f2ad"}.fa.fa-first-order,.fa.fa-google-plus-official,.fa.fa-pied-piper,.fa.fa-snapchat-square,.fa.fa-themeisle,.fa.fa-yoast{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-google-plus-official{--fa:"\f2b3"}.fa.fa-google-plus-circle{--fa:"\f2b3"}.fa.fa-fa,.fa.fa-font-awesome,.fa.fa-google-plus-circle{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-fa{--fa:"\f2b4"}.fa.fa-handshake-o{--fa:"\f2b5"}.fa.fa-envelope-open-o,.fa.fa-handshake-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-envelope-open-o{--fa:"\f2b6"}.fa.fa-linode{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-address-book-o{font-family:"Font Awesome 6 Free";font-weight:400;--fa:"\f2b9"}.fa.fa-vcard{--fa:"\f2bb"}.fa.fa-address-card-o{--fa:"\f2bb"}.fa.fa-address-card-o,.fa.fa-vcard-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-vcard-o{--fa:"\f2bb"}.fa.fa-user-circle-o{--fa:"\f2bd"}.fa.fa-user-circle-o,.fa.fa-user-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-user-o{--fa:"\f007"}.fa.fa-id-badge{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-drivers-license{--fa:"\f2c2"}.fa.fa-id-card-o{--fa:"\f2c2"}.fa.fa-drivers-license-o,.fa.fa-id-card-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-drivers-license-o{--fa:"\f2c2"}.fa.fa-free-code-camp,.fa.fa-quora,.fa.fa-telegram{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-thermometer,.fa.fa-thermometer-4{--fa:"\f2c7"}.fa.fa-thermometer-3{--fa:"\f2c8"}.fa.fa-thermometer-2{--fa:"\f2c9"}.fa.fa-thermometer-1{--fa:"\f2ca"}.fa.fa-thermometer-0{--fa:"\f2cb"}.fa.fa-bathtub,.fa.fa-s15{--fa:"\f2cd"}.fa.fa-window-maximize,.fa.fa-window-restore{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-times-rectangle{--fa:"\f410"}.fa.fa-window-close-o{--fa:"\f410"}.fa.fa-times-rectangle-o,.fa.fa-window-close-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-times-rectangle-o{--fa:"\f410"}.fa.fa-bandcamp,.fa.fa-eercast,.fa.fa-etsy,.fa.fa-grav,.fa.fa-imdb,.fa.fa-ravelry{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-eercast{--fa:"\f2da"}.fa.fa-snowflake-o{font-family:"Font Awesome 6 Free";font-weight:400;--fa:"\f2dc"}.fa.fa-meetup,.fa.fa-superpowers,.fa.fa-wpexplorer{font-family:"Font Awesome 6 Brands";font-weight:400} \ No newline at end of file diff --git a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/v5-font-face.css b/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/v5-font-face.css deleted file mode 100644 index 3c603d6..0000000 --- a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/v5-font-face.css +++ /dev/null @@ -1,22 +0,0 @@ -/*! - * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - * Copyright 2024 Fonticons, Inc. - */ -@font-face { - font-family: 'Font Awesome 5 Brands'; - font-display: block; - font-weight: 400; - src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); } - -@font-face { - font-family: 'Font Awesome 5 Free'; - font-display: block; - font-weight: 900; - src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); } - -@font-face { - font-family: 'Font Awesome 5 Free'; - font-display: block; - font-weight: 400; - src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); } diff --git a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/v5-font-face.min.css b/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/v5-font-face.min.css deleted file mode 100644 index ada52ac..0000000 --- a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/css/v5-font-face.min.css +++ /dev/null @@ -1,6 +0,0 @@ -/*! - * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - * Copyright 2024 Fonticons, Inc. - */ -@font-face{font-family:"Font Awesome 5 Brands";font-display:block;font-weight:400;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:900;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:400;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")} \ No newline at end of file diff --git a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/js/all.js b/XNSimHtml/node_modules/@fortawesome/fontawesome-free/js/all.js deleted file mode 100644 index 19f64d8..0000000 --- a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/js/all.js +++ /dev/null @@ -1,6200 +0,0 @@ -/*! - * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - * Copyright 2024 Fonticons, Inc. - */ -(function () { - 'use strict'; - - let _WINDOW = {}; - let _DOCUMENT = {}; - try { - if (typeof window !== 'undefined') _WINDOW = window; - if (typeof document !== 'undefined') _DOCUMENT = document; - } catch (e) {} - const { - userAgent = '' - } = _WINDOW.navigator || {}; - const WINDOW = _WINDOW; - const DOCUMENT = _DOCUMENT; - const IS_BROWSER = !!WINDOW.document; - const IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function'; - const IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/'); - - function _defineProperty(e, r, t) { - return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { - value: t, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[r] = t, e; - } - function ownKeys(e, r) { - var t = Object.keys(e); - if (Object.getOwnPropertySymbols) { - var o = Object.getOwnPropertySymbols(e); - r && (o = o.filter(function (r) { - return Object.getOwnPropertyDescriptor(e, r).enumerable; - })), t.push.apply(t, o); - } - return t; - } - function _objectSpread2(e) { - for (var r = 1; r < arguments.length; r++) { - var t = null != arguments[r] ? arguments[r] : {}; - r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { - _defineProperty(e, r, t[r]); - }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { - Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); - }); - } - return e; - } - function _toPrimitive(t, r) { - if ("object" != typeof t || !t) return t; - var e = t[Symbol.toPrimitive]; - if (void 0 !== e) { - var i = e.call(t, r || "default"); - if ("object" != typeof i) return i; - throw new TypeError("@@toPrimitive must return a primitive value."); - } - return ("string" === r ? String : Number)(t); - } - function _toPropertyKey(t) { - var i = _toPrimitive(t, "string"); - return "symbol" == typeof i ? i : i + ""; - } - - var S = { - classic: { - fa: "solid", - fas: "solid", - "fa-solid": "solid", - far: "regular", - "fa-regular": "regular", - fal: "light", - "fa-light": "light", - fat: "thin", - "fa-thin": "thin", - fab: "brands", - "fa-brands": "brands" - }, - duotone: { - fa: "solid", - fad: "solid", - "fa-solid": "solid", - "fa-duotone": "solid", - fadr: "regular", - "fa-regular": "regular", - fadl: "light", - "fa-light": "light", - fadt: "thin", - "fa-thin": "thin" - }, - sharp: { - fa: "solid", - fass: "solid", - "fa-solid": "solid", - fasr: "regular", - "fa-regular": "regular", - fasl: "light", - "fa-light": "light", - fast: "thin", - "fa-thin": "thin" - }, - "sharp-duotone": { - fa: "solid", - fasds: "solid", - "fa-solid": "solid", - fasdr: "regular", - "fa-regular": "regular", - fasdl: "light", - "fa-light": "light", - fasdt: "thin", - "fa-thin": "thin" - } - }; - var s = "classic"; - var G = { - classic: { - 900: "fas", - 400: "far", - normal: "far", - 300: "fal", - 100: "fat" - }, - duotone: { - 900: "fad", - 400: "fadr", - 300: "fadl", - 100: "fadt" - }, - sharp: { - 900: "fass", - 400: "fasr", - 300: "fasl", - 100: "fast" - }, - "sharp-duotone": { - 900: "fasds", - 400: "fasdr", - 300: "fasdl", - 100: "fasdt" - } - }; - var xt = { - classic: { - solid: "fas", - regular: "far", - light: "fal", - thin: "fat", - brands: "fab" - }, - duotone: { - solid: "fad", - regular: "fadr", - light: "fadl", - thin: "fadt" - }, - sharp: { - solid: "fass", - regular: "fasr", - light: "fasl", - thin: "fast" - }, - "sharp-duotone": { - solid: "fasds", - regular: "fasdr", - light: "fasdl", - thin: "fasdt" - } - }; - var St = { - kit: { - fak: "kit", - "fa-kit": "kit" - }, - "kit-duotone": { - fakd: "kit-duotone", - "fa-kit-duotone": "kit-duotone" - } - }; - var Ct = { - kit: { - "fa-kit": "fak" - }, - "kit-duotone": { - "fa-kit-duotone": "fakd" - } - }; - var Wt = { - kit: { - fak: "fa-kit" - }, - "kit-duotone": { - fakd: "fa-kit-duotone" - } - }; - var Et = { - kit: { - kit: "fak" - }, - "kit-duotone": { - "kit-duotone": "fakd" - } - }; - - var ua = { - classic: { - "fa-brands": "fab", - "fa-duotone": "fad", - "fa-light": "fal", - "fa-regular": "far", - "fa-solid": "fas", - "fa-thin": "fat" - }, - duotone: { - "fa-regular": "fadr", - "fa-light": "fadl", - "fa-thin": "fadt" - }, - sharp: { - "fa-solid": "fass", - "fa-regular": "fasr", - "fa-light": "fasl", - "fa-thin": "fast" - }, - "sharp-duotone": { - "fa-solid": "fasds", - "fa-regular": "fasdr", - "fa-light": "fasdl", - "fa-thin": "fasdt" - } - }, - ga = { - classic: { - fab: "fa-brands", - fad: "fa-duotone", - fal: "fa-light", - far: "fa-regular", - fas: "fa-solid", - fat: "fa-thin" - }, - duotone: { - fadr: "fa-regular", - fadl: "fa-light", - fadt: "fa-thin" - }, - sharp: { - fass: "fa-solid", - fasr: "fa-regular", - fasl: "fa-light", - fast: "fa-thin" - }, - "sharp-duotone": { - fasds: "fa-solid", - fasdr: "fa-regular", - fasdl: "fa-light", - fasdt: "fa-thin" - } - }; - - const NAMESPACE_IDENTIFIER = '___FONT_AWESOME___'; - const PRODUCTION = (() => { - try { - return "production" === 'production'; - } catch (e$$1) { - return false; - } - })(); - function familyProxy(obj) { - // Defaults to the classic family if family is not available - return new Proxy(obj, { - get(target, prop) { - return prop in target ? target[prop] : target[s]; - } - }); - } - const _PREFIX_TO_STYLE = _objectSpread2({}, S); - - // We changed FACSSClassesToStyleId in the icons repo to be canonical and as such, "classic" family does not have any - // duotone styles. But we do still need duotone in _PREFIX_TO_STYLE below, so we are manually adding - // {'fa-duotone': 'duotone'} - _PREFIX_TO_STYLE[s] = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, { - 'fa-duotone': 'duotone' - }), S[s]), St['kit']), St['kit-duotone']); - const PREFIX_TO_STYLE = familyProxy(_PREFIX_TO_STYLE); - const _STYLE_TO_PREFIX = _objectSpread2({}, xt); - - // We changed FAStyleIdToShortPrefixId in the icons repo to be canonical and as such, "classic" family does not have any - // duotone styles. But we do still need duotone in _STYLE_TO_PREFIX below, so we are manually adding {duotone: 'fad'} - _STYLE_TO_PREFIX[s] = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, { - duotone: 'fad' - }), _STYLE_TO_PREFIX[s]), Et['kit']), Et['kit-duotone']); - const STYLE_TO_PREFIX = familyProxy(_STYLE_TO_PREFIX); - const _PREFIX_TO_LONG_STYLE = _objectSpread2({}, ga); - _PREFIX_TO_LONG_STYLE[s] = _objectSpread2(_objectSpread2({}, _PREFIX_TO_LONG_STYLE[s]), Wt['kit']); - const PREFIX_TO_LONG_STYLE = familyProxy(_PREFIX_TO_LONG_STYLE); - const _LONG_STYLE_TO_PREFIX = _objectSpread2({}, ua); - _LONG_STYLE_TO_PREFIX[s] = _objectSpread2(_objectSpread2({}, _LONG_STYLE_TO_PREFIX[s]), Ct['kit']); - const LONG_STYLE_TO_PREFIX = familyProxy(_LONG_STYLE_TO_PREFIX); - const _FONT_WEIGHT_TO_PREFIX = _objectSpread2({}, G); - const FONT_WEIGHT_TO_PREFIX = familyProxy(_FONT_WEIGHT_TO_PREFIX); - - function bunker(fn) { - try { - for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - fn(...args); - } catch (e) { - if (!PRODUCTION) { - throw e; - } - } - } - - const w = WINDOW || {}; - if (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {}; - if (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {}; - if (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {}; - if (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = []; - var namespace = w[NAMESPACE_IDENTIFIER]; - - function normalizeIcons(icons) { - return Object.keys(icons).reduce((acc, iconName) => { - const icon = icons[iconName]; - const expanded = !!icon.icon; - if (expanded) { - acc[icon.iconName] = icon.icon; - } else { - acc[iconName] = icon; - } - return acc; - }, {}); - } - function defineIcons(prefix, icons) { - let params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; - const { - skipHooks = false - } = params; - const normalized = normalizeIcons(icons); - if (typeof namespace.hooks.addPack === 'function' && !skipHooks) { - namespace.hooks.addPack(prefix, normalizeIcons(icons)); - } else { - namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), normalized); - } - - /** - * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction - * of new styles we needed to differentiate between them. Prefix `fa` is now an alias - * for `fas` so we'll ease the upgrade process for our users by automatically defining - * this as well. - */ - if (prefix === 'fas') { - defineIcons('fa', icons); - } - } - - var icons = { - "monero": [496, 512, [], "f3d0", "M352 384h108.4C417 455.9 338.1 504 248 504S79 455.9 35.6 384H144V256.2L248 361l104-105v128zM88 336V128l159.4 159.4L408 128v208h74.8c8.5-25.1 13.2-52 13.2-80C496 119 385 8 248 8S0 119 0 256c0 28 4.6 54.9 13.2 80H88z"], - "hooli": [640, 512, [], "f427", "M144.5 352l38.3.8c-13.2-4.6-26-10.2-38.3-16.8zm57.7-5.3v5.3l-19.4.8c36.5 12.5 69.9 14.2 94.7 7.2-19.9.2-45.8-2.6-75.3-13.3zm408.9-115.2c15.9 0 28.9-12.9 28.9-28.9s-12.9-24.5-28.9-24.5c-15.9 0-28.9 8.6-28.9 24.5s12.9 28.9 28.9 28.9zm-29 120.5H640V241.5h-57.9zm-73.7 0h57.9V156.7L508.4 184zm-31-119.4c-18.2-18.2-50.4-17.1-50.4-17.1s-32.3-1.1-50.4 17.1c-18.2 18.2-16.8 33.9-16.8 52.6s-1.4 34.3 16.8 52.5 50.4 17.1 50.4 17.1 32.3 1.1 50.4-17.1c18.2-18.2 16.8-33.8 16.8-52.5-.1-18.8 1.3-34.5-16.8-52.6zm-39.8 71.9c0 3.6-1.8 12.5-10.7 12.5s-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9s10.7 2.1 10.7 10.9zm-106.2-71.9c-18.2-18.2-50.4-17.1-50.4-17.1s-32.2-1.1-50.4 17.1c-1.9 1.9-3.7 3.9-5.3 6-38.2-29.6-72.5-46.5-102.1-61.1v-20.7l-22.5 10.6c-54.4-22.1-89-18.2-97.3.1 0 0-24.9 32.8 61.8 110.8V352h57.9v-28.6c-6.5-4.2-13-8.7-19.4-13.6-14.8-11.2-27.4-21.6-38.4-31.4v-31c13.1 14.7 30.5 31.4 53.4 50.3l4.5 3.6v-29.8c0-6.9 1.7-18.2 10.8-18.2s10.6 6.9 10.6 15V317c18 12.2 37.3 22.1 57.7 29.6v-93.9c0-18.7-13.4-37.4-40.6-37.4-15.8-.1-30.5 8.2-38.5 21.9v-54.3c41.9 20.9 83.9 46.5 99.9 58.3-10.2 14.6-9.3 28.1-9.3 43.7 0 18.7-1.4 34.3 16.8 52.5s50.4 17.1 50.4 17.1 32.3 1.1 50.4-17.1c18.2-18.2 16.7-33.8 16.7-52.5 0-18.5 1.5-34.2-16.7-52.3zM65.2 184v63.3c-48.7-54.5-38.9-76-35.2-79.1 13.5-11.4 37.5-8 64.4 2.1zm226.5 120.5c0 3.6-1.8 12.5-10.7 12.5s-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9s10.7 2.1 10.7 10.9z"], - "yelp": [384, 512, [], "f1e9", "M42.9 240.32l99.62 48.61c19.2 9.4 16.2 37.51-4.5 42.71L30.5 358.45a22.79 22.79 0 0 1-28.21-19.6 197.16 197.16 0 0 1 9-85.32 22.8 22.8 0 0 1 31.61-13.21zm44 239.25a199.45 199.45 0 0 0 79.42 32.11A22.78 22.78 0 0 0 192.94 490l3.9-110.82c.7-21.3-25.5-31.91-39.81-16.1l-74.21 82.4a22.82 22.82 0 0 0 4.09 34.09zm145.34-109.92l58.81 94a22.93 22.93 0 0 0 34 5.5 198.36 198.36 0 0 0 52.71-67.61A23 23 0 0 0 364.17 370l-105.42-34.26c-20.31-6.5-37.81 15.8-26.51 33.91zm148.33-132.23a197.44 197.44 0 0 0-50.41-69.31 22.85 22.85 0 0 0-34 4.4l-62 91.92c-11.9 17.7 4.7 40.61 25.2 34.71L366 268.63a23 23 0 0 0 14.61-31.21zM62.11 30.18a22.86 22.86 0 0 0-9.9 32l104.12 180.44c11.7 20.2 42.61 11.9 42.61-11.4V22.88a22.67 22.67 0 0 0-24.5-22.8 320.37 320.37 0 0 0-112.33 30.1z"], - "cc-visa": [576, 512, [], "f1f0", "M470.1 231.3s7.6 37.2 9.3 45H446c3.3-8.9 16-43.5 16-43.5-.2.3 3.3-9.1 5.3-14.9l2.8 13.4zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM152.5 331.2L215.7 176h-42.5l-39.3 106-4.3-21.5-14-71.4c-2.3-9.9-9.4-12.7-18.2-13.1H32.7l-.7 3.1c15.8 4 29.9 9.8 42.2 17.1l35.8 135h42.5zm94.4.2L272.1 176h-40.2l-25.1 155.4h40.1zm139.9-50.8c.2-17.7-10.6-31.2-33.7-42.3-14.1-7.1-22.7-11.9-22.7-19.2.2-6.6 7.3-13.4 23.1-13.4 13.1-.3 22.7 2.8 29.9 5.9l3.6 1.7 5.5-33.6c-7.9-3.1-20.5-6.6-36-6.6-39.7 0-67.6 21.2-67.8 51.4-.3 22.3 20 34.7 35.2 42.2 15.5 7.6 20.8 12.6 20.8 19.3-.2 10.4-12.6 15.2-24.1 15.2-16 0-24.6-2.5-37.7-8.3l-5.3-2.5-5.6 34.9c9.4 4.3 26.8 8.1 44.8 8.3 42.2.1 69.7-20.8 70-53zM528 331.4L495.6 176h-31.1c-9.6 0-16.9 2.8-21 12.9l-59.7 142.5H426s6.9-19.2 8.4-23.3H486c1.2 5.5 4.8 23.3 4.8 23.3H528z"], - "lastfm": [512, 512, [], "f202", "M225.8 367.1l-18.8-51s-30.5 34-76.2 34c-40.5 0-69.2-35.2-69.2-91.5 0-72.1 36.4-97.9 72.1-97.9 66.5 0 74.8 53.3 100.9 134.9 18.8 56.9 54 102.6 155.4 102.6 72.7 0 122-22.3 122-80.9 0-72.9-62.7-80.6-115-92.1-25.8-5.9-33.4-16.4-33.4-34 0-19.9 15.8-31.7 41.6-31.7 28.2 0 43.4 10.6 45.7 35.8l58.6-7c-4.7-52.8-41.1-74.5-100.9-74.5-52.8 0-104.4 19.9-104.4 83.9 0 39.9 19.4 65.1 68 76.8 44.9 10.6 79.8 13.8 79.8 45.7 0 21.7-21.1 30.5-61 30.5-59.2 0-83.9-31.1-97.9-73.9-32-96.8-43.6-163-161.3-163C45.7 113.8 0 168.3 0 261c0 89.1 45.7 137.2 127.9 137.2 66.2 0 97.9-31.1 97.9-31.1z"], - "shopware": [512, 512, [], "f5b5", "M403.5 455.41A246.17 246.17 0 0 1 256 504C118.81 504 8 393 8 256 8 118.81 119 8 256 8a247.39 247.39 0 0 1 165.7 63.5 3.57 3.57 0 0 1-2.86 6.18A418.62 418.62 0 0 0 362.13 74c-129.36 0-222.4 53.47-222.4 155.35 0 109 92.13 145.88 176.83 178.73 33.64 13 65.4 25.36 87 41.59a3.58 3.58 0 0 1 0 5.72zM503 233.09a3.64 3.64 0 0 0-1.27-2.44c-51.76-43-93.62-60.48-144.48-60.48-84.13 0-80.25 52.17-80.25 53.63 0 42.6 52.06 62 112.34 84.49 31.07 11.59 63.19 23.57 92.68 39.93a3.57 3.57 0 0 0 5-1.82A249 249 0 0 0 503 233.09z"], - "creative-commons-nc": [496, 512, [], "f4e8", "M247.6 8C387.4 8 496 115.9 496 256c0 147.2-118.5 248-248.4 248C113.1 504 0 393.2 0 256 0 123.1 104.7 8 247.6 8zM55.8 189.1c-7.4 20.4-11.1 42.7-11.1 66.9 0 110.9 92.1 202.4 203.7 202.4 122.4 0 177.2-101.8 178.5-104.1l-93.4-41.6c-7.7 37.1-41.2 53-68.2 55.4v38.1h-28.8V368c-27.5-.3-52.6-10.2-75.3-29.7l34.1-34.5c31.7 29.4 86.4 31.8 86.4-2.2 0-6.2-2.2-11.2-6.6-15.1-14.2-6-1.8-.1-219.3-97.4zM248.4 52.3c-38.4 0-112.4 8.7-170.5 93l94.8 42.5c10-31.3 40.4-42.9 63.8-44.3v-38.1h28.8v38.1c22.7 1.2 43.4 8.9 62 23L295 199.7c-42.7-29.9-83.5-8-70 11.1 53.4 24.1 43.8 19.8 93 41.6l127.1 56.7c4.1-17.4 6.2-35.1 6.2-53.1 0-57-19.8-105-59.3-143.9-39.3-39.9-87.2-59.8-143.6-59.8z"], - "aws": [640, 512, [], "f375", "M180.41 203.01c-.72 22.65 10.6 32.68 10.88 39.05a8.164 8.164 0 0 1-4.1 6.27l-12.8 8.96a10.66 10.66 0 0 1-5.63 1.92c-.43-.02-8.19 1.83-20.48-25.61a78.608 78.608 0 0 1-62.61 29.45c-16.28.89-60.4-9.24-58.13-56.21-1.59-38.28 34.06-62.06 70.93-60.05 7.1.02 21.6.37 46.99 6.27v-15.62c2.69-26.46-14.7-46.99-44.81-43.91-2.4.01-19.4-.5-45.84 10.11-7.36 3.38-8.3 2.82-10.75 2.82-7.41 0-4.36-21.48-2.94-24.2 5.21-6.4 35.86-18.35 65.94-18.18a76.857 76.857 0 0 1 55.69 17.28 70.285 70.285 0 0 1 17.67 52.36l-.01 69.29zM93.99 235.4c32.43-.47 46.16-19.97 49.29-30.47 2.46-10.05 2.05-16.41 2.05-27.4-9.67-2.32-23.59-4.85-39.56-4.87-15.15-1.14-42.82 5.63-41.74 32.26-1.24 16.79 11.12 31.4 29.96 30.48zm170.92 23.05c-7.86.72-11.52-4.86-12.68-10.37l-49.8-164.65c-.97-2.78-1.61-5.65-1.92-8.58a4.61 4.61 0 0 1 3.86-5.25c.24-.04-2.13 0 22.25 0 8.78-.88 11.64 6.03 12.55 10.37l35.72 140.83 33.16-140.83c.53-3.22 2.94-11.07 12.8-10.24h17.16c2.17-.18 11.11-.5 12.68 10.37l33.42 142.63L420.98 80.1c.48-2.18 2.72-11.37 12.68-10.37h19.72c.85-.13 6.15-.81 5.25 8.58-.43 1.85 3.41-10.66-52.75 169.9-1.15 5.51-4.82 11.09-12.68 10.37h-18.69c-10.94 1.15-12.51-9.66-12.68-10.75L328.67 110.7l-32.78 136.99c-.16 1.09-1.73 11.9-12.68 10.75h-18.3zm273.48 5.63c-5.88.01-33.92-.3-57.36-12.29a12.802 12.802 0 0 1-7.81-11.91v-10.75c0-8.45 6.2-6.9 8.83-5.89 10.04 4.06 16.48 7.14 28.81 9.6 36.65 7.53 52.77-2.3 56.72-4.48 13.15-7.81 14.19-25.68 5.25-34.95-10.48-8.79-15.48-9.12-53.13-21-4.64-1.29-43.7-13.61-43.79-52.36-.61-28.24 25.05-56.18 69.52-55.95 12.67-.01 46.43 4.13 55.57 15.62 1.35 2.09 2.02 4.55 1.92 7.04v10.11c0 4.44-1.62 6.66-4.87 6.66-7.71-.86-21.39-11.17-49.16-10.75-6.89-.36-39.89.91-38.41 24.97-.43 18.96 26.61 26.07 29.7 26.89 36.46 10.97 48.65 12.79 63.12 29.58 17.14 22.25 7.9 48.3 4.35 55.44-19.08 37.49-68.42 34.44-69.26 34.42zm40.2 104.86c-70.03 51.72-171.69 79.25-258.49 79.25A469.127 469.127 0 0 1 2.83 327.46c-6.53-5.89-.77-13.96 7.17-9.47a637.37 637.37 0 0 0 316.88 84.12 630.22 630.22 0 0 0 241.59-49.55c11.78-5 21.77 7.8 10.12 16.38zm29.19-33.29c-8.96-11.52-59.28-5.38-81.81-2.69-6.79.77-7.94-5.12-1.79-9.47 40.07-28.17 105.88-20.1 113.44-10.63 7.55 9.47-2.05 75.41-39.56 106.91-5.76 4.87-11.27 2.3-8.71-4.1 8.44-21.25 27.39-68.49 18.43-80.02z"], - "redhat": [512, 512, [], "f7bc", "M341.52 285.56c33.65 0 82.34-6.94 82.34-47 .22-6.74.86-1.82-20.88-96.24-4.62-19.15-8.68-27.84-42.31-44.65-26.09-13.34-82.92-35.37-99.73-35.37-15.66 0-20.2 20.17-38.87 20.17-18 0-31.31-15.06-48.12-15.06-16.14 0-26.66 11-34.78 33.62-27.5 77.55-26.28 74.27-26.12 78.27 0 24.8 97.64 106.11 228.47 106.11M429 254.84c4.65 22 4.65 24.35 4.65 27.25 0 37.66-42.33 58.56-98 58.56-125.74.08-235.91-73.65-235.91-122.33a49.55 49.55 0 0 1 4.06-19.72C58.56 200.86 0 208.93 0 260.63c0 84.67 200.63 189 359.49 189 121.79 0 152.51-55.08 152.51-98.58 0-34.21-29.59-73.05-82.93-96.24"], - "yoast": [448, 512, [], "f2b1", "M91.3 76h186l-7 18.9h-179c-39.7 0-71.9 31.6-71.9 70.3v205.4c0 35.4 24.9 70.3 84 70.3V460H91.3C41.2 460 0 419.8 0 370.5V165.2C0 115.9 40.7 76 91.3 76zm229.1-56h66.5C243.1 398.1 241.2 418.9 202.2 459.3c-20.8 21.6-49.3 31.7-78.3 32.7v-51.1c49.2-7.7 64.6-49.9 64.6-75.3 0-20.1.6-12.6-82.1-223.2h61.4L218.2 299 320.4 20zM448 161.5V460H234c6.6-9.6 10.7-16.3 12.1-19.4h182.5V161.5c0-32.5-17.1-51.9-48.2-62.9l6.7-17.6c41.7 13.6 60.9 43.1 60.9 80.5z"], - "cloudflare": [640, 512, [], "e07d", "M407.906,319.913l-230.8-2.928a4.58,4.58,0,0,1-3.632-1.926,4.648,4.648,0,0,1-.494-4.147,6.143,6.143,0,0,1,5.361-4.076L411.281,303.9c27.631-1.26,57.546-23.574,68.022-50.784l13.286-34.542a7.944,7.944,0,0,0,.524-2.936,7.735,7.735,0,0,0-.164-1.631A151.91,151.91,0,0,0,201.257,198.4,68.12,68.12,0,0,0,94.2,269.59C41.924,271.106,0,313.728,0,366.12a96.054,96.054,0,0,0,1.029,13.958,4.508,4.508,0,0,0,4.445,3.871l426.1.051c.043,0,.08-.019.122-.02a5.606,5.606,0,0,0,5.271-4l3.273-11.265c3.9-13.4,2.448-25.8-4.1-34.9C430.124,325.423,420.09,320.487,407.906,319.913ZM513.856,221.1c-2.141,0-4.271.062-6.391.164a3.771,3.771,0,0,0-3.324,2.653l-9.077,31.193c-3.9,13.4-2.449,25.786,4.1,34.89,6.02,8.4,16.054,13.323,28.238,13.9l49.2,2.939a4.491,4.491,0,0,1,3.51,1.894,4.64,4.64,0,0,1,.514,4.169,6.153,6.153,0,0,1-5.351,4.075l-51.125,2.939c-27.754,1.27-57.669,23.574-68.145,50.784l-3.695,9.606a2.716,2.716,0,0,0,2.427,3.68c.046,0,.088.017.136.017h175.91a4.69,4.69,0,0,0,4.539-3.37,124.807,124.807,0,0,0,4.682-34C640,277.3,583.524,221.1,513.856,221.1Z"], - "ups": [384, 512, [], "f7e0", "M103.2 303c-5.2 3.6-32.6 13.1-32.6-19V180H37.9v102.6c0 74.9 80.2 51.1 97.9 39V180h-32.6zM4 74.82v220.9c0 103.7 74.9 135.2 187.7 184.1 112.4-48.9 187.7-80.2 187.7-184.1V74.82c-116.3-61.6-281.8-49.6-375.4 0zm358.1 220.9c0 86.6-53.2 113.6-170.4 165.3-117.5-51.8-170.5-78.7-170.5-165.3v-126.4c102.3-93.8 231.6-100 340.9-89.8zm-209.6-107.4v212.8h32.7v-68.7c24.4 7.3 71.7-2.6 71.7-78.5 0-97.4-80.7-80.92-104.4-65.6zm32.7 117.3v-100.3c8.4-4.2 38.4-12.7 38.4 49.3 0 67.9-36.4 51.8-38.4 51zm79.1-86.4c.1 47.3 51.6 42.5 52.2 70.4.6 23.5-30.4 23-50.8 4.9v30.1c36.2 21.5 81.9 8.1 83.2-33.5 1.7-51.5-54.1-46.6-53.4-73.2.6-20.3 30.6-20.5 48.5-2.2v-28.4c-28.5-22-79.9-9.2-79.7 31.9z"], - "pixiv": [448, 512, [], "e640", "M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm171.5 84c41 0 76.3 12.9 101.4 35.2l0 0c25.2 22.2 39.8 54.1 39.8 88.8c.1 35.3-16.6 66.3-42.4 87c-25.9 20.8-60.6 32.4-98.8 32.4c-43.5 0-83.8-16.1-83.8-16.1v51.8c7.4 2.2 19.7 7 11.9 14.8H104.8c-7.7-7.8 3.6-12.4 12.1-14.8V175.5C97.1 190.9 87 204.3 81.8 214.2c6 19.4-5.3 18.5-5.3 18.5L56 199.7s72.7-83.7 179.5-83.7zm-3.6 222.9c30 0 56-11.3 73.9-29.2c17.9-18.1 27.9-41.6 28-70.2c-.1-29.3-9.5-54.6-26.7-73.6c-17.2-18.9-42.7-31.3-75.2-31.4c-26.7-.1-59.8 9-80.2 23.7V323.1c18.6 9.3 46.8 15.9 80.2 15.8z"], - "wpexplorer": [512, 512, [], "f2de", "M512 256c0 141.2-114.7 256-256 256C114.8 512 0 397.3 0 256S114.7 0 256 0s256 114.7 256 256zm-32 0c0-123.2-100.3-224-224-224C132.5 32 32 132.5 32 256s100.5 224 224 224 224-100.5 224-224zM160.9 124.6l86.9 37.1-37.1 86.9-86.9-37.1 37.1-86.9zm110 169.1l46.6 94h-14.6l-50-100-48.9 100h-14l51.1-106.9-22.3-9.4 6-14 68.6 29.1-6 14.3-16.5-7.1zm-11.8-116.3l68.6 29.4-29.4 68.3L230 246l29.1-68.6zm80.3 42.9l54.6 23.1-23.4 54.3-54.3-23.1 23.1-54.3z"], - "dyalog": [416, 512, [], "f399", "M0 32v119.2h64V96h107.2C284.6 96 352 176.2 352 255.9 352 332 293.4 416 171.2 416H0v64h171.2C331.9 480 416 367.3 416 255.9c0-58.7-22.1-113.4-62.3-154.3C308.9 56 245.7 32 171.2 32H0z"], - "bity": [496, 512, [], "f37a", "M78.4 67.2C173.8-22 324.5-24 421.5 71c14.3 14.1-6.4 37.1-22.4 21.5-84.8-82.4-215.8-80.3-298.9-3.2-16.3 15.1-36.5-8.3-21.8-22.1zm98.9 418.6c19.3 5.7 29.3-23.6 7.9-30C73 421.9 9.4 306.1 37.7 194.8c5-19.6-24.9-28.1-30.2-7.1-32.1 127.4 41.1 259.8 169.8 298.1zm148.1-2c121.9-40.2 192.9-166.9 164.4-291-4.5-19.7-34.9-13.8-30 7.9 24.2 107.7-37.1 217.9-143.2 253.4-21.2 7-10.4 36 8.8 29.7zm-62.9-79l.2-71.8c0-8.2-6.6-14.8-14.8-14.8-8.2 0-14.8 6.7-14.8 14.8l-.2 71.8c0 8.2 6.6 14.8 14.8 14.8s14.8-6.6 14.8-14.8zm71-269c2.1 90.9 4.7 131.9-85.5 132.5-92.5-.7-86.9-44.3-85.5-132.5 0-21.8-32.5-19.6-32.5 0v71.6c0 69.3 60.7 90.9 118 90.1 57.3.8 118-20.8 118-90.1v-71.6c0-19.6-32.5-21.8-32.5 0z"], - "stackpath": [448, 512, [], "f842", "M244.6 232.4c0 8.5-4.26 20.49-21.34 20.49h-19.61v-41.47h19.61c17.13 0 21.34 12.36 21.34 20.98zM448 32v448H0V32zM151.3 287.84c0-21.24-12.12-34.54-46.72-44.85-20.57-7.41-26-10.91-26-18.63s7-14.61 20.41-14.61c14.09 0 20.79 8.45 20.79 18.35h30.7l.19-.57c.5-19.57-15.06-41.65-51.12-41.65-23.37 0-52.55 10.75-52.55 38.29 0 19.4 9.25 31.29 50.74 44.37 17.26 6.15 21.91 10.4 21.91 19.48 0 15.2-19.13 14.23-19.47 14.23-20.4 0-25.65-9.1-25.65-21.9h-30.8l-.18.56c-.68 31.32 28.38 45.22 56.63 45.22 29.98 0 51.12-13.55 51.12-38.29zm125.38-55.63c0-25.3-18.43-45.46-53.42-45.46h-51.78v138.18h32.17v-47.36h19.61c30.25 0 53.42-15.95 53.42-45.36zM297.94 325L347 186.78h-31.09L268 325zm106.52-138.22h-31.09L325.46 325h29.94z"], - "buysellads": [448, 512, [], "f20d", "M224 150.7l42.9 160.7h-85.8L224 150.7zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-65.3 325.3l-94.5-298.7H159.8L65.3 405.3H156l111.7-91.6 24.2 91.6h90.8z"], - "first-order": [448, 512, [], "f2b0", "M12.9 229.2c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4h-.2zM224 96.6c-7.1 0-14.6.6-21.4 1.7l3.7 67.4-22-64c-14.3 3.7-27.7 9.4-40 16.6l29.4 61.4-45.1-50.9c-11.4 8.9-21.7 19.1-30.6 30.9l50.6 45.4-61.1-29.7c-7.1 12.3-12.9 25.7-16.6 40l64.3 22.6-68-4c-.9 7.1-1.4 14.6-1.4 22s.6 14.6 1.4 21.7l67.7-4-64 22.6c3.7 14.3 9.4 27.7 16.6 40.3l61.1-29.7L97.7 352c8.9 11.7 19.1 22.3 30.9 30.9l44.9-50.9-29.5 61.4c12.3 7.4 25.7 13.1 40 16.9l22.3-64.6-4 68c7.1 1.1 14.6 1.7 21.7 1.7 7.4 0 14.6-.6 21.7-1.7l-4-68.6 22.6 65.1c14.3-4 27.7-9.4 40-16.9L274.9 332l44.9 50.9c11.7-8.9 22-19.1 30.6-30.9l-50.6-45.1 61.1 29.4c7.1-12.3 12.9-25.7 16.6-40.3l-64-22.3 67.4 4c1.1-7.1 1.4-14.3 1.4-21.7s-.3-14.9-1.4-22l-67.7 4 64-22.3c-3.7-14.3-9.1-28-16.6-40.3l-60.9 29.7 50.6-45.4c-8.9-11.7-19.1-22-30.6-30.9l-45.1 50.9 29.4-61.1c-12.3-7.4-25.7-13.1-40-16.9L241.7 166l4-67.7c-7.1-1.2-14.3-1.7-21.7-1.7zM443.4 128v256L224 512 4.6 384V128L224 0l219.4 128zm-17.1 10.3L224 20.9 21.7 138.3v235.1L224 491.1l202.3-117.7V138.3zM224 37.1l187.7 109.4v218.9L224 474.9 36.3 365.4V146.6L224 37.1zm0 50.9c-92.3 0-166.9 75.1-166.9 168 0 92.6 74.6 167.7 166.9 167.7 92 0 166.9-75.1 166.9-167.7 0-92.9-74.9-168-166.9-168z"], - "modx": [448, 512, [], "f285", "M356 241.8l36.7 23.7V480l-133-83.8L356 241.8zM440 75H226.3l-23 37.8 153.5 96.5L440 75zm-89 142.8L55.2 32v214.5l46 29L351 217.8zM97 294.2L8 437h213.7l125-200.5L97 294.2z"], - "guilded": [448, 512, [], "e07e", "M443.427,64H4.571c0,103.26,22.192,180.06,43.418,222.358C112.046,414.135,224,448,225.256,448a312.824,312.824,0,0,0,140.55-103.477c25.907-33.923,53.1-87.19,65.916-145.761H171.833c4.14,36.429,22.177,67.946,45.1,86.944h88.589c-17.012,28.213-48.186,54.4-80.456,69.482-31.232-13.259-69.09-46.544-96.548-98.362-26.726-53.833-27.092-105.883-27.092-105.883H437.573A625.91,625.91,0,0,0,443.427,64Z"], - "vnv": [640, 512, [], "f40b", "M104.9 352c-34.1 0-46.4-30.4-46.4-30.4L2.6 210.1S-7.8 192 13 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.7-74.5c5.6-9.5 8.4-18.1 18.8-18.1h32.8c20.8 0 10.4 18.1 10.4 18.1l-55.8 111.5S174.2 352 140 352h-35.1zm395 0c-34.1 0-46.4-30.4-46.4-30.4l-55.9-111.5S387.2 192 408 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.8-74.5c5.6-9.5 8.4-18.1 18.8-18.1H627c20.8 0 10.4 18.1 10.4 18.1l-55.9 111.5S569.3 352 535.1 352h-35.2zM337.6 192c34.1 0 46.4 30.4 46.4 30.4l55.9 111.5s10.4 18.1-10.4 18.1h-32.8c-10.4 0-13.2-8.7-18.8-18.1l-36.7-74.5s-5.2-13.1-21.1-13.1c-15.9 0-21.1 13.1-21.1 13.1l-36.7 74.5c-5.6 9.4-8.4 18.1-18.8 18.1h-32.9c-20.8 0-10.4-18.1-10.4-18.1l55.9-111.5s12.2-30.4 46.4-30.4h35.1z"], - "square-js": [448, 512, ["js-square"], "f3b9", "M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM180.9 444.9c-33.7 0-53.2-17.4-63.2-38.5L152 385.7c6.6 11.7 12.6 21.6 27.1 21.6c13.8 0 22.6-5.4 22.6-26.5V237.7h42.1V381.4c0 43.6-25.6 63.5-62.9 63.5zm85.8-43L301 382.1c9 14.7 20.8 25.6 41.5 25.6c17.4 0 28.6-8.7 28.6-20.8c0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5c0-31.6 24.1-55.6 61.6-55.6c26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18c-12.3 0-20.1 7.8-20.1 18c0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2c0 37.8-29.8 58.6-69.7 58.6c-39.1 0-64.4-18.6-76.7-43z"], - "microsoft": [448, 512, [], "f3ca", "M0 32h214.6v214.6H0V32zm233.4 0H448v214.6H233.4V32zM0 265.4h214.6V480H0V265.4zm233.4 0H448V480H233.4V265.4z"], - "qq": [448, 512, [], "f1d6", "M433.754 420.445c-11.526 1.393-44.86-52.741-44.86-52.741 0 31.345-16.136 72.247-51.051 101.786 16.842 5.192 54.843 19.167 45.803 34.421-7.316 12.343-125.51 7.881-159.632 4.037-34.122 3.844-152.316 8.306-159.632-4.037-9.045-15.25 28.918-29.214 45.783-34.415-34.92-29.539-51.059-70.445-51.059-101.792 0 0-33.334 54.134-44.859 52.741-5.37-.65-12.424-29.644 9.347-99.704 10.261-33.024 21.995-60.478 40.144-105.779C60.683 98.063 108.982.006 224 0c113.737.006 163.156 96.133 160.264 214.963 18.118 45.223 29.912 72.85 40.144 105.778 21.768 70.06 14.716 99.053 9.346 99.704z"], - "orcid": [512, 512, [], "f8d2", "M294.75 188.19h-45.92V342h47.47c67.62 0 83.12-51.34 83.12-76.91 0-41.64-26.54-76.9-84.67-76.9zM256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm-80.79 360.76h-29.84v-207.5h29.84zm-14.92-231.14a19.57 19.57 0 1 1 19.57-19.57 19.64 19.64 0 0 1-19.57 19.57zM300 369h-81V161.26h80.6c76.73 0 110.44 54.83 110.44 103.85C410 318.39 368.38 369 300 369z"], - "java": [384, 512, [], "f4e4", "M277.74 312.9c9.8-6.7 23.4-12.5 23.4-12.5s-38.7 7-77.2 10.2c-47.1 3.9-97.7 4.7-123.1 1.3-60.1-8 33-30.1 33-30.1s-36.1-2.4-80.6 19c-52.5 25.4 130 37 224.5 12.1zm-85.4-32.1c-19-42.7-83.1-80.2 0-145.8C296 53.2 242.84 0 242.84 0c21.5 84.5-75.6 110.1-110.7 162.6-23.9 35.9 11.7 74.4 60.2 118.2zm114.6-176.2c.1 0-175.2 43.8-91.5 140.2 24.7 28.4-6.5 54-6.5 54s62.7-32.4 33.9-72.9c-26.9-37.8-47.5-56.6 64.1-121.3zm-6.1 270.5a12.19 12.19 0 0 1-2 2.6c128.3-33.7 81.1-118.9 19.8-97.3a17.33 17.33 0 0 0-8.2 6.3 70.45 70.45 0 0 1 11-3c31-6.5 75.5 41.5-20.6 91.4zM348 437.4s14.5 11.9-15.9 21.2c-57.9 17.5-240.8 22.8-291.6.7-18.3-7.9 16-19 26.8-21.3 11.2-2.4 17.7-2 17.7-2-20.3-14.3-131.3 28.1-56.4 40.2C232.84 509.4 401 461.3 348 437.4zM124.44 396c-78.7 22 47.9 67.4 148.1 24.5a185.89 185.89 0 0 1-28.2-13.8c-44.7 8.5-65.4 9.1-106 4.5-33.5-3.8-13.9-15.2-13.9-15.2zm179.8 97.2c-78.7 14.8-175.8 13.1-233.3 3.6 0-.1 11.8 9.7 72.4 13.6 92.2 5.9 233.8-3.3 237.1-46.9 0 0-6.4 16.5-76.2 29.7zM260.64 353c-59.2 11.4-93.5 11.1-136.8 6.6-33.5-3.5-11.6-19.7-11.6-19.7-86.8 28.8 48.2 61.4 169.5 25.9a60.37 60.37 0 0 1-21.1-12.8z"], - "invision": [448, 512, [], "f7b0", "M407.4 32H40.6C18.2 32 0 50.2 0 72.6v366.8C0 461.8 18.2 480 40.6 480h366.8c22.4 0 40.6-18.2 40.6-40.6V72.6c0-22.4-18.2-40.6-40.6-40.6zM176.1 145.6c.4 23.4-22.4 27.3-26.6 27.4-14.9 0-27.1-12-27.1-27 .1-35.2 53.1-35.5 53.7-.4zM332.8 377c-65.6 0-34.1-74-25-106.6 14.1-46.4-45.2-59-59.9.7l-25.8 103.3H177l8.1-32.5c-31.5 51.8-94.6 44.4-94.6-4.3.1-14.3.9-14 23-104.1H81.7l9.7-35.6h76.4c-33.6 133.7-32.6 126.9-32.9 138.2 0 20.9 40.9 13.5 57.4-23.2l19.8-79.4h-32.3l9.7-35.6h68.8l-8.9 40.5c40.5-75.5 127.9-47.8 101.8 38-14.2 51.1-14.6 50.7-14.9 58.8 0 15.5 17.5 22.6 31.8-16.9L386 325c-10.5 36.7-29.4 52-53.2 52z"], - "creative-commons-pd-alt": [496, 512, [], "f4ed", "M247.6 8C104.7 8 0 123.1 0 256c0 138.5 113.6 248 247.6 248C377.5 504 496 403.1 496 256 496 118.1 389.4 8 247.6 8zm.8 450.8c-112.5 0-203.7-93-203.7-202.8 0-105.4 85.5-203.3 203.7-203.3 112.6 0 202.9 89.5 202.8 203.3 0 121.7-99.6 202.8-202.8 202.8zM316.7 186h-53.2v137.2h53.2c21.4 0 70-5.1 70-68.6 0-63.4-48.6-68.6-70-68.6zm.8 108.5h-19.9v-79.7l19.4-.1c3.8 0 35-2.1 35 39.9 0 24.6-10.5 39.9-34.5 39.9zM203.7 186h-68.2v137.3h34.6V279h27c54.1 0 57.1-37.5 57.1-46.5 0-31-16.8-46.5-50.5-46.5zm-4.9 67.3h-29.2v-41.6h28.3c30.9 0 28.8 41.6.9 41.6z"], - "centercode": [512, 512, [], "f380", "M329.2 268.6c-3.8 35.2-35.4 60.6-70.6 56.8-35.2-3.8-60.6-35.4-56.8-70.6 3.8-35.2 35.4-60.6 70.6-56.8 35.1 3.8 60.6 35.4 56.8 70.6zm-85.8 235.1C96.7 496-8.2 365.5 10.1 224.3c11.2-86.6 65.8-156.9 139.1-192 161-77.1 349.7 37.4 354.7 216.6 4.1 147-118.4 262.2-260.5 254.8zm179.9-180c27.9-118-160.5-205.9-237.2-234.2-57.5 56.3-69.1 188.6-33.8 344.4 68.8 15.8 169.1-26.4 271-110.2z"], - "glide-g": [448, 512, [], "f2a6", "M407.1 211.2c-3.5-1.4-11.6-3.8-15.4-3.8-37.1 0-62.2 16.8-93.5 34.5l-.9-.9c7-47.3 23.5-91.9 23.5-140.4C320.8 29.1 282.6 0 212.4 0 97.3 0 39 113.7 39 198.4 39 286.3 90.3 335 177.6 335c12 0 11-1 11 3.8-16.9 128.9-90.8 133.1-90.8 94.6 0-39.2 45-58.6 45.5-61-.3-12.2-47-27.6-58.9-27.6-33.9.1-52.4 51.2-52.4 79.3C32 476 64.8 512 117.5 512c77.4 0 134-77.8 151.4-145.4 15.1-60.5 11.2-63.3 19.7-67.6 32.2-16.2 57.5-27 93.8-27 17.8 0 30.5 3.7 58.9 8.4 2.9 0 6.7-2.9 6.7-5.8 0-8-33.4-60.5-40.9-63.4zm-175.3-84.4c-9.3 44.7-18.6 89.6-27.8 134.3-2.3 10.2-13.3 7.8-22 7.8-38.3 0-49-41.8-49-73.1 0-47 18-109.3 61.8-133.4 7-4.1 14.8-6.7 22.6-6.7 18.6 0 20 13.3 20 28.7-.1 14.3-2.7 28.5-5.6 42.4z"], - "drupal": [448, 512, [], "f1a9", "M303.973,108.136C268.2,72.459,234.187,38.35,224.047,0c-9.957,38.35-44.25,72.459-80.019,108.136C90.467,161.7,29.716,222.356,29.716,313.436c-2.337,107.3,82.752,196.18,190.053,198.517S415.948,429.2,418.285,321.9q.091-4.231,0-8.464C418.285,222.356,357.534,161.7,303.973,108.136Zm-174.326,223a130.282,130.282,0,0,0-15.211,24.153,4.978,4.978,0,0,1-3.319,2.766h-1.659c-4.333,0-9.219-8.481-9.219-8.481h0c-1.29-2.028-2.489-4.149-3.687-6.361l-.83-1.752c-11.247-25.72-1.475-62.318-1.475-62.318h0a160.585,160.585,0,0,1,23.231-49.873A290.8,290.8,0,0,1,138.5,201.613l9.219,9.219,43.512,44.434a4.979,4.979,0,0,1,0,6.638L145.78,312.33h0Zm96.612,127.311a67.2,67.2,0,0,1-49.781-111.915c14.2-16.871,31.528-33.464,50.334-55.313,22.309,23.785,36.875,40.1,51.164,57.986a28.413,28.413,0,0,1,2.95,4.425,65.905,65.905,0,0,1,11.984,37.981,66.651,66.651,0,0,1-66.466,66.836ZM352.371,351.6h0a7.743,7.743,0,0,1-6.176,5.347H344.9a11.249,11.249,0,0,1-6.269-5.07h0a348.21,348.21,0,0,0-39.456-48.952L281.387,284.49,222.3,223.185a497.888,497.888,0,0,1-35.4-36.322,12.033,12.033,0,0,0-.922-1.382,35.4,35.4,0,0,1-4.7-9.219V174.51a31.346,31.346,0,0,1,9.218-27.656c11.432-11.431,22.955-22.954,33.833-34.939,11.984,13.275,24.8,26,37.428,38.627h0a530.991,530.991,0,0,1,69.6,79.1,147.494,147.494,0,0,1,27.011,83.8A134.109,134.109,0,0,1,352.371,351.6Z"], - "jxl": [448, 512, [], "e67b", "M412.2 32H35.8C16 32 0 48 0 67.8V444.2C0 464 16 480 35.8 480H412.2c19.8 0 35.8-16 35.8-35.8V67.8C448 48 432 32 412.2 32zM378.6 333.7c0 40.2-32.6 72.8-72.8 72.8H70.2c0-40.2 32.6-72.8 72.8-72.8H378.6zm0-113.9c0 40.2-32.6 72.8-72.8 72.8H70.2c0-40.2 32.6-72.8 72.8-72.8H378.6zm0-113.9c0 40.2-32.6 72.8-72.8 72.8H70.2c0-40.2 32.6-72.8 72.8-72.8H378.6z"], - "dart-lang": [512, 512, [], "e693", "M378.6 78.9c-2.8-.1-5.6-.2-8.5-.2l-264.1 0 143.2-72C256.6 2.3 268 0 279.6 0c13.5 0 29.4 9.2 37 16.8l62 62zM107.3 96.5l262.8 0c16 0 25.4 1.4 35.4 9.3L512 212.2 512 421l-79.3 .7L107.3 96.5zM96.5 373l0-262.2L420.3 434.6l.7 77.4-212.2 0-98.1-98.2 0 0C99.4 402.5 96.5 398.5 96.5 373zM78.7 105.3l0 267.7c0 3.3 .1 6.3 .2 9.1l-62-62C6.5 309.3 0 294.3 0 279.6c0-6.8 3.9-17.5 6.7-23.6l72-150.7z"], - "hire-a-helper": [512, 512, [], "f3b0", "M443.1 0H71.9C67.9 37.3 37.4 67.8 0 71.7v371.5c37.4 4.9 66 32.4 71.9 68.8h372.2c3-36.4 32.5-65.8 67.9-69.8V71.7c-36.4-5.9-65-35.3-68.9-71.7zm-37 404.9c-36.3 0-18.8-2-55.1-2-35.8 0-21 2-56.1 2-5.9 0-4.9-8.2 0-9.8 22.8-7.6 22.9-10.2 24.6-12.8 10.4-15.6 5.9-83 5.9-113 0-5.3-6.4-12.8-13.8-12.8H200.4c-7.4 0-13.8 7.5-13.8 12.8 0 30-4.5 97.4 5.9 113 1.7 2.5 1.8 5.2 24.6 12.8 4.9 1.6 6 9.8 0 9.8-35.1 0-20.3-2-56.1-2-36.3 0-18.8 2-55.1 2-7.9 0-5.8-10.8 0-10.8 10.2-3.4 13.5-3.5 21.7-13.8 7.7-12.9 7.9-44.4 7.9-127.8V151.3c0-22.2-12.2-28.3-28.6-32.4-8.8-2.2-4-11.8 1-11.8 36.5 0 20.6 2 57.1 2 32.7 0 16.5-2 49.2-2 3.3 0 8.5 8.3 1 10.8-4.9 1.6-27.6 3.7-27.6 39.3 0 45.6-.2 55.8 1 68.8 0 1.3 2.3 12.8 12.8 12.8h109.2c10.5 0 12.8-11.5 12.8-12.8 1.2-13 1-23.2 1-68.8 0-35.6-22.7-37.7-27.6-39.3-7.5-2.5-2.3-10.8 1-10.8 32.7 0 16.5 2 49.2 2 36.5 0 20.6-2 57.1-2 4.9 0 9.9 9.6 1 11.8-16.4 4.1-28.6 10.3-28.6 32.4v101.2c0 83.4.1 114.9 7.9 127.8 8.2 10.2 11.4 10.4 21.7 13.8 5.8 0 7.8 10.8 0 10.8z"], - "creative-commons-by": [496, 512, [], "f4e7", "M314.9 194.4v101.4h-28.3v120.5h-77.1V295.9h-28.3V194.4c0-4.4 1.6-8.2 4.6-11.3 3.1-3.1 6.9-4.7 11.3-4.7H299c4.1 0 7.8 1.6 11.1 4.7 3.1 3.2 4.8 6.9 4.8 11.3zm-101.5-63.7c0-23.3 11.5-35 34.5-35s34.5 11.7 34.5 35c0 23-11.5 34.5-34.5 34.5s-34.5-11.5-34.5-34.5zM247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3z"], - "unity": [448, 512, [], "e049", "M243.583 91.6027L323.695 138.384C326.575 140.026 326.68 144.583 323.695 146.225L228.503 201.854C225.623 203.55 222.22 203.444 219.549 201.854L124.357 146.225C121.425 144.636 121.373 139.973 124.357 138.384L204.417 91.6027V0L0 119.417V358.252L78.3843 312.477V218.914C78.3319 215.576 82.2066 213.192 85.0865 214.993L180.279 270.622C183.159 272.318 184.782 275.338 184.782 278.464V389.669C184.834 393.007 180.959 395.391 178.079 393.589L97.9673 346.808L19.583 392.583L224 512L428.417 392.583L350.033 346.808L269.921 393.589C267.093 395.338 263.114 393.06 263.218 389.669V278.464C263.218 275.126 265.051 272.159 267.721 270.622L362.914 214.993C365.741 213.245 369.72 215.47 369.616 218.914V312.477L448 358.252V119.417L243.583 0V91.6027Z"], - "whmcs": [448, 512, [], "f40d", "M448 161v-21.3l-28.5-8.8-2.2-10.4 20.1-20.7L427 80.4l-29 7.5-7.2-7.5 7.5-28.2-19.1-11.6-21.3 21-10.7-3.2-7-26.4h-22.6l-6.2 26.4-12.1 3.2-19.7-21-19.4 11 8.1 27.7-8.1 8.4-28.5-7.5-11 19.1 20.7 21-2.9 10.4-28.5 7.8-.3 21.7 28.8 7.5 2.4 12.1-20.1 19.9 10.4 18.5 29.6-7.5 7.2 8.6-8.1 26.9 19.9 11.6 19.4-20.4 11.6 2.9 6.7 28.5 22.6.3 6.7-28.8 11.6-3.5 20.7 21.6 20.4-12.1-8.8-28 7.8-8.1 28.8 8.8 10.3-20.1-20.9-18.8 2.2-12.1 29.1-7zm-119.2 45.2c-31.3 0-56.8-25.4-56.8-56.8s25.4-56.8 56.8-56.8 56.8 25.4 56.8 56.8c0 31.5-25.4 56.8-56.8 56.8zm72.3 16.4l46.9 14.5V277l-55.1 13.4-4.1 22.7 38.9 35.3-19.2 37.9-54-16.7-14.6 15.2 16.7 52.5-38.3 22.7-38.9-40.5-21.7 6.6-12.6 54-42.4-.5-12.6-53.6-21.7-5.6-36.4 38.4-37.4-21.7 15.2-50.5-13.7-16.1-55.5 14.1-19.7-34.8 37.9-37.4-4.8-22.8-54-14.1.5-40.9L54 219.9l5.7-19.7-38.9-39.4L41.5 125l53.6 14.1 15.2-15.7-15.2-52 36.4-20.7 36.8 39.4L191 84l11.6-52H245l11.6 45.9L234 72l-6.3-1.7-3.3 5.7-11 19.1-3.3 5.6 4.6 4.6 17.2 17.4-.3 1-23.8 6.5-6.2 1.7-.1 6.4-.2 12.9C153.8 161.6 118 204 118 254.7c0 58.3 47.3 105.7 105.7 105.7 50.5 0 92.7-35.4 103.2-82.8l13.2.2 6.9.1 1.6-6.7 5.6-24 1.9-.6 17.1 17.8 4.7 4.9 5.8-3.4 20.4-12.1 5.8-3.5-2-6.5-6.8-21.2z"], - "rocketchat": [576, 512, [], "f3e8", "M284.046,224.8a34.114,34.114,0,1,0,34.317,34.113A34.217,34.217,0,0,0,284.046,224.8Zm-110.45,0a34.114,34.114,0,1,0,34.317,34.113A34.217,34.217,0,0,0,173.6,224.8Zm220.923,0a34.114,34.114,0,1,0,34.317,34.113A34.215,34.215,0,0,0,394.519,224.8Zm153.807-55.319c-15.535-24.172-37.31-45.57-64.681-63.618-52.886-34.817-122.374-54-195.666-54a405.975,405.975,0,0,0-72.032,6.357,238.524,238.524,0,0,0-49.51-36.588C99.684-11.7,40.859.711,11.135,11.421A14.291,14.291,0,0,0,5.58,34.782C26.542,56.458,61.222,99.3,52.7,138.252c-33.142,33.9-51.112,74.776-51.112,117.337,0,43.372,17.97,84.248,51.112,118.148,8.526,38.956-26.154,81.816-47.116,103.491a14.284,14.284,0,0,0,5.555,23.34c29.724,10.709,88.549,23.147,155.324-10.2a238.679,238.679,0,0,0,49.51-36.589A405.972,405.972,0,0,0,288,460.14c73.313,0,142.8-19.159,195.667-53.975,27.371-18.049,49.145-39.426,64.679-63.619,17.309-26.923,26.07-55.916,26.07-86.125C574.394,225.4,565.634,196.43,548.326,169.485ZM284.987,409.9a345.65,345.65,0,0,1-89.446-11.5l-20.129,19.393a184.366,184.366,0,0,1-37.138,27.585,145.767,145.767,0,0,1-52.522,14.87c.983-1.771,1.881-3.563,2.842-5.356q30.258-55.68,16.325-100.078c-32.992-25.962-52.778-59.2-52.778-95.4,0-83.1,104.254-150.469,232.846-150.469s232.867,67.373,232.867,150.469C517.854,342.525,413.6,409.9,284.987,409.9Z"], - "vk": [448, 512, [], "f189", "M31.4907 63.4907C0 94.9813 0 145.671 0 247.04V264.96C0 366.329 0 417.019 31.4907 448.509C62.9813 480 113.671 480 215.04 480H232.96C334.329 480 385.019 480 416.509 448.509C448 417.019 448 366.329 448 264.96V247.04C448 145.671 448 94.9813 416.509 63.4907C385.019 32 334.329 32 232.96 32H215.04C113.671 32 62.9813 32 31.4907 63.4907ZM75.6 168.267H126.747C128.427 253.76 166.133 289.973 196 297.44V168.267H244.16V242C273.653 238.827 304.64 205.227 315.093 168.267H363.253C359.313 187.435 351.46 205.583 340.186 221.579C328.913 237.574 314.461 251.071 297.733 261.227C316.41 270.499 332.907 283.63 346.132 299.751C359.357 315.873 369.01 334.618 374.453 354.747H321.44C316.555 337.262 306.614 321.61 292.865 309.754C279.117 297.899 262.173 290.368 244.16 288.107V354.747H238.373C136.267 354.747 78.0267 284.747 75.6 168.267Z"], - "untappd": [640, 512, [], "f405", "M401.3 49.9c-79.8 160.1-84.6 152.5-87.9 173.2l-5.2 32.8c-1.9 12-6.6 23.5-13.7 33.4L145.6 497.1c-7.6 10.6-20.4 16.2-33.4 14.6-40.3-5-77.8-32.2-95.3-68.5-5.7-11.8-4.5-25.8 3.1-36.4l148.9-207.9c7.1-9.9 16.4-18 27.2-23.7l29.3-15.5c18.5-9.8 9.7-11.9 135.6-138.9 1-4.8 1-7.3 3.6-8 3-.7 6.6-1 6.3-4.6l-.4-4.6c-.2-1.9 1.3-3.6 3.2-3.6 4.5-.1 13.2 1.2 25.6 10 12.3 8.9 16.4 16.8 17.7 21.1.6 1.8-.6 3.7-2.4 4.2l-4.5 1.1c-3.4.9-2.5 4.4-2.3 7.4.1 2.8-2.3 3.6-6.5 6.1zM230.1 36.4c3.4.9 2.5 4.4 2.3 7.4-.2 2.7 2.1 3.5 6.4 6 7.9 15.9 15.3 30.5 22.2 44 .7 1.3 2.3 1.5 3.3.5 11.2-12 24.6-26.2 40.5-42.6 1.3-1.4 1.4-3.5.1-4.9-8-8.2-16.5-16.9-25.6-26.1-1-4.7-1-7.3-3.6-8-3-.8-6.6-1-6.3-4.6.3-3.3 1.4-8.1-2.8-8.2-4.5-.1-13.2 1.1-25.6 10-12.3 8.9-16.4 16.8-17.7 21.1-1.4 4.2 3.6 4.6 6.8 5.4zM620 406.7L471.2 198.8c-13.2-18.5-26.6-23.4-56.4-39.1-11.2-5.9-14.2-10.9-30.5-28.9-1-1.1-2.9-.9-3.6.5-46.3 88.8-47.1 82.8-49 94.8-1.7 10.7-1.3 20 .3 29.8 1.9 12 6.6 23.5 13.7 33.4l148.9 207.9c7.6 10.6 20.2 16.2 33.1 14.7 40.3-4.9 78-32 95.7-68.6 5.4-11.9 4.3-25.9-3.4-36.6z"], - "mailchimp": [448, 512, [], "f59e", "M330.61 243.52a36.15 36.15 0 0 1 9.3 0c1.66-3.83 1.95-10.43.45-17.61-2.23-10.67-5.25-17.14-11.48-16.13s-6.47 8.74-4.24 19.42c1.26 6 3.49 11.14 6 14.32zM277.05 252c4.47 2 7.2 3.26 8.28 2.13 1.89-1.94-3.48-9.39-12.12-13.09a31.44 31.44 0 0 0-30.61 3.68c-3 2.18-5.81 5.22-5.41 7.06.85 3.74 10-2.71 22.6-3.48 7-.44 12.8 1.75 17.26 3.71zm-9 5.13c-9.07 1.42-15 6.53-13.47 10.1.9.34 1.17.81 5.21-.81a37 37 0 0 1 18.72-1.95c2.92.34 4.31.52 4.94-.49 1.46-2.22-5.71-8-15.39-6.85zm54.17 17.1c3.38-6.87-10.9-13.93-14.3-7s10.92 13.88 14.32 6.97zm15.66-20.47c-7.66-.13-7.95 15.8-.26 15.93s7.98-15.81.28-15.96zm-218.79 78.9c-1.32.31-6 1.45-8.47-2.35-5.2-8 11.11-20.38 3-35.77-9.1-17.47-27.82-13.54-35.05-5.54-8.71 9.6-8.72 23.54-5 24.08 4.27.57 4.08-6.47 7.38-11.63a12.83 12.83 0 0 1 17.85-3.72c11.59 7.59 1.37 17.76 2.28 28.62 1.39 16.68 18.42 16.37 21.58 9a2.08 2.08 0 0 0-.2-2.33c.03.89.68-1.3-3.35-.39zm299.72-17.07c-3.35-11.73-2.57-9.22-6.78-20.52 2.45-3.67 15.29-24-3.07-43.25-10.4-10.92-33.9-16.54-41.1-18.54-1.5-11.39 4.65-58.7-21.52-83 20.79-21.55 33.76-45.29 33.73-65.65-.06-39.16-48.15-51-107.42-26.47l-12.55 5.33c-.06-.05-22.71-22.27-23.05-22.57C169.5-18-41.77 216.81 25.78 273.85l14.76 12.51a72.49 72.49 0 0 0-4.1 33.5c3.36 33.4 36 60.42 67.53 60.38 57.73 133.06 267.9 133.28 322.29 3 1.74-4.47 9.11-24.61 9.11-42.38s-10.09-25.27-16.53-25.27zm-316 48.16c-22.82-.61-47.46-21.15-49.91-45.51-6.17-61.31 74.26-75.27 84-12.33 4.54 29.64-4.67 58.49-34.12 57.81zM84.3 249.55C69.14 252.5 55.78 261.09 47.6 273c-4.88-4.07-14-12-15.59-15-13.01-24.85 14.24-73 33.3-100.21C112.42 90.56 186.19 39.68 220.36 48.91c5.55 1.57 23.94 22.89 23.94 22.89s-34.15 18.94-65.8 45.35c-42.66 32.85-74.89 80.59-94.2 132.4zM323.18 350.7s-35.74 5.3-69.51-7.07c6.21-20.16 27 6.1 96.4-13.81 15.29-4.38 35.37-13 51-25.35a102.85 102.85 0 0 1 7.12 24.28c3.66-.66 14.25-.52 11.44 18.1-3.29 19.87-11.73 36-25.93 50.84A106.86 106.86 0 0 1 362.55 421a132.45 132.45 0 0 1-20.34 8.58c-53.51 17.48-108.3-1.74-126-43a66.33 66.33 0 0 1-3.55-9.74c-7.53-27.2-1.14-59.83 18.84-80.37 1.23-1.31 2.48-2.85 2.48-4.79a8.45 8.45 0 0 0-1.92-4.54c-7-10.13-31.19-27.4-26.33-60.83 3.5-24 24.49-40.91 44.07-39.91l5 .29c8.48.5 15.89 1.59 22.88 1.88 11.69.5 22.2-1.19 34.64-11.56 4.2-3.5 7.57-6.54 13.26-7.51a17.45 17.45 0 0 1 13.6 2.24c10 6.64 11.4 22.73 11.92 34.49.29 6.72 1.1 23 1.38 27.63.63 10.67 3.43 12.17 9.11 14 3.19 1.05 6.15 1.83 10.51 3.06 13.21 3.71 21 7.48 26 12.31a16.38 16.38 0 0 1 4.74 9.29c1.56 11.37-8.82 25.4-36.31 38.16-46.71 21.68-93.68 14.45-100.48 13.68-20.15-2.71-31.63 23.32-19.55 41.15 22.64 33.41 122.4 20 151.37-21.35.69-1 .12-1.59-.73-1-41.77 28.58-97.06 38.21-128.46 26-4.77-1.85-14.73-6.44-15.94-16.67 43.6 13.49 71 .74 71 .74s2.03-2.79-.56-2.53zm-68.47-5.7zm-83.4-187.5c16.74-19.35 37.36-36.18 55.83-45.63a.73.73 0 0 1 1 1c-1.46 2.66-4.29 8.34-5.19 12.65a.75.75 0 0 0 1.16.79c11.49-7.83 31.48-16.22 49-17.3a.77.77 0 0 1 .52 1.38 41.86 41.86 0 0 0-7.71 7.74.75.75 0 0 0 .59 1.19c12.31.09 29.66 4.4 41 10.74.76.43.22 1.91-.64 1.72-69.55-15.94-123.08 18.53-134.5 26.83a.76.76 0 0 1-1-1.12z"], - "css3-alt": [384, 512, [], "f38b", "M0 32l34.9 395.8L192 480l157.1-52.2L384 32H0zm313.1 80l-4.8 47.3L193 208.6l-.3.1h111.5l-12.8 146.6-98.2 28.7-98.8-29.2-6.4-73.9h48.9l3.2 38.3 52.6 13.3 54.7-15.4 3.7-61.6-166.3-.5v-.1l-.2.1-3.6-46.3L193.1 162l6.5-2.7H76.7L70.9 112h242.2z"], - "square-reddit": [448, 512, ["reddit-square"], "f1a2", "M64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32zM305.9 166.4c20.6 0 37.3-16.7 37.3-37.3s-16.7-37.3-37.3-37.3c-18 0-33.1 12.8-36.6 29.8c-30.2 3.2-53.8 28.8-53.8 59.9l0 .2c-32.8 1.4-62.8 10.7-86.6 25.5c-8.8-6.8-19.9-10.9-32-10.9c-28.9 0-52.3 23.4-52.3 52.3c0 21 12.3 39 30.1 47.4c1.7 60.7 67.9 109.6 149.3 109.6s147.6-48.9 149.3-109.7c17.7-8.4 29.9-26.4 29.9-47.3c0-28.9-23.4-52.3-52.3-52.3c-12 0-23 4-31.9 10.8c-24-14.9-54.3-24.2-87.5-25.4l0-.1c0-22.2 16.5-40.7 37.9-43.7l0 0c3.9 16.5 18.7 28.7 36.3 28.7zM155 248.1c14.6 0 25.8 15.4 25 34.4s-11.8 25.9-26.5 25.9s-27.5-7.7-26.6-26.7s13.5-33.5 28.1-33.5zm166.4 33.5c.9 19-12 26.7-26.6 26.7s-25.6-6.9-26.5-25.9c-.9-19 10.3-34.4 25-34.4s27.3 14.6 28.1 33.5zm-42.1 49.6c-9 21.5-30.3 36.7-55.1 36.7s-46.1-15.1-55.1-36.7c-1.1-2.6 .7-5.4 3.4-5.7c16.1-1.6 33.5-2.5 51.7-2.5s35.6 .9 51.7 2.5c2.7 .3 4.5 3.1 3.4 5.7z"], - "vimeo-v": [448, 512, [], "f27d", "M447.8 153.6c-2 43.6-32.4 103.3-91.4 179.1-60.9 79.2-112.4 118.8-154.6 118.8-26.1 0-48.2-24.1-66.3-72.3C100.3 250 85.3 174.3 56.2 174.3c-3.4 0-15.1 7.1-35.2 21.1L0 168.2c51.6-45.3 100.9-95.7 131.8-98.5 34.9-3.4 56.3 20.5 64.4 71.5 28.7 181.5 41.4 208.9 93.6 126.7 18.7-29.6 28.8-52.1 30.2-67.6 4.8-45.9-35.8-42.8-63.3-31 22-72.1 64.1-107.1 126.2-105.1 45.8 1.2 67.5 31.1 64.9 89.4z"], - "contao": [512, 512, [], "f26d", "M45.4 305c14.4 67.1 26.4 129 68.2 175H34c-18.7 0-34-15.2-34-34V66c0-18.7 15.2-34 34-34h57.7C77.9 44.6 65.6 59.2 54.8 75.6c-45.4 70-27 146.8-9.4 229.4zM478 32h-90.2c21.4 21.4 39.2 49.5 52.7 84.1l-137.1 29.3c-14.9-29-37.8-53.3-82.6-43.9-24.6 5.3-41 19.3-48.3 34.6-8.8 18.7-13.2 39.8 8.2 140.3 21.1 100.2 33.7 117.7 49.5 131.2 12.9 11.1 33.4 17 58.3 11.7 44.5-9.4 55.7-40.7 57.4-73.2l137.4-29.6c3.2 71.5-18.7 125.2-57.4 163.6H478c18.7 0 34-15.2 34-34V66c0-18.8-15.2-34-34-34z"], - "square-font-awesome": [448, 512, [], "e5ad", "M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm90 122c0 9.3-4.8 17.4-12.1 22l188.9 0c7.3 0 13.2 5.9 13.2 13.2c0 1.8-.4 3.7-1.1 5.4L312 264l30.9 69.4c.7 1.7 1.1 3.5 1.1 5.4c0 7.3-5.9 13.2-13.2 13.2L144 352l0 32-32 0 0-32 0-176 0-1.5c-6.1-4.8-10-12.2-10-20.5c0-14.4 11.6-26 26-26s26 11.6 26 26z"], - "deskpro": [480, 512, [], "f38f", "M205.9 512l31.1-38.4c12.3-.2 25.6-1.4 36.5-6.6 38.9-18.6 38.4-61.9 38.3-63.8-.1-5-.8-4.4-28.9-37.4H362c-.2 50.1-7.3 68.5-10.2 75.7-9.4 23.7-43.9 62.8-95.2 69.4-8.7 1.1-32.8 1.2-50.7 1.1zm200.4-167.7c38.6 0 58.5-13.6 73.7-30.9l-175.5-.3-17.4 31.3 119.2-.1zm-43.6-223.9v168.3h-73.5l-32.7 55.5H250c-52.3 0-58.1-56.5-58.3-58.9-1.2-13.2-21.3-11.6-20.1 1.8 1.4 15.8 8.8 40 26.4 57.1h-91c-25.5 0-110.8-26.8-107-114V16.9C0 .9 9.7.3 15 .1h82c.2 0 .3.1.5.1 4.3-.4 50.1-2.1 50.1 43.7 0 13.3 20.2 13.4 20.2 0 0-18.2-5.5-32.8-15.8-43.7h84.2c108.7-.4 126.5 79.4 126.5 120.2zm-132.5 56l64 29.3c13.3-45.5-42.2-71.7-64-29.3z"], - "brave": [448, 512, [], "e63c", "M145.5 0H224h78.5l44.7 50.8s39.3-10.9 57.8 7.6s33.8 34.9 33.8 34.9l-12 29.5 15.3 43.7s-44.9 170.2-50.1 191c-10.4 40.9-17.4 56.8-46.9 77.5s-82.9 56.8-91.6 62.2c-1.9 1.2-3.9 2.5-5.9 3.9c-7.5 5.1-15.8 10.8-23.5 10.8l0 0 0 0c-7.7 0-16.1-5.7-23.5-10.8c-2-1.4-4-2.8-5.9-3.9c-8.7-5.5-62.1-41.5-91.6-62.2s-36.5-36.6-46.9-77.5c-5.3-20.8-50.1-191-50.1-191l15.3-43.7L9.2 93.3s15.3-16.4 33.8-34.9s57.8-7.6 57.8-7.6L145.5 0zM224 407.6l0 0c3.7 0 8.9-4.7 13-8.4c.6-.5 1.2-1.1 1.7-1.5c4.2-3.7 47.8-37.5 51-39.8s5.4-6.5 1.9-8.7c-2.8-1.7-10-5.5-20.3-10.8c-3-1.6-6.3-3.2-9.7-5c-15.4-8-34.5-14.7-37.5-14.7l0 0 0 0c-3 0-22.1 6.8-37.5 14.7c-3.5 1.8-6.7 3.5-9.7 5c-10.3 5.3-17.6 9.1-20.3 10.8c-3.6 2.2-1.4 6.4 1.9 8.7s46.8 36.1 51 39.8c.5 .5 1.1 1 1.7 1.5c4.1 3.7 9.3 8.4 13 8.4l0 0zm0-165.7l0 0c4.7 0 17.6-3 26.4-5l0 0 2-.5c7.8-1.8 7.3-6.3 6.4-13c-.1-.8-.2-1.6-.3-2.4c-.6-6.1-5.8-33.1-9.1-50.3c-1.1-5.8-2-10.5-2.4-12.9c-1.5-8.1-.6-9.4 .7-11.3c.2-.3 .5-.7 .7-1.1c1.4-2.3 16-6.2 27.9-9.5l0 0c2.5-.7 4.8-1.3 6.9-1.9c10.6-3 32.4-.6 44.2 .6c1.8 .2 3.4 .4 4.7 .5c9.6 .9 10.4 2.3 7.2 3.8c-2.3 1.1-16.2 6.3-28.7 10.9l0 0 0 0c-4.7 1.8-9.2 3.5-12.8 4.8c-1.5 .5-3 1.1-4.5 1.7c-12.5 4.6-27.2 10-28.9 19.4c-1.5 8.3 5.2 19.9 11.3 30.3l0 0c1.6 2.8 3.2 5.5 4.6 8.1c6.3 11.9 6.5 13.3 6.1 18.1c-.4 3.9-14.5 12.7-22.4 17.6l0 0c-1.8 1.1-3.3 2.1-4.2 2.7c-.8 .5-2.1 1.4-3.8 2.4c-8.6 5.2-26.3 16-26.3 22.5c0 7.8 24.6 28.1 32.4 33.2s28.9 16.1 37.9 17.8s23-8.5 31.2-23.8c7.7-14.4 1.7-28.5-3.2-40l-.9-2.2c-4.5-10.6 1.9-17 6.2-21.3l0 0c.5-.5 1-1 1.4-1.4L377.7 194c1.3-1.3 2.5-2.6 3.7-3.8l0 0c5.8-5.7 10.8-10.5 10.8-22.8c0-14.9-57.5-84.5-57.5-84.5s-48.5 9.3-55.1 9.3c-5.2 0-15.3-3.5-25.8-7.1l0 0c-2.7-.9-5.4-1.9-8-2.7C232.8 78.1 224 78 224 78l0 0 0 0s-8.7 0-21.8 4.4c-2.7 .9-5.4 1.8-8 2.7l0 0c-10.5 3.6-20.6 7.1-25.8 7.1c-6.5 0-55.1-9.3-55.1-9.3s-57.5 69.6-57.5 84.5c0 12.3 4.9 17.1 10.8 22.8l0 0c1.2 1.2 2.5 2.4 3.7 3.8l43.1 45.8c.4 .5 .9 .9 1.4 1.4l0 0c4.3 4.3 10.6 10.7 6.2 21.3l-.9 2.2c-4.9 11.5-11 25.6-3.2 40c8.2 15.3 22.2 25.5 31.2 23.8s30.1-12.7 37.9-17.8s32.4-25.4 32.4-33.2c0-6.5-17.7-17.3-26.3-22.5c-1.7-1-3.1-1.9-3.8-2.4c-.9-.6-2.4-1.5-4.2-2.7c-7.9-4.9-22-13.7-22.4-17.6c-.4-4.8-.3-6.2 6.1-18.1c1.3-2.5 2.9-5.3 4.6-8.1c6-10.4 12.8-22 11.3-30.3c-1.7-9.4-16.4-14.8-28.9-19.4c-1.6-.6-3.1-1.1-4.5-1.7c-3.6-1.4-8.1-3.1-12.8-4.8l-.1 0c-12.5-4.7-26.4-9.9-28.7-10.9c-3.2-1.5-2.3-2.8 7.2-3.8c1.3-.1 2.9-.3 4.7-.5c11.8-1.3 33.6-3.6 44.2-.6c2.1 .6 4.4 1.2 6.9 1.9c11.9 3.2 26.5 7.2 27.9 9.5c.2 .4 .5 .7 .7 1.1c1.3 1.9 2.2 3.2 .7 11.3c-.4 2.4-1.3 7.1-2.4 12.9c-3.3 17.2-8.5 44.2-9.1 50.3c-.1 .8-.2 1.7-.3 2.4c-.8 6.7-1.4 11.2 6.4 13l2 .5 0 0c8.8 2 21.8 5 26.4 5l0 0z"], - "sistrix": [448, 512, [], "f3ee", "M448 449L301.2 300.2c20-27.9 31.9-62.2 31.9-99.2 0-93.1-74.7-168.9-166.5-168.9C74.7 32 0 107.8 0 200.9s74.7 168.9 166.5 168.9c39.8 0 76.3-14.2 105-37.9l146 148.1 30.5-31zM166.5 330.8c-70.6 0-128.1-58.3-128.1-129.9S95.9 71 166.5 71s128.1 58.3 128.1 129.9-57.4 129.9-128.1 129.9z"], - "square-instagram": [448, 512, ["instagram-square"], "e055", "M194.4 211.7a53.3 53.3 0 1 0 59.3 88.7 53.3 53.3 0 1 0 -59.3-88.7zm142.3-68.4c-5.2-5.2-11.5-9.3-18.4-12c-18.1-7.1-57.6-6.8-83.1-6.5c-4.1 0-7.9 .1-11.2 .1c-3.3 0-7.2 0-11.4-.1c-25.5-.3-64.8-.7-82.9 6.5c-6.9 2.7-13.1 6.8-18.4 12s-9.3 11.5-12 18.4c-7.1 18.1-6.7 57.7-6.5 83.2c0 4.1 .1 7.9 .1 11.1s0 7-.1 11.1c-.2 25.5-.6 65.1 6.5 83.2c2.7 6.9 6.8 13.1 12 18.4s11.5 9.3 18.4 12c18.1 7.1 57.6 6.8 83.1 6.5c4.1 0 7.9-.1 11.2-.1c3.3 0 7.2 0 11.4 .1c25.5 .3 64.8 .7 82.9-6.5c6.9-2.7 13.1-6.8 18.4-12s9.3-11.5 12-18.4c7.2-18 6.8-57.4 6.5-83c0-4.2-.1-8.1-.1-11.4s0-7.1 .1-11.4c.3-25.5 .7-64.9-6.5-83l0 0c-2.7-6.9-6.8-13.1-12-18.4zm-67.1 44.5A82 82 0 1 1 178.4 324.2a82 82 0 1 1 91.1-136.4zm29.2-1.3c-3.1-2.1-5.6-5.1-7.1-8.6s-1.8-7.3-1.1-11.1s2.6-7.1 5.2-9.8s6.1-4.5 9.8-5.2s7.6-.4 11.1 1.1s6.5 3.9 8.6 7s3.2 6.8 3.2 10.6c0 2.5-.5 5-1.4 7.3s-2.4 4.4-4.1 6.2s-3.9 3.2-6.2 4.2s-4.8 1.5-7.3 1.5l0 0c-3.8 0-7.5-1.1-10.6-3.2zM448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM357 389c-18.7 18.7-41.4 24.6-67 25.9c-26.4 1.5-105.6 1.5-132 0c-25.6-1.3-48.3-7.2-67-25.9s-24.6-41.4-25.8-67c-1.5-26.4-1.5-105.6 0-132c1.3-25.6 7.1-48.3 25.8-67s41.5-24.6 67-25.8c26.4-1.5 105.6-1.5 132 0c25.6 1.3 48.3 7.1 67 25.8s24.6 41.4 25.8 67c1.5 26.3 1.5 105.4 0 131.9c-1.3 25.6-7.1 48.3-25.8 67z"], - "battle-net": [512, 512, [], "f835", "M448.61 225.62c26.87.18 35.57-7.43 38.92-12.37 12.47-16.32-7.06-47.6-52.85-71.33 17.76-33.58 30.11-63.68 36.34-85.3 3.38-11.83 1.09-19 .45-20.25-1.72 10.52-15.85 48.46-48.2 100.05-25-11.22-56.52-20.1-93.77-23.8-8.94-16.94-34.88-63.86-60.48-88.93C252.18 7.14 238.7 1.07 228.18.22h-.05c-13.83-1.55-22.67 5.85-27.4 11-17.2 18.53-24.33 48.87-25 84.07-7.24-12.35-17.17-24.63-28.5-25.93h-.18c-20.66-3.48-38.39 29.22-36 81.29-38.36 1.38-71 5.75-93 11.23-9.9 2.45-16.22 7.27-17.76 9.72 1-.38 22.4-9.22 111.56-9.22 5.22 53 29.75 101.82 26 93.19-9.73 15.4-38.24 62.36-47.31 97.7-5.87 22.88-4.37 37.61.15 47.14 5.57 12.75 16.41 16.72 23.2 18.26 25 5.71 55.38-3.63 86.7-21.14-7.53 12.84-13.9 28.51-9.06 39.34 7.31 19.65 44.49 18.66 88.44-9.45 20.18 32.18 40.07 57.94 55.7 74.12a39.79 39.79 0 0 0 8.75 7.09c5.14 3.21 8.58 3.37 8.58 3.37-8.24-6.75-34-38-62.54-91.78 22.22-16 45.65-38.87 67.47-69.27 122.82 4.6 143.29-24.76 148-31.64 14.67-19.88 3.43-57.44-57.32-93.69zm-77.85 106.22c23.81-37.71 30.34-67.77 29.45-92.33 27.86 17.57 47.18 37.58 49.06 58.83 1.14 12.93-8.1 29.12-78.51 33.5zM216.9 387.69c9.76-6.23 19.53-13.12 29.2-20.49 6.68 13.33 13.6 26.1 20.6 38.19-40.6 21.86-68.84 12.76-49.8-17.7zm215-171.35c-10.29-5.34-21.16-10.34-32.38-15.05a722.459 722.459 0 0 0 22.74-36.9c39.06 24.1 45.9 53.18 9.64 51.95zM279.18 398c-5.51-11.35-11-23.5-16.5-36.44 43.25 1.27 62.42-18.73 63.28-20.41 0 .07-25 15.64-62.53 12.25a718.78 718.78 0 0 0 85.06-84q13.06-15.31 24.93-31.11c-.36-.29-1.54-3-16.51-12-51.7 60.27-102.34 98-132.75 115.92-20.59-11.18-40.84-31.78-55.71-61.49-20-39.92-30-82.39-31.57-116.07 12.3.91 25.27 2.17 38.85 3.88-22.29 36.8-14.39 63-13.47 64.23 0-.07-.95-29.17 20.14-59.57a695.23 695.23 0 0 0 44.67 152.84c.93-.38 1.84.88 18.67-8.25-26.33-74.47-33.76-138.17-34-173.43 20-12.42 48.18-19.8 81.63-17.81 44.57 2.67 86.36 15.25 116.32 30.71q-10.69 15.66-23.33 32.47C365.63 152 339.1 145.84 337.5 146c.11 0 25.9 14.07 41.52 47.22a717.63 717.63 0 0 0-115.34-31.71 646.608 646.608 0 0 0-39.39-6.05c-.07.45-1.81 1.85-2.16 20.33C300 190.28 358.78 215.68 389.36 233c.74 23.55-6.95 51.61-25.41 79.57-24.6 37.31-56.39 67.23-84.77 85.43zm27.4-287c-44.56-1.66-73.58 7.43-94.69 20.67 2-52.3 21.31-76.38 38.21-75.28C267 52.15 305 108.55 306.58 111zm-130.65 3.1c.48 12.11 1.59 24.62 3.21 37.28-14.55-.85-28.74-1.25-42.4-1.26-.08 3.24-.12-51 24.67-49.59h.09c5.76 1.09 10.63 6.88 14.43 13.57zm-28.06 162c20.76 39.7 43.3 60.57 65.25 72.31-46.79 24.76-77.53 20-84.92 4.51-.2-.21-11.13-15.3 19.67-76.81zm210.06 74.8"], - "the-red-yeti": [512, 512, [], "f69d", "M488.23 241.7l20.7 7.1c-9.6-23.9-23.9-37-31.7-44.8l7.1-18.2c.2 0 12.3-27.8-2.5-30.7-.6-11.3-6.6-27-18.4-27-7.6-10.6-17.7-12.3-30.7-5.9a122.2 122.2 0 0 0-25.3 16.5c-5.3-6.4-3 .4-3-29.8-37.1-24.3-45.4-11.7-74.8 3l.5.5a239.36 239.36 0 0 0-68.4-13.3c-5.5-8.7-18.6-19.1-25.1-25.1l24.8 7.1c-5.5-5.5-26.8-12.9-34.2-15.2 18.2-4.1 29.8-20.8 42.5-33-34.9-10.1-67.9-5.9-97.9 11.8l12-44.2L182 0c-31.6 24.2-33 41.9-33.7 45.5-.9-2.4-6.3-19.6-15.2-27a35.12 35.12 0 0 0-.5 25.3c3 8.4 5.9 14.8 8.4 18.9-16-3.3-28.3-4.9-49.2 0h-3.7l33 14.3a194.26 194.26 0 0 0-46.7 67.4l-1.7 8.4 1.7 1.7 7.6-4.7c-3.3 11.6-5.3 19.4-6.6 25.8a200.18 200.18 0 0 0-27.8 40.3c-15 1-31.8 10.8-40.3 14.3l3 3.4 28.8 1c-.5 1-.7 2.2-1.2 3.2-7.3 6.4-39.8 37.7-33 80.7l20.2-22.4c.5 1.7.7 3.4 1.2 5.2 0 25.5.4 89.6 64.9 150.5 43.6 40 96 60.2 157.5 60.2 121.7 0 223-87.3 223-211.5 6.8-9.7-1.2 3 16.7-25.1l13 14.3 2.5-.5A181.84 181.84 0 0 0 495 255a44.74 44.74 0 0 0-6.8-13.3zM398 111.2l-.5 21.9c5.5 18.1 16.9 17.2 22.4 17.2l-3.4-4.7 22.4-5.4a242.44 242.44 0 0 1-27 0c12.8-2.1 33.3-29 43-11.3 3.4 7.6 6.4 17.2 9.3 27.8l1.7-5.9a56.38 56.38 0 0 1-1.7-15.2c5.4.5 8.8 3.4 9.3 10.1.5 6.4 1.7 14.8 3.4 25.3l4.7-11.3c4.6 0 4.5-3.6-2.5 20.7-20.9-8.7-35.1-8.4-46.5-8.4l18.2-16c-25.3 8.2-33 10.8-54.8 20.9-1.1-5.4-5-13.5-16-19.9-3.2 3.8-2.8.9-.7 14.8h-2.5a62.32 62.32 0 0 0-8.4-23.1l4.2-3.4c8.4-7.1 11.8-14.3 10.6-21.9-.5-6.4-5.4-13.5-13.5-20.7 5.6-3.4 15.2-.4 28.3 8.5zm-39.6-10.1c2.7 1.9 11.4 5.4 18.9 17.2 4.2 8.4 4 9.8 3.4 11.1-.5 2.4-.5 4.3-3 7.1-1.7 2.5-5.4 4.7-11.8 7.6-7.6-13-16.5-23.6-27.8-31.2zM91 143.1l1.2-1.7c1.2-2.9 4.2-7.6 9.3-15.2l2.5-3.4-13 12.3 5.4-4.7-10.1 9.3-4.2 1.2c12.3-24.1 23.1-41.3 32.5-50.2 9.3-9.3 16-16 20.2-19.4l-6.4 1.2c-11.3-4.2-19.4-7.1-24.8-8.4 2.5-.5 3.7-.5 3.2-.5 10.3 0 17.5.5 20.9 1.2a52.35 52.35 0 0 0 16 2.5l.5-1.7-8.4-35.8 13.5 29a42.89 42.89 0 0 0 5.9-14.3c1.7-6.4 5.4-13 10.1-19.4s7.6-10.6 9.3-11.3a234.68 234.68 0 0 0-6.4 25.3l-1.7 7.1-.5 4.7 2.5 2.5C190.4 39.9 214 34 239.8 34.5l21.1.5c-11.8 13.5-27.8 21.9-48.5 24.8a201.26 201.26 0 0 1-23.4 2.9l-.2-.5-2.5-1.2a20.75 20.75 0 0 0-14 2c-2.5-.2-4.9-.5-7.1-.7l-2.5 1.7.5 1.2c2 .2 3.9.5 6.2.7l-2 3.4 3.4-.5-10.6 11.3c-4.2 3-5.4 6.4-4.2 9.3l5.4-3.4h1.2a39.4 39.4 0 0 1 25.3-15.2v-3c6.4.5 13 1 19.4 1.2 6.4 0 8.4.5 5.4 1.2a189.6 189.6 0 0 1 20.7 13.5c13.5 10.1 23.6 21.9 30 35.4 8.8 18.2 13.5 37.1 13.5 56.6a141.13 141.13 0 0 1-3 28.3 209.91 209.91 0 0 1-16 46l2.5.5c18.2-19.7 41.9-16 49.2-16l-6.4 5.9 22.4 17.7-1.7 30.7c-5.4-12.3-16.5-21.1-33-27.8 16.5 14.8 23.6 21.1 21.9 20.2-4.8-2.8-3.5-1.9-10.8-3.7 4.1 4.1 17.5 18.8 18.2 20.7l.2.2-.2.2c0 1.8 1.6-1.2-14 22.9-75.2-15.3-106.27-42.7-141.2-63.2l11.8 1.2c-11.8-18.5-15.6-17.7-38.4-26.1L149 225c-8.8-3-18.2-3-28.3.5l7.6-10.6-1.2-1.7c-14.9 4.3-19.8 9.2-22.6 11.3-1.1-5.5-2.8-12.4-12.3-28.8l-1.2 27-13.2-5c1.5-25.2 5.4-50.5 13.2-74.6zm276.5 330c-49.9 25-56.1 22.4-59 23.9-29.8-11.8-50.9-31.7-63.5-58.8l30 16.5c-9.8-9.3-18.3-16.5-38.4-44.3l11.8 23.1-17.7-7.6c14.2 21.1 23.5 51.7 66.6 73.5-120.8 24.2-199-72.1-200.9-74.3a262.57 262.57 0 0 0 35.4 24.8c3.4 1.7 7.1 2.5 10.1 1.2l-16-20.7c9.2 4.2 9.5 4.5 69.1 29-42.5-20.7-73.8-40.8-93.2-60.2-.5 6.4-1.2 10.1-1.2 10.1a80.25 80.25 0 0 1 20.7 26.6c-39-18.9-57.6-47.6-71.3-82.6 49.9 55.1 118.9 37.5 120.5 37.1 34.8 16.4 69.9 23.6 113.9 10.6 3.3 0 20.3 17 25.3 39.1l4.2-3-2.5-23.6c9 9 24.9 22.6 34.4 13-15.6-5.3-23.5-9.5-29.5-31.7 4.6 4.2 7.6 9 27.8 15l1.2-1.2-10.5-14.2c11.7-4.8-3.5 1 32-10.8 4.3 34.3 9 49.2.7 89.5zm115.3-214.4l-2.5.5 3 9.3c-3.5 5.9-23.7 44.3-71.6 79.7-39.5 29.8-76.6 39.1-80.9 40.3l-7.6-7.1-1.2 3 14.3 16-7.1-4.7 3.4 4.2h-1.2l-21.9-13.5 9.3 26.6-19-27.9-1.2 2.5 7.6 29c-6.1-8.2-21-32.6-56.8-39.6l32.5 21.2a214.82 214.82 0 0 1-93.2-6.4c-4.2-1.2-8.9-2.5-13.5-4.2l1.2-3-44.8-22.4 26.1 22.4c-57.7 9.1-113-25.4-126.4-83.4l-2.5-16.4-22.27 22.3c19.5-57.5 25.6-57.9 51.4-70.1-9.1-5.3-1.6-3.3-38.4-9.3 15.8-5.8 33-15.4 73 5.2a18.5 18.5 0 0 1 3.7-1.7c.6-3.2.4-.8 1-11.8 3.9 10 3.6 8.7 3 9.3l1.7.5c12.7-6.5 8.9-4.5 17-8.9l-5.4 13.5 22.3-5.8-8.4 8.4 2.5 2.5c4.5-1.8 30.3 3.4 40.8 16l-23.6-2.5c39.4 23 51.5 54 55.8 69.6l1.7-1.2c-2.8-22.3-12.4-33.9-16-40.1 4.2 5 39.2 34.6 110.4 46-11.3-.5-23.1 5.4-34.9 18.9l46.7-20.2-9.3 21.9c7.6-10.1 14.8-23.6 21.2-39.6v-.5l1.2-3-1.2 16c13.5-41.8 25.3-78.5 35.4-109.7l13.5-27.8v-2l-5.4-4.2h10.1l5.9 4.2 2.5-1.2-3.4-16 12.3 18.9 41.8-20.2-14.8 13 .5 2.9 17.7-.5a184 184 0 0 1 33 4.2l-23.6 2.5-1.2 3 26.6 23.1a254.21 254.21 0 0 1 27 32c-11.2-3.3-10.3-3.4-21.2-3.4l12.3 32.5zm-6.1-71.3l-3.9 13-14.3-11.8zm-254.8 7.1c1.7 10.6 4.7 17.7 8.8 21.9-9.3 6.6-27.5 13.9-46.5 16l.5 1.2a50.22 50.22 0 0 0 24.8-2.5l-7.1 13c4.2-1.7 10.1-7.1 17.7-14.8 11.9-5.5 12.7-5.1 20.2-16-12.7-6.4-15.7-13.7-18.4-18.8zm3.7-102.3c-6.4-3.4-10.6 3-12.3 18.9s2.5 29.5 11.8 39.6 18.2 10.6 26.1 3 3.4-23.6-11.3-47.7a39.57 39.57 0 0 0-14.27-13.8zm-4.7 46.3c5.4 2.2 10.5 1.9 12.3-10.6v-4.7l-1.2.5c-4.3-3.1-2.5-4.5-1.7-6.2l.5-.5c-.9-1.2-5-8.1-12.5 4.7-.5-13.5.5-21.9 3-24.8 1.2-2.5 4.7-1.2 11.3 4.2 6.4 5.4 11.3 16 15.2 32.5 6.5 28-19.8 26.2-26.9 4.9zm-45-5.5c1.6.3 9.3-1.1 9.3-14.8h-.5c-5.4-1.1-2.2-5.5-.7-5.9-1.7-3-3.4-4.2-5.4-4.7-8.1 0-11.6 12.7-8.1 21.2a7.51 7.51 0 0 0 5.43 4.2zM216 82.9l-2.5.5.5 3a48.94 48.94 0 0 1 26.1 5.9c-2.5-5.5-10-14.3-28.3-14.3l.5 2.5zm-71.8 49.4c21.7 16.8 16.5 21.4 46.5 23.6l-2.9-4.7a42.67 42.67 0 0 0 14.8-28.3c1.7-16-1.2-29.5-8.8-41.3l13-7.6a2.26 2.26 0 0 0-.5-1.7 14.21 14.21 0 0 0-13.5 1.7c-12.7 6.7-28 20.9-29 22.4-1.7 1.7-3.4 5.9-5.4 13.5a99.61 99.61 0 0 0-2.9 23.6c-4.7-8-10.5-6.4-19.9-5.9l7.1 7.6c-16.5 0-23.3 15.4-23.6 16 6.8 0 4.6-7.6 30-12.3-4.3-6.3-3.3-5-4.9-6.6zm18.7-18.7c1.2-7.6 3.4-13 6.4-17.2 5.4-6.4 10.6-10.1 16-11.8 4.2-1.7 7.1 1.2 10.1 9.3a72.14 72.14 0 0 1 3 25.3c-.5 9.3-3.4 17.2-8.4 23.1-2.9 3.4-5.4 5.9-6.4 7.6a39.21 39.21 0 0 1-11.3-.5l-7.1-3.4-5.4-6.4c.8-10 1.3-18.8 3.1-26zm42 56.1c-34.8 14.4-34.7 14-36.1 14.3-20.8 4.7-19-24.4-18.9-24.8l5.9-1.2-.5-2.5c-20.2-2.6-31 4.2-32.5 4.9.5.5 3 3.4 5.9 9.3 4.2-6.4 8.8-10.1 15.2-10.6a83.47 83.47 0 0 0 1.7 33.7c.1.5 2.6 17.4 27.5 24.1 11.3 3 27 1.2 48.9-5.4l-9.2.5c-4.2-14.8-6.4-24.8-5.9-29.5 11.3-8.8 21.9-11.3 30.7-7.6h2.5l-11.8-7.6-7.1.5c-5.9 1.2-12.3 4.2-19.4 8.4z"], - "square-hacker-news": [448, 512, ["hacker-news-square"], "f3af", "M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM21 229.2c0 0 .1-.1 .1-.2s.1-.2 .2-.2c0 .1 0 .3-.1 .4H21zM239.2 384H207.8V281.3L128 128h37.3c41.5 77.7 48.1 95.8 54.1 112c1.6 4.3 3.1 8.5 5.2 13.6c3.2-7 5.1-11.9 7.1-17.3c5.9-15.3 12.8-33.2 53.5-108.3H320L239.2 283.1V384z"], - "edge": [512, 512, [], "f282", "M120.1 37.44C161.1 12.23 207.7-.7753 255 .0016C423 .0016 512 123.8 512 219.5C511.9 252.2 499 283.4 476.1 306.7C453.2 329.9 422.1 343.2 389.4 343.7C314.2 343.7 297.9 320.6 297.9 311.7C297.9 307.9 299.1 305.5 302.7 302.3L303.7 301.1L304.1 299.5C314.6 288 320 273.3 320 257.9C320 179.2 237.8 115.2 136 115.2C98.46 114.9 61.46 124.1 28.48 142.1C55.48 84.58 111.2 44.5 119.8 38.28C120.6 37.73 120.1 37.44 120.1 37.44V37.44zM135.7 355.5C134.3 385.5 140.3 415.5 152.1 442.7C165.7 469.1 184.8 493.7 208.6 512C149.1 500.5 97.11 468.1 59.2 422.7C21.12 376.3 0 318.4 0 257.9C0 206.7 62.4 163.5 136 163.5C172.6 162.9 208.4 174.4 237.8 196.2L234.2 197.4C182.7 215 135.7 288.1 135.7 355.5V355.5zM469.8 400L469.1 400.1C457.3 418.9 443.2 435.2 426.9 449.6C396.1 477.6 358.8 495.1 318.1 499.5C299.5 499.8 281.3 496.3 264.3 488.1C238.7 477.8 217.2 458.1 202.7 435.1C188.3 411.2 181.6 383.4 183.7 355.5C183.1 335.4 189.1 315.2 198.7 297.3C212.6 330.4 236.2 358.6 266.3 378.1C296.4 397.6 331.8 407.6 367.7 406.7C398.7 407 429.8 400 457.9 386.2L459.8 385.3C463.7 383 467.5 381.4 471.4 385.3C475.9 390.2 473.2 394.5 470.2 399.3C470 399.5 469.9 399.8 469.8 400V400z"], - "threads": [448, 512, [], "e618", "M331.5 235.7c2.2 .9 4.2 1.9 6.3 2.8c29.2 14.1 50.6 35.2 61.8 61.4c15.7 36.5 17.2 95.8-30.3 143.2c-36.2 36.2-80.3 52.5-142.6 53h-.3c-70.2-.5-124.1-24.1-160.4-70.2c-32.3-41-48.9-98.1-49.5-169.6V256v-.2C17 184.3 33.6 127.2 65.9 86.2C102.2 40.1 156.2 16.5 226.4 16h.3c70.3 .5 124.9 24 162.3 69.9c18.4 22.7 32 50 40.6 81.7l-40.4 10.8c-7.1-25.8-17.8-47.8-32.2-65.4c-29.2-35.8-73-54.2-130.5-54.6c-57 .5-100.1 18.8-128.2 54.4C72.1 146.1 58.5 194.3 58 256c.5 61.7 14.1 109.9 40.3 143.3c28 35.6 71.2 53.9 128.2 54.4c51.4-.4 85.4-12.6 113.7-40.9c32.3-32.2 31.7-71.8 21.4-95.9c-6.1-14.2-17.1-26-31.9-34.9c-3.7 26.9-11.8 48.3-24.7 64.8c-17.1 21.8-41.4 33.6-72.7 35.3c-23.6 1.3-46.3-4.4-63.9-16c-20.8-13.8-33-34.8-34.3-59.3c-2.5-48.3 35.7-83 95.2-86.4c21.1-1.2 40.9-.3 59.2 2.8c-2.4-14.8-7.3-26.6-14.6-35.2c-10-11.7-25.6-17.7-46.2-17.8H227c-16.6 0-39 4.6-53.3 26.3l-34.4-23.6c19.2-29.1 50.3-45.1 87.8-45.1h.8c62.6 .4 99.9 39.5 103.7 107.7l-.2 .2zm-156 68.8c1.3 25.1 28.4 36.8 54.6 35.3c25.6-1.4 54.6-11.4 59.5-73.2c-13.2-2.9-27.8-4.4-43.4-4.4c-4.8 0-9.6 .1-14.4 .4c-42.9 2.4-57.2 23.2-56.2 41.8l-.1 .1z"], - "napster": [496, 512, [], "f3d2", "M298.3 373.6c-14.2 13.6-31.3 24.1-50.4 30.5-19-6.4-36.2-16.9-50.3-30.5h100.7zm44-199.6c20-16.9 43.6-29.2 69.6-36.2V299c0 219.4-328 217.6-328 .3V137.7c25.9 6.9 49.6 19.6 69.5 36.4 56.8-40 132.5-39.9 188.9-.1zm-208.8-58.5c64.4-60 164.3-60.1 228.9-.2-7.1 3.5-13.9 7.3-20.6 11.5-58.7-30.5-129.2-30.4-187.9.1-6.3-4-13.9-8.2-20.4-11.4zM43.8 93.2v69.3c-58.4 36.5-58.4 121.1.1 158.3 26.4 245.1 381.7 240.3 407.6 1.5l.3-1.7c58.7-36.3 58.9-121.7.2-158.2V93.2c-17.3.5-34 3-50.1 7.4-82-91.5-225.5-91.5-307.5.1-16.3-4.4-33.1-7-50.6-7.5zM259.2 352s36-.3 61.3-1.5c10.2-.5 21.1-4 25.5-6.5 26.3-15.1 25.4-39.2 26.2-47.4-79.5-.6-99.9-3.9-113 55.4zm-135.5-55.3c.8 8.2-.1 32.3 26.2 47.4 4.4 2.5 15.2 6 25.5 6.5 25.3 1.1 61.3 1.5 61.3 1.5-13.2-59.4-33.7-56.1-113-55.4zm169.1 123.4c-3.2-5.3-6.9-7.3-6.9-7.3-24.8 7.3-52.2 6.9-75.9 0 0 0-2.9 1.5-6.4 6.6-2.8 4.1-3.7 9.6-3.7 9.6 29.1 17.6 67.1 17.6 96.2 0-.1-.1-.3-4-3.3-8.9z"], - "square-snapchat": [448, 512, ["snapchat-square"], "f2ad", "M384,32H64A64,64,0,0,0,0,96V416a64,64,0,0,0,64,64H384a64,64,0,0,0,64-64V96A64,64,0,0,0,384,32Zm-3.907,319.309-.083.1a32.364,32.364,0,0,1-8.717,6.823,90.26,90.26,0,0,1-20.586,8.2,12.694,12.694,0,0,0-3.852,1.76c-2.158,1.909-2.1,4.64-4.4,8.55a23.137,23.137,0,0,1-6.84,7.471c-6.707,4.632-14.244,4.923-22.23,5.23-7.214.274-15.39.581-24.729,3.669-3.761,1.245-7.753,3.694-12.377,6.533-11.265,6.9-26.68,16.353-52.3,16.353s-40.925-9.4-52.106-16.279c-4.657-2.888-8.675-5.362-12.543-6.64-9.339-3.08-17.516-3.4-24.729-3.67-7.986-.307-15.523-.6-22.231-5.229a23.085,23.085,0,0,1-6.01-6.11c-3.2-4.632-2.855-7.8-5.254-9.895a13.428,13.428,0,0,0-4.1-1.834,89.986,89.986,0,0,1-20.313-8.127,32.905,32.905,0,0,1-8.3-6.284c-6.583-6.757-8.276-14.776-5.686-21.824,3.436-9.338,11.571-12.111,19.4-16.262,14.776-8.027,26.348-18.055,34.433-29.884a68.236,68.236,0,0,0,5.985-10.567c.789-2.158.772-3.329.241-4.416a7.386,7.386,0,0,0-2.208-2.217c-2.532-1.676-5.113-3.353-6.882-4.5-3.27-2.141-5.868-3.818-7.529-4.98-6.267-4.383-10.65-9.04-13.4-14.245a28.4,28.4,0,0,1-1.369-23.584c4.134-10.924,14.469-17.706,26.978-17.706a37.141,37.141,0,0,1,7.845.83c.689.15,1.37.307,2.042.482-.108-7.43.058-15.357.722-23.119,2.358-27.261,11.912-41.589,21.874-52.994a86.836,86.836,0,0,1,22.28-17.931C188.254,100.383,205.312,96,224,96s35.828,4.383,50.944,13.016a87.169,87.169,0,0,1,22.239,17.9c9.961,11.406,19.516,25.709,21.874,52.995a231.194,231.194,0,0,1,.713,23.118c.673-.174,1.362-.332,2.051-.481a37.131,37.131,0,0,1,7.844-.83c12.5,0,22.82,6.782,26.971,17.706a28.37,28.37,0,0,1-1.4,23.559c-2.74,5.2-7.123,9.861-13.39,14.244-1.668,1.187-4.258,2.864-7.529,4.981-1.835,1.187-4.541,2.947-7.164,4.682a6.856,6.856,0,0,0-1.951,2.034c-.506,1.046-.539,2.191.166,4.208a69.015,69.015,0,0,0,6.085,10.792c8.268,12.1,20.188,22.313,35.454,30.407,1.486.772,2.98,1.5,4.441,2.258.722.332,1.569.763,2.491,1.3,4.9,2.723,9.2,6.01,11.455,12.153C387.821,336.915,386.269,344.7,380.093,351.309Zm-16.719-18.461c-50.313-24.314-58.332-61.918-58.689-64.749-.431-3.379-.921-6.035,2.806-9.472,3.594-3.328,19.541-13.19,23.965-16.278,7.33-5.114,10.534-10.219,8.16-16.495-1.66-4.316-5.686-5.976-9.961-5.976a18.5,18.5,0,0,0-3.993.448c-8.035,1.743-15.838,5.769-20.354,6.857a7.1,7.1,0,0,1-1.66.224c-2.408,0-3.279-1.071-3.088-3.968.564-8.783,1.759-25.925.373-41.937-1.884-22.032-8.99-32.948-17.432-42.6-4.051-4.624-23.135-24.654-59.536-24.654S168.53,134.359,164.479,139c-8.434,9.654-15.531,20.57-17.432,42.6-1.386,16.013-.141,33.147.373,41.937.166,2.756-.68,3.968-3.088,3.968a7.1,7.1,0,0,1-1.66-.224c-4.507-1.087-12.31-5.113-20.346-6.856a18.494,18.494,0,0,0-3.993-.449c-4.25,0-8.3,1.636-9.961,5.977-2.374,6.276.847,11.381,8.168,16.494,4.425,3.088,20.371,12.958,23.966,16.279,3.719,3.437,3.237,6.093,2.805,9.471-.356,2.79-8.384,40.394-58.689,64.749-2.946,1.428-7.96,4.45.88,9.331,13.88,7.628,23.111,6.807,30.3,11.43,6.093,3.927,2.5,12.394,6.923,15.449,5.454,3.76,21.583-.266,42.335,6.6,17.433,5.744,28.116,22.015,58.963,22.015s41.788-16.3,58.938-21.973c20.795-6.865,36.89-2.839,42.336-6.6,4.433-3.055.822-11.522,6.923-15.448,7.181-4.624,16.411-3.8,30.3-11.472C371.36,337.355,366.346,334.333,363.374,332.848Z"], - "google-plus-g": [640, 512, [], "f0d5", "M386.061 228.496c1.834 9.692 3.143 19.384 3.143 31.956C389.204 370.205 315.599 448 204.8 448c-106.084 0-192-85.915-192-192s85.916-192 192-192c51.864 0 95.083 18.859 128.611 50.292l-52.126 50.03c-14.145-13.621-39.028-29.599-76.485-29.599-65.484 0-118.92 54.221-118.92 121.277 0 67.056 53.436 121.277 118.92 121.277 75.961 0 104.513-54.745 108.965-82.773H204.8v-66.009h181.261zm185.406 6.437V179.2h-56.001v55.733h-55.733v56.001h55.733v55.733h56.001v-55.733H627.2v-56.001h-55.733z"], - "artstation": [512, 512, [], "f77a", "M2 377.4l43 74.3A51.35 51.35 0 0 0 90.9 480h285.4l-59.2-102.6zM501.8 350L335.6 59.3A51.38 51.38 0 0 0 290.2 32h-88.4l257.3 447.6 40.7-70.5c1.9-3.2 21-29.7 2-59.1zM275 304.5l-115.5-200L44 304.5z"], - "markdown": [640, 512, [], "f60f", "M593.8 59.1H46.2C20.7 59.1 0 79.8 0 105.2v301.5c0 25.5 20.7 46.2 46.2 46.2h547.7c25.5 0 46.2-20.7 46.1-46.1V105.2c0-25.4-20.7-46.1-46.2-46.1zM338.5 360.6H277v-120l-61.5 76.9-61.5-76.9v120H92.3V151.4h61.5l61.5 76.9 61.5-76.9h61.5v209.2zm135.3 3.1L381.5 256H443V151.4h61.5V256H566z"], - "sourcetree": [448, 512, [], "f7d3", "M427.2 203c0-112.1-90.9-203-203-203C112.1-.2 21.2 90.6 21 202.6A202.86 202.86 0 0 0 161.5 396v101.7a14.3 14.3 0 0 0 14.3 14.3h96.4a14.3 14.3 0 0 0 14.3-14.3V396.1A203.18 203.18 0 0 0 427.2 203zm-271.6 0c0-90.8 137.3-90.8 137.3 0-.1 89.9-137.3 91-137.3 0z"], - "google-plus": [512, 512, [], "f2b3", "M256,8C119.1,8,8,119.1,8,256S119.1,504,256,504,504,392.9,504,256,392.9,8,256,8ZM185.3,380a124,124,0,0,1,0-248c31.3,0,60.1,11,83,32.3l-33.6,32.6c-13.2-12.9-31.3-19.1-49.4-19.1-42.9,0-77.2,35.5-77.2,78.1S142.3,334,185.3,334c32.6,0,64.9-19.1,70.1-53.3H185.3V238.1H302.2a109.2,109.2,0,0,1,1.9,20.7c0,70.8-47.5,121.2-118.8,121.2ZM415.5,273.8v35.5H380V273.8H344.5V238.3H380V202.8h35.5v35.5h35.2v35.5Z"], - "diaspora": [512, 512, [], "f791", "M251.64 354.55c-1.4 0-88 119.9-88.7 119.9S76.34 414 76 413.25s86.6-125.7 86.6-127.4c0-2.2-129.6-44-137.6-47.1-1.3-.5 31.4-101.8 31.7-102.1.6-.7 144.4 47 145.5 47 .4 0 .9-.6 1-1.3.4-2 1-148.6 1.7-149.6.8-1.2 104.5-.7 105.1-.3 1.5 1 3.5 156.1 6.1 156.1 1.4 0 138.7-47 139.3-46.3.8.9 31.9 102.2 31.5 102.6-.9.9-140.2 47.1-140.6 48.8-.3 1.4 82.8 122.1 82.5 122.9s-85.5 63.5-86.3 63.5c-1-.2-89-125.5-90.9-125.5z"], - "foursquare": [368, 512, [], "f180", "M323.1 3H49.9C12.4 3 0 31.3 0 49.1v433.8c0 20.3 12.1 27.7 18.2 30.1 6.2 2.5 22.8 4.6 32.9-7.1C180 356.5 182.2 354 182.2 354c3.1-3.4 3.4-3.1 6.8-3.1h83.4c35.1 0 40.6-25.2 44.3-39.7l48.6-243C373.8 25.8 363.1 3 323.1 3zm-16.3 73.8l-11.4 59.7c-1.2 6.5-9.5 13.2-16.9 13.2H172.1c-12 0-20.6 8.3-20.6 20.3v13c0 12 8.6 20.6 20.6 20.6h90.4c8.3 0 16.6 9.2 14.8 18.2-1.8 8.9-10.5 53.8-11.4 58.8-.9 4.9-6.8 13.5-16.9 13.5h-73.5c-13.5 0-17.2 1.8-26.5 12.6 0 0-8.9 11.4-89.5 108.3-.9.9-1.8.6-1.8-.3V75.9c0-7.7 6.8-16.6 16.6-16.6h219c8.2 0 15.6 7.7 13.5 17.5z"], - "stack-overflow": [384, 512, [], "f16c", "M290.7 311L95 269.7 86.8 309l195.7 41zm51-87L188.2 95.7l-25.5 30.8 153.5 128.3zm-31.2 39.7L129.2 179l-16.7 36.5L293.7 300zM262 32l-32 24 119.3 160.3 32-24zm20.5 328h-200v39.7h200zm39.7 80H42.7V320h-40v160h359.5V320h-40z"], - "github-alt": [480, 512, [], "f113", "M186.1 328.7c0 20.9-10.9 55.1-36.7 55.1s-36.7-34.2-36.7-55.1 10.9-55.1 36.7-55.1 36.7 34.2 36.7 55.1zM480 278.2c0 31.9-3.2 65.7-17.5 95-37.9 76.6-142.1 74.8-216.7 74.8-75.8 0-186.2 2.7-225.6-74.8-14.6-29-20.2-63.1-20.2-95 0-41.9 13.9-81.5 41.5-113.6-5.2-15.8-7.7-32.4-7.7-48.8 0-21.5 4.9-32.3 14.6-51.8 45.3 0 74.3 9 108.8 36 29-6.9 58.8-10 88.7-10 27 0 54.2 2.9 80.4 9.2 34-26.7 63-35.2 107.8-35.2 9.8 19.5 14.6 30.3 14.6 51.8 0 16.4-2.6 32.7-7.7 48.2 27.5 32.4 39 72.3 39 114.2zm-64.3 50.5c0-43.9-26.7-82.6-73.5-82.6-18.9 0-37 3.4-56 6-14.9 2.3-29.8 3.2-45.1 3.2-15.2 0-30.1-.9-45.1-3.2-18.7-2.6-37-6-56-6-46.8 0-73.5 38.7-73.5 82.6 0 87.8 80.4 101.3 150.4 101.3h48.2c70.3 0 150.6-13.4 150.6-101.3zm-82.6-55.1c-25.8 0-36.7 34.2-36.7 55.1s10.9 55.1 36.7 55.1 36.7-34.2 36.7-55.1-10.9-55.1-36.7-55.1z"], - "phoenix-squadron": [512, 512, [], "f511", "M96 63.38C142.49 27.25 201.55 7.31 260.51 8.81c29.58-.38 59.11 5.37 86.91 15.33-24.13-4.63-49-6.34-73.38-2.45C231.17 27 191 48.84 162.21 80.87c5.67-1 10.78-3.67 16-5.86 18.14-7.87 37.49-13.26 57.23-14.83 19.74-2.13 39.64-.43 59.28 1.92-14.42 2.79-29.12 4.57-43 9.59-34.43 11.07-65.27 33.16-86.3 62.63-13.8 19.71-23.63 42.86-24.67 67.13-.35 16.49 5.22 34.81 19.83 44a53.27 53.27 0 0 0 37.52 6.74c15.45-2.46 30.07-8.64 43.6-16.33 11.52-6.82 22.67-14.55 32-24.25 3.79-3.22 2.53-8.45 2.62-12.79-2.12-.34-4.38-1.11-6.3.3a203 203 0 0 1-35.82 15.37c-20 6.17-42.16 8.46-62.1.78 12.79 1.73 26.06.31 37.74-5.44 20.23-9.72 36.81-25.2 54.44-38.77a526.57 526.57 0 0 1 88.9-55.31c25.71-12 52.94-22.78 81.57-24.12-15.63 13.72-32.15 26.52-46.78 41.38-14.51 14-27.46 29.5-40.11 45.18-3.52 4.6-8.95 6.94-13.58 10.16a150.7 150.7 0 0 0-51.89 60.1c-9.33 19.68-14.5 41.85-11.77 63.65 1.94 13.69 8.71 27.59 20.9 34.91 12.9 8 29.05 8.07 43.48 5.1 32.8-7.45 61.43-28.89 81-55.84 20.44-27.52 30.52-62.2 29.16-96.35-.52-7.5-1.57-15-1.66-22.49 8 19.48 14.82 39.71 16.65 60.83 2 14.28.75 28.76-1.62 42.9-1.91 11-5.67 21.51-7.78 32.43a165 165 0 0 0 39.34-81.07 183.64 183.64 0 0 0-14.21-104.64c20.78 32 32.34 69.58 35.71 107.48.49 12.73.49 25.51 0 38.23A243.21 243.21 0 0 1 482 371.34c-26.12 47.34-68 85.63-117.19 108-78.29 36.23-174.68 31.32-248-14.68A248.34 248.34 0 0 1 25.36 366 238.34 238.34 0 0 1 0 273.08v-31.34C3.93 172 40.87 105.82 96 63.38m222 80.33a79.13 79.13 0 0 0 16-4.48c5-1.77 9.24-5.94 10.32-11.22-8.96 4.99-17.98 9.92-26.32 15.7z"], - "pagelines": [384, 512, [], "f18c", "M384 312.7c-55.1 136.7-187.1 54-187.1 54-40.5 81.8-107.4 134.4-184.6 134.7-16.1 0-16.6-24.4 0-24.4 64.4-.3 120.5-42.7 157.2-110.1-41.1 15.9-118.6 27.9-161.6-82.2 109-44.9 159.1 11.2 178.3 45.5 9.9-24.4 17-50.9 21.6-79.7 0 0-139.7 21.9-149.5-98.1 119.1-47.9 152.6 76.7 152.6 76.7 1.6-16.7 3.3-52.6 3.3-53.4 0 0-106.3-73.7-38.1-165.2 124.6 43 61.4 162.4 61.4 162.4.5 1.6.5 23.8 0 33.4 0 0 45.2-89 136.4-57.5-4.2 134-141.9 106.4-141.9 106.4-4.4 27.4-11.2 53.4-20 77.5 0 0 83-91.8 172-20z"], - "algolia": [512, 512, [], "f36c", "M256 0C116.1 0 2 112.7 0 252.1C-2 393.6 112.9 510.8 254.5 511.6c43.7 .3 85.9-10.4 123.3-30.7c3.6-2 4.2-7 1.1-9.7l-24-21.2c-4.9-4.3-11.8-5.5-17.8-3c-26.1 11.1-54.5 16.8-83.7 16.4C139 461.9 46.5 366.8 48.3 252.4C50.1 139.5 142.6 48.2 256 48.2H463.7V417.2L345.9 312.5c-3.8-3.4-9.7-2.7-12.7 1.3c-18.9 25-49.7 40.6-83.9 38.2c-47.5-3.3-85.9-41.5-89.5-88.9c-4.2-56.6 40.6-103.9 96.3-103.9c50.4 0 91.9 38.8 96.2 88c.4 4.4 2.4 8.5 5.7 11.4l30.7 27.2c3.5 3.1 9 1.2 9.9-3.4c2.2-11.8 3-24.2 2.1-36.8c-4.9-72-63.3-130-135.4-134.4c-82.7-5.1-151.8 59.5-154 140.6c-2.1 78.9 62.6 147 141.6 148.7c33 .7 63.6-9.6 88.3-27.6L495 509.4c6.6 5.8 17 1.2 17-7.7V9.7c0-5.4-4.4-9.7-9.7-9.7H256z"], - "red-river": [448, 512, [], "f3e3", "M353.2 32H94.8C42.4 32 0 74.4 0 126.8v258.4C0 437.6 42.4 480 94.8 480h258.4c52.4 0 94.8-42.4 94.8-94.8V126.8c0-52.4-42.4-94.8-94.8-94.8zM144.9 200.9v56.3c0 27-21.9 48.9-48.9 48.9V151.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9h-56.3c-12.3-.6-24.6 11.6-24 24zm176.3 72h-56.3c-12.3-.6-24.6 11.6-24 24v56.3c0 27-21.9 48.9-48.9 48.9V247.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9z"], - "creative-commons-sa": [496, 512, [], "f4ef", "M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zM137.7 221c13-83.9 80.5-95.7 108.9-95.7 99.8 0 127.5 82.5 127.5 134.2 0 63.6-41 132.9-128.9 132.9-38.9 0-99.1-20-109.4-97h62.5c1.5 30.1 19.6 45.2 54.5 45.2 23.3 0 58-18.2 58-82.8 0-82.5-49.1-80.6-56.7-80.6-33.1 0-51.7 14.6-55.8 43.8h18.2l-49.2 49.2-49-49.2h19.4z"], - "safari": [512, 512, [], "f267", "M274.69,274.69l-37.38-37.38L166,346ZM256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8ZM411.85,182.79l14.78-6.13A8,8,0,0,1,437.08,181h0a8,8,0,0,1-4.33,10.46L418,197.57a8,8,0,0,1-10.45-4.33h0A8,8,0,0,1,411.85,182.79ZM314.43,94l6.12-14.78A8,8,0,0,1,331,74.92h0a8,8,0,0,1,4.33,10.45l-6.13,14.78a8,8,0,0,1-10.45,4.33h0A8,8,0,0,1,314.43,94ZM256,60h0a8,8,0,0,1,8,8V84a8,8,0,0,1-8,8h0a8,8,0,0,1-8-8V68A8,8,0,0,1,256,60ZM181,74.92a8,8,0,0,1,10.46,4.33L197.57,94a8,8,0,1,1-14.78,6.12l-6.13-14.78A8,8,0,0,1,181,74.92Zm-63.58,42.49h0a8,8,0,0,1,11.31,0L140,128.72A8,8,0,0,1,140,140h0a8,8,0,0,1-11.31,0l-11.31-11.31A8,8,0,0,1,117.41,117.41ZM60,256h0a8,8,0,0,1,8-8H84a8,8,0,0,1,8,8h0a8,8,0,0,1-8,8H68A8,8,0,0,1,60,256Zm40.15,73.21-14.78,6.13A8,8,0,0,1,74.92,331h0a8,8,0,0,1,4.33-10.46L94,314.43a8,8,0,0,1,10.45,4.33h0A8,8,0,0,1,100.15,329.21Zm4.33-136h0A8,8,0,0,1,94,197.57l-14.78-6.12A8,8,0,0,1,74.92,181h0a8,8,0,0,1,10.45-4.33l14.78,6.13A8,8,0,0,1,104.48,193.24ZM197.57,418l-6.12,14.78a8,8,0,0,1-14.79-6.12l6.13-14.78A8,8,0,1,1,197.57,418ZM264,444a8,8,0,0,1-8,8h0a8,8,0,0,1-8-8V428a8,8,0,0,1,8-8h0a8,8,0,0,1,8,8Zm67-6.92h0a8,8,0,0,1-10.46-4.33L314.43,418a8,8,0,0,1,4.33-10.45h0a8,8,0,0,1,10.45,4.33l6.13,14.78A8,8,0,0,1,331,437.08Zm63.58-42.49h0a8,8,0,0,1-11.31,0L372,383.28A8,8,0,0,1,372,372h0a8,8,0,0,1,11.31,0l11.31,11.31A8,8,0,0,1,394.59,394.59ZM286.25,286.25,110.34,401.66,225.75,225.75,401.66,110.34ZM437.08,331h0a8,8,0,0,1-10.45,4.33l-14.78-6.13a8,8,0,0,1-4.33-10.45h0A8,8,0,0,1,418,314.43l14.78,6.12A8,8,0,0,1,437.08,331ZM444,264H428a8,8,0,0,1-8-8h0a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8h0A8,8,0,0,1,444,264Z"], - "google": [488, 512, [], "f1a0", "M488 261.8C488 403.3 391.1 504 248 504 110.8 504 0 393.2 0 256S110.8 8 248 8c66.8 0 123 24.5 166.3 64.9l-67.5 64.9C258.5 52.6 94.3 116.6 94.3 256c0 86.5 69.1 156.6 153.7 156.6 98.2 0 135-70.4 140.8-106.9H248v-85.3h236.1c2.3 12.7 3.9 24.9 3.9 41.4z"], - "square-font-awesome-stroke": [448, 512, ["font-awesome-alt"], "f35c", "M64 64C46.3 64 32 78.3 32 96l0 320c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32l0-320c0-17.7-14.3-32-32-32L64 64zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm154 58c0 9.3-4.8 17.4-12.1 22l188.9 0c7.3 0 13.2 5.9 13.2 13.2c0 1.8-.4 3.7-1.1 5.4L312 264l30.9 69.4c.8 1.7 1.1 3.5 1.1 5.4c0 7.3-5.9 13.2-13.2 13.2L144 352l0 32-32 0 0-32 0-176 0-1.5c-6.1-4.8-10-12.2-10-20.5c0-14.4 11.6-26 26-26s26 11.6 26 26z"], - "atlassian": [512, 512, [], "f77b", "M152.2 236.4c-7.7-8.2-19.7-7.7-24.8 2.8L1.6 490.2c-5 10 2.4 21.7 13.4 21.7h175c5.8.1 11-3.2 13.4-8.4 37.9-77.8 15.1-196.3-51.2-267.1zM244.4 8.1c-122.3 193.4-8.5 348.6 65 495.5 2.5 5.1 7.7 8.4 13.4 8.4H497c11.2 0 18.4-11.8 13.4-21.7 0 0-234.5-470.6-240.4-482.3-5.3-10.6-18.8-10.8-25.6.1z"], - "linkedin-in": [448, 512, [], "f0e1", "M100.28 448H7.4V148.9h92.88zM53.79 108.1C24.09 108.1 0 83.5 0 53.8a53.79 53.79 0 0 1 107.58 0c0 29.7-24.1 54.3-53.79 54.3zM447.9 448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29 0-55.69 37.7-55.69 76.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5 42.69-48.3 87.88-48.3 94 0 111.28 61.9 111.28 142.3V448z"], - "digital-ocean": [512, 512, [], "f391", "M87 481.8h73.7v-73.6H87zM25.4 346.6v61.6H87v-61.6zm466.2-169.7c-23-74.2-82.4-133.3-156.6-156.6C164.9-32.8 8 93.7 8 255.9h95.8c0-101.8 101-180.5 208.1-141.7 39.7 14.3 71.5 46.1 85.8 85.7 39.1 107-39.7 207.8-141.4 208v.3h-.3V504c162.6 0 288.8-156.8 235.6-327.1zm-235.3 231v-95.3h-95.6v95.6H256v-.3z"], - "nimblr": [384, 512, [], "f5a8", "M246.6 299.29c15.57 0 27.15 11.46 27.15 27s-11.62 27-27.15 27c-15.7 0-27.15-11.57-27.15-27s11.55-27 27.15-27zM113 326.25c0-15.61 11.68-27 27.15-27s27.15 11.46 27.15 27-11.47 27-27.15 27c-15.44 0-27.15-11.31-27.15-27M191.76 159C157 159 89.45 178.77 59.25 227L14 0v335.48C14 433.13 93.61 512 191.76 512s177.76-78.95 177.76-176.52S290.13 159 191.76 159zm0 308.12c-73.27 0-132.51-58.9-132.51-131.59s59.24-131.59 132.51-131.59 132.51 58.86 132.51 131.54S265 467.07 191.76 467.07z"], - "chromecast": [512, 512, [], "f838", "M447.8,64H64c-23.6,0-42.7,19.1-42.7,42.7v63.9H64v-63.9h383.8v298.6H298.6V448H448c23.6,0,42.7-19.1,42.7-42.7V106.7 C490.7,83.1,471.4,64,447.8,64z M21.3,383.6L21.3,383.6l0,63.9h63.9C85.2,412.2,56.6,383.6,21.3,383.6L21.3,383.6z M21.3,298.6V341 c58.9,0,106.6,48.1,106.6,107h42.7C170.7,365.6,103.7,298.7,21.3,298.6z M213.4,448h42.7c-0.5-129.5-105.3-234.3-234.8-234.6l0,42.4 C127.3,255.6,213.3,342,213.4,448z"], - "evernote": [384, 512, [], "f839", "M120.82 132.21c1.6 22.31-17.55 21.59-21.61 21.59-68.93 0-73.64-1-83.58 3.34-.56.22-.74 0-.37-.37L123.79 46.45c.38-.37.6-.22.38.37-4.35 9.99-3.35 15.09-3.35 85.39zm79 308c-14.68-37.08 13-76.93 52.52-76.62 17.49 0 22.6 23.21 7.95 31.42-6.19 3.3-24.95 1.74-25.14 19.2-.05 17.09 19.67 25 31.2 24.89A45.64 45.64 0 0 0 312 393.45v-.08c0-11.63-7.79-47.22-47.54-55.34-7.72-1.54-65-6.35-68.35-50.52-3.74 16.93-17.4 63.49-43.11 69.09-8.74 1.94-69.68 7.64-112.92-36.77 0 0-18.57-15.23-28.23-57.95-3.38-15.75-9.28-39.7-11.14-62 0-18 11.14-30.45 25.07-32.2 81 0 90 2.32 101-7.8 9.82-9.24 7.8-15.5 7.8-102.78 1-8.3 7.79-30.81 53.41-24.14 6 .86 31.91 4.18 37.48 30.64l64.26 11.15c20.43 3.71 70.94 7 80.6 57.94 22.66 121.09 8.91 238.46 7.8 238.46C362.15 485.53 267.06 480 267.06 480c-18.95-.23-54.25-9.4-67.27-39.83zm80.94-204.84c-1 1.92-2.2 6 .85 7 14.09 4.93 39.75 6.84 45.88 5.53 3.11-.25 3.05-4.43 2.48-6.65-3.53-21.85-40.83-26.5-49.24-5.92z"], - "hacker-news": [448, 512, [], "f1d4", "M0 32v448h448V32H0zm21.2 197.2H21c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4zm218 53.9V384h-31.4V281.3L128 128h37.3c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6H320l-80.8 155.1z"], - "creative-commons-sampling": [496, 512, [], "f4f0", "M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm3.6 53.2c2.8-.3 11.5 1 11.5 11.5l6.6 107.2 4.9-59.3c0-6 4.7-10.6 10.6-10.6 5.9 0 10.6 4.7 10.6 10.6 0 2.5-.5-5.7 5.7 81.5l5.8-64.2c.3-2.9 2.9-9.3 10.2-9.3 3.8 0 9.9 2.3 10.6 8.9l11.5 96.5 5.3-12.8c1.8-4.4 5.2-6.6 10.2-6.6h58v21.3h-50.9l-18.2 44.3c-3.9 9.9-19.5 9.1-20.8-3.1l-4-31.9-7.5 92.6c-.3 3-3 9.3-10.2 9.3-3 0-9.8-2.1-10.6-9.3 0-1.9.6 5.8-6.2-77.9l-5.3 72.2c-1.1 4.8-4.8 9.3-10.6 9.3-2.9 0-9.8-2-10.6-9.3 0-1.9.5 6.7-5.8-87.7l-5.8 94.8c0 6.3-3.6 12.4-10.6 12.4-5.2 0-10.6-4.1-10.6-12l-5.8-87.7c-5.8 92.5-5.3 84-5.3 85.9-1.1 4.8-4.8 9.3-10.6 9.3-3 0-9.8-2.1-10.6-9.3 0-.7-.4-1.1-.4-2.6l-6.2-88.6L182 348c-.7 6.5-6.7 9.3-10.6 9.3-5.8 0-9.6-4.1-10.6-8.9L149.7 272c-2 4-3.5 8.4-11.1 8.4H87.2v-21.3H132l13.7-27.9c4.4-9.9 18.2-7.2 19.9 2.7l3.1 20.4 8.4-97.9c0-6 4.8-10.6 10.6-10.6.5 0 10.6-.2 10.6 12.4l4.9 69.1 6.6-92.6c0-10.1 9.5-10.6 10.2-10.6.6 0 10.6.7 10.6 10.6l5.3 80.6 6.2-97.9c.1-1.1-.6-10.3 9.9-11.5z"], - "adversal": [512, 512, [], "f36a", "M482.1 32H28.7C5.8 32 0 37.9 0 60.9v390.2C0 474.4 5.8 480 28.7 480h453.4c24.4 0 29.9-5.2 29.9-29.7V62.2c0-24.6-5.4-30.2-29.9-30.2zM178.4 220.3c-27.5-20.2-72.1-8.7-84.2 23.4-4.3 11.1-9.3 9.5-17.5 8.3-9.7-1.5-17.2-3.2-22.5-5.5-28.8-11.4 8.6-55.3 24.9-64.3 41.1-21.4 83.4-22.2 125.3-4.8 40.9 16.8 34.5 59.2 34.5 128.5 2.7 25.8-4.3 58.3 9.3 88.8 1.9 4.4.4 7.9-2.7 10.7-8.4 6.7-39.3 2.2-46.6-7.4-1.9-2.2-1.8-3.6-3.9-6.2-3.6-3.9-7.3-2.2-11.9 1-57.4 36.4-140.3 21.4-147-43.3-3.1-29.3 12.4-57.1 39.6-71 38.2-19.5 112.2-11.8 114-30.9 1.1-10.2-1.9-20.1-11.3-27.3zm286.7 222c0 15.1-11.1 9.9-17.8 9.9H52.4c-7.4 0-18.2 4.8-17.8-10.7.4-13.9 10.5-9.1 17.1-9.1 132.3-.4 264.5-.4 396.8 0 6.8 0 16.6-4.4 16.6 9.9zm3.8-340.5v291c0 5.7-.7 13.9-8.1 13.9-12.4-.4-27.5 7.1-36.1-5.6-5.8-8.7-7.8-4-12.4-1.2-53.4 29.7-128.1 7.1-144.4-85.2-6.1-33.4-.7-67.1 15.7-100 11.8-23.9 56.9-76.1 136.1-30.5v-71c0-26.2-.1-26.2 26-26.2 3.1 0 6.6.4 9.7 0 10.1-.8 13.6 4.4 13.6 14.3-.1.2-.1.3-.1.5zm-51.5 232.3c-19.5 47.6-72.9 43.3-90 5.2-15.1-33.3-15.5-68.2.4-101.5 16.3-34.1 59.7-35.7 81.5-4.8 20.6 28.8 14.9 84.6 8.1 101.1zm-294.8 35.3c-7.5-1.3-33-3.3-33.7-27.8-.4-13.9 7.8-23 19.8-25.8 24.4-5.9 49.3-9.9 73.7-14.7 8.9-2 7.4 4.4 7.8 9.5 1.4 33-26.1 59.2-67.6 58.8z"], - "creative-commons": [496, 512, [], "f25e", "M245.83 214.87l-33.22 17.28c-9.43-19.58-25.24-19.93-27.46-19.93-22.13 0-33.22 14.61-33.22 43.84 0 23.57 9.21 43.84 33.22 43.84 14.47 0 24.65-7.09 30.57-21.26l30.55 15.5c-6.17 11.51-25.69 38.98-65.1 38.98-22.6 0-73.96-10.32-73.96-77.05 0-58.69 43-77.06 72.63-77.06 30.72-.01 52.7 11.95 65.99 35.86zm143.05 0l-32.78 17.28c-9.5-19.77-25.72-19.93-27.9-19.93-22.14 0-33.22 14.61-33.22 43.84 0 23.55 9.23 43.84 33.22 43.84 14.45 0 24.65-7.09 30.54-21.26l31 15.5c-2.1 3.75-21.39 38.98-65.09 38.98-22.69 0-73.96-9.87-73.96-77.05 0-58.67 42.97-77.06 72.63-77.06 30.71-.01 52.58 11.95 65.56 35.86zM247.56 8.05C104.74 8.05 0 123.11 0 256.05c0 138.49 113.6 248 247.56 248 129.93 0 248.44-100.87 248.44-248 0-137.87-106.62-248-248.44-248zm.87 450.81c-112.54 0-203.7-93.04-203.7-202.81 0-105.42 85.43-203.27 203.72-203.27 112.53 0 202.82 89.46 202.82 203.26-.01 121.69-99.68 202.82-202.84 202.82z"], - "watchman-monitoring": [512, 512, [], "e087", "M256,16C123.452,16,16,123.452,16,256S123.452,496,256,496,496,388.548,496,256,388.548,16,256,16ZM121.69,429.122C70.056,388.972,36.741,326.322,36.741,256a218.519,218.519,0,0,1,9.587-64.122l102.9-17.895-.121,10.967-13.943,2.013s-.144,12.5-.144,19.549a12.778,12.778,0,0,0,4.887,10.349l9.468,7.4Zm105.692-283.27,8.48-7.618s6.934-5.38-.143-9.344c-7.188-4.024-39.53-34.5-39.53-34.5-5.348-5.477-8.257-7.347-15.46,0,0,0-32.342,30.474-39.529,34.5-7.078,3.964-.144,9.344-.144,9.344l8.481,7.618-.048,4.369L75.982,131.045c39.644-56.938,105.532-94.3,180.018-94.3A218.754,218.754,0,0,1,420.934,111.77l-193.512,37.7Zm34.063,329.269-33.9-250.857,9.467-7.4a12.778,12.778,0,0,0,4.888-10.349c0-7.044-.144-19.549-.144-19.549l-13.943-2.013-.116-10.474,241.711,31.391A218.872,218.872,0,0,1,475.259,256C475.259,375.074,379.831,472.212,261.445,475.121Z"], - "fonticons": [448, 512, [], "f280", "M0 32v448h448V32zm187 140.9c-18.4 0-19 9.9-19 27.4v23.3c0 2.4-3.5 4.4-.6 4.4h67.4l-11.1 37.3H168v112.9c0 5.8-2 6.7 3.2 7.3l43.5 4.1v25.1H84V389l21.3-2c5.2-.6 6.7-2.3 6.7-7.9V267.7c0-2.3-2.9-2.3-5.8-2.3H84V228h28v-21c0-49.6 26.5-70 77.3-70 34.1 0 64.7 8.2 64.7 52.8l-50.7 6.1c.3-18.7-4.4-23-16.3-23zm74.3 241.8v-25.1l20.4-2.6c5.2-.6 7.6-1.7 7.6-7.3V271.8c0-4.1-2.9-6.7-6.7-7.9l-24.2-6.4 6.7-29.5h80.2v151.7c0 5.8-2.6 6.4 2.9 7.3l15.7 2.6v25.1zm80.8-255.5l9 33.2-7.3 7.3-31.2-16.6-31.2 16.6-7.3-7.3 9-33.2-21.8-24.2 3.5-9.6h27.7l15.5-28h9.3l15.5 28h27.7l3.5 9.6z"], - "weixin": [576, 512, [], "f1d7", "M385.2 167.6c6.4 0 12.6.3 18.8 1.1C387.4 90.3 303.3 32 207.7 32 100.5 32 13 104.8 13 197.4c0 53.4 29.3 97.5 77.9 131.6l-19.3 58.6 68-34.1c24.4 4.8 43.8 9.7 68.2 9.7 6.2 0 12.1-.3 18.3-.8-4-12.9-6.2-26.6-6.2-40.8-.1-84.9 72.9-154 165.3-154zm-104.5-52.9c14.5 0 24.2 9.7 24.2 24.4 0 14.5-9.7 24.2-24.2 24.2-14.8 0-29.3-9.7-29.3-24.2.1-14.7 14.6-24.4 29.3-24.4zm-136.4 48.6c-14.5 0-29.3-9.7-29.3-24.2 0-14.8 14.8-24.4 29.3-24.4 14.8 0 24.4 9.7 24.4 24.4 0 14.6-9.6 24.2-24.4 24.2zM563 319.4c0-77.9-77.9-141.3-165.4-141.3-92.7 0-165.4 63.4-165.4 141.3S305 460.7 397.6 460.7c19.3 0 38.9-5.1 58.6-9.9l53.4 29.3-14.8-48.6C534 402.1 563 363.2 563 319.4zm-219.1-24.5c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.8 0 24.4 9.7 24.4 19.3 0 10-9.7 19.6-24.4 19.6zm107.1 0c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.5 0 24.4 9.7 24.4 19.3.1 10-9.9 19.6-24.4 19.6z"], - "shirtsinbulk": [448, 512, [], "f214", "M100 410.3l30.6 13.4 4.4-9.9-30.6-13.4zm39.4 17.5l30.6 13.4 4.4-9.9-30.6-13.4zm172.1-14l4.4 9.9 30.6-13.4-4.4-9.9zM179.1 445l30.3 13.7 4.4-9.9-30.3-13.4zM60.4 392.8L91 406.2l4.4-9.6-30.6-13.7zm211.4 38.5l4.4 9.9 30.6-13.4-4.4-9.9zm-39.3 17.5l4.4 9.9 30.6-13.7-4.4-9.6zm118.4-52.2l4.4 9.6 30.6-13.4-4.4-9.9zM170 46.6h-33.5v10.5H170zm-47.2 0H89.2v10.5h33.5zm-47.3 0H42.3v10.5h33.3zm141.5 0h-33.2v10.5H217zm94.5 0H278v10.5h33.5zm47.3 0h-33.5v10.5h33.5zm-94.6 0H231v10.5h33.2zm141.5 0h-33.3v10.5h33.3zM52.8 351.1H42v33.5h10.8zm70-215.9H89.2v10.5h33.5zm-70 10.6h22.8v-10.5H42v33.5h10.8zm168.9 228.6c50.5 0 91.3-40.8 91.3-91.3 0-50.2-40.8-91.3-91.3-91.3-50.2 0-91.3 41.1-91.3 91.3 0 50.5 41.1 91.3 91.3 91.3zm-48.2-111.1c0-25.4 29.5-31.8 49.6-31.8 16.9 0 29.2 5.8 44.3 12l-8.8 16.9h-.9c-6.4-9.9-24.8-13.1-35.6-13.1-9 0-29.8 1.8-29.8 14.9 0 21.6 78.5-10.2 78.5 37.9 0 25.4-31.5 31.2-51 31.2-18.1 0-32.4-2.9-47.2-12.2l9-18.4h.9c6.1 12.2 23.6 14.9 35.9 14.9 8.7 0 32.7-1.2 32.7-14.3 0-26.1-77.6 6.3-77.6-38zM52.8 178.4H42V212h10.8zm342.4 206.2H406v-33.5h-10.8zM52.8 307.9H42v33.5h10.8zM0 3.7v406l221.7 98.6L448 409.7V3.7zm418.8 387.1L222 476.5 29.2 390.8V120.7h389.7v270.1zm0-299.3H29.2V32.9h389.7v58.6zm-366 130.1H42v33.5h10.8zm0 43.2H42v33.5h10.8zM170 135.2h-33.5v10.5H170zm225.2 163.1H406v-33.5h-10.8zm0-43.2H406v-33.5h-10.8zM217 135.2h-33.2v10.5H217zM395.2 212H406v-33.5h-10.8zm0 129.5H406V308h-10.8zm-131-206.3H231v10.5h33.2zm47.3 0H278v10.5h33.5zm83.7 33.6H406v-33.5h-33.5v10.5h22.8zm-36.4-33.6h-33.5v10.5h33.5z"], - "codepen": [512, 512, [], "f1cb", "M502.285 159.704l-234-156c-7.987-4.915-16.511-4.96-24.571 0l-234 156C3.714 163.703 0 170.847 0 177.989v155.999c0 7.143 3.714 14.286 9.715 18.286l234 156.022c7.987 4.915 16.511 4.96 24.571 0l234-156.022c6-3.999 9.715-11.143 9.715-18.286V177.989c-.001-7.142-3.715-14.286-9.716-18.285zM278 63.131l172.286 114.858-76.857 51.429L278 165.703V63.131zm-44 0v102.572l-95.429 63.715-76.857-51.429L234 63.131zM44 219.132l55.143 36.857L44 292.846v-73.714zm190 229.715L61.714 333.989l76.857-51.429L234 346.275v102.572zm22-140.858l-77.715-52 77.715-52 77.715 52-77.715 52zm22 140.858V346.275l95.429-63.715 76.857 51.429L278 448.847zm190-156.001l-55.143-36.857L468 219.132v73.714z"], - "git-alt": [448, 512, [], "f841", "M439.55 236.05L244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"], - "lyft": [512, 512, [], "f3c3", "M0 81.1h77.8v208.7c0 33.1 15 52.8 27.2 61-12.7 11.1-51.2 20.9-80.2-2.8C7.8 334 0 310.7 0 289V81.1zm485.9 173.5v-22h23.8v-76.8h-26.1c-10.1-46.3-51.2-80.7-100.3-80.7-56.6 0-102.7 46-102.7 102.7V357c16 2.3 35.4-.3 51.7-14 17.1-14 24.8-37.2 24.8-59v-6.7h38.8v-76.8h-38.8v-23.3c0-34.6 52.2-34.6 52.2 0v77.1c0 56.6 46 102.7 102.7 102.7v-76.5c-14.5 0-26.1-11.7-26.1-25.9zm-294.3-99v113c0 15.4-23.8 15.4-23.8 0v-113H91v132.7c0 23.8 8 54 45 63.9 37 9.8 58.2-10.6 58.2-10.6-2.1 13.4-14.5 23.3-34.9 25.3-15.5 1.6-35.2-3.6-45-7.8v70.3c25.1 7.5 51.5 9.8 77.6 4.7 47.1-9.1 76.8-48.4 76.8-100.8V155.1h-77.1v.5z"], - "rev": [448, 512, [], "f5b2", "M289.67 274.89a65.57 65.57 0 1 1-65.56-65.56 65.64 65.64 0 0 1 65.56 65.56zm139.55-5.05h-.13a204.69 204.69 0 0 0-74.32-153l-45.38 26.2a157.07 157.07 0 0 1 71.81 131.84C381.2 361.5 310.73 432 224.11 432S67 361.5 67 274.88c0-81.88 63-149.27 143-156.43v39.12l108.77-62.79L210 32v38.32c-106.7 7.25-191 96-191 204.57 0 111.59 89.12 202.29 200.06 205v.11h210.16V269.84z"], - "windows": [448, 512, [], "f17a", "M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z"], - "wizards-of-the-coast": [640, 512, [], "f730", "M219.19 345.69c-1.9 1.38-11.07 8.44-.26 23.57 4.64 6.42 14.11 12.79 21.73 6.55 6.5-4.88 7.35-12.92.26-23.04-5.47-7.76-14.28-12.88-21.73-7.08zm336.75 75.94c-.34 1.7-.55 1.67.79 0 2.09-4.19 4.19-10.21 4.98-19.9 3.14-38.49-40.33-71.49-101.34-78.03-54.73-6.02-124.38 9.17-188.8 60.49l-.26 1.57c2.62 4.98 4.98 10.74 3.4 21.21l.79.26c63.89-58.4 131.19-77.25 184.35-73.85 58.4 3.67 100.03 34.04 100.03 68.08-.01 9.96-2.63 15.72-3.94 20.17zM392.28 240.42c.79 7.07 4.19 10.21 9.17 10.47 5.5.26 9.43-2.62 10.47-6.55.79-3.4 2.09-29.85 2.09-29.85s-11.26 6.55-14.93 10.47c-3.66 3.68-7.33 8.39-6.8 15.46zm-50.02-151.1C137.75 89.32 13.1 226.8.79 241.2c-1.05.52-1.31.79.79 1.31 60.49 16.5 155.81 81.18 196.13 202.16l1.05.26c55.25-69.92 140.88-128.05 236.99-128.05 80.92 0 130.15 42.16 130.15 80.39 0 18.33-6.55 33.52-22.26 46.35 0 .96-.2.79.79.79 14.66-10.74 27.5-28.8 27.5-48.18 0-22.78-12.05-38.23-12.05-38.23 7.07 7.07 10.74 16.24 10.74 16.24 5.76-40.85 26.97-62.32 26.97-62.32-2.36-9.69-6.81-17.81-6.81-17.81 7.59 8.12 14.4 27.5 14.4 41.37 0 10.47-3.4 22.78-12.57 31.95l.26.52c8.12-4.98 16.5-16.76 16.5-37.97 0-15.71-4.71-25.92-4.71-25.92 5.76-5.24 11.26-9.17 15.97-11.78.79 3.4 2.09 9.69 2.36 14.93 0 1.05.79 1.83 1.05 0 .79-5.76-.26-16.24-.26-16.5 6.02-3.14 9.69-4.45 9.69-4.45C617.74 176 489.43 89.32 342.26 89.32zm-99.24 289.62c-11.06 8.99-24.2 4.08-30.64-4.19-7.45-9.58-6.76-24.09 4.19-32.47 14.85-11.35 27.08-.49 31.16 5.5.28.39 12.13 16.57-4.71 31.16zm2.09-136.43l9.43-17.81 11.78 70.96-12.57 6.02-24.62-28.8 14.14-26.71 3.67 4.45-1.83-8.11zm18.59 117.58l-.26-.26c2.05-4.1-2.5-6.61-17.54-31.69-1.31-2.36-3.14-2.88-4.45-2.62l-.26-.52c7.86-5.76 15.45-10.21 25.4-15.71l.52.26c1.31 1.83 2.09 2.88 3.4 4.71l-.26.52c-1.05-.26-2.36-.79-5.24.26-2.09.79-7.86 3.67-12.31 7.59v1.31c1.57 2.36 3.93 6.55 5.76 9.69h.26c10.05-6.28 7.56-4.55 11.52-7.86h.26c.52 1.83.52 1.83 1.83 5.5l-.26.26c-3.06.61-4.65.34-11.52 5.5v.26c9.46 17.02 11.01 16.75 12.57 15.97l.26.26c-2.34 1.59-6.27 4.21-9.68 6.57zm55.26-32.47c-3.14 1.57-6.02 2.88-9.95 4.98l-.26-.26c1.29-2.59 1.16-2.71-11.78-32.47l-.26-.26c-.15 0-8.9 3.65-9.95 7.33h-.52l-1.05-5.76.26-.52c7.29-4.56 25.53-11.64 27.76-12.57l.52.26 3.14 4.98-.26.52c-3.53-1.76-7.35.76-12.31 2.62v.26c12.31 32.01 12.67 30.64 14.66 30.64v.25zm44.77-16.5c-4.19 1.05-5.24 1.31-9.69 2.88l-.26-.26.52-4.45c-1.05-3.4-3.14-11.52-3.67-13.62l-.26-.26c-3.4.79-8.9 2.62-12.83 3.93l-.26.26c.79 2.62 3.14 9.95 4.19 13.88.79 2.36 1.83 2.88 2.88 3.14v.52c-3.67 1.05-7.07 2.62-10.21 3.93l-.26-.26c1.05-1.31 1.05-2.88.26-4.98-1.05-3.14-8.12-23.83-9.17-27.23-.52-1.83-1.57-3.14-2.62-3.14v-.52c3.14-1.05 6.02-2.09 10.74-3.4l.26.26-.26 4.71c1.31 3.93 2.36 7.59 3.14 9.69h.26c3.93-1.31 9.43-2.88 12.83-3.93l.26-.26-2.62-9.43c-.52-1.83-1.05-3.4-2.62-3.93v-.26c4.45-1.05 7.33-1.83 10.74-2.36l.26.26c-1.05 1.31-1.05 2.88-.52 4.45 1.57 6.28 4.71 20.43 6.28 26.45.54 2.62 1.85 3.41 2.63 3.93zm32.21-6.81l-.26.26c-4.71.52-14.14 2.36-22.52 4.19l-.26-.26.79-4.19c-1.57-7.86-3.4-18.59-4.98-26.19-.26-1.83-.79-2.88-2.62-3.67l.79-.52c9.17-1.57 20.16-2.36 24.88-2.62l.26.26c.52 2.36.79 3.14 1.57 5.5l-.26.26c-1.14-1.14-3.34-3.2-16.24-.79l-.26.26c.26 1.57 1.05 6.55 1.57 9.95l.26.26c9.52-1.68 4.76-.06 10.74-2.36h.26c0 1.57-.26 1.83-.26 5.24h-.26c-4.81-1.03-2.15-.9-10.21 0l-.26.26c.26 2.09 1.57 9.43 2.09 12.57l.26.26c1.15.38 14.21-.65 16.24-4.71h.26c-.53 2.38-1.05 4.21-1.58 6.04zm10.74-44.51c-4.45 2.36-8.12 2.88-11 2.88-.25.02-11.41 1.09-17.54-9.95-6.74-10.79-.98-25.2 5.5-31.69 8.8-8.12 23.35-10.1 28.54-17.02 8.03-10.33-13.04-22.31-29.59-5.76l-2.62-2.88 5.24-16.24c25.59-1.57 45.2-3.04 50.02 16.24.79 3.14 0 9.43-.26 12.05 0 2.62-1.83 18.85-2.09 23.04-.52 4.19-.79 18.33-.79 20.69.26 2.36.52 4.19 1.57 5.5 1.57 1.83 5.76 1.83 5.76 1.83l-.79 4.71c-11.82-1.07-10.28-.59-20.43-1.05-3.22-5.15-2.23-3.28-4.19-7.86 0 .01-4.19 3.94-7.33 5.51zm37.18 21.21c-6.35-10.58-19.82-7.16-21.73 5.5-2.63 17.08 14.3 19.79 20.69 10.21l.26.26c-.52 1.83-1.83 6.02-1.83 6.28l-.52.52c-10.3 6.87-28.5-2.5-25.66-18.59 1.94-10.87 14.44-18.93 28.8-9.95l.26.52c0 1.06-.27 3.41-.27 5.25zm5.77-87.73v-6.55c.69 0 19.65 3.28 27.76 7.33l-1.57 17.54s10.21-9.43 15.45-10.74c5.24-1.57 14.93 7.33 14.93 7.33l-11.26 11.26c-12.07-6.35-19.59-.08-20.69.79-5.29 38.72-8.6 42.17 4.45 46.09l-.52 4.71c-17.55-4.29-18.53-4.5-36.92-7.33l.79-4.71c7.25 0 7.48-5.32 7.59-6.81 0 0 4.98-53.16 4.98-55.25-.02-2.87-4.99-3.66-4.99-3.66zm10.99 114.44c-8.12-2.09-14.14-11-10.74-20.69 3.14-9.43 12.31-12.31 18.85-10.21 9.17 2.62 12.83 11.78 10.74 19.38-2.61 8.9-9.42 13.87-18.85 11.52zm42.16 9.69c-2.36-.52-7.07-2.36-8.64-2.88v-.26l1.57-1.83c.59-8.24.59-7.27.26-7.59-4.82-1.81-6.66-2.36-7.07-2.36-1.31 1.83-2.88 4.45-3.67 5.5l-.79 3.4v.26c-1.31-.26-3.93-1.31-6.02-1.57v-.26l2.62-1.83c3.4-4.71 9.95-14.14 13.88-20.16v-2.09l.52-.26c2.09.79 5.5 2.09 7.59 2.88.48.48.18-1.87-1.05 25.14-.24 1.81.02 2.6.8 3.91zm-4.71-89.82c11.25-18.27 30.76-16.19 34.04-3.4L539.7 198c2.34-6.25-2.82-9.9-4.45-11.26l1.83-3.67c12.22 10.37 16.38 13.97 22.52 20.43-25.91 73.07-30.76 80.81-24.62 84.32l-1.83 4.45c-6.37-3.35-8.9-4.42-17.81-8.64l2.09-6.81c-.26-.26-3.93 3.93-9.69 3.67-19.06-1.3-22.89-31.75-9.67-52.9zm29.33 79.34c0-5.71-6.34-7.89-7.86-5.24-1.31 2.09 1.05 4.98 2.88 8.38 1.57 2.62 2.62 6.28 1.05 9.43-2.64 6.34-12.4 5.31-15.45-.79 0-.7-.27.09 1.83-4.71l.79-.26c-.57 5.66 6.06 9.61 8.38 4.98 1.05-2.09-.52-5.5-2.09-8.38-1.57-2.62-3.67-6.28-1.83-9.69 2.72-5.06 11.25-4.47 14.66 2.36v.52l-2.36 3.4zm21.21 13.36c-1.96-3.27-.91-2.14-4.45-4.71h-.26c-2.36 4.19-5.76 10.47-8.64 16.24-1.31 2.36-1.05 3.4-.79 3.93l-.26.26-5.76-4.45.26-.26 2.09-1.31c3.14-5.76 6.55-12.05 9.17-17.02v-.26c-2.64-1.98-1.22-1.51-6.02-1.83v-.26l3.14-3.4h.26c3.67 2.36 9.95 6.81 12.31 8.9l.26.26-1.31 3.91zm27.23-44.26l-2.88-2.88c.79-2.36 1.83-4.98 2.09-7.59.75-9.74-11.52-11.84-11.52-4.98 0 4.98 7.86 19.38 7.86 27.76 0 10.21-5.76 15.71-13.88 16.5-8.38.79-20.16-10.47-20.16-10.47l4.98-14.4 2.88 2.09c-2.97 17.8 17.68 20.37 13.35 5.24-1.06-4.02-18.75-34.2 2.09-38.23 13.62-2.36 23.04 16.5 23.04 16.5l-7.85 10.46zm35.62-10.21c-11-30.38-60.49-127.53-191.95-129.62-53.42-1.05-94.27 15.45-132.76 37.97l85.63-9.17-91.39 20.69 25.14 19.64-3.93-16.5c7.5-1.71 39.15-8.45 66.77-8.9l-22.26 80.39c13.61-.7 18.97-8.98 19.64-22.78l4.98-1.05.26 26.71c-22.46 3.21-37.3 6.69-49.49 9.95l13.09-43.21-61.54-36.66 2.36 8.12 10.21 4.98c6.28 18.59 19.38 56.56 20.43 58.66 1.95 4.28 3.16 5.78 12.05 4.45l1.05 4.98c-16.08 4.86-23.66 7.61-39.02 14.4l-2.36-4.71c4.4-2.94 8.73-3.94 5.5-12.83-23.7-62.5-21.48-58.14-22.78-59.44l2.36-4.45 33.52 67.3c-3.84-11.87 1.68 1.69-32.99-78.82l-41.9 88.51 4.71-13.88-35.88-42.16 27.76 93.48-11.78 8.38C95 228.58 101.05 231.87 93.23 231.52c-5.5-.26-13.62 5.5-13.62 5.5L74.63 231c30.56-23.53 31.62-24.33 58.4-42.68l4.19 7.07s-5.76 4.19-7.86 7.07c-5.9 9.28 1.67 13.28 61.8 75.68l-18.85-58.92 39.8-10.21 25.66 30.64 4.45-12.31-4.98-24.62 13.09-3.4.52 3.14 3.67-10.47-94.27 29.33 11.26-4.98-13.62-42.42 17.28-9.17 30.11 36.14 28.54-13.09c-1.41-7.47-2.47-14.5-4.71-19.64l17.28 13.88 4.71-2.09-59.18-42.68 23.08 11.5c18.98-6.07 25.23-7.47 32.21-9.69l2.62 11c-12.55 12.55 1.43 16.82 6.55 19.38l-13.62-61.01 12.05 28.28c4.19-1.31 7.33-2.09 7.33-2.09l2.62 8.64s-3.14 1.05-6.28 2.09l8.9 20.95 33.78-65.73-20.69 61.01c42.42-24.09 81.44-36.66 131.98-35.88 67.04 1.05 167.33 40.85 199.8 139.83.78 2.1-.01 2.63-.79.27zM203.48 152.43s1.83-.52 4.19-1.31l9.43 7.59c-.4 0-3.44-.25-11.26 2.36l-2.36-8.64zm143.76 38.5c-1.57-.6-26.46-4.81-33.26 20.69l21.73 17.02 11.53-37.71zM318.43 67.07c-58.4 0-106.05 12.05-114.96 14.4v.79c8.38 2.09 14.4 4.19 21.21 11.78l1.57.26c6.55-1.83 48.97-13.88 110.24-13.88 180.16 0 301.67 116.79 301.67 223.37v9.95c0 1.31.79 2.62 1.05.52.52-2.09.79-8.64.79-19.64.26-83.79-96.63-227.55-321.57-227.55zm211.06 169.68c1.31-5.76 0-12.31-7.33-13.09-9.62-1.13-16.14 23.79-17.02 33.52-.79 5.5-1.31 14.93 6.02 14.93 4.68-.01 9.72-.91 18.33-35.36zm-61.53 42.95c-2.62-.79-9.43-.79-12.57 10.47-1.83 6.81.52 13.35 6.02 14.66 3.67 1.05 8.9.52 11.78-10.74 2.62-9.94-1.83-13.61-5.23-14.39zM491 300.65c1.83.52 3.14 1.05 5.76 1.83 0-1.83.52-8.38.79-12.05-1.05 1.31-5.5 8.12-6.55 9.95v.27z"], - "square-viadeo": [448, 512, ["viadeo-square"], "f2aa", "M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM118.3 381.2c-68-73.6-19.8-196.1 81.2-196.1c13.3 0 26.6 2.1 39.1 6.7c-4.3 8.4-7.3 17.6-8.4 27.1c-9.7-4.1-20.2-6-30.7-6c-48.8 0-84.6 41.7-84.6 88.9c0 43 28.5 78.7 69.5 85.9c61.5-24 72.9-117.6 72.9-175v0c0-7.3 0-14.8-.6-22.1c-11.2-32.9-26.6-64.6-44.2-94.5c27.1 18.3 41.9 62.5 44.2 94.1v.4c7.7 22.5 11.8 46.2 11.8 70c0 54.1-21.9 99-68.3 128.2l-2.4 .2c50 1 86.2-38.6 86.2-87.2c0-12.2-2.1-24.3-6.9-35.7c9.5-1.9 18.5-5.6 26.4-10.5c15.3 36.6 12.6 87.3-22.8 125.6c-42.4 46.2-120 46.6-162.4 0zM274.6 217.6c21.9-12 49.6-30.7 62.3-53c1.5-3 4.1-8.6 4.5-12c-12.5 27.9-44.2 49.8-73.9 56.7c-4.7-7.3-7.5-15.5-7.5-24.3c0-10.3 5.2-24.1 12.9-31.6c8.3-7.9 18-10.9 27.9-14.1c16-5.1 32.5-10.3 44.5-35.9c32.5 46.2 13.1 130.3-36.3 130.3c-13.3 0-25.1-7.1-34.4-16.1z"], - "meetup": [512, 512, [], "f2e0", "M99 414.3c1.1 5.7-2.3 11.1-8 12.3-5.4 1.1-10.9-2.3-12-8-1.1-5.4 2.3-11.1 7.7-12.3 5.4-1.2 11.1 2.3 12.3 8zm143.1 71.4c-6.3 4.6-8 13.4-3.7 20 4.6 6.6 13.4 8.3 20 3.7 6.3-4.6 8-13.4 3.4-20-4.2-6.5-13.1-8.3-19.7-3.7zm-86-462.3c6.3-1.4 10.3-7.7 8.9-14-1.1-6.6-7.4-10.6-13.7-9.1-6.3 1.4-10.3 7.7-9.1 14 1.4 6.6 7.6 10.6 13.9 9.1zM34.4 226.3c-10-6.9-23.7-4.3-30.6 6-6.9 10-4.3 24 5.7 30.9 10 7.1 23.7 4.6 30.6-5.7 6.9-10.4 4.3-24.1-5.7-31.2zm272-170.9c10.6-6.3 13.7-20 7.7-30.3-6.3-10.6-19.7-14-30-7.7s-13.7 20-7.4 30.6c6 10.3 19.4 13.7 29.7 7.4zm-191.1 58c7.7-5.4 9.4-16 4.3-23.7s-15.7-9.4-23.1-4.3c-7.7 5.4-9.4 16-4.3 23.7 5.1 7.8 15.6 9.5 23.1 4.3zm372.3 156c-7.4 1.7-12.3 9.1-10.6 16.9 1.4 7.4 8.9 12.3 16.3 10.6 7.4-1.4 12.3-8.9 10.6-16.6-1.5-7.4-8.9-12.3-16.3-10.9zm39.7-56.8c-1.1-5.7-6.6-9.1-12-8-5.7 1.1-9.1 6.9-8 12.6 1.1 5.4 6.6 9.1 12.3 8 5.4-1.5 9.1-6.9 7.7-12.6zM447 138.9c-8.6 6-10.6 17.7-4.9 26.3 5.7 8.6 17.4 10.6 26 4.9 8.3-6 10.3-17.7 4.6-26.3-5.7-8.7-17.4-10.9-25.7-4.9zm-6.3 139.4c26.3 43.1 15.1 100-26.3 129.1-17.4 12.3-37.1 17.7-56.9 17.1-12 47.1-69.4 64.6-105.1 32.6-1.1.9-2.6 1.7-3.7 2.9-39.1 27.1-92.3 17.4-119.4-22.3-9.7-14.3-14.6-30.6-15.1-46.9-65.4-10.9-90-94-41.1-139.7-28.3-46.9.6-107.4 53.4-114.9C151.6 70 234.1 38.6 290.1 82c67.4-22.3 136.3 29.4 130.9 101.1 41.1 12.6 52.8 66.9 19.7 95.2zm-70 74.3c-3.1-20.6-40.9-4.6-43.1-27.1-3.1-32 43.7-101.1 40-128-3.4-24-19.4-29.1-33.4-29.4-13.4-.3-16.9 2-21.4 4.6-2.9 1.7-6.6 4.9-11.7-.3-6.3-6-11.1-11.7-19.4-12.9-12.3-2-17.7 2-26.6 9.7-3.4 2.9-12 12.9-20 9.1-3.4-1.7-15.4-7.7-24-11.4-16.3-7.1-40 4.6-48.6 20-12.9 22.9-38 113.1-41.7 125.1-8.6 26.6 10.9 48.6 36.9 47.1 11.1-.6 18.3-4.6 25.4-17.4 4-7.4 41.7-107.7 44.6-112.6 2-3.4 8.9-8 14.6-5.1 5.7 3.1 6.9 9.4 6 15.1-1.1 9.7-28 70.9-28.9 77.7-3.4 22.9 26.9 26.6 38.6 4 3.7-7.1 45.7-92.6 49.4-98.3 4.3-6.3 7.4-8.3 11.7-8 3.1 0 8.3.9 7.1 10.9-1.4 9.4-35.1 72.3-38.9 87.7-4.6 20.6 6.6 41.4 24.9 50.6 11.4 5.7 62.5 15.7 58.5-11.1zm5.7 92.3c-10.3 7.4-12.9 22-5.7 32.6 7.1 10.6 21.4 13.1 32 6 10.6-7.4 13.1-22 6-32.6-7.4-10.6-21.7-13.5-32.3-6z"], - "centos": [448, 512, [], "f789", "M289.6 97.5l31.6 31.7-76.3 76.5V97.5zm-162.4 31.7l76.3 76.5V97.5h-44.7zm41.5-41.6h44.7v127.9l10.8 10.8 10.8-10.8V87.6h44.7L224.2 32zm26.2 168.1l-10.8-10.8H55.5v-44.8L0 255.7l55.5 55.6v-44.8h128.6l10.8-10.8zm79.3-20.7h107.9v-44.8l-31.6-31.7zm173.3 20.7L392 200.1v44.8H264.3l-10.8 10.8 10.8 10.8H392v44.8l55.5-55.6zM65.4 176.2l32.5-31.7 90.3 90.5h15.3v-15.3l-90.3-90.5 31.6-31.7H65.4zm316.7-78.7h-78.5l31.6 31.7-90.3 90.5V235h15.3l90.3-90.5 31.6 31.7zM203.5 413.9V305.8l-76.3 76.5 31.6 31.7h44.7zM65.4 235h108.8l-76.3-76.5-32.5 31.7zm316.7 100.2l-31.6 31.7-90.3-90.5h-15.3v15.3l90.3 90.5-31.6 31.7h78.5zm0-58.8H274.2l76.3 76.5 31.6-31.7zm-60.9 105.8l-76.3-76.5v108.1h44.7zM97.9 352.9l76.3-76.5H65.4v44.8zm181.8 70.9H235V295.9l-10.8-10.8-10.8 10.8v127.9h-44.7l55.5 55.6zm-166.5-41.6l90.3-90.5v-15.3h-15.3l-90.3 90.5-32.5-31.7v78.7h79.4z"], - "adn": [496, 512, [], "f170", "M248 167.5l64.9 98.8H183.1l64.9-98.8zM496 256c0 136.9-111.1 248-248 248S0 392.9 0 256 111.1 8 248 8s248 111.1 248 248zm-99.8 82.7L248 115.5 99.8 338.7h30.4l33.6-51.7h168.6l33.6 51.7h30.2z"], - "cloudsmith": [512, 512, [], "f384", "M512 227.6v56.9L284.4 512H227.6L0 284.4V227.6L227.6 0h56.9L512 227.6zm-256 162a133.6 133.6 0 1 0 0-267.1 133.6 133.6 0 1 0 0 267.1z"], - "opensuse": [640, 512, [], "e62b", "M471.1 102.7s-.3 18.3-.3 20.3c-9.1-3-74.4-24.1-135.7-26.3c-51.9-1.8-122.8-4.3-223 57.3c-19.4 12.4-73.9 46.1-99.6 109.7C7 277-.1 307 7 335.1c3.3 12.8 8.9 24.9 16.5 35.7c17.4 25 46.6 41.6 78.1 44.4c44.4 3.9 78.1-16 90-53.3c8.2-25.8 0-63.6-31.5-82.9c-25.6-15.7-53.3-12.1-69.2-1.6c-13.9 9.2-21.8 23.5-21.6 39.2c.3 27.8 24.3 42.6 41.5 42.6c5.4 0 10.7-.9 15.8-2.7c6.5-1.8 13.3-6.5 13.3-14.9c0-12.1-11.6-14.8-16.8-13.9c-2.9 .5-4.5 2-11.8 2.4c-2-.2-12-3.1-12-14V316c.2-12.3 13.2-18 25.5-16.9c32.3 2.8 47.7 40.7 28.5 65.7C135 388.5 76.7 388 53.6 344.4c-26-49.2 12.7-111.2 87-98.4c33.2 5.7 83.6 35.5 102.4 104.3h45.9c-5.7-17.6-8.9-68.3 42.7-68.3c56.7 0 63.9 39.9 79.8 68.3H460c-12.8-18.3-21.7-38.7-18.9-55.8c5.6-33.8 39.7-18.4 82.4-17.4c66.5 .4 102.1-27 103.1-28c3.7-3.1 6.5-15.8 7-17.7c1.3-5.1-3.2-2.4-3.2-2.4c-8.7 5.2-30.5 15.2-50.9 15.6c-25.3 .5-76.2-25.4-81.6-28.2c-.3-.4 .1 1.2-11-25.5c88.4 58.3 118.3 40.5 145.2 21.7c.8-.6 4.3-2.9 3.6-5.7c-13.8-48.1-22.4-62.7-34.5-69.6c-37-21.6-125-34.7-129.2-35.3c.1-.1-.9-.3-.9 .7l0 0zm135.6 75.4a37.6 37.6 0 1 1 -75.2-2.6 37.6 37.6 0 1 1 75.2 2.6zm-36.6-27.9a26.3 26.3 0 1 0 -1.7 52.5 26.3 26.3 0 1 0 1.7-52.5zm4.3 28.8c-15.4 0-15.4-15.6 0-15.6s15.4 15.6 0 15.6v0z"], - "pied-piper-alt": [576, 512, [], "f1a8", "M244 246c-3.2-2-6.3-2.9-10.1-2.9-6.6 0-12.6 3.2-19.3 3.7l1.7 4.9zm135.9 197.9c-19 0-64.1 9.5-79.9 19.8l6.9 45.1c35.7 6.1 70.1 3.6 106-9.8-4.8-10-23.5-55.1-33-55.1zM340.8 177c6.6 2.8 11.5 9.2 22.7 22.1 2-1.4 7.5-5.2 7.5-8.6 0-4.9-11.8-13.2-13.2-23 11.2-5.7 25.2-6 37.6-8.9 68.1-16.4 116.3-52.9 146.8-116.7C548.3 29.3 554 16.1 554.6 2l-2 2.6c-28.4 50-33 63.2-81.3 100-31.9 24.4-69.2 40.2-106.6 54.6l-6.3-.3v-21.8c-19.6 1.6-19.7-14.6-31.6-23-18.7 20.6-31.6 40.8-58.9 51.1-12.7 4.8-19.6 10-25.9 21.8 34.9-16.4 91.2-13.5 98.8-10zM555.5 0l-.6 1.1-.3.9.6-.6zm-59.2 382.1c-33.9-56.9-75.3-118.4-150-115.5l-.3-6c-1.1-13.5 32.8 3.2 35.1-31l-14.4 7.2c-19.8-45.7-8.6-54.3-65.5-54.3-14.7 0-26.7 1.7-41.4 4.6 2.9 18.6 2.2 36.7-10.9 50.3l19.5 5.5c-1.7 3.2-2.9 6.3-2.9 9.8 0 21 42.8 2.9 42.8 33.6 0 18.4-36.8 60.1-54.9 60.1-8 0-53.7-50-53.4-60.1l.3-4.6 52.3-11.5c13-2.6 12.3-22.7-2.9-22.7-3.7 0-43.1 9.2-49.4 10.6-2-5.2-7.5-14.1-13.8-14.1-3.2 0-6.3 3.2-9.5 4-9.2 2.6-31 2.9-21.5 20.1L15.9 298.5c-5.5 1.1-8.9 6.3-8.9 11.8 0 6 5.5 10.9 11.5 10.9 8 0 131.3-28.4 147.4-32.2 2.6 3.2 4.6 6.3 7.8 8.6 20.1 14.4 59.8 85.9 76.4 85.9 24.1 0 58-22.4 71.3-41.9 3.2-4.3 6.9-7.5 12.4-6.9.6 13.8-31.6 34.2-33 43.7-1.4 10.2-1 35.2-.3 41.1 26.7 8.1 52-3.6 77.9-2.9 4.3-21 10.6-41.9 9.8-63.5l-.3-9.5c-1.4-34.2-10.9-38.5-34.8-58.6-1.1-1.1-2.6-2.6-3.7-4 2.2-1.4 1.1-1 4.6-1.7 88.5 0 56.3 183.6 111.5 229.9 33.1-15 72.5-27.9 103.5-47.2-29-25.6-52.6-45.7-72.7-79.9zm-196.2 46.1v27.2l11.8-3.4-2.9-23.8zm-68.7-150.4l24.1 61.2 21-13.8-31.3-50.9zm84.4 154.9l2 12.4c9-1.5 58.4-6.6 58.4-14.1 0-1.4-.6-3.2-.9-4.6-26.8 0-36.9 3.8-59.5 6.3z"], - "square-dribbble": [448, 512, ["dribbble-square"], "f397", "M165.9 132.5c-38.3 18-66.8 53.3-75.7 95.7c6.1 .1 62.4 .3 126.4-16.7c-22.7-40.2-47.1-74.1-50.7-79zm26.1-9.1c3.8 5.1 28.6 38.9 51 80c48.6-18.3 69.1-45.9 71.6-49.4C281 124.2 235.3 112.9 192 123.4zM277.4 382c-2-12-10-53.8-29.2-103.6c-55.1 18.8-93.8 56.4-108.1 85.6c40.5 31.6 93.3 36.7 137.3 18zM227.8 232.6C159.6 253 93.4 252.2 87.4 252c0 .7 0 1.4 0 2.1s0 1.4 0 2.1c0 35.1 13.3 67.1 35.1 91.4c22.2-37.9 67.1-77.9 116.5-91.8c-3.4-7.8-7.2-15.5-11.1-23.2zm72.5 136.9c30.7-20.7 52.5-53.6 58.6-91.6c-4.6-1.5-42.3-12.7-85.1-5.8c17.9 49.1 25.1 89.1 26.5 97.4zm-34.8-119c45.5-5.7 90.7 3.4 95.2 4.4c-.3-32.3-11.8-61.9-30.9-85.1c-2.9 3.9-25.8 33.2-76.3 53.9c4.8 9.8 8.3 17.8 12 26.8zM384 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64zM224 416a160 160 0 1 1 0-320 160 160 0 1 1 0 320z"], - "codiepie": [472, 512, [], "f284", "M422.5 202.9c30.7 0 33.5 53.1-.3 53.1h-10.8v44.3h-26.6v-97.4h37.7zM472 352.6C429.9 444.5 350.4 504 248 504 111 504 0 393 0 256S111 8 248 8c97.4 0 172.8 53.7 218.2 138.4l-186 108.8L472 352.6zm-38.5 12.5l-60.3-30.7c-27.1 44.3-70.4 71.4-122.4 71.4-82.5 0-149.2-66.7-149.2-148.9 0-82.5 66.7-149.2 149.2-149.2 48.4 0 88.9 23.5 116.9 63.4l59.5-34.6c-40.7-62.6-104.7-100-179.2-100-121.2 0-219.5 98.3-219.5 219.5S126.8 475.5 248 475.5c78.6 0 146.5-42.1 185.5-110.4z"], - "node": [640, 512, [], "f419", "M316.3 452c-2.1 0-4.2-.6-6.1-1.6L291 439c-2.9-1.6-1.5-2.2-.5-2.5 3.8-1.3 4.6-1.6 8.7-4 .4-.2 1-.1 1.4.1l14.8 8.8c.5.3 1.3.3 1.8 0L375 408c.5-.3.9-.9.9-1.6v-66.7c0-.7-.3-1.3-.9-1.6l-57.8-33.3c-.5-.3-1.2-.3-1.8 0l-57.8 33.3c-.6.3-.9 1-.9 1.6v66.7c0 .6.4 1.2.9 1.5l15.8 9.1c8.6 4.3 13.9-.8 13.9-5.8v-65.9c0-.9.7-1.7 1.7-1.7h7.3c.9 0 1.7.7 1.7 1.7v65.9c0 11.5-6.2 18-17.1 18-3.3 0-6 0-13.3-3.6l-15.2-8.7c-3.7-2.2-6.1-6.2-6.1-10.5v-66.7c0-4.3 2.3-8.4 6.1-10.5l57.8-33.4c3.7-2.1 8.5-2.1 12.1 0l57.8 33.4c3.7 2.2 6.1 6.2 6.1 10.5v66.7c0 4.3-2.3 8.4-6.1 10.5l-57.8 33.4c-1.7 1.1-3.8 1.7-6 1.7zm46.7-65.8c0-12.5-8.4-15.8-26.2-18.2-18-2.4-19.8-3.6-19.8-7.8 0-3.5 1.5-8.1 14.8-8.1 11.9 0 16.3 2.6 18.1 10.6.2.8.8 1.3 1.6 1.3h7.5c.5 0 .9-.2 1.2-.5.3-.4.5-.8.4-1.3-1.2-13.8-10.3-20.2-28.8-20.2-16.5 0-26.3 7-26.3 18.6 0 12.7 9.8 16.1 25.6 17.7 18.9 1.9 20.4 4.6 20.4 8.3 0 6.5-5.2 9.2-17.4 9.2-15.3 0-18.7-3.8-19.8-11.4-.1-.8-.8-1.4-1.7-1.4h-7.5c-.9 0-1.7.7-1.7 1.7 0 9.7 5.3 21.3 30.6 21.3 18.5 0 29-7.2 29-19.8zm54.5-50.1c0 6.1-5 11.1-11.1 11.1s-11.1-5-11.1-11.1c0-6.3 5.2-11.1 11.1-11.1 6-.1 11.1 4.8 11.1 11.1zm-1.8 0c0-5.2-4.2-9.3-9.4-9.3-5.1 0-9.3 4.1-9.3 9.3 0 5.2 4.2 9.4 9.3 9.4 5.2-.1 9.4-4.3 9.4-9.4zm-4.5 6.2h-2.6c-.1-.6-.5-3.8-.5-3.9-.2-.7-.4-1.1-1.3-1.1h-2.2v5h-2.4v-12.5h4.3c1.5 0 4.4 0 4.4 3.3 0 2.3-1.5 2.8-2.4 3.1 1.7.1 1.8 1.2 2.1 2.8.1 1 .3 2.7.6 3.3zm-2.8-8.8c0-1.7-1.2-1.7-1.8-1.7h-2v3.5h1.9c1.6 0 1.9-1.1 1.9-1.8zM137.3 191c0-2.7-1.4-5.1-3.7-6.4l-61.3-35.3c-1-.6-2.2-.9-3.4-1h-.6c-1.2 0-2.3.4-3.4 1L3.7 184.6C1.4 185.9 0 188.4 0 191l.1 95c0 1.3.7 2.5 1.8 3.2 1.1.7 2.5.7 3.7 0L42 268.3c2.3-1.4 3.7-3.8 3.7-6.4v-44.4c0-2.6 1.4-5.1 3.7-6.4l15.5-8.9c1.2-.7 2.4-1 3.7-1 1.3 0 2.6.3 3.7 1l15.5 8.9c2.3 1.3 3.7 3.8 3.7 6.4v44.4c0 2.6 1.4 5.1 3.7 6.4l36.4 20.9c1.1.7 2.6.7 3.7 0 1.1-.6 1.8-1.9 1.8-3.2l.2-95zM472.5 87.3v176.4c0 2.6-1.4 5.1-3.7 6.4l-61.3 35.4c-2.3 1.3-5.1 1.3-7.4 0l-61.3-35.4c-2.3-1.3-3.7-3.8-3.7-6.4v-70.8c0-2.6 1.4-5.1 3.7-6.4l61.3-35.4c2.3-1.3 5.1-1.3 7.4 0l15.3 8.8c1.7 1 3.9-.3 3.9-2.2v-94c0-2.8 3-4.6 5.5-3.2l36.5 20.4c2.3 1.2 3.8 3.7 3.8 6.4zm-46 128.9c0-.7-.4-1.3-.9-1.6l-21-12.2c-.6-.3-1.3-.3-1.9 0l-21 12.2c-.6.3-.9.9-.9 1.6v24.3c0 .7.4 1.3.9 1.6l21 12.1c.6.3 1.3.3 1.8 0l21-12.1c.6-.3.9-.9.9-1.6v-24.3zm209.8-.7c2.3-1.3 3.7-3.8 3.7-6.4V192c0-2.6-1.4-5.1-3.7-6.4l-60.9-35.4c-2.3-1.3-5.1-1.3-7.4 0l-61.3 35.4c-2.3 1.3-3.7 3.8-3.7 6.4v70.8c0 2.7 1.4 5.1 3.7 6.4l60.9 34.7c2.2 1.3 5 1.3 7.3 0l36.8-20.5c2.5-1.4 2.5-5 0-6.4L550 241.6c-1.2-.7-1.9-1.9-1.9-3.2v-22.2c0-1.3.7-2.5 1.9-3.2l19.2-11.1c1.1-.7 2.6-.7 3.7 0l19.2 11.1c1.1.7 1.9 1.9 1.9 3.2v17.4c0 2.8 3.1 4.6 5.6 3.2l36.7-21.3zM559 219c-.4.3-.7.7-.7 1.2v13.6c0 .5.3 1 .7 1.2l11.8 6.8c.4.3 1 .3 1.4 0L584 235c.4-.3.7-.7.7-1.2v-13.6c0-.5-.3-1-.7-1.2l-11.8-6.8c-.4-.3-1-.3-1.4 0L559 219zm-254.2 43.5v-70.4c0-2.6-1.6-5.1-3.9-6.4l-61.1-35.2c-2.1-1.2-5-1.4-7.4 0l-61.1 35.2c-2.3 1.3-3.9 3.7-3.9 6.4v70.4c0 2.8 1.9 5.2 4 6.4l61.2 35.2c2.4 1.4 5.2 1.3 7.4 0l61-35.2c1.8-1 3.1-2.7 3.6-4.7.1-.5.2-1.1.2-1.7zm-74.3-124.9l-.8.5h1.1l-.3-.5zm76.2 130.2l-.4-.7v.9l.4-.2z"], - "mix": [448, 512, [], "f3cb", "M0 64v348.9c0 56.2 88 58.1 88 0V174.3c7.9-52.9 88-50.4 88 6.5v175.3c0 57.9 96 58 96 0V240c5.3-54.7 88-52.5 88 4.3v23.8c0 59.9 88 56.6 88 0V64H0z"], - "steam": [496, 512, [], "f1b6", "M496 256c0 137-111.2 248-248.4 248-113.8 0-209.6-76.3-239-180.4l95.2 39.3c6.4 32.1 34.9 56.4 68.9 56.4 39.2 0 71.9-32.4 70.2-73.5l84.5-60.2c52.1 1.3 95.8-40.9 95.8-93.5 0-51.6-42-93.5-93.7-93.5s-93.7 42-93.7 93.5v1.2L176.6 279c-15.5-.9-30.7 3.4-43.5 12.1L0 236.1C10.2 108.4 117.1 8 247.6 8 384.8 8 496 119 496 256zM155.7 384.3l-30.5-12.6a52.79 52.79 0 0 0 27.2 25.8c26.9 11.2 57.8-1.6 69-28.4 5.4-13 5.5-27.3.1-40.3-5.4-13-15.5-23.2-28.5-28.6-12.9-5.4-26.7-5.2-38.9-.6l31.5 13c19.8 8.2 29.2 30.9 20.9 50.7-8.3 19.9-31 29.2-50.8 21zm173.8-129.9c-34.4 0-62.4-28-62.4-62.3s28-62.3 62.4-62.3 62.4 28 62.4 62.3-27.9 62.3-62.4 62.3zm.1-15.6c25.9 0 46.9-21 46.9-46.8 0-25.9-21-46.8-46.9-46.8s-46.9 21-46.9 46.8c.1 25.8 21.1 46.8 46.9 46.8z"], - "cc-apple-pay": [576, 512, [], "f416", "M302.2 218.4c0 17.2-10.5 27.1-29 27.1h-24.3v-54.2h24.4c18.4 0 28.9 9.8 28.9 27.1zm47.5 62.6c0 8.3 7.2 13.7 18.5 13.7 14.4 0 25.2-9.1 25.2-21.9v-7.7l-23.5 1.5c-13.3.9-20.2 5.8-20.2 14.4zM576 79v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM127.8 197.2c8.4.7 16.8-4.2 22.1-10.4 5.2-6.4 8.6-15 7.7-23.7-7.4.3-16.6 4.9-21.9 11.3-4.8 5.5-8.9 14.4-7.9 22.8zm60.6 74.5c-.2-.2-19.6-7.6-19.8-30-.2-18.7 15.3-27.7 16-28.2-8.8-13-22.4-14.4-27.1-14.7-12.2-.7-22.6 6.9-28.4 6.9-5.9 0-14.7-6.6-24.3-6.4-12.5.2-24.2 7.3-30.5 18.6-13.1 22.6-3.4 56 9.3 74.4 6.2 9.1 13.7 19.1 23.5 18.7 9.3-.4 13-6 24.2-6 11.3 0 14.5 6 24.3 5.9 10.2-.2 16.5-9.1 22.8-18.2 6.9-10.4 9.8-20.4 10-21zm135.4-53.4c0-26.6-18.5-44.8-44.9-44.8h-51.2v136.4h21.2v-46.6h29.3c26.8 0 45.6-18.4 45.6-45zm90 23.7c0-19.7-15.8-32.4-40-32.4-22.5 0-39.1 12.9-39.7 30.5h19.1c1.6-8.4 9.4-13.9 20-13.9 13 0 20.2 6 20.2 17.2v7.5l-26.4 1.6c-24.6 1.5-37.9 11.6-37.9 29.1 0 17.7 13.7 29.4 33.4 29.4 13.3 0 25.6-6.7 31.2-17.4h.4V310h19.6v-68zM516 210.9h-21.5l-24.9 80.6h-.4l-24.9-80.6H422l35.9 99.3-1.9 6c-3.2 10.2-8.5 14.2-17.9 14.2-1.7 0-4.9-.2-6.2-.3v16.4c1.2.4 6.5.5 8.1.5 20.7 0 30.4-7.9 38.9-31.8L516 210.9z"], - "scribd": [384, 512, [], "f28a", "M42.3 252.7c-16.1-19-24.7-45.9-24.8-79.9 0-100.4 75.2-153.1 167.2-153.1 98.6-1.6 156.8 49 184.3 70.6l-50.5 72.1-37.3-24.6 26.9-38.6c-36.5-24-79.4-36.5-123-35.8-50.7-.8-111.7 27.2-111.7 76.2 0 18.7 11.2 20.7 28.6 15.6 23.3-5.3 41.9.6 55.8 14 26.4 24.3 23.2 67.6-.7 91.9-29.2 29.5-85.2 27.3-114.8-8.4zm317.7 5.9c-15.5-18.8-38.9-29.4-63.2-28.6-38.1-2-71.1 28-70.5 67.2-.7 16.8 6 33 18.4 44.3 14.1 13.9 33 19.7 56.3 14.4 17.4-5.1 28.6-3.1 28.6 15.6 0 4.3-.5 8.5-1.4 12.7-16.7 40.9-59.5 64.4-121.4 64.4-51.9.2-102.4-16.4-144.1-47.3l33.7-39.4-35.6-27.4L0 406.3l15.4 13.8c52.5 46.8 120.4 72.5 190.7 72.2 51.4 0 94.4-10.5 133.6-44.1 57.1-51.4 54.2-149.2 20.3-189.6z"], - "debian": [448, 512, [], "e60b", "M380.2 245.6c3-7.6 5.5-14 5.2-24.4l-4.3 9c4.4-13.2 4-27.1 3.6-40.4c-.2-6-.3-11.8 0-17.4l-1.8-.5c-1.5-45.2-40.6-93.1-75.3-109.4c-30-13.8-76.1-16.2-97.3-5.8c1.3-1.1 4.2-2 6.8-2.7l.3-.1c3.3-1 6-1.7 4-2.9c-19.2 1.9-24.9 5.5-31.1 9.4l-.1 0c-4.6 2.9-9.5 6-20.3 8.7c-3.5 3.4 1.7 2 5.8 .9l0 0c4.1-1.1 7.2-1.9-.1 2.4c-3.5 1-6.6 1.3-9.6 1.6l-.1 0c-8.3 .8-15.8 1.6-30.7 17c.8 1.3 3.4-.2 5.3-1.3l.1-.1c2.3-1.4 3.4-2-1.7 4.4c-19.1-2.4-60.3 43.7-69.1 59l4.6 .8c-3.2 8-6.8 14.8-10 20.8c-4.3 8.1-7.9 14.9-8.7 21.3c-.3 5.1-1 11-1.7 17.3l0 0c-.1 1-.2 2-.3 3l-.1 .6c-3 27.3-6.7 60.8 3.9 73l-1.3 13c.6 1.2 1.1 2.3 1.6 3.5c.2 .4 .4 .8 .5 1.1l0 0 0 0 0 0 0 0 0 0 0 0 0 0c1 2.1 2 4.2 3.3 6.2l-3 .2c7 22.1 10.8 22.5 15.1 22.9l0 0c4.4 .4 9.3 .9 18.7 24.2c-2.7-.9-5.5-1.9-9.4-7.2c-.5 4.1 5.8 16.3 13.1 25.8l-3.1 3.6c2.1 3.7 4.8 6.2 7.6 8.8l0 0 0 0c1 .9 2.1 1.9 3.1 2.9c-11.9-6.5 3.2 13.7 11.9 25.2c.8 1.1 1.5 2 2.2 2.9l0 0 0 0 0 0 0 0 0 0c1.4 1.9 2.5 3.4 2.9 4.1l2.4-4.2c-.3 6.1 4.3 13.9 13.1 24.7l7.3-.3c3 6 14 16.7 20.7 17.2l-4.4 5.8c8.1 2.6 10.3 4.3 12.7 6.2c2.6 2.1 5.4 4.3 16.1 8.1l-4.2-7.4c3.5 3 6.2 5.9 8.8 8.7l.1 .1c5.2 5.6 9.9 10.6 19.7 15.3c10.7 3.7 16.6 4.7 22.7 5.8c.3 0 .6 .1 .9 .1c5.4 .8 11.2 1.8 20.8 4.5c-1.1-.1-2.2-.1-3.3-.1h0c-2.3-.1-4.7-.1-7-.1l0 0 0 0 0 0 0 0 0 0 0 0 0 0c-14.4-.2-29.2-.4-42.7-5.2C107.8 480.5 19.5 367.2 26 250.6c-.6-9.9-.3-20.9 0-30.7c.4-13.5 .7-24.8-1.6-28.3l1-3.1c5.3-17.4 11.7-38.2 23.8-62.8l-.1-.2v-.1c.4 .4 3.4 3.4 8.8-5.8c.8-1.8 1.6-3.7 2.4-5.6c.5-1.1 .9-2.2 1.4-3.2c2.5-6.1 5.1-12.3 8.4-17.9l2.6-.6c1.7-10.1 17-23.8 29.8-35.2l1.1-1c5.7-5.1 10.7-9.7 13.6-13.1l.7 4.4c17-15.9 44.6-27.5 65.6-36.4l.5-.2c4.8-2 9.3-3.9 13.3-5.7c-3.4 3.8 2.2 2.7 10 1c4.8-1 10.4-2.1 15.3-2.4l-3.9 2.1c-2.7 1.4-5.4 2.8-8 4.6c8.1-2 11.7-1.4 15.7-.8l.3 0c3.5 .6 7.3 1.2 14.6 .2c-5.6 .8-12.3 3-11.2 3.8c7.9 .9 12.8-.1 17.2-1l.2 0c5.5-1.1 10.3-2 19.3 .9l-1-4.8c7.3 2.6 12.7 4.3 17.5 5.8l.5 .1c10 3 17.6 5.3 34.2 14.1c3.2 .2 5.3-.5 7.4-1.2l.1 0c3.6-1.1 7-2.1 15.2 1.2c.3 .5 .5 1 .7 1.4c.1 .2 .2 .5 .3 .7l0 .1c1 2.6 1.8 4.6 14.6 12.1c1.7-.7-2.7-4.7-6.4-8.2c0 0 0 0-.1-.1c-.2-.1-.3-.3-.5-.4c32.2 17.3 67.3 54.1 78 93.5c-6-11.1-5.2-5.5-4.3 .5c.6 4 1.2 8.1-.2 7.5c4.5 12.1 8.1 24.5 10.4 37.4l-.8-2.9-.1-.3c-3.3-11.9-9.6-34.3-19.9-49.3c-.4 4.3-2.8 3.9-5.2 3.5l-.1 0 0 0c-3.3-.6-6.2-1.1-1.9 12.6c2.6 3.8 3.1 2.4 3.5 1.1l0 0c.5-1.5 .9-2.7 4.7 5.2c.1 4.1 1 8.2 2.1 12.7l0 0 0 0 .1 .6c.1 .3 .1 .5 .2 .8l.1 .6c.6 2.6 1.3 5.4 1.8 8.4c-1.1-.2-2.3-2.2-3.4-4.2c-1.4-2.4-2.8-4.7-3.7-3.2c2.4 11.5 6.5 17.4 8 18.3c-.3 .6-.6 .7-1.1 .7c-.8 0-1.8 .1-1.9 5.3c.7 13.7 3.3 12.5 5.3 11.6l0 0c.6-.3 1.2-.6 1.7-.4c-.6 2.5-1.6 5.1-2.7 7.9c-2.8 7.1-6 15.4-3.4 26.1c-.8-3-2-6-3.1-8.9l-.1-.4c-.2-.5-.4-1-.6-1.5l0 0c-.3-.8-.6-1.6-.9-2.3c-.6 4.4-.3 7.7-.1 10.6c0 .2 0 .5 0 .7c.4 5.3 .7 10-3 19.9c4.3-14.2 3.8-26.9-.2-20.8c1 10.9-3.7 20.4-8 28.9l-.1 .2c-3.6 7.1-6.8 13.5-5.9 19.3l-5.2-7.1c-7.5 10.9-7 13.3-6.5 15.5l0 .1c.5 1.9 1 3.8-3.4 10.8c1.7-2.9 1.3-3.6 1-4.2l0 0c-.4-.8-.7-1.5 1.7-5.1c-1.6 .1-5.5 3.9-10.1 8.5c-3.9 3.9-8.5 8.4-12.8 11.8c-37.5 30.1-82.3 34-125.6 17.8c.2-1-.2-2.1-3.1-4.1c-36.8-28.2-58.5-52.1-50.9-107.5c2.1-1.6 3.6-5.8 5.3-10.8l0 0 0 0 .2-.4 .1-.3 0-.1c2.9-8.4 6.5-18.8 14.3-23.8c7.8-17.3 31.3-33.3 56.4-33.7c25.6-1.4 47.2 13.7 58.1 27.9c-19.8-18.4-52.1-24-79.7-10.4c-28.2 12.7-45 43.8-42.5 74.7c.3-.4 .6-.6 .9-.8l0 0s0 0 0 0c0 0 .1-.1 .1-.1l.1-.1c.6-.5 1.1-.9 1.4-3.3c-.9 60.2 64.8 104.3 112.1 82l.6 1.3c12.7-3.5 15.9-6.5 20.3-10.7l.1-.1 0 0c2.2-2.1 4.7-4.5 8.9-7.3c-.3 .7-1.3 1.7-2.4 2.7c-2.2 2.1-4.6 4.5-1.6 4.6c5-1.3 18.5-13.4 28.5-22.3l0 0 0 0c.6-.5 1.2-1 1.7-1.5c1.5-1.3 2.8-2.5 4-3.6l0 0 .3-.3c1.9-4.2 1.6-5.6 1.3-7l0-.1c-.4-1.6-.8-3.3 2.4-9.6l7.3-3.7c.8-2.1 1.5-4.1 2.2-6c.2-.6 .5-1.2 .7-1.8l-.4-.2zM349.3 34.3l-.2-.1 .2 .1 0 0zM247.8 334.1c-6-3-13.7-8.9-14.8-11.4l-.4 .3c-.3 .6-.5 1.3-.2 2.2c-12.2-5.7-23.4-14.3-32.6-24.9c4.9 7.1 10.1 14.1 17 19.5c-6.9-2.3-15.1-11.8-21.6-19.3l-.1-.1c-4.3-5-7.9-9.1-9.7-9.5c19.8 35.5 80.5 62.3 112.3 49c-14.7 .5-33.4 .3-49.9-5.8zm79.3-119.7l-.1-.2c-.5-1.5-1.1-3.1-1.7-3.4c1.4-5.8 5.4-10.7 4.4 4.6c-1 3.8-1.8 1.5-2.6-1zm-4.2 22.2c-1.3 7.9-5 15.5-10.1 22.5c.2-2-1.2-2.4-2.6-2.8l0 0c-2.9-.8-5.9-1.6 5.6-16.1c-.5 1.9-2.1 4.6-3.7 7.3l0 0 0 0-.3 .4c-3.6 5.9-6.7 11 4 4.3l1-1.8c2.6-4.5 5-8.8 6-13.8h.1zm-55.6 33.9c7.1 .6 14.1 .6 21-1.1c-2.5 2.4-5.2 4.8-8.3 7.2c-11.1-1.7-21.2-6-12.7-6.1zm-92.6 11.6c3.6 7.1 6.4 11.5 9 15.7l.1 .2c2.3 3.7 4.4 7.1 6.8 11.7c-5.1-4.2-8.7-9.5-12.5-15l-.3-.5c-1.4-2.1-2.8-4.2-4.4-6.2l1.2-5.9h.1zm7.5-9.6c1.6 3.3 3.2 6.4 5.7 9.1l2.6 7.7-1.3-2.1c-3.2-5.3-6.3-10.6-8-16.7l.8 1.6 .2 .4zm238.9-41.6c-2.3 17.4-7.7 34.6-16 50.3c7.6-14.9 12.5-30.9 14.8-47.2l1.2-3.1zM35.6 110.6c.4 .8 1.4 .5 2.3 .3c1.9-.5 3.6-.9-.1 7.6c-.5 .3-1 .7-1.5 1l0 0 0 0c-1.4 .9-2.8 1.9-3.9 3c1.9-3.8 3.5-7.4 3.2-11.9zM25.3 152.3c-.7 3.7-1.5 7.9-3.4 13.9c.2-1.9 0-3.5-.2-4.9l0-.1c-.4-3.4-.7-6.3 4.3-12.8c-.3 1.2-.5 2.5-.7 3.8v.1z"], - "openid": [448, 512, [], "f19b", "M271.5 432l-68 32C88.5 453.7 0 392.5 0 318.2c0-71.5 82.5-131 191.7-144.3v43c-71.5 12.5-124 53-124 101.3 0 51 58.5 93.3 135.7 103v-340l68-33.2v384zM448 291l-131.3-28.5 36.8-20.7c-19.5-11.5-43.5-20-70-24.8v-43c46.2 5.5 87.7 19.5 120.3 39.3l35-19.8L448 291z"], - "instalod": [512, 512, [], "e081", "M153.384,480H387.113L502.554,275.765,204.229,333.211ZM504.726,240.078,387.113,32H155.669L360.23,267.9ZM124.386,48.809,7.274,256,123.236,461.154,225.627,165.561Z"], - "files-pinwheel": [512, 512, [], "e69f", "M253.2 246.4L136.9 130.2c-.6-.6-1-1.3-1.4-2s-.5-1.6-.5-2.4s.2-1.6 .5-2.4s.8-1.4 1.4-2L253.3 5.1c.9-.9 2-1.5 3.2-1.7s2.5-.1 3.6 .3s2.1 1.3 2.8 2.3s1.1 2.2 1.1 3.5L264 242c0 1.3-.3 2.5-1 3.6s-1.7 1.9-2.9 2.4s-2.5 .6-3.7 .3s-2.4-.9-3.2-1.9zm40.3-4.4l0-134.4c0-.8 .1-1.6 .5-2.4s.8-1.5 1.3-2.1s1.3-1.1 2-1.4s1.6-.5 2.4-.5l134.4 0c1.2 0 2.5 .4 3.5 1.1s1.8 1.7 2.3 2.8s.6 2.4 .3 3.6s-.9 2.3-1.7 3.2L304 246.4c-.9 .8-2 1.4-3.2 1.6s-2.4 .1-3.5-.4s-2.1-1.3-2.8-2.3s-1.1-2.2-1.1-3.4zm30.6 35c-1.2 0-2.5-.3-3.5-1s-1.9-1.6-2.4-2.8s-.6-2.4-.4-3.6s.8-2.3 1.7-3.2l84.2-84.2c.6-.6 1.3-1 2-1.4s1.6-.5 2.4-.5s1.6 .2 2.4 .5s1.4 .8 2 1.4l84.4 84.2c.9 .9 1.5 2 1.7 3.2s.1 2.5-.3 3.6s-1.3 2.1-2.3 2.8s-2.2 1.1-3.5 1.1l-168.5 0zM414.8 408l-95.3-95.2c-.9-.9-1.5-2-1.7-3.2s-.1-2.5 .4-3.7s1.3-2.1 2.4-2.8s2.3-1 3.5-1l95.2 0c1.7 0 3.2 .7 4.4 1.8s1.8 2.8 1.8 4.4l0 95.3c0 1.2-.4 2.5-1.1 3.5s-1.7 1.8-2.8 2.3s-2.4 .6-3.6 .3s-2.3-.9-3.2-1.7zM16.5 302.1l216.9 0c1.2 0 2.5 .4 3.5 1.1s1.8 1.7 2.3 2.8s.6 2.4 .3 3.6s-.8 2.3-1.7 3.2L129.4 421.2c-.6 .6-1.3 1-2 1.4s-1.6 .5-2.4 .5s-1.6-.2-2.4-.5s-1.4-.8-2-1.4L12 312.8c-.9-.9-1.5-2-1.7-3.2s-.1-2.5 .4-3.6s1.3-2.1 2.3-2.8s2.3-1 3.5-1zM264 465.3c0 .8-.2 1.6-.5 2.4s-.8 1.5-1.4 2s-1.3 1-2 1.4s-1.6 .5-2.4 .5l-128 0c-1.2 0-2.5-.4-3.5-1.1s-1.8-1.7-2.3-2.8s-.6-2.4-.3-3.6s.8-2.3 1.7-3.2l128-128c.9-.9 2-1.5 3.2-1.7s2.5-.1 3.6 .3s2.1 1.3 2.8 2.3s1.1 2.2 1.1 3.5l0 128zm40-132.5l82.8 82.7c.6 .6 1 1.3 1.4 2s.5 1.6 .5 2.4s-.2 1.6-.5 2.4s-.8 1.4-1.4 2L304 507c-.9 .9-2 1.5-3.2 1.7s-2.5 .1-3.6-.3s-2.1-1.3-2.8-2.3s-1.1-2.2-1.1-3.5l0-165.4c0-1.2 .4-2.5 1.1-3.5s1.7-1.8 2.8-2.3s2.4-.6 3.6-.3s2.3 .8 3.2 1.7zM78.7 122.4c0-1.2 .3-2.5 1-3.5s1.7-1.8 2.8-2.3s2.4-.6 3.6-.4s2.3 .8 3.2 1.7L237.8 266.4c.9 .9 1.5 2 1.7 3.2s.1 2.5-.3 3.6s-1.3 2.1-2.3 2.8s-2.2 1.1-3.5 1.1L85 277.1c-1.7 0-3.2-.7-4.4-1.8s-1.8-2.8-1.8-4.4l0-148.4z"], - "expeditedssl": [496, 512, [], "f23e", "M248 43.4C130.6 43.4 35.4 138.6 35.4 256S130.6 468.6 248 468.6 460.6 373.4 460.6 256 365.4 43.4 248 43.4zm-97.4 132.9c0-53.7 43.7-97.4 97.4-97.4s97.4 43.7 97.4 97.4v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6c0-82.1-124-82.1-124 0v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6zM389.7 380c0 9.7-8 17.7-17.7 17.7H124c-9.7 0-17.7-8-17.7-17.7V238.3c0-9.7 8-17.7 17.7-17.7h248c9.7 0 17.7 8 17.7 17.7V380zm-248-137.3v132.9c0 2.5-1.9 4.4-4.4 4.4h-8.9c-2.5 0-4.4-1.9-4.4-4.4V242.7c0-2.5 1.9-4.4 4.4-4.4h8.9c2.5 0 4.4 1.9 4.4 4.4zm141.7 48.7c0 13-7.2 24.4-17.7 30.4v31.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-31.6c-10.5-6.1-17.7-17.4-17.7-30.4 0-19.7 15.8-35.4 35.4-35.4s35.5 15.8 35.5 35.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 478.3C121 486.3 17.7 383 17.7 256S121 25.7 248 25.7 478.3 129 478.3 256 375 486.3 248 486.3z"], - "sellcast": [448, 512, [], "f2da", "M353.4 32H94.7C42.6 32 0 74.6 0 126.6v258.7C0 437.4 42.6 480 94.7 480h258.7c52.1 0 94.7-42.6 94.7-94.6V126.6c0-52-42.6-94.6-94.7-94.6zm-50 316.4c-27.9 48.2-89.9 64.9-138.2 37.2-22.9 39.8-54.9 8.6-42.3-13.2l15.7-27.2c5.9-10.3 19.2-13.9 29.5-7.9 18.6 10.8-.1-.1 18.5 10.7 27.6 15.9 63.4 6.3 79.4-21.3 15.9-27.6 6.3-63.4-21.3-79.4-17.8-10.2-.6-.4-18.6-10.6-24.6-14.2-3.4-51.9 21.6-37.5 18.6 10.8-.1-.1 18.5 10.7 48.4 28 65.1 90.3 37.2 138.5zm21.8-208.8c-17 29.5-16.3 28.8-19 31.5-6.5 6.5-16.3 8.7-26.5 3.6-18.6-10.8.1.1-18.5-10.7-27.6-15.9-63.4-6.3-79.4 21.3s-6.3 63.4 21.3 79.4c0 0 18.5 10.6 18.6 10.6 24.6 14.2 3.4 51.9-21.6 37.5-18.6-10.8.1.1-18.5-10.7-48.2-27.8-64.9-90.1-37.1-138.4 27.9-48.2 89.9-64.9 138.2-37.2l4.8-8.4c14.3-24.9 52-3.3 37.7 21.5z"], - "square-twitter": [448, 512, ["twitter-square"], "f081", "M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM351.3 199.3v0c0 86.7-66 186.6-186.6 186.6c-37.2 0-71.7-10.8-100.7-29.4c5.3 .6 10.4 .8 15.8 .8c30.7 0 58.9-10.4 81.4-28c-28.8-.6-53-19.5-61.3-45.5c10.1 1.5 19.2 1.5 29.6-1.2c-30-6.1-52.5-32.5-52.5-64.4v-.8c8.7 4.9 18.9 7.9 29.6 8.3c-9-6-16.4-14.1-21.5-23.6s-7.8-20.2-7.7-31c0-12.2 3.2-23.4 8.9-33.1c32.3 39.8 80.8 65.8 135.2 68.6c-9.3-44.5 24-80.6 64-80.6c18.9 0 35.9 7.9 47.9 20.7c14.8-2.8 29-8.3 41.6-15.8c-4.9 15.2-15.2 28-28.8 36.1c13.2-1.4 26-5.1 37.8-10.2c-8.9 13.1-20.1 24.7-32.9 34c.2 2.8 .2 5.7 .2 8.5z"], - "r-project": [581, 512, [], "f4f7", "M581 226.6C581 119.1 450.9 32 290.5 32S0 119.1 0 226.6C0 322.4 103.3 402 239.4 418.1V480h99.1v-61.5c24.3-2.7 47.6-7.4 69.4-13.9L448 480h112l-67.4-113.7c54.5-35.4 88.4-84.9 88.4-139.7zm-466.8 14.5c0-73.5 98.9-133 220.8-133s211.9 40.7 211.9 133c0 50.1-26.5 85-70.3 106.4-2.4-1.6-4.7-2.9-6.4-3.7-10.2-5.2-27.8-10.5-27.8-10.5s86.6-6.4 86.6-92.7-90.6-87.9-90.6-87.9h-199V361c-74.1-21.5-125.2-67.1-125.2-119.9zm225.1 38.3v-55.6c57.8 0 87.8-6.8 87.8 27.3 0 36.5-38.2 28.3-87.8 28.3zm-.9 72.5H365c10.8 0 18.9 11.7 24 19.2-16.1 1.9-33 2.8-50.6 2.9v-22.1z"], - "delicious": [448, 512, [], "f1a5", "M446.5 68c-.4-1.5-.9-3-1.4-4.5-.9-2.5-2-4.8-3.3-7.1-1.4-2.4-3-4.8-4.7-6.9-2.1-2.5-4.4-4.8-6.9-6.8-1.1-.9-2.2-1.7-3.3-2.5-1.3-.9-2.6-1.7-4-2.4-1.8-1-3.6-1.8-5.5-2.5-1.7-.7-3.5-1.3-5.4-1.7-3.8-1-7.9-1.5-12-1.5H48C21.5 32 0 53.5 0 80v352c0 4.1.5 8.2 1.5 12 2 7.7 5.8 14.6 11 20.3 1 1.1 2.1 2.2 3.3 3.3 5.7 5.2 12.6 9 20.3 11 3.8 1 7.9 1.5 12 1.5h352c26.5 0 48-21.5 48-48V80c-.1-4.1-.6-8.2-1.6-12zM416 432c0 8.8-7.2 16-16 16H224V256H32V80c0-8.8 7.2-16 16-16h176v192h192z"], - "freebsd": [448, 512, [], "f3a4", "M303.7 96.2c11.1-11.1 115.5-77 139.2-53.2 23.7 23.7-42.1 128.1-53.2 139.2-11.1 11.1-39.4.9-63.1-22.9-23.8-23.7-34.1-52-22.9-63.1zM109.9 68.1C73.6 47.5 22 24.6 5.6 41.1c-16.6 16.6 7.1 69.4 27.9 105.7 18.5-32.2 44.8-59.3 76.4-78.7zM406.7 174c3.3 11.3 2.7 20.7-2.7 26.1-20.3 20.3-87.5-27-109.3-70.1-18-32.3-11.1-53.4 14.9-48.7 5.7-3.6 12.3-7.6 19.6-11.6-29.8-15.5-63.6-24.3-99.5-24.3-119.1 0-215.6 96.5-215.6 215.6 0 119 96.5 215.6 215.6 215.6S445.3 380.1 445.3 261c0-38.4-10.1-74.5-27.7-105.8-3.9 7-7.6 13.3-10.9 18.8z"], - "vuejs": [448, 512, [], "f41f", "M356.9 64.3H280l-56 88.6-48-88.6H0L224 448 448 64.3h-91.1zm-301.2 32h53.8L224 294.5 338.4 96.3h53.8L224 384.5 55.7 96.3z"], - "accusoft": [640, 512, [], "f369", "M322.1 252v-1l-51.2-65.8s-12 1.6-25 15.1c-9 9.3-242.1 239.1-243.4 240.9-7 10 1.6 6.8 15.7 1.7.8 0 114.5-36.6 114.5-36.6.5-.6-.1-.1.6-.6-.4-5.1-.8-26.2-1-27.7-.6-5.2 2.2-6.9 7-8.9l92.6-33.8c.6-.8 88.5-81.7 90.2-83.3zm160.1 120.1c13.3 16.1 20.7 13.3 30.8 9.3 3.2-1.2 115.4-47.6 117.8-48.9 8-4.3-1.7-16.7-7.2-23.4-2.1-2.5-205.1-245.6-207.2-248.3-9.7-12.2-14.3-12.9-38.4-12.8-10.2 0-106.8.5-116.5.6-19.2.1-32.9-.3-19.2 16.9C250 75 476.5 365.2 482.2 372.1zm152.7 1.6c-2.3-.3-24.6-4.7-38-7.2 0 0-115 50.4-117.5 51.6-16 7.3-26.9-3.2-36.7-14.6l-57.1-74c-5.4-.9-60.4-9.6-65.3-9.3-3.1.2-9.6.8-14.4 2.9-4.9 2.1-145.2 52.8-150.2 54.7-5.1 2-11.4 3.6-11.1 7.6.2 2.5 2 2.6 4.6 3.5 2.7.8 300.9 67.6 308 69.1 15.6 3.3 38.5 10.5 53.6 1.7 2.1-1.2 123.8-76.4 125.8-77.8 5.4-4 4.3-6.8-1.7-8.2z"], - "ioxhost": [640, 512, [], "f208", "M616 160h-67.3C511.2 70.7 422.9 8 320 8 183 8 72 119 72 256c0 16.4 1.6 32.5 4.7 48H24c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h67.3c37.5 89.3 125.8 152 228.7 152 137 0 248-111 248-248 0-16.4-1.6-32.5-4.7-48H616c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24zm-96 96c0 110.5-89.5 200-200 200-75.7 0-141.6-42-175.5-104H424c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24H125.8c-3.8-15.4-5.8-31.4-5.8-48 0-110.5 89.5-200 200-200 75.7 0 141.6 42 175.5 104H216c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h298.2c3.8 15.4 5.8 31.4 5.8 48zm-304-24h208c13.3 0 24 10.7 24 24 0 13.2-10.7 24-24 24H216c-13.3 0-24-10.7-24-24 0-13.2 10.7-24 24-24z"], - "fonticons-fi": [384, 512, [], "f3a2", "M114.4 224h92.4l-15.2 51.2h-76.4V433c0 8-2.8 9.2 4.4 10l59.6 5.6V483H0v-35.2l29.2-2.8c7.2-.8 9.2-3.2 9.2-10.8V278.4c0-3.2-4-3.2-8-3.2H0V224h38.4v-28.8c0-68 36.4-96 106-96 46.8 0 88.8 11.2 88.8 72.4l-69.6 8.4c.4-25.6-6-31.6-22.4-31.6-25.2 0-26 13.6-26 37.6v32c0 3.2-4.8 6-.8 6zM384 483H243.2v-34.4l28-3.6c7.2-.8 10.4-2.4 10.4-10V287c0-5.6-4-9.2-9.2-10.8l-33.2-8.8 9.2-40.4h110v208c0 8-3.6 8.8 4 10l21.6 3.6V483zm-30-347.2l12.4 45.6-10 10-42.8-22.8-42.8 22.8-10-10 12.4-45.6-30-36.4 4.8-10h38L307.2 51H320l21.2 38.4h38l4.8 13.2-30 33.2z"], - "app-store": [512, 512, [], "f36f", "M255.9 120.9l9.1-15.7c5.6-9.8 18.1-13.1 27.9-7.5 9.8 5.6 13.1 18.1 7.5 27.9l-87.5 151.5h63.3c20.5 0 32 24.1 23.1 40.8H113.8c-11.3 0-20.4-9.1-20.4-20.4 0-11.3 9.1-20.4 20.4-20.4h52l66.6-115.4-20.8-36.1c-5.6-9.8-2.3-22.2 7.5-27.9 9.8-5.6 22.2-2.3 27.9 7.5l8.9 15.7zm-78.7 218l-19.6 34c-5.6 9.8-18.1 13.1-27.9 7.5-9.8-5.6-13.1-18.1-7.5-27.9l14.6-25.2c16.4-5.1 29.8-1.2 40.4 11.6zm168.9-61.7h53.1c11.3 0 20.4 9.1 20.4 20.4 0 11.3-9.1 20.4-20.4 20.4h-29.5l19.9 34.5c5.6 9.8 2.3 22.2-7.5 27.9-9.8 5.6-22.2 2.3-27.9-7.5-33.5-58.1-58.7-101.6-75.4-130.6-17.1-29.5-4.9-59.1 7.2-69.1 13.4 23 33.4 57.7 60.1 104zM256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm216 248c0 118.7-96.1 216-216 216-118.7 0-216-96.1-216-216 0-118.7 96.1-216 216-216 118.7 0 216 96.1 216 216z"], - "cc-mastercard": [576, 512, [], "f1f1", "M482.9 410.3c0 6.8-4.6 11.7-11.2 11.7-6.8 0-11.2-5.2-11.2-11.7 0-6.5 4.4-11.7 11.2-11.7 6.6 0 11.2 5.2 11.2 11.7zm-310.8-11.7c-7.1 0-11.2 5.2-11.2 11.7 0 6.5 4.1 11.7 11.2 11.7 6.5 0 10.9-4.9 10.9-11.7-.1-6.5-4.4-11.7-10.9-11.7zm117.5-.3c-5.4 0-8.7 3.5-9.5 8.7h19.1c-.9-5.7-4.4-8.7-9.6-8.7zm107.8.3c-6.8 0-10.9 5.2-10.9 11.7 0 6.5 4.1 11.7 10.9 11.7 6.8 0 11.2-4.9 11.2-11.7 0-6.5-4.4-11.7-11.2-11.7zm105.9 26.1c0 .3.3.5.3 1.1 0 .3-.3.5-.3 1.1-.3.3-.3.5-.5.8-.3.3-.5.5-1.1.5-.3.3-.5.3-1.1.3-.3 0-.5 0-1.1-.3-.3 0-.5-.3-.8-.5-.3-.3-.5-.5-.5-.8-.3-.5-.3-.8-.3-1.1 0-.5 0-.8.3-1.1 0-.5.3-.8.5-1.1.3-.3.5-.3.8-.5.5-.3.8-.3 1.1-.3.5 0 .8 0 1.1.3.5.3.8.3 1.1.5s.2.6.5 1.1zm-2.2 1.4c.5 0 .5-.3.8-.3.3-.3.3-.5.3-.8 0-.3 0-.5-.3-.8-.3 0-.5-.3-1.1-.3h-1.6v3.5h.8V426h.3l1.1 1.4h.8l-1.1-1.3zM576 81v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V81c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM64 220.6c0 76.5 62.1 138.5 138.5 138.5 27.2 0 53.9-8.2 76.5-23.1-72.9-59.3-72.4-171.2 0-230.5-22.6-15-49.3-23.1-76.5-23.1-76.4-.1-138.5 62-138.5 138.2zm224 108.8c70.5-55 70.2-162.2 0-217.5-70.2 55.3-70.5 162.6 0 217.5zm-142.3 76.3c0-8.7-5.7-14.4-14.7-14.7-4.6 0-9.5 1.4-12.8 6.5-2.4-4.1-6.5-6.5-12.2-6.5-3.8 0-7.6 1.4-10.6 5.4V392h-8.2v36.7h8.2c0-18.9-2.5-30.2 9-30.2 10.2 0 8.2 10.2 8.2 30.2h7.9c0-18.3-2.5-30.2 9-30.2 10.2 0 8.2 10 8.2 30.2h8.2v-23zm44.9-13.7h-7.9v4.4c-2.7-3.3-6.5-5.4-11.7-5.4-10.3 0-18.2 8.2-18.2 19.3 0 11.2 7.9 19.3 18.2 19.3 5.2 0 9-1.9 11.7-5.4v4.6h7.9V392zm40.5 25.6c0-15-22.9-8.2-22.9-15.2 0-5.7 11.9-4.8 18.5-1.1l3.3-6.5c-9.4-6.1-30.2-6-30.2 8.2 0 14.3 22.9 8.3 22.9 15 0 6.3-13.5 5.8-20.7.8l-3.5 6.3c11.2 7.6 32.6 6 32.6-7.5zm35.4 9.3l-2.2-6.8c-3.8 2.1-12.2 4.4-12.2-4.1v-16.6h13.1V392h-13.1v-11.2h-8.2V392h-7.6v7.3h7.6V416c0 17.6 17.3 14.4 22.6 10.9zm13.3-13.4h27.5c0-16.2-7.4-22.6-17.4-22.6-10.6 0-18.2 7.9-18.2 19.3 0 20.5 22.6 23.9 33.8 14.2l-3.8-6c-7.8 6.4-19.6 5.8-21.9-4.9zm59.1-21.5c-4.6-2-11.6-1.8-15.2 4.4V392h-8.2v36.7h8.2V408c0-11.6 9.5-10.1 12.8-8.4l2.4-7.6zm10.6 18.3c0-11.4 11.6-15.1 20.7-8.4l3.8-6.5c-11.6-9.1-32.7-4.1-32.7 15 0 19.8 22.4 23.8 32.7 15l-3.8-6.5c-9.2 6.5-20.7 2.6-20.7-8.6zm66.7-18.3H408v4.4c-8.3-11-29.9-4.8-29.9 13.9 0 19.2 22.4 24.7 29.9 13.9v4.6h8.2V392zm33.7 0c-2.4-1.2-11-2.9-15.2 4.4V392h-7.9v36.7h7.9V408c0-11 9-10.3 12.8-8.4l2.4-7.6zm40.3-14.9h-7.9v19.3c-8.2-10.9-29.9-5.1-29.9 13.9 0 19.4 22.5 24.6 29.9 13.9v4.6h7.9v-51.7zm7.6-75.1v4.6h.8V302h1.9v-.8h-4.6v.8h1.9zm6.6 123.8c0-.5 0-1.1-.3-1.6-.3-.3-.5-.8-.8-1.1-.3-.3-.8-.5-1.1-.8-.5 0-1.1-.3-1.6-.3-.3 0-.8.3-1.4.3-.5.3-.8.5-1.1.8-.5.3-.8.8-.8 1.1-.3.5-.3 1.1-.3 1.6 0 .3 0 .8.3 1.4 0 .3.3.8.8 1.1.3.3.5.5 1.1.8.5.3 1.1.3 1.4.3.5 0 1.1 0 1.6-.3.3-.3.8-.5 1.1-.8.3-.3.5-.8.8-1.1.3-.6.3-1.1.3-1.4zm3.2-124.7h-1.4l-1.6 3.5-1.6-3.5h-1.4v5.4h.8v-4.1l1.6 3.5h1.1l1.4-3.5v4.1h1.1v-5.4zm4.4-80.5c0-76.2-62.1-138.3-138.5-138.3-27.2 0-53.9 8.2-76.5 23.1 72.1 59.3 73.2 171.5 0 230.5 22.6 15 49.5 23.1 76.5 23.1 76.4.1 138.5-61.9 138.5-138.4z"], - "itunes-note": [384, 512, [], "f3b5", "M381.9 388.2c-6.4 27.4-27.2 42.8-55.1 48-24.5 4.5-44.9 5.6-64.5-10.2-23.9-20.1-24.2-53.4-2.7-74.4 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 6.4-7.2 4.4-4.1 4.4-163.2 0-11.2-5.5-14.3-17-12.3-8.2 1.4-185.7 34.6-185.7 34.6-10.2 2.2-13.4 5.2-13.4 16.7 0 234.7 1.1 223.9-2.5 239.5-4.2 18.2-15.4 31.9-30.2 39.5-16.8 9.3-47.2 13.4-63.4 10.4-43.2-8.1-58.4-58-29.1-86.6 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 10.1-11.5 1.8-256.6 5.2-270.2.8-5.2 3-9.6 7.1-12.9 4.2-3.5 11.8-5.5 13.4-5.5 204-38.2 228.9-43.1 232.4-43.1 11.5-.8 18.1 6 18.1 17.6.2 344.5 1.1 326-1.8 338.5z"], - "golang": [640, 512, [], "e40f", "M400.1 194.8C389.2 197.6 380.2 199.1 371 202.4C363.7 204.3 356.3 206.3 347.8 208.5L347.2 208.6C343 209.8 342.6 209.9 338.7 205.4C334 200.1 330.6 196.7 324.1 193.5C304.4 183.9 285.4 186.7 267.7 198.2C246.5 211.9 235.6 232.2 235.9 257.4C236.2 282.4 253.3 302.9 277.1 306.3C299.1 309.1 316.9 301.7 330.9 285.8C333 283.2 334.9 280.5 337 277.5V277.5L337 277.5C337.8 276.5 338.5 275.4 339.3 274.2H279.2C272.7 274.2 271.1 270.2 273.3 264.9C277.3 255.2 284.8 239 289.2 230.9C290.1 229.1 292.3 225.1 296.1 225.1H397.2C401.7 211.7 409 198.2 418.8 185.4C441.5 155.5 468.1 139.9 506 133.4C537.8 127.8 567.7 130.9 594.9 149.3C619.5 166.1 634.7 188.9 638.8 218.8C644.1 260.9 631.9 295.1 602.1 324.4C582.4 345.3 557.2 358.4 528.2 364.3C522.6 365.3 517.1 365.8 511.7 366.3C508.8 366.5 506 366.8 503.2 367.1C474.9 366.5 449 358.4 427.2 339.7C411.9 326.4 401.3 310.1 396.1 291.2C392.4 298.5 388.1 305.6 382.1 312.3C360.5 341.9 331.2 360.3 294.2 365.2C263.6 369.3 235.3 363.4 210.3 344.7C187.3 327.2 174.2 304.2 170.8 275.5C166.7 241.5 176.7 210.1 197.2 184.2C219.4 155.2 248.7 136.8 284.5 130.3C313.8 124.1 341.8 128.4 367.1 145.6C383.6 156.5 395.4 171.4 403.2 189.5C405.1 192.3 403.8 193.9 400.1 194.8zM48.3 200.4C47.05 200.4 46.74 199.8 47.36 198.8L53.91 190.4C54.53 189.5 56.09 188.9 57.34 188.9H168.6C169.8 188.9 170.1 189.8 169.5 190.7L164.2 198.8C163.6 199.8 162 200.7 161.1 200.7L48.3 200.4zM1.246 229.1C0 229.1-.3116 228.4 .3116 227.5L6.855 219.1C7.479 218.2 9.037 217.5 10.28 217.5H152.4C153.6 217.5 154.2 218.5 153.9 219.4L151.4 226.9C151.1 228.1 149.9 228.8 148.6 228.8L1.246 229.1zM75.72 255.9C75.1 256.8 75.41 257.7 76.65 257.7L144.6 258C145.5 258 146.8 257.1 146.8 255.9L147.4 248.4C147.4 247.1 146.8 246.2 145.5 246.2H83.2C81.95 246.2 80.71 247.1 80.08 248.1L75.72 255.9zM577.2 237.9C577 235.3 576.9 233.1 576.5 230.9C570.9 200.1 542.5 182.6 512.9 189.5C483.9 196 465.2 214.4 458.4 243.7C452.8 268 464.6 292.6 487 302.6C504.2 310.1 521.3 309.2 537.8 300.7C562.4 287.1 575.8 268 577.4 241.2C577.3 240 577.3 238.9 577.2 237.9z"], - "kickstarter": [448, 512, ["square-kickstarter"], "f3bb", "M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM320.8 233l-23.3 23.1L320.8 279c24.1 23.9 24.1 63 0 86.9s-63.4 23.9-87.6 0l-8.5-8.4c-11.3 16-29.7 26.5-50.9 26.5c-34.1 0-61.9-27.5-61.9-61.4l0-133.2c0-33.8 27.7-61.4 61.9-61.4c21.1 0 39.6 10.5 50.9 26.5l8.5-8.4c24.1-23.9 63.4-23.9 87.6 0s24.1 63 0 86.9z"], - "grav": [512, 512, [], "f2d6", "M301.1 212c4.4 4.4 4.4 11.9 0 16.3l-9.7 9.7c-4.4 4.7-11.9 4.7-16.6 0l-10.5-10.5c-4.4-4.7-4.4-11.9 0-16.6l9.7-9.7c4.4-4.4 11.9-4.4 16.6 0l10.5 10.8zm-30.2-19.7c3-3 3-7.8 0-10.5-2.8-3-7.5-3-10.5 0-2.8 2.8-2.8 7.5 0 10.5 3.1 2.8 7.8 2.8 10.5 0zm-26 5.3c-3 2.8-3 7.5 0 10.2 2.8 3 7.5 3 10.5 0 2.8-2.8 2.8-7.5 0-10.2-3-3-7.7-3-10.5 0zm72.5-13.3c-19.9-14.4-33.8-43.2-11.9-68.1 21.6-24.9 40.7-17.2 59.8.8 11.9 11.3 29.3 24.9 17.2 48.2-12.5 23.5-45.1 33.2-65.1 19.1zm47.7-44.5c-8.9-10-23.3 6.9-15.5 16.1 7.4 9 32.1 2.4 15.5-16.1zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-66.2 42.6c2.5-16.1-20.2-16.6-25.2-25.7-13.6-24.1-27.7-36.8-54.5-30.4 11.6-8 23.5-6.1 23.5-6.1.3-6.4 0-13-9.4-24.9 3.9-12.5.3-22.4.3-22.4 15.5-8.6 26.8-24.4 29.1-43.2 3.6-31-18.8-59.2-49.8-62.8-22.1-2.5-43.7 7.7-54.3 25.7-23.2 40.1 1.4 70.9 22.4 81.4-14.4-1.4-34.3-11.9-40.1-34.3-6.6-25.7 2.8-49.8 8.9-61.4 0 0-4.4-5.8-8-8.9 0 0-13.8 0-24.6 5.3 11.9-15.2 25.2-14.4 25.2-14.4 0-6.4-.6-14.9-3.6-21.6-5.4-11-23.8-12.9-31.7 2.8.1-.2.3-.4.4-.5-5 11.9-1.1 55.9 16.9 87.2-2.5 1.4-9.1 6.1-13 10-21.6 9.7-56.2 60.3-56.2 60.3-28.2 10.8-77.2 50.9-70.6 79.7.3 3 1.4 5.5 3 7.5-2.8 2.2-5.5 5-8.3 8.3-11.9 13.8-5.3 35.2 17.7 24.4 15.8-7.2 29.6-20.2 36.3-30.4 0 0-5.5-5-16.3-4.4 27.7-6.6 34.3-9.4 46.2-9.1 8 3.9 8-34.3 8-34.3 0-14.7-2.2-31-11.1-41.5 12.5 12.2 29.1 32.7 28 60.6-.8 18.3-15.2 23-15.2 23-9.1 16.6-43.2 65.9-30.4 106 0 0-9.7-14.9-10.2-22.1-17.4 19.4-46.5 52.3-24.6 64.5 26.6 14.7 108.8-88.6 126.2-142.3 34.6-20.8 55.4-47.3 63.9-65 22 43.5 95.3 94.5 101.1 59z"], - "weibo": [512, 512, [], "f18a", "M407 177.6c7.6-24-13.4-46.8-37.4-41.7-22 4.8-28.8-28.1-7.1-32.8 50.1-10.9 92.3 37.1 76.5 84.8-6.8 21.2-38.8 10.8-32-10.3zM214.8 446.7C108.5 446.7 0 395.3 0 310.4c0-44.3 28-95.4 76.3-143.7C176 67 279.5 65.8 249.9 161c-4 13.1 12.3 5.7 12.3 6 79.5-33.6 140.5-16.8 114 51.4-3.7 9.4 1.1 10.9 8.3 13.1 135.7 42.3 34.8 215.2-169.7 215.2zm143.7-146.3c-5.4-55.7-78.5-94-163.4-85.7-84.8 8.6-148.8 60.3-143.4 116s78.5 94 163.4 85.7c84.8-8.6 148.8-60.3 143.4-116zM347.9 35.1c-25.9 5.6-16.8 43.7 8.3 38.3 72.3-15.2 134.8 52.8 111.7 124-7.4 24.2 29.1 37 37.4 12 31.9-99.8-55.1-195.9-157.4-174.3zm-78.5 311c-17.1 38.8-66.8 60-109.1 46.3-40.8-13.1-58-53.4-40.3-89.7 17.7-35.4 63.1-55.4 103.4-45.1 42 10.8 63.1 50.2 46 88.5zm-86.3-30c-12.9-5.4-30 .3-38 12.9-8.3 12.9-4.3 28 8.6 34 13.1 6 30.8.3 39.1-12.9 8-13.1 3.7-28.3-9.7-34zm32.6-13.4c-5.1-1.7-11.4.6-14.3 5.4-2.9 5.1-1.4 10.6 3.7 12.9 5.1 2 11.7-.3 14.6-5.4 2.8-5.2 1.1-10.9-4-12.9z"], - "uncharted": [448, 512, [], "e084", "M171.73,232.813A5.381,5.381,0,0,0,176.7,229.5,48.081,48.081,0,0,1,191.6,204.244c1.243-.828,1.657-2.484,1.657-4.141a4.22,4.22,0,0,0-2.071-3.312L74.429,128.473,148.958,85a9.941,9.941,0,0,0,4.968-8.281,9.108,9.108,0,0,0-4.968-8.281L126.6,55.6a9.748,9.748,0,0,0-9.523,0l-100.2,57.966a9.943,9.943,0,0,0-4.969,8.281V236.954a9.109,9.109,0,0,0,4.969,8.281L39.235,258.07a8.829,8.829,0,0,0,4.968,1.242,9.4,9.4,0,0,0,6.625-2.484,10.8,10.8,0,0,0,2.9-7.039V164.5L169.66,232.4A4.5,4.5,0,0,0,171.73,232.813ZM323.272,377.73a12.478,12.478,0,0,0-4.969,1.242l-74.528,43.062V287.882c0-2.9-2.9-5.8-6.211-4.555a53.036,53.036,0,0,1-28.984.414,4.86,4.86,0,0,0-6.21,4.555V421.619l-74.529-43.061a8.83,8.83,0,0,0-4.969-1.242,9.631,9.631,0,0,0-9.523,9.523v26.085a9.107,9.107,0,0,0,4.969,8.281l100.2,57.553A8.829,8.829,0,0,0,223.486,480a11.027,11.027,0,0,0,4.969-1.242l100.2-57.553a9.941,9.941,0,0,0,4.968-8.281V386.839C332.8,382.285,328.24,377.73,323.272,377.73ZM286.007,78a23,23,0,1,0-23-23A23,23,0,0,0,286.007,78Zm63.627-10.086a23,23,0,1,0,23,23A23,23,0,0,0,349.634,67.914ZM412.816,151.6a23,23,0,1,0-23-23A23,23,0,0,0,412.816,151.6Zm-63.182-9.2a23,23,0,1,0,23,23A23,23,0,0,0,349.634,142.4Zm-63.627,83.244a23,23,0,1,0-23-23A23,23,0,0,0,286.007,225.648Zm-62.074,36.358a23,23,0,1,0-23-23A23,23,0,0,0,223.933,262.006Zm188.883-82.358a23,23,0,1,0,23,23A23,23,0,0,0,412.816,179.648Zm0,72.272a23,23,0,1,0,23,23A23,23,0,0,0,412.816,251.92Z"], - "firstdraft": [384, 512, [], "f3a1", "M384 192h-64v128H192v128H0v-25.6h166.4v-128h128v-128H384V192zm-25.6 38.4v128h-128v128H64V512h192V384h128V230.4h-25.6zm25.6 192h-89.6V512H320v-64h64v-25.6zM0 0v384h128V256h128V128h128V0H0z"], - "square-youtube": [448, 512, [61798, "youtube-square"], "f431", "M282 256.2l-95.2-54.1V310.3L282 256.2zM384 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64zm14.4 136.1c7.6 28.6 7.6 88.2 7.6 88.2s0 59.6-7.6 88.1c-4.2 15.8-16.5 27.7-32.2 31.9C337.9 384 224 384 224 384s-113.9 0-142.2-7.6c-15.7-4.2-28-16.1-32.2-31.9C42 315.9 42 256.3 42 256.3s0-59.7 7.6-88.2c4.2-15.8 16.5-28.2 32.2-32.4C110.1 128 224 128 224 128s113.9 0 142.2 7.7c15.7 4.2 28 16.6 32.2 32.4z"], - "wikipedia-w": [640, 512, [], "f266", "M640 51.2l-.3 12.2c-28.1.8-45 15.8-55.8 40.3-25 57.8-103.3 240-155.3 358.6H415l-81.9-193.1c-32.5 63.6-68.3 130-99.2 193.1-.3.3-15 0-15-.3C172 352.3 122.8 243.4 75.8 133.4 64.4 106.7 26.4 63.4.2 63.7c0-3.1-.3-10-.3-14.2h161.9v13.9c-19.2 1.1-52.8 13.3-43.3 34.2 21.9 49.7 103.6 240.3 125.6 288.6 15-29.7 57.8-109.2 75.3-142.8-13.9-28.3-58.6-133.9-72.8-160-9.7-17.8-36.1-19.4-55.8-19.7V49.8l142.5.3v13.1c-19.4.6-38.1 7.8-29.4 26.1 18.9 40 30.6 68.1 48.1 104.7 5.6-10.8 34.7-69.4 48.1-100.8 8.9-20.6-3.9-28.6-38.6-29.4.3-3.6 0-10.3.3-13.6 44.4-.3 111.1-.3 123.1-.6v13.6c-22.5.8-45.8 12.8-58.1 31.7l-59.2 122.8c6.4 16.1 63.3 142.8 69.2 156.7L559.2 91.8c-8.6-23.1-36.4-28.1-47.2-28.3V49.6l127.8 1.1.2.5z"], - "wpressr": [496, 512, ["rendact"], "f3e4", "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm171.33 158.6c-15.18 34.51-30.37 69.02-45.63 103.5-2.44 5.51-6.89 8.24-12.97 8.24-23.02-.01-46.03.06-69.05-.05-5.12-.03-8.25 1.89-10.34 6.72-10.19 23.56-20.63 47-30.95 70.5-1.54 3.51-4.06 5.29-7.92 5.29-45.94-.01-91.87-.02-137.81 0-3.13 0-5.63-1.15-7.72-3.45-11.21-12.33-22.46-24.63-33.68-36.94-2.69-2.95-2.79-6.18-1.21-9.73 8.66-19.54 17.27-39.1 25.89-58.66 12.93-29.35 25.89-58.69 38.75-88.08 1.7-3.88 4.28-5.68 8.54-5.65 14.24.1 28.48.02 42.72.05 6.24.01 9.2 4.84 6.66 10.59-13.6 30.77-27.17 61.55-40.74 92.33-5.72 12.99-11.42 25.99-17.09 39-3.91 8.95 7.08 11.97 10.95 5.6.23-.37-1.42 4.18 30.01-67.69 1.36-3.1 3.41-4.4 6.77-4.39 15.21.08 30.43.02 45.64.04 5.56.01 7.91 3.64 5.66 8.75-8.33 18.96-16.71 37.9-24.98 56.89-4.98 11.43 8.08 12.49 11.28 5.33.04-.08 27.89-63.33 32.19-73.16 2.02-4.61 5.44-6.51 10.35-6.5 26.43.05 52.86 0 79.29.05 12.44.02 13.93-13.65 3.9-13.64-25.26.03-50.52.02-75.78.02-6.27 0-7.84-2.47-5.27-8.27 5.78-13.06 11.59-26.11 17.3-39.21 1.73-3.96 4.52-5.79 8.84-5.78 23.09.06 25.98.02 130.78.03 6.08-.01 8.03 2.79 5.62 8.27z"], - "angellist": [448, 512, [], "f209", "M347.1 215.4c11.7-32.6 45.4-126.9 45.4-157.1 0-26.6-15.7-48.9-43.7-48.9-44.6 0-84.6 131.7-97.1 163.1C242 144 196.6 0 156.6 0c-31.1 0-45.7 22.9-45.7 51.7 0 35.3 34.2 126.8 46.6 162-6.3-2.3-13.1-4.3-20-4.3-23.4 0-48.3 29.1-48.3 52.6 0 8.9 4.9 21.4 8 29.7-36.9 10-51.1 34.6-51.1 71.7C46 435.6 114.4 512 210.6 512c118 0 191.4-88.6 191.4-202.9 0-43.1-6.9-82-54.9-93.7zM311.7 108c4-12.3 21.1-64.3 37.1-64.3 8.6 0 10.9 8.9 10.9 16 0 19.1-38.6 124.6-47.1 148l-34-6 33.1-93.7zM142.3 48.3c0-11.9 14.5-45.7 46.3 47.1l34.6 100.3c-15.6-1.3-27.7-3-35.4 1.4-10.9-28.8-45.5-119.7-45.5-148.8zM140 244c29.3 0 67.1 94.6 67.1 107.4 0 5.1-4.9 11.4-10.6 11.4-20.9 0-76.9-76.9-76.9-97.7.1-7.7 12.7-21.1 20.4-21.1zm184.3 186.3c-29.1 32-66.3 48.6-109.7 48.6-59.4 0-106.3-32.6-128.9-88.3-17.1-43.4 3.8-68.3 20.6-68.3 11.4 0 54.3 60.3 54.3 73.1 0 4.9-7.7 8.3-11.7 8.3-16.1 0-22.4-15.5-51.1-51.4-29.7 29.7 20.5 86.9 58.3 86.9 26.1 0 43.1-24.2 38-42 3.7 0 8.3.3 11.7-.6 1.1 27.1 9.1 59.4 41.7 61.7 0-.9 2-7.1 2-7.4 0-17.4-10.6-32.6-10.6-50.3 0-28.3 21.7-55.7 43.7-71.7 8-6 17.7-9.7 27.1-13.1 9.7-3.7 20-8 27.4-15.4-1.1-11.2-5.7-21.1-16.9-21.1-27.7 0-120.6 4-120.6-39.7 0-6.7.1-13.1 17.4-13.1 32.3 0 114.3 8 138.3 29.1 18.1 16.1 24.3 113.2-31 174.7zm-98.6-126c9.7 3.1 19.7 4 29.7 6-7.4 5.4-14 12-20.3 19.1-2.8-8.5-6.2-16.8-9.4-25.1z"], - "galactic-republic": [496, 512, [], "f50c", "M248 504C111.25 504 0 392.75 0 256S111.25 8 248 8s248 111.25 248 248-111.25 248-248 248zm0-479.47C120.37 24.53 16.53 128.37 16.53 256S120.37 487.47 248 487.47 479.47 383.63 479.47 256 375.63 24.53 248 24.53zm27.62 21.81v24.62a185.933 185.933 0 0 1 83.57 34.54l17.39-17.36c-28.75-22.06-63.3-36.89-100.96-41.8zm-55.37.07c-37.64 4.94-72.16 19.8-100.88 41.85l17.28 17.36h.08c24.07-17.84 52.55-30.06 83.52-34.67V46.41zm12.25 50.17v82.87c-10.04 2.03-19.42 5.94-27.67 11.42l-58.62-58.59-21.93 21.93 58.67 58.67c-5.47 8.23-9.45 17.59-11.47 27.62h-82.9v31h82.9c2.02 10.02 6.01 19.31 11.47 27.54l-58.67 58.69 21.93 21.93 58.62-58.62a77.873 77.873 0 0 0 27.67 11.47v82.9h31v-82.9c10.05-2.03 19.37-6.06 27.62-11.55l58.67 58.69 21.93-21.93-58.67-58.69c5.46-8.23 9.47-17.52 11.5-27.54h82.87v-31h-82.87c-2.02-10.02-6.03-19.38-11.5-27.62l58.67-58.67-21.93-21.93-58.67 58.67c-8.25-5.49-17.57-9.47-27.62-11.5V96.58h-31zm183.24 30.72l-17.36 17.36a186.337 186.337 0 0 1 34.67 83.67h24.62c-4.95-37.69-19.83-72.29-41.93-101.03zm-335.55.13c-22.06 28.72-36.91 63.26-41.85 100.91h24.65c4.6-30.96 16.76-59.45 34.59-83.52l-17.39-17.39zM38.34 283.67c4.92 37.64 19.75 72.18 41.8 100.9l17.36-17.39c-17.81-24.07-29.92-52.57-34.51-83.52H38.34zm394.7 0c-4.61 30.99-16.8 59.5-34.67 83.6l17.36 17.36c22.08-28.74 36.98-63.29 41.93-100.96h-24.62zM136.66 406.38l-17.36 17.36c28.73 22.09 63.3 36.98 100.96 41.93v-24.64c-30.99-4.63-59.53-16.79-83.6-34.65zm222.53.05c-24.09 17.84-52.58 30.08-83.57 34.67v24.57c37.67-4.92 72.21-19.79 100.96-41.85l-17.31-17.39h-.08z"], - "nfc-directional": [512, 512, [], "e530", "M211.8 488.6C213.4 491.1 213.9 494.2 213.2 497.1C212.6 500 210.8 502.6 208.3 504.2C205.7 505.8 202.7 506.3 199.7 505.7C138.3 491.8 84.1 455.8 47.53 404.5C10.97 353.2-5.395 290.3 1.57 227.7C8.536 165 38.34 107.2 85.29 65.21C132.2 23.2 193-.0131 256 0C257.5 0 258.1 .2931 260.3 .8627C261.7 1.432 262.1 2.267 264 3.319C265.1 4.371 265.9 5.619 266.5 6.993C267 8.367 267.3 9.839 267.3 11.32V112.3L291.8 86.39C292.8 85.31 294 84.44 295.4 83.84C296.7 83.23 298.2 82.9 299.7 82.86C301.2 82.81 302.6 83.06 304 83.59C305.4 84.12 306.7 84.92 307.8 85.94C308.8 86.96 309.7 88.18 310.3 89.54C310.9 90.89 311.3 92.35 311.3 93.84C311.3 95.32 311.1 96.8 310.6 98.18C310 99.57 309.2 100.8 308.2 101.9L264.2 148.5C263.1 149.6 261.9 150.5 260.5 151.1C259 151.7 257.5 152 255.1 152C254.5 152 252.9 151.7 251.5 151.1C250.1 150.5 248.8 149.6 247.8 148.5L203.7 101.9C201.7 99.74 200.6 96.83 200.7 93.84C200.7 90.84 202 87.1 204.2 85.94C206.4 83.88 209.3 82.77 212.3 82.86C215.3 82.94 218.1 84.21 220.2 86.39L244.7 112.4V22.89C188.3 25.64 134.9 48.73 94.23 87.87C53.58 127 28.49 179.6 23.61 235.8C18.73 292 34.38 348.1 67.68 393.7C100.1 439.2 149.7 471.2 204.7 483.6C207.6 484.3 210.2 486.1 211.8 488.6L211.8 488.6zM171.4 126.1C170.6 127.4 169.5 128.5 168.3 129.3C147.8 143.2 131.1 161.9 119.5 183.8C107.9 205.7 101.8 230.1 101.8 254.9C101.8 279.7 107.9 304.1 119.5 325.1C131.1 347.9 147.8 366.6 168.3 380.5C170.8 382.2 172.5 384.8 173 387.8C173.6 390.7 172.1 393.8 171.3 396.2C169.6 398.7 166.1 400.4 164 400.1C161.1 401.5 158 400.9 155.6 399.2C132 383.2 112.8 361.7 99.46 336.5C86.15 311.4 79.19 283.4 79.19 254.9C79.19 226.5 86.15 198.4 99.46 173.3C112.8 148.1 132 126.6 155.6 110.6C156.8 109.8 158.2 109.2 159.6 108.8C161.1 108.5 162.6 108.5 164.1 108.8C165.5 109 166.9 109.6 168.2 110.4C169.5 111.2 170.5 112.3 171.4 113.5C172.2 114.7 172.8 116.1 173.1 117.6C173.4 119.1 173.4 120.6 173.1 122C172.8 123.5 172.3 124.9 171.4 126.1H171.4zM340.9 383.5C341.7 382.3 342.8 381.2 343.1 380.4V380.3C364.4 366.3 381.1 347.6 392.7 325.7C404.2 303.9 410.2 279.5 410.2 254.8C410.2 230.1 404.2 205.7 392.7 183.8C381.1 161.1 364.4 143.3 343.1 129.3C342.8 128.5 341.7 127.4 340.9 126.2C340.1 124.9 339.5 123.5 339.3 122.1C338.1 120.6 339 119.1 339.3 117.7C339.6 116.2 340.2 114.8 341 113.6C341.9 112.4 342.1 111.3 344.2 110.5C345.4 109.7 346.8 109.2 348.3 108.9C349.8 108.6 351.2 108.6 352.7 108.9C354.2 109.2 355.5 109.8 356.8 110.7C380.2 126.7 399.5 148.2 412.7 173.3C426 198.4 432.1 226.4 432.1 254.8C432.1 283.3 426 311.3 412.7 336.4C399.5 361.5 380.2 383 356.8 399C355.5 399.9 354.2 400.5 352.7 400.8C351.2 401.1 349.8 401.1 348.3 400.8C346.8 400.5 345.4 399.1 344.2 399.2C342.1 398.4 341.9 397.3 341 396.1C340.2 394.9 339.6 393.5 339.3 392C339 390.6 338.1 389.1 339.3 387.6C339.5 386.2 340.1 384.8 340.9 383.5V383.5zM312.3 6.307C368.5 19.04 418.7 50.28 455 95.01C485.4 132.6 504.6 178 510.3 226C515.9 274 507.9 322.7 487.1 366.3C466.2 409.9 433.5 446.8 392.6 472.6C351.7 498.3 304.4 512 256 512C254.5 512 253.1 511.7 251.7 511.1C250.3 510.6 249.1 509.7 248 508.7C246.1 507.6 246.1 506.4 245.6 505C245 503.6 244.7 502.2 244.7 500.7V401.5L220.2 427.5C218.1 429.7 215.3 430.1 212.3 431.1C209.3 431.2 206.4 430 204.2 427.1C202 425.9 200.7 423.1 200.7 420.1C200.6 417.1 201.7 414.2 203.7 412L247.8 365.4C249.1 363.2 252.9 362 255.1 362C259.1 362 262 363.2 264.2 365.4L308.2 412C310.3 414.2 311.4 417.1 311.3 420.1C311.2 423.1 309.9 425.9 307.8 427.1C305.6 430 302.7 431.2 299.7 431.1C296.7 430.1 293.8 429.7 291.8 427.5L267.3 401.6V489.1C323.7 486.3 377.1 463.3 417.8 424.1C458.5 384.1 483.6 332.4 488.5 276.2C493.3 219.1 477.7 163.9 444.4 118.3C411.1 72.75 362.4 40.79 307.4 28.36C305.9 28.03 304.6 27.42 303.3 26.57C302.1 25.71 301.1 24.63 300.3 23.37C299.5 22.12 298.1 20.72 298.7 19.26C298.5 17.8 298.5 16.3 298.8 14.85C299.2 13.41 299.8 12.04 300.6 10.82C301.5 9.61 302.6 8.577 303.8 7.784C305.1 6.99 306.5 6.451 307.9 6.198C309.4 5.945 310.9 5.982 312.3 6.307L312.3 6.307zM353.1 256.1C353.1 287.5 335.6 317.2 303.8 339.6C301.7 341.1 299 341.9 296.4 341.6C293.7 341.4 291.2 340.3 289.4 338.4L219.3 268.6C217.1 266.5 215.1 263.6 215.9 260.6C215.9 257.6 217.1 254.7 219.2 252.6C221.4 250.5 224.2 249.3 227.2 249.3C230.2 249.3 233.1 250.5 235.2 252.6L298.3 315.4C319.1 298.3 330.5 277.5 330.5 256.1C330.5 232.2 316.4 209.1 290.8 191C288.3 189.3 286.7 186.7 286.2 183.7C285.7 180.8 286.3 177.7 288.1 175.3C289.8 172.8 292.4 171.2 295.4 170.7C298.3 170.2 301.4 170.8 303.8 172.6C335.6 195 353.1 224.7 353.1 256.1V256.1zM216.7 341.5C213.7 342 210.7 341.3 208.2 339.6C176.5 317.2 158.1 287.5 158.1 256.1C158.1 224.7 176.5 195 208.2 172.6C210.4 171 213.1 170.3 215.7 170.5C218.4 170.8 220.8 171.9 222.7 173.8L292.8 243.6C294.9 245.7 296.1 248.6 296.1 251.6C296.1 254.6 294.1 257.4 292.8 259.6C290.7 261.7 287.8 262.9 284.9 262.9C281.9 262.9 278.1 261.7 276.9 259.6L213.8 196.7C192.9 214 181.6 234.7 181.6 256.1C181.6 279.1 195.7 303.1 221.3 321.1C223.7 322.9 225.4 325.5 225.9 328.5C226.4 331.4 225.7 334.4 224 336.9C222.3 339.3 219.6 341 216.7 341.5L216.7 341.5z"], - "skype": [448, 512, [], "f17e", "M424.7 299.8c2.9-14 4.7-28.9 4.7-43.8 0-113.5-91.9-205.3-205.3-205.3-14.9 0-29.7 1.7-43.8 4.7C161.3 40.7 137.7 32 112 32 50.2 32 0 82.2 0 144c0 25.7 8.7 49.3 23.3 68.2-2.9 14-4.7 28.9-4.7 43.8 0 113.5 91.9 205.3 205.3 205.3 14.9 0 29.7-1.7 43.8-4.7 19 14.6 42.6 23.3 68.2 23.3 61.8 0 112-50.2 112-112 .1-25.6-8.6-49.2-23.2-68.1zm-194.6 91.5c-65.6 0-120.5-29.2-120.5-65 0-16 9-30.6 29.5-30.6 31.2 0 34.1 44.9 88.1 44.9 25.7 0 42.3-11.4 42.3-26.3 0-18.7-16-21.6-42-28-62.5-15.4-117.8-22-117.8-87.2 0-59.2 58.6-81.1 109.1-81.1 55.1 0 110.8 21.9 110.8 55.4 0 16.9-11.4 31.8-30.3 31.8-28.3 0-29.2-33.5-75-33.5-25.7 0-42 7-42 22.5 0 19.8 20.8 21.8 69.1 33 41.4 9.3 90.7 26.8 90.7 77.6 0 59.1-57.1 86.5-112 86.5z"], - "joget": [496, 512, [], "f3b7", "M378.1 45C337.6 19.9 292.6 8 248.2 8 165 8 83.8 49.9 36.9 125.9c-71.9 116.6-35.6 269.3 81 341.2s269.3 35.6 341.2-80.9c71.9-116.6 35.6-269.4-81-341.2zm51.8 323.2c-40.4 65.5-110.4 101.5-182 101.5-6.8 0-13.6-.4-20.4-1-9-13.6-19.9-33.3-23.7-42.4-5.7-13.7-27.2-45.6 31.2-67.1 51.7-19.1 176.7-16.5 208.8-17.6-4 9-8.6 17.9-13.9 26.6zm-200.8-86.3c-55.5-1.4-81.7-20.8-58.5-48.2s51.1-40.7 68.9-51.2c17.9-10.5 27.3-33.7-23.6-29.7C87.3 161.5 48.6 252.1 37.6 293c-8.8-49.7-.1-102.7 28.5-149.1C128 43.4 259.6 12.2 360.1 74.1c74.8 46.1 111.2 130.9 99.3 212.7-24.9-.5-179.3-3.6-230.3-4.9zm183.8-54.8c-22.7-6-57 11.3-86.7 27.2-29.7 15.8-31.1 8.2-31.1 8.2s40.2-28.1 50.7-34.5 31.9-14 13.4-24.6c-3.2-1.8-6.7-2.7-10.4-2.7-17.8 0-41.5 18.7-67.5 35.6-31.5 20.5-65.3 31.3-65.3 31.3l169.5-1.6 46.5-23.4s3.6-9.5-19.1-15.5z"], - "fedora": [448, 512, [], "f798", "M.0413 255.8C.1219 132.2 100.3 32 224 32C347.7 32 448 132.3 448 256C448 379.7 347.8 479.9 224.1 480H50.93C22.84 480 .0832 457.3 .0416 429.2H0V255.8H.0413zM342.6 192.7C342.6 153 307 124.2 269.4 124.2C234.5 124.2 203.6 150.5 199.3 184.1C199.1 187.9 198.9 189.1 198.9 192.6C198.8 213.7 198.9 235.4 198.1 257C199 283.1 199.1 309.1 198.1 333.6C198.1 360.7 178.7 379.1 153.4 379.1C128.1 379.1 107.6 358.9 107.6 333.6C108.1 305.9 130.2 288.3 156.1 287.5H156.3L182.6 287.3V250L156.3 250.2C109.2 249.8 71.72 286.7 70.36 333.6C70.36 379.2 107.9 416.5 153.4 416.5C196.4 416.5 232.1 382.9 236 340.9L236.2 287.4L268.8 287.1C294.1 287.3 293.8 249.3 268.6 249.8L236.2 250.1C236.2 243.7 236.3 237.3 236.3 230.9C236.4 218.2 236.4 205.5 236.2 192.7C236.3 176.2 252 161.5 269.4 161.5C286.9 161.5 305.3 170.2 305.3 192.7C305.3 195.9 305.2 197.8 305 199C303.1 209.5 310.2 219.4 320.7 220.9C331.3 222.4 340.9 214.8 341.9 204.3C342.5 200.1 342.6 196.4 342.6 192.7H342.6z"], - "stripe-s": [384, 512, [], "f42a", "M155.3 154.6c0-22.3 18.6-30.9 48.4-30.9 43.4 0 98.5 13.3 141.9 36.7V26.1C298.3 7.2 251.1 0 203.8 0 88.1 0 11 60.4 11 161.4c0 157.9 216.8 132.3 216.8 200.4 0 26.4-22.9 34.9-54.7 34.9-47.2 0-108.2-19.5-156.1-45.5v128.5a396.09 396.09 0 0 0 156 32.4c118.6 0 200.3-51 200.3-153.6 0-170.2-218-139.7-218-203.9z"], - "meta": [640, 512, [], "e49b", "M640 317.9C640 409.2 600.6 466.4 529.7 466.4C467.1 466.4 433.9 431.8 372.8 329.8L341.4 277.2C333.1 264.7 326.9 253 320.2 242.2C300.1 276 273.1 325.2 273.1 325.2C206.1 441.8 168.5 466.4 116.2 466.4C43.42 466.4 0 409.1 0 320.5C0 177.5 79.78 42.4 183.9 42.4C234.1 42.4 277.7 67.08 328.7 131.9C365.8 81.8 406.8 42.4 459.3 42.4C558.4 42.4 640 168.1 640 317.9H640zM287.4 192.2C244.5 130.1 216.5 111.7 183 111.7C121.1 111.7 69.22 217.8 69.22 321.7C69.22 370.2 87.7 397.4 118.8 397.4C149 397.4 167.8 378.4 222 293.6C222 293.6 246.7 254.5 287.4 192.2V192.2zM531.2 397.4C563.4 397.4 578.1 369.9 578.1 322.5C578.1 198.3 523.8 97.08 454.9 97.08C421.7 97.08 393.8 123 360 175.1C369.4 188.9 379.1 204.1 389.3 220.5L426.8 282.9C485.5 377 500.3 397.4 531.2 397.4L531.2 397.4z"], - "laravel": [512, 512, [], "f3bd", "M107.2 0c2.5 0 4.7 .8 6.7 2l94.3 54.1c2.7 1.5 4.5 3.5 5.4 5.9c.9 2.2 .9 4.3 .9 5.6l0 193.4 69.2-39.7 0-100.3c0-2.6 .6-5 2.2-7.2c1.5-2.1 3.5-3.6 5.7-4.8c0 0 0 0 0 0l94-54c1.6-.9 3.4-1.6 5.5-1.6s4 .7 5.6 1.6l95.8 55.1c2.3 1.3 3.9 3 4.9 5.3c.9 2.1 .9 4.2 .9 5.8l0 107.2c0 2-.2 4.3-1.4 6.4c-1.2 2.2-3 3.7-5.1 4.9l-.1 .1-88 50.5 0 100c0 2.3-.3 4.8-1.6 7c-1.3 2.2-3.3 3.7-5.3 4.9c0 0 0 0-.1 0L208.7 510c-2.2 1.2-4.5 2-7.1 2s-4.9-.9-7.1-2l-.1-.1L7.1 402l-.5-.3c-1.1-.7-2.6-1.7-3.8-2.9C.9 396.9 0 394.6 0 391.6L0 65.9c0-4.8 3-7.9 5.5-9.3L100.5 2c2-1.2 4.3-2 6.8-2zM38.1 67.1l69 39.9 69.2-39.9L107.1 27.4l-69 39.7zm353 93.2l69-39.7-69-39.7-69.1 39.7 69.1 39.7zM189.2 89L120 128.8l0 186.4 69.2-39.9 0-186.4zM94.5 128.9L25.2 89.1l0 294.2 164 94.2 0-79.4-87.3-49.3-.2-.1c-1.3-.8-3.2-1.9-4.6-3.7c-1.7-2.1-2.5-4.7-2.5-7.7l0-208.5zm214.7 92.4l69.3 39.6 0-78.5-69.3-39.9 0 78.8zm94.5 39.6L473 221.2l0-78.8-69.3 39.9 0 78.5zM201.6 376.1l163.8-93.2-69-39.9L133 337.1l68.6 38.9zm12.9 101.5l164-94.2 0-78.8-164 93.6 0 79.4z"], - "hotjar": [512, 512, [], "f3b1", "M361.5 0c0 131.6-80.7 176.8-140.2 209.4c-.6 .3-1.1 .6-1.6 .9c-53.8 30.2-88.7 49.8-89.6 122H32C32 200.8 112.7 155.6 172.2 123C227 93.2 262.5 73 262.5 0h98.9zM301 302.6c54.8-29.8 90.3-50 90.3-123h98c0 131.6-80.7 176.7-140.2 209.4c-54.8 29.8-90.3 50-90.3 123h-98c0-131.6 80.7-176.8 140.2-209.4z"], - "bluetooth-b": [320, 512, [], "f294", "M196.48 260.023l92.626-103.333L143.125 0v206.33l-86.111-86.111-31.406 31.405 108.061 108.399L25.608 368.422l31.406 31.405 86.111-86.111L145.84 512l148.552-148.644-97.912-103.333zm40.86-102.996l-49.977 49.978-.338-100.295 50.315 50.317zM187.363 313.04l49.977 49.978-50.315 50.316.338-100.294z"], - "square-letterboxd": [448, 512, [], "e62e", "M384 32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H384zM105.1 187C66.4 187 35 218.3 35 257s31.4 70 70.1 70c24.8 0 46.5-12.8 59-32.2l.5-.7-.4-.6c-6.5-10.6-10.2-23.1-10.2-36.5c0-13.6 3.9-26.3 10.6-37.1c-12.4-19.8-34.4-32.9-59.5-32.9zM224 187c-24.8 0-46.5 12.8-59 32.2l-.5 .7 .4 .6c6.5 10.6 10.2 23.1 10.2 36.5c0 13.6-3.9 26.3-10.6 37.1C176.9 313.8 198.9 327 224 327c24.8 0 46.5-12.8 59-32.2l.5-.7-.4-.6c-6.5-10.6-10.2-23.1-10.2-36.5c0-13.6 3.9-26.3 10.6-37.1C271.1 200.2 249.1 187 224 187zm118.9 0c-24.8 0-46.5 12.8-59 32.2l-.5 .7 .4 .6c6.5 10.6 10.2 23.1 10.2 36.5c0 13.6-3.9 26.3-10.6 37.1c12.4 19.8 34.4 32.9 59.5 32.9c38.7 0 70.1-31.3 70.1-70s-31.4-70-70.1-70z"], - "sticker-mule": [576, 512, [], "f3f7", "M561.7 199.6c-1.3.3.3 0 0 0zm-6.2-77.4c-7.7-22.3-5.1-7.2-13.4-36.9-1.6-6.5-3.6-14.5-6.2-20-4.4-8.7-4.6-7.5-4.6-9.5 0-5.3 30.7-45.3 19-46.9-5.7-.6-12.2 11.6-20.6 17-8.6 4.2-8 5-10.3 5-2.6 0-5.7-3-6.2-5-2-5.7 1.9-25.9-3.6-25.9-3.6 0-12.3 24.8-17 25.8-5.2 1.3-27.9-11.4-75.1 18-25.3 13.2-86.9 65.2-87 65.3-6.7 4.7-20 4.7-35.5 16-44.4 30.1-109.6 9.4-110.7 9-110.6-26.8-128-15.2-159 11.5-20.8 17.9-23.7 36.5-24.2 38.9-4.2 20.4 5.2 48.3 6.7 64.3 1.8 19.3-2.7 17.7 7.7 98.3.5 1 4.1 0 5.1 1.5 0 8.4-3.8 12.1-4.1 13-1.5 4.5-1.5 10.5 0 16 2.3 8.2 8.2 37.2 8.2 46.9 0 41.8.4 44 2.6 49.4 3.9 10 12.5 9.1 17 12 3.1 3.5-.5 8.5 1 12.5.5 2 3.6 4 6.2 5 9.2 3.6 27 .3 29.9-2.5 1.6-1.5.5-4.5 3.1-5 5.1 0 10.8-.5 14.4-2.5 5.1-2.5 4.1-6 1.5-10.5-.4-.8-7-13.3-9.8-16-2.1-2-5.1-3-7.2-4.5-5.8-4.9-10.3-19.4-10.3-19.5-4.6-19.4-10.3-46.3-4.1-66.8 4.6-17.2 39.5-87.7 39.6-87.8 4.1-6.5 17-11.5 27.3-7 6 1.9 19.3 22 65.4 30.9 47.9 8.7 97.4-2 112.2-2 2.8 2-1.9 13-.5 38.9 0 26.4-.4 13.7-4.1 29.9-2.2 9.7 3.4 23.2-1.5 46.9-1.4 9.8-9.9 32.7-8.2 43.4.5 1 1 2 1.5 3.5.5 4.5 1.5 8.5 4.6 10 7.3 3.6 12-3.5 9.8 11.5-.7 3.1-2.6 12 1.5 15 4.4 3.7 30.6 3.4 36.5.5 2.6-1.5 1.6-4.5 6.4-7.4 1.9-.9 11.3-.4 11.3-6.5.3-1.8-9.2-19.9-9.3-20-2.6-3.5-9.2-4.5-11.3-8-6.9-10.1-1.7-52.6.5-59.4 3-11 5.6-22.4 8.7-32.4 11-42.5 10.3-50.6 16.5-68.3.8-1.8 6.4-23.1 10.3-29.9 9.3-17 21.7-32.4 33.5-47.4 18-22.9 34-46.9 52-69.8 6.1-7 8.2-13.7 18-8 10.8 5.7 21.6 7 31.9 17 14.6 12.8 10.2 18.2 11.8 22.9 1.5 5 7.7 10.5 14.9 9.5 10.4-2 13-2.5 13.4-2.5 2.6-.5 5.7-5 7.2-8 3.1-5.5 7.2-9 7.2-16.5 0-7.7-.4-2.8-20.6-52.9z"], - "creative-commons-zero": [496, 512, [], "f4f3", "M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm-.4 60.5c-81.9 0-102.5 77.3-102.5 142.8 0 65.5 20.6 142.8 102.5 142.8S350.5 321.5 350.5 256c0-65.5-20.6-142.8-102.5-142.8zm0 53.9c3.3 0 6.4.5 9.2 1.2 5.9 5.1 8.8 12.1 3.1 21.9l-54.5 100.2c-1.7-12.7-1.9-25.1-1.9-34.4 0-28.8 2-88.9 44.1-88.9zm40.8 46.2c2.9 15.4 3.3 31.4 3.3 42.7 0 28.9-2 88.9-44.1 88.9-13.5 0-32.6-7.7-20.1-26.4l60.9-105.2z"], - "hips": [640, 512, [], "f452", "M251.6 157.6c0-1.9-.9-2.8-2.8-2.8h-40.9c-1.6 0-2.7 1.4-2.7 2.8v201.8c0 1.4 1.1 2.8 2.7 2.8h40.9c1.9 0 2.8-.9 2.8-2.8zM156.5 168c-16.1-11.8-36.3-17.9-60.3-18-18.1-.1-34.6 3.7-49.8 11.4V80.2c0-1.8-.9-2.7-2.8-2.7H2.7c-1.8 0-2.7.9-2.7 2.7v279.2c0 1.9.9 2.8 2.7 2.8h41c1.9 0 2.8-.9 2.8-2.8V223.3c0-.8-2.8-27 45.8-27 48.5 0 45.8 26.1 45.8 27v122.6c0 9 7.3 16.3 16.4 16.3h27.3c1.8 0 2.7-.9 2.7-2.8V223.3c0-23.4-9.3-41.8-28-55.3zm478.4 110.1c-6.8-15.7-18.4-27-34.9-34.1l-57.6-25.3c-8.6-3.6-9.2-11.2-2.6-16.1 7.4-5.5 44.3-13.9 84 6.8 1.7 1 4-.3 4-2.4v-44.7c0-1.3-.6-2.1-1.9-2.6-17.7-6.6-36.1-9.9-55.1-9.9-26.5 0-45.3 5.8-58.5 15.4-.5.4-28.4 20-22.7 53.7 3.4 19.6 15.8 34.2 37.2 43.6l53.6 23.5c11.6 5.1 15.2 13.3 12.2 21.2-3.7 9.1-13.2 13.6-36.5 13.6-24.3 0-44.7-8.9-58.4-19.1-2.1-1.4-4.4.2-4.4 2.3v34.4c0 10.4 4.9 17.3 14.6 20.7 15.6 5.5 31.6 8.2 48.2 8.2 12.7 0 25.8-1.2 36.3-4.3.7-.3 36-8.9 45.6-45.8 3.5-13.5 2.4-26.5-3.1-39.1zM376.2 149.8c-31.7 0-104.2 20.1-104.2 103.5v183.5c0 .8.6 2.7 2.7 2.7h40.9c1.9 0 2.8-.9 2.8-2.7V348c16.5 12.7 35.8 19.1 57.7 19.1 60.5 0 108.7-48.5 108.7-108.7.1-60.3-48.2-108.6-108.6-108.6zm0 170.9c-17.2 0-31.9-6.1-44-18.2-12.2-12.2-18.2-26.8-18.2-44 0-34.5 27.6-62.2 62.2-62.2 34.5 0 62.2 27.6 62.2 62.2.1 34.3-27.3 62.2-62.2 62.2zM228.3 72.5c-15.9 0-28.8 12.9-28.9 28.9 0 15.6 12.7 28.9 28.9 28.9s28.9-13.1 28.9-28.9c0-16.2-13-28.9-28.9-28.9z"], - "css": [448, 512, [], "e6a2", "M376.3 32L0 32 0 408.3c0 19 7.6 37.2 21 50.7s31.7 21 50.7 21l304.6 0c19 0 37.2-7.6 50.7-21s21-31.7 21-50.7l0-304.6c0-19-7.6-37.2-21-50.7s-31.7-21-50.7-21zM332.4 431.4c-7.7-8.5-11.7-20.7-12-36.6l31.3 0c.2 14.1 5.1 21.1 14.8 21.1c4.9 0 8.4-1.6 10.5-4.7c2-3.1 3-8 3-14.8c0-5.4-1.3-9.9-4-13.4c-3.5-4.2-8.1-7.5-13.2-9.5L351.2 368c-10.3-4.9-17.8-10.8-22.5-17.6c-4.5-6.8-6.7-16.3-6.7-28.4c0-13.6 4-24.6 11.8-33.1c8.1-8.5 19.1-12.7 33.2-12.7c13.6 0 24.1 4.2 31.5 12.5c7.5 8.4 11.5 20.3 11.8 35.9l-30.1 0c.2-5.1-.9-10.2-3-14.8c-1.7-3.4-5-5.1-10-5.1c-8.8 0-13.2 5.2-13.2 15.7c0 5.3 1.1 9.4 3.2 12.6c3.1 3.5 7 6.2 11.4 7.8l11.1 4.9c11.5 5.3 19.7 11.7 24.8 19.4c5.1 7.7 7.6 18 7.6 31c0 15.5-4 27.4-12.3 35.7c-8.2 8.3-19.5 12.5-34.1 12.5s-25.6-4.2-33.4-12.7zm-101 0c-7.7-8.5-11.7-20.7-12-36.6l31.3 0c.2 14.1 5.1 21.1 14.8 21.1c4.9 0 8.4-1.6 10.4-4.7c2-3.1 3-8 3-14.8c0-5.4-1.3-9.9-3.9-13.4c-3.5-4.2-8.1-7.5-13.2-9.5L250.2 368c-10.3-4.9-17.8-10.8-22.5-17.6c-4.5-6.8-6.7-16.3-6.7-28.4c0-13.6 4-24.6 11.8-33.1c8.1-8.5 19.1-12.7 33.2-12.7c13.6 0 24.1 4.2 31.4 12.5c7.6 8.4 11.5 20.3 11.9 35.9l-30.1 0c.2-5.1-.9-10.2-3-14.8c-1.7-3.4-5-5.1-10-5.1c-8.8 0-13.2 5.2-13.2 15.7c0 5.3 1.1 9.4 3.2 12.6c3.1 3.5 7 6.2 11.4 7.8l11.1 4.9c11.5 5.3 19.7 11.7 24.8 19.4c5.1 7.7 7.6 18 7.6 31c0 15.5-4.1 27.4-12.3 35.7s-19.5 12.5-34.1 12.5s-25.6-4.2-33.4-12.7zm-105.6 1.1c-8.4-7.7-12.5-19.2-12.5-34.5l0-75.4c0-15.2 4.4-26.7 13.2-34.6c8.9-7.8 20.7-11.8 35.2-11.8c14.1 0 25.2 4 33.4 12c8.3 8 12.5 20 12.5 35.9l0 6-33.1 0 0-5.8c0-6.1-1.3-10.7-4-13.6c-1.1-1.5-2.6-2.7-4.3-3.5s-3.5-1.2-5.4-1.1c-5.4 0-9.2 1.8-11.4 5.6c-2.3 5.2-3.3 10.8-3 16.4l0 65.5c0 13.7 4.8 20.6 14.4 20.8c4.5 0 7.9-1.6 10.2-4.8c2.5-4.1 3.7-8.8 3.5-13.6l0-4.9 33.1 0 0 5.1c0 10.6-2.1 19.5-6.2 26.6c-4 6.9-9.9 12.5-17.1 16c-7.7 3.7-16.1 5.5-24.6 5.3c-14.2 0-25.5-3.9-33.8-11.6z"], - "behance": [576, 512, [], "f1b4", "M232 237.2c31.8-15.2 48.4-38.2 48.4-74 0-70.6-52.6-87.8-113.3-87.8H0v354.4h171.8c64.4 0 124.9-30.9 124.9-102.9 0-44.5-21.1-77.4-64.7-89.7zM77.9 135.9H151c28.1 0 53.4 7.9 53.4 40.5 0 30.1-19.7 42.2-47.5 42.2h-79v-82.7zm83.3 233.7H77.9V272h84.9c34.3 0 56 14.3 56 50.6 0 35.8-25.9 47-57.6 47zm358.5-240.7H376V94h143.7v34.9zM576 305.2c0-75.9-44.4-139.2-124.9-139.2-78.2 0-131.3 58.8-131.3 135.8 0 79.9 50.3 134.7 131.3 134.7 61.3 0 101-27.6 120.1-86.3H509c-6.7 21.9-34.3 33.5-55.7 33.5-41.3 0-63-24.2-63-65.3h185.1c.3-4.2.6-8.7.6-13.2zM390.4 274c2.3-33.7 24.7-54.8 58.5-54.8 35.4 0 53.2 20.8 56.2 54.8H390.4z"], - "reddit": [512, 512, [], "f1a1", "M0 256C0 114.6 114.6 0 256 0S512 114.6 512 256s-114.6 256-256 256L37.1 512c-13.7 0-20.5-16.5-10.9-26.2L75 437C28.7 390.7 0 326.7 0 256zM349.6 153.6c23.6 0 42.7-19.1 42.7-42.7s-19.1-42.7-42.7-42.7c-20.6 0-37.8 14.6-41.8 34c-34.5 3.7-61.4 33-61.4 68.4l0 .2c-37.5 1.6-71.8 12.3-99 29.1c-10.1-7.8-22.8-12.5-36.5-12.5c-33 0-59.8 26.8-59.8 59.8c0 24 14.1 44.6 34.4 54.1c2 69.4 77.6 125.2 170.6 125.2s168.7-55.9 170.6-125.3c20.2-9.6 34.1-30.2 34.1-54c0-33-26.8-59.8-59.8-59.8c-13.7 0-26.3 4.6-36.4 12.4c-27.4-17-62.1-27.7-100-29.1l0-.2c0-25.4 18.9-46.5 43.4-49.9l0 0c4.4 18.8 21.3 32.8 41.5 32.8zM177.1 246.9c16.7 0 29.5 17.6 28.5 39.3s-13.5 29.6-30.3 29.6s-31.4-8.8-30.4-30.5s15.4-38.3 32.1-38.3zm190.1 38.3c1 21.7-13.7 30.5-30.4 30.5s-29.3-7.9-30.3-29.6c-1-21.7 11.8-39.3 28.5-39.3s31.2 16.6 32.1 38.3zm-48.1 56.7c-10.3 24.6-34.6 41.9-63 41.9s-52.7-17.3-63-41.9c-1.2-2.9 .8-6.2 3.9-6.5c18.4-1.9 38.3-2.9 59.1-2.9s40.7 1 59.1 2.9c3.1 .3 5.1 3.6 3.9 6.5z"], - "discord": [640, 512, [], "f392", "M524.531,69.836a1.5,1.5,0,0,0-.764-.7A485.065,485.065,0,0,0,404.081,32.03a1.816,1.816,0,0,0-1.923.91,337.461,337.461,0,0,0-14.9,30.6,447.848,447.848,0,0,0-134.426,0,309.541,309.541,0,0,0-15.135-30.6,1.89,1.89,0,0,0-1.924-.91A483.689,483.689,0,0,0,116.085,69.137a1.712,1.712,0,0,0-.788.676C39.068,183.651,18.186,294.69,28.43,404.354a2.016,2.016,0,0,0,.765,1.375A487.666,487.666,0,0,0,176.02,479.918a1.9,1.9,0,0,0,2.063-.676A348.2,348.2,0,0,0,208.12,430.4a1.86,1.86,0,0,0-1.019-2.588,321.173,321.173,0,0,1-45.868-21.853,1.885,1.885,0,0,1-.185-3.126c3.082-2.309,6.166-4.711,9.109-7.137a1.819,1.819,0,0,1,1.9-.256c96.229,43.917,200.41,43.917,295.5,0a1.812,1.812,0,0,1,1.924.233c2.944,2.426,6.027,4.851,9.132,7.16a1.884,1.884,0,0,1-.162,3.126,301.407,301.407,0,0,1-45.89,21.83,1.875,1.875,0,0,0-1,2.611,391.055,391.055,0,0,0,30.014,48.815,1.864,1.864,0,0,0,2.063.7A486.048,486.048,0,0,0,610.7,405.729a1.882,1.882,0,0,0,.765-1.352C623.729,277.594,590.933,167.465,524.531,69.836ZM222.491,337.58c-28.972,0-52.844-26.587-52.844-59.239S193.056,219.1,222.491,219.1c29.665,0,53.306,26.82,52.843,59.239C275.334,310.993,251.924,337.58,222.491,337.58Zm195.38,0c-28.971,0-52.843-26.587-52.843-59.239S388.437,219.1,417.871,219.1c29.667,0,53.307,26.82,52.844,59.239C470.715,310.993,447.538,337.58,417.871,337.58Z"], - "chrome": [512, 512, [], "f268", "M0 256C0 209.4 12.47 165.6 34.27 127.1L144.1 318.3C166 357.5 207.9 384 256 384C270.3 384 283.1 381.7 296.8 377.4L220.5 509.6C95.9 492.3 0 385.3 0 256zM365.1 321.6C377.4 302.4 384 279.1 384 256C384 217.8 367.2 183.5 340.7 160H493.4C505.4 189.6 512 222.1 512 256C512 397.4 397.4 511.1 256 512L365.1 321.6zM477.8 128H256C193.1 128 142.3 172.1 130.5 230.7L54.19 98.47C101 38.53 174 0 256 0C350.8 0 433.5 51.48 477.8 128V128zM168 256C168 207.4 207.4 168 256 168C304.6 168 344 207.4 344 256C344 304.6 304.6 344 256 344C207.4 344 168 304.6 168 256z"], - "app-store-ios": [448, 512, [], "f370", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM127 384.5c-5.5 9.6-17.8 12.8-27.3 7.3-9.6-5.5-12.8-17.8-7.3-27.3l14.3-24.7c16.1-4.9 29.3-1.1 39.6 11.4L127 384.5zm138.9-53.9H84c-11 0-20-9-20-20s9-20 20-20h51l65.4-113.2-20.5-35.4c-5.5-9.6-2.2-21.8 7.3-27.3 9.6-5.5 21.8-2.2 27.3 7.3l8.9 15.4 8.9-15.4c5.5-9.6 17.8-12.8 27.3-7.3 9.6 5.5 12.8 17.8 7.3 27.3l-85.8 148.6h62.1c20.2 0 31.5 23.7 22.7 40zm98.1 0h-29l19.6 33.9c5.5 9.6 2.2 21.8-7.3 27.3-9.6 5.5-21.8 2.2-27.3-7.3-32.9-56.9-57.5-99.7-74-128.1-16.7-29-4.8-58 7.1-67.8 13.1 22.7 32.7 56.7 58.9 102h52c11 0 20 9 20 20 0 11.1-9 20-20 20z"], - "cc-discover": [576, 512, [], "f1f2", "M520.4 196.1c0-7.9-5.5-12.1-15.6-12.1h-4.9v24.9h4.7c10.3 0 15.8-4.4 15.8-12.8zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-44.1 138.9c22.6 0 52.9-4.1 52.9 24.4 0 12.6-6.6 20.7-18.7 23.2l25.8 34.4h-19.6l-22.2-32.8h-2.2v32.8h-16zm-55.9.1h45.3v14H444v18.2h28.3V217H444v22.2h29.3V253H428zm-68.7 0l21.9 55.2 22.2-55.2h17.5l-35.5 84.2h-8.6l-35-84.2zm-55.9-3c24.7 0 44.6 20 44.6 44.6 0 24.7-20 44.6-44.6 44.6-24.7 0-44.6-20-44.6-44.6 0-24.7 20-44.6 44.6-44.6zm-49.3 6.1v19c-20.1-20.1-46.8-4.7-46.8 19 0 25 27.5 38.5 46.8 19.2v19c-29.7 14.3-63.3-5.7-63.3-38.2 0-31.2 33.1-53 63.3-38zm-97.2 66.3c11.4 0 22.4-15.3-3.3-24.4-15-5.5-20.2-11.4-20.2-22.7 0-23.2 30.6-31.4 49.7-14.3l-8.4 10.8c-10.4-11.6-24.9-6.2-24.9 2.5 0 4.4 2.7 6.9 12.3 10.3 18.2 6.6 23.6 12.5 23.6 25.6 0 29.5-38.8 37.4-56.6 11.3l10.3-9.9c3.7 7.1 9.9 10.8 17.5 10.8zM55.4 253H32v-82h23.4c26.1 0 44.1 17 44.1 41.1 0 18.5-13.2 40.9-44.1 40.9zm67.5 0h-16v-82h16zM544 433c0 8.2-6.8 15-15 15H128c189.6-35.6 382.7-139.2 416-160zM74.1 191.6c-5.2-4.9-11.6-6.6-21.9-6.6H48v54.2h4.2c10.3 0 17-2 21.9-6.4 5.7-5.2 8.9-12.8 8.9-20.7s-3.2-15.5-8.9-20.5z"], - "wpbeginner": [512, 512, [], "f297", "M462.799 322.374C519.01 386.682 466.961 480 370.944 480c-39.602 0-78.824-17.687-100.142-50.04-6.887.356-22.702.356-29.59 0C219.848 462.381 180.588 480 141.069 480c-95.49 0-148.348-92.996-91.855-157.626C-29.925 190.523 80.479 32 256.006 32c175.632 0 285.87 158.626 206.793 290.374zm-339.647-82.972h41.529v-58.075h-41.529v58.075zm217.18 86.072v-23.839c-60.506 20.915-132.355 9.198-187.589-33.971l.246 24.897c51.101 46.367 131.746 57.875 187.343 32.913zm-150.753-86.072h166.058v-58.075H189.579v58.075z"], - "confluence": [512, 512, [], "f78d", "M2.3 412.2c-4.5 7.6-2.1 17.5 5.5 22.2l105.9 65.2c7.7 4.7 17.7 2.4 22.4-5.3 0-.1.1-.2.1-.2 67.1-112.2 80.5-95.9 280.9-.7 8.1 3.9 17.8.4 21.7-7.7.1-.1.1-.3.2-.4l50.4-114.1c3.6-8.1-.1-17.6-8.1-21.3-22.2-10.4-66.2-31.2-105.9-50.3C127.5 179 44.6 345.3 2.3 412.2zm507.4-312.1c4.5-7.6 2.1-17.5-5.5-22.2L398.4 12.8c-7.5-5-17.6-3.1-22.6 4.4-.2.3-.4.6-.6 1-67.3 112.6-81.1 95.6-280.6.9-8.1-3.9-17.8-.4-21.7 7.7-.1.1-.1.3-.2.4L22.2 141.3c-3.6 8.1.1 17.6 8.1 21.3 22.2 10.4 66.3 31.2 106 50.4 248 120 330.8-45.4 373.4-112.9z"], - "shoelace": [512, 512, [], "e60c", "M404.9 331c2.2-1.1 4.4-2.3 6.5-3.7l8.3-4.8c1.5-1.1 4.4-3.4 8.7-6.7l.5-.5c3.4-3.4 7.2-5 11.3-4.9c1.8 0 3.9 .5 6.4 1.5l31-27.5c.9-.7 1.7-1.3 2.6-1.8h.2c3.3-1.9 6-1.8 8.2 .4c3.9 2.1 4.2 5.6 .9 10.6L456.9 322c.2 .5 .4 1 .4 1.5c.5 2.2 .3 4.4-.5 6.6c-.7 1.5-1.8 2.9-3.1 4.2c-1.4 1.4-2.7 2.8-4.2 4.2l-18.8 13.7c-1.7 1.2-3.4 2.3-5.1 3.3c-2.1 1.3-4.3 2.5-6.6 3.6c-1 .4-1.9 .9-2.9 1.3c-5.9 2.5-11.9 4.2-18.2 5c-2.9 24.5-11.3 47.1-25.1 67.8c-17.5 25.7-41.4 45.4-71.8 58.8c-30.2 13.5-63 20.2-98.2 20.2c-48.6-.5-88-11.4-118.2-32.8C49.5 454.4 32 421.5 32 380.3v-5.6c1.2-28.1 9.5-54.6 24.8-79.8c15.1-24.9 37.1-41.7 66.1-50.5c14.9-4.4 29.9-6.6 45-6.6c15.5 0 31.6 2.9 48.1 8.6s35.2 15.5 55.9 29.5L326 312.2c15.1 9.8 28.8 16.5 41.2 20c-2.6-25.1-11.7-46.6-27.3-64.5c-15.7-18.1-35.6-31.3-59.9-39.7l-23.3-8c-21.4-7.5-37.3-14.9-47.7-22.2c-28.2-19.1-43.8-45.2-47-78.5l-.5-9.8c0-32.1 13-58.9 39-80.5C223.5 9.7 251.1 0 283 0c24 0 45.6 6.9 64.7 20.8c19.2 14 30.1 33.8 32.6 59.4l.5 10c0 18.6-4.8 34.5-14.4 47.7c-9.8 13.2-18.5 19.9-26 19.9c-1.6-.1-3.1-.3-4.5-.6l-34 32c-5.5 3-9.2 2.5-11.1-1.6c-1.9-2.2-1.8-4.9 .5-8.2l.2-.2c.5-.7 1.2-1.5 2-2.4l31.6-30c-.4-1.5-.6-3.1-.6-4.8c0-4.1 1.6-7.6 4.9-10.4c13.8-12.4 20.8-26.7 20.8-42.8c0-16-6.1-29.5-18.2-40.4s-28.7-16.5-49.7-16.8c-26.2 0-47.8 7.9-64.7 23.7S192.3 89.9 192.3 112c0 17.8 6.9 33.9 20.6 48.3c13.6 14.2 34.6 25.4 63 33.5c39.8 11.5 70.2 31 91.3 58.3c18.7 24.2 29.1 51.3 31.3 81.4c2.2-.7 4.3-1.5 6.5-2.6zM294.1 178.7c0 1.1 .6 1.6 1.8 1.6c.1 0 9.7-8.9 28.8-26.6c0-2.4-5.1 .9-15.3 10c-10.2 9.2-15.3 14.2-15.3 14.9zm8 6.4c0-1-.5-1.5-1.5-1.5c-1.1 0-2.1 .5-2.9 1.6c-1.9-.1-3.3 .1-4.2 .7c-.4 .2-.5 .5-.5 .7c0 .7 .5 1.3 1.5 1.6h3.3c2.9-1.1 4.4-2.2 4.4-3.3zm22.6-19.9c0-2.8-1.6-2.8-4.9 0c-1.6 1.5-3.6 3.5-6 6.2c-.8 .6-2.6 2.2-5.3 4.9c-2.8 2.9-4.2 4.7-4.2 5.3l.2 1.3c.7 .2 1.2 .4 1.5 .4c.1 0 3.3-2.9 9.5-8.7s9.3-8.9 9.3-9.3zm159.7 120l-30.6 27c1.8 1 3.2 2.4 4 4.2l30.2-27c.2-1.2 .1-2.2-.5-2.9c-.6-.5-1.6-.9-3.1-1.3zm-1.6-.9l-.7-.7-27 21.9 1.6 2 26-23.1zM366.6 363.9c-8-2.1-15.4-4.6-22.2-7.5c-15.3-6.2-34.3-17-57-32.4L250 298.7c-15.8-10.1-30.2-17.6-43.2-22.6c-13.1-4.9-26-7.3-38.6-7.3h-5.5c-32.2 1.7-57.2 13.8-75 36.2c-16.6 20.8-25 45.3-25 73.6c0 31.8 12.8 56.7 38.2 74.7c25.4 18.1 60.2 27.1 104.4 27.1c34.7 0 64-6.2 87.8-18.6c23.7-12.4 42.1-28.8 55.2-49.2c9.8-15.5 15.9-31.8 18.2-48.8z"], - "mdb": [576, 512, [], "f8ca", "M17.37 160.41L7 352h43.91l5.59-79.83L84.43 352h44.71l25.54-77.43 4.79 77.43H205l-12.79-191.59H146.7L106 277.74 63.67 160.41zm281 0h-47.9V352h47.9s95 .8 94.2-95.79c-.78-94.21-94.18-95.78-94.18-95.78zm-1.2 146.46V204.78s46 4.27 46.8 50.57-46.78 51.54-46.78 51.54zm238.29-74.24a56.16 56.16 0 0 0 8-38.31c-5.34-35.76-55.08-34.32-55.08-34.32h-51.9v191.58H482s87 4.79 87-63.85c0-43.14-33.52-55.08-33.52-55.08zm-51.9-31.94s13.57-1.59 16 9.59c1.43 6.66-4 12-4 12h-12v-21.57zm-.1 109.46l.1-24.92V267h.08s41.58-4.73 41.19 22.43c-.33 25.65-41.35 20.74-41.35 20.74z"], - "dochub": [416, 512, [], "f394", "M397.9 160H256V19.6L397.9 160zM304 192v130c0 66.8-36.5 100.1-113.3 100.1H96V84.8h94.7c12 0 23.1.8 33.1 2.5v-84C212.9 1.1 201.4 0 189.2 0H0v512h189.2C329.7 512 400 447.4 400 318.1V192h-96z"], - "accessible-icon": [448, 512, [62107], "f368", "M423.9 255.8L411 413.1c-3.3 40.7-63.9 35.1-60.6-4.9l10-122.5-41.1 2.3c10.1 20.7 15.8 43.9 15.8 68.5 0 41.2-16.1 78.7-42.3 106.5l-39.3-39.3c57.9-63.7 13.1-167.2-74-167.2-25.9 0-49.5 9.9-67.2 26L73 243.2c22-20.7 50.1-35.1 81.4-40.2l75.3-85.7-42.6-24.8-51.6 46c-30 26.8-70.6-18.5-40.5-45.4l68-60.7c9.8-8.8 24.1-10.2 35.5-3.6 0 0 139.3 80.9 139.5 81.1 16.2 10.1 20.7 36 6.1 52.6L285.7 229l106.1-5.9c18.5-1.1 33.6 14.4 32.1 32.7zm-64.9-154c28.1 0 50.9-22.8 50.9-50.9C409.9 22.8 387.1 0 359 0c-28.1 0-50.9 22.8-50.9 50.9 0 28.1 22.8 50.9 50.9 50.9zM179.6 456.5c-80.6 0-127.4-90.6-82.7-156.1l-39.7-39.7C36.4 287 24 320.3 24 356.4c0 130.7 150.7 201.4 251.4 122.5l-39.7-39.7c-16 10.9-35.3 17.3-56.1 17.3z"], - "ebay": [640, 512, [], "f4f4", "M606 189.5l-54.8 109.9-54.9-109.9h-37.5l10.9 20.6c-11.5-19-35.9-26-63.3-26-31.8 0-67.9 8.7-71.5 43.1h33.7c1.4-13.8 15.7-21.8 35-21.8 26 0 41 9.6 41 33v3.4c-12.7 0-28 .1-41.7.4-42.4.9-69.6 10-76.7 34.4 1-5.2 1.5-10.6 1.5-16.2 0-52.1-39.7-76.2-75.4-76.2-21.3 0-43 5.5-58.7 24.2v-80.6h-32.1v169.5c0 10.3-.6 22.9-1.1 33.1h31.5c.7-6.3 1.1-12.9 1.1-19.5 13.6 16.6 35.4 24.9 58.7 24.9 36.9 0 64.9-21.9 73.3-54.2-.5 2.8-.7 5.8-.7 9 0 24.1 21.1 45 60.6 45 26.6 0 45.8-5.7 61.9-25.5 0 6.6.3 13.3 1.1 20.2h29.8c-.7-8.2-1-17.5-1-26.8v-65.6c0-9.3-1.7-17.2-4.8-23.8l61.5 116.1-28.5 54.1h35.9L640 189.5zM243.7 313.8c-29.6 0-50.2-21.5-50.2-53.8 0-32.4 20.6-53.8 50.2-53.8 29.8 0 50.2 21.4 50.2 53.8 0 32.3-20.4 53.8-50.2 53.8zm200.9-47.3c0 30-17.9 48.4-51.6 48.4-25.1 0-35-13.4-35-25.8 0-19.1 18.1-24.4 47.2-25.3 13.1-.5 27.6-.6 39.4-.6zm-411.9 1.6h128.8v-8.5c0-51.7-33.1-75.4-78.4-75.4-56.8 0-83 30.8-83 77.6 0 42.5 25.3 74 82.5 74 31.4 0 68-11.7 74.4-46.1h-33.1c-12 35.8-87.7 36.7-91.2-21.6zm95-21.4H33.3c6.9-56.6 92.1-54.7 94.4 0z"], - "amazon": [448, 512, [], "f270", "M257.2 162.7c-48.7 1.8-169.5 15.5-169.5 117.5 0 109.5 138.3 114 183.5 43.2 6.5 10.2 35.4 37.5 45.3 46.8l56.8-56S341 288.9 341 261.4V114.3C341 89 316.5 32 228.7 32 140.7 32 94 87 94 136.3l73.5 6.8c16.3-49.5 54.2-49.5 54.2-49.5 40.7-.1 35.5 29.8 35.5 69.1zm0 86.8c0 80-84.2 68-84.2 17.2 0-47.2 50.5-56.7 84.2-57.8v40.6zm136 163.5c-7.7 10-70 67-174.5 67S34.2 408.5 9.7 379c-6.8-7.7 1-11.3 5.5-8.3C88.5 415.2 203 488.5 387.7 401c7.5-3.7 13.3 2 5.5 12zm39.8 2.2c-6.5 15.8-16 26.8-21.2 31-5.5 4.5-9.5 2.7-6.5-3.8s19.3-46.5 12.7-55c-6.5-8.3-37-4.3-48-3.2-10.8 1-13 2-14-.3-2.3-5.7 21.7-15.5 37.5-17.5 15.7-1.8 41-.8 46 5.7 3.7 5.1 0 27.1-6.5 43.1z"], - "unsplash": [448, 512, [], "e07c", "M448,230.17V480H0V230.17H141.13V355.09H306.87V230.17ZM306.87,32H141.13V156.91H306.87Z"], - "yarn": [496, 512, [], "f7e3", "M393.9 345.2c-39 9.3-48.4 32.1-104 47.4 0 0-2.7 4-10.4 5.8-13.4 3.3-63.9 6-68.5 6.1-12.4.1-19.9-3.2-22-8.2-6.4-15.3 9.2-22 9.2-22-8.1-5-9-9.9-9.8-8.1-2.4 5.8-3.6 20.1-10.1 26.5-8.8 8.9-25.5 5.9-35.3.8-10.8-5.7.8-19.2.8-19.2s-5.8 3.4-10.5-3.6c-6-9.3-17.1-37.3 11.5-62-1.3-10.1-4.6-53.7 40.6-85.6 0 0-20.6-22.8-12.9-43.3 5-13.4 7-13.3 8.6-13.9 5.7-2.2 11.3-4.6 15.4-9.1 20.6-22.2 46.8-18 46.8-18s12.4-37.8 23.9-30.4c3.5 2.3 16.3 30.6 16.3 30.6s13.6-7.9 15.1-5c8.2 16 9.2 46.5 5.6 65.1-6.1 30.6-21.4 47.1-27.6 57.5-1.4 2.4 16.5 10 27.8 41.3 10.4 28.6 1.1 52.7 2.8 55.3.8 1.4 13.7.8 36.4-13.2 12.8-7.9 28.1-16.9 45.4-17 16.7-.5 17.6 19.2 4.9 22.2zM496 256c0 136.9-111.1 248-248 248S0 392.9 0 256 111.1 8 248 8s248 111.1 248 248zm-79.3 75.2c-1.7-13.6-13.2-23-28-22.8-22 .3-40.5 11.7-52.8 19.2-4.8 3-8.9 5.2-12.4 6.8 3.1-44.5-22.5-73.1-28.7-79.4 7.8-11.3 18.4-27.8 23.4-53.2 4.3-21.7 3-55.5-6.9-74.5-1.6-3.1-7.4-11.2-21-7.4-9.7-20-13-22.1-15.6-23.8-1.1-.7-23.6-16.4-41.4 28-12.2.9-31.3 5.3-47.5 22.8-2 2.2-5.9 3.8-10.1 5.4h.1c-8.4 3-12.3 9.9-16.9 22.3-6.5 17.4.2 34.6 6.8 45.7-17.8 15.9-37 39.8-35.7 82.5-34 36-11.8 73-5.6 79.6-1.6 11.1 3.7 19.4 12 23.8 12.6 6.7 30.3 9.6 43.9 2.8 4.9 5.2 13.8 10.1 30 10.1 6.8 0 58-2.9 72.6-6.5 6.8-1.6 11.5-4.5 14.6-7.1 9.8-3.1 36.8-12.3 62.2-28.7 18-11.7 24.2-14.2 37.6-17.4 12.9-3.2 21-15.1 19.4-28.2z"], - "square-steam": [448, 512, ["steam-square"], "f1b7", "M165.6 309.1c18.6 7.7 27.3 28.9 19.6 47.4s-29 27.2-47.6 19.4l-28.5-11.8c5 10.6 13.8 19.4 25.4 24.2c25.2 10.5 54.1-1.4 64.6-26.5c5.1-12.1 5.1-25.5 .1-37.7c-5.1-12.1-14.5-21.6-26.7-26.7c-12.1-5-25-4.8-36.4-.5l29.5 12.2zM448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V240.7l116.6 48.1c12-8.2 26.2-12.1 40.7-11.3l55.4-80.2v-1.1c0-48.2 39.3-87.5 87.6-87.5s87.6 39.3 87.6 87.5c0 49.2-40.9 88.7-89.6 87.5l-79 56.3c1.6 38.5-29.1 68.8-65.7 68.8c-31.8 0-58.5-22.7-64.5-52.7L0 319.2V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM241.9 196.2a58.4 58.4 0 1 0 116.8 0 58.4 58.4 0 1 0 -116.8 0zm14.6-.1a43.9 43.9 0 1 1 87.8 0 43.9 43.9 0 1 1 -87.8 0z"], - "500px": [448, 512, [], "f26e", "M103.3 344.3c-6.5-14.2-6.9-18.3 7.4-23.1 25.6-8 8 9.2 43.2 49.2h.3v-93.9c1.2-50.2 44-92.2 97.7-92.2 53.9 0 97.7 43.5 97.7 96.8 0 63.4-60.8 113.2-128.5 93.3-10.5-4.2-2.1-31.7 8.5-28.6 53 0 89.4-10.1 89.4-64.4 0-61-77.1-89.6-116.9-44.6-23.5 26.4-17.6 42.1-17.6 157.6 50.7 31 118.3 22 160.4-20.1 24.8-24.8 38.5-58 38.5-93 0-35.2-13.8-68.2-38.8-93.3-24.8-24.8-57.8-38.5-93.3-38.5s-68.8 13.8-93.5 38.5c-.3.3-16 16.5-21.2 23.9l-.5.6c-3.3 4.7-6.3 9.1-20.1 6.1-6.9-1.7-14.3-5.8-14.3-11.8V20c0-5 3.9-10.5 10.5-10.5h241.3c8.3 0 8.3 11.6 8.3 15.1 0 3.9 0 15.1-8.3 15.1H130.3v132.9h.3c104.2-109.8 282.8-36 282.8 108.9 0 178.1-244.8 220.3-310.1 62.8zm63.3-260.8c-.5 4.2 4.6 24.5 14.6 20.6C306 56.6 384 144.5 390.6 144.5c4.8 0 22.8-15.3 14.3-22.8-93.2-89-234.5-57-238.3-38.2zM393 414.7C283 524.6 94 475.5 61 310.5c0-12.2-30.4-7.4-28.9 3.3 24 173.4 246 256.9 381.6 121.3 6.9-7.8-12.6-28.4-20.7-20.4zM213.6 306.6c0 4 4.3 7.3 5.5 8.5 3 3 6.1 4.4 8.5 4.4 3.8 0 2.6.2 22.3-19.5 19.6 19.3 19.1 19.5 22.3 19.5 5.4 0 18.5-10.4 10.7-18.2L265.6 284l18.2-18.2c6.3-6.8-10.1-21.8-16.2-15.7L249.7 268c-18.6-18.8-18.4-19.5-21.5-19.5-5 0-18 11.7-12.4 17.3L234 284c-18.1 17.9-20.4 19.2-20.4 22.6z"], - "square-vimeo": [448, 512, ["vimeo-square"], "f194", "M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM318.5 309.5C275 366 238.2 394.3 208.1 394.3c-18.7 0-34.4-17.2-47.3-51.6c-3.8-13.9-7.3-26.9-10.5-39c-18.2-68.3-28.6-107.4-46.2-107.4c-2.4 0-10.8 5-25.1 15.1L64 192c7-6.1 13.9-12.4 20.6-18.5c29.1-26.3 55.6-50.3 73.5-51.9c24.9-2.4 40.2 14.6 46 51.1c20.5 129.6 29.6 149.2 66.8 90.5c13.4-21.2 20.6-37.2 21.5-48.3c3.4-32.8-25.6-30.6-45.2-22.2c15.7-51.5 45.8-76.5 90.1-75.1c32.9 1 48.4 22.4 46.5 64c-1.4 31.1-23.2 73.8-65.3 127.9z"], - "asymmetrik": [576, 512, [], "f372", "M517.5 309.2c38.8-40 58.1-80 58.5-116.1.8-65.5-59.4-118.2-169.4-135C277.9 38.4 118.1 73.6 0 140.5 52 114 110.6 92.3 170.7 82.3c74.5-20.5 153-25.4 221.3-14.8C544.5 91.3 588.8 195 490.8 299.2c-10.2 10.8-22 21.1-35 30.6L304.9 103.4 114.7 388.9c-65.6-29.4-76.5-90.2-19.1-151.2 20.8-22.2 48.3-41.9 79.5-58.1 20-12.2 39.7-22.6 62-30.7-65.1 20.3-122.7 52.9-161.6 92.9-27.7 28.6-41.4 57.1-41.7 82.9-.5 35.1 23.4 65.1 68.4 83l-34.5 51.7h101.6l22-34.4c22.2 1 45.3 0 68.6-2.7l-22.8 37.1h135.5L340 406.3c18.6-5.3 36.9-11.5 54.5-18.7l45.9 71.8H542L468.6 349c18.5-12.1 35-25.5 48.9-39.8zm-187.6 80.5l-25-40.6-32.7 53.3c-23.4 3.5-46.7 5.1-69.2 4.4l101.9-159.3 78.7 123c-17.2 7.4-35.3 13.9-53.7 19.2z"], - "font-awesome": [512, 512, [62501, 62694, "font-awesome-flag", "font-awesome-logo-full"], "f2b4", "M91.7 96C106.3 86.8 116 70.5 116 52C116 23.3 92.7 0 64 0S12 23.3 12 52c0 16.7 7.8 31.5 20 41l0 3 0 352 0 64 64 0 0-64 373.6 0c14.6 0 26.4-11.8 26.4-26.4c0-3.7-.8-7.3-2.3-10.7L432 272l61.7-138.9c1.5-3.4 2.3-7 2.3-10.7c0-14.6-11.8-26.4-26.4-26.4L91.7 96z"], - "gratipay": [496, 512, [], "f184", "M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm114.6 226.4l-113 152.7-112.7-152.7c-8.7-11.9-19.1-50.4 13.6-72 28.1-18.1 54.6-4.2 68.5 11.9 15.9 17.9 46.6 16.9 61.7 0 13.9-16.1 40.4-30 68.1-11.9 32.9 21.6 22.6 60 13.8 72z"], - "apple": [384, 512, [], "f179", "M318.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C63.3 141.2 4 184.8 4 273.5q0 39.3 14.4 81.2c12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z"], - "hive": [512, 512, [], "e07f", "M260.353,254.878,131.538,33.1a2.208,2.208,0,0,0-3.829.009L.3,254.887A2.234,2.234,0,0,0,.3,257.122L129.116,478.9a2.208,2.208,0,0,0,3.83-.009L260.358,257.113A2.239,2.239,0,0,0,260.353,254.878Zm39.078-25.713a2.19,2.19,0,0,0,1.9,1.111h66.509a2.226,2.226,0,0,0,1.9-3.341L259.115,33.111a2.187,2.187,0,0,0-1.9-1.111H190.707a2.226,2.226,0,0,0-1.9,3.341ZM511.7,254.886,384.9,33.112A2.2,2.2,0,0,0,382.99,32h-66.6a2.226,2.226,0,0,0-1.906,3.34L440.652,256,314.481,476.66a2.226,2.226,0,0,0,1.906,3.34h66.6a2.2,2.2,0,0,0,1.906-1.112L511.7,257.114A2.243,2.243,0,0,0,511.7,254.886ZM366.016,284.917H299.508a2.187,2.187,0,0,0-1.9,1.111l-108.8,190.631a2.226,2.226,0,0,0,1.9,3.341h66.509a2.187,2.187,0,0,0,1.9-1.111l108.8-190.631A2.226,2.226,0,0,0,366.016,284.917Z"], - "gitkraken": [592, 512, [], "f3a6", "M565.7 118.1c-2.3-6.1-9.3-9.2-15.3-6.6-5.7 2.4-8.5 8.9-6.3 14.6 10.9 29 16.9 60.5 16.9 93.3 0 134.6-100.3 245.7-230.2 262.7V358.4c7.9-1.5 15.5-3.6 23-6.2v104c106.7-25.9 185.9-122.1 185.9-236.8 0-91.8-50.8-171.8-125.8-213.3-5.7-3.2-13-.9-15.9 5-2.7 5.5-.6 12.2 4.7 15.1 67.9 37.6 113.9 110 113.9 193.2 0 93.3-57.9 173.1-139.8 205.4v-92.2c14.2-4.5 24.9-17.7 24.9-33.5 0-13.1-6.8-24.4-17.3-30.5 8.3-79.5 44.5-58.6 44.5-83.9V170c0-38-87.9-161.8-129-164.7-2.5-.2-5-.2-7.6 0C251.1 8.3 163.2 132 163.2 170v14.8c0 25.3 36.3 4.3 44.5 83.9-10.6 6.1-17.3 17.4-17.3 30.5 0 15.8 10.6 29 24.8 33.5v92.2c-81.9-32.2-139.8-112-139.8-205.4 0-83.1 46-155.5 113.9-193.2 5.4-3 7.4-9.6 4.7-15.1-2.9-5.9-10.1-8.2-15.9-5-75 41.5-125.8 121.5-125.8 213.3 0 114.7 79.2 210.8 185.9 236.8v-104c7.6 2.5 15.1 4.6 23 6.2v123.7C131.4 465.2 31 354.1 31 219.5c0-32.8 6-64.3 16.9-93.3 2.2-5.8-.6-12.2-6.3-14.6-6-2.6-13 .4-15.3 6.6C14.5 149.7 8 183.8 8 219.5c0 155.1 122.6 281.6 276.3 287.8V361.4c6.8.4 15 .5 23.4 0v145.8C461.4 501.1 584 374.6 584 219.5c0-35.7-6.5-69.8-18.3-101.4zM365.9 275.5c13 0 23.7 10.5 23.7 23.7 0 13.1-10.6 23.7-23.7 23.7-13 0-23.7-10.5-23.7-23.7 0-13.1 10.6-23.7 23.7-23.7zm-139.8 47.3c-13.2 0-23.7-10.7-23.7-23.7s10.5-23.7 23.7-23.7c13.1 0 23.7 10.6 23.7 23.7 0 13-10.5 23.7-23.7 23.7z"], - "keybase": [448, 512, [], "f4f5", "M286.17 419a18 18 0 1 0 18 18 18 18 0 0 0-18-18zm111.92-147.6c-9.5-14.62-39.37-52.45-87.26-73.71q-9.1-4.06-18.38-7.27a78.43 78.43 0 0 0-47.88-104.13c-12.41-4.1-23.33-6-32.41-5.77-.6-2-1.89-11 9.4-35L198.66 32l-5.48 7.56c-8.69 12.06-16.92 23.55-24.34 34.89a51 51 0 0 0-8.29-1.25c-41.53-2.45-39-2.33-41.06-2.33-50.61 0-50.75 52.12-50.75 45.88l-2.36 36.68c-1.61 27 19.75 50.21 47.63 51.85l8.93.54a214 214 0 0 0-46.29 35.54C14 304.66 14 374 14 429.77v33.64l23.32-29.8a148.6 148.6 0 0 0 14.56 37.56c5.78 10.13 14.87 9.45 19.64 7.33 4.21-1.87 10-6.92 3.75-20.11a178.29 178.29 0 0 1-15.76-53.13l46.82-59.83-24.66 74.11c58.23-42.4 157.38-61.76 236.25-38.59 34.2 10.05 67.45.69 84.74-23.84.72-1 1.2-2.16 1.85-3.22a156.09 156.09 0 0 1 2.8 28.43c0 23.3-3.69 52.93-14.88 81.64-2.52 6.46 1.76 14.5 8.6 15.74 7.42 1.57 15.33-3.1 18.37-11.15C429 443 434 414 434 382.32c0-38.58-13-77.46-35.91-110.92zM142.37 128.58l-15.7-.93-1.39 21.79 13.13.78a93 93 0 0 0 .32 19.57l-22.38-1.34a12.28 12.28 0 0 1-11.76-12.79L107 119c1-12.17 13.87-11.27 13.26-11.32l29.11 1.73a144.35 144.35 0 0 0-7 19.17zm148.42 172.18a10.51 10.51 0 0 1-14.35-1.39l-9.68-11.49-34.42 27a8.09 8.09 0 0 1-11.13-1.08l-15.78-18.64a7.38 7.38 0 0 1 1.34-10.34l34.57-27.18-14.14-16.74-17.09 13.45a7.75 7.75 0 0 1-10.59-1s-3.72-4.42-3.8-4.53a7.38 7.38 0 0 1 1.37-10.34L214 225.19s-18.51-22-18.6-22.14a9.56 9.56 0 0 1 1.74-13.42 10.38 10.38 0 0 1 14.3 1.37l81.09 96.32a9.58 9.58 0 0 1-1.74 13.44zM187.44 419a18 18 0 1 0 18 18 18 18 0 0 0-18-18z"], - "apple-pay": [640, 512, [], "f415", "M116.9 158.5c-7.5 8.9-19.5 15.9-31.5 14.9-1.5-12 4.4-24.8 11.3-32.6 7.5-9.1 20.6-15.6 31.3-16.1 1.2 12.4-3.7 24.7-11.1 33.8m10.9 17.2c-17.4-1-32.3 9.9-40.5 9.9-8.4 0-21-9.4-34.8-9.1-17.9.3-34.5 10.4-43.6 26.5-18.8 32.3-4.9 80 13.3 106.3 8.9 13 19.5 27.3 33.5 26.8 13.3-.5 18.5-8.6 34.5-8.6 16.1 0 20.8 8.6 34.8 8.4 14.5-.3 23.6-13 32.5-26 10.1-14.8 14.3-29.1 14.5-29.9-.3-.3-28-10.9-28.3-42.9-.3-26.8 21.9-39.5 22.9-40.3-12.5-18.6-32-20.6-38.8-21.1m100.4-36.2v194.9h30.3v-66.6h41.9c38.3 0 65.1-26.3 65.1-64.3s-26.4-64-64.1-64h-73.2zm30.3 25.5h34.9c26.3 0 41.3 14 41.3 38.6s-15 38.8-41.4 38.8h-34.8V165zm162.2 170.9c19 0 36.6-9.6 44.6-24.9h.6v23.4h28v-97c0-28.1-22.5-46.3-57.1-46.3-32.1 0-55.9 18.4-56.8 43.6h27.3c2.3-12 13.4-19.9 28.6-19.9 18.5 0 28.9 8.6 28.9 24.5v10.8l-37.8 2.3c-35.1 2.1-54.1 16.5-54.1 41.5.1 25.2 19.7 42 47.8 42zm8.2-23.1c-16.1 0-26.4-7.8-26.4-19.6 0-12.3 9.9-19.4 28.8-20.5l33.6-2.1v11c0 18.2-15.5 31.2-36 31.2zm102.5 74.6c29.5 0 43.4-11.3 55.5-45.4L640 193h-30.8l-35.6 115.1h-.6L537.4 193h-31.6L557 334.9l-2.8 8.6c-4.6 14.6-12.1 20.3-25.5 20.3-2.4 0-7-.3-8.9-.5v23.4c1.8.4 9.3.7 11.6.7z"], - "padlet": [640, 512, [], "e4a0", "M297.9 0L298 .001C305.6 .1078 312.4 4.72 315.5 11.78L447.5 320.3L447.8 320.2L448 320.6L445.2 330.6L402.3 488.6C398.6 504.8 382.6 514.9 366.5 511.2L298.1 495.6L229.6 511.2C213.5 514.9 197.5 504.8 193.8 488.6L150.9 330.6L148.2 320.6L148.3 320.2L280.4 11.78C283.4 4.797 290.3 .1837 297.9 .0006L297.9 0zM160.1 322.1L291.1 361.2L298 483.7L305.9 362.2L436.5 322.9L436.7 322.8L305.7 347.9L297.1 27.72L291.9 347.9L160.1 322.1zM426 222.6L520.4 181.6H594.2L437.2 429.2L468.8 320.2L426 222.6zM597.5 181.4L638.9 257.6C642.9 265.1 635 273.5 627.3 269.8L579.7 247.1L597.5 181.4zM127.3 318.5L158.7 430L1.61 154.5C-4.292 144.1 7.128 132.5 17.55 138.3L169.4 222.5L127.3 318.5z"], - "amazon-pay": [640, 512, [], "f42c", "M14 325.3c2.3-4.2 5.2-4.9 9.7-2.5 10.4 5.6 20.6 11.4 31.2 16.7a595.88 595.88 0 0 0 127.4 46.3 616.61 616.61 0 0 0 63.2 11.8 603.33 603.33 0 0 0 95 5.2c17.4-.4 34.8-1.8 52.1-3.8a603.66 603.66 0 0 0 163.3-42.8c2.9-1.2 5.9-2 9.1-1.2 6.7 1.8 9 9 4.1 13.9a70 70 0 0 1-9.6 7.4c-30.7 21.1-64.2 36.4-99.6 47.9a473.31 473.31 0 0 1-75.1 17.6 431 431 0 0 1-53.2 4.8 21.3 21.3 0 0 0-2.5.3H308a21.3 21.3 0 0 0-2.5-.3c-3.6-.2-7.2-.3-10.7-.4a426.3 426.3 0 0 1-50.4-5.3A448.4 448.4 0 0 1 164 420a443.33 443.33 0 0 1-145.6-87c-1.8-1.6-3-3.8-4.4-5.7zM172 65.1l-4.3.6a80.92 80.92 0 0 0-38 15.1c-2.4 1.7-4.6 3.5-7.1 5.4a4.29 4.29 0 0 1-.4-1.4c-.4-2.7-.8-5.5-1.3-8.2-.7-4.6-3-6.6-7.6-6.6h-11.5c-6.9 0-8.2 1.3-8.2 8.2v209.3c0 1 0 2 .1 3 .2 3 2 4.9 4.9 5 7 .1 14.1.1 21.1 0 2.9 0 4.7-2 5-5 .1-1 .1-2 .1-3v-72.4c1.1.9 1.7 1.4 2.2 1.9 17.9 14.9 38.5 19.8 61 15.4 20.4-4 34.6-16.5 43.8-34.9 7-13.9 9.9-28.7 10.3-44.1.5-17.1-1.2-33.9-8.1-49.8-8.5-19.6-22.6-32.5-43.9-36.9-3.2-.7-6.5-1-9.8-1.5-2.8-.1-5.5-.1-8.3-.1zM124.6 107a3.48 3.48 0 0 1 1.7-3.3c13.7-9.5 28.8-14.5 45.6-13.2 14.9 1.1 27.1 8.4 33.5 25.9 3.9 10.7 4.9 21.8 4.9 33 0 10.4-.8 20.6-4 30.6-6.8 21.3-22.4 29.4-42.6 28.5-14-.6-26.2-6-37.4-13.9a3.57 3.57 0 0 1-1.7-3.3c.1-14.1 0-28.1 0-42.2s.1-28 0-42.1zm205.7-41.9c-1 .1-2 .3-2.9.4a148 148 0 0 0-28.9 4.1c-6.1 1.6-12 3.8-17.9 5.8-3.6 1.2-5.4 3.8-5.3 7.7.1 3.3-.1 6.6 0 9.9.1 4.8 2.1 6.1 6.8 4.9 7.8-2 15.6-4.2 23.5-5.7 12.3-2.3 24.7-3.3 37.2-1.4 6.5 1 12.6 2.9 16.8 8.4 3.7 4.8 5.1 10.5 5.3 16.4.3 8.3.2 16.6.3 24.9a7.84 7.84 0 0 1-.2 1.4c-.5-.1-.9 0-1.3-.1a180.56 180.56 0 0 0-32-4.9c-11.3-.6-22.5.1-33.3 3.9-12.9 4.5-23.3 12.3-29.4 24.9-4.7 9.8-5.4 20.2-3.9 30.7 2 14 9 24.8 21.4 31.7 11.9 6.6 24.8 7.4 37.9 5.4 15.1-2.3 28.5-8.7 40.3-18.4a7.36 7.36 0 0 1 1.6-1.1c.6 3.8 1.1 7.4 1.8 11 .6 3.1 2.5 5.1 5.4 5.2 5.4.1 10.9.1 16.3 0a4.84 4.84 0 0 0 4.8-4.7 26.2 26.2 0 0 0 .1-2.8v-106a80 80 0 0 0-.9-12.9c-1.9-12.9-7.4-23.5-19-30.4-6.7-4-14.1-6-21.8-7.1-3.6-.5-7.2-.8-10.8-1.3-3.9.1-7.9.1-11.9.1zm35 127.7a3.33 3.33 0 0 1-1.5 3c-11.2 8.1-23.5 13.5-37.4 14.9-5.7.6-11.4.4-16.8-1.8a20.08 20.08 0 0 1-12.4-13.3 32.9 32.9 0 0 1-.1-19.4c2.5-8.3 8.4-13 16.4-15.6a61.33 61.33 0 0 1 24.8-2.2c8.4.7 16.6 2.3 25 3.4 1.6.2 2.1 1 2.1 2.6-.1 4.8 0 9.5 0 14.3s-.2 9.4-.1 14.1zm259.9 129.4c-1-5-4.8-6.9-9.1-8.3a88.42 88.42 0 0 0-21-3.9 147.32 147.32 0 0 0-39.2 1.9c-14.3 2.7-27.9 7.3-40 15.6a13.75 13.75 0 0 0-3.7 3.5 5.11 5.11 0 0 0-.5 4c.4 1.5 2.1 1.9 3.6 1.8a16.2 16.2 0 0 0 2.2-.1c7.8-.8 15.5-1.7 23.3-2.5 11.4-1.1 22.9-1.8 34.3-.9a71.64 71.64 0 0 1 14.4 2.7c5.1 1.4 7.4 5.2 7.6 10.4.4 8-1.4 15.7-3.5 23.3-4.1 15.4-10 30.3-15.8 45.1a17.6 17.6 0 0 0-1 3c-.5 2.9 1.2 4.8 4.1 4.1a10.56 10.56 0 0 0 4.8-2.5 145.91 145.91 0 0 0 12.7-13.4c12.8-16.4 20.3-35.3 24.7-55.6.8-3.6 1.4-7.3 2.1-10.9v-17.3zM493.1 199q-19.35-53.55-38.7-107.2c-2-5.7-4.2-11.3-6.3-16.9-1.1-2.9-3.2-4.8-6.4-4.8-7.6-.1-15.2-.2-22.9-.1-2.5 0-3.7 2-3.2 4.5a43.1 43.1 0 0 0 1.9 6.1q29.4 72.75 59.1 145.5c1.7 4.1 2.1 7.6.2 11.8-3.3 7.3-5.9 15-9.3 22.3-3 6.5-8 11.4-15.2 13.3a42.13 42.13 0 0 1-15.4 1.1c-2.5-.2-5-.8-7.5-1-3.4-.2-5.1 1.3-5.2 4.8q-.15 5 0 9.9c.1 5.5 2 8 7.4 8.9a108.18 108.18 0 0 0 16.9 2c17.1.4 30.7-6.5 39.5-21.4a131.63 131.63 0 0 0 9.2-18.4q35.55-89.7 70.6-179.6a26.62 26.62 0 0 0 1.6-5.5c.4-2.8-.9-4.4-3.7-4.4-6.6-.1-13.3 0-19.9 0a7.54 7.54 0 0 0-7.7 5.2c-.5 1.4-1.1 2.7-1.6 4.1l-34.8 100c-2.5 7.2-5.1 14.5-7.7 22.2-.4-1.1-.6-1.7-.9-2.4z"], - "square-github": [448, 512, ["github-square"], "f092", "M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM265.8 407.7c0-1.8 0-6 .1-11.6c.1-11.4 .1-28.8 .1-43.7c0-15.6-5.2-25.5-11.3-30.7c37-4.1 76-9.2 76-73.1c0-18.2-6.5-27.3-17.1-39c1.7-4.3 7.4-22-1.7-45c-13.9-4.3-45.7 17.9-45.7 17.9c-13.2-3.7-27.5-5.6-41.6-5.6s-28.4 1.9-41.6 5.6c0 0-31.8-22.2-45.7-17.9c-9.1 22.9-3.5 40.6-1.7 45c-10.6 11.7-15.6 20.8-15.6 39c0 63.6 37.3 69 74.3 73.1c-4.8 4.3-9.1 11.7-10.6 22.3c-9.5 4.3-33.8 11.7-48.3-13.9c-9.1-15.8-25.5-17.1-25.5-17.1c-16.2-.2-1.1 10.2-1.1 10.2c10.8 5 18.4 24.2 18.4 24.2c9.7 29.7 56.1 19.7 56.1 19.7c0 9 .1 21.7 .1 30.6c0 4.8 .1 8.6 .1 10c0 4.3-3 9.5-11.5 8C106 393.6 59.8 330.8 59.8 257.4c0-91.8 70.2-161.5 162-161.5s166.2 69.7 166.2 161.5c.1 73.4-44.7 136.3-110.7 158.3c-8.4 1.5-11.5-3.7-11.5-8zm-90.5-54.8c-.2-1.5 1.1-2.8 3-3.2c1.9-.2 3.7 .6 3.9 1.9c.3 1.3-1 2.6-3 3c-1.9 .4-3.7-.4-3.9-1.7zm-9.1 3.2c-2.2 .2-3.7-.9-3.7-2.4c0-1.3 1.5-2.4 3.5-2.4c1.9-.2 3.7 .9 3.7 2.4c0 1.3-1.5 2.4-3.5 2.4zm-14.3-2.2c-1.9-.4-3.2-1.9-2.8-3.2s2.4-1.9 4.1-1.5c2 .6 3.3 2.1 2.8 3.4c-.4 1.3-2.4 1.9-4.1 1.3zm-12.5-7.3c-1.5-1.3-1.9-3.2-.9-4.1c.9-1.1 2.8-.9 4.3 .6c1.3 1.3 1.8 3.3 .9 4.1c-.9 1.1-2.8 .9-4.3-.6zm-8.5-10c-1.1-1.5-1.1-3.2 0-3.9c1.1-.9 2.8-.2 3.7 1.3c1.1 1.5 1.1 3.3 0 4.1c-.9 .6-2.6 0-3.7-1.5zm-6.3-8.8c-1.1-1.3-1.3-2.8-.4-3.5c.9-.9 2.4-.4 3.5 .6c1.1 1.3 1.3 2.8 .4 3.5c-.9 .9-2.4 .4-3.5-.6zm-6-6.4c-1.3-.6-1.9-1.7-1.5-2.6c.4-.6 1.5-.9 2.8-.4c1.3 .7 1.9 1.8 1.5 2.6c-.4 .9-1.7 1.1-2.8 .4z"], - "stumbleupon": [512, 512, [], "f1a4", "M502.9 266v69.7c0 62.1-50.3 112.4-112.4 112.4-61.8 0-112.4-49.8-112.4-111.3v-70.2l34.3 16 51.1-15.2V338c0 14.7 12 26.5 26.7 26.5S417 352.7 417 338v-72h85.9zm-224.7-58.2l34.3 16 51.1-15.2V173c0-60.5-51.1-109-112.1-109-60.8 0-112.1 48.2-112.1 108.2v162.4c0 14.9-12 26.7-26.7 26.7S86 349.5 86 334.6V266H0v69.7C0 397.7 50.3 448 112.4 448c61.6 0 112.4-49.5 112.4-110.8V176.9c0-14.7 12-26.7 26.7-26.7s26.7 12 26.7 26.7v30.9z"], - "fedex": [640, 512, [], "f797", "M586 284.5l53.3-59.9h-62.4l-21.7 24.8-22.5-24.8H414v-16h56.1v-48.1H318.9V236h-.5c-9.6-11-21.5-14.8-35.4-14.8-28.4 0-49.8 19.4-57.3 44.9-18-59.4-97.4-57.6-121.9-14v-24.2H49v-26.2h60v-41.1H0V345h49v-77.5h48.9c-1.5 5.7-2.3 11.8-2.3 18.2 0 73.1 102.6 91.4 130.2 23.7h-42c-14.7 20.9-45.8 8.9-45.8-14.6h85.5c3.7 30.5 27.4 56.9 60.1 56.9 14.1 0 27-6.9 34.9-18.6h.5V345h212.2l22.1-25 22.3 25H640l-54-60.5zm-446.7-16.6c6.1-26.3 41.7-25.6 46.5 0h-46.5zm153.4 48.9c-34.6 0-34-62.8 0-62.8 32.6 0 34.5 62.8 0 62.8zm167.8 19.1h-94.4V169.4h95v30.2H405v33.9h55.5v28.1h-56.1v44.7h56.1v29.6zm-45.9-39.8v-24.4h56.1v-44l50.7 57-50.7 57v-45.6h-56.1zm138.6 10.3l-26.1 29.5H489l45.6-51.2-45.6-51.2h39.7l26.6 29.3 25.6-29.3h38.5l-45.4 51 46 51.4h-40.5l-26.3-29.5z"], - "phoenix-framework": [640, 512, [], "f3dc", "M212.9 344.3c3.8-.1 22.8-1.4 25.6-2.2-2.4-2.6-43.6-1-68-49.6-4.3-8.6-7.5-17.6-6.4-27.6 2.9-25.5 32.9-30 52-18.5 36 21.6 63.3 91.3 113.7 97.5 37 4.5 84.6-17 108.2-45.4-.6-.1-.8-.2-1-.1-.4.1-.8.2-1.1.3-33.3 12.1-94.3 9.7-134.7-14.8-37.6-22.8-53.1-58.7-51.8-74.6 1.8-21.3 22.9-23.2 35.9-19.6 14.4 3.9 24.4 17.6 38.9 27.4 15.6 10.4 32.9 13.7 51.3 10.3 14.9-2.7 34.4-12.3 36.5-14.5-1.1-.1-1.8-.1-2.5-.2-6.2-.6-12.4-.8-18.5-1.7C279.8 194.5 262.1 47.4 138.5 37.9 94.2 34.5 39.1 46 2.2 72.9c-.8.6-1.5 1.2-2.2 1.8.1.2.1.3.2.5.8 0 1.6-.1 2.4-.2 6.3-1 12.5-.8 18.7.3 23.8 4.3 47.7 23.1 55.9 76.5 5.3 34.3-.7 50.8 8 86.1 19 77.1 91 107.6 127.7 106.4zM75.3 64.9c-.9-1-.9-1.2-1.3-2 12.1-2.6 24.2-4.1 36.6-4.8-1.1 14.7-22.2 21.3-35.3 6.8zm196.9 350.5c-42.8 1.2-92-26.7-123.5-61.4-4.6-5-16.8-20.2-18.6-23.4l.4-.4c6.6 4.1 25.7 18.6 54.8 27 24.2 7 48.1 6.3 71.6-3.3 22.7-9.3 41-.5 43.1 2.9-18.5 3.8-20.1 4.4-24 7.9-5.1 4.4-4.6 11.7 7 17.2 26.2 12.4 63-2.8 97.2 25.4 2.4 2 8.1 7.8 10.1 10.7-.1.2-.3.3-.4.5-4.8-1.5-16.4-7.5-40.2-9.3-24.7-2-46.3 5.3-77.5 6.2zm174.8-252c16.4-5.2 41.3-13.4 66.5-3.3 16.1 6.5 26.2 18.7 32.1 34.6 3.5 9.4 5.1 19.7 5.1 28.7-.2 0-.4 0-.6.1-.2-.4-.4-.9-.5-1.3-5-22-29.9-43.8-67.6-29.9-50.2 18.6-130.4 9.7-176.9-48-.7-.9-2.4-1.7-1.3-3.2.1-.2 2.1.6 3 1.3 18.1 13.4 38.3 21.9 60.3 26.2 30.5 6.1 54.6 2.9 79.9-5.2zm102.7 117.5c-32.4.2-33.8 50.1-103.6 64.4-18.2 3.7-38.7 4.6-44.9 4.2v-.4c2.8-1.5 14.7-2.6 29.7-16.6 7.9-7.3 15.3-15.1 22.8-22.9 19.5-20.2 41.4-42.2 81.9-39 23.1 1.8 29.3 8.2 36.1 12.7.3.2.4.5.7.9-.5 0-.7.1-.9 0-7-2.7-14.3-3.3-21.8-3.3zm-12.3-24.1c-.1.2-.1.4-.2.6-28.9-4.4-48-7.9-68.5 4-17 9.9-31.4 20.5-62 24.4-27.1 3.4-45.1 2.4-66.1-8-.3-.2-.6-.4-1-.6 0-.2.1-.3.1-.5 24.9 3.8 36.4 5.1 55.5-5.8 22.3-12.9 40.1-26.6 71.3-31 29.6-4.1 51.3 2.5 70.9 16.9zM268.6 97.3c-.6-.6-1.1-1.2-2.1-2.3 7.6 0 29.7-1.2 53.4 8.4 19.7 8 32.2 21 50.2 32.9 11.1 7.3 23.4 9.3 36.4 8.1 4.3-.4 8.5-1.2 12.8-1.7.4-.1.9 0 1.5.3-.6.4-1.2.9-1.8 1.2-8.1 4-16.7 6.3-25.6 7.1-26.1 2.6-50.3-3.7-73.4-15.4-19.3-9.9-36.4-22.9-51.4-38.6zM640 335.7c-3.5 3.1-22.7 11.6-42.7 5.3-12.3-3.9-19.5-14.9-31.6-24.1-10-7.6-20.9-7.9-28.1-8.4.6-.8.9-1.2 1.2-1.4 14.8-9.2 30.5-12.2 47.3-6.5 12.5 4.2 19.2 13.5 30.4 24.2 10.8 10.4 21 9.9 23.1 10.5.1-.1.2 0 .4.4zm-212.5 137c2.2 1.2 1.6 1.5 1.5 2-18.5-1.4-33.9-7.6-46.8-22.2-21.8-24.7-41.7-27.9-48.6-29.7.5-.2.8-.4 1.1-.4 13.1.1 26.1.7 38.9 3.9 25.3 6.4 35 25.4 41.6 35.3 3.2 4.8 7.3 8.3 12.3 11.1z"], - "shopify": [448, 512, [], "e057", "M388.32,104.1a4.66,4.66,0,0,0-4.4-4c-2,0-37.23-.8-37.23-.8s-21.61-20.82-29.62-28.83V503.2L442.76,472S388.72,106.5,388.32,104.1ZM288.65,70.47a116.67,116.67,0,0,0-7.21-17.61C271,32.85,255.42,22,237,22a15,15,0,0,0-4,.4c-.4-.8-1.2-1.2-1.6-2C223.4,11.63,213,7.63,200.58,8c-24,.8-48,18-67.25,48.83-13.61,21.62-24,48.84-26.82,70.06-27.62,8.4-46.83,14.41-47.23,14.81-14,4.4-14.41,4.8-16,18-1.2,10-38,291.82-38,291.82L307.86,504V65.67a41.66,41.66,0,0,0-4.4.4S297.86,67.67,288.65,70.47ZM233.41,87.69c-16,4.8-33.63,10.4-50.84,15.61,4.8-18.82,14.41-37.63,25.62-50,4.4-4.4,10.41-9.61,17.21-12.81C232.21,54.86,233.81,74.48,233.41,87.69ZM200.58,24.44A27.49,27.49,0,0,1,215,28c-6.4,3.2-12.81,8.41-18.81,14.41-15.21,16.42-26.82,42-31.62,66.45-14.42,4.41-28.83,8.81-42,12.81C131.33,83.28,163.75,25.24,200.58,24.44ZM154.15,244.61c1.6,25.61,69.25,31.22,73.25,91.66,2.8,47.64-25.22,80.06-65.65,82.47-48.83,3.2-75.65-25.62-75.65-25.62l10.4-44s26.82,20.42,48.44,18.82c14-.8,19.22-12.41,18.81-20.42-2-33.62-57.24-31.62-60.84-86.86-3.2-46.44,27.22-93.27,94.47-97.68,26-1.6,39.23,4.81,39.23,4.81L221.4,225.39s-17.21-8-37.63-6.4C154.15,221,153.75,239.8,154.15,244.61ZM249.42,82.88c0-12-1.6-29.22-7.21-43.63,18.42,3.6,27.22,24,31.23,36.43Q262.63,78.68,249.42,82.88Z"], - "neos": [512, 512, [], "f612", "M415.44 512h-95.11L212.12 357.46v91.1L125.69 512H28V29.82L68.47 0h108.05l123.74 176.13V63.45L386.69 0h97.69v461.5zM38.77 35.27V496l72-52.88V194l215.5 307.64h84.79l52.35-38.17h-78.27L69 13zm82.54 466.61l80-58.78v-101l-79.76-114.4v220.94L49 501.89h72.34zM80.63 10.77l310.6 442.57h82.37V10.77h-79.75v317.56L170.91 10.77zM311 191.65l72 102.81V15.93l-72 53v122.72z"], - "square-threads": [448, 512, [], "e619", "M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM294.2 244.3c19.5 9.3 33.7 23.5 41.2 40.9c10.4 24.3 11.4 63.9-20.2 95.4c-24.2 24.1-53.5 35-95.1 35.3h-.2c-46.8-.3-82.8-16.1-106.9-46.8C91.5 341.8 80.4 303.7 80 256v-.1-.1c.4-47.7 11.5-85.7 33-113.1c24.2-30.7 60.2-46.5 106.9-46.8h.2c46.9 .3 83.3 16 108.2 46.6c12.3 15.1 21.3 33.3 27 54.4l-26.9 7.2c-4.7-17.2-11.9-31.9-21.4-43.6c-19.4-23.9-48.7-36.1-87-36.4c-38 .3-66.8 12.5-85.5 36.2c-17.5 22.3-26.6 54.4-26.9 95.5c.3 41.1 9.4 73.3 26.9 95.5c18.7 23.8 47.4 36 85.5 36.2c34.3-.3 56.9-8.4 75.8-27.3c21.5-21.5 21.1-47.9 14.2-64c-4-9.4-11.4-17.3-21.3-23.3c-2.4 18-7.9 32.2-16.5 43.2c-11.4 14.5-27.7 22.4-48.4 23.5c-15.7 .9-30.8-2.9-42.6-10.7c-13.9-9.2-22-23.2-22.9-39.5c-1.7-32.2 23.8-55.3 63.5-57.6c14.1-.8 27.3-.2 39.5 1.9c-1.6-9.9-4.9-17.7-9.8-23.4c-6.7-7.8-17.1-11.8-30.8-11.9h-.4c-11 0-26 3.1-35.6 17.6l-23-15.8c12.8-19.4 33.6-30.1 58.5-30.1h.6c41.8 .3 66.6 26.3 69.1 71.8c1.4 .6 2.8 1.2 4.2 1.9l.1 .5zm-71.8 67.5c17-.9 36.4-7.6 39.7-48.8c-8.8-1.9-18.6-2.9-29-2.9c-3.2 0-6.4 .1-9.6 .3c-28.6 1.6-38.1 15.5-37.4 27.9c.9 16.7 19 24.5 36.4 23.6l-.1-.1z"], - "hackerrank": [512, 512, [], "f5f7", "M477.5 128C463 103.05 285.13 0 256.16 0S49.25 102.79 34.84 128s-14.49 230.8 0 256 192.38 128 221.32 128S463 409.08 477.49 384s14.51-231 .01-256zM316.13 414.22c-4 0-40.91-35.77-38-38.69.87-.87 6.26-1.48 17.55-1.83 0-26.23.59-68.59.94-86.32 0-2-.44-3.43-.44-5.85h-79.93c0 7.1-.46 36.2 1.37 72.88.23 4.54-1.58 6-5.74 5.94-10.13 0-20.27-.11-30.41-.08-4.1 0-5.87-1.53-5.74-6.11.92-33.44 3-84-.15-212.67v-3.17c-9.67-.35-16.38-1-17.26-1.84-2.92-2.92 34.54-38.69 38.49-38.69s41.17 35.78 38.27 38.69c-.87.87-7.9 1.49-16.77 1.84v3.16c-2.42 25.75-2 79.59-2.63 105.39h80.26c0-4.55.39-34.74-1.2-83.64-.1-3.39.95-5.17 4.21-5.2 11.07-.08 22.15-.13 33.23-.06 3.46 0 4.57 1.72 4.5 5.38C333 354.64 336 341.29 336 373.69c8.87.35 16.82 1 17.69 1.84 2.88 2.91-33.62 38.69-37.58 38.69z"], - "researchgate": [448, 512, [], "f4f8", "M0 32v448h448V32H0zm262.2 334.4c-6.6 3-33.2 6-50-14.2-9.2-10.6-25.3-33.3-42.2-63.6-8.9 0-14.7 0-21.4-.6v46.4c0 23.5 6 21.2 25.8 23.9v8.1c-6.9-.3-23.1-.8-35.6-.8-13.1 0-26.1.6-33.6.8v-8.1c15.5-2.9 22-1.3 22-23.9V225c0-22.6-6.4-21-22-23.9V193c25.8 1 53.1-.6 70.9-.6 31.7 0 55.9 14.4 55.9 45.6 0 21.1-16.7 42.2-39.2 47.5 13.6 24.2 30 45.6 42.2 58.9 7.2 7.8 17.2 14.7 27.2 14.7v7.3zm22.9-135c-23.3 0-32.2-15.7-32.2-32.2V167c0-12.2 8.8-30.4 34-30.4s30.4 17.9 30.4 17.9l-10.7 7.2s-5.5-12.5-19.7-12.5c-7.9 0-19.7 7.3-19.7 19.7v26.8c0 13.4 6.6 23.3 17.9 23.3 14.1 0 21.5-10.9 21.5-26.8h-17.9v-10.7h30.4c0 20.5 4.7 49.9-34 49.9zm-116.5 44.7c-9.4 0-13.6-.3-20-.8v-69.7c6.4-.6 15-.6 22.5-.6 23.3 0 37.2 12.2 37.2 34.5 0 21.9-15 36.6-39.7 36.6z"], - "swift": [448, 512, [], "f8e1", "M448 156.09c0-4.51-.08-9-.2-13.52a196.31 196.31 0 0 0-2.58-29.42 99.62 99.62 0 0 0-9.22-28A94.08 94.08 0 0 0 394.84 44a99.17 99.17 0 0 0-28-9.22 195 195 0 0 0-29.43-2.59c-4.51-.12-9-.17-13.52-.2H124.14c-4.51 0-9 .08-13.52.2-2.45.07-4.91.15-7.37.27a171.68 171.68 0 0 0-22.06 2.32 103.06 103.06 0 0 0-21.21 6.1q-3.46 1.45-6.81 3.12a94.66 94.66 0 0 0-18.39 12.32c-1.88 1.61-3.69 3.28-5.43 5A93.86 93.86 0 0 0 12 85.17a99.45 99.45 0 0 0-9.22 28 196.31 196.31 0 0 0-2.54 29.4c-.13 4.51-.18 9-.21 13.52v199.83c0 4.51.08 9 .21 13.51a196.08 196.08 0 0 0 2.58 29.42 99.3 99.3 0 0 0 9.22 28A94.31 94.31 0 0 0 53.17 468a99.47 99.47 0 0 0 28 9.21 195 195 0 0 0 29.43 2.59c4.5.12 9 .17 13.52.2H323.91c4.51 0 9-.08 13.52-.2a196.59 196.59 0 0 0 29.44-2.59 99.57 99.57 0 0 0 28-9.21A94.22 94.22 0 0 0 436 426.84a99.3 99.3 0 0 0 9.22-28 194.79 194.79 0 0 0 2.59-29.42c.12-4.5.17-9 .2-13.51V172.14c-.01-5.35-.01-10.7-.01-16.05zm-69.88 241c-20-38.93-57.23-29.27-76.31-19.47-1.72 1-3.48 2-5.25 3l-.42.25c-39.5 21-92.53 22.54-145.85-.38A234.64 234.64 0 0 1 45 290.12a230.63 230.63 0 0 0 39.17 23.37c56.36 26.4 113 24.49 153 0-57-43.85-104.6-101-141.09-147.22a197.09 197.09 0 0 1-18.78-25.9c43.7 40 112.7 90.22 137.48 104.12-52.57-55.49-98.89-123.94-96.72-121.74 82.79 83.42 159.18 130.59 159.18 130.59 2.88 1.58 5 2.85 6.73 4a127.44 127.44 0 0 0 4.16-12.47c13.22-48.33-1.66-103.58-35.31-149.2C329.61 141.75 375 229.34 356.4 303.42c-.44 1.73-.95 3.4-1.44 5.09 38.52 47.4 28.04 98.17 23.13 88.59z"], - "angular": [448, 512, [], "f420", "M185.7 268.1h76.2l-38.1-91.6-38.1 91.6zM223.8 32L16 106.4l31.8 275.7 176 97.9 176-97.9 31.8-275.7zM354 373.8h-48.6l-26.2-65.4H168.6l-26.2 65.4H93.7L223.8 81.5z"], - "speakap": [448, 512, [], "f3f3", "M64 391.78C-15.41 303.59-8 167.42 80.64 87.64s224.8-73 304.21 15.24 72 224.36-16.64 304.14c-18.74 16.87 64 43.09 42 52.26-82.06 34.21-253.91 35-346.23-67.5zm213.31-211.6l38.5-40.86c-9.61-8.89-32-26.83-76.17-27.6-52.33-.91-95.86 28.3-96.77 80-.2 11.33.29 36.72 29.42 54.83 34.46 21.42 86.52 21.51 86 52.26-.37 21.28-26.42 25.81-38.59 25.6-3-.05-30.23-.46-47.61-24.62l-40 42.61c28.16 27 59 32.62 83.49 33.05 10.23.18 96.42.33 97.84-81 .28-15.81-2.07-39.72-28.86-56.59-34.36-21.64-85-19.45-84.43-49.75.41-23.25 31-25.37 37.53-25.26.43 0 26.62.26 39.62 17.37z"], - "angrycreative": [640, 512, [], "f36e", "M640 238.2l-3.2 28.2-34.5 2.3-2 18.1 34.5-2.3-3.2 28.2-34.4 2.2-2.3 20.1 34.4-2.2-3 26.1-64.7 4.1 12.7-113.2L527 365.2l-31.9 2-23.8-117.8 30.3-2 13.6 79.4 31.7-82.4 93.1-6.2zM426.8 371.5l28.3-1.8L468 249.6l-28.4 1.9-12.8 120zM162 388.1l-19.4-36-3.5 37.4-28.2 1.7 2.7-29.1c-11 18-32 34.3-56.9 35.8C23.9 399.9-3 377 .3 339.7c2.6-29.3 26.7-62.8 67.5-65.4 37.7-2.4 47.6 23.2 51.3 28.8l2.8-30.8 38.9-2.5c20.1-1.3 38.7 3.7 42.5 23.7l2.6-26.6 64.8-4.2-2.7 27.9-36.4 2.4-1.7 17.9 36.4-2.3-2.7 27.9-36.4 2.3-1.9 19.9 36.3-2.3-2.1 20.8 55-117.2 23.8-1.6L370.4 369l8.9-85.6-22.3 1.4 2.9-27.9 75-4.9-3 28-24.3 1.6-9.7 91.9-58 3.7-4.3-15.6-39.4 2.5-8 16.3-126.2 7.7zm-44.3-70.2l-26.4 1.7C84.6 307.2 76.9 303 65 303.8c-19 1.2-33.3 17.5-34.6 33.3-1.4 16 7.3 32.5 28.7 31.2 12.8-.8 21.3-8.6 28.9-18.9l27-1.7 2.7-29.8zm56.1-7.7c1.2-12.9-7.6-13.6-26.1-12.4l-2.7 28.5c14.2-.9 27.5-2.1 28.8-16.1zm21.1 70.8l5.8-60c-5 13.5-14.7 21.1-27.9 26.6l22.1 33.4zm135.4-45l-7.9-37.8-15.8 39.3 23.7-1.5zm-170.1-74.6l-4.3-17.5-39.6 2.6-8.1 18.2-31.9 2.1 57-121.9 23.9-1.6 30.7 102 9.9-104.7 27-1.8 37.8 63.6 6.5-66.6 28.5-1.9-4 41.2c7.4-13.5 22.9-44.7 63.6-47.5 40.5-2.8 52.4 29.3 53.4 30.3l3.3-32 39.3-2.7c12.7-.9 27.8.3 36.3 9.7l-4.4-11.9 32.2-2.2 12.9 43.2 23-45.7 31-2.2-43.6 78.4-4.8 44.3-28.4 1.9 4.8-44.3-15.8-43c1 22.3-9.2 40.1-32 49.6l25.2 38.8-36.4 2.4-19.2-36.8-4 38.3-28.4 1.9 3.3-31.5c-6.7 9.3-19.7 35.4-59.6 38-26.2 1.7-45.6-10.3-55.4-39.2l-4 40.3-25 1.6-37.6-63.3-6.3 66.2-56.8 3.7zm276.6-82.1c10.2-.7 17.5-2.1 21.6-4.3 4.5-2.4 7-6.4 7.6-12.1.6-5.3-.6-8.8-3.4-10.4-3.6-2.1-10.6-2.8-22.9-2l-2.9 28.8zM327.7 214c5.6 5.9 12.7 8.5 21.3 7.9 4.7-.3 9.1-1.8 13.3-4.1 5.5-3 10.6-8 15.1-14.3l-34.2 2.3 2.4-23.9 63.1-4.3 1.2-12-31.2 2.1c-4.1-3.7-7.8-6.6-11.1-8.1-4-1.7-8.1-2.8-12.2-2.5-8 .5-15.3 3.6-22 9.2-7.7 6.4-12 14.5-12.9 24.4-1.1 9.6 1.4 17.3 7.2 23.3zm-201.3 8.2l23.8-1.6-8.3-37.6-15.5 39.2z"], - "y-combinator": [448, 512, [], "f23b", "M448 32v448H0V32h448zM236 287.5L313.5 142h-32.7L235 233c-4.7 9.3-9 18.3-12.8 26.8L210 233l-45.2-91h-35l76.7 143.8v94.5H236v-92.8z"], - "empire": [496, 512, [], "f1d1", "M287.6 54.2c-10.8-2.2-22.1-3.3-33.5-3.6V32.4c78.1 2.2 146.1 44 184.6 106.6l-15.8 9.1c-6.1-9.7-12.7-18.8-20.2-27.1l-18 15.5c-26-29.6-61.4-50.7-101.9-58.4l4.8-23.9zM53.4 322.4l23-7.7c-6.4-18.3-10-38.2-10-58.7s3.3-40.4 9.7-58.7l-22.7-7.7c3.6-10.8 8.3-21.3 13.6-31l-15.8-9.1C34 181 24.1 217.5 24.1 256s10 75 27.1 106.6l15.8-9.1c-5.3-10-9.7-20.3-13.6-31.1zM213.1 434c-40.4-8-75.8-29.1-101.9-58.7l-18 15.8c-7.5-8.6-14.4-17.7-20.2-27.4l-16 9.4c38.5 62.3 106.8 104.3 184.9 106.6v-18.3c-11.3-.3-22.7-1.7-33.5-3.6l4.7-23.8zM93.3 120.9l18 15.5c26-29.6 61.4-50.7 101.9-58.4l-4.7-23.8c10.8-2.2 22.1-3.3 33.5-3.6V32.4C163.9 34.6 95.9 76.4 57.4 139l15.8 9.1c6-9.7 12.6-18.9 20.1-27.2zm309.4 270.2l-18-15.8c-26 29.6-61.4 50.7-101.9 58.7l4.7 23.8c-10.8 1.9-22.1 3.3-33.5 3.6v18.3c78.1-2.2 146.4-44.3 184.9-106.6l-16.1-9.4c-5.7 9.7-12.6 18.8-20.1 27.4zM496 256c0 137-111 248-248 248S0 393 0 256 111 8 248 8s248 111 248 248zm-12.2 0c0-130.1-105.7-235.8-235.8-235.8S12.2 125.9 12.2 256 117.9 491.8 248 491.8 483.8 386.1 483.8 256zm-39-106.6l-15.8 9.1c5.3 9.7 10 20.2 13.6 31l-22.7 7.7c6.4 18.3 9.7 38.2 9.7 58.7s-3.6 40.4-10 58.7l23 7.7c-3.9 10.8-8.3 21-13.6 31l15.8 9.1C462 331 471.9 294.5 471.9 256s-9.9-75-27.1-106.6zm-183 177.7c16.3-3.3 30.4-11.6 40.7-23.5l51.2 44.8c11.9-13.6 21.3-29.3 27.1-46.8l-64.2-22.1c2.5-7.5 3.9-15.2 3.9-23.5s-1.4-16.1-3.9-23.5l64.5-22.1c-6.1-17.4-15.5-33.2-27.4-46.8l-51.2 44.8c-10.2-11.9-24.4-20.5-40.7-23.8l13.3-66.4c-8.6-1.9-17.7-2.8-27.1-2.8-9.4 0-18.5.8-27.1 2.8l13.3 66.4c-16.3 3.3-30.4 11.9-40.7 23.8l-51.2-44.8c-11.9 13.6-21.3 29.3-27.4 46.8l64.5 22.1c-2.5 7.5-3.9 15.2-3.9 23.5s1.4 16.1 3.9 23.5l-64.2 22.1c5.8 17.4 15.2 33.2 27.1 46.8l51.2-44.8c10.2 11.9 24.4 20.2 40.7 23.5l-13.3 66.7c8.6 1.7 17.7 2.8 27.1 2.8 9.4 0 18.5-1.1 27.1-2.8l-13.3-66.7z"], - "envira": [448, 512, [], "f299", "M0 32c477.6 0 366.6 317.3 367.1 366.3L448 480h-26l-70.4-71.2c-39 4.2-124.4 34.5-214.4-37C47 300.3 52 214.7 0 32zm79.7 46c-49.7-23.5-5.2 9.2-5.2 9.2 45.2 31.2 66 73.7 90.2 119.9 31.5 60.2 79 139.7 144.2 167.7 65 28 34.2 12.5 6-8.5-28.2-21.2-68.2-87-91-130.2-31.7-60-61-118.6-144.2-158.1z"], - "google-scholar": [512, 512, [], "e63b", "M390.9 298.5c0 0 0 .1 .1 .1c9.2 19.4 14.4 41.1 14.4 64C405.3 445.1 338.5 512 256 512s-149.3-66.9-149.3-149.3c0-22.9 5.2-44.6 14.4-64h0c1.7-3.6 3.6-7.2 5.6-10.7c4.4-7.6 9.4-14.7 15-21.3c27.4-32.6 68.5-53.3 114.4-53.3c33.6 0 64.6 11.1 89.6 29.9c9.1 6.9 17.4 14.7 24.8 23.5c5.6 6.6 10.6 13.8 15 21.3c2 3.4 3.8 7 5.5 10.5zm26.4-18.8c-30.1-58.4-91-98.4-161.3-98.4s-131.2 40-161.3 98.4L0 202.7 256 0 512 202.7l-94.7 77.1z"], - "square-gitlab": [448, 512, ["gitlab-square"], "e5ae", "M0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96zm337.5 12.5l44.6 116.4 .4 1.2c5.6 16.8 7.2 35.2 2.3 52.5c-5 17.2-15.4 32.4-29.8 43.3l-.2 .1-68.4 51.2-54.1 40.9c-.5 .2-1.1 .5-1.7 .8c-2 1-4.4 2-6.7 2c-3 0-6.8-1.8-8.3-2.8l-54.2-40.9L93.5 322.3l-.4-.3-.2-.1c-14.3-10.8-24.8-26-29.7-43.3s-4.2-35.7 2.2-52.5l.5-1.2 44.7-116.4c.9-2.3 2.5-4.3 4.5-5.6c1.6-1 3.4-1.6 5.2-1.8c1.3-.7 2.1-.4 3.4 .1c.6 .2 1.2 .5 2 .7c1 .4 1.6 .9 2.4 1.5c.6 .4 1.2 1 2.1 1.5c1.2 1.4 2.2 3 2.7 4.8l29.2 92.2H285l30.2-92.2c.5-1.8 1.4-3.4 2.6-4.8s2.8-2.4 4.5-3.1c1.7-.6 3.6-.9 5.4-.7s3.6 .8 5.2 1.8c2 1.3 3.7 3.3 4.6 5.6z"], - "studiovinari": [512, 512, [], "f3f8", "M480.3 187.7l4.2 28v28l-25.1 44.1-39.8 78.4-56.1 67.5-79.1 37.8-17.7 24.5-7.7 12-9.6 4s17.3-63.6 19.4-63.6c2.1 0 20.3.7 20.3.7l66.7-38.6-92.5 26.1-55.9 36.8-22.8 28-6.6 1.4 20.8-73.6 6.9-5.5 20.7 12.9 88.3-45.2 56.8-51.5 14.8-68.4-125.4 23.3 15.2-18.2-173.4-53.3 81.9-10.5-166-122.9L133.5 108 32.2 0l252.9 126.6-31.5-38L378 163 234.7 64l18.7 38.4-49.6-18.1L158.3 0l194.6 122L310 66.2l108 96.4 12-8.9-21-16.4 4.2-37.8L451 89.1l29.2 24.7 11.5 4.2-7 6.2 8.5 12-13.1 7.4-10.3 20.2 10.5 23.9z"], - "pied-piper": [480, 512, [], "f2ae", "M455.93,23.2C429.23,30,387.79,51.69,341.35,90.66A206,206,0,0,0,240,64C125.13,64,32,157.12,32,272s93.13,208,208,208,208-93.13,208-208a207.25,207.25,0,0,0-58.75-144.81,155.35,155.35,0,0,0-17,27.4A176.16,176.16,0,0,1,417.1,272c0,97.66-79.44,177.11-177.09,177.11a175.81,175.81,0,0,1-87.63-23.4c82.94-107.33,150.79-37.77,184.31-226.65,5.79-32.62,28-94.26,126.23-160.18C471,33.45,465.35,20.8,455.93,23.2ZM125,406.4A176.66,176.66,0,0,1,62.9,272C62.9,174.34,142.35,94.9,240,94.9a174,174,0,0,1,76.63,17.75C250.64,174.76,189.77,265.52,125,406.4Z"], - "wordpress": [512, 512, [], "f19a", "M61.7 169.4l101.5 278C92.2 413 43.3 340.2 43.3 256c0-30.9 6.6-60.1 18.4-86.6zm337.9 75.9c0-26.3-9.4-44.5-17.5-58.7-10.8-17.5-20.9-32.4-20.9-49.9 0-19.6 14.8-37.8 35.7-37.8.9 0 1.8.1 2.8.2-37.9-34.7-88.3-55.9-143.7-55.9-74.3 0-139.7 38.1-177.8 95.9 5 .2 9.7.3 13.7.3 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l77.5 230.4L249.8 247l-33.1-90.8c-11.5-.7-22.3-2-22.3-2-11.5-.7-10.1-18.2 1.3-17.5 0 0 35.1 2.7 56 2.7 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l76.9 228.7 21.2-70.9c9-29.4 16-50.5 16-68.7zm-139.9 29.3l-63.8 185.5c19.1 5.6 39.2 8.7 60.1 8.7 24.8 0 48.5-4.3 70.6-12.1-.6-.9-1.1-1.9-1.5-2.9l-65.4-179.2zm183-120.7c.9 6.8 1.4 14 1.4 21.9 0 21.6-4 45.8-16.2 76.2l-65 187.9C426.2 403 468.7 334.5 468.7 256c0-37-9.4-71.8-26-102.1zM504 256c0 136.8-111.3 248-248 248C119.2 504 8 392.7 8 256 8 119.2 119.2 8 256 8c136.7 0 248 111.2 248 248zm-11.4 0c0-130.5-106.2-236.6-236.6-236.6C125.5 19.4 19.4 125.5 19.4 256S125.6 492.6 256 492.6c130.5 0 236.6-106.1 236.6-236.6z"], - "product-hunt": [512, 512, [], "f288", "M326.3 218.8c0 20.5-16.7 37.2-37.2 37.2h-70.3v-74.4h70.3c20.5 0 37.2 16.7 37.2 37.2zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-128.1-37.2c0-47.9-38.9-86.8-86.8-86.8H169.2v248h49.6v-74.4h70.3c47.9 0 86.8-38.9 86.8-86.8z"], - "firefox": [512, 512, [], "f269", "M503.52,241.48c-.12-1.56-.24-3.12-.24-4.68v-.12l-.36-4.68v-.12a245.86,245.86,0,0,0-7.32-41.15c0-.12,0-.12-.12-.24l-1.08-4c-.12-.24-.12-.48-.24-.6-.36-1.2-.72-2.52-1.08-3.72-.12-.24-.12-.6-.24-.84-.36-1.2-.72-2.4-1.08-3.48-.12-.36-.24-.6-.36-1-.36-1.2-.72-2.28-1.2-3.48l-.36-1.08c-.36-1.08-.84-2.28-1.2-3.36a8.27,8.27,0,0,0-.36-1c-.48-1.08-.84-2.28-1.32-3.36-.12-.24-.24-.6-.36-.84-.48-1.2-1-2.28-1.44-3.48,0-.12-.12-.24-.12-.36-1.56-3.84-3.24-7.68-5-11.4l-.36-.72c-.48-1-.84-1.8-1.32-2.64-.24-.48-.48-1.08-.72-1.56-.36-.84-.84-1.56-1.2-2.4-.36-.6-.6-1.2-1-1.8s-.84-1.44-1.2-2.28c-.36-.6-.72-1.32-1.08-1.92s-.84-1.44-1.2-2.16a18.07,18.07,0,0,0-1.2-2c-.36-.72-.84-1.32-1.2-2s-.84-1.32-1.2-2-.84-1.32-1.2-1.92-.84-1.44-1.32-2.16a15.63,15.63,0,0,0-1.2-1.8L463.2,119a15.63,15.63,0,0,0-1.2-1.8c-.48-.72-1.08-1.56-1.56-2.28-.36-.48-.72-1.08-1.08-1.56l-1.8-2.52c-.36-.48-.6-.84-1-1.32-1-1.32-1.8-2.52-2.76-3.72a248.76,248.76,0,0,0-23.51-26.64A186.82,186.82,0,0,0,412,62.46c-4-3.48-8.16-6.72-12.48-9.84a162.49,162.49,0,0,0-24.6-15.12c-2.4-1.32-4.8-2.52-7.2-3.72a254,254,0,0,0-55.43-19.56c-1.92-.36-3.84-.84-5.64-1.2h-.12c-1-.12-1.8-.36-2.76-.48a236.35,236.35,0,0,0-38-4H255.14a234.62,234.62,0,0,0-45.48,5c-33.59,7.08-63.23,21.24-82.91,39-1.08,1-1.92,1.68-2.4,2.16l-.48.48H124l-.12.12.12-.12a.12.12,0,0,0,.12-.12l-.12.12a.42.42,0,0,1,.24-.12c14.64-8.76,34.92-16,49.44-19.56l5.88-1.44c.36-.12.84-.12,1.2-.24,1.68-.36,3.36-.72,5.16-1.08.24,0,.6-.12.84-.12C250.94,20.94,319.34,40.14,367,85.61a171.49,171.49,0,0,1,26.88,32.76c30.36,49.2,27.48,111.11,3.84,147.59-34.44,53-111.35,71.27-159,24.84a84.19,84.19,0,0,1-25.56-59,74.05,74.05,0,0,1,6.24-31c1.68-3.84,13.08-25.67,18.24-24.59-13.08-2.76-37.55,2.64-54.71,28.19-15.36,22.92-14.52,58.2-5,83.28a132.85,132.85,0,0,1-12.12-39.24c-12.24-82.55,43.31-153,94.31-170.51-27.48-24-96.47-22.31-147.71,15.36-29.88,22-51.23,53.16-62.51,90.36,1.68-20.88,9.6-52.08,25.8-83.88-17.16,8.88-39,37-49.8,62.88-15.6,37.43-21,82.19-16.08,124.79.36,3.24.72,6.36,1.08,9.6,19.92,117.11,122,206.38,244.78,206.38C392.77,503.42,504,392.19,504,255,503.88,250.48,503.76,245.92,503.52,241.48Z"], - "linode": [448, 512, [], "f2b8", "M366.036,186.867l-59.5,36.871-.838,36.871-29.329-19.273-39.384,24.3c2.238,55.211,2.483,59.271,2.51,59.5l-97.2,65.359L127.214,285.748l108.1-62.01L195.09,197.761l-75.417,38.547L98.723,93.015,227.771,43.574,136.432,0,10.737,39.385,38.39,174.3l41.9,32.681L48.445,222.062,69.394,323.457,98.723,351.11,77.774,363.679l16.76,78.769L160.733,512c-10.8-74.842-11.658-78.641-11.725-78.773l77.925-55.3c16.759-12.57,15.083-10.894,15.083-10.894l.838,24.3,33.519,28.491-.838-77.093,46.927-33.519,26.815-18.435-2.514,36.033,25.139,17.6,6.7-74.579,58.657-43.575Z"], - "goodreads": [448, 512, [], "f3a8", "M299.9 191.2c5.1 37.3-4.7 79-35.9 100.7-22.3 15.5-52.8 14.1-70.8 5.7-37.1-17.3-49.5-58.6-46.8-97.2 4.3-60.9 40.9-87.9 75.3-87.5 46.9-.2 71.8 31.8 78.2 78.3zM448 88v336c0 30.9-25.1 56-56 56H56c-30.9 0-56-25.1-56-56V88c0-30.9 25.1-56 56-56h336c30.9 0 56 25.1 56 56zM330 313.2s-.1-34-.1-217.3h-29v40.3c-.8.3-1.2-.5-1.6-1.2-9.6-20.7-35.9-46.3-76-46-51.9.4-87.2 31.2-100.6 77.8-4.3 14.9-5.8 30.1-5.5 45.6 1.7 77.9 45.1 117.8 112.4 115.2 28.9-1.1 54.5-17 69-45.2.5-1 1.1-1.9 1.7-2.9.2.1.4.1.6.2.3 3.8.2 30.7.1 34.5-.2 14.8-2 29.5-7.2 43.5-7.8 21-22.3 34.7-44.5 39.5-17.8 3.9-35.6 3.8-53.2-1.2-21.5-6.1-36.5-19-41.1-41.8-.3-1.6-1.3-1.3-2.3-1.3h-26.8c.8 10.6 3.2 20.3 8.5 29.2 24.2 40.5 82.7 48.5 128.2 37.4 49.9-12.3 67.3-54.9 67.4-106.3z"], - "square-odnoklassniki": [448, 512, ["odnoklassniki-square"], "f264", "M224 137.1a39.9 39.9 0 1 0 0 79.7 39.9 39.9 0 1 0 0-79.7zM384 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64zM224 95.9A81 81 0 1 1 224 258a81 81 0 1 1 0-162.1zm59.3 168.3c16.8-13.2 29.5-5.5 34.1 3.6c7.8 16-1.1 23.7-21.5 37c-17.1 10.9-40.7 15.2-56.2 16.8l13 12.9 47.7 47.7c17.4 17.9-11 45.8-28.6 28.6c-12-12.2-29.5-29.7-47.7-47.9l0 0-47.7 47.9c-17.7 17.2-46-11-28.4-28.6c3.7-3.7 7.9-7.9 12.5-12.5c10.4-10.4 22.6-22.7 35.2-35.2l12.9-12.9c-15.4-1.6-39.3-5.7-56.6-16.8c-20.3-13.3-29.3-20.9-21.4-37c4.6-9.1 17.3-16.8 34.1-3.6c0 0 22.7 18 59.3 18s59.3-18 59.3-18z"], - "jsfiddle": [576, 512, [], "f1cc", "M510.634 237.462c-4.727-2.621-5.664-5.748-6.381-10.776-2.352-16.488-3.539-33.619-9.097-49.095-35.895-99.957-153.99-143.386-246.849-91.646-27.37 15.25-48.971 36.369-65.493 63.903-3.184-1.508-5.458-2.71-7.824-3.686-30.102-12.421-59.049-10.121-85.331 9.167-25.531 18.737-36.422 44.548-32.676 76.408.355 3.025-1.967 7.621-4.514 9.545-39.712 29.992-56.031 78.065-41.902 124.615 13.831 45.569 57.514 79.796 105.608 81.433 30.291 1.031 60.637.546 90.959.539 84.041-.021 168.09.531 252.12-.48 52.664-.634 96.108-36.873 108.212-87.293 11.54-48.074-11.144-97.3-56.832-122.634zm21.107 156.88c-18.23 22.432-42.343 35.253-71.28 35.65-56.874.781-113.767.23-170.652.23 0 .7-163.028.159-163.728.154-43.861-.332-76.739-19.766-95.175-59.995-18.902-41.245-4.004-90.848 34.186-116.106 9.182-6.073 12.505-11.566 10.096-23.136-5.49-26.361 4.453-47.956 26.42-62.981 22.987-15.723 47.422-16.146 72.034-3.083 10.269 5.45 14.607 11.564 22.198-2.527 14.222-26.399 34.557-46.727 60.671-61.294 97.46-54.366 228.37 7.568 230.24 132.697.122 8.15 2.412 12.428 9.848 15.894 57.56 26.829 74.456 96.122 35.142 144.497zm-87.789-80.499c-5.848 31.157-34.622 55.096-66.666 55.095-16.953-.001-32.058-6.545-44.079-17.705-27.697-25.713-71.141-74.98-95.937-93.387-20.056-14.888-41.99-12.333-60.272 3.782-49.996 44.071 15.859 121.775 67.063 77.188 4.548-3.96 7.84-9.543 12.744-12.844 8.184-5.509 20.766-.884 13.168 10.622-17.358 26.284-49.33 38.197-78.863 29.301-28.897-8.704-48.84-35.968-48.626-70.179 1.225-22.485 12.364-43.06 35.414-55.965 22.575-12.638 46.369-13.146 66.991 2.474C295.68 280.7 320.467 323.97 352.185 343.47c24.558 15.099 54.254 7.363 68.823-17.506 28.83-49.209-34.592-105.016-78.868-63.46-3.989 3.744-6.917 8.932-11.41 11.72-10.975 6.811-17.333-4.113-12.809-10.353 20.703-28.554 50.464-40.44 83.271-28.214 31.429 11.714 49.108 44.366 42.76 78.186z"], - "sith": [448, 512, [], "f512", "M0 32l69.71 118.75-58.86-11.52 69.84 91.03a146.741 146.741 0 0 0 0 51.45l-69.84 91.03 58.86-11.52L0 480l118.75-69.71-11.52 58.86 91.03-69.84c17.02 3.04 34.47 3.04 51.48 0l91.03 69.84-11.52-58.86L448 480l-69.71-118.78 58.86 11.52-69.84-91.03c3.03-17.01 3.04-34.44 0-51.45l69.84-91.03-58.86 11.52L448 32l-118.75 69.71 11.52-58.9-91.06 69.87c-8.5-1.52-17.1-2.29-25.71-2.29s-17.21.78-25.71 2.29l-91.06-69.87 11.52 58.9L0 32zm224 99.78c31.8 0 63.6 12.12 87.85 36.37 48.5 48.5 48.49 127.21 0 175.7s-127.2 48.46-175.7-.03c-48.5-48.5-48.49-127.21 0-175.7 24.24-24.25 56.05-36.34 87.85-36.34zm0 36.66c-22.42 0-44.83 8.52-61.92 25.61-34.18 34.18-34.19 89.68 0 123.87s89.65 34.18 123.84 0c34.18-34.18 34.19-89.68 0-123.87-17.09-17.09-39.5-25.61-61.92-25.61z"], - "themeisle": [512, 512, [], "f2b2", "M208 88.286c0-10 6.286-21.714 17.715-21.714 11.142 0 17.714 11.714 17.714 21.714 0 10.285-6.572 21.714-17.714 21.714C214.286 110 208 98.571 208 88.286zm304 160c0 36.001-11.429 102.286-36.286 129.714-22.858 24.858-87.428 61.143-120.857 70.572l-1.143.286v32.571c0 16.286-12.572 30.571-29.143 30.571-10 0-19.429-5.714-24.572-14.286-5.427 8.572-14.856 14.286-24.856 14.286-10 0-19.429-5.714-24.858-14.286-5.142 8.572-14.571 14.286-24.57 14.286-10.286 0-19.429-5.714-24.858-14.286-5.143 8.572-14.571 14.286-24.571 14.286-18.857 0-29.429-15.714-29.429-32.857-16.286 12.285-35.715 19.428-56.571 19.428-22 0-43.429-8.285-60.286-22.857 10.285-.286 20.571-2.286 30.285-5.714-20.857-5.714-39.428-18.857-52-36.286 21.37 4.645 46.209 1.673 67.143-11.143-22-22-56.571-58.857-68.572-87.428C1.143 321.714 0 303.714 0 289.429c0-49.714 20.286-160 86.286-160 10.571 0 18.857 4.858 23.143 14.857a158.792 158.792 0 0 1 12-15.428c2-2.572 5.714-5.429 7.143-8.286 7.999-12.571 11.714-21.142 21.714-34C182.571 45.428 232 17.143 285.143 17.143c6 0 12 .285 17.714 1.143C313.714 6.571 328.857 0 344.572 0c14.571 0 29.714 6 40 16.286.857.858 1.428 2.286 1.428 3.428 0 3.714-10.285 13.429-12.857 16.286 4.286 1.429 15.714 6.858 15.714 12 0 2.857-2.857 5.143-4.571 7.143 31.429 27.714 49.429 67.143 56.286 108 4.286-5.143 10.285-8.572 17.143-8.572 10.571 0 20.857 7.144 28.571 14.001C507.143 187.143 512 221.714 512 248.286zM188 89.428c0 18.286 12.571 37.143 32.286 37.143 19.714 0 32.285-18.857 32.285-37.143 0-18-12.571-36.857-32.285-36.857-19.715 0-32.286 18.858-32.286 36.857zM237.714 194c0-19.714 3.714-39.143 8.571-58.286-52.039 79.534-13.531 184.571 68.858 184.571 21.428 0 42.571-7.714 60-20 2-7.429 3.714-14.857 3.714-22.572 0-14.286-6.286-21.428-20.572-21.428-4.571 0-9.143.857-13.429 1.714-63.343 12.668-107.142 3.669-107.142-63.999zm-41.142 254.858c0-11.143-8.858-20.857-20.286-20.857-11.429 0-20 9.715-20 20.857v32.571c0 11.143 8.571 21.142 20 21.142 11.428 0 20.286-9.715 20.286-21.142v-32.571zm49.143 0c0-11.143-8.572-20.857-20-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20-10 20-21.142v-32.571zm49.713 0c0-11.143-8.857-20.857-20.285-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20.285-9.715 20.285-21.142v-32.571zm49.715 0c0-11.143-8.857-20.857-20.286-20.857-11.428 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.858 21.142 20.286 21.142 11.429 0 20.286-10 20.286-21.142v-32.571zM421.714 286c-30.857 59.142-90.285 102.572-158.571 102.572-96.571 0-160.571-84.572-160.571-176.572 0-16.857 2-33.429 6-49.714-20 33.715-29.714 72.572-29.714 111.429 0 60.286 24.857 121.715 71.429 160.857 5.143-9.714 14.857-16.286 26-16.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.571-14.286 24.858-14.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.857-14.286 24.858-14.286 10 0 19.428 5.714 24.857 14.286 5.143-8.571 14.571-14.286 24.572-14.286 10.857 0 20.857 6.572 25.714 16 43.427-36.286 68.569-92 71.426-148.286zm10.572-99.714c0-53.714-34.571-105.714-92.572-105.714-30.285 0-58.571 15.143-78.857 36.857C240.862 183.812 233.41 254 302.286 254c28.805 0 97.357-28.538 84.286 36.857 28.857-26 45.714-65.714 45.714-104.571z"], - "page4": [496, 512, [], "f3d7", "M248 504C111 504 0 393 0 256S111 8 248 8c20.9 0 41.3 2.6 60.7 7.5L42.3 392H248v112zm0-143.6V146.8L98.6 360.4H248zm96 31.6v92.7c45.7-19.2 84.5-51.7 111.4-92.7H344zm57.4-138.2l-21.2 8.4 21.2 8.3v-16.7zm-20.3 54.5c-6.7 0-8 6.3-8 12.9v7.7h16.2v-10c0-5.9-2.3-10.6-8.2-10.6zM496 256c0 37.3-8.2 72.7-23 104.4H344V27.3C433.3 64.8 496 153.1 496 256zM360.4 143.6h68.2V96h-13.9v32.6h-13.9V99h-13.9v29.6h-12.7V96h-13.9v47.6zm68.1 185.3H402v-11c0-15.4-5.6-25.2-20.9-25.2-15.4 0-20.7 10.6-20.7 25.9v25.3h68.2v-15zm0-103l-68.2 29.7V268l68.2 29.5v-16.6l-14.4-5.7v-26.5l14.4-5.9v-16.9zm-4.8-68.5h-35.6V184H402v-12.2h11c8.6 15.8 1.3 35.3-18.6 35.3-22.5 0-28.3-25.3-15.5-37.7l-11.6-10.6c-16.2 17.5-12.2 63.9 27.1 63.9 34 0 44.7-35.9 29.3-65.3z"], - "hashnode": [512, 512, [], "e499", "M35.19 171.1C-11.72 217.1-11.72 294 35.19 340.9L171.1 476.8C217.1 523.7 294 523.7 340.9 476.8L476.8 340.9C523.7 294 523.7 217.1 476.8 171.1L340.9 35.19C294-11.72 217.1-11.72 171.1 35.19L35.19 171.1zM315.5 315.5C282.6 348.3 229.4 348.3 196.6 315.5C163.7 282.6 163.7 229.4 196.6 196.6C229.4 163.7 282.6 163.7 315.5 196.6C348.3 229.4 348.3 282.6 315.5 315.5z"], - "react": [512, 512, [], "f41b", "M418.2 177.2c-5.4-1.8-10.8-3.5-16.2-5.1.9-3.7 1.7-7.4 2.5-11.1 12.3-59.6 4.2-107.5-23.1-123.3-26.3-15.1-69.2.6-112.6 38.4-4.3 3.7-8.5 7.6-12.5 11.5-2.7-2.6-5.5-5.2-8.3-7.7-45.5-40.4-91.1-57.4-118.4-41.5-26.2 15.2-34 60.3-23 116.7 1.1 5.6 2.3 11.1 3.7 16.7-6.4 1.8-12.7 3.8-18.6 5.9C38.3 196.2 0 225.4 0 255.6c0 31.2 40.8 62.5 96.3 81.5 4.5 1.5 9 3 13.6 4.3-1.5 6-2.8 11.9-4 18-10.5 55.5-2.3 99.5 23.9 114.6 27 15.6 72.4-.4 116.6-39.1 3.5-3.1 7-6.3 10.5-9.7 4.4 4.3 9 8.4 13.6 12.4 42.8 36.8 85.1 51.7 111.2 36.6 27-15.6 35.8-62.9 24.4-120.5-.9-4.4-1.9-8.9-3-13.5 3.2-.9 6.3-1.9 9.4-2.9 57.7-19.1 99.5-50 99.5-81.7 0-30.3-39.4-59.7-93.8-78.4zM282.9 92.3c37.2-32.4 71.9-45.1 87.7-36 16.9 9.7 23.4 48.9 12.8 100.4-.7 3.4-1.4 6.7-2.3 10-22.2-5-44.7-8.6-67.3-10.6-13-18.6-27.2-36.4-42.6-53.1 3.9-3.7 7.7-7.2 11.7-10.7zM167.2 307.5c5.1 8.7 10.3 17.4 15.8 25.9-15.6-1.7-31.1-4.2-46.4-7.5 4.4-14.4 9.9-29.3 16.3-44.5 4.6 8.8 9.3 17.5 14.3 26.1zm-30.3-120.3c14.4-3.2 29.7-5.8 45.6-7.8-5.3 8.3-10.5 16.8-15.4 25.4-4.9 8.5-9.7 17.2-14.2 26-6.3-14.9-11.6-29.5-16-43.6zm27.4 68.9c6.6-13.8 13.8-27.3 21.4-40.6s15.8-26.2 24.4-38.9c15-1.1 30.3-1.7 45.9-1.7s31 .6 45.9 1.7c8.5 12.6 16.6 25.5 24.3 38.7s14.9 26.7 21.7 40.4c-6.7 13.8-13.9 27.4-21.6 40.8-7.6 13.3-15.7 26.2-24.2 39-14.9 1.1-30.4 1.6-46.1 1.6s-30.9-.5-45.6-1.4c-8.7-12.7-16.9-25.7-24.6-39s-14.8-26.8-21.5-40.6zm180.6 51.2c5.1-8.8 9.9-17.7 14.6-26.7 6.4 14.5 12 29.2 16.9 44.3-15.5 3.5-31.2 6.2-47 8 5.4-8.4 10.5-17 15.5-25.6zm14.4-76.5c-4.7-8.8-9.5-17.6-14.5-26.2-4.9-8.5-10-16.9-15.3-25.2 16.1 2 31.5 4.7 45.9 8-4.6 14.8-10 29.2-16.1 43.4zM256.2 118.3c10.5 11.4 20.4 23.4 29.6 35.8-19.8-.9-39.7-.9-59.5 0 9.8-12.9 19.9-24.9 29.9-35.8zM140.2 57c16.8-9.8 54.1 4.2 93.4 39 2.5 2.2 5 4.6 7.6 7-15.5 16.7-29.8 34.5-42.9 53.1-22.6 2-45 5.5-67.2 10.4-1.3-5.1-2.4-10.3-3.5-15.5-9.4-48.4-3.2-84.9 12.6-94zm-24.5 263.6c-4.2-1.2-8.3-2.5-12.4-3.9-21.3-6.7-45.5-17.3-63-31.2-10.1-7-16.9-17.8-18.8-29.9 0-18.3 31.6-41.7 77.2-57.6 5.7-2 11.5-3.8 17.3-5.5 6.8 21.7 15 43 24.5 63.6-9.6 20.9-17.9 42.5-24.8 64.5zm116.6 98c-16.5 15.1-35.6 27.1-56.4 35.3-11.1 5.3-23.9 5.8-35.3 1.3-15.9-9.2-22.5-44.5-13.5-92 1.1-5.6 2.3-11.2 3.7-16.7 22.4 4.8 45 8.1 67.9 9.8 13.2 18.7 27.7 36.6 43.2 53.4-3.2 3.1-6.4 6.1-9.6 8.9zm24.5-24.3c-10.2-11-20.4-23.2-30.3-36.3 9.6.4 19.5.6 29.5.6 10.3 0 20.4-.2 30.4-.7-9.2 12.7-19.1 24.8-29.6 36.4zm130.7 30c-.9 12.2-6.9 23.6-16.5 31.3-15.9 9.2-49.8-2.8-86.4-34.2-4.2-3.6-8.4-7.5-12.7-11.5 15.3-16.9 29.4-34.8 42.2-53.6 22.9-1.9 45.7-5.4 68.2-10.5 1 4.1 1.9 8.2 2.7 12.2 4.9 21.6 5.7 44.1 2.5 66.3zm18.2-107.5c-2.8.9-5.6 1.8-8.5 2.6-7-21.8-15.6-43.1-25.5-63.8 9.6-20.4 17.7-41.4 24.5-62.9 5.2 1.5 10.2 3.1 15 4.7 46.6 16 79.3 39.8 79.3 58 0 19.6-34.9 44.9-84.8 61.4zm-149.7-15c25.3 0 45.8-20.5 45.8-45.8s-20.5-45.8-45.8-45.8c-25.3 0-45.8 20.5-45.8 45.8s20.5 45.8 45.8 45.8z"], - "cc-paypal": [576, 512, [], "f1f4", "M186.3 258.2c0 12.2-9.7 21.5-22 21.5-9.2 0-16-5.2-16-15 0-12.2 9.5-22 21.7-22 9.3 0 16.3 5.7 16.3 15.5zM80.5 209.7h-4.7c-1.5 0-3 1-3.2 2.7l-4.3 26.7 8.2-.3c11 0 19.5-1.5 21.5-14.2 2.3-13.4-6.2-14.9-17.5-14.9zm284 0H360c-1.8 0-3 1-3.2 2.7l-4.2 26.7 8-.3c13 0 22-3 22-18-.1-10.6-9.6-11.1-18.1-11.1zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM128.3 215.4c0-21-16.2-28-34.7-28h-40c-2.5 0-5 2-5.2 4.7L32 294.2c-.3 2 1.2 4 3.2 4h19c2.7 0 5.2-2.9 5.5-5.7l4.5-26.6c1-7.2 13.2-4.7 18-4.7 28.6 0 46.1-17 46.1-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.2 8.2-5.8-8.5-14.2-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9 0 20.2-4.9 26.5-11.9-.5 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H200c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm40.5 97.9l63.7-92.6c.5-.5.5-1 .5-1.7 0-1.7-1.5-3.5-3.2-3.5h-19.2c-1.7 0-3.5 1-4.5 2.5l-26.5 39-11-37.5c-.8-2.2-3-4-5.5-4h-18.7c-1.7 0-3.2 1.8-3.2 3.5 0 1.2 19.5 56.8 21.2 62.1-2.7 3.8-20.5 28.6-20.5 31.6 0 1.8 1.5 3.2 3.2 3.2h19.2c1.8-.1 3.5-1.1 4.5-2.6zm159.3-106.7c0-21-16.2-28-34.7-28h-39.7c-2.7 0-5.2 2-5.5 4.7l-16.2 102c-.2 2 1.3 4 3.2 4h20.5c2 0 3.5-1.5 4-3.2l4.5-29c1-7.2 13.2-4.7 18-4.7 28.4 0 45.9-17 45.9-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.3 8.2-5.5-8.5-14-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9.3 0 20.5-4.9 26.5-11.9-.3 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H484c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm47.5-33.3c0-2-1.5-3.5-3.2-3.5h-18.5c-1.5 0-3 1.2-3.2 2.7l-16.2 104-.3.5c0 1.8 1.5 3.5 3.5 3.5h16.5c2.5 0 5-2.9 5.2-5.7L544 191.2v-.3zm-90 51.8c-12.2 0-21.7 9.7-21.7 22 0 9.7 7 15 16.2 15 12 0 21.7-9.2 21.7-21.5.1-9.8-6.9-15.5-16.2-15.5z"], - "squarespace": [512, 512, [], "f5be", "M186.12 343.34c-9.65 9.65-9.65 25.29 0 34.94 9.65 9.65 25.29 9.65 34.94 0L378.24 221.1c19.29-19.29 50.57-19.29 69.86 0s19.29 50.57 0 69.86L293.95 445.1c19.27 19.29 50.53 19.31 69.82.04l.04-.04 119.25-119.24c38.59-38.59 38.59-101.14 0-139.72-38.59-38.59-101.15-38.59-139.72 0l-157.22 157.2zm244.53-104.8c-9.65-9.65-25.29-9.65-34.93 0l-157.2 157.18c-19.27 19.29-50.53 19.31-69.82.05l-.05-.05c-9.64-9.64-25.27-9.65-34.92-.01l-.01.01c-9.65 9.64-9.66 25.28-.02 34.93l.02.02c38.58 38.57 101.14 38.57 139.72 0l157.2-157.2c9.65-9.65 9.65-25.29.01-34.93zm-261.99 87.33l157.18-157.18c9.64-9.65 9.64-25.29 0-34.94-9.64-9.64-25.27-9.64-34.91 0L133.72 290.93c-19.28 19.29-50.56 19.3-69.85.01l-.01-.01c-19.29-19.28-19.31-50.54-.03-69.84l.03-.03L218.03 66.89c-19.28-19.29-50.55-19.3-69.85-.02l-.02.02L28.93 186.14c-38.58 38.59-38.58 101.14 0 139.72 38.6 38.59 101.13 38.59 139.73.01zm-87.33-52.4c9.64 9.64 25.27 9.64 34.91 0l157.21-157.19c19.28-19.29 50.55-19.3 69.84-.02l.02.02c9.65 9.65 25.29 9.65 34.93 0 9.65-9.65 9.65-25.29 0-34.93-38.59-38.59-101.13-38.59-139.72 0L81.33 238.54c-9.65 9.64-9.65 25.28-.01 34.93h.01z"], - "cc-stripe": [576, 512, [], "f1f5", "M492.4 220.8c-8.9 0-18.7 6.7-18.7 22.7h36.7c0-16-9.3-22.7-18-22.7zM375 223.4c-8.2 0-13.3 2.9-17 7l.2 52.8c3.5 3.7 8.5 6.7 16.8 6.7 13.1 0 21.9-14.3 21.9-33.4 0-18.6-9-33.2-21.9-33.1zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM122.2 281.1c0 25.6-20.3 40.1-49.9 40.3-12.2 0-25.6-2.4-38.8-8.1v-33.9c12 6.4 27.1 11.3 38.9 11.3 7.9 0 13.6-2.1 13.6-8.7 0-17-54-10.6-54-49.9 0-25.2 19.2-40.2 48-40.2 11.8 0 23.5 1.8 35.3 6.5v33.4c-10.8-5.8-24.5-9.1-35.3-9.1-7.5 0-12.1 2.2-12.1 7.7 0 16 54.3 8.4 54.3 50.7zm68.8-56.6h-27V275c0 20.9 22.5 14.4 27 12.6v28.9c-4.7 2.6-13.3 4.7-24.9 4.7-21.1 0-36.9-15.5-36.9-36.5l.2-113.9 34.7-7.4v30.8H191zm74 2.4c-4.5-1.5-18.7-3.6-27.1 7.4v84.4h-35.5V194.2h30.7l2.2 10.5c8.3-15.3 24.9-12.2 29.6-10.5h.1zm44.1 91.8h-35.7V194.2h35.7zm0-142.9l-35.7 7.6v-28.9l35.7-7.6zm74.1 145.5c-12.4 0-20-5.3-25.1-9l-.1 40.2-35.5 7.5V194.2h31.3l1.8 8.8c4.9-4.5 13.9-11.1 27.8-11.1 24.9 0 48.4 22.5 48.4 63.8 0 45.1-23.2 65.5-48.6 65.6zm160.4-51.5h-69.5c1.6 16.6 13.8 21.5 27.6 21.5 14.1 0 25.2-3 34.9-7.9V312c-9.7 5.3-22.4 9.2-39.4 9.2-34.6 0-58.8-21.7-58.8-64.5 0-36.2 20.5-64.9 54.3-64.9 33.7 0 51.3 28.7 51.3 65.1 0 3.5-.3 10.9-.4 12.9z"], - "creative-commons-share": [496, 512, [], "f4f2", "M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm101 132.4c7.8 0 13.7 6.1 13.7 13.7v182.5c0 7.7-6.1 13.7-13.7 13.7H214.3c-7.7 0-13.7-6-13.7-13.7v-54h-54c-7.8 0-13.7-6-13.7-13.7V131.1c0-8.2 6.6-12.7 12.4-13.7h136.4c7.7 0 13.7 6 13.7 13.7v54h54zM159.9 300.3h40.7V198.9c0-7.4 5.8-12.6 12-13.7h55.8v-40.3H159.9v155.4zm176.2-88.1H227.6v155.4h108.5V212.2z"], - "bitcoin": [512, 512, [], "f379", "M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-141.651-35.33c4.937-32.999-20.191-50.739-54.55-62.573l11.146-44.702-27.213-6.781-10.851 43.524c-7.154-1.783-14.502-3.464-21.803-5.13l10.929-43.81-27.198-6.781-11.153 44.686c-5.922-1.349-11.735-2.682-17.377-4.084l.031-.14-37.53-9.37-7.239 29.062s20.191 4.627 19.765 4.913c11.022 2.751 13.014 10.044 12.68 15.825l-12.696 50.925c.76.194 1.744.473 2.829.907-.907-.225-1.876-.473-2.876-.713l-17.796 71.338c-1.349 3.348-4.767 8.37-12.471 6.464.271.395-19.78-4.937-19.78-4.937l-13.51 31.147 35.414 8.827c6.588 1.651 13.045 3.379 19.4 5.006l-11.262 45.213 27.182 6.781 11.153-44.733a1038.209 1038.209 0 0 0 21.687 5.627l-11.115 44.523 27.213 6.781 11.262-45.128c46.404 8.781 81.299 5.239 95.986-36.727 11.836-33.79-.589-53.281-25.004-65.991 17.78-4.098 31.174-15.792 34.747-39.949zm-62.177 87.179c-8.41 33.79-65.308 15.523-83.755 10.943l14.944-59.899c18.446 4.603 77.6 13.717 68.811 48.956zm8.417-87.667c-7.673 30.736-55.031 15.12-70.393 11.292l13.548-54.327c15.363 3.828 64.836 10.973 56.845 43.035z"], - "keycdn": [512, 512, [], "f3ba", "M63.8 409.3l60.5-59c32.1 42.8 71.1 66 126.6 67.4 30.5.7 60.3-7 86.4-22.4 5.1 5.3 18.5 19.5 20.9 22-32.2 20.7-69.6 31.1-108.1 30.2-43.3-1.1-84.6-16.7-117.7-44.4.3-.6-38.2 37.5-38.6 37.9 9.5 29.8-13.1 62.4-46.3 62.4C20.7 503.3 0 481.7 0 454.9c0-34.3 33.1-56.6 63.8-45.6zm354.9-252.4c19.1 31.3 29.6 67.4 28.7 104-1.1 44.8-19 87.5-48.6 121 .3.3 23.8 25.2 24.1 25.5 9.6-1.3 19.2 2 25.9 9.1 11.3 12 10.9 30.9-1.1 42.4-12 11.3-30.9 10.9-42.4-1.1-6.7-7-9.4-16.8-7.6-26.3-24.9-26.6-44.4-47.2-44.4-47.2 42.7-34.1 63.3-79.6 64.4-124.2.7-28.9-7.2-57.2-21.1-82.2l22.1-21zM104 53.1c6.7 7 9.4 16.8 7.6 26.3l45.9 48.1c-4.7 3.8-13.3 10.4-22.8 21.3-25.4 28.5-39.6 64.8-40.7 102.9-.7 28.9 6.1 57.2 20 82.4l-22 21.5C72.7 324 63.1 287.9 64.2 250.9c1-44.6 18.3-87.6 47.5-121.1l-25.3-26.4c-9.6 1.3-19.2-2-25.9-9.1-11.3-12-10.9-30.9 1.1-42.4C73.5 40.7 92.2 41 104 53.1zM464.9 8c26 0 47.1 22.4 47.1 48.3S490.9 104 464.9 104c-6.3.1-14-1.1-15.9-1.8l-62.9 59.7c-32.7-43.6-76.7-65.9-126.9-67.2-30.5-.7-60.3 6.8-86.2 22.4l-21.1-22C184.1 74.3 221.5 64 260 64.9c43.3 1.1 84.6 16.7 117.7 44.6l41.1-38.6c-1.5-4.7-2.2-9.6-2.2-14.5C416.5 29.7 438.9 8 464.9 8zM256.7 113.4c5.5 0 10.9.4 16.4 1.1 78.1 9.8 133.4 81.1 123.8 159.1-9.8 78.1-81.1 133.4-159.1 123.8-78.1-9.8-133.4-81.1-123.8-159.2 9.3-72.4 70.1-124.6 142.7-124.8zm-59 119.4c.6 22.7 12.2 41.8 32.4 52.2l-11 51.7h73.7l-11-51.7c20.1-10.9 32.1-29 32.4-52.2-.4-32.8-25.8-57.5-58.3-58.3-32.1.8-57.3 24.8-58.2 58.3zM256 160"], - "opera": [496, 512, [], "f26a", "M313.9 32.7c-170.2 0-252.6 223.8-147.5 355.1 36.5 45.4 88.6 75.6 147.5 75.6 36.3 0 70.3-11.1 99.4-30.4-43.8 39.2-101.9 63-165.3 63-3.9 0-8 0-11.9-.3C104.6 489.6 0 381.1 0 248 0 111 111 0 248 0h.8c63.1.3 120.7 24.1 164.4 63.1-29-19.4-63.1-30.4-99.3-30.4zm101.8 397.7c-40.9 24.7-90.7 23.6-132-5.8 56.2-20.5 97.7-91.6 97.7-176.6 0-84.7-41.2-155.8-97.4-176.6 41.8-29.2 91.2-30.3 132.9-5 105.9 98.7 105.5 265.7-1.2 364z"], - "itch-io": [512, 512, [], "f83a", "M71.92 34.77C50.2 47.67 7.4 96.84 7 109.73v21.34c0 27.06 25.29 50.84 48.25 50.84 27.57 0 50.54-22.85 50.54-50 0 27.12 22.18 50 49.76 50s49-22.85 49-50c0 27.12 23.59 50 51.16 50h.5c27.57 0 51.16-22.85 51.16-50 0 27.12 21.47 50 49 50s49.76-22.85 49.76-50c0 27.12 23 50 50.54 50 23 0 48.25-23.78 48.25-50.84v-21.34c-.4-12.9-43.2-62.07-64.92-75C372.56 32.4 325.76 32 256 32S91.14 33.1 71.92 34.77zm132.32 134.39c-22 38.4-77.9 38.71-99.85.25-13.17 23.14-43.17 32.07-56 27.66-3.87 40.15-13.67 237.13 17.73 269.15 80 18.67 302.08 18.12 379.76 0 31.65-32.27 21.32-232 17.75-269.15-12.92 4.44-42.88-4.6-56-27.66-22 38.52-77.85 38.1-99.85-.24-7.1 12.49-23.05 28.94-51.76 28.94a57.54 57.54 0 0 1-51.75-28.94zm-41.58 53.77c16.47 0 31.09 0 49.22 19.78a436.91 436.91 0 0 1 88.18 0C318.22 223 332.85 223 349.31 223c52.33 0 65.22 77.53 83.87 144.45 17.26 62.15-5.52 63.67-33.95 63.73-42.15-1.57-65.49-32.18-65.49-62.79-39.25 6.43-101.93 8.79-155.55 0 0 30.61-23.34 61.22-65.49 62.79-28.42-.06-51.2-1.58-33.94-63.73 18.67-67 31.56-144.45 83.88-144.45zM256 270.79s-44.38 40.77-52.35 55.21l29-1.17v25.32c0 1.55 21.34.16 23.33.16 11.65.54 23.31 1 23.31-.16v-25.28l29 1.17c-8-14.48-52.35-55.24-52.35-55.24z"], - "umbraco": [510, 512, [], "f8e8", "M255.35 8C118.36 7.83 7.14 118.72 7 255.68c-.07 137 111 248.2 248 248.27 136.85 0 247.82-110.7 248-247.67S392.34 8.17 255.35 8zm145 266q-1.14 40.68-14 65t-43.51 35q-30.61 10.7-85.45 10.47h-4.6q-54.78.22-85.44-10.47t-43.52-35q-12.85-24.36-14-65a224.81 224.81 0 0 1 0-30.71 418.37 418.37 0 0 1 3.6-43.88c1.88-13.39 3.57-22.58 5.4-32 1-4.88 1.28-6.42 1.82-8.45a5.09 5.09 0 0 1 4.9-3.89h.69l32 5a5.07 5.07 0 0 1 4.16 5 5 5 0 0 1 0 .77l-1.7 8.78q-2.41 13.25-4.84 33.68a380.62 380.62 0 0 0-2.64 42.15q-.28 40.43 8.13 59.83a43.87 43.87 0 0 0 31.31 25.18A243 243 0 0 0 250 340.6h10.25a242.64 242.64 0 0 0 57.27-5.16 43.86 43.86 0 0 0 31.15-25.23q8.53-19.42 8.13-59.78a388 388 0 0 0-2.6-42.15q-2.48-20.38-4.89-33.68l-1.69-8.78a5 5 0 0 1 0-.77 5 5 0 0 1 4.2-5l32-5h.82a5 5 0 0 1 4.9 3.89c.55 2.05.81 3.57 1.83 8.45 1.82 9.62 3.52 18.78 5.39 32a415.71 415.71 0 0 1 3.61 43.88 228.06 228.06 0 0 1-.04 30.73z"], - "galactic-senate": [512, 512, [], "f50d", "M249.86 33.48v26.07C236.28 80.17 226 168.14 225.39 274.9c11.74-15.62 19.13-33.33 19.13-48.24v-16.88c-.03-5.32.75-10.53 2.19-15.65.65-2.14 1.39-4.08 2.62-5.82 1.23-1.75 3.43-3.79 6.68-3.79 3.24 0 5.45 2.05 6.68 3.79 1.23 1.75 1.97 3.68 2.62 5.82 1.44 5.12 2.22 10.33 2.19 15.65v16.88c0 14.91 7.39 32.62 19.13 48.24-.63-106.76-10.91-194.73-24.49-215.35V33.48h-12.28zm-26.34 147.77c-9.52 2.15-18.7 5.19-27.46 9.08 8.9 16.12 9.76 32.64 1.71 37.29-8 4.62-21.85-4.23-31.36-19.82-11.58 8.79-21.88 19.32-30.56 31.09 14.73 9.62 22.89 22.92 18.32 30.66-4.54 7.7-20.03 7.14-35.47-.96-5.78 13.25-9.75 27.51-11.65 42.42 9.68.18 18.67 2.38 26.18 6.04 17.78-.3 32.77-1.96 40.49-4.22 5.55-26.35 23.02-48.23 46.32-59.51.73-25.55 1.88-49.67 3.48-72.07zm64.96 0c1.59 22.4 2.75 46.52 3.47 72.07 23.29 11.28 40.77 33.16 46.32 59.51 7.72 2.26 22.71 3.92 40.49 4.22 7.51-3.66 16.5-5.85 26.18-6.04-1.9-14.91-5.86-29.17-11.65-42.42-15.44 8.1-30.93 8.66-35.47.96-4.57-7.74 3.6-21.05 18.32-30.66-8.68-11.77-18.98-22.3-30.56-31.09-9.51 15.59-23.36 24.44-31.36 19.82-8.05-4.65-7.19-21.16 1.71-37.29a147.49 147.49 0 0 0-27.45-9.08zm-32.48 8.6c-3.23 0-5.86 8.81-6.09 19.93h-.05v16.88c0 41.42-49.01 95.04-93.49 95.04-52 0-122.75-1.45-156.37 29.17v2.51c9.42 17.12 20.58 33.17 33.18 47.97C45.7 380.26 84.77 360.4 141.2 360c45.68 1.02 79.03 20.33 90.76 40.87.01.01-.01.04 0 .05 7.67 2.14 15.85 3.23 24.04 3.21 8.19.02 16.37-1.07 24.04-3.21.01-.01-.01-.04 0-.05 11.74-20.54 45.08-39.85 90.76-40.87 56.43.39 95.49 20.26 108.02 41.35 12.6-14.8 23.76-30.86 33.18-47.97v-2.51c-33.61-30.62-104.37-29.17-156.37-29.17-44.48 0-93.49-53.62-93.49-95.04v-16.88h-.05c-.23-11.12-2.86-19.93-6.09-19.93zm0 96.59c22.42 0 40.6 18.18 40.6 40.6s-18.18 40.65-40.6 40.65-40.6-18.23-40.6-40.65c0-22.42 18.18-40.6 40.6-40.6zm0 7.64c-18.19 0-32.96 14.77-32.96 32.96S237.81 360 256 360s32.96-14.77 32.96-32.96-14.77-32.96-32.96-32.96zm0 6.14c14.81 0 26.82 12.01 26.82 26.82s-12.01 26.82-26.82 26.82-26.82-12.01-26.82-26.82 12.01-26.82 26.82-26.82zm-114.8 66.67c-10.19.07-21.6.36-30.5 1.66.43 4.42 1.51 18.63 7.11 29.76 9.11-2.56 18.36-3.9 27.62-3.9 41.28.94 71.48 34.35 78.26 74.47l.11 4.7c10.4 1.91 21.19 2.94 32.21 2.94 11.03 0 21.81-1.02 32.21-2.94l.11-4.7c6.78-40.12 36.98-73.53 78.26-74.47 9.26 0 18.51 1.34 27.62 3.9 5.6-11.13 6.68-25.34 7.11-29.76-8.9-1.3-20.32-1.58-30.5-1.66-18.76.42-35.19 4.17-48.61 9.67-12.54 16.03-29.16 30.03-49.58 33.07-.09.02-.17.04-.27.05-.05.01-.11.04-.16.05-5.24 1.07-10.63 1.6-16.19 1.6-5.55 0-10.95-.53-16.19-1.6-.05-.01-.11-.04-.16-.05-.1-.02-.17-.04-.27-.05-20.42-3.03-37.03-17.04-49.58-33.07-13.42-5.49-29.86-9.25-48.61-9.67z"], - "ubuntu": [576, 512, [], "f7df", "M469.2 75A75.6 75.6 0 1 0 317.9 75a75.6 75.6 0 1 0 151.2 0zM154.2 240.7A75.6 75.6 0 1 0 3 240.7a75.6 75.6 0 1 0 151.2 0zM57 346C75.6 392.9 108 433 150 461.1s91.5 42.6 142 41.7c-14.7-18.6-22.9-41.5-23.2-65.2c-6.8-.9-13.3-2.1-19.5-3.4c-26.8-5.7-51.9-17.3-73.6-34s-39.3-38.1-51.7-62.5c-20.9 9.9-44.5 12.8-67.1 8.2zm395.1 89.8a75.6 75.6 0 1 0 -151.2 0 75.6 75.6 0 1 0 151.2 0zM444 351.6c18.5 14.8 31.6 35.2 37.2 58.2c33.3-41.3 52.6-92.2 54.8-145.2s-12.5-105.4-42.2-149.4c-8.6 21.5-24 39.6-43.8 51.6c15.4 28.6 22.9 60.8 21.9 93.2s-10.7 64-28 91.6zM101.1 135.4c12.4 2.7 24.3 7.5 35.1 14.3c16.6-24.2 38.9-44.1 64.8-58S255.8 70.4 285.2 70c.2-5.9 .9-11.9 2-17.7c3.6-16.7 11.1-32.3 21.8-45.5c-47.7-3.8-95.4 6-137.6 28.5S94.3 91.7 70.8 133.4c2.7-.2 5.3-.3 8-.3c7.5 0 15 .8 22.4 2.3z"], - "draft2digital": [480, 512, [], "f396", "M480 398.1l-144-82.2v64.7h-91.3c30.8-35 81.8-95.9 111.8-149.3 35.2-62.6 16.1-123.4-12.8-153.3-4.4-4.6-62.2-62.9-166-41.2-59.1 12.4-89.4 43.4-104.3 67.3-13.1 20.9-17 39.8-18.2 47.7-5.5 33 19.4 67.1 56.7 67.1 31.7 0 57.3-25.7 57.3-57.4 0-27.1-19.7-52.1-48-56.8 1.8-7.3 17.7-21.1 26.3-24.7 41.1-17.3 78 5.2 83.3 33.5 8.3 44.3-37.1 90.4-69.7 127.6C84.5 328.1 18.3 396.8 0 415.9l336-.1V480zM369.9 371l47.1 27.2-47.1 27.2zM134.2 161.4c0 12.4-10 22.4-22.4 22.4s-22.4-10-22.4-22.4 10-22.4 22.4-22.4 22.4 10.1 22.4 22.4zM82.5 380.5c25.6-27.4 97.7-104.7 150.8-169.9 35.1-43.1 40.3-82.4 28.4-112.7-7.4-18.8-17.5-30.2-24.3-35.7 45.3 2.1 68 23.4 82.2 38.3 0 0 42.4 48.2 5.8 113.3-37 65.9-110.9 147.5-128.5 166.7z"], - "stripe": [640, 512, [], "f429", "M165 144.7l-43.3 9.2-.2 142.4c0 26.3 19.8 43.3 46.1 43.3 14.6 0 25.3-2.7 31.2-5.9v-33.8c-5.7 2.3-33.7 10.5-33.7-15.7V221h33.7v-37.8h-33.7zm89.1 51.6l-2.7-13.1H213v153.2h44.3V233.3c10.5-13.8 28.2-11.1 33.9-9.3v-40.8c-6-2.1-26.7-6-37.1 13.1zm92.3-72.3l-44.6 9.5v36.2l44.6-9.5zM44.9 228.3c0-6.9 5.8-9.6 15.1-9.7 13.5 0 30.7 4.1 44.2 11.4v-41.8c-14.7-5.8-29.4-8.1-44.1-8.1-36 0-60 18.8-60 50.2 0 49.2 67.5 41.2 67.5 62.4 0 8.2-7.1 10.9-17 10.9-14.7 0-33.7-6.1-48.6-14.2v40c16.5 7.1 33.2 10.1 48.5 10.1 36.9 0 62.3-15.8 62.3-47.8 0-52.9-67.9-43.4-67.9-63.4zM640 261.6c0-45.5-22-81.4-64.2-81.4s-67.9 35.9-67.9 81.1c0 53.5 30.3 78.2 73.5 78.2 21.2 0 37.1-4.8 49.2-11.5v-33.4c-12.1 6.1-26 9.8-43.6 9.8-17.3 0-32.5-6.1-34.5-26.9h86.9c.2-2.3.6-11.6.6-15.9zm-87.9-16.8c0-20 12.3-28.4 23.4-28.4 10.9 0 22.5 8.4 22.5 28.4zm-112.9-64.6c-17.4 0-28.6 8.2-34.8 13.9l-2.3-11H363v204.8l44.4-9.4.1-50.2c6.4 4.7 15.9 11.2 31.4 11.2 31.8 0 60.8-23.2 60.8-79.6.1-51.6-29.3-79.7-60.5-79.7zm-10.6 122.5c-10.4 0-16.6-3.8-20.9-8.4l-.3-66c4.6-5.1 11-8.8 21.2-8.8 16.2 0 27.4 18.2 27.4 41.4.1 23.9-10.9 41.8-27.4 41.8zm-126.7 33.7h44.6V183.2h-44.6z"], - "houzz": [448, 512, [], "f27c", "M275.9 330.7H171.3V480H17V32h109.5v104.5l305.1 85.6V480H275.9z"], - "gg": [512, 512, [], "f260", "M179.2 230.4l102.4 102.4-102.4 102.4L0 256 179.2 76.8l44.8 44.8-25.6 25.6-19.2-19.2-128 128 128 128 51.5-51.5-77.1-76.5 25.6-25.6zM332.8 76.8L230.4 179.2l102.4 102.4 25.6-25.6-77.1-76.5 51.5-51.5 128 128-128 128-19.2-19.2-25.6 25.6 44.8 44.8L512 256 332.8 76.8z"], - "dhl": [640, 512, [], "f790", "M238 301.2h58.7L319 271h-58.7L238 301.2zM0 282.9v6.4h81.8l4.7-6.4H0zM172.9 271c-8.7 0-6-3.6-4.6-5.5 2.8-3.8 7.6-10.4 10.4-14.1 2.8-3.7 2.8-5.9-2.8-5.9h-51l-41.1 55.8h100.1c33.1 0 51.5-22.5 57.2-30.3h-68.2zm317.5-6.9l39.3-53.4h-62.2l-39.3 53.4h62.2zM95.3 271H0v6.4h90.6l4.7-6.4zm111-26.6c-2.8 3.8-7.5 10.4-10.3 14.2-1.4 2-4.1 5.5 4.6 5.5h45.6s7.3-10 13.5-18.4c8.4-11.4.7-35-29.2-35H112.6l-20.4 27.8h111.4c5.6 0 5.5 2.2 2.7 5.9zM0 301.2h73.1l4.7-6.4H0v6.4zm323 0h58.7L404 271h-58.7c-.1 0-22.3 30.2-22.3 30.2zm222 .1h95v-6.4h-90.3l-4.7 6.4zm22.3-30.3l-4.7 6.4H640V271h-72.7zm-13.5 18.3H640v-6.4h-81.5l-4.7 6.4zm-164.2-78.6l-22.5 30.6h-26.2l22.5-30.6h-58.7l-39.3 53.4H409l39.3-53.4h-58.7zm33.5 60.3s-4.3 5.9-6.4 8.7c-7.4 10-.9 21.6 23.2 21.6h94.3l22.3-30.3H423.1z"], - "square-pinterest": [448, 512, ["pinterest-square"], "f0d3", "M384 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64h72.6l-2.2-.8c-5.4-48.1-3.1-57.5 15.7-134.7c3.9-16 8.5-35 13.9-57.9c0 0-7.3-14.8-7.3-36.5c0-70.7 75.5-78 75.5-25c0 13.5-5.4 31.1-11.2 49.8c-3.3 10.6-6.6 21.5-9.1 32c-5.7 24.5 12.3 44.4 36.4 44.4c43.7 0 77.2-46 77.2-112.4c0-58.8-42.3-99.9-102.6-99.9C153 139 112 191.4 112 245.6c0 21.1 8.2 43.7 18.3 56c2 2.4 2.3 4.5 1.7 7c-1.1 4.7-3.1 12.9-4.7 19.2c-1 4-1.8 7.3-2.1 8.6c-1.1 4.5-3.5 5.5-8.2 3.3c-30.6-14.3-49.8-59.1-49.8-95.1C67.2 167.1 123.4 96 229.4 96c85.2 0 151.4 60.7 151.4 141.8c0 84.6-53.3 152.7-127.4 152.7c-24.9 0-48.3-12.9-56.3-28.2c0 0-12.3 46.9-15.3 58.4c-5 19.3-17.6 42.9-27.4 59.3H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64z"], - "xing": [384, 512, [], "f168", "M162.7 210c-1.8 3.3-25.2 44.4-70.1 123.5-4.9 8.3-10.8 12.5-17.7 12.5H9.8c-7.7 0-12.1-7.5-8.5-14.4l69-121.3c.2 0 .2-.1 0-.3l-43.9-75.6c-4.3-7.8.3-14.1 8.5-14.1H100c7.3 0 13.3 4.1 18 12.2l44.7 77.5zM382.6 46.1l-144 253v.3L330.2 466c3.9 7.1.2 14.1-8.5 14.1h-65.2c-7.6 0-13.6-4-18-12.2l-92.4-168.5c3.3-5.8 51.5-90.8 144.8-255.2 4.6-8.1 10.4-12.2 17.5-12.2h65.7c8 0 12.3 6.7 8.5 14.1z"], - "blackberry": [512, 512, [], "f37b", "M166 116.9c0 23.4-16.4 49.1-72.5 49.1H23.4l21-88.8h67.8c42.1 0 53.8 23.3 53.8 39.7zm126.2-39.7h-67.8L205.7 166h70.1c53.8 0 70.1-25.7 70.1-49.1.1-16.4-11.6-39.7-53.7-39.7zM88.8 208.1H21L0 296.9h70.1c56.1 0 72.5-23.4 72.5-49.1 0-16.3-11.7-39.7-53.8-39.7zm180.1 0h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1 0-16.3-11.7-39.7-53.7-39.7zm189.3-53.8h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7zm-28 137.9h-67.8L343.7 381h70.1c56.1 0 70.1-23.4 70.1-49.1 0-16.3-11.6-39.7-53.7-39.7zM240.8 346H173l-18.7 88.8h70.1c56.1 0 70.1-25.7 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7z"], - "creative-commons-pd": [496, 512, [], "f4ec", "M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm0 449.5c-139.2 0-235.8-138-190.2-267.9l78.8 35.1c-2.1 10.5-3.3 21.5-3.3 32.9 0 99 73.9 126.9 120.4 126.9 22.9 0 53.5-6.7 79.4-29.5L297 311.1c-5.5 6.3-17.6 16.7-36.3 16.7-37.8 0-53.7-39.9-53.9-71.9 230.4 102.6 216.5 96.5 217.9 96.8-34.3 62.4-100.6 104.8-176.7 104.8zm194.2-150l-224-100c18.8-34 54.9-30.7 74.7-11l40.4-41.6c-27.1-23.3-58-27.5-78.1-27.5-47.4 0-80.9 20.5-100.7 51.6l-74.9-33.4c36.1-54.9 98.1-91.2 168.5-91.2 111.1 0 201.5 90.4 201.5 201.5 0 18-2.4 35.4-6.8 52-.3-.1-.4-.2-.6-.4z"], - "playstation": [576, 512, [], "f3df", "M570.9 372.3c-11.3 14.2-38.8 24.3-38.8 24.3L327 470.2v-54.3l150.9-53.8c17.1-6.1 19.8-14.8 5.8-19.4-13.9-4.6-39.1-3.3-56.2 2.9L327 381.1v-56.4c23.2-7.8 47.1-13.6 75.7-16.8 40.9-4.5 90.9.6 130.2 15.5 44.2 14 49.2 34.7 38 48.9zm-224.4-92.5v-139c0-16.3-3-31.3-18.3-35.6-11.7-3.8-19 7.1-19 23.4v347.9l-93.8-29.8V32c39.9 7.4 98 24.9 129.2 35.4C424.1 94.7 451 128.7 451 205.2c0 74.5-46 102.8-104.5 74.6zM43.2 410.2c-45.4-12.8-53-39.5-32.3-54.8 19.1-14.2 51.7-24.9 51.7-24.9l134.5-47.8v54.5l-96.8 34.6c-17.1 6.1-19.7 14.8-5.8 19.4 13.9 4.6 39.1 3.3 56.2-2.9l46.4-16.9v48.8c-51.6 9.3-101.4 7.3-153.9-10z"], - "quinscape": [512, 512, [], "f459", "M313.6 474.6h-1a158.1 158.1 0 0 1 0-316.2c94.9 0 168.2 83.1 157 176.6 4 5.1 8.2 9.6 11.2 15.3 13.4-30.3 20.3-62.4 20.3-97.7C501.1 117.5 391.6 8 256.5 8S12 117.5 12 252.6s109.5 244.6 244.5 244.6a237.36 237.36 0 0 0 70.4-10.1c-5.2-3.5-8.9-8.1-13.3-12.5zm-.1-.1l.4.1zm78.4-168.9a99.2 99.2 0 1 0 99.2 99.2 99.18 99.18 0 0 0-99.2-99.2z"], - "less": [640, 512, [], "f41d", "M612.7 219c0-20.5 3.2-32.6 3.2-54.6 0-34.2-12.6-45.2-40.5-45.2h-20.5v24.2h6.3c14.2 0 17.3 4.7 17.3 22.1 0 16.3-1.6 32.6-1.6 51.5 0 24.2 7.9 33.6 23.6 37.3v1.6c-15.8 3.7-23.6 13.1-23.6 37.3 0 18.9 1.6 34.2 1.6 51.5 0 17.9-3.7 22.6-17.3 22.6v.5h-6.3V393h20.5c27.8 0 40.5-11 40.5-45.2 0-22.6-3.2-34.2-3.2-54.6 0-11 6.8-22.6 27.3-23.6v-27.3c-20.5-.7-27.3-12.3-27.3-23.3zm-105.6 32c-15.8-6.3-30.5-10-30.5-20.5 0-7.9 6.3-12.6 17.9-12.6s22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-21 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51s-22.5-41-43-47.8zm-358.9 59.4c-3.7 0-8.4-3.2-8.4-13.1V119.1H65.2c-28.4 0-41 11-41 45.2 0 22.6 3.2 35.2 3.2 54.6 0 11-6.8 22.6-27.3 23.6v27.3c20.5.5 27.3 12.1 27.3 23.1 0 19.4-3.2 31-3.2 53.6 0 34.2 12.6 45.2 40.5 45.2h20.5v-24.2h-6.3c-13.1 0-17.3-5.3-17.3-22.6s1.6-32.1 1.6-51.5c0-24.2-7.9-33.6-23.6-37.3v-1.6c15.8-3.7 23.6-13.1 23.6-37.3 0-18.9-1.6-34.2-1.6-51.5s3.7-22.1 17.3-22.1H93v150.8c0 32.1 11 53.1 43.1 53.1 10 0 17.9-1.6 23.6-3.7l-5.3-34.2c-3.1.8-4.6.8-6.2.8zM379.9 251c-16.3-6.3-31-10-31-20.5 0-7.9 6.3-12.6 17.9-12.6 11.6 0 22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-20.5 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51 .1-28.9-22.5-41-43-47.8zm-155-68.8c-38.4 0-75.1 32.1-74.1 82.5 0 52 34.2 82.5 79.3 82.5 18.9 0 39.9-6.8 56.2-17.9l-15.8-27.8c-11.6 6.8-22.6 10-34.2 10-21 0-37.3-10-41.5-34.2H290c.5-3.7 1.6-11 1.6-19.4.6-42.6-22.6-75.7-66.7-75.7zm-30 66.2c3.2-21 15.8-31 30.5-31 18.9 0 26.3 13.1 26.3 31h-56.8z"], - "blogger-b": [448, 512, [], "f37d", "M446.6 222.7c-1.8-8-6.8-15.4-12.5-18.5-1.8-1-13-2.2-25-2.7-20.1-.9-22.3-1.3-28.7-5-10.1-5.9-12.8-12.3-12.9-29.5-.1-33-13.8-63.7-40.9-91.3-19.3-19.7-40.9-33-65.5-40.5-5.9-1.8-19.1-2.4-63.3-2.9-69.4-.8-84.8.6-108.4 10C45.9 59.5 14.7 96.1 3.3 142.9 1.2 151.7.7 165.8.2 246.8c-.6 101.5.1 116.4 6.4 136.5 15.6 49.6 59.9 86.3 104.4 94.3 14.8 2.7 197.3 3.3 216 .8 32.5-4.4 58-17.5 81.9-41.9 17.3-17.7 28.1-36.8 35.2-62.1 4.9-17.6 4.5-142.8 2.5-151.7zm-322.1-63.6c7.8-7.9 10-8.2 58.8-8.2 43.9 0 45.4.1 51.8 3.4 9.3 4.7 13.4 11.3 13.4 21.9 0 9.5-3.8 16.2-12.3 21.6-4.6 2.9-7.3 3.1-50.3 3.3-26.5.2-47.7-.4-50.8-1.2-16.6-4.7-22.8-28.5-10.6-40.8zm191.8 199.8l-14.9 2.4-77.5.9c-68.1.8-87.3-.4-90.9-2-7.1-3.1-13.8-11.7-14.9-19.4-1.1-7.3 2.6-17.3 8.2-22.4 7.1-6.4 10.2-6.6 97.3-6.7 89.6-.1 89.1-.1 97.6 7.8 12.1 11.3 9.5 31.2-4.9 39.4z"], - "opencart": [640, 512, [], "f23d", "M423.3 440.7c0 25.3-20.3 45.6-45.6 45.6s-45.8-20.3-45.8-45.6 20.6-45.8 45.8-45.8c25.4 0 45.6 20.5 45.6 45.8zm-253.9-45.8c-25.3 0-45.6 20.6-45.6 45.8s20.3 45.6 45.6 45.6 45.8-20.3 45.8-45.6-20.5-45.8-45.8-45.8zm291.7-270C158.9 124.9 81.9 112.1 0 25.7c34.4 51.7 53.3 148.9 373.1 144.2 333.3-5 130 86.1 70.8 188.9 186.7-166.7 319.4-233.9 17.2-233.9z"], - "vine": [384, 512, [], "f1ca", "M384 254.7v52.1c-18.4 4.2-36.9 6.1-52.1 6.1-36.9 77.4-103 143.8-125.1 156.2-14 7.9-27.1 8.4-42.7-.8C137 452 34.2 367.7 0 102.7h74.5C93.2 261.8 139 343.4 189.3 404.5c27.9-27.9 54.8-65.1 75.6-106.9-49.8-25.3-80.1-80.9-80.1-145.6 0-65.6 37.7-115.1 102.2-115.1 114.9 0 106.2 127.9 81.6 181.5 0 0-46.4 9.2-63.5-20.5 3.4-11.3 8.2-30.8 8.2-48.5 0-31.3-11.3-46.6-28.4-46.6-18.2 0-30.8 17.1-30.8 50 .1 79.2 59.4 118.7 129.9 101.9z"], - "signal-messenger": [512, 512, [], "e663", "M256 0c13.3 0 26.3 1 39.1 3l-3.7 23.7C279.9 24.9 268 24 256 24s-23.9 .9-35.4 2.7L216.9 3C229.7 1 242.7 0 256 0zm60.8 7.3l-5.7 23.3c23.4 5.7 45.4 14.9 65.4 27.1l12.5-20.5c-22.1-13.4-46.4-23.6-72.2-29.9zm90.5 42.2L393.1 68.8c19.1 14 36 30.9 50.1 50.1l19.4-14.2C447 83.6 428.4 65 407.3 49.5zm67.5 73.6l-20.5 12.5c12.2 20 21.4 42 27.1 65.4l23.3-5.7c-6.3-25.8-16.5-50.1-29.9-72.2zM509 216.9l-23.7 3.7c1.8 11.5 2.7 23.4 2.7 35.4s-.9 23.9-2.7 35.4l23.7 3.7c1.9-12.7 3-25.8 3-39.1s-1-26.3-3-39.1zM454.3 376.5c12.2-20 21.4-42 27.1-65.4l23.3 5.7c-6.3 25.8-16.5 50.1-29.9 72.2l-20.5-12.5zm-11.1 16.6l19.4 14.2c-15.5 21.1-34.1 39.8-55.2 55.2l-14.2-19.4c19.1-14 36-30.9 50.1-50.1zm-66.7 61.2l12.5 20.5c-22.1 13.4-46.4 23.6-72.2 29.9l-5.7-23.3c23.4-5.7 45.4-14.9 65.4-27.1zm-85.1 31l3.7 23.7c-12.7 1.9-25.8 3-39.1 3s-26.3-1-39.1-3l3.7-23.7c11.5 1.8 23.4 2.7 35.4 2.7s23.9-.9 35.4-2.7zm-90.5-3.9l-5.7 23.3c-19.4-4.7-37.9-11.6-55.3-20.5l-24.3 5.7-5.5-23.4 32.8-7.7 7.8 4c15.7 8 32.5 14.3 50.1 18.6zM90 471.3l5.5 23.4-41.6 9.7C26 510.8 1.2 486 7.6 458.2l9.7-41.6L40.7 422 31 463.7c-2.4 10.4 6.9 19.7 17.3 17.3L90 471.3zM45.5 401.8l-23.4-5.5L27.8 372C18.9 354.7 12 336.1 7.3 316.7l23.3-5.7c4.3 17.6 10.6 34.4 18.6 50.1l4 7.8-7.7 32.8zM26.7 291.4L3 295.1C1 282.3 0 269.3 0 256s1-26.3 3-39.1l23.7 3.7C24.9 232.1 24 244 24 256s.9 23.9 2.7 35.4zm3.9-90.5L7.3 195.2c6.3-25.8 16.5-50.1 29.9-72.2l20.5 12.5c-12.2 20-21.4 42-27.1 65.4zm38.3-82.1L49.5 104.7C65 83.6 83.6 65 104.7 49.5l14.2 19.4c-19.1 14-36 30.9-50.1 50.1zm66.7-61.2L123.1 37.2c22.1-13.4 46.4-23.6 72.2-29.9l5.7 23.3c-23.4 5.7-45.4 14.9-65.4 27.1zM464 256c0 114.9-93.1 208-208 208c-36.4 0-70.7-9.4-100.5-25.8c-2.9-1.6-6.2-2.1-9.4-1.4L53.6 458.4l21.6-92.5c.7-3.2 .2-6.5-1.4-9.4C57.4 326.7 48 292.4 48 256C48 141.1 141.1 48 256 48s208 93.1 208 208z"], - "paypal": [384, 512, [], "f1ed", "M111.4 295.9c-3.5 19.2-17.4 108.7-21.5 134-.3 1.8-1 2.5-3 2.5H12.3c-7.6 0-13.1-6.6-12.1-13.9L58.8 46.6c1.5-9.6 10.1-16.9 20-16.9 152.3 0 165.1-3.7 204 11.4 60.1 23.3 65.6 79.5 44 140.3-21.5 62.6-72.5 89.5-140.1 90.3-43.4.7-69.5-7-75.3 24.2zM357.1 152c-1.8-1.3-2.5-1.8-3 1.3-2 11.4-5.1 22.5-8.8 33.6-39.9 113.8-150.5 103.9-204.5 103.9-6.1 0-10.1 3.3-10.9 9.4-22.6 140.4-27.1 169.7-27.1 169.7-1 7.1 3.5 12.9 10.6 12.9h63.5c8.6 0 15.7-6.3 17.4-14.9.7-5.4-1.1 6.1 14.4-91.3 4.6-22 14.3-19.7 29.3-19.7 71 0 126.4-28.8 142.9-112.3 6.5-34.8 4.6-71.4-23.8-92.6z"], - "gitlab": [512, 512, [], "f296", "M503.5 204.6L502.8 202.8L433.1 21.02C431.7 17.45 429.2 14.43 425.9 12.38C423.5 10.83 420.8 9.865 417.9 9.57C415 9.275 412.2 9.653 409.5 10.68C406.8 11.7 404.4 13.34 402.4 15.46C400.5 17.58 399.1 20.13 398.3 22.9L351.3 166.9H160.8L113.7 22.9C112.9 20.13 111.5 17.59 109.6 15.47C107.6 13.35 105.2 11.72 102.5 10.7C99.86 9.675 96.98 9.295 94.12 9.587C91.26 9.878 88.51 10.83 86.08 12.38C82.84 14.43 80.33 17.45 78.92 21.02L9.267 202.8L8.543 204.6C-1.484 230.8-2.72 259.6 5.023 286.6C12.77 313.5 29.07 337.3 51.47 354.2L51.74 354.4L52.33 354.8L158.3 434.3L210.9 474L242.9 498.2C246.6 500.1 251.2 502.5 255.9 502.5C260.6 502.5 265.2 500.1 268.9 498.2L300.9 474L353.5 434.3L460.2 354.4L460.5 354.1C482.9 337.2 499.2 313.5 506.1 286.6C514.7 259.6 513.5 230.8 503.5 204.6z"], - "typo3": [448, 512, [], "f42b", "M178.7 78.4c0-24.7 5.4-32.4 13.9-39.4-69.5 8.5-149.3 34-176.3 66.4-5.4 7.7-9.3 20.8-9.3 37.1C7 246 113.8 480 191.1 480c36.3 0 97.3-59.5 146.7-139-7 2.3-11.6 2.3-18.5 2.3-57.2 0-140.6-198.5-140.6-264.9zM301.5 32c-30.1 0-41.7 5.4-41.7 36.3 0 66.4 53.8 198.5 101.7 198.5 26.3 0 78.8-99.7 78.8-182.3 0-40.9-67-52.5-138.8-52.5z"], - "reddit-alien": [512, 512, [], "f281", "M373 138.6c-25.2 0-46.3-17.5-51.9-41l0 0c-30.6 4.3-54.2 30.7-54.2 62.4l0 .2c47.4 1.8 90.6 15.1 124.9 36.3c12.6-9.7 28.4-15.5 45.5-15.5c41.3 0 74.7 33.4 74.7 74.7c0 29.8-17.4 55.5-42.7 67.5c-2.4 86.8-97 156.6-213.2 156.6S45.5 410.1 43 323.4C17.6 311.5 0 285.7 0 255.7c0-41.3 33.4-74.7 74.7-74.7c17.2 0 33 5.8 45.7 15.6c34-21.1 76.8-34.4 123.7-36.4l0-.3c0-44.3 33.7-80.9 76.8-85.5C325.8 50.2 347.2 32 373 32c29.4 0 53.3 23.9 53.3 53.3s-23.9 53.3-53.3 53.3zM157.5 255.3c-20.9 0-38.9 20.8-40.2 47.9s17.1 38.1 38 38.1s36.6-9.8 37.8-36.9s-14.7-49.1-35.7-49.1zM395 303.1c-1.2-27.1-19.2-47.9-40.2-47.9s-36.9 22-35.7 49.1c1.2 27.1 16.9 36.9 37.8 36.9s39.3-11 38-38.1zm-60.1 70.8c1.5-3.6-1-7.7-4.9-8.1c-23-2.3-47.9-3.6-73.8-3.6s-50.8 1.3-73.8 3.6c-3.9 .4-6.4 4.5-4.9 8.1c12.9 30.8 43.3 52.4 78.7 52.4s65.8-21.6 78.7-52.4z"], - "yahoo": [512, 512, [], "f19e", "M223.69,141.06,167,284.23,111,141.06H14.93L120.76,390.19,82.19,480h94.17L317.27,141.06Zm105.4,135.79a58.22,58.22,0,1,0,58.22,58.22A58.22,58.22,0,0,0,329.09,276.85ZM394.65,32l-93,223.47H406.44L499.07,32Z"], - "dailymotion": [448, 512, [], "e052", "M298.93,267a48.4,48.4,0,0,0-24.36-6.21q-19.83,0-33.44,13.27t-13.61,33.42q0,21.16,13.28,34.6t33.43,13.44q20.5,0,34.11-13.78T322,307.47A47.13,47.13,0,0,0,315.9,284,44.13,44.13,0,0,0,298.93,267ZM0,32V480H448V32ZM374.71,405.26h-53.1V381.37h-.67q-15.79,26.2-55.78,26.2-27.56,0-48.89-13.1a88.29,88.29,0,0,1-32.94-35.77q-11.6-22.68-11.59-50.89,0-27.56,11.76-50.22a89.9,89.9,0,0,1,32.93-35.78q21.18-13.09,47.72-13.1a80.87,80.87,0,0,1,29.74,5.21q13.28,5.21,25,17V153l55.79-12.09Z"], - "affiliatetheme": [512, 512, [], "f36b", "M159.7 237.4C108.4 308.3 43.1 348.2 14 326.6-15.2 304.9 2.8 230 54.2 159.1c51.3-70.9 116.6-110.8 145.7-89.2 29.1 21.6 11.1 96.6-40.2 167.5zm351.2-57.3C437.1 303.5 319 367.8 246.4 323.7c-25-15.2-41.3-41.2-49-73.8-33.6 64.8-92.8 113.8-164.1 133.2 49.8 59.3 124.1 96.9 207 96.9 150 0 271.6-123.1 271.6-274.9.1-8.5-.3-16.8-1-25z"], - "pied-piper-pp": [448, 512, [], "f1a7", "M205.3 174.6c0 21.1-14.2 38.1-31.7 38.1-7.1 0-12.8-1.2-17.2-3.7v-68c4.4-2.7 10.1-4.2 17.2-4.2 17.5 0 31.7 16.9 31.7 37.8zm52.6 67c-7.1 0-12.8 1.5-17.2 4.2v68c4.4 2.5 10.1 3.7 17.2 3.7 17.4 0 31.7-16.9 31.7-37.8 0-21.1-14.3-38.1-31.7-38.1zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM185 255.1c41 0 74.2-35.6 74.2-79.6 0-44-33.2-79.6-74.2-79.6-12 0-24.1 3.2-34.6 8.8h-45.7V311l51.8-10.1v-50.6c8.6 3.1 18.1 4.8 28.5 4.8zm158.4 25.3c0-44-33.2-79.6-73.9-79.6-3.2 0-6.4.2-9.6.7-3.7 12.5-10.1 23.8-19.2 33.4-13.8 15-32.2 23.8-51.8 24.8V416l51.8-10.1v-50.6c8.6 3.2 18.2 4.7 28.7 4.7 40.8 0 74-35.6 74-79.6z"], - "bootstrap": [576, 512, [], "f836", "M333.5,201.4c0-22.1-15.6-34.3-43-34.3h-50.4v71.2h42.5C315.4,238.2,333.5,225,333.5,201.4z M517,188.6 c-9.5-30.9-10.9-68.8-9.8-98.1c1.1-30.5-22.7-58.5-54.7-58.5H123.7c-32.1,0-55.8,28.1-54.7,58.5c1,29.3-0.3,67.2-9.8,98.1 c-9.6,31-25.7,50.6-52.2,53.1v28.5c26.4,2.5,42.6,22.1,52.2,53.1c9.5,30.9,10.9,68.8,9.8,98.1c-1.1,30.5,22.7,58.5,54.7,58.5h328.7 c32.1,0,55.8-28.1,54.7-58.5c-1-29.3,0.3-67.2,9.8-98.1c9.6-31,25.7-50.6,52.1-53.1v-28.5C542.7,239.2,526.5,219.6,517,188.6z M300.2,375.1h-97.9V136.8h97.4c43.3,0,71.7,23.4,71.7,59.4c0,25.3-19.1,47.9-43.5,51.8v1.3c33.2,3.6,55.5,26.6,55.5,58.3 C383.4,349.7,352.1,375.1,300.2,375.1z M290.2,266.4h-50.1v78.4h52.3c34.2,0,52.3-13.7,52.3-39.5 C344.7,279.6,326.1,266.4,290.2,266.4z"], - "odnoklassniki": [320, 512, [], "f263", "M275.1 334c-27.4 17.4-65.1 24.3-90 26.9l20.9 20.6 76.3 76.3c27.9 28.6-17.5 73.3-45.7 45.7-19.1-19.4-47.1-47.4-76.3-76.6L84 503.4c-28.2 27.5-73.6-17.6-45.4-45.7 19.4-19.4 47.1-47.4 76.3-76.3l20.6-20.6c-24.6-2.6-62.9-9.1-90.6-26.9-32.6-21-46.9-33.3-34.3-59 7.4-14.6 27.7-26.9 54.6-5.7 0 0 36.3 28.9 94.9 28.9s94.9-28.9 94.9-28.9c26.9-21.1 47.1-8.9 54.6 5.7 12.4 25.7-1.9 38-34.5 59.1zM30.3 129.7C30.3 58 88.6 0 160 0s129.7 58 129.7 129.7c0 71.4-58.3 129.4-129.7 129.4s-129.7-58-129.7-129.4zm66 0c0 35.1 28.6 63.7 63.7 63.7s63.7-28.6 63.7-63.7c0-35.4-28.6-64-63.7-64s-63.7 28.6-63.7 64z"], - "nfc-symbol": [576, 512, [], "e531", "M392.9 32.43C400.6 31.1 408.6 32.89 414.1 37.41C498.2 96.14 544 173.7 544 255.1C544 338.2 498.2 415.9 414.1 474.6C409.3 478.6 402.4 480.5 395.5 479.9C388.5 479.3 382 476.3 377.1 471.4L193.7 288.7C188.1 283.2 185 275.7 184.1 267.8C184.1 260 188.1 252.5 193.6 246.9C199.2 241.4 206.7 238.2 214.5 238.2C222.4 238.2 229.9 241.3 235.4 246.8L400.5 411.2C455.1 366.5 484.8 312 484.8 255.1C484.8 193.5 447.9 132.9 380.9 85.76C374.5 81.24 370.1 74.35 368.8 66.62C367.4 58.89 369.2 50.94 373.8 44.53C378.3 38.12 385.2 33.77 392.9 32.43V32.43zM186.9 479.6C179.2 480.9 171.3 479.1 164.8 474.6C81.67 415.9 35.84 338.2 35.84 255.1C35.84 173.7 81.67 96.14 164.8 37.41C170.5 33.4 177.4 31.53 184.4 32.12C191.3 32.71 197.8 35.72 202.7 40.63L386.1 223.3C391.7 228.8 394.8 236.3 394.8 244.2C394.9 251.1 391.8 259.5 386.2 265.1C380.7 270.6 373.2 273.8 365.3 273.8C357.5 273.8 349.1 270.7 344.4 265.2L179.3 100.7C124.7 145.9 95.03 199.9 95.03 255.1C95.03 318.5 131.9 379.1 198.1 426.2C205.4 430.8 209.7 437.6 211.1 445.4C212.4 453.1 210.6 461.1 206.1 467.5C201.6 473.9 194.7 478.2 186.9 479.6V479.6z"], - "mintbit": [512, 512, [], "e62f", "M73.2 512V438.9H365.7V365.7h73.2V219.4H512V0H292.6V73.1H146.3v73.2H73.2V438.9H0V512H73.2zm73.1-219.4h73.2v73.1H146.3V292.6zm73.2-73.1h73.1v73.1H219.4V219.4zm73.1 0V146.3h73.2v73.1H292.6zM365.7 73.1h73.2v73.2H365.7V73.1z"], - "ethereum": [320, 512, [], "f42e", "M311.9 260.8L160 353.6 8 260.8 160 0l151.9 260.8zM160 383.4L8 290.6 160 512l152-221.4-152 92.8z"], - "speaker-deck": [512, 512, [], "f83c", "M213.86 296H100a100 100 0 0 1 0-200h132.84a40 40 0 0 1 0 80H98c-26.47 0-26.45 40 0 40h113.82a100 100 0 0 1 0 200H40a40 40 0 0 1 0-80h173.86c26.48 0 26.46-40 0-40zM298 416a120.21 120.21 0 0 0 51.11-80h64.55a19.83 19.83 0 0 0 19.66-20V196a19.83 19.83 0 0 0-19.66-20H296.42a60.77 60.77 0 0 0 0-80h136.93c43.44 0 78.65 35.82 78.65 80v160c0 44.18-35.21 80-78.65 80z"], - "creative-commons-nc-eu": [496, 512, [], "f4e9", "M247.7 8C103.6 8 0 124.8 0 256c0 136.3 111.7 248 247.7 248C377.9 504 496 403.1 496 256 496 117 388.4 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-23.2 3.7-45.2 10.9-66l65.7 29.1h-4.7v29.5h23.3c0 6.2-.4 3.2-.4 19.5h-22.8v29.5h27c11.4 67 67.2 101.3 124.6 101.3 26.6 0 50.6-7.9 64.8-15.8l-10-46.1c-8.7 4.6-28.2 10.8-47.3 10.8-28.2 0-58.1-10.9-67.3-50.2h90.3l128.3 56.8c-1.5 2.1-56.2 104.3-178.8 104.3zm-16.7-190.6l-.5-.4.9.4h-.4zm77.2-19.5h3.7v-29.5h-70.3l-28.6-12.6c2.5-5.5 5.4-10.5 8.8-14.3 12.9-15.8 31.1-22.4 51.1-22.4 18.3 0 35.3 5.4 46.1 10l11.6-47.3c-15-6.6-37-12.4-62.3-12.4-39 0-72.2 15.8-95.9 42.3-5.3 6.1-9.8 12.9-13.9 20.1l-81.6-36.1c64.6-96.8 157.7-93.6 170.7-93.6 113 0 203 90.2 203 203.4 0 18.7-2.1 36.3-6.3 52.9l-136.1-60.5z"], - "patreon": [512, 512, [], "f3d9", "M489.7 153.8c-.1-65.4-51-119-110.7-138.3C304.8-8.5 207-5 136.1 28.4C50.3 68.9 23.3 157.7 22.3 246.2C21.5 319 28.7 510.6 136.9 512c80.3 1 92.3-102.5 129.5-152.3c26.4-35.5 60.5-45.5 102.4-55.9c72-17.8 121.1-74.7 121-150z"], - "avianex": [512, 512, [], "f374", "M453.1 32h-312c-38.9 0-76.2 31.2-83.3 69.7L1.2 410.3C-5.9 448.8 19.9 480 58.9 480h312c38.9 0 76.2-31.2 83.3-69.7l56.7-308.5c7-38.6-18.8-69.8-57.8-69.8zm-58.2 347.3l-32 13.5-115.4-110c-14.7 10-29.2 19.5-41.7 27.1l22.1 64.2-17.9 12.7-40.6-61-52.4-48.1 15.7-15.4 58 31.1c9.3-10.5 20.8-22.6 32.8-34.9L203 228.9l-68.8-99.8 18.8-28.9 8.9-4.8L265 207.8l4.9 4.5c19.4-18.8 33.8-32.4 33.8-32.4 7.7-6.5 21.5-2.9 30.7 7.9 9 10.5 10.6 24.7 2.7 31.3-1.8 1.3-15.5 11.4-35.3 25.6l4.5 7.3 94.9 119.4-6.3 7.9z"], - "ello": [496, 512, [], "f5f1", "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm143.84 285.2C375.31 358.51 315.79 404.8 248 404.8s-127.31-46.29-143.84-111.6c-1.65-7.44 2.48-15.71 9.92-17.36 7.44-1.65 15.71 2.48 17.36 9.92 14.05 52.91 62 90.11 116.56 90.11s102.51-37.2 116.56-90.11c1.65-7.44 9.92-12.4 17.36-9.92 7.44 1.65 12.4 9.92 9.92 17.36z"], - "gofore": [400, 512, [], "f3a7", "M324 319.8h-13.2v34.7c-24.5 23.1-56.3 35.8-89.9 35.8-73.2 0-132.4-60.2-132.4-134.4 0-74.1 59.2-134.4 132.4-134.4 35.3 0 68.6 14 93.6 39.4l62.3-63.3C335 55.3 279.7 32 220.7 32 98 32 0 132.6 0 256c0 122.5 97 224 220.7 224 63.2 0 124.5-26.2 171-82.5-2-27.6-13.4-77.7-67.7-77.7zm-12.1-112.5H205.6v89H324c33.5 0 60.5 15.1 76 41.8v-30.6c0-65.2-40.4-100.2-88.1-100.2z"], - "bimobject": [448, 512, [], "f378", "M416 32H32C14.4 32 0 46.4 0 64v384c0 17.6 14.4 32 32 32h384c17.6 0 32-14.4 32-32V64c0-17.6-14.4-32-32-32zm-64 257.4c0 49.4-11.4 82.6-103.8 82.6h-16.9c-44.1 0-62.4-14.9-70.4-38.8h-.9V368H96V136h64v74.7h1.1c4.6-30.5 39.7-38.8 69.7-38.8h17.3c92.4 0 103.8 33.1 103.8 82.5v35zm-64-28.9v22.9c0 21.7-3.4 33.8-38.4 33.8h-45.3c-28.9 0-44.1-6.5-44.1-35.7v-19c0-29.3 15.2-35.7 44.1-35.7h45.3c35-.2 38.4 12 38.4 33.7z"], - "brave-reverse": [448, 512, [], "e63d", "M298 0c3 0 5.8 1.3 7.8 3.6l38.1 44c.5-.1 1-.2 1.5-.3c9.2-1.6 18.6-2.2 27.7-1.2c11.6 1.4 21.5 5.4 28.9 12.9c7.7 7.8 15.4 15.8 22.6 23.6c2.5 2.7 4.9 5.2 6.9 7.4c.7 .8 1.4 1.5 1.9 2c3.4 3.7 4.2 8.1 2.7 11.9l-9.8 24.6 13.1 38.1c.7 2 .8 4.1 .2 6.2c-.1 .4-.1 .4-.5 2.1c-.6 2.3-.6 2.3-1.5 5.8c-1.6 6.3-3.5 13.3-5.4 20.9c-5.6 21.6-11.2 43.2-16.4 63.4c-12.9 49.9-21.4 82.7-23.4 90.9c-11.1 44.5-19.9 60-48.3 80.3c-24.9 17.8-76.8 53.6-86.8 60c-1 .6-2 1.3-3.4 2.3c-.5 .4-3.2 2.2-3.9 2.7c-4.9 3.3-8.3 5.5-12.1 7.3c-4.7 2.2-9.3 3.5-13.9 3.5s-9.1-1.2-13.9-3.5c-3.7-1.8-7.2-3.9-12.1-7.3c-.8-.5-3.4-2.4-3.9-2.7c-1.4-1-2.5-1.7-3.4-2.3c-10-6.4-61.9-42.1-86.8-60c-28.4-20.4-37.2-35.8-48.3-80.3c-2-8.2-10.5-41-23.3-90.5c-5.3-20.6-10.9-42.2-16.5-63.8c-2-7.6-3.8-14.6-5.4-20.9c-.9-3.5-.9-3.5-1.5-5.8c-.4-1.7-.4-1.7-.5-2.1c-.5-2-.4-4.2 .2-6.2l13.1-38.1L11.8 104c-1.5-3.8-.7-8.2 2-11.2c1.2-1.3 1.8-2 2.6-2.8c2-2.2 4.4-4.7 6.9-7.4C30.6 74.9 38.3 66.9 46 59.1c7.4-7.5 17.3-11.6 28.9-12.9c9.1-1.1 18.5-.5 27.7 1.2c.5 .1 1 .2 1.5 .3l38.1-44C144.2 1.3 147 0 150 0H298zm-4.7 21.1H154.7L115.6 66.2c-2.6 3-6.7 4.3-10.6 3.2c-.2-.1-.7-.2-1.5-.4c-1.3-.3-2.9-.6-4.5-.9c-7.4-1.3-14.9-1.8-21.7-1C70 68 64.3 70.3 60.7 74c-7.6 7.7-15.2 15.6-22.3 23.3c-1.7 1.8-3.3 3.5-4.8 5.1l8.8 22c1 2.4 1 5 .2 7.5L29.2 170.6c.4 1.4 .5 1.9 1.2 4.8c1.6 6.3 3.5 13.3 5.4 20.9c5.6 21.6 11.2 43.2 16.4 63.4c12.9 50 21.4 82.8 23.4 91C85.7 390.8 92 402 115.8 419c24.6 17.6 76.3 53.2 85.9 59.3c1.2 .8 2.5 1.6 4 2.7c.6 .4 3.2 2.2 3.9 2.7c4 2.8 6.7 4.4 9.2 5.6c2.2 1 3.9 1.5 5.1 1.5s2.9-.5 5.1-1.5c2.5-1.2 5.2-2.8 9.2-5.6c.7-.5 3.3-2.3 3.9-2.7c1.6-1.1 2.8-1.9 4-2.7c9.6-6.1 61.3-41.7 85.9-59.3c23.8-17.1 30.2-28.2 40.1-68.3c2.1-8.3 10.5-41.1 23.3-90.7c5.3-20.6 10.9-42.2 16.5-63.8c2-7.6 3.8-14.6 5.4-20.9c.7-2.9 .9-3.4 1.2-4.8l-13.3-38.8c-.8-2.4-.8-5.1 .2-7.5l8.8-22c-1.5-1.6-3.1-3.3-4.8-5.1c-7.2-7.6-14.7-15.5-22.3-23.3c-3.7-3.7-9.3-6-16.6-6.9c-6.8-.8-14.4-.3-21.7 1c-1.7 .3-3.2 .6-4.5 .9c-.8 .2-1.3 .3-1.5 .4c-3.8 1.1-7.9-.2-10.6-3.2L293.3 21.1zM224 316c2.8 0 20.9 6.5 35.4 14.1s25 13 28.3 15.2s1.3 6.2-1.7 8.4s-44.1 34.6-48.1 38.2s-9.8 9.5-13.8 9.5s-9.8-5.9-13.8-9.5s-45.1-36-48.1-38.2s-5.1-6.2-1.7-8.4s13.9-7.5 28.3-15.2s32.5-14.1 35.4-14.1zm.1-230.7c.7 0 8.8 .2 20.5 4.2c12.3 4.2 25.7 9.4 31.9 9.4s51.9-8.9 51.9-8.9s54.2 66.7 54.2 81s-6.8 18-13.7 25.4s-36.8 39.8-40.7 43.9s-11.9 10.5-7.1 21.8s11.7 25.8 3.9 40.4s-21 24.4-29.4 22.8s-28.4-12.2-35.7-17.1s-30.5-24.3-30.5-31.8s24-20.8 28.4-23.9s24.7-14.8 25.1-19.4s.3-6-5.7-17.4s-16.7-26.7-14.9-36.8s19.1-15.4 31.5-20.2s36.2-13.7 39.2-15.1s2.2-2.7-6.8-3.6s-34.6-4.3-46.1-1.1s-31.2 8.2-32.8 10.9s-3 2.7-1.4 11.8s10.1 52.8 10.9 60.6s2.4 12.9-5.8 14.8s-22.1 5.2-26.8 5.2s-18.6-3.3-26.8-5.2s-6.6-7-5.8-14.8s9.3-51.5 10.9-60.6s.2-9.2-1.4-11.8s-21.3-7.6-32.8-10.9s-37.1 .2-46.1 1.1s-9.8 2.2-6.8 3.6s26.8 10.4 39.2 15.1s29.7 10 31.5 20.2s-9 25.4-14.9 36.8s-6.1 12.8-5.7 17.4s20.6 16.4 25.1 19.4s28.4 16.4 28.4 23.9s-23.2 27-30.5 31.8s-27.2 15.4-35.7 17.1s-21.7-8.2-29.4-22.8s-.8-29.1 3.9-40.4s-3.3-17.7-7.1-21.8s-33.8-36.5-40.7-43.9s-13.7-11.2-13.7-25.4s54.2-81 54.2-81s45.8 8.9 51.9 8.9s19.5-5.2 31.9-9.4s20.6-4.2 20.6-4.2l.1 0z"], - "facebook-f": [320, 512, [], "f39e", "M80 299.3V512H196V299.3h86.5l18-97.8H196V166.9c0-51.7 20.3-71.5 72.7-71.5c16.3 0 29.4 .4 37 1.2V7.9C291.4 4 256.4 0 236.2 0C129.3 0 80 50.5 80 159.4v42.1H14v97.8H80z"], - "square-google-plus": [448, 512, ["google-plus-square"], "f0d4", "M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM64 256c0-55.3 44.7-100 100-100c27 0 49.5 9.8 67 26.2l-27.1 26.1c-7.4-7.1-20.3-15.4-39.8-15.4c-34.1 0-61.9 28.2-61.9 63.2c0 34.9 27.8 63.2 61.9 63.2c39.6 0 54.4-28.5 56.8-43.1H164V241.8h94.4c1 5 1.6 10.1 1.6 16.6c0 57.1-38.3 97.6-96 97.6c-55.3 0-100-44.7-100-100zm291 18.2v29H325.8v-29h-29V245h29V216H355v29h29v29.2H355z"], - "web-awesome": [640, 512, [], "e682", "M372.2 52c0 20.9-12.4 39-30.2 47.2L448 192l104.4-20.9c-5.3-7.7-8.4-17.1-8.4-27.1c0-26.5 21.5-48 48-48s48 21.5 48 48c0 26-20.6 47.1-46.4 48L481 442.3c-10.3 23-33.2 37.7-58.4 37.7l-205.2 0c-25.2 0-48-14.8-58.4-37.7L46.4 192C20.6 191.1 0 170 0 144c0-26.5 21.5-48 48-48s48 21.5 48 48c0 10.1-3.1 19.4-8.4 27.1L192 192 298.1 99.1c-17.7-8.3-30-26.3-30-47.1c0-28.7 23.3-52 52-52s52 23.3 52 52z"], - "mandalorian": [448, 512, [], "f50f", "M232.27 511.89c-1-3.26-1.69-15.83-1.39-24.58.55-15.89 1-24.72 1.4-28.76.64-6.2 2.87-20.72 3.28-21.38.6-1 .4-27.87-.24-33.13-.31-2.58-.63-11.9-.69-20.73-.13-16.47-.53-20.12-2.73-24.76-1.1-2.32-1.23-3.84-1-11.43a92.38 92.38 0 0 0-.34-12.71c-2-13-3.46-27.7-3.25-33.9s.43-7.15 2.06-9.67c3.05-4.71 6.51-14 8.62-23.27 2.26-9.86 3.88-17.18 4.59-20.74a109.54 109.54 0 0 1 4.42-15.05c2.27-6.25 2.49-15.39.37-15.39-.3 0-1.38 1.22-2.41 2.71s-4.76 4.8-8.29 7.36c-8.37 6.08-11.7 9.39-12.66 12.58s-1 7.23-.16 7.76c.34.21 1.29 2.4 2.11 4.88a28.83 28.83 0 0 1 .72 15.36c-.39 1.77-1 5.47-1.46 8.23s-1 6.46-1.25 8.22a9.85 9.85 0 0 1-1.55 4.26c-1 1-1.14.91-2.05-.53a14.87 14.87 0 0 1-1.44-4.75c-.25-1.74-1.63-7.11-3.08-11.93-3.28-10.9-3.52-16.15-1-21a14.24 14.24 0 0 0 1.67-4.61c0-2.39-2.2-5.32-7.41-9.89-7-6.18-8.63-7.92-10.23-11.3-1.71-3.6-3.06-4.06-4.54-1.54-1.78 3-2.6 9.11-3 22l-.34 12.19 2 2.25c3.21 3.7 12.07 16.45 13.78 19.83 3.41 6.74 4.34 11.69 4.41 23.56s.95 22.75 2 24.71c.36.66.51 1.35.34 1.52s.41 2.09 1.29 4.27a38.14 38.14 0 0 1 2.06 9 91 91 0 0 0 1.71 10.37c2.23 9.56 2.77 14.08 2.39 20.14-.2 3.27-.53 11.07-.73 17.32-1.31 41.76-1.85 58-2 61.21-.12 2-.39 11.51-.6 21.07-.36 16.3-1.3 27.37-2.42 28.65-.64.73-8.07-4.91-12.52-9.49-3.75-3.87-4-4.79-2.83-9.95.7-3 2.26-18.29 3.33-32.62.36-4.78.81-10.5 1-12.71.83-9.37 1.66-20.35 2.61-34.78.56-8.46 1.33-16.44 1.72-17.73s.89-9.89 1.13-19.11l.43-16.77-2.26-4.3c-1.72-3.28-4.87-6.94-13.22-15.34-6-6.07-11.84-12.3-12.91-13.85l-1.95-2.81.75-10.9c1.09-15.71 1.1-48.57 0-59.06l-.89-8.7-3.28-4.52c-5.86-8.08-5.8-7.75-6.22-33.27-.1-6.07-.38-11.5-.63-12.06-.83-1.87-3.05-2.66-8.54-3.05-8.86-.62-11-1.9-23.85-14.55-6.15-6-12.34-12-13.75-13.19-2.81-2.42-2.79-2-.56-9.63l1.35-4.65-1.69-3a32.22 32.22 0 0 0-2.59-4.07c-1.33-1.51-5.5-10.89-6-13.49a4.24 4.24 0 0 1 .87-3.9c2.23-2.86 3.4-5.68 4.45-10.73 2.33-11.19 7.74-26.09 10.6-29.22 3.18-3.47 7.7-1 9.41 5 1.34 4.79 1.37 9.79.1 18.55a101.2 101.2 0 0 0-1 11.11c0 4 .19 4.69 2.25 7.39 3.33 4.37 7.73 7.41 15.2 10.52a18.67 18.67 0 0 1 4.72 2.85c11.17 10.72 18.62 16.18 22.95 16.85 5.18.8 8 4.54 10 13.39 1.31 5.65 4 11.14 5.46 11.14a9.38 9.38 0 0 0 3.33-1.39c2-1.22 2.25-1.73 2.25-4.18a132.88 132.88 0 0 0-2-17.84c-.37-1.66-.78-4.06-.93-5.35s-.61-3.85-1-5.69c-2.55-11.16-3.65-15.46-4.1-16-1.55-2-4.08-10.2-4.93-15.92-1.64-11.11-4-14.23-12.91-17.39A43.15 43.15 0 0 1 165.24 78c-1.15-1-4-3.22-6.35-5.06s-4.41-3.53-4.6-3.76a22.7 22.7 0 0 0-2.69-2c-6.24-4.22-8.84-7-11.26-12l-2.44-5-.22-13-.22-13 6.91-6.55c3.95-3.75 8.48-7.35 10.59-8.43 3.31-1.69 4.45-1.89 11.37-2 8.53-.19 10.12 0 11.66 1.56s1.36 6.4-.29 8.5a6.66 6.66 0 0 0-1.34 2.32c0 .58-2.61 4.91-5.42 9a30.39 30.39 0 0 0-2.37 6.82c20.44 13.39 21.55 3.77 14.07 29L194 66.92c3.11-8.66 6.47-17.26 8.61-26.22.29-7.63-12-4.19-15.4-8.68-2.33-5.93 3.13-14.18 6.06-19.2 1.6-2.34 6.62-4.7 8.82-4.15.88.22 4.16-.35 7.37-1.28a45.3 45.3 0 0 1 7.55-1.68 29.57 29.57 0 0 0 6-1.29c3.65-1.11 4.5-1.17 6.35-.4a29.54 29.54 0 0 0 5.82 1.36 18.18 18.18 0 0 1 6 1.91 22.67 22.67 0 0 0 5 2.17c2.51.68 3 .57 7.05-1.67l4.35-2.4L268.32 5c10.44-.4 10.81-.47 15.26-2.68L288.16 0l2.46 1.43c1.76 1 3.14 2.73 4.85 6 2.36 4.51 2.38 4.58 1.37 7.37-.88 2.44-.89 3.3-.1 6.39a35.76 35.76 0 0 0 2.1 5.91 13.55 13.55 0 0 1 1.31 4c.31 4.33 0 5.3-2.41 6.92-2.17 1.47-7 7.91-7 9.34a14.77 14.77 0 0 1-1.07 3c-5 11.51-6.76 13.56-14.26 17-9.2 4.2-12.3 5.19-16.21 5.19-3.1 0-4 .25-4.54 1.26a18.33 18.33 0 0 1-4.09 3.71 13.62 13.62 0 0 0-4.38 4.78 5.89 5.89 0 0 1-2.49 2.91 6.88 6.88 0 0 0-2.45 1.71 67.62 67.62 0 0 1-7 5.38c-3.33 2.34-6.87 5-7.87 6A7.27 7.27 0 0 1 224 100a5.76 5.76 0 0 0-2.13 1.65c-1.31 1.39-1.49 2.11-1.14 4.6a36.45 36.45 0 0 0 1.42 5.88c1.32 3.8 1.31 7.86 0 10.57s-.89 6.65 1.35 9.59c2 2.63 2.16 4.56.71 8.84a33.45 33.45 0 0 0-1.06 8.91c0 4.88.22 6.28 1.46 8.38s1.82 2.48 3.24 2.32c2-.23 2.3-1.05 4.71-12.12 2.18-10 3.71-11.92 13.76-17.08 2.94-1.51 7.46-4 10-5.44s6.79-3.69 9.37-4.91a40.09 40.09 0 0 0 15.22-11.67c7.11-8.79 10-16.22 12.85-33.3a18.37 18.37 0 0 1 2.86-7.73 20.39 20.39 0 0 0 2.89-7.31c1-5.3 2.85-9.08 5.58-11.51 4.7-4.18 6-1.09 4.59 10.87-.46 3.86-1.1 10.33-1.44 14.38l-.61 7.36 4.45 4.09 4.45 4.09.11 8.42c.06 4.63.47 9.53.92 10.89l.82 2.47-6.43 6.28c-8.54 8.33-12.88 13.93-16.76 21.61-1.77 3.49-3.74 7.11-4.38 8-2.18 3.11-6.46 13-8.76 20.26l-2.29 7.22-7 6.49c-3.83 3.57-8 7.25-9.17 8.17-3.05 2.32-4.26 5.15-4.26 10a14.62 14.62 0 0 0 1.59 7.26 42 42 0 0 1 2.09 4.83 9.28 9.28 0 0 0 1.57 2.89c1.4 1.59 1.92 16.12.83 23.22-.68 4.48-3.63 12-4.7 12-1.79 0-4.06 9.27-5.07 20.74-.18 2-.62 5.94-1 8.7s-1 10-1.35 16.05c-.77 12.22-.19 18.77 2 23.15 3.41 6.69.52 12.69-11 22.84l-4 3.49.07 5.19a40.81 40.81 0 0 0 1.14 8.87c4.61 16 4.73 16.92 4.38 37.13-.46 26.4-.26 40.27.63 44.15a61.31 61.31 0 0 1 1.08 7c.17 2 .66 5.33 1.08 7.36.47 2.26.78 11 .79 22.74v19.06l-1.81 2.63c-2.71 3.91-15.11 13.54-15.49 12.29zm29.53-45.11c-.18-.3-.33-6.87-.33-14.59 0-14.06-.89-27.54-2.26-34.45-.4-2-.81-9.7-.9-17.06-.15-11.93-1.4-24.37-2.64-26.38-.66-1.07-3-17.66-3-21.3 0-4.23 1-6 5.28-9.13s4.86-3.14 5.48-.72c.28 1.1 1.45 5.62 2.6 10 3.93 15.12 4.14 16.27 4.05 21.74-.1 5.78-.13 6.13-1.74 17.73-1 7.07-1.17 12.39-1 28.43.17 19.4-.64 35.73-2 41.27-.71 2.78-2.8 5.48-3.43 4.43zm-71-37.58a101 101 0 0 1-1.73-10.79 100.5 100.5 0 0 0-1.73-10.79 37.53 37.53 0 0 1-1-6.49c-.31-3.19-.91-7.46-1.33-9.48-1-4.79-3.35-19.35-3.42-21.07 0-.74-.34-4.05-.7-7.36-.67-6.21-.84-27.67-.22-28.29 1-1 6.63 2.76 11.33 7.43l5.28 5.25-.45 6.47c-.25 3.56-.6 10.23-.78 14.83s-.49 9.87-.67 11.71-.61 9.36-.94 16.72c-.79 17.41-1.94 31.29-2.65 32a.62.62 0 0 1-1-.14zm-87.18-266.59c21.07 12.79 17.84 14.15 28.49 17.66 13 4.29 18.87 7.13 23.15 16.87C111.6 233.28 86.25 255 78.55 268c-31 52-6 101.59 62.75 87.21-14.18 29.23-78 28.63-98.68-4.9-24.68-39.95-22.09-118.3 61-187.66zm210.79 179c56.66 6.88 82.32-37.74 46.54-89.23 0 0-26.87-29.34-64.28-68 3-15.45 9.49-32.12 30.57-53.82 89.2 63.51 92 141.61 92.46 149.36 4.3 70.64-78.7 91.18-105.29 61.71z"], - "first-order-alt": [496, 512, [], "f50a", "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 488.21C115.34 496.21 7.79 388.66 7.79 256S115.34 15.79 248 15.79 488.21 123.34 488.21 256 380.66 496.21 248 496.21zm0-459.92C126.66 36.29 28.29 134.66 28.29 256S126.66 475.71 248 475.71 467.71 377.34 467.71 256 369.34 36.29 248 36.29zm0 431.22c-116.81 0-211.51-94.69-211.51-211.51S131.19 44.49 248 44.49 459.51 139.19 459.51 256 364.81 467.51 248 467.51zm186.23-162.98a191.613 191.613 0 0 1-20.13 48.69l-74.13-35.88 61.48 54.82a193.515 193.515 0 0 1-37.2 37.29l-54.8-61.57 35.88 74.27a190.944 190.944 0 0 1-48.63 20.23l-27.29-78.47 4.79 82.93c-8.61 1.18-17.4 1.8-26.33 1.8s-17.72-.62-26.33-1.8l4.76-82.46-27.15 78.03a191.365 191.365 0 0 1-48.65-20.2l35.93-74.34-54.87 61.64a193.85 193.85 0 0 1-37.22-37.28l61.59-54.9-74.26 35.93a191.638 191.638 0 0 1-20.14-48.69l77.84-27.11-82.23 4.76c-1.16-8.57-1.78-17.32-1.78-26.21 0-9 .63-17.84 1.82-26.51l82.38 4.77-77.94-27.16a191.726 191.726 0 0 1 20.23-48.67l74.22 35.92-61.52-54.86a193.85 193.85 0 0 1 37.28-37.22l54.76 61.53-35.83-74.17a191.49 191.49 0 0 1 48.65-20.13l26.87 77.25-4.71-81.61c8.61-1.18 17.39-1.8 26.32-1.8s17.71.62 26.32 1.8l-4.74 82.16 27.05-77.76c17.27 4.5 33.6 11.35 48.63 20.17l-35.82 74.12 54.72-61.47a193.13 193.13 0 0 1 37.24 37.23l-61.45 54.77 74.12-35.86a191.515 191.515 0 0 1 20.2 48.65l-77.81 27.1 82.24-4.75c1.19 8.66 1.82 17.5 1.82 26.49 0 8.88-.61 17.63-1.78 26.19l-82.12-4.75 77.72 27.09z"], - "osi": [512, 512, [], "f41a", "M8 266.44C10.3 130.64 105.4 34 221.8 18.34c138.8-18.6 255.6 75.8 278 201.1 21.3 118.8-44 230-151.6 274-9.3 3.8-14.4 1.7-18-7.7q-26.7-69.45-53.4-139c-3.1-8.1-1-13.2 7-16.8 24.2-11 39.3-29.4 43.3-55.8a71.47 71.47 0 0 0-64.5-82.2c-39-3.4-71.8 23.7-77.5 59.7-5.2 33 11.1 63.7 41.9 77.7 9.6 4.4 11.5 8.6 7.8 18.4q-26.85 69.9-53.7 139.9c-2.6 6.9-8.3 9.3-15.5 6.5-52.6-20.3-101.4-61-130.8-119-24.9-49.2-25.2-87.7-26.8-108.7zm20.9-1.9c.4 6.6.6 14.3 1.3 22.1 6.3 71.9 49.6 143.5 131 183.1 3.2 1.5 4.4.8 5.6-2.3q22.35-58.65 45-117.3c1.3-3.3.6-4.8-2.4-6.7-31.6-19.9-47.3-48.5-45.6-86 1-21.6 9.3-40.5 23.8-56.3 30-32.7 77-39.8 115.5-17.6a91.64 91.64 0 0 1 45.2 90.4c-3.6 30.6-19.3 53.9-45.7 69.8-2.7 1.6-3.5 2.9-2.3 6q22.8 58.8 45.2 117.7c1.2 3.1 2.4 3.8 5.6 2.3 35.5-16.6 65.2-40.3 88.1-72 34.8-48.2 49.1-101.9 42.3-161-13.7-117.5-119.4-214.8-255.5-198-106.1 13-195.3 102.5-197.1 225.8z"], - "google-wallet": [448, 512, [], "f1ee", "M156.8 126.8c37.6 60.6 64.2 113.1 84.3 162.5-8.3 33.8-18.8 66.5-31.3 98.3-13.2-52.3-26.5-101.3-56-148.5 6.5-36.4 2.3-73.6 3-112.3zM109.3 200H16.1c-6.5 0-10.5 7.5-6.5 12.7C51.8 267 81.3 330.5 101.3 400h103.5c-16.2-69.7-38.7-133.7-82.5-193.5-3-4-8-6.5-13-6.5zm47.8-88c68.5 108 130 234.5 138.2 368H409c-12-138-68.4-265-143.2-368H157.1zm251.8-68.5c-1.8-6.8-8.2-11.5-15.2-11.5h-88.3c-5.3 0-9 5-7.8 10.3 13.2 46.5 22.3 95.5 26.5 146 48.2 86.2 79.7 178.3 90.6 270.8 15.8-60.5 25.3-133.5 25.3-203 0-73.6-12.1-145.1-31.1-212.6z"], - "d-and-d-beyond": [640, 512, [], "f6ca", "M313.8 241.5c13.8 0 21-10.1 24.8-17.9-1-1.1-5-4.2-7.4-6.6-2.4 4.3-8.2 10.7-13.9 10.7-10.2 0-15.4-14.7-3.2-26.6-.5-.2-4.3-1.8-8 2.4 0-3 1-5.1 2.1-6.6-3.5 1.3-9.8 5.6-11.4 7.9.2-5.8 1.6-7.5.6-9l-.2-.2s-8.5 5.6-9.3 14.7c0 0 1.1-1.6 2.1-1.9.6-.3 1.3 0 .6 1.9-.2.6-5.8 15.7 5.1 26-.6-1.6-1.9-7.6 2.4-1.9-.3.1 5.8 7.1 15.7 7.1zm52.4-21.1c0-4-4.9-4.4-5.6-4.5 2 3.9.9 7.5.2 9 2.5-.4 5.4-1.6 5.4-4.5zm10.3 5.2c0-6.4-6.2-11.4-13.5-10.7 8 1.3 5.6 13.8-5 11.4 3.7-2.6 3.2-9.9-1.3-12.5 1.4 4.2-3 8.2-7.4 4.6-2.4-1.9-8-6.6-10.6-8.6-2.4-2.1-5.5-1-6.6-1.8-1.3-1.1-.5-3.8-2.2-5-1.6-.8-3-.3-4.8-1-1.6-.6-2.7-1.9-2.6-3.5-2.5 4.4 3.4 6.3 4.5 8.5 1 1.9-.8 4.8 4 8.5 14.8 11.6 9.1 8 10.4 18.1.6 4.3 4.2 6.7 6.4 7.4-2.1-1.9-2.9-6.4 0-9.3 0 13.9 19.2 13.3 23.1 6.4-2.4 1.1-7-.2-9-1.9 7.7 1 14.2-4.1 14.6-10.6zm-39.4-18.4c2 .8 1.6.7 6.4 4.5 10.2-24.5 21.7-15.7 22-15.5 2.2-1.9 9.8-3.8 13.8-2.7-2.4-2.7-7.5-6.2-13.3-6.2-4.7 0-7.4 2.2-8 1.3-.8-1.4 3.2-3.4 3.2-3.4-5.4.2-9.6 6.7-11.2 5.9-1.1-.5 1.4-3.7 1.4-3.7-5.1 2.9-9.3 9.1-10.2 13 4.6-5.8 13.8-9.8 19.7-9-10.5.5-19.5 9.7-23.8 15.8zm242.5 51.9c-20.7 0-40 1.3-50.3 2.1l7.4 8.2v77.2l-7.4 8.2c10.4.8 30.9 2.1 51.6 2.1 42.1 0 59.1-20.7 59.1-48.9 0-29.3-23.2-48.9-60.4-48.9zm-15.1 75.6v-53.3c30.1-3.3 46.8 3.8 46.8 26.3 0 25.6-21.4 30.2-46.8 27zM301.6 181c-1-3.4-.2-6.9 1.1-9.4 1 3 2.6 6.4 7.5 9-.5-2.4-.2-5.6.5-8-1.4-5.4 2.1-9.9 6.4-9.9 6.9 0 8.5 8.8 4.7 14.4 2.1 3.2 5.5 5.6 7.7 7.8 3.2-3.7 5.5-9.5 5.5-13.8 0-8.2-5.5-15.9-16.7-16.5-20-.9-20.2 16.6-20 18.9.5 5.2 3.4 7.8 3.3 7.5zm-.4 6c-.5 1.8-7 3.7-10.2 6.9 4.8-1 7-.2 7.8 1.8.5 1.4-.2 3.4-.5 5.6 1.6-1.8 7-5.5 11-6.2-1-.3-3.4-.8-4.3-.8 2.9-3.4 9.3-4.5 12.8-3.7-2.2-.2-6.7 1.1-8.5 2.6 1.6.3 3 .6 4.3 1.1-2.1.8-4.8 3.4-5.8 6.1 7-5 13.1 5.2 7 8.2.8.2 2.7 0 3.5-.5-.3 1.1-1.9 3-3 3.4 2.9 0 7-1.9 8.2-4.6 0 0-1.8.6-2.6-.2s.3-4.3.3-4.3c-2.3 2.9-3.4-1.3-1.3-4.2-1-.3-3.5-.6-4.6-.5 3.2-1.1 10.4-1.8 11.2-.3.6 1.1-1 3.4-1 3.4 4-.5 8.3 1.1 6.7 5.1 2.9-1.4 5.5-5.9 4.8-10.4-.3 1-1.6 2.4-2.9 2.7.2-1.4-1-2.2-1.9-2.6 1.7-9.6-14.6-14.2-14.1-23.9-1 1.3-1.8 5-.8 7.1 2.7 3.2 8.7 6.7 10.1 12.2-2.6-6.4-15.1-11.4-14.6-20.2-1.6 1.6-2.6 7.8-1.3 11 2.4 1.4 4.5 3.8 4.8 6.1-2.2-5.1-11.4-6.1-13.9-12.2-.6 2.2-.3 5 1 6.7 0 0-2.2-.8-7-.6 1.7.6 5.1 3.5 4.8 5.2zm25.9 7.4c-2.7 0-3.5-2.1-4.2-4.3 3.3 1.3 4.2 4.3 4.2 4.3zm38.9 3.7l-1-.6c-1.1-1-2.9-1.4-4.7-1.4-2.9 0-5.8 1.3-7.5 3.4-.8.8-1.4 1.8-2.1 2.6v15.7c3.5 2.6 7.1-2.9 3-7.2 1.5.3 4.6 2.7 5.1 3.2 0 0 2.6-.5 5-.5 2.1 0 3.9.3 5.6 1.1V196c-1.1.5-2.2 1-2.7 1.4zM79.9 305.9c17.2-4.6 16.2-18 16.2-19.9 0-20.6-24.1-25-37-25H3l8.3 8.6v29.5H0l11.4 14.6V346L3 354.6c61.7 0 73.8 1.5 86.4-5.9 6.7-4 9.9-9.8 9.9-17.6 0-5.1 2.6-18.8-19.4-25.2zm-41.3-27.5c20 0 29.6-.8 29.6 9.1v3c0 12.1-19 8.8-29.6 8.8zm0 59.2V315c12.2 0 32.7-2.3 32.7 8.8v4.5h.2c0 11.2-12.5 9.3-32.9 9.3zm101.2-19.3l23.1.2v-.2l14.1-21.2h-37.2v-14.9h52.4l-14.1-21v-.2l-73.5.2 7.4 8.2v77.1l-7.4 8.2h81.2l14.1-21.2-60.1.2zm214.7-60.1c-73.9 0-77.5 99.3-.3 99.3 77.9 0 74.1-99.3.3-99.3zm-.3 77.5c-37.4 0-36.9-55.3.2-55.3 36.8.1 38.8 55.3-.2 55.3zm-91.3-8.3l44.1-66.2h-41.7l6.1 7.2-20.5 37.2h-.3l-21-37.2 6.4-7.2h-44.9l44.1 65.8.2 19.4-7.7 8.2h42.6l-7.2-8.2zm-28.4-151.3c1.6 1.3 2.9 2.4 2.9 6.6v38.8c0 4.2-.8 5.3-2.7 6.4-.1.1-7.5 4.5-7.9 4.6h35.1c10 0 17.4-1.5 26-8.6-.6-5 .2-9.5.8-12 0-.2-1.8 1.4-2.7 3.5 0-5.7 1.6-15.4 9.6-20.5-.1 0-3.7-.8-9 1.1 2-3.1 10-7.9 10.4-7.9-8.2-26-38-22.9-32.2-22.9-30.9 0-32.6.3-39.9-4 .1.8.5 8.2 9.6 14.9zm21.5 5.5c4.6 0 23.1-3.3 23.1 17.3 0 20.7-18.4 17.3-23.1 17.3zm228.9 79.6l7 8.3V312h-.3c-5.4-14.4-42.3-41.5-45.2-50.9h-31.6l7.4 8.5v76.9l-7.2 8.3h39l-7.4-8.2v-47.4h.3c3.7 10.6 44.5 42.9 48.5 55.6h21.3v-85.2l7.4-8.3zm-106.7-96.1c-32.2 0-32.8.2-39.9-4 .1.7.5 8.3 9.6 14.9 3.1 2 2.9 4.3 2.9 9.5 1.8-1.1 3.8-2.2 6.1-3-1.1 1.1-2.7 2.7-3.5 4.5 1-1.1 7.5-5.1 14.6-3.5-1.6.3-4 1.1-6.1 2.9.1 0 2.1-1.1 7.5-.3v-4.3c4.7 0 23.1-3.4 23.1 17.3 0 20.5-18.5 17.3-19.7 17.3 5.7 4.4 5.8 12 2.2 16.3h.3c33.4 0 36.7-27.3 36.7-34 0-3.8-1.1-32-33.8-33.6z"], - "periscope": [448, 512, [], "f3da", "M370 63.6C331.4 22.6 280.5 0 226.6 0 111.9 0 18.5 96.2 18.5 214.4c0 75.1 57.8 159.8 82.7 192.7C137.8 455.5 192.6 512 226.6 512c41.6 0 112.9-94.2 120.9-105 24.6-33.1 82-118.3 82-192.6 0-56.5-21.1-110.1-59.5-150.8zM226.6 493.9c-42.5 0-190-167.3-190-279.4 0-107.4 83.9-196.3 190-196.3 100.8 0 184.7 89 184.7 196.3.1 112.1-147.4 279.4-184.7 279.4zM338 206.8c0 59.1-51.1 109.7-110.8 109.7-100.6 0-150.7-108.2-92.9-181.8v.4c0 24.5 20.1 44.4 44.8 44.4 24.7 0 44.8-19.9 44.8-44.4 0-18.2-11.1-33.8-26.9-40.7 76.6-19.2 141 39.3 141 112.4z"], - "fulcrum": [320, 512, [], "f50b", "M95.75 164.14l-35.38 43.55L25 164.14l35.38-43.55zM144.23 0l-20.54 198.18L72.72 256l51 57.82L144.23 512V300.89L103.15 256l41.08-44.89zm79.67 164.14l35.38 43.55 35.38-43.55-35.38-43.55zm-48.48 47L216.5 256l-41.08 44.89V512L196 313.82 247 256l-51-57.82L175.42 0z"], - "cloudscale": [448, 512, [], "f383", "M318.1 154l-9.4 7.6c-22.5-19.3-51.5-33.6-83.3-33.6C153.8 128 96 188.8 96 260.3c0 6.6.4 13.1 1.4 19.4-2-56 41.8-97.4 92.6-97.4 24.2 0 46.2 9.4 62.6 24.7l-25.2 20.4c-8.3-.9-16.8 1.8-23.1 8.1-11.1 11-11.1 28.9 0 40 11.1 11 28.9 11 40 0 6.3-6.3 9-14.9 8.1-23.1l75.2-88.8c6.3-6.5-3.3-15.9-9.5-9.6zm-83.8 111.5c-5.6 5.5-14.6 5.5-20.2 0-5.6-5.6-5.6-14.6 0-20.2s14.6-5.6 20.2 0 5.6 14.7 0 20.2zM224 32C100.5 32 0 132.5 0 256s100.5 224 224 224 224-100.5 224-224S347.5 32 224 32zm0 384c-88.2 0-160-71.8-160-160S135.8 96 224 96s160 71.8 160 160-71.8 160-160 160z"], - "forumbee": [448, 512, [], "f211", "M5.8 309.7C2 292.7 0 275.5 0 258.3 0 135 99.8 35 223.1 35c16.6 0 33.3 2 49.3 5.5C149 87.5 51.9 186 5.8 309.7zm392.9-189.2C385 103 369 87.8 350.9 75.2c-149.6 44.3-266.3 162.1-309.7 312 12.5 18.1 28 35.6 45.2 49 43.1-151.3 161.2-271.7 312.3-315.7zm15.8 252.7c15.2-25.1 25.4-53.7 29.5-82.8-79.4 42.9-145 110.6-187.6 190.3 30-4.4 58.9-15.3 84.6-31.3 35 13.1 70.9 24.3 107 33.6-9.3-36.5-20.4-74.5-33.5-109.8zm29.7-145.5c-2.6-19.5-7.9-38.7-15.8-56.8C290.5 216.7 182 327.5 137.1 466c18.1 7.6 37 12.5 56.6 15.2C240 367.1 330.5 274.4 444.2 227.7z"], - "mizuni": [496, 512, [], "f3cc", "M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm-80 351.9c-31.4 10.6-58.8 27.3-80 48.2V136c0-22.1 17.9-40 40-40s40 17.9 40 40v223.9zm120-9.9c-12.9-2-26.2-3.1-39.8-3.1-13.8 0-27.2 1.1-40.2 3.1V136c0-22.1 17.9-40 40-40s40 17.9 40 40v214zm120 57.7c-21.2-20.8-48.6-37.4-80-48V136c0-22.1 17.9-40 40-40s40 17.9 40 40v271.7z"], - "schlix": [448, 512, [], "f3ea", "M350.5 157.7l-54.2-46.1 73.4-39 78.3 44.2-97.5 40.9zM192 122.1l45.7-28.2 34.7 34.6-55.4 29-25-35.4zm-65.1 6.6l31.9-22.1L176 135l-36.7 22.5-12.4-28.8zm-23.3 88.2l-8.8-34.8 29.6-18.3 13.1 35.3-33.9 17.8zm-21.2-83.7l23.9-18.1 8.9 24-26.7 18.3-6.1-24.2zM59 206.5l-3.6-28.4 22.3-15.5 6.1 28.7L59 206.5zm-30.6 16.6l20.8-12.8 3.3 33.4-22.9 12-1.2-32.6zM1.4 268l19.2-10.2.4 38.2-21 8.8L1.4 268zm59.1 59.3l-28.3 8.3-1.6-46.8 25.1-10.7 4.8 49.2zM99 263.2l-31.1 13-5.2-40.8L90.1 221l8.9 42.2zM123.2 377l-41.6 5.9-8.1-63.5 35.2-10.8 14.5 68.4zm28.5-139.9l21.2 57.1-46.2 13.6-13.7-54.1 38.7-16.6zm85.7 230.5l-70.9-3.3-24.3-95.8 55.2-8.6 40 107.7zm-84.9-279.7l42.2-22.4 28 45.9-50.8 21.3-19.4-44.8zm41 94.9l61.3-18.7 52.8 86.6-79.8 11.3-34.3-79.2zm51.4-85.6l67.3-28.8 65.5 65.4-88.6 26.2-44.2-62.8z"], - "square-xing": [448, 512, ["xing-square"], "f169", "M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM93.8 320.2c-5.5 0-8.7-5.3-6-10.3l49.3-86.7c.1 0 .1-.1 0-.2l-31.4-54c-3-5.6 .2-10.1 6-10.1h46.6c5.2 0 9.5 2.9 12.9 8.7l31.9 55.3c-1.3 2.3-18 31.7-50.1 88.2c-3.5 6.2-7.7 9.1-12.6 9.1H93.8zm163.5-33.4v.2l65.5 119c2.8 5.1 .1 10.1-6 10.1H270.2c-5.5 0-9.7-2.9-12.9-8.7l-66-120.3c1.8-3.2 22.9-40.4 63.3-111.6c11.7-20.7 25.1-44.3 40.1-70.8c3.3-5.8 7.4-8.7 12.5-8.7h46.9c5.7-.1 8.8 4.7 6 10L257.3 286.8z"], - "bandcamp": [512, 512, [], "f2d5", "M256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8Zm48.2,326.1h-181L207.9,178h181Z"], - "wpforms": [448, 512, [], "f298", "M448 75.2v361.7c0 24.3-19 43.2-43.2 43.2H43.2C19.3 480 0 461.4 0 436.8V75.2C0 51.1 18.8 32 43.2 32h361.7c24 0 43.1 18.8 43.1 43.2zm-37.3 361.6V75.2c0-3-2.6-5.8-5.8-5.8h-9.3L285.3 144 224 94.1 162.8 144 52.5 69.3h-9.3c-3.2 0-5.8 2.8-5.8 5.8v361.7c0 3 2.6 5.8 5.8 5.8h361.7c3.2.1 5.8-2.7 5.8-5.8zM150.2 186v37H76.7v-37h73.5zm0 74.4v37.3H76.7v-37.3h73.5zm11.1-147.3l54-43.7H96.8l64.5 43.7zm210 72.9v37h-196v-37h196zm0 74.4v37.3h-196v-37.3h196zm-84.6-147.3l64.5-43.7H232.8l53.9 43.7zM371.3 335v37.3h-99.4V335h99.4z"], - "cloudversify": [616, 512, [], "f385", "M148.6 304c8.2 68.5 67.4 115.5 146 111.3 51.2 43.3 136.8 45.8 186.4-5.6 69.2 1.1 118.5-44.6 131.5-99.5 14.8-62.5-18.2-132.5-92.1-155.1-33-88.1-131.4-101.5-186.5-85-57.3 17.3-84.3 53.2-99.3 109.7-7.8 2.7-26.5 8.9-45 24.1 11.7 0 15.2 8.9 15.2 19.5v20.4c0 10.7-8.7 19.5-19.5 19.5h-20.2c-10.7 0-19.5-6-19.5-16.7V240H98.8C95 240 88 244.3 88 251.9v40.4c0 6.4 5.3 11.8 11.7 11.8h48.9zm227.4 8c-10.7 46.3 21.7 72.4 55.3 86.8C324.1 432.6 259.7 348 296 288c-33.2 21.6-33.7 71.2-29.2 92.9-17.9-12.4-53.8-32.4-57.4-79.8-3-39.9 21.5-75.7 57-93.9C297 191.4 369.9 198.7 400 248c-14.1-48-53.8-70.1-101.8-74.8 30.9-30.7 64.4-50.3 114.2-43.7 69.8 9.3 133.2 82.8 67.7 150.5 35-16.3 48.7-54.4 47.5-76.9l10.5 19.6c11.8 22 15.2 47.6 9.4 72-9.2 39-40.6 68.8-79.7 76.5-32.1 6.3-83.1-5.1-91.8-59.2zM128 208H88.2c-8.9 0-16.2-7.3-16.2-16.2v-39.6c0-8.9 7.3-16.2 16.2-16.2H128c8.9 0 16.2 7.3 16.2 16.2v39.6c0 8.9-7.3 16.2-16.2 16.2zM10.1 168C4.5 168 0 163.5 0 157.9v-27.8c0-5.6 4.5-10.1 10.1-10.1h27.7c5.5 0 10.1 4.5 10.1 10.1v27.8c0 5.6-4.5 10.1-10.1 10.1H10.1zM168 142.7v-21.4c0-5.1 4.2-9.3 9.3-9.3h21.4c5.1 0 9.3 4.2 9.3 9.3v21.4c0 5.1-4.2 9.3-9.3 9.3h-21.4c-5.1 0-9.3-4.2-9.3-9.3zM56 235.5v25c0 6.3-5.1 11.5-11.4 11.5H19.4C13.1 272 8 266.8 8 260.5v-25c0-6.3 5.1-11.5 11.4-11.5h25.1c6.4 0 11.5 5.2 11.5 11.5z"], - "usps": [576, 512, [], "f7e1", "M460.3 241.7c25.8-41.3 15.2-48.8-11.7-48.8h-27c-.1 0-1.5-1.4-10.9 8-11.2 5.6-37.9 6.3-37.9 8.7 0 4.5 70.3-3.1 88.1 0 9.5 1.5-1.5 20.4-4.4 32-.5 4.5 2.4 2.3 3.8.1zm-112.1 22.6c64-21.3 97.3-23.9 102-26.2 4.4-2.9-4.4-6.6-26.2-5.8-51.7 2.2-137.6 37.1-172.6 53.9l-30.7-93.3h196.6c-2.7-28.2-152.9-22.6-337.9-22.6L27 415.8c196.4-97.3 258.9-130.3 321.2-151.5zM94.7 96c253.3 53.7 330 65.7 332.1 85.2 36.4 0 45.9 0 52.4 6.6 21.1 19.7-14.6 67.7-14.6 67.7-4.4 2.9-406.4 160.2-406.4 160.2h423.1L549 96z"], - "megaport": [496, 512, [], "f5a3", "M214.5 209.6v66.2l33.5 33.5 33.3-33.3v-66.4l-33.4-33.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm145.1 414.4L367 441.6l-26-19.2v-65.5l-33.4-33.4-33.4 33.4v65.5L248 441.6l-26.1-19.2v-65.5l-33.4-33.4-33.5 33.4v65.5l-26.1 19.2-26.1-19.2v-87l59.5-59.5V188l59.5-59.5V52.9l26.1-19.2L274 52.9v75.6l59.5 59.5v87.6l59.7 59.7v87.1z"], - "magento": [448, 512, [], "f3c4", "M445.7 127.9V384l-63.4 36.5V164.7L223.8 73.1 65.2 164.7l.4 255.9L2.3 384V128.1L224.2 0l221.5 127.9zM255.6 420.5L224 438.9l-31.8-18.2v-256l-63.3 36.6.1 255.9 94.9 54.9 95.1-54.9v-256l-63.4-36.6v255.9z"], - "spotify": [496, 512, [], "f1bc", "M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm100.7 364.9c-4.2 0-6.8-1.3-10.7-3.6-62.4-37.6-135-39.2-206.7-24.5-3.9 1-9 2.6-11.9 2.6-9.7 0-15.8-7.7-15.8-15.8 0-10.3 6.1-15.2 13.6-16.8 81.9-18.1 165.6-16.5 237 26.2 6.1 3.9 9.7 7.4 9.7 16.5s-7.1 15.4-15.2 15.4zm26.9-65.6c-5.2 0-8.7-2.3-12.3-4.2-62.5-37-155.7-51.9-238.6-29.4-4.8 1.3-7.4 2.6-11.9 2.6-10.7 0-19.4-8.7-19.4-19.4s5.2-17.8 15.5-20.7c27.8-7.8 56.2-13.6 97.8-13.6 64.9 0 127.6 16.1 177 45.5 8.1 4.8 11.3 11 11.3 19.7-.1 10.8-8.5 19.5-19.4 19.5zm31-76.2c-5.2 0-8.4-1.3-12.9-3.9-71.2-42.5-198.5-52.7-280.9-29.7-3.6 1-8.1 2.6-12.9 2.6-13.2 0-23.3-10.3-23.3-23.6 0-13.6 8.4-21.3 17.4-23.9 35.2-10.3 74.6-15.2 117.5-15.2 73 0 149.5 15.2 205.4 47.8 7.8 4.5 12.9 10.7 12.9 22.6 0 13.6-11 23.3-23.2 23.3z"], - "optin-monster": [576, 512, [], "f23c", "M572.6 421.4c5.6-9.5 4.7-15.2-5.4-11.6-3-4.9-7-9.5-11.1-13.8 2.9-9.7-.7-14.2-10.8-9.2-4.6-3.2-10.3-6.5-15.9-9.2 0-15.1-11.6-11.6-17.6-5.7-10.4-1.5-18.7-.3-26.8 5.7.3-6.5.3-13 .3-19.7 12.6 0 40.2-11 45.9-36.2 1.4-6.8 1.6-13.8-.3-21.9-3-13.5-14.3-21.3-25.1-25.7-.8-5.9-7.6-14.3-14.9-15.9s-12.4 4.9-14.1 10.3c-8.5 0-19.2 2.8-21.1 8.4-5.4-.5-11.1-1.4-16.8-1.9 2.7-1.9 5.4-3.5 8.4-4.6 5.4-9.2 14.6-11.4 25.7-11.6V256c19.5-.5 43-5.9 53.8-18.1 12.7-13.8 14.6-37.3 12.4-55.1-2.4-17.3-9.7-37.6-24.6-48.1-8.4-5.9-21.6-.8-22.7 9.5-2.2 19.6 1.2 30-38.6 25.1-10.3-23.8-24.6-44.6-42.7-60C341 49.6 242.9 55.5 166.4 71.7c19.7 4.6 41.1 8.6 59.7 16.5-26.2 2.4-52.7 11.3-76.2 23.2-32.8 17-44 29.9-56.7 42.4 14.9-2.2 28.9-5.1 43.8-3.8-9.7 5.4-18.4 12.2-26.5 20-25.8.9-23.8-5.3-26.2-25.9-1.1-10.5-14.3-15.4-22.7-9.7-28.1 19.9-33.5 79.9-12.2 103.5 10.8 12.2 35.1 17.3 54.9 17.8-.3 1.1-.3 1.9-.3 2.7 10.8.5 19.5 2.7 24.6 11.6 3 1.1 5.7 2.7 8.1 4.6-5.4.5-11.1 1.4-16.5 1.9-3.3-6.6-13.7-8.1-21.1-8.1-1.6-5.7-6.5-12.2-14.1-10.3-6.8 1.9-14.1 10-14.9 15.9-22.5 9.5-30.1 26.8-25.1 47.6 5.3 24.8 33 36.2 45.9 36.2v19.7c-6.6-5-14.3-7.5-26.8-5.7-5.5-5.5-17.3-10.1-17.3 5.7-5.9 2.7-11.4 5.9-15.9 9.2-9.8-4.9-13.6-1.7-11.1 9.2-4.1 4.3-7.8 8.6-11.1 13.8-10.2-3.7-11 2.2-5.4 11.6-1.1 3.5-1.6 7-1.9 10.8-.5 31.6 44.6 64 73.5 65.1 17.3.5 34.6-8.4 43-23.5 113.2 4.9 226.7 4.1 340.2 0 8.1 15.1 25.4 24.3 42.7 23.5 29.2-1.1 74.3-33.5 73.5-65.1.2-3.7-.7-7.2-1.7-10.7zm-73.8-254c1.1-3 2.4-8.4 2.4-14.6 0-5.9 6.8-8.1 14.1-.8 11.1 11.6 14.9 40.5 13.8 51.1-4.1-13.6-13-29-30.3-35.7zm-4.6 6.7c19.5 6.2 28.6 27.6 29.7 48.9-1.1 2.7-3 5.4-4.9 7.6-5.7 5.9-15.4 10-26.2 12.2 4.3-21.3.3-47.3-12.7-63 4.9-.8 10.9-2.4 14.1-5.7zm-24.1 6.8c13.8 11.9 20 39.2 14.1 63.5-4.1.5-8.1.8-11.6.8-1.9-21.9-6.8-44-14.3-64.6 3.7.3 8.1.3 11.8.3zM47.5 203c-1.1-10.5 2.4-39.5 13.8-51.1 7-7.3 14.1-5.1 14.1.8 0 6.2 1.4 11.6 2.4 14.6-17.3 6.8-26.2 22.2-30.3 35.7zm9.7 27.6c-1.9-2.2-3.5-4.9-4.9-7.6 1.4-21.3 10.3-42.7 29.7-48.9 3.2 3.2 9.2 4.9 14.1 5.7-13 15.7-17 41.6-12.7 63-10.8-2.2-20.5-6-26.2-12.2zm47.9 14.6c-4.1 0-8.1-.3-12.7-.8-4.6-18.6-1.9-38.9 5.4-53v.3l12.2-5.1c4.9-1.9 9.7-3.8 14.9-4.9-10.7 19.7-17.4 41.3-19.8 63.5zm184-162.7c41.9 0 76.2 34 76.2 75.9 0 42.2-34.3 76.2-76.2 76.2s-76.2-34-76.2-76.2c0-41.8 34.3-75.9 76.2-75.9zm115.6 174.3c-.3 17.8-7 48.9-23 57-13.2 6.6-6.5-7.5-16.5-58.1 13.3.3 26.6.3 39.5 1.1zm-54-1.6c.8 4.9 3.8 40.3-1.6 41.9-11.6 3.5-40 4.3-51.1-1.1-4.1-3-4.6-35.9-4.3-41.1v.3c18.9-.3 38.1-.3 57 0zM278.3 309c-13 3.5-41.6 4.1-54.6-1.6-6.5-2.7-3.8-42.4-1.9-51.6 19.2-.5 38.4-.5 57.8-.8v.3c1.1 8.3 3.3 51.2-1.3 53.7zm-106.5-51.1c12.2-.8 24.6-1.4 36.8-1.6-2.4 15.4-3 43.5-4.9 52.2-1.1 6.8-4.3 6.8-9.7 4.3-21.9-9.8-27.6-35.2-22.2-54.9zm-35.4 31.3c7.8-1.1 15.7-1.9 23.5-2.7 1.6 6.2 3.8 11.9 7 17.6 10 17 44 35.7 45.1 7 6.2 14.9 40.8 12.2 54.9 10.8 15.7-1.4 23.8-1.4 26.8-14.3 12.4 4.3 30.8 4.1 44 3 11.3-.8 20.8-.5 24.6-8.9 1.1 5.1 1.9 11.6 4.6 16.8 10.8 21.3 37.3 1.4 46.8-31.6 8.6.8 17.6 1.9 26.5 2.7-.4 1.3-3.8 7.3 7.3 11.6-47.6 47-95.7 87.8-163.2 107-63.2-20.8-112.1-59.5-155.9-106.5 9.6-3.4 10.4-8.8 8-12.5zm-21.6 172.5c-3.8 17.8-21.9 29.7-39.7 28.9-19.2-.8-46.5-17-59.2-36.5-2.7-31.1 43.8-61.3 66.2-54.6 14.9 4.3 27.8 30.8 33.5 54 0 3-.3 5.7-.8 8.2zm-8.7-66c-.5-13.5-.5-27-.3-40.5h.3c2.7-1.6 5.7-3.8 7.8-6.5 6.5-1.6 13-5.1 15.1-9.2 3.3-7.1-7-7.5-5.4-12.4 2.7-1.1 5.7-2.2 7.8-3.5 29.2 29.2 58.6 56.5 97.3 77-36.8 11.3-72.4 27.6-105.9 47-1.2-18.6-7.7-35.9-16.7-51.9zm337.6 64.6c-103 3.5-206.2 4.1-309.4 0 0 .3 0 .3-.3.3v-.3h.3c35.1-21.6 72.2-39.2 112.4-50.8 11.6 5.1 23 9.5 34.9 13.2 2.2.8 2.2.8 4.3 0 14.3-4.1 28.4-9.2 42.2-15.4 41.5 11.7 78.8 31.7 115.6 53zm10.5-12.4c-35.9-19.5-73-35.9-111.9-47.6 38.1-20 71.9-47.3 103.5-76.7 2.2 1.4 4.6 2.4 7.6 3.2 0 .8.3 1.9.5 2.4-4.6 2.7-7.8 6.2-5.9 10.3 2.2 3.8 8.6 7.6 15.1 8.9 2.4 2.7 5.1 5.1 8.1 6.8 0 13.8-.3 27.6-.8 41.3l.3-.3c-9.3 15.9-15.5 37-16.5 51.7zm105.9 6.2c-12.7 19.5-40 35.7-59.2 36.5-19.3.9-40.5-13.2-40.5-37 5.7-23.2 18.9-49.7 33.5-54 22.7-6.9 69.2 23.4 66.2 54.5zM372.9 75.2c-3.8-72.1-100.8-79.7-126-23.5 44.6-24.3 90.3-15.7 126 23.5zM74.8 407.1c-15.7 1.6-49.5 25.4-49.5 43.2 0 11.6 15.7 19.5 32.2 14.9 12.2-3.2 31.1-17.6 35.9-27.3 6-11.6-3.7-32.7-18.6-30.8zm215.9-176.2c28.6 0 51.9-21.6 51.9-48.4 0-36.1-40.5-58.1-72.2-44.3 9.5 3 16.5 11.6 16.5 21.6 0 23.3-33.3 32-46.5 11.3-7.3 34.1 19.4 59.8 50.3 59.8zM68 474.1c.5 6.5 12.2 12.7 21.6 9.5 6.8-2.7 14.6-10.5 17.3-16.2 3-7-1.1-20-9.7-18.4-8.9 1.6-29.7 16.7-29.2 25.1zm433.2-67c-14.9-1.9-24.6 19.2-18.9 30.8 4.9 9.7 24.1 24.1 36.2 27.3 16.5 4.6 32.2-3.2 32.2-14.9 0-17.8-33.8-41.6-49.5-43.2zM478.8 449c-8.4-1.6-12.4 11.3-9.5 18.4 2.4 5.7 10.3 13.5 17.3 16.2 9.2 3.2 21.1-3 21.3-9.5.9-8.4-20.2-23.5-29.1-25.1z"], - "fly": [384, 512, [], "f417", "M197.8 427.8c12.9 11.7 33.7 33.3 33.2 50.7 0 .8-.1 1.6-.1 2.5-1.8 19.8-18.8 31.1-39.1 31-25-.1-39.9-16.8-38.7-35.8 1-16.2 20.5-36.7 32.4-47.6 2.3-2.1 2.7-2.7 5.6-3.6 3.4 0 3.9.3 6.7 2.8zM331.9 67.3c-16.3-25.7-38.6-40.6-63.3-52.1C243.1 4.5 214-.2 192 0c-44.1 0-71.2 13.2-81.1 17.3C57.3 45.2 26.5 87.2 28 158.6c7.1 82.2 97 176 155.8 233.8 1.7 1.6 4.5 4.5 6.2 5.1l3.3.1c2.1-.7 1.8-.5 3.5-2.1 52.3-49.2 140.7-145.8 155.9-215.7 7-39.2 3.1-72.5-20.8-112.5zM186.8 351.9c-28-51.1-65.2-130.7-69.3-189-3.4-47.5 11.4-131.2 69.3-136.7v325.7zM328.7 180c-16.4 56.8-77.3 128-118.9 170.3C237.6 298.4 275 217 277 158.4c1.6-45.9-9.8-105.8-48-131.4 88.8 18.3 115.5 98.1 99.7 153z"], - "square-bluesky": [448, 512, [], "e6a3", "M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM224 247.4c14.5-30 54-85.8 90.7-113.3c26.5-19.9 69.3-35.2 69.3 13.7c0 9.8-5.6 82.1-8.9 93.8c-11.4 40.8-53 51.2-90 44.9c64.7 11 81.2 47.5 45.6 84c-67.5 69.3-97-17.4-104.6-39.6c0 0 0 0 0 0l-.3-.9c-.9-2.6-1.4-4.1-1.8-4.1s-.9 1.5-1.8 4.1c-.1 .3-.2 .6-.3 .9c0 0 0 0 0 0c-7.6 22.2-37.1 108.8-104.6 39.6c-35.5-36.5-19.1-73 45.6-84c-37 6.3-78.6-4.1-90-44.9c-3.3-11.7-8.9-84-8.9-93.8c0-48.9 42.9-33.5 69.3-13.7c36.7 27.5 76.2 83.4 90.7 113.3z"], - "aviato": [640, 512, [], "f421", "M107.2 283.5l-19-41.8H36.1l-19 41.8H0l62.2-131.4 62.2 131.4h-17.2zm-45-98.1l-19.6 42.5h39.2l-19.6-42.5zm112.7 102.4l-62.2-131.4h17.1l45.1 96 45.1-96h17l-62.1 131.4zm80.6-4.3V156.4H271v127.1h-15.5zm209.1-115.6v115.6h-17.3V167.9h-41.2v-11.5h99.6v11.5h-41.1zM640 218.8c0 9.2-1.7 17.8-5.1 25.8-3.4 8-8.2 15.1-14.2 21.1-6 6-13.1 10.8-21.1 14.2-8 3.4-16.6 5.1-25.8 5.1s-17.8-1.7-25.8-5.1c-8-3.4-15.1-8.2-21.1-14.2-6-6-10.8-13-14.2-21.1-3.4-8-5.1-16.6-5.1-25.8s1.7-17.8 5.1-25.8c3.4-8 8.2-15.1 14.2-21.1 6-6 13-8.4 21.1-11.9 8-3.4 16.6-5.1 25.8-5.1s17.8 1.7 25.8 5.1c8 3.4 15.1 5.8 21.1 11.9 6 6 10.7 13.1 14.2 21.1 3.4 8 5.1 16.6 5.1 25.8zm-15.5 0c0-7.3-1.3-14-3.9-20.3-2.6-6.3-6.2-11.7-10.8-16.3-4.6-4.6-10-8.2-16.2-10.9-6.2-2.7-12.8-4-19.8-4s-13.6 1.3-19.8 4c-6.2 2.7-11.6 6.3-16.2 10.9-4.6 4.6-8.2 10-10.8 16.3-2.6 6.3-3.9 13.1-3.9 20.3 0 7.3 1.3 14 3.9 20.3 2.6 6.3 6.2 11.7 10.8 16.3 4.6 4.6 10 8.2 16.2 10.9 6.2 2.7 12.8 4 19.8 4s13.6-1.3 19.8-4c6.2-2.7 11.6-6.3 16.2-10.9 4.6-4.6 8.2-10 10.8-16.3 2.6-6.3 3.9-13.1 3.9-20.3zm-94.8 96.7v-6.3l88.9-10-242.9 13.4c.6-2.2 1.1-4.6 1.4-7.2.3-2 .5-4.2.6-6.5l64.8-8.1-64.9 1.9c0-.4-.1-.7-.1-1.1-2.8-17.2-25.5-23.7-25.5-23.7l-1.1-26.3h23.8l19 41.8h17.1L348.6 152l-62.2 131.4h17.1l19-41.8h23.6L345 268s-22.7 6.5-25.5 23.7c-.1.3-.1.7-.1 1.1l-64.9-1.9 64.8 8.1c.1 2.3.3 4.4.6 6.5.3 2.6.8 5 1.4 7.2L78.4 299.2l88.9 10v6.3c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4 0-6.2-4.6-11.3-10.5-12.2v-5.8l80.3 9v5.4c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-4.9l28.4 3.2v23.7h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9V323l38.3 4.3c8.1 11.4 19 13.6 19 13.6l-.1 6.7-5.1.2-.1 12.1h4.1l.1-5h5.2l.1 5h4.1l-.1-12.1-5.1-.2-.1-6.7s10.9-2.1 19-13.6l38.3-4.3v23.2h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9v-23.7l28.4-3.2v4.9c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-5.4l80.3-9v5.8c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4-.2-6.3-4.7-11.4-10.7-12.3zm-200.8-87.6l19.6-42.5 19.6 42.5h-17.9l-1.7-40.3-1.7 40.3h-17.9z"], - "itunes": [448, 512, [], "f3b4", "M223.6 80.3C129 80.3 52.5 157 52.5 251.5S129 422.8 223.6 422.8s171.2-76.7 171.2-171.2c0-94.6-76.7-171.3-171.2-171.3zm79.4 240c-3.2 13.6-13.5 21.2-27.3 23.8-12.1 2.2-22.2 2.8-31.9-5-11.8-10-12-26.4-1.4-36.8 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 3.2-3.6 2.2-2 2.2-80.8 0-5.6-2.7-7.1-8.4-6.1-4 .7-91.9 17.1-91.9 17.1-5 1.1-6.7 2.6-6.7 8.3 0 116.1.5 110.8-1.2 118.5-2.1 9-7.6 15.8-14.9 19.6-8.3 4.6-23.4 6.6-31.4 5.2-21.4-4-28.9-28.7-14.4-42.9 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 5-5.7.9-127 2.6-133.7.4-2.6 1.5-4.8 3.5-6.4 2.1-1.7 5.8-2.7 6.7-2.7 101-19 113.3-21.4 115.1-21.4 5.7-.4 9 3 9 8.7-.1 170.6.4 161.4-1 167.6zM345.2 32H102.8C45.9 32 0 77.9 0 134.8v242.4C0 434.1 45.9 480 102.8 480h242.4c57 0 102.8-45.9 102.8-102.8V134.8C448 77.9 402.1 32 345.2 32zM223.6 444c-106.3 0-192.5-86.2-192.5-192.5S117.3 59 223.6 59s192.5 86.2 192.5 192.5S329.9 444 223.6 444z"], - "cuttlefish": [440, 512, [], "f38c", "M344 305.5c-17.5 31.6-57.4 54.5-96 54.5-56.6 0-104-47.4-104-104s47.4-104 104-104c38.6 0 78.5 22.9 96 54.5 13.7-50.9 41.7-93.3 87-117.8C385.7 39.1 320.5 8 248 8 111 8 0 119 0 256s111 248 248 248c72.5 0 137.7-31.1 183-80.7-45.3-24.5-73.3-66.9-87-117.8z"], - "blogger": [448, 512, [], "f37c", "M162.4 196c4.8-4.9 6.2-5.1 36.4-5.1 27.2 0 28.1.1 32.1 2.1 5.8 2.9 8.3 7 8.3 13.6 0 5.9-2.4 10-7.6 13.4-2.8 1.8-4.5 1.9-31.1 2.1-16.4.1-29.5-.2-31.5-.8-10.3-2.9-14.1-17.7-6.6-25.3zm61.4 94.5c-53.9 0-55.8.2-60.2 4.1-3.5 3.1-5.7 9.4-5.1 13.9.7 4.7 4.8 10.1 9.2 12 2.2 1 14.1 1.7 56.3 1.2l47.9-.6 9.2-1.5c9-5.1 10.5-17.4 3.1-24.4-5.3-4.7-5-4.7-60.4-4.7zm223.4 130.1c-3.5 28.4-23 50.4-51.1 57.5-7.2 1.8-9.7 1.9-172.9 1.8-157.8 0-165.9-.1-172-1.8-8.4-2.2-15.6-5.5-22.3-10-5.6-3.8-13.9-11.8-17-16.4-3.8-5.6-8.2-15.3-10-22C.1 423 0 420.3 0 256.3 0 93.2 0 89.7 1.8 82.6 8.1 57.9 27.7 39 53 33.4c7.3-1.6 332.1-1.9 340-.3 21.2 4.3 37.9 17.1 47.6 36.4 7.7 15.3 7-1.5 7.3 180.6.2 115.8 0 164.5-.7 170.5zm-85.4-185.2c-1.1-5-4.2-9.6-7.7-11.5-1.1-.6-8-1.3-15.5-1.7-12.4-.6-13.8-.8-17.8-3.1-6.2-3.6-7.9-7.6-8-18.3 0-20.4-8.5-39.4-25.3-56.5-12-12.2-25.3-20.5-40.6-25.1-3.6-1.1-11.8-1.5-39.2-1.8-42.9-.5-52.5.4-67.1 6.2-27 10.7-46.3 33.4-53.4 62.4-1.3 5.4-1.6 14.2-1.9 64.3-.4 62.8 0 72.1 4 84.5 9.7 30.7 37.1 53.4 64.6 58.4 9.2 1.7 122.2 2.1 133.7.5 20.1-2.7 35.9-10.8 50.7-25.9 10.7-10.9 17.4-22.8 21.8-38.5 3.2-10.9 2.9-88.4 1.7-93.9z"], - "flickr": [448, 512, [], "f16e", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM144.5 319c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5zm159 0c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5z"], - "viber": [512, 512, [], "f409", "M444 49.9C431.3 38.2 379.9.9 265.3.4c0 0-135.1-8.1-200.9 52.3C27.8 89.3 14.9 143 13.5 209.5c-1.4 66.5-3.1 191.1 117 224.9h.1l-.1 51.6s-.8 20.9 13 25.1c16.6 5.2 26.4-10.7 42.3-27.8 8.7-9.4 20.7-23.2 29.8-33.7 82.2 6.9 145.3-8.9 152.5-11.2 16.6-5.4 110.5-17.4 125.7-142 15.8-128.6-7.6-209.8-49.8-246.5zM457.9 287c-12.9 104-89 110.6-103 115.1-6 1.9-61.5 15.7-131.2 11.2 0 0-52 62.7-68.2 79-5.3 5.3-11.1 4.8-11-5.7 0-6.9.4-85.7.4-85.7-.1 0-.1 0 0 0-101.8-28.2-95.8-134.3-94.7-189.8 1.1-55.5 11.6-101 42.6-131.6 55.7-50.5 170.4-43 170.4-43 96.9.4 143.3 29.6 154.1 39.4 35.7 30.6 53.9 103.8 40.6 211.1zm-139-80.8c.4 8.6-12.5 9.2-12.9.6-1.1-22-11.4-32.7-32.6-33.9-8.6-.5-7.8-13.4.7-12.9 27.9 1.5 43.4 17.5 44.8 46.2zm20.3 11.3c1-42.4-25.5-75.6-75.8-79.3-8.5-.6-7.6-13.5.9-12.9 58 4.2 88.9 44.1 87.8 92.5-.1 8.6-13.1 8.2-12.9-.3zm47 13.4c.1 8.6-12.9 8.7-12.9.1-.6-81.5-54.9-125.9-120.8-126.4-8.5-.1-8.5-12.9 0-12.9 73.7.5 133 51.4 133.7 139.2zM374.9 329v.2c-10.8 19-31 40-51.8 33.3l-.2-.3c-21.1-5.9-70.8-31.5-102.2-56.5-16.2-12.8-31-27.9-42.4-42.4-10.3-12.9-20.7-28.2-30.8-46.6-21.3-38.5-26-55.7-26-55.7-6.7-20.8 14.2-41 33.3-51.8h.2c9.2-4.8 18-3.2 23.9 3.9 0 0 12.4 14.8 17.7 22.1 5 6.8 11.7 17.7 15.2 23.8 6.1 10.9 2.3 22-3.7 26.6l-12 9.6c-6.1 4.9-5.3 14-5.3 14s17.8 67.3 84.3 84.3c0 0 9.1.8 14-5.3l9.6-12c4.6-6 15.7-9.8 26.6-3.7 14.7 8.3 33.4 21.2 45.8 32.9 7 5.7 8.6 14.4 3.8 23.6z"], - "soundcloud": [640, 512, [], "f1be", "M639.8 298.6c-1.3 23.1-11.5 44.8-28.4 60.5s-39.2 24.4-62.3 24.1h-218c-4.8 0-9.4-2-12.8-5.4s-5.3-8-5.3-12.8V130.2c-.2-4 .9-8 3.1-11.4s5.3-6.1 9-7.7c0 0 20.1-13.9 62.3-13.9c25.8 0 51.1 6.9 73.3 20.1c17.3 10.2 32.3 23.8 44.1 40.1s20 34.8 24.2 54.4c7.5-2.1 15.3-3.2 23.1-3.2c11.7-.1 23.3 2.2 34.2 6.7S606.8 226.6 615 235s14.6 18.3 18.9 29.3s6.3 22.6 5.9 34.3zm-354-153.5c.1-1 0-2-.3-2.9s-.8-1.8-1.5-2.6s-1.5-1.3-2.4-1.7s-1.9-.6-2.9-.6s-2 .2-2.9 .6s-1.7 1-2.4 1.7s-1.2 1.6-1.5 2.6s-.4 1.9-.3 2.9c-6 78.9-10.6 152.9 0 231.6c.2 1.7 1 3.3 2.3 4.5s3 1.8 4.7 1.8s3.4-.6 4.7-1.8s2.1-2.8 2.3-4.5c11.3-79.4 6.6-152 0-231.6zm-44 27.3c-.2-1.8-1.1-3.5-2.4-4.7s-3.1-1.9-5-1.9s-3.6 .7-5 1.9s-2.2 2.9-2.4 4.7c-7.9 67.9-7.9 136.5 0 204.4c.3 1.8 1.2 3.4 2.5 4.5s3.1 1.8 4.8 1.8s3.5-.6 4.8-1.8s2.2-2.8 2.5-4.5c8.8-67.8 8.8-136.5 .1-204.4zm-44.3-6.9c-.2-1.8-1-3.4-2.3-4.6s-3-1.8-4.8-1.8s-3.5 .7-4.8 1.8s-2.1 2.8-2.3 4.6c-6.7 72-10.2 139.3 0 211.1c0 1.9 .7 3.7 2.1 5s3.1 2.1 5 2.1s3.7-.7 5-2.1s2.1-3.1 2.1-5c10.5-72.8 7.3-138.2 .1-211.1zm-44 20.6c0-1.9-.8-3.8-2.1-5.2s-3.2-2.1-5.2-2.1s-3.8 .8-5.2 2.1s-2.1 3.2-2.1 5.2c-8.1 63.3-8.1 127.5 0 190.8c.2 1.8 1 3.4 2.4 4.6s3.1 1.9 4.8 1.9s3.5-.7 4.8-1.9s2.2-2.8 2.4-4.6c8.8-63.3 8.9-127.5 .3-190.8zM109 233.7c0-1.9-.8-3.8-2.1-5.1s-3.2-2.1-5.1-2.1s-3.8 .8-5.1 2.1s-2.1 3.2-2.1 5.1c-10.5 49.2-5.5 93.9 .4 143.6c.3 1.6 1.1 3.1 2.3 4.2s2.8 1.7 4.5 1.7s3.2-.6 4.5-1.7s2.1-2.5 2.3-4.2c6.6-50.4 11.6-94.1 .4-143.6zm-44.1-7.5c-.2-1.8-1.1-3.5-2.4-4.8s-3.2-1.9-5-1.9s-3.6 .7-5 1.9s-2.2 2.9-2.4 4.8c-9.3 50.2-6.2 94.4 .3 144.5c.7 7.6 13.6 7.5 14.4 0c7.2-50.9 10.5-93.8 .3-144.5zM20.3 250.8c-.2-1.8-1.1-3.5-2.4-4.8s-3.2-1.9-5-1.9s-3.6 .7-5 1.9s-2.3 2.9-2.4 4.8c-8.5 33.7-5.9 61.6 .6 95.4c.2 1.7 1 3.3 2.3 4.4s2.9 1.8 4.7 1.8s3.4-.6 4.7-1.8s2.1-2.7 2.3-4.4c7.5-34.5 11.2-61.8 .4-95.4z"], - "digg": [512, 512, [], "f1a6", "M81.7 172.3H0v174.4h132.7V96h-51v76.3zm0 133.4H50.9v-92.3h30.8v92.3zm297.2-133.4v174.4h81.8v28.5h-81.8V416H512V172.3H378.9zm81.8 133.4h-30.8v-92.3h30.8v92.3zm-235.6 41h82.1v28.5h-82.1V416h133.3V172.3H225.1v174.4zm51.2-133.3h30.8v92.3h-30.8v-92.3zM153.3 96h51.3v51h-51.3V96zm0 76.3h51.3v174.4h-51.3V172.3z"], - "tencent-weibo": [384, 512, [], "f1d5", "M72.3 495.8c1.4 19.9-27.6 22.2-29.7 2.9C31 368.8 73.7 259.2 144 185.5c-15.6-34 9.2-77.1 50.6-77.1 30.3 0 55.1 24.6 55.1 55.1 0 44-49.5 70.8-86.9 45.1-65.7 71.3-101.4 169.8-90.5 287.2zM192 .1C66.1.1-12.3 134.3 43.7 242.4 52.4 259.8 79 246.9 70 229 23.7 136.4 91 29.8 192 29.8c75.4 0 136.9 61.4 136.9 136.9 0 90.8-86.9 153.9-167.7 133.1-19.1-4.1-25.6 24.4-6.6 29.1 110.7 23.2 204-60 204-162.3C358.6 74.7 284 .1 192 .1z"], - "letterboxd": [640, 512, [], "e62d", "M521.3 128C586.9 128 640 181.1 640 246.6s-53.1 118.6-118.7 118.6c-42.5 0-79.7-22.3-100.7-55.8c11.4-18.2 18-39.7 18-62.8s-6.6-44.6-18-62.8l0 0 .8-1.2c20.8-32.3 56.8-53.9 97.9-54.6l2 0zM320 128c42.5 0 79.7 22.3 100.7 55.8c-11.4 18.2-18 39.7-18 62.8s6.6 44.6 18 62.8l0 0-.8 1.2c-20.8 32.3-56.8 53.9-97.9 54.6l-2 0c-42.5 0-79.7-22.3-100.7-55.8c11.4-18.2 18-39.7 18-62.8s-6.6-44.6-18-62.8l0 0 .8-1.2c20.8-32.3 56.8-53.9 97.9-54.6l2 0zm-201.3 0c42.5 0 79.7 22.3 100.7 55.8c-11.4 18.2-18 39.7-18 62.8s6.6 44.6 18 62.8l0 0-.8 1.2c-20.8 32.3-56.8 53.9-97.9 54.6l-2 0C53.1 365.1 0 312.1 0 246.6S53.1 128 118.7 128z"], - "symfony": [512, 512, [], "f83d", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm133.74 143.54c-11.47.41-19.4-6.45-19.77-16.87-.27-9.18 6.68-13.44 6.53-18.85-.23-6.55-10.16-6.82-12.87-6.67-39.78 1.29-48.59 57-58.89 113.85 21.43 3.15 36.65-.72 45.14-6.22 12-7.75-3.34-15.72-1.42-24.56 4-18.16 32.55-19 32 5.3-.36 17.86-25.92 41.81-77.6 35.7-10.76 59.52-18.35 115-58.2 161.72-29 34.46-58.4 39.82-71.58 40.26-24.65.85-41-12.31-41.58-29.84-.56-17 14.45-26.26 24.31-26.59 21.89-.75 30.12 25.67 14.88 34-12.09 9.71.11 12.61 2.05 12.55 10.42-.36 17.34-5.51 22.18-9 24-20 33.24-54.86 45.35-118.35 8.19-49.66 17-78 18.23-82-16.93-12.75-27.08-28.55-49.85-34.72-15.61-4.23-25.12-.63-31.81 7.83-7.92 10-5.29 23 2.37 30.7l12.63 14c15.51 17.93 24 31.87 20.8 50.62-5.06 29.93-40.72 52.9-82.88 39.94-36-11.11-42.7-36.56-38.38-50.62 7.51-24.15 42.36-11.72 34.62 13.6-2.79 8.6-4.92 8.68-6.28 13.07-4.56 14.77 41.85 28.4 51-1.39 4.47-14.52-5.3-21.71-22.25-39.85-28.47-31.75-16-65.49 2.95-79.67C204.23 140.13 251.94 197 262 205.29c37.17-109 100.53-105.46 102.43-105.53 25.16-.81 44.19 10.59 44.83 28.65.25 7.69-4.17 22.59-19.52 23.13z"], - "maxcdn": [512, 512, [], "f136", "M461.1 442.7h-97.4L415.6 200c2.3-10.2.9-19.5-4.4-25.7-5-6.1-13.7-9.6-24.2-9.6h-49.3l-59.5 278h-97.4l59.5-278h-83.4l-59.5 278H0l59.5-278-44.6-95.4H387c39.4 0 75.3 16.3 98.3 44.9 23.3 28.6 31.8 67.4 23.6 105.9l-47.8 222.6z"], - "etsy": [384, 512, [], "f2d7", "M384 348c-1.75 10.75-13.75 110-15.5 132-117.879-4.299-219.895-4.743-368.5 0v-25.5c45.457-8.948 60.627-8.019 61-35.25 1.793-72.322 3.524-244.143 0-322-1.029-28.46-12.13-26.765-61-36v-25.5c73.886 2.358 255.933 8.551 362.999-3.75-3.5 38.25-7.75 126.5-7.75 126.5H332C320.947 115.665 313.241 68 277.25 68h-137c-10.25 0-10.75 3.5-10.75 9.75V241.5c58 .5 88.5-2.5 88.5-2.5 29.77-.951 27.56-8.502 40.75-65.251h25.75c-4.407 101.351-3.91 61.829-1.75 160.25H257c-9.155-40.086-9.065-61.045-39.501-61.5 0 0-21.5-2-88-2v139c0 26 14.25 38.25 44.25 38.25H263c63.636 0 66.564-24.996 98.751-99.75H384z"], - "facebook-messenger": [512, 512, [], "f39f", "M256.55 8C116.52 8 8 110.34 8 248.57c0 72.3 29.71 134.78 78.07 177.94 8.35 7.51 6.63 11.86 8.05 58.23A19.92 19.92 0 0 0 122 502.31c52.91-23.3 53.59-25.14 62.56-22.7C337.85 521.8 504 423.7 504 248.57 504 110.34 396.59 8 256.55 8zm149.24 185.13l-73 115.57a37.37 37.37 0 0 1-53.91 9.93l-58.08-43.47a15 15 0 0 0-18 0l-78.37 59.44c-10.46 7.93-24.16-4.6-17.11-15.67l73-115.57a37.36 37.36 0 0 1 53.91-9.93l58.06 43.46a15 15 0 0 0 18 0l78.41-59.38c10.44-7.98 24.14 4.54 17.09 15.62z"], - "audible": [640, 512, [], "f373", "M640 199.9v54l-320 200L0 254v-54l320 200 320-200.1zm-194.5 72l47.1-29.4c-37.2-55.8-100.7-92.6-172.7-92.6-72 0-135.5 36.7-172.6 92.4h.3c2.5-2.3 5.1-4.5 7.7-6.7 89.7-74.4 219.4-58.1 290.2 36.3zm-220.1 18.8c16.9-11.9 36.5-18.7 57.4-18.7 34.4 0 65.2 18.4 86.4 47.6l45.4-28.4c-20.9-29.9-55.6-49.5-94.8-49.5-38.9 0-73.4 19.4-94.4 49zM103.6 161.1c131.8-104.3 318.2-76.4 417.5 62.1l.7 1 48.8-30.4C517.1 112.1 424.8 58.1 319.9 58.1c-103.5 0-196.6 53.5-250.5 135.6 9.9-10.5 22.7-23.5 34.2-32.6zm467 32.7z"], - "think-peaks": [576, 512, [], "f731", "M465.4 409.4l87.1-150.2-32-.3-55.1 95L259.2 0 23 407.4l32 .3L259.2 55.6zm-355.3-44.1h32.1l117.4-202.5L463 511.9l32.5.1-235.8-404.6z"], - "bilibili": [512, 512, [], "e3d9", "M488.6 104.1C505.3 122.2 513 143.8 511.9 169.8V372.2C511.5 398.6 502.7 420.3 485.4 437.3C468.2 454.3 446.3 463.2 419.9 464H92.02C65.57 463.2 43.81 454.2 26.74 436.8C9.682 419.4 .7667 396.5 0 368.2V169.8C.7667 143.8 9.682 122.2 26.74 104.1C43.81 87.75 65.57 78.77 92.02 78H121.4L96.05 52.19C90.3 46.46 87.42 39.19 87.42 30.4C87.42 21.6 90.3 14.34 96.05 8.603C101.8 2.868 109.1 0 117.9 0C126.7 0 134 2.868 139.8 8.603L213.1 78H301.1L375.6 8.603C381.7 2.868 389.2 0 398 0C406.8 0 414.1 2.868 419.9 8.603C425.6 14.34 428.5 21.6 428.5 30.4C428.5 39.19 425.6 46.46 419.9 52.19L394.6 78L423.9 78C450.3 78.77 471.9 87.75 488.6 104.1H488.6zM449.8 173.8C449.4 164.2 446.1 156.4 439.1 150.3C433.9 144.2 425.1 140.9 416.4 140.5H96.05C86.46 140.9 78.6 144.2 72.47 150.3C66.33 156.4 63.07 164.2 62.69 173.8V368.2C62.69 377.4 65.95 385.2 72.47 391.7C78.99 398.2 86.85 401.5 96.05 401.5H416.4C425.6 401.5 433.4 398.2 439.7 391.7C446 385.2 449.4 377.4 449.8 368.2L449.8 173.8zM185.5 216.5C191.8 222.8 195.2 230.6 195.6 239.7V273C195.2 282.2 191.9 289.9 185.8 296.2C179.6 302.5 171.8 305.7 162.2 305.7C152.6 305.7 144.7 302.5 138.6 296.2C132.5 289.9 129.2 282.2 128.8 273V239.7C129.2 230.6 132.6 222.8 138.9 216.5C145.2 210.2 152.1 206.9 162.2 206.5C171.4 206.9 179.2 210.2 185.5 216.5H185.5zM377 216.5C383.3 222.8 386.7 230.6 387.1 239.7V273C386.7 282.2 383.4 289.9 377.3 296.2C371.2 302.5 363.3 305.7 353.7 305.7C344.1 305.7 336.3 302.5 330.1 296.2C323.1 289.9 320.7 282.2 320.4 273V239.7C320.7 230.6 324.1 222.8 330.4 216.5C336.7 210.2 344.5 206.9 353.7 206.5C362.9 206.9 370.7 210.2 377 216.5H377z"], - "erlang": [640, 512, [], "f39d", "M87.2 53.5H0v405h100.4c-49.7-52.6-78.8-125.3-78.7-212.1-.1-76.7 24-142.7 65.5-192.9zm238.2 9.7c-45.9.1-85.1 33.5-89.2 83.2h169.9c-1.1-49.7-34.5-83.1-80.7-83.2zm230.7-9.6h.3l-.1-.1zm.3 0c31.4 42.7 48.7 97.5 46.2 162.7.5 6 .5 11.7 0 24.1H230.2c-.2 109.7 38.9 194.9 138.6 195.3 68.5-.3 118-51 151.9-106.1l96.4 48.2c-17.4 30.9-36.5 57.8-57.9 80.8H640v-405z"], - "x-twitter": [512, 512, [], "e61b", "M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z"], - "cotton-bureau": [512, 512, [], "f89e", "M474.31 330.41c-23.66 91.85-94.23 144.59-201.9 148.35V429.6c0-48 26.41-74.39 74.39-74.39 62 0 99.2-37.2 99.2-99.21 0-61.37-36.53-98.28-97.38-99.06-33-69.32-146.5-64.65-177.24 0C110.52 157.72 74 194.63 74 256c0 62.13 37.27 99.41 99.4 99.41 48 0 74.55 26.23 74.55 74.39V479c-134.43-5-211.1-85.07-211.1-223 0-141.82 81.35-223.2 223.2-223.2 114.77 0 189.84 53.2 214.69 148.81H500C473.88 71.51 388.22 8 259.82 8 105 8 12 101.19 12 255.82 12 411.14 105.19 504.34 259.82 504c128.27 0 213.87-63.81 239.67-173.59zM357 182.33c41.37 3.45 64.2 29 64.2 73.67 0 48-26.43 74.41-74.4 74.41-28.61 0-49.33-9.59-61.59-27.33 83.06-16.55 75.59-99.67 71.79-120.75zm-81.68 97.36c-2.46-10.34-16.33-87 56.23-97 2.27 10.09 16.52 87.11-56.26 97zM260 132c28.61 0 49 9.67 61.44 27.61-28.36 5.48-49.36 20.59-61.59 43.45-12.23-22.86-33.23-38-61.6-43.45 12.41-17.69 33.27-27.35 61.57-27.35zm-71.52 50.72c73.17 10.57 58.91 86.81 56.49 97-72.41-9.84-59-86.95-56.25-97zM173.2 330.41c-48 0-74.4-26.4-74.4-74.41 0-44.36 22.86-70 64.22-73.67-6.75 37.2-1.38 106.53 71.65 120.75-12.14 17.63-32.84 27.3-61.14 27.3zm53.21 12.39A80.8 80.8 0 0 0 260 309.25c7.77 14.49 19.33 25.54 33.82 33.55a80.28 80.28 0 0 0-33.58 33.83c-8-14.5-19.07-26.23-33.56-33.83z"], - "dashcube": [448, 512, [], "f210", "M326.6 104H110.4c-51.1 0-91.2 43.3-91.2 93.5V427c0 50.5 40.1 85 91.2 85h227.2c51.1 0 91.2-34.5 91.2-85V0L326.6 104zM153.9 416.5c-17.7 0-32.4-15.1-32.4-32.8V240.8c0-17.7 14.7-32.5 32.4-32.5h140.7c17.7 0 32 14.8 32 32.5v123.5l51.1 52.3H153.9z"], - "42-group": [640, 512, ["innosoft"], "e080", "M320 96V416C341.011 416 361.818 411.861 381.23 403.821C400.641 395.78 418.28 383.995 433.138 369.138C447.995 354.28 459.78 336.641 467.821 317.23C475.861 297.818 480 277.011 480 256C480 234.989 475.861 214.182 467.821 194.771C459.78 175.359 447.995 157.72 433.138 142.863C418.28 128.005 400.641 116.22 381.23 108.179C361.818 100.139 341.011 96 320 96ZM0 256L160.002 416L320.003 256L160.002 96L0 256ZM480 256C480 277.011 484.138 297.818 492.179 317.23C500.219 336.643 512.005 354.28 526.862 369.138C541.72 383.995 559.357 395.781 578.77 403.821C598.182 411.862 618.989 416 640 416V96C597.565 96 556.869 112.858 526.862 142.863C496.857 172.869 480 213.565 480 256Z"], - "stack-exchange": [448, 512, [], "f18d", "M17.7 332.3h412.7v22c0 37.7-29.3 68-65.3 68h-19L259.3 512v-89.7H83c-36 0-65.3-30.3-65.3-68v-22zm0-23.6h412.7v-85H17.7v85zm0-109.4h412.7v-85H17.7v85zM365 0H83C47 0 17.7 30.3 17.7 67.7V90h412.7V67.7C430.3 30.3 401 0 365 0z"], - "elementor": [512, 512, [], "f430", "M.361 256C.361 397 114 511 255 511C397 511 511 397 511 256C511 116 397 2.05 255 2.05C114 2.05 .361 116 .361 256zM192 150V363H149V150H192zM234 150H362V193H234V150zM362 235V278H234V235H362zM234 320H362V363H234V320z"], - "square-pied-piper": [448, 512, ["pied-piper-square"], "e01e", "M32 419L0 479.2l.8-328C.8 85.3 54 32 120 32h327.2c-93 28.9-189.9 94.2-253.9 168.6C122.7 282 82.6 338 32 419M448 32S305.2 98.8 261.6 199.1c-23.2 53.6-28.9 118.1-71 158.6-28.9 27.8-69.8 38.2-105.3 56.3-23.2 12-66.4 40.5-84.9 66h328.4c66 0 119.3-53.3 119.3-119.2-.1 0-.1-328.8-.1-328.8z"], - "creative-commons-nd": [496, 512, [], "f4eb", "M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm94 144.3v42.5H162.1V197h180.3zm0 79.8v42.5H162.1v-42.5h180.3z"], - "palfed": [576, 512, [], "f3d8", "M384.9 193.9c0-47.4-55.2-44.2-95.4-29.8-1.3 39.4-2.5 80.7-3 119.8.7 2.8 2.6 6.2 15.1 6.2 36.8 0 83.4-42.8 83.3-96.2zm-194.5 72.2c.2 0 6.5-2.7 11.2-2.7 26.6 0 20.7 44.1-14.4 44.1-21.5 0-37.1-18.1-37.1-43 0-42 42.9-95.6 100.7-126.5 1-12.4 3-22 10.5-28.2 11.2-9 26.6-3.5 29.5 11.1 72.2-22.2 135.2 1 135.2 72 0 77.9-79.3 152.6-140.1 138.2-.1 39.4.9 74.4 2.7 100v.2c.2 3.4.6 12.5-5.3 19.1-9.6 10.6-33.4 10-36.4-22.3-4.1-44.4.2-206.1 1.4-242.5-21.5 15-58.5 50.3-58.5 75.9.2 2.5.4 4 .6 4.6zM8 181.1s-.1 37.4 38.4 37.4h30l22.4 217.2s0 44.3 44.7 44.3h288.9s44.7-.4 44.7-44.3l22.4-217.2h30s38.4 1.2 38.4-37.4c0 0 .1-37.4-38.4-37.4h-30.1c-7.3-25.6-30.2-74.3-119.4-74.3h-28V50.3s-2.7-18.4-21.1-18.4h-85.8s-21.1 0-21.1 18.4v19.1h-28.1s-105 4.2-120.5 74.3h-29S8 142.5 8 181.1z"], - "superpowers": [448, 512, [], "f2dd", "M448 32c-83.3 11-166.8 22-250 33-92 12.5-163.3 86.7-169 180-3.3 55.5 18 109.5 57.8 148.2L0 480c83.3-11 166.5-22 249.8-33 91.8-12.5 163.3-86.8 168.7-179.8 3.5-55.5-18-109.5-57.7-148.2L448 32zm-79.7 232.3c-4.2 79.5-74 139.2-152.8 134.5-79.5-4.7-140.7-71-136.3-151 4.5-79.2 74.3-139.3 153-134.5 79.3 4.7 140.5 71 136.1 151z"], - "resolving": [496, 512, [], "f3e7", "M281.2 278.2c46-13.3 49.6-23.5 44-43.4L314 195.5c-6.1-20.9-18.4-28.1-71.1-12.8L54.7 236.8l28.6 98.6 197.9-57.2zM248.5 8C131.4 8 33.2 88.7 7.2 197.5l221.9-63.9c34.8-10.2 54.2-11.7 79.3-8.2 36.3 6.1 52.7 25 61.4 55.2l10.7 37.8c8.2 28.1 1 50.6-23.5 73.6-19.4 17.4-31.2 24.5-61.4 33.2L203 351.8l220.4 27.1 9.7 34.2-48.1 13.3-286.8-37.3 23 80.2c36.8 22 80.3 34.7 126.3 34.7 137 0 248.5-111.4 248.5-248.3C497 119.4 385.5 8 248.5 8zM38.3 388.6L0 256.8c0 48.5 14.3 93.4 38.3 131.8z"], - "xbox": [512, 512, [], "f412", "M369.9 318.2c44.3 54.3 64.7 98.8 54.4 118.7-7.9 15.1-56.7 44.6-92.6 55.9-29.6 9.3-68.4 13.3-100.4 10.2-38.2-3.7-76.9-17.4-110.1-39C93.3 445.8 87 438.3 87 423.4c0-29.9 32.9-82.3 89.2-142.1 32-33.9 76.5-73.7 81.4-72.6 9.4 2.1 84.3 75.1 112.3 109.5zM188.6 143.8c-29.7-26.9-58.1-53.9-86.4-63.4-15.2-5.1-16.3-4.8-28.7 8.1-29.2 30.4-53.5 79.7-60.3 122.4-5.4 34.2-6.1 43.8-4.2 60.5 5.6 50.5 17.3 85.4 40.5 120.9 9.5 14.6 12.1 17.3 9.3 9.9-4.2-11-.3-37.5 9.5-64 14.3-39 53.9-112.9 120.3-194.4zm311.6 63.5C483.3 127.3 432.7 77 425.6 77c-7.3 0-24.2 6.5-36 13.9-23.3 14.5-41 31.4-64.3 52.8C367.7 197 427.5 283.1 448.2 346c6.8 20.7 9.7 41.1 7.4 52.3-1.7 8.5-1.7 8.5 1.4 4.6 6.1-7.7 19.9-31.3 25.4-43.5 7.4-16.2 15-40.2 18.6-58.7 4.3-22.5 3.9-70.8-.8-93.4zM141.3 43C189 40.5 251 77.5 255.6 78.4c.7.1 10.4-4.2 21.6-9.7 63.9-31.1 94-25.8 107.4-25.2-63.9-39.3-152.7-50-233.9-11.7-23.4 11.1-24 11.9-9.4 11.2z"], - "square-web-awesome-stroke": [448, 512, [], "e684", "M64 64C46.3 64 32 78.3 32 96l0 320c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32l0-320c0-17.7-14.3-32-32-32L64 64zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm235 81.6L288 224l52.2-10.4c-2.6-3.9-4.2-8.5-4.2-13.6c0-13.3 10.7-24 24-24s24 10.7 24 24c0 13-10.3 23.6-23.2 24L304.5 349.1c-5.2 11.5-16.6 18.9-29.2 18.9l-102.6 0c-12.6 0-24-7.4-29.2-18.9L87.2 224C74.3 223.6 64 213 64 200c0-13.3 10.7-24 24-24s24 10.7 24 24c0 5-1.5 9.7-4.2 13.6L160 224l53.1-46.4c-8.9-4.1-15-13.1-15-23.6c0-14.4 11.6-26 26-26s26 11.6 26 26c0 10.5-6.2 19.5-15.1 23.6z"], - "searchengin": [460, 512, [], "f3eb", "M220.6 130.3l-67.2 28.2V43.2L98.7 233.5l54.7-24.2v130.3l67.2-209.3zm-83.2-96.7l-1.3 4.7-15.2 52.9C80.6 106.7 52 145.8 52 191.5c0 52.3 34.3 95.9 83.4 105.5v53.6C57.5 340.1 0 272.4 0 191.6c0-80.5 59.8-147.2 137.4-158zm311.4 447.2c-11.2 11.2-23.1 12.3-28.6 10.5-5.4-1.8-27.1-19.9-60.4-44.4-33.3-24.6-33.6-35.7-43-56.7-9.4-20.9-30.4-42.6-57.5-52.4l-9.7-14.7c-24.7 16.9-53 26.9-81.3 28.7l2.1-6.6 15.9-49.5c46.5-11.9 80.9-54 80.9-104.2 0-54.5-38.4-102.1-96-107.1V32.3C254.4 37.4 320 106.8 320 191.6c0 33.6-11.2 64.7-29 90.4l14.6 9.6c9.8 27.1 31.5 48 52.4 57.4s32.2 9.7 56.8 43c24.6 33.2 42.7 54.9 44.5 60.3s.7 17.3-10.5 28.5zm-9.9-17.9c0-4.4-3.6-8-8-8s-8 3.6-8 8 3.6 8 8 8 8-3.6 8-8z"], - "tiktok": [448, 512, [], "e07b", "M448,209.91a210.06,210.06,0,0,1-122.77-39.25V349.38A162.55,162.55,0,1,1,185,188.31V278.2a74.62,74.62,0,1,0,52.23,71.18V0l88,0a121.18,121.18,0,0,0,1.86,22.17h0A122.18,122.18,0,0,0,381,102.39a121.43,121.43,0,0,0,67,20.14Z"], - "square-facebook": [448, 512, ["facebook-square"], "f082", "M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64h98.2V334.2H109.4V256h52.8V222.3c0-87.1 39.4-127.5 125-127.5c16.2 0 44.2 3.2 55.7 6.4V172c-6-.6-16.5-1-29.6-1c-42 0-58.2 15.9-58.2 57.2V256h83.6l-14.4 78.2H255V480H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z"], - "renren": [512, 512, [], "f18b", "M214 169.1c0 110.4-61 205.4-147.6 247.4C30 373.2 8 317.7 8 256.6 8 133.9 97.1 32.2 214 12.5v156.6zM255 504c-42.9 0-83.3-11-118.5-30.4C193.7 437.5 239.9 382.9 255 319c15.5 63.9 61.7 118.5 118.8 154.7C338.7 493 298.3 504 255 504zm190.6-87.5C359 374.5 298 279.6 298 169.1V12.5c116.9 19.7 206 121.4 206 244.1 0 61.1-22 116.6-58.4 159.9z"], - "linux": [448, 512, [], "f17c", "M220.8 123.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5.2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4.2-.8.7-.6 1.1.3 1.3 2.3 1.1 3.4 1.7zm-21.9 1.7c1.2 0 2-1.2 3-1.7 1.1-.6 3.1-.4 3.5-1.6.2-.4-.2-.9-.6-1.1-1.6-.9-3.8-.6-5.5.1-1.3.6-3.4 1.5-3.2 2.9.1 1 1.8 1.5 2.8 1.4zM420 403.8c-3.6-4-5.3-11.6-7.2-19.7-1.8-8.1-3.9-16.8-10.5-22.4-1.3-1.1-2.6-2.1-4-2.9-1.3-.8-2.7-1.5-4.1-2 9.2-27.3 5.6-54.5-3.7-79.1-11.4-30.1-31.3-56.4-46.5-74.4-17.1-21.5-33.7-41.9-33.4-72C311.1 85.4 315.7.1 234.8 0 132.4-.2 158 103.4 156.9 135.2c-1.7 23.4-6.4 41.8-22.5 64.7-18.9 22.5-45.5 58.8-58.1 96.7-6 17.9-8.8 36.1-6.2 53.3-6.5 5.8-11.4 14.7-16.6 20.2-4.2 4.3-10.3 5.9-17 8.3s-14 6-18.5 14.5c-2.1 3.9-2.8 8.1-2.8 12.4 0 3.9.6 7.9 1.2 11.8 1.2 8.1 2.5 15.7.8 20.8-5.2 14.4-5.9 24.4-2.2 31.7 3.8 7.3 11.4 10.5 20.1 12.3 17.3 3.6 40.8 2.7 59.3 12.5 19.8 10.4 39.9 14.1 55.9 10.4 11.6-2.6 21.1-9.6 25.9-20.2 12.5-.1 26.3-5.4 48.3-6.6 14.9-1.2 33.6 5.3 55.1 4.1.6 2.3 1.4 4.6 2.5 6.7v.1c8.3 16.7 23.8 24.3 40.3 23 16.6-1.3 34.1-11 48.3-27.9 13.6-16.4 36-23.2 50.9-32.2 7.4-4.5 13.4-10.1 13.9-18.3.4-8.2-4.4-17.3-15.5-29.7zM223.7 87.3c9.8-22.2 34.2-21.8 44-.4 6.5 14.2 3.6 30.9-4.3 40.4-1.6-.8-5.9-2.6-12.6-4.9 1.1-1.2 3.1-2.7 3.9-4.6 4.8-11.8-.2-27-9.1-27.3-7.3-.5-13.9 10.8-11.8 23-4.1-2-9.4-3.5-13-4.4-1-6.9-.3-14.6 2.9-21.8zM183 75.8c10.1 0 20.8 14.2 19.1 33.5-3.5 1-7.1 2.5-10.2 4.6 1.2-8.9-3.3-20.1-9.6-19.6-8.4.7-9.8 21.2-1.8 28.1 1 .8 1.9-.2-5.9 5.5-15.6-14.6-10.5-52.1 8.4-52.1zm-13.6 60.7c6.2-4.6 13.6-10 14.1-10.5 4.7-4.4 13.5-14.2 27.9-14.2 7.1 0 15.6 2.3 25.9 8.9 6.3 4.1 11.3 4.4 22.6 9.3 8.4 3.5 13.7 9.7 10.5 18.2-2.6 7.1-11 14.4-22.7 18.1-11.1 3.6-19.8 16-38.2 14.9-3.9-.2-7-1-9.6-2.1-8-3.5-12.2-10.4-20-15-8.6-4.8-13.2-10.4-14.7-15.3-1.4-4.9 0-9 4.2-12.3zm3.3 334c-2.7 35.1-43.9 34.4-75.3 18-29.9-15.8-68.6-6.5-76.5-21.9-2.4-4.7-2.4-12.7 2.6-26.4v-.2c2.4-7.6.6-16-.6-23.9-1.2-7.8-1.8-15 .9-20 3.5-6.7 8.5-9.1 14.8-11.3 10.3-3.7 11.8-3.4 19.6-9.9 5.5-5.7 9.5-12.9 14.3-18 5.1-5.5 10-8.1 17.7-6.9 8.1 1.2 15.1 6.8 21.9 16l19.6 35.6c9.5 19.9 43.1 48.4 41 68.9zm-1.4-25.9c-4.1-6.6-9.6-13.6-14.4-19.6 7.1 0 14.2-2.2 16.7-8.9 2.3-6.2 0-14.9-7.4-24.9-13.5-18.2-38.3-32.5-38.3-32.5-13.5-8.4-21.1-18.7-24.6-29.9s-3-23.3-.3-35.2c5.2-22.9 18.6-45.2 27.2-59.2 2.3-1.7.8 3.2-8.7 20.8-8.5 16.1-24.4 53.3-2.6 82.4.6-20.7 5.5-41.8 13.8-61.5 12-27.4 37.3-74.9 39.3-112.7 1.1.8 4.6 3.2 6.2 4.1 4.6 2.7 8.1 6.7 12.6 10.3 12.4 10 28.5 9.2 42.4 1.2 6.2-3.5 11.2-7.5 15.9-9 9.9-3.1 17.8-8.6 22.3-15 7.7 30.4 25.7 74.3 37.2 95.7 6.1 11.4 18.3 35.5 23.6 64.6 3.3-.1 7 .4 10.9 1.4 13.8-35.7-11.7-74.2-23.3-84.9-4.7-4.6-4.9-6.6-2.6-6.5 12.6 11.2 29.2 33.7 35.2 59 2.8 11.6 3.3 23.7.4 35.7 16.4 6.8 35.9 17.9 30.7 34.8-2.2-.1-3.2 0-4.2 0 3.2-10.1-3.9-17.6-22.8-26.1-19.6-8.6-36-8.6-38.3 12.5-12.1 4.2-18.3 14.7-21.4 27.3-2.8 11.2-3.6 24.7-4.4 39.9-.5 7.7-3.6 18-6.8 29-32.1 22.9-76.7 32.9-114.3 7.2zm257.4-11.5c-.9 16.8-41.2 19.9-63.2 46.5-13.2 15.7-29.4 24.4-43.6 25.5s-26.5-4.8-33.7-19.3c-4.7-11.1-2.4-23.1 1.1-36.3 3.7-14.2 9.2-28.8 9.9-40.6.8-15.2 1.7-28.5 4.2-38.7 2.6-10.3 6.6-17.2 13.7-21.1.3-.2.7-.3 1-.5.8 13.2 7.3 26.6 18.8 29.5 12.6 3.3 30.7-7.5 38.4-16.3 9-.3 15.7-.9 22.6 5.1 9.9 8.5 7.1 30.3 17.1 41.6 10.6 11.6 14 19.5 13.7 24.6zM173.3 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4s5.9-6.3 3.1-6.6-2.6 2.6-6 5.1c-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2s-18.7-4.8-24.9-9.7c-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5z"], - "glide": [448, 512, [], "f2a5", "M252.8 148.6c0 8.8-1.6 17.7-3.4 26.4-5.8 27.8-11.6 55.8-17.3 83.6-1.4 6.3-8.3 4.9-13.7 4.9-23.8 0-30.5-26-30.5-45.5 0-29.3 11.2-68.1 38.5-83.1 4.3-2.5 9.2-4.2 14.1-4.2 11.4 0 12.3 8.3 12.3 17.9zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-64 187c0-5.1-20.8-37.7-25.5-39.5-2.2-.9-7.2-2.3-9.6-2.3-23.1 0-38.7 10.5-58.2 21.5l-.5-.5c4.3-29.4 14.6-57.2 14.6-87.4 0-44.6-23.8-62.7-67.5-62.7-71.7 0-108 70.8-108 123.5 0 54.7 32 85 86.3 85 7.5 0 6.9-.6 6.9 2.3-10.5 80.3-56.5 82.9-56.5 58.9 0-24.4 28-36.5 28.3-38-.2-7.6-29.3-17.2-36.7-17.2-21.1 0-32.7 33-32.7 50.6 0 32.3 20.4 54.7 53.3 54.7 48.2 0 83.4-49.7 94.3-91.7 9.4-37.7 7-39.4 12.3-42.1 20-10.1 35.8-16.8 58.4-16.8 11.1 0 19 2.3 36.7 5.2 1.8.1 4.1-1.7 4.1-3.5z"], - "linkedin": [448, 512, [], "f08c", "M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z"], - "hubspot": [512, 512, [], "f3b2", "M267.4 211.6c-25.1 23.7-40.8 57.3-40.8 94.6 0 29.3 9.7 56.3 26 78L203.1 434c-4.4-1.6-9.1-2.5-14-2.5-10.8 0-20.9 4.2-28.5 11.8-7.6 7.6-11.8 17.8-11.8 28.6s4.2 20.9 11.8 28.5c7.6 7.6 17.8 11.6 28.5 11.6 10.8 0 20.9-3.9 28.6-11.6 7.6-7.6 11.8-17.8 11.8-28.5 0-4.2-.6-8.2-1.9-12.1l50-50.2c22 16.9 49.4 26.9 79.3 26.9 71.9 0 130-58.3 130-130.2 0-65.2-47.7-119.2-110.2-128.7V116c17.5-7.4 28.2-23.8 28.2-42.9 0-26.1-20.9-47.9-47-47.9S311.2 47 311.2 73.1c0 19.1 10.7 35.5 28.2 42.9v61.2c-15.2 2.1-29.6 6.7-42.7 13.6-27.6-20.9-117.5-85.7-168.9-124.8 1.2-4.4 2-9 2-13.8C129.8 23.4 106.3 0 77.4 0 48.6 0 25.2 23.4 25.2 52.2c0 28.9 23.4 52.3 52.2 52.3 9.8 0 18.9-2.9 26.8-7.6l163.2 114.7zm89.5 163.6c-38.1 0-69-30.9-69-69s30.9-69 69-69 69 30.9 69 69-30.9 69-69 69z"], - "deploydog": [512, 512, [], "f38e", "M382.2 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.6 0-33.2 16.4-33.2 32.6zM188.5 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.7 0-33.2 16.4-33.2 32.6zM448 96c17.5 0 32 14.4 32 32v256c0 17.5-14.4 32-32 32H64c-17.5 0-32-14.4-32-32V128c0-17.5 14.4-32 32-32h384m0-32H64C28.8 64 0 92.8 0 128v256c0 35.2 28.8 64 64 64h384c35.2 0 64-28.8 64-64V128c0-35.2-28.8-64-64-64z"], - "twitch": [512, 512, [], "f1e8", "M391.17,103.47H352.54v109.7h38.63ZM285,103H246.37V212.75H285ZM120.83,0,24.31,91.42V420.58H140.14V512l96.53-91.42h77.25L487.69,256V0ZM449.07,237.75l-77.22,73.12H294.61l-67.6,64v-64H140.14V36.58H449.07Z"], - "flutter": [448, 512, [], "e694", "M429.5 236.3L291.7 374.1 429.5 512H272l-59.1-59.1-78.8-78.8L272 236.3H429.5zM272 0L16 256l78.8 78.8L429.5 0H272z"], - "ravelry": [512, 512, [], "f2d9", "M498.252,234.223c-1.208-10.34-1.7-20.826-3.746-31a310.306,310.306,0,0,0-9.622-36.6,184.068,184.068,0,0,0-30.874-57.5,251.154,251.154,0,0,0-18.818-21.689,237.362,237.362,0,0,0-47.113-36.116A240.8,240.8,0,0,0,331.356,26.65c-11.018-3.1-22.272-5.431-33.515-7.615-6.78-1.314-13.749-1.667-20.627-2.482-.316-.036-.6-.358-.9-.553q-16.143.009-32.288.006c-2.41.389-4.808.925-7.236,1.15a179.331,179.331,0,0,0-34.256,7.1,221.5,221.5,0,0,0-39.768,16.355,281.385,281.385,0,0,0-38.08,24.158c-6.167,4.61-12.268,9.36-17.974,14.518C96.539,88.494,86.34,97.72,76.785,107.555a243.878,243.878,0,0,0-33.648,43.95,206.488,206.488,0,0,0-20.494,44.6,198.2,198.2,0,0,0-7.691,34.759A201.13,201.13,0,0,0,13.4,266.385a299.716,299.716,0,0,0,4.425,40.24,226.865,226.865,0,0,0,16.73,53.3,210.543,210.543,0,0,0,24,39.528,213.589,213.589,0,0,0,26.358,28.416A251.313,251.313,0,0,0,126.7,458.455a287.831,287.831,0,0,0,55.9,25.277,269.5,269.5,0,0,0,40.641,9.835c6.071,1.01,12.275,1.253,18.412,1.873a4.149,4.149,0,0,1,1.19.56h32.289c2.507-.389,5-.937,7.527-1.143,16.336-1.332,32.107-5.335,47.489-10.717A219.992,219.992,0,0,0,379.1,460.322c9.749-6.447,19.395-13.077,28.737-20.1,5.785-4.348,10.988-9.5,16.3-14.457,3.964-3.7,7.764-7.578,11.51-11.5a232.162,232.162,0,0,0,31.427-41.639c9.542-16.045,17.355-32.905,22.3-50.926,2.859-10.413,4.947-21.045,7.017-31.652,1.032-5.279,1.251-10.723,1.87-16.087.036-.317.358-.6.552-.9V236.005A9.757,9.757,0,0,1,498.252,234.223Zm-161.117-1.15s-16.572-2.98-28.47-2.98c-27.2,0-33.57,14.9-33.57,37.04V360.8H201.582V170.062H275.1v31.931c8.924-26.822,26.771-36.189,62.04-36.189Z"], - "mixer": [512, 512, [], "e056", "M114.57,76.07a45.71,45.71,0,0,0-67.51-6.41c-17.58,16.18-19,43.52-4.75,62.77l91.78,123L41.76,379.58c-14.23,19.25-13.11,46.59,4.74,62.77A45.71,45.71,0,0,0,114,435.94L242.89,262.7a12.14,12.14,0,0,0,0-14.23ZM470.24,379.58,377.91,255.45l91.78-123c14.22-19.25,12.83-46.59-4.75-62.77a45.71,45.71,0,0,0-67.51,6.41l-128,172.12a12.14,12.14,0,0,0,0,14.23L398,435.94a45.71,45.71,0,0,0,67.51,6.41C483.35,426.17,484.47,398.83,470.24,379.58Z"], - "square-lastfm": [448, 512, ["lastfm-square"], "f203", "M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM210.7 280.8c-1.8-5.5-3.4-10.8-5-15.9c-12.9-41.9-21-68.4-58-68.4c-22.4 0-45.1 16.1-45.1 61.2c0 35.2 18 57.2 43.3 57.2c28.6 0 47.6-21.3 47.6-21.3l11.7 31.9s-19.8 19.4-61.2 19.4c-51.3 0-79.9-30.1-79.9-85.8c0-57.9 28.6-92 82.5-92c67.9 0 79.3 35.3 96.4 88.4c1.4 4.4 2.9 8.9 4.4 13.5c8.8 26.8 24.2 46.2 61.2 46.2c24.9 0 38.1-5.5 38.1-19.1c0-17.5-16.9-21.2-40-26.4c-3.2-.7-6.5-1.4-9.9-2.2c-30.4-7.3-42.5-23.1-42.5-48c0-40 32.3-52.4 65.2-52.4c37.4 0 60.1 13.6 63 46.6l-36.7 4.4c-1.5-15.8-11-22.4-28.6-22.4c-16.1 0-26 7.3-26 19.8c0 11 4.8 17.6 20.9 21.3c2.2 .5 4.5 1 6.7 1.4c31.1 6.5 65.1 13.7 65.1 56.1c.1 36.7-30.7 50.6-76.1 50.6c-63.4 0-85.4-28.6-97.1-64.1z"], - "vimeo": [448, 512, [], "f40a", "M403.2 32H44.8C20.1 32 0 52.1 0 76.8v358.4C0 459.9 20.1 480 44.8 480h358.4c24.7 0 44.8-20.1 44.8-44.8V76.8c0-24.7-20.1-44.8-44.8-44.8zM377 180.8c-1.4 31.5-23.4 74.7-66 129.4-44 57.2-81.3 85.8-111.7 85.8-18.9 0-34.8-17.4-47.9-52.3-25.5-93.3-36.4-148-57.4-148-2.4 0-10.9 5.1-25.4 15.2l-15.2-19.6c37.3-32.8 72.9-69.2 95.2-71.2 25.2-2.4 40.7 14.8 46.5 51.7 20.7 131.2 29.9 151 67.6 91.6 13.5-21.4 20.8-37.7 21.8-48.9 3.5-33.2-25.9-30.9-45.8-22.4 15.9-52.1 46.3-77.4 91.2-76 33.3.9 49 22.5 47.1 64.7z"], - "mendeley": [640, 512, [], "f7b3", "M624.6 325.2c-12.3-12.4-29.7-19.2-48.4-17.2-43.3-1-49.7-34.9-37.5-98.8 22.8-57.5-14.9-131.5-87.4-130.8-77.4.7-81.7 82-130.9 82-48.1 0-54-81.3-130.9-82-72.9-.8-110.1 73.3-87.4 130.8 12.2 63.9 5.8 97.8-37.5 98.8-21.2-2.3-37 6.5-53 22.5-19.9 19.7-19.3 94.8 42.6 102.6 47.1 5.9 81.6-42.9 61.2-87.8-47.3-103.7 185.9-106.1 146.5-8.2-.1.1-.2.2-.3.4-26.8 42.8 6.8 97.4 58.8 95.2 52.1 2.1 85.4-52.6 58.8-95.2-.1-.2-.2-.3-.3-.4-39.4-97.9 193.8-95.5 146.5 8.2-4.6 10-6.7 21.3-5.7 33 4.9 53.4 68.7 74.1 104.9 35.2 17.8-14.8 23.1-65.6 0-88.3zm-303.9-19.1h-.6c-43.4 0-62.8-37.5-62.8-62.8 0-34.7 28.2-62.8 62.8-62.8h.6c34.7 0 62.8 28.1 62.8 62.8 0 25-19.2 62.8-62.8 62.8z"], - "uniregistry": [384, 512, [], "f404", "M192 480c39.5 0 76.2-11.8 106.8-32.2H85.3C115.8 468.2 152.5 480 192 480zm-89.1-193.1v-12.4H0v12.4c0 2.5 0 5 .1 7.4h103.1c-.2-2.4-.3-4.9-.3-7.4zm20.5 57H8.5c2.6 8.5 5.8 16.8 9.6 24.8h138.3c-12.9-5.7-24.1-14.2-33-24.8zm-17.7-34.7H1.3c.9 7.6 2.2 15 3.9 22.3h109.7c-4-6.9-7.2-14.4-9.2-22.3zm-2.8-69.3H0v17.3h102.9zm0-173.2H0v4.9h102.9zm0-34.7H0v2.5h102.9zm0 69.3H0v7.4h102.9zm0 104H0v14.8h102.9zm0-69.3H0v9.9h102.9zm0 34.6H0V183h102.9zm166.2 160.9h109.7c1.8-7.3 3.1-14.7 3.9-22.3H278.3c-2.1 7.9-5.2 15.4-9.2 22.3zm12-185.7H384V136H281.1zm0 37.2H384v-12.4H281.1zm0-74.3H384v-7.4H281.1zm0-76.7v2.5H384V32zm-203 410.9h227.7c11.8-8.7 22.7-18.6 32.2-29.7H44.9c9.6 11 21.4 21 33.2 29.7zm203-371.3H384v-4.9H281.1zm0 148.5H384v-14.8H281.1zM38.8 405.7h305.3c6.7-8.5 12.6-17.6 17.8-27.2H23c5.2 9.6 9.2 18.7 15.8 27.2zm188.8-37.1H367c3.7-8 5.8-16.2 8.5-24.8h-115c-8.8 10.7-20.1 19.2-32.9 24.8zm53.5-81.7c0 2.5-.1 5-.4 7.4h103.1c.1-2.5.2-4.9.2-7.4v-12.4H281.1zm0-29.7H384v-17.3H281.1z"], - "figma": [384, 512, [], "f799", "M14 95.7924C14 42.8877 56.8878 0 109.793 0H274.161C327.066 0 369.954 42.8877 369.954 95.7924C369.954 129.292 352.758 158.776 326.711 175.897C352.758 193.019 369.954 222.502 369.954 256.002C369.954 308.907 327.066 351.795 274.161 351.795H272.081C247.279 351.795 224.678 342.369 207.666 326.904V415.167C207.666 468.777 163.657 512 110.309 512C57.5361 512 14 469.243 14 416.207C14 382.709 31.1945 353.227 57.2392 336.105C31.1945 318.983 14 289.5 14 256.002C14 222.502 31.196 193.019 57.2425 175.897C31.196 158.776 14 129.292 14 95.7924ZM176.288 191.587H109.793C74.2172 191.587 45.3778 220.427 45.3778 256.002C45.3778 291.44 73.9948 320.194 109.381 320.416C109.518 320.415 109.655 320.415 109.793 320.415H176.288V191.587ZM207.666 256.002C207.666 291.577 236.505 320.417 272.081 320.417H274.161C309.737 320.417 338.576 291.577 338.576 256.002C338.576 220.427 309.737 191.587 274.161 191.587H272.081C236.505 191.587 207.666 220.427 207.666 256.002ZM109.793 351.795C109.655 351.795 109.518 351.794 109.381 351.794C73.9948 352.015 45.3778 380.769 45.3778 416.207C45.3778 451.652 74.6025 480.622 110.309 480.622C146.591 480.622 176.288 451.186 176.288 415.167V351.795H109.793ZM109.793 31.3778C74.2172 31.3778 45.3778 60.2173 45.3778 95.7924C45.3778 131.368 74.2172 160.207 109.793 160.207H176.288V31.3778H109.793ZM207.666 160.207H274.161C309.737 160.207 338.576 131.368 338.576 95.7924C338.576 60.2173 309.737 31.3778 274.161 31.3778H207.666V160.207Z"], - "creative-commons-remix": [496, 512, [], "f4ee", "M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm161.7 207.7l4.9 2.2v70c-7.2 3.6-63.4 27.5-67.3 28.8-6.5-1.8-113.7-46.8-137.3-56.2l-64.2 26.6-63.3-27.5v-63.8l59.3-24.8c-.7-.7-.4 5-.4-70.4l67.3-29.7L361 178.5v61.6l49.1 20.3zm-70.4 81.5v-43.8h-.4v-1.8l-113.8-46.5V295l113.8 46.9v-.4l.4.4zm7.5-57.6l39.9-16.4-36.8-15.5-39 16.4 35.9 15.5zm52.3 38.1v-43L355.2 298v43.4l44.3-19z"], - "cc-amazon-pay": [576, 512, [], "f42d", "M124.7 201.8c.1-11.8 0-23.5 0-35.3v-35.3c0-1.3.4-2 1.4-2.7 11.5-8 24.1-12.1 38.2-11.1 12.5.9 22.7 7 28.1 21.7 3.3 8.9 4.1 18.2 4.1 27.7 0 8.7-.7 17.3-3.4 25.6-5.7 17.8-18.7 24.7-35.7 23.9-11.7-.5-21.9-5-31.4-11.7-.9-.8-1.4-1.6-1.3-2.8zm154.9 14.6c4.6 1.8 9.3 2 14.1 1.5 11.6-1.2 21.9-5.7 31.3-12.5.9-.6 1.3-1.3 1.3-2.5-.1-3.9 0-7.9 0-11.8 0-4-.1-8 0-12 0-1.4-.4-2-1.8-2.2-7-.9-13.9-2.2-20.9-2.9-7-.6-14-.3-20.8 1.9-6.7 2.2-11.7 6.2-13.7 13.1-1.6 5.4-1.6 10.8.1 16.2 1.6 5.5 5.2 9.2 10.4 11.2zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zm-207.5 23.9c.4 1.7.9 3.4 1.6 5.1 16.5 40.6 32.9 81.3 49.5 121.9 1.4 3.5 1.7 6.4.2 9.9-2.8 6.2-4.9 12.6-7.8 18.7-2.6 5.5-6.7 9.5-12.7 11.2-4.2 1.1-8.5 1.3-12.9.9-2.1-.2-4.2-.7-6.3-.8-2.8-.2-4.2 1.1-4.3 4-.1 2.8-.1 5.6 0 8.3.1 4.6 1.6 6.7 6.2 7.5 4.7.8 9.4 1.6 14.2 1.7 14.3.3 25.7-5.4 33.1-17.9 2.9-4.9 5.6-10.1 7.7-15.4 19.8-50.1 39.5-100.3 59.2-150.5.6-1.5 1.1-3 1.3-4.6.4-2.4-.7-3.6-3.1-3.7-5.6-.1-11.1 0-16.7 0-3.1 0-5.3 1.4-6.4 4.3-.4 1.1-.9 2.3-1.3 3.4l-29.1 83.7c-2.1 6.1-4.2 12.1-6.5 18.6-.4-.9-.6-1.4-.8-1.9-10.8-29.9-21.6-59.9-32.4-89.8-1.7-4.7-3.5-9.5-5.3-14.2-.9-2.5-2.7-4-5.4-4-6.4-.1-12.8-.2-19.2-.1-2.2 0-3.3 1.6-2.8 3.7zM242.4 206c1.7 11.7 7.6 20.8 18 26.6 9.9 5.5 20.7 6.2 31.7 4.6 12.7-1.9 23.9-7.3 33.8-15.5.4-.3.8-.6 1.4-1 .5 3.2.9 6.2 1.5 9.2.5 2.6 2.1 4.3 4.5 4.4 4.6.1 9.1.1 13.7 0 2.3-.1 3.8-1.6 4-3.9.1-.8.1-1.6.1-2.3v-88.8c0-3.6-.2-7.2-.7-10.8-1.6-10.8-6.2-19.7-15.9-25.4-5.6-3.3-11.8-5-18.2-5.9-3-.4-6-.7-9.1-1.1h-10c-.8.1-1.6.3-2.5.3-8.2.4-16.3 1.4-24.2 3.5-5.1 1.3-10 3.2-15 4.9-3 1-4.5 3.2-4.4 6.5.1 2.8-.1 5.6 0 8.3.1 4.1 1.8 5.2 5.7 4.1 6.5-1.7 13.1-3.5 19.7-4.8 10.3-1.9 20.7-2.7 31.1-1.2 5.4.8 10.5 2.4 14.1 7 3.1 4 4.2 8.8 4.4 13.7.3 6.9.2 13.9.3 20.8 0 .4-.1.7-.2 1.2-.4 0-.8 0-1.1-.1-8.8-2.1-17.7-3.6-26.8-4.1-9.5-.5-18.9.1-27.9 3.2-10.8 3.8-19.5 10.3-24.6 20.8-4.1 8.3-4.6 17-3.4 25.8zM98.7 106.9v175.3c0 .8 0 1.7.1 2.5.2 2.5 1.7 4.1 4.1 4.2 5.9.1 11.8.1 17.7 0 2.5 0 4-1.7 4.1-4.1.1-.8.1-1.7.1-2.5v-60.7c.9.7 1.4 1.2 1.9 1.6 15 12.5 32.2 16.6 51.1 12.9 17.1-3.4 28.9-13.9 36.7-29.2 5.8-11.6 8.3-24.1 8.7-37 .5-14.3-1-28.4-6.8-41.7-7.1-16.4-18.9-27.3-36.7-30.9-2.7-.6-5.5-.8-8.2-1.2h-7c-1.2.2-2.4.3-3.6.5-11.7 1.4-22.3 5.8-31.8 12.7-2 1.4-3.9 3-5.9 4.5-.1-.5-.3-.8-.4-1.2-.4-2.3-.7-4.6-1.1-6.9-.6-3.9-2.5-5.5-6.4-5.6h-9.7c-5.9-.1-6.9 1-6.9 6.8zM493.6 339c-2.7-.7-5.1 0-7.6 1-43.9 18.4-89.5 30.2-136.8 35.8-14.5 1.7-29.1 2.8-43.7 3.2-26.6.7-53.2-.8-79.6-4.3-17.8-2.4-35.5-5.7-53-9.9-37-8.9-72.7-21.7-106.7-38.8-8.8-4.4-17.4-9.3-26.1-14-3.8-2.1-6.2-1.5-8.2 2.1v1.7c1.2 1.6 2.2 3.4 3.7 4.8 36 32.2 76.6 56.5 122 72.9 21.9 7.9 44.4 13.7 67.3 17.5 14 2.3 28 3.8 42.2 4.5 3 .1 6 .2 9 .4.7 0 1.4.2 2.1.3h17.7c.7-.1 1.4-.3 2.1-.3 14.9-.4 29.8-1.8 44.6-4 21.4-3.2 42.4-8.1 62.9-14.7 29.6-9.6 57.7-22.4 83.4-40.1 2.8-1.9 5.7-3.8 8-6.2 4.3-4.4 2.3-10.4-3.3-11.9zm50.4-27.7c-.8-4.2-4-5.8-7.6-7-5.7-1.9-11.6-2.8-17.6-3.3-11-.9-22-.4-32.8 1.6-12 2.2-23.4 6.1-33.5 13.1-1.2.8-2.4 1.8-3.1 3-.6.9-.7 2.3-.5 3.4.3 1.3 1.7 1.6 3 1.5.6 0 1.2 0 1.8-.1l19.5-2.1c9.6-.9 19.2-1.5 28.8-.8 4.1.3 8.1 1.2 12 2.2 4.3 1.1 6.2 4.4 6.4 8.7.3 6.7-1.2 13.1-2.9 19.5-3.5 12.9-8.3 25.4-13.3 37.8-.3.8-.7 1.7-.8 2.5-.4 2.5 1 4 3.4 3.5 1.4-.3 3-1.1 4-2.1 3.7-3.6 7.5-7.2 10.6-11.2 10.7-13.8 17-29.6 20.7-46.6.7-3 1.2-6.1 1.7-9.1.2-4.7.2-9.6.2-14.5z"], - "dropbox": [528, 512, [], "f16b", "M264.4 116.3l-132 84.3 132 84.3-132 84.3L0 284.1l132.3-84.3L0 116.3 132.3 32l132.1 84.3zM131.6 395.7l132-84.3 132 84.3-132 84.3-132-84.3zm132.8-111.6l132-84.3-132-83.6L395.7 32 528 116.3l-132.3 84.3L528 284.8l-132.3 84.3-131.3-85z"], - "instagram": [448, 512, [], "f16d", "M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z"], - "cmplid": [640, 512, [], "e360", "M226.119,388.165a3.816,3.816,0,0,0-2.294-3.5,3.946,3.946,0,0,0-1.629-.385L72.6,384.3a19.243,19.243,0,0,1-17.924-26.025L81.585,255.692a35.72,35.72,0,0,1,32.373-26H262.525a7.07,7.07,0,0,0,6.392-5.194l10.769-41.131a3.849,3.849,0,0,0-2.237-4.937,3.755,3.755,0,0,0-1.377-.261c-.063,0-.126,0-.189.005H127.38a106.8,106.8,0,0,0-96.99,77.1L3.483,358.824A57.469,57.469,0,0,0,57.314,436q1.43,0,2.86-.072H208.742a7.131,7.131,0,0,0,6.391-5.193L225.839,389.6A3.82,3.82,0,0,0,226.119,388.165ZM306.658,81.2a3.861,3.861,0,0,0,.251-1.367A3.813,3.813,0,0,0,303.079,76c-.064,0-.128,0-.192,0h-41A7.034,7.034,0,0,0,255.5,81.2l-21.347,80.915h51.131ZM180.364,368.249H231.5L263.452,245.69H212.321ZM511.853,79.723a3.809,3.809,0,0,0-3.8-3.661c-.058,0-.137,0-.23.007h-41a7.1,7.1,0,0,0-6.584,5.129L368.91,430.634a3.54,3.54,0,0,0-.262,1.335,3.873,3.873,0,0,0,3.864,3.863c.056,0,.112,0,.169,0h41a7.068,7.068,0,0,0,6.392-5.193L511.533,81.2A3.624,3.624,0,0,0,511.853,79.723ZM324.649,384.47h-41a7.2,7.2,0,0,0-6.392,5.194L266.52,430.8a3.662,3.662,0,0,0-.268,1.374A3.783,3.783,0,0,0,270.023,436c.06,0,.166,0,.3-.012h40.905a7.036,7.036,0,0,0,6.391-5.193l10.769-41.131a3.75,3.75,0,0,0-3.445-5.208c-.108,0-.217,0-.326.014Zm311.324-308.4h-41a7.066,7.066,0,0,0-6.392,5.129l-91.46,349.436a4.073,4.073,0,0,0-.229,1.347,3.872,3.872,0,0,0,3.863,3.851c.056,0,.112,0,.169,0h40.968a7.1,7.1,0,0,0,6.392-5.193L639.68,81.2a3.624,3.624,0,0,0,.32-1.475,3.841,3.841,0,0,0-3.821-3.564c-.068,0-.137,0-.206.006ZM371.562,225.236l10.8-41.1a4.369,4.369,0,0,0,.227-1.388,3.869,3.869,0,0,0-3.861-3.842c-.057,0-.113,0-.169,0h-41.1a7.292,7.292,0,0,0-6.391,5.226l-10.834,41.1a4.417,4.417,0,0,0-.26,1.493c0,.069,0,.138,0,.206a3.776,3.776,0,0,0,3.757,3.507c.076,0,.18,0,.3-.012h41.129A7.034,7.034,0,0,0,371.562,225.236Z"], - "upwork": [641, 512, [], "e641", "M494.7 295.6c-50.3 0-83.5-38.9-92.8-53.9c11.9-95.3 46.8-125.4 92.8-125.4c45.5 0 80.9 36.4 80.9 89.7s-35.4 89.7-80.9 89.7zm0-237.8c-81.9 0-127.8 53.4-141 108.4c-14.9-28-25.9-65.5-34.5-100.3H206v141c0 51.1-23.3 89-68.8 89s-71.6-37.8-71.6-89l.5-141H.8v141c0 41.1 13.3 78.4 37.6 105.1c25 27.5 59.2 41.8 98.8 41.8c78.8 0 133.8-60.4 133.8-146.9V112.1c8.2 31.2 27.8 91.1 65.3 143.6l-35 199.4h66.4l23.1-141.3c7.6 6.3 15.7 12 24.2 17c22.2 14 47.7 21.9 73.9 22.8c0 0 4 .2 6.1 .2c81.2 0 145.9-62.9 145.9-147.8s-64.8-148.1-146-148.1z"], - "facebook": [512, 512, [62000], "f09a", "M512 256C512 114.6 397.4 0 256 0S0 114.6 0 256C0 376 82.7 476.8 194.2 504.5V334.2H141.4V256h52.8V222.3c0-87.1 39.4-127.5 125-127.5c16.2 0 44.2 3.2 55.7 6.4V172c-6-.6-16.5-1-29.6-1c-42 0-58.2 15.9-58.2 57.2V256h83.6l-14.4 78.2H287V510.1C413.8 494.8 512 386.9 512 256h0z"], - "gripfire": [384, 512, [], "f3ac", "M112.5 301.4c0-73.8 105.1-122.5 105.1-203 0-47.1-34-88-39.1-90.4.4 3.3.6 6.7.6 10C179.1 110.1 32 171.9 32 286.6c0 49.8 32.2 79.2 66.5 108.3 65.1 46.7 78.1 71.4 78.1 86.6 0 10.1-4.8 17-4.8 22.3 13.1-16.7 17.4-31.9 17.5-46.4 0-29.6-21.7-56.3-44.2-86.5-16-22.3-32.6-42.6-32.6-69.5zm205.3-39c-12.1-66.8-78-124.4-94.7-130.9l4 7.2c2.4 5.1 3.4 10.9 3.4 17.1 0 44.7-54.2 111.2-56.6 116.7-2.2 5.1-3.2 10.5-3.2 15.8 0 20.1 15.2 42.1 17.9 42.1 2.4 0 56.6-55.4 58.1-87.7 6.4 11.7 9.1 22.6 9.1 33.4 0 41.2-41.8 96.9-41.8 96.9 0 11.6 31.9 53.2 35.5 53.2 1 0 2.2-1.4 3.2-2.4 37.9-39.3 67.3-85 67.3-136.8 0-8-.7-16.2-2.2-24.6z"], - "jedi-order": [448, 512, [], "f50e", "M398.5 373.6c95.9-122.1 17.2-233.1 17.2-233.1 45.4 85.8-41.4 170.5-41.4 170.5 105-171.5-60.5-271.5-60.5-271.5 96.9 72.7-10.1 190.7-10.1 190.7 85.8 158.4-68.6 230.1-68.6 230.1s-.4-16.9-2.2-85.7c4.3 4.5 34.5 36.2 34.5 36.2l-24.2-47.4 62.6-9.1-62.6-9.1 20.2-55.5-31.4 45.9c-2.2-87.7-7.8-305.1-7.9-306.9v-2.4 1-1 2.4c0 1-5.6 219-7.9 306.9l-31.4-45.9 20.2 55.5-62.6 9.1 62.6 9.1-24.2 47.4 34.5-36.2c-1.8 68.8-2.2 85.7-2.2 85.7s-154.4-71.7-68.6-230.1c0 0-107-118.1-10.1-190.7 0 0-165.5 99.9-60.5 271.5 0 0-86.8-84.8-41.4-170.5 0 0-78.7 111 17.2 233.1 0 0-26.2-16.1-49.4-77.7 0 0 16.9 183.3 222 185.7h4.1c205-2.4 222-185.7 222-185.7-23.6 61.5-49.9 77.7-49.9 77.7z"], - "uikit": [448, 512, [], "f403", "M443.9 128v256L218 512 0 384V169.7l87.6 45.1v117l133.5 75.5 135.8-75.5v-151l-101.1-57.6 87.6-53.1L443.9 128zM308.6 49.1L223.8 0l-88.6 54.8 86 47.3 87.4-53z"], - "fort-awesome-alt": [512, 512, [], "f3a3", "M208 237.4h-22.2c-2.1 0-3.7 1.6-3.7 3.7v51.7c0 2.1 1.6 3.7 3.7 3.7H208c2.1 0 3.7-1.6 3.7-3.7v-51.7c0-2.1-1.6-3.7-3.7-3.7zm118.2 0H304c-2.1 0-3.7 1.6-3.7 3.7v51.7c0 2.1 1.6 3.7 3.7 3.7h22.2c2.1 0 3.7-1.6 3.7-3.7v-51.7c-.1-2.1-1.7-3.7-3.7-3.7zm132-125.1c-2.3-3.2-4.6-6.4-7.1-9.5-9.8-12.5-20.8-24-32.8-34.4-4.5-3.9-9.1-7.6-13.9-11.2-1.6-1.2-3.2-2.3-4.8-3.5C372 34.1 340.3 20 306 13c-16.2-3.3-32.9-5-50-5s-33.9 1.7-50 5c-34.3 7.1-66 21.2-93.3 40.8-1.6 1.1-3.2 2.3-4.8 3.5-4.8 3.6-9.4 7.3-13.9 11.2-3 2.6-5.9 5.3-8.8 8s-5.7 5.5-8.4 8.4c-5.5 5.7-10.7 11.8-15.6 18-2.4 3.1-4.8 6.3-7.1 9.5C25.2 153 8.3 202.5 8.3 256c0 2 .1 4 .1 6 .1.7.1 1.3.1 2 .1 1.3.1 2.7.2 4 0 .8.1 1.5.1 2.3 0 1.3.1 2.5.2 3.7.1.8.1 1.6.2 2.4.1 1.1.2 2.3.3 3.5 0 .8.1 1.6.2 2.4.1 1.2.3 2.4.4 3.6.1.8.2 1.5.3 2.3.1 1.3.3 2.6.5 3.9.1.6.2 1.3.3 1.9l.9 5.7c.1.6.2 1.1.3 1.7.3 1.3.5 2.7.8 4 .2.8.3 1.6.5 2.4.2 1 .5 2.1.7 3.2.2.9.4 1.7.6 2.6.2 1 .4 2 .7 3 .2.9.5 1.8.7 2.7.3 1 .5 1.9.8 2.9.3.9.5 1.8.8 2.7.2.9.5 1.9.8 2.8s.5 1.8.8 2.7c.3 1 .6 1.9.9 2.8.6 1.6 1.1 3.3 1.7 4.9.4 1 .7 1.9 1 2.8.3 1 .7 2 1.1 3 .3.8.6 1.5.9 2.3l1.2 3c.3.7.6 1.5.9 2.2.4 1 .9 2 1.3 3l.9 2.1c.5 1 .9 2 1.4 3 .3.7.6 1.3.9 2 .5 1 1 2.1 1.5 3.1.2.6.5 1.1.8 1.7.6 1.1 1.1 2.2 1.7 3.3.1.2.2.3.3.5 2.2 4.1 4.4 8.2 6.8 12.2.2.4.5.8.7 1.2.7 1.1 1.3 2.2 2 3.3.3.5.6.9.9 1.4.6 1.1 1.3 2.1 2 3.2.3.5.6.9.9 1.4.7 1.1 1.4 2.1 2.1 3.2.2.4.5.8.8 1.2.7 1.1 1.5 2.2 2.3 3.3.2.2.3.5.5.7 37.5 51.7 94.4 88.5 160 99.4.9.1 1.7.3 2.6.4 1 .2 2.1.4 3.1.5s1.9.3 2.8.4c1 .2 2 .3 3 .4.9.1 1.9.2 2.9.3s1.9.2 2.9.3 2.1.2 3.1.3c.9.1 1.8.1 2.7.2 1.1.1 2.3.1 3.4.2.8 0 1.7.1 2.5.1 1.3 0 2.6.1 3.9.1.7.1 1.4.1 2.1.1 2 .1 4 .1 6 .1s4-.1 6-.1c.7 0 1.4-.1 2.1-.1 1.3 0 2.6 0 3.9-.1.8 0 1.7-.1 2.5-.1 1.1-.1 2.3-.1 3.4-.2.9 0 1.8-.1 2.7-.2 1-.1 2.1-.2 3.1-.3s1.9-.2 2.9-.3c.9-.1 1.9-.2 2.9-.3s2-.3 3-.4 1.9-.3 2.8-.4c1-.2 2.1-.3 3.1-.5.9-.1 1.7-.3 2.6-.4 65.6-11 122.5-47.7 160.1-102.4.2-.2.3-.5.5-.7.8-1.1 1.5-2.2 2.3-3.3.2-.4.5-.8.8-1.2.7-1.1 1.4-2.1 2.1-3.2.3-.5.6-.9.9-1.4.6-1.1 1.3-2.1 2-3.2.3-.5.6-.9.9-1.4.7-1.1 1.3-2.2 2-3.3.2-.4.5-.8.7-1.2 2.4-4 4.6-8.1 6.8-12.2.1-.2.2-.3.3-.5.6-1.1 1.1-2.2 1.7-3.3.2-.6.5-1.1.8-1.7.5-1 1-2.1 1.5-3.1.3-.7.6-1.3.9-2 .5-1 1-2 1.4-3l.9-2.1c.5-1 .9-2 1.3-3 .3-.7.6-1.5.9-2.2l1.2-3c.3-.8.6-1.5.9-2.3.4-1 .7-2 1.1-3s.7-1.9 1-2.8c.6-1.6 1.2-3.3 1.7-4.9.3-1 .6-1.9.9-2.8s.5-1.8.8-2.7c.2-.9.5-1.9.8-2.8s.6-1.8.8-2.7c.3-1 .5-1.9.8-2.9.2-.9.5-1.8.7-2.7.2-1 .5-2 .7-3 .2-.9.4-1.7.6-2.6.2-1 .5-2.1.7-3.2.2-.8.3-1.6.5-2.4.3-1.3.6-2.7.8-4 .1-.6.2-1.1.3-1.7l.9-5.7c.1-.6.2-1.3.3-1.9.1-1.3.3-2.6.5-3.9.1-.8.2-1.5.3-2.3.1-1.2.3-2.4.4-3.6 0-.8.1-1.6.2-2.4.1-1.1.2-2.3.3-3.5.1-.8.1-1.6.2-2.4.1 1.7.1.5.2-.7 0-.8.1-1.5.1-2.3.1-1.3.2-2.7.2-4 .1-.7.1-1.3.1-2 .1-2 .1-4 .1-6 0-53.5-16.9-103-45.8-143.7zM448 371.5c-9.4 15.5-20.6 29.9-33.6 42.9-20.6 20.6-44.5 36.7-71.2 48-13.9 5.8-28.2 10.3-42.9 13.2v-75.8c0-58.6-88.6-58.6-88.6 0v75.8c-14.7-2.9-29-7.3-42.9-13.2-26.7-11.3-50.6-27.4-71.2-48-13-13-24.2-27.4-33.6-42.9v-71.3c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7V326h29.6V182c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7H208c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-4.8 6.5-3.7 9.5-3.7V88.1c-4.4-2-7.4-6.7-7.4-11.5 0-16.8 25.4-16.8 25.4 0 0 4.8-3 9.4-7.4 11.5V92c6.3-1.4 12.7-2.3 19.2-2.3 9.4 0 18.4 3.5 26.3 3.5 7.2 0 15.2-3.5 19.4-3.5 2.1 0 3.7 1.6 3.7 3.7v48.4c0 5.6-18.7 6.5-22.4 6.5-8.6 0-16.6-3.5-25.4-3.5-7 0-14.1 1.2-20.8 2.8v30.7c3 0 9.5-1.1 9.5 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7h22.2c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7v144h29.5v-25.8c0-2.1 1.6-3.7 3.7-3.7h22.2c2.1 0 3.7 1.6 3.7 3.7z"], - "phabricator": [496, 512, [], "f3db", "M323 262.1l-.1-13s21.7-19.8 21.1-21.2l-9.5-20c-.6-1.4-29.5-.5-29.5-.5l-9.4-9.3s.2-28.5-1.2-29.1l-20.1-9.2c-1.4-.6-20.7 21-20.7 21l-13.1-.2s-20.5-21.4-21.9-20.8l-20 8.3c-1.4.5.2 28.9.2 28.9l-9.1 9.1s-29.2-.9-29.7.4l-8.1 19.8c-.6 1.4 21 21 21 21l.1 12.9s-21.7 19.8-21.1 21.2l9.5 20c.6 1.4 29.5.5 29.5.5l9.4 9.3s-.2 31.8 1.2 32.3l20.1 8.3c1.4.6 20.7-23.5 20.7-23.5l13.1.2s20.5 23.8 21.8 23.3l20-7.5c1.4-.6-.2-32.1-.2-32.1l9.1-9.1s29.2.9 29.7-.5l8.1-19.8c.7-1.1-20.9-20.7-20.9-20.7zm-44.9-8.7c.7 17.1-12.8 31.6-30.1 32.4-17.3.8-32.1-12.5-32.8-29.6-.7-17.1 12.8-31.6 30.1-32.3 17.3-.8 32.1 12.5 32.8 29.5zm201.2-37.9l-97-97-.1.1c-75.1-73.3-195.4-72.8-269.8 1.6-50.9 51-27.8 27.9-95.7 95.3-22.3 22.3-22.3 58.7 0 81 69.9 69.4 46.4 46 97.4 97l.1-.1c75.1 73.3 195.4 72.9 269.8-1.6 51-50.9 27.9-27.9 95.3-95.3 22.3-22.3 22.3-58.7 0-81zM140.4 363.8c-59.6-59.5-59.6-156 0-215.5 59.5-59.6 156-59.5 215.6 0 59.5 59.5 59.6 156 0 215.6-59.6 59.5-156 59.4-215.6-.1z"], - "ussunnah": [482, 512, [], "f407", "M481.9 268.1A240.9 240.9 0 1 1 .1 268a240.9 240.9 0 1 1 481.9 0zM24.5 268a216.5 216.5 0 1 0 432.9 0A216.5 216.5 0 1 0 24.5 268zm385.9 63.3c-12.7 0-21.6-1.9-26.7-5.9c-5.5-4.3-8.2-12.3-8.2-23.8V205.1c0-6.5-5.2-20.2-15.7-41.2c7 0 17-9.1 30-27.2V284.5c0 11 2.4 19.4 7 25.3c3.7 4.7 10.1 8.9 19 12.6c1.2 .4 2.6 .9 4.1 1.4c2.9 .9 6.3 2.1 10.3 3.5c-1.8 2.7-8.3 4-19.9 4zm-219 0c-1.3 2.4-3.6 5.5-6.8 9.4l-18.5 22.5c-1-6.1-4-13-9.3-20.6s-9.7-11.4-13.4-11.4h-8.3H53.6c3.3-5.3 4.9-8.8 4.9-10.8c0-2-.8-5.3-2.4-9.7c-1.5-4.4-2.4-8.5-2.4-12.4c0-7.4 2.1-13.9 6.3-19.3L80 253.4l-7.1-17.7L89 215.9l6.7 16.8 8-10.3c-1.8 6.4-2.6 12.3-2.6 17.7c0 4.2 2.8 13.3 8.3 27.3l16.2 40.7H135h8 .3c2.8 .4 7.7 5 14.6 13.9c1.8 2.4 4.3 5.8 7.7 10.2c1.4 1.9 2.9 3.9 4.6 6.1c1.3-2.3 2-4.6 2-7.1c0-2-1.3-6.6-4-13.4L163 304.1c-4-10.6-6.1-17.7-6.1-21.3c0-6.3 1.9-12.3 5.8-17.9c.5-.6 1-1.3 1.5-1.9c4.4-5.6 8.8-11.1 13.3-16.5c-1.1 4.6-1.7 8.7-1.7 12c0 3.7 1.7 9.9 5.1 18.8l7.9 20.4c1.9 4.7 3 8.2 3.7 10.3h17.6 8.3l-.9-2.6c-1.4-3.9-4-7-7.7-9.3l15.6-20.1 12.3 32h13.4L245 292.2c-1.5-3.9-4-7-7.7-9.3L253 262.8 270.3 308h13.4l-11.4-29.4c-1.5-3.9-4-7-7.7-9.3l15.6-20L302.6 308h10.3 8.3 7.6c1.5 0 3-1.1 4.5-3.1s2.2-4.1 2.2-6.3V205.1c0-6.5-4.5-20.3-13.7-41.2c5.4 0 14.1-9.1 26.2-27.2V300.2c0 7.2 .6 12 1.7 14.6c1.6 3.4 5.3 6.2 11.1 8.2c-3.9 5.6-8.7 8.5-14.5 8.5H321.1h-8.3H210.5h-19zM93.4 287.3c-2.7-6.7-4-11.7-4-15c-.6 1.2-2.4 3.7-5.4 7.6c-1.4 1.9-2.2 3.7-2.2 5.3c0 2.6 .8 5.7 2.2 9.3l5.6 13.9h0c5 0 9 0 11.9-.1l-8.2-20.9zm13.5-72.4c-3-5.2-7-9.3-11.9-11.9c-3.5-1.9-5.3-4.3-5.3-7.4c0-2.4 4.6-8.6 14-18.3c.2 3.8 1.9 7.6 4.9 11.2c3.1 3.6 4.6 7 4.6 10.1c0 2.6-2.1 8-6.2 16.3zm-27.6 0c-3-5.2-7-9.3-11.9-11.9c-3.5-1.9-5.3-4.3-5.3-7.4c0-2.4 4.6-8.6 14-18.3c.2 3.8 1.9 7.6 4.9 11.2c3.1 3.6 4.6 7 4.6 10.1c0 2.6-2.1 8-6.2 16.3zm87 27.5c-3-5.2-7-9.3-11.9-11.9c-3.5-1.9-5.3-4.3-5.3-7.4c0-2.4 4.6-8.6 14-18.3c.2 3.8 1.9 7.6 4.9 11.2c3.1 3.6 4.6 7 4.6 10.1c0 2.6-2.1 8-6.2 16.3z"], - "earlybirds": [480, 512, [], "f39a", "M313.2 47.5c1.2-13 21.3-14 36.6-8.7.9.3 26.2 9.7 19 15.2-27.9-7.4-56.4 18.2-55.6-6.5zm-201 6.9c30.7-8.1 62 20 61.1-7.1-1.3-14.2-23.4-15.3-40.2-9.6-1 .3-28.7 10.5-20.9 16.7zM319.4 160c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-159.7 0c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm318.5 163.2c-9.9 24-40.7 11-63.9-1.2-13.5 69.1-58.1 111.4-126.3 124.2.3.9-2-.1 24 1 33.6 1.4 63.8-3.1 97.4-8-19.8-13.8-11.4-37.1-9.8-38.1 1.4-.9 14.7 1.7 21.6 11.5 8.6-12.5 28.4-14.8 30.2-13.6 1.6 1.1 6.6 20.9-6.9 34.6 4.7-.9 8.2-1.6 9.8-2.1 2.6-.8 17.7 11.3 3.1 13.3-14.3 2.3-22.6 5.1-47.1 10.8-45.9 10.7-85.9 11.8-117.7 12.8l1 11.6c3.8 18.1-23.4 24.3-27.6 6.2.8 17.9-27.1 21.8-28.4-1l-.5 5.3c-.7 18.4-28.4 17.9-28.3-.6-7.5 13.5-28.1 6.8-26.4-8.5l1.2-12.4c-36.7.9-59.7 3.1-61.8 3.1-20.9 0-20.9-31.6 0-31.6 2.4 0 27.7 1.3 63.2 2.8-61.1-15.5-103.7-55-114.9-118.2-25 12.8-57.5 26.8-68.2.8-10.5-25.4 21.5-42.6 66.8-73.4.7-6.6 1.6-13.3 2.7-19.8-14.4-19.6-11.6-36.3-16.1-60.4-16.8 2.4-23.2-9.1-23.6-23.1.3-7.3 2.1-14.9 2.4-15.4 1.1-1.8 10.1-2 12.7-2.6 6-31.7 50.6-33.2 90.9-34.5 19.7-21.8 45.2-41.5 80.9-48.3C203.3 29 215.2 8.5 216.2 8c1.7-.8 21.2 4.3 26.3 23.2 5.2-8.8 18.3-11.4 19.6-10.7 1.1.6 6.4 15-4.9 25.9 40.3 3.5 72.2 24.7 96 50.7 36.1 1.5 71.8 5.9 77.1 34 2.7.6 11.6.8 12.7 2.6.3.5 2.1 8.1 2.4 15.4-.5 13.9-6.8 25.4-23.6 23.1-3.2 17.3-2.7 32.9-8.7 47.7 2.4 11.7 4 23.8 4.8 36.4 37 25.4 70.3 42.5 60.3 66.9zM207.4 159.9c.9-44-37.9-42.2-78.6-40.3-21.7 1-38.9 1.9-45.5 13.9-11.4 20.9 5.9 92.9 23.2 101.2 9.8 4.7 73.4 7.9 86.3-7.1 8.2-9.4 15-49.4 14.6-67.7zm52 58.3c-4.3-12.4-6-30.1-15.3-32.7-2-.5-9-.5-11 0-10 2.8-10.8 22.1-17 37.2 15.4 0 19.3 9.7 23.7 9.7 4.3 0 6.3-11.3 19.6-14.2zm135.7-84.7c-6.6-12.1-24.8-12.9-46.5-13.9-40.2-1.9-78.2-3.8-77.3 40.3-.5 18.3 5 58.3 13.2 67.8 13 14.9 76.6 11.8 86.3 7.1 15.8-7.6 36.5-78.9 24.3-101.3z"], - "trade-federation": [496, 512, [], "f513", "M248 8.8c-137 0-248 111-248 248s111 248 248 248 248-111 248-248-111-248-248-248zm0 482.8c-129.7 0-234.8-105.1-234.8-234.8S118.3 22 248 22s234.8 105.1 234.8 234.8S377.7 491.6 248 491.6zm155.1-328.5v-46.8H209.3V198H54.2l36.7 46h117.7v196.8h48.8V245h83.3v-47h-83.3v-34.8h145.7zm-73.3 45.1v23.9h-82.9v197.4h-26.8V232.1H96.3l-20.1-23.9h143.9v-80.6h171.8V152h-145v56.2zm-161.3-69l-12.4-20.7 2.1 23.8-23.5 5.4 23.3 5.4-2.1 24 12.3-20.5 22.2 9.5-15.7-18.1 15.8-18.1zm-29.6-19.7l9.3-11.5-12.7 5.9-8-12.4 1.7 13.9-14.3 3.8 13.7 2.7-.8 14.7 6.8-12.2 13.8 5.3zm165.4 145.2l-13.1 5.6-7.3-12.2 1.3 14.2-13.9 3.2 13.9 3.2-1.2 14.2 7.3-12.2 13.1 5.5-9.4-10.7zm106.9-77.2l-20.9 9.1-12-19.6 2.2 22.7-22.3 5.4 22.2 4.9-1.8 22.9 11.5-19.6 21.2 8.8-15.1-17zM248 29.9c-125.3 0-226.9 101.6-226.9 226.9S122.7 483.7 248 483.7s226.9-101.6 226.9-226.9S373.3 29.9 248 29.9zM342.6 196v51h-83.3v195.7h-52.7V245.9H89.9l-40-49.9h157.4v-81.6h197.8v50.7H259.4V196zM248 43.2c60.3 0 114.8 25 153.6 65.2H202.5V190H45.1C73.1 104.8 153.4 43.2 248 43.2zm0 427.1c-117.9 0-213.6-95.6-213.6-213.5 0-21.2 3.1-41.8 8.9-61.1L87.1 252h114.7v196.8h64.6V253h83.3v-62.7h-83.2v-19.2h145.6v-50.8c30.8 37 49.3 84.6 49.3 136.5.1 117.9-95.5 213.5-213.4 213.5zM178.8 275l-11-21.4 1.7 24.5-23.7 3.9 23.8 5.9-3.7 23.8 13-20.9 21.5 10.8-15.8-18.8 16.9-17.1z"], - "autoprefixer": [640, 512, [], "f41c", "M318.4 16l-161 480h77.5l25.4-81.4h119.5L405 496h77.5L318.4 16zm-40.3 341.9l41.2-130.4h1.5l40.9 130.4h-83.6zM640 405l-10-31.4L462.1 358l19.4 56.5L640 405zm-462.1-47L10 373.7 0 405l158.5 9.4 19.4-56.4z"], - "whatsapp": [448, 512, [], "f232", "M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z"], - "square-upwork": [448, 512, [], "e67c", "M56 32l336 0c30.9 0 56 25.1 56 56l0 336c0 30.9-25.1 56-56 56L56 480c-30.9 0-56-25.1-56-56L0 88C0 57.1 25.1 32 56 32zM270.9 274.2c6.6-52.9 25.9-69.5 51.4-69.5c25.3 0 44.9 20.2 44.9 49.7s-19.7 49.7-44.9 49.7c-27.9 0-46.3-21.5-51.4-29.9zm-26.7-41.8c-8.2-15.5-14.3-36.3-19.2-55.6l-29.7 0-33.2 0 0 78.1c0 28.4-12.9 49.4-38.2 49.4s-39.8-20.9-39.8-49.3l.3-78.1-36.2 0 0 78.1c0 22.8 7.4 43.5 20.9 58.2c13.9 15.2 32.8 23.2 54.8 23.2c43.7 0 74.2-33.5 74.2-81.5l0-52.5c4.6 17.3 15.4 50.5 36.2 79.7L215 392.6l36.8 0 12.8-78.4c4.2 3.5 8.7 6.6 13.4 9.4c12.3 7.8 26.4 12.2 40.9 12.6l.1 0c.5 0 1.1 0 1.6 0c.6 0 1.1 0 1.7 0c45.1 0 80.9-34.9 80.9-81.9s-35.9-82.2-80.9-82.2c-45.4 0-70.9 29.7-78.1 60.1z"], - "slideshare": [512, 512, [], "f1e7", "M187.7 153.7c-34 0-61.7 25.7-61.7 57.7 0 31.7 27.7 57.7 61.7 57.7s61.7-26 61.7-57.7c0-32-27.7-57.7-61.7-57.7zm143.4 0c-34 0-61.7 25.7-61.7 57.7 0 31.7 27.7 57.7 61.7 57.7 34.3 0 61.7-26 61.7-57.7.1-32-27.4-57.7-61.7-57.7zm156.6 90l-6 4.3V49.7c0-27.4-20.6-49.7-46-49.7H76.6c-25.4 0-46 22.3-46 49.7V248c-2-1.4-4.3-2.9-6.3-4.3-15.1-10.6-25.1 4-16 17.7 18.3 22.6 53.1 50.3 106.3 72C58.3 525.1 252 555.7 248.9 457.5c0-.7.3-56.6.3-96.6 5.1 1.1 9.4 2.3 13.7 3.1 0 39.7.3 92.8.3 93.5-3.1 98.3 190.6 67.7 134.3-124 53.1-21.7 88-49.4 106.3-72 9.1-13.8-.9-28.3-16.1-17.8zm-30.5 19.2c-68.9 37.4-128.3 31.1-160.6 29.7-23.7-.9-32.6 9.1-33.7 24.9-10.3-7.7-18.6-15.5-20.3-17.1-5.1-5.4-13.7-8-27.1-7.7-31.7 1.1-89.7 7.4-157.4-28V72.3c0-34.9 8.9-45.7 40.6-45.7h317.7c30.3 0 40.9 12.9 40.9 45.7v190.6z"], - "google-play": [512, 512, [], "f3ab", "M325.3 234.3L104.6 13l280.8 161.2-60.1 60.1zM47 0C34 6.8 25.3 19.2 25.3 35.3v441.3c0 16.1 8.7 28.5 21.7 35.3l256.6-256L47 0zm425.2 225.6l-58.9-34.1-65.7 64.5 65.7 64.5 60.1-34.1c18-14.3 18-46.5-1.2-60.8zM104.6 499l280.8-161.2-60.1-60.1L104.6 499z"], - "viadeo": [448, 512, [], "f2a9", "M276.2 150.5v.7C258.3 98.6 233.6 47.8 205.4 0c43.3 29.2 67 100 70.8 150.5zm32.7 121.7c7.6 18.2 11 37.5 11 57 0 77.7-57.8 141-137.8 139.4l3.8-.3c74.2-46.7 109.3-118.6 109.3-205.1 0-38.1-6.5-75.9-18.9-112 1 11.7 1 23.7 1 35.4 0 91.8-18.1 241.6-116.6 280C95 455.2 49.4 398 49.4 329.2c0-75.6 57.4-142.3 135.4-142.3 16.8 0 33.7 3.1 49.1 9.6 1.7-15.1 6.5-29.9 13.4-43.3-19.9-7.2-41.2-10.7-62.5-10.7-161.5 0-238.7 195.9-129.9 313.7 67.9 74.6 192 73.9 259.8 0 56.6-61.3 60.9-142.4 36.4-201-12.7 8-27.1 13.9-42.2 17zM418.1 11.7c-31 66.5-81.3 47.2-115.8 80.1-12.4 12-20.6 34-20.6 50.5 0 14.1 4.5 27.1 12 38.8 47.4-11 98.3-46 118.2-90.7-.7 5.5-4.8 14.4-7.2 19.2-20.3 35.7-64.6 65.6-99.7 84.9 14.8 14.4 33.7 25.8 55 25.8 79 0 110.1-134.6 58.1-208.6z"], - "line": [512, 512, [], "f3c0", "M311 196.8v81.3c0 2.1-1.6 3.7-3.7 3.7h-13c-1.3 0-2.4-.7-3-1.5l-37.3-50.3v48.2c0 2.1-1.6 3.7-3.7 3.7h-13c-2.1 0-3.7-1.6-3.7-3.7V196.9c0-2.1 1.6-3.7 3.7-3.7h12.9c1.1 0 2.4 .6 3 1.6l37.3 50.3V196.9c0-2.1 1.6-3.7 3.7-3.7h13c2.1-.1 3.8 1.6 3.8 3.5zm-93.7-3.7h-13c-2.1 0-3.7 1.6-3.7 3.7v81.3c0 2.1 1.6 3.7 3.7 3.7h13c2.1 0 3.7-1.6 3.7-3.7V196.8c0-1.9-1.6-3.7-3.7-3.7zm-31.4 68.1H150.3V196.8c0-2.1-1.6-3.7-3.7-3.7h-13c-2.1 0-3.7 1.6-3.7 3.7v81.3c0 1 .3 1.8 1 2.5c.7 .6 1.5 1 2.5 1h52.2c2.1 0 3.7-1.6 3.7-3.7v-13c0-1.9-1.6-3.7-3.5-3.7zm193.7-68.1H327.3c-1.9 0-3.7 1.6-3.7 3.7v81.3c0 1.9 1.6 3.7 3.7 3.7h52.2c2.1 0 3.7-1.6 3.7-3.7V265c0-2.1-1.6-3.7-3.7-3.7H344V247.7h35.5c2.1 0 3.7-1.6 3.7-3.7V230.9c0-2.1-1.6-3.7-3.7-3.7H344V213.5h35.5c2.1 0 3.7-1.6 3.7-3.7v-13c-.1-1.9-1.7-3.7-3.7-3.7zM512 93.4V419.4c-.1 51.2-42.1 92.7-93.4 92.6H92.6C41.4 511.9-.1 469.8 0 418.6V92.6C.1 41.4 42.2-.1 93.4 0H419.4c51.2 .1 92.7 42.1 92.6 93.4zM441.6 233.5c0-83.4-83.7-151.3-186.4-151.3s-186.4 67.9-186.4 151.3c0 74.7 66.3 137.4 155.9 149.3c21.8 4.7 19.3 12.7 14.4 42.1c-.8 4.7-3.8 18.4 16.1 10.1s107.3-63.2 146.5-108.2c27-29.7 39.9-59.8 39.9-93.1z"], - "google-drive": [512, 512, [], "f3aa", "M339 314.9L175.4 32h161.2l163.6 282.9H339zm-137.5 23.6L120.9 480h310.5L512 338.5H201.5zM154.1 67.4L0 338.5 80.6 480 237 208.8 154.1 67.4z"], - "servicestack": [496, 512, [], "f3ec", "M88 216c81.7 10.2 273.7 102.3 304 232H0c99.5-8.1 184.5-137 88-232zm32-152c32.3 35.6 47.7 83.9 46.4 133.6C249.3 231.3 373.7 321.3 400 448h96C455.3 231.9 222.8 79.5 120 64z"], - "simplybuilt": [512, 512, [], "f215", "M481.2 64h-106c-14.5 0-26.6 11.8-26.6 26.3v39.6H163.3V90.3c0-14.5-12-26.3-26.6-26.3h-106C16.1 64 4.3 75.8 4.3 90.3v331.4c0 14.5 11.8 26.3 26.6 26.3h450.4c14.8 0 26.6-11.8 26.6-26.3V90.3c-.2-14.5-12-26.3-26.7-26.3zM149.8 355.8c-36.6 0-66.4-29.7-66.4-66.4 0-36.9 29.7-66.6 66.4-66.6 36.9 0 66.6 29.7 66.6 66.6 0 36.7-29.7 66.4-66.6 66.4zm212.4 0c-36.9 0-66.6-29.7-66.6-66.6 0-36.6 29.7-66.4 66.6-66.4 36.6 0 66.4 29.7 66.4 66.4 0 36.9-29.8 66.6-66.4 66.6z"], - "bitbucket": [512, 512, [61810], "f171", "M22.2 32A16 16 0 0 0 6 47.8a26.35 26.35 0 0 0 .2 2.8l67.9 412.1a21.77 21.77 0 0 0 21.3 18.2h325.7a16 16 0 0 0 16-13.4L505 50.7a16 16 0 0 0-13.2-18.3 24.58 24.58 0 0 0-2.8-.2L22.2 32zm285.9 297.8h-104l-28.1-147h157.3l-25.2 147z"], - "imdb": [448, 512, [], "f2d8", "M89.5 323.6H53.93V186.2H89.5V323.6zM156.1 250.5L165.2 186.2H211.5V323.6H180.5V230.9L167.1 323.6H145.8L132.8 232.9L132.7 323.6H101.5V186.2H147.6C148.1 194.5 150.4 204.3 151.9 215.6L156.1 250.5zM223.7 323.6V186.2H250.3C267.3 186.2 277.3 187.1 283.3 188.6C289.4 190.3 294 192.8 297.2 196.5C300.3 199.8 302.3 203.1 303 208.5C303.9 212.9 304.4 221.6 304.4 234.7V282.9C304.4 295.2 303.7 303.4 302.5 307.6C301.4 311.7 299.4 315 296.5 317.3C293.7 319.7 290.1 321.4 285.8 322.3C281.6 323.1 275.2 323.6 266.7 323.6H223.7zM259.2 209.7V299.1C264.3 299.1 267.5 298.1 268.6 296.8C269.7 294.8 270.4 289.2 270.4 280.1V226.8C270.4 220.6 270.3 216.6 269.7 214.8C269.4 213 268.5 211.8 267.1 210.1C265.7 210.1 263 209.7 259.2 209.7V209.7zM316.5 323.6V186.2H350.6V230.1C353.5 227.7 356.7 225.2 360.1 223.5C363.7 222 368.9 221.1 372.9 221.1C377.7 221.1 381.8 221.9 385.2 223.3C388.6 224.8 391.2 226.8 393.2 229.5C394.9 232.1 395.9 234.8 396.3 237.3C396.7 239.9 396.1 245.3 396.1 253.5V292.1C396.1 300.3 396.3 306.4 395.3 310.5C394.2 314.5 391.5 318.1 387.5 320.1C383.4 324 378.6 325.4 372.9 325.4C368.9 325.4 363.7 324.5 360.2 322.9C356.7 321.1 353.5 318.4 350.6 314.9L348.5 323.6L316.5 323.6zM361.6 302.9C362.3 301.1 362.6 296.9 362.6 290.4V255C362.6 249.4 362.3 245.5 361.5 243.8C360.8 241.9 357.8 241.1 355.7 241.1C353.7 241.1 352.3 241.9 351.6 243.4C351 244.9 350.6 248.8 350.6 255V291.4C350.6 297.5 351 301.4 351.8 303C352.4 304.7 353.9 305.5 355.9 305.5C358.1 305.5 360.1 304.7 361.6 302.9L361.6 302.9zM418.4 32.04C434.1 33.27 447.1 47.28 447.1 63.92V448.1C447.1 464.5 435.2 478.5 418.9 479.1C418.6 479.1 418.4 480 418.1 480H29.88C29.6 480 29.32 479.1 29.04 479.9C13.31 478.5 1.093 466.1 0 449.7L.0186 61.78C1.081 45.88 13.82 33.09 30.26 31.1H417.7C417.9 31.1 418.2 32.01 418.4 32.04L418.4 32.04zM30.27 41.26C19 42.01 10.02 51.01 9.257 62.4V449.7C9.63 455.1 11.91 460.2 15.7 464C19.48 467.9 24.51 470.3 29.89 470.7H418.1C429.6 469.7 438.7 459.1 438.7 448.1V63.91C438.7 58.17 436.6 52.65 432.7 48.45C428.8 44.24 423.4 41.67 417.7 41.26L30.27 41.26z"], - "deezer": [576, 512, [], "e077", "M451.46,244.71H576V172H451.46Zm0-173.89v72.67H576V70.82Zm0,275.06H576V273.2H451.46ZM0,447.09H124.54V374.42H0Zm150.47,0H275V374.42H150.47Zm150.52,0H425.53V374.42H301Zm150.47,0H576V374.42H451.46ZM301,345.88H425.53V273.2H301Zm-150.52,0H275V273.2H150.47Zm0-101.17H275V172H150.47Z"], - "raspberry-pi": [407, 512, [], "f7bb", "M372 232.5l-3.7-6.5c.1-46.4-21.4-65.3-46.5-79.7 7.6-2 15.4-3.6 17.6-13.2 13.1-3.3 15.8-9.4 17.1-15.8 3.4-2.3 14.8-8.7 13.6-19.7 6.4-4.4 10-10.1 8.1-18.1 6.9-7.5 8.7-13.7 5.8-19.4 8.3-10.3 4.6-15.6 1.1-20.9 6.2-11.2.7-23.2-16.6-21.2-6.9-10.1-21.9-7.8-24.2-7.8-2.6-3.2-6-6-16.5-4.7-6.8-6.1-14.4-5-22.3-2.1-9.3-7.3-15.5-1.4-22.6.8C271.6.6 269 5.5 263.5 7.6c-12.3-2.6-16.1 3-22 8.9l-6.9-.1c-18.6 10.8-27.8 32.8-31.1 44.1-3.3-11.3-12.5-33.3-31.1-44.1l-6.9.1c-5.9-5.9-9.7-11.5-22-8.9-5.6-2-8.1-7-19.4-3.4-4.6-1.4-8.9-4.4-13.9-4.3-2.6.1-5.5 1-8.7 3.5-7.9-3-15.5-4-22.3 2.1-10.5-1.3-14 1.4-16.5 4.7-2.3 0-17.3-2.3-24.2 7.8C21.2 16 15.8 28 22 39.2c-3.5 5.4-7.2 10.7 1.1 20.9-2.9 5.7-1.1 11.9 5.8 19.4-1.8 8 1.8 13.7 8.1 18.1-1.2 11 10.2 17.4 13.6 19.7 1.3 6.4 4 12.4 17.1 15.8 2.2 9.5 10 11.2 17.6 13.2-25.1 14.4-46.6 33.3-46.5 79.7l-3.7 6.5c-28.8 17.2-54.7 72.7-14.2 117.7 2.6 14.1 7.1 24.2 11 35.4 5.9 45.2 44.5 66.3 54.6 68.8 14.9 11.2 30.8 21.8 52.2 29.2C159 504.2 181 512 203 512h1c22.1 0 44-7.8 64.2-28.4 21.5-7.4 37.3-18 52.2-29.2 10.2-2.5 48.7-23.6 54.6-68.8 3.9-11.2 8.4-21.3 11-35.4 40.6-45.1 14.7-100.5-14-117.7zm-22.2-8c-1.5 18.7-98.9-65.1-82.1-67.9 45.7-7.5 83.6 19.2 82.1 67.9zm-43 93.1c-24.5 15.8-59.8 5.6-78.8-22.8s-14.6-64.2 9.9-80c24.5-15.8 59.8-5.6 78.8 22.8s14.6 64.2-9.9 80zM238.9 29.3c.8 4.2 1.8 6.8 2.9 7.6 5.4-5.8 9.8-11.7 16.8-17.3 0 3.3-1.7 6.8 2.5 9.4 3.7-5 8.8-9.5 15.5-13.3-3.2 5.6-.6 7.3 1.2 9.6 5.1-4.4 10-8.8 19.4-12.3-2.6 3.1-6.2 6.2-2.4 9.8 5.3-3.3 10.6-6.6 23.1-8.9-2.8 3.1-8.7 6.3-5.1 9.4 6.6-2.5 14-4.4 22.1-5.4-3.9 3.2-7.1 6.3-3.9 8.8 7.1-2.2 16.9-5.1 26.4-2.6l-6 6.1c-.7.8 14.1.6 23.9.8-3.6 5-7.2 9.7-9.3 18.2 1 1 5.8.4 10.4 0-4.7 9.9-12.8 12.3-14.7 16.6 2.9 2.2 6.8 1.6 11.2.1-3.4 6.9-10.4 11.7-16 17.3 1.4 1 3.9 1.6 9.7.9-5.2 5.5-11.4 10.5-18.8 15 1.3 1.5 5.8 1.5 10 1.6-6.7 6.5-15.3 9.9-23.4 14.2 4 2.7 6.9 2.1 10 2.1-5.7 4.7-15.4 7.1-24.4 10 1.7 2.7 3.4 3.4 7.1 4.1-9.5 5.3-23.2 2.9-27 5.6.9 2.7 3.6 4.4 6.7 5.8-15.4.9-57.3-.6-65.4-32.3 15.7-17.3 44.4-37.5 93.7-62.6-38.4 12.8-73 30-102 53.5-34.3-15.9-10.8-55.9 5.8-71.8zm-34.4 114.6c24.2-.3 54.1 17.8 54 34.7-.1 15-21 27.1-53.8 26.9-32.1-.4-53.7-15.2-53.6-29.8 0-11.9 26.2-32.5 53.4-31.8zm-123-12.8c3.7-.7 5.4-1.5 7.1-4.1-9-2.8-18.7-5.3-24.4-10 3.1 0 6 .7 10-2.1-8.1-4.3-16.7-7.7-23.4-14.2 4.2-.1 8.7 0 10-1.6-7.4-4.5-13.6-9.5-18.8-15 5.8.7 8.3.1 9.7-.9-5.6-5.6-12.7-10.4-16-17.3 4.3 1.5 8.3 2 11.2-.1-1.9-4.2-10-6.7-14.7-16.6 4.6.4 9.4 1 10.4 0-2.1-8.5-5.8-13.3-9.3-18.2 9.8-.1 24.6 0 23.9-.8l-6-6.1c9.5-2.5 19.3.4 26.4 2.6 3.2-2.5-.1-5.6-3.9-8.8 8.1 1.1 15.4 2.9 22.1 5.4 3.5-3.1-2.3-6.3-5.1-9.4 12.5 2.3 17.8 5.6 23.1 8.9 3.8-3.6.2-6.7-2.4-9.8 9.4 3.4 14.3 7.9 19.4 12.3 1.7-2.3 4.4-4 1.2-9.6 6.7 3.8 11.8 8.3 15.5 13.3 4.1-2.6 2.5-6.2 2.5-9.4 7 5.6 11.4 11.5 16.8 17.3 1.1-.8 2-3.4 2.9-7.6 16.6 15.9 40.1 55.9 6 71.8-29-23.5-63.6-40.7-102-53.5 49.3 25 78 45.3 93.7 62.6-8 31.8-50 33.2-65.4 32.3 3.1-1.4 5.8-3.2 6.7-5.8-4-2.8-17.6-.4-27.2-5.6zm60.1 24.1c16.8 2.8-80.6 86.5-82.1 67.9-1.5-48.7 36.5-75.5 82.1-67.9zM38.2 342c-23.7-18.8-31.3-73.7 12.6-98.3 26.5-7 9 107.8-12.6 98.3zm91 98.2c-13.3 7.9-45.8 4.7-68.8-27.9-15.5-27.4-13.5-55.2-2.6-63.4 16.3-9.8 41.5 3.4 60.9 25.6 16.9 20 24.6 55.3 10.5 65.7zm-26.4-119.7c-24.5-15.8-28.9-51.6-9.9-80s54.3-38.6 78.8-22.8 28.9 51.6 9.9 80c-19.1 28.4-54.4 38.6-78.8 22.8zM205 496c-29.4 1.2-58.2-23.7-57.8-32.3-.4-12.7 35.8-22.6 59.3-22 23.7-1 55.6 7.5 55.7 18.9.5 11-28.8 35.9-57.2 35.4zm58.9-124.9c.2 29.7-26.2 53.8-58.8 54-32.6.2-59.2-23.8-59.4-53.4v-.6c-.2-29.7 26.2-53.8 58.8-54 32.6-.2 59.2 23.8 59.4 53.4v.6zm82.2 42.7c-25.3 34.6-59.6 35.9-72.3 26.3-13.3-12.4-3.2-50.9 15.1-72 20.9-23.3 43.3-38.5 58.9-26.6 10.5 10.3 16.7 49.1-1.7 72.3zm22.9-73.2c-21.5 9.4-39-105.3-12.6-98.3 43.9 24.7 36.3 79.6 12.6 98.3z"], - "jira": [496, 512, [], "f7b1", "M490 241.7C417.1 169 320.6 71.8 248.5 0 83 164.9 6 241.7 6 241.7c-7.9 7.9-7.9 20.7 0 28.7C138.8 402.7 67.8 331.9 248.5 512c379.4-378 15.7-16.7 241.5-241.7 8-7.9 8-20.7 0-28.6zm-241.5 90l-76-75.7 76-75.7 76 75.7-76 75.7z"], - "docker": [640, 512, [], "f395", "M349.9 236.3h-66.1v-59.4h66.1v59.4zm0-204.3h-66.1v60.7h66.1V32zm78.2 144.8H362v59.4h66.1v-59.4zm-156.3-72.1h-66.1v60.1h66.1v-60.1zm78.1 0h-66.1v60.1h66.1v-60.1zm276.8 100c-14.4-9.7-47.6-13.2-73.1-8.4-3.3-24-16.7-44.9-41.1-63.7l-14-9.3-9.3 14c-18.4 27.8-23.4 73.6-3.7 103.8-8.7 4.7-25.8 11.1-48.4 10.7H2.4c-8.7 50.8 5.8 116.8 44 162.1 37.1 43.9 92.7 66.2 165.4 66.2 157.4 0 273.9-72.5 328.4-204.2 21.4.4 67.6.1 91.3-45.2 1.5-2.5 6.6-13.2 8.5-17.1l-13.3-8.9zm-511.1-27.9h-66v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm-78.1-72.1h-66.1v60.1h66.1v-60.1z"], - "screenpal": [512, 512, [], "e570", "M233.5 22.49C233.5 10.07 243.6 0 256 0C268.4 0 278.5 10.07 278.5 22.49C278.5 34.91 268.4 44.98 256 44.98C243.6 44.98 233.5 34.91 233.5 22.49zM313.4 259C313.4 290.7 287.7 316.4 256 316.4C224.3 316.4 198.6 290.7 198.6 259C198.6 227.3 224.3 201.6 256 201.6C287.7 201.6 313.4 227.3 313.4 259zM337.2 350C359.5 330.1 373.7 302.7 377.1 273H496.6C493.1 334.4 466.2 392.2 421.4 434.4C376.7 476.6 317.5 500.2 256 500.2C194.5 500.2 135.3 476.6 90.56 434.4C45.83 392.2 18.94 334.4 15.39 273H135.1C138.5 302.7 152.7 330.1 175 350C197.3 369.9 226.2 380.9 256.1 380.9C285.1 380.9 314.8 369.9 337.2 350zM73.14 140.3C73.54 152.7 63.81 163.1 51.39 163.5C38.97 163.9 28.59 154.2 28.18 141.8C27.78 129.3 37.52 118.9 49.94 118.5C62.35 118.1 72.74 127.9 73.14 140.3zM438.9 141C438.9 128.6 448.9 118.5 461.4 118.5C473.8 118.5 483.8 128.6 483.8 141C483.8 153.5 473.8 163.5 461.4 163.5C448.9 163.5 438.9 153.5 438.9 141zM317.9 95.27C300.6 109.1 278.7 118.1 256 118.1C233.3 118.1 211.4 109.1 194.1 95.27C176.8 80.55 165.3 60.18 161.7 37.78C176.8 31.37 192.5 26.52 208.6 23.31C208.6 35.88 213.6 47.93 222.5 56.82C231.4 65.7 243.4 70.7 256 70.7C268.6 70.7 280.6 65.7 289.5 56.82C298.4 47.93 303.4 35.88 303.4 23.31C319.5 26.52 335.2 31.37 350.3 37.78C346.7 60.18 335.2 80.55 317.9 95.27H317.9zM82.78 231C61.42 238.6 38.06 238.4 16.86 230.4C18.82 214.1 22.46 198.1 27.71 182.5C33.1 185.6 39.05 187.6 45.22 188.5C51.39 189.3 57.67 188.9 63.68 187.3C69.69 185.6 75.33 182.9 80.27 179.1C85.21 175.3 89.36 170.6 92.47 165.2C95.58 159.8 97.61 153.8 98.42 147.7C99.23 141.5 98.83 135.2 97.22 129.2C95.61 123.2 92.83 117.6 89.04 112.6C85.25 107.7 80.53 103.5 75.14 100.4C85.96 88.11 98.01 76.94 111.1 67.07C128.7 81.42 140.6 101.6 144.7 123.9C148.8 146.2 144.8 169.3 133.5 188.9C122.1 208.5 104.1 223.4 82.78 231V231zM429.2 231.1C407.9 223.5 389.9 208.5 378.5 188.9C367.2 169.3 363.3 146.2 367.4 123.9C371.5 101.7 383.4 81.54 400.9 67.19C414 77.04 426.1 88.21 436.9 100.5C426.2 106.9 418.5 117.2 415.4 129.3C412.2 141.3 413.1 154.1 420.2 164.9C426.4 175.7 436.6 183.6 448.6 186.9C460.6 190.2 473.5 188.6 484.3 182.6C489.6 198.1 493.2 214.2 495.2 230.4C473.1 238.5 450.6 238.7 429.2 231.1L429.2 231.1z"], - "bluetooth": [448, 512, [], "f293", "M292.6 171.1L249.7 214l-.3-86 43.2 43.1m-43.2 219.8l43.1-43.1-42.9-42.9-.2 86zM416 259.4C416 465 344.1 512 230.9 512S32 465 32 259.4 115.4 0 228.6 0 416 53.9 416 259.4zm-158.5 0l79.4-88.6L211.8 36.5v176.9L138 139.6l-27 26.9 92.7 93-92.7 93 26.9 26.9 73.8-73.8 2.3 170 127.4-127.5-83.9-88.7z"], - "gitter": [384, 512, [], "f426", "M66.4 322.5H16V0h50.4v322.5zM166.9 76.1h-50.4V512h50.4V76.1zm100.6 0h-50.4V512h50.4V76.1zM368 76h-50.4v247H368V76z"], - "d-and-d": [576, 512, [], "f38d", "M82.5 98.9c-.6-17.2 2-33.8 12.7-48.2.3 7.4 1.2 14.5 4.2 21.6 5.9-27.5 19.7-49.3 42.3-65.5-1.9 5.9-3.5 11.8-3 17.7 8.7-7.4 18.8-17.8 44.4-22.7 14.7-2.8 29.7-2 42.1 1 38.5 9.3 61 34.3 69.7 72.3 5.3 23.1.7 45-8.3 66.4-5.2 12.4-12 24.4-20.7 35.1-2-1.9-3.9-3.8-5.8-5.6-42.8-40.8-26.8-25.2-37.4-37.4-1.1-1.2-1-2.2-.1-3.6 8.3-13.5 11.8-28.2 10-44-1.1-9.8-4.3-18.9-11.3-26.2-14.5-15.3-39.2-15-53.5.6-11.4 12.5-14.1 27.4-10.9 43.6.2 1.3.4 2.7 0 3.9-3.4 13.7-4.6 27.6-2.5 41.6.1.5.1 1.1.1 1.6 0 .3-.1.5-.2 1.1-21.8-11-36-28.3-43.2-52.2-8.3 17.8-11.1 35.5-6.6 54.1-15.6-15.2-21.3-34.3-22-55.2zm469.6 123.2c-11.6-11.6-25-20.4-40.1-26.6-12.8-5.2-26-7.9-39.9-7.1-10 .6-19.6 3.1-29 6.4-2.5.9-5.1 1.6-7.7 2.2-4.9 1.2-7.3-3.1-4.7-6.8 3.2-4.6 3.4-4.2 15-12 .6-.4 1.2-.8 2.2-1.5h-2.5c-.6 0-1.2.2-1.9.3-19.3 3.3-30.7 15.5-48.9 29.6-10.4 8.1-13.8 3.8-12-.5 1.4-3.5 3.3-6.7 5.1-10 1-1.8 2.3-3.4 3.5-5.1-.2-.2-.5-.3-.7-.5-27 18.3-46.7 42.4-57.7 73.3.3.3.7.6 1 .9.3-.6.5-1.2.9-1.7 10.4-12.1 22.8-21.8 36.6-29.8 18.2-10.6 37.5-18.3 58.7-20.2 4.3-.4 8.7-.1 13.1-.1-1.8.7-3.5.9-5.3 1.1-18.5 2.4-35.5 9-51.5 18.5-30.2 17.9-54.5 42.2-75.1 70.4-.3.4-.4.9-.7 1.3 14.5 5.3 24 17.3 36.1 25.6.2-.1.3-.2.4-.4l1.2-2.7c12.2-26.9 27-52.3 46.7-74.5 16.7-18.8 38-25.3 62.5-20 5.9 1.3 11.4 4.4 17.2 6.8 2.3-1.4 5.1-3.2 8-4.7 8.4-4.3 17.4-7 26.7-9 14.7-3.1 29.5-4.9 44.5-1.3v-.5c-.5-.4-1.2-.8-1.7-1.4zM316.7 397.6c-39.4-33-22.8-19.5-42.7-35.6-.8.9 0-.2-1.9 3-11.2 19.1-25.5 35.3-44 47.6-10.3 6.8-21.5 11.8-34.1 11.8-21.6 0-38.2-9.5-49.4-27.8-12-19.5-13.3-40.7-8.2-62.6 7.8-33.8 30.1-55.2 38.6-64.3-18.7-6.2-33 1.7-46.4 13.9.8-13.9 4.3-26.2 11.8-37.3-24.3 10.6-45.9 25-64.8 43.9-.3-5.8 5.4-43.7 5.6-44.7.3-2.7-.6-5.3-3-7.4-24.2 24.7-44.5 51.8-56.1 84.6 7.4-5.9 14.9-11.4 23.6-16.2-8.3 22.3-19.6 52.8-7.8 101.1 4.6 19 11.9 36.8 24.1 52.3 2.9 3.7 6.3 6.9 9.5 10.3.2-.2.4-.3.6-.5-1.4-7-2.2-14.1-1.5-21.9 2.2 3.2 3.9 6 5.9 8.6 12.6 16 28.7 27.4 47.2 35.6 25 11.3 51.1 13.3 77.9 8.6 54.9-9.7 90.7-48.6 116-98.8 1-1.8.6-2.9-.9-4.2zm172-46.4c-9.5-3.1-22.2-4.2-28.7-2.9 9.9 4 14.1 6.6 18.8 12 12.6 14.4 10.4 34.7-5.4 45.6-11.7 8.1-24.9 10.5-38.9 9.1-1.2-.1-2.3-.4-3-.6 2.8-3.7 6-7 8.1-10.8 9.4-16.8 5.4-42.1-8.7-56.1-2.1-2.1-4.6-3.9-7-5.9-.3 1.3-.1 2.1.1 2.8 4.2 16.6-8.1 32.4-24.8 31.8-7.6-.3-13.9-3.8-19.6-8.5-19.5-16.1-39.1-32.1-58.5-48.3-5.9-4.9-12.5-8.1-20.1-8.7-4.6-.4-9.3-.6-13.9-.9-5.9-.4-8.8-2.8-10.4-8.4-.9-3.4-1.5-6.8-2.2-10.2-1.5-8.1-6.2-13-14.3-14.2-4.4-.7-8.9-1-13.3-1.5-13-1.4-19.8-7.4-22.6-20.3-5 11-1.6 22.4 7.3 29.9 4.5 3.8 9.3 7.3 13.8 11.2 4.6 3.8 7.4 8.7 7.9 14.8.4 4.7.8 9.5 1.8 14.1 2.2 10.6 8.9 18.4 17 25.1 16.5 13.7 33 27.3 49.5 41.1 17.9 15 13.9 32.8 13 56-.9 22.9 12.2 42.9 33.5 51.2 1 .4 2 .6 3.6 1.1-15.7-18.2-10.1-44.1.7-52.3.3 2.2.4 4.3.9 6.4 9.4 44.1 45.4 64.2 85 56.9 16-2.9 30.6-8.9 42.9-19.8 2-1.8 3.7-4.1 5.9-6.5-19.3 4.6-35.8.1-50.9-10.6.7-.3 1.3-.3 1.9-.3 21.3 1.8 40.6-3.4 57-17.4 19.5-16.6 26.6-42.9 17.4-66-8.3-20.1-23.6-32.3-43.8-38.9zM99.4 179.3c-5.3-9.2-13.2-15.6-22.1-21.3 13.7-.5 26.6.2 39.6 3.7-7-12.2-8.5-24.7-5-38.7 5.3 11.9 13.7 20.1 23.6 26.8 19.7 13.2 35.7 19.6 46.7 30.2 3.4 3.3 6.3 7.1 9.6 10.9-.8-2.1-1.4-4.1-2.2-6-5-10.6-13-18.6-22.6-25-1.8-1.2-2.8-2.5-3.4-4.5-3.3-12.5-3-25.1-.7-37.6 1-5.5 2.8-10.9 4.5-16.3.8-2.4 2.3-4.6 4-6.6.6 6.9 0 25.5 19.6 46 10.8 11.3 22.4 21.9 33.9 32.7 9 8.5 18.3 16.7 25.5 26.8 1.1 1.6 2.2 3.3 3.8 4.7-5-13-14.2-24.1-24.2-33.8-9.6-9.3-19.4-18.4-29.2-27.4-3.3-3-4.6-6.7-5.1-10.9-1.2-10.4 0-20.6 4.3-30.2.5-1 1.1-2 1.9-3.3.5 4.2.6 7.9 1.4 11.6 4.8 23.1 20.4 36.3 49.3 63.5 10 9.4 19.3 19.2 25.6 31.6 4.8 9.3 7.3 19 5.7 29.6-.1.6.5 1.7 1.1 2 6.2 2.6 10 6.9 9.7 14.3 7.7-2.6 12.5-8 16.4-14.5 4.2 20.2-9.1 50.3-27.2 58.7.4-4.5 5-23.4-16.5-27.7-6.8-1.3-12.8-1.3-22.9-2.1 4.7-9 10.4-20.6.5-22.4-24.9-4.6-52.8 1.9-57.8 4.6 8.2.4 16.3 1 23.5 3.3-2 6.5-4 12.7-5.8 18.9-1.9 6.5 2.1 14.6 9.3 9.6 1.2-.9 2.3-1.9 3.3-2.7-3.1 17.9-2.9 15.9-2.8 18.3.3 10.2 9.5 7.8 15.7 7.3-2.5 11.8-29.5 27.3-45.4 25.8 7-4.7 12.7-10.3 15.9-17.9-6.5.8-12.9 1.6-19.2 2.4l-.3-.9c4.7-3.4 8-7.8 10.2-13.1 8.7-21.1-3.6-38-25-39.9-9.1-.8-17.8.8-25.9 5.5 6.2-15.6 17.2-26.6 32.6-34.5-15.2-4.3-8.9-2.7-24.6-6.3 14.6-9.3 30.2-13.2 46.5-14.6-5.2-3.2-48.1-3.6-70.2 20.9 7.9 1.4 15.5 2.8 23.2 4.2-23.8 7-44 19.7-62.4 35.6 1.1-4.8 2.7-9.5 3.3-14.3.6-4.5.8-9.2.1-13.6-1.5-9.4-8.9-15.1-19.7-16.3-7.9-.9-15.6.1-23.3 1.3-.9.1-1.7.3-2.9 0 15.8-14.8 36-21.7 53.1-33.5 6-4.5 6.8-8.2 3-14.9zm128.4 26.8c3.3 16 12.6 25.5 23.8 24.3-4.6-11.3-12.1-19.5-23.8-24.3z"], - "microblog": [448, 512, [], "e01a", "M399.36,362.23c29.49-34.69,47.1-78.34,47.1-125.79C446.46,123.49,346.86,32,224,32S1.54,123.49,1.54,236.44,101.14,440.87,224,440.87a239.28,239.28,0,0,0,79.44-13.44,7.18,7.18,0,0,1,8.12,2.56c18.58,25.09,47.61,42.74,79.89,49.92a4.42,4.42,0,0,0,5.22-3.43,4.37,4.37,0,0,0-.85-3.62,87,87,0,0,1,3.69-110.69ZM329.52,212.4l-57.3,43.49L293,324.75a6.5,6.5,0,0,1-9.94,7.22L224,290.92,164.94,332a6.51,6.51,0,0,1-9.95-7.22l20.79-68.86-57.3-43.49a6.5,6.5,0,0,1,3.8-11.68l71.88-1.51,23.66-67.92a6.5,6.5,0,0,1,12.28,0l23.66,67.92,71.88,1.51a6.5,6.5,0,0,1,3.88,11.68Z"], - "cc-diners-club": [576, 512, [], "f24c", "M239.7 79.9c-96.9 0-175.8 78.6-175.8 175.8 0 96.9 78.9 175.8 175.8 175.8 97.2 0 175.8-78.9 175.8-175.8 0-97.2-78.6-175.8-175.8-175.8zm-39.9 279.6c-41.7-15.9-71.4-56.4-71.4-103.8s29.7-87.9 71.4-104.1v207.9zm79.8.3V151.6c41.7 16.2 71.4 56.7 71.4 104.1s-29.7 87.9-71.4 104.1zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM329.7 448h-90.3c-106.2 0-193.8-85.5-193.8-190.2C45.6 143.2 133.2 64 239.4 64h90.3c105 0 200.7 79.2 200.7 193.8 0 104.7-95.7 190.2-200.7 190.2z"], - "gg-circle": [512, 512, [], "f261", "M257 8C120 8 9 119 9 256s111 248 248 248 248-111 248-248S394 8 257 8zm-49.5 374.8L81.8 257.1l125.7-125.7 35.2 35.4-24.2 24.2-11.1-11.1-77.2 77.2 77.2 77.2 26.6-26.6-53.1-52.9 24.4-24.4 77.2 77.2-75 75.2zm99-2.2l-35.2-35.2 24.1-24.4 11.1 11.1 77.2-77.2-77.2-77.2-26.5 26.5 53.1 52.9-24.4 24.4-77.2-77.2 75-75L432.2 255 306.5 380.6z"], - "pied-piper-hat": [640, 512, [], "f4e5", "M640 24.9c-80.8 53.6-89.4 92.5-96.4 104.4-6.7 12.2-11.7 60.3-23.3 83.6-11.7 23.6-54.2 42.2-66.1 50-11.7 7.8-28.3 38.1-41.9 64.2-108.1-4.4-167.4 38.8-259.2 93.6 29.4-9.7 43.3-16.7 43.3-16.7 94.2-36 139.3-68.3 281.1-49.2 1.1 0 1.9.6 2.8.8 3.9 2.2 5.3 6.9 3.1 10.8l-53.9 95.8c-2.5 4.7-7.8 7.2-13.1 6.1-126.8-23.8-226.9 17.3-318.9 18.6C24.1 488 0 453.4 0 451.8c0-1.1.6-1.7 1.7-1.7 0 0 38.3 0 103.1-15.3C178.4 294.5 244 245.4 315.4 245.4c0 0 71.7 0 90.6 61.9 22.8-39.7 28.3-49.2 28.3-49.2 5.3-9.4 35-77.2 86.4-141.4 51.5-64 90.4-79.9 119.3-91.8z"], - "kickstarter-k": [448, 512, [], "f3bc", "M356.6 256.2l40.8-40.5c42.2-41.9 42.2-110.3 0-152.1s-111-41.9-153.2 0L229.3 78.4C209.6 50.3 177.1 32 140.2 32C80.5 32 32 80.2 32 139.5V372.5C32 431.9 80.5 480 140.2 480c37.1 0 69.3-18.3 89-46.4l14.9 14.7c42.2 41.9 111 41.9 153.2 0s42.2-110.3 0-152.1l-40.8-40z"], - "yandex": [256, 512, [], "f413", "M153.1 315.8L65.7 512H2l96-209.8c-45.1-22.9-75.2-64.4-75.2-141.1C22.7 53.7 90.8 0 171.7 0H254v512h-55.1V315.8h-45.8zm45.8-269.3h-29.4c-44.4 0-87.4 29.4-87.4 114.6 0 82.3 39.4 108.8 87.4 108.8h29.4V46.5z"], - "readme": [576, 512, [], "f4d5", "M528.3 46.5H388.5c-48.1 0-89.9 33.3-100.4 80.3-10.6-47-52.3-80.3-100.4-80.3H48c-26.5 0-48 21.5-48 48v245.8c0 26.5 21.5 48 48 48h89.7c102.2 0 132.7 24.4 147.3 75 .7 2.8 5.2 2.8 6 0 14.7-50.6 45.2-75 147.3-75H528c26.5 0 48-21.5 48-48V94.6c0-26.4-21.3-47.9-47.7-48.1zM242 311.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5V289c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V251zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm259.3 121.7c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5V228c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.8c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V190z"], - "html5": [384, 512, [], "f13b", "M0 32l34.9 395.8L191.5 480l157.6-52.2L384 32H0zm308.2 127.9H124.4l4.1 49.4h175.6l-13.6 148.4-97.9 27v.3h-1.1l-98.7-27.3-6-75.8h47.7L138 320l53.5 14.5 53.7-14.5 6-62.2H84.3L71.5 112.2h241.1l-4.4 47.7z"], - "sellsy": [640, 512, [], "f213", "M539.71 237.308c3.064-12.257 4.29-24.821 4.29-37.384C544 107.382 468.618 32 376.076 32c-77.22 0-144.634 53.012-163.02 127.781-15.322-13.176-34.934-20.53-55.157-20.53-46.271 0-83.962 37.69-83.962 83.961 0 7.354.92 15.015 3.065 22.369-42.9 20.225-70.785 63.738-70.785 111.234C6.216 424.843 61.68 480 129.401 480h381.198c67.72 0 123.184-55.157 123.184-123.184.001-56.384-38.916-106.025-94.073-119.508zM199.88 401.554c0 8.274-7.048 15.321-15.321 15.321H153.61c-8.274 0-15.321-7.048-15.321-15.321V290.626c0-8.273 7.048-15.321 15.321-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v110.928zm89.477 0c0 8.274-7.048 15.321-15.322 15.321h-30.949c-8.274 0-15.321-7.048-15.321-15.321V270.096c0-8.274 7.048-15.321 15.321-15.321h30.949c8.274 0 15.322 7.048 15.322 15.321v131.458zm89.477 0c0 8.274-7.047 15.321-15.321 15.321h-30.949c-8.274 0-15.322-7.048-15.322-15.321V238.84c0-8.274 7.048-15.321 15.322-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v162.714zm87.027 0c0 8.274-7.048 15.321-15.322 15.321h-28.497c-8.274 0-15.321-7.048-15.321-15.321V176.941c0-8.579 7.047-15.628 15.321-15.628h28.497c8.274 0 15.322 7.048 15.322 15.628v224.613z"], - "square-web-awesome": [448, 512, [], "e683", "M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM235 177.6L288 224l52.2-10.4c-2.6-3.9-4.2-8.5-4.2-13.6c0-13.3 10.7-24 24-24s24 10.7 24 24c0 13-10.3 23.6-23.2 24L304.5 349.1c-5.2 11.5-16.6 18.9-29.2 18.9l-102.6 0c-12.6 0-24-7.4-29.2-18.9L87.2 224C74.3 223.6 64 213 64 200c0-13.3 10.7-24 24-24s24 10.7 24 24c0 5-1.5 9.7-4.2 13.6L160 224l53.1-46.4c-8.9-4.1-15-13.1-15-23.6c0-14.4 11.6-26 26-26s26 11.6 26 26c0 10.5-6.2 19.5-15.1 23.6z"], - "sass": [640, 512, [], "f41e", "M301.84 378.92c-.3.6-.6 1.08 0 0zm249.13-87a131.16 131.16 0 0 0-58 13.5c-5.9-11.9-12-22.3-13-30.1-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2-1.4-6.6-14.3-6.7-24 2.5-25.29 5.9a122.83 122.83 0 0 0-5.3 19.1c-2.3 11.7-25.79 53.5-39.09 75.3-4.4-8.5-8.1-16-8.9-22-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2-1.4-6.6-14.29-6.7-24 2.5-25.3 5.9-2.7 11.4-5.3 19.1-33.89 77.3-42.08 95.4c-4.2 9.2-7.8 16.6-10.4 21.6-.4.8-.7 1.3-.9 1.7.3-.5.5-1 .5-.8-2.2 4.3-3.5 6.7-3.5 6.7v.1c-1.7 3.2-3.6 6.1-4.5 6.1-.6 0-1.9-8.4.3-19.9 4.7-24.2 15.8-61.8 15.7-63.1-.1-.7 2.1-7.2-7.3-10.7-9.1-3.3-12.4 2.2-13.2 2.2s-1.4 2-1.4 2 10.1-42.4-19.39-42.4c-18.4 0-44 20.2-56.58 38.5-7.9 4.3-25 13.6-43 23.5-6.9 3.8-14 7.7-20.7 11.4-.5-.5-.9-1-1.4-1.5-35.79-38.2-101.87-65.2-99.07-116.5 1-18.7 7.5-67.8 127.07-127.4 98-48.8 176.35-35.4 189.84-5.6 19.4 42.5-41.89 121.6-143.66 133-38.79 4.3-59.18-10.7-64.28-16.3-5.3-5.9-6.1-6.2-8.1-5.1-3.3 1.8-1.2 7 0 10.1 3 7.9 15.5 21.9 36.79 28.9 18.7 6.1 64.18 9.5 119.17-11.8 61.78-23.8 109.87-90.1 95.77-145.6C386.52 18.32 293-.18 204.57 31.22c-52.69 18.7-109.67 48.1-150.66 86.4-48.69 45.6-56.48 85.3-53.28 101.9 11.39 58.9 92.57 97.3 125.06 125.7-1.6.9-3.1 1.7-4.5 2.5-16.29 8.1-78.18 40.5-93.67 74.7-17.5 38.8 2.9 66.6 16.29 70.4 41.79 11.6 84.58-9.3 107.57-43.6s20.2-79.1 9.6-99.5c-.1-.3-.3-.5-.4-.8 4.2-2.5 8.5-5 12.8-7.5 8.29-4.9 16.39-9.4 23.49-13.3-4 10.8-6.9 23.8-8.4 42.6-1.8 22 7.3 50.5 19.1 61.7 5.2 4.9 11.49 5 15.39 5 13.8 0 20-11.4 26.89-25 8.5-16.6 16-35.9 16-35.9s-9.4 52.2 16.3 52.2c9.39 0 18.79-12.1 23-18.3v.1s.2-.4.7-1.2c1-1.5 1.5-2.4 1.5-2.4v-.3c3.8-6.5 12.1-21.4 24.59-46 16.2-31.8 31.69-71.5 31.69-71.5a201.24 201.24 0 0 0 6.2 25.8c2.8 9.5 8.7 19.9 13.4 30-3.8 5.2-6.1 8.2-6.1 8.2a.31.31 0 0 0 .1.2c-3 4-6.4 8.3-9.9 12.5-12.79 15.2-28 32.6-30 37.6-2.4 5.9-1.8 10.3 2.8 13.7 3.4 2.6 9.4 3 15.69 2.5 11.5-.8 19.6-3.6 23.5-5.4a82.2 82.2 0 0 0 20.19-10.6c12.5-9.2 20.1-22.4 19.4-39.8-.4-9.6-3.5-19.2-7.3-28.2 1.1-1.6 2.3-3.3 3.4-5C434.8 301.72 450.1 270 450.1 270a201.24 201.24 0 0 0 6.2 25.8c2.4 8.1 7.09 17 11.39 25.7-18.59 15.1-30.09 32.6-34.09 44.1-7.4 21.3-1.6 30.9 9.3 33.1 4.9 1 11.9-1.3 17.1-3.5a79.46 79.46 0 0 0 21.59-11.1c12.5-9.2 24.59-22.1 23.79-39.6-.3-7.9-2.5-15.8-5.4-23.4 15.7-6.6 36.09-10.2 62.09-7.2 55.68 6.5 66.58 41.3 64.48 55.8s-13.8 22.6-17.7 25-5.1 3.3-4.8 5.1c.5 2.6 2.3 2.5 5.6 1.9 4.6-.8 29.19-11.8 30.29-38.7 1.6-34-31.09-71.4-89-71.1zm-429.18 144.7c-18.39 20.1-44.19 27.7-55.28 21.3C54.61 451 59.31 421.42 82 400c13.8-13 31.59-25 43.39-32.4 2.7-1.6 6.6-4 11.4-6.9.8-.5 1.2-.7 1.2-.7.9-.6 1.9-1.1 2.9-1.7 8.29 30.4.3 57.2-19.1 78.3zm134.36-91.4c-6.4 15.7-19.89 55.7-28.09 53.6-7-1.8-11.3-32.3-1.4-62.3 5-15.1 15.6-33.1 21.9-40.1 10.09-11.3 21.19-14.9 23.79-10.4 3.5 5.9-12.2 49.4-16.2 59.2zm111 53c-2.7 1.4-5.2 2.3-6.4 1.6-.9-.5 1.1-2.4 1.1-2.4s13.9-14.9 19.4-21.7c3.2-4 6.9-8.7 10.89-13.9 0 .5.1 1 .1 1.6-.13 17.9-17.32 30-25.12 34.8zm85.58-19.5c-2-1.4-1.7-6.1 5-20.7 2.6-5.7 8.59-15.3 19-24.5a36.18 36.18 0 0 1 1.9 10.8c-.1 22.5-16.2 30.9-25.89 34.4z"], - "wirsindhandwerk": [512, 512, ["wsh"], "e2d0", "M50.77161,479.81213h83.36071V367.84741l-83.36071,47.009Zm329.04675,0h82.35022V414.85645l-82.35022-47.009Zm.00568-448V251.568L256.1759,179.1861,134.50378,251.568V31.81213H50.77161V392.60565L256.1759,270.31909,462.16858,392.60565V31.81213Z"], - "buromobelexperte": [448, 512, [], "f37f", "M0 32v128h128V32H0zm120 120H8V40h112v112zm40-120v128h128V32H160zm120 120H168V40h112v112zm40-120v128h128V32H320zm120 120H328V40h112v112zM0 192v128h128V192H0zm120 120H8V200h112v112zm40-120v128h128V192H160zm120 120H168V200h112v112zm40-120v128h128V192H320zm120 120H328V200h112v112zM0 352v128h128V352H0zm120 120H8V360h112v112zm40-120v128h128V352H160zm120 120H168V360h112v112zm40-120v128h128V352H320z"], - "salesforce": [640, 512, [], "f83b", "M248.89 245.64h-26.35c.69-5.16 3.32-14.12 13.64-14.12 6.75 0 11.97 3.82 12.71 14.12zm136.66-13.88c-.47 0-14.11-1.77-14.11 20s13.63 20 14.11 20c13 0 14.11-13.54 14.11-20 0-21.76-13.66-20-14.11-20zm-243.22 23.76a8.63 8.63 0 0 0-3.29 7.29c0 4.78 2.08 6.05 3.29 7.05 4.7 3.7 15.07 2.12 20.93.95v-16.94c-5.32-1.07-16.73-1.96-20.93 1.65zM640 232c0 87.58-80 154.39-165.36 136.43-18.37 33-70.73 70.75-132.2 41.63-41.16 96.05-177.89 92.18-213.81-5.17C8.91 428.78-50.19 266.52 53.36 205.61 18.61 126.18 76 32 167.67 32a124.24 124.24 0 0 1 98.56 48.7c20.7-21.4 49.4-34.81 81.15-34.81 42.34 0 79 23.52 98.8 58.57C539 63.78 640 132.69 640 232zm-519.55 31.8c0-11.76-11.69-15.17-17.87-17.17-5.27-2.11-13.41-3.51-13.41-8.94 0-9.46 17-6.66 25.17-2.12 0 0 1.17.71 1.64-.47.24-.7 2.36-6.58 2.59-7.29a1.13 1.13 0 0 0-.7-1.41c-12.33-7.63-40.7-8.51-40.7 12.7 0 12.46 11.49 15.44 17.88 17.17 4.72 1.58 13.17 3 13.17 8.7 0 4-3.53 7.06-9.17 7.06a31.76 31.76 0 0 1-19-6.35c-.47-.23-1.42-.71-1.65.71l-2.4 7.47c-.47.94.23 1.18.23 1.41 1.75 1.4 10.3 6.59 22.82 6.59 13.17 0 21.4-7.06 21.4-18.11zm32-42.58c-10.13 0-18.66 3.17-21.4 5.18a1 1 0 0 0-.24 1.41l2.59 7.06a1 1 0 0 0 1.18.7c.65 0 6.8-4 16.93-4 4 0 7.06.71 9.18 2.36 3.6 2.8 3.06 8.29 3.06 10.58-4.79-.3-19.11-3.44-29.41 3.76a16.92 16.92 0 0 0-7.34 14.54c0 5.9 1.51 10.4 6.59 14.35 12.24 8.16 36.28 2 38.1 1.41 1.58-.32 3.53-.66 3.53-1.88v-33.88c.04-4.61.32-21.64-22.78-21.64zM199 200.24a1.11 1.11 0 0 0-1.18-1.18H188a1.11 1.11 0 0 0-1.17 1.18v79a1.11 1.11 0 0 0 1.17 1.18h9.88a1.11 1.11 0 0 0 1.18-1.18zm55.75 28.93c-2.1-2.31-6.79-7.53-17.65-7.53-3.51 0-14.16.23-20.7 8.94-6.35 7.63-6.58 18.11-6.58 21.41 0 3.12.15 14.26 7.06 21.17 2.64 2.91 9.06 8.23 22.81 8.23 10.82 0 16.47-2.35 18.58-3.76.47-.24.71-.71.24-1.88l-2.35-6.83a1.26 1.26 0 0 0-1.41-.7c-2.59.94-6.35 2.82-15.29 2.82-17.42 0-16.85-14.74-16.94-16.7h37.17a1.23 1.23 0 0 0 1.17-.94c-.29 0 2.07-14.7-6.09-24.23zm36.69 52.69c13.17 0 21.41-7.06 21.41-18.11 0-11.76-11.7-15.17-17.88-17.17-4.14-1.66-13.41-3.38-13.41-8.94 0-3.76 3.29-6.35 8.47-6.35a38.11 38.11 0 0 1 16.7 4.23s1.18.71 1.65-.47c.23-.7 2.35-6.58 2.58-7.29a1.13 1.13 0 0 0-.7-1.41c-7.91-4.9-16.74-4.94-20.23-4.94-12 0-20.46 7.29-20.46 17.64 0 12.46 11.48 15.44 17.87 17.17 6.11 2 13.17 3.26 13.17 8.7 0 4-3.52 7.06-9.17 7.06a31.8 31.8 0 0 1-19-6.35 1 1 0 0 0-1.65.71l-2.35 7.52c-.47.94.23 1.18.23 1.41 1.72 1.4 10.33 6.59 22.79 6.59zM357.09 224c0-.71-.24-1.18-1.18-1.18h-11.76c0-.14.94-8.94 4.47-12.47 4.16-4.15 11.76-1.64 12-1.64 1.17.47 1.41 0 1.64-.47l2.83-7.77c.7-.94 0-1.17-.24-1.41-5.09-2-17.35-2.87-24.46 4.24-5.48 5.48-7 13.92-8 19.52h-8.47a1.28 1.28 0 0 0-1.17 1.18l-1.42 7.76c0 .7.24 1.17 1.18 1.17h8.23c-8.51 47.9-8.75 50.21-10.35 55.52-1.08 3.62-3.29 6.9-5.88 7.76-.09 0-3.88 1.68-9.64-.24 0 0-.94-.47-1.41.71-.24.71-2.59 6.82-2.83 7.53s0 1.41.47 1.41c5.11 2 13 1.77 17.88 0 6.28-2.28 9.72-7.89 11.53-12.94 2.75-7.71 2.81-9.79 11.76-59.74h12.23a1.29 1.29 0 0 0 1.18-1.18zm53.39 16c-.56-1.68-5.1-18.11-25.17-18.11-15.25 0-23 10-25.16 18.11-1 3-3.18 14 0 23.52.09.3 4.41 18.12 25.16 18.12 14.95 0 22.9-9.61 25.17-18.12 3.21-9.61 1.01-20.52 0-23.52zm45.4-16.7c-5-1.65-16.62-1.9-22.11 5.41v-4.47a1.11 1.11 0 0 0-1.18-1.17h-9.4a1.11 1.11 0 0 0-1.18 1.17v55.28a1.12 1.12 0 0 0 1.18 1.18h9.64a1.12 1.12 0 0 0 1.18-1.18v-27.77c0-2.91.05-11.37 4.46-15.05 4.9-4.9 12-3.36 13.41-3.06a1.57 1.57 0 0 0 1.41-.94 74 74 0 0 0 3.06-8 1.16 1.16 0 0 0-.47-1.41zm46.81 54.1l-2.12-7.29c-.47-1.18-1.41-.71-1.41-.71-4.23 1.82-10.15 1.89-11.29 1.89-4.64 0-17.17-1.13-17.17-19.76 0-6.23 1.85-19.76 16.47-19.76a34.85 34.85 0 0 1 11.52 1.65s.94.47 1.18-.71c.94-2.59 1.64-4.47 2.59-7.53.23-.94-.47-1.17-.71-1.17-11.59-3.87-22.34-2.53-27.76 0-1.59.74-16.23 6.49-16.23 27.52 0 2.9-.58 30.11 28.94 30.11a44.45 44.45 0 0 0 15.52-2.83 1.3 1.3 0 0 0 .47-1.42zm53.87-39.52c-.8-3-5.37-16.23-22.35-16.23-16 0-23.52 10.11-25.64 18.59a38.58 38.58 0 0 0-1.65 11.76c0 25.87 18.84 29.4 29.88 29.4 10.82 0 16.46-2.35 18.58-3.76.47-.24.71-.71.24-1.88l-2.36-6.83a1.26 1.26 0 0 0-1.41-.7c-2.59.94-6.35 2.82-15.29 2.82-17.42 0-16.85-14.74-16.93-16.7h37.16a1.25 1.25 0 0 0 1.18-.94c-.24-.01.94-7.07-1.41-15.54zm-23.29-6.35c-10.33 0-13 9-13.64 14.12H546c-.88-11.92-7.62-14.13-12.73-14.13z"], - "octopus-deploy": [512, 512, [], "e082", "M455.6,349.2c-45.891-39.09-36.67-77.877-16.095-128.11C475.16,134.04,415.967,34.14,329.93,8.3,237.04-19.6,134.252,24.341,99.677,117.147a180.862,180.862,0,0,0-10.988,73.544c1.733,29.543,14.717,52.97,24.09,80.3,17.2,50.161-28.1,92.743-66.662,117.582-46.806,30.2-36.319,39.857-8.428,41.858,23.378,1.68,44.478-4.548,65.265-15.045,9.2-4.647,40.687-18.931,45.13-28.588C135.9,413.388,111.122,459.5,126.621,488.9c19.1,36.229,67.112-31.77,76.709-45.812,8.591-12.572,42.963-81.279,63.627-46.926,18.865,31.361,8.6,76.391,35.738,104.622,32.854,34.2,51.155-18.312,51.412-44.221.163-16.411-6.1-95.852,29.9-59.944C405.428,418,436.912,467.8,472.568,463.642c38.736-4.516-22.123-67.967-28.262-78.695,5.393,4.279,53.665,34.128,53.818,9.52C498.234,375.678,468.039,359.8,455.6,349.2Z"], - "medapps": [320, 512, [], "f3c6", "M118.3 238.4c3.5-12.5 6.9-33.6 13.2-33.6 8.3 1.8 9.6 23.4 18.6 36.6 4.6-23.5 5.3-85.1 14.1-86.7 9-.7 19.7 66.5 22 77.5 9.9 4.1 48.9 6.6 48.9 6.6 1.9 7.3-24 7.6-40 7.8-4.6 14.8-5.4 27.7-11.4 28-4.7.2-8.2-28.8-17.5-49.6l-9.4 65.5c-4.4 13-15.5-22.5-21.9-39.3-3.3-.1-62.4-1.6-47.6-7.8l31-5zM228 448c21.2 0 21.2-32 0-32H92c-21.2 0-21.2 32 0 32h136zm-24 64c21.2 0 21.2-32 0-32h-88c-21.2 0-21.2 32 0 32h88zm34.2-141.5c3.2-18.9 5.2-36.4 11.9-48.8 7.9-14.7 16.1-28.1 24-41 24.6-40.4 45.9-75.2 45.9-125.5C320 69.6 248.2 0 160 0S0 69.6 0 155.2c0 50.2 21.3 85.1 45.9 125.5 7.9 12.9 16 26.3 24 41 6.7 12.5 8.7 29.8 11.9 48.9 3.5 21 36.1 15.7 32.6-5.1-3.6-21.7-5.6-40.7-15.3-58.6C66.5 246.5 33 211.3 33 155.2 33 87.3 90 32 160 32s127 55.3 127 123.2c0 56.1-33.5 91.3-66.1 151.6-9.7 18-11.7 37.4-15.3 58.6-3.4 20.6 29 26.4 32.6 5.1z"], - "ns8": [640, 512, [], "f3d5", "M104.324,269.172h26.067V242.994H104.324Zm52.466-26.178-.055-26.178v-.941a39.325,39.325,0,0,0-78.644.941v.166h26.4v-.166a12.98,12.98,0,0,1,25.956,0v26.178Zm52.356,25.846a91.1,91.1,0,0,1-91.1,91.1h-.609a91.1,91.1,0,0,1-91.1-91.1H0v.166A117.33,117.33,0,0,0,117.44,386.28h.775A117.331,117.331,0,0,0,235.49,268.84V242.828H209.146Zm-157.233,0a65.362,65.362,0,0,0,130.723,0H156.292a39.023,39.023,0,0,1-78.035,0V242.883H51.968v-26.62A65.42,65.42,0,0,1,182.8,217.48v25.293h26.344V217.48a91.761,91.761,0,0,0-183.522,0v25.4H51.913Zm418.4-71.173c13.67,0,24.573,6.642,30.052,18.264l.719,1.549,23.245-11.511-.609-1.439c-8.025-19.26-28.5-31.27-53.407-31.27-23.134,0-43.611,11.4-50.972,28.447-.123,26.876-.158,23.9,0,24.85,4.7,11.013,14.555,19.37,28.668,24.241a102.033,102.033,0,0,0,19.813,3.984c5.479.72,10.626,1.384,15.829,3.1,6.364,2.1,10.46,5.257,12.84,9.851v9.851c-3.708,7.527-13.781,12.342-25.791,12.342-14.334,0-25.956-6.918-31.933-19.039l-.72-1.494L415.026,280.9l.553,1.439c7.915,19.426,29.609,32.044,55.289,32.044,23.632,0,44.608-11.4,52.3-28.447l.166-25.9-.166-.664c-4.87-11.014-15.219-19.647-28.944-24.241-7.693-2.712-14.335-3.6-20.7-4.427a83.777,83.777,0,0,1-14.832-2.878c-6.31-1.937-10.4-5.092-12.619-9.63v-8.412C449.45,202.427,458.969,197.667,470.315,197.667ZM287.568,311.344h26.067v-68.4H287.568Zm352.266-53.3c-2.933-6.254-8.3-12.01-15.441-16.714A37.99,37.99,0,0,0,637.4,226l.166-25.347-.166-.664C630.038,184,610.667,173.26,589.25,173.26S548.461,184,541.1,199.992l-.166,25.347.166.664a39.643,39.643,0,0,0,13.006,15.331c-7.2,4.7-12.508,10.46-15.441,16.714l-.166,28.889.166.72c7.582,15.994,27.893,26.731,50.585,26.731s43.057-10.737,50.584-26.731l.166-28.89Zm-73.22-50.806c3.6-6.31,12.563-10.516,22.58-10.516s19.038,4.206,22.636,10.516v13.725c-3.542,6.2-12.563,10.349-22.636,10.349s-19.094-4.15-22.58-10.349Zm47.319,72.169c-3.764,6.641-13.338,10.9-24.683,10.9-11.125,0-20.976-4.372-24.684-10.9V263.25c3.708-6.309,13.5-10.515,24.684-10.515,11.345,0,20.919,4.15,24.683,10.515ZM376.4,265.962l-59.827-89.713h-29v40.623h26.51v.387l62.539,94.085H402.3V176.249H376.4Z"], - "pinterest-p": [384, 512, [], "f231", "M204 6.5C101.4 6.5 0 74.9 0 185.6 0 256 39.6 296 63.6 296c9.9 0 15.6-27.6 15.6-35.4 0-9.3-23.7-29.1-23.7-67.8 0-80.4 61.2-137.4 140.4-137.4 68.1 0 118.5 38.7 118.5 109.8 0 53.1-21.3 152.7-90.3 152.7-24.9 0-46.2-18-46.2-43.8 0-37.8 26.4-74.4 26.4-113.4 0-66.2-93.9-54.2-93.9 25.8 0 16.8 2.1 35.4 9.6 50.7-13.8 59.4-42 147.9-42 209.1 0 18.9 2.7 37.5 4.5 56.4 3.4 3.8 1.7 3.4 6.9 1.5 50.4-69 48.6-82.5 71.4-172.8 12.3 23.4 44.1 36 69.3 36 106.2 0 153.9-103.5 153.9-196.8C384 71.3 298.2 6.5 204 6.5z"], - "apper": [640, 512, [], "f371", "M42.1 239.1c22.2 0 29 2.8 33.5 14.6h.8v-22.9c0-11.3-4.8-15.4-17.9-15.4-11.3 0-14.4 2.5-15.1 12.8H4.8c.3-13.9 1.5-19.1 5.8-24.4C17.9 195 29.5 192 56.7 192c33 0 47.1 5 53.9 18.9 2 4.3 4 15.6 4 23.7v76.3H76.3l1.3-19.1h-1c-5.3 15.6-13.6 20.4-35.5 20.4-30.3 0-41.1-10.1-41.1-37.3 0-25.2 12.3-35.8 42.1-35.8zm17.1 48.1c13.1 0 16.9-3 16.9-13.4 0-9.1-4.3-11.6-19.6-11.6-13.1 0-17.9 3-17.9 12.1-.1 10.4 3.7 12.9 20.6 12.9zm77.8-94.9h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.2 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3H137v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm57.9-60.7h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.3 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3h-39.5v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm53.8-3.8c0-25.4 3.3-37.8 12.3-45.8 8.8-8.1 22.2-11.3 45.1-11.3 42.8 0 55.7 12.8 55.7 55.7v11.1h-75.3c-.3 2-.3 4-.3 4.8 0 16.9 4.5 21.9 20.1 21.9 13.9 0 17.9-3 17.9-13.9h37.5v2.3c0 9.8-2.5 18.9-6.8 24.7-7.3 9.8-19.6 13.6-44.3 13.6-27.5 0-41.6-3.3-50.6-12.3-8.5-8.5-11.3-21.3-11.3-50.8zm76.4-11.6c-.3-1.8-.3-3.3-.3-3.8 0-12.3-3.3-14.6-19.6-14.6-14.4 0-17.1 3-18.1 15.1l-.3 3.3h38.3zm55.6-45.3h38.3l-1.8 19.9h.7c6.8-14.9 14.4-20.2 29.7-20.2 10.8 0 19.1 3.3 23.4 9.3 5.3 7.3 6.8 14.4 6.8 34 0 1.5 0 5 .2 9.3h-35c.3-1.8.3-3.3.3-4 0-15.4-2-19.4-10.3-19.4-6.3 0-10.8 3.3-13.1 9.3-1 3-1 4.3-1 12.3v68h-38.3V192.3z"], - "fort-awesome": [512, 512, [], "f286", "M489.2 287.9h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6V146.2c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-6-8-4.6-11.7-4.6v-38c8.3-2 17.1-3.4 25.7-3.4 10.9 0 20.9 4.3 31.4 4.3 4.6 0 27.7-1.1 27.7-8v-60c0-2.6-2-4.6-4.6-4.6-5.1 0-15.1 4.3-24 4.3-9.7 0-20.9-4.3-32.6-4.3-8 0-16 1.1-23.7 2.9v-4.9c5.4-2.6 9.1-8.3 9.1-14.3 0-20.7-31.4-20.8-31.4 0 0 6 3.7 11.7 9.1 14.3v111.7c-3.7 0-11.7-1.4-11.7 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32H128v-32c0-2.6-2-4.6-4.6-4.6H96c-2.6 0-4.6 2-4.6 4.6v178.3H54.8v-32c0-2.6-2-4.6-4.6-4.6H22.8c-2.6 0-4.6 2-4.6 4.6V512h182.9v-96c0-72.6 109.7-72.6 109.7 0v96h182.9V292.5c.1-2.6-1.9-4.6-4.5-4.6zm-288.1-4.5c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64zm146.4 0c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64z"], - "waze": [512, 512, [], "f83f", "M502.17 201.67C516.69 287.53 471.23 369.59 389 409.8c13 34.1-12.4 70.2-48.32 70.2a51.68 51.68 0 0 1-51.57-49c-6.44.19-64.2 0-76.33-.64A51.69 51.69 0 0 1 159 479.92c-33.86-1.36-57.95-34.84-47-67.92-37.21-13.11-72.54-34.87-99.62-70.8-13-17.28-.48-41.8 20.84-41.8 46.31 0 32.22-54.17 43.15-110.26C94.8 95.2 193.12 32 288.09 32c102.48 0 197.15 70.67 214.08 169.67zM373.51 388.28c42-19.18 81.33-56.71 96.29-102.14 40.48-123.09-64.15-228-181.71-228-83.45 0-170.32 55.42-186.07 136-9.53 48.91 5 131.35-68.75 131.35C58.21 358.6 91.6 378.11 127 389.54c24.66-21.8 63.87-15.47 79.83 14.34 14.22 1 79.19 1.18 87.9.82a51.69 51.69 0 0 1 78.78-16.42zM205.12 187.13c0-34.74 50.84-34.75 50.84 0s-50.84 34.74-50.84 0zm116.57 0c0-34.74 50.86-34.75 50.86 0s-50.86 34.75-50.86 0zm-122.61 70.69c-3.44-16.94 22.18-22.18 25.62-5.21l.06.28c4.14 21.42 29.85 44 64.12 43.07 35.68-.94 59.25-22.21 64.11-42.77 4.46-16.05 28.6-10.36 25.47 6-5.23 22.18-31.21 62-91.46 62.9-42.55 0-80.88-27.84-87.9-64.25z"], - "bluesky": [512, 512, [], "e671", "M111.8 62.2C170.2 105.9 233 194.7 256 242.4c23-47.6 85.8-136.4 144.2-180.2c42.1-31.6 110.3-56 110.3 21.8c0 15.5-8.9 130.5-14.1 149.2C478.2 298 412 314.6 353.1 304.5c102.9 17.5 129.1 75.5 72.5 133.5c-107.4 110.2-154.3-27.6-166.3-62.9l0 0c-1.7-4.9-2.6-7.8-3.3-7.8s-1.6 3-3.3 7.8l0 0c-12 35.3-59 173.1-166.3 62.9c-56.5-58-30.4-116 72.5-133.5C100 314.6 33.8 298 15.7 233.1C10.4 214.4 1.5 99.4 1.5 83.9c0-77.8 68.2-53.4 110.3-21.8z"], - "cc-jcb": [576, 512, [], "f24b", "M431.5 244.3V212c41.2 0 38.5.2 38.5.2 7.3 1.3 13.3 7.3 13.3 16 0 8.8-6 14.5-13.3 15.8-1.2.4-3.3.3-38.5.3zm42.8 20.2c-2.8-.7-3.3-.5-42.8-.5v35c39.6 0 40 .2 42.8-.5 7.5-1.5 13.5-8 13.5-17 0-8.7-6-15.5-13.5-17zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM182 192.3h-57c0 67.1 10.7 109.7-35.8 109.7-19.5 0-38.8-5.7-57.2-14.8v28c30 8.3 68 8.3 68 8.3 97.9 0 82-47.7 82-131.2zm178.5 4.5c-63.4-16-165-14.9-165 59.3 0 77.1 108.2 73.6 165 59.2V287C312.9 311.7 253 309 253 256s59.8-55.6 107.5-31.2v-28zM544 286.5c0-18.5-16.5-30.5-38-32v-.8c19.5-2.7 30.3-15.5 30.3-30.2 0-19-15.7-30-37-31 0 0 6.3-.3-120.3-.3v127.5h122.7c24.3.1 42.3-12.9 42.3-33.2z"], - "snapchat": [512, 512, [62124, "snapchat-ghost"], "f2ab", "M496.926,366.6c-3.373-9.176-9.8-14.086-17.112-18.153-1.376-.806-2.641-1.451-3.72-1.947-2.182-1.128-4.414-2.22-6.634-3.373-22.8-12.09-40.609-27.341-52.959-45.42a102.889,102.889,0,0,1-9.089-16.12c-1.054-3.013-1-4.724-.248-6.287a10.221,10.221,0,0,1,2.914-3.038c3.918-2.591,7.96-5.22,10.7-6.993,4.885-3.162,8.754-5.667,11.246-7.44,9.362-6.547,15.909-13.5,20-21.278a42.371,42.371,0,0,0,2.1-35.191c-6.2-16.318-21.613-26.449-40.287-26.449a55.543,55.543,0,0,0-11.718,1.24c-1.029.224-2.059.459-3.063.72.174-11.16-.074-22.94-1.066-34.534-3.522-40.758-17.794-62.123-32.674-79.16A130.167,130.167,0,0,0,332.1,36.443C309.515,23.547,283.91,17,256,17S202.6,23.547,180,36.443a129.735,129.735,0,0,0-33.281,26.783c-14.88,17.038-29.152,38.44-32.673,79.161-.992,11.594-1.24,23.435-1.079,34.533-1-.26-2.021-.5-3.051-.719a55.461,55.461,0,0,0-11.717-1.24c-18.687,0-34.125,10.131-40.3,26.449a42.423,42.423,0,0,0,2.046,35.228c4.105,7.774,10.652,14.731,20.014,21.278,2.48,1.736,6.361,4.24,11.246,7.44,2.641,1.711,6.5,4.216,10.28,6.72a11.054,11.054,0,0,1,3.3,3.311c.794,1.624.818,3.373-.36,6.6a102.02,102.02,0,0,1-8.94,15.785c-12.077,17.669-29.363,32.648-51.434,44.639C32.355,348.608,20.2,352.75,15.069,366.7c-3.868,10.528-1.339,22.506,8.494,32.6a49.137,49.137,0,0,0,12.4,9.387,134.337,134.337,0,0,0,30.342,12.139,20.024,20.024,0,0,1,6.126,2.741c3.583,3.137,3.075,7.861,7.849,14.78a34.468,34.468,0,0,0,8.977,9.127c10.019,6.919,21.278,7.353,33.207,7.811,10.776.41,22.989.881,36.939,5.481,5.778,1.91,11.78,5.605,18.736,9.92C194.842,480.951,217.707,495,255.973,495s61.292-14.123,78.118-24.428c6.907-4.24,12.872-7.9,18.489-9.758,13.949-4.613,26.163-5.072,36.939-5.481,11.928-.459,23.187-.893,33.206-7.812a34.584,34.584,0,0,0,10.218-11.16c3.434-5.84,3.348-9.919,6.572-12.771a18.971,18.971,0,0,1,5.753-2.629A134.893,134.893,0,0,0,476.02,408.71a48.344,48.344,0,0,0,13.019-10.193l.124-.149C498.389,388.5,500.708,376.867,496.926,366.6Zm-34.013,18.277c-20.745,11.458-34.533,10.23-45.259,17.137-9.114,5.865-3.72,18.513-10.342,23.076-8.134,5.617-32.177-.4-63.239,9.858-25.618,8.469-41.961,32.822-88.038,32.822s-62.036-24.3-88.076-32.884c-31-10.255-55.092-4.241-63.239-9.858-6.609-4.563-1.24-17.211-10.341-23.076-10.739-6.907-24.527-5.679-45.26-17.075-13.206-7.291-5.716-11.8-1.314-13.937,75.143-36.381,87.133-92.552,87.666-96.719.645-5.046,1.364-9.014-4.191-14.148-5.369-4.96-29.189-19.7-35.8-24.316-10.937-7.638-15.748-15.264-12.2-24.638,2.48-6.485,8.531-8.928,14.879-8.928a27.643,27.643,0,0,1,5.965.67c12,2.6,23.659,8.617,30.392,10.242a10.749,10.749,0,0,0,2.48.335c3.6,0,4.86-1.811,4.612-5.927-.768-13.132-2.628-38.725-.558-62.644,2.84-32.909,13.442-49.215,26.04-63.636,6.051-6.932,34.484-36.976,88.857-36.976s82.88,29.92,88.931,36.827c12.611,14.421,23.225,30.727,26.04,63.636,2.071,23.919.285,49.525-.558,62.644-.285,4.327,1.017,5.927,4.613,5.927a10.648,10.648,0,0,0,2.48-.335c6.745-1.624,18.4-7.638,30.4-10.242a27.641,27.641,0,0,1,5.964-.67c6.386,0,12.4,2.48,14.88,8.928,3.546,9.374-1.24,17-12.189,24.639-6.609,4.612-30.429,19.343-35.8,24.315-5.568,5.134-4.836,9.1-4.191,14.149.533,4.228,12.511,60.4,87.666,96.718C468.629,373.011,476.119,377.524,462.913,384.877Z"], - "fantasy-flight-games": [512, 512, [], "f6dc", "M256 32.86L32.86 256 256 479.14 479.14 256 256 32.86zM88.34 255.83c1.96-2 11.92-12.3 96.49-97.48 41.45-41.75 86.19-43.77 119.77-18.69 24.63 18.4 62.06 58.9 62.15 59 .68.74 1.07 2.86.58 3.38-11.27 11.84-22.68 23.54-33.5 34.69-34.21-32.31-40.52-38.24-48.51-43.95-17.77-12.69-41.4-10.13-56.98 5.1-2.17 2.13-1.79 3.43.12 5.35 2.94 2.95 28.1 28.33 35.09 35.78-11.95 11.6-23.66 22.97-35.69 34.66-12.02-12.54-24.48-25.53-36.54-38.11-21.39 21.09-41.69 41.11-61.85 60.99zm234.82 101.6c-35.49 35.43-78.09 38.14-106.99 20.47-22.08-13.5-39.38-32.08-72.93-66.84 12.05-12.37 23.79-24.42 35.37-36.31 33.02 31.91 37.06 36.01 44.68 42.09 18.48 14.74 42.52 13.67 59.32-1.8 3.68-3.39 3.69-3.64.14-7.24-10.59-10.73-21.19-21.44-31.77-32.18-1.32-1.34-3.03-2.48-.8-4.69 10.79-10.71 21.48-21.52 32.21-32.29.26-.26.65-.38 1.91-1.07 12.37 12.87 24.92 25.92 37.25 38.75 21.01-20.73 41.24-40.68 61.25-60.42 13.68 13.4 27.13 26.58 40.86 40.03-20.17 20.86-81.68 82.71-100.5 101.5zM256 0L0 256l256 256 256-256L256 0zM16 256L256 16l240 240-240 240L16 256z"], - "rust": [512, 512, [], "e07a", "M508.52,249.75,486.7,236.24c-.17-2-.34-3.93-.55-5.88l18.72-17.5a7.35,7.35,0,0,0-2.44-12.25l-24-9c-.54-1.88-1.08-3.78-1.67-5.64l15-20.83a7.35,7.35,0,0,0-4.79-11.54l-25.42-4.15c-.9-1.73-1.79-3.45-2.73-5.15l10.68-23.42a7.35,7.35,0,0,0-6.95-10.39l-25.82.91q-1.79-2.22-3.61-4.4L439,81.84A7.36,7.36,0,0,0,430.16,73L405,78.93q-2.17-1.83-4.4-3.61l.91-25.82a7.35,7.35,0,0,0-10.39-7L367.7,53.23c-1.7-.94-3.43-1.84-5.15-2.73L358.4,25.08a7.35,7.35,0,0,0-11.54-4.79L326,35.26c-1.86-.59-3.75-1.13-5.64-1.67l-9-24a7.35,7.35,0,0,0-12.25-2.44l-17.5,18.72c-1.95-.21-3.91-.38-5.88-.55L262.25,3.48a7.35,7.35,0,0,0-12.5,0L236.24,25.3c-2,.17-3.93.34-5.88.55L212.86,7.13a7.35,7.35,0,0,0-12.25,2.44l-9,24c-1.89.55-3.79,1.08-5.66,1.68l-20.82-15a7.35,7.35,0,0,0-11.54,4.79l-4.15,25.41c-1.73.9-3.45,1.79-5.16,2.73L120.88,42.55a7.35,7.35,0,0,0-10.39,7l.92,25.81c-1.49,1.19-3,2.39-4.42,3.61L81.84,73A7.36,7.36,0,0,0,73,81.84L78.93,107c-1.23,1.45-2.43,2.93-3.62,4.41l-25.81-.91a7.42,7.42,0,0,0-6.37,3.26,7.35,7.35,0,0,0-.57,7.13l10.66,23.41c-.94,1.7-1.83,3.43-2.73,5.16L25.08,153.6a7.35,7.35,0,0,0-4.79,11.54l15,20.82c-.59,1.87-1.13,3.77-1.68,5.66l-24,9a7.35,7.35,0,0,0-2.44,12.25l18.72,17.5c-.21,1.95-.38,3.91-.55,5.88L3.48,249.75a7.35,7.35,0,0,0,0,12.5L25.3,275.76c.17,2,.34,3.92.55,5.87L7.13,299.13a7.35,7.35,0,0,0,2.44,12.25l24,9c.55,1.89,1.08,3.78,1.68,5.65l-15,20.83a7.35,7.35,0,0,0,4.79,11.54l25.42,4.15c.9,1.72,1.79,3.45,2.73,5.14L42.56,391.12a7.35,7.35,0,0,0,.57,7.13,7.13,7.13,0,0,0,6.37,3.26l25.83-.91q1.77,2.22,3.6,4.4L73,430.16A7.36,7.36,0,0,0,81.84,439L107,433.07q2.18,1.83,4.41,3.61l-.92,25.82a7.35,7.35,0,0,0,10.39,6.95l23.43-10.68c1.69.94,3.42,1.83,5.14,2.73l4.15,25.42a7.34,7.34,0,0,0,11.54,4.78l20.83-15c1.86.6,3.76,1.13,5.65,1.68l9,24a7.36,7.36,0,0,0,12.25,2.44l17.5-18.72c1.95.21,3.92.38,5.88.55l13.51,21.82a7.35,7.35,0,0,0,12.5,0l13.51-21.82c2-.17,3.93-.34,5.88-.56l17.5,18.73a7.36,7.36,0,0,0,12.25-2.44l9-24c1.89-.55,3.78-1.08,5.65-1.68l20.82,15a7.34,7.34,0,0,0,11.54-4.78l4.15-25.42c1.72-.9,3.45-1.79,5.15-2.73l23.42,10.68a7.35,7.35,0,0,0,10.39-6.95l-.91-25.82q2.22-1.79,4.4-3.61L430.16,439a7.36,7.36,0,0,0,8.84-8.84L433.07,405q1.83-2.17,3.61-4.4l25.82.91a7.23,7.23,0,0,0,6.37-3.26,7.35,7.35,0,0,0,.58-7.13L458.77,367.7c.94-1.7,1.83-3.43,2.73-5.15l25.42-4.15a7.35,7.35,0,0,0,4.79-11.54l-15-20.83c.59-1.87,1.13-3.76,1.67-5.65l24-9a7.35,7.35,0,0,0,2.44-12.25l-18.72-17.5c.21-1.95.38-3.91.55-5.87l21.82-13.51a7.35,7.35,0,0,0,0-12.5Zm-151,129.08A13.91,13.91,0,0,0,341,389.51l-7.64,35.67A187.51,187.51,0,0,1,177,424.44l-7.64-35.66a13.87,13.87,0,0,0-16.46-10.68l-31.51,6.76a187.38,187.38,0,0,1-16.26-19.21H258.3c1.72,0,2.89-.29,2.89-1.91V309.55c0-1.57-1.17-1.91-2.89-1.91H213.47l.05-34.35H262c4.41,0,23.66,1.28,29.79,25.87,1.91,7.55,6.17,32.14,9.06,40,2.89,8.82,14.6,26.46,27.1,26.46H407a187.3,187.3,0,0,1-17.34,20.09Zm25.77,34.49A15.24,15.24,0,1,1,368,398.08h.44A15.23,15.23,0,0,1,383.24,413.32Zm-225.62-.68a15.24,15.24,0,1,1-15.25-15.25h.45A15.25,15.25,0,0,1,157.62,412.64ZM69.57,234.15l32.83-14.6a13.88,13.88,0,0,0,7.06-18.33L102.69,186h26.56V305.73H75.65A187.65,187.65,0,0,1,69.57,234.15ZM58.31,198.09a15.24,15.24,0,0,1,15.23-15.25H74a15.24,15.24,0,1,1-15.67,15.24Zm155.16,24.49.05-35.32h63.26c3.28,0,23.07,3.77,23.07,18.62,0,12.29-15.19,16.7-27.68,16.7ZM399,306.71c-9.8,1.13-20.63-4.12-22-10.09-5.78-32.49-15.39-39.4-30.57-51.4,18.86-11.95,38.46-29.64,38.46-53.26,0-25.52-17.49-41.59-29.4-49.48-16.76-11-35.28-13.23-40.27-13.23H116.32A187.49,187.49,0,0,1,221.21,70.06l23.47,24.6a13.82,13.82,0,0,0,19.6.44l26.26-25a187.51,187.51,0,0,1,128.37,91.43l-18,40.57A14,14,0,0,0,408,220.43l34.59,15.33a187.12,187.12,0,0,1,.4,32.54H423.71c-1.91,0-2.69,1.27-2.69,3.13v8.82C421,301,409.31,305.58,399,306.71ZM240,60.21A15.24,15.24,0,0,1,255.21,45h.45A15.24,15.24,0,1,1,240,60.21ZM436.84,214a15.24,15.24,0,1,1,0-30.48h.44a15.24,15.24,0,0,1-.44,30.48Z"], - "wix": [640, 512, [], "f5cf", "M393.38 131.69c0 13.03 2.08 32.69-28.68 43.83-9.52 3.45-15.95 9.66-15.95 9.66 0-31 4.72-42.22 17.4-48.86 9.75-5.11 27.23-4.63 27.23-4.63zm-115.8 35.54l-34.24 132.66-28.48-108.57c-7.69-31.99-20.81-48.53-48.43-48.53-27.37 0-40.66 16.18-48.43 48.53L89.52 299.89 55.28 167.23C49.73 140.51 23.86 128.96 0 131.96l65.57 247.93s21.63 1.56 32.46-3.96c14.22-7.25 20.98-12.84 29.59-46.57 7.67-30.07 29.11-118.41 31.12-124.7 4.76-14.94 11.09-13.81 15.4 0 1.97 6.3 23.45 94.63 31.12 124.7 8.6 33.73 15.37 39.32 29.59 46.57 10.82 5.52 32.46 3.96 32.46 3.96l65.57-247.93c-24.42-3.07-49.82 8.93-55.3 35.27zm115.78 5.21s-4.1 6.34-13.46 11.57c-6.01 3.36-11.78 5.64-17.97 8.61-15.14 7.26-13.18 13.95-13.18 35.2v152.07s16.55 2.09 27.37-3.43c13.93-7.1 17.13-13.95 17.26-44.78V181.41l-.02.01v-8.98zm163.44 84.08L640 132.78s-35.11-5.98-52.5 9.85c-13.3 12.1-24.41 29.55-54.18 72.47-.47.73-6.25 10.54-13.07 0-29.29-42.23-40.8-60.29-54.18-72.47-17.39-15.83-52.5-9.85-52.5-9.85l83.2 123.74-82.97 123.36s36.57 4.62 53.95-11.21c11.49-10.46 17.58-20.37 52.51-70.72 6.81-10.52 12.57-.77 13.07 0 29.4 42.38 39.23 58.06 53.14 70.72 17.39 15.83 53.32 11.21 53.32 11.21L556.8 256.52z"], - "square-behance": [448, 512, ["behance-square"], "f1b5", "M155.3 318.4c17.2 0 31.2-6.1 31.2-25.4c0-19.7-11.7-27.4-30.3-27.5h-46v52.9h45.1zm-5.4-129.6H110.3v44.8H153c15.1 0 25.8-6.6 25.8-22.9c0-17.7-13.7-21.9-28.9-21.9zm129.5 74.8h62.2c-1.7-18.5-11.3-29.7-30.5-29.7c-18.3 0-30.5 11.4-31.7 29.7zM384 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64zM349.5 185H271.7V166.1h77.8V185zM193.7 243.7c23.6 6.7 35 27.5 35 51.6c0 39-32.7 55.7-67.6 55.9H68v-192h90.5c32.9 0 61.4 9.3 61.4 47.5c0 19.3-9 28.8-26.2 37zm118.7-38.6c43.5 0 67.6 34.3 67.6 75.4c0 1.6-.1 3.3-.2 5c0 .8-.1 1.5-.1 2.2H279.5c0 22.2 11.7 35.3 34.1 35.3c11.6 0 26.5-6.2 30.2-18.1h33.7c-10.4 31.9-31.9 46.8-65.1 46.8c-43.8 0-71.1-29.7-71.1-73c0-41.8 28.7-73.6 71.1-73.6z"], - "supple": [640, 512, [], "f3f9", "M640 262.5c0 64.1-109 116.1-243.5 116.1-24.8 0-48.6-1.8-71.1-5 7.7.4 15.5.6 23.4.6 134.5 0 243.5-56.9 243.5-127.1 0-29.4-19.1-56.4-51.2-78 60 21.1 98.9 55.1 98.9 93.4zM47.7 227.9c-.1-70.2 108.8-127.3 243.3-127.6 7.9 0 15.6.2 23.3.5-22.5-3.2-46.3-4.9-71-4.9C108.8 96.3-.1 148.5 0 212.6c.1 38.3 39.1 72.3 99.3 93.3-32.3-21.5-51.5-48.6-51.6-78zm60.2 39.9s10.5 13.2 29.3 13.2c17.9 0 28.4-11.5 28.4-25.1 0-28-40.2-25.1-40.2-39.7 0-5.4 5.3-9.1 12.5-9.1 5.7 0 11.3 2.6 11.3 6.6v3.9h14.2v-7.9c0-12.1-15.4-16.8-25.4-16.8-16.5 0-28.5 10.2-28.5 24.1 0 26.6 40.2 25.4 40.2 39.9 0 6.6-5.8 10.1-12.3 10.1-11.9 0-20.7-10.1-20.7-10.1l-8.8 10.9zm120.8-73.6v54.4c0 11.3-7.1 17.8-17.8 17.8-10.7 0-17.8-6.5-17.8-17.7v-54.5h-15.8v55c0 18.9 13.4 31.9 33.7 31.9 20.1 0 33.4-13 33.4-31.9v-55h-15.7zm34.4 85.4h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.8-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5.1 14.7-14 14.7h-12.6zm57 43h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.7-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5 14.7-14 14.7h-12.6zm57.1 34.8c0 5.8 2.4 8.2 8.2 8.2h37.6c5.8 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-18.6c-1.7 0-2.6-1-2.6-2.6v-61.2c0-5.7-2.4-8.2-8.2-8.2H401v13.4h5.2c1.7 0 2.6 1 2.6 2.6v61.2zm63.4 0c0 5.8 2.4 8.2 8.2 8.2H519c5.7 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-19.7c-1.7 0-2.6-1-2.6-2.6v-20.3h27.7v-13.4H488v-22.4h19.2c1.7 0 2.6 1 2.6 2.6v5.2H524v-13c0-5.7-2.5-8.2-8.2-8.2h-51.6v13.4h7.8v63.9zm58.9-76v5.9h1.6v-5.9h2.7v-1.2h-7v1.2h2.7zm5.7-1.2v7.1h1.5v-5.7l2.3 5.7h1.3l2.3-5.7v5.7h1.5v-7.1h-2.3l-2.1 5.1-2.1-5.1h-2.4z"], - "webflow": [640, 512, [], "e65c", "M640 64L435.8 463.2H244l85.5-165.5h-3.8C255.1 389.3 149.9 449.5 0 463.2V300.1s95.9-5.7 152.3-64.9H0V64H171.1V204.8l3.8 0L244.9 64H374.3V203.9l3.8 0L450.7 64H640z"], - "rebel": [512, 512, [], "f1d0", "M256.5 504C117.2 504 9 387.8 13.2 249.9 16 170.7 56.4 97.7 129.7 49.5c.3 0 1.9-.6 1.1.8-5.8 5.5-111.3 129.8-14.1 226.4 49.8 49.5 90 2.5 90 2.5 38.5-50.1-.6-125.9-.6-125.9-10-24.9-45.7-40.1-45.7-40.1l28.8-31.8c24.4 10.5 43.2 38.7 43.2 38.7.8-29.6-21.9-61.4-21.9-61.4L255.1 8l44.3 50.1c-20.5 28.8-21.9 62.6-21.9 62.6 13.8-23 43.5-39.3 43.5-39.3l28.5 31.8c-27.4 8.9-45.4 39.9-45.4 39.9-15.8 28.5-27.1 89.4.6 127.3 32.4 44.6 87.7-2.8 87.7-2.8 102.7-91.9-10.5-225-10.5-225-6.1-5.5.8-2.8.8-2.8 50.1 36.5 114.6 84.4 116.2 204.8C500.9 400.2 399 504 256.5 504z"], - "css3": [512, 512, [], "f13c", "M480 32l-64 368-223.3 80L0 400l19.6-94.8h82l-8 40.6L210 390.2l134.1-44.4 18.8-97.1H29.5l16-82h333.7l10.5-52.7H56.3l16.3-82H480z"], - "staylinked": [440, 512, [], "f3f5", "M382.7 292.5l2.7 2.7-170-167.3c-3.5-3.5-9.7-3.7-13.8-.5L144.3 171c-4.2 3.2-4.6 8.7-1.1 12.2l68.1 64.3c3.6 3.5 9.9 3.7 14 .5l.1-.1c4.1-3.2 10.4-3 14 .5l84 81.3c3.6 3.5 3.2 9-.9 12.2l-93.2 74c-4.2 3.3-10.5 3.1-14.2-.4L63.2 268c-3.5-3.5-9.7-3.7-13.9-.5L3.5 302.4c-4.2 3.2-4.7 8.7-1.2 12.2L211 510.7s7.4 6.8 17.3-.8l198-163.9c4-3.2 4.4-8.7.7-12.2zm54.5-83.4L226.7 2.5c-1.5-1.2-8-5.5-16.3 1.1L3.6 165.7c-4.2 3.2-4.8 8.7-1.2 12.2l42.3 41.7 171.7 165.1c3.7 3.5 10.1 3.7 14.3.4l50.2-38.8-.3-.3 7.7-6c4.2-3.2 4.6-8.7.9-12.2l-57.1-54.4c-3.6-3.5-10-3.7-14.2-.5l-.1.1c-4.2 3.2-10.5 3.1-14.2-.4L109 180.8c-3.6-3.5-3.1-8.9 1.1-12.2l92.2-71.5c4.1-3.2 10.3-3 13.9.5l160.4 159c3.7 3.5 10 3.7 14.1.5l45.8-35.8c4.1-3.2 4.4-8.7.7-12.2z"], - "kaggle": [320, 512, [], "f5fa", "M304.2 501.5L158.4 320.3 298.2 185c2.6-2.7 1.7-10.5-5.3-10.5h-69.2c-3.5 0-7 1.8-10.5 5.3L80.9 313.5V7.5q0-7.5-7.5-7.5H21.5Q14 0 14 7.5v497q0 7.5 7.5 7.5h51.9q7.5 0 7.5-7.5v-109l30.8-29.3 110.5 140.6c3 3.5 6.5 5.3 10.5 5.3h66.9q5.25 0 6-3z"], - "space-awesome": [512, 512, [], "e5ac", "M96 256H128V512H0V352H32V320H64V288H96V256zM512 352V512H384V256H416V288H448V320H480V352H512zM320 64H352V448H320V416H192V448H160V64H192V32H224V0H288V32H320V64zM288 128H224V192H288V128z"], - "deviantart": [320, 512, [], "f1bd", "M320 93.2l-98.2 179.1 7.4 9.5H320v127.7H159.1l-13.5 9.2-43.7 84c-.3 0-8.6 8.6-9.2 9.2H0v-93.2l93.2-179.4-7.4-9.2H0V102.5h156l13.5-9.2 43.7-84c.3 0 8.6-8.6 9.2-9.2H320v93.1z"], - "cpanel": [640, 512, [], "f388", "M210.3 220.2c-5.6-24.8-26.9-41.2-51-41.2h-37c-7.1 0-12.5 4.5-14.3 10.9L73.1 320l24.7-.1c6.8 0 12.3-4.5 14.2-10.7l25.8-95.7h19.8c8.4 0 16.2 5.6 18.3 14.8 2.5 10.9-5.9 22.6-18.3 22.6h-10.3c-7 0-12.5 4.6-14.3 10.8l-6.4 23.8h32c37.2 0 58.3-36.2 51.7-65.3zm-156.5 28h18.6c6.9 0 12.4-4.4 14.3-10.9l6.2-23.6h-40C30 213.7 9 227.8 1.7 254.8-7 288.6 18.5 320 52 320h12.4l7.1-26.1c1.2-4.4-2.2-8.3-6.4-8.3H53.8c-24.7 0-24.9-37.4 0-37.4zm247.5-34.8h-77.9l-3.5 13.4c-2.4 9.6 4.5 18.5 14.2 18.5h57.5c4 0 2.4 4.3 2.1 5.3l-8.6 31.8c-.4 1.4-.9 5.3-5.5 5.3h-34.9c-5.3 0-5.3-7.9 0-7.9h21.6c6.8 0 12.3-4.6 14.2-10.8l3.5-13.2h-48.4c-39.2 0-43.6 63.8-.7 63.8l57.5.2c11.2 0 20.6-7.2 23.4-17.8l14-51.8c4.8-19.2-9.7-36.8-28.5-36.8zM633.1 179h-18.9c-4.9 0-9.2 3.2-10.4 7.9L568.2 320c20.7 0 39.8-13.8 44.9-34.5l26.5-98.2c1.2-4.3-2-8.3-6.5-8.3zm-236.3 34.7v.1h-48.3l-26.2 98c-1.2 4.4 2.2 8.3 6.4 8.3h18.9c4.8 0 9.2-3 10.4-7.8l17.2-64H395c12.5 0 21.4 11.8 18.1 23.4l-10.6 40c-1.2 4.3 1.9 8.3 6.4 8.3H428c4.6 0 9.1-2.9 10.3-7.8l8.8-33.1c9-33.1-15.9-65.4-50.3-65.4zm98.3 74.6c-3.6 0-6-3.4-5.1-6.7l8-30c.9-3.9 3.7-6 7.8-6h32.9c2.6 0 4.6 2.4 3.9 5.1l-.7 2.6c-.6 2-1.9 3-3.9 3h-21.6c-7 0-12.6 4.6-14.2 10.8l-3.5 13h53.4c10.5 0 20.3-6.6 23.2-17.6l3.2-12c4.9-19.1-9.3-36.8-28.3-36.8h-47.3c-17.9 0-33.8 12-38.6 29.6l-10.8 40c-5 17.7 8.3 36.7 28.3 36.7h66.7c6.8 0 12.3-4.5 14.2-10.7l5.7-21z"], - "goodreads-g": [384, 512, [], "f3a9", "M42.6 403.3h2.8c12.7 0 25.5 0 38.2.1 1.6 0 3.1-.4 3.6 2.1 7.1 34.9 30 54.6 62.9 63.9 26.9 7.6 54.1 7.8 81.3 1.8 33.8-7.4 56-28.3 68-60.4 8-21.5 10.7-43.8 11-66.5.1-5.8.3-47-.2-52.8l-.9-.3c-.8 1.5-1.7 2.9-2.5 4.4-22.1 43.1-61.3 67.4-105.4 69.1-103 4-169.4-57-172-176.2-.5-23.7 1.8-46.9 8.3-69.7C58.3 47.7 112.3.6 191.6 0c61.3-.4 101.5 38.7 116.2 70.3.5 1.1 1.3 2.3 2.4 1.9V10.6h44.3c0 280.3.1 332.2.1 332.2-.1 78.5-26.7 143.7-103 162.2-69.5 16.9-159 4.8-196-57.2-8-13.5-11.8-28.3-13-44.5zM188.9 36.5c-52.5-.5-108.5 40.7-115 133.8-4.1 59 14.8 122.2 71.5 148.6 27.6 12.9 74.3 15 108.3-8.7 47.6-33.2 62.7-97 54.8-154-9.7-71.1-47.8-120-119.6-119.7z"], - "square-git": [448, 512, ["git-square"], "f1d2", "M120.8 335.5c-5.9-.4-12.6-.8-20.2-1.3c-3.3 4.1-6.6 8.4-6.6 13.5c0 18.5 65.5 18.5 65.5-1.5c0-8.3-7.4-8.7-38.8-10.7zm7.8-117.9c-32.3 0-33.7 44.5-.7 44.5c32.5 0 31.7-44.5 .7-44.5zM384 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64zM243.9 172.2c-14.5 0-22.9-8.4-22.9-22.9c0-14.5 8.4-22.3 22.9-22.3c14.7 0 23.1 7.8 23.1 22.3s-8.4 22.9-23.1 22.9zM149.6 195h49.5l0 21.6-23.4 1.8c4.6 5.8 9.4 14 9.4 25.7c0 48.7-57.2 47.2-74.2 42.4l-8.4 13.4c5 .3 9.8 .6 14.3 .8c56.3 3.2 80.5 4.6 80.5 38.5c0 29.2-25.7 45.7-69.9 45.7c-46 0-63.5-11.6-63.5-31.7c0-11.4 5.1-17.5 14-25.9c-8.4-3.5-11.2-9.9-11.2-16.8c0-9.6 7.4-16.3 23-30.6l.2-.2c-12.4-6.1-21.8-19.3-21.8-38.1c0-51.6 56.6-53.3 81.6-46.8zM270.5 303.1l13 1.8 0 20.1H211.1V304.9c2.7-.4 5-.7 6.9-.9c9.9-1.2 10.1-1.3 10.1-6V223.3c0-4.4-.9-4.7-10.1-7.8c-1.9-.7-4.2-1.4-6.9-2.4l2.8-20.6h52.6V298c0 4.1 .2 4.6 4.1 5.1zm106.6-10.4L384 315c-10.9 5.4-26.9 10.2-41.4 10.2c-30.2 0-41.7-12.2-41.7-40.9V217.7c0-.8 0-1.4-.2-1.8c-.8-1.2-4.2-.7-19.6-.7V192.6c22.3-2.5 31.2-13.7 34-41.4h24.2c0 33.3-.6 38 .7 38.6c.3 .1 .7 0 1.3 0h35.8v25.4H339.3v60.7c0 .2 0 .5 0 .9c-.2 6.3-.9 30.4 37.9 15.9z"], - "square-tumblr": [448, 512, ["tumblr-square"], "f174", "M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM256.8 416c-75.5 0-91.9-55.5-91.9-87.9v-90H135.2c-3.4 0-6.2-2.8-6.2-6.2V189.4c0-4.5 2.8-8.5 7.1-10c38.8-13.7 50.9-47.5 52.7-73.2c.5-6.9 4.1-10.2 10-10.2h44.3c3.4 0 6.2 2.8 6.2 6.2v72h51.9c3.4 0 6.2 2.8 6.2 6.2v51.1c0 3.4-2.8 6.2-6.2 6.2H249.1V321c0 21.4 14.8 33.5 42.5 22.4c3-1.2 5.6-2 8-1.4c2.2 .5 3.6 2.1 4.6 4.9L318 387.1c1 3.2 2 6.7-.3 9.1c-8.5 9.1-31.2 19.8-60.9 19.8z"], - "trello": [448, 512, [], "f181", "M392.3 32H56.1C25.1 32 0 57.1 0 88c-.1 0 0-4 0 336 0 30.9 25.1 56 56 56h336.2c30.8-.2 55.7-25.2 55.7-56V88c.1-30.8-24.8-55.8-55.6-56zM197 371.3c-.2 14.7-12.1 26.6-26.9 26.6H87.4c-14.8.1-26.9-11.8-27-26.6V117.1c0-14.8 12-26.9 26.9-26.9h82.9c14.8 0 26.9 12 26.9 26.9v254.2zm193.1-112c0 14.8-12 26.9-26.9 26.9h-81c-14.8 0-26.9-12-26.9-26.9V117.2c0-14.8 12-26.9 26.8-26.9h81.1c14.8 0 26.9 12 26.9 26.9v142.1z"], - "creative-commons-nc-jp": [496, 512, [], "f4ea", "M247.7 8C103.6 8 0 124.8 0 256c0 136.4 111.8 248 247.7 248C377.9 504 496 403.2 496 256 496 117.2 388.5 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-21.1 3-41.2 9-60.3l127 56.5h-27.9v38.6h58.1l5.7 11.8v18.7h-63.8V360h63.8v56h61.7v-56h64.2v-35.7l81 36.1c-1.5 2.2-57.1 98.3-175.2 98.3zm87.6-137.3h-57.6v-18.7l2.9-5.6 54.7 24.3zm6.5-51.4v-17.8h-38.6l63-116H301l-43.4 96-23-10.2-39.6-85.7h-65.8l27.3 51-81.9-36.5c27.8-44.1 82.6-98.1 173.7-98.1 112.8 0 203 90 203 203.4 0 21-2.7 40.6-7.9 59l-101-45.1z"], - "get-pocket": [448, 512, [], "f265", "M407.6 64h-367C18.5 64 0 82.5 0 104.6v135.2C0 364.5 99.7 464 224.2 464c124 0 223.8-99.5 223.8-224.2V104.6c0-22.4-17.7-40.6-40.4-40.6zm-162 268.5c-12.4 11.8-31.4 11.1-42.4 0C89.5 223.6 88.3 227.4 88.3 209.3c0-16.9 13.8-30.7 30.7-30.7 17 0 16.1 3.8 105.2 89.3 90.6-86.9 88.6-89.3 105.5-89.3 16.9 0 30.7 13.8 30.7 30.7 0 17.8-2.9 15.7-114.8 123.2z"], - "perbyte": [448, 512, [], "e083", "M305.314,284.578H246.6V383.3h58.711q24.423,0,38.193-13.77t13.77-36.11q0-21.826-14.032-35.335T305.314,284.578ZM149.435,128.7H90.724v98.723h58.711q24.42,0,38.19-13.773t13.77-36.107q0-21.826-14.029-35.338T149.435,128.7ZM366.647,32H81.353A81.445,81.445,0,0,0,0,113.352V398.647A81.445,81.445,0,0,0,81.353,480H366.647A81.445,81.445,0,0,0,448,398.647V113.352A81.445,81.445,0,0,0,366.647,32Zm63.635,366.647a63.706,63.706,0,0,1-63.635,63.635H81.353a63.706,63.706,0,0,1-63.635-63.635V113.352A63.706,63.706,0,0,1,81.353,49.718H366.647a63.706,63.706,0,0,1,63.635,63.634ZM305.314,128.7H246.6v98.723h58.711q24.423,0,38.193-13.773t13.77-36.107q0-21.826-14.032-35.338T305.314,128.7Z"], - "grunt": [384, 512, [], "f3ad", "M61.3 189.3c-1.1 10 5.2 19.1 5.2 19.1.7-7.5 2.2-12.8 4-16.6.4 10.3 3.2 23.5 12.8 34.1 6.9 7.6 35.6 23.3 54.9 6.1 1 2.4 2.1 5.3 3 8.5 2.9 10.3-2.7 25.3-2.7 25.3s15.1-17.1 13.9-32.5c10.8-.5 21.4-8.4 21.1-19.5 0 0-18.9 10.4-35.5-8.8-9.7-11.2-40.9-42-83.1-31.8 4.3 1 8.9 2.4 13.5 4.1h-.1c-4.2 2-6.5 7.1-7 12zm28.3-1.8c19.5 11 37.4 25.7 44.9 37-5.7 3.3-21.7 10.4-38-1.7-10.3-7.6-9.8-26.2-6.9-35.3zm142.1 45.8c-1.2 15.5 13.9 32.5 13.9 32.5s-5.6-15-2.7-25.3c.9-3.2 2-6 3-8.5 19.3 17.3 48 1.5 54.8-6.1 9.6-10.6 12.3-23.8 12.8-34.1 1.8 3.8 3.4 9.1 4 16.6 0 0 6.4-9.1 5.2-19.1-.6-5-2.9-10-7-11.8h-.1c4.6-1.8 9.2-3.2 13.5-4.1-42.3-10.2-73.4 20.6-83.1 31.8-16.7 19.2-35.5 8.8-35.5 8.8-.2 10.9 10.4 18.9 21.2 19.3zm62.7-45.8c3 9.1 3.4 27.7-7 35.4-16.3 12.1-32.2 5-37.9 1.6 7.5-11.4 25.4-26 44.9-37zM160 418.5h-29.4c-5.5 0-8.2 1.6-9.5 2.9-1.9 2-2.2 4.7-.9 8.1 3.5 9.1 11.4 16.5 13.7 18.6 3.1 2.7 7.5 4.3 11.8 4.3 4.4 0 8.3-1.7 11-4.6 7.5-8.2 11.9-17.1 13-19.8.6-1.5 1.3-4.5-.9-6.8-1.8-1.8-4.7-2.7-8.8-2.7zm189.2-101.2c-2.4 17.9-13 33.8-24.6 43.7-3.1-22.7-3.7-55.5-3.7-62.4 0-14.7 9.5-24.5 12.2-26.1 2.5-1.5 5.4-3 8.3-4.6 18-9.6 40.4-21.6 40.4-43.7 0-16.2-9.3-23.2-15.4-27.8-.8-.6-1.5-1.1-2.2-1.7-2.1-1.7-3.7-3-4.3-4.4-4.4-9.8-3.6-34.2-1.7-37.6.6-.6 16.7-20.9 11.8-39.2-2-7.4-6.9-13.3-14.1-17-5.3-2.7-11.9-4.2-19.5-4.5-.1-2-.5-3.9-.9-5.9-.6-2.6-1.1-5.3-.9-8.1.4-4.7.8-9 2.2-11.3 8.4-13.3 28.8-17.6 29-17.6l12.3-2.4-8.1-9.5c-.1-.2-17.3-17.5-46.3-17.5-7.9 0-16 1.3-24.1 3.9-24.2 7.8-42.9 30.5-49.4 39.3-3.1-1-6.3-1.9-9.6-2.7-4.2-15.8 9-38.5 9-38.5s-13.6-3-33.7 15.2c-2.6-6.5-8.1-20.5-1.8-37.2C184.6 10.1 177.2 26 175 40.4c-7.6-5.4-6.7-23.1-7.2-27.6-7.5.9-29.2 21.9-28.2 48.3-2 .5-3.9 1.1-5.9 1.7-6.5-8.8-25.1-31.5-49.4-39.3-7.9-2.2-16-3.5-23.9-3.5-29 0-46.1 17.3-46.3 17.5L6 46.9l12.3 2.4c.2 0 20.6 4.3 29 17.6 1.4 2.2 1.8 6.6 2.2 11.3.2 2.8-.4 5.5-.9 8.1-.4 1.9-.8 3.9-.9 5.9-7.7.3-14.2 1.8-19.5 4.5-7.2 3.7-12.1 9.6-14.1 17-5 18.2 11.2 38.5 11.8 39.2 1.9 3.4 2.7 27.8-1.7 37.6-.6 1.4-2.2 2.7-4.3 4.4-.7.5-1.4 1.1-2.2 1.7-6.1 4.6-15.4 11.7-15.4 27.8 0 22.1 22.4 34.1 40.4 43.7 3 1.6 5.8 3.1 8.3 4.6 2.7 1.6 12.2 11.4 12.2 26.1 0 6.9-.6 39.7-3.7 62.4-11.6-9.9-22.2-25.9-24.6-43.8 0 0-29.2 22.6-20.6 70.8 5.2 29.5 23.2 46.1 47 54.7 8.8 19.1 29.4 45.7 67.3 49.6C143 504.3 163 512 192.2 512h.2c29.1 0 49.1-7.7 63.6-19.5 37.9-3.9 58.5-30.5 67.3-49.6 23.8-8.7 41.7-25.2 47-54.7 8.2-48.4-21.1-70.9-21.1-70.9zM305.7 37.7c5.6-1.8 11.6-2.7 17.7-2.7 11 0 19.9 3 24.7 5-3.1 1.4-6.4 3.2-9.7 5.3-2.4-.4-5.6-.8-9.2-.8-10.5 0-20.5 3.1-28.7 8.9-12.3 8.7-18 16.9-20.7 22.4-2.2-1.3-4.5-2.5-7.1-3.7-1.6-.8-3.1-1.5-4.7-2.2 6.1-9.1 19.9-26.5 37.7-32.2zm21 18.2c-.8 1-1.6 2.1-2.3 3.2-3.3 5.2-3.9 11.6-4.4 17.8-.5 6.4-1.1 12.5-4.4 17-4.2.8-8.1 1.7-11.5 2.7-2.3-3.1-5.6-7-10.5-11.2 1.4-4.8 5.5-16.1 13.5-22.5 5.6-4.3 12.2-6.7 19.6-7zM45.6 45.3c-3.3-2.2-6.6-4-9.7-5.3 4.8-2 13.7-5 24.7-5 6.1 0 12 .9 17.7 2.7 17.8 5.8 31.6 23.2 37.7 32.1-1.6.7-3.2 1.4-4.8 2.2-2.5 1.2-4.9 2.5-7.1 3.7-2.6-5.4-8.3-13.7-20.7-22.4-8.3-5.8-18.2-8.9-28.8-8.9-3.4.1-6.6.5-9 .9zm44.7 40.1c-4.9 4.2-8.3 8-10.5 11.2-3.4-.9-7.3-1.9-11.5-2.7C65 89.5 64.5 83.4 64 77c-.5-6.2-1.1-12.6-4.4-17.8-.7-1.1-1.5-2.2-2.3-3.2 7.4.3 14 2.6 19.5 7 8 6.3 12.1 17.6 13.5 22.4zM58.1 259.9c-2.7-1.6-5.6-3.1-8.4-4.6-14.9-8-30.2-16.3-30.2-30.5 0-11.1 4.3-14.6 8.9-18.2l.5-.4c.7-.6 1.4-1.2 2.2-1.8-.9 7.2-1.9 13.3-2.7 14.9 0 0 12.1-15 15.7-44.3 1.4-11.5-1.1-34.3-5.1-43 .2 4.9 0 9.8-.3 14.4-.4-.8-.8-1.6-1.3-2.2-3.2-4-11.8-17.5-9.4-26.6.9-3.5 3.1-6 6.7-7.8 3.8-1.9 8.8-2.9 15.1-2.9 12.3 0 25.9 3.7 32.9 6 25.1 8 55.4 30.9 64.1 37.7.2.2.4.3.4.3l5.6 3.9-3.5-5.8c-.2-.3-19.1-31.4-53.2-46.5 2-2.9 7.4-8.1 21.6-15.1 21.4-10.5 46.5-15.8 74.3-15.8 27.9 0 52.9 5.3 74.3 15.8 14.2 6.9 19.6 12.2 21.6 15.1-34 15.1-52.9 46.2-53.1 46.5l-3.5 5.8 5.6-3.9s.2-.1.4-.3c8.7-6.8 39-29.8 64.1-37.7 7-2.2 20.6-6 32.9-6 6.3 0 11.3 1 15.1 2.9 3.5 1.8 5.7 4.4 6.7 7.8 2.5 9.1-6.1 22.6-9.4 26.6-.5.6-.9 1.3-1.3 2.2-.3-4.6-.5-9.5-.3-14.4-4 8.8-6.5 31.5-5.1 43 3.6 29.3 15.7 44.3 15.7 44.3-.8-1.6-1.8-7.7-2.7-14.9.7.6 1.5 1.2 2.2 1.8l.5.4c4.6 3.7 8.9 7.1 8.9 18.2 0 14.2-15.4 22.5-30.2 30.5-2.9 1.5-5.7 3.1-8.4 4.6-8.7 5-18 16.7-19.1 34.2-.9 14.6.9 49.9 3.4 75.9-12.4 4.8-26.7 6.4-39.7 6.8-2-4.1-3.9-8.5-5.5-13.1-.7-2-19.6-51.1-26.4-62.2 5.5 39 17.5 73.7 23.5 89.6-3.5-.5-7.3-.7-11.7-.7h-117c-4.4 0-8.3.3-11.7.7 6-15.9 18.1-50.6 23.5-89.6-6.8 11.2-25.7 60.3-26.4 62.2-1.6 4.6-3.5 9-5.5 13.1-13-.4-27.2-2-39.7-6.8 2.5-26 4.3-61.2 3.4-75.9-.9-17.4-10.3-29.2-19-34.2zM34.8 404.6c-12.1-20-8.7-54.1-3.7-59.1 10.9 34.4 47.2 44.3 74.4 45.4-2.7 4.2-5.2 7.6-7 10l-1.4 1.4c-7.2 7.8-8.6 18.5-4.1 31.8-22.7-.1-46.3-9.8-58.2-29.5zm45.7 43.5c6 1.1 12.2 1.9 18.6 2.4 3.5 8 7.4 15.9 12.3 23.1-14.4-5.9-24.4-16-30.9-25.5zM192 498.2c-60.6-.1-78.3-45.8-84.9-64.7-3.7-10.5-3.4-18.2.9-23.1 2.9-3.3 9.5-7.2 24.6-7.2h118.8c15.1 0 21.8 3.9 24.6 7.2 4.2 4.8 4.5 12.6.9 23.1-6.6 18.8-24.3 64.6-84.9 64.7zm80.6-24.6c4.9-7.2 8.8-15.1 12.3-23.1 6.4-.5 12.6-1.3 18.6-2.4-6.5 9.5-16.5 19.6-30.9 25.5zm76.6-69c-12 19.7-35.6 29.3-58.1 29.7 4.5-13.3 3.1-24.1-4.1-31.8-.4-.5-.9-1-1.4-1.5-1.8-2.4-4.3-5.8-7-10 27.2-1.2 63.5-11 74.4-45.4 5 5 8.4 39.1-3.8 59zM191.9 187.7h.2c12.7-.1 27.2-17.8 27.2-17.8-9.9 6-18.8 8.1-27.3 8.3-8.5-.2-17.4-2.3-27.3-8.3 0 0 14.5 17.6 27.2 17.8zm61.7 230.7h-29.4c-4.2 0-7.2.9-8.9 2.7-2.2 2.3-1.5 5.2-.9 6.7 1 2.6 5.5 11.3 13 19.3 2.7 2.9 6.6 4.5 11 4.5s8.7-1.6 11.8-4.2c2.3-2 10.2-9.2 13.7-18.1 1.3-3.3 1-6-.9-7.9-1.3-1.3-4-2.9-9.4-3z"], - "weebly": [512, 512, [], "f5cc", "M425.09 65.83c-39.88 0-73.28 25.73-83.66 64.33-18.16-58.06-65.5-64.33-84.95-64.33-19.78 0-66.8 6.28-85.28 64.33-10.38-38.6-43.45-64.33-83.66-64.33C38.59 65.83 0 99.72 0 143.03c0 28.96 4.18 33.27 77.17 233.48 22.37 60.57 67.77 69.35 92.74 69.35 39.23 0 70.04-19.46 85.93-53.98 15.89 34.83 46.69 54.29 85.93 54.29 24.97 0 70.36-9.1 92.74-69.67 76.55-208.65 77.5-205.58 77.5-227.2.63-48.32-36.01-83.47-86.92-83.47zm26.34 114.81l-65.57 176.44c-7.92 21.49-21.22 37.22-46.24 37.22-23.44 0-37.38-12.41-44.03-33.9l-39.28-117.42h-.95L216.08 360.4c-6.96 21.5-20.9 33.6-44.02 33.6-25.02 0-38.33-15.74-46.24-37.22L60.88 181.55c-5.38-14.83-7.92-23.91-7.92-34.5 0-16.34 15.84-29.36 38.33-29.36 18.69 0 31.99 11.8 36.11 29.05l44.03 139.82h.95l44.66-136.79c6.02-19.67 16.47-32.08 38.96-32.08s32.94 12.11 38.96 32.08l44.66 136.79h.95l44.03-139.82c4.12-17.25 17.42-29.05 36.11-29.05 22.17 0 38.33 13.32 38.33 35.71-.32 7.87-4.12 16.04-7.61 27.24z"], - "connectdevelop": [576, 512, [], "f20e", "M550.5 241l-50.089-86.786c1.071-2.142 1.875-4.553 1.875-7.232 0-8.036-6.696-14.733-14.732-15.001l-55.447-95.893c.536-1.607 1.071-3.214 1.071-4.821 0-8.571-6.964-15.268-15.268-15.268-4.821 0-8.839 2.143-11.786 5.625H299.518C296.839 18.143 292.821 16 288 16s-8.839 2.143-11.518 5.625H170.411C167.464 18.143 163.447 16 158.625 16c-8.303 0-15.268 6.696-15.268 15.268 0 1.607.536 3.482 1.072 4.821l-55.983 97.233c-5.356 2.41-9.107 7.5-9.107 13.661 0 .535.268 1.071.268 1.607l-53.304 92.143c-7.232 1.339-12.59 7.5-12.59 15 0 7.232 5.089 13.393 12.054 15l55.179 95.358c-.536 1.607-.804 2.946-.804 4.821 0 7.232 5.089 13.393 12.054 14.732l51.697 89.732c-.536 1.607-1.071 3.482-1.071 5.357 0 8.571 6.964 15.268 15.268 15.268 4.821 0 8.839-2.143 11.518-5.357h106.875C279.161 493.857 283.447 496 288 496s8.839-2.143 11.518-5.357h107.143c2.678 2.946 6.696 4.821 10.982 4.821 8.571 0 15.268-6.964 15.268-15.268 0-1.607-.267-2.946-.803-4.285l51.697-90.268c6.964-1.339 12.054-7.5 12.054-14.732 0-1.607-.268-3.214-.804-4.821l54.911-95.358c6.964-1.339 12.322-7.5 12.322-15-.002-7.232-5.092-13.393-11.788-14.732zM153.535 450.732l-43.66-75.803h43.66v75.803zm0-83.839h-43.66c-.268-1.071-.804-2.142-1.339-3.214l44.999-47.41v50.624zm0-62.411l-50.357 53.304c-1.339-.536-2.679-1.34-4.018-1.607L43.447 259.75c.535-1.339.535-2.679.535-4.018s0-2.41-.268-3.482l51.965-90c2.679-.268 5.357-1.072 7.768-2.679l50.089 51.965v92.946zm0-102.322l-45.803-47.41c1.339-2.143 2.143-4.821 2.143-7.767 0-.268-.268-.804-.268-1.072l43.928-15.804v72.053zm0-80.625l-43.66 15.804 43.66-75.536v59.732zm326.519 39.108l.804 1.339L445.5 329.125l-63.75-67.232 98.036-101.518.268.268zM291.75 355.107l11.518 11.786H280.5l11.25-11.786zm-.268-11.25l-83.303-85.446 79.553-84.375 83.036 87.589-79.286 82.232zm5.357 5.893l79.286-82.232 67.5 71.25-5.892 28.125H313.714l-16.875-17.143zM410.411 44.393c1.071.536 2.142 1.072 3.482 1.34l57.857 100.714v.536c0 2.946.803 5.624 2.143 7.767L376.393 256l-83.035-87.589L410.411 44.393zm-9.107-2.143L287.732 162.518l-57.054-60.268 166.339-60h4.287zm-123.483 0c2.678 2.678 6.16 4.285 10.179 4.285s7.5-1.607 10.179-4.285h75L224.786 95.821 173.893 42.25h103.928zm-116.249 5.625l1.071-2.142a33.834 33.834 0 0 0 2.679-.804l51.161 53.84-54.911 19.821V47.875zm0 79.286l60.803-21.964 59.732 63.214-79.553 84.107-40.982-42.053v-83.304zm0 92.678L198 257.607l-36.428 38.304v-76.072zm0 87.858l42.053-44.464 82.768 85.982-17.143 17.678H161.572v-59.196zm6.964 162.053c-1.607-1.607-3.482-2.678-5.893-3.482l-1.071-1.607v-89.732h99.91l-91.607 94.821h-1.339zm129.911 0c-2.679-2.41-6.428-4.285-10.447-4.285s-7.767 1.875-10.447 4.285h-96.429l91.607-94.821h38.304l91.607 94.821H298.447zm120-11.786l-4.286 7.5c-1.339.268-2.41.803-3.482 1.339l-89.196-91.875h114.376l-17.412 83.036zm12.856-22.232l12.858-60.803h21.964l-34.822 60.803zm34.822-68.839h-20.357l4.553-21.16 17.143 18.214c-.535.803-1.071 1.874-1.339 2.946zm66.161-107.411l-55.447 96.697c-1.339.535-2.679 1.071-4.018 1.874l-20.625-21.964 34.554-163.928 45.803 79.286c-.267 1.339-.803 2.678-.803 4.285 0 1.339.268 2.411.536 3.75z"], - "leanpub": [576, 512, [], "f212", "M386.539 111.485l15.096 248.955-10.979-.275c-36.232-.824-71.64 8.783-102.657 27.997-31.016-19.214-66.424-27.997-102.657-27.997-45.564 0-82.07 10.705-123.516 27.723L93.117 129.6c28.546-11.803 61.484-18.115 92.226-18.115 41.173 0 73.836 13.175 102.657 42.544 27.723-28.271 59.013-41.721 98.539-42.544zM569.07 448c-25.526 0-47.485-5.215-70.542-15.645-34.31-15.645-69.993-24.978-107.871-24.978-38.977 0-74.934 12.901-102.657 40.623-27.723-27.723-63.68-40.623-102.657-40.623-37.878 0-73.561 9.333-107.871 24.978C55.239 442.236 32.731 448 8.303 448H6.93L49.475 98.859C88.726 76.626 136.486 64 181.775 64 218.83 64 256.984 71.685 288 93.095 319.016 71.685 357.17 64 394.225 64c45.289 0 93.049 12.626 132.3 34.859L569.07 448zm-43.368-44.741l-34.036-280.246c-30.742-13.999-67.248-21.41-101.009-21.41-38.428 0-74.385 12.077-102.657 38.702-28.272-26.625-64.228-38.702-102.657-38.702-33.761 0-70.267 7.411-101.009 21.41L50.298 403.259c47.211-19.487 82.894-33.486 135.045-33.486 37.604 0 70.817 9.606 102.657 29.644 31.84-20.038 65.052-29.644 102.657-29.644 52.151 0 87.834 13.999 135.045 33.486z"], - "black-tie": [448, 512, [], "f27e", "M0 32v448h448V32H0zm316.5 325.2L224 445.9l-92.5-88.7 64.5-184-64.5-86.6h184.9L252 173.2l64.5 184z"], - "themeco": [448, 512, [], "f5c6", "M202.9 8.43c9.9-5.73 26-5.82 35.95-.21L430 115.85c10 5.6 18 19.44 18 30.86V364c0 11.44-8.06 25.29-18 31L238.81 503.74c-9.93 5.66-26 5.57-35.85-.21L17.86 395.12C8 389.34 0 375.38 0 364V146.71c0-11.44 8-25.36 17.91-31.08zm-77.4 199.83c-15.94 0-31.89.14-47.83.14v101.45H96.8V280h28.7c49.71 0 49.56-71.74 0-71.74zm140.14 100.29l-30.73-34.64c37-7.51 34.8-65.23-10.87-65.51-16.09 0-32.17-.14-48.26-.14v101.59h19.13v-33.91h18.41l29.56 33.91h22.76zm-41.59-82.32c23.34 0 23.26 32.46 0 32.46h-29.13v-32.46zm-95.56-1.6c21.18 0 21.11 38.85 0 38.85H96.18v-38.84zm192.65-18.25c-68.46 0-71 105.8 0 105.8 69.48-.01 69.41-105.8 0-105.8zm0 17.39c44.12 0 44.8 70.86 0 70.86s-44.43-70.86 0-70.86z"], - "python": [448, 512, [], "f3e2", "M439.8 200.5c-7.7-30.9-22.3-54.2-53.4-54.2h-40.1v47.4c0 36.8-31.2 67.8-66.8 67.8H172.7c-29.2 0-53.4 25-53.4 54.3v101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3v-40.7H226.2v-13.6h160.2c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6zM286.2 404c11.1 0 20.1 9.1 20.1 20.3 0 11.3-9 20.4-20.1 20.4-11 0-20.1-9.2-20.1-20.4.1-11.3 9.1-20.3 20.1-20.3zM167.8 248.1h106.8c29.7 0 53.4-24.5 53.4-54.3V91.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8.1-45.2 8-53.4 24.7-53.4 55.6v40.7h106.9v13.6h-147c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2H101v-48.8c0-35.3 30.5-66.4 66.8-66.4zm-6.7-142.6c-11.1 0-20.1-9.1-20.1-20.3.1-11.3 9-20.4 20.1-20.4 11 0 20.1 9.2 20.1 20.4s-9 20.3-20.1 20.3z"], - "android": [576, 512, [], "f17b", "M420.55,301.93a24,24,0,1,1,24-24,24,24,0,0,1-24,24m-265.1,0a24,24,0,1,1,24-24,24,24,0,0,1-24,24m273.7-144.48,47.94-83a10,10,0,1,0-17.27-10h0l-48.54,84.07a301.25,301.25,0,0,0-246.56,0L116.18,64.45a10,10,0,1,0-17.27,10h0l47.94,83C64.53,202.22,8.24,285.55,0,384H576c-8.24-98.45-64.54-181.78-146.85-226.55"], - "bots": [640, 512, [], "e340", "M86.344,197.834a51.767,51.767,0,0,0-41.57,20.058V156.018a8.19,8.19,0,0,0-8.19-8.19H8.19A8.19,8.19,0,0,0,0,156.018V333.551a8.189,8.189,0,0,0,8.19,8.189H36.584a8.189,8.189,0,0,0,8.19-8.189v-8.088c11.628,13.373,25.874,19.769,41.573,19.769,34.6,0,61.922-26.164,61.922-73.843C148.266,225.452,121.229,197.834,86.344,197.834ZM71.516,305.691c-9.593,0-21.221-4.942-26.745-12.5V250.164c5.528-7.558,17.152-12.791,26.745-12.791,17.734,0,31.107,13.082,31.107,34.013C102.623,292.609,89.25,305.691,71.516,305.691Zm156.372-59.032a17.4,17.4,0,1,0,17.4,17.4A17.4,17.4,0,0,0,227.888,246.659ZM273.956,156.7V112.039a13.308,13.308,0,1,0-10.237,0V156.7a107.49,107.49,0,1,0,10.237,0Zm85.993,107.367c0,30.531-40.792,55.281-91.112,55.281s-91.111-24.75-91.111-55.281,40.792-55.281,91.111-55.281S359.949,233.532,359.949,264.062Zm-50.163,17.4a17.4,17.4,0,1,0-17.4-17.4h0A17.4,17.4,0,0,0,309.786,281.466ZM580.7,250.455c-14.828-2.617-22.387-3.78-22.387-9.885,0-5.523,7.268-9.884,17.735-9.884a65.56,65.56,0,0,1,34.484,10.1,8.171,8.171,0,0,0,11.288-2.468c.07-.11.138-.221.2-.333l8.611-14.886a8.2,8.2,0,0,0-2.867-11.123,99.863,99.863,0,0,0-52.014-14.138c-38.956,0-60.179,21.514-60.179,46.225,0,36.342,33.725,41.864,57.563,45.642,13.373,2.326,24.13,4.361,24.13,11.048,0,6.4-5.523,10.757-18.9,10.757-13.552,0-30.994-6.222-42.623-13.579a8.206,8.206,0,0,0-11.335,2.491c-.035.054-.069.108-.1.164l-10.2,16.891a8.222,8.222,0,0,0,2.491,11.066c15.224,10.3,37.663,16.692,59.441,16.692,40.409,0,63.957-19.769,63.957-46.515C640,260.63,604.537,254.816,580.7,250.455Zm-95.928,60.787a8.211,8.211,0,0,0-9.521-5.938,23.168,23.168,0,0,1-4.155.387c-7.849,0-12.5-6.106-12.5-14.245V240.28h20.349a8.143,8.143,0,0,0,8.141-8.143V209.466a8.143,8.143,0,0,0-8.141-8.143H458.594V171.091a8.143,8.143,0,0,0-8.143-8.143H422.257a8.143,8.143,0,0,0-8.143,8.143h0v30.232H399a8.143,8.143,0,0,0-8.143,8.143h0v22.671A8.143,8.143,0,0,0,399,240.28h15.115v63.667c0,27.037,15.408,41.282,43.9,41.282,12.183,0,21.383-2.2,27.6-5.446a8.161,8.161,0,0,0,4.145-9.278Z"], - "free-code-camp": [576, 512, [], "f2c5", "M97.22,96.21c10.36-10.65,16-17.12,16-21.9,0-2.76-1.92-5.51-3.83-7.42A14.81,14.81,0,0,0,101,64.05c-8.48,0-20.92,8.79-35.84,25.69C23.68,137,2.51,182.81,3.37,250.34s17.47,117,54.06,161.87C76.22,435.86,90.62,448,100.9,448a13.55,13.55,0,0,0,8.37-3.84c1.91-2.76,3.81-5.63,3.81-8.38,0-5.63-3.86-12.2-13.2-20.55-44.45-42.33-67.32-97-67.48-165C32.25,188.8,54,137.83,97.22,96.21ZM239.47,420.07c.58.37.91.55.91.55Zm93.79.55.17-.13C333.24,420.62,333.17,420.67,333.26,420.62Zm3.13-158.18c-16.24-4.15,50.41-82.89-68.05-177.17,0,0,15.54,49.38-62.83,159.57-74.27,104.35,23.46,168.73,34,175.23-6.73-4.35-47.4-35.7,9.55-128.64,11-18.3,25.53-34.87,43.5-72.16,0,0,15.91,22.45,7.6,71.13C287.7,364,354,342.91,355,343.94c22.75,26.78-17.72,73.51-21.58,76.55,5.49-3.65,117.71-78,33-188.1C360.43,238.4,352.62,266.59,336.39,262.44ZM510.88,89.69C496,72.79,483.52,64,475,64a14.81,14.81,0,0,0-8.39,2.84c-1.91,1.91-3.83,4.66-3.83,7.42,0,4.78,5.6,11.26,16,21.9,43.23,41.61,65,92.59,64.82,154.06-.16,68-23,122.63-67.48,165-9.34,8.35-13.18,14.92-13.2,20.55,0,2.75,1.9,5.62,3.81,8.38A13.61,13.61,0,0,0,475.1,448c10.28,0,24.68-12.13,43.47-35.79,36.59-44.85,53.14-94.38,54.06-161.87S552.32,137,510.88,89.69Z"], - "hornbill": [512, 512, [], "f592", "M76.38 370.3a37.8 37.8 0 1 1-32.07-32.42c-78.28-111.35 52-190.53 52-190.53-5.86 43-8.24 91.16-8.24 91.16-67.31 41.49.93 64.06 39.81 72.87a140.38 140.38 0 0 0 131.66 91.94c1.92 0 3.77-.21 5.67-.28l.11 18.86c-99.22 1.39-158.7-29.14-188.94-51.6zm108-327.7A37.57 37.57 0 0 0 181 21.45a37.95 37.95 0 1 0-31.17 54.22c-22.55 29.91-53.83 89.57-52.42 190l21.84-.15c0-.9-.14-1.77-.14-2.68A140.42 140.42 0 0 1 207 132.71c8-37.71 30.7-114.3 73.8-44.29 0 0 48.14 2.38 91.18 8.24 0 0-77.84-128-187.59-54.06zm304.19 134.17a37.94 37.94 0 1 0-53.84-28.7C403 126.13 344.89 99 251.28 100.33l.14 22.5c2.7-.15 5.39-.41 8.14-.41a140.37 140.37 0 0 1 130.49 88.76c39.1 9 105.06 31.58 38.46 72.54 0 0-2.34 48.13-8.21 91.16 0 0 133.45-81.16 49-194.61a37.45 37.45 0 0 0 19.31-3.5zM374.06 436.24c21.43-32.46 46.42-89.69 45.14-179.66l-19.52.14c.08 2.06.3 4.07.3 6.15a140.34 140.34 0 0 1-91.39 131.45c-8.85 38.95-31.44 106.66-72.77 39.49 0 0-48.12-2.34-91.19-8.22 0 0 79.92 131.34 191.9 51a37.5 37.5 0 0 0 3.64 14 37.93 37.93 0 1 0 33.89-54.29z"], - "js": [448, 512, [], "f3b8", "M0 32v448h448V32H0zm243.8 349.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5l34.3-20.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5V237.7h42.1v143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43l34.3-19.8c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z"], - "ideal": [576, 512, [], "e013", "M125.61,165.48a49.07,49.07,0,1,0,49.06,49.06A49.08,49.08,0,0,0,125.61,165.48ZM86.15,425.84h78.94V285.32H86.15Zm151.46-211.6c0-20-10-22.53-18.74-22.53H204.82V237.5h14.05C228.62,237.5,237.61,234.69,237.61,214.24Zm201.69,46V168.93h22.75V237.5h33.69C486.5,113.08,388.61,86.19,299.67,86.19H204.84V169h14c25.6,0,41.5,17.35,41.5,45.26,0,28.81-15.52,46-41.5,46h-14V425.88h94.83c144.61,0,194.94-67.16,196.72-165.64Zm-109.75,0H273.3V169h54.43v22.73H296v10.58h30V225H296V237.5h33.51Zm74.66,0-5.16-17.67H369.31l-5.18,17.67H340.47L368,168.92h32.35l27.53,91.34ZM299.65,32H32V480H299.65c161.85,0,251-79.73,251-224.52C550.62,172,518,32,299.65,32Zm0,426.92H53.07V53.07H299.65c142.1,0,229.9,64.61,229.9,202.41C529.55,389.57,448.55,458.92,299.65,458.92Zm83.86-264.85L376,219.88H392.4l-7.52-25.81Z"], - "git": [512, 512, [], "f1d3", "M216.29 158.39H137C97 147.9 6.51 150.63 6.51 233.18c0 30.09 15 51.23 35 61-25.1 23-37 33.85-37 49.21 0 11 4.47 21.14 17.89 26.81C8.13 383.61 0 393.35 0 411.65c0 32.11 28.05 50.82 101.63 50.82 70.75 0 111.79-26.42 111.79-73.18 0-58.66-45.16-56.5-151.63-63l13.43-21.55c27.27 7.58 118.7 10 118.7-67.89 0-18.7-7.73-31.71-15-41.07l37.41-2.84zm-63.42 241.9c0 32.06-104.89 32.1-104.89 2.43 0-8.14 5.27-15 10.57-21.54 77.71 5.3 94.32 3.37 94.32 19.11zm-50.81-134.58c-52.8 0-50.46-71.16 1.2-71.16 49.54 0 50.82 71.16-1.2 71.16zm133.3 100.51v-32.1c26.75-3.66 27.24-2 27.24-11V203.61c0-8.5-2.05-7.38-27.24-16.26l4.47-32.92H324v168.71c0 6.51.4 7.32 6.51 8.14l20.73 2.84v32.1zm52.45-244.31c-23.17 0-36.59-13.43-36.59-36.61s13.42-35.77 36.59-35.77c23.58 0 37 12.62 37 35.77s-13.42 36.61-37 36.61zM512 350.46c-17.49 8.53-43.1 16.26-66.28 16.26-48.38 0-66.67-19.5-66.67-65.46V194.75c0-5.42 1.05-4.06-31.71-4.06V154.5c35.78-4.07 50-22 54.47-66.27h38.63c0 65.83-1.34 61.81 3.26 61.81H501v40.65h-60.56v97.15c0 6.92-4.92 51.41 60.57 26.84z"], - "dev": [448, 512, [], "f6cc", "M120.12 208.29c-3.88-2.9-7.77-4.35-11.65-4.35H91.03v104.47h17.45c3.88 0 7.77-1.45 11.65-4.35 3.88-2.9 5.82-7.25 5.82-13.06v-69.65c-.01-5.8-1.96-10.16-5.83-13.06zM404.1 32H43.9C19.7 32 .06 51.59 0 75.8v360.4C.06 460.41 19.7 480 43.9 480h360.2c24.21 0 43.84-19.59 43.9-43.8V75.8c-.06-24.21-19.7-43.8-43.9-43.8zM154.2 291.19c0 18.81-11.61 47.31-48.36 47.25h-46.4V172.98h47.38c35.44 0 47.36 28.46 47.37 47.28l.01 70.93zm100.68-88.66H201.6v38.42h32.57v29.57H201.6v38.41h53.29v29.57h-62.18c-11.16.29-20.44-8.53-20.72-19.69V193.7c-.27-11.15 8.56-20.41 19.71-20.69h63.19l-.01 29.52zm103.64 115.29c-13.2 30.75-36.85 24.63-47.44 0l-38.53-144.8h32.57l29.71 113.72 29.57-113.72h32.58l-38.46 144.8z"], - "sketch": [512, 512, [], "f7c6", "M27.5 162.2L9 187.1h90.5l6.9-130.7-78.9 105.8zM396.3 45.7L267.7 32l135.7 147.2-7.1-133.5zM112.2 218.3l-11.2-22H9.9L234.8 458zm2-31.2h284l-81.5-88.5L256.3 33zm297.3 9.1L277.6 458l224.8-261.7h-90.9zM415.4 69L406 56.4l.9 17.3 6.1 113.4h90.3zM113.5 93.5l-4.6 85.6L244.7 32 116.1 45.7zm287.7 102.7h-290l42.4 82.9L256.3 480l144.9-283.8z"], - "yandex-international": [320, 512, [], "f414", "M129.5 512V345.9L18.5 48h55.8l81.8 229.7L250.2 0h51.3L180.8 347.8V512h-51.3z"], - "cc-amex": [576, 512, [], "f1f3", "M0 432c0 26.5 21.5 48 48 48H528c26.5 0 48-21.5 48-48v-1.1H514.3l-31.9-35.1-31.9 35.1H246.8V267.1H181L262.7 82.4h78.6l28.1 63.2V82.4h97.2L483.5 130l17-47.6H576V80c0-26.5-21.5-48-48-48H48C21.5 32 0 53.5 0 80V432zm440.4-21.7L482.6 364l42 46.3H576l-68-72.1 68-72.1H525.4l-42 46.7-41.5-46.7H390.5L458 338.6l-67.4 71.6V377.1h-83V354.9h80.9V322.6H307.6V300.2h83V267.1h-122V410.3H440.4zm96.3-72L576 380.2V296.9l-39.3 41.4zm-36.3-92l36.9-100.6V246.3H576V103H515.8l-32.2 89.3L451.7 103H390.5V246.1L327.3 103H276.1L213.7 246.3h43l11.9-28.7h65.9l12 28.7h82.7V146L466 246.3h34.4zM282 185.4l19.5-46.9 19.4 46.9H282z"], - "uber": [448, 512, [], "f402", "M414.1 32H33.9C15.2 32 0 47.2 0 65.9V446c0 18.8 15.2 34 33.9 34H414c18.7 0 33.9-15.2 33.9-33.9V65.9C448 47.2 432.8 32 414.1 32zM237.6 391.1C163 398.6 96.4 344.2 88.9 269.6h94.4V290c0 3.7 3 6.8 6.8 6.8H258c3.7 0 6.8-3 6.8-6.8v-67.9c0-3.7-3-6.8-6.8-6.8h-67.9c-3.7 0-6.8 3-6.8 6.8v20.4H88.9c7-69.4 65.4-122.2 135.1-122.2 69.7 0 128.1 52.8 135.1 122.2 7.5 74.5-46.9 141.1-121.5 148.6z"], - "github": [496, 512, [], "f09b", "M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"], - "php": [640, 512, [], "f457", "M320 104.5c171.4 0 303.2 72.2 303.2 151.5S491.3 407.5 320 407.5c-171.4 0-303.2-72.2-303.2-151.5S148.7 104.5 320 104.5m0-16.8C143.3 87.7 0 163 0 256s143.3 168.3 320 168.3S640 349 640 256 496.7 87.7 320 87.7zM218.2 242.5c-7.9 40.5-35.8 36.3-70.1 36.3l13.7-70.6c38 0 63.8-4.1 56.4 34.3zM97.4 350.3h36.7l8.7-44.8c41.1 0 66.6 3 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7h-70.7L97.4 350.3zm185.7-213.6h36.5l-8.7 44.8c31.5 0 60.7-2.3 74.8 10.7 14.8 13.6 7.7 31-8.3 113.1h-37c15.4-79.4 18.3-86 12.7-92-5.4-5.8-17.7-4.6-47.4-4.6l-18.8 96.6h-36.5l32.7-168.6zM505 242.5c-8 41.1-36.7 36.3-70.1 36.3l13.7-70.6c38.2 0 63.8-4.1 56.4 34.3zM384.2 350.3H421l8.7-44.8c43.2 0 67.1 2.5 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7H417l-32.8 168.7z"], - "alipay": [448, 512, [], "f642", "M377.74 32H70.26C31.41 32 0 63.41 0 102.26v307.48C0 448.59 31.41 480 70.26 480h307.48c38.52 0 69.76-31.08 70.26-69.6-45.96-25.62-110.59-60.34-171.6-88.44-32.07 43.97-84.14 81-148.62 81-70.59 0-93.73-45.3-97.04-76.37-3.97-39.01 14.88-81.5 99.52-81.5 35.38 0 79.35 10.25 127.13 24.96 16.53-30.09 26.45-60.34 26.45-60.34h-178.2v-16.7h92.08v-31.24H88.28v-19.01h109.44V92.34h50.92v50.42h109.44v19.01H248.63v31.24h88.77s-15.21 46.62-38.35 90.92c48.93 16.7 100.01 36.04 148.62 52.74V102.26C447.83 63.57 416.43 32 377.74 32zM47.28 322.95c.99 20.17 10.25 53.73 69.93 53.73 52.07 0 92.58-39.68 117.87-72.9-44.63-18.68-84.48-31.41-109.44-31.41-67.45 0-79.35 33.06-78.36 50.58z"], - "youtube": [576, 512, [61802], "f167", "M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"], - "skyatlas": [640, 512, [], "f216", "M640 329.3c0 65.9-52.5 114.4-117.5 114.4-165.9 0-196.6-249.7-359.7-249.7-146.9 0-147.1 212.2 5.6 212.2 42.5 0 90.9-17.8 125.3-42.5 5.6-4.1 16.9-16.3 22.8-16.3s10.9 5 10.9 10.9c0 7.8-13.1 19.1-18.7 24.1-40.9 35.6-100.3 61.2-154.7 61.2-83.4.1-154-59-154-144.9s67.5-149.1 152.8-149.1c185.3 0 222.5 245.9 361.9 245.9 99.9 0 94.8-139.7 3.4-139.7-17.5 0-35 11.6-46.9 11.6-8.4 0-15.9-7.2-15.9-15.6 0-11.6 5.3-23.7 5.3-36.3 0-66.6-50.9-114.7-116.9-114.7-53.1 0-80 36.9-88.8 36.9-6.2 0-11.2-5-11.2-11.2 0-5.6 4.1-10.3 7.8-14.4 25.3-28.8 64.7-43.7 102.8-43.7 79.4 0 139.1 58.4 139.1 137.8 0 6.9-.3 13.7-1.2 20.6 11.9-3.1 24.1-4.7 35.9-4.7 60.7 0 111.9 45.3 111.9 107.2z"], - "firefox-browser": [512, 512, [], "e007", "M130.22 127.548C130.38 127.558 130.3 127.558 130.22 127.548V127.548ZM481.64 172.898C471.03 147.398 449.56 119.898 432.7 111.168C446.42 138.058 454.37 165.048 457.4 185.168C457.405 185.306 457.422 185.443 457.45 185.578C429.87 116.828 383.098 89.1089 344.9 28.7479C329.908 5.05792 333.976 3.51792 331.82 4.08792L331.7 4.15792C284.99 30.1109 256.365 82.5289 249.12 126.898C232.503 127.771 216.219 131.895 201.19 139.035C199.838 139.649 198.736 140.706 198.066 142.031C197.396 143.356 197.199 144.87 197.506 146.323C197.7 147.162 198.068 147.951 198.586 148.639C199.103 149.327 199.76 149.899 200.512 150.318C201.264 150.737 202.096 150.993 202.954 151.071C203.811 151.148 204.676 151.045 205.491 150.768L206.011 150.558C221.511 143.255 238.408 139.393 255.541 139.238C318.369 138.669 352.698 183.262 363.161 201.528C350.161 192.378 326.811 183.338 304.341 187.248C392.081 231.108 368.541 381.784 246.951 376.448C187.487 373.838 149.881 325.467 146.421 285.648C146.421 285.648 157.671 243.698 227.041 243.698C234.541 243.698 255.971 222.778 256.371 216.698C256.281 214.698 213.836 197.822 197.281 181.518C188.434 172.805 184.229 168.611 180.511 165.458C178.499 163.75 176.392 162.158 174.201 160.688C168.638 141.231 168.399 120.638 173.51 101.058C148.45 112.468 128.96 130.508 114.8 146.428H114.68C105.01 134.178 105.68 93.7779 106.25 85.3479C106.13 84.8179 99.022 89.0159 98.1 89.6579C89.5342 95.7103 81.5528 102.55 74.26 110.088C57.969 126.688 30.128 160.242 18.76 211.318C14.224 231.701 12 255.739 12 263.618C12 398.318 121.21 507.508 255.92 507.508C376.56 507.508 478.939 420.281 496.35 304.888C507.922 228.192 481.64 173.82 481.64 172.898Z"], - "replyd": [448, 512, [], "f3e6", "M320 480H128C57.6 480 0 422.4 0 352V160C0 89.6 57.6 32 128 32h192c70.4 0 128 57.6 128 128v192c0 70.4-57.6 128-128 128zM193.4 273.2c-6.1-2-11.6-3.1-16.4-3.1-7.2 0-13.5 1.9-18.9 5.6-5.4 3.7-9.6 9-12.8 15.8h-1.1l-4.2-18.3h-28v138.9h36.1v-89.7c1.5-5.4 4.4-9.8 8.7-13.2 4.3-3.4 9.8-5.1 16.2-5.1 4.6 0 9.8 1 15.6 3.1l4.8-34zm115.2 103.4c-3.2 2.4-7.7 4.8-13.7 7.1-6 2.3-12.8 3.5-20.4 3.5-12.2 0-21.1-3-26.5-8.9-5.5-5.9-8.5-14.7-9-26.4h83.3c.9-4.8 1.6-9.4 2.1-13.9.5-4.4.7-8.6.7-12.5 0-10.7-1.6-19.7-4.7-26.9-3.2-7.2-7.3-13-12.5-17.2-5.2-4.3-11.1-7.3-17.8-9.2-6.7-1.8-13.5-2.8-20.6-2.8-21.1 0-37.5 6.1-49.2 18.3s-17.5 30.5-17.5 55c0 22.8 5.2 40.7 15.6 53.7 10.4 13.1 26.8 19.6 49.2 19.6 10.7 0 20.9-1.5 30.4-4.6 9.5-3.1 17.1-6.8 22.6-11.2l-12-23.6zm-21.8-70.3c3.8 5.4 5.3 13.1 4.6 23.1h-51.7c.9-9.4 3.7-17 8.2-22.6 4.5-5.6 11.5-8.5 21-8.5 8.2-.1 14.1 2.6 17.9 8zm79.9 2.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4s2 11.7 6.1 15.6zm0 100.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4 0 6.6 2 11.7 6.1 15.6z"], - "suse": [640, 512, [], "f7d6", "M593.1 192.6A10.4 10.4 0 1 1 604.5 210a10.4 10.4 0 1 1 -11.4-17.4zm-47.1 12.2a38.5 38.5 0 1 1 75-17.6 38.5 38.5 0 1 1 -75 17.6zM433.7 336.7c3.2 4.6 5.8 9 7.3 13.4c1 3.1 2.4 7.3 5.5 8.9c.2 .1 .3 .2 .5 .2c5.7 2.1 20.3 1.7 20.3 1.7h26.8c2.3 0 22.4 0 21.9-2.3c-2.4-10.8-14.9-12.7-24.4-18.3c-8.7-5.2-17-11.1-20.8-21.3c-2-5.2-.8-17.4 2.6-21.8c2.5-3.2 6.1-5.3 10-6.2c4.3-.9 8.8-.1 13.1 .3c5.3 .5 10.6 1.5 15.9 2.2c10.3 1.3 20.6 1.9 31 1.6c17.1-.5 34.2-3.2 50.4-8.7c11.3-3.8 22.4-8.9 32-16.1c10.9-8.1 8.1-7.4-3-6.2c-13.3 1.4-26.6 1.6-39.9 .8c-12.4-.7-24.7-2.2-35.9-7.9c-8.8-4.6-16.4-9.1-23.4-16.2c-1-1.1-1.7-4.2 .2-6.2c1.9-1.9 5.8-.8 7 .2c12.2 10.2 30.5 18.6 49.3 19.5c10.2 .5 20.1 .7 30.4 .3c5.1-.2 12.8-.2 17.9-.3c2.6 0 9.8 .7 11.2-2.1c.4-.8 .4-1.8 .3-2.7c-1.5-40.9-4.5-86.9-47.3-106.5c-31.9-14.6-79.7-37.2-99.9-46.6c-4.7-2.2-10.2 1.3-10.2 6.5c0 13.6 .7 33.3 .7 51.1c-9.7-9.9-26-16.1-38.4-21.8c-14.1-6.5-28.7-12-43.5-16.6c-29.8-9.2-60.7-14.9-91.7-18c-35.2-3.5-71-1.8-105.7 5.3C147 115.1 90.8 142.6 48.2 182.7C22.1 207.3 1.6 242.4 .2 277.9c-2 50.3 12.1 77.3 38 105.2c41.3 44.4 130.2 50.6 166.2-2c16.2-23.7 19.7-55.8 8-82c-11.8-26.2-38.8-45.1-67.4-46c-22.2-.7-45.9 10.6-54.5 31.1c-6.5 15.7-2.8 35.1 9 47.3c4.6 4.8 10.9 8.7 17.7 7.1c4-.9 7.4-3.9 8-8c.9-6-4.4-9.9-7.6-14.5c-5.8-8.3-4.7-20.9 2.7-27.9c6.2-6 15.3-7.8 23.9-7.7c8 0 16.2 1.4 23.1 5.5c9.7 5.7 16.2 16.2 18.4 27.2c6.7 33-20.2 59.9-56.6 62c-18.6 1.1-37.6-3.8-52.1-15.5C40.1 329.9 31.1 269.4 73.2 237c40-30.7 90.4-22.8 120.2-6.8c23.8 12.8 41.5 33.6 55 56.7c6.7 11.6 12.5 23.7 17.8 36.1c5.1 11.8 9.9 23.8 20.2 32.5c6.8 5.8 15.2 5.6 24.1 5.6h50.8c6.9 0 5.2-4.6 2.2-7.7c-6.7-6.9-16.4-8.4-25.4-10.9c-20.5-5.6-18.4-32.8-12.7-32.8c18.3 0 18.9 .6 34.9 .3c23.2-.3 30.2-1.7 48.3 5c9.7 3.6 19 13.1 25.1 21.7z"], - "jenkins": [512, 512, [], "f3b6", "M487.1 425c-1.4-11.2-19-23.1-28.2-31.9-5.1-5-29-23.1-30.4-29.9-1.4-6.6 9.7-21.5 13.3-28.9 5.1-10.7 8.8-23.7 11.3-32.6 18.8-66.1 20.7-156.9-6.2-211.2-10.2-20.6-38.6-49-56.4-62.5-42-31.7-119.6-35.3-170.1-16.6-14.1 5.2-27.8 9.8-40.1 17.1-33.1 19.4-68.3 32.5-78.1 71.6-24.2 10.8-31.5 41.8-30.3 77.8.2 7 4.1 15.8 2.7 22.4-.7 3.3-5.2 7.6-6.1 9.8-11.6 27.7-2.3 64 11.1 83.7 8.1 11.9 21.5 22.4 39.2 25.2.7 10.6 3.3 19.7 8.2 30.4 3.1 6.8 14.7 19 10.4 27.7-2.2 4.4-21 13.8-27.3 17.6C89 407.2 73.7 415 54.2 429c-12.6 9-32.3 10.2-29.2 31.1 2.1 14.1 10.1 31.6 14.7 45.8.7 2 1.4 4.1 2.1 6h422c4.9-15.3 9.7-30.9 14.6-47.2 3.4-11.4 10.2-27.8 8.7-39.7zM205.9 33.7c1.8-.5 3.4.7 4.9 2.4-.2 5.2-5.4 5.1-8.9 6.8-5.4 6.7-13.4 9.8-20 17.2-6.8 7.5-14.4 27.7-23.4 30-4.5 1.1-9.7-.8-13.6-.5-10.4.7-17.7 6-28.3 7.5 13.6-29.9 56.1-54 89.3-63.4zm-104.8 93.6c13.5-14.9 32.1-24.1 54.8-25.9 11.7 29.7-8.4 65-.9 97.6 2.3 9.9 10.2 25.4-2.4 25.7.3-28.3-34.8-46.3-61.3-29.6-1.8-21.5-4.9-51.7 9.8-67.8zm36.7 200.2c-1-4.1-2.7-12.9-2.3-15.1 1.6-8.7 17.1-12.5 11-24.7-11.3-.1-13.8 10.2-24.1 11.3-26.7 2.6-45.6-35.4-44.4-58.4 1-19.5 17.6-38.2 40.1-35.8 16 1.8 21.4 19.2 24.5 34.7 9.2.5 22.5-.4 26.9-7.6-.6-17.5-8.8-31.6-8.2-47.7 1-30.3 17.5-57.6 4.8-87.4 13.6-30.9 53.5-55.3 83.1-70 36.6-18.3 94.9-3.7 129.3 15.8 19.7 11.1 34.4 32.7 48.3 50.7-19.5-5.8-36.1 4.2-33.1 20.3 16.3-14.9 44.2-.2 52.5 16.4 7.9 15.8 7.8 39.3 9 62.8 2.9 57-10.4 115.9-39.1 157.1-7.7 11-14.1 23-24.9 30.6-26 18.2-65.4 34.7-99.2 23.4-44.7-15-65-44.8-89.5-78.8.7 18.7 13.8 34.1 26.8 48.4 11.3 12.5 25 26.6 39.7 32.4-12.3-2.9-31.1-3.8-36.2 7.2-28.6-1.9-55.1-4.8-68.7-24.2-10.6-15.4-21.4-41.4-26.3-61.4zm222 124.1c4.1-3 11.1-2.9 17.4-3.6-5.4-2.7-13-3.7-19.3-2.2-.1-4.2-2-6.8-3.2-10.2 10.6-3.8 35.5-28.5 49.6-20.3 6.7 3.9 9.5 26.2 10.1 37 .4 9-.8 18-4.5 22.8-18.8-.6-35.8-2.8-50.7-7 .9-6.1-1-12.1.6-16.5zm-17.2-20c-16.8.8-26-1.2-38.3-10.8.2-.8 1.4-.5 1.5-1.4 18 8 40.8-3.3 59-4.9-7.9 5.1-14.6 11.6-22.2 17.1zm-12.1 33.2c-1.6-9.4-3.5-12-2.8-20.2 25-16.6 29.7 28.6 2.8 20.2zM226 438.6c-11.6-.7-48.1-14-38.5-23.7 9.4 6.5 27.5 4.9 41.3 7.3.8 4.4-2.8 10.2-2.8 16.4zM57.7 497.1c-4.3-12.7-9.2-25.1-14.8-36.9 30.8-23.8 65.3-48.9 102.2-63.5 2.8-1.1 23.2 25.4 26.2 27.6 16.5 11.7 37 21 56.2 30.2 1.2 8.8 3.9 20.2 8.7 35.5.7 2.3 1.4 4.7 2.2 7.2H57.7zm240.6 5.7h-.8c.3-.2.5-.4.8-.5v.5zm7.5-5.7c2.1-1.4 4.3-2.8 6.4-4.3 1.1 1.4 2.2 2.8 3.2 4.3h-9.6zm15.1-24.7c-10.8 7.3-20.6 18.3-33.3 25.2-6 3.3-27 11.7-33.4 10.2-3.6-.8-3.9-5.3-5.4-9.5-3.1-9-10.1-23.4-10.8-37-.8-17.2-2.5-46 16-42.4 14.9 2.9 32.3 9.7 43.9 16.1 7.1 3.9 11.1 8.6 21.9 9.5-.1 1.4-.1 2.8-.2 4.3-5.9 3.9-15.3 3.8-21.8 7.1 9.5.4 17 2.7 23.5 5.9-.1 3.4-.3 7-.4 10.6zm53.4 24.7h-14c-.1-3.2-2.8-5.8-6.1-5.8s-5.9 2.6-6.1 5.8h-17.4c-2.8-4.4-5.7-8.6-8.9-12.5 2.1-2.2 4-4.7 6-6.9 9 3.7 14.8-4.9 21.7-4.2 7.9.8 14.2 11.7 25.4 11l-.6 12.6zm8.7 0c.2-4 .4-7.8.6-11.5 15.6-7.3 29 1.3 35.7 11.5H383zm83.4-37c-2.3 11.2-5.8 24-9.9 37.1-.2-.1-.4-.1-.6-.1H428c.6-1.1 1.2-2.2 1.9-3.3-2.6-6.1-9-8.7-10.9-15.5 12.1-22.7 6.5-93.4-24.2-78.5 4.3-6.3 15.6-11.5 20.8-19.3 13 10.4 20.8 20.3 33.2 31.4 6.8 6 20 13.3 21.4 23.1.8 5.5-2.6 18.9-3.8 25.1zM222.2 130.5c5.4-14.9 27.2-34.7 45-32 7.7 1.2 18 8.2 12.2 17.7-30.2-7-45.2 12.6-54.4 33.1-8.1-2-4.9-13.1-2.8-18.8zm184.1 63.1c8.2-3.6 22.4-.7 29.6-5.3-4.2-11.5-10.3-21.4-9.3-37.7.5 0 1 0 1.4.1 6.8 14.2 12.7 29.2 21.4 41.7-5.7 13.5-43.6 25.4-43.1 1.2zm20.4-43zm-117.2 45.7c-6.8-10.9-19-32.5-14.5-45.3 6.5 11.9 8.6 24.4 17.8 33.3 4.1 4 12.2 9 8.2 20.2-.9 2.7-7.8 8.6-11.7 9.7-14.4 4.3-47.9.9-36.6-17.1 11.9.7 27.9 7.8 36.8-.8zm27.3 70c3.8 6.6 1.4 18.7 12.1 20.6 20.2 3.4 43.6-12.3 58.1-17.8 9-15.2-.8-20.7-8.9-30.5-16.6-20-38.8-44.8-38-74.7 6.7-4.9 7.3 7.4 8.2 9.7 8.7 20.3 30.4 46.2 46.3 63.5 3.9 4.3 10.3 8.4 11 11.2 2.1 8.2-5.4 18-4.5 23.5-21.7 13.9-45.8 29.1-81.4 25.6-7.4-6.7-10.3-21.4-2.9-31.1zm-201.3-9.2c-6.8-3.9-8.4-21-16.4-21.4-11.4-.7-9.3 22.2-9.3 35.5-7.8-7.1-9.2-29.1-3.5-40.3-6.6-3.2-9.5 3.6-13.1 5.9 4.7-34.1 49.8-15.8 42.3 20.3zm299.6 28.8c-10.1 19.2-24.4 40.4-54 41-.6-6.2-1.1-15.6 0-19.4 22.7-2.2 36.6-13.7 54-21.6zm-141.9 12.4c18.9 9.9 53.6 11 79.3 10.2 1.4 5.6 1.3 12.6 1.4 19.4-33 1.8-72-6.4-80.7-29.6zm92.2 46.7c-1.7 4.3-5.3 9.3-9.8 11.1-12.1 4.9-45.6 8.7-62.4-.3-10.7-5.7-17.5-18.5-23.4-26-2.8-3.6-16.9-12.9-.2-12.9 13.1 32.7 58 29 95.8 28.1z"], - "twitter": [512, 512, [], "f099", "M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"], - "rockrms": [496, 512, [], "f3e9", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm157.4 419.5h-90l-112-131.3c-17.9-20.4-3.9-56.1 26.6-56.1h75.3l-84.6-99.3-84.3 98.9h-90L193.5 67.2c14.4-18.4 41.3-17.3 54.5 0l157.7 185.1c19 22.8 2 57.2-27.6 56.1-.6 0-74.2.2-74.2.2l101.5 118.9z"], - "pinterest": [496, 512, [], "f0d2", "M496 256c0 137-111 248-248 248-25.6 0-50.2-3.9-73.4-11.1 10.1-16.5 25.2-43.5 30.8-65 3-11.6 15.4-59 15.4-59 8.1 15.4 31.7 28.5 56.8 28.5 74.8 0 128.7-68.8 128.7-154.3 0-81.9-66.9-143.2-152.9-143.2-107 0-163.9 71.8-163.9 150.1 0 36.4 19.4 81.7 50.3 96.1 4.7 2.2 7.2 1.2 8.3-3.3.8-3.4 5-20.3 6.9-28.1.6-2.5.3-4.7-1.7-7.1-10.1-12.5-18.3-35.3-18.3-56.6 0-54.7 41.4-107.6 112-107.6 60.9 0 103.6 41.5 103.6 100.9 0 67.1-33.9 113.6-78 113.6-24.3 0-42.6-20.1-36.7-44.8 7-29.5 20.5-61.3 20.5-82.6 0-19-10.2-34.9-31.4-34.9-24.9 0-44.9 25.7-44.9 60.2 0 22 7.4 36.8 7.4 36.8s-24.5 103.8-29 123.2c-5 21.4-3 51.6-.9 71.2C65.4 450.9 0 361.1 0 256 0 119 111 8 248 8s248 111 248 248z"], - "buffer": [448, 512, [], "f837", "M427.84 380.67l-196.5 97.82a18.6 18.6 0 0 1-14.67 0L20.16 380.67c-4-2-4-5.28 0-7.29L67.22 350a18.65 18.65 0 0 1 14.69 0l134.76 67a18.51 18.51 0 0 0 14.67 0l134.76-67a18.62 18.62 0 0 1 14.68 0l47.06 23.43c4.05 1.96 4.05 5.24 0 7.24zm0-136.53l-47.06-23.43a18.62 18.62 0 0 0-14.68 0l-134.76 67.08a18.68 18.68 0 0 1-14.67 0L81.91 220.71a18.65 18.65 0 0 0-14.69 0l-47.06 23.43c-4 2-4 5.29 0 7.31l196.51 97.8a18.6 18.6 0 0 0 14.67 0l196.5-97.8c4.05-2.02 4.05-5.3 0-7.31zM20.16 130.42l196.5 90.29a20.08 20.08 0 0 0 14.67 0l196.51-90.29c4-1.86 4-4.89 0-6.74L231.33 33.4a19.88 19.88 0 0 0-14.67 0l-196.5 90.28c-4.05 1.85-4.05 4.88 0 6.74z"], - "npm": [576, 512, [], "f3d4", "M288 288h-32v-64h32v64zm288-128v192H288v32H160v-32H0V160h576zm-416 32H32v128h64v-96h32v96h32V192zm160 0H192v160h64v-32h64V192zm224 0H352v128h64v-96h32v96h32v-96h32v96h32V192z"], - "yammer": [512, 512, [], "f840", "M500.676,159.486a12.779,12.779,0,0,0-6.4-8.282,13.954,13.954,0,0,0-10.078-1.125L457.8,156.7l-.043-.2-22.3,5.785-1.243.333-.608-2.17A369.037,369.037,0,0,0,347.538,4.289a14.1,14.1,0,0,0-19.784-.463l-102.9,102.747H24.947A24.9,24.9,0,0,0,0,131.417V380.38a24.963,24.963,0,0,0,24.918,24.9H224.986L328.072,508a13.667,13.667,0,0,0,19.327,0c.126-.126.249-.255.37-.385a368.025,368.025,0,0,0,69.577-107.374,403.45,403.45,0,0,0,17.3-50.8v-.028l20.406,5.336.029-.073L483.345,362a20.253,20.253,0,0,0,2.619.5,13.359,13.359,0,0,0,4.139-.072,13.5,13.5,0,0,0,10.515-9.924,415.855,415.855,0,0,0,.058-193.013ZM337.125,24.65l.013.014h-.013Zm-110.2,165.161L174.311,281.1a11.338,11.338,0,0,0-1.489,5.655v46.189a22.04,22.04,0,0,1-22.041,22h-3.4A22.068,22.068,0,0,1,125.3,332.962V287.294a11.532,11.532,0,0,0-1.388-5.51l-51.6-92.2a21.988,21.988,0,0,1,19.264-32.726h3.268a22.059,22.059,0,0,1,19.611,11.916l36.357,70.281,37.515-70.512a22.066,22.066,0,0,1,38.556-.695,21.7,21.7,0,0,1,0,21.967ZM337.145,24.673a348.147,348.147,0,0,1,75.8,141.335l.564,1.952-114.134,29.6V131.417a25.006,25.006,0,0,0-24.947-24.9H255.067Zm60.5,367.305v-.043l-.014.014a347.19,347.19,0,0,1-60.177,95.227l-82.2-81.893h19.177a24.978,24.978,0,0,0,24.947-24.9v-66.2l114.6,29.862A385.191,385.191,0,0,1,397.648,391.978Zm84-52.45.015.014-50.618-13.131L299.379,292.1V219.572l119.746-30.99,4.468-1.157,39.54-10.253,18.511-4.816A393,393,0,0,1,481.644,339.528Z"], - "btc": [384, 512, [], "f15a", "M310.204 242.638c27.73-14.18 45.377-39.39 41.28-81.3-5.358-57.351-52.458-76.573-114.85-81.929V0h-48.528v77.203c-12.605 0-25.525.315-38.444.63V0h-48.528v79.409c-17.842.539-38.622.276-97.37 0v51.678c38.314-.678 58.417-3.14 63.023 21.427v217.429c-2.925 19.492-18.524 16.685-53.255 16.071L3.765 443.68c88.481 0 97.37.315 97.37.315V512h48.528v-67.06c13.234.315 26.154.315 38.444.315V512h48.528v-68.005c81.299-4.412 135.647-24.894 142.895-101.467 5.671-61.446-23.32-88.862-69.326-99.89zM150.608 134.553c27.415 0 113.126-8.507 113.126 48.528 0 54.515-85.71 48.212-113.126 48.212v-96.74zm0 251.776V279.821c32.772 0 133.127-9.138 133.127 53.255-.001 60.186-100.355 53.253-133.127 53.253z"], - "dribbble": [512, 512, [], "f17d", "M256 8C119.252 8 8 119.252 8 256s111.252 248 248 248 248-111.252 248-248S392.748 8 256 8zm163.97 114.366c29.503 36.046 47.369 81.957 47.835 131.955-6.984-1.477-77.018-15.682-147.502-6.818-5.752-14.041-11.181-26.393-18.617-41.614 78.321-31.977 113.818-77.482 118.284-83.523zM396.421 97.87c-3.81 5.427-35.697 48.286-111.021 76.519-34.712-63.776-73.185-116.168-79.04-124.008 67.176-16.193 137.966 1.27 190.061 47.489zm-230.48-33.25c5.585 7.659 43.438 60.116 78.537 122.509-99.087 26.313-186.36 25.934-195.834 25.809C62.38 147.205 106.678 92.573 165.941 64.62zM44.17 256.323c0-2.166.043-4.322.108-6.473 9.268.19 111.92 1.513 217.706-30.146 6.064 11.868 11.857 23.915 17.174 35.949-76.599 21.575-146.194 83.527-180.531 142.306C64.794 360.405 44.17 310.73 44.17 256.323zm81.807 167.113c22.127-45.233 82.178-103.622 167.579-132.756 29.74 77.283 42.039 142.053 45.189 160.638-68.112 29.013-150.015 21.053-212.768-27.882zm248.38 8.489c-2.171-12.886-13.446-74.897-41.152-151.033 66.38-10.626 124.7 6.768 131.947 9.055-9.442 58.941-43.273 109.844-90.795 141.978z"], - "stumbleupon-circle": [496, 512, [], "f1a3", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 177.5c-9.8 0-17.8 8-17.8 17.8v106.9c0 40.9-33.9 73.9-74.9 73.9-41.4 0-74.9-33.5-74.9-74.9v-46.5h57.3v45.8c0 10 8 17.8 17.8 17.8s17.8-7.9 17.8-17.8V200.1c0-40 34.2-72.1 74.7-72.1 40.7 0 74.7 32.3 74.7 72.6v23.7l-34.1 10.1-22.9-10.7v-20.6c.1-9.6-7.9-17.6-17.7-17.6zm167.6 123.6c0 41.4-33.5 74.9-74.9 74.9-41.2 0-74.9-33.2-74.9-74.2V263l22.9 10.7 34.1-10.1v47.1c0 9.8 8 17.6 17.8 17.6s17.8-7.9 17.8-17.6v-48h57.3c-.1 45.9-.1 46.4-.1 46.4z"], - "internet-explorer": [512, 512, [], "f26b", "M483.049 159.706c10.855-24.575 21.424-60.438 21.424-87.871 0-72.722-79.641-98.371-209.673-38.577-107.632-7.181-211.221 73.67-237.098 186.457 30.852-34.862 78.271-82.298 121.977-101.158C125.404 166.85 79.128 228.002 43.992 291.725 23.246 329.651 0 390.94 0 436.747c0 98.575 92.854 86.5 180.251 42.006 31.423 15.43 66.559 15.573 101.695 15.573 97.124 0 184.249-54.294 216.814-146.022H377.927c-52.509 88.593-196.819 52.996-196.819-47.436H509.9c6.407-43.581-1.655-95.715-26.851-141.162zM64.559 346.877c17.711 51.15 53.703 95.871 100.266 123.304-88.741 48.94-173.267 29.096-100.266-123.304zm115.977-108.873c2-55.151 50.276-94.871 103.98-94.871 53.418 0 101.981 39.72 103.981 94.871H180.536zm184.536-187.6c21.425-10.287 48.563-22.003 72.558-22.003 31.422 0 54.274 21.717 54.274 53.722 0 20.003-7.427 49.007-14.569 67.867-26.28-42.292-65.986-81.584-112.263-99.586z"], - "stubber": [448, 512, [], "e5c7", "M136.5 294.2l58.8 22.9c9.1-36.8 25.4-61.1 55-61.1c49.4 0 71.4 63.6 142.4 63.6c15.6 0 35.9-2.8 55.3-13.3V368c0 61.8-50.4 112-112.3 112H0l41.8-56L0 368l41.7-56L0 256.1l41.8-56L0 144.1 41.8 88 0 32H335.7C397.6 32 448 82.3 448 144.1v51.3c-9.2 36.3-25.9 60.6-55 60.6c-49.6 0-71.6-63.5-142.4-63.5c-35.9 0-95.2 14.6-114.1 101.6h0z"], - "telegram": [496, 512, [62462, "telegram-plane"], "f2c6", "M248,8C111.033,8,0,119.033,0,256S111.033,504,248,504,496,392.967,496,256,384.967,8,248,8ZM362.952,176.66c-3.732,39.215-19.881,134.378-28.1,178.3-3.476,18.584-10.322,24.816-16.948,25.425-14.4,1.326-25.338-9.517-39.287-18.661-21.827-14.308-34.158-23.215-55.346-37.177-24.485-16.135-8.612-25,5.342-39.5,3.652-3.793,67.107-61.51,68.335-66.746.153-.655.3-3.1-1.154-4.384s-3.59-.849-5.135-.5q-3.283.746-104.608,69.142-14.845,10.194-26.894,9.934c-8.855-.191-25.888-5.006-38.551-9.123-15.531-5.048-27.875-7.717-26.8-16.291q.84-6.7,18.45-13.7,108.446-47.248,144.628-62.3c68.872-28.647,83.183-33.623,92.511-33.789,2.052-.034,6.639.474,9.61,2.885a10.452,10.452,0,0,1,3.53,6.716A43.765,43.765,0,0,1,362.952,176.66Z"], - "old-republic": [496, 512, [], "f510", "M235.76 10.23c7.5-.31 15-.28 22.5-.09 3.61.14 7.2.4 10.79.73 4.92.27 9.79 1.03 14.67 1.62 2.93.43 5.83.98 8.75 1.46 7.9 1.33 15.67 3.28 23.39 5.4 12.24 3.47 24.19 7.92 35.76 13.21 26.56 12.24 50.94 29.21 71.63 49.88 20.03 20.09 36.72 43.55 48.89 69.19 1.13 2.59 2.44 5.1 3.47 7.74 2.81 6.43 5.39 12.97 7.58 19.63 4.14 12.33 7.34 24.99 9.42 37.83.57 3.14 1.04 6.3 1.4 9.47.55 3.83.94 7.69 1.18 11.56.83 8.34.84 16.73.77 25.1-.07 4.97-.26 9.94-.75 14.89-.24 3.38-.51 6.76-.98 10.12-.39 2.72-.63 5.46-1.11 8.17-.9 5.15-1.7 10.31-2.87 15.41-4.1 18.5-10.3 36.55-18.51 53.63-15.77 32.83-38.83 62.17-67.12 85.12a246.503 246.503 0 0 1-56.91 34.86c-6.21 2.68-12.46 5.25-18.87 7.41-3.51 1.16-7.01 2.38-10.57 3.39-6.62 1.88-13.29 3.64-20.04 5-4.66.91-9.34 1.73-14.03 2.48-5.25.66-10.5 1.44-15.79 1.74-6.69.66-13.41.84-20.12.81-6.82.03-13.65-.12-20.45-.79-3.29-.23-6.57-.5-9.83-.95-2.72-.39-5.46-.63-8.17-1.11-4.12-.72-8.25-1.37-12.35-2.22-4.25-.94-8.49-1.89-12.69-3.02-8.63-2.17-17.08-5.01-25.41-8.13-10.49-4.12-20.79-8.75-30.64-14.25-2.14-1.15-4.28-2.29-6.35-3.57-11.22-6.58-21.86-14.1-31.92-22.34-34.68-28.41-61.41-66.43-76.35-108.7-3.09-8.74-5.71-17.65-7.8-26.68-1.48-6.16-2.52-12.42-3.58-18.66-.4-2.35-.61-4.73-.95-7.09-.6-3.96-.75-7.96-1.17-11.94-.8-9.47-.71-18.99-.51-28.49.14-3.51.34-7.01.7-10.51.31-3.17.46-6.37.92-9.52.41-2.81.65-5.65 1.16-8.44.7-3.94 1.3-7.9 2.12-11.82 3.43-16.52 8.47-32.73 15.26-48.18 1.15-2.92 2.59-5.72 3.86-8.59 8.05-16.71 17.9-32.56 29.49-47.06 20-25.38 45.1-46.68 73.27-62.47 7.5-4.15 15.16-8.05 23.07-11.37 15.82-6.88 32.41-11.95 49.31-15.38 3.51-.67 7.04-1.24 10.56-1.85 2.62-.47 5.28-.7 7.91-1.08 3.53-.53 7.1-.68 10.65-1.04 2.46-.24 4.91-.36 7.36-.51m8.64 24.41c-9.23.1-18.43.99-27.57 2.23-7.3 1.08-14.53 2.6-21.71 4.3-13.91 3.5-27.48 8.34-40.46 14.42-10.46 4.99-20.59 10.7-30.18 17.22-4.18 2.92-8.4 5.8-12.34 9.03-5.08 3.97-9.98 8.17-14.68 12.59-2.51 2.24-4.81 4.7-7.22 7.06-28.22 28.79-48.44 65.39-57.5 104.69-2.04 8.44-3.54 17.02-4.44 25.65-1.1 8.89-1.44 17.85-1.41 26.8.11 7.14.38 14.28 1.22 21.37.62 7.12 1.87 14.16 3.2 21.18 1.07 4.65 2.03 9.32 3.33 13.91 6.29 23.38 16.5 45.7 30.07 65.75 8.64 12.98 18.78 24.93 29.98 35.77 16.28 15.82 35.05 29.04 55.34 39.22 7.28 3.52 14.66 6.87 22.27 9.63 5.04 1.76 10.06 3.57 15.22 4.98 11.26 3.23 22.77 5.6 34.39 7.06 2.91.29 5.81.61 8.72.9 13.82 1.08 27.74 1 41.54-.43 4.45-.6 8.92-.99 13.35-1.78 3.63-.67 7.28-1.25 10.87-2.1 4.13-.98 8.28-1.91 12.36-3.07 26.5-7.34 51.58-19.71 73.58-36.2 15.78-11.82 29.96-25.76 42.12-41.28 3.26-4.02 6.17-8.31 9.13-12.55 3.39-5.06 6.58-10.25 9.6-15.54 2.4-4.44 4.74-8.91 6.95-13.45 5.69-12.05 10.28-24.62 13.75-37.49 2.59-10.01 4.75-20.16 5.9-30.45 1.77-13.47 1.94-27.1 1.29-40.65-.29-3.89-.67-7.77-1-11.66-2.23-19.08-6.79-37.91-13.82-55.8-5.95-15.13-13.53-29.63-22.61-43.13-12.69-18.8-28.24-35.68-45.97-49.83-25.05-20-54.47-34.55-85.65-42.08-7.78-1.93-15.69-3.34-23.63-4.45-3.91-.59-7.85-.82-11.77-1.24-7.39-.57-14.81-.72-22.22-.58zM139.26 83.53c13.3-8.89 28.08-15.38 43.3-20.18-3.17 1.77-6.44 3.38-9.53 5.29-11.21 6.68-21.52 14.9-30.38 24.49-6.8 7.43-12.76 15.73-17.01 24.89-3.29 6.86-5.64 14.19-6.86 21.71-.93 4.85-1.3 9.81-1.17 14.75.13 13.66 4.44 27.08 11.29 38.82 5.92 10.22 13.63 19.33 22.36 27.26 4.85 4.36 10.24 8.09 14.95 12.6 2.26 2.19 4.49 4.42 6.43 6.91 2.62 3.31 4.89 6.99 5.99 11.1.9 3.02.66 6.2.69 9.31.02 4.1-.04 8.2.03 12.3.14 3.54-.02 7.09.11 10.63.08 2.38.02 4.76.05 7.14.16 5.77.06 11.53.15 17.3.11 2.91.02 5.82.13 8.74.03 1.63.13 3.28-.03 4.91-.91.12-1.82.18-2.73.16-10.99 0-21.88-2.63-31.95-6.93-6-2.7-11.81-5.89-17.09-9.83-5.75-4.19-11.09-8.96-15.79-14.31-6.53-7.24-11.98-15.39-16.62-23.95-1.07-2.03-2.24-4.02-3.18-6.12-1.16-2.64-2.62-5.14-3.67-7.82-4.05-9.68-6.57-19.94-8.08-30.31-.49-4.44-1.09-8.88-1.2-13.35-.7-15.73.84-31.55 4.67-46.82 2.12-8.15 4.77-16.18 8.31-23.83 6.32-14.2 15.34-27.18 26.3-38.19 6.28-6.2 13.13-11.84 20.53-16.67zm175.37-20.12c2.74.74 5.41 1.74 8.09 2.68 6.36 2.33 12.68 4.84 18.71 7.96 13.11 6.44 25.31 14.81 35.82 24.97 10.2 9.95 18.74 21.6 25.14 34.34 1.28 2.75 2.64 5.46 3.81 8.26 6.31 15.1 10 31.26 11.23 47.57.41 4.54.44 9.09.45 13.64.07 11.64-1.49 23.25-4.3 34.53-1.97 7.27-4.35 14.49-7.86 21.18-3.18 6.64-6.68 13.16-10.84 19.24-6.94 10.47-15.6 19.87-25.82 27.22-10.48 7.64-22.64 13.02-35.4 15.38-3.51.69-7.08 1.08-10.66 1.21-1.85.06-3.72.16-5.56-.1-.28-2.15 0-4.31-.01-6.46-.03-3.73.14-7.45.1-11.17.19-7.02.02-14.05.21-21.07.03-2.38-.03-4.76.03-7.14.17-5.07-.04-10.14.14-15.21.1-2.99-.24-6.04.51-8.96.66-2.5 1.78-4.86 3.09-7.08 4.46-7.31 11.06-12.96 17.68-18.26 5.38-4.18 10.47-8.77 15.02-13.84 7.68-8.37 14.17-17.88 18.78-28.27 2.5-5.93 4.52-12.1 5.55-18.46.86-4.37 1.06-8.83 1.01-13.27-.02-7.85-1.4-15.65-3.64-23.17-1.75-5.73-4.27-11.18-7.09-16.45-3.87-6.93-8.65-13.31-13.96-19.2-9.94-10.85-21.75-19.94-34.6-27.1-1.85-1.02-3.84-1.82-5.63-2.97zm-100.8 58.45c.98-1.18 1.99-2.33 3.12-3.38-.61.93-1.27 1.81-1.95 2.68-3.1 3.88-5.54 8.31-7.03 13.06-.87 3.27-1.68 6.6-1.73 10-.07 2.52-.08 5.07.32 7.57 1.13 7.63 4.33 14.85 8.77 21.12 2 2.7 4.25 5.27 6.92 7.33 1.62 1.27 3.53 2.09 5.34 3.05 3.11 1.68 6.32 3.23 9.07 5.48 2.67 2.09 4.55 5.33 4.4 8.79-.01 73.67 0 147.34-.01 221.02 0 1.35-.08 2.7.04 4.04.13 1.48.82 2.83 1.47 4.15.86 1.66 1.78 3.34 3.18 4.62.85.77 1.97 1.4 3.15 1.24 1.5-.2 2.66-1.35 3.45-2.57.96-1.51 1.68-3.16 2.28-4.85.76-2.13.44-4.42.54-6.63.14-4.03-.02-8.06.14-12.09.03-5.89.03-11.77.06-17.66.14-3.62.03-7.24.11-10.86.15-4.03-.02-8.06.14-12.09.03-5.99.03-11.98.07-17.97.14-3.62.02-7.24.11-10.86.14-3.93-.02-7.86.14-11.78.03-5.99.03-11.98.06-17.97.16-3.94-.01-7.88.19-11.82.29 1.44.13 2.92.22 4.38.19 3.61.42 7.23.76 10.84.32 3.44.44 6.89.86 10.32.37 3.1.51 6.22.95 9.31.57 4.09.87 8.21 1.54 12.29 1.46 9.04 2.83 18.11 5.09 26.99 1.13 4.82 2.4 9.61 4 14.3 2.54 7.9 5.72 15.67 10.31 22.62 1.73 2.64 3.87 4.98 6.1 7.21.27.25.55.51.88.71.6.25 1.31-.07 1.7-.57.71-.88 1.17-1.94 1.7-2.93 4.05-7.8 8.18-15.56 12.34-23.31.7-1.31 1.44-2.62 2.56-3.61 1.75-1.57 3.84-2.69 5.98-3.63 2.88-1.22 5.9-2.19 9.03-2.42 6.58-.62 13.11.75 19.56 1.85 3.69.58 7.4 1.17 11.13 1.41 3.74.1 7.48.05 11.21-.28 8.55-.92 16.99-2.96 24.94-6.25 5.3-2.24 10.46-4.83 15.31-7.93 11.46-7.21 21.46-16.57 30.04-27.01 1.17-1.42 2.25-2.9 3.46-4.28-1.2 3.24-2.67 6.37-4.16 9.48-1.25 2.9-2.84 5.61-4.27 8.42-5.16 9.63-11.02 18.91-17.75 27.52-4.03 5.21-8.53 10.05-13.33 14.57-6.64 6.05-14.07 11.37-22.43 14.76-8.21 3.37-17.31 4.63-26.09 3.29-3.56-.58-7.01-1.69-10.41-2.88-2.79-.97-5.39-2.38-8.03-3.69-3.43-1.71-6.64-3.81-9.71-6.08 2.71 3.06 5.69 5.86 8.7 8.61 4.27 3.76 8.74 7.31 13.63 10.23 3.98 2.45 8.29 4.4 12.84 5.51 1.46.37 2.96.46 4.45.6-1.25 1.1-2.63 2.04-3.99 2.98-9.61 6.54-20.01 11.86-30.69 16.43-20.86 8.7-43.17 13.97-65.74 15.34-4.66.24-9.32.36-13.98.36-4.98-.11-9.97-.13-14.92-.65-11.2-.76-22.29-2.73-33.17-5.43-10.35-2.71-20.55-6.12-30.3-10.55-8.71-3.86-17.12-8.42-24.99-13.79-1.83-1.31-3.74-2.53-5.37-4.08 6.6-1.19 13.03-3.39 18.99-6.48 5.74-2.86 10.99-6.66 15.63-11.07 2.24-2.19 4.29-4.59 6.19-7.09-3.43 2.13-6.93 4.15-10.62 5.78-4.41 2.16-9.07 3.77-13.81 5.02-5.73 1.52-11.74 1.73-17.61 1.14-8.13-.95-15.86-4.27-22.51-8.98-4.32-2.94-8.22-6.43-11.96-10.06-9.93-10.16-18.2-21.81-25.66-33.86-3.94-6.27-7.53-12.75-11.12-19.22-1.05-2.04-2.15-4.05-3.18-6.1 2.85 2.92 5.57 5.97 8.43 8.88 8.99 8.97 18.56 17.44 29.16 24.48 7.55 4.9 15.67 9.23 24.56 11.03 3.11.73 6.32.47 9.47.81 2.77.28 5.56.2 8.34.3 5.05.06 10.11.04 15.16-.16 3.65-.16 7.27-.66 10.89-1.09 2.07-.25 4.11-.71 6.14-1.2 3.88-.95 8.11-.96 11.83.61 4.76 1.85 8.44 5.64 11.38 9.71 2.16 3.02 4.06 6.22 5.66 9.58 1.16 2.43 2.46 4.79 3.55 7.26 1 2.24 2.15 4.42 3.42 6.52.67 1.02 1.4 2.15 2.62 2.55 1.06-.75 1.71-1.91 2.28-3.03 2.1-4.16 3.42-8.65 4.89-13.05 2.02-6.59 3.78-13.27 5.19-20.02 2.21-9.25 3.25-18.72 4.54-28.13.56-3.98.83-7.99 1.31-11.97.87-10.64 1.9-21.27 2.24-31.94.08-1.86.24-3.71.25-5.57.01-4.35.25-8.69.22-13.03-.01-2.38-.01-4.76 0-7.13.05-5.07-.2-10.14-.22-15.21-.2-6.61-.71-13.2-1.29-19.78-.73-5.88-1.55-11.78-3.12-17.51-2.05-7.75-5.59-15.03-9.8-21.82-3.16-5.07-6.79-9.88-11.09-14.03-3.88-3.86-8.58-7.08-13.94-8.45-1.5-.41-3.06-.45-4.59-.64.07-2.99.7-5.93 1.26-8.85 1.59-7.71 3.8-15.3 6.76-22.6 1.52-4.03 3.41-7.9 5.39-11.72 3.45-6.56 7.62-12.79 12.46-18.46zm31.27 1.7c.35-.06.71-.12 1.07-.19.19 1.79.09 3.58.1 5.37v38.13c-.01 1.74.13 3.49-.15 5.22-.36-.03-.71-.05-1.06-.05-.95-3.75-1.72-7.55-2.62-11.31-.38-1.53-.58-3.09-1.07-4.59-1.7-.24-3.43-.17-5.15-.2-5.06-.01-10.13 0-15.19-.01-1.66-.01-3.32.09-4.98-.03-.03-.39-.26-.91.16-1.18 1.28-.65 2.72-.88 4.06-1.35 3.43-1.14 6.88-2.16 10.31-3.31 1.39-.48 2.9-.72 4.16-1.54.04-.56.02-1.13-.05-1.68-1.23-.55-2.53-.87-3.81-1.28-3.13-1.03-6.29-1.96-9.41-3.02-1.79-.62-3.67-1-5.41-1.79-.03-.37-.07-.73-.11-1.09 5.09-.19 10.2.06 15.3-.12 3.36-.13 6.73.08 10.09-.07.12-.39.26-.77.37-1.16 1.08-4.94 2.33-9.83 3.39-14.75zm5.97-.2c.36.05.72.12 1.08.2.98 3.85 1.73 7.76 2.71 11.61.36 1.42.56 2.88 1.03 4.27 2.53.18 5.07-.01 7.61.05 5.16.12 10.33.12 15.49.07.76-.01 1.52.03 2.28.08-.04.36-.07.72-.1 1.08-1.82.83-3.78 1.25-5.67 1.89-3.73 1.23-7.48 2.39-11.22 3.57-.57.17-1.12.42-1.67.64-.15.55-.18 1.12-.12 1.69.87.48 1.82.81 2.77 1.09 4.88 1.52 9.73 3.14 14.63 4.6.38.13.78.27 1.13.49.4.27.23.79.15 1.18-1.66.13-3.31.03-4.97.04-5.17.01-10.33-.01-15.5.01-1.61.03-3.22-.02-4.82.21-.52 1.67-.72 3.42-1.17 5.11-.94 3.57-1.52 7.24-2.54 10.78-.36.01-.71.02-1.06.06-.29-1.73-.15-3.48-.15-5.22v-38.13c.02-1.78-.08-3.58.11-5.37zM65.05 168.33c1.12-2.15 2.08-4.4 3.37-6.46-1.82 7.56-2.91 15.27-3.62 23-.8 7.71-.85 15.49-.54 23.23 1.05 19.94 5.54 39.83 14.23 57.88 2.99 5.99 6.35 11.83 10.5 17.11 6.12 7.47 12.53 14.76 19.84 21.09 4.8 4.1 9.99 7.78 15.54 10.8 3.27 1.65 6.51 3.39 9.94 4.68 5.01 2.03 10.19 3.61 15.42 4.94 3.83.96 7.78 1.41 11.52 2.71 5 1.57 9.47 4.61 13.03 8.43 4.93 5.23 8.09 11.87 10.2 18.67.99 2.9 1.59 5.91 2.17 8.92.15.75.22 1.52.16 2.29-6.5 2.78-13.26 5.06-20.26 6.18-4.11.78-8.29.99-12.46 1.08-10.25.24-20.47-1.76-30.12-5.12-3.74-1.42-7.49-2.85-11.03-4.72-8.06-3.84-15.64-8.7-22.46-14.46-2.92-2.55-5.83-5.13-8.4-8.03-9.16-9.83-16.3-21.41-21.79-33.65-2.39-5.55-4.61-11.18-6.37-16.96-1.17-3.94-2.36-7.89-3.26-11.91-.75-2.94-1.22-5.95-1.87-8.92-.46-2.14-.69-4.32-1.03-6.48-.85-5.43-1.28-10.93-1.33-16.43.11-6.18.25-12.37 1.07-18.5.4-2.86.67-5.74 1.15-8.6.98-5.7 2.14-11.37 3.71-16.93 3.09-11.65 7.48-22.95 12.69-33.84zm363.73-6.44c1.1 1.66 1.91 3.48 2.78 5.26 2.1 4.45 4.24 8.9 6.02 13.49 7.61 18.76 12.3 38.79 13.04 59.05.02 1.76.07 3.52.11 5.29.13 9.57-1.27 19.09-3.18 28.45-.73 3.59-1.54 7.17-2.58 10.69-4.04 14.72-10 29-18.41 41.78-8.21 12.57-19.01 23.55-31.84 31.41-5.73 3.59-11.79 6.64-18.05 9.19-5.78 2.19-11.71 4.03-17.8 5.11-6.4 1.05-12.91 1.52-19.4 1.23-7.92-.48-15.78-2.07-23.21-4.85-1.94-.8-3.94-1.46-5.84-2.33-.21-1.51.25-2.99.53-4.46 1.16-5.74 3.03-11.36 5.7-16.58 2.37-4.51 5.52-8.65 9.46-11.9 2.43-2.05 5.24-3.61 8.16-4.83 3.58-1.5 7.47-1.97 11.24-2.83 7.23-1.71 14.37-3.93 21.15-7 10.35-4.65 19.71-11.38 27.65-19.46 1.59-1.61 3.23-3.18 4.74-4.87 3.37-3.76 6.71-7.57 9.85-11.53 7.48-10.07 12.82-21.59 16.71-33.48 1.58-5.3 3.21-10.6 4.21-16.05.63-2.87 1.04-5.78 1.52-8.68.87-6.09 1.59-12.22 1.68-18.38.12-6.65.14-13.32-.53-19.94-.73-7.99-1.87-15.96-3.71-23.78z"], - "odysee": [512, 512, [], "e5c6", "M406.7 463c-42.3 30.8-94.4 49-150.7 49C144.9 512 50.3 441.2 14.9 342.2c2.4 1.7 5.9 3.6 7.9 4.4c16.3 7.4 40.1-5.4 62.9-28.7c6.9-6.9 14.4-12.4 22.8-17.3c18.3-11.9 37.6-20.8 58.4-27.2c0 0 22.3 34.2 43.1 74.8s-22.3 54-27.2 54c-.3 0-.8 0-1.5-.1c-11-.5-70-3-56 51.1c14.9 57.4 97.5 36.6 139.6 8.9s31.7-118.3 31.7-118.3c41.1-6.4 54 37.1 57.9 59.4c.8 4.6 1.1 9.9 1.4 15.5c1.1 21.2 2.3 45.6 35.3 46.4c5.3 0 10.6-.8 15.5-2zm-95.3-23.7c-2-.5-3.5-2.5-3-5c1-2.5 3-3.5 5-3s3.5 3 3 5s-2.5 3.5-5 3zm-207-95.6c1.5-.5 3.5 1 4 3c0 2-1 4-3 4c-1.5 .5-3.5-1-4-3c-.5-1.5 1-3.5 3-4zM451.8 421C489.3 376.4 512 318.8 512 256c0-67.5-26.1-128.9-68.8-174.7c-.1 23.5-6.1 48.2-16.8 69.2c-11.9 20.3-49 58.9-69.8 78.7c-.7 .3-1.1 .9-1.5 1.4c-.2 .2-.3 .4-.5 .6c-5 6.9-4 16.8 3 21.8c21.3 15.8 56.4 45.6 59.4 72.8c3.5 34.9 27.9 75.6 34.2 86.2l0 0c.8 1.3 1.3 2.1 1.4 2.4c0 2.2-.4 4.3-.8 6.5zM390.7 251c-.5 3 1 5.9 4 6.4s5.9-1 6.4-4s-1-5.9-4-6.4c-3-1-5.9 1-6.4 4zm61.4-60.9l-11.4 5.4-3 12.9-5.4-11.4-12.9-3 11.4-5.4 3-12.9 5.4 11.4 12.9 3zM395.5 41.3c-16.2 8.2-22.1 32.8-29 61.4l0 0c-.3 1.4-.7 2.8-1 4.2c-9.5 38.5-30.6 37.6-41.7 37.2c-1.1 0-2-.1-2.9-.1c-5.1 0-6-4-8.9-17.1c-2.6-12.1-6.9-32-17.9-63.6C271.4-2.5 211.4 13.9 165.9 41.1C110.6 74.2 131.5 143 146.1 190.5c.7 2.2 1.4 4.4 2 6.6c-4 4-13.8 7.5-26 11.9c-12.1 4.3-26.6 9.5-40.3 16.9C47.9 243.9 11.5 274.9 2 288.5C.7 277.8 0 267 0 256C0 114.6 114.6 0 256 0c51.4 0 99.4 15.2 139.5 41.3zM58.9 189.6c-1.5-2-4.5-3-6.4-1.5s-3 4.5-1.5 6.4s4.5 3 6.4 1.5c2.5-1.5 3-4.5 1.5-6.4zM327.3 64.9c2-1.5 5-.5 6.4 1.5c1.5 2.5 1 5.4-1.5 6.4c-2 1.5-5 .5-6.4-1.5s-.5-5 1.5-6.4zM95.1 105c-.5 1.5 .5 3 2 3c1.5 .5 3-.5 3-2c.5-1.5-.5-3-2-3s-3 .5-3 2zm84.7-.5c-3.5-43.1 37.1-54 37.1-54c44.1-15.4 56 5.9 66.4 37.6s3 42.6-38.6 58.9s-61.9-4.5-64.9-42.6zm89.6 14.9h1c2.5 0 5-2 5-5c2-6.9 1-14.4-2-20.8c-1.5-2-4-3.5-6.4-2.5c-3 1-4.5 4-3.5 6.9c2 4.5 3 9.9 1.5 14.9c-.5 3 1.5 5.9 4.5 6.4zm-9.9-41.6c-2 0-4-1-5-3s-2-3.5-3-5c-2-2-2-5.4 0-7.4s5.4-2 7.4 0c2 2.5 3.5 5 5 7.4s.5 5.9-2.5 7.4c-.6 0-1 .2-1.3 .3c-.2 .1-.4 .2-.6 .2z"], - "square-whatsapp": [448, 512, ["whatsapp-square"], "f40c", "M92.1 254.6c0 24.9 7 49.2 20.2 70.1l3.1 5-13.3 48.6L152 365.2l4.8 2.9c20.2 12 43.4 18.4 67.1 18.4h.1c72.6 0 133.3-59.1 133.3-131.8c0-35.2-15.2-68.3-40.1-93.2c-25-25-58-38.7-93.2-38.7c-72.7 0-131.8 59.1-131.9 131.8zM274.8 330c-12.6 1.9-22.4 .9-47.5-9.9c-36.8-15.9-61.8-51.5-66.9-58.7c-.4-.6-.7-.9-.8-1.1c-2-2.6-16.2-21.5-16.2-41c0-18.4 9-27.9 13.2-32.3c.3-.3 .5-.5 .7-.8c3.6-4 7.9-5 10.6-5c2.6 0 5.3 0 7.6 .1c.3 0 .5 0 .8 0c2.3 0 5.2 0 8.1 6.8c1.2 2.9 3 7.3 4.9 11.8c3.3 8 6.7 16.3 7.3 17.6c1 2 1.7 4.3 .3 6.9c-3.4 6.8-6.9 10.4-9.3 13c-3.1 3.2-4.5 4.7-2.3 8.6c15.3 26.3 30.6 35.4 53.9 47.1c4 2 6.3 1.7 8.6-1c2.3-2.6 9.9-11.6 12.5-15.5c2.6-4 5.3-3.3 8.9-2s23.1 10.9 27.1 12.9c.8 .4 1.5 .7 2.1 1c2.8 1.4 4.7 2.3 5.5 3.6c.9 1.9 .9 9.9-2.4 19.1c-3.3 9.3-19.1 17.7-26.7 18.8zM448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM148.1 393.9L64 416l22.5-82.2c-13.9-24-21.2-51.3-21.2-79.3C65.4 167.1 136.5 96 223.9 96c42.4 0 82.2 16.5 112.2 46.5c29.9 30 47.9 69.8 47.9 112.2c0 87.4-72.7 158.5-160.1 158.5c-26.6 0-52.7-6.7-75.8-19.3z"], - "node-js": [448, 512, [], "f3d3", "M224 508c-6.7 0-13.5-1.8-19.4-5.2l-61.7-36.5c-9.2-5.2-4.7-7-1.7-8 12.3-4.3 14.8-5.2 27.9-12.7 1.4-.8 3.2-.5 4.6.4l47.4 28.1c1.7 1 4.1 1 5.7 0l184.7-106.6c1.7-1 2.8-3 2.8-5V149.3c0-2.1-1.1-4-2.9-5.1L226.8 37.7c-1.7-1-4-1-5.7 0L36.6 144.3c-1.8 1-2.9 3-2.9 5.1v213.1c0 2 1.1 4 2.9 4.9l50.6 29.2c27.5 13.7 44.3-2.4 44.3-18.7V167.5c0-3 2.4-5.3 5.4-5.3h23.4c2.9 0 5.4 2.3 5.4 5.3V378c0 36.6-20 57.6-54.7 57.6-10.7 0-19.1 0-42.5-11.6l-48.4-27.9C8.1 389.2.7 376.3.7 362.4V149.3c0-13.8 7.4-26.8 19.4-33.7L204.6 9c11.7-6.6 27.2-6.6 38.8 0l184.7 106.7c12 6.9 19.4 19.8 19.4 33.7v213.1c0 13.8-7.4 26.7-19.4 33.7L243.4 502.8c-5.9 3.4-12.6 5.2-19.4 5.2zm149.1-210.1c0-39.9-27-50.5-83.7-58-57.4-7.6-63.2-11.5-63.2-24.9 0-11.1 4.9-25.9 47.4-25.9 37.9 0 51.9 8.2 57.7 33.8.5 2.4 2.7 4.2 5.2 4.2h24c1.5 0 2.9-.6 3.9-1.7s1.5-2.6 1.4-4.1c-3.7-44.1-33-64.6-92.2-64.6-52.7 0-84.1 22.2-84.1 59.5 0 40.4 31.3 51.6 81.8 56.6 60.5 5.9 65.2 14.8 65.2 26.7 0 20.6-16.6 29.4-55.5 29.4-48.9 0-59.6-12.3-63.2-36.6-.4-2.6-2.6-4.5-5.3-4.5h-23.9c-3 0-5.3 2.4-5.3 5.3 0 31.1 16.9 68.2 97.8 68.2 58.4-.1 92-23.2 92-63.4z"], - "edge-legacy": [512, 512, [], "e078", "M25.71,228.16l.35-.48c0,.16,0,.32-.07.48Zm460.58,15.51c0-44-7.76-84.46-28.81-122.4C416.5,47.88,343.91,8,258.89,8,119,7.72,40.62,113.21,26.06,227.68c42.42-61.31,117.07-121.38,220.37-125,0,0,109.67,0,99.42,105H170c6.37-37.39,18.55-59,34.34-78.93-75.05,34.9-121.85,96.1-120.75,188.32.83,71.45,50.13,144.84,120.75,172,83.35,31.84,192.77,7.2,240.13-21.33V363.31C363.6,419.8,173.6,424.23,172.21,295.74H486.29V243.67Z"], - "slack": [448, 512, [62447, "slack-hash"], "f198", "M94.12 315.1c0 25.9-21.16 47.06-47.06 47.06S0 341 0 315.1c0-25.9 21.16-47.06 47.06-47.06h47.06v47.06zm23.72 0c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06v117.84c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06V315.1zm47.06-188.98c-25.9 0-47.06-21.16-47.06-47.06S139 32 164.9 32s47.06 21.16 47.06 47.06v47.06H164.9zm0 23.72c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06H47.06C21.16 243.96 0 222.8 0 196.9s21.16-47.06 47.06-47.06H164.9zm188.98 47.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06h-47.06V196.9zm-23.72 0c0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06V79.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06V196.9zM283.1 385.88c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06v-47.06h47.06zm0-23.72c-25.9 0-47.06-21.16-47.06-47.06 0-25.9 21.16-47.06 47.06-47.06h117.84c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06H283.1z"], - "medrt": [544, 512, [], "f3c8", "M113.7 256c0 121.8 83.9 222.8 193.5 241.1-18.7 4.5-38.2 6.9-58.2 6.9C111.4 504 0 393 0 256S111.4 8 248.9 8c20.1 0 39.6 2.4 58.2 6.9C197.5 33.2 113.7 134.2 113.7 256m297.4 100.3c-77.7 55.4-179.6 47.5-240.4-14.6 5.5 14.1 12.7 27.7 21.7 40.5 61.6 88.2 182.4 109.3 269.7 47 87.3-62.3 108.1-184.3 46.5-272.6-9-12.9-19.3-24.3-30.5-34.2 37.4 78.8 10.7 178.5-67 233.9m-218.8-244c-1.4 1-2.7 2.1-4 3.1 64.3-17.8 135.9 4 178.9 60.5 35.7 47 42.9 106.6 24.4 158 56.7-56.2 67.6-142.1 22.3-201.8-50-65.5-149.1-74.4-221.6-19.8M296 224c-4.4 0-8-3.6-8-8v-40c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v40c0 4.4-3.6 8-8 8h-40c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h40c4.4 0 8 3.6 8 8v40c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-40c0-4.4 3.6-8 8-8h40c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-40z"], - "usb": [640, 512, [], "f287", "M641.5 256c0 3.1-1.7 6.1-4.5 7.5L547.9 317c-1.4.8-2.8 1.4-4.5 1.4-1.4 0-3.1-.3-4.5-1.1-2.8-1.7-4.5-4.5-4.5-7.8v-35.6H295.7c25.3 39.6 40.5 106.9 69.6 106.9H392V354c0-5 3.9-8.9 8.9-8.9H490c5 0 8.9 3.9 8.9 8.9v89.1c0 5-3.9 8.9-8.9 8.9h-89.1c-5 0-8.9-3.9-8.9-8.9v-26.7h-26.7c-75.4 0-81.1-142.5-124.7-142.5H140.3c-8.1 30.6-35.9 53.5-69 53.5C32 327.3 0 295.3 0 256s32-71.3 71.3-71.3c33.1 0 61 22.8 69 53.5 39.1 0 43.9 9.5 74.6-60.4C255 88.7 273 95.7 323.8 95.7c7.5-20.9 27-35.6 50.4-35.6 29.5 0 53.5 23.9 53.5 53.5s-23.9 53.5-53.5 53.5c-23.4 0-42.9-14.8-50.4-35.6H294c-29.1 0-44.3 67.4-69.6 106.9h310.1v-35.6c0-3.3 1.7-6.1 4.5-7.8 2.8-1.7 6.4-1.4 8.9.3l89.1 53.5c2.8 1.1 4.5 4.1 4.5 7.2z"], - "tumblr": [320, 512, [], "f173", "M309.8 480.3c-13.6 14.5-50 31.7-97.4 31.7-120.8 0-147-88.8-147-140.6v-144H17.9c-5.5 0-10-4.5-10-10v-68c0-7.2 4.5-13.6 11.3-16 62-21.8 81.5-76 84.3-117.1.8-11 6.5-16.3 16.1-16.3h70.9c5.5 0 10 4.5 10 10v115.2h83c5.5 0 10 4.4 10 9.9v81.7c0 5.5-4.5 10-10 10h-83.4V360c0 34.2 23.7 53.6 68 35.8 4.8-1.9 9-3.2 12.7-2.2 3.5.9 5.8 3.4 7.4 7.9l22 64.3c1.8 5 3.3 10.6-.4 14.5z"], - "vaadin": [448, 512, [], "f408", "M224.5 140.7c1.5-17.6 4.9-52.7 49.8-52.7h98.6c20.7 0 32.1-7.8 32.1-21.6V54.1c0-12.2 9.3-22.1 21.5-22.1S448 41.9 448 54.1v36.5c0 42.9-21.5 62-66.8 62H280.7c-30.1 0-33 14.7-33 27.1 0 1.3-.1 2.5-.2 3.7-.7 12.3-10.9 22.2-23.4 22.2s-22.7-9.8-23.4-22.2c-.1-1.2-.2-2.4-.2-3.7 0-12.3-3-27.1-33-27.1H66.8c-45.3 0-66.8-19.1-66.8-62V54.1C0 41.9 9.4 32 21.6 32s21.5 9.9 21.5 22.1v12.3C43.1 80.2 54.5 88 75.2 88h98.6c44.8 0 48.3 35.1 49.8 52.7h.9zM224 456c11.5 0 21.4-7 25.7-16.3 1.1-1.8 97.1-169.6 98.2-171.4 11.9-19.6-3.2-44.3-27.2-44.3-13.9 0-23.3 6.4-29.8 20.3L224 362l-66.9-117.7c-6.4-13.9-15.9-20.3-29.8-20.3-24 0-39.1 24.6-27.2 44.3 1.1 1.9 97.1 169.6 98.2 171.4 4.3 9.3 14.2 16.3 25.7 16.3z"], - "quora": [448, 512, [], "f2c4", "M440.5 386.7h-29.3c-1.5 13.5-10.5 30.8-33 30.8-20.5 0-35.3-14.2-49.5-35.8 44.2-34.2 74.7-87.5 74.7-153C403.5 111.2 306.8 32 205 32 105.3 32 7.3 111.7 7.3 228.7c0 134.1 131.3 221.6 249 189C276 451.3 302 480 351.5 480c81.8 0 90.8-75.3 89-93.3zM297 329.2C277.5 300 253.3 277 205.5 277c-30.5 0-54.3 10-69 22.8l12.2 24.3c6.2-3 13-4 19.8-4 35.5 0 53.7 30.8 69.2 61.3-10 3-20.7 4.2-32.7 4.2-75 0-107.5-53-107.5-156.7C97.5 124.5 130 71 205 71c76.2 0 108.7 53.5 108.7 157.7.1 41.8-5.4 75.6-16.7 100.5z"], - "square-x-twitter": [448, 512, [], "e61a", "M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm297.1 84L257.3 234.6 379.4 396H283.8L209 298.1 123.3 396H75.8l111-126.9L69.7 116h98l67.7 89.5L313.6 116h47.5zM323.3 367.6L153.4 142.9H125.1L296.9 367.6h26.3z"], - "reacteurope": [576, 512, [], "f75d", "M250.6 211.74l5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1-2.3-6.8-2.3 6.8-7.2.1 5.7 4.3zm63.7 0l5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.2-.1-2.3-6.8-2.3 6.8-7.2.1 5.7 4.3zm-91.3 50.5h-3.4c-4.8 0-3.8 4-3.8 12.1 0 4.7-2.3 6.1-5.8 6.1s-5.8-1.4-5.8-6.1v-36.6c0-4.7 2.3-6.1 5.8-6.1s5.8 1.4 5.8 6.1c0 7.2-.7 10.5 3.8 10.5h3.4c4.7-.1 3.8-3.9 3.8-12.3 0-9.9-6.7-14.1-16.8-14.1h-.2c-10.1 0-16.8 4.2-16.8 14.1V276c0 10.4 6.7 14.1 16.8 14.1h.2c10.1 0 16.8-3.8 16.8-14.1 0-9.86 1.1-13.76-3.8-13.76zm-80.7 17.4h-14.7v-19.3H139c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-11.4v-18.3H142c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-21.7c-2.4-.1-3.7 1.3-3.7 3.8v59.1c0 2.5 1.3 3.8 3.8 3.8h21.9c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8zm-42-18.5c4.6-2 7.3-6 7.3-12.4v-11.9c0-10.1-6.7-14.1-16.8-14.1H77.4c-2.5 0-3.8 1.3-3.8 3.8v59.1c0 2.5 1.3 3.8 3.8 3.8h3.4c2.5 0 3.8-1.3 3.8-3.8v-22.9h5.6l7.4 23.5a4.1 4.1 0 0 0 4.3 3.2h3.3c2.8 0 4-1.8 3.2-4.4zm-3.8-14c0 4.8-2.5 6.1-6.1 6.1h-5.8v-20.9h5.8c3.6 0 6.1 1.3 6.1 6.1zM176 226a3.82 3.82 0 0 0-4.2-3.4h-6.9a3.68 3.68 0 0 0-4 3.4l-11 59.2c-.5 2.7.9 4.1 3.4 4.1h3a3.74 3.74 0 0 0 4.1-3.5l1.8-11.3h12.2l1.8 11.3a3.74 3.74 0 0 0 4.1 3.5h3.5c2.6 0 3.9-1.4 3.4-4.1zm-12.3 39.3l4.7-29.7 4.7 29.7zm89.3 20.2v-53.2h7.5c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-25.8c-2.5 0-3.8 1.3-3.8 3.8v2.1c0 2.5 1.3 3.8 3.8 3.8h7.3v53.2c0 2.5 1.3 3.8 3.8 3.8h3.4c2.5.04 3.8-1.3 3.8-3.76zm248-.8h-19.4V258h16.1a1.89 1.89 0 0 0 2-2v-.8a1.89 1.89 0 0 0-2-2h-16.1v-25.8h19.1a1.89 1.89 0 0 0 2-2v-.8a1.77 1.77 0 0 0-2-1.9h-22.2a1.62 1.62 0 0 0-2 1.8v63a1.81 1.81 0 0 0 2 1.9H501a1.81 1.81 0 0 0 2-1.9v-.8a1.84 1.84 0 0 0-2-1.96zm-93.1-62.9h-.8c-10.1 0-15.3 4.7-15.3 14.1V276c0 9.3 5.2 14.1 15.3 14.1h.8c10.1 0 15.3-4.8 15.3-14.1v-40.1c0-9.36-5.2-14.06-15.3-14.06zm10.2 52.4c-.1 8-3 11.1-10.5 11.1s-10.5-3.1-10.5-11.1v-36.6c0-7.9 3-11.1 10.5-11.1s10.5 3.2 10.5 11.1zm-46.5-14.5c6.1-1.6 9.2-6.1 9.2-13.3v-9.7c0-9.4-5.2-14.1-15.3-14.1h-13.7a1.81 1.81 0 0 0-2 1.9v63a1.81 1.81 0 0 0 2 1.9h1.2a1.74 1.74 0 0 0 1.9-1.9v-26.9h11.6l10.4 27.2a2.32 2.32 0 0 0 2.3 1.5h1.5c1.4 0 2-1 1.5-2.3zm-6.4-3.9H355v-28.5h10.2c7.5 0 10.5 3.1 10.5 11.1v6.4c0 7.84-3 11.04-10.5 11.04zm85.9-33.1h-13.7a1.62 1.62 0 0 0-2 1.8v63a1.81 1.81 0 0 0 2 1.9h1.2a1.74 1.74 0 0 0 1.9-1.9v-26.1h10.6c10.1 0 15.3-4.8 15.3-14.1v-10.5c0-9.4-5.2-14.1-15.3-14.1zm10.2 22.8c0 7.9-3 11.1-10.5 11.1h-10.2v-29.2h10.2c7.5-.1 10.5 3.1 10.5 11zM259.5 308l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm227.6-136.1a364.42 364.42 0 0 0-35.6-11.3c19.6-78 11.6-134.7-22.3-153.9C394.7-12.66 343.3 11 291 61.94q5.1 4.95 10.2 10.2c82.5-80 119.6-53.5 120.9-52.8 22.4 12.7 36 55.8 15.5 137.8a587.83 587.83 0 0 0-84.6-13C281.1 43.64 212.4 2 170.8 2 140 2 127 23 123.2 29.74c-18.1 32-13.3 84.2.1 133.8-70.5 20.3-120.7 54.1-120.3 95 .5 59.6 103.2 87.8 122.1 92.8-20.5 81.9-10.1 135.6 22.3 153.9 28 15.8 75.1 6 138.2-55.2q-5.1-4.95-10.2-10.2c-82.5 80-119.7 53.5-120.9 52.8-22.3-12.6-36-55.6-15.5-137.9 12.4 2.9 41.8 9.5 84.6 13 71.9 100.4 140.6 142 182.1 142 30.8 0 43.8-21 47.6-27.7 18-31.9 13.3-84.1-.1-133.8 152.3-43.8 156.2-130.2 33.9-176.3zM135.9 36.84c2.9-5.1 11.9-20.3 34.9-20.3 36.8 0 98.8 39.6 163.3 126.2a714 714 0 0 0-93.9.9 547.76 547.76 0 0 1 42.2-52.4Q277.3 86 272.2 81a598.25 598.25 0 0 0-50.7 64.2 569.69 569.69 0 0 0-84.4 14.6c-.2-1.4-24.3-82.2-1.2-123zm304.8 438.3c-2.9 5.1-11.8 20.3-34.9 20.3-36.7 0-98.7-39.4-163.3-126.2a695.38 695.38 0 0 0 93.9-.9 547.76 547.76 0 0 1-42.2 52.4q5.1 5.25 10.2 10.2a588.47 588.47 0 0 0 50.7-64.2c47.3-4.7 80.3-13.5 84.4-14.6 22.7 84.4 4.5 117 1.2 123zm9.1-138.6c-3.6-11.9-7.7-24.1-12.4-36.4a12.67 12.67 0 0 1-10.7-5.7l-.1.1a19.61 19.61 0 0 1-5.4 3.6c5.7 14.3 10.6 28.4 14.7 42.2a535.3 535.3 0 0 1-72 13c3.5-5.3 17.2-26.2 32.2-54.2a24.6 24.6 0 0 1-6-3.2c-1.1 1.2-3.6 4.2-10.9 4.2-6.2 11.2-17.4 30.9-33.9 55.2a711.91 711.91 0 0 1-112.4 1c-7.9-11.2-21.5-31.1-36.8-57.8a21 21 0 0 1-3-1.5c-1.9 1.6-3.9 3.2-12.6 3.2 6.3 11.2 17.5 30.7 33.8 54.6a548.81 548.81 0 0 1-72.2-11.7q5.85-21 14.1-42.9c-3.2 0-5.4.2-8.4-1a17.58 17.58 0 0 1-6.9 1c-4.9 13.4-9.1 26.5-12.7 39.4C-31.7 297-12.1 216 126.7 175.64c3.6 11.9 7.7 24.1 12.4 36.4 10.4 0 12.9 3.4 14.4 5.3a12 12 0 0 1 2.3-2.2c-5.8-14.7-10.9-29.2-15.2-43.3 7-1.8 32.4-8.4 72-13-15.9 24.3-26.7 43.9-32.8 55.3a14.22 14.22 0 0 1 6.4 8 23.42 23.42 0 0 1 10.2-8.4c6.5-11.7 17.9-31.9 34.8-56.9a711.72 711.72 0 0 1 112.4-1c31.5 44.6 28.9 48.1 42.5 64.5a21.42 21.42 0 0 1 10.4-7.4c-6.4-11.4-17.6-31-34.3-55.5 40.4 4.1 65 10 72.2 11.7-4 14.4-8.9 29.2-14.6 44.2a20.74 20.74 0 0 1 6.8 4.3l.1.1a12.72 12.72 0 0 1 8.9-5.6c4.9-13.4 9.2-26.6 12.8-39.5a359.71 359.71 0 0 1 34.5 11c106.1 39.9 74 87.9 72.6 90.4-19.8 35.1-80.1 55.2-105.7 62.5zm-114.4-114h-1.2a1.74 1.74 0 0 0-1.9 1.9v49.8c0 7.9-2.6 11.1-10.1 11.1s-10.1-3.1-10.1-11.1v-49.8a1.69 1.69 0 0 0-1.9-1.9H309a1.81 1.81 0 0 0-2 1.9v51.5c0 9.6 5 14.1 15.1 14.1h.4c10.1 0 15.1-4.6 15.1-14.1v-51.5a2 2 0 0 0-2.2-1.9zM321.7 308l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm-31.1 7.4l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm5.1-30.8h-19.4v-26.7h16.1a1.89 1.89 0 0 0 2-2v-.8a1.89 1.89 0 0 0-2-2h-16.1v-25.8h19.1a1.89 1.89 0 0 0 2-2v-.8a1.77 1.77 0 0 0-2-1.9h-22.2a1.81 1.81 0 0 0-2 1.9v63a1.81 1.81 0 0 0 2 1.9h22.5a1.77 1.77 0 0 0 2-1.9v-.8a1.83 1.83 0 0 0-2-2.06zm-7.4-99.4L286 192l-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1z"], - "medium": [640, 512, [62407, "medium-m"], "f23a", "M180.5,74.262C80.813,74.262,0,155.633,0,256S80.819,437.738,180.5,437.738,361,356.373,361,256,280.191,74.262,180.5,74.262Zm288.25,10.646c-49.845,0-90.245,76.619-90.245,171.095s40.406,171.1,90.251,171.1,90.251-76.619,90.251-171.1H559C559,161.5,518.6,84.908,468.752,84.908Zm139.506,17.821c-17.526,0-31.735,68.628-31.735,153.274s14.2,153.274,31.735,153.274S640,340.631,640,256C640,171.351,625.785,102.729,608.258,102.729Z"], - "amilia": [448, 512, [], "f36d", "M240.1 32c-61.9 0-131.5 16.9-184.2 55.4-5.1 3.1-9.1 9.2-7.2 19.4 1.1 5.1 5.1 27.4 10.2 39.6 4.1 10.2 14.2 10.2 20.3 6.1 32.5-22.3 96.5-47.7 152.3-47.7 57.9 0 58.9 28.4 58.9 73.1v38.5C203 227.7 78.2 251 46.7 264.2 11.2 280.5 16.3 357.7 16.3 376s15.2 104 124.9 104c47.8 0 113.7-20.7 153.3-42.1v25.4c0 3 2.1 8.2 6.1 9.1 3.1 1 50.7 2 59.9 2s62.5.3 66.5-.7c4.1-1 5.1-6.1 5.1-9.1V168c-.1-80.3-57.9-136-192-136zm50.2 348c-21.4 13.2-48.7 24.4-79.1 24.4-52.8 0-58.9-33.5-59-44.7 0-12.2-3-42.7 18.3-52.9 24.3-13.2 75.1-29.4 119.8-33.5z"], - "mixcloud": [640, 512, [], "f289", "M212.98 346.566H179.789V195.114L185.973 173.47H175.262L137.127 346.566H76.1069L37.7323 173.47H27.276L33.1913 195.114V346.566H0V165H65.6506L102.248 338.096H110.747L147.329 165H212.98L212.98 346.566ZM544.459 283.589L458.434 345.655V307.534L531.329 255.776L458.434 204.017V165.896L544.459 228.231H553.721L640 165.896V204.017L566.866 255.776L640 307.549V345.655L553.721 283.589H544.459ZM430.157 272.311H248.113V239.255H430.157V272.311Z"], - "flipboard": [448, 512, [], "f44d", "M0 32v448h448V32H0zm358.4 179.2h-89.6v89.6h-89.6v89.6H89.6V121.6h268.8v89.6z"], - "viacoin": [384, 512, [], "f237", "M384 32h-64l-80.7 192h-94.5L64 32H0l48 112H0v48h68.5l13.8 32H0v48h102.8L192 480l89.2-208H384v-48h-82.3l13.8-32H384v-48h-48l48-112zM192 336l-27-64h54l-27 64z"], - "critical-role": [448, 512, [], "f6c9", "M225.82 0c.26.15 216.57 124.51 217.12 124.72 3 1.18 3.7 3.46 3.7 6.56q-.11 125.17 0 250.36a5.88 5.88 0 0 1-3.38 5.78c-21.37 12-207.86 118.29-218.93 124.58h-3C142 466.34 3.08 386.56 2.93 386.48a3.29 3.29 0 0 1-1.88-3.24c0-.87 0-225.94-.05-253.1a5 5 0 0 1 2.93-4.93C27.19 112.11 213.2 6 224.07 0zM215.4 20.42l-.22-.16Q118.06 75.55 21 130.87c0 .12.08.23.13.35l30.86 11.64c-7.71 6-8.32 6-10.65 5.13-.1 0-24.17-9.28-26.8-10v230.43c.88-1.41 64.07-110.91 64.13-111 1.62-2.82 3-1.92 9.12-1.52 1.4.09 1.48.22.78 1.42-41.19 71.33-36.4 63-67.48 116.94-.81 1.4-.61 1.13 1.25 1.13h186.5c1.44 0 1.69-.23 1.7-1.64v-8.88c0-1.34 2.36-.81-18.37-1-7.46-.07-14.14-3.22-21.38-12.7-7.38-9.66-14.62-19.43-21.85-29.21-2.28-3.08-3.45-2.38-16.76-2.38-1.75 0-1.78 0-1.76 1.82.29 26.21.15 25.27 1 32.66.52 4.37 2.16 4.2 9.69 4.81 3.14.26 3.88 4.08.52 4.92-1.57.39-31.6.51-33.67-.1a2.42 2.42 0 0 1 .3-4.73c3.29-.76 6.16.81 6.66-4.44 1.3-13.66 1.17-9 1.1-79.42 0-10.82-.35-12.58-5.36-13.55-1.22-.24-3.54-.16-4.69-.55-2.88-1-2-4.84 1.77-4.85 33.67 0 46.08-1.07 56.06 4.86 7.74 4.61 12 11.48 12.51 20.4.88 14.59-6.51 22.35-15 32.59a1.46 1.46 0 0 0 0 2.22c2.6 3.25 5 6.63 7.71 9.83 27.56 33.23 24.11 30.54 41.28 33.06.89.13 1-.42 1-1.15v-11c0-1 .32-1.43 1.41-1.26a72.37 72.37 0 0 0 23.58-.3c1.08-.15 1.5.2 1.48 1.33 0 .11.88 26.69.87 26.8-.05 1.52.67 1.62 1.89 1.62h186.71Q386.51 304.6 346 234.33c2.26-.66-.4 0 6.69-1.39 2-.39 2.05-.41 3.11 1.44 7.31 12.64 77.31 134 77.37 134.06V138c-1.72.5-103.3 38.72-105.76 39.68-1.08.42-1.55.2-1.91-.88-.63-1.9-1.34-3.76-2.09-5.62-.32-.79-.09-1.13.65-1.39.1 0 95.53-35.85 103-38.77-65.42-37.57-130.56-75-196-112.6l86.82 150.39-.28.33c-9.57-.9-10.46-1.6-11.8-3.94-1-1.69-73.5-127.71-82-142.16-9.1 14.67-83.56 146.21-85.37 146.32-2.93.17-5.88.08-9.25.08q43.25-74.74 86.18-149zm51.93 129.92a37.68 37.68 0 0 0 5.54-.85c1.69-.3 2.53.2 2.6 1.92 0 .11.07 19.06-.86 20.45s-1.88 1.22-2.6-.19c-5-9.69 6.22-9.66-39.12-12-.7 0-1 .23-1 .93 0 .13 3.72 122 3.73 122.11 0 .89.52 1.2 1.21 1.51a83.92 83.92 0 0 1 8.7 4.05c7.31 4.33 11.38 10.84 12.41 19.31 1.44 11.8-2.77 35.77-32.21 37.14-2.75.13-28.26 1.08-34.14-23.25-4.66-19.26 8.26-32.7 19.89-36.4a2.45 2.45 0 0 0 2-2.66c.1-5.63 3-107.1 3.71-121.35.05-1.08-.62-1.16-1.35-1.15-32.35.52-36.75-.34-40.22 8.52-2.42 6.18-4.14 1.32-3.95.23q1.59-9 3.31-18c.4-2.11 1.43-2.61 3.43-1.86 5.59 2.11 6.72 1.7 37.25 1.92 1.73 0 1.78-.08 1.82-1.85.68-27.49.58-22.59 1-29.55a2.69 2.69 0 0 0-1.63-2.8c-5.6-2.91-8.75-7.55-8.9-13.87-.35-14.81 17.72-21.67 27.38-11.51 6.84 7.19 5.8 18.91-2.45 24.15a4.35 4.35 0 0 0-2.22 4.34c0 .59-.11-4.31 1 30.05 0 .9.43 1.12 1.24 1.11.1 0 23-.09 34.47-.37zM68.27 141.7c19.84-4.51 32.68-.56 52.49 1.69 2.76.31 3.74 1.22 3.62 4-.21 5-1.16 22.33-1.24 23.15a2.65 2.65 0 0 1-1.63 2.34c-4.06 1.7-3.61-4.45-4-7.29-3.13-22.43-73.87-32.7-74.63 25.4-.31 23.92 17 53.63 54.08 50.88 27.24-2 19-20.19 24.84-20.47a2.72 2.72 0 0 1 3 3.36c-1.83 10.85-3.42 18.95-3.45 19.15-1.54 9.17-86.7 22.09-93.35-42.06-2.71-25.85 10.44-53.37 40.27-60.15zm80 87.67h-19.49a2.57 2.57 0 0 1-2.66-1.79c2.38-3.75 5.89.92 5.86-6.14-.08-25.75.21-38 .23-40.1 0-3.42-.53-4.65-3.32-4.94-7-.72-3.11-3.37-1.11-3.38 11.84-.1 22.62-.18 30.05.72 8.77 1.07 16.71 12.63 7.93 22.62-2 2.25-4 4.42-6.14 6.73.95 1.15 6.9 8.82 17.28 19.68 2.66 2.78 6.15 3.51 9.88 3.13a2.21 2.21 0 0 0 2.23-2.12c.3-3.42.26 4.73.45-40.58 0-5.65-.34-6.58-3.23-6.83-3.95-.35-4-2.26-.69-3.37l19.09-.09c.32 0 4.49.53 1 3.38 0 .05-.16 0-.24 0-3.61.26-3.94 1-4 4.62-.27 43.93.07 40.23.41 42.82.11.84.27 2.23 5.1 2.14 2.49 0 3.86 3.37 0 3.4-10.37.08-20.74 0-31.11.07-10.67 0-13.47-6.2-24.21-20.82-1.6-2.18-8.31-2.36-8.2-.37.88 16.47 0 17.78 4 17.67 4.75-.1 4.73 3.57.83 3.55zm275-10.15c-1.21 7.13.17 10.38-5.3 10.34-61.55-.42-47.82-.22-50.72-.31a18.4 18.4 0 0 1-3.63-.73c-2.53-.6 1.48-1.23-.38-5.6-1.43-3.37-2.78-6.78-4.11-10.19a1.94 1.94 0 0 0-2-1.44 138 138 0 0 0-14.58.07 2.23 2.23 0 0 0-1.62 1.06c-1.58 3.62-3.07 7.29-4.51 11-1.27 3.23 7.86 1.32 12.19 2.16 3 .57 4.53 3.72.66 3.73H322.9c-2.92 0-3.09-3.15-.74-3.21a6.3 6.3 0 0 0 5.92-3.47c1.5-3 2.8-6 4.11-9.09 18.18-42.14 17.06-40.17 18.42-41.61a1.83 1.83 0 0 1 3 0c2.93 3.34 18.4 44.71 23.62 51.92 2 2.7 5.74 2 6.36 2 3.61.13 4-1.11 4.13-4.29.09-1.87.08 1.17.07-41.24 0-4.46-2.36-3.74-5.55-4.27-.26 0-2.56-.63-.08-3.06.21-.2-.89-.24 21.7-.15 2.32 0 5.32 2.75-1.21 3.45a2.56 2.56 0 0 0-2.66 2.83c-.07 1.63-.19 38.89.29 41.21a3.06 3.06 0 0 0 3.23 2.43c13.25.43 14.92.44 16-3.41 1.67-5.78 4.13-2.52 3.73-.19zm-104.72 64.37c-4.24 0-4.42-3.39-.61-3.41 35.91-.16 28.11.38 37.19-.65 1.68-.19 2.38.24 2.25 1.89-.26 3.39-.64 6.78-1 10.16-.25 2.16-3.2 2.61-3.4-.15-.38-5.31-2.15-4.45-15.63-5.08-1.58-.07-1.64 0-1.64 1.52V304c0 1.65 0 1.6 1.62 1.47 3.12-.25 10.31.34 15.69-1.52.47-.16 3.3-1.79 3.07 1.76 0 .21-.76 10.35-1.18 11.39-.53 1.29-1.88 1.51-2.58.32-1.17-2 0-5.08-3.71-5.3-15.42-.9-12.91-2.55-12.91 6 0 12.25-.76 16.11 3.89 16.24 16.64.48 14.4 0 16.43-5.71.84-2.37 3.5-1.77 3.18.58-.44 3.21-.85 6.43-1.23 9.64 0 .36-.16 2.4-4.66 2.39-37.16-.08-34.54-.19-35.21-.31-2.72-.51-2.2-3 .22-3.45 1.1-.19 4 .54 4.16-2.56 2.44-56.22-.07-51.34-3.91-51.33zm-.41-109.52c2.46.61 3.13 1.76 2.95 4.65-.33 5.3-.34 9-.55 9.69-.66 2.23-3.15 2.12-3.34-.27-.38-4.81-3.05-7.82-7.57-9.15-26.28-7.73-32.81 15.46-27.17 30.22 5.88 15.41 22 15.92 28.86 13.78 5.92-1.85 5.88-6.5 6.91-7.58 1.23-1.3 2.25-1.84 3.12 1.1 0 .1.57 11.89-6 12.75-1.6.21-19.38 3.69-32.68-3.39-21-11.19-16.74-35.47-6.88-45.33 14-14.06 39.91-7.06 42.32-6.47zM289.8 280.14c3.28 0 3.66 3 .16 3.43-2.61.32-5-.42-5 5.46 0 2-.19 29.05.4 41.45.11 2.29 1.15 3.52 3.44 3.65 22 1.21 14.95-1.65 18.79-6.34 1.83-2.24 2.76.84 2.76 1.08.35 13.62-4 12.39-5.19 12.4l-38.16-.19c-1.93-.23-2.06-3-.42-3.38 2-.48 4.94.4 5.13-2.8 1-15.87.57-44.65.34-47.81-.27-3.77-2.8-3.27-5.68-3.71-2.47-.38-2-3.22.34-3.22 1.45-.02 17.97-.03 23.09-.02zm-31.63-57.79c.07 4.08 2.86 3.46 6 3.58 2.61.1 2.53 3.41-.07 3.43-6.48 0-13.7 0-21.61-.06-3.84 0-3.38-3.35 0-3.37 4.49 0 3.24 1.61 3.41-45.54 0-5.08-3.27-3.54-4.72-4.23-2.58-1.23-1.36-3.09.41-3.15 1.29 0 20.19-.41 21.17.21s1.87 1.65-.42 2.86c-1 .52-3.86-.28-4.15 2.47 0 .21-.82 1.63-.07 43.8zm-36.91 274.27a2.93 2.93 0 0 0 3.26 0c17-9.79 182-103.57 197.42-112.51-.14-.43 11.26-.18-181.52-.27-1.22 0-1.57.37-1.53 1.56 0 .1 1.25 44.51 1.22 50.38a28.33 28.33 0 0 1-1.36 7.71c-.55 1.83.38-.5-13.5 32.23-.73 1.72-1 2.21-2-.08-4.19-10.34-8.28-20.72-12.57-31a23.6 23.6 0 0 1-2-10.79c.16-2.46.8-16.12 1.51-48 0-1.95 0-2-2-2h-183c2.58 1.63 178.32 102.57 196 112.76zm-90.9-188.75c0 2.4.36 2.79 2.76 3 11.54 1.17 21 3.74 25.64-7.32 6-14.46 2.66-34.41-12.48-38.84-2-.59-16-2.76-15.94 1.51.05 8.04.01 11.61.02 41.65zm105.75-15.05c0 2.13 1.07 38.68 1.09 39.13.34 9.94-25.58 5.77-25.23-2.59.08-2 1.37-37.42 1.1-39.43-14.1 7.44-14.42 40.21 6.44 48.8a17.9 17.9 0 0 0 22.39-7.07c4.91-7.76 6.84-29.47-5.43-39a2.53 2.53 0 0 1-.36.12zm-12.28-198c-9.83 0-9.73 14.75-.07 14.87s10.1-14.88.07-14.91zm-80.15 103.83c0 1.8.41 2.4 2.17 2.58 13.62 1.39 12.51-11 12.16-13.36-1.69-11.22-14.38-10.2-14.35-7.81.05 4.5-.03 13.68.02 18.59zm212.32 6.4l-6.1-15.84c-2.16 5.48-4.16 10.57-6.23 15.84z"], - "sitrox": [448, 512, [], "e44a", "M212.439 0.00846128V0H448V128H64C64 57.6008 141.755 0.475338 212.439 0.00846128ZM237.256 192V192.007C307.135 192.475 384 249.6 384 320H210.809V319.995C140.915 319.563 64 262.424 64 192H237.256ZM235.565 511.993C306.251 511.521 384 454.399 384 384H0V512H235.565V511.993Z"], - "discourse": [448, 512, [], "f393", "M225.9 32C103.3 32 0 130.5 0 252.1 0 256 .1 480 .1 480l225.8-.2c122.7 0 222.1-102.3 222.1-223.9C448 134.3 348.6 32 225.9 32zM224 384c-19.4 0-37.9-4.3-54.4-12.1L88.5 392l22.9-75c-9.8-18.1-15.4-38.9-15.4-61 0-70.7 57.3-128 128-128s128 57.3 128 128-57.3 128-128 128z"], - "joomla": [448, 512, [], "f1aa", "M.6 92.1C.6 58.8 27.4 32 60.4 32c30 0 54.5 21.9 59.2 50.2 32.6-7.6 67.1.6 96.5 30l-44.3 44.3c-20.5-20.5-42.6-16.3-55.4-3.5-14.3 14.3-14.3 37.9 0 52.2l99.5 99.5-44 44.3c-87.7-87.2-49.7-49.7-99.8-99.7-26.8-26.5-35-64.8-24.8-98.9C20.4 144.6.6 120.7.6 92.1zm129.5 116.4l44.3 44.3c10-10 89.7-89.7 99.7-99.8 14.3-14.3 37.6-14.3 51.9 0 12.8 12.8 17 35-3.5 55.4l44 44.3c31.2-31.2 38.5-67.6 28.9-101.2 29.2-4.1 51.9-29.2 51.9-59.5 0-33.2-26.8-60.1-59.8-60.1-30.3 0-55.4 22.5-59.5 51.6-33.8-9.9-71.7-1.5-98.3 25.1-18.3 19.1-71.1 71.5-99.6 99.9zm266.3 152.2c8.2-32.7-.9-68.5-26.3-93.9-11.8-12.2 5 4.7-99.5-99.7l-44.3 44.3 99.7 99.7c14.3 14.3 14.3 37.6 0 51.9-12.8 12.8-35 17-55.4-3.5l-44 44.3c27.6 30.2 68 38.8 102.7 28 5.5 27.4 29.7 48.1 58.9 48.1 33 0 59.8-26.8 59.8-60.1 0-30.2-22.5-55-51.6-59.1zm-84.3-53.1l-44-44.3c-87 86.4-50.4 50.4-99.7 99.8-14.3 14.3-37.6 14.3-51.9 0-13.1-13.4-16.9-35.3 3.2-55.4l-44-44.3c-30.2 30.2-38 65.2-29.5 98.3-26.7 6-46.2 29.9-46.2 58.2C0 453.2 26.8 480 59.8 480c28.6 0 52.5-19.8 58.6-46.7 32.7 8.2 68.5-.6 94.2-26 32.1-32 12.2-12.4 99.5-99.7z"], - "mastodon": [448, 512, [], "f4f6", "M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.54 102.54 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5zm-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z"], - "airbnb": [448, 512, [], "f834", "M224 373.12c-25.24-31.67-40.08-59.43-45-83.18-22.55-88 112.61-88 90.06 0-5.45 24.25-20.29 52-45 83.18zm138.15 73.23c-42.06 18.31-83.67-10.88-119.3-50.47 103.9-130.07 46.11-200-18.85-200-54.92 0-85.16 46.51-73.28 100.5 6.93 29.19 25.23 62.39 54.43 99.5-32.53 36.05-60.55 52.69-85.15 54.92-50 7.43-89.11-41.06-71.3-91.09 15.1-39.16 111.72-231.18 115.87-241.56 15.75-30.07 25.56-57.4 59.38-57.4 32.34 0 43.4 25.94 60.37 59.87 36 70.62 89.35 177.48 114.84 239.09 13.17 33.07-1.37 71.29-37.01 86.64zm47-136.12C280.27 35.93 273.13 32 224 32c-45.52 0-64.87 31.67-84.66 72.79C33.18 317.1 22.89 347.19 22 349.81-3.22 419.14 48.74 480 111.63 480c21.71 0 60.61-6.06 112.37-62.4 58.68 63.78 101.26 62.4 112.37 62.4 62.89.05 114.85-60.86 89.61-130.19.02-3.89-16.82-38.9-16.82-39.58z"], - "wolf-pack-battalion": [512, 512, [], "f514", "M267.73 471.53l10.56 15.84 5.28-12.32 5.28 7V512c21.06-7.92 21.11-66.86 25.51-97.21 4.62-31.89-.88-92.81 81.37-149.11-8.88-23.61-12-49.43-2.64-80.05C421 189 447 196.21 456.43 239.73l-30.35 8.36c11.15 23 17 46.76 13.2 72.14L412 313.18l-6.16 33.43-18.47-7-8.8 33.39-19.35-7 26.39 21.11 8.8-28.15L419 364.2l7-35.63 26.39 14.52c.25-20 7-58.06-8.8-84.45l26.39 5.28c4-22.07-2.38-39.21-7.92-56.74l22.43 9.68c-.44-25.07-29.94-56.79-61.58-58.5-20.22-1.09-56.74-25.17-54.1-51.9 2-19.87 17.45-42.62 43.11-49.7-44 36.51-9.68 67.3 5.28 73.46 4.4-11.44 17.54-69.08 0-130.2-40.39 22.87-89.65 65.1-93.2 147.79l-58 38.71-3.52 93.25L369.78 220l7 7-17.59 3.52-44 38.71-15.84-5.28-28.1 49.25-3.52 119.64 21.11 15.84-32.55 15.84-32.55-15.84 21.11-15.84-3.52-119.64-28.15-49.26-15.84 5.28-44-38.71-17.58-3.51 7-7 107.33 59.82-3.52-93.25-58.06-38.71C185 65.1 135.77 22.87 95.3 0c-17.54 61.12-4.4 118.76 0 130.2 15-6.16 49.26-36.95 5.28-73.46 25.66 7.08 41.15 29.83 43.11 49.7 2.63 26.74-33.88 50.81-54.1 51.9-31.65 1.72-61.15 33.44-61.59 58.51l22.43-9.68c-5.54 17.53-11.91 34.67-7.92 56.74l26.39-5.28c-15.76 26.39-9.05 64.43-8.8 84.45l26.39-14.52 7 35.63 24.63-5.28 8.8 28.15L153.35 366 134 373l-8.8-33.43-18.47 7-6.16-33.43-27.27 7c-3.82-25.38 2-49.1 13.2-72.14l-30.35-8.36c9.4-43.52 35.47-50.77 63.34-54.1 9.36 30.62 6.24 56.45-2.64 80.05 82.25 56.3 76.75 117.23 81.37 149.11 4.4 30.35 4.45 89.29 25.51 97.21v-29.83l5.28-7 5.28 12.32 10.56-15.84 11.44 21.11 11.43-21.1zm79.17-95L331.06 366c7.47-4.36 13.76-8.42 19.35-12.32-.6 7.22-.27 13.84-3.51 22.84zm28.15-49.26c-.4 10.94-.9 21.66-1.76 31.67-7.85-1.86-15.57-3.8-21.11-7 8.24-7.94 15.55-16.32 22.87-24.68zm24.63 5.28c0-13.43-2.05-24.21-5.28-33.43a235 235 0 0 1-18.47 27.27zm3.52-80.94c19.44 12.81 27.8 33.66 29.91 56.3-12.32-4.53-24.63-9.31-36.95-10.56 5.06-12 6.65-28.14 7-45.74zm-1.76-45.74c.81 14.3 1.84 28.82 1.76 42.23 19.22-8.11 29.78-9.72 44-14.08-10.61-18.96-27.2-25.53-45.76-28.16zM165.68 376.52L181.52 366c-7.47-4.36-13.76-8.42-19.35-12.32.6 7.26.27 13.88 3.51 22.88zm-28.15-49.26c.4 10.94.9 21.66 1.76 31.67 7.85-1.86 15.57-3.8 21.11-7-8.24-7.93-15.55-16.31-22.87-24.67zm-24.64 5.28c0-13.43 2-24.21 5.28-33.43a235 235 0 0 0 18.47 27.27zm-3.52-80.94c-19.44 12.81-27.8 33.66-29.91 56.3 12.32-4.53 24.63-9.31 37-10.56-5-12-6.65-28.14-7-45.74zm1.76-45.74c-.81 14.3-1.84 28.82-1.76 42.23-19.22-8.11-29.78-9.72-44-14.08 10.63-18.95 27.23-25.52 45.76-28.15z"], - "buy-n-large": [576, 512, [], "f8a6", "M288 32C133.27 32 7.79 132.32 7.79 256S133.27 480 288 480s280.21-100.32 280.21-224S442.73 32 288 32zm-85.39 357.19L64.1 390.55l77.25-290.74h133.44c63.15 0 84.93 28.65 78 72.84a60.24 60.24 0 0 1-1.5 6.85 77.39 77.39 0 0 0-17.21-1.93c-42.35 0-76.69 33.88-76.69 75.65 0 37.14 27.14 68 62.93 74.45-18.24 37.16-56.16 60.92-117.71 61.52zM358 207.11h32l-22.16 90.31h-35.41l-11.19-35.63-7.83 35.63h-37.83l26.63-90.31h31.34l15 36.75zm145.86 182.08H306.79L322.63 328a78.8 78.8 0 0 0 11.47.83c42.34 0 76.69-33.87 76.69-75.65 0-32.65-21-60.46-50.38-71.06l21.33-82.35h92.5l-53.05 205.36h103.87zM211.7 269.39H187l-13.8 56.47h24.7c16.14 0 32.11-3.18 37.94-26.65 5.56-22.31-7.99-29.82-24.14-29.82zM233 170h-21.34L200 217.71h21.37c18 0 35.38-14.64 39.21-30.14C265.23 168.71 251.07 170 233 170z"], - "gulp": [256, 512, [], "f3ae", "M209.8 391.1l-14.1 24.6-4.6 80.2c0 8.9-28.3 16.1-63.1 16.1s-63.1-7.2-63.1-16.1l-5.8-79.4-14.9-25.4c41.2 17.3 126 16.7 165.6 0zm-196-253.3l13.6 125.5c5.9-20 20.8-47 40-55.2 6.3-2.7 12.7-2.7 18.7.9 5.2 3 9.6 9.3 10.1 11.8 1.2 6.5-2 9.1-4.5 9.1-3 0-5.3-4.6-6.8-7.3-4.1-7.3-10.3-7.6-16.9-2.8-6.9 5-12.9 13.4-17.1 20.7-5.1 8.8-9.4 18.5-12 28.2-1.5 5.6-2.9 14.6-.6 19.9 1 2.2 2.5 3.6 4.9 3.6 5 0 12.3-6.6 15.8-10.1 4.5-4.5 10.3-11.5 12.5-16l5.2-15.5c2.6-6.8 9.9-5.6 9.9 0 0 10.2-3.7 13.6-10 34.7-5.8 19.5-7.6 25.8-7.6 25.8-.7 2.8-3.4 7.5-6.3 7.5-1.2 0-2.1-.4-2.6-1.2-1-1.4-.9-5.3-.8-6.3.2-3.2 6.3-22.2 7.3-25.2-2 2.2-4.1 4.4-6.4 6.6-5.4 5.1-14.1 11.8-21.5 11.8-3.4 0-5.6-.9-7.7-2.4l7.6 79.6c2 5 39.2 17.1 88.2 17.1 49.1 0 86.3-12.2 88.2-17.1l10.9-94.6c-5.7 5.2-12.3 11.6-19.6 14.8-5.4 2.3-17.4 3.8-17.4-5.7 0-5.2 9.1-14.8 14.4-21.5 1.4-1.7 4.7-5.9 4.7-8.1 0-2.9-6-2.2-11.7 2.5-3.2 2.7-6.2 6.3-8.7 9.7-4.3 6-6.6 11.2-8.5 15.5-6.2 14.2-4.1 8.6-9.1 22-5 13.3-4.2 11.8-5.2 14-.9 1.9-2.2 3.5-4 4.5-1.9 1-4.5.9-6.1-.3-.9-.6-1.3-1.9-1.3-3.7 0-.9.1-1.8.3-2.7 1.5-6.1 7.8-18.1 15-34.3 1.6-3.7 1-2.6.8-2.3-6.2 6-10.9 8.9-14.4 10.5-5.8 2.6-13 2.6-14.5-4.1-.1-.4-.1-.8-.2-1.2-11.8 9.2-24.3 11.7-20-8.1-4.6 8.2-12.6 14.9-22.4 14.9-4.1 0-7.1-1.4-8.6-5.1-2.3-5.5 1.3-14.9 4.6-23.8 1.7-4.5 4-9.9 7.1-16.2 1.6-3.4 4.2-5.4 7.6-4.5.6.2 1.1.4 1.6.7 2.6 1.8 1.6 4.5.3 7.2-3.8 7.5-7.1 13-9.3 20.8-.9 3.3-2 9 1.5 9 2.4 0 4.7-.8 6.9-2.4 4.6-3.4 8.3-8.5 11.1-13.5 2-3.6 4.4-8.3 5.6-12.3.5-1.7 1.1-3.3 1.8-4.8 1.1-2.5 2.6-5.1 5.2-5.1 1.3 0 2.4.5 3.2 1.5 1.7 2.2 1.3 4.5.4 6.9-2 5.6-4.7 10.6-6.9 16.7-1.3 3.5-2.7 8-2.7 11.7 0 3.4 3.7 2.6 6.8 1.2 2.4-1.1 4.8-2.8 6.8-4.5 1.2-4.9.9-3.8 26.4-68.2 1.3-3.3 3.7-4.7 6.1-4.7 1.2 0 2.2.4 3.2 1.1 1.7 1.3 1.7 4.1 1 6.2-.7 1.9-.6 1.3-4.5 10.5-5.2 12.1-8.6 20.8-13.2 31.9-1.9 4.6-7.7 18.9-8.7 22.3-.6 2.2-1.3 5.8 1 5.8 5.4 0 19.3-13.1 23.1-17 .2-.3.5-.4.9-.6.6-1.9 1.2-3.7 1.7-5.5 1.4-3.8 2.7-8.2 5.3-11.3.8-1 1.7-1.6 2.7-1.6 2.8 0 4.2 1.2 4.2 4 0 1.1-.7 5.1-1.1 6.2 1.4-1.5 2.9-3 4.5-4.5 15-13.9 25.7-6.8 25.7.2 0 7.4-8.9 17.7-13.8 23.4-1.6 1.9-4.9 5.4-5 6.4 0 1.3.9 1.8 2.2 1.8 2 0 6.4-3.5 8-4.7 5-3.9 11.8-9.9 16.6-14.1l14.8-136.8c-30.5 17.1-197.6 17.2-228.3.2zm229.7-8.5c0 21-231.2 21-231.2 0 0-8.8 51.8-15.9 115.6-15.9 9 0 17.8.1 26.3.4l12.6-48.7L228.1.6c1.4-1.4 5.8-.2 9.9 3.5s6.6 7.9 5.3 9.3l-.1.1L185.9 74l-10 40.7c39.9 2.6 67.6 8.1 67.6 14.6zm-69.4 4.6c0-.8-.9-1.5-2.5-2.1l-.2.8c0 1.3-5 2.4-11.1 2.4s-11.1-1.1-11.1-2.4c0-.1 0-.2.1-.3l.2-.7c-1.8.6-3 1.4-3 2.3 0 2.1 6.2 3.7 13.7 3.7 7.7.1 13.9-1.6 13.9-3.7z"], - "creative-commons-sampling-plus": [496, 512, [], "f4f1", "M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm107 205.6c-4.7 0-9 2.8-10.7 7.2l-4 9.5-11-92.8c-1.7-13.9-22-13.4-23.1.4l-4.3 51.4-5.2-68.8c-1.1-14.3-22.1-14.2-23.2 0l-3.5 44.9-5.9-94.3c-.9-14.5-22.3-14.4-23.2 0l-5.1 83.7-4.3-66.3c-.9-14.4-22.2-14.4-23.2 0l-5.3 80.2-4.1-57c-1.1-14.3-22-14.3-23.2-.2l-7.7 89.8-1.8-12.2c-1.7-11.4-17.1-13.6-22-3.3l-13.2 27.7H87.5v23.2h51.3c4.4 0 8.4-2.5 10.4-6.4l10.7 73.1c2 13.5 21.9 13 23.1-.7l3.8-43.6 5.7 78.3c1.1 14.4 22.3 14.2 23.2-.1l4.6-70.4 4.8 73.3c.9 14.4 22.3 14.4 23.2-.1l4.9-80.5 4.5 71.8c.9 14.3 22.1 14.5 23.2.2l4.6-58.6 4.9 64.4c1.1 14.3 22 14.2 23.1.1l6.8-83 2.7 22.3c1.4 11.8 17.7 14.1 22.3 3.1l18-43.4h50.5V258l-58.4.3zm-78 5.2h-21.9v21.9c0 4.1-3.3 7.5-7.5 7.5-4.1 0-7.5-3.3-7.5-7.5v-21.9h-21.9c-4.1 0-7.5-3.3-7.5-7.5 0-4.1 3.4-7.5 7.5-7.5h21.9v-21.9c0-4.1 3.4-7.5 7.5-7.5s7.5 3.3 7.5 7.5v21.9h21.9c4.1 0 7.5 3.3 7.5 7.5 0 4.1-3.4 7.5-7.5 7.5z"], - "strava": [384, 512, [], "f428", "M158.4 0L7 292h89.2l62.2-116.1L220.1 292h88.5zm150.2 292l-43.9 88.2-44.6-88.2h-67.6l112.2 220 111.5-220z"], - "ember": [640, 512, [], "f423", "M639.9 254.6c-1.1-10.7-10.7-6.8-10.7-6.8s-15.6 12.1-29.3 10.7c-13.7-1.3-9.4-32-9.4-32s3-28.1-5.1-30.4c-8.1-2.4-18 7.3-18 7.3s-12.4 13.7-18.3 31.2l-1.6.5s1.9-30.6-.3-37.6c-1.6-3.5-16.4-3.2-18.8 3s-14.2 49.2-15 67.2c0 0-23.1 19.6-43.3 22.8s-25-9.4-25-9.4 54.8-15.3 52.9-59.1-44.2-27.6-49-24c-4.6 3.5-29.4 18.4-36.6 59.7-.2 1.4-.7 7.5-.7 7.5s-21.2 14.2-33 18c0 0 33-55.6-7.3-80.9-11.4-6.8-21.3-.5-27.2 5.3 13.6-17.3 46.4-64.2 36.9-105.2-5.8-24.4-18-27.1-29.2-23.1-17 6.7-23.5 16.7-23.5 16.7s-22 32-27.1 79.5-12.6 105.1-12.6 105.1-10.5 10.2-20.2 10.7-5.4-28.7-5.4-28.7 7.5-44.6 7-52.1-1.1-11.6-9.9-14.2c-8.9-2.7-18.5 8.6-18.5 8.6s-25.5 38.7-27.7 44.6l-1.3 2.4-1.3-1.6s18-52.7.8-53.5-28.5 18.8-28.5 18.8-19.6 32.8-20.4 36.5l-1.3-1.6s8.1-38.2 6.4-47.6c-1.6-9.4-10.5-7.5-10.5-7.5s-11.3-1.3-14.2 5.9-13.7 55.3-15 70.7c0 0-28.2 20.2-46.8 20.4-18.5.3-16.7-11.8-16.7-11.8s68-23.3 49.4-69.2c-8.3-11.8-18-15.5-31.7-15.3-13.7.3-30.3 8.6-41.3 33.3-5.3 11.8-6.8 23-7.8 31.5 0 0-12.3 2.4-18.8-2.9s-10 0-10 0-11.2 14-.1 18.3 28.1 6.1 28.1 6.1c1.6 7.5 6.2 19.5 19.6 29.7 20.2 15.3 58.8-1.3 58.8-1.3l15.9-8.8s.5 14.6 12.1 16.7 16.4 1 36.5-47.9c11.8-25 12.6-23.6 12.6-23.6l1.3-.3s-9.1 46.8-5.6 59.7C187.7 319.4 203 318 203 318s8.3 2.4 15-21.2 19.6-49.9 19.6-49.9h1.6s-5.6 48.1 3 63.7 30.9 5.3 30.9 5.3 15.6-7.8 18-10.2c0 0 18.5 15.8 44.6 12.9 58.3-11.5 79.1-25.9 79.1-25.9s10 24.4 41.1 26.7c35.5 2.7 54.8-18.6 54.8-18.6s-.3 13.5 12.1 18.6 20.7-22.8 20.7-22.8l20.7-57.2h1.9s1.1 37.3 21.5 43.2 47-13.7 47-13.7 6.4-3.5 5.3-14.3zm-578 5.3c.8-32 21.8-45.9 29-39 7.3 7 4.6 22-9.1 31.4-13.7 9.5-19.9 7.6-19.9 7.6zm272.8-123.8s19.1-49.7 23.6-25.5-40 96.2-40 96.2c.5-16.2 16.4-70.7 16.4-70.7zm22.8 138.4c-12.6 33-43.3 19.6-43.3 19.6s-3.5-11.8 6.4-44.9 33.3-20.2 33.3-20.2 16.2 12.4 3.6 45.5zm84.6-14.6s-3-10.5 8.1-30.6c11-20.2 19.6-9.1 19.6-9.1s9.4 10.2-1.3 25.5-26.4 14.2-26.4 14.2z"], - "canadian-maple-leaf": [512, 512, [], "f785", "M383.8 351.7c2.5-2.5 105.2-92.4 105.2-92.4l-17.5-7.5c-10-4.9-7.4-11.5-5-17.4 2.4-7.6 20.1-67.3 20.1-67.3s-47.7 10-57.7 12.5c-7.5 2.4-10-2.5-12.5-7.5s-15-32.4-15-32.4-52.6 59.9-55.1 62.3c-10 7.5-20.1 0-17.6-10 0-10 27.6-129.6 27.6-129.6s-30.1 17.4-40.1 22.4c-7.5 5-12.6 5-17.6-5C293.5 72.3 255.9 0 255.9 0s-37.5 72.3-42.5 79.8c-5 10-10 10-17.6 5-10-5-40.1-22.4-40.1-22.4S183.3 182 183.3 192c2.5 10-7.5 17.5-17.6 10-2.5-2.5-55.1-62.3-55.1-62.3S98.1 167 95.6 172s-5 9.9-12.5 7.5C73 177 25.4 167 25.4 167s17.6 59.7 20.1 67.3c2.4 6 5 12.5-5 17.4L23 259.3s102.6 89.9 105.2 92.4c5.1 5 10 7.5 5.1 22.5-5.1 15-10.1 35.1-10.1 35.1s95.2-20.1 105.3-22.6c8.7-.9 18.3 2.5 18.3 12.5S241 512 241 512h30s-5.8-102.7-5.8-112.8 9.5-13.4 18.4-12.5c10 2.5 105.2 22.6 105.2 22.6s-5-20.1-10-35.1 0-17.5 5-22.5z"], - "teamspeak": [576, 512, [], "f4f9", "M152.8 37.2c-32.2 38.1-56.1 82.6-69.9 130.5c0 .2-.1 .3-.1 .5C43.5 184.4 16 223 16 268c0 59.6 48.4 108 108 108s108-48.4 108-108c0-53.5-38.9-97.9-90-106.5c15.7-41.8 40.4-79.6 72.3-110.7c1.8-1.6 4-2.6 6.3-3.1c37.2-11.5 76.7-13.3 114.8-5.2C454.7 67.6 534 180.7 517.1 301.3c-8.4 62.6-38.6 112.7-87.7 151.4c-50.1 39.7-107.5 54.3-170.2 52.2l-24-1c12.4 2.8 25 4.9 37.6 6.3c40.7 4.2 81.4 2.1 120.1-12.5c94-35.5 149.3-102.3 162.9-202.5c4.8-52.6-5.8-105.4-30.8-152C454.6 11.3 290.8-38.4 159 32c-2.4 1.4-4.5 3.1-6.3 5.2zM309.4 433.9c-2.1 11.5-4.2 21.9-14.6 31.3c53.2-1 123.2-29.2 161.8-97.1c39.7-69.9 37.6-139.9-6.3-207.8C413.8 105 360.5 77.9 293.7 73.7c1.5 2.3 3.2 4.4 5.2 6.3l5.2 6.3c25.1 31.3 37.6 67.9 42.8 107.5c2.1 15.7-1 30.3-13.6 41.8c-4.2 3.1-5.2 6.3-4.2 10.4l7.3 17.7L365.7 318c5.2 11.5 4.2 19.8-6.3 28.2c-3.2 2.5-6.7 4.6-10.4 6.3l-18.8 8.4 3.1 13.6c3.1 6.3 1 12.5-3.1 17.7c-2.5 2.4-3.8 5.9-3.1 9.4c2.1 11.5-2.1 19.8-12.5 25.1c-2.1 1-4.2 5.2-5.2 7.3zm-133.6-3.1c16.7 11.5 34.5 20.9 53.2 26.1c24 5.2 41.8-6.3 44.9-30.3c1-8.4 5.2-14.6 12.5-17.7c7.3-4.2 8.4-7.3 2.1-13.6l-9.4-8.4 13.6-4.2c6.3-2.1 7.3-5.2 5.2-11.5c-1.4-3-2.4-6.2-3.1-9.4c-3.1-14.6-2.1-15.7 11.5-18.8c8.4-3.1 15.7-6.3 21.9-12.5c3.1-2.1 3.1-4.2 1-8.4l-16.7-30.3c-1-1.9-2.1-3.8-3.1-5.7c-6.4-11.7-13-23.6-15.7-37.1c-2.1-9.4-1-17.7 8.4-24c5.2-4.2 8.4-9.4 8.4-16.7c-.4-10.1-1.5-20.3-3.1-30.3c-6.3-37.6-23-68.9-51.2-95c-5.2-4.2-9.4-6.3-16.7-4.2L203.9 91.5c2 1.2 4 2.4 6 3.6l0 0c6.3 3.7 12.2 7.3 17 12.1c30.3 26.1 41.8 61.6 45.9 100.2c1 8.4 0 16.7-7.3 21.9c-8.4 5.2-10.4 12.5-7.3 20.9c4.9 13.2 10.4 26 16.7 38.6L291.6 318c-6.3 8.4-13.6 11.5-21.9 14.6c-12.5 3.1-14.6 7.3-10.4 20.9c.6 1.5 1.4 2.8 2.1 4.2c2.1 5.2 1 8.4-4.2 10.4l-12.5 3.1 5.2 4.2 4.2 4.2c4.2 5.2 4.2 8.4-2.1 10.4c-7.3 4.2-11.5 9.4-11.5 17.7c0 12.5-7.3 19.8-18.8 24c-3.8 1-7.6 1.5-11.5 1l-34.5-2.1z"], - "pushed": [432, 512, [], "f3e1", "M407 111.9l-98.5-9 14-33.4c10.4-23.5-10.8-40.4-28.7-37L22.5 76.9c-15.1 2.7-26 18.3-21.4 36.6l105.1 348.3c6.5 21.3 36.7 24.2 47.7 7l35.3-80.8 235.2-231.3c16.4-16.8 4.3-42.9-17.4-44.8zM297.6 53.6c5.1-.7 7.5 2.5 5.2 7.4L286 100.9 108.6 84.6l189-31zM22.7 107.9c-3.1-5.1 1-10 6.1-9.1l248.7 22.7-96.9 230.7L22.7 107.9zM136 456.4c-2.6 4-7.9 3.1-9.4-1.2L43.5 179.7l127.7 197.6c-7 15-35.2 79.1-35.2 79.1zm272.8-314.5L210.1 337.3l89.7-213.7 106.4 9.7c4 1.1 5.7 5.3 2.6 8.6z"], - "wordpress-simple": [512, 512, [], "f411", "M256 8C119.3 8 8 119.2 8 256c0 136.7 111.3 248 248 248s248-111.3 248-248C504 119.2 392.7 8 256 8zM33 256c0-32.3 6.9-63 19.3-90.7l106.4 291.4C84.3 420.5 33 344.2 33 256zm223 223c-21.9 0-43-3.2-63-9.1l66.9-194.4 68.5 187.8c.5 1.1 1 2.1 1.6 3.1-23.1 8.1-48 12.6-74 12.6zm30.7-327.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-21.9 0-58.7-2.8-58.7-2.8-12-.7-13.4 17.7-1.4 18.4 0 0 11.4 1.4 23.4 2.1l34.7 95.2L200.6 393l-81.2-241.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-4.2 0-9.1-.1-14.4-.3C109.6 73 178.1 33 256 33c58 0 110.9 22.2 150.6 58.5-1-.1-1.9-.2-2.9-.2-21.9 0-37.4 19.1-37.4 39.6 0 18.4 10.6 33.9 21.9 52.3 8.5 14.8 18.4 33.9 18.4 61.5 0 19.1-7.3 41.2-17 72.1l-22.2 74.3-80.7-239.6zm81.4 297.2l68.1-196.9c12.7-31.8 17-57.2 17-79.9 0-8.2-.5-15.8-1.5-22.9 17.4 31.8 27.3 68.2 27.3 107 0 82.3-44.6 154.1-110.9 192.7z"], - "nutritionix": [400, 512, [], "f3d6", "M88 8.1S221.4-.1 209 112.5c0 0 19.1-74.9 103-40.6 0 0-17.7 74-88 56 0 0 14.6-54.6 66.1-56.6 0 0-39.9-10.3-82.1 48.8 0 0-19.8-94.5-93.6-99.7 0 0 75.2 19.4 77.6 107.5 0 .1-106.4 7-104-119.8zm312 315.6c0 48.5-9.7 95.3-32 132.3-42.2 30.9-105 48-168 48-62.9 0-125.8-17.1-168-48C9.7 419 0 372.2 0 323.7 0 275.3 17.7 229 40 192c42.2-30.9 97.1-48.6 160-48.6 63 0 117.8 17.6 160 48.6 22.3 37 40 83.3 40 131.7zM120 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM192 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM264 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM336 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm24-39.6c-4.8-22.3-7.4-36.9-16-56-38.8-19.9-90.5-32-144-32S94.8 180.1 56 200c-8.8 19.5-11.2 33.9-16 56 42.2-7.9 98.7-14.8 160-14.8s117.8 6.9 160 14.8z"], - "wodu": [640, 512, [], "e088", "M178.414 339.706H141.1L112.166 223.475h-.478L83.228 339.706H45.2L0 168.946H37.548L64.574 285.177h.478L94.707 168.946h35.157l29.178 117.667h.479L187.5 168.946h36.831zM271.4 212.713c38.984 0 64.1 25.828 64.1 65.291 0 39.222-25.111 65.05-64.1 65.05-38.743 0-63.855-25.828-63.855-65.05C207.547 238.541 232.659 212.713 271.4 212.713zm0 104.753c23.2 0 30.133-19.852 30.133-39.462 0-19.852-6.934-39.7-30.133-39.7-27.7 0-29.894 19.85-29.894 39.7C241.508 297.614 248.443 317.466 271.4 317.466zM435.084 323.922h-.478c-7.893 13.392-21.765 19.132-37.548 19.132-37.31 0-55.485-32.045-55.485-66.246 0-33.243 18.415-64.095 54.767-64.095 14.589 0 28.938 6.218 36.831 18.416h.24V168.946h33.96v170.76H435.084zM405.428 238.3c-22.24 0-29.894 19.134-29.894 39.463 0 19.371 8.848 39.7 29.894 39.7 22.482 0 29.178-19.613 29.178-39.94C434.606 257.436 427.432 238.3 405.428 238.3zM592.96 339.706H560.673V322.487h-.718c-8.609 13.87-23.436 20.567-37.786 20.567-36.113 0-45.2-20.328-45.2-50.941V216.061h33.959V285.9c0 20.329 5.979 30.372 21.765 30.372 18.415 0 26.306-10.283 26.306-35.393V216.061H592.96zM602.453 302.876H640v36.83H602.453z"], - "google-pay": [640, 512, [], "e079", "M105.72,215v41.25h57.1a49.66,49.66,0,0,1-21.14,32.6c-9.54,6.55-21.72,10.28-36,10.28-27.6,0-50.93-18.91-59.3-44.22a65.61,65.61,0,0,1,0-41l0,0c8.37-25.46,31.7-44.37,59.3-44.37a56.43,56.43,0,0,1,40.51,16.08L176.47,155a101.24,101.24,0,0,0-70.75-27.84,105.55,105.55,0,0,0-94.38,59.11,107.64,107.64,0,0,0,0,96.18v.15a105.41,105.41,0,0,0,94.38,59c28.47,0,52.55-9.53,70-25.91,20-18.61,31.41-46.15,31.41-78.91A133.76,133.76,0,0,0,205.38,215Zm389.41-4c-10.13-9.38-23.93-14.14-41.39-14.14-22.46,0-39.34,8.34-50.5,24.86l20.85,13.26q11.45-17,31.26-17a34.05,34.05,0,0,1,22.75,8.79A28.14,28.14,0,0,1,487.79,248v5.51c-9.1-5.07-20.55-7.75-34.64-7.75-16.44,0-29.65,3.88-39.49,11.77s-14.82,18.31-14.82,31.56a39.74,39.74,0,0,0,13.94,31.27c9.25,8.34,21,12.51,34.79,12.51,16.29,0,29.21-7.3,39-21.89h1v17.72h22.61V250C510.25,233.45,505.26,220.34,495.13,211ZM475.9,300.3a37.32,37.32,0,0,1-26.57,11.16A28.61,28.61,0,0,1,431,305.21a19.41,19.41,0,0,1-7.77-15.63c0-7,3.22-12.81,9.54-17.42s14.53-7,24.07-7C470,265,480.3,268,487.64,273.94,487.64,284.07,483.68,292.85,475.9,300.3Zm-93.65-142A55.71,55.71,0,0,0,341.74,142H279.07V328.74H302.7V253.1h39c16,0,29.5-5.36,40.51-15.93.88-.89,1.76-1.79,2.65-2.68A54.45,54.45,0,0,0,382.25,158.26Zm-16.58,62.23a30.65,30.65,0,0,1-23.34,9.68H302.7V165h39.63a32,32,0,0,1,22.6,9.23A33.18,33.18,0,0,1,365.67,220.49ZM614.31,201,577.77,292.7h-.45L539.9,201H514.21L566,320.55l-29.35,64.32H561L640,201Z"], - "intercom": [448, 512, [], "f7af", "M392 32H56C25.1 32 0 57.1 0 88v336c0 30.9 25.1 56 56 56h336c30.9 0 56-25.1 56-56V88c0-30.9-25.1-56-56-56zm-108.3 82.1c0-19.8 29.9-19.8 29.9 0v199.5c0 19.8-29.9 19.8-29.9 0V114.1zm-74.6-7.5c0-19.8 29.9-19.8 29.9 0v216.5c0 19.8-29.9 19.8-29.9 0V106.6zm-74.7 7.5c0-19.8 29.9-19.8 29.9 0v199.5c0 19.8-29.9 19.8-29.9 0V114.1zM59.7 144c0-19.8 29.9-19.8 29.9 0v134.3c0 19.8-29.9 19.8-29.9 0V144zm323.4 227.8c-72.8 63-241.7 65.4-318.1 0-15-12.8 4.4-35.5 19.4-22.7 65.9 55.3 216.1 53.9 279.3 0 14.9-12.9 34.3 9.8 19.4 22.7zm5.2-93.5c0 19.8-29.9 19.8-29.9 0V144c0-19.8 29.9-19.8 29.9 0v134.3z"], - "zhihu": [640, 512, [], "f63f", "M170.54 148.13v217.54l23.43.01 7.71 26.37 42.01-26.37h49.53V148.13H170.54zm97.75 193.93h-27.94l-27.9 17.51-5.08-17.47-11.9-.04V171.75h72.82v170.31zm-118.46-94.39H97.5c1.74-27.1 2.2-51.59 2.2-73.46h51.16s1.97-22.56-8.58-22.31h-88.5c3.49-13.12 7.87-26.66 13.12-40.67 0 0-24.07 0-32.27 21.57-3.39 8.9-13.21 43.14-30.7 78.12 5.89-.64 25.37-1.18 36.84-22.21 2.11-5.89 2.51-6.66 5.14-14.53h28.87c0 10.5-1.2 66.88-1.68 73.44H20.83c-11.74 0-15.56 23.62-15.56 23.62h65.58C66.45 321.1 42.83 363.12 0 396.34c20.49 5.85 40.91-.93 51-9.9 0 0 22.98-20.9 35.59-69.25l53.96 64.94s7.91-26.89-1.24-39.99c-7.58-8.92-28.06-33.06-36.79-41.81L87.9 311.95c4.36-13.98 6.99-27.55 7.87-40.67h61.65s-.09-23.62-7.59-23.62v.01zm412.02-1.6c20.83-25.64 44.98-58.57 44.98-58.57s-18.65-14.8-27.38-4.06c-6 8.15-36.83 48.2-36.83 48.2l19.23 14.43zm-150.09-59.09c-9.01-8.25-25.91 2.13-25.91 2.13s39.52 55.04 41.12 57.45l19.46-13.73s-25.67-37.61-34.66-45.86h-.01zM640 258.35c-19.78 0-130.91.93-131.06.93v-101c4.81 0 12.42-.4 22.85-1.2 40.88-2.41 70.13-4 87.77-4.81 0 0 12.22-27.19-.59-33.44-3.07-1.18-23.17 4.58-23.17 4.58s-165.22 16.49-232.36 18.05c1.6 8.82 7.62 17.08 15.78 19.55 13.31 3.48 22.69 1.7 49.15.89 24.83-1.6 43.68-2.43 56.51-2.43v99.81H351.41s2.82 22.31 25.51 22.85h107.94v70.92c0 13.97-11.19 21.99-24.48 21.12-14.08.11-26.08-1.15-41.69-1.81 1.99 3.97 6.33 14.39 19.31 21.84 9.88 4.81 16.17 6.57 26.02 6.57 29.56 0 45.67-17.28 44.89-45.31v-73.32h122.36c9.68 0 8.7-23.78 8.7-23.78l.03-.01z"], - "korvue": [446, 512, [], "f42f", "M386.5 34h-327C26.8 34 0 60.8 0 93.5v327.1C0 453.2 26.8 480 59.5 480h327.1c33 0 59.5-26.8 59.5-59.5v-327C446 60.8 419.2 34 386.5 34zM87.1 120.8h96v116l61.8-116h110.9l-81.2 132H87.1v-132zm161.8 272.1l-65.7-113.6v113.6h-96V262.1h191.5l88.6 130.8H248.9z"], - "pix": [512, 512, [], "e43a", "M242.4 292.5C247.8 287.1 257.1 287.1 262.5 292.5L339.5 369.5C353.7 383.7 372.6 391.5 392.6 391.5H407.7L310.6 488.6C280.3 518.1 231.1 518.1 200.8 488.6L103.3 391.2H112.6C132.6 391.2 151.5 383.4 165.7 369.2L242.4 292.5zM262.5 218.9C256.1 224.4 247.9 224.5 242.4 218.9L165.7 142.2C151.5 127.1 132.6 120.2 112.6 120.2H103.3L200.7 22.76C231.1-7.586 280.3-7.586 310.6 22.76L407.8 119.9H392.6C372.6 119.9 353.7 127.7 339.5 141.9L262.5 218.9zM112.6 142.7C126.4 142.7 139.1 148.3 149.7 158.1L226.4 234.8C233.6 241.1 243 245.6 252.5 245.6C261.9 245.6 271.3 241.1 278.5 234.8L355.5 157.8C365.3 148.1 378.8 142.5 392.6 142.5H430.3L488.6 200.8C518.9 231.1 518.9 280.3 488.6 310.6L430.3 368.9H392.6C378.8 368.9 365.3 363.3 355.5 353.5L278.5 276.5C264.6 262.6 240.3 262.6 226.4 276.6L149.7 353.2C139.1 363 126.4 368.6 112.6 368.6H80.78L22.76 310.6C-7.586 280.3-7.586 231.1 22.76 200.8L80.78 142.7H112.6z"], - "steam-symbol": [448, 512, [], "f3f6", "M395.5 177.5c0 33.8-27.5 61-61 61-33.8 0-61-27.3-61-61s27.3-61 61-61c33.5 0 61 27.2 61 61zm52.5.2c0 63-51 113.8-113.7 113.8L225 371.3c-4 43-40.5 76.8-84.5 76.8-40.5 0-74.7-28.8-83-67L0 358V250.7L97.2 290c15.1-9.2 32.2-13.3 52-11.5l71-101.7c.5-62.3 51.5-112.8 114-112.8C397 64 448 115 448 177.7zM203 363c0-34.7-27.8-62.5-62.5-62.5-4.5 0-9 .5-13.5 1.5l26 10.5c25.5 10.2 38 39 27.7 64.5-10.2 25.5-39.2 38-64.7 27.5-10.2-4-20.5-8.3-30.7-12.2 10.5 19.7 31.2 33.2 55.2 33.2 34.7 0 62.5-27.8 62.5-62.5zm207.5-185.3c0-42-34.3-76.2-76.2-76.2-42.3 0-76.5 34.2-76.5 76.2 0 42.2 34.3 76.2 76.5 76.2 41.9.1 76.2-33.9 76.2-76.2z"] - }; - - bunker(() => { - defineIcons('fab', icons); - defineIcons('fa-brands', icons); - }); - -}()); -(function () { - 'use strict'; - - let _WINDOW = {}; - let _DOCUMENT = {}; - try { - if (typeof window !== 'undefined') _WINDOW = window; - if (typeof document !== 'undefined') _DOCUMENT = document; - } catch (e) {} - const { - userAgent = '' - } = _WINDOW.navigator || {}; - const WINDOW = _WINDOW; - const DOCUMENT = _DOCUMENT; - const IS_BROWSER = !!WINDOW.document; - const IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function'; - const IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/'); - - function _defineProperty(e, r, t) { - return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { - value: t, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[r] = t, e; - } - function ownKeys(e, r) { - var t = Object.keys(e); - if (Object.getOwnPropertySymbols) { - var o = Object.getOwnPropertySymbols(e); - r && (o = o.filter(function (r) { - return Object.getOwnPropertyDescriptor(e, r).enumerable; - })), t.push.apply(t, o); - } - return t; - } - function _objectSpread2(e) { - for (var r = 1; r < arguments.length; r++) { - var t = null != arguments[r] ? arguments[r] : {}; - r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { - _defineProperty(e, r, t[r]); - }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { - Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); - }); - } - return e; - } - function _toPrimitive(t, r) { - if ("object" != typeof t || !t) return t; - var e = t[Symbol.toPrimitive]; - if (void 0 !== e) { - var i = e.call(t, r || "default"); - if ("object" != typeof i) return i; - throw new TypeError("@@toPrimitive must return a primitive value."); - } - return ("string" === r ? String : Number)(t); - } - function _toPropertyKey(t) { - var i = _toPrimitive(t, "string"); - return "symbol" == typeof i ? i : i + ""; - } - - var S = { - classic: { - fa: "solid", - fas: "solid", - "fa-solid": "solid", - far: "regular", - "fa-regular": "regular", - fal: "light", - "fa-light": "light", - fat: "thin", - "fa-thin": "thin", - fab: "brands", - "fa-brands": "brands" - }, - duotone: { - fa: "solid", - fad: "solid", - "fa-solid": "solid", - "fa-duotone": "solid", - fadr: "regular", - "fa-regular": "regular", - fadl: "light", - "fa-light": "light", - fadt: "thin", - "fa-thin": "thin" - }, - sharp: { - fa: "solid", - fass: "solid", - "fa-solid": "solid", - fasr: "regular", - "fa-regular": "regular", - fasl: "light", - "fa-light": "light", - fast: "thin", - "fa-thin": "thin" - }, - "sharp-duotone": { - fa: "solid", - fasds: "solid", - "fa-solid": "solid", - fasdr: "regular", - "fa-regular": "regular", - fasdl: "light", - "fa-light": "light", - fasdt: "thin", - "fa-thin": "thin" - } - }; - var s = "classic"; - var G = { - classic: { - 900: "fas", - 400: "far", - normal: "far", - 300: "fal", - 100: "fat" - }, - duotone: { - 900: "fad", - 400: "fadr", - 300: "fadl", - 100: "fadt" - }, - sharp: { - 900: "fass", - 400: "fasr", - 300: "fasl", - 100: "fast" - }, - "sharp-duotone": { - 900: "fasds", - 400: "fasdr", - 300: "fasdl", - 100: "fasdt" - } - }; - var xt = { - classic: { - solid: "fas", - regular: "far", - light: "fal", - thin: "fat", - brands: "fab" - }, - duotone: { - solid: "fad", - regular: "fadr", - light: "fadl", - thin: "fadt" - }, - sharp: { - solid: "fass", - regular: "fasr", - light: "fasl", - thin: "fast" - }, - "sharp-duotone": { - solid: "fasds", - regular: "fasdr", - light: "fasdl", - thin: "fasdt" - } - }; - var St = { - kit: { - fak: "kit", - "fa-kit": "kit" - }, - "kit-duotone": { - fakd: "kit-duotone", - "fa-kit-duotone": "kit-duotone" - } - }; - var Ct = { - kit: { - "fa-kit": "fak" - }, - "kit-duotone": { - "fa-kit-duotone": "fakd" - } - }; - var Wt = { - kit: { - fak: "fa-kit" - }, - "kit-duotone": { - fakd: "fa-kit-duotone" - } - }; - var Et = { - kit: { - kit: "fak" - }, - "kit-duotone": { - "kit-duotone": "fakd" - } - }; - - var ua = { - classic: { - "fa-brands": "fab", - "fa-duotone": "fad", - "fa-light": "fal", - "fa-regular": "far", - "fa-solid": "fas", - "fa-thin": "fat" - }, - duotone: { - "fa-regular": "fadr", - "fa-light": "fadl", - "fa-thin": "fadt" - }, - sharp: { - "fa-solid": "fass", - "fa-regular": "fasr", - "fa-light": "fasl", - "fa-thin": "fast" - }, - "sharp-duotone": { - "fa-solid": "fasds", - "fa-regular": "fasdr", - "fa-light": "fasdl", - "fa-thin": "fasdt" - } - }, - ga = { - classic: { - fab: "fa-brands", - fad: "fa-duotone", - fal: "fa-light", - far: "fa-regular", - fas: "fa-solid", - fat: "fa-thin" - }, - duotone: { - fadr: "fa-regular", - fadl: "fa-light", - fadt: "fa-thin" - }, - sharp: { - fass: "fa-solid", - fasr: "fa-regular", - fasl: "fa-light", - fast: "fa-thin" - }, - "sharp-duotone": { - fasds: "fa-solid", - fasdr: "fa-regular", - fasdl: "fa-light", - fasdt: "fa-thin" - } - }; - - const NAMESPACE_IDENTIFIER = '___FONT_AWESOME___'; - const PRODUCTION = (() => { - try { - return "production" === 'production'; - } catch (e$$1) { - return false; - } - })(); - function familyProxy(obj) { - // Defaults to the classic family if family is not available - return new Proxy(obj, { - get(target, prop) { - return prop in target ? target[prop] : target[s]; - } - }); - } - const _PREFIX_TO_STYLE = _objectSpread2({}, S); - - // We changed FACSSClassesToStyleId in the icons repo to be canonical and as such, "classic" family does not have any - // duotone styles. But we do still need duotone in _PREFIX_TO_STYLE below, so we are manually adding - // {'fa-duotone': 'duotone'} - _PREFIX_TO_STYLE[s] = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, { - 'fa-duotone': 'duotone' - }), S[s]), St['kit']), St['kit-duotone']); - const PREFIX_TO_STYLE = familyProxy(_PREFIX_TO_STYLE); - const _STYLE_TO_PREFIX = _objectSpread2({}, xt); - - // We changed FAStyleIdToShortPrefixId in the icons repo to be canonical and as such, "classic" family does not have any - // duotone styles. But we do still need duotone in _STYLE_TO_PREFIX below, so we are manually adding {duotone: 'fad'} - _STYLE_TO_PREFIX[s] = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, { - duotone: 'fad' - }), _STYLE_TO_PREFIX[s]), Et['kit']), Et['kit-duotone']); - const STYLE_TO_PREFIX = familyProxy(_STYLE_TO_PREFIX); - const _PREFIX_TO_LONG_STYLE = _objectSpread2({}, ga); - _PREFIX_TO_LONG_STYLE[s] = _objectSpread2(_objectSpread2({}, _PREFIX_TO_LONG_STYLE[s]), Wt['kit']); - const PREFIX_TO_LONG_STYLE = familyProxy(_PREFIX_TO_LONG_STYLE); - const _LONG_STYLE_TO_PREFIX = _objectSpread2({}, ua); - _LONG_STYLE_TO_PREFIX[s] = _objectSpread2(_objectSpread2({}, _LONG_STYLE_TO_PREFIX[s]), Ct['kit']); - const LONG_STYLE_TO_PREFIX = familyProxy(_LONG_STYLE_TO_PREFIX); - const _FONT_WEIGHT_TO_PREFIX = _objectSpread2({}, G); - const FONT_WEIGHT_TO_PREFIX = familyProxy(_FONT_WEIGHT_TO_PREFIX); - - function bunker(fn) { - try { - for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - fn(...args); - } catch (e) { - if (!PRODUCTION) { - throw e; - } - } - } - - const w = WINDOW || {}; - if (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {}; - if (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {}; - if (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {}; - if (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = []; - var namespace = w[NAMESPACE_IDENTIFIER]; - - function normalizeIcons(icons) { - return Object.keys(icons).reduce((acc, iconName) => { - const icon = icons[iconName]; - const expanded = !!icon.icon; - if (expanded) { - acc[icon.iconName] = icon.icon; - } else { - acc[iconName] = icon; - } - return acc; - }, {}); - } - function defineIcons(prefix, icons) { - let params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; - const { - skipHooks = false - } = params; - const normalized = normalizeIcons(icons); - if (typeof namespace.hooks.addPack === 'function' && !skipHooks) { - namespace.hooks.addPack(prefix, normalizeIcons(icons)); - } else { - namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), normalized); - } - - /** - * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction - * of new styles we needed to differentiate between them. Prefix `fa` is now an alias - * for `fas` so we'll ease the upgrade process for our users by automatically defining - * this as well. - */ - if (prefix === 'fas') { - defineIcons('fa', icons); - } - } - - var icons = { - "trash-can": [448, 512, [61460, "trash-alt"], "f2ed", "M170.5 51.6L151.5 80l145 0-19-28.4c-1.5-2.2-4-3.6-6.7-3.6l-93.7 0c-2.7 0-5.2 1.3-6.7 3.6zm147-26.6L354.2 80 368 80l48 0 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 304c0 44.2-35.8 80-80 80l-224 0c-44.2 0-80-35.8-80-80l0-304-8 0c-13.3 0-24-10.7-24-24S10.7 80 24 80l8 0 48 0 13.8 0 36.7-55.1C140.9 9.4 158.4 0 177.1 0l93.7 0c18.7 0 36.2 9.4 46.6 24.9zM80 128l0 304c0 17.7 14.3 32 32 32l224 0c17.7 0 32-14.3 32-32l0-304L80 128zm80 64l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208c0-8.8 7.2-16 16-16s16 7.2 16 16zm80 0l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208c0-8.8 7.2-16 16-16s16 7.2 16 16zm80 0l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208c0-8.8 7.2-16 16-16s16 7.2 16 16z"], - "message": [512, 512, ["comment-alt"], "f27a", "M160 368c26.5 0 48 21.5 48 48l0 16 72.5-54.4c8.3-6.2 18.4-9.6 28.8-9.6L448 368c8.8 0 16-7.2 16-16l0-288c0-8.8-7.2-16-16-16L64 48c-8.8 0-16 7.2-16 16l0 288c0 8.8 7.2 16 16 16l96 0zm48 124l-.2 .2-5.1 3.8-17.1 12.8c-4.8 3.6-11.3 4.2-16.8 1.5s-8.8-8.2-8.8-14.3l0-21.3 0-6.4 0-.3 0-4 0-48-48 0-48 0c-35.3 0-64-28.7-64-64L0 64C0 28.7 28.7 0 64 0L448 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64l-138.7 0L208 492z"], - "file-lines": [384, 512, [128441, 128462, 61686, "file-alt", "file-text"], "f15c", "M64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16l160 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm56 256c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z"], - "calendar-days": [448, 512, ["calendar-alt"], "f073", "M152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40L64 64C28.7 64 0 92.7 0 128l0 16 0 48L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-256 0-48 0-16c0-35.3-28.7-64-64-64l-40 0 0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40L152 64l0-40zM48 192l80 0 0 56-80 0 0-56zm0 104l80 0 0 64-80 0 0-64zm128 0l96 0 0 64-96 0 0-64zm144 0l80 0 0 64-80 0 0-64zm80-48l-80 0 0-56 80 0 0 56zm0 160l0 40c0 8.8-7.2 16-16 16l-64 0 0-56 80 0zm-128 0l0 56-96 0 0-56 96 0zm-144 0l0 56-64 0c-8.8 0-16-7.2-16-16l0-40 80 0zM272 248l-96 0 0-56 96 0 0 56z"], - "hand-point-right": [512, 512, [], "f0a4", "M448 128l-177.6 0c1 5.2 1.6 10.5 1.6 16l0 16 32 0 144 0c8.8 0 16-7.2 16-16s-7.2-16-16-16zM224 144c0-17.7-14.3-32-32-32c0 0 0 0 0 0l-24 0c-66.3 0-120 53.7-120 120l0 48c0 52.5 33.7 97.1 80.7 113.4c-.5-3.1-.7-6.2-.7-9.4c0-20 9.2-37.9 23.6-49.7c-4.9-9-7.6-19.4-7.6-30.3c0-15.1 5.3-29 14-40c-8.8-11-14-24.9-14-40l0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40c0 8.8 7.2 16 16 16s16-7.2 16-16l0-40 0-40zM192 64s0 0 0 0c18 0 34.6 6 48 16l208 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-82 0c1.3 5.1 2 10.5 2 16c0 25.3-14.7 47.2-36 57.6c2.6 7 4 14.5 4 22.4c0 20-9.2 37.9-23.6 49.7c4.9 9 7.6 19.4 7.6 30.3c0 35.3-28.7 64-64 64l-64 0-24 0C75.2 448 0 372.8 0 280l0-48C0 139.2 75.2 64 168 64l24 0zm64 336c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l64 0zm16-176c0 5.5-.7 10.9-2 16l2 0 32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0 0 16zm-24 64l-40 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-24 0z"], - "face-smile-beam": [512, 512, [128522, "smile-beam"], "f5b8", "M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm177.6 62.1C192.8 334.5 218.8 352 256 352s63.2-17.5 78.4-33.9c9-9.7 24.2-10.4 33.9-1.4s10.4 24.2 1.4 33.9c-22 23.8-60 49.4-113.6 49.4s-91.7-25.5-113.6-49.4c-9-9.7-8.4-24.9 1.4-33.9s24.9-8.4 33.9 1.4zm40-89.3s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z"], - "face-grin-stars": [512, 512, [129321, "grin-stars"], "f587", "M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM183.2 132.6c-1.3-2.8-4.1-4.6-7.2-4.6s-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L176 240.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L242.4 186c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7zm160 0c-1.3-2.8-4.1-4.6-7.2-4.6s-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L336 240.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L402.4 186c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7zm6.3 175.8c-28.9 6.8-60.5 10.5-93.6 10.5s-64.7-3.7-93.6-10.5c-18.7-4.4-35.9 12-25.5 28.1c24.6 38.1 68.7 63.5 119.1 63.5s94.5-25.4 119.1-63.5c10.4-16.1-6.8-32.5-25.5-28.1z"], - "address-book": [512, 512, [62138, "contact-book"], "f2b9", "M384 48c8.8 0 16 7.2 16 16l0 384c0 8.8-7.2 16-16 16L96 464c-8.8 0-16-7.2-16-16L80 64c0-8.8 7.2-16 16-16l288 0zM96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L96 0zM240 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm-32 32c-44.2 0-80 35.8-80 80c0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16c0-44.2-35.8-80-80-80l-64 0zM512 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64zM496 192c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8-7.2-16-16-16zm16 144c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64z"], - "comments": [640, 512, [128490, 61670], "f086", "M88.2 309.1c9.8-18.3 6.8-40.8-7.5-55.8C59.4 230.9 48 204 48 176c0-63.5 63.8-128 160-128s160 64.5 160 128s-63.8 128-160 128c-13.1 0-25.8-1.3-37.8-3.6c-10.4-2-21.2-.6-30.7 4.2c-4.1 2.1-8.3 4.1-12.6 6c-16 7.2-32.9 13.5-49.9 18c2.8-4.6 5.4-9.1 7.9-13.6c1.1-1.9 2.2-3.9 3.2-5.9zM208 352c114.9 0 208-78.8 208-176S322.9 0 208 0S0 78.8 0 176c0 41.8 17.2 80.1 45.9 110.3c-.9 1.7-1.9 3.5-2.8 5.1c-10.3 18.4-22.3 36.5-36.6 52.1c-6.6 7-8.3 17.2-4.6 25.9C5.8 378.3 14.4 384 24 384c43 0 86.5-13.3 122.7-29.7c4.8-2.2 9.6-4.5 14.2-6.8c15.1 3 30.9 4.5 47.1 4.5zM432 480c16.2 0 31.9-1.6 47.1-4.5c4.6 2.3 9.4 4.6 14.2 6.8C529.5 498.7 573 512 616 512c9.6 0 18.2-5.7 22-14.5c3.8-8.8 2-19-4.6-25.9c-14.2-15.6-26.2-33.7-36.6-52.1c-.9-1.7-1.9-3.4-2.8-5.1C622.8 384.1 640 345.8 640 304c0-94.4-87.9-171.5-198.2-175.8c4.1 15.2 6.2 31.2 6.2 47.8l0 .6c87.2 6.7 144 67.5 144 127.4c0 28-11.4 54.9-32.7 77.2c-14.3 15-17.3 37.6-7.5 55.8c1.1 2 2.2 4 3.2 5.9c2.5 4.5 5.2 9 7.9 13.6c-17-4.5-33.9-10.7-49.9-18c-4.3-1.9-8.5-3.9-12.6-6c-9.5-4.8-20.3-6.2-30.7-4.2c-12.1 2.4-24.8 3.6-37.8 3.6c-61.7 0-110-26.5-136.8-62.3c-16 5.4-32.8 9.4-50 11.8C279 439.8 350 480 432 480z"], - "paste": [512, 512, ["file-clipboard"], "f0ea", "M104.6 48L64 48C28.7 48 0 76.7 0 112L0 384c0 35.3 28.7 64 64 64l96 0 0-48-96 0c-8.8 0-16-7.2-16-16l0-272c0-8.8 7.2-16 16-16l16 0c0 17.7 14.3 32 32 32l72.4 0C202 108.4 227.6 96 256 96l62 0c-7.1-27.6-32.2-48-62-48l-40.6 0C211.6 20.9 188.2 0 160 0s-51.6 20.9-55.4 48zM144 56a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM448 464l-192 0c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l140.1 0L464 243.9 464 448c0 8.8-7.2 16-16 16zM256 512l192 0c35.3 0 64-28.7 64-64l0-204.1c0-12.7-5.1-24.9-14.1-33.9l-67.9-67.9c-9-9-21.2-14.1-33.9-14.1L256 128c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64z"], - "face-grin-tongue-squint": [512, 512, [128541, "grin-tongue-squint"], "f58a", "M464 256c0-114.9-93.1-208-208-208S48 141.1 48 256c0 81.7 47.1 152.4 115.7 186.4c-2.4-8.4-3.7-17.3-3.7-26.4l0-23.3c-24-17.5-43.1-41.4-54.8-69.2c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19c12.3-3.8 24.3 6.9 19.3 18.7c-11.8 28-31.1 52-55.4 69.6l0 22.9c0 9.2-1.3 18-3.7 26.4C416.9 408.4 464 337.7 464 256zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm116-98.9c0-9 9.6-14.7 17.5-10.5l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6zm262.5-10.5c7.9-4.2 17.5 1.5 17.5 10.5c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9zM320 416l0-37.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 37.4c0 35.3 28.7 64 64 64s64-28.7 64-64z"], - "face-flushed": [512, 512, [128563, "flushed"], "f579", "M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM160.4 248a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm216-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM192 336c-13.3 0-24 10.7-24 24s10.7 24 24 24l128 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-128 0zM160 176a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm0 128a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm144-80a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm128 0a80 80 0 1 0 -160 0 80 80 0 1 0 160 0z"], - "square-caret-right": [448, 512, ["caret-square-right"], "f152", "M400 96c0-8.8-7.2-16-16-16L64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320zM384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM320 256c0 6.7-2.8 13-7.7 17.6l-112 104c-7 6.5-17.2 8.2-25.9 4.4s-14.4-12.5-14.4-22l0-208c0-9.5 5.7-18.2 14.4-22s18.9-2.1 25.9 4.4l112 104c4.9 4.5 7.7 10.9 7.7 17.6z"], - "square-minus": [448, 512, [61767, "minus-square"], "f146", "M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM152 232l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"], - "compass": [512, 512, [129517], "f14e", "M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm306.7 69.1L162.4 380.6c-19.4 7.5-38.5-11.6-31-31l55.5-144.3c3.3-8.5 9.9-15.1 18.4-18.4l144.3-55.5c19.4-7.5 38.5 11.6 31 31L325.1 306.7c-3.2 8.5-9.9 15.1-18.4 18.4zM288 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"], - "square-caret-down": [448, 512, ["caret-square-down"], "f150", "M384 432c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0zm64-16c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320zM224 352c-6.7 0-13-2.8-17.6-7.7l-104-112c-6.5-7-8.2-17.2-4.4-25.9s12.5-14.4 22-14.4l208 0c9.5 0 18.2 5.7 22 14.4s2.1 18.9-4.4 25.9l-104 112c-4.5 4.9-10.9 7.7-17.6 7.7z"], - "face-kiss-beam": [512, 512, [128537, "kiss-beam"], "f597", "M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm304.7 41.7c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 427.1 257.4 432 240 432c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9c0 0 0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7c0 0 0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zm-87.1-68.9s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z"], - "lightbulb": [384, 512, [128161], "f0eb", "M297.2 248.9C311.6 228.3 320 203.2 320 176c0-70.7-57.3-128-128-128S64 105.3 64 176c0 27.2 8.4 52.3 22.8 72.9c3.7 5.3 8.1 11.3 12.8 17.7c0 0 0 0 0 0c12.9 17.7 28.3 38.9 39.8 59.8c10.4 19 15.7 38.8 18.3 57.5L109 384c-2.2-12-5.9-23.7-11.8-34.5c-9.9-18-22.2-34.9-34.5-51.8c0 0 0 0 0 0s0 0 0 0c-5.2-7.1-10.4-14.2-15.4-21.4C27.6 247.9 16 213.3 16 176C16 78.8 94.8 0 192 0s176 78.8 176 176c0 37.3-11.6 71.9-31.4 100.3c-5 7.2-10.2 14.3-15.4 21.4c0 0 0 0 0 0s0 0 0 0c-12.3 16.8-24.6 33.7-34.5 51.8c-5.9 10.8-9.6 22.5-11.8 34.5l-48.6 0c2.6-18.7 7.9-38.6 18.3-57.5c11.5-20.9 26.9-42.1 39.8-59.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0c4.7-6.4 9-12.4 12.7-17.7zM192 128c-26.5 0-48 21.5-48 48c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16s-7.2 16-16 16zm0 384c-44.2 0-80-35.8-80-80l0-16 160 0 0 16c0 44.2-35.8 80-80 80z"], - "flag": [448, 512, [127988, 61725], "f024", "M48 24C48 10.7 37.3 0 24 0S0 10.7 0 24L0 64 0 350.5 0 400l0 88c0 13.3 10.7 24 24 24s24-10.7 24-24l0-100 80.3-20.1c41.1-10.3 84.6-5.5 122.5 13.4c44.2 22.1 95.5 24.8 141.7 7.4l34.7-13c12.5-4.7 20.8-16.6 20.8-30l0-279.7c0-23-24.2-38-44.8-27.7l-9.6 4.8c-46.3 23.2-100.8 23.2-147.1 0c-35.1-17.6-75.4-22-113.5-12.5L48 52l0-28zm0 77.5l96.6-24.2c27-6.7 55.5-3.6 80.4 8.8c54.9 27.4 118.7 29.7 175 6.8l0 241.8-24.4 9.1c-33.7 12.6-71.2 10.7-103.4-5.4c-48.2-24.1-103.3-30.1-155.6-17.1L48 338.5l0-237z"], - "square-check": [448, 512, [9745, 9989, 61510, "check-square"], "f14a", "M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"], - "circle-dot": [512, 512, [128280, "dot-circle"], "f192", "M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256-96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z"], - "face-dizzy": [512, 512, ["dizzy"], "f567", "M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256 32a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM103 135c9.4-9.4 24.6-9.4 33.9 0l23 23 23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-23 23 23 23c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-23-23-23 23c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l23-23-23-23c-9.4-9.4-9.4-24.6 0-33.9zm192 0c9.4-9.4 24.6-9.4 33.9 0l23 23 23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-23 23 23 23c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-23-23-23 23c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l23-23-23-23c-9.4-9.4-9.4-24.6 0-33.9z"], - "futbol": [512, 512, [9917, "futbol-ball", "soccer-ball"], "f1e3", "M435.4 361.4l-89.7-6c-5.2-.3-10.3 1.1-14.5 4.2s-7.2 7.4-8.4 12.5l-22 87.2c-14.4 3.2-29.4 4.8-44.8 4.8s-30.3-1.7-44.8-4.8l-22-87.2c-1.3-5-4.3-9.4-8.4-12.5s-9.3-4.5-14.5-4.2l-89.7 6C61.7 335.9 51.9 307 49 276.2L125 228.3c4.4-2.8 7.6-7 9.2-11.9s1.4-10.2-.5-15L100.4 118c19.9-22.4 44.6-40.5 72.4-52.7l69.1 57.6c4 3.3 9 5.1 14.1 5.1s10.2-1.8 14.1-5.1l69.1-57.6c27.8 12.2 52.5 30.3 72.4 52.7l-33.4 83.4c-1.9 4.8-2.1 10.1-.5 15s4.9 9.1 9.2 11.9L463 276.2c-3 30.8-12.7 59.7-27.6 85.2zM256 48l.9 0-1.8 0 .9 0zM56.7 196.2c.9-3 1.9-6.1 2.9-9.1l-2.9 9.1zM132 423l3.8 2.7c-1.3-.9-2.5-1.8-3.8-2.7zm248.1-.1c-1.3 1-2.6 2-4 2.9l4-2.9zm75.2-226.7l-3-9.2c1.1 3 2.1 6.1 3 9.2zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm14.1-325.7c-8.4-6.1-19.8-6.1-28.2 0L194 221c-8.4 6.1-11.9 16.9-8.7 26.8l18.3 56.3c3.2 9.9 12.4 16.6 22.8 16.6l59.2 0c10.4 0 19.6-6.7 22.8-16.6l18.3-56.3c3.2-9.9-.3-20.7-8.7-26.8l-47.9-34.8z"], - "pen-to-square": [512, 512, ["edit"], "f044", "M441 58.9L453.1 71c9.4 9.4 9.4 24.6 0 33.9L424 134.1 377.9 88 407 58.9c9.4-9.4 24.6-9.4 33.9 0zM209.8 256.2L344 121.9 390.1 168 255.8 302.2c-2.9 2.9-6.5 5-10.4 6.1l-58.5 16.7 16.7-58.5c1.1-3.9 3.2-7.5 6.1-10.4zM373.1 25L175.8 222.2c-8.7 8.7-15 19.4-18.3 31.1l-28.6 100c-2.4 8.4-.1 17.4 6.1 23.6s15.2 8.5 23.6 6.1l100-28.6c11.8-3.4 22.5-9.7 31.1-18.3L487 138.9c28.1-28.1 28.1-73.7 0-101.8L474.9 25C446.8-3.1 401.2-3.1 373.1 25zM88 64C39.4 64 0 103.4 0 152L0 424c0 48.6 39.4 88 88 88l272 0c48.6 0 88-39.4 88-88l0-112c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 112c0 22.1-17.9 40-40 40L88 464c-22.1 0-40-17.9-40-40l0-272c0-22.1 17.9-40 40-40l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 64z"], - "hourglass-half": [384, 512, ["hourglass-2"], "f252", "M0 24C0 10.7 10.7 0 24 0L360 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 19c0 40.3-16 79-44.5 107.5L225.9 256l81.5 81.5C336 366 352 404.7 352 445l0 19 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-19c0-40.3 16-79 44.5-107.5L158.1 256 76.5 174.5C48 146 32 107.3 32 67l0-19-8 0C10.7 48 0 37.3 0 24zM110.5 371.5c-3.9 3.9-7.5 8.1-10.7 12.5l184.4 0c-3.2-4.4-6.8-8.6-10.7-12.5L192 289.9l-81.5 81.5zM284.2 128C297 110.4 304 89 304 67l0-19L80 48l0 19c0 22.1 7 43.4 19.8 61l184.4 0z"], - "eye-slash": [640, 512, [], "f070", "M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zm151 118.3C226 97.7 269.5 80 320 80c65.2 0 118.8 29.6 159.9 67.7C518.4 183.5 545 226 558.6 256c-12.6 28-36.6 66.8-70.9 100.9l-53.8-42.2c9.1-17.6 14.2-37.5 14.2-58.7c0-70.7-57.3-128-128-128c-32.2 0-61.7 11.9-84.2 31.5l-46.1-36.1zM394.9 284.2l-81.5-63.9c4.2-8.5 6.6-18.2 6.6-28.3c0-5.5-.7-10.9-2-16c.7 0 1.3 0 2 0c44.2 0 80 35.8 80 80c0 9.9-1.8 19.4-5.1 28.2zm9.4 130.3C378.8 425.4 350.7 432 320 432c-65.2 0-118.8-29.6-159.9-67.7C121.6 328.5 95 286 81.4 256c8.3-18.4 21.5-41.5 39.4-64.8L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5l-41.9-33zM192 256c0 70.7 57.3 128 128 128c13.3 0 26.1-2 38.2-5.8L302 334c-23.5-5.4-43.1-21.2-53.7-42.3l-56.1-44.2c-.2 2.8-.3 5.6-.3 8.5z"], - "hand": [512, 512, [129306, 9995, "hand-paper"], "f256", "M256 0c-25.3 0-47.2 14.7-57.6 36c-7-2.6-14.5-4-22.4-4c-35.3 0-64 28.7-64 64l0 165.5-2.7-2.7c-25-25-65.5-25-90.5 0s-25 65.5 0 90.5L106.5 437c48 48 113.1 75 181 75l8.5 0 8 0c1.5 0 3-.1 4.5-.4c91.7-6.2 165-79.4 171.1-171.1c.3-1.5 .4-3 .4-4.5l0-176c0-35.3-28.7-64-64-64c-5.5 0-10.9 .7-16 2l0-2c0-35.3-28.7-64-64-64c-7.9 0-15.4 1.4-22.4 4C303.2 14.7 281.3 0 256 0zM240 96.1l0-.1 0-32c0-8.8 7.2-16 16-16s16 7.2 16 16l0 31.9 0 .1 0 136c0 13.3 10.7 24 24 24s24-10.7 24-24l0-136c0 0 0 0 0-.1c0-8.8 7.2-16 16-16s16 7.2 16 16l0 55.9c0 0 0 .1 0 .1l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-71.9c0 0 0-.1 0-.1c0-8.8 7.2-16 16-16s16 7.2 16 16l0 172.9c-.1 .6-.1 1.3-.2 1.9c-3.4 69.7-59.3 125.6-129 129c-.6 0-1.3 .1-1.9 .2l-4.9 0-8.5 0c-55.2 0-108.1-21.9-147.1-60.9L52.7 315.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L119 336.4c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2L160 96c0-8.8 7.2-16 16-16c8.8 0 16 7.1 16 15.9L192 232c0 13.3 10.7 24 24 24s24-10.7 24-24l0-135.9z"], - "hand-spock": [576, 512, [128406], "f259", "M170.2 80.8C161 47 180.8 12 214.6 2.4c34-9.6 69.4 10.2 79 44.2l30.3 107.1L337.1 84c6.6-34.7 40.1-57.5 74.8-50.9c31.4 6 53 33.9 52 64.9c10-2.6 20.8-2.8 31.5-.1c34.3 8.6 55.1 43.3 46.6 77.6L486.7 397.2C469.8 464.7 409.2 512 339.6 512l-33.7 0c-56.9 0-112.2-19-157.2-53.9l-92-71.6c-27.9-21.7-32.9-61.9-11.2-89.8s61.9-32.9 89.8-11.2l17 13.2L100.5 167.5c-13-32.9 3.2-70.1 36-83c11.1-4.4 22.7-5.4 33.7-3.7zm77.1-21.2c-2.4-8.5-11.2-13.4-19.7-11s-13.4 11.2-11 19.7l54.8 182.4c3.5 12.3-3.3 25.2-15.4 29.3s-25.3-2-30-13.9L174.9 138.1c-3.2-8.2-12.5-12.3-20.8-9s-12.3 12.5-9 20.8l73.3 185.6c12 30.3-23.7 57-49.4 37l-63.1-49.1c-7-5.4-17-4.2-22.5 2.8s-4.2 17 2.8 22.5l92 71.6c36.5 28.4 81.4 43.8 127.7 43.8l33.7 0c47.5 0 89-32.4 100.5-78.5l55.4-221.6c2.1-8.6-3.1-17.3-11.6-19.4s-17.3 3.1-19.4 11.6l-26 104C435.6 271.8 425 280 413 280c-16.5 0-28.9-15-25.8-31.2L415.7 99c1.7-8.7-4-17.1-12.7-18.7s-17.1 4-18.7 12.7L352.5 260c-2.2 11.6-12.4 20-24.2 20c-11 0-20.7-7.3-23.7-17.9L247.4 59.6z"], - "face-kiss": [512, 512, [128535, "kiss"], "f596", "M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm304.7 25.7c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 411.1 257.4 416 240 416c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9c0 0 0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.8-.5-.1-.1-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7c0 0 0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"], - "face-grin-tongue": [512, 512, [128539, "grin-tongue"], "f589", "M464 256c0-114.9-93.1-208-208-208S48 141.1 48 256c0 81.7 47.1 152.4 115.7 186.4c-2.4-8.4-3.7-17.3-3.7-26.4l0-52.4c-8.9-8-16.7-17.1-23.1-27.1c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5c18.7-4.4 35.9 12 25.5 28.1c-6.4 9.9-14.2 19-23 27l0 52.5c0 9.2-1.3 18-3.7 26.4C416.9 408.4 464 337.7 464 256zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm176.4-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM320 416l0-37.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 37.4c0 35.3 28.7 64 64 64s64-28.7 64-64z"], - "chess-bishop": [320, 512, [9821], "f43a", "M104 0C90.7 0 80 10.7 80 24c0 11.2 7.6 20.6 18 23.2c-7.8 8-16.1 17-24.4 27C38.2 116.7 0 178.8 0 250.9c0 44.8 24.6 72.2 48 87.8L48 352l48 0 0-27c0-9-5-17.2-13-21.3c-18-9.3-35-24.7-35-52.7c0-55.5 29.8-106.8 62.4-145.9c16-19.2 32.1-34.8 44.2-45.5c1.9-1.7 3.7-3.2 5.3-4.6c1.7 1.4 3.4 3 5.3 4.6c12.1 10.7 28.2 26.3 44.2 45.5c5.3 6.3 10.5 13 15.5 20L159 191c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l57.8-57.8c12.8 25.9 21.2 54.3 21.2 83.8c0 28-17 43.4-35 52.7c-8 4.1-13 12.3-13 21.3l0 27 48 0 0-13.3c23.4-15.6 48-42.9 48-87.8c0-72.1-38.2-134.2-73.6-176.7c-8.3-9.9-16.6-19-24.4-27c10.3-2.7 18-12.1 18-23.2c0-13.3-10.7-24-24-24L160 0 104 0zM52.7 464l16.6-32 181.6 0 16.6 32L52.7 464zm207.9-80l-201 0c-12 0-22.9 6.7-28.4 17.3L4.6 452.5c-3 5.8-4.6 12.2-4.6 18.7C0 493.8 18.2 512 40.8 512l238.5 0c22.5 0 40.8-18.2 40.8-40.8c0-6.5-1.6-12.9-4.6-18.7l-26.5-51.2c-5.5-10.6-16.5-17.3-28.4-17.3z"], - "face-grin-wink": [512, 512, ["grin-wink"], "f58c", "M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm165.8 21.7c-7.6 8.1-20.2 8.5-28.3 .9s-8.5-20.2-.9-28.3c14.5-15.5 35.2-22.3 54.6-22.3s40.1 6.8 54.6 22.3c7.6 8.1 7.1 20.7-.9 28.3s-20.7 7.1-28.3-.9c-5.5-5.8-14.8-9.7-25.4-9.7s-19.9 3.8-25.4 9.7z"], - "face-grin-wide": [512, 512, [128515, "grin-alt"], "f581", "M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM224 192c0 35.3-14.3 64-32 64s-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64zm96 64c-17.7 0-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64s-14.3 64-32 64z"], - "face-frown-open": [512, 512, [128550, "frown-open"], "f57a", "M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM182.4 382.5c-12.4 5.2-26.5-4.1-21.1-16.4c16-36.6 52.4-62.1 94.8-62.1s78.8 25.6 94.8 62.1c5.4 12.3-8.7 21.6-21.1 16.4c-22.4-9.5-47.4-14.8-73.7-14.8s-51.3 5.3-73.7 14.8zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"], - "hand-point-up": [384, 512, [9757], "f0a6", "M64 64l0 177.6c5.2-1 10.5-1.6 16-1.6l16 0 0-32L96 64c0-8.8-7.2-16-16-16s-16 7.2-16 16zM80 288c-17.7 0-32 14.3-32 32c0 0 0 0 0 0l0 24c0 66.3 53.7 120 120 120l48 0c52.5 0 97.1-33.7 113.4-80.7c-3.1 .5-6.2 .7-9.4 .7c-20 0-37.9-9.2-49.7-23.6c-9 4.9-19.4 7.6-30.3 7.6c-15.1 0-29-5.3-40-14c-11 8.8-24.9 14-40 14l-40 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l40 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-40 0-40 0zM0 320s0 0 0 0c0-18 6-34.6 16-48L16 64C16 28.7 44.7 0 80 0s64 28.7 64 64l0 82c5.1-1.3 10.5-2 16-2c25.3 0 47.2 14.7 57.6 36c7-2.6 14.5-4 22.4-4c20 0 37.9 9.2 49.7 23.6c9-4.9 19.4-7.6 30.3-7.6c35.3 0 64 28.7 64 64l0 64 0 24c0 92.8-75.2 168-168 168l-48 0C75.2 512 0 436.8 0 344l0-24zm336-64c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48 0 16c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64zM160 240c5.5 0 10.9 .7 16 2l0-2 0-32c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 32 16 0zm64 24l0 40c0 8.8 7.2 16 16 16s16-7.2 16-16l0-48 0-16c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 24z"], - "bookmark": [384, 512, [128278, 61591], "f02e", "M0 48C0 21.5 21.5 0 48 0l0 48 0 393.4 130.1-92.9c8.3-6 19.6-6 27.9 0L336 441.4 336 48 48 48 48 0 336 0c26.5 0 48 21.5 48 48l0 440c0 9-5 17.2-13 21.3s-17.6 3.4-24.9-1.8L192 397.5 37.9 507.5c-7.3 5.2-16.9 5.9-24.9 1.8S0 497 0 488L0 48z"], - "hand-point-down": [384, 512, [], "f0a7", "M64 448l0-177.6c5.2 1 10.5 1.6 16 1.6l16 0 0 32 0 144c0 8.8-7.2 16-16 16s-16-7.2-16-16zM80 224c-17.7 0-32-14.3-32-32c0 0 0 0 0 0l0-24c0-66.3 53.7-120 120-120l48 0c52.5 0 97.1 33.7 113.4 80.7c-3.1-.5-6.2-.7-9.4-.7c-20 0-37.9 9.2-49.7 23.6c-9-4.9-19.4-7.6-30.3-7.6c-15.1 0-29 5.3-40 14c-11-8.8-24.9-14-40-14l-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-40 0-40 0zM0 192s0 0 0 0c0 18 6 34.6 16 48l0 208c0 35.3 28.7 64 64 64s64-28.7 64-64l0-82c5.1 1.3 10.5 2 16 2c25.3 0 47.2-14.7 57.6-36c7 2.6 14.5 4 22.4 4c20 0 37.9-9.2 49.7-23.6c9 4.9 19.4 7.6 30.3 7.6c35.3 0 64-28.7 64-64l0-64 0-24C384 75.2 308.8 0 216 0L168 0C75.2 0 0 75.2 0 168l0 24zm336 64c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48 0-16c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64zM160 272c5.5 0 10.9-.7 16-2l0 2 0 32c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-32 16 0zm64-24l0-40c0-8.8 7.2-16 16-16s16 7.2 16 16l0 48 0 16c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-24z"], - "folder": [512, 512, [128193, 128447, 61716, "folder-blank"], "f07b", "M0 96C0 60.7 28.7 32 64 32l132.1 0c19.1 0 37.4 7.6 50.9 21.1L289.9 96 448 96c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-256c0-8.8-7.2-16-16-16l-161.4 0c-10.6 0-20.8-4.2-28.3-11.7L213.1 87c-4.5-4.5-10.6-7-17-7L64 80z"], - "user": [448, 512, [128100, 62144], "f007", "M304 128a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM49.3 464l349.5 0c-8.9-63.3-63.3-112-129-112l-91.4 0c-65.7 0-120.1 48.7-129 112zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3z"], - "square-caret-left": [448, 512, ["caret-square-left"], "f191", "M48 416c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80c-8.8 0-16 7.2-16 16l0 320zm16 64c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480zm64-224c0-6.7 2.8-13 7.7-17.6l112-104c7-6.5 17.2-8.2 25.9-4.4s14.4 12.5 14.4 22l0 208c0 9.5-5.7 18.2-14.4 22s-18.9 2.1-25.9-4.4l-112-104c-4.9-4.5-7.7-10.9-7.7-17.6z"], - "star": [576, 512, [11088, 61446], "f005", "M287.9 0c9.2 0 17.6 5.2 21.6 13.5l68.6 141.3 153.2 22.6c9 1.3 16.5 7.6 19.3 16.3s.5 18.1-5.9 24.5L433.6 328.4l26.2 155.6c1.5 9-2.2 18.1-9.7 23.5s-17.3 6-25.3 1.7l-137-73.2L151 509.1c-8.1 4.3-17.9 3.7-25.3-1.7s-11.2-14.5-9.7-23.5l26.2-155.6L31.1 218.2c-6.5-6.4-8.7-15.9-5.9-24.5s10.3-14.9 19.3-16.3l153.2-22.6L266.3 13.5C270.4 5.2 278.7 0 287.9 0zm0 79L235.4 187.2c-3.5 7.1-10.2 12.1-18.1 13.3L99 217.9 184.9 303c5.5 5.5 8.1 13.3 6.8 21L171.4 443.7l105.2-56.2c7.1-3.8 15.6-3.8 22.6 0l105.2 56.2L384.2 324.1c-1.3-7.7 1.2-15.5 6.8-21l85.9-85.1L358.6 200.5c-7.8-1.2-14.6-6.1-18.1-13.3L287.9 79z"], - "chess-knight": [448, 512, [9822], "f441", "M226.6 48L117.3 48l17.1 12.8c6 4.5 9.6 11.6 9.6 19.2s-3.6 14.7-9.6 19.2l-6.5 4.9c-10 7.5-16 19.3-16 31.9l-.3 91c0 10.2 4.9 19.9 13.2 25.8l1.9 1.3c9.9 7.1 23.3 7 33.2-.1l49.9-36.3c10.7-7.8 25.7-5.4 33.5 5.3s5.4 25.7-5.3 33.5l-49.9 36.3-53.8 39.1c-7.3 5.3-13 12.2-16.9 20.1l-50.7 0c5.3-22.1 17.8-41.9 35.9-56.3c-1.3-.8-2.6-1.7-3.8-2.6L97 291.8c-21-15-33.4-39.2-33.3-65l.3-91c.1-19.8 6.7-38.7 18.6-53.9l-.4-.3C70.7 73 64 59.6 64 45.3C64 20.3 84.3 0 109.3 0L226.6 0C331.2 0 416 84.8 416 189.4c0 11.1-1 22.2-2.9 33.2L390.1 352l-48.8 0 24.5-137.8c1.5-8.2 2.2-16.5 2.2-24.8C368 111.3 304.7 48 226.6 48zM85.2 432L68.7 464l310.7 0-16.6-32L85.2 432zm315.7-30.7l26.5 51.2c3 5.8 4.6 12.2 4.6 18.7c0 22.5-18.2 40.8-40.8 40.8L56.8 512C34.2 512 16 493.8 16 471.2c0-6.5 1.6-12.9 4.6-18.7l26.5-51.2C52.5 390.7 63.5 384 75.5 384l297 0c12 0 22.9 6.7 28.4 17.3zM172 128a20 20 0 1 1 0 40 20 20 0 1 1 0-40z"], - "face-laugh-squint": [512, 512, ["laugh-squint"], "f59b", "M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm130.7 57.9c-4.2-13.6 7.1-25.9 21.3-25.9l212.5 0c14.2 0 25.5 12.4 21.3 25.9C369 368.4 318.2 408 258.2 408s-110.8-39.6-127.5-94.1zm2.8-183.3l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 141.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z"], - "face-laugh": [512, 512, ["laugh"], "f599", "M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm130.7 57.9c-4.2-13.6 7.1-25.9 21.3-25.9l212.5 0c14.2 0 25.5 12.4 21.3 25.9C369 368.4 318.2 408 258.2 408s-110.8-39.6-127.5-94.1zM144.4 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"], - "folder-open": [576, 512, [128194, 128449, 61717], "f07c", "M384 480l48 0c11.4 0 21.9-6 27.6-15.9l112-192c5.8-9.9 5.8-22.1 .1-32.1S555.5 224 544 224l-400 0c-11.4 0-21.9 6-27.6 15.9L48 357.1 48 96c0-8.8 7.2-16 16-16l117.5 0c4.2 0 8.3 1.7 11.3 4.7l26.5 26.5c21 21 49.5 32.8 79.2 32.8L416 144c8.8 0 16 7.2 16 16l0 32 48 0 0-32c0-35.3-28.7-64-64-64L298.5 96c-17 0-33.3-6.7-45.3-18.7L226.7 50.7c-12-12-28.3-18.7-45.3-18.7L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l23.7 0L384 480z"], - "clipboard": [384, 512, [128203], "f328", "M280 64l40 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l40 0 9.6 0C121 27.5 153.3 0 192 0s71 27.5 78.4 64l9.6 0zM64 112c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16l-16 0 0 24c0 13.3-10.7 24-24 24l-88 0-88 0c-13.3 0-24-10.7-24-24l0-24-16 0zm128-8a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"], - "chess-queen": [512, 512, [9819], "f445", "M256 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-95.2-8c-18.1 0-31.3 12.8-35.6 26.9c-8 26.2-32.4 45.2-61.2 45.2c-10 0-19.4-2.3-27.7-6.3c-7.6-3.7-16.7-3.3-24 1.2C.7 162.1-3.1 177.1 3.7 188.9L97.6 352l55.4 0-83-144.1c40.5-2.2 75.3-25.9 93.1-59.8c22 26.8 55.4 43.9 92.8 43.9s70.8-17.1 92.8-43.9c17.8 34 52.6 57.7 93.1 59.8L359 352l55.4 0 93.9-163.1c6.8-11.7 3-26.7-8.6-33.8c-7.3-4.5-16.4-4.9-24-1.2c-8.4 4-17.7 6.3-27.7 6.3c-28.8 0-53.2-19-61.2-45.2C382.5 100.8 369.3 88 351.2 88c-14.5 0-26.3 8.5-32.4 19.3c-12.4 22-35.9 36.7-62.8 36.7s-50.4-14.8-62.8-36.7C187.1 96.5 175.4 88 160.8 88zM133.2 432l245.6 0 16.6 32-278.7 0 16.6-32zm283.7-30.7c-5.5-10.6-16.5-17.3-28.4-17.3l-265 0c-12 0-22.9 6.7-28.4 17.3L68.6 452.5c-3 5.8-4.6 12.2-4.6 18.7c0 22.5 18.2 40.8 40.8 40.8l302.5 0c22.5 0 40.8-18.2 40.8-40.8c0-6.5-1.6-12.9-4.6-18.7l-26.5-51.2z"], - "hand-back-fist": [448, 512, ["hand-rock"], "f255", "M144 64c0-8.8 7.2-16 16-16s16 7.2 16 16c0 9.1 5.1 17.4 13.3 21.5s17.9 3.2 25.1-2.3c2.7-2 6-3.2 9.6-3.2c8.8 0 16 7.2 16 16c0 9.1 5.1 17.4 13.3 21.5s17.9 3.2 25.1-2.3c2.7-2 6-3.2 9.6-3.2c8.8 0 16 7.2 16 16c0 9.1 5.1 17.4 13.3 21.5s17.9 3.2 25.1-2.3c2.7-2 6-3.2 9.6-3.2c8.8 0 16 7.2 16 16l0 104c0 31.3-20 58-48 67.9c-9.6 3.4-16 12.5-16 22.6L304 488c0 13.3 10.7 24 24 24s24-10.7 24-24l0-117.8c38-20.1 64-60.1 64-106.2l0-104c0-35.3-28.7-64-64-64c-2.8 0-5.6 .2-8.3 .5C332.8 77.1 311.9 64 288 64c-2.8 0-5.6 .2-8.3 .5C268.8 45.1 247.9 32 224 32c-2.8 0-5.6 .2-8.3 .5C204.8 13.1 183.9 0 160 0C124.7 0 96 28.7 96 64l0 64.3c-11.7 7.4-22.5 16.4-32 26.9l17.8 16.1L64 155.2l-9.4 10.5C40 181.8 32 202.8 32 224.6l0 12.8c0 49.6 24.2 96.1 64.8 124.5l13.8-19.7L96.8 361.9l8.9 6.2c6.9 4.8 14.4 8.6 22.3 11.3L128 488c0 13.3 10.7 24 24 24s24-10.7 24-24l0-128.1c0-12.6-9.8-23.1-22.4-23.9c-7.3-.5-14.3-2.9-20.3-7.1l-13.1 18.7 13.1-18.7-8.9-6.2C96.6 303.1 80 271.3 80 237.4l0-12.8c0-9.9 3.7-19.4 10.3-26.8l9.4-10.5c3.8-4.2 7.9-8.1 12.3-11.6l0 32.3c0 8.8 7.2 16 16 16s16-7.2 16-16l0-65.7 0-14.3 0-64z"], - "square-caret-up": [448, 512, ["caret-square-up"], "f151", "M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm224 64c6.7 0 13 2.8 17.6 7.7l104 112c6.5 7 8.2 17.2 4.4 25.9s-12.5 14.4-22 14.4l-208 0c-9.5 0-18.2-5.7-22-14.4s-2.1-18.9 4.4-25.9l104-112c4.5-4.9 10.9-7.7 17.6-7.7z"], - "chart-bar": [512, 512, ["bar-chart"], "f080", "M24 32c13.3 0 24 10.7 24 24l0 352c0 13.3 10.7 24 24 24l416 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L72 480c-39.8 0-72-32.2-72-72L0 56C0 42.7 10.7 32 24 32zM128 136c0-13.3 10.7-24 24-24l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24zm24 72l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 96l272 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-272 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"], - "window-restore": [512, 512, [], "f2d2", "M432 48L208 48c-17.7 0-32 14.3-32 32l0 16-48 0 0-16c0-44.2 35.8-80 80-80L432 0c44.2 0 80 35.8 80 80l0 224c0 44.2-35.8 80-80 80l-16 0 0-48 16 0c17.7 0 32-14.3 32-32l0-224c0-17.7-14.3-32-32-32zM48 448c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-192L48 256l0 192zM64 128l256 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192c0-35.3 28.7-64 64-64z"], - "square-plus": [448, 512, [61846, "plus-square"], "f0fe", "M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM200 344l0-64-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24z"], - "image": [512, 512, [], "f03e", "M448 80c8.8 0 16 7.2 16 16l0 319.8-5-6.5-136-176c-4.5-5.9-11.6-9.3-19-9.3s-14.4 3.4-19 9.3L202 340.7l-30.5-42.7C167 291.7 159.8 288 152 288s-15 3.7-19.5 10.1l-80 112L48 416.3l0-.3L48 96c0-8.8 7.2-16 16-16l384 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm80 192a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"], - "folder-closed": [512, 512, [], "e185", "M251.7 127.6s0 0 0 0c10.5 10.5 24.7 16.4 39.6 16.4L448 144c8.8 0 16 7.2 16 16l0 32L48 192l0-96c0-8.8 7.2-16 16-16l133.5 0c4.2 0 8.3 1.7 11.3 4.7l33.9-33.9L208.8 84.7l42.9 42.9zM48 240l416 0 0 176c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16l0-176zM285.7 93.7L242.7 50.7c-12-12-28.3-18.7-45.3-18.7L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L291.3 96c-2.1 0-4.2-.8-5.7-2.3z"], - "lemon": [448, 512, [127819], "f094", "M368 80c-3.2 0-6.2 .4-8.9 1.3C340 86.8 313 91.9 284.8 84.6C227.4 69.7 160.2 92 110.1 142.1S37.7 259.4 52.6 316.8c7.3 28.2 2.2 55.2-3.3 74.3c-.8 2.8-1.3 5.8-1.3 8.9c0 17.7 14.3 32 32 32c3.2 0 6.2-.4 8.9-1.3c19.1-5.5 46.1-10.7 74.3-3.3c57.4 14.9 124.6-7.4 174.7-57.5s72.4-117.3 57.5-174.7c-7.3-28.2-2.2-55.2 3.3-74.3c.8-2.8 1.3-5.8 1.3-8.9c0-17.7-14.3-32-32-32zm0-48c44.2 0 80 35.8 80 80c0 7.7-1.1 15.2-3.1 22.3c-4.6 15.8-7.1 32.9-3 48.9c20.1 77.6-10.9 161.5-70 220.7s-143.1 90.2-220.7 70c-16-4.1-33-1.6-48.9 3c-7.1 2-14.6 3.1-22.3 3.1c-44.2 0-80-35.8-80-80c0-7.7 1.1-15.2 3.1-22.3c4.6-15.8 7.1-32.9 3-48.9C-14 251.3 17 167.3 76.2 108.2S219.3 18 296.8 38.1c16 4.1 33 1.6 48.9-3c7.1-2 14.6-3.1 22.3-3.1zM246.7 167c-52 15.2-96.5 59.7-111.7 111.7c-3.7 12.7-17.1 20-29.8 16.3s-20-17.1-16.3-29.8c19.8-67.7 76.6-124.5 144.3-144.3c12.7-3.7 26.1 3.6 29.8 16.3s-3.6 26.1-16.3 29.8z"], - "handshake": [640, 512, [], "f2b5", "M272.2 64.6l-51.1 51.1c-15.3 4.2-29.5 11.9-41.5 22.5L153 161.9C142.8 171 129.5 176 115.8 176L96 176l0 128c20.4 .6 39.8 8.9 54.3 23.4l35.6 35.6 7 7c0 0 0 0 0 0L219.9 397c6.2 6.2 16.4 6.2 22.6 0c1.7-1.7 3-3.7 3.7-5.8c2.8-7.7 9.3-13.5 17.3-15.3s16.4 .6 22.2 6.5L296.5 393c11.6 11.6 30.4 11.6 41.9 0c5.4-5.4 8.3-12.3 8.6-19.4c.4-8.8 5.6-16.6 13.6-20.4s17.3-3 24.4 2.1c9.4 6.7 22.5 5.8 30.9-2.6c9.4-9.4 9.4-24.6 0-33.9L340.1 243l-35.8 33c-27.3 25.2-69.2 25.6-97 .9c-31.7-28.2-32.4-77.4-1.6-106.5l70.1-66.2C303.2 78.4 339.4 64 377.1 64c36.1 0 71 13.3 97.9 37.2L505.1 128l38.9 0 40 0 40 0c8.8 0 16 7.2 16 16l0 208c0 17.7-14.3 32-32 32l-32 0c-11.8 0-22.2-6.4-27.7-16l-84.9 0c-3.4 6.7-7.9 13.1-13.5 18.7c-17.1 17.1-40.8 23.8-63 20.1c-3.6 7.3-8.5 14.1-14.6 20.2c-27.3 27.3-70 30-100.4 8.1c-25.1 20.8-62.5 19.5-86-4.1L159 404l-7-7-35.6-35.6c-5.5-5.5-12.7-8.7-20.4-9.3C96 369.7 81.6 384 64 384l-32 0c-17.7 0-32-14.3-32-32L0 144c0-8.8 7.2-16 16-16l40 0 40 0 19.8 0c2 0 3.9-.7 5.3-2l26.5-23.6C175.5 77.7 211.4 64 248.7 64L259 64c4.4 0 8.9 .2 13.2 .6zM544 320l0-144-48 0c-5.9 0-11.6-2.2-15.9-6.1l-36.9-32.8c-18.2-16.2-41.7-25.1-66.1-25.1c-25.4 0-49.8 9.7-68.3 27.1l-70.1 66.2c-10.3 9.8-10.1 26.3 .5 35.7c9.3 8.3 23.4 8.1 32.5-.3l71.9-66.4c9.7-9 24.9-8.4 33.9 1.4s8.4 24.9-1.4 33.9l-.8 .8 74.4 74.4c10 10 16.5 22.3 19.4 35.1l74.8 0zM64 336a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm528 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32z"], - "gem": [512, 512, [128142], "f3a5", "M168.5 72L256 165l87.5-93-175 0zM383.9 99.1L311.5 176l129 0L383.9 99.1zm50 124.9L256 224 78.1 224 256 420.3 433.9 224zM71.5 176l129 0L128.1 99.1 71.5 176zm434.3 40.1l-232 256c-4.5 5-11 7.9-17.8 7.9s-13.2-2.9-17.8-7.9l-232-256c-7.7-8.5-8.3-21.2-1.5-30.4l112-152c4.5-6.1 11.7-9.8 19.3-9.8l240 0c7.6 0 14.8 3.6 19.3 9.8l112 152c6.8 9.2 6.1 21.9-1.5 30.4z"], - "circle-play": [512, 512, [61469, "play-circle"], "f144", "M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c7.6-4.2 16.8-4.1 24.3 .5l144 88c7.1 4.4 11.5 12.1 11.5 20.5s-4.4 16.1-11.5 20.5l-144 88c-7.4 4.5-16.7 4.7-24.3 .5s-12.3-12.2-12.3-20.9l0-176c0-8.7 4.7-16.7 12.3-20.9z"], - "circle-check": [512, 512, [61533, "check-circle"], "f058", "M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM369 209c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-111 111-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L369 209z"], - "circle-stop": [512, 512, [62094, "stop-circle"], "f28d", "M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm192-96l128 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32z"], - "id-badge": [384, 512, [], "f2c1", "M256 48l0 16c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-16L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-384c0-8.8-7.2-16-16-16l-64 0zM0 64C0 28.7 28.7 0 64 0L320 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM160 320l64 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16L96 416c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-32-96a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z"], - "face-laugh-beam": [512, 512, [128513, "laugh-beam"], "f59a", "M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm130.7 57.9c-4.2-13.6 7.1-25.9 21.3-25.9l212.5 0c14.2 0 25.5 12.4 21.3 25.9C369 368.4 318.2 408 258.2 408s-110.8-39.6-127.5-94.1zm86.9-85.1s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z"], - "registered": [512, 512, [174], "f25d", "M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM160 152l0 112 0 96c0 13.3 10.7 24 24 24s24-10.7 24-24l0-72 60.9 0 37.2 81.9c5.5 12.1 19.7 17.4 31.8 11.9s17.4-19.7 11.9-31.8L315.7 275c21.8-14.3 36.3-39 36.3-67c0-44.2-35.8-80-80-80l-88 0c-13.3 0-24 10.7-24 24zm48 88l0-64 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0z"], - "address-card": [576, 512, [62140, "contact-card", "vcard"], "f2bb", "M512 80c8.8 0 16 7.2 16 16l0 320c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l448 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM208 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm-32 32c-44.2 0-80 35.8-80 80c0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16c0-44.2-35.8-80-80-80l-64 0zM376 144c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0z"], - "face-tired": [512, 512, [128555, "tired"], "f5c8", "M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm176.5 64.3C196.1 302.1 223.8 288 256 288s59.9 14.1 79.5 32.3C354.5 338.1 368 362 368 384c0 5.4-2.7 10.4-7.2 13.4s-10.2 3.4-15.2 1.3l-17.2-7.5c-22.8-10-47.5-15.1-72.4-15.1s-49.6 5.2-72.4 15.1l-17.2 7.5c-4.9 2.2-10.7 1.7-15.2-1.3s-7.2-8-7.2-13.4c0-22 13.5-45.9 32.5-63.7zm-43-173.6l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z"], - "font-awesome": [512, 512, [62501, 62694, "font-awesome-flag", "font-awesome-logo-full"], "f2b4", "M91.7 96C106.3 86.8 116 70.5 116 52C116 23.3 92.7 0 64 0S12 23.3 12 52c0 16.7 7.8 31.5 20 41l0 3 0 48 0 256 0 48 0 64 48 0 0-64 389.6 0c14.6 0 26.4-11.8 26.4-26.4c0-3.7-.8-7.3-2.3-10.7L432 272l61.7-138.9c1.5-3.4 2.3-7 2.3-10.7c0-14.6-11.8-26.4-26.4-26.4L91.7 96zM80 400l0-256 356.4 0L388.1 252.5c-5.5 12.4-5.5 26.6 0 39L436.4 400 80 400z"], - "face-smile-wink": [512, 512, [128521, "smile-wink"], "f4da", "M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm177.6 62.1C192.8 334.5 218.8 352 256 352s63.2-17.5 78.4-33.9c9-9.7 24.2-10.4 33.9-1.4s10.4 24.2 1.4 33.9c-22 23.8-60 49.4-113.6 49.4s-91.7-25.5-113.6-49.4c-9-9.7-8.4-24.9 1.4-33.9s24.9-8.4 33.9 1.4zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm165.8 21.7c-7.6 8.1-20.2 8.5-28.3 .9s-8.5-20.2-.9-28.3c14.5-15.5 35.2-22.3 54.6-22.3s40.1 6.8 54.6 22.3c7.6 8.1 7.1 20.7-.9 28.3s-20.7 7.1-28.3-.9c-5.5-5.8-14.8-9.7-25.4-9.7s-19.9 3.8-25.4 9.7z"], - "file-word": [384, 512, [], "f1c2", "M48 448L48 64c0-8.8 7.2-16 16-16l160 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm55 241.1c-3.8-12.7-17.2-19.9-29.9-16.1s-19.9 17.2-16.1 29.9l48 160c3 10.2 12.4 17.1 23 17.1s19.9-7 23-17.1l25-83.4 25 83.4c3 10.2 12.4 17.1 23 17.1s19.9-7 23-17.1l48-160c3.8-12.7-3.4-26.1-16.1-29.9s-26.1 3.4-29.9 16.1l-25 83.4-25-83.4c-3-10.2-12.4-17.1-23-17.1s-19.9 7-23 17.1l-25 83.4-25-83.4z"], - "file-powerpoint": [384, 512, [], "f1c4", "M64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16l160 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm72 208c-13.3 0-24 10.7-24 24l0 104 0 56c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32 44 0c42 0 76-34 76-76s-34-76-76-76l-68 0zm68 104l-44 0 0-56 44 0c15.5 0 28 12.5 28 28s-12.5 28-28 28z"], - "envelope-open": [512, 512, [62135], "f2b6", "M255.4 48.2c.2-.1 .4-.2 .6-.2s.4 .1 .6 .2L460.6 194c2.1 1.5 3.4 3.9 3.4 6.5l0 13.6L291.5 355.7c-20.7 17-50.4 17-71.1 0L48 214.1l0-13.6c0-2.6 1.2-5 3.4-6.5L255.4 48.2zM48 276.2L190 392.8c38.4 31.5 93.7 31.5 132 0L464 276.2 464 456c0 4.4-3.6 8-8 8L56 464c-4.4 0-8-3.6-8-8l0-179.8zM256 0c-10.2 0-20.2 3.2-28.5 9.1L23.5 154.9C8.7 165.4 0 182.4 0 200.5L0 456c0 30.9 25.1 56 56 56l400 0c30.9 0 56-25.1 56-56l0-255.5c0-18.1-8.7-35.1-23.4-45.6L284.5 9.1C276.2 3.2 266.2 0 256 0z"], - "file-zipper": [384, 512, ["file-archive"], "f1c6", "M64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16l48 0c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l48 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm48 112c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm-6.3 71.8L82.1 335.9c-1.4 5.4-2.1 10.9-2.1 16.4c0 35.2 28.8 63.7 64 63.7s64-28.5 64-63.7c0-5.5-.7-11.1-2.1-16.4l-23.5-88.2c-3.7-14-16.4-23.8-30.9-23.8l-14.8 0c-14.5 0-27.2 9.7-30.9 23.8zM128 336l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"], - "square": [448, 512, [9632, 9723, 9724, 61590], "f0c8", "M384 80c8.8 0 16 7.2 16 16l0 320c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l320 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z"], - "snowflake": [448, 512, [10052, 10054], "f2dc", "M224 0c13.3 0 24 10.7 24 24l0 46.1 23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-57 57 0 76.5 66.2-38.2 20.9-77.8c3.4-12.8 16.6-20.4 29.4-17s20.4 16.6 17 29.4L373 142.2l37.1-21.4c11.5-6.6 26.2-2.7 32.8 8.8s2.7 26.2-8.8 32.8L397 183.8l31.5 8.4c12.8 3.4 20.4 16.6 17 29.4s-16.6 20.4-29.4 17l-77.8-20.9L272 256l66.2 38.2 77.8-20.9c12.8-3.4 26 4.2 29.4 17s-4.2 26-17 29.4L397 328.2l37.1 21.4c11.5 6.6 15.4 21.3 8.8 32.8s-21.3 15.4-32.8 8.8L373 369.8l8.4 31.5c3.4 12.8-4.2 26-17 29.4s-26-4.2-29.4-17l-20.9-77.8L248 297.6l0 76.5 57 57c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-23-23 0 46.1c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-46.1-23 23c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l57-57 0-76.5-66.2 38.2-20.9 77.8c-3.4 12.8-16.6 20.4-29.4 17s-20.4-16.6-17-29.4L75 369.8 37.9 391.2c-11.5 6.6-26.2 2.7-32.8-8.8s-2.7-26.2 8.8-32.8L51 328.2l-31.5-8.4c-12.8-3.4-20.4-16.6-17-29.4s16.6-20.4 29.4-17l77.8 20.9L176 256l-66.2-38.2L31.9 238.6c-12.8 3.4-26-4.2-29.4-17s4.2-26 17-29.4L51 183.8 13.9 162.4c-11.5-6.6-15.4-21.3-8.8-32.8s21.3-15.4 32.8-8.8L75 142.2l-8.4-31.5c-3.4-12.8 4.2-26 17-29.4s26 4.2 29.4 17l20.9 77.8L200 214.4l0-76.5L143 81c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l23 23L200 24c0-13.3 10.7-24 24-24z"], - "newspaper": [512, 512, [128240], "f1ea", "M168 80c-13.3 0-24 10.7-24 24l0 304c0 8.4-1.4 16.5-4.1 24L440 432c13.3 0 24-10.7 24-24l0-304c0-13.3-10.7-24-24-24L168 80zM72 480c-39.8 0-72-32.2-72-72L0 112C0 98.7 10.7 88 24 88s24 10.7 24 24l0 296c0 13.3 10.7 24 24 24s24-10.7 24-24l0-304c0-39.8 32.2-72 72-72l272 0c39.8 0 72 32.2 72 72l0 304c0 39.8-32.2 72-72 72L72 480zM176 136c0-13.3 10.7-24 24-24l96 0c13.3 0 24 10.7 24 24l0 80c0 13.3-10.7 24-24 24l-96 0c-13.3 0-24-10.7-24-24l0-80zm200-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 80l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM200 272l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 80l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"], - "face-kiss-wink-heart": [512, 512, [128536, "kiss-wink-heart"], "f598", "M338.9 446.8c-25.4 11-53.4 17.2-82.9 17.2C141.1 464 48 370.9 48 256S141.1 48 256 48s208 93.1 208 208c0 22.4-3.5 43.9-10.1 64.1c3.1 4.5 5.7 9.4 7.8 14.6c12.7-1.6 25.1 .4 36.2 5c9.1-26.2 14-54.4 14-83.7C512 114.6 397.4 0 256 0S0 114.6 0 256S114.6 512 256 512c35.4 0 69.1-7.2 99.7-20.2c-4.8-5.5-8.5-12.2-10.4-19.7l-6.5-25.3zM296 316c0-6.9-3.1-13.2-7.3-18.3c-4.3-5.2-10.1-9.7-16.7-13.4C258.7 276.9 241.4 272 224 272c-3.6 0-6.8 2.5-7.7 6s.6 7.2 3.8 9c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2 .1c.2 .1 .5 .3 .9 .5c.8 .5 2 1.2 3.4 2.1c2.8 1.9 6.5 4.5 10.2 7.6c3.7 3.1 7.2 6.6 9.6 10.1c2.5 3.5 3.5 6.4 3.5 8.6s-1 5-3.5 8.6c-2.5 3.5-5.9 6.9-9.6 10.1c-3.7 3.1-7.4 5.7-10.2 7.6c-1.4 .9-2.6 1.6-3.4 2.1c-.4 .2-.7 .4-.9 .5l-.2 .1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0c-2.5 1.4-4.1 4.1-4.1 7s1.6 5.6 4.1 7c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2 .1c.2 .1 .5 .3 .9 .5c.8 .5 2 1.2 3.4 2.1c2.8 1.9 6.5 4.5 10.2 7.6c3.7 3.1 7.2 6.6 9.6 10.1c2.5 3.5 3.5 6.4 3.5 8.6s-1 5-3.5 8.6c-2.5 3.5-5.9 6.9-9.6 10.1c-3.7 3.1-7.4 5.7-10.2 7.6c-1.4 .9-2.6 1.6-3.4 2.1c-.4 .2-.7 .4-.9 .5l-.2 .1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0c-3.2 1.8-4.7 5.5-3.8 9s4.1 6 7.7 6c17.4 0 34.7-4.9 47.9-12.3c6.6-3.7 12.5-8.2 16.7-13.4c4.3-5.1 7.3-11.4 7.3-18.3s-3.1-13.2-7.3-18.3c-4.3-5.2-10.1-9.7-16.7-13.4c-2.7-1.5-5.7-3-8.7-4.3c3.1-1.3 6-2.7 8.7-4.3c6.6-3.7 12.5-8.2 16.7-13.4c4.3-5.1 7.3-11.4 7.3-18.3zM176.4 240a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm159.3-20c10.6 0 19.9 3.8 25.4 9.7c7.6 8.1 20.2 8.5 28.3 .9s8.5-20.2 .9-28.3C375.7 186.8 355 180 335.6 180s-40.1 6.8-54.6 22.3c-7.6 8.1-7.1 20.7 .9 28.3s20.7 7.1 28.3-.9c5.5-5.8 14.8-9.7 25.4-9.7zM434 352.3c-6-23.2-28.8-37-51.1-30.8s-35.4 30.1-29.5 53.4l22.9 89.3c2.2 8.7 11.2 13.9 19.8 11.4l84.9-23.8c22.2-6.2 35.4-30.1 29.5-53.4s-28.8-37-51.1-30.8l-20.2 5.6-5.4-21z"], - "star-half-stroke": [576, 512, ["star-half-alt"], "f5c0", "M309.5 13.5C305.5 5.2 297.1 0 287.9 0s-17.6 5.2-21.6 13.5L197.7 154.8 44.5 177.5c-9 1.3-16.5 7.6-19.3 16.3s-.5 18.1 5.9 24.5L142.2 328.4 116 483.9c-1.5 9 2.2 18.1 9.7 23.5s17.3 6 25.3 1.7l137-73.2 137 73.2c8.1 4.3 17.9 3.7 25.3-1.7s11.2-14.5 9.7-23.5L433.6 328.4 544.8 218.2c6.5-6.4 8.7-15.9 5.9-24.5s-10.3-14.9-19.3-16.3L378.1 154.8 309.5 13.5zM288 384.7l0-305.6 52.5 108.1c3.5 7.1 10.2 12.1 18.1 13.3l118.3 17.5L391 303c-5.5 5.5-8.1 13.3-6.8 21l20.2 119.6L299.2 387.5c-3.5-1.9-7.4-2.8-11.2-2.8z"], - "file-excel": [384, 512, [], "f1c3", "M48 448L48 64c0-8.8 7.2-16 16-16l160 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm90.9 233.3c-8.1-10.5-23.2-12.3-33.7-4.2s-12.3 23.2-4.2 33.7L161.6 320l-44.5 57.3c-8.1 10.5-6.3 25.5 4.2 33.7s25.5 6.3 33.7-4.2L192 359.1l37.1 47.6c8.1 10.5 23.2 12.3 33.7 4.2s12.3-23.2 4.2-33.7L222.4 320l44.5-57.3c8.1-10.5 6.3-25.5-4.2-33.7s-25.5-6.3-33.7 4.2L192 280.9l-37.1-47.6z"], - "face-grin-beam": [512, 512, [128516, "grin-beam"], "f582", "M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM217.6 228.8s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z"], - "object-ungroup": [640, 512, [], "f248", "M48.2 66.8c-.1-.8-.2-1.7-.2-2.5l0-.2c0-8.8 7.2-16 16-16c.9 0 1.9 .1 2.8 .2C74.3 49.5 80 56.1 80 64c0 8.8-7.2 16-16 16c-7.9 0-14.5-5.7-15.8-13.2zM0 64c0 26.9 16.5 49.9 40 59.3l0 105.3C16.5 238.1 0 261.1 0 288c0 35.3 28.7 64 64 64c26.9 0 49.9-16.5 59.3-40l201.3 0c9.5 23.5 32.5 40 59.3 40c35.3 0 64-28.7 64-64c0-26.9-16.5-49.9-40-59.3l0-105.3c23.5-9.5 40-32.5 40-59.3c0-35.3-28.7-64-64-64c-26.9 0-49.9 16.5-59.3 40L123.3 40C113.9 16.5 90.9 0 64 0C28.7 0 0 28.7 0 64zm368 0a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM324.7 88c6.5 16 19.3 28.9 35.3 35.3l0 105.3c-16 6.5-28.9 19.3-35.3 35.3l-201.3 0c-6.5-16-19.3-28.9-35.3-35.3l0-105.3c16-6.5 28.9-19.3 35.3-35.3l201.3 0zM384 272a16 16 0 1 1 0 32 16 16 0 1 1 0-32zM80 288c0 7.9-5.7 14.5-13.2 15.8c-.8 .1-1.7 .2-2.5 .2l-.2 0c-8.8 0-16-7.2-16-16c0-.9 .1-1.9 .2-2.8C49.5 277.7 56.1 272 64 272c8.8 0 16 7.2 16 16zm391.3-40l45.4 0c6.5 16 19.3 28.9 35.3 35.3l0 105.3c-16 6.5-28.9 19.3-35.3 35.3l-201.3 0c-6.5-16-19.3-28.9-35.3-35.3l0-36.7-48 0 0 36.7c-23.5 9.5-40 32.5-40 59.3c0 35.3 28.7 64 64 64c26.9 0 49.9-16.5 59.3-40l201.3 0c9.5 23.5 32.5 40 59.3 40c35.3 0 64-28.7 64-64c0-26.9-16.5-49.9-40-59.3l0-105.3c23.5-9.5 40-32.5 40-59.3c0-35.3-28.7-64-64-64c-26.9 0-49.9 16.5-59.3 40L448 200l0 16.4c9.8 8.8 17.8 19.5 23.3 31.6zm88.9-26.7a16 16 0 1 1 31.5 5.5 16 16 0 1 1 -31.5-5.5zM271.8 450.7a16 16 0 1 1 -31.5-5.5 16 16 0 1 1 31.5 5.5zm307-18.5a16 16 0 1 1 -5.5 31.5 16 16 0 1 1 5.5-31.5z"], - "circle-right": [512, 512, [61838, "arrow-alt-circle-right"], "f35a", "M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM294.6 151.2c-4.2-4.6-10.1-7.2-16.4-7.2C266 144 256 154 256 166.3l0 41.7-96 0c-17.7 0-32 14.3-32 32l0 32c0 17.7 14.3 32 32 32l96 0 0 41.7c0 12.3 10 22.3 22.3 22.3c6.2 0 12.1-2.6 16.4-7.2l84-91c3.5-3.8 5.4-8.7 5.4-13.9s-1.9-10.1-5.4-13.9l-84-91z"], - "face-rolling-eyes": [512, 512, [128580, "meh-rolling-eyes"], "f5a5", "M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM168 376c0 13.3 10.7 24 24 24l128 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-128 0c-13.3 0-24 10.7-24 24zm-8-104c-26.5 0-48-21.5-48-48c0-14.3 6.3-27.2 16.2-36c-.2 1.3-.2 2.6-.2 4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-1.4-.1-2.7-.2-4c10 8.8 16.2 21.7 16.2 36c0 26.5-21.5 48-48 48zm0 32a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm192-32c-26.5 0-48-21.5-48-48c0-14.3 6.3-27.2 16.2-36c-.2 1.3-.2 2.6-.2 4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-1.4-.1-2.7-.2-4c10 8.8 16.2 21.7 16.2 36c0 26.5-21.5 48-48 48zm0 32a80 80 0 1 0 0-160 80 80 0 1 0 0 160z"], - "object-group": [576, 512, [], "f247", "M48 115.8C38.2 107 32 94.2 32 80c0-26.5 21.5-48 48-48c14.2 0 27 6.2 35.8 16l344.4 0c8.8-9.8 21.6-16 35.8-16c26.5 0 48 21.5 48 48c0 14.2-6.2 27-16 35.8l0 280.4c9.8 8.8 16 21.6 16 35.8c0 26.5-21.5 48-48 48c-14.2 0-27-6.2-35.8-16l-344.4 0c-8.8 9.8-21.6 16-35.8 16c-26.5 0-48-21.5-48-48c0-14.2 6.2-27 16-35.8l0-280.4zM125.3 96c-4.8 13.6-15.6 24.4-29.3 29.3l0 261.5c13.6 4.8 24.4 15.6 29.3 29.3l325.5 0c4.8-13.6 15.6-24.4 29.3-29.3l0-261.5c-13.6-4.8-24.4-15.6-29.3-29.3L125.3 96zm2.7 64c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-96zM256 320l32 0c35.3 0 64-28.7 64-64l0-32 64 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-32z"], - "heart": [512, 512, [128153, 128154, 128155, 128156, 128420, 129293, 129294, 129505, 9829, 10084, 61578], "f004", "M225.8 468.2l-2.5-2.3L48.1 303.2C17.4 274.7 0 234.7 0 192.8l0-3.3c0-70.4 50-130.8 119.2-144C158.6 37.9 198.9 47 231 69.6c9 6.4 17.4 13.8 25 22.3c4.2-4.8 8.7-9.2 13.5-13.3c3.7-3.2 7.5-6.2 11.5-9c0 0 0 0 0 0C313.1 47 353.4 37.9 392.8 45.4C462 58.6 512 119.1 512 189.5l0 3.3c0 41.9-17.4 81.9-48.1 110.4L288.7 465.9l-2.5 2.3c-8.2 7.6-19 11.9-30.2 11.9s-22-4.2-30.2-11.9zM239.1 145c-.4-.3-.7-.7-1-1.1l-17.8-20-.1-.1s0 0 0 0c-23.1-25.9-58-37.7-92-31.2C81.6 101.5 48 142.1 48 189.5l0 3.3c0 28.5 11.9 55.8 32.8 75.2L256 430.7 431.2 268c20.9-19.4 32.8-46.7 32.8-75.2l0-3.3c0-47.3-33.6-88-80.1-96.9c-34-6.5-69 5.4-92 31.2c0 0 0 0-.1 .1s0 0-.1 .1l-17.8 20c-.3 .4-.7 .7-1 1.1c-4.5 4.5-10.6 7-16.9 7s-12.4-2.5-16.9-7z"], - "face-surprise": [512, 512, [128558, "surprise"], "f5c2", "M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm176.4-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM256 288a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"], - "circle-pause": [512, 512, [62092, "pause-circle"], "f28b", "M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm224-72l0 144c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-144c0-13.3 10.7-24 24-24s24 10.7 24 24zm112 0l0 144c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-144c0-13.3 10.7-24 24-24s24 10.7 24 24z"], - "circle": [512, 512, [128308, 128309, 128992, 128993, 128994, 128995, 128996, 9679, 9898, 9899, 11044, 61708, 61915], "f111", "M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z"], - "circle-up": [512, 512, [61467, "arrow-alt-circle-up"], "f35b", "M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM151.2 217.4c-4.6 4.2-7.2 10.1-7.2 16.4c0 12.3 10 22.3 22.3 22.3l41.7 0 0 96c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-96 41.7 0c12.3 0 22.3-10 22.3-22.3c0-6.2-2.6-12.1-7.2-16.4l-91-84c-3.8-3.5-8.7-5.4-13.9-5.4s-10.1 1.9-13.9 5.4l-91 84z"], - "file-audio": [384, 512, [], "f1c7", "M64 464l256 0c8.8 0 16-7.2 16-16l0-288-80 0c-17.7 0-32-14.3-32-32l0-80L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16zM0 64C0 28.7 28.7 0 64 0L229.5 0c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM192 272l0 128c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5L129.4 376 112 376c-8.8 0-16-7.2-16-16l0-48c0-8.8 7.2-16 16-16l17.4 0 35.3-35.3c4.6-4.6 11.5-5.9 17.4-3.5s9.9 8.3 9.9 14.8zm85.8-4c11.6 20 18.2 43.3 18.2 68s-6.6 48-18.2 68c-6.6 11.5-21.3 15.4-32.8 8.8s-15.4-21.3-8.8-32.8c7.5-12.9 11.8-27.9 11.8-44s-4.3-31.1-11.8-44c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8z"], - "file-image": [384, 512, [128443], "f1c5", "M64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16l160 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm96 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm69.2 46.9c-3-4.3-7.9-6.9-13.2-6.9s-10.2 2.6-13.2 6.9l-41.3 59.7-11.9-19.1c-2.9-4.7-8.1-7.5-13.6-7.5s-10.6 2.8-13.6 7.5l-40 64c-3.1 4.9-3.2 11.1-.4 16.2s8.2 8.2 14 8.2l48 0 32 0 40 0 72 0c6 0 11.4-3.3 14.2-8.6s2.4-11.6-1-16.5l-72-104z"], - "circle-question": [512, 512, [62108, "question-circle"], "f059", "M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm169.8-90.7c7.9-22.3 29.1-37.3 52.8-37.3l58.3 0c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L280 264.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24l0-13.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1l-58.3 0c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"], - "face-meh-blank": [512, 512, [128566, "meh-blank"], "f5a4", "M256 48a208 208 0 1 0 0 416 208 208 0 1 0 0-416zM512 256A256 256 0 1 1 0 256a256 256 0 1 1 512 0zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"], - "eye": [576, 512, [128065], "f06e", "M288 80c-65.2 0-118.8 29.6-159.9 67.7C89.6 183.5 63 226 49.4 256c13.6 30 40.2 72.5 78.6 108.3C169.2 402.4 222.8 432 288 432s118.8-29.6 159.9-67.7C486.4 328.5 513 286 526.6 256c-13.6-30-40.2-72.5-78.6-108.3C406.8 109.6 353.2 80 288 80zM95.4 112.6C142.5 68.8 207.2 32 288 32s145.5 36.8 192.6 80.6c46.8 43.5 78.1 95.4 93 131.1c3.3 7.9 3.3 16.7 0 24.6c-14.9 35.7-46.2 87.7-93 131.1C433.5 443.2 368.8 480 288 480s-145.5-36.8-192.6-80.6C48.6 356 17.3 304 2.5 268.3c-3.3-7.9-3.3-16.7 0-24.6C17.3 208 48.6 156 95.4 112.6zM288 336c44.2 0 80-35.8 80-80s-35.8-80-80-80c-.7 0-1.3 0-2 0c1.3 5.1 2 10.5 2 16c0 35.3-28.7 64-64 64c-5.5 0-10.9-.7-16-2c0 .7 0 1.3 0 2c0 44.2 35.8 80 80 80zm0-208a128 128 0 1 1 0 256 128 128 0 1 1 0-256z"], - "face-sad-cry": [512, 512, [128557, "sad-cry"], "f5b3", "M400 406.1L400 288c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 152.6c-28.7 15-61.4 23.4-96 23.4s-67.3-8.5-96-23.4L160 288c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 118.1C72.6 368.2 48 315 48 256C48 141.1 141.1 48 256 48s208 93.1 208 208c0 59-24.6 112.2-64 150.1zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM159.6 220c10.6 0 19.9 3.8 25.4 9.7c7.6 8.1 20.2 8.5 28.3 .9s8.5-20.2 .9-28.3C199.7 186.8 179 180 159.6 180s-40.1 6.8-54.6 22.3c-7.6 8.1-7.1 20.7 .9 28.3s20.7 7.1 28.3-.9c5.5-5.8 14.8-9.7 25.4-9.7zm166.6 9.7c5.5-5.8 14.8-9.7 25.4-9.7s19.9 3.8 25.4 9.7c7.6 8.1 20.2 8.5 28.3 .9s8.5-20.2 .9-28.3C391.7 186.8 371 180 351.6 180s-40.1 6.8-54.6 22.3c-7.6 8.1-7.1 20.7 .9 28.3s20.7 7.1 28.3-.9zM208 320l0 32c0 26.5 21.5 48 48 48s48-21.5 48-48l0-32c0-26.5-21.5-48-48-48s-48 21.5-48 48z"], - "file-code": [384, 512, [], "f1c9", "M64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16l160 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm97 289c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L79 303c-9.4 9.4-9.4 24.6 0 33.9l48 48c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-31-31 31-31zM257 255c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l48-48c9.4-9.4 9.4-24.6 0-33.9l-48-48z"], - "window-maximize": [512, 512, [128470], "f2d0", "M.3 89.5C.1 91.6 0 93.8 0 96L0 224 0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-192 0-128c0-35.3-28.7-64-64-64L64 32c-2.2 0-4.4 .1-6.5 .3c-9.2 .9-17.8 3.8-25.5 8.2C21.8 46.5 13.4 55.1 7.7 65.5c-3.9 7.3-6.5 15.4-7.4 24zM48 224l416 0 0 192c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16l0-192z"], - "face-frown": [512, 512, [9785, "frown"], "f119", "M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM174.6 384.1c-4.5 12.5-18.2 18.9-30.7 14.4s-18.9-18.2-14.4-30.7C146.9 319.4 198.9 288 256 288s109.1 31.4 126.6 79.9c4.5 12.5-2 26.2-14.4 30.7s-26.2-2-30.7-14.4C328.2 358.5 297.2 336 256 336s-72.2 22.5-81.4 48.1zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"], - "floppy-disk": [448, 512, [128190, 128426, "save"], "f0c7", "M48 96l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-245.5c0-4.2-1.7-8.3-4.7-11.3l33.9-33.9c12 12 18.7 28.3 18.7 45.3L448 416c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l245.5 0c17 0 33.3 6.7 45.3 18.7l74.5 74.5-33.9 33.9L320.8 84.7c-.3-.3-.5-.5-.8-.8L320 184c0 13.3-10.7 24-24 24l-192 0c-13.3 0-24-10.7-24-24L80 80 64 80c-8.8 0-16 7.2-16 16zm80-16l0 80 144 0 0-80L128 80zm32 240a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z"], - "comment-dots": [512, 512, [128172, 62075, "commenting"], "f4ad", "M168.2 384.9c-15-5.4-31.7-3.1-44.6 6.4c-8.2 6-22.3 14.8-39.4 22.7c5.6-14.7 9.9-31.3 11.3-49.4c1-12.9-3.3-25.7-11.8-35.5C60.4 302.8 48 272 48 240c0-79.5 83.3-160 208-160s208 80.5 208 160s-83.3 160-208 160c-31.6 0-61.3-5.5-87.8-15.1zM26.3 423.8c-1.6 2.7-3.3 5.4-5.1 8.1l-.3 .5c-1.6 2.3-3.2 4.6-4.8 6.9c-3.5 4.7-7.3 9.3-11.3 13.5c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c5.1 0 10.2-.3 15.3-.8l.7-.1c4.4-.5 8.8-1.1 13.2-1.9c.8-.1 1.6-.3 2.4-.5c17.8-3.5 34.9-9.5 50.1-16.1c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9zM144 272a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm144-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm80 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"], - "face-grin-squint": [512, 512, [128518, "grin-squint"], "f585", "M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zm-216-161.7l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z"], - "hand-pointer": [448, 512, [], "f25a", "M160 64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 136c0 10.3 6.6 19.5 16.4 22.8s20.6-.1 26.8-8.3c3-3.9 7.6-6.4 12.8-6.4c8.8 0 16 7.2 16 16c0 10.3 6.6 19.5 16.4 22.8s20.6-.1 26.8-8.3c3-3.9 7.6-6.4 12.8-6.4c7.8 0 14.3 5.6 15.7 13c1.6 8.2 7.3 15.1 15.1 18s16.7 1.6 23.3-3.6c2.7-2.1 6.1-3.4 9.9-3.4c8.8 0 16 7.2 16 16l0 16 0 104c0 39.8-32.2 72-72 72l-56 0-59.8 0-.9 0c-37.4 0-72.4-18.7-93.2-49.9L50.7 312.9c-4.9-7.4-2.9-17.3 4.4-22.2s17.3-2.9 22.2 4.4L116 353.2c5.9 8.8 16.8 12.7 26.9 9.7s17-12.4 17-23l0-19.9 0-256zM176 0c-35.3 0-64 28.7-64 64l0 197.7C91.2 238 55.5 232.8 28.5 250.7C-.9 270.4-8.9 310.1 10.8 339.5L78.3 440.8c29.7 44.5 79.6 71.2 133.1 71.2l.9 0 59.8 0 56 0c66.3 0 120-53.7 120-120l0-104 0-16c0-35.3-28.7-64-64-64c-4.5 0-8.8 .5-13 1.3c-11.7-15.4-30.2-25.3-51-25.3c-6.9 0-13.5 1.1-19.7 3.1C288.7 170.7 269.6 160 248 160c-2.7 0-5.4 .2-8 .5L240 64c0-35.3-28.7-64-64-64zm48 304c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96zm48-16c-8.8 0-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96c0-8.8-7.2-16-16-16zm80 16c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96z"], - "hand-scissors": [512, 512, [], "f257", "M.2 276.3c-1.2-35.3 26.4-65 61.7-66.2l3.3-.1L57 208.1C22.5 200.5 .7 166.3 8.3 131.8S50.2 75.5 84.7 83.2l173 38.3c2.3-2.9 4.7-5.7 7.1-8.5l18.4-20.3C299.9 74.5 323.5 64 348.3 64l10.2 0c54.1 0 104.1 28.7 131.3 75.4l1.5 2.6c13.6 23.2 20.7 49.7 20.7 76.6L512 344c0 66.3-53.7 120-120 120l-8 0-96 0c-35.3 0-64-28.7-64-64c0-2.8 .2-5.6 .5-8.3c-19.4-11-32.5-31.8-32.5-55.7c0-.8 0-1.6 0-2.4L66.4 338c-35.3 1.2-65-26.4-66.2-61.7zm63.4-18.2c-8.8 .3-15.7 7.7-15.4 16.5s7.7 15.7 16.5 15.4l161.5-5.6c9.8-.3 18.7 5.3 22.7 14.2s2.2 19.3-4.5 26.4c-2.8 2.9-4.4 6.7-4.4 11c0 8.8 7.2 16 16 16c9.1 0 17.4 5.1 21.5 13.3s3.2 17.9-2.3 25.1c-2 2.7-3.2 6-3.2 9.6c0 8.8 7.2 16 16 16l96 0 8 0c39.8 0 72-32.2 72-72l0-125.4c0-18.4-4.9-36.5-14.2-52.4l-1.5-2.6c-18.6-32-52.8-51.6-89.8-51.6l-10.2 0c-11.3 0-22 4.8-29.6 13.1l-17.5-15.9 17.5 15.9-18.4 20.3c-.6 .6-1.1 1.3-1.7 1.9l57 13.2c8.6 2 14 10.6 12 19.2s-10.6 14-19.2 12l-85.6-19.7L74.3 130c-8.6-1.9-17.2 3.5-19.1 12.2s3.5 17.2 12.2 19.1l187.5 41.6c10.2 2.3 17.8 10.9 18.7 21.4l.1 1c.6 6.6-1.5 13.1-5.8 18.1s-10.6 7.9-17.2 8.2L63.6 258.1z"], - "face-grin-tears": [640, 512, [128514, "grin-tears"], "f588", "M516.1 325.5c1 3 2.1 6 3.3 8.9c3.3 8.1 8.4 18.5 16.5 26.6c3.9 3.9 8.2 7.4 12.7 10.3C506.4 454.8 419.9 512 320 512s-186.4-57.2-228.6-140.6c4.5-2.9 8.7-6.3 12.7-10.3c8.1-8.1 13.2-18.6 16.5-26.6c1.2-2.9 2.3-5.9 3.3-8.9C152.5 406.2 229.5 464 320 464s167.5-57.8 196.1-138.5zM320 48c-101.4 0-185.8 72.5-204.3 168.5c-6.7-3.1-14.3-4.3-22.3-3.1c-6.8 .9-16.2 2.4-26.6 4.4C85.3 94.5 191.6 0 320 0S554.7 94.5 573.2 217.7c-10.3-2-19.8-3.5-26.6-4.4c-8-1.2-15.7 .1-22.3 3.1C505.8 120.5 421.4 48 320 48zM78.5 341.1C60 356.7 32 355.5 14.3 337.7c-18.7-18.7-19.1-48.8-.7-67.2c8.6-8.6 30.1-15.1 50.5-19.6c13-2.8 25.5-4.8 33.9-6c5.4-.8 9.9 3.7 9 9c-3.1 21.5-11.4 70.2-25.5 84.4c-.9 1-1.9 1.8-2.9 2.7zm483 0c-.8-.6-1.5-1.3-2.3-2c-.2-.2-.5-.4-.7-.7c-14.1-14.1-22.5-62.9-25.5-84.4c-.8-5.4 3.7-9.9 9-9c1 .1 2.2 .3 3.3 .5c8.2 1.2 19.2 3 30.6 5.5c20.4 4.4 41.9 10.9 50.5 19.6c18.4 18.4 18 48.5-.7 67.2c-17.7 17.7-45.7 19-64.2 3.4zM439 336.5C414.4 374.6 370.3 400 319.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5c18.7-4.4 35.9 12 25.5 28.1zM281.6 228.8c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0zm160 0s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0z"], - "calendar-xmark": [448, 512, ["calendar-times"], "f273", "M128 0c13.3 0 24 10.7 24 24l0 40 144 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 40 0c35.3 0 64 28.7 64 64l0 16 0 48 0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192l0-48 0-16C0 92.7 28.7 64 64 64l40 0 0-40c0-13.3 10.7-24 24-24zM400 192L48 192l0 256c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-256zm-95 89l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"], - "file-video": [384, 512, [], "f1c8", "M320 464c8.8 0 16-7.2 16-16l0-288-80 0c-17.7 0-32-14.3-32-32l0-80L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l256 0zM0 64C0 28.7 28.7 0 64 0L229.5 0c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM80 288c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32l0 16 44.9-29.9c2-1.3 4.4-2.1 6.8-2.1c6.8 0 12.3 5.5 12.3 12.3l0 103.4c0 6.8-5.5 12.3-12.3 12.3c-2.4 0-4.8-.7-6.8-2.1L240 368l0 16c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-96z"], - "file-pdf": [512, 512, [], "f1c1", "M64 464l48 0 0 48-48 0c-35.3 0-64-28.7-64-64L0 64C0 28.7 28.7 0 64 0L229.5 0c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3L384 304l-48 0 0-144-80 0c-17.7 0-32-14.3-32-32l0-80L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16zM176 352l32 0c30.9 0 56 25.1 56 56s-25.1 56-56 56l-16 0 0 32c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48 0-80c0-8.8 7.2-16 16-16zm32 80c13.3 0 24-10.7 24-24s-10.7-24-24-24l-16 0 0 48 16 0zm96-80l32 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16l0-128c0-8.8 7.2-16 16-16zm32 128c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-16 0 0 96 16 0zm80-112c0-8.8 7.2-16 16-16l48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0 0 32 32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0 0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-64 0-64z"], - "comment": [512, 512, [128489, 61669], "f075", "M123.6 391.3c12.9-9.4 29.6-11.8 44.6-6.4c26.5 9.6 56.2 15.1 87.8 15.1c124.7 0 208-80.5 208-160s-83.3-160-208-160S48 160.5 48 240c0 32 12.4 62.8 35.7 89.2c8.6 9.7 12.8 22.5 11.8 35.5c-1.4 18.1-5.7 34.7-11.3 49.4c17-7.9 31.1-16.7 39.4-22.7zM21.2 431.9c1.8-2.7 3.5-5.4 5.1-8.1c10-16.6 19.5-38.4 21.4-62.9C17.7 326.8 0 285.1 0 240C0 125.1 114.6 32 256 32s256 93.1 256 208s-114.6 208-256 208c-37.1 0-72.3-6.4-104.1-17.9c-11.9 8.7-31.3 20.6-54.3 30.6c-15.1 6.6-32.3 12.6-50.1 16.1c-.8 .2-1.6 .3-2.4 .5c-4.4 .8-8.7 1.5-13.2 1.9c-.2 0-.5 .1-.7 .1c-5.1 .5-10.2 .8-15.3 .8c-6.5 0-12.3-3.9-14.8-9.9c-2.5-6-1.1-12.8 3.4-17.4c4.1-4.2 7.8-8.7 11.3-13.5c1.7-2.3 3.3-4.6 4.8-6.9l.3-.5z"], - "envelope": [512, 512, [128386, 9993, 61443], "f0e0", "M64 112c-8.8 0-16 7.2-16 16l0 22.1L220.5 291.7c20.7 17 50.4 17 71.1 0L464 150.1l0-22.1c0-8.8-7.2-16-16-16L64 112zM48 212.2L48 384c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-171.8L322 328.8c-38.4 31.5-93.7 31.5-132 0L48 212.2zM0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128z"], - "hourglass": [384, 512, [9203, 62032, "hourglass-empty"], "f254", "M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48l8 0 0 19c0 40.3 16 79 44.5 107.5L158.1 256 76.5 337.5C48 366 32 404.7 32 445l0 19-8 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l336 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0-19c0-40.3-16-79-44.5-107.5L225.9 256l81.5-81.5C336 146 352 107.3 352 67l0-19 8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 0zM192 289.9l81.5 81.5C293 391 304 417.4 304 445l0 19L80 464l0-19c0-27.6 11-54 30.5-73.5L192 289.9zm0-67.9l-81.5-81.5C91 121 80 94.6 80 67l0-19 224 0 0 19c0 27.6-11 54-30.5 73.5L192 222.1z"], - "calendar-check": [448, 512, [], "f274", "M128 0c13.3 0 24 10.7 24 24l0 40 144 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 40 0c35.3 0 64 28.7 64 64l0 16 0 48 0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192l0-48 0-16C0 92.7 28.7 64 64 64l40 0 0-40c0-13.3 10.7-24 24-24zM400 192L48 192l0 256c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-256zM329 297L217 409c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47 95-95c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"], - "hard-drive": [512, 512, [128436, "hdd"], "f0a0", "M64 80c-8.8 0-16 7.2-16 16l0 162c5.1-1.3 10.5-2 16-2l384 0c5.5 0 10.9 .7 16 2l0-162c0-8.8-7.2-16-16-16L64 80zM48 320l0 96c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-96c0-8.8-7.2-16-16-16L64 304c-8.8 0-16 7.2-16 16zM0 320L0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 224 0 96c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-96zm280 48a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"], - "face-grin-squint-tears": [512, 512, [129315, "grin-squint-tears"], "f586", "M426.8 14.2C446-5 477.5-4.6 497.1 14.9s20 51 .7 70.3c-14.8 14.8-65.7 23.6-88.3 26.7c-5.6 .9-10.3-3.9-9.5-9.5C403.3 79.9 412 29 426.8 14.2zM75 75C158.2-8.3 284.5-22.2 382.2 33.2c-1.5 4.8-2.9 9.6-4.1 14.3c-3.1 12.2-5.5 24.6-7.3 35c-80.8-53.6-190.7-44.8-261.9 26.4C37.7 180.1 28.9 290 82.5 370.8c-10.5 1.8-22.9 4.2-35 7.3c-4.7 1.2-9.5 2.5-14.3 4.1C-22.2 284.5-8.2 158.2 75 75zm389.6 58.9c4.7-1.2 9.5-2.5 14.3-4.1C534.2 227.5 520.2 353.8 437 437c-83.2 83.2-209.5 97.2-307.2 41.8c1.5-4.8 2.8-9.6 4-14.3c3.1-12.2 5.5-24.6 7.3-35c80.8 53.6 190.7 44.8 261.9-26.4c71.2-71.2 80-181.1 26.4-261.9c10.5-1.8 22.9-4.2 35-7.3zm-105.4 93c10.1-16.3 33.9-16.9 37.9 1.9c9.5 44.4-3.7 93.5-39.3 129.1s-84.8 48.8-129.1 39.3c-18.7-4-18.2-27.8-1.9-37.9c25.2-15.7 50.2-35.4 73.6-58.8s43.1-48.4 58.8-73.6zM92 265.3l97.4-29.7c11.6-3.5 22.5 7.3 19 19l-29.7 97.4c-2.6 8.6-13.4 11.3-19.8 4.9c-2-2-3.2-4.6-3.4-7.3l-5.1-56.1-56.1-5.1c-2.8-.3-5.4-1.5-7.3-3.4c-6.3-6.3-3.6-17.2 4.9-19.8zm193-178.2c2 2 3.2 4.6 3.4 7.3l5.1 56.1 56.1 5.1c2.8 .3 5.4 1.5 7.3 3.4c6.3 6.3 3.6 17.2-4.9 19.8l-97.4 29.7c-11.6 3.5-22.5-7.3-19-19L265.3 92c2.6-8.6 13.4-11.3 19.8-4.9zM14.9 497.1c-19.6-19.6-20-51-.7-70.3C29 412 79.8 403.2 102.4 400.1c5.6-.9 10.3 3.9 9.5 9.5c-3.2 22.5-11.9 73.5-26.7 88.3C66 517 34.5 516.6 14.9 497.1z"], - "rectangle-list": [576, 512, ["list-alt"], "f022", "M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l448 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l448 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm96 64a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm104 0c0-13.3 10.7-24 24-24l224 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-224 0c-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24l224 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-224 0c-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24l224 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-224 0c-13.3 0-24-10.7-24-24zm-72-64a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM96 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"], - "calendar-plus": [448, 512, [], "f271", "M152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40L64 64C28.7 64 0 92.7 0 128l0 16 0 48L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-256 0-48 0-16c0-35.3-28.7-64-64-64l-40 0 0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40L152 64l0-40zM48 192l352 0 0 256c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16l0-256zm176 40c-13.3 0-24 10.7-24 24l0 48-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0 0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48 48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-48c0-13.3-10.7-24-24-24z"], - "circle-left": [512, 512, [61840, "arrow-alt-circle-left"], "f359", "M48 256a208 208 0 1 1 416 0A208 208 0 1 1 48 256zm464 0A256 256 0 1 0 0 256a256 256 0 1 0 512 0zM217.4 376.9c4.2 4.5 10.1 7.1 16.3 7.1c12.3 0 22.3-10 22.3-22.3l0-57.7 96 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32l-96 0 0-57.7c0-12.3-10-22.3-22.3-22.3c-6.2 0-12.1 2.6-16.3 7.1L117.5 242.2c-3.5 3.8-5.5 8.7-5.5 13.8s2 10.1 5.5 13.8l99.9 107.1z"], - "money-bill-1": [576, 512, ["money-bill-alt"], "f3d1", "M112 112c0 35.3-28.7 64-64 64l0 160c35.3 0 64 28.7 64 64l352 0c0-35.3 28.7-64 64-64l0-160c-35.3 0-64-28.7-64-64l-352 0zM0 128C0 92.7 28.7 64 64 64l448 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zM176 256a112 112 0 1 1 224 0 112 112 0 1 1 -224 0zm80-48c0 8.8 7.2 16 16 16l0 64-8 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l24 0 24 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-8 0 0-80c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16z"], - "clock": [512, 512, [128339, "clock-four"], "f017", "M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"], - "keyboard": [576, 512, [9000], "f11c", "M64 112c-8.8 0-16 7.2-16 16l0 256c0 8.8 7.2 16 16 16l448 0c8.8 0 16-7.2 16-16l0-256c0-8.8-7.2-16-16-16L64 112zM0 128C0 92.7 28.7 64 64 64l448 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zM176 320l224 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm-72-72c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16z"], - "closed-captioning": [576, 512, [], "f20a", "M512 80c8.8 0 16 7.2 16 16l0 320c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l448 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM200 208c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48s21.5-48 48-48zm144 48c0-26.5 21.5-48 48-48c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48z"], - "images": [576, 512, [], "f302", "M160 80l352 0c8.8 0 16 7.2 16 16l0 224c0 8.8-7.2 16-16 16l-21.2 0L388.1 178.9c-4.4-6.8-12-10.9-20.1-10.9s-15.7 4.1-20.1 10.9l-52.2 79.8-12.4-16.9c-4.5-6.2-11.7-9.8-19.4-9.8s-14.8 3.6-19.4 9.8L175.6 336 160 336c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16zM96 96l0 224c0 35.3 28.7 64 64 64l352 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L160 32c-35.3 0-64 28.7-64 64zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120L0 344c0 75.1 60.9 136 136 136l320 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-320 0c-48.6 0-88-39.4-88-88l0-224zm208 24a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"], - "face-grin": [512, 512, [128512, "grin"], "f580", "M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"], - "face-meh": [512, 512, [128528, "meh"], "f11a", "M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM176.4 240a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm192-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM184 328c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z"], - "id-card": [576, 512, [62147, "drivers-license"], "f2c2", "M528 160l0 256c0 8.8-7.2 16-16 16l-192 0c0-44.2-35.8-80-80-80l-64 0c-44.2 0-80 35.8-80 80l-32 0c-8.8 0-16-7.2-16-16l0-256 480 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM272 256a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zm104-48c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0z"], - "sun": [512, 512, [9728], "f185", "M375.7 19.7c-1.5-8-6.9-14.7-14.4-17.8s-16.1-2.2-22.8 2.4L256 61.1 173.5 4.2c-6.7-4.6-15.3-5.5-22.8-2.4s-12.9 9.8-14.4 17.8l-18.1 98.5L19.7 136.3c-8 1.5-14.7 6.9-17.8 14.4s-2.2 16.1 2.4 22.8L61.1 256 4.2 338.5c-4.6 6.7-5.5 15.3-2.4 22.8s9.8 13 17.8 14.4l98.5 18.1 18.1 98.5c1.5 8 6.9 14.7 14.4 17.8s16.1 2.2 22.8-2.4L256 450.9l82.5 56.9c6.7 4.6 15.3 5.5 22.8 2.4s12.9-9.8 14.4-17.8l18.1-98.5 98.5-18.1c8-1.5 14.7-6.9 17.8-14.4s2.2-16.1-2.4-22.8L450.9 256l56.9-82.5c4.6-6.7 5.5-15.3 2.4-22.8s-9.8-12.9-17.8-14.4l-98.5-18.1L375.7 19.7zM269.6 110l65.6-45.2 14.4 78.3c1.8 9.8 9.5 17.5 19.3 19.3l78.3 14.4L402 242.4c-5.7 8.2-5.7 19 0 27.2l45.2 65.6-78.3 14.4c-9.8 1.8-17.5 9.5-19.3 19.3l-14.4 78.3L269.6 402c-8.2-5.7-19-5.7-27.2 0l-65.6 45.2-14.4-78.3c-1.8-9.8-9.5-17.5-19.3-19.3L64.8 335.2 110 269.6c5.7-8.2 5.7-19 0-27.2L64.8 176.8l78.3-14.4c9.8-1.8 17.5-9.5 19.3-19.3l14.4-78.3L242.4 110c8.2 5.7 19 5.7 27.2 0zM256 368a112 112 0 1 0 0-224 112 112 0 1 0 0 224zM192 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z"], - "face-laugh-wink": [512, 512, ["laugh-wink"], "f59c", "M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm130.7 57.9c-4.2-13.6 7.1-25.9 21.3-25.9l212.5 0c14.2 0 25.5 12.4 21.3 25.9C369 368.4 318.2 408 258.2 408s-110.8-39.6-127.5-94.1zM144.4 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm165.8 21.7c-7.6 8.1-20.2 8.5-28.3 .9s-8.5-20.2-.9-28.3c14.5-15.5 35.2-22.3 54.6-22.3s40.1 6.8 54.6 22.3c7.6 8.1 7.1 20.7-.9 28.3s-20.7 7.1-28.3-.9c-5.5-5.8-14.8-9.7-25.4-9.7s-19.9 3.8-25.4 9.7z"], - "circle-down": [512, 512, [61466, "arrow-alt-circle-down"], "f358", "M256 464a208 208 0 1 1 0-416 208 208 0 1 1 0 416zM256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM376.9 294.6c4.5-4.2 7.1-10.1 7.1-16.3c0-12.3-10-22.3-22.3-22.3L304 256l0-96c0-17.7-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32l0 96-57.7 0C138 256 128 266 128 278.3c0 6.2 2.6 12.1 7.1 16.3l107.1 99.9c3.8 3.5 8.7 5.5 13.8 5.5s10.1-2 13.8-5.5l107.1-99.9z"], - "thumbs-down": [512, 512, [128078, 61576], "f165", "M323.8 477.2c-38.2 10.9-78.1-11.2-89-49.4l-5.7-20c-3.7-13-10.4-25-19.5-35l-51.3-56.4c-8.9-9.8-8.2-25 1.6-33.9s25-8.2 33.9 1.6l51.3 56.4c14.1 15.5 24.4 34 30.1 54.1l5.7 20c3.6 12.7 16.9 20.1 29.7 16.5s20.1-16.9 16.5-29.7l-5.7-20c-5.7-19.9-14.7-38.7-26.6-55.5c-5.2-7.3-5.8-16.9-1.7-24.9s12.3-13 21.3-13L448 288c8.8 0 16-7.2 16-16c0-6.8-4.3-12.7-10.4-15c-7.4-2.8-13-9-14.9-16.7s.1-15.8 5.3-21.7c2.5-2.8 4-6.5 4-10.6c0-7.8-5.6-14.3-13-15.7c-8.2-1.6-15.1-7.3-18-15.2s-1.6-16.7 3.6-23.3c2.1-2.7 3.4-6.1 3.4-9.9c0-6.7-4.2-12.6-10.2-14.9c-11.5-4.5-17.7-16.9-14.4-28.8c.4-1.3 .6-2.8 .6-4.3c0-8.8-7.2-16-16-16l-97.5 0c-12.6 0-25 3.7-35.5 10.7l-61.7 41.1c-11 7.4-25.9 4.4-33.3-6.7s-4.4-25.9 6.7-33.3l61.7-41.1c18.4-12.3 40-18.8 62.1-18.8L384 32c34.7 0 62.9 27.6 64 62c14.6 11.7 24 29.7 24 50c0 4.5-.5 8.8-1.3 13c15.4 11.7 25.3 30.2 25.3 51c0 6.5-1 12.8-2.8 18.7C504.8 238.3 512 254.3 512 272c0 35.3-28.6 64-64 64l-92.3 0c4.7 10.4 8.7 21.2 11.8 32.2l5.7 20c10.9 38.2-11.2 78.1-49.4 89zM32 384c-17.7 0-32-14.3-32-32L0 128c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 224c0 17.7-14.3 32-32 32l-64 0z"], - "chess-pawn": [320, 512, [9823], "f443", "M232 152A72 72 0 1 0 88 152a72 72 0 1 0 144 0zm24 120l-12.6 0 10.7 80-48.4 0L195 272l-35 0-35 0-10.7 80-48.4 0 10.7-80L64 272c-13.3 0-24-10.7-24-24s10.7-24 24-24c-15.1-20.1-24-45-24-72C40 85.7 93.7 32 160 32s120 53.7 120 120c0 27-8.9 51.9-24 72c13.3 0 24 10.7 24 24s-10.7 24-24 24zM52.7 464l214.7 0-16.6-32L69.2 432 52.7 464zm207.9-80c12 0 22.9 6.7 28.4 17.3l26.5 51.2c3 5.8 4.6 12.2 4.6 18.7c0 22.5-18.2 40.8-40.8 40.8L40.8 512C18.2 512 0 493.8 0 471.2c0-6.5 1.6-12.9 4.6-18.7l26.5-51.2C36.5 390.7 47.5 384 59.5 384l201 0z"], - "credit-card": [576, 512, [128179, 62083, "credit-card-alt"], "f09d", "M512 80c8.8 0 16 7.2 16 16l0 32L48 128l0-32c0-8.8 7.2-16 16-16l448 0zm16 144l0 192c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16l0-192 480 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm56 304c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0zm128 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0z"], - "bell": [448, 512, [128276, 61602], "f0f3", "M224 0c-17.7 0-32 14.3-32 32l0 19.2C119 66 64 130.6 64 208l0 25.4c0 45.4-15.5 89.5-43.8 124.9L5.3 377c-5.8 7.2-6.9 17.1-2.9 25.4S14.8 416 24 416l400 0c9.2 0 17.6-5.3 21.6-13.6s2.9-18.2-2.9-25.4l-14.9-18.6C399.5 322.9 384 278.8 384 233.4l0-25.4c0-77.4-55-142-128-156.8L256 32c0-17.7-14.3-32-32-32zm0 96c61.9 0 112 50.1 112 112l0 25.4c0 47.9 13.9 94.6 39.7 134.6L72.3 368C98.1 328 112 281.3 112 233.4l0-25.4c0-61.9 50.1-112 112-112zm64 352l-64 0-64 0c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7s18.7-28.3 18.7-45.3z"], - "file": [384, 512, [128196, 128459, 61462], "f15b", "M320 464c8.8 0 16-7.2 16-16l0-288-80 0c-17.7 0-32-14.3-32-32l0-80L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l256 0zM0 64C0 28.7 28.7 0 64 0L229.5 0c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64z"], - "hospital": [640, 512, [127973, 62589, "hospital-alt", "hospital-wide"], "f0f8", "M232 0c-39.8 0-72 32.2-72 72l0 8L72 80C32.2 80 0 112.2 0 152L0 440c0 39.8 32.2 72 72 72l.2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0s0 0 0 0l272 0 8 0s0 0 0 0l104 0c39.8 0 72-32.2 72-72l0-288c0-39.8-32.2-72-72-72l-88 0 0-8c0-39.8-32.2-72-72-72L232 0zM480 128l88 0c13.3 0 24 10.7 24 24l0 40-56 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0 0 48-56 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0 0 104c0 13.3-10.7 24-24 24l-88 0 0-128 0-208zM72 128l88 0 0 336c0 0 0 0-.1 0l-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0c-13.2 0-24-10.7-24-24l0-104 56 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-56 0 0-48 56 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-56 0 0-40c0-13.3 10.7-24 24-24zM208 72c0-13.3 10.7-24 24-24l176 0c13.3 0 24 10.7 24 24l0 264 0 128-64 0 0-64c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 64-64 0 0-392zm88 24l0 24-24 0c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l24 0 0 24c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-24 24 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-24 0 0-24c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16z"], - "chess-rook": [448, 512, [9820], "f447", "M80 80l0 112c0 2.5 1.2 4.9 3.2 6.4l51.2 38.4c6.8 5.1 10.4 13.4 9.5 21.9L133.5 352l-48.3 0 9.4-85L54.4 236.8C40.3 226.2 32 209.6 32 192L32 72c0-22.1 17.9-40 40-40l304 0c22.1 0 40 17.9 40 40l0 120c0 17.6-8.3 34.2-22.4 44.8L353.4 267l9.4 85-48.3 0-10.4-93.3c-.9-8.4 2.7-16.8 9.5-21.9l51.2-38.4c2-1.5 3.2-3.9 3.2-6.4l0-112-64 0 0 24c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-24-64 0 0 24c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-24L80 80zm4.7 384l278.7 0-16.6-32-245.6 0L84.7 464zm271.9-80c12 0 22.9 6.7 28.4 17.3l26.5 51.2c3 5.8 4.6 12.2 4.6 18.7c0 22.5-18.2 40.8-40.8 40.8L72.8 512C50.2 512 32 493.8 32 471.2c0-6.5 1.6-12.9 4.6-18.7l26.5-51.2C68.5 390.7 79.5 384 91.5 384l265 0zM208 288c-8.8 0-16-7.2-16-16l0-48c0-17.7 14.3-32 32-32s32 14.3 32 32l0 48c0 8.8-7.2 16-16 16l-32 0z"], - "star-half": [576, 512, [61731], "f089", "M293.3 .6c10.9 2.5 18.6 12.2 18.6 23.4l0 384.7c0 8.9-4.9 17-12.7 21.2L151 509.1c-8.1 4.3-17.9 3.7-25.3-1.7s-11.2-14.5-9.7-23.5l26.2-155.6L31.1 218.3c-6.5-6.4-8.7-15.9-5.9-24.5s10.3-14.9 19.3-16.3l153.2-22.6L266.3 13.5c4.9-10.1 16.1-15.4 27-12.9zM263.9 128.4l-28.6 58.8c-3.5 7.1-10.2 12.1-18.1 13.3L99 217.9 184.9 303c5.5 5.5 8.1 13.3 6.8 21L171.4 443.7l92.5-49.4 0-265.9z"], - "chess-king": [448, 512, [9818], "f43f", "M248 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 32-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 40L59.6 144C26.7 144 0 170.7 0 203.6c0 8.2 1.7 16.3 4.9 23.8L59.1 352l52.3 0L49 208.2c-.6-1.5-1-3-1-4.6c0-6.4 5.2-11.6 11.6-11.6L224 192l164.4 0c6.4 0 11.6 5.2 11.6 11.6c0 1.6-.3 3.2-1 4.6L336.5 352l52.3 0 54.2-124.6c3.3-7.5 4.9-15.6 4.9-23.8c0-32.9-26.7-59.6-59.6-59.6L248 144l0-40 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-32zM101.2 432l245.6 0 16.6 32L84.7 464l16.6-32zm283.7-30.7c-5.5-10.6-16.5-17.3-28.4-17.3l-265 0c-12 0-22.9 6.7-28.4 17.3L36.6 452.5c-3 5.8-4.6 12.2-4.6 18.7C32 493.8 50.2 512 72.8 512l302.5 0c22.5 0 40.8-18.2 40.8-40.8c0-6.5-1.6-12.9-4.6-18.7l-26.5-51.2z"], - "circle-user": [512, 512, [62142, "user-circle"], "f2bd", "M406.5 399.6C387.4 352.9 341.5 320 288 320l-64 0c-53.5 0-99.4 32.9-118.5 79.6C69.9 362.2 48 311.7 48 256C48 141.1 141.1 48 256 48s208 93.1 208 208c0 55.7-21.9 106.2-57.5 143.6zm-40.1 32.7C334.4 452.4 296.6 464 256 464s-78.4-11.6-110.5-31.7c7.3-36.7 39.7-64.3 78.5-64.3l64 0c38.8 0 71.2 27.6 78.5 64.3zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-272a40 40 0 1 1 0-80 40 40 0 1 1 0 80zm-88-40a88 88 0 1 0 176 0 88 88 0 1 0 -176 0z"], - "copy": [448, 512, [], "f0c5", "M384 336l-192 0c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l140.1 0L400 115.9 400 320c0 8.8-7.2 16-16 16zM192 384l192 0c35.3 0 64-28.7 64-64l0-204.1c0-12.7-5.1-24.9-14.1-33.9L366.1 14.1c-9-9-21.2-14.1-33.9-14.1L192 0c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-32-48 0 0 32c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l32 0 0-48-32 0z"], - "share-from-square": [576, 512, [61509, "share-square"], "f14d", "M400 255.4l0-15.4 0-32c0-8.8-7.2-16-16-16l-32 0-16 0-46.5 0c-50.9 0-93.9 33.5-108.3 79.6c-3.3-9.4-5.2-19.8-5.2-31.6c0-61.9 50.1-112 112-112l48 0 16 0 32 0c8.8 0 16-7.2 16-16l0-32 0-15.4L506 160 400 255.4zM336 240l16 0 0 48c0 17.7 14.3 32 32 32l3.7 0c7.9 0 15.5-2.9 21.4-8.2l139-125.1c7.6-6.8 11.9-16.5 11.9-26.7s-4.3-19.9-11.9-26.7L409.9 8.9C403.5 3.2 395.3 0 386.7 0C367.5 0 352 15.5 352 34.7L352 80l-16 0-32 0-16 0c-88.4 0-160 71.6-160 160c0 60.4 34.6 99.1 63.9 120.9c5.9 4.4 11.5 8.1 16.7 11.2c4.4 2.7 8.5 4.9 11.9 6.6c3.4 1.7 6.2 3 8.2 3.9c2.2 1 4.6 1.4 7.1 1.4l2.5 0c9.8 0 17.8-8 17.8-17.8c0-7.8-5.3-14.7-11.6-19.5c0 0 0 0 0 0c-.4-.3-.7-.5-1.1-.8c-1.7-1.1-3.4-2.5-5-4.1c-.8-.8-1.7-1.6-2.5-2.6s-1.6-1.9-2.4-2.9c-1.8-2.5-3.5-5.3-5-8.5c-2.6-6-4.3-13.3-4.3-22.4c0-36.1 29.3-65.5 65.5-65.5l14.5 0 32 0zM72 32C32.2 32 0 64.2 0 104L0 440c0 39.8 32.2 72 72 72l336 0c39.8 0 72-32.2 72-72l0-64c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 64c0 13.3-10.7 24-24 24L72 464c-13.3 0-24-10.7-24-24l0-336c0-13.3 10.7-24 24-24l64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L72 32z"], - "copyright": [512, 512, [169], "f1f9", "M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM199.4 312.6c-31.2-31.2-31.2-81.9 0-113.1s81.9-31.2 113.1 0c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9c-50-50-131-50-181 0s-50 131 0 181s131 50 181 0c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0c-31.2 31.2-81.9 31.2-113.1 0z"], - "map": [576, 512, [128506, 62072], "f279", "M565.6 36.2C572.1 40.7 576 48.1 576 56l0 336c0 10-6.2 18.9-15.5 22.4l-168 64c-5.2 2-10.9 2.1-16.1 .3L192.5 417.5l-160 61c-7.4 2.8-15.7 1.8-22.2-2.7S0 463.9 0 456L0 120c0-10 6.1-18.9 15.5-22.4l168-64c5.2-2 10.9-2.1 16.1-.3L383.5 94.5l160-61c7.4-2.8 15.7-1.8 22.2 2.7zM48 136.5l0 284.6 120-45.7 0-284.6L48 136.5zM360 422.7l0-285.4-144-48 0 285.4 144 48zm48-1.5l120-45.7 0-284.6L408 136.5l0 284.6z"], - "bell-slash": [640, 512, [128277, 61943], "f1f6", "M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L542.6 400c2.7-7.8 1.3-16.5-3.9-23l-14.9-18.6C495.5 322.9 480 278.8 480 233.4l0-33.4c0-75.8-55.5-138.6-128-150.1L352 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 17.9c-43.9 7-81.5 32.7-104.4 68.7L38.8 5.1zM221.7 148.4C239.6 117.1 273.3 96 312 96l8 0 8 0c57.4 0 104 46.6 104 104l0 33.4c0 32.7 6.4 64.8 18.7 94.5L221.7 148.4zM406.2 416l-60.9-48-176.9 0c21.2-32.8 34.4-70.3 38.4-109.1L160 222.1l0 11.4c0 45.4-15.5 89.5-43.8 124.9L101.3 377c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6l286.2 0zM384 448l-64 0-64 0c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7s18.7-28.3 18.7-45.3z"], - "hand-lizard": [512, 512, [], "f258", "M72 112c-13.3 0-24 10.7-24 24s10.7 24 24 24l168 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-104 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l152 0c4.5 0 8.9 1.3 12.7 3.6l64 40c7 4.4 11.3 12.1 11.3 20.4l0 24c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-10.7L281.1 384 136 384c-39.8 0-72-32.2-72-72s32.2-72 72-72l104 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L72 208c-39.8 0-72-32.2-72-72S32.2 64 72 64l209.6 0c46.7 0 90.9 21.5 119.7 58.3l78.4 100.1c20.9 26.7 32.3 59.7 32.3 93.7L512 424c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-107.9c0-23.2-7.8-45.8-22.1-64.1L363.5 151.9c-19.7-25.2-49.9-39.9-81.9-39.9L72 112z"], - "face-smile": [512, 512, [128578, "smile"], "f118", "M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm177.6 62.1C192.8 334.5 218.8 352 256 352s63.2-17.5 78.4-33.9c9-9.7 24.2-10.4 33.9-1.4s10.4 24.2 1.4 33.9c-22 23.8-60 49.4-113.6 49.4s-91.7-25.5-113.6-49.4c-9-9.7-8.4-24.9 1.4-33.9s24.9-8.4 33.9 1.4zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"], - "hand-peace": [512, 512, [9996], "f25b", "M250.8 1.4c-35.2-3.7-66.6 21.8-70.3 57L174 119 156.7 69.6C145 36.3 108.4 18.8 75.1 30.5S24.2 78.8 35.9 112.1L88.7 262.2C73.5 276.7 64 297.3 64 320c0 0 0 0 0 0l0 24c0 92.8 75.2 168 168 168l48 0c92.8 0 168-75.2 168-168l0-72 0-16 0-32c0-35.3-28.7-64-64-64c-7.9 0-15.4 1.4-22.4 4c-10.4-21.3-32.3-36-57.6-36c-.7 0-1.5 0-2.2 0l5.9-56.3c3.7-35.2-21.8-66.6-57-70.3zm-.2 155.4C243.9 166.9 240 179 240 192l0 48c0 .7 0 1.4 0 2c-5.1-1.3-10.5-2-16-2l-7.4 0-5.4-15.3 17-161.3c.9-8.8 8.8-15.2 17.6-14.2s15.2 8.8 14.2 17.6l-9.5 90.1zM111.4 85.6L165.7 240 144 240c-4 0-8 .3-11.9 .9L81.2 96.2c-2.9-8.3 1.5-17.5 9.8-20.4s17.5 1.5 20.4 9.8zM288 192c0-8.8 7.2-16 16-16s16 7.2 16 16l0 32 0 16c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48zm38.4 108c10.4 21.3 32.3 36 57.6 36c5.5 0 10.9-.7 16-2l0 10c0 66.3-53.7 120-120 120l-48 0c-66.3 0-120-53.7-120-120l0-24s0 0 0 0c0-17.7 14.3-32 32-32l80 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0c35.3 0 64-28.7 64-64c0-.7 0-1.4 0-2c5.1 1.3 10.5 2 16 2c7.9 0 15.4-1.4 22.4-4zM400 272c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-32 0-16c0-8.8 7.2-16 16-16s16 7.2 16 16l0 32 0 16z"], - "face-grin-hearts": [512, 512, [128525, "grin-hearts"], "f584", "M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM215.3 137.1c17.8 4.8 28.4 23.1 23.6 40.8l-17.4 65c-2.3 8.5-11.1 13.6-19.6 11.3l-65.1-17.4c-17.8-4.8-28.4-23.1-23.6-40.8s23.1-28.4 40.8-23.6l16.1 4.3 4.3-16.1c4.8-17.8 23.1-28.4 40.8-23.6zm122.3 23.6l4.3 16.1 16.1-4.3c17.8-4.8 36.1 5.8 40.8 23.6s-5.8 36.1-23.6 40.8l-65.1 17.4c-8.5 2.3-17.3-2.8-19.6-11.3l-17.4-65c-4.8-17.8 5.8-36.1 23.6-40.8s36.1 5.8 40.9 23.6z"], - "building": [384, 512, [127970, 61687], "f1ad", "M64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l80 0 0-64c0-26.5 21.5-48 48-48s48 21.5 48 48l0 64 80 0c8.8 0 16-7.2 16-16l0-384c0-8.8-7.2-16-16-16L64 48zM0 64C0 28.7 28.7 0 64 0L320 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm88 40c0-8.8 7.2-16 16-16l48 0c8.8 0 16 7.2 16 16l0 48c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-48zM232 88l48 0c8.8 0 16 7.2 16 16l0 48c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-48c0-8.8 7.2-16 16-16zM88 232c0-8.8 7.2-16 16-16l48 0c8.8 0 16 7.2 16 16l0 48c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-48zm144-16l48 0c8.8 0 16 7.2 16 16l0 48c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-48c0-8.8 7.2-16 16-16z"], - "face-grin-beam-sweat": [512, 512, [128517, "grin-beam-sweat"], "f583", "M476.8 126.3C497.1 120.8 512 102.7 512 81c0-20-28.6-60.4-41.6-77.7c-3.2-4.4-9.6-4.4-12.8 0c-9.5 12.6-27.1 37.2-36 57.5c-.3 .7-.6 1.4-.9 2.1C417.8 69.7 416 76 416 81c0 26 21.5 47 48 47c4.4 0 8.7-.6 12.8-1.7zM395.4 41.2C355.3 15.2 307.4 0 256 0C114.6 0 0 114.6 0 256S114.6 512 256 512s256-114.6 256-256c0-35.8-7.3-69.9-20.6-100.8c-8.6 3.1-17.8 4.8-27.4 4.8c-8.9 0-17.6-1.5-25.7-4.2C454.7 185.5 464 219.7 464 256c0 114.9-93.1 208-208 208S48 370.9 48 256S141.1 48 256 48c48.7 0 93.4 16.7 128.9 44.7c-.6-3.8-.9-7.7-.9-11.7c0-11.4 3.8-22.4 7.1-30.5c1.3-3.1 2.7-6.2 4.3-9.3zM375 336.5c10.4-16.1-6.8-32.5-25.5-28.1c-28.9 6.8-60.5 10.5-93.6 10.5s-64.7-3.7-93.6-10.5c-18.7-4.4-35.9 12-25.5 28.1c24.6 38.1 68.7 63.5 119.1 63.5s94.5-25.4 119.1-63.5zM217.6 228.8s0 0 0 0s0 0 0 0s0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C126.7 188.4 120 206.1 120 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2c0 0 0 0 0 0zm160 0s0 0 0 0s0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C286.7 188.4 280 206.1 280 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2c0 0 0 0 0 0c0 0 0 0 0 0z"], - "moon": [384, 512, [127769, 9214], "f186", "M144.7 98.7c-21 34.1-33.1 74.3-33.1 117.3c0 98 62.8 181.4 150.4 211.7c-12.4 2.8-25.3 4.3-38.6 4.3C126.6 432 48 353.3 48 256c0-68.9 39.4-128.4 96.8-157.3zm62.1-66C91.1 41.2 0 137.9 0 256C0 379.7 100 480 223.5 480c47.8 0 92-15 128.4-40.6c1.9-1.3 3.7-2.7 5.5-4c4.8-3.6 9.4-7.4 13.9-11.4c2.7-2.4 5.3-4.8 7.9-7.3c5-4.9 6.3-12.5 3.1-18.7s-10.1-9.7-17-8.5c-3.7 .6-7.4 1.2-11.1 1.6c-5 .5-10.1 .9-15.3 1c-1.2 0-2.5 0-3.7 0l-.3 0c-96.8-.2-175.2-78.9-175.2-176c0-54.8 24.9-103.7 64.1-136c1-.9 2.1-1.7 3.2-2.6c4-3.2 8.2-6.2 12.5-9c3.1-2 6.3-4 9.6-5.8c6.1-3.5 9.2-10.5 7.7-17.3s-7.3-11.9-14.3-12.5c-3.6-.3-7.1-.5-10.7-.6c-2.7-.1-5.5-.1-8.2-.1c-3.3 0-6.5 .1-9.8 .2c-2.3 .1-4.6 .2-6.9 .4z"], - "calendar": [448, 512, [128197, 128198], "f133", "M152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40L64 64C28.7 64 0 92.7 0 128l0 16 0 48L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-256 0-48 0-16c0-35.3-28.7-64-64-64l-40 0 0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40L152 64l0-40zM48 192l352 0 0 256c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16l0-256z"], - "face-grin-tongue-wink": [512, 512, [128540, "grin-tongue-wink"], "f58b", "M348.3 442.4c2.4-8.4 3.7-17.3 3.7-26.4l0-52.5c8.8-8 16.6-17.1 23-27c10.4-16.1-6.8-32.5-25.5-28.1c-28.9 6.8-60.5 10.5-93.6 10.5s-64.7-3.7-93.6-10.5c-18.7-4.4-35.9 12-25.5 28.1c6.5 10 14.3 19.1 23.1 27.1l0 52.4c0 9.2 1.3 18 3.7 26.4C95.1 408.4 48 337.7 48 256C48 141.1 141.1 48 256 48s208 93.1 208 208c0 81.7-47.1 152.4-115.7 186.4zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM159.6 220c10.6 0 19.9 3.8 25.4 9.7c7.6 8.1 20.2 8.5 28.3 .9s8.5-20.2 .9-28.3C199.7 186.8 179 180 159.6 180s-40.1 6.8-54.6 22.3c-7.6 8.1-7.1 20.7 .9 28.3s20.7 7.1 28.3-.9c5.5-5.8 14.8-9.7 25.4-9.7zm176.7 12a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm-.4-72a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm0 128a80 80 0 1 0 0-160 80 80 0 1 0 0 160zM320 416c0 35.3-28.7 64-64 64s-64-28.7-64-64l0-37.4c0-14.7 11.9-26.6 26.6-26.6l2 0c11.3 0 21.1 7.9 23.6 18.9c2.8 12.6 20.8 12.6 23.6 0c2.5-11.1 12.3-18.9 23.6-18.9l2 0c14.7 0 26.6 11.9 26.6 26.6l0 37.4z"], - "clone": [512, 512, [], "f24d", "M64 464l224 0c8.8 0 16-7.2 16-16l0-64 48 0 0 64c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 224c0-35.3 28.7-64 64-64l64 0 0 48-64 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16zM224 304l224 0c8.8 0 16-7.2 16-16l0-224c0-8.8-7.2-16-16-16L224 48c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16zm-64-16l0-224c0-35.3 28.7-64 64-64L448 0c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64l-224 0c-35.3 0-64-28.7-64-64z"], - "face-angry": [512, 512, [128544, "angry"], "f556", "M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm72.4-118.5c9.7-9 10.2-24.2 1.2-33.9C315.3 344.3 290.6 328 256 328s-59.3 16.3-73.5 31.6c-9 9.7-8.5 24.9 1.2 33.9s24.9 8.5 33.9-1.2c7.4-7.9 20-16.4 38.5-16.4s31.1 8.5 38.5 16.4c9 9.7 24.2 10.2 33.9 1.2zM176.4 272c17.7 0 32-14.3 32-32c0-1.5-.1-3-.3-4.4l10.9 3.6c8.4 2.8 17.4-1.7 20.2-10.1s-1.7-17.4-10.1-20.2l-96-32c-8.4-2.8-17.4 1.7-20.2 10.1s1.7 17.4 10.1 20.2l30.7 10.2c-5.8 5.8-9.3 13.8-9.3 22.6c0 17.7 14.3 32 32 32zm192-32c0-8.9-3.6-17-9.5-22.8l30.2-10.1c8.4-2.8 12.9-11.9 10.1-20.2s-11.9-12.9-20.2-10.1l-96 32c-8.4 2.8-12.9 11.9-10.1 20.2s11.9 12.9 20.2 10.1l11.7-3.9c-.2 1.5-.3 3.1-.3 4.7c0 17.7 14.3 32 32 32s32-14.3 32-32z"], - "rectangle-xmark": [512, 512, [62164, "rectangle-times", "times-rectangle", "window-close"], "f410", "M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm175 79c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"], - "paper-plane": [512, 512, [61913], "f1d8", "M16.1 260.2c-22.6 12.9-20.5 47.3 3.6 57.3L160 376l0 103.3c0 18.1 14.6 32.7 32.7 32.7c9.7 0 18.9-4.3 25.1-11.8l62-74.3 123.9 51.6c18.9 7.9 40.8-4.5 43.9-24.7l64-416c1.9-12.1-3.4-24.3-13.5-31.2s-23.3-7.5-34-1.4l-448 256zm52.1 25.5L409.7 90.6 190.1 336l1.2 1L68.2 285.7zM403.3 425.4L236.7 355.9 450.8 116.6 403.3 425.4z"], - "life-ring": [512, 512, [], "f1cd", "M385.1 419.1C349.7 447.2 304.8 464 256 464s-93.7-16.8-129.1-44.9l80.4-80.4c14.3 8.4 31 13.3 48.8 13.3s34.5-4.8 48.8-13.3l80.4 80.4zm68.1 .2C489.9 374.9 512 318.1 512 256s-22.1-118.9-58.8-163.3L465 81c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L419.3 58.8C374.9 22.1 318.1 0 256 0S137.1 22.1 92.7 58.8L81 47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L58.8 92.7C22.1 137.1 0 193.9 0 256s22.1 118.9 58.8 163.3L47 431c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l11.8-11.8C137.1 489.9 193.9 512 256 512s118.9-22.1 163.3-58.8L431 465c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-11.8-11.8zm-34.1-34.1l-80.4-80.4c8.4-14.3 13.3-31 13.3-48.8s-4.8-34.5-13.3-48.8l80.4-80.4C447.2 162.3 464 207.2 464 256s-16.8 93.7-44.9 129.1zM385.1 92.9l-80.4 80.4c-14.3-8.4-31-13.3-48.8-13.3s-34.5 4.8-48.8 13.3L126.9 92.9C162.3 64.8 207.2 48 256 48s93.7 16.8 129.1 44.9zM173.3 304.8L92.9 385.1C64.8 349.7 48 304.8 48 256s16.8-93.7 44.9-129.1l80.4 80.4c-8.4 14.3-13.3 31-13.3 48.8s4.8 34.5 13.3 48.8zM208 256a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z"], - "face-grimace": [512, 512, [128556, "grimace"], "f57f", "M256 48a208 208 0 1 0 0 416 208 208 0 1 0 0-416zM512 256A256 256 0 1 1 0 256a256 256 0 1 1 512 0zM168 320c-13.3 0-24 10.7-24 24s10.7 24 24 24l8 0 0-48-8 0zm40 48l32 0 0-48-32 0 0 48zm96 0l0-48-32 0 0 48 32 0zm32 0l8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0 48zM168 288l176 0c30.9 0 56 25.1 56 56s-25.1 56-56 56l-176 0c-30.9 0-56-25.1-56-56s25.1-56 56-56zm-23.6-80a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"], - "calendar-minus": [448, 512, [], "f272", "M128 0c13.3 0 24 10.7 24 24l0 40 144 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 40 0c35.3 0 64 28.7 64 64l0 16 0 48 0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192l0-48 0-16C0 92.7 28.7 64 64 64l40 0 0-40c0-13.3 10.7-24 24-24zM400 192L48 192l0 256c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-256zM296 352l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24z"], - "circle-xmark": [512, 512, [61532, "times-circle", "xmark-circle"], "f057", "M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM175 175c-9.4 9.4-9.4 24.6 0 33.9l47 47-47 47c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l47-47 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-47-47 47-47c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-47 47-47-47c-9.4-9.4-24.6-9.4-33.9 0z"], - "thumbs-up": [512, 512, [128077, 61575], "f164", "M323.8 34.8c-38.2-10.9-78.1 11.2-89 49.4l-5.7 20c-3.7 13-10.4 25-19.5 35l-51.3 56.4c-8.9 9.8-8.2 25 1.6 33.9s25 8.2 33.9-1.6l51.3-56.4c14.1-15.5 24.4-34 30.1-54.1l5.7-20c3.6-12.7 16.9-20.1 29.7-16.5s20.1 16.9 16.5 29.7l-5.7 20c-5.7 19.9-14.7 38.7-26.6 55.5c-5.2 7.3-5.8 16.9-1.7 24.9s12.3 13 21.3 13L448 224c8.8 0 16 7.2 16 16c0 6.8-4.3 12.7-10.4 15c-7.4 2.8-13 9-14.9 16.7s.1 15.8 5.3 21.7c2.5 2.8 4 6.5 4 10.6c0 7.8-5.6 14.3-13 15.7c-8.2 1.6-15.1 7.3-18 15.2s-1.6 16.7 3.6 23.3c2.1 2.7 3.4 6.1 3.4 9.9c0 6.7-4.2 12.6-10.2 14.9c-11.5 4.5-17.7 16.9-14.4 28.8c.4 1.3 .6 2.8 .6 4.3c0 8.8-7.2 16-16 16l-97.5 0c-12.6 0-25-3.7-35.5-10.7l-61.7-41.1c-11-7.4-25.9-4.4-33.3 6.7s-4.4 25.9 6.7 33.3l61.7 41.1c18.4 12.3 40 18.8 62.1 18.8l97.5 0c34.7 0 62.9-27.6 64-62c14.6-11.7 24-29.7 24-50c0-4.5-.5-8.8-1.3-13c15.4-11.7 25.3-30.2 25.3-51c0-6.5-1-12.8-2.8-18.7C504.8 273.7 512 257.7 512 240c0-35.3-28.6-64-64-64l-92.3 0c4.7-10.4 8.7-21.2 11.8-32.2l5.7-20c10.9-38.2-11.2-78.1-49.4-89zM32 192c-17.7 0-32 14.3-32 32L0 448c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-224c0-17.7-14.3-32-32-32l-64 0z"], - "window-minimize": [512, 512, [128469], "f2d1", "M24 432c-13.3 0-24 10.7-24 24s10.7 24 24 24l464 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 432z"], - "square-full": [512, 512, [128997, 128998, 128999, 129000, 129001, 129002, 129003, 11035, 11036], "f45c", "M464 48l0 416L48 464 48 48l416 0zM48 0L0 0 0 48 0 464l0 48 48 0 416 0 48 0 0-48 0-416 0-48L464 0 48 0z"], - "note-sticky": [448, 512, [62026, "sticky-note"], "f249", "M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l224 0 0-80c0-17.7 14.3-32 32-32l80 0 0-224c0-8.8-7.2-16-16-16L64 80zM288 480L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 224 0 5.5c0 17-6.7 33.3-18.7 45.3l-90.5 90.5c-12 12-28.3 18.7-45.3 18.7l-5.5 0z"], - "face-sad-tear": [512, 512, [128546, "sad-tear"], "f5b4", "M175.9 448c-35-.1-65.5-22.6-76-54.6C67.6 356.8 48 308.7 48 256C48 141.1 141.1 48 256 48s208 93.1 208 208s-93.1 208-208 208c-28.4 0-55.5-5.7-80.1-16zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM128 369c0 26 21.5 47 48 47s48-21 48-47c0-20-28.4-60.4-41.6-77.7c-3.2-4.4-9.6-4.4-12.8 0C156.6 308.6 128 349 128 369zm128-65c-13.3 0-24 10.7-24 24s10.7 24 24 24c30.7 0 58.7 11.5 80 30.6c9.9 8.8 25 8 33.9-1.9s8-25-1.9-33.9C338.3 320.2 299 304 256 304zm47.6-96a32 32 0 1 0 64 0 32 32 0 1 0 -64 0zm-128 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"], - "hand-point-left": [512, 512, [], "f0a5", "M64 128l177.6 0c-1 5.2-1.6 10.5-1.6 16l0 16-32 0L64 160c-8.8 0-16-7.2-16-16s7.2-16 16-16zm224 16c0-17.7 14.3-32 32-32c0 0 0 0 0 0l24 0c66.3 0 120 53.7 120 120l0 48c0 52.5-33.7 97.1-80.7 113.4c.5-3.1 .7-6.2 .7-9.4c0-20-9.2-37.9-23.6-49.7c4.9-9 7.6-19.4 7.6-30.3c0-15.1-5.3-29-14-40c8.8-11 14-24.9 14-40l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-40 0-40zm32-80s0 0 0 0c-18 0-34.6 6-48 16L64 80C28.7 80 0 108.7 0 144s28.7 64 64 64l82 0c-1.3 5.1-2 10.5-2 16c0 25.3 14.7 47.2 36 57.6c-2.6 7-4 14.5-4 22.4c0 20 9.2 37.9 23.6 49.7c-4.9 9-7.6 19.4-7.6 30.3c0 35.3 28.7 64 64 64l64 0 24 0c92.8 0 168-75.2 168-168l0-48c0-92.8-75.2-168-168-168l-24 0zM256 400c-8.8 0-16-7.2-16-16s7.2-16 16-16l48 0 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0zM240 224c0 5.5 .7 10.9 2 16l-2 0-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l32 0 0 16zm24 64l40 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l24 0z"] - }; - - bunker(() => { - defineIcons('far', icons); - defineIcons('fa-regular', icons); - }); - -}()); -(function () { - 'use strict'; - - let _WINDOW = {}; - let _DOCUMENT = {}; - try { - if (typeof window !== 'undefined') _WINDOW = window; - if (typeof document !== 'undefined') _DOCUMENT = document; - } catch (e) {} - const { - userAgent = '' - } = _WINDOW.navigator || {}; - const WINDOW = _WINDOW; - const DOCUMENT = _DOCUMENT; - const IS_BROWSER = !!WINDOW.document; - const IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function'; - const IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/'); - - function _defineProperty(e, r, t) { - return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { - value: t, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[r] = t, e; - } - function ownKeys(e, r) { - var t = Object.keys(e); - if (Object.getOwnPropertySymbols) { - var o = Object.getOwnPropertySymbols(e); - r && (o = o.filter(function (r) { - return Object.getOwnPropertyDescriptor(e, r).enumerable; - })), t.push.apply(t, o); - } - return t; - } - function _objectSpread2(e) { - for (var r = 1; r < arguments.length; r++) { - var t = null != arguments[r] ? arguments[r] : {}; - r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { - _defineProperty(e, r, t[r]); - }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { - Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); - }); - } - return e; - } - function _toPrimitive(t, r) { - if ("object" != typeof t || !t) return t; - var e = t[Symbol.toPrimitive]; - if (void 0 !== e) { - var i = e.call(t, r || "default"); - if ("object" != typeof i) return i; - throw new TypeError("@@toPrimitive must return a primitive value."); - } - return ("string" === r ? String : Number)(t); - } - function _toPropertyKey(t) { - var i = _toPrimitive(t, "string"); - return "symbol" == typeof i ? i : i + ""; - } - - var S = { - classic: { - fa: "solid", - fas: "solid", - "fa-solid": "solid", - far: "regular", - "fa-regular": "regular", - fal: "light", - "fa-light": "light", - fat: "thin", - "fa-thin": "thin", - fab: "brands", - "fa-brands": "brands" - }, - duotone: { - fa: "solid", - fad: "solid", - "fa-solid": "solid", - "fa-duotone": "solid", - fadr: "regular", - "fa-regular": "regular", - fadl: "light", - "fa-light": "light", - fadt: "thin", - "fa-thin": "thin" - }, - sharp: { - fa: "solid", - fass: "solid", - "fa-solid": "solid", - fasr: "regular", - "fa-regular": "regular", - fasl: "light", - "fa-light": "light", - fast: "thin", - "fa-thin": "thin" - }, - "sharp-duotone": { - fa: "solid", - fasds: "solid", - "fa-solid": "solid", - fasdr: "regular", - "fa-regular": "regular", - fasdl: "light", - "fa-light": "light", - fasdt: "thin", - "fa-thin": "thin" - } - }; - var s = "classic"; - var G = { - classic: { - 900: "fas", - 400: "far", - normal: "far", - 300: "fal", - 100: "fat" - }, - duotone: { - 900: "fad", - 400: "fadr", - 300: "fadl", - 100: "fadt" - }, - sharp: { - 900: "fass", - 400: "fasr", - 300: "fasl", - 100: "fast" - }, - "sharp-duotone": { - 900: "fasds", - 400: "fasdr", - 300: "fasdl", - 100: "fasdt" - } - }; - var xt = { - classic: { - solid: "fas", - regular: "far", - light: "fal", - thin: "fat", - brands: "fab" - }, - duotone: { - solid: "fad", - regular: "fadr", - light: "fadl", - thin: "fadt" - }, - sharp: { - solid: "fass", - regular: "fasr", - light: "fasl", - thin: "fast" - }, - "sharp-duotone": { - solid: "fasds", - regular: "fasdr", - light: "fasdl", - thin: "fasdt" - } - }; - var St = { - kit: { - fak: "kit", - "fa-kit": "kit" - }, - "kit-duotone": { - fakd: "kit-duotone", - "fa-kit-duotone": "kit-duotone" - } - }; - var Ct = { - kit: { - "fa-kit": "fak" - }, - "kit-duotone": { - "fa-kit-duotone": "fakd" - } - }; - var Wt = { - kit: { - fak: "fa-kit" - }, - "kit-duotone": { - fakd: "fa-kit-duotone" - } - }; - var Et = { - kit: { - kit: "fak" - }, - "kit-duotone": { - "kit-duotone": "fakd" - } - }; - - var ua = { - classic: { - "fa-brands": "fab", - "fa-duotone": "fad", - "fa-light": "fal", - "fa-regular": "far", - "fa-solid": "fas", - "fa-thin": "fat" - }, - duotone: { - "fa-regular": "fadr", - "fa-light": "fadl", - "fa-thin": "fadt" - }, - sharp: { - "fa-solid": "fass", - "fa-regular": "fasr", - "fa-light": "fasl", - "fa-thin": "fast" - }, - "sharp-duotone": { - "fa-solid": "fasds", - "fa-regular": "fasdr", - "fa-light": "fasdl", - "fa-thin": "fasdt" - } - }, - ga = { - classic: { - fab: "fa-brands", - fad: "fa-duotone", - fal: "fa-light", - far: "fa-regular", - fas: "fa-solid", - fat: "fa-thin" - }, - duotone: { - fadr: "fa-regular", - fadl: "fa-light", - fadt: "fa-thin" - }, - sharp: { - fass: "fa-solid", - fasr: "fa-regular", - fasl: "fa-light", - fast: "fa-thin" - }, - "sharp-duotone": { - fasds: "fa-solid", - fasdr: "fa-regular", - fasdl: "fa-light", - fasdt: "fa-thin" - } - }; - - const NAMESPACE_IDENTIFIER = '___FONT_AWESOME___'; - const PRODUCTION = (() => { - try { - return "production" === 'production'; - } catch (e$$1) { - return false; - } - })(); - function familyProxy(obj) { - // Defaults to the classic family if family is not available - return new Proxy(obj, { - get(target, prop) { - return prop in target ? target[prop] : target[s]; - } - }); - } - const _PREFIX_TO_STYLE = _objectSpread2({}, S); - - // We changed FACSSClassesToStyleId in the icons repo to be canonical and as such, "classic" family does not have any - // duotone styles. But we do still need duotone in _PREFIX_TO_STYLE below, so we are manually adding - // {'fa-duotone': 'duotone'} - _PREFIX_TO_STYLE[s] = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, { - 'fa-duotone': 'duotone' - }), S[s]), St['kit']), St['kit-duotone']); - const PREFIX_TO_STYLE = familyProxy(_PREFIX_TO_STYLE); - const _STYLE_TO_PREFIX = _objectSpread2({}, xt); - - // We changed FAStyleIdToShortPrefixId in the icons repo to be canonical and as such, "classic" family does not have any - // duotone styles. But we do still need duotone in _STYLE_TO_PREFIX below, so we are manually adding {duotone: 'fad'} - _STYLE_TO_PREFIX[s] = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, { - duotone: 'fad' - }), _STYLE_TO_PREFIX[s]), Et['kit']), Et['kit-duotone']); - const STYLE_TO_PREFIX = familyProxy(_STYLE_TO_PREFIX); - const _PREFIX_TO_LONG_STYLE = _objectSpread2({}, ga); - _PREFIX_TO_LONG_STYLE[s] = _objectSpread2(_objectSpread2({}, _PREFIX_TO_LONG_STYLE[s]), Wt['kit']); - const PREFIX_TO_LONG_STYLE = familyProxy(_PREFIX_TO_LONG_STYLE); - const _LONG_STYLE_TO_PREFIX = _objectSpread2({}, ua); - _LONG_STYLE_TO_PREFIX[s] = _objectSpread2(_objectSpread2({}, _LONG_STYLE_TO_PREFIX[s]), Ct['kit']); - const LONG_STYLE_TO_PREFIX = familyProxy(_LONG_STYLE_TO_PREFIX); - const _FONT_WEIGHT_TO_PREFIX = _objectSpread2({}, G); - const FONT_WEIGHT_TO_PREFIX = familyProxy(_FONT_WEIGHT_TO_PREFIX); - - function bunker(fn) { - try { - for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - fn(...args); - } catch (e) { - if (!PRODUCTION) { - throw e; - } - } - } - - const w = WINDOW || {}; - if (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {}; - if (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {}; - if (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {}; - if (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = []; - var namespace = w[NAMESPACE_IDENTIFIER]; - - function normalizeIcons(icons) { - return Object.keys(icons).reduce((acc, iconName) => { - const icon = icons[iconName]; - const expanded = !!icon.icon; - if (expanded) { - acc[icon.iconName] = icon.icon; - } else { - acc[iconName] = icon; - } - return acc; - }, {}); - } - function defineIcons(prefix, icons) { - let params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; - const { - skipHooks = false - } = params; - const normalized = normalizeIcons(icons); - if (typeof namespace.hooks.addPack === 'function' && !skipHooks) { - namespace.hooks.addPack(prefix, normalizeIcons(icons)); - } else { - namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), normalized); - } - - /** - * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction - * of new styles we needed to differentiate between them. Prefix `fa` is now an alias - * for `fas` so we'll ease the upgrade process for our users by automatically defining - * this as well. - */ - if (prefix === 'fas') { - defineIcons('fa', icons); - } - } - - var icons = { - "0": [320, 512, [], "30", "M0 192C0 103.6 71.6 32 160 32s160 71.6 160 160l0 128c0 88.4-71.6 160-160 160S0 408.4 0 320L0 192zM160 96c-53 0-96 43-96 96l0 128c0 53 43 96 96 96s96-43 96-96l0-128c0-53-43-96-96-96z"], - "1": [256, 512, [], "31", "M160 64c0-11.8-6.5-22.6-16.9-28.2s-23-5-32.8 1.6l-96 64C-.5 111.2-4.4 131 5.4 145.8s29.7 18.7 44.4 8.9L96 123.8 96 416l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-352z"], - "2": [320, 512, [], "32", "M142.9 96c-21.5 0-42.2 8.5-57.4 23.8L54.6 150.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L40.2 74.5C67.5 47.3 104.4 32 142.9 32C223 32 288 97 288 177.1c0 38.5-15.3 75.4-42.5 102.6L109.3 416 288 416c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L200.2 234.5c15.2-15.2 23.8-35.9 23.8-57.4c0-44.8-36.3-81.1-81.1-81.1z"], - "3": [320, 512, [], "33", "M0 64C0 46.3 14.3 32 32 32l240 0c13.2 0 25 8.1 29.8 20.4s1.5 26.3-8.2 35.2L162.3 208l21.7 0c75.1 0 136 60.9 136 136s-60.9 136-136 136l-78.6 0C63 480 24.2 456 5.3 418.1l-1.9-3.8c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l1.9 3.8c8.1 16.3 24.8 26.5 42.9 26.5l78.6 0c39.8 0 72-32.2 72-72s-32.2-72-72-72L80 272c-13.2 0-25-8.1-29.8-20.4s-1.5-26.3 8.2-35.2L189.7 96 32 96C14.3 96 0 81.7 0 64z"], - "4": [384, 512, [], "34", "M189 77.6c7.5-16 .7-35.1-15.3-42.6s-35.1-.7-42.6 15.3L3 322.4c-4.7 9.9-3.9 21.5 1.9 30.8S21 368 32 368l224 0 0 80c0 17.7 14.3 32 32 32s32-14.3 32-32l0-80 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-144c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 144L82.4 304 189 77.6z"], - "5": [320, 512, [], "35", "M32.5 58.3C35.3 43.1 48.5 32 64 32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L90.7 96 70.3 208 184 208c75.1 0 136 60.9 136 136s-60.9 136-136 136l-83.5 0c-39.4 0-75.4-22.3-93-57.5l-4.1-8.2c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l4.1 8.2c6.8 13.6 20.6 22.1 35.8 22.1l83.5 0c39.8 0 72-32.2 72-72s-32.2-72-72-72L32 272c-9.5 0-18.5-4.2-24.6-11.5s-8.6-16.9-6.9-26.2l32-176z"], - "6": [320, 512, [], "36", "M232.4 84.7c11.4-13.5 9.7-33.7-3.8-45.1s-33.7-9.7-45.1 3.8L38.6 214.7C14.7 242.9 1.1 278.4 .1 315.2c0 1.4-.1 2.9-.1 4.3l0 .5c0 88.4 71.6 160 160 160s160-71.6 160-160c0-85.5-67.1-155.4-151.5-159.8l63.9-75.6zM256 320A96 96 0 1 1 64 320a96 96 0 1 1 192 0z"], - "7": [320, 512, [], "37", "M0 64C0 46.3 14.3 32 32 32l256 0c11.5 0 22 6.1 27.7 16.1s5.7 22.2-.1 32.1l-224 384c-8.9 15.3-28.5 20.4-43.8 11.5s-20.4-28.5-11.5-43.8L232.3 96 32 96C14.3 96 0 81.7 0 64z"], - "8": [320, 512, [], "38", "M304 160c0-70.7-57.3-128-128-128l-32 0C73.3 32 16 89.3 16 160c0 34.6 13.7 66 36 89C20.5 272.3 0 309.8 0 352c0 70.7 57.3 128 128 128l64 0c70.7 0 128-57.3 128-128c0-42.2-20.5-79.7-52-103c22.3-23 36-54.4 36-89zM176.1 288l15.9 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64s28.7-64 64-64l15.9 0c0 0 .1 0 .1 0l32 0c0 0 .1 0 .1 0zm0-64c0 0 0 0 0 0l-32 0c0 0 0 0 0 0c-35.3 0-64-28.7-64-64c0-35.3 28.7-64 64-64l32 0c35.3 0 64 28.7 64 64c0 35.3-28.6 64-64 64z"], - "9": [320, 512, [], "39", "M64 192a96 96 0 1 0 192 0A96 96 0 1 0 64 192zm87.5 159.8C67.1 347.4 0 277.5 0 192C0 103.6 71.6 32 160 32s160 71.6 160 160c0 2.6-.1 5.3-.2 7.9c-1.7 35.7-15.2 70-38.4 97.4l-145 171.4c-11.4 13.5-31.6 15.2-45.1 3.8s-15.2-31.6-3.8-45.1l63.9-75.6z"], - "fill-drip": [576, 512, [], "f576", "M41.4 9.4C53.9-3.1 74.1-3.1 86.6 9.4L168 90.7l53.1-53.1c28.1-28.1 73.7-28.1 101.8 0L474.3 189.1c28.1 28.1 28.1 73.7 0 101.8L283.9 481.4c-37.5 37.5-98.3 37.5-135.8 0L30.6 363.9c-37.5-37.5-37.5-98.3 0-135.8L122.7 136 41.4 54.6c-12.5-12.5-12.5-32.8 0-45.3zm176 221.3L168 181.3 75.9 273.4c-4.2 4.2-7 9.3-8.4 14.6l319.2 0 42.3-42.3c3.1-3.1 3.1-8.2 0-11.3L277.7 82.9c-3.1-3.1-8.2-3.1-11.3 0L213.3 136l49.4 49.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0zM512 512c-35.3 0-64-28.7-64-64c0-25.2 32.6-79.6 51.2-108.7c6-9.4 19.5-9.4 25.5 0C543.4 368.4 576 422.8 576 448c0 35.3-28.7 64-64 64z"], - "arrows-to-circle": [640, 512, [], "e4bd", "M9.4 9.4C21.9-3.1 42.1-3.1 54.6 9.4L160 114.7 160 96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96c0 4.3-.9 8.5-2.4 12.2c-1.6 3.7-3.8 7.3-6.9 10.3l-.1 .1c-3.1 3-6.6 5.3-10.3 6.9c-3.8 1.6-7.9 2.4-12.2 2.4l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l18.7 0L9.4 54.6C-3.1 42.1-3.1 21.9 9.4 9.4zM256 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM114.7 352L96 352c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0s0 0 0 0l.1 0c8.8 0 16.7 3.6 22.5 9.3l.1 .1c3 3.1 5.3 6.6 6.9 10.3c1.6 3.8 2.4 7.9 2.4 12.2l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-18.7L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L114.7 352zM416 96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 18.7L585.4 9.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L525.3 160l18.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-8.8 0-16.8-3.6-22.6-9.3l-.1-.1c-3-3.1-5.3-6.6-6.9-10.3s-2.4-7.8-2.4-12.2l0-.1s0 0 0 0l0-96zM525.3 352L630.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L480 397.3l0 18.7c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96s0 0 0 0l0-.1c0-4.3 .9-8.4 2.4-12.2c1.6-3.8 3.9-7.3 6.9-10.4c5.8-5.8 13.7-9.3 22.5-9.4l.1 0s0 0 0 0l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-18.7 0z"], - "circle-chevron-right": [512, 512, ["chevron-circle-right"], "f138", "M0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM241 377c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l87-87-87-87c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L345 239c9.4 9.4 9.4 24.6 0 33.9L241 377z"], - "at": [512, 512, [61946], "40", "M256 64C150 64 64 150 64 256s86 192 192 192c17.7 0 32 14.3 32 32s-14.3 32-32 32C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256l0 32c0 53-43 96-96 96c-29.3 0-55.6-13.2-73.2-33.9C320 371.1 289.5 384 256 384c-70.7 0-128-57.3-128-128s57.3-128 128-128c27.9 0 53.7 8.9 74.7 24.1c5.7-5 13.1-8.1 21.3-8.1c17.7 0 32 14.3 32 32l0 80 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32c0-106-86-192-192-192zm64 192a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z"], - "trash-can": [448, 512, [61460, "trash-alt"], "f2ed", "M135.2 17.7C140.6 6.8 151.7 0 163.8 0L284.2 0c12.1 0 23.2 6.8 28.6 17.7L320 32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 7.2-14.3zM32 128l384 0 0 320c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-320zm96 64c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16z"], - "text-height": [576, 512, [], "f034", "M64 128l0-32 64 0 0 320-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-320 64 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-48c0-26.5-21.5-48-48-48L160 32 48 32C21.5 32 0 53.5 0 80l0 48c0 17.7 14.3 32 32 32s32-14.3 32-32zM502.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l32 0 0 192-32 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8l-32 0 0-192 32 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64z"], - "user-xmark": [640, 512, ["user-times"], "f235", "M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3zM471 143c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"], - "stethoscope": [576, 512, [129658], "f0f1", "M142.4 21.9c5.6 16.8-3.5 34.9-20.2 40.5L96 71.1 96 192c0 53 43 96 96 96s96-43 96-96l0-120.9-26.1-8.7c-16.8-5.6-25.8-23.7-20.2-40.5s23.7-25.8 40.5-20.2l26.1 8.7C334.4 19.1 352 43.5 352 71.1L352 192c0 77.2-54.6 141.6-127.3 156.7C231 404.6 278.4 448 336 448c61.9 0 112-50.1 112-112l0-70.7c-28.3-12.3-48-40.5-48-73.3c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3l0 70.7c0 97.2-78.8 176-176 176c-92.9 0-168.9-71.9-175.5-163.1C87.2 334.2 32 269.6 32 192L32 71.1c0-27.5 17.6-52 43.8-60.7l26.1-8.7c16.8-5.6 34.9 3.5 40.5 20.2zM480 224a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"], - "message": [512, 512, ["comment-alt"], "f27a", "M64 0C28.7 0 0 28.7 0 64L0 352c0 35.3 28.7 64 64 64l96 0 0 80c0 6.1 3.4 11.6 8.8 14.3s11.9 2.1 16.8-1.5L309.3 416 448 416c35.3 0 64-28.7 64-64l0-288c0-35.3-28.7-64-64-64L64 0z"], - "info": [192, 512, [], "f129", "M48 80a48 48 0 1 1 96 0A48 48 0 1 1 48 80zM0 224c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 224 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-192-32 0c-17.7 0-32-14.3-32-32z"], - "down-left-and-up-right-to-center": [512, 512, ["compress-alt"], "f422", "M439 7c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8l-144 0c-13.3 0-24-10.7-24-24l0-144c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39L439 7zM72 272l144 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39L73 505c-9.4 9.4-24.6 9.4-33.9 0L7 473c-9.4-9.4-9.4-24.6 0-33.9l87-87L55 313c-6.9-6.9-8.9-17.2-5.2-26.2s12.5-14.8 22.2-14.8z"], - "explosion": [576, 512, [], "e4e9", "M499.6 11.3c6.7-10.7 20.5-14.5 31.7-8.5s15.8 19.5 10.6 31L404.8 338.6c2.2 2.3 4.3 4.7 6.3 7.1l97.2-54.7c10.5-5.9 23.6-3.1 30.9 6.4s6.3 23-2.2 31.5l-87 87-71.4 0c-13.2-37.3-48.7-64-90.5-64s-77.4 26.7-90.5 64l-79.6 0L42.3 363.7c-9.7-6.7-13.1-19.6-7.9-30.3s17.4-15.9 28.7-12.4l97.2 30.4c3-3.9 6.1-7.7 9.4-11.3L107.4 236.3c-6.1-10.1-3.9-23.1 5.1-30.7s22.2-7.5 31.1 .1L246 293.6c1.5-.4 3-.8 4.5-1.1l13.6-142.7c1.2-12.3 11.5-21.7 23.9-21.7s22.7 9.4 23.9 21.7l13.5 141.9L499.6 11.3zM64 448s0 0 0 0l448 0s0 0 0 0l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0zM288 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24z"], - "file-lines": [384, 512, [128441, 128462, 61686, "file-alt", "file-text"], "f15c", "M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM112 256l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"], - "wave-square": [640, 512, [], "f83e", "M128 64c0-17.7 14.3-32 32-32l160 0c17.7 0 32 14.3 32 32l0 352 96 0 0-160c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0 0 160c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-352-96 0 0 160c0 17.7-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0 0-160z"], - "ring": [512, 512, [], "f70b", "M64 208c0 7.8 4.4 18.7 17.1 30.3C126.5 214.1 188.9 200 256 200s129.5 14.1 174.9 38.3C443.6 226.7 448 215.8 448 208c0-12.3-10.8-32-47.9-50.6C364.9 139.8 314 128 256 128s-108.9 11.8-144.1 29.4C74.8 176 64 195.7 64 208zm192 40c-47 0-89.3 7.6-122.9 19.7C166.3 280.2 208.8 288 256 288s89.7-7.8 122.9-20.3C345.3 255.6 303 248 256 248zM0 208c0-49.6 39.4-85.8 83.3-107.8C129.1 77.3 190.3 64 256 64s126.9 13.3 172.7 36.2c43.9 22 83.3 58.2 83.3 107.8l0 96c0 49.6-39.4 85.8-83.3 107.8C382.9 434.7 321.7 448 256 448s-126.9-13.3-172.7-36.2C39.4 389.8 0 353.6 0 304l0-96z"], - "building-un": [384, 512, [], "e4d9", "M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 96 0c26.5 0 48-21.5 48-48l0-416c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM237.3 71.1l34.7 52L272 80c0-8.8 7.2-16 16-16s16 7.2 16 16l0 96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52 0 43.2c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM112 80l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16z"], - "dice-three": [448, 512, [9858], "f527", "M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 128a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm128 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"], - "calendar-days": [448, 512, ["calendar-alt"], "f073", "M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zm64 80l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm128 0l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM64 400l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z"], - "anchor-circle-check": [640, 512, [], "e4aa", "M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80L224 176c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 208-48 0c-53 0-96-43-96-96l0-6.1 7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7 0 6.1c0 88.4 71.6 160 160 160l80 0 80 0c8.2 0 16.3-.6 24.2-1.8c-22.2-16.2-40.4-37.5-53-62.2L320 448l0-80 0-128 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-10.9 0zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z"], - "building-circle-arrow-right": [640, 512, [], "e4d1", "M0 48C0 21.5 21.5 0 48 0L336 0c26.5 0 48 21.5 48 48l0 184.2c-39.1 32.3-64 81.1-64 135.8c0 49.5 20.4 94.2 53.3 126.2C364.5 505.1 351.1 512 336 512l-96 0 0-80c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 80-96 0c-26.5 0-48-21.5-48-48L0 48zM80 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm80 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm112-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM64 112l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16L80 96c-8.8 0-16 7.2-16 16zM176 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm80 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm96 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm140.7-67.3c-6.2 6.2-6.2 16.4 0 22.6L521.4 352 432 352c-8.8 0-16 7.2-16 16s7.2 16 16 16l89.4 0-28.7 28.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l56-56c6.2-6.2 6.2-16.4 0-22.6l-56-56c-6.2-6.2-16.4-6.2-22.6 0z"], - "volleyball": [512, 512, [127952, "volleyball-ball"], "f45f", "M511.8 267.4c-26.1 8.7-53.4 13.8-81 15.1c9.2-105.3-31.5-204.2-103.2-272.4C434.1 41.1 512 139.5 512 256c0 3.8-.1 7.6-.2 11.4zm-3.9 34.7c-5.8 32-17.6 62-34.2 88.7c-97.5 48.5-217.7 42.6-311.9-24.5c23.7-36.2 55.4-67.7 94.5-91.8c79.9 43.2 170.1 50.8 251.6 27.6zm-236-55.5c-2.5-90.9-41.1-172.7-101.9-231.7C196.8 5.2 225.8 0 256 0c2.7 0 5.3 0 7.9 .1c90.8 60.2 145.7 167.2 134.7 282.3c-43.1-2.4-86.4-14.1-126.8-35.9zM138 28.8c20.6 18.3 38.7 39.4 53.7 62.6C95.9 136.1 30.6 220.8 7.3 316.9C2.5 297.4 0 277 0 256C0 157.2 56 71.5 138 28.8zm69.6 90.5c19.5 38.6 31 81.9 32.3 127.7C162.5 294.6 110.9 368.9 90.2 451C66 430.4 45.6 405.4 30.4 377.2c6.7-108.7 71.9-209.9 177.1-257.9zM256 512c-50.7 0-98-14.7-137.8-40.2c5.6-27 14.8-53.1 27.4-77.7C232.2 454.6 338.1 468.8 433 441c-46 44-108.3 71-177 71z"], - "arrows-up-to-line": [576, 512, [], "e4c2", "M32 96l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32C14.3 32 0 46.3 0 64S14.3 96 32 96zM9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 237.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-210.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0l-96 96zm320 45.3c12.5 12.5 32.8 12.5 45.3 0L416 237.3 416 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-210.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3z"], - "sort-down": [320, 512, ["sort-desc"], "f0dd", "M182.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8l256 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-128 128z"], - "circle-minus": [512, 512, ["minus-circle"], "f056", "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM184 232l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"], - "door-open": [576, 512, [], "f52b", "M320 32c0-9.9-4.5-19.2-12.3-25.2S289.8-1.4 280.2 1l-179.9 45C79 51.3 64 70.5 64 92.5L64 448l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 192 0 32 0 0-32 0-448zM256 256c0 17.7-10.7 32-24 32s-24-14.3-24-32s10.7-32 24-32s24 14.3 24 32zm96-128l96 0 0 352c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-320c0-35.3-28.7-64-64-64l-96 0 0 64z"], - "right-from-bracket": [512, 512, ["sign-out-alt"], "f2f5", "M377.9 105.9L500.7 228.7c7.2 7.2 11.3 17.1 11.3 27.3s-4.1 20.1-11.3 27.3L377.9 406.1c-6.4 6.4-15 9.9-24 9.9c-18.7 0-33.9-15.2-33.9-33.9l0-62.1-128 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l128 0 0-62.1c0-18.7 15.2-33.9 33.9-33.9c9 0 17.6 3.6 24 9.9zM160 96L96 96c-17.7 0-32 14.3-32 32l0 256c0 17.7 14.3 32 32 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-53 0-96-43-96-96L0 128C0 75 43 32 96 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32z"], - "atom": [512, 512, [9883], "f5d2", "M256 398.8c-11.8 5.1-23.4 9.7-34.9 13.5c16.7 33.8 31 35.7 34.9 35.7s18.1-1.9 34.9-35.7c-11.4-3.9-23.1-8.4-34.9-13.5zM446 256c33 45.2 44.3 90.9 23.6 128c-20.2 36.3-62.5 49.3-115.2 43.2c-22 52.1-55.6 84.8-98.4 84.8s-76.4-32.7-98.4-84.8c-52.7 6.1-95-6.8-115.2-43.2C21.7 346.9 33 301.2 66 256c-33-45.2-44.3-90.9-23.6-128c20.2-36.3 62.5-49.3 115.2-43.2C179.6 32.7 213.2 0 256 0s76.4 32.7 98.4 84.8c52.7-6.1 95 6.8 115.2 43.2c20.7 37.1 9.4 82.8-23.6 128zm-65.8 67.4c-1.7 14.2-3.9 28-6.7 41.2c31.8 1.4 38.6-8.7 40.2-11.7c2.3-4.2 7-17.9-11.9-48.1c-6.8 6.3-14 12.5-21.6 18.6zm-6.7-175.9c2.8 13.1 5 26.9 6.7 41.2c7.6 6.1 14.8 12.3 21.6 18.6c18.9-30.2 14.2-44 11.9-48.1c-1.6-2.9-8.4-13-40.2-11.7zM290.9 99.7C274.1 65.9 259.9 64 256 64s-18.1 1.9-34.9 35.7c11.4 3.9 23.1 8.4 34.9 13.5c11.8-5.1 23.4-9.7 34.9-13.5zm-159 88.9c1.7-14.3 3.9-28 6.7-41.2c-31.8-1.4-38.6 8.7-40.2 11.7c-2.3 4.2-7 17.9 11.9 48.1c6.8-6.3 14-12.5 21.6-18.6zM110.2 304.8C91.4 335 96 348.7 98.3 352.9c1.6 2.9 8.4 13 40.2 11.7c-2.8-13.1-5-26.9-6.7-41.2c-7.6-6.1-14.8-12.3-21.6-18.6zM336 256a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zm-80-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"], - "soap": [512, 512, [129532], "e06e", "M208 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM320 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM416 32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0 160c0 27.6-11.7 52.5-30.4 70.1C422.1 275.7 448 310.8 448 352c0 53-43 96-96 96l-192 0c-53 0-96-43-96-96s43-96 96-96l88.4 0c-15.2-17-24.4-39.4-24.4-64L96 192c-53 0-96 43-96 96L0 416c0 53 43 96 96 96l320 0c53 0 96-43 96-96l0-128c0-53-43-96-96-96zM160 288c-35.3 0-64 28.7-64 64s28.7 64 64 64l192 0c35.3 0 64-28.7 64-64s-28.7-64-64-64l-32 0-160 0z"], - "icons": [512, 512, ["heart-music-camera-bolt"], "f86d", "M500.3 7.3C507.7 13.3 512 22.4 512 32l0 144c0 26.5-28.7 48-64 48s-64-21.5-64-48s28.7-48 64-48l0-57L352 90.2 352 208c0 26.5-28.7 48-64 48s-64-21.5-64-48s28.7-48 64-48l0-96c0-15.3 10.8-28.4 25.7-31.4l160-32c9.4-1.9 19.1 .6 26.6 6.6zM74.7 304l11.8-17.8c5.9-8.9 15.9-14.2 26.6-14.2l61.7 0c10.7 0 20.7 5.3 26.6 14.2L213.3 304l26.7 0c26.5 0 48 21.5 48 48l0 112c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 352c0-26.5 21.5-48 48-48l26.7 0zM192 408a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM478.7 278.3L440.3 368l55.7 0c6.7 0 12.6 4.1 15 10.4s.6 13.3-4.4 17.7l-128 112c-5.6 4.9-13.9 5.3-19.9 .9s-8.2-12.4-5.3-19.2L391.7 400 336 400c-6.7 0-12.6-4.1-15-10.4s-.6-13.3 4.4-17.7l128-112c5.6-4.9 13.9-5.3 19.9-.9s8.2 12.4 5.3 19.2zm-339-59.2c-6.5 6.5-17 6.5-23 0L19.9 119.2c-28-29-26.5-76.9 5-103.9c27-23.5 68.4-19 93.4 6.5l10 10.5 9.5-10.5c25-25.5 65.9-30 93.9-6.5c31 27 32.5 74.9 4.5 103.9l-96.4 99.9z"], - "microphone-lines-slash": [640, 512, ["microphone-alt-slash"], "f539", "M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L472.1 344.7c15.2-26 23.9-56.3 23.9-88.7l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24 0 16c0 21.2-5.1 41.1-14.2 58.7L416 300.8l0-44.8-57.1 0-34.5-27c2.9-3.1 7-5 11.6-5l80 0 0-32-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-32-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0c0-53-43-96-96-96s-96 43-96 96l0 54.3L38.8 5.1zm362.5 407l-43.1-33.9C346.1 382 333.3 384 320 384c-70.7 0-128-57.3-128-128l0-8.7L144.7 210c-.5 1.9-.7 3.9-.7 6l0 40c0 89.1 66.2 162.7 152 174.4l0 33.6-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-33.6c20.4-2.8 39.7-9.1 57.3-18.2z"], - "bridge-circle-check": [640, 512, [], "e4c9", "M64 32C46.3 32 32 46.3 32 64s14.3 32 32 32l40 0 0 64-72 0 0 128c53 0 96 43 96 96l0 64c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96c6.3 0 12.4 .6 18.3 1.7C367.1 231.8 426.9 192 496 192c42.5 0 81.6 15.1 112 40.2l0-72.2-72 0 0-64 40 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 32zM488 96l0 64-80 0 0-64 80 0zM360 96l0 64-80 0 0-64 80 0zM232 96l0 64-80 0 0-64 80 0zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z"], - "pump-medical": [448, 512, [], "e06a", "M128 32l0 96 128 0 0-32 60.1 0c4.2 0 8.3 1.7 11.3 4.7l33.9 33.9c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L372.7 55.4c-15-15-35.4-23.4-56.6-23.4L256 32c0-17.7-14.3-32-32-32L160 0c-17.7 0-32 14.3-32 32zM117.4 160c-33.3 0-61 25.5-63.8 58.7L35 442.7C31.9 480 61.3 512 98.8 512l186.4 0c37.4 0 66.9-32 63.8-69.3l-18.7-224c-2.8-33.2-30.5-58.7-63.8-58.7l-149.1 0zM216 280l0 32 32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0 0 32c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-32-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l32 0 0-32c0-13.3 10.7-24 24-24s24 10.7 24 24z"], - "fingerprint": [512, 512, [], "f577", "M48 256C48 141.1 141.1 48 256 48c63.1 0 119.6 28.1 157.8 72.5c8.6 10.1 23.8 11.2 33.8 2.6s11.2-23.8 2.6-33.8C403.3 34.6 333.7 0 256 0C114.6 0 0 114.6 0 256l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40zm458.5-52.9c-2.7-13-15.5-21.3-28.4-18.5s-21.3 15.5-18.5 28.4c2.9 13.9 4.5 28.3 4.5 43.1l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40c0-18.1-1.9-35.8-5.5-52.9zM256 80c-19 0-37.4 3-54.5 8.6c-15.2 5-18.7 23.7-8.3 35.9c7.1 8.3 18.8 10.8 29.4 7.9c10.6-2.9 21.8-4.4 33.4-4.4c70.7 0 128 57.3 128 128l0 24.9c0 25.2-1.5 50.3-4.4 75.3c-1.7 14.6 9.4 27.8 24.2 27.8c11.8 0 21.9-8.6 23.3-20.3c3.3-27.4 5-55 5-82.7l0-24.9c0-97.2-78.8-176-176-176zM150.7 148.7c-9.1-10.6-25.3-11.4-33.9-.4C93.7 178 80 215.4 80 256l0 24.9c0 24.2-2.6 48.4-7.8 71.9C68.8 368.4 80.1 384 96.1 384c10.5 0 19.9-7 22.2-17.3c6.4-28.1 9.7-56.8 9.7-85.8l0-24.9c0-27.2 8.5-52.4 22.9-73.1c7.2-10.4 8-24.6-.2-34.2zM256 160c-53 0-96 43-96 96l0 24.9c0 35.9-4.6 71.5-13.8 106.1c-3.8 14.3 6.7 29 21.5 29c9.5 0 17.9-6.2 20.4-15.4c10.5-39 15.9-79.2 15.9-119.7l0-24.9c0-28.7 23.3-52 52-52s52 23.3 52 52l0 24.9c0 36.3-3.5 72.4-10.4 107.9c-2.7 13.9 7.7 27.2 21.8 27.2c10.2 0 19-7 21-17c7.7-38.8 11.6-78.3 11.6-118.1l0-24.9c0-53-43-96-96-96zm24 96c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24.9c0 59.9-11 119.3-32.5 175.2l-5.9 15.3c-4.8 12.4 1.4 26.3 13.8 31s26.3-1.4 31-13.8l5.9-15.3C267.9 411.9 280 346.7 280 280.9l0-24.9z"], - "hand-point-right": [512, 512, [], "f0a4", "M480 96c17.7 0 32 14.3 32 32s-14.3 32-32 32l-208 0 0-64 208 0zM320 288c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0zm64-64c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l48 0c17.7 0 32 14.3 32 32zM288 384c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0zm-88-96l.6 0c-5.4 9.4-8.6 20.3-8.6 32c0 13.2 4 25.4 10.8 35.6C177.9 364.3 160 388.1 160 416c0 11.7 3.1 22.6 8.6 32l-8.6 0C71.6 448 0 376.4 0 288l0-61.7c0-42.4 16.9-83.1 46.9-113.1l11.6-11.6C82.5 77.5 115.1 64 149 64l27 0c35.3 0 64 28.7 64 64l0 88c0 22.1-17.9 40-40 40s-40-17.9-40-40l0-56c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 56c0 39.8 32.2 72 72 72z"], - "magnifying-glass-location": [512, 512, ["search-location"], "f689", "M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM288 176c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 48.8 46.5 111.6 68.6 138.6c6 7.3 16.8 7.3 22.7 0c22.1-27 68.6-89.8 68.6-138.6zm-112 0a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"], - "forward-step": [320, 512, ["step-forward"], "f051", "M52.5 440.6c-9.5 7.9-22.8 9.7-34.1 4.4S0 428.4 0 416L0 96C0 83.6 7.2 72.3 18.4 67s24.5-3.6 34.1 4.4l192 160L256 241l0-145c0-17.7 14.3-32 32-32s32 14.3 32 32l0 320c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-145-11.5 9.6-192 160z"], - "face-smile-beam": [512, 512, [128522, "smile-beam"], "f5b8", "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zm53.5-96.7s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z"], - "flag-checkered": [448, 512, [127937], "f11e", "M32 0C49.7 0 64 14.3 64 32l0 16 69-17.2c38.1-9.5 78.3-5.1 113.5 12.5c46.3 23.2 100.8 23.2 147.1 0l9.6-4.8C423.8 28.1 448 43.1 448 66.1l0 279.7c0 13.3-8.3 25.3-20.8 30l-34.7 13c-46.2 17.3-97.6 14.6-141.7-7.4c-37.9-19-81.3-23.7-122.5-13.4L64 384l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-80 0-66L0 64 0 32C0 14.3 14.3 0 32 0zM64 187.1l64-13.9 0 65.5L64 252.6 64 318l48.8-12.2c5.1-1.3 10.1-2.4 15.2-3.3l0-63.9 38.9-8.4c8.3-1.8 16.7-2.5 25.1-2.1l0-64c13.6 .4 27.2 2.6 40.4 6.4l23.6 6.9 0 66.7-41.7-12.3c-7.3-2.1-14.8-3.4-22.3-3.8l0 71.4c21.8 1.9 43.3 6.7 64 14.4l0-69.8 22.7 6.7c13.5 4 27.3 6.4 41.3 7.4l0-64.2c-7.8-.8-15.6-2.3-23.2-4.5l-40.8-12 0-62c-13-3.8-25.8-8.8-38.2-15c-8.2-4.1-16.9-7-25.8-8.8l0 72.4c-13-.4-26 .8-38.7 3.6L128 173.2 128 98 64 114l0 73.1zM320 335.7c16.8 1.5 33.9-.7 50-6.8l14-5.2 0-71.7-7.9 1.8c-18.4 4.3-37.3 5.7-56.1 4.5l0 77.4zm64-149.4l0-70.8c-20.9 6.1-42.4 9.1-64 9.1l0 69.4c13.9 1.4 28 .5 41.7-2.6l22.3-5.2z"], - "football": [512, 512, [127944, "football-ball"], "f44e", "M247.5 25.4c-13.5 3.3-26.4 7.2-38.6 11.7C142.9 61.6 96.7 103.6 66 153.6C47.8 183.4 35.1 215.9 26.9 249L264.5 486.6c13.5-3.3 26.4-7.2 38.6-11.7c66-24.5 112.2-66.5 142.9-116.5c18.3-29.8 30.9-62.3 39.1-95.3L247.5 25.4zM495.2 205.3c6.1-56.8 1.4-112.2-7.7-156.4c-2.7-12.9-13-22.9-26.1-25.1c-58.2-9.7-109.9-12-155.6-7.9L495.2 205.3zM206.1 496L16.8 306.7c-6.1 56.8-1.4 112.2 7.7 156.4c2.7 12.9 13 22.9 26.1 25.1c58.2 9.7 109.9 12 155.6 7.9zm54.6-331.3c6.2-6.2 16.4-6.2 22.6 0l64 64c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-64-64c-6.2-6.2-6.2-16.4 0-22.6zm-48 48c6.2-6.2 16.4-6.2 22.6 0l64 64c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-64-64c-6.2-6.2-6.2-16.4 0-22.6zm-48 48c6.2-6.2 16.4-6.2 22.6 0l64 64c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-64-64c-6.2-6.2-6.2-16.4 0-22.6z"], - "school-circle-exclamation": [640, 512, [], "e56c", "M337.8 5.4C327-1.8 313-1.8 302.2 5.4L166.3 96 48 96C21.5 96 0 117.5 0 144L0 464c0 26.5 21.5 48 48 48l272 0s0 0 0 0l-64 0 0-96c0-35.3 28.7-64 64-64l.3 0 .5 0c3.4-37.7 18.7-72.1 42.2-99.1C350.2 260 335.6 264 320 264c-48.6 0-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88c0 18.3-5.6 35.3-15.1 49.4c29-21 64.6-33.4 103.1-33.4c59.5 0 112.1 29.6 144 74.8L640 144c0-26.5-21.5-48-48-48L473.7 96 337.8 5.4zM96 192l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16zm0 128l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16zM320 128c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0 0-16c0-8.8-7.2-16-16-16zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z"], - "crop": [512, 512, [], "f125", "M448 109.3l54.6-54.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L402.7 64 160 64l0 64 178.7 0L128 338.7 128 32c0-17.7-14.3-32-32-32S64 14.3 64 32l0 32L32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l32 0 0 256c0 35.3 28.7 64 64 64l224 0 0-64-178.7 0L384 173.3 384 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-274.7z"], - "angles-down": [448, 512, ["angle-double-down"], "f103", "M246.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-160-160c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L224 402.7 361.4 265.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-160 160zm160-352l-160 160c-12.5 12.5-32.8 12.5-45.3 0l-160-160c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L224 210.7 361.4 73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3z"], - "users-rectangle": [640, 512, [], "e594", "M96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96l448 0c53 0 96-43 96-96l0-320c0-53-43-96-96-96L96 0zM64 96c0-17.7 14.3-32 32-32l448 0c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32L96 448c-17.7 0-32-14.3-32-32L64 96zm159.8 80a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM96 309.3c0 14.7 11.9 26.7 26.7 26.7l56.1 0c8-34.1 32.8-61.7 65.2-73.6c-7.5-4.1-16.2-6.4-25.3-6.4l-69.3 0C119.9 256 96 279.9 96 309.3zM461.2 336l56.1 0c14.7 0 26.7-11.9 26.7-26.7c0-29.5-23.9-53.3-53.3-53.3l-69.3 0c-9.2 0-17.8 2.3-25.3 6.4c32.4 11.9 57.2 39.5 65.2 73.6zM372 289c-3.9-.7-7.9-1-12-1l-80 0c-4.1 0-8.1 .3-12 1c-26 4.4-47.3 22.7-55.9 47c-2.7 7.5-4.1 15.6-4.1 24c0 13.3 10.7 24 24 24l176 0c13.3 0 24-10.7 24-24c0-8.4-1.4-16.5-4.1-24c-8.6-24.3-29.9-42.6-55.9-47zM512 176a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM320 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128z"], - "people-roof": [640, 512, [], "e537", "M335.5 4l288 160c15.4 8.6 21 28.1 12.4 43.5s-28.1 21-43.5 12.4L320 68.6 47.5 220c-15.4 8.6-34.9 3-43.5-12.4s-3-34.9 12.4-43.5L304.5 4c9.7-5.4 21.4-5.4 31.1 0zM320 160a40 40 0 1 1 0 80 40 40 0 1 1 0-80zM144 256a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm312 40a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM226.9 491.4L200 441.5l0 38.5c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32l0-38.5L61.1 491.4c-6.3 11.7-20.8 16-32.5 9.8s-16-20.8-9.8-32.5l37.9-70.3c15.3-28.5 45.1-46.3 77.5-46.3l19.5 0c16.3 0 31.9 4.5 45.4 12.6l33.6-62.3c15.3-28.5 45.1-46.3 77.5-46.3l19.5 0c32.4 0 62.1 17.8 77.5 46.3l33.6 62.3c13.5-8.1 29.1-12.6 45.4-12.6l19.5 0c32.4 0 62.1 17.8 77.5 46.3l37.9 70.3c6.3 11.7 1.9 26.2-9.8 32.5s-26.2 1.9-32.5-9.8L552 441.5l0 38.5c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32l0-38.5-26.9 49.9c-6.3 11.7-20.8 16-32.5 9.8s-16-20.8-9.8-32.5l36.3-67.5c-1.7-1.7-3.2-3.6-4.3-5.8L376 345.5l0 54.5c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32l0-54.5-26.9 49.9c-1.2 2.2-2.6 4.1-4.3 5.8l36.3 67.5c6.3 11.7 1.9 26.2-9.8 32.5s-26.2 1.9-32.5-9.8z"], - "people-line": [640, 512, [], "e534", "M360 72a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zM144 208a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416zM496 208a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM200 313.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-36.3-67.5c1.7-1.7 3.2-3.6 4.3-5.8L264 217.5l0 54.5c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32l0-54.5 26.9 49.9c1.2 2.2 2.6 4.1 4.3 5.8l-36.3 67.5c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L440 313.5l0 38.5c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32l0-38.5 26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-37.9-70.3c-15.3-28.5-45.1-46.3-77.5-46.3l-19.5 0c-16.3 0-31.9 4.5-45.4 12.6l-33.6-62.3c-15.3-28.5-45.1-46.3-77.5-46.3l-19.5 0c-32.4 0-62.1 17.8-77.5 46.3l-33.6 62.3c-13.5-8.1-29.1-12.6-45.4-12.6l-19.5 0c-32.4 0-62.1 17.8-77.5 46.3L18.9 340.6c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L88 313.5 88 352c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32l0-38.5z"], - "beer-mug-empty": [512, 512, ["beer"], "f0fc", "M32 64c0-17.7 14.3-32 32-32l288 0c17.7 0 32 14.3 32 32l0 32 51.2 0c42.4 0 76.8 34.4 76.8 76.8l0 102.1c0 30.4-17.9 57.9-45.6 70.2L384 381.7l0 34.3c0 35.3-28.7 64-64 64L96 480c-35.3 0-64-28.7-64-64L32 64zM384 311.6l56.4-25.1c4.6-2.1 7.6-6.6 7.6-11.7l0-102.1c0-7.1-5.7-12.8-12.8-12.8L384 160l0 151.6zM160 144c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224zm64 0c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224zm64 0c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224z"], - "diagram-predecessor": [512, 512, [], "e477", "M448 416l0-64L64 352l0 64 384 0zm0 64L64 480c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64zM288 160c0 35.3-28.7 64-64 64L64 224c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l144 0 16 0 144 0c44.2 0 80 35.8 80 80l0 16 38.1 0c21.4 0 32.1 25.9 17 41L433 239c-9.4 9.4-24.6 9.4-33.9 0L329 169c-15.1-15.1-4.4-41 17-41l38.1 0 0-16c0-8.8-7.2-16-16-16l-80 0 0 64z"], - "arrow-up-long": [384, 512, ["long-arrow-up"], "f176", "M214.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 109.3 160 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-370.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128z"], - "fire-flame-simple": [384, 512, ["burn"], "f46a", "M372.5 256.5l-.7-1.9C337.8 160.8 282 76.5 209.1 8.5l-3.3-3C202.1 2 197.1 0 192 0s-10.1 2-13.8 5.5l-3.3 3C102 76.5 46.2 160.8 12.2 254.6l-.7 1.9C3.9 277.3 0 299.4 0 321.6C0 426.7 86.8 512 192 512s192-85.3 192-190.4c0-22.2-3.9-44.2-11.5-65.1zm-90.8 49.5c4.1 9.3 6.2 19.4 6.2 29.5c0 53-43 96.5-96 96.5s-96-43.5-96-96.5c0-10.1 2.1-20.3 6.2-29.5l1.9-4.3c15.8-35.4 37.9-67.7 65.3-95.1l8.9-8.9c3.6-3.6 8.5-5.6 13.6-5.6s10 2 13.6 5.6l8.9 8.9c27.4 27.4 49.6 59.7 65.3 95.1l1.9 4.3z"], - "person": [320, 512, [129485, "male"], "f183", "M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0z"], - "laptop": [640, 512, [128187], "f109", "M128 32C92.7 32 64 60.7 64 96l0 256 64 0 0-256 384 0 0 256 64 0 0-256c0-35.3-28.7-64-64-64L128 32zM19.2 384C8.6 384 0 392.6 0 403.2C0 445.6 34.4 480 76.8 480l486.4 0c42.4 0 76.8-34.4 76.8-76.8c0-10.6-8.6-19.2-19.2-19.2L19.2 384z"], - "file-csv": [512, 512, [], "f6dd", "M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 144-208 0c-35.3 0-64 28.7-64 64l0 144-48 0c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zM200 352l16 0c22.1 0 40 17.9 40 40l0 8c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-8c0-4.4-3.6-8-8-8l-16 0c-4.4 0-8 3.6-8 8l0 80c0 4.4 3.6 8 8 8l16 0c4.4 0 8-3.6 8-8l0-8c0-8.8 7.2-16 16-16s16 7.2 16 16l0 8c0 22.1-17.9 40-40 40l-16 0c-22.1 0-40-17.9-40-40l0-80c0-22.1 17.9-40 40-40zm133.1 0l34.9 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-34.9 0c-7.2 0-13.1 5.9-13.1 13.1c0 5.2 3 9.9 7.8 12l37.4 16.6c16.3 7.2 26.8 23.4 26.8 41.2c0 24.9-20.2 45.1-45.1 45.1L304 512c-8.8 0-16-7.2-16-16s7.2-16 16-16l42.9 0c7.2 0 13.1-5.9 13.1-13.1c0-5.2-3-9.9-7.8-12l-37.4-16.6c-16.3-7.2-26.8-23.4-26.8-41.2c0-24.9 20.2-45.1 45.1-45.1zm98.9 0c8.8 0 16 7.2 16 16l0 31.6c0 23 5.5 45.6 16 66c10.5-20.3 16-42.9 16-66l0-31.6c0-8.8 7.2-16 16-16s16 7.2 16 16l0 31.6c0 34.7-10.3 68.7-29.6 97.6l-5.1 7.7c-3 4.5-8 7.1-13.3 7.1s-10.3-2.7-13.3-7.1l-5.1-7.7c-19.3-28.9-29.6-62.9-29.6-97.6l0-31.6c0-8.8 7.2-16 16-16z"], - "menorah": [640, 512, [], "f676", "M20.8 7.4C22.8 2.9 27.1 0 32 0s9.2 2.9 11.2 7.4L61.3 49.7c1.8 4.1 2.7 8.6 2.7 13.1L64 64c0 17.7-14.3 32-32 32S0 81.7 0 64l0-1.2c0-4.5 .9-8.9 2.7-13.1L20.8 7.4zm96 0C118.8 2.9 123.1 0 128 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1L116.8 7.4zm77.8 42.4L212.8 7.4C214.8 2.9 219.1 0 224 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1zM308.8 7.4C310.8 2.9 315.1 0 320 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1L308.8 7.4zm77.8 42.4L404.8 7.4C406.8 2.9 411.1 0 416 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1zM500.8 7.4C502.8 2.9 507.1 0 512 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1L500.8 7.4zm77.8 42.4L596.8 7.4C598.8 2.9 603.1 0 608 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1zM32 128c17.7 0 32 14.3 32 32l0 128c0 17.7 14.3 32 32 32l192 0 0-160c0-17.7 14.3-32 32-32s32 14.3 32 32l0 160 192 0c17.7 0 32-14.3 32-32l0-128c0-17.7 14.3-32 32-32s32 14.3 32 32l0 128c0 53-43 96-96 96l-192 0 0 64 128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0-160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l128 0 0-64L96 384c-53 0-96-43-96-96L0 160c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32l0 96 0 32-64 0 0-32 0-96c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32l0 96 0 32-64 0 0-32 0-96c0-17.7 14.3-32 32-32zm192 0c17.7 0 32 14.3 32 32l0 96 0 32-64 0 0-32 0-96c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32l0 96 0 32-64 0 0-32 0-96c0-17.7 14.3-32 32-32z"], - "truck-plane": [640, 512, [], "e58f", "M200 0c-30.6 0-56 54.7-56 86.1l0 106.5L7.8 274.3C2.9 277.2 0 282.4 0 288l0 64c0 5.1 2.4 9.8 6.4 12.8s9.3 3.9 14.1 2.5l123.4-37 0 81.2-50 40c-3.8 3-6 7.6-6 12.5l0 32c0 5.1 2.5 10 6.6 13s9.5 3.8 14.4 2.2L200 480.9 290.4 511c-1.6-4.7-2.4-9.8-2.4-15l0-32.6c-18.2-10.5-30.7-29.7-31.9-51.8l-.1-.1 0-3.5 0-82.5L256 184l0-1.1s0 0 0 0l0-96.9C256 54.7 231.5 0 200 0zm88 176l0 224c0 20.9 13.4 38.7 32 45.3l0 42.7c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-40 160 0 0 40c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-42.7c18.6-6.6 32-24.4 32-45.3l0-224c0-26.5-21.5-48-48-48l-256 0c-26.5 0-48 21.5-48 48zm79.8 78.7c3.3-8.7 11.2-14.7 20.5-14.7l151.4 0c9.2 0 17.2 6 20.5 14.7L576 304l-224 0 15.8-49.3zM568 352a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM336 376a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"], - "record-vinyl": [512, 512, [], "f8d9", "M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256-96a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm0 224a128 128 0 1 0 0-256 128 128 0 1 0 0 256zm0-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"], - "face-grin-stars": [512, 512, [129321, "grin-stars"], "f587", "M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm407.4 75.5c5-11.8-7-22.5-19.3-18.7c-39.7 12.2-84.5 19-131.8 19s-92.1-6.8-131.8-19c-12.3-3.8-24.3 6.9-19.3 18.7c25 59.1 83.2 100.5 151.1 100.5s126.2-41.4 151.1-100.5zM160 120c-3.1 0-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L160 232.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L226.4 178c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7c-1.3-2.8-4.1-4.6-7.2-4.6zm192 0c-3.1 0-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L352 232.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L418.4 178c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7c-1.3-2.8-4.1-4.6-7.2-4.6z"], - "bong": [448, 512, [], "f55c", "M160 208.5c0 29.1-15.6 53.9-37.2 67.8c-17.2 11.1-31.5 26.1-41.7 43.7l221.8 0c-10.2-17.6-24.5-32.6-41.7-43.7c-21.6-13.9-37.2-38.7-37.2-67.8L224 64l-64 0 0 144.5zM288 64l0 144.5c0 5.7 3.1 10.9 7.9 14c11.2 7.2 21.5 15.5 30.9 24.8L366.1 208l-7-7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l24 24 24 24c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-7-7-43.3 43.3C374 314.1 384 347.9 384 384c0 39.4-11.9 76.1-32.2 106.5c-9.6 14.4-26.5 21.5-43.8 21.5L76.1 512c-17.3 0-34.2-7.1-43.8-21.5C11.9 460.1 0 423.4 0 384c0-67.8 35.1-127.3 88.1-161.5c4.8-3.1 7.9-8.3 7.9-14L96 64C78.3 64 64 49.7 64 32S78.3 0 96 0l16 0L272 0l16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32z"], - "spaghetti-monster-flying": [640, 512, ["pastafarianism"], "f67b", "M208 64a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 0c0 16.2-6 31.1-16 42.3l15.6 31.2c18.7-6 39.9-9.5 64.4-9.5s45.8 3.5 64.4 9.5L400 106.3C390 95.1 384 80.2 384 64c0-35.3 28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64c-1.7 0-3.4-.1-5.1-.2L427.8 158c21.1 13.6 37.7 30.2 51.4 46.4c7.1 8.3 13.5 16.6 19.3 24l1.4 1.8c6.3 8.1 11.6 14.8 16.7 20.4C527.3 262.3 532.7 264 536 264c2.5 0 4.3-.6 7.1-3.3c3.7-3.5 7.1-8.8 12.5-17.4l.6-.9c4.6-7.4 11-17.6 19.4-25.7c9.7-9.3 22.9-16.7 40.4-16.7c13.3 0 24 10.7 24 24s-10.7 24-24 24c-2.5 0-4.3 .6-7.1 3.3c-3.7 3.5-7.1 8.8-12.5 17.4l-.6 .9c-4.6 7.4-11 17.6-19.4 25.7c-9.7 9.3-22.9 16.7-40.4 16.7c-18.5 0-32.9-8.5-44.3-18.6c-3.1 4-6.6 8.3-10.5 12.7c1.4 4.3 2.8 8.5 4 12.5c.9 3 1.8 5.8 2.6 8.6c3 9.8 5.5 18.2 8.6 25.9c3.9 9.8 7.4 15.4 10.8 18.5c2.6 2.4 5.9 4.3 12.8 4.3c8.7 0 16.9-4.2 33.7-13.2c15-8 35.7-18.8 62.3-18.8c13.3 0 24 10.7 24 24s-10.7 24-24 24c-13.4 0-24.7 5.2-39.7 13.2c-1 .6-2.1 1.1-3.2 1.7C559.9 414 541.4 424 520 424c-18.4 0-33.6-6.1-45.5-17.2c-11.1-10.3-17.9-23.7-22.7-36c-3.6-9-6.7-19.1-9.5-28.5c-16.4 12.3-36.1 23.6-58.9 31.3c3.6 10.8 8.4 23.5 14.4 36.2c7.5 15.9 16.2 30.4 25.8 40.5C433 460.5 441.2 464 448 464c13.3 0 24 10.7 24 24s-10.7 24-24 24c-25.2 0-45-13.5-59.5-28.8c-14.5-15.4-25.7-34.9-34.2-53c-8-17-14.1-33.8-18.3-46.9c-5.2 .4-10.6 .6-16 .6s-10.8-.2-16-.6c-4.2 13-10.3 29.9-18.3 46.9c-8.5 18.1-19.8 37.6-34.2 53C237 498.5 217.2 512 192 512c-13.3 0-24-10.7-24-24s10.7-24 24-24c6.8 0 15-3.5 24.5-13.7c9.5-10.1 18.3-24.6 25.8-40.5c5.9-12.6 10.7-25.4 14.4-36.2c-22.8-7.7-42.5-19-58.9-31.3c-2.9 9.4-6 19.5-9.5 28.5c-4.8 12.2-11.6 25.6-22.7 36C153.6 417.9 138.4 424 120 424c-21.4 0-39.9-10-53.1-17.1c0 0 0 0 0 0c-1.1-.6-2.2-1.2-3.2-1.7c-15-8-26.3-13.2-39.7-13.2c-13.3 0-24-10.7-24-24s10.7-24 24-24c26.6 0 47.3 10.8 62.3 18.8c16.8 9 25 13.2 33.7 13.2c6.8 0 10.2-1.9 12.8-4.3c3.4-3.2 7-8.8 10.8-18.5c3-7.7 5.6-16.1 8.6-25.9c.8-2.7 1.7-5.6 2.6-8.6c1.2-4 2.6-8.2 4-12.5c-3.9-4.5-7.4-8.8-10.5-12.7C136.9 303.5 122.5 312 104 312c-17.5 0-30.7-7.4-40.4-16.7c-8.4-8.1-14.8-18.3-19.4-25.7l-.6-.9c-5.4-8.6-8.8-13.9-12.5-17.4c-2.8-2.7-4.6-3.3-7.1-3.3c-13.3 0-24-10.7-24-24s10.7-24 24-24c17.5 0 30.7 7.4 40.4 16.7c8.4 8.1 14.8 18.3 19.4 25.7l.6 .9c5.4 8.6 8.8 13.9 12.5 17.4c2.8 2.7 4.6 3.3 7.1 3.3c3.3 0 8.7-1.7 19.4-13.4c5.1-5.6 10.4-12.3 16.7-20.4l1.4-1.8c5.8-7.4 12.2-15.7 19.3-24c13.8-16.2 30.3-32.8 51.4-46.4l-15.1-30.2c-1.7 .1-3.4 .2-5.1 .2c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zm208 0a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z"], - "arrow-down-up-across-line": [576, 512, [], "e4af", "M137.4 502.6c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 402.7 192 288l352 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0 0-114.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L384 109.3 384 224l-192 0-64 0-96 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 0 114.7L86.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96zM128 192l64 0 0-128c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 128zM448 320l-64 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128z"], - "spoon": [512, 512, [129348, 61873, "utensil-spoon"], "f2e5", "M245.8 220.9c-14.5-17.6-21.8-39.2-21.8-60.8C224 80 320 0 416 0c53 0 96 43 96 96c0 96-80 192-160.2 192c-21.6 0-43.2-7.3-60.8-21.8L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L245.8 220.9z"], - "jar-wheat": [320, 512, [], "e517", "M32 32C32 14.3 46.3 0 64 0L256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 64C46.3 64 32 49.7 32 32zM0 160c0-35.3 28.7-64 64-64l192 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 160zm112 0l-42.2 0c-3.2 0-5.8 2.6-5.8 5.8C64 198 90 224 122.2 224l21.8 0 32 0 21.8 0c32.1 0 58.2-26 58.2-58.2c0-3.2-2.6-5.8-5.8-5.8L208 160c-19.1 0-36.3 8.4-48 21.7c-11.7-13.3-28.9-21.7-48-21.7zm48 117.7c-11.7-13.3-28.9-21.7-48-21.7l-42.2 0c-3.2 0-5.8 2.6-5.8 5.8C64 294 90 320 122.2 320l21.8 0 32 0 21.8 0c32.1 0 58.2-26 58.2-58.2c0-3.2-2.6-5.8-5.8-5.8L208 256c-19.1 0-36.3 8.4-48 21.7zM112 352l-42.2 0c-3.2 0-5.8 2.6-5.8 5.8C64 390 90 416 122.2 416l21.8 0 0 32c0 8.8 7.2 16 16 16s16-7.2 16-16l0-32 21.8 0c32.1 0 58.2-26 58.2-58.2c0-3.2-2.6-5.8-5.8-5.8L208 352c-19.1 0-36.3 8.4-48 21.7c-11.7-13.3-28.9-21.7-48-21.7z"], - "envelopes-bulk": [640, 512, ["mail-bulk"], "f674", "M128 0C110.3 0 96 14.3 96 32l0 192 96 0 0-32c0-35.3 28.7-64 64-64l224 0 0-96c0-17.7-14.3-32-32-32L128 0zM256 160c-17.7 0-32 14.3-32 32l0 32 96 0c35.3 0 64 28.7 64 64l0 128 192 0c17.7 0 32-14.3 32-32l0-192c0-17.7-14.3-32-32-32l-320 0zm240 64l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM64 256c-17.7 0-32 14.3-32 32l0 13L187.1 415.9c1.4 1 3.1 1.6 4.9 1.6s3.5-.6 4.9-1.6L352 301l0-13c0-17.7-14.3-32-32-32L64 256zm288 84.8L216 441.6c-6.9 5.1-15.3 7.9-24 7.9s-17-2.8-24-7.9L32 340.8 32 480c0 17.7 14.3 32 32 32l256 0c17.7 0 32-14.3 32-32l0-139.2z"], - "file-circle-exclamation": [576, 512, [], "e4eb", "M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zm48 96a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0-192c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z"], - "circle-h": [512, 512, [9405, "hospital-symbol"], "f47e", "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM368 152l0 104 0 104c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-80-128 0 0 80c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-208c0-13.3 10.7-24 24-24s24 10.7 24 24l0 80 128 0 0-80c0-13.3 10.7-24 24-24s24 10.7 24 24z"], - "pager": [512, 512, [128223], "f815", "M0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zm64 32l0 64c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32L96 128c-17.7 0-32 14.3-32 32zM80 320c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-56 0zm136 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0z"], - "address-book": [512, 512, [62138, "contact-book"], "f2b9", "M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L96 0zM208 288l64 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-32-96a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM512 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64zM496 192c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8-7.2-16-16-16zm16 144c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64z"], - "strikethrough": [512, 512, [], "f0cc", "M161.3 144c3.2-17.2 14-30.1 33.7-38.6c21.1-9 51.8-12.3 88.6-6.5c11.9 1.9 48.8 9.1 60.1 12c17.1 4.5 34.6-5.6 39.2-22.7s-5.6-34.6-22.7-39.2c-14.3-3.8-53.6-11.4-66.6-13.4c-44.7-7-88.3-4.2-123.7 10.9c-36.5 15.6-64.4 44.8-71.8 87.3c-.1 .6-.2 1.1-.2 1.7c-2.8 23.9 .5 45.6 10.1 64.6c4.5 9 10.2 16.9 16.7 23.9L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l448 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-209.9 0-.4-.1-1.1-.3c-36-10.8-65.2-19.6-85.2-33.1c-9.3-6.3-15-12.6-18.2-19.1c-3.1-6.1-5.2-14.6-3.8-27.4zM348.9 337.2c2.7 6.5 4.4 15.8 1.9 30.1c-3 17.6-13.8 30.8-33.9 39.4c-21.1 9-51.7 12.3-88.5 6.5c-18-2.9-49.1-13.5-74.4-22.1c-5.6-1.9-11-3.7-15.9-5.4c-16.8-5.6-34.9 3.5-40.5 20.3s3.5 34.9 20.3 40.5c3.6 1.2 7.9 2.7 12.7 4.3c0 0 0 0 0 0s0 0 0 0c24.9 8.5 63.6 21.7 87.6 25.6c0 0 0 0 0 0l.2 0c44.7 7 88.3 4.2 123.7-10.9c36.5-15.6 64.4-44.8 71.8-87.3c3.6-21 2.7-40.4-3.1-58.1l-75.7 0c7 5.6 11.4 11.2 13.9 17.2z"], - "k": [320, 512, [107], "4b", "M311 86.3c12.3-12.7 12-32.9-.7-45.2s-32.9-12-45.2 .7l-155.2 160L64 249 64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 328 0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-107 64.7-66.7 133 192c10.1 14.5 30 18.1 44.5 8.1s18.1-30 8.1-44.5L174.1 227.4 311 86.3z"], - "landmark-flag": [512, 512, [], "e51c", "M272 0l80 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-80 0 0 32 192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L48 192c-17.7 0-32-14.3-32-32s14.3-32 32-32l192 0 0-112c0-8.8 7.2-16 16-16l16 0zM64 224l64 0 0 192 40 0 0-192 64 0 0 192 48 0 0-192 64 0 0 192 40 0 0-192 64 0 0 196.3c.6 .3 1.2 .7 1.8 1.1l48 32c11.7 7.8 17 22.4 12.9 35.9S494.1 512 480 512L32 512c-14.1 0-26.5-9.2-30.6-22.7s1.1-28.1 12.9-35.9l48-32c.6-.4 1.2-.7 1.8-1.1L64 224z"], - "pencil": [512, 512, [9999, 61504, "pencil-alt"], "f303", "M410.3 231l11.3-11.3-33.9-33.9-62.1-62.1L291.7 89.8l-11.3 11.3-22.6 22.6L58.6 322.9c-10.4 10.4-18 23.3-22.2 37.4L1 480.7c-2.5 8.4-.2 17.5 6.1 23.7s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2L387.7 253.7 410.3 231zM160 399.4l-9.1 22.7c-4 3.1-8.5 5.4-13.3 6.9L59.4 452l23-78.1c1.4-4.9 3.8-9.4 6.9-13.3l22.7-9.1 0 32c0 8.8 7.2 16 16 16l32 0zM362.7 18.7L348.3 33.2 325.7 55.8 314.3 67.1l33.9 33.9 62.1 62.1 33.9 33.9 11.3-11.3 22.6-22.6 14.5-14.5c25-25 25-65.5 0-90.5L453.3 18.7c-25-25-65.5-25-90.5 0zm-47.4 168l-144 144c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l144-144c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"], - "backward": [512, 512, [9194], "f04a", "M459.5 440.6c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29l0-320c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4L288 214.3l0 41.7 0 41.7L459.5 440.6zM256 352l0-96 0-128 0-32c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4l-192 160C4.2 237.5 0 246.5 0 256s4.2 18.5 11.5 24.6l192 160c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29l0-64z"], - "caret-right": [256, 512, [], "f0da", "M246.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6l0 256c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l128-128z"], - "comments": [640, 512, [128490, 61670], "f086", "M208 352c114.9 0 208-78.8 208-176S322.9 0 208 0S0 78.8 0 176c0 38.6 14.7 74.3 39.6 103.4c-3.5 9.4-8.7 17.7-14.2 24.7c-4.8 6.2-9.7 11-13.3 14.3c-1.8 1.6-3.3 2.9-4.3 3.7c-.5 .4-.9 .7-1.1 .8l-.2 .2s0 0 0 0s0 0 0 0C1 327.2-1.4 334.4 .8 340.9S9.1 352 16 352c21.8 0 43.8-5.6 62.1-12.5c9.2-3.5 17.8-7.4 25.2-11.4C134.1 343.3 169.8 352 208 352zM448 176c0 112.3-99.1 196.9-216.5 207C255.8 457.4 336.4 512 432 512c38.2 0 73.9-8.7 104.7-23.9c7.5 4 16 7.9 25.2 11.4c18.3 6.9 40.3 12.5 62.1 12.5c6.9 0 13.1-4.5 15.2-11.1c2.1-6.6-.2-13.8-5.8-17.9c0 0 0 0 0 0s0 0 0 0l-.2-.2c-.2-.2-.6-.4-1.1-.8c-1-.8-2.5-2-4.3-3.7c-3.6-3.3-8.5-8.1-13.3-14.3c-5.5-7-10.7-15.4-14.2-24.7c24.9-29 39.6-64.7 39.6-103.4c0-92.8-84.9-168.9-192.6-175.5c.4 5.1 .6 10.3 .6 15.5z"], - "paste": [512, 512, ["file-clipboard"], "f0ea", "M160 0c-23.7 0-44.4 12.9-55.4 32L48 32C21.5 32 0 53.5 0 80L0 400c0 26.5 21.5 48 48 48l144 0 0-272c0-44.2 35.8-80 80-80l48 0 0-16c0-26.5-21.5-48-48-48l-56.6 0C204.4 12.9 183.7 0 160 0zM272 128c-26.5 0-48 21.5-48 48l0 272 0 16c0 26.5 21.5 48 48 48l192 0c26.5 0 48-21.5 48-48l0-220.1c0-12.7-5.1-24.9-14.1-33.9l-67.9-67.9c-9-9-21.2-14.1-33.9-14.1L320 128l-48 0zM160 40a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"], - "code-pull-request": [512, 512, [], "e13c", "M305.8 2.1C314.4 5.9 320 14.5 320 24l0 40 16 0c70.7 0 128 57.3 128 128l0 166.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3L400 192c0-35.3-28.7-64-64-64l-16 0 0 40c0 9.5-5.6 18.1-14.2 21.9s-18.8 2.3-25.8-4.1l-80-72c-5.1-4.6-7.9-11-7.9-17.8s2.9-13.3 7.9-17.8l80-72c7-6.3 17.2-7.9 25.8-4.1zM104 80A24 24 0 1 0 56 80a24 24 0 1 0 48 0zm8 73.3l0 205.3c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3l0-205.3C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80c0 32.8-19.7 61-48 73.3zM104 432a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm328 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"], - "clipboard-list": [384, 512, [], "f46d", "M192 0c-41.8 0-77.4 26.7-90.5 64L64 64C28.7 64 0 92.7 0 128L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-37.5 0C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM72 272a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm104-16l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zM72 368a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm88 0c0-8.8 7.2-16 16-16l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16z"], - "truck-ramp-box": [640, 512, ["truck-loading"], "f4de", "M640 0l0 400c0 61.9-50.1 112-112 112c-61 0-110.5-48.7-112-109.3L48.4 502.9c-17.1 4.6-34.6-5.4-39.3-22.5s5.4-34.6 22.5-39.3L352 353.8 352 64c0-35.3 28.7-64 64-64L640 0zM576 400a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM23.1 207.7c-4.6-17.1 5.6-34.6 22.6-39.2l46.4-12.4 20.7 77.3c2.3 8.5 11.1 13.6 19.6 11.3l30.9-8.3c8.5-2.3 13.6-11.1 11.3-19.6l-20.7-77.3 46.4-12.4c17.1-4.6 34.6 5.6 39.2 22.6l41.4 154.5c4.6 17.1-5.6 34.6-22.6 39.2L103.7 384.9c-17.1 4.6-34.6-5.6-39.2-22.6L23.1 207.7z"], - "user-check": [640, 512, [], "f4fc", "M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3zM625 177L497 305c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L591 143c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"], - "vial-virus": [512, 512, [], "e597", "M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l0 288c0 53 43 96 96 96c28.6 0 54.2-12.5 71.8-32.3c.1-14.2 5.6-28.3 16.4-39.1c.2-.2 .1-.6-.2-.6c-30.9 0-56-25.1-56-56s25.1-56 56-56c.3 0 .4-.4 .2-.6c-21.9-21.9-21.9-57.3 0-79.2c2.4-2.4 5-4.6 7.8-6.5L224 96c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0L96 32 32 32zM96 192l0-96 64 0 0 96-64 0zM216 376c28.8 0 43.2 34.8 22.9 55.2c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0c20.4-20.4 55.2-5.9 55.2 22.9c0 13.3 10.7 24 24 24s24-10.7 24-24c0-28.8 34.8-43.2 55.2-22.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9C444.8 410.8 459.2 376 488 376c13.3 0 24-10.7 24-24s-10.7-24-24-24c-28.8 0-43.2-34.8-22.9-55.2c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0C410.8 259.2 376 244.8 376 216c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 28.8-34.8 43.2-55.2 22.9c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9c20.4 20.4 5.9 55.2-22.9 55.2c-13.3 0-24 10.7-24 24s10.7 24 24 24zm104-88a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm40 96a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"], - "sheet-plastic": [384, 512, [], "e571", "M0 448c0 35.3 28.7 64 64 64l160 0 0-128c0-17.7 14.3-32 32-32l128 0 0-288c0-35.3-28.7-64-64-64L64 0C28.7 0 0 28.7 0 64L0 448zM171.3 75.3l-96 96c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l96-96c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6zm96 32l-160 160c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l160-160c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6zM384 384l-128 0 0 128L384 384z"], - "blog": [512, 512, [], "f781", "M192 32c0 17.7 14.3 32 32 32c123.7 0 224 100.3 224 224c0 17.7 14.3 32 32 32s32-14.3 32-32C512 128.9 383.1 0 224 0c-17.7 0-32 14.3-32 32zm0 96c0 17.7 14.3 32 32 32c70.7 0 128 57.3 128 128c0 17.7 14.3 32 32 32s32-14.3 32-32c0-106-86-192-192-192c-17.7 0-32 14.3-32 32zM96 144c0-26.5-21.5-48-48-48S0 117.5 0 144L0 368c0 79.5 64.5 144 144 144s144-64.5 144-144s-64.5-144-144-144l-16 0 0 96 16 0c26.5 0 48 21.5 48 48s-21.5 48-48 48s-48-21.5-48-48l0-224z"], - "user-ninja": [448, 512, [129399], "f504", "M224 256c-57.2 0-105.6-37.5-122-89.3c-1.1 1.3-2.2 2.6-3.5 3.8c-15.8 15.8-38.8 20.7-53.6 22.1c-8.1 .8-14.6-5.7-13.8-13.8c1.4-14.7 6.3-37.8 22.1-53.6c5.8-5.8 12.6-10.1 19.6-13.4c-7-3.2-13.8-7.6-19.6-13.4C37.4 82.7 32.6 59.7 31.1 44.9c-.8-8.1 5.7-14.6 13.8-13.8c14.7 1.4 37.8 6.3 53.6 22.1c4.8 4.8 8.7 10.4 11.7 16.1C131.4 28.2 174.4 0 224 0c70.7 0 128 57.3 128 128s-57.3 128-128 128zM0 482.3C0 399.5 56.4 330 132.8 309.9c6-1.6 12.2 .9 15.9 5.8l62.5 83.3c6.4 8.5 19.2 8.5 25.6 0l62.5-83.3c3.7-4.9 9.9-7.4 15.9-5.8C391.6 330 448 399.5 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3zM160 96c-8.8 0-16 7.2-16 16s7.2 16 16 16l128 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L160 96z"], - "person-arrow-up-from-line": [640, 512, [], "e539", "M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8 352l0-96 16 0 0 96-16 0zm-64 0l-88 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l120 0 80 0 376 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-344 0 0-191.1 28.6 47.5c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-58.3-97c-17.4-28.9-48.6-46.6-82.3-46.6l-29.7 0c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9 120 448zM598.6 121.4l-80-80c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L464 141.3 464 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-242.7 25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3z"], - "scroll-torah": [640, 512, ["torah"], "f6a0", "M96 480L96 32C96 14.3 74.5 0 48 0S0 14.3 0 32L0 480c0 17.7 21.5 32 48 32s48-14.3 48-32zM512 32L128 32l0 448 384 0 0-448zM592 0c-26.5 0-48 14.3-48 32l0 448c0 17.7 21.5 32 48 32s48-14.3 48-32l0-448c0-17.7-21.5-32-48-32zM196 313.7c0-3.2 .9-6.4 2.5-9.2L226.7 256l-28.3-48.5c-1.6-2.8-2.5-6-2.5-9.2c0-10.1 8.2-18.3 18.3-18.3l56.7 0 31.4-53.9c3.6-6.3 10.3-10.1 17.6-10.1s13.9 3.8 17.6 10.1L369 180l56.7 0c10.1 0 18.3 8.2 18.3 18.3c0 3.2-.9 6.4-2.5 9.2L413.3 256l28.3 48.5c1.6 2.8 2.5 6 2.5 9.2c0 10.1-8.2 18.3-18.3 18.3L369 332l-31.4 53.9c-3.6 6.3-10.3 10.1-17.6 10.1s-13.9-3.8-17.6-10.1L271 332l-56.7 0c-10.1 0-18.3-8.2-18.3-18.3zm124 54.7L341.2 332l-42.4 0L320 368.4zM254.5 256l30.3 52 70.4 0 30.3-52-30.3-52-70.4 0-30.3 52zm144.9 23.8L383 308l32.8 0-16.4-28.2zM415.8 204L383 204l16.4 28.2L415.8 204zM320 143.6L298.8 180l42.4 0L320 143.6zM224.2 204l16.4 28.2L257 204l-32.8 0zM257 308l-16.4-28.2L224.2 308l32.8 0z"], - "broom-ball": [576, 512, ["quidditch", "quidditch-broom-ball"], "f458", "M566.6 9.4c12.5 12.5 12.5 32.8 0 45.3l-192 192 34.7 34.7c4.2 4.2 6.6 10 6.6 16c0 12.5-10.1 22.6-22.6 22.6l-29.1 0L256 211.7l0-29.1c0-12.5 10.1-22.6 22.6-22.6c6 0 11.8 2.4 16 6.6l34.7 34.7 192-192c12.5-12.5 32.8-12.5 45.3 0zm-344 225.5L341.1 353.4c3.7 42.7-11.7 85.2-42.3 115.8C271.4 496.6 234.2 512 195.5 512L22.1 512C9.9 512 0 502.1 0 489.9c0-6.3 2.7-12.3 7.3-16.5L133.7 359.7c4.2-3.7-.4-10.4-5.4-7.9L77.2 377.4c-6.1 3-13.2-1.4-13.2-8.2c0-31.5 12.5-61.7 34.8-84l8-8c30.6-30.6 73.1-45.9 115.8-42.3zM464 352a80 80 0 1 1 0 160 80 80 0 1 1 0-160z"], - "toggle-off": [576, 512, [], "f204", "M384 128c70.7 0 128 57.3 128 128s-57.3 128-128 128l-192 0c-70.7 0-128-57.3-128-128s57.3-128 128-128l192 0zM576 256c0-106-86-192-192-192L192 64C86 64 0 150 0 256S86 448 192 448l192 0c106 0 192-86 192-192zM192 352a96 96 0 1 0 0-192 96 96 0 1 0 0 192z"], - "box-archive": [512, 512, ["archive"], "f187", "M32 32l448 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96L0 64C0 46.3 14.3 32 32 32zm0 128l448 0 0 256c0 35.3-28.7 64-64 64L96 480c-35.3 0-64-28.7-64-64l0-256zm128 80c0 8.8 7.2 16 16 16l160 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-160 0c-8.8 0-16 7.2-16 16z"], - "person-drowning": [576, 512, [], "e545", "M192 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32.2c0 54.1 23.5 104 62.2 138.3l-21 146.7c7.8 2.1 15.5 3.3 22.8 3.3c21.1 0 42-8.5 59.2-20.3c22.1-15.5 51.6-15.5 73.7 0c12.4 8.5 26.1 14.8 39.7 18l17.7-97.6c10.7-1.2 21.3-3.1 31.9-5.5l105-23.9c17.2-3.9 28-21.1 24.1-38.3s-21.1-28-38.3-24.1L400 216.6c-41 9.3-83.7 7.5-123.7-5.2c-50.2-16-84.3-62.6-84.3-115.3L192 64zM320 192a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM306.5 389.9c-11.1-7.9-25.9-7.9-37 0C247 405.4 219.5 416 192 416c-26.9 0-55.3-10.8-77.4-26.1c0 0 0 0 0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 469.7 159 480 192 480c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7c0 0 0 0 0 0C439.4 405.2 410.9 416 384 416c-27.5 0-55-10.6-77.5-26.1z"], - "arrow-down-9-1": [576, 512, ["sort-numeric-desc", "sort-numeric-down-alt"], "f886", "M160 480c9 0 17.5-3.8 23.6-10.4l88-96c11.9-13 11.1-33.3-2-45.2s-33.3-11.1-45.2 2L192 365.7 192 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 301.7L95.6 330.4c-11.9-13-32.2-13.9-45.2-2s-13.9 32.2-2 45.2l88 96C142.5 476.2 151 480 160 480zM450.7 294c-8.3-6-19.1-7.7-28.8-4.4l-48 16c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l5.9-2 0 51.6-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l48 0 48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0 0-96c0-10.3-4.9-19.9-13.3-26zM418.3 91a32 32 0 1 1 27.4 57.9A32 32 0 1 1 418.3 91zM405.1 203.8l-6.8 9.2c-10.5 14.2-7.5 34.2 6.7 44.8s34.2 7.5 44.8-6.7l48.8-65.8c14-18.9 21.5-41.7 21.5-65.2c0-48.6-39.4-88-88-88s-88 39.4-88 88c0 39.2 25.6 72.4 61.1 83.8z"], - "face-grin-tongue-squint": [512, 512, [128541, "grin-tongue-squint"], "f58a", "M0 256C0 368.9 73.1 464.7 174.5 498.8C165.3 484 160 466.6 160 448l0-47.3c-24-17.5-43.1-41.4-54.8-69.2c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19c12.3-3.8 24.3 6.9 19.3 18.7c-11.8 28-31.1 52-55.4 69.6l0 46.9c0 18.6-5.3 36-14.5 50.8C438.9 464.7 512 368.9 512 256C512 114.6 397.4 0 256 0S0 114.6 0 256zM116 141.1c0-9 9.6-14.7 17.5-10.5l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6zm262.5-10.5c7.9-4.2 17.5 1.5 17.5 10.5c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9zM320 448l0-45.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 45.4c0 35.3 28.7 64 64 64s64-28.7 64-64z"], - "spray-can": [512, 512, [], "f5bd", "M128 0l64 0c17.7 0 32 14.3 32 32l0 96L96 128l0-96c0-17.7 14.3-32 32-32zM0 256c0-53 43-96 96-96l128 0c53 0 96 43 96 96l0 208c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 256zm240 80A80 80 0 1 0 80 336a80 80 0 1 0 160 0zM256 64a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM384 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM448 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM384 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"], - "truck-monster": [640, 512, [], "f63b", "M288 64l0 64 128 0L368 64l-80 0zM419.2 25.6L496 128l80 0c17.7 0 32 14.3 32 32l0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32c-29.2-38.9-75.7-64-128-64s-98.8 25.1-128 64l-64 0c-29.2-38.9-75.7-64-128-64s-98.8 25.1-128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-64c0-17.7 14.3-32 32-32l160 0 0-80c0-26.5 21.5-48 48-48l96 0c20.1 0 39.1 9.5 51.2 25.6zM152 256l16 0c12.1 0 22.1 8.9 23.8 20.6c7.6 2.2 14.9 5.3 21.7 9c9.4-7 22.8-6.3 31.3 2.3l11.3 11.3c8.6 8.6 9.3 21.9 2.3 31.3c3.7 6.8 6.8 14.1 9 21.7c11.6 1.7 20.6 11.7 20.6 23.8l0 16c0 12.1-8.9 22.1-20.6 23.8c-2.2 7.6-5.3 14.9-9 21.7c7 9.4 6.3 22.8-2.3 31.3l-11.3 11.3c-8.6 8.6-21.9 9.3-31.3 2.2c-6.8 3.7-14.1 6.8-21.7 9C190.1 503.1 180.1 512 168 512l-16 0c-12.1 0-22.1-8.9-23.8-20.6c-7.6-2.2-14.9-5.3-21.7-9c-9.4 7.1-22.8 6.3-31.3-2.2L63.8 468.9c-8.6-8.6-9.3-21.9-2.3-31.3c-3.7-6.9-6.8-14.1-9-21.8C40.9 414.1 32 404.1 32 392l0-16c0-12.1 8.9-22.1 20.6-23.8c2.2-7.6 5.3-14.9 9-21.8c-7-9.4-6.3-22.8 2.3-31.3l11.3-11.3c8.6-8.6 21.9-9.3 31.3-2.3c6.8-3.7 14.1-6.8 21.7-9c1.7-11.6 11.7-20.6 23.8-20.6zm8 176a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM448.2 276.6c1.7-11.6 11.7-20.6 23.8-20.6l16 0c12.1 0 22.1 8.9 23.8 20.6c7.6 2.2 14.9 5.3 21.8 9c9.4-7 22.8-6.3 31.3 2.3l11.3 11.3c8.6 8.6 9.3 21.9 2.2 31.3c3.7 6.8 6.8 14.1 9 21.7c11.6 1.7 20.6 11.7 20.6 23.8l0 16c0 12.1-8.9 22.1-20.6 23.8c-2.2 7.6-5.3 14.9-9 21.7c7 9.4 6.3 22.8-2.2 31.3l-11.3 11.3c-8.6 8.6-21.9 9.3-31.3 2.2c-6.9 3.7-14.1 6.8-21.8 9C510.1 503.1 500.1 512 488 512l-16 0c-12.1 0-22.1-8.9-23.8-20.6c-7.6-2.2-14.9-5.3-21.7-9c-9.4 7.1-22.8 6.3-31.3-2.2l-11.3-11.3c-8.6-8.6-9.3-21.9-2.2-31.3c-3.7-6.9-6.8-14.1-9-21.8C360.9 414.1 352 404.1 352 392l0-16c0-12.1 8.9-22.1 20.6-23.8c2.2-7.6 5.3-14.9 9-21.8c-7-9.4-6.3-22.8 2.2-31.3l11.3-11.3c8.6-8.6 21.9-9.3 31.3-2.3c6.8-3.7 14.1-6.8 21.7-9zM528 384a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z"], - "w": [576, 512, [119], "57", "M20.8 34c16.5-6.2 35 2.2 41.2 18.7l110.2 294L257.3 55c4-13.7 16.5-23 30.7-23s26.7 9.4 30.7 23l85.1 291.7L514 52.8c6.2-16.5 24.6-24.9 41.2-18.7s24.9 24.7 18.7 41.2l-144 384c-4.8 12.9-17.4 21.3-31.2 20.7s-25.7-9.8-29.5-23L288 178.3 206.7 457c-3.9 13.2-15.8 22.5-29.5 23s-26.3-7.8-31.2-20.7L2 75.2C-4.2 58.7 4.2 40.2 20.8 34z"], - "earth-africa": [512, 512, [127757, "globe-africa"], "f57c", "M177.8 63.2l10 17.4c2.8 4.8 4.2 10.3 4.2 15.9l0 41.4c0 3.9 1.6 7.7 4.3 10.4c6.2 6.2 16.5 5.7 22-1.2l13.6-17c4.7-5.9 12.9-7.7 19.6-4.3l15.2 7.6c3.4 1.7 7.2 2.6 11 2.6c6.5 0 12.8-2.6 17.4-7.2l3.9-3.9c2.9-2.9 7.3-3.6 11-1.8l29.2 14.6c7.8 3.9 12.6 11.8 12.6 20.5c0 10.5-7.1 19.6-17.3 22.2l-35.4 8.8c-7.4 1.8-15.1 1.5-22.4-.9l-32-10.7c-3.3-1.1-6.7-1.7-10.2-1.7c-7 0-13.8 2.3-19.4 6.5L176 212c-10.1 7.6-16 19.4-16 32l0 28c0 26.5 21.5 48 48 48l32 0c8.8 0 16 7.2 16 16l0 48c0 17.7 14.3 32 32 32c10.1 0 19.6-4.7 25.6-12.8l25.6-34.1c8.3-11.1 12.8-24.6 12.8-38.4l0-12.1c0-3.9 2.6-7.3 6.4-8.2l5.3-1.3c11.9-3 20.3-13.7 20.3-26c0-7.1-2.8-13.9-7.8-18.9l-33.5-33.5c-3.7-3.7-3.7-9.7 0-13.4c5.7-5.7 14.1-7.7 21.8-5.1l14.1 4.7c12.3 4.1 25.7-1.5 31.5-13c3.5-7 11.2-10.8 18.9-9.2l27.4 5.5C432 112.4 351.5 48 256 48c-27.7 0-54 5.4-78.2 15.2zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z"], - "rainbow": [640, 512, [127752], "f75b", "M320 96C178.6 96 64 210.6 64 352l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96C0 175.3 143.3 32 320 32s320 143.3 320 320l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96C576 210.6 461.4 96 320 96zm0 192c-35.3 0-64 28.7-64 64l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-70.7 57.3-128 128-128s128 57.3 128 128l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-35.3-28.7-64-64-64zM160 352l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-123.7 100.3-224 224-224s224 100.3 224 224l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-88.4-71.6-160-160-160s-160 71.6-160 160z"], - "circle-notch": [512, 512, [], "f1ce", "M222.7 32.1c5 16.9-4.6 34.8-21.5 39.8C121.8 95.6 64 169.1 64 256c0 106 86 192 192 192s192-86 192-192c0-86.9-57.8-160.4-137.1-184.1c-16.9-5-26.6-22.9-21.5-39.8s22.9-26.6 39.8-21.5C434.9 42.1 512 140 512 256c0 141.4-114.6 256-256 256S0 397.4 0 256C0 140 77.1 42.1 182.9 10.6c16.9-5 34.8 4.6 39.8 21.5z"], - "tablet-screen-button": [448, 512, ["tablet-alt"], "f3fa", "M0 64C0 28.7 28.7 0 64 0L384 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM256 448a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM384 64L64 64l0 320 320 0 0-320z"], - "paw": [512, 512, [], "f1b0", "M226.5 92.9c14.3 42.9-.3 86.2-32.6 96.8s-70.1-15.6-84.4-58.5s.3-86.2 32.6-96.8s70.1 15.6 84.4 58.5zM100.4 198.6c18.9 32.4 14.3 70.1-10.2 84.1s-59.7-.9-78.5-33.3S-2.7 179.3 21.8 165.3s59.7 .9 78.5 33.3zM69.2 401.2C121.6 259.9 214.7 224 256 224s134.4 35.9 186.8 177.2c3.6 9.7 5.2 20.1 5.2 30.5l0 1.6c0 25.8-20.9 46.7-46.7 46.7c-11.5 0-22.9-1.4-34-4.2l-88-22c-15.3-3.8-31.3-3.8-46.6 0l-88 22c-11.1 2.8-22.5 4.2-34 4.2C84.9 480 64 459.1 64 433.3l0-1.6c0-10.4 1.6-20.8 5.2-30.5zM421.8 282.7c-24.5-14-29.1-51.7-10.2-84.1s54-47.3 78.5-33.3s29.1 51.7 10.2 84.1s-54 47.3-78.5 33.3zM310.1 189.7c-32.3-10.6-46.9-53.9-32.6-96.8s52.1-69.1 84.4-58.5s46.9 53.9 32.6 96.8s-52.1 69.1-84.4 58.5z"], - "cloud": [640, 512, [9729], "f0c2", "M0 336c0 79.5 64.5 144 144 144l368 0c70.7 0 128-57.3 128-128c0-61.9-44-113.6-102.4-125.4c4.1-10.7 6.4-22.4 6.4-34.6c0-53-43-96-96-96c-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32C167.6 32 96 103.6 96 192c0 2.7 .1 5.4 .2 8.1C40.2 219.8 0 273.2 0 336z"], - "trowel-bricks": [512, 512, [], "e58a", "M240.8 4.8C250.3 10.6 256 20.9 256 32l0 72 89 0c3.6-13.8 16.1-24 31-24l88 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-88 0c-14.9 0-27.4-10.2-31-24l-89 0 0 72c0 11.1-5.7 21.4-15.2 27.2s-21.2 6.4-31.1 1.4l-192-96C6.8 151.2 0 140.1 0 128s6.8-23.2 17.7-28.6l192-96c9.9-5 21.7-4.4 31.1 1.4zM288 256c0-17.7 14.3-32 32-32l160 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-64zM32 384l96 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm192 0l256 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32z"], - "face-flushed": [512, 512, [128563, "flushed"], "f579", "M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM176 384c0 8.8 7.2 16 16 16l128 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-128 0c-8.8 0-16 7.2-16 16zm-16-88a72 72 0 1 0 0-144 72 72 0 1 0 0 144zm264-72a72 72 0 1 0 -144 0 72 72 0 1 0 144 0zm-288 0a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm192 0a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"], - "hospital-user": [576, 512, [], "f80d", "M48 0C21.5 0 0 21.5 0 48L0 256l144 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L0 288l0 64 144 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L0 384l0 80c0 26.5 21.5 48 48 48l217.9 0c-6.3-10.2-9.9-22.2-9.9-35.1c0-46.9 25.8-87.8 64-109.2l0-95.9L320 48c0-26.5-21.5-48-48-48L48 0zM152 64l16 0c8.8 0 16 7.2 16 16l0 24 24 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-24 0 0 24c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-24-24 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16l24 0 0-24c0-8.8 7.2-16 16-16zM512 272a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM288 477.1c0 19.3 15.6 34.9 34.9 34.9l218.2 0c19.3 0 34.9-15.6 34.9-34.9c0-51.4-41.7-93.1-93.1-93.1l-101.8 0c-51.4 0-93.1 41.7-93.1 93.1z"], - "tent-arrow-left-right": [576, 512, [], "e57f", "M488.1 6.2c-9.9-8.9-25-8.1-33.9 1.8s-8.1 25 1.8 33.9L489.5 72 86.5 72l33.5-30.2c9.9-8.9 10.7-24 1.8-33.9S97.8-2.7 87.9 6.2l-80 72C2.9 82.7 0 89.2 0 96s2.9 13.3 7.9 17.8l80 72c9.9 8.9 25 8.1 33.9-1.8s8.1-25-1.8-33.9L86.5 120l402.9 0-33.5 30.2c-9.9 8.9-10.7 24-1.8 33.9s24 10.7 33.9 1.8l80-72c5.1-4.6 7.9-11 7.9-17.8s-2.9-13.3-7.9-17.8l-80-72zM307.4 166.5c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S86.7 512 96 512l144 0 16 0c17.7 0 32-14.3 32-32l0-118.1c0-5.5 4.4-9.9 9.9-9.9c3.7 0 7.2 2.1 8.8 5.5l68.4 136.8c5.4 10.8 16.5 17.7 28.6 17.7l60.2 0 16 0c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z"], - "gavel": [512, 512, ["legal"], "f0e3", "M318.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-120 120c-12.5 12.5-12.5 32.8 0 45.3l16 16c12.5 12.5 32.8 12.5 45.3 0l4-4L325.4 293.4l-4 4c-12.5 12.5-12.5 32.8 0 45.3l16 16c12.5 12.5 32.8 12.5 45.3 0l120-120c12.5-12.5 12.5-32.8 0-45.3l-16-16c-12.5-12.5-32.8-12.5-45.3 0l-4 4L330.6 74.6l4-4c12.5-12.5 12.5-32.8 0-45.3l-16-16zm-152 288c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l48 48c12.5 12.5 32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-1.4-1.4L272 285.3 226.7 240 168 298.7l-1.4-1.4z"], - "binoculars": [512, 512, [], "f1e5", "M128 32l32 0c17.7 0 32 14.3 32 32l0 32L96 96l0-32c0-17.7 14.3-32 32-32zm64 96l0 320c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32l0-59.1c0-34.6 9.4-68.6 27.2-98.3C40.9 267.8 49.7 242.4 53 216L60.5 156c2-16 15.6-28 31.8-28l99.8 0zm227.8 0c16.1 0 29.8 12 31.8 28L459 216c3.3 26.4 12.1 51.8 25.8 74.6c17.8 29.7 27.2 63.7 27.2 98.3l0 59.1c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-320 99.8 0zM320 64c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 32-96 0 0-32zm-32 64l0 160-64 0 0-160 64 0z"], - "microphone-slash": [640, 512, [], "f131", "M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L472.1 344.7c15.2-26 23.9-56.3 23.9-88.7l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 21.2-5.1 41.1-14.2 58.7L416 300.8 416 96c0-53-43-96-96-96s-96 43-96 96l0 54.3L38.8 5.1zM344 430.4c20.4-2.8 39.7-9.1 57.3-18.2l-43.1-33.9C346.1 382 333.3 384 320 384c-70.7 0-128-57.3-128-128l0-8.7L144.7 210c-.5 1.9-.7 3.9-.7 6l0 40c0 89.1 66.2 162.7 152 174.4l0 33.6-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-33.6z"], - "box-tissue": [512, 512, [], "e05b", "M92.5 0L208 0c40 0 52 24 64 48s24 48 64 48l85.2 0C436 96 448 108 448 122.8c0 3.4-.7 6.8-1.9 10L409.6 224 384 288l-256 0-16-64L64.9 35.4c-.6-2.3-.9-4.6-.9-6.9C64 12.8 76.8 0 92.5 0zM79 224l16 64-15 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 256 0 48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-13.5 0 25.6-64 19.9 0c26.5 0 48 21.5 48 48l0 112L0 384 0 272c0-26.5 21.5-48 48-48l31 0zM0 416l512 0 0 48c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48l0-48z"], - "motorcycle": [640, 512, [127949], "f21c", "M280 32c-13.3 0-24 10.7-24 24s10.7 24 24 24l57.7 0 16.4 30.3L256 192l-45.3-45.3c-12-12-28.3-18.7-45.3-18.7L64 128c-17.7 0-32 14.3-32 32l0 32 96 0c88.4 0 160 71.6 160 160c0 11-1.1 21.7-3.2 32l70.4 0c-2.1-10.3-3.2-21-3.2-32c0-52.2 25-98.6 63.7-127.8l15.4 28.6C402.4 276.3 384 312 384 352c0 70.7 57.3 128 128 128s128-57.3 128-128s-57.3-128-128-128c-13.5 0-26.5 2.1-38.7 6L418.2 128l61.8 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32l-20.4 0c-7.5 0-14.7 2.6-20.5 7.4L391.7 78.9l-14-26c-7-12.9-20.5-21-35.2-21L280 32zM462.7 311.2l28.2 52.2c6.3 11.7 20.9 16 32.5 9.7s16-20.9 9.7-32.5l-28.2-52.2c2.3-.3 4.7-.4 7.1-.4c35.3 0 64 28.7 64 64s-28.7 64-64 64s-64-28.7-64-64c0-15.5 5.5-29.7 14.7-40.8zM187.3 376c-9.5 23.5-32.5 40-59.3 40c-35.3 0-64-28.7-64-64s28.7-64 64-64c26.9 0 49.9 16.5 59.3 40l66.4 0C242.5 268.8 190.5 224 128 224C57.3 224 0 281.3 0 352s57.3 128 128 128c62.5 0 114.5-44.8 125.8-104l-66.4 0zM128 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"], - "bell-concierge": [512, 512, [128718, "concierge-bell"], "f562", "M216 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l16 0 0 33.3C119.6 157.2 32 252.4 32 368l448 0c0-115.6-87.6-210.8-200-222.7l0-33.3 16 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0-40 0zM24 400c-13.3 0-24 10.7-24 24s10.7 24 24 24l464 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 400z"], - "pen-ruler": [512, 512, ["pencil-ruler"], "f5ae", "M469.3 19.3l23.4 23.4c25 25 25 65.5 0 90.5l-56.4 56.4L322.3 75.7l56.4-56.4c25-25 65.5-25 90.5 0zM44.9 353.2L299.7 98.3 413.7 212.3 158.8 467.1c-6.7 6.7-15.1 11.6-24.2 14.2l-104 29.7c-8.4 2.4-17.4 .1-23.6-6.1s-8.5-15.2-6.1-23.6l29.7-104c2.6-9.2 7.5-17.5 14.2-24.2zM249.4 103.4L103.4 249.4 16 161.9c-18.7-18.7-18.7-49.1 0-67.9L94.1 16c18.7-18.7 49.1-18.7 67.9 0l19.8 19.8c-.3 .3-.7 .6-1 .9l-64 64c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l64-64c.3-.3 .6-.7 .9-1l45.1 45.1zM408.6 262.6l45.1 45.1c-.3 .3-.7 .6-1 .9l-64 64c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l64-64c.3-.3 .6-.7 .9-1L496 350.1c18.7 18.7 18.7 49.1 0 67.9L417.9 496c-18.7 18.7-49.1 18.7-67.9 0l-87.4-87.4L408.6 262.6z"], - "people-arrows": [640, 512, ["people-arrows-left-right"], "e068", "M64 64a64 64 0 1 1 128 0A64 64 0 1 1 64 64zM25.9 233.4C29.3 191.9 64 160 105.6 160l44.8 0c27 0 51 13.4 65.5 34.1c-2.7 1.9-5.2 4-7.5 6.3l-64 64c-21.9 21.9-21.9 57.3 0 79.2L192 391.2l0 72.8c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-115.7c-26.5-9.5-44.7-35.8-42.2-65.6l4.1-49.3zM448 64a64 64 0 1 1 128 0A64 64 0 1 1 448 64zM431.6 200.4c-2.3-2.3-4.9-4.4-7.5-6.3c14.5-20.7 38.6-34.1 65.5-34.1l44.8 0c41.6 0 76.3 31.9 79.7 73.4l4.1 49.3c2.5 29.8-15.7 56.1-42.2 65.6L576 464c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-72.8 47.6-47.6c21.9-21.9 21.9-57.3 0-79.2l-64-64zM272 240l0 32 96 0 0-32c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l64 64c9.4 9.4 9.4 24.6 0 33.9l-64 64c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2l0-32-96 0 0 32c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-64-64c-9.4-9.4-9.4-24.6 0-33.9l64-64c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2z"], - "mars-and-venus-burst": [640, 512, [], "e523", "M504 0c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l39 39-22.2 22.2C475.9 78.4 439.6 64 400 64c-88.4 0-160 71.6-160 160c0 80.2 59.1 146.7 136.1 158.2c0 .6-.1 1.2-.1 1.8l0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .3 0 .4 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3-24 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1c0 0 0 .1 0 .1s0 .1 0 .1l0 .1c0 0 0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0l24 0-24 0c0 13.3 10.7 24 24 24s24-10.7 24-24l-24 0 24 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1l0-.1c0 0 0-.1 0-.1s0-.1 0-.1l0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 24 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-24 0 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.4 0-.3 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4c0-.6 0-1.2-.1-1.8c77-11.6 136.1-78 136.1-158.2c0-31.4-9-60.7-24.7-85.4L560 113.9l39 39c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2l0-112c0-13.3-10.7-24-24-24L504 0zM400 128a96 96 0 1 1 0 192 96 96 0 1 1 0-192zM190.9 18.1C188.4 12 182.6 8 176 8s-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L176 286.1l58.6 53.9c4.1 3.8 9.9 5.1 15.2 3.6C223.6 310.8 208 269.2 208 224c0-60.8 28.3-115 72.4-150.2L220.3 92.1l-29.4-74z"], - "square-caret-right": [448, 512, ["caret-square-right"], "f152", "M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM320 256c0 6.7-2.8 13-7.7 17.6l-112 104c-7 6.5-17.2 8.2-25.9 4.4s-14.4-12.5-14.4-22l0-208c0-9.5 5.7-18.2 14.4-22s18.9-2.1 25.9 4.4l112 104c4.9 4.5 7.7 10.9 7.7 17.6z"], - "scissors": [512, 512, [9984, 9986, 9988, "cut"], "f0c4", "M256 192l-39.5-39.5c4.9-12.6 7.5-26.2 7.5-40.5C224 50.1 173.9 0 112 0S0 50.1 0 112s50.1 112 112 112c14.3 0 27.9-2.7 40.5-7.5L192 256l-39.5 39.5c-12.6-4.9-26.2-7.5-40.5-7.5C50.1 288 0 338.1 0 400s50.1 112 112 112s112-50.1 112-112c0-14.3-2.7-27.9-7.5-40.5L499.2 76.8c7.1-7.1 7.1-18.5 0-25.6c-28.3-28.3-74.1-28.3-102.4 0L256 192zm22.6 150.6L396.8 460.8c28.3 28.3 74.1 28.3 102.4 0c7.1-7.1 7.1-18.5 0-25.6L342.6 278.6l-64 64zM64 112a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm48 240a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"], - "sun-plant-wilt": [640, 512, [], "e57a", "M160 0c-6.3 0-12 3.7-14.6 9.5L120.6 64.9 63.9 43.2c-5.9-2.3-12.6-.8-17 3.6s-5.9 11.1-3.6 17l21.7 56.7L9.5 145.4C3.7 148 0 153.7 0 160s3.7 12 9.5 14.6l55.4 24.8L43.2 256.1c-2.3 5.9-.8 12.6 3.6 17s11.1 5.9 17 3.6l56.7-21.7 24.8 55.4c2.6 5.8 8.3 9.5 14.6 9.5s12-3.7 14.6-9.5l24.8-55.4 56.7 21.7c5.9 2.3 12.6 .8 17-3.6s5.9-11.1 3.6-17l-21.7-56.7 55.4-24.8c5.8-2.6 9.5-8.3 9.5-14.6s-3.7-12-9.5-14.6l-55.4-24.8 21.7-56.7c2.3-5.9 .8-12.6-3.6-17s-11.1-5.9-17-3.6L199.4 64.9 174.6 9.5C172 3.7 166.3 0 160 0zm0 96a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm312 16c0-17.7 14.3-32 32-32s32 14.3 32 32l0 53.4c-14.8 7.7-24 23.1-24 44.6c0 16.8 16 44 37.4 67.2c5.8 6.2 15.5 6.2 21.2 0C624 318 640 290.7 640 274c0-21.5-9.2-37-24-44.6l0-53.4c0-44.2-35.8-80-80-80s-80 35.8-80 80l0 22.7c-9.8-4.3-20.6-6.7-32-6.7c-44.2 0-80 35.8-80 80l0 21.4c-14.8 7.7-24 23.1-24 44.6c0 16.8 16 44 37.4 67.2c5.8 6.2 15.5 6.2 21.2 0C400 382 416 354.7 416 338c0-21.5-9.2-37-24-44.6l0-21.4c0-17.7 14.3-32 32-32s32 14.3 32 32l0 8 0 168L32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-104 0 0-168 0-8 0-96z"], - "toilets-portable": [576, 512, [], "e584", "M32 0L224 0c17.7 0 32 14.3 32 32l0 32L0 64 0 32C0 14.3 14.3 0 32 0zM0 96l24 0 208 0 24 0 0 24 0 368c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8L48 480l0 8c0 13.3-10.7 24-24 24s-24-10.7-24-24L0 120 0 96zM192 224c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8-7.2-16-16-16zM352 0L544 0c17.7 0 32 14.3 32 32l0 32L320 64l0-32c0-17.7 14.3-32 32-32zM320 96l24 0 208 0 24 0 0 24 0 368c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8-160 0 0 8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-368 0-24zM512 224c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8-7.2-16-16-16z"], - "hockey-puck": [512, 512, [], "f453", "M256 256C114.6 256 0 213 0 160s114.6-96 256-96s256 43 256 96s-114.6 96-256 96zm192.3 1.8c24.7-9.3 46.9-21 63.7-35.6L512 352c0 53-114.6 96-256 96S0 405 0 352L0 222.3c16.8 14.6 39 26.3 63.7 35.6C114.5 276.9 182.5 288 256 288s141.5-11.1 192.3-30.2z"], - "table": [512, 512, [], "f0ce", "M64 256l0-96 160 0 0 96L64 256zm0 64l160 0 0 96L64 416l0-96zm224 96l0-96 160 0 0 96-160 0zM448 256l-160 0 0-96 160 0 0 96zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z"], - "magnifying-glass-arrow-right": [512, 512, [], "e521", "M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM241 119c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31L120 184c-13.3 0-24 10.7-24 24s10.7 24 24 24l118.1 0-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9l-72-72z"], - "tachograph-digital": [640, 512, ["digital-tachograph"], "f566", "M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l512 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm32 64l224 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32L96 256c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zM64 368c0-8.8 7.2-16 16-16l256 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 384c-8.8 0-16-7.2-16-16zm320 0c0-8.8 7.2-16 16-16l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16zM80 288a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm48 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm80-16a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm48 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm80-16a16 16 0 1 1 0 32 16 16 0 1 1 0-32z"], - "users-slash": [640, 512, [], "e073", "M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L440.6 320l178.1 0c11.8 0 21.3-9.6 21.3-21.3C640 239.8 592.2 192 533.3 192l-42.7 0c-15.9 0-31 3.5-44.6 9.7c1.3 7.2 1.9 14.7 1.9 22.3c0 30.2-10.5 58-28 79.9l-25.2-19.7C408.1 267.7 416 246.8 416 224c0-53-43-96-96-96c-31.1 0-58.7 14.8-76.3 37.7l-40.6-31.8c13-14.2 20.9-33.1 20.9-53.9c0-44.2-35.8-80-80-80C116.3 0 91.9 14.1 77.5 35.5L38.8 5.1zM106.7 192C47.8 192 0 239.8 0 298.7C0 310.4 9.6 320 21.3 320l213.3 0c.2 0 .4 0 .7 0c-20.6-18.2-35.2-42.8-40.8-70.8L121.8 192l-15.2 0zM261.3 352C187.7 352 128 411.7 128 485.3c0 14.7 11.9 26.7 26.7 26.7l330.7 0c10.5 0 19.5-6 23.9-14.8L324.9 352l-63.6 0zM512 160A80 80 0 1 0 512 0a80 80 0 1 0 0 160z"], - "clover": [448, 512, [], "e139", "M216.6 49.9C205.1 38.5 189.5 32 173.3 32C139.4 32 112 59.4 112 93.3l0 4.9c0 12 3.3 23.7 9.4 34l18.8 31.3c1.1 1.8 1.2 3.1 1 4.2c-.2 1.2-.8 2.5-2 3.6s-2.4 1.8-3.6 2c-1 .2-2.4 .1-4.2-1l-31.3-18.8c-10.3-6.2-22-9.4-34-9.4l-4.9 0C27.4 144 0 171.4 0 205.3c0 16.2 6.5 31.8 17.9 43.3l1.2 1.2c3.4 3.4 3.4 9 0 12.4l-1.2 1.2C6.5 274.9 0 290.5 0 306.7C0 340.6 27.4 368 61.3 368l4.9 0c12 0 23.7-3.3 34-9.4l31.3-18.8c1.8-1.1 3.1-1.2 4.2-1c1.2 .2 2.5 .8 3.6 2s1.8 2.4 2 3.6c.2 1 .1 2.4-1 4.2l-18.8 31.3c-6.2 10.3-9.4 22-9.4 34l0 4.9c0 33.8 27.4 61.3 61.3 61.3c16.2 0 31.8-6.5 43.3-17.9l1.2-1.2c3.4-3.4 9-3.4 12.4 0l1.2 1.2c11.5 11.5 27.1 17.9 43.3 17.9c33.8 0 61.3-27.4 61.3-61.3l0-4.9c0-12-3.3-23.7-9.4-34l-18.8-31.3c-1.1-1.8-1.2-3.1-1-4.2c.2-1.2 .8-2.5 2-3.6s2.4-1.8 3.6-2c1-.2 2.4-.1 4.2 1l31.3 18.8c10.3 6.2 22 9.4 34 9.4l4.9 0c33.8 0 61.3-27.4 61.3-61.3c0-16.2-6.5-31.8-17.9-43.3l-1.2-1.2c-3.4-3.4-3.4-9 0-12.4l1.2-1.2c11.5-11.5 17.9-27.1 17.9-43.3c0-33.8-27.4-61.3-61.3-61.3l-4.9 0c-12 0-23.7 3.3-34 9.4l-31.3 18.8c-1.8 1.1-3.1 1.2-4.2 1c-1.2-.2-2.5-.8-3.6-2s-1.8-2.4-2-3.6c-.2-1-.1-2.4 1-4.2l18.8-31.3c6.2-10.3 9.4-22 9.4-34l0-4.9C336 59.4 308.6 32 274.7 32c-16.2 0-31.8 6.5-43.3 17.9l-1.2 1.2c-3.4 3.4-9 3.4-12.4 0l-1.2-1.2z"], - "reply": [512, 512, [61714, "mail-reply"], "f3e5", "M205 34.8c11.5 5.1 19 16.6 19 29.2l0 64 112 0c97.2 0 176 78.8 176 176c0 113.3-81.5 163.9-100.2 174.1c-2.5 1.4-5.3 1.9-8.1 1.9c-10.9 0-19.7-8.9-19.7-19.7c0-7.5 4.3-14.4 9.8-19.5c9.4-8.8 22.2-26.4 22.2-56.7c0-53-43-96-96-96l-96 0 0 64c0 12.6-7.4 24.1-19 29.2s-25 3-34.4-5.4l-160-144C3.9 225.7 0 217.1 0 208s3.9-17.7 10.6-23.8l160-144c9.4-8.5 22.9-10.6 34.4-5.4z"], - "star-and-crescent": [512, 512, [9770], "f699", "M0 256C0 114.6 114.6 0 256 0c33 0 64.6 6.3 93.6 17.7c7.4 2.9 11.5 10.7 9.8 18.4s-8.8 13-16.7 12.4c-4.8-.3-9.7-.5-14.6-.5c-114.9 0-208 93.1-208 208s93.1 208 208 208c4.9 0 9.8-.2 14.6-.5c7.9-.5 15 4.7 16.7 12.4s-2.4 15.5-9.8 18.4C320.6 505.7 289 512 256 512C114.6 512 0 397.4 0 256zM375.4 137.4c3.5-7.1 13.7-7.1 17.2 0l31.5 63.8c1.4 2.8 4.1 4.8 7.2 5.3l70.4 10.2c7.9 1.1 11 10.8 5.3 16.4l-50.9 49.6c-2.3 2.2-3.3 5.4-2.8 8.5l12 70.1c1.3 7.8-6.9 13.8-13.9 10.1l-63-33.1c-2.8-1.5-6.1-1.5-8.9 0l-63 33.1c-7 3.7-15.3-2.3-13.9-10.1l12-70.1c.5-3.1-.5-6.3-2.8-8.5L261 233.1c-5.7-5.6-2.6-15.2 5.3-16.4l70.4-10.2c3.1-.5 5.8-2.4 7.2-5.3l31.5-63.8z"], - "house-fire": [640, 512, [], "e50c", "M288 350.1l0 1.9-32 0c-17.7 0-32 14.3-32 32l0 64 0 24c0 22.1-17.9 40-40 40l-24 0-31.9 0c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2l-16 0c-22.1 0-40-17.9-40-40l0-112c0-.9 0-1.9 .1-2.8l0-69.7-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L447.3 128.1c-12.3-1-25 3-34.8 11.7c-35.4 31.6-65.6 67.7-87.3 102.8C304.3 276.5 288 314.9 288 350.1zM480 512c-88.4 0-160-71.6-160-160c0-76.7 62.5-144.7 107.2-179.4c5-3.9 10.9-5.8 16.8-5.8c7.9-.1 16 3.1 22 9.2l46 46 11.3-11.3c11.7-11.7 30.6-12.7 42.3-1C624.5 268 640 320.2 640 352c0 88.4-71.6 160-160 160zm64-111.8c0-36.5-37-73-54.8-88.4c-5.4-4.7-13.1-4.7-18.5 0C453 327.1 416 363.6 416 400.2c0 35.3 28.7 64 64 64s64-28.7 64-64z"], - "square-minus": [448, 512, [61767, "minus-square"], "f146", "M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm88 200l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"], - "helicopter": [640, 512, [128641], "f533", "M128 32c0-17.7 14.3-32 32-32L544 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L384 64l0 64 32 0c88.4 0 160 71.6 160 160l0 64c0 17.7-14.3 32-32 32l-160 0-64 0c-20.1 0-39.1-9.5-51.2-25.6l-71.4-95.2c-3.5-4.7-8.3-8.3-13.7-10.5L47.2 198.1c-9.5-3.8-16.7-12-19.2-22L5 83.9C2.4 73.8 10.1 64 20.5 64L48 64c10.1 0 19.6 4.7 25.6 12.8L112 128l208 0 0-64L160 64c-17.7 0-32-14.3-32-32zM384 320l128 0 0-32c0-53-43-96-96-96l-32 0 0 128zM630.6 425.4c12.5 12.5 12.5 32.8 0 45.3l-3.9 3.9c-24 24-56.6 37.5-90.5 37.5L256 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l280.2 0c17 0 33.3-6.7 45.3-18.7l3.9-3.9c12.5-12.5 32.8-12.5 45.3 0z"], - "compass": [512, 512, [129517], "f14e", "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm50.7-186.9L162.4 380.6c-19.4 7.5-38.5-11.6-31-31l55.5-144.3c3.3-8.5 9.9-15.1 18.4-18.4l144.3-55.5c19.4-7.5 38.5 11.6 31 31L325.1 306.7c-3.2 8.5-9.9 15.1-18.4 18.4zM288 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"], - "square-caret-down": [448, 512, ["caret-square-down"], "f150", "M384 480c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0zM224 352c-6.7 0-13-2.8-17.6-7.7l-104-112c-6.5-7-8.2-17.2-4.4-25.9s12.5-14.4 22-14.4l208 0c9.5 0 18.2 5.7 22 14.4s2.1 18.9-4.4 25.9l-104 112c-4.5 4.9-10.9 7.7-17.6 7.7z"], - "file-circle-question": [576, 512, [], "e4ef", "M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zm48 96a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM368 321.6l0 6.4c0 8.8 7.2 16 16 16s16-7.2 16-16l0-6.4c0-5.3 4.3-9.6 9.6-9.6l40.5 0c7.7 0 13.9 6.2 13.9 13.9c0 5.2-2.9 9.9-7.4 12.3l-32 16.8c-5.3 2.8-8.6 8.2-8.6 14.2l0 14.8c0 8.8 7.2 16 16 16s16-7.2 16-16l0-5.1 23.5-12.3c15.1-7.9 24.5-23.6 24.5-40.6c0-25.4-20.6-45.9-45.9-45.9l-40.5 0c-23 0-41.6 18.6-41.6 41.6z"], - "laptop-code": [640, 512, [], "f5fc", "M64 96c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 256-64 0 0-256L128 96l0 256-64 0L64 96zM0 403.2C0 392.6 8.6 384 19.2 384l601.6 0c10.6 0 19.2 8.6 19.2 19.2c0 42.4-34.4 76.8-76.8 76.8L76.8 480C34.4 480 0 445.6 0 403.2zM281 209l-31 31 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-48-48c-9.4-9.4-9.4-24.6 0-33.9l48-48c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM393 175l48 48c9.4 9.4 9.4 24.6 0 33.9l-48 48c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z"], - "swatchbook": [512, 512, [], "f5c3", "M0 32C0 14.3 14.3 0 32 0L160 0c17.7 0 32 14.3 32 32l0 384c0 53-43 96-96 96s-96-43-96-96L0 32zM223.6 425.9c.3-3.3 .4-6.6 .4-9.9l0-262 75.4-75.4c12.5-12.5 32.8-12.5 45.3 0l90.5 90.5c12.5 12.5 12.5 32.8 0 45.3L223.6 425.9zM182.8 512l192-192L480 320c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-297.2 0zM128 64L64 64l0 64 64 0 0-64zM64 192l0 64 64 0 0-64-64 0zM96 440a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"], - "prescription-bottle": [384, 512, [], "f485", "M0 32C0 14.3 14.3 0 32 0L352 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64L0 32zm32 96l320 0 0 320c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-32 112 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L32 384l0-64 112 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L32 288l0-64 112 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L32 192l0-64z"], - "bars": [448, 512, ["navicon"], "f0c9", "M0 96C0 78.3 14.3 64 32 64l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96zM0 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z"], - "people-group": [640, 512, [], "e533", "M72 88a56 56 0 1 1 112 0A56 56 0 1 1 72 88zM64 245.7C54 256.9 48 271.8 48 288s6 31.1 16 42.3l0-84.7zm144.4-49.3C178.7 222.7 160 261.2 160 304c0 34.3 12 65.8 32 90.5l0 21.5c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-26.8C26.2 371.2 0 332.7 0 288c0-61.9 50.1-112 112-112l32 0c24 0 46.2 7.5 64.4 20.3zM448 416l0-21.5c20-24.7 32-56.2 32-90.5c0-42.8-18.7-81.3-48.4-107.7C449.8 183.5 472 176 496 176l32 0c61.9 0 112 50.1 112 112c0 44.7-26.2 83.2-64 101.2l0 26.8c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32zm8-328a56 56 0 1 1 112 0A56 56 0 1 1 456 88zM576 245.7l0 84.7c10-11.3 16-26.1 16-42.3s-6-31.1-16-42.3zM320 32a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM240 304c0 16.2 6 31 16 42.3l0-84.7c-10 11.3-16 26.1-16 42.3zm144-42.3l0 84.7c10-11.3 16-26.1 16-42.3s-6-31.1-16-42.3zM448 304c0 44.7-26.2 83.2-64 101.2l0 42.8c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-42.8c-37.8-18-64-56.5-64-101.2c0-61.9 50.1-112 112-112l32 0c61.9 0 112 50.1 112 112z"], - "hourglass-end": [384, 512, [8987, "hourglass-3"], "f253", "M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l0 11c0 42.4 16.9 83.1 46.9 113.1L146.7 256 78.9 323.9C48.9 353.9 32 394.6 32 437l0 11c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 256 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-11c0-42.4-16.9-83.1-46.9-113.1L237.3 256l67.9-67.9c30-30 46.9-70.7 46.9-113.1l0-11c17.7 0 32-14.3 32-32s-14.3-32-32-32L320 0 64 0 32 0zM96 75l0-11 192 0 0 11c0 25.5-10.1 49.9-28.1 67.9L192 210.7l-67.9-67.9C106.1 124.9 96 100.4 96 75z"], - "heart-crack": [512, 512, [128148, "heart-broken"], "f7a9", "M119.4 44.1c23.3-3.9 46.8-1.9 68.6 5.3l49.8 77.5-75.4 75.4c-1.5 1.5-2.4 3.6-2.3 5.8s1 4.2 2.6 5.7l112 104c2.9 2.7 7.4 2.9 10.5 .3s3.8-7 1.7-10.4l-60.4-98.1 90.7-75.6c2.6-2.1 3.5-5.7 2.4-8.8L296.8 61.8c28.5-16.7 62.4-23.2 95.7-17.6C461.5 55.6 512 115.2 512 185.1l0 5.8c0 41.5-17.2 81.2-47.6 109.5L283.7 469.1c-7.5 7-17.4 10.9-27.7 10.9s-20.2-3.9-27.7-10.9L47.6 300.4C17.2 272.1 0 232.4 0 190.9l0-5.8c0-69.9 50.5-129.5 119.4-141z"], - "square-up-right": [448, 512, [8599, "external-link-square-alt"], "f360", "M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM160 160c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l40 40-71 71C114 302 112 306.9 112 312s2 10 5.7 13.7l36.7 36.7c3.6 3.6 8.5 5.7 13.7 5.7s10-2 13.7-5.7l71-71 40 40c4.6 4.6 11.5 5.9 17.4 3.5s9.9-8.3 9.9-14.8l0-144c0-8.8-7.2-16-16-16l-144 0z"], - "face-kiss-beam": [512, 512, [128537, "kiss-beam"], "f597", "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm48.7-198.3c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 443.1 257.4 448 240 448c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9c0 0 0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7c0 0 0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1 .3-.2 .6-.4c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.4-.3-.5-.3-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zm-87.1-84.9s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z"], - "film": [512, 512, [127902], "f008", "M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM48 368l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm368-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM48 240l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm368-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM48 112l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16L64 96c-8.8 0-16 7.2-16 16zM416 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM160 128l0 64c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32L192 96c-17.7 0-32 14.3-32 32zm32 160c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-128 0z"], - "ruler-horizontal": [640, 512, [], "f547", "M0 336c0 26.5 21.5 48 48 48l544 0c26.5 0 48-21.5 48-48l0-160c0-26.5-21.5-48-48-48l-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0c-26.5 0-48 21.5-48 48L0 336z"], - "people-robbery": [576, 512, [], "e536", "M488.2 59.1C478.1 99.6 441.7 128 400 128s-78.1-28.4-88.2-68.9L303 24.2C298.8 7.1 281.4-3.3 264.2 1S236.7 22.6 241 39.8l8.7 34.9c11 44 40.2 79.6 78.3 99.6L328 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-305.7c38.1-20 67.3-55.6 78.3-99.6L559 39.8c4.3-17.1-6.1-34.5-23.3-38.8S501.2 7.1 497 24.2l-8.7 34.9zM400 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM80 96A48 48 0 1 0 80 0a48 48 0 1 0 0 96zm-8 32c-35.3 0-64 28.7-64 64l0 96 0 .6L8 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-227.3 13 20.5c5.9 9.2 16.1 14.9 27 14.9l48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-30.4 0-37.4-58.9C157.6 142 132.1 128 104.7 128L72 128z"], - "lightbulb": [384, 512, [128161], "f0eb", "M272 384c9.6-31.9 29.5-59.1 49.2-86.2c0 0 0 0 0 0c5.2-7.1 10.4-14.2 15.4-21.4c19.8-28.5 31.4-63 31.4-100.3C368 78.8 289.2 0 192 0S16 78.8 16 176c0 37.3 11.6 71.9 31.4 100.3c5 7.2 10.2 14.3 15.4 21.4c0 0 0 0 0 0c19.8 27.1 39.7 54.4 49.2 86.2l160 0zM192 512c44.2 0 80-35.8 80-80l0-16-160 0 0 16c0 44.2 35.8 80 80 80zM112 176c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-61.9 50.1-112 112-112c8.8 0 16 7.2 16 16s-7.2 16-16 16c-44.2 0-80 35.8-80 80z"], - "caret-left": [256, 512, [], "f0d9", "M9.4 278.6c-12.5-12.5-12.5-32.8 0-45.3l128-128c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 256c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-128-128z"], - "circle-exclamation": [512, 512, ["exclamation-circle"], "f06a", "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-384c13.3 0 24 10.7 24 24l0 112c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-112c0-13.3 10.7-24 24-24zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"], - "school-circle-xmark": [640, 512, [], "e56d", "M337.8 5.4C327-1.8 313-1.8 302.2 5.4L166.3 96 48 96C21.5 96 0 117.5 0 144L0 464c0 26.5 21.5 48 48 48l272 0s0 0 0 0l-64 0 0-96c0-35.3 28.7-64 64-64l.3 0 .5 0c3.4-37.7 18.7-72.1 42.2-99.1C350.2 260 335.6 264 320 264c-48.6 0-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88c0 18.3-5.6 35.3-15.1 49.4c29-21 64.6-33.4 103.1-33.4c59.5 0 112.1 29.6 144 74.8L640 144c0-26.5-21.5-48-48-48L473.7 96 337.8 5.4zM96 192l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16zm0 128l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16zM320 128c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0 0-16c0-8.8-7.2-16-16-16zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm22.6-144l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L518.6 368z"], - "arrow-right-from-bracket": [512, 512, ["sign-out"], "f08b", "M502.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224 192 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l210.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128zM160 96c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 32C43 32 0 75 0 128L0 384c0 53 43 96 96 96l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l64 0z"], - "circle-chevron-down": [512, 512, ["chevron-circle-down"], "f13a", "M256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM135 241c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l87 87 87-87c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L273 345c-9.4 9.4-24.6 9.4-33.9 0L135 241z"], - "unlock-keyhole": [448, 512, ["unlock-alt"], "f13e", "M224 64c-44.2 0-80 35.8-80 80l0 48 240 0c35.3 0 64 28.7 64 64l0 192c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 256c0-35.3 28.7-64 64-64l16 0 0-48C80 64.5 144.5 0 224 0c57.5 0 107 33.7 130.1 82.3c7.6 16 .8 35.1-15.2 42.6s-35.1 .8-42.6-15.2C283.4 82.6 255.9 64 224 64zm32 320c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0z"], - "cloud-showers-heavy": [512, 512, [], "f740", "M96 320c-53 0-96-43-96-96c0-42.5 27.6-78.6 65.9-91.2C64.7 126.1 64 119.1 64 112C64 50.1 114.1 0 176 0c43.1 0 80.5 24.3 99.2 60c14.7-17.1 36.5-28 60.8-28c44.2 0 80 35.8 80 80c0 5.5-.6 10.8-1.6 16c.5 0 1.1 0 1.6 0c53 0 96 43 96 96s-43 96-96 96L96 320zM81.5 353.9c12.2 5.2 17.8 19.3 12.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6S-3.3 490.7 1.9 478.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6zm120 0c12.2 5.2 17.8 19.3 12.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6zm244.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6s17.8 19.3 12.6 31.5zM313.5 353.9c12.2 5.2 17.8 19.3 12.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6z"], - "headphones-simple": [512, 512, ["headphones-alt"], "f58f", "M256 80C141.1 80 48 173.1 48 288l0 104c0 13.3-10.7 24-24 24s-24-10.7-24-24L0 288C0 146.6 114.6 32 256 32s256 114.6 256 256l0 104c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-104c0-114.9-93.1-208-208-208zM80 352c0-35.3 28.7-64 64-64l16 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-16 0c-35.3 0-64-28.7-64-64l0-64zm288-64c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64l-16 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l16 0z"], - "sitemap": [576, 512, [], "f0e8", "M208 80c0-26.5 21.5-48 48-48l64 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-8 0 0 40 152 0c30.9 0 56 25.1 56 56l0 32 8 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-64 0c-26.5 0-48-21.5-48-48l0-64c0-26.5 21.5-48 48-48l8 0 0-32c0-4.4-3.6-8-8-8l-152 0 0 40 8 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-64 0c-26.5 0-48-21.5-48-48l0-64c0-26.5 21.5-48 48-48l8 0 0-40-152 0c-4.4 0-8 3.6-8 8l0 32 8 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-64 0c-26.5 0-48-21.5-48-48l0-64c0-26.5 21.5-48 48-48l8 0 0-32c0-30.9 25.1-56 56-56l152 0 0-40-8 0c-26.5 0-48-21.5-48-48l0-64z"], - "circle-dollar-to-slot": [512, 512, ["donate"], "f4b9", "M326.7 403.7c-22.1 8-45.9 12.3-70.7 12.3s-48.7-4.4-70.7-12.3l-.8-.3c-30-11-56.8-28.7-78.6-51.4C70 314.6 48 263.9 48 208C48 93.1 141.1 0 256 0S464 93.1 464 208c0 55.9-22 106.6-57.9 144c-1 1-2 2.1-3 3.1c-21.4 21.4-47.4 38.1-76.3 48.6zM256 91.9c-11.1 0-20.1 9-20.1 20.1l0 6c-5.6 1.2-10.9 2.9-15.9 5.1c-15 6.8-27.9 19.4-31.1 37.7c-1.8 10.2-.8 20 3.4 29c4.2 8.8 10.7 15 17.3 19.5c11.6 7.9 26.9 12.5 38.6 16l2.2 .7c13.9 4.2 23.4 7.4 29.3 11.7c2.5 1.8 3.4 3.2 3.7 4c.3 .8 .9 2.6 .2 6.7c-.6 3.5-2.5 6.4-8 8.8c-6.1 2.6-16 3.9-28.8 1.9c-6-1-16.7-4.6-26.2-7.9c0 0 0 0 0 0s0 0 0 0s0 0 0 0c-2.2-.7-4.3-1.5-6.4-2.1c-10.5-3.5-21.8 2.2-25.3 12.7s2.2 21.8 12.7 25.3c1.2 .4 2.7 .9 4.4 1.5c7.9 2.7 20.3 6.9 29.8 9.1l0 6.4c0 11.1 9 20.1 20.1 20.1s20.1-9 20.1-20.1l0-5.5c5.3-1 10.5-2.5 15.4-4.6c15.7-6.7 28.4-19.7 31.6-38.7c1.8-10.4 1-20.3-3-29.4c-3.9-9-10.2-15.6-16.9-20.5c-12.2-8.8-28.3-13.7-40.4-17.4l-.8-.2c-14.2-4.3-23.8-7.3-29.9-11.4c-2.6-1.8-3.4-3-3.6-3.5c-.2-.3-.7-1.6-.1-5c.3-1.9 1.9-5.2 8.2-8.1c6.4-2.9 16.4-4.5 28.6-2.6c4.3 .7 17.9 3.3 21.7 4.3c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-4.4-1.2-14.4-3.2-21-4.4l0-6.3c0-11.1-9-20.1-20.1-20.1zM48 352l16 0c19.5 25.9 44 47.7 72.2 64L64 416l0 32 192 0 192 0 0-32-72.2 0c28.2-16.3 52.8-38.1 72.2-64l16 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48l0-64c0-26.5 21.5-48 48-48z"], - "memory": [576, 512, [], "f538", "M64 64C28.7 64 0 92.7 0 128l0 7.4c0 6.8 4.4 12.6 10.1 16.3C23.3 160.3 32 175.1 32 192s-8.7 31.7-21.9 40.3C4.4 236 0 241.8 0 248.6L0 320l576 0 0-71.4c0-6.8-4.4-12.6-10.1-16.3C552.7 223.7 544 208.9 544 192s8.7-31.7 21.9-40.3c5.7-3.7 10.1-9.5 10.1-16.3l0-7.4c0-35.3-28.7-64-64-64L64 64zM576 352L0 352l0 64c0 17.7 14.3 32 32 32l48 0 0-32c0-8.8 7.2-16 16-16s16 7.2 16 16l0 32 96 0 0-32c0-8.8 7.2-16 16-16s16 7.2 16 16l0 32 96 0 0-32c0-8.8 7.2-16 16-16s16 7.2 16 16l0 32 96 0 0-32c0-8.8 7.2-16 16-16s16 7.2 16 16l0 32 48 0c17.7 0 32-14.3 32-32l0-64zM192 160l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32z"], - "road-spikes": [640, 512, [], "e568", "M64 116.8c0-15.8 20.5-22 29.3-8.9L192 256l0-139.2c0-15.8 20.5-22 29.3-8.9L320 256l0-139.2c0-15.8 20.5-22 29.3-8.9L448 256l0-139.2c0-15.8 20.5-22 29.3-8.9L606.8 302.2c14.2 21.3-1.1 49.7-26.6 49.7L512 352l-64 0-64 0-64 0-64 0-64 0L64 352l0-235.2zM32 384l576 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32z"], - "fire-burner": [640, 512, [], "e4f1", "M345.7 48.3L358 34.5c5.4-6.1 13.3-8.8 20.9-8.9c7.2 0 14.3 2.6 19.9 7.8c19.7 18.3 39.8 43.2 55 70.6C469 131.2 480 162.2 480 192.2C480 280.8 408.7 352 320 352c-89.6 0-160-71.3-160-159.8c0-37.3 16-73.4 36.8-104.5c20.9-31.3 47.5-59 70.9-80.2C273.4 2.3 280.7-.2 288 0c14.1 .3 23.8 11.4 32.7 21.6c0 0 0 0 0 0c2 2.3 4 4.6 6 6.7l19 19.9zM384 240.2c0-36.5-37-73-54.8-88.4c-5.4-4.7-13.1-4.7-18.5 0C293 167.1 256 203.6 256 240.2c0 35.3 28.7 64 64 64s64-28.7 64-64zM32 288c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 64 448 0 0-64c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 96c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l0-96zM320 480a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm160-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM192 480a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"], - "flag": [448, 512, [127988, 61725], "f024", "M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32L0 64 0 368 0 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 64.3-16.1c41.1-10.3 84.6-5.5 122.5 13.4c44.2 22.1 95.5 24.8 141.7 7.4l34.7-13c12.5-4.7 20.8-16.6 20.8-30l0-247.7c0-23-24.2-38-44.8-27.7l-9.6 4.8c-46.3 23.2-100.8 23.2-147.1 0c-35.1-17.6-75.4-22-113.5-12.5L64 48l0-16z"], - "hanukiah": [640, 512, [128334], "f6e6", "M314.2 3.3C309.1 12.1 296 36.6 296 56c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7C324.6 1.2 322.4 0 320 0s-4.6 1.2-5.8 3.3zm-288 48C21.1 60.1 8 84.6 8 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7C36.6 49.2 34.4 48 32 48s-4.6 1.2-5.8 3.3zM88 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C101.1 60.1 88 84.6 88 104zm82.2-52.7C165.1 60.1 152 84.6 152 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM216 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C229.1 60.1 216 84.6 216 104zM394.2 51.3C389.1 60.1 376 84.6 376 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM440 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C453.1 60.1 440 84.6 440 104zm82.2-52.7C517.1 60.1 504 84.6 504 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM584 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C597.1 60.1 584 84.6 584 104zM112 160c-8.8 0-16 7.2-16 16l0 96 0 16 32 0 0-16 0-96c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 96 0 16 32 0 0-16 0-96c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 96 0 16 32 0 0-16 0-96c0-8.8-7.2-16-16-16zm160 0c-8.8 0-16 7.2-16 16l0 96 0 16 32 0 0-16 0-96c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 96 0 16 32 0 0-16 0-96c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 96 0 16 32 0 0-16 0-96c0-8.8-7.2-16-16-16zM352 144c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 176L96 320c-17.7 0-32-14.3-32-32l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 53 43 96 96 96l192 0 0 64-128 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0 160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-128 0 0-64 192 0c53 0 96-43 96-96l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7-14.3 32-32 32l-192 0 0-176z"], - "feather": [512, 512, [129718], "f52d", "M278.5 215.6L23 471c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l57-57 68 0c49.7 0 97.9-14.4 139-41c11.1-7.2 5.5-23-7.8-23c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l81-24.3c2.5-.8 4.8-2.1 6.7-4l22.4-22.4c10.1-10.1 2.9-27.3-11.3-27.3l-32.2 0c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l112-33.6c4-1.2 7.4-3.9 9.3-7.7C506.4 207.6 512 184.1 512 160c0-41-16.3-80.3-45.3-109.3l-5.5-5.5C432.3 16.3 393 0 352 0s-80.3 16.3-109.3 45.3L139 149C91 197 64 262.1 64 330l0 55.3L253.6 195.8c6.2-6.2 16.4-6.2 22.6 0c5.4 5.4 6.1 13.6 2.2 19.8z"], - "volume-low": [448, 512, [128264, "volume-down"], "f027", "M301.1 34.8C312.6 40 320 51.4 320 64l0 384c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352 64 352c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l67.8 0L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3zM412.6 181.5C434.1 199.1 448 225.9 448 256s-13.9 56.9-35.4 74.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C393.1 284.4 400 271 400 256s-6.9-28.4-17.7-37.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5z"], - "comment-slash": [640, 512, [], "f4b3", "M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L512.9 376.7C552.2 340.2 576 292.3 576 240C576 125.1 461.4 32 320 32c-67.7 0-129.3 21.4-175.1 56.3L38.8 5.1zm385.2 425L82.9 161.3C70.7 185.6 64 212.2 64 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9c37 0 72.3-6.4 104.1-17.9z"], - "cloud-sun-rain": [640, 512, [127782], "f743", "M294.2 1.2c5.1 2.1 8.7 6.7 9.6 12.1l10.4 62.4c-23.3 10.8-42.9 28.4-56 50.3c-14.6-9-31.8-14.1-50.2-14.1c-53 0-96 43-96 96c0 35.5 19.3 66.6 48 83.2c.8 31.8 13.2 60.7 33.1 82.7l-56 39.2c-4.5 3.2-10.3 3.8-15.4 1.6s-8.7-6.7-9.6-12.1L98.1 317.9 13.4 303.8c-5.4-.9-10-4.5-12.1-9.6s-1.5-10.9 1.6-15.4L52.5 208 2.9 137.2c-3.2-4.5-3.8-10.3-1.6-15.4s6.7-8.7 12.1-9.6L98.1 98.1l14.1-84.7c.9-5.4 4.5-10 9.6-12.1s10.9-1.5 15.4 1.6L208 52.5 278.8 2.9c4.5-3.2 10.3-3.8 15.4-1.6zM208 144c13.8 0 26.7 4.4 37.1 11.9c-1.2 4.1-2.2 8.3-3 12.6c-37.9 14.6-67.2 46.6-77.8 86.4C151.8 243.1 144 226.5 144 208c0-35.3 28.7-64 64-64zm69.4 276c11 7.4 14 22.3 6.7 33.3l-32 48c-7.4 11-22.3 14-33.3 6.7s-14-22.3-6.7-33.3l32-48c7.4-11 22.3-14 33.3-6.7zm96 0c11 7.4 14 22.3 6.7 33.3l-32 48c-7.4 11-22.3 14-33.3 6.7s-14-22.3-6.7-33.3l32-48c7.4-11 22.3-14 33.3-6.7zm96 0c11 7.4 14 22.3 6.7 33.3l-32 48c-7.4 11-22.3 14-33.3 6.7s-14-22.3-6.7-33.3l32-48c7.4-11 22.3-14 33.3-6.7zm96 0c11 7.4 14 22.3 6.7 33.3l-32 48c-7.4 11-22.3 14-33.3 6.7s-14-22.3-6.7-33.3l32-48c7.4-11 22.3-14 33.3-6.7zm74.5-116.1c0 44.2-35.8 80-80 80l-271.9 0c-53 0-96-43-96-96c0-47.6 34.6-87 80-94.6l0-1.3c0-53 43-96 96-96c34.9 0 65.4 18.6 82.2 46.4c13-9.1 28.8-14.4 45.8-14.4c44.2 0 80 35.8 80 80c0 5.9-.6 11.7-1.9 17.2c37.4 6.7 65.8 39.4 65.8 78.7z"], - "compress": [448, 512, [], "f066", "M160 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-96zM32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-96 0zM352 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-64zM320 320c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0z"], - "wheat-awn": [512, 512, ["wheat-alt"], "e2cd", "M505 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L383 95c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l88-88zM305.5 27.3c-6.2-6.2-16.4-6.2-22.6 0L271.5 38.6c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8L101.8 231c-6.2-6.2-16.4-6.2-22.6 0L67.9 242.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4L9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.9-68.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-21.8-21.8-49.6-34.1-78.1-36.9l31.9-31.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-21.8-21.8-49.6-34.1-78.1-36.9l31.9-31.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0L486.5 231c6.2-6.2 6.2-16.4 0-22.6L475.2 197c-5.2-5.2-10.6-9.8-16.4-13.9L505 137c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-59.4 59.4c-20.6-4.4-42-3.7-62.3 2.1c6.1-21.3 6.6-43.8 1.4-65.3L409 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L329.1 52.9c-3.7-5-7.8-9.8-12.4-14.3L305.5 27.3z"], - "ankh": [320, 512, [9765], "f644", "M96 128c0-35.3 28.7-64 64-64s64 28.7 64 64c0 41.6-20.7 76.6-46.6 104.1c-5.9 6.2-11.8 11.8-17.4 16.7c-5.6-4.9-11.5-10.5-17.4-16.7C116.7 204.6 96 169.6 96 128zM160 0C89.3 0 32 57.3 32 128c0 52.4 21.5 95.5 46.8 128L32 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-46.8 0c25.4-32.5 46.8-75.6 46.8-128C288 57.3 230.7 0 160 0z"], - "hands-holding-child": [640, 512, [], "e4fa", "M320 0a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm44.7 164.3L375.8 253c1.6 13.2-7.7 25.1-20.8 26.8s-25.1-7.7-26.8-20.8l-4.4-35-7.6 0-4.4 35c-1.6 13.2-13.6 22.5-26.8 20.8s-22.5-13.6-20.8-26.8l11.1-88.8L255.5 181c-10.1 8.6-25.3 7.3-33.8-2.8s-7.3-25.3 2.8-33.8l27.9-23.6C271.3 104.8 295.3 96 320 96s48.7 8.8 67.6 24.7l27.9 23.6c10.1 8.6 11.4 23.7 2.8 33.8s-23.7 11.4-33.8 2.8l-19.8-16.7zM40 64c22.1 0 40 17.9 40 40l0 40 0 80 0 40.2c0 17 6.7 33.3 18.7 45.3l51.1 51.1c8.3 8.3 21.3 9.6 31 3.1c12.9-8.6 14.7-26.9 3.7-37.8l-15.2-15.2-32-32c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l32 32 15.2 15.2c0 0 0 0 0 0l25.3 25.3c21 21 32.8 49.5 32.8 79.2l0 78.9c0 26.5-21.5 48-48 48l-66.7 0c-17 0-33.3-6.7-45.3-18.7L28.1 393.4C10.1 375.4 0 351 0 325.5L0 224l0-64 0-56C0 81.9 17.9 64 40 64zm560 0c22.1 0 40 17.9 40 40l0 56 0 64 0 101.5c0 25.5-10.1 49.9-28.1 67.9L512 493.3c-12 12-28.3 18.7-45.3 18.7L400 512c-26.5 0-48-21.5-48-48l0-78.9c0-29.7 11.8-58.2 32.8-79.2l25.3-25.3c0 0 0 0 0 0l15.2-15.2 32-32c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-32 32-15.2 15.2c-11 11-9.2 29.2 3.7 37.8c9.7 6.5 22.7 5.2 31-3.1l51.1-51.1c12-12 18.7-28.3 18.7-45.3l0-40.2 0-80 0-40c0-22.1 17.9-40 40-40z"], - "asterisk": [384, 512, [10033, 61545], "2a", "M192 32c17.7 0 32 14.3 32 32l0 135.5 111.5-66.9c15.2-9.1 34.8-4.2 43.9 11s4.2 34.8-11 43.9L254.2 256l114.3 68.6c15.2 9.1 20.1 28.7 11 43.9s-28.7 20.1-43.9 11L224 312.5 224 448c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-135.5L48.5 379.4c-15.2 9.1-34.8 4.2-43.9-11s-4.2-34.8 11-43.9L129.8 256 15.5 187.4c-15.2-9.1-20.1-28.7-11-43.9s28.7-20.1 43.9-11L160 199.5 160 64c0-17.7 14.3-32 32-32z"], - "square-check": [448, 512, [9745, 9989, 61510, "check-square"], "f14a", "M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"], - "peseta-sign": [384, 512, [], "e221", "M64 32C46.3 32 32 46.3 32 64l0 96c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 96 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 96 0c77.4 0 142-55 156.8-128l3.2 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-3.2 0C334 87 269.4 32 192 32L64 32zM282.5 160L96 160l0-64 96 0c41.8 0 77.4 26.7 90.5 64zM96 224l186.5 0c-13.2 37.3-48.7 64-90.5 64l-96 0 0-64z"], - "heading": [448, 512, ["header"], "f1dc", "M0 64C0 46.3 14.3 32 32 32l48 0 48 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 112 224 0 0-112-16 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l48 0 48 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 144 0 176 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-48 0-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-144-224 0 0 144 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-48 0-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-176L48 96 32 96C14.3 96 0 81.7 0 64z"], - "ghost": [384, 512, [128123], "f6e2", "M40.1 467.1l-11.2 9c-3.2 2.5-7.1 3.9-11.1 3.9C8 480 0 472 0 462.2L0 192C0 86 86 0 192 0S384 86 384 192l0 270.2c0 9.8-8 17.8-17.8 17.8c-4 0-7.9-1.4-11.1-3.9l-11.2-9c-13.4-10.7-32.8-9-44.1 3.9L269.3 506c-3.3 3.8-8.2 6-13.3 6s-9.9-2.2-13.3-6l-26.6-30.5c-12.7-14.6-35.4-14.6-48.2 0L141.3 506c-3.3 3.8-8.2 6-13.3 6s-9.9-2.2-13.3-6L84.2 471c-11.3-12.9-30.7-14.6-44.1-3.9zM160 192a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"], - "list": [512, 512, ["list-squares"], "f03a", "M40 48C26.7 48 16 58.7 16 72l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24L40 48zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zM16 232l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0z"], - "square-phone-flip": [448, 512, ["phone-square-alt"], "f87b", "M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zm-90.7 96.7c-9.7-2.6-19.9 2.3-23.7 11.6l-20 48c-3.4 8.2-1 17.6 5.8 23.2L280 231.7c-16.6 35.2-45.1 63.7-80.3 80.3l-20.2-24.7c-5.6-6.8-15-9.2-23.2-5.8l-48 20c-9.3 3.9-14.2 14-11.6 23.7l12 44C111.1 378 119 384 128 384c123.7 0 224-100.3 224-224c0-9-6-16.9-14.7-19.3l-44-12z"], - "cart-plus": [576, 512, [], "f217", "M0 24C0 10.7 10.7 0 24 0L69.5 0c22 0 41.5 12.8 50.6 32l411 0c26.3 0 45.5 25 38.6 50.4l-41 152.3c-8.5 31.4-37 53.3-69.5 53.3l-288.5 0 5.4 28.5c2.2 11.3 12.1 19.5 23.6 19.5L488 336c13.3 0 24 10.7 24 24s-10.7 24-24 24l-288.3 0c-34.6 0-64.3-24.6-70.7-58.5L77.4 54.5c-.7-3.8-4-6.5-7.9-6.5L24 48C10.7 48 0 37.3 0 24zM128 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm336-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM252 160c0 11 9 20 20 20l44 0 0 44c0 11 9 20 20 20s20-9 20-20l0-44 44 0c11 0 20-9 20-20s-9-20-20-20l-44 0 0-44c0-11-9-20-20-20s-20 9-20 20l0 44-44 0c-11 0-20 9-20 20z"], - "gamepad": [640, 512, [], "f11b", "M192 64C86 64 0 150 0 256S86 448 192 448l256 0c106 0 192-86 192-192s-86-192-192-192L192 64zM496 168a40 40 0 1 1 0 80 40 40 0 1 1 0-80zM392 304a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM168 200c0-13.3 10.7-24 24-24s24 10.7 24 24l0 32 32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0 0 32c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-32-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l32 0 0-32z"], - "circle-dot": [512, 512, [128280, "dot-circle"], "f192", "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-352a96 96 0 1 1 0 192 96 96 0 1 1 0-192z"], - "face-dizzy": [512, 512, ["dizzy"], "f567", "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-224a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM100.7 132.7c6.2-6.2 16.4-6.2 22.6 0L160 169.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L182.6 192l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L160 214.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L137.4 192l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6zm192 0c6.2-6.2 16.4-6.2 22.6 0L352 169.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L374.6 192l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L352 214.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L329.4 192l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6z"], - "egg": [384, 512, [129370], "f7fb", "M192 496C86 496 0 394 0 288C0 176 64 16 192 16s192 160 192 272c0 106-86 208-192 208zM154.8 134c6.5-6 7-16.1 1-22.6s-16.1-7-22.6-1c-23.9 21.8-41.1 52.7-52.3 84.2C69.7 226.1 64 259.7 64 288c0 8.8 7.2 16 16 16s16-7.2 16-16c0-24.5 5-54.4 15.1-82.8c10.1-28.5 25-54.1 43.7-71.2z"], - "house-medical-circle-xmark": [640, 512, [], "e513", "M320 368c0 59.5 29.5 112.1 74.8 144l-266.7 0c-35.3 0-64-28.7-64-64l0-160.4-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L522.1 193.9c-8.5-1.3-17.3-1.9-26.1-1.9c-54.7 0-103.5 24.9-135.8 64L320 256l0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zM496 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm22.6 144l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L496 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L473.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L496 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L518.6 368z"], - "campground": [576, 512, [9978], "f6bb", "M377 52c11-13.8 8.8-33.9-5-45s-33.9-8.8-45 5L288 60.8 249 12c-11-13.8-31.2-16-45-5s-16 31.2-5 45l48 60L12.3 405.4C4.3 415.4 0 427.7 0 440.4L0 464c0 26.5 21.5 48 48 48l240 0 240 0c26.5 0 48-21.5 48-48l0-23.6c0-12.7-4.3-25.1-12.3-35L329 112l48-60zM288 448l-119.5 0L288 291.7 407.5 448 288 448z"], - "folder-plus": [512, 512, [], "f65e", "M512 416c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l128 0c20.1 0 39.1 9.5 51.2 25.6l19.2 25.6c6 8.1 15.5 12.8 25.6 12.8l160 0c35.3 0 64 28.7 64 64l0 256zM232 376c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64 64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0 0-64c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 64-64 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l64 0 0 64z"], - "futbol": [512, 512, [9917, "futbol-ball", "soccer-ball"], "f1e3", "M417.3 360.1l-71.6-4.8c-5.2-.3-10.3 1.1-14.5 4.2s-7.2 7.4-8.4 12.5l-17.6 69.6C289.5 445.8 273 448 256 448s-33.5-2.2-49.2-6.4L189.2 372c-1.3-5-4.3-9.4-8.4-12.5s-9.3-4.5-14.5-4.2l-71.6 4.8c-17.6-27.2-28.5-59.2-30.4-93.6L125 228.3c4.4-2.8 7.6-7 9.2-11.9s1.4-10.2-.5-15l-26.7-66.6C128 109.2 155.3 89 186.7 76.9l55.2 46c4 3.3 9 5.1 14.1 5.1s10.2-1.8 14.1-5.1l55.2-46c31.3 12.1 58.7 32.3 79.6 57.9l-26.7 66.6c-1.9 4.8-2.1 10.1-.5 15s4.9 9.1 9.2 11.9l60.7 38.2c-1.9 34.4-12.8 66.4-30.4 93.6zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm14.1-325.7c-8.4-6.1-19.8-6.1-28.2 0L194 221c-8.4 6.1-11.9 16.9-8.7 26.8l18.3 56.3c3.2 9.9 12.4 16.6 22.8 16.6l59.2 0c10.4 0 19.6-6.7 22.8-16.6l18.3-56.3c3.2-9.9-.3-20.7-8.7-26.8l-47.9-34.8z"], - "paintbrush": [576, 512, [128396, "paint-brush"], "f1fc", "M339.3 367.1c27.3-3.9 51.9-19.4 67.2-42.9L568.2 74.1c12.6-19.5 9.4-45.3-7.6-61.2S517.7-4.4 499.1 9.6L262.4 187.2c-24 18-38.2 46.1-38.4 76.1L339.3 367.1zm-19.6 25.4l-116-104.4C143.9 290.3 96 339.6 96 400c0 3.9 .2 7.8 .6 11.6C98.4 429.1 86.4 448 68.8 448L64 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l144 0c61.9 0 112-50.1 112-112c0-2.5-.1-5-.2-7.5z"], - "lock": [448, 512, [128274], "f023", "M144 144l0 48 160 0 0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80zM80 192l0-48C80 64.5 144.5 0 224 0s144 64.5 144 144l0 48 16 0c35.3 0 64 28.7 64 64l0 192c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 256c0-35.3 28.7-64 64-64l16 0z"], - "gas-pump": [512, 512, [9981], "f52f", "M32 64C32 28.7 60.7 0 96 0L256 0c35.3 0 64 28.7 64 64l0 192 8 0c48.6 0 88 39.4 88 88l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-154c-27.6-7.1-48-32.2-48-62l0-64L384 64c-8.8-8.8-8.8-23.2 0-32s23.2-8.8 32 0l77.3 77.3c12 12 18.7 28.3 18.7 45.3l0 13.5 0 24 0 32 0 152c0 39.8-32.2 72-72 72s-72-32.2-72-72l0-32c0-22.1-17.9-40-40-40l-8 0 0 144c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32L32 64zM96 80l0 96c0 8.8 7.2 16 16 16l128 0c8.8 0 16-7.2 16-16l0-96c0-8.8-7.2-16-16-16L112 64c-8.8 0-16 7.2-16 16z"], - "hot-tub-person": [512, 512, ["hot-tub"], "f593", "M272 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 5.2c0 34 14.4 66.4 39.7 89.2l16.4 14.8c15.2 13.7 23.8 33.1 23.8 53.5l0 13.2c0 13.3 10.7 24 24 24s24-10.7 24-24l0-13.2c0-34-14.4-66.4-39.7-89.2L295.8 82.8C280.7 69.1 272 49.7 272 29.2l0-5.2zM0 320l0 16L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-128c0-35.3-28.7-64-64-64l-170.7 0c-13.8 0-27.3-4.5-38.4-12.8l-85.3-64C137 166.7 116.8 160 96 160c-53 0-96 43-96 96l0 64zm128 16l0 96c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-8.8 7.2-16 16-16s16 7.2 16 16zm80-16c8.8 0 16 7.2 16 16l0 96c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-8.8 7.2-16 16-16zm112 16l0 96c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-8.8 7.2-16 16-16s16 7.2 16 16zm80-16c8.8 0 16 7.2 16 16l0 96c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-8.8 7.2-16 16-16zM360 0c-13.3 0-24 10.7-24 24l0 5.2c0 34 14.4 66.4 39.7 89.2l16.4 14.8c15.2 13.7 23.8 33.1 23.8 53.5l0 13.2c0 13.3 10.7 24 24 24s24-10.7 24-24l0-13.2c0-34-14.4-66.4-39.7-89.2L407.8 82.8C392.7 69.1 384 49.7 384 29.2l0-5.2c0-13.3-10.7-24-24-24zM64 128A64 64 0 1 0 64 0a64 64 0 1 0 0 128z"], - "map-location": [576, 512, ["map-marked"], "f59f", "M302.8 312C334.9 271.9 408 174.6 408 120C408 53.7 354.3 0 288 0S168 53.7 168 120c0 54.6 73.1 151.9 105.2 192c7.7 9.6 22 9.6 29.6 0zM416 503l144.9-58c9.1-3.6 15.1-12.5 15.1-22.3L576 152c0-17-17.1-28.6-32.9-22.3l-116 46.4c-.5 1.2-1 2.5-1.5 3.7c-2.9 6.8-6.1 13.7-9.6 20.6L416 503zM15.1 187.3C6 191 0 199.8 0 209.6L0 480.4c0 17 17.1 28.6 32.9 22.3L160 451.8l0-251.4c-3.5-6.9-6.7-13.8-9.6-20.6c-5.6-13.2-10.4-27.4-12.8-41.5l-122.6 49zM384 255c-20.5 31.3-42.3 59.6-56.2 77c-20.5 25.6-59.1 25.6-79.6 0c-13.9-17.4-35.7-45.7-56.2-77l0 194.4 192 54.9L384 255z"], - "house-flood-water": [576, 512, [], "e50e", "M306.8 6.1C295.6-2 280.4-2 269.2 6.1l-176 128c-11.2 8.2-15.9 22.6-11.6 35.8S98.1 192 112 192l16 0 0 73c1.7 1 3.3 2 4.9 3.1c18 12.4 40.1 20.3 59.2 20.3c21.1 0 42-8.5 59.2-20.3c22.1-15.5 51.6-15.5 73.7 0c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c1.5-1 3-2 4.5-2.9l-.3-73.2 16.6 0c13.9 0 26.1-8.9 30.4-22.1s-.4-27.6-11.6-35.8l-176-128zM269.5 309.9C247 325.4 219.5 336 192 336c-26.9 0-55.3-10.8-77.4-26.1c0 0 0 0 0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 389.7 159 400 192 400c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.5-27.3-10.1-39.2-1.7c0 0 0 0 0 0C439.4 325.2 410.9 336 384 336c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0zM384 448c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1c0 0 0 0 0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7c0 0 0 0 0 0C439.4 437.2 410.9 448 384 448z"], - "tree": [448, 512, [127794], "f1bb", "M210.6 5.9L62 169.4c-3.9 4.2-6 9.8-6 15.5C56 197.7 66.3 208 79.1 208l24.9 0L30.6 281.4c-4.2 4.2-6.6 10-6.6 16C24 309.9 34.1 320 46.6 320L80 320 5.4 409.5C1.9 413.7 0 419 0 424.5c0 13 10.5 23.5 23.5 23.5L192 448l0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 168.5 0c13 0 23.5-10.5 23.5-23.5c0-5.5-1.9-10.8-5.4-15L368 320l33.4 0c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16L344 208l24.9 0c12.7 0 23.1-10.3 23.1-23.1c0-5.7-2.1-11.3-6-15.5L237.4 5.9C234 2.1 229.1 0 224 0s-10 2.1-13.4 5.9z"], - "bridge-lock": [640, 512, [], "e4cc", "M32 64c0-17.7 14.3-32 32-32l512 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-40 0 0 64-8 0c-61.9 0-112 50.1-112 112l0 24.6c-9.9 5.8-18.2 14.1-23.8 24.1c-17.6-20-43.4-32.7-72.2-32.7c-53 0-96 43-96 96l0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-64c0-53-43-96-96-96l0-128 72 0 0-64L64 96C46.3 96 32 81.7 32 64zM408 96l0 64 80 0 0-64-80 0zm-48 64l0-64-80 0 0 64 80 0zM152 96l0 64 80 0 0-64-80 0zM528 240c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80l0 48c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l0-48z"], - "sack-dollar": [512, 512, [128176], "f81d", "M320 96L192 96 144.6 24.9C137.5 14.2 145.1 0 157.9 0L354.1 0c12.8 0 20.4 14.2 13.3 24.9L320 96zM192 128l128 0c3.8 2.5 8.1 5.3 13 8.4C389.7 172.7 512 250.9 512 416c0 53-43 96-96 96L96 512c-53 0-96-43-96-96C0 250.9 122.3 172.7 179 136.4c0 0 0 0 0 0s0 0 0 0c4.8-3.1 9.2-5.9 13-8.4zm84 88c0-11-9-20-20-20s-20 9-20 20l0 14c-7.6 1.7-15.2 4.4-22.2 8.5c-13.9 8.3-25.9 22.8-25.8 43.9c.1 20.3 12 33.1 24.7 40.7c11 6.6 24.7 10.8 35.6 14l1.7 .5c12.6 3.8 21.8 6.8 28 10.7c5.1 3.2 5.8 5.4 5.9 8.2c.1 5-1.8 8-5.9 10.5c-5 3.1-12.9 5-21.4 4.7c-11.1-.4-21.5-3.9-35.1-8.5c-2.3-.8-4.7-1.6-7.2-2.4c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3c1.9 .6 4 1.3 6.1 2.1c0 0 0 0 0 0s0 0 0 0c8.3 2.9 17.9 6.2 28.2 8.4l0 14.6c0 11 9 20 20 20s20-9 20-20l0-13.8c8-1.7 16-4.5 23.2-9c14.3-8.9 25.1-24.1 24.8-45c-.3-20.3-11.7-33.4-24.6-41.6c-11.5-7.2-25.9-11.6-37.1-15c0 0 0 0 0 0l-.7-.2c-12.8-3.9-21.9-6.7-28.3-10.5c-5.2-3.1-5.3-4.9-5.3-6.7c0-3.7 1.4-6.5 6.2-9.3c5.4-3.2 13.6-5.1 21.5-5c9.6 .1 20.2 2.2 31.2 5.2c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-6.5-1.7-13.7-3.4-21.1-4.7l0-13.9z"], - "pen-to-square": [512, 512, ["edit"], "f044", "M471.6 21.7c-21.9-21.9-57.3-21.9-79.2 0L362.3 51.7l97.9 97.9 30.1-30.1c21.9-21.9 21.9-57.3 0-79.2L471.6 21.7zm-299.2 220c-6.1 6.1-10.8 13.6-13.5 21.9l-29.6 88.8c-2.9 8.6-.6 18.1 5.8 24.6s15.9 8.7 24.6 5.8l88.8-29.6c8.2-2.7 15.7-7.4 21.9-13.5L437.7 172.3 339.7 74.3 172.4 241.7zM96 64C43 64 0 107 0 160L0 416c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7-14.3 32-32 32L96 448c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 64z"], - "car-side": [640, 512, [128663], "f5e4", "M171.3 96L224 96l0 96-112.7 0 30.4-75.9C146.5 104 158.2 96 171.3 96zM272 192l0-96 81.2 0c9.7 0 18.9 4.4 25 12l67.2 84L272 192zm256.2 1L428.2 68c-18.2-22.8-45.8-36-75-36L171.3 32c-39.3 0-74.6 23.9-89.1 60.3L40.6 196.4C16.8 205.8 0 228.9 0 256L0 368c0 17.7 14.3 32 32 32l33.3 0c7.6 45.4 47.1 80 94.7 80s87.1-34.6 94.7-80l130.7 0c7.6 45.4 47.1 80 94.7 80s87.1-34.6 94.7-80l33.3 0c17.7 0 32-14.3 32-32l0-48c0-65.2-48.8-119-111.8-127zM434.7 368a48 48 0 1 1 90.5 32 48 48 0 1 1 -90.5-32zM160 336a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"], - "share-nodes": [448, 512, ["share-alt"], "f1e0", "M352 224c53 0 96-43 96-96s-43-96-96-96s-96 43-96 96c0 4 .2 8 .7 11.9l-94.1 47C145.4 170.2 121.9 160 96 160c-53 0-96 43-96 96s43 96 96 96c25.9 0 49.4-10.2 66.6-26.9l94.1 47c-.5 3.9-.7 7.8-.7 11.9c0 53 43 96 96 96s96-43 96-96s-43-96-96-96c-25.9 0-49.4 10.2-66.6 26.9l-94.1-47c.5-3.9 .7-7.8 .7-11.9s-.2-8-.7-11.9l94.1-47C302.6 213.8 326.1 224 352 224z"], - "heart-circle-minus": [576, 512, [], "e4ff", "M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6l0-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1l0 5.8c0 41.5 17.2 81.2 47.6 109.5zM576 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-64 0c0 8.8-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l128 0c8.8 0 16 7.2 16 16z"], - "hourglass-half": [384, 512, ["hourglass-2"], "f252", "M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l0 11c0 42.4 16.9 83.1 46.9 113.1L146.7 256 78.9 323.9C48.9 353.9 32 394.6 32 437l0 11c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 256 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-11c0-42.4-16.9-83.1-46.9-113.1L237.3 256l67.9-67.9c30-30 46.9-70.7 46.9-113.1l0-11c17.7 0 32-14.3 32-32s-14.3-32-32-32L320 0 64 0 32 0zM96 75l0-11 192 0 0 11c0 19-5.6 37.4-16 53L112 128c-10.3-15.6-16-34-16-53zm16 309c3.5-5.3 7.6-10.3 12.1-14.9L192 301.3l67.9 67.9c4.6 4.6 8.6 9.6 12.1 14.9L112 384z"], - "microscope": [512, 512, [128300], "f610", "M160 32c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32c17.7 0 32 14.3 32 32l0 224c0 17.7-14.3 32-32 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32c-17.7 0-32-14.3-32-32l0-224c0-17.7 14.3-32 32-32zM32 448l288 0c70.7 0 128-57.3 128-128s-57.3-128-128-128l0-64c106 0 192 86 192 192c0 49.2-18.5 94-48.9 128l16.9 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32zm80-64l192 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"], - "sink": [512, 512, [], "e06d", "M288 96c0-17.7 14.3-32 32-32s32 14.3 32 32s14.3 32 32 32s32-14.3 32-32c0-53-43-96-96-96s-96 43-96 96l0 192-64 0 0-24c0-30.9-25.1-56-56-56l-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c4.4 0 8 3.6 8 8l0 24-80 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l224 0 224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-80 0 0-24c0-4.4 3.6-8 8-8l56 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-56 0c-30.9 0-56 25.1-56 56l0 24-64 0 0-192zM480 416l0-32L32 384l0 32c0 53 43 96 96 96l256 0c53 0 96-43 96-96z"], - "bag-shopping": [448, 512, ["shopping-bag"], "f290", "M160 112c0-35.3 28.7-64 64-64s64 28.7 64 64l0 48-128 0 0-48zm-48 48l-64 0c-26.5 0-48 21.5-48 48L0 416c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-208c0-26.5-21.5-48-48-48l-64 0 0-48C336 50.1 285.9 0 224 0S112 50.1 112 112l0 48zm24 48a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm152 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"], - "arrow-down-z-a": [576, 512, ["sort-alpha-desc", "sort-alpha-down-alt"], "f881", "M183.6 469.6C177.5 476.2 169 480 160 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L128 365.7 128 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 301.7 32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 64c0-17.7 14.3-32 32-32l128 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L429.3 160l50.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L402.7 96 352 96c-17.7 0-32-14.3-32-32zm96 192c12.1 0 23.2 6.8 28.6 17.7l64 128 16 32c7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3L460.2 448l-88.4 0-7.2 14.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l16-32 64-128c5.4-10.8 16.5-17.7 28.6-17.7zM395.8 400l40.4 0L416 359.6 395.8 400z"], - "mitten": [448, 512, [], "f7b5", "M352 384L64 384 5.4 178.9C1.8 166.4 0 153.4 0 140.3C0 62.8 62.8 0 140.3 0l3.4 0c66 0 123.5 44.9 139.5 108.9l31.4 125.8 17.6-20.1C344.8 200.2 362.9 192 382 192l2.8 0c34.9 0 63.3 28.3 63.3 63.3c0 15.9-6 31.2-16.8 42.9L352 384zM32 448c0-17.7 14.3-32 32-32l288 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L64 512c-17.7 0-32-14.3-32-32l0-32z"], - "person-rays": [512, 512, [], "e54d", "M208 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1-28.6 47.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L328 256.9 328 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zM7 7C16.4-2.3 31.6-2.3 41 7l80 80c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 41C-2.3 31.6-2.3 16.4 7 7zM471 7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-80 80c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L471 7zM7 505c-9.4-9.4-9.4-24.6 0-33.9l80-80c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L41 505c-9.4 9.4-24.6 9.4-33.9 0zm464 0l-80-80c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l80 80c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0z"], - "users": [640, 512, [], "f0c0", "M144 0a80 80 0 1 1 0 160A80 80 0 1 1 144 0zM512 0a80 80 0 1 1 0 160A80 80 0 1 1 512 0zM0 298.7C0 239.8 47.8 192 106.7 192l42.7 0c15.9 0 31 3.5 44.6 9.7c-1.3 7.2-1.9 14.7-1.9 22.3c0 38.2 16.8 72.5 43.3 96c-.2 0-.4 0-.7 0L21.3 320C9.6 320 0 310.4 0 298.7zM405.3 320c-.2 0-.4 0-.7 0c26.6-23.5 43.3-57.8 43.3-96c0-7.6-.7-15-1.9-22.3c13.6-6.3 28.7-9.7 44.6-9.7l42.7 0C592.2 192 640 239.8 640 298.7c0 11.8-9.6 21.3-21.3 21.3l-213.3 0zM224 224a96 96 0 1 1 192 0 96 96 0 1 1 -192 0zM128 485.3C128 411.7 187.7 352 261.3 352l117.3 0C452.3 352 512 411.7 512 485.3c0 14.7-11.9 26.7-26.7 26.7l-330.7 0c-14.7 0-26.7-11.9-26.7-26.7z"], - "eye-slash": [640, 512, [], "f070", "M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zM223.1 149.5C248.6 126.2 282.7 112 320 112c79.5 0 144 64.5 144 144c0 24.9-6.3 48.3-17.4 68.7L408 294.5c8.4-19.3 10.6-41.4 4.8-63.3c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3c0 10.2-2.4 19.8-6.6 28.3l-90.3-70.8zM373 389.9c-16.4 6.5-34.3 10.1-53 10.1c-79.5 0-144-64.5-144-144c0-6.9 .5-13.6 1.4-20.2L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5L373 389.9z"], - "flask-vial": [640, 512, [], "e4f3", "M175 389.4c-9.8 16-15 34.3-15 53.1c-10 3.5-20.8 5.5-32 5.5c-53 0-96-43-96-96L32 64C14.3 64 0 49.7 0 32S14.3 0 32 0L96 0l64 0 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 245.9-49 79.6zM96 64l0 96 64 0 0-96L96 64zM352 0L480 0l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 150.9L629.7 406.2c6.7 10.9 10.3 23.5 10.3 36.4c0 38.3-31.1 69.4-69.4 69.4l-309.2 0c-38.3 0-69.4-31.1-69.4-69.4c0-12.8 3.6-25.4 10.3-36.4L320 214.9 320 64c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0zm32 64l0 160c0 5.9-1.6 11.7-4.7 16.8L330.5 320l171 0-48.8-79.2c-3.1-5-4.7-10.8-4.7-16.8l0-160-64 0z"], - "hand": [512, 512, [129306, 9995, "hand-paper"], "f256", "M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 272c0 1.5 0 3.1 .1 4.6L67.6 283c-16-15.2-41.3-14.6-56.6 1.4s-14.6 41.3 1.4 56.6L124.8 448c43.1 41.1 100.4 64 160 64l19.2 0c97.2 0 176-78.8 176-176l0-208c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 176c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208z"], - "om": [512, 512, [128329], "f679", "M379.3 4.7c-6.2-6.2-16.4-6.2-22.6 0l-16 16c-6.2 6.2-6.2 16.4 0 22.6l16 16c6.2 6.2 16.4 6.2 22.6 0l16-16c6.2-6.2 6.2-16.4 0-22.6l-16-16zM281 66.7c-2.2-1.5-4.9-2.5-7.7-2.7c-.6 0-1.3-.1-1.9 0c-3.9 .2-7.4 1.7-10.1 4.2c-.9 .8-1.6 1.7-2.3 2.6c-1.7 2.4-2.7 5.3-2.9 8.5c0 .7 0 1.4 0 2.1c.2 2.2 .9 4.3 1.9 6.2l.3 .6c.3 .6 .8 1.4 1.4 2.4c1.2 2 2.9 4.8 5.1 8.2c4.4 6.7 11.1 15.5 20 24.4C302.4 141.1 330.3 160 368 160c31.2 0 56.6-10.4 73.9-20.2c8.7-5 15.6-9.9 20.4-13.8c2.4-1.9 4.3-3.6 5.7-4.9c.7-.6 1.3-1.2 1.7-1.6l.6-.5 .1-.1 .1-.1s0 0 0 0s0 0 0 0c5.9-5.8 9.5-13.9 9.5-22.8c0-17.7-14.3-32-32-32c-8.7 0-16.7 3.5-22.4 9.2c-.1 .1-.2 .2-.5 .4c-.5 .5-1.5 1.3-2.8 2.4c-2.7 2.2-6.8 5.2-12.1 8.2C399.4 90.4 384.8 96 368 96c-20.8 0-42.4-7-59.5-14.6c-8.4-3.7-15.4-7.5-20.3-10.3c-2.4-1.4-4.3-2.5-5.6-3.3c-.6-.4-1.1-.7-1.4-.9l-.3-.2zM115.2 169.6c8-6 17.9-9.6 28.8-9.6c26.5 0 48 21.5 48 48s-21.5 48-48 48l-34.2 0c-7.6 0-13.8 6.2-13.8 13.8c0 1.5 .2 2.9 .7 4.4l8 24c4.4 13.1 16.6 21.9 30.4 21.9l8.9 0 16 0c35.3 0 64 28.7 64 64s-28.7 64-64 64c-50.8 0-82.7-21.5-102.2-42.8c-9.9-10.8-16.6-21.6-20.9-29.7c-2.1-4-3.6-7.3-4.5-9.6c-.5-1.1-.8-2-1-2.5l-.2-.5c-.3-.9-.7-1.8-1.1-2.6c-1.2-2.2-2.8-4-4.7-5.4c-1.9-1.4-4.1-2.3-6.5-2.8c-1.4-.3-2.9-.3-4.4-.2c-2.5 .2-4.8 1-6.8 2.3c-1.1 .7-2.2 1.5-3.1 2.5c-2.4 2.5-4.1 5.8-4.5 9.5c-.1 .6-.1 1.1-.1 1.7c0 0 0 0 0 0c0 .8 .1 1.7 .2 2.5l0 .1c0 .3 .1 .8 .2 1.3c.2 1.1 .4 2.7 .8 4.6c.8 3.9 2 9.4 3.9 15.9c3.8 13 10.3 30.4 21.3 48C48.7 476.2 89.4 512 160 512c70.7 0 128-57.3 128-128c0-23.3-6.2-45.2-17.1-64l22.6 0c25.5 0 49.9-10.1 67.9-28.1l26.5-26.5c6-6 14.1-9.4 22.6-9.4l5.5 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32c-25.7 0-41.4-12.5-51.2-25.6c-5-6.7-8.4-13.4-10.5-18.6c-1.1-2.5-1.8-4.6-2.2-6c-.2-.7-.4-1.2-.5-1.5l-.1-.2c-.3-1.3-.8-2.6-1.5-3.8c-1.1-2-2.6-3.8-4.4-5.1c-2.7-2-6-3.2-9.6-3.2l-.2 0c-8 .1-14.6 6.1-15.6 13.9c0 0 0 0 0 0c0 .3-.1 .6-.2 1.1c-.1 .9-.3 2.1-.4 3.6c-.3 3-.6 7.3-.6 12.4c0 10.1 1.1 23.9 5.8 38.1c4.8 14.3 13.4 29.3 28.6 40.7C368.7 473.3 389.3 480 416 480c53 0 96-43 96-96l0-96c0-53-43-96-96-96l-5.5 0c-25.5 0-49.9 10.1-67.9 28.1l-26.5 26.5c-6 6-14.1 9.4-22.6 9.4l-48.3 0c6.9-14.5 10.8-30.8 10.8-48c0-61.9-50.1-112-112-112c-25.2 0-48.5 8.3-67.2 22.4c-14.1 10.6-17 30.7-6.4 44.8s30.7 17 44.8 6.4z"], - "worm": [512, 512, [], "e599", "M256 96c0-53 43-96 96-96l38.4 0C439.9 0 480 40.1 480 89.6l0 86.4 0 16 0 184c0 75.1-60.9 136-136 136s-136-60.9-136-136l0-80c0-22.1-17.9-40-40-40s-40 17.9-40 40l0 168c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-168c0-75.1 60.9-136 136-136s136 60.9 136 136l0 80c0 22.1 17.9 40 40 40s40-17.9 40-40l0-184-32 0c-53 0-96-43-96-96zm144-8a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z"], - "house-circle-xmark": [640, 512, [], "e50b", "M320.7 352c8.1-89.7 83.5-160 175.3-160c8.9 0 17.6 .7 26.1 1.9L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1l32 0 0 69.7c-.1 .9-.1 1.8-.1 2.8l0 112c0 22.1 17.9 40 40 40l16 0c1.2 0 2.4-.1 3.6-.2c1.5 .1 3 .2 4.5 .2l31.9 0 24 0c22.1 0 40-17.9 40-40l0-24 0-64c0-17.7 14.3-32 32-32l64 0 .7 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"], - "plug": [384, 512, [128268], "f1e6", "M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2C297 398 352 333.4 352 256l0-32c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 160z"], - "chevron-up": [512, 512, [], "f077", "M233.4 105.4c12.5-12.5 32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L256 173.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l192-192z"], - "hand-spock": [576, 512, [128406], "f259", "M246.9 23.7C242.3 6.6 224.8-3.5 207.7 1.1s-27.2 22.1-22.6 39.2L238 237.8c2.5 9.2-4.5 18.2-14 18.2c-6.4 0-12-4.2-13.9-10.3L166.6 102.7c-5.1-16.9-23-26.4-39.9-21.3s-26.4 23-21.3 39.9l62.8 206.4c2.4 7.9-7.2 13.8-13.2 8.1L99.6 283c-16-15.2-41.3-14.6-56.6 1.4s-14.6 41.3 1.4 56.6L156.8 448c43.1 41.1 100.4 64 160 64l10.9 0 8.2 0c.1 0 .1-.1 .1-.1s.1-.1 .1-.1c58.3-3.5 108.6-43.2 125.3-99.7l81.2-275c5-16.9-4.7-34.7-21.6-39.8s-34.7 4.7-39.8 21.6L443.5 247.1c-1.6 5.3-6.4 8.9-12 8.9c-7.9 0-13.8-7.3-12.2-15.1l36-170.3c3.7-17.3-7.4-34.3-24.7-37.9s-34.3 7.4-37.9 24.7L355.1 235.1c-2.6 12.2-13.3 20.9-25.8 20.9c-11.9 0-22.4-8-25.4-19.5l-57-212.8z"], - "stopwatch": [448, 512, [9201], "f2f2", "M176 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0 0 34.4C92.3 113.8 16 200 16 304c0 114.9 93.1 208 208 208s208-93.1 208-208c0-41.8-12.3-80.7-33.5-113.2l24.1-24.1c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L355.7 143c-28.1-23-62.2-38.8-99.7-44.6L256 64l16 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L224 0 176 0zm72 192l0 128c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-128c0-13.3 10.7-24 24-24s24 10.7 24 24z"], - "face-kiss": [512, 512, [128535, "kiss"], "f596", "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm48.7-198.3c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 443.1 257.4 448 240 448c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9c0 0 0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7c0 0 0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1 .3-.2 .6-.4c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.4-.3-.5-.3-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"], - "bridge-circle-xmark": [640, 512, [], "e4cb", "M64 32C46.3 32 32 46.3 32 64s14.3 32 32 32l40 0 0 64-72 0 0 128c53 0 96 43 96 96l0 64c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96c6.3 0 12.4 .6 18.3 1.7C367.1 231.8 426.9 192 496 192c42.5 0 81.6 15.1 112 40.2l0-72.2-72 0 0-64 40 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 32zM488 96l0 64-80 0 0-64 80 0zM360 96l0 64-80 0 0-64 80 0zM232 96l0 64-80 0 0-64 80 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"], - "face-grin-tongue": [512, 512, [128539, "grin-tongue"], "f589", "M0 256C0 368.9 73.1 464.7 174.5 498.8C165.3 484 160 466.6 160 448l0-47.3c-24-17.5-43.1-41.4-54.8-69.2c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19c12.3-3.8 24.3 6.9 19.3 18.7c-11.8 28-31.1 52-55.4 69.6l0 46.9c0 18.6-5.3 36-14.5 50.8C438.9 464.7 512 368.9 512 256C512 114.6 397.4 0 256 0S0 114.6 0 256zm176.4-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM320 448l0-45.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 45.4c0 35.3 28.7 64 64 64s64-28.7 64-64z"], - "chess-bishop": [320, 512, [9821], "f43a", "M128 0C110.3 0 96 14.3 96 32c0 16.1 11.9 29.4 27.4 31.7C78.4 106.8 8 190 8 288c0 47.4 30.8 72.3 56 84.7L64 400l192 0 0-27.3c25.2-12.5 56-37.4 56-84.7c0-37.3-10.2-72.4-25.3-104.1l-99.4 99.4c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L270.8 154.6c-23.2-38.1-51.8-69.5-74.2-90.9C212.1 61.4 224 48.1 224 32c0-17.7-14.3-32-32-32L128 0zM48 432L6.6 473.4c-4.2 4.2-6.6 10-6.6 16C0 501.9 10.1 512 22.6 512l274.7 0c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16L272 432 48 432z"], - "face-grin-wink": [512, 512, ["grin-wink"], "f58c", "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zm-16.9-79.2c-17.6-23.5-52.8-23.5-70.4 0c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"], - "ear-deaf": [512, 512, ["deaf", "deafness", "hard-of-hearing"], "f2a4", "M502.6 54.6l-40 40c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l40-40c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm-320 320l-128 128c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l128-128c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM240 128c-57.6 0-105.1 43.6-111.3 99.5c-1.9 17.6-17.8 30.2-35.3 28.3s-30.2-17.8-28.3-35.3C74.8 132.5 149.4 64 240 64c97.2 0 176 78.8 176 176c0 46-17.7 87.9-46.6 119.3c-12 13-17.4 24.8-17.4 34.7l0 6.1c0 61.9-50.1 112-112 112c-17.7 0-32-14.3-32-32s14.3-32 32-32c26.5 0 48-21.5 48-48l0-6.1c0-32.9 17.4-59.6 34.4-78c18.4-20 29.6-46.6 29.6-75.9c0-61.9-50.1-112-112-112zm0 80c-17.7 0-32 14.3-32 32c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-44.2 35.8-80 80-80s80 35.8 80 80c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-17.7-14.3-32-32-32z"], - "road-circle-check": [640, 512, [], "e564", "M213.2 32L288 32l0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 74.8 0c27.1 0 51.3 17.1 60.3 42.6l42.7 120.6c-10.9-2.1-22.2-3.2-33.8-3.2c-59.5 0-112.1 29.6-144 74.8l0-42.8c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32c2.3 0 4.6-.3 6.8-.7c-4.5 15.5-6.8 31.8-6.8 48.7c0 5.4 .2 10.7 .7 16l-.7 0c-17.7 0-32 14.3-32 32l0 64L86.6 480C56.5 480 32 455.5 32 425.4c0-6.2 1.1-12.4 3.1-18.2L152.9 74.6C162 49.1 186.1 32 213.2 32zM352 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L480 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z"], - "dice-five": [448, 512, [9860], "f523", "M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM96 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM224 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64-64a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 160a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"], - "square-rss": [448, 512, ["rss-square"], "f143", "M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM96 136c0-13.3 10.7-24 24-24c137 0 248 111 248 248c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-110.5-89.5-200-200-200c-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24c83.9 0 152 68.1 152 152c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-57.4-46.6-104-104-104c-13.3 0-24-10.7-24-24zm0 120a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"], - "land-mine-on": [640, 512, [], "e51b", "M344 24l0 144c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-144c0-13.3 10.7-24 24-24s24 10.7 24 24zM192 320c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32l0 32-256 0 0-32zm-77.3 90.5c8.1-16.3 24.8-26.5 42.9-26.5l324.7 0c18.2 0 34.8 10.3 42.9 26.5l27.6 55.2C563.5 487 548 512 524.2 512l-408.4 0c-23.8 0-39.3-25-28.6-46.3l27.6-55.2zM36.3 138.3c7.5-10.9 22.5-13.6 33.4-6.1l104 72c10.9 7.5 13.6 22.5 6.1 33.4s-22.5 13.6-33.4 6.1l-104-72c-10.9-7.5-13.6-22.5-6.1-33.4zm534.1-6.1c10.9-7.5 25.8-4.8 33.4 6.1s4.8 25.8-6.1 33.4l-104 72c-10.9 7.5-25.8 4.8-33.4-6.1s-4.8-25.8 6.1-33.4l104-72z"], - "i-cursor": [256, 512, [], "f246", "M.1 29.3C-1.4 47 11.7 62.4 29.3 63.9l8 .7C70.5 67.3 96 95 96 128.3L96 224l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 95.7c0 33.3-25.5 61-58.7 63.8l-8 .7C11.7 449.6-1.4 465 .1 482.7s16.9 30.7 34.5 29.2l8-.7c34.1-2.8 64.2-18.9 85.4-42.9c21.2 24 51.2 40 85.4 42.9l8 .7c17.6 1.5 33.1-11.6 34.5-29.2s-11.6-33.1-29.2-34.5l-8-.7C185.5 444.7 160 417 160 383.7l0-95.7 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-95.7c0-33.3 25.5-61 58.7-63.8l8-.7c17.6-1.5 30.7-16.9 29.2-34.5S239-1.4 221.3 .1l-8 .7C179.2 3.6 149.2 19.7 128 43.7c-21.2-24-51.2-40-85.4-42.9l-8-.7C17-1.4 1.6 11.7 .1 29.3z"], - "stamp": [512, 512, [], "f5bf", "M312 201.8c0-17.4 9.2-33.2 19.9-47C344.5 138.5 352 118.1 352 96c0-53-43-96-96-96s-96 43-96 96c0 22.1 7.5 42.5 20.1 58.8c10.7 13.8 19.9 29.6 19.9 47c0 29.9-24.3 54.2-54.2 54.2L112 256C50.1 256 0 306.1 0 368c0 20.9 13.4 38.7 32 45.3L32 464c0 26.5 21.5 48 48 48l352 0c26.5 0 48-21.5 48-48l0-50.7c18.6-6.6 32-24.4 32-45.3c0-61.9-50.1-112-112-112l-33.8 0c-29.9 0-54.2-24.3-54.2-54.2zM416 416l0 32L96 448l0-32 320 0z"], - "stairs": [576, 512, [], "e289", "M384 64c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0 0 96c0 17.7-14.3 32-32 32l-96 0 0 96c0 17.7-14.3 32-32 32l-96 0 0 96c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0 0-96c0-17.7 14.3-32 32-32l96 0 0-96c0-17.7 14.3-32 32-32l96 0 0-96z"], - "i": [320, 512, [105], "49", "M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l96 0 0 320-96 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0 0-320 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L160 32 32 32z"], - "hryvnia-sign": [384, 512, [8372, "hryvnia"], "f6f2", "M121.9 116.2C138.3 103.1 158.7 96 179.6 96L223 96c27.1 0 49 21.9 49 49c0 11.5-4 22.4-11.1 31L32 176c-17.7 0-32 14.3-32 32s14.3 32 32 32l123.5 0-50.6 28.9c-1.7 1-3.4 2-5.1 3.1L32 272c-17.7 0-32 14.3-32 32s14.3 32 32 32l20.3 0c-2.8 9.9-4.3 20.4-4.3 31c0 62.4 50.6 113 113 113l43.4 0c35.5 0 70-12.1 97.7-34.3L308 441c13.8-11 16-31.2 5-45s-31.2-16-45-5l-5.9 4.7c-16.4 13.1-36.7 20.2-57.7 20.2L161 416c-27.1 0-49-21.9-49-49c0-11.5 4-22.4 11.1-31L352 336c17.7 0 32-14.3 32-32s-14.3-32-32-32l-123.5 0 50.6-28.9c1.7-1 3.4-2 5.1-3.1l67.8 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-20.3 0c2.8-10 4.3-20.4 4.3-31c0-62.4-50.6-113-113-113l-43.4 0c-35.5 0-70 12.1-97.7 34.3L76 71c-13.8 11-16 31.2-5 45s31.2 16 45 5l5.9-4.7z"], - "pills": [576, 512, [], "f484", "M112 96c-26.5 0-48 21.5-48 48l0 112 96 0 0-112c0-26.5-21.5-48-48-48zM0 144C0 82.1 50.1 32 112 32s112 50.1 112 112l0 224c0 61.9-50.1 112-112 112S0 429.9 0 368L0 144zM554.9 399.4c-7.1 12.3-23.7 13.1-33.8 3.1L333.5 214.9c-10-10-9.3-26.7 3.1-33.8C360 167.7 387.1 160 416 160c88.4 0 160 71.6 160 160c0 28.9-7.7 56-21.1 79.4zm-59.5 59.5C472 472.3 444.9 480 416 480c-88.4 0-160-71.6-160-160c0-28.9 7.7-56 21.1-79.4c7.1-12.3 23.7-13.1 33.8-3.1L498.5 425.1c10 10 9.3 26.7-3.1 33.8z"], - "face-grin-wide": [512, 512, [128515, "grin-alt"], "f581", "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zM208 192c0 35.3-14.3 64-32 64s-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64zm128 64c-17.7 0-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64s-14.3 64-32 64z"], - "tooth": [448, 512, [129463], "f5c9", "M186.1 52.1C169.3 39.1 148.7 32 127.5 32C74.7 32 32 74.7 32 127.5l0 6.2c0 15.8 3.7 31.3 10.7 45.5l23.5 47.1c4.5 8.9 7.6 18.4 9.4 28.2l36.7 205.8c2 11.2 11.6 19.4 22.9 19.8s21.4-7.4 24-18.4l28.9-121.3C192.2 323.7 207 312 224 312s31.8 11.7 35.8 28.3l28.9 121.3c2.6 11.1 12.7 18.8 24 18.4s20.9-8.6 22.9-19.8l36.7-205.8c1.8-9.8 4.9-19.3 9.4-28.2l23.5-47.1c7.1-14.1 10.7-29.7 10.7-45.5l0-2.1c0-55-44.6-99.6-99.6-99.6c-24.1 0-47.4 8.8-65.6 24.6l-3.2 2.8 19.5 15.2c7 5.4 8.2 15.5 2.8 22.5s-15.5 8.2-22.5 2.8l-24.4-19-37-28.8z"], - "v": [384, 512, [118], "56", "M19.7 34.5c16.3-6.8 35 .9 41.8 17.2L192 364.8 322.5 51.7c6.8-16.3 25.5-24 41.8-17.2s24 25.5 17.2 41.8l-160 384c-5 11.9-16.6 19.7-29.5 19.7s-24.6-7.8-29.5-19.7L2.5 76.3c-6.8-16.3 .9-35 17.2-41.8z"], - "bangladeshi-taka-sign": [384, 512, [], "e2e6", "M36 32.3C18.4 30.1 2.4 42.5 .2 60S10.5 93.6 28 95.8l7.9 1c16 2 28 15.6 28 31.8L64 160l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 160c0 53 43 96 96 96l32 0c106 0 192-86 192-192l0-32c0-53-43-96-96-96l-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0c17.7 0 32 14.3 32 32l0 32c0 70.7-57.3 128-128 128l-32 0c-17.7 0-32-14.3-32-32l0-160 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-31.5c0-48.4-36.1-89.3-84.1-95.3l-7.9-1z"], - "bicycle": [640, 512, [128690], "f206", "M312 32c-13.3 0-24 10.7-24 24s10.7 24 24 24l25.7 0 34.6 64-149.4 0-27.4-38C191 99.7 183.7 96 176 96l-56 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l43.7 0 22.1 30.7-26.6 53.1c-10-2.5-20.5-3.8-31.2-3.8C57.3 224 0 281.3 0 352s57.3 128 128 128c65.3 0 119.1-48.9 127-112l49 0c8.5 0 16.3-4.5 20.7-11.8l84.8-143.5 21.7 40.1C402.4 276.3 384 312 384 352c0 70.7 57.3 128 128 128s128-57.3 128-128s-57.3-128-128-128c-13.5 0-26.5 2.1-38.7 6L375.4 48.8C369.8 38.4 359 32 347.2 32L312 32zM458.6 303.7l32.3 59.7c6.3 11.7 20.9 16 32.5 9.7s16-20.9 9.7-32.5l-32.3-59.7c3.6-.6 7.4-.9 11.2-.9c39.8 0 72 32.2 72 72s-32.2 72-72 72s-72-32.2-72-72c0-18.6 7-35.5 18.6-48.3zM133.2 368l65 0c-7.3 32.1-36 56-70.2 56c-39.8 0-72-32.2-72-72s32.2-72 72-72c1.7 0 3.4 .1 5.1 .2l-24.2 48.5c-9 18.1 4.1 39.4 24.3 39.4zm33.7-48l50.7-101.3 72.9 101.2-.1 .1-123.5 0zm90.6-128l108.5 0L317 274.8 257.4 192z"], - "staff-snake": [384, 512, ["rod-asclepius", "rod-snake", "staff-aesculapius"], "e579", "M222.6 43.2l-.1 4.8L288 48c53 0 96 43 96 96s-43 96-96 96l-40 0 0-80 40 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-40 0-28 0-4.5 144 40.5 0c53 0 96 43 96 96s-43 96-96 96l-16 0 0-80 16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-43 0-3.1 99.5L208.5 495l0 1c-.3 8.9-7.6 16-16.5 16s-16.2-7.1-16.5-16l0-1-1-31L136 464c-22.1 0-40-17.9-40-40s17.9-40 40-40l36 0-1-32-19 0c-53 0-96-43-96-96c0-47.6 34.6-87.1 80-94.7l0 94.7c0 8.8 7.2 16 16 16l16.5 0L164 128l-28 0-13.4 0c-9 18.9-28.3 32-50.6 32l-16 0c-30.9 0-56-25.1-56-56S25.1 48 56 48l8 0 8 0 89.5 0-.1-4.8L161 32c0-.7 0-1.3 0-1.9c.5-16.6 14.1-30 31-30s30.5 13.4 31 30c0 .6 0 1.3 0 1.9l-.4 11.2zM64 112a16 16 0 1 0 0-32 16 16 0 1 0 0 32z"], - "head-side-cough-slash": [640, 512, [], "e062", "M448 325.8l44 34.5c8.1 1.4 14.8 6.8 18 14.1L552.9 408c10.6 .4 19.5 7.6 22.2 17.4l39.1 30.6c.6 0 1.2-.1 1.8-.1c11.1 0 20.4 7.5 23.2 17.8l-3.9 0c6.2 8.5 6.4 20.4-.4 29c-8.2 10.4-23.3 12.3-33.7 4.1L9.2 42.9C-1.2 34.7-3.1 19.6 5.1 9.2S28.4-3.1 38.8 5.1L89.6 44.9C127 16.7 173.5 0 224 0l24 0c95.2 0 181.2 69.3 197.3 160.2c2.3 13 6.8 25.7 15.1 36l42 52.6c6.2 7.8 9.6 17.4 9.6 27.4c0 24.2-19.6 43.8-43.8 43.8L448 320s0 0 0 0l0 5.8zM0 224.2c0-38.7 9.8-75.1 27.1-106.9L341.8 365.3l-2.5 .3c-11 1.4-19.2 10.7-19.2 21.8c0 11.6 9 21.2 20.6 21.9l62 3.9 43 33.9C439.3 466.2 421.2 480 400 480l-80 0 0 8c0 13.3-10.7 24-24 24l-40 0s0 0 0 0L96 512c-17.7 0-32-14.3-32-32l0-72.7c0-16.7-6.9-32.5-17.1-45.8C16.6 322.4 0 274.1 0 224.2zM616 360a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm-64-48a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40-24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"], - "truck-medical": [640, 512, [128657, "ambulance"], "f0f9", "M0 48C0 21.5 21.5 0 48 0L368 0c26.5 0 48 21.5 48 48l0 48 50.7 0c17 0 33.3 6.7 45.3 18.7L589.3 192c12 12 18.7 28.3 18.7 45.3l0 18.7 0 32 0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c0 53-43 96-96 96s-96-43-96-96l-128 0c0 53-43 96-96 96s-96-43-96-96l-16 0c-26.5 0-48-21.5-48-48L0 48zM416 256l128 0 0-18.7L466.7 160 416 160l0 96zM160 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm368-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM176 80l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-48 0 0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z"], - "wheat-awn-circle-exclamation": [640, 512, [], "e598", "M505 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L383 95c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l88-88zM305.5 27.3c-6.2-6.2-16.4-6.2-22.6 0L271.5 38.6c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8L101.8 231c-6.2-6.2-16.4-6.2-22.6 0L67.9 242.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4L9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.9-68.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-21.8-21.8-49.6-34.1-78.1-36.9l31.9-31.9 12.2 12.2c22.5 22.5 53.3 31.5 82.4 27c0-1 0-2.1 0-3.1c0-33.1 9.1-64.1 25-90.6c-15.5-8.7-32.5-13.8-49.8-15.5l31.9-31.9 12.2 12.2c6 6 12.6 11.1 19.7 15.2c27.5-34 67.3-57.5 112.6-63.8c-4.1-3.8-8.4-7.3-12.9-10.5L505 137c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-59.4 59.4c-20.6-4.4-42-3.7-62.3 2.1c6.1-21.3 6.6-43.8 1.4-65.3L409 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L329.1 52.9c-3.7-5-7.8-9.8-12.4-14.3L305.5 27.3zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z"], - "snowman": [512, 512, [9731, 9924], "f7d0", "M341.1 140.6c-2 3.9-1.6 8.6 1.2 12c7 8.5 12.9 18.1 17.2 28.4L408 160.2l0-40.2c0-13.3 10.7-24 24-24s24 10.7 24 24l0 19.6 22.5-9.7c12.2-5.2 26.3 .4 31.5 12.6s-.4 26.3-12.6 31.5l-56 24-73.6 31.5c-.5 9.5-2.1 18.6-4.8 27.3c-1.2 3.8-.1 8 2.8 10.8C396.7 296.9 416 338.2 416 384c0 44.7-18.3 85-47.8 114.1c-9.9 9.7-23.7 13.9-37.5 13.9l-149.3 0c-13.9 0-27.7-4.2-37.5-13.9C114.3 469 96 428.7 96 384c0-45.8 19.3-87.1 50.1-116.3c2.9-2.8 4-6.9 2.8-10.8c-2.7-8.7-4.3-17.9-4.8-27.3L70.5 198.1l-56-24C2.4 168.8-3.3 154.7 1.9 142.5s19.3-17.8 31.5-12.6L56 139.6 56 120c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40.2L152.6 181c4.3-10.3 10.1-19.9 17.2-28.4c2.8-3.4 3.3-8.1 1.2-12C164 127.2 160 112.1 160 96c0-53 43-96 96-96s96 43 96 96c0 16.1-4 31.2-10.9 44.6zM224 96a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm48 128a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-16 80a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm16 48a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zM288 96a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm-48 24l0 3.2c0 3.2 .8 6.3 2.3 9l9 16.9c.9 1.7 2.7 2.8 4.7 2.8s3.8-1.1 4.7-2.8l9-16.9c1.5-2.8 2.3-5.9 2.3-9l0-3.2c0-8.8-7.2-16-16-16s-16 7.2-16 16z"], - "mortar-pestle": [512, 512, [], "f5a7", "M504.3 11.1C493.3-1.6 474.5-3.7 461 6.2L252.3 160l144.9 0L502.6 54.6c11.8-11.8 12.6-30.8 1.6-43.5zM32 192c-17.7 0-32 14.3-32 32s14.3 32 32 32c0 82.5 43.4 147.7 123.9 176.2c-11.1 13.9-19.4 30.3-23.9 48.1C127.6 497.4 142.3 512 160 512l192 0c17.7 0 32.4-14.6 28.1-31.7c-4.5-17.8-12.8-34.1-23.9-48.1C436.6 403.7 480 338.5 480 256c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 192z"], - "road-barrier": [640, 512, [], "e562", "M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-181.7L149.2 96 64 96l0-32c0-17.7-14.3-32-32-32zM405.2 96l-74.3 0-5.4 10.7L234.8 288l74.3 0 5.4-10.7L405.2 96zM362.8 288l74.3 0 5.4-10.7L533.2 96l-74.3 0-5.4 10.7L362.8 288zM202.8 96l-5.4 10.7L106.8 288l74.3 0 5.4-10.7L277.2 96l-74.3 0zm288 192l85.2 0 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 53.7L490.8 288z"], - "school": [640, 512, [127979], "f549", "M337.8 5.4C327-1.8 313-1.8 302.2 5.4L166.3 96 48 96C21.5 96 0 117.5 0 144L0 464c0 26.5 21.5 48 48 48l208 0 0-96c0-35.3 28.7-64 64-64s64 28.7 64 64l0 96 208 0c26.5 0 48-21.5 48-48l0-320c0-26.5-21.5-48-48-48L473.7 96 337.8 5.4zM96 192l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16zm400 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64zM96 320l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16zm400 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64zM232 176a88 88 0 1 1 176 0 88 88 0 1 1 -176 0zm88-48c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0 0-16c0-8.8-7.2-16-16-16z"], - "igloo": [576, 512, [], "f7ae", "M320 33.8L320 160 48.5 160C100.2 82.8 188.1 32 288 32c10.8 0 21.5 .6 32 1.8zM352 160l0-120.9C424.9 55.7 487.2 99.8 527.5 160L352 160zM29.9 192L96 192l0 128L0 320c0-46 10.8-89.4 29.9-128zM192 320l-64 0 0-128 320 0 0 128-64 0 0 32 192 0 0 80c0 26.5-21.5 48-48 48l-176 0 0-128c0-35.3-28.7-64-64-64s-64 28.7-64 64l0 128L48 480c-26.5 0-48-21.5-48-48l0-80 192 0 0-32zm288 0l0-128 66.1 0c19.2 38.6 29.9 82 29.9 128l-96 0z"], - "joint": [640, 512, [], "f595", "M448 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 11c0 55.2 21.9 108.1 60.9 147.1l21 21c9 9 14.1 21.2 14.1 33.9l0 11c0 17.7 14.3 32 32 32s32-14.3 32-32l0-11c0-29.7-11.8-58.2-32.8-79.2l-21-21C463.2 117.8 448 81.2 448 43l0-11zM576 256c0 17.7 14.3 32 32 32s32-14.3 32-32l0-11c0-55.2-21.9-108.1-60.9-147.1l-21-21c-9-9-14.1-21.2-14.1-33.9l0-11c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 11c0 29.7 11.8 58.2 32.8 79.2l21 21c27 27 42.2 63.6 42.2 101.8l0 11zM229.8 360c-4.7-2.3-10-2.7-15.2-2c-37.8 5.6-75.2 14.3-106.9 22.8C81.3 388 58.3 395.1 42 400.4c-8.2 2.7-14.7 4.9-19.2 6.5c-2.3 .8-4 1.4-5.2 1.8l-1.3 .5C6.8 412.5 0 421.4 0 432s6.8 19.5 16.3 22.7l1.3 .5c1.2 .4 3 1.1 5.2 1.8c4.5 1.6 11 3.8 19.2 6.5c16.3 5.4 39.2 12.5 65.7 19.6C160.3 497.3 228.8 512 288 512l67.3 0c4.1 0 6.3-5.1 3.6-8.3L256.5 380.8c-7.4-8.9-16.5-15.9-26.7-20.8zM445 512l19 0 51.3 0c4.1 0 6.3-5.1 3.6-8.3L416.5 380.8C401.3 362.5 378.8 352 355 352l-19 0-48 0c-1.1 0-2.3 0-3.4 0c-4.1 0-6.2 5.1-3.5 8.3L383.5 483.2C398.7 501.5 421.2 512 445 512zm-3.9-151.7L543.5 483.2c14.6 17.5 35.9 27.9 58.6 28.7c21.1-1.1 37.9-18.6 37.9-39.9l0-80c0-22.1-17.9-40-40-40l-155.3 0c-4.1 0-6.3 5.1-3.6 8.3z"], - "angle-right": [320, 512, [8250], "f105", "M278.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256 73.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z"], - "horse": [576, 512, [128014], "f6f0", "M448 238.1l0-78.1 16 0 9.8 19.6c12.5 25.1 42.2 36.4 68.3 26c20.5-8.2 33.9-28 33.9-50.1L576 80c0-19.1-8.4-36.3-21.7-48l5.7 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L480 0 448 0C377.3 0 320 57.3 320 128l-96 0-20.8 0-54.4 0c-30.7 0-57.6 16.3-72.5 40.8C33.2 174.5 0 211.4 0 256l0 56c0 13.3 10.7 24 24 24s24-10.7 24-24l0-56c0-13.4 6.6-25.2 16.7-32.5c1.6 13 6.3 25.4 13.6 36.4l28.2 42.4c8.3 12.4 6.4 28.7-1.2 41.6c-16.5 28-20.6 62.2-10 93.9l17.5 52.4c4.4 13.1 16.6 21.9 30.4 21.9l33.7 0c21.8 0 37.3-21.4 30.4-42.1l-20.8-62.5c-2.1-6.4-.5-13.4 4.3-18.2l12.7-12.7c13.2-13.2 20.6-31.1 20.6-49.7c0-2.3-.1-4.6-.3-6.9l84 24c4.1 1.2 8.2 2.1 12.3 2.8L320 480c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-164.3c19.2-19.2 31.5-45.7 32-75.7c0 0 0 0 0 0l0-1.9zM496 64a16 16 0 1 1 0 32 16 16 0 1 1 0-32z"], - "q": [448, 512, [113], "51", "M64 256c0 88.4 71.6 160 160 160c28.9 0 56-7.7 79.4-21.1l-72-86.4c-11.3-13.6-9.5-33.8 4.1-45.1s33.8-9.5 45.1 4.1l70.9 85.1C371.9 325.8 384 292.3 384 256c0-88.4-71.6-160-160-160S64 167.6 64 256zM344.9 444.6C310 467 268.5 480 224 480C100.3 480 0 379.7 0 256S100.3 32 224 32s224 100.3 224 224c0 56.1-20.6 107.4-54.7 146.7l47.3 56.8c11.3 13.6 9.5 33.8-4.1 45.1s-33.8 9.5-45.1-4.1l-46.6-55.9z"], - "g": [448, 512, [103], "47", "M224 96C135.6 96 64 167.6 64 256s71.6 160 160 160c77.4 0 142-55 156.8-128L256 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l144 0c25.8 0 49.6 21.4 47.2 50.6C437.8 389.6 341.4 480 224 480C100.3 480 0 379.7 0 256S100.3 32 224 32c57.4 0 109.7 21.6 149.3 57c13.2 11.8 14.3 32 2.5 45.2s-32 14.3-45.2 2.5C302.3 111.4 265 96 224 96z"], - "notes-medical": [512, 512, [], "f481", "M96 352L96 96c0-35.3 28.7-64 64-64l256 0c35.3 0 64 28.7 64 64l0 197.5c0 17-6.7 33.3-18.7 45.3l-58.5 58.5c-12 12-28.3 18.7-45.3 18.7L160 416c-35.3 0-64-28.7-64-64zM272 128c-8.8 0-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-48 0 0-48c0-8.8-7.2-16-16-16l-32 0zm24 336c13.3 0 24 10.7 24 24s-10.7 24-24 24l-160 0C60.9 512 0 451.1 0 376L0 152c0-13.3 10.7-24 24-24s24 10.7 24 24l0 224c0 48.6 39.4 88 88 88l160 0z"], - "temperature-half": [320, 512, [127777, "temperature-2", "thermometer-2", "thermometer-half"], "f2c9", "M160 64c-26.5 0-48 21.5-48 48l0 164.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5L208 112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112l0 164.4c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6L48 112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3L144 208c0-8.8 7.2-16 16-16s16 7.2 16 16l0 114.7c18.6 6.6 32 24.4 32 45.3z"], - "dong-sign": [384, 512, [], "e169", "M288 32c-17.7 0-32 14.3-32 32l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 49.1c-18.8-10.9-40.7-17.1-64-17.1c-70.7 0-128 57.3-128 128s57.3 128 128 128c24.5 0 47.4-6.9 66.8-18.8c5 11.1 16.2 18.8 29.2 18.8c17.7 0 32-14.3 32-32l0-96 0-160c17.7 0 32-14.3 32-32s-14.3-32-32-32c0-17.7-14.3-32-32-32zM128 288a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 448z"], - "capsules": [576, 512, [], "f46b", "M64 144c0-26.5 21.5-48 48-48s48 21.5 48 48l0 112-96 0 0-112zM0 144L0 368c0 61.9 50.1 112 112 112s112-50.1 112-112l0-178.4c1.8 19.1 8.2 38 19.8 54.8L372.3 431.7c35.5 51.7 105.3 64.3 156 28.1s63-107.5 27.5-159.2L427.3 113.3C391.8 61.5 321.9 49 271.3 85.2c-28 20-44.3 50.8-47.3 83l0-24.2c0-61.9-50.1-112-112-112S0 82.1 0 144zm296.6 64.2c-16-23.3-10-55.3 11.9-71c21.2-15.1 50.5-10.3 66 12.2l67 97.6L361.6 303l-65-94.8zM491 407.7c-.8 .6-1.6 1.1-2.4 1.6l4-2.8c-.5 .4-1 .8-1.6 1.2z"], - "poo-storm": [448, 512, ["poo-bolt"], "f75a", "M236.9 .2c-5.5-.7-11 1.4-14.5 5.7s-4.6 10.1-2.8 15.3c2.8 8.2 4.3 16.9 4.3 26.1c0 21.7-8.5 37.2-21.9 47.6c-13.8 10.8-34 17-57.8 17L128 112c-35.3 0-64 28.7-64 64c0 12.2 3.4 23.5 9.3 33.2C31.7 216.2 0 252.4 0 296c0 40.9 28 75.4 65.8 85.2c-5.3-18.5 1-38.5 16.2-50.7l160-128c17.6-14.1 42.6-14 60.2 .2s22.8 38.6 12.8 58.8L285.7 320l18.3 0c20.4 0 38.5 12.9 45.3 32.1c3.7 10.6 3.5 21.8 0 31.9l10.7 0c48.6 0 88-39.4 88-88c0-43.6-31.7-79.8-73.3-86.8c5.9-9.7 9.3-21.1 9.3-33.2c0-35.3-28.7-64-64-64l-1.4 0c.9-5.4 1.4-10.9 1.4-16.6c0-48.7-36.1-88.9-83.1-95.2zm45.1 227.4c-5.8-4.7-14.2-4.7-20.1-.1l-160 128c-5.3 4.2-7.4 11.4-5.1 17.8s8.3 10.7 15.1 10.7l70.1 0L129.7 488.8c-3.4 6.7-1.6 14.9 4.3 19.6s14.2 4.7 20.1 .1l160-128c5.3-4.2 7.4-11.4 5.1-17.8s-8.3-10.7-15.1-10.7l-70.1 0 52.4-104.8c3.4-6.7 1.6-14.9-4.3-19.6z"], - "face-frown-open": [512, 512, [128550, "frown-open"], "f57a", "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-122 174.5c-12.4 5.2-26.5-4.1-21.1-16.4c16-36.6 52.4-62.1 94.8-62.1s78.8 25.6 94.8 62.1c5.4 12.3-8.7 21.6-21.1 16.4c-22.4-9.5-47.4-14.8-73.7-14.8s-51.3 5.3-73.7 14.8z"], - "hand-point-up": [384, 512, [9757], "f0a6", "M32 32C32 14.3 46.3 0 64 0S96 14.3 96 32l0 208-64 0L32 32zM224 192c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm-64-64c17.7 0 32 14.3 32 32l0 48c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-48c0-17.7 14.3-32 32-32zm160 96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm-96 88l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6l0 8.6c0 88.4-71.6 160-160 160l-61.7 0c-42.4 0-83.1-16.9-113.1-46.9L37.5 453.5C13.5 429.5 0 396.9 0 363l0-27c0-35.3 28.7-64 64-64l88 0c22.1 0 40 17.9 40 40s-17.9 40-40 40l-56 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l56 0c39.8 0 72-32.2 72-72z"], - "money-bill": [576, 512, [], "f0d6", "M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm64 320l-64 0 0-64c35.3 0 64 28.7 64 64zM64 192l0-64 64 0c0 35.3-28.7 64-64 64zM448 384c0-35.3 28.7-64 64-64l0 64-64 0zm64-192c-35.3 0-64-28.7-64-64l64 0 0 64zM288 160a96 96 0 1 1 0 192 96 96 0 1 1 0-192z"], - "bookmark": [384, 512, [128278, 61591], "f02e", "M0 48V487.7C0 501.1 10.9 512 24.3 512c5 0 9.9-1.5 14-4.4L192 400 345.7 507.6c4.1 2.9 9 4.4 14 4.4c13.4 0 24.3-10.9 24.3-24.3V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48z"], - "align-justify": [448, 512, [], "f039", "M448 64c0-17.7-14.3-32-32-32L32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l384 0c17.7 0 32-14.3 32-32zm0 256c0-17.7-14.3-32-32-32L32 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32zM0 192c0 17.7 14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 160c-17.7 0-32 14.3-32 32zM448 448c0-17.7-14.3-32-32-32L32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32z"], - "umbrella-beach": [576, 512, [127958], "f5ca", "M346.3 271.8l-60.1-21.9L214 448 32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-261.9 0 64.1-176.2zm121.1-.2l-3.3 9.1 67.7 24.6c18.1 6.6 38-4.2 39.6-23.4c6.5-78.5-23.9-155.5-80.8-208.5c2 8 3.2 16.3 3.4 24.8l.2 6c1.8 57-7.3 113.8-26.8 167.4zM462 99.1c-1.1-34.4-22.5-64.8-54.4-77.4c-.9-.4-1.9-.7-2.8-1.1c-33-11.7-69.8-2.4-93.1 23.8l-4 4.5C272.4 88.3 245 134.2 226.8 184l-3.3 9.1L434 269.7l3.3-9.1c18.1-49.8 26.6-102.5 24.9-155.5l-.2-6zM107.2 112.9c-11.1 15.7-2.8 36.8 15.3 43.4l71 25.8 3.3-9.1c19.5-53.6 49.1-103 87.1-145.5l4-4.5c6.2-6.9 13.1-13 20.5-18.2c-79.6 2.5-154.7 42.2-201.2 108z"], - "helmet-un": [512, 512, [], "e503", "M479.5 224C471.2 98.9 367.2 0 240 0C107.5 0 0 107.5 0 240l0 56.3C0 344.8 39.2 384 87.7 384L200 384l14.9 0L343.5 505.4c4.5 4.2 10.4 6.6 16.5 6.6l96 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-86.5 0-1.5-1.5L368 288l80 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-.5 0zM320 417.2l-78-73.7L274.4 288l45.6 0 0 129.2zM285.3 103.1l34.7 52 0-43.2c0-8.8 7.2-16 16-16s16 7.2 16 16l0 96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52 0 43.2c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM160 112l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16z"], - "bullseye": [512, 512, [], "f140", "M448 256A192 192 0 1 0 64 256a192 192 0 1 0 384 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256 80a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0-224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zM224 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"], - "bacon": [576, 512, [129363], "f7e5", "M439.2 1.2c11.2-3.2 23.2-.1 31.4 8.1L518 56.7l-26.5 7.9c-58 16.6-98.1 39.6-129.6 67.4c-31.2 27.5-53.2 59.1-75.1 90.9l-2.3 3.3C241.6 288.7 195 356.6 72.8 417.7L37.9 435.2 9.4 406.6c-7.3-7.3-10.6-17.6-9-27.8s8.1-18.9 17.3-23.5C136.1 296.2 180.9 231 223.3 169.3l2.3-3.4c21.8-31.8 44.9-64.9 77.7-93.9c33.4-29.5 75.8-53.6 135.9-70.8zM61.8 459l25.4-12.7c129.5-64.7 179.9-138.1 223.8-202l2.2-3.3c22.1-32.1 42.1-60.5 69.9-85.1c27.5-24.3 63.4-45.2 117.3-60.6c0 0 0 0 0 0l.2-.1 43.1-12.9 23 23c8 8 11.2 19.7 8.3 30.7s-11.3 19.6-22.2 22.7c-51.9 14.8-85.6 34.7-111.1 57.2c-26.1 23-45.1 49.9-67.3 82.1l-2.2 3.2C327.8 365.9 275.5 442 142.3 508.6c-12.3 6.2-27.2 3.7-36.9-6L61.8 459z"], - "hand-point-down": [384, 512, [], "f0a7", "M32 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-208-64 0 0 208zM224 320c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64zm-64 64c17.7 0 32-14.3 32-32l0-48c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48c0 17.7 14.3 32 32 32zm160-96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64zm-96-88l0 .6c9.4-5.4 20.3-8.6 32-8.6c13.2 0 25.4 4 35.6 10.8c8.7-24.9 32.5-42.8 60.4-42.8c11.7 0 22.6 3.1 32 8.6l0-8.6C384 71.6 312.4 0 224 0L162.3 0C119.8 0 79.1 16.9 49.1 46.9L37.5 58.5C13.5 82.5 0 115.1 0 149l0 27c0 35.3 28.7 64 64 64l88 0c22.1 0 40-17.9 40-40s-17.9-40-40-40l-56 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l56 0c39.8 0 72 32.2 72 72z"], - "arrow-up-from-bracket": [448, 512, [], "e09a", "M246.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 109.3 192 320c0 17.7 14.3 32 32 32s32-14.3 32-32l0-210.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128zM64 352c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64c0 17.7-14.3 32-32 32L96 448c-17.7 0-32-14.3-32-32l0-64z"], - "folder": [512, 512, [128193, 128447, 61716, "folder-blank"], "f07b", "M64 480H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H288c-10.1 0-19.6-4.7-25.6-12.8L243.2 57.6C231.1 41.5 212.1 32 192 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64z"], - "file-waveform": [448, 512, ["file-medical-alt"], "f478", "M96 0C60.7 0 32 28.7 32 64l0 224 112 0c6.1 0 11.6 3.4 14.3 8.8L176 332.2l49.7-99.4c2.7-5.4 8.3-8.8 14.3-8.8s11.6 3.4 14.3 8.8L281.9 288l70.1 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-80 0c-6.1 0-11.6-3.4-14.3-8.8L240 275.8l-49.7 99.4c-2.7 5.4-8.3 8.8-14.3 8.8s-11.6-3.4-14.3-8.8L134.1 320 32 320l0 128c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L256 0 96 0zM288 0l0 128 128 0L288 0z"], - "radiation": [512, 512, [], "f7b9", "M216 186.7c-23.9 13.8-40 39.7-40 69.3L32 256C14.3 256-.2 241.6 2 224.1C10.7 154 47.8 92.7 101.3 52c14.1-10.7 33.8-5.3 42.7 10l72 124.7zM256 336c14.6 0 28.2-3.9 40-10.7l72 124.8c8.8 15.3 3.7 35.1-12.6 41.9c-30.6 12.9-64.2 20-99.4 20s-68.9-7.1-99.4-20c-16.3-6.9-21.4-26.6-12.6-41.9l72-124.8c11.8 6.8 25.4 10.7 40 10.7zm224-80l-144 0c0-29.6-16.1-55.5-40-69.3L368 62c8.8-15.3 28.6-20.7 42.7-10c53.6 40.7 90.6 102 99.4 172.1c2.2 17.5-12.4 31.9-30 31.9zM256 208a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"], - "chart-simple": [448, 512, [], "e473", "M160 80c0-26.5 21.5-48 48-48l32 0c26.5 0 48 21.5 48 48l0 352c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-352zM0 272c0-26.5 21.5-48 48-48l32 0c26.5 0 48 21.5 48 48l0 160c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48L0 272zM368 96l32 0c26.5 0 48 21.5 48 48l0 288c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-288c0-26.5 21.5-48 48-48z"], - "mars-stroke": [512, 512, [9894], "f229", "M376 0c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l33.4 33.4L370.3 96.4 345 71c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l25.4 25.4L307.8 159c-28.4-19.5-62.7-31-99.8-31c-97.2 0-176 78.8-176 176s78.8 176 176 176s176-78.8 176-176c0-37-11.4-71.4-31-99.8l28.6-28.6L407 201c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-25.4-25.4 22.1-22.1L471 153c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2l0-112c0-13.3-10.7-24-24-24L376 0zm88 48s0 0 0 0s0 0 0 0s0 0 0 0zM96 304a112 112 0 1 1 224 0A112 112 0 1 1 96 304z"], - "vial": [512, 512, [129514], "f492", "M342.6 9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4L28.1 342.6C10.1 360.6 0 385 0 410.5L0 416c0 53 43 96 96 96l5.5 0c25.5 0 49.9-10.1 67.9-28.1L448 205.3l9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-32-32-96-96-32-32zM205.3 256L352 109.3 402.7 160l-96 96-101.5 0z"], - "gauge": [512, 512, ["dashboard", "gauge-med", "tachometer-alt-average"], "f624", "M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm320 96c0-26.9-16.5-49.9-40-59.3L280 88c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 204.7c-23.5 9.5-40 32.5-40 59.3c0 35.3 28.7 64 64 64s64-28.7 64-64zM144 176a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm-16 80a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM400 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"], - "wand-magic-sparkles": [576, 512, ["magic-wand-sparkles"], "e2ca", "M234.7 42.7L197 56.8c-3 1.1-5 4-5 7.2s2 6.1 5 7.2l37.7 14.1L248.8 123c1.1 3 4 5 7.2 5s6.1-2 7.2-5l14.1-37.7L315 71.2c3-1.1 5-4 5-7.2s-2-6.1-5-7.2L277.3 42.7 263.2 5c-1.1-3-4-5-7.2-5s-6.1 2-7.2 5L234.7 42.7zM46.1 395.4c-18.7 18.7-18.7 49.1 0 67.9l34.6 34.6c18.7 18.7 49.1 18.7 67.9 0L529.9 116.5c18.7-18.7 18.7-49.1 0-67.9L495.3 14.1c-18.7-18.7-49.1-18.7-67.9 0L46.1 395.4zM484.6 82.6l-105 105-23.3-23.3 105-105 23.3 23.3zM7.5 117.2C3 118.9 0 123.2 0 128s3 9.1 7.5 10.8L64 160l21.2 56.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L128 160l56.5-21.2c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L128 96 106.8 39.5C105.1 35 100.8 32 96 32s-9.1 3-10.8 7.5L64 96 7.5 117.2zm352 256c-4.5 1.7-7.5 6-7.5 10.8s3 9.1 7.5 10.8L416 416l21.2 56.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L480 416l56.5-21.2c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L480 352l-21.2-56.5c-1.7-4.5-6-7.5-10.8-7.5s-9.1 3-10.8 7.5L416 352l-56.5 21.2z"], - "e": [320, 512, [101], "45", "M64 32C28.7 32 0 60.7 0 96L0 256 0 416c0 35.3 28.7 64 64 64l224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 416l0-128 160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 224 64 96l224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 32z"], - "pen-clip": [512, 512, ["pen-alt"], "f305", "M453.3 19.3l39.4 39.4c25 25 25 65.5 0 90.5l-52.1 52.1s0 0 0 0l-1-1s0 0 0 0l-16-16-96-96-17-17 52.1-52.1c25-25 65.5-25 90.5 0zM241 114.9c-9.4-9.4-24.6-9.4-33.9 0L105 217c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L173.1 81c28.1-28.1 73.7-28.1 101.8 0L288 94.1l17 17 96 96 16 16 1 1-17 17L229.5 412.5c-48 48-109.2 80.8-175.8 94.1l-25 5c-7.9 1.6-16-.9-21.7-6.6s-8.1-13.8-6.6-21.7l5-25c13.3-66.6 46.1-127.8 94.1-175.8L254.1 128 241 114.9z"], - "bridge-circle-exclamation": [640, 512, [], "e4ca", "M64 32C46.3 32 32 46.3 32 64s14.3 32 32 32l40 0 0 64-72 0 0 128c53 0 96 43 96 96l0 64c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96c6.3 0 12.4 .6 18.3 1.7C367.1 231.8 426.9 192 496 192c42.5 0 81.6 15.1 112 40.2l0-72.2-72 0 0-64 40 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 32zM488 96l0 64-80 0 0-64 80 0zM360 96l0 64-80 0 0-64 80 0zM232 96l0 64-80 0 0-64 80 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z"], - "user": [448, 512, [128100, 62144], "f007", "M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512l388.6 0c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304l-91.4 0z"], - "school-circle-check": [640, 512, [], "e56b", "M337.8 5.4C327-1.8 313-1.8 302.2 5.4L166.3 96 48 96C21.5 96 0 117.5 0 144L0 464c0 26.5 21.5 48 48 48l272 0s0 0 0 0l-64 0 0-96c0-35.3 28.7-64 64-64l.3 0 .5 0c3.4-37.7 18.7-72.1 42.2-99.1C350.2 260 335.6 264 320 264c-48.6 0-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88c0 18.3-5.6 35.3-15.1 49.4c29-21 64.6-33.4 103.1-33.4c59.5 0 112.1 29.6 144 74.8L640 144c0-26.5-21.5-48-48-48L473.7 96 337.8 5.4zM96 192l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16zm0 128l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16zM320 128c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0 0-16c0-8.8-7.2-16-16-16zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-99.3-43.3c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7z"], - "dumpster": [576, 512, [], "f793", "M49.7 32c-10.5 0-19.8 6.9-22.9 16.9L.9 133c-.6 2-.9 4.1-.9 6.1C0 150.7 9.3 160 20.9 160l94 0L140.5 32 49.7 32zM272 160l0-128-98.9 0L147.5 160 272 160zm32 0l124.5 0L402.9 32 304 32l0 128zm157.1 0l94 0c11.5 0 20.9-9.3 20.9-20.9c0-2.1-.3-4.1-.9-6.1L549.2 48.9C546.1 38.9 536.8 32 526.3 32l-90.8 0 25.6 128zM32 192l4 32-4 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l12 0L64 448c0 17.7 14.3 32 32 32s32-14.3 32-32l320 0c0 17.7 14.3 32 32 32s32-14.3 32-32l20-160 12 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-4 0 4-32L32 192z"], - "van-shuttle": [640, 512, [128656, "shuttle-van"], "f5b6", "M64 104l0 88 96 0 0-96L72 96c-4.4 0-8 3.6-8 8zm482 88L465.1 96 384 96l0 96 162 0zm-226 0l0-96-96 0 0 96 96 0zM592 384l-16 0c0 53-43 96-96 96s-96-43-96-96l-128 0c0 53-43 96-96 96s-96-43-96-96l-16 0c-26.5 0-48-21.5-48-48L0 104C0 64.2 32.2 32 72 32l120 0 160 0 113.1 0c18.9 0 36.8 8.3 49 22.8L625 186.5c9.7 11.5 15 26.1 15 41.2L640 336c0 26.5-21.5 48-48 48zm-64 0a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM160 432a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"], - "building-user": [640, 512, [], "e4da", "M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 89.9 0c-6.3-10.2-9.9-22.2-9.9-35.1c0-46.9 25.8-87.8 64-109.2l0-95.9L384 48c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM80 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM576 272a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM352 477.1c0 19.3 15.6 34.9 34.9 34.9l218.2 0c19.3 0 34.9-15.6 34.9-34.9c0-51.4-41.7-93.1-93.1-93.1l-101.8 0c-51.4 0-93.1 41.7-93.1 93.1z"], - "square-caret-left": [448, 512, ["caret-square-left"], "f191", "M0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416zM128 256c0-6.7 2.8-13 7.7-17.6l112-104c7-6.5 17.2-8.2 25.9-4.4s14.4 12.5 14.4 22l0 208c0 9.5-5.7 18.2-14.4 22s-18.9 2.1-25.9-4.4l-112-104c-4.9-4.5-7.7-10.9-7.7-17.6z"], - "highlighter": [576, 512, [], "f591", "M315 315l158.4-215L444.1 70.6 229 229 315 315zm-187 5s0 0 0 0l0-71.7c0-15.3 7.2-29.6 19.5-38.6L420.6 8.4C428 2.9 437 0 446.2 0c11.4 0 22.4 4.5 30.5 12.6l54.8 54.8c8.1 8.1 12.6 19 12.6 30.5c0 9.2-2.9 18.2-8.4 25.6L334.4 396.5c-9 12.3-23.4 19.5-38.6 19.5L224 416l-25.4 25.4c-12.5 12.5-32.8 12.5-45.3 0l-50.7-50.7c-12.5-12.5-12.5-32.8 0-45.3L128 320zM7 466.3l63-63 70.6 70.6-31 31c-4.5 4.5-10.6 7-17 7L24 512c-13.3 0-24-10.7-24-24l0-4.7c0-6.4 2.5-12.5 7-17z"], - "key": [512, 512, [128273], "f084", "M336 352c97.2 0 176-78.8 176-176S433.2 0 336 0S160 78.8 160 176c0 18.7 2.9 36.8 8.3 53.7L7 391c-4.5 4.5-7 10.6-7 17l0 80c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-40 40 0c13.3 0 24-10.7 24-24l0-40 40 0c6.4 0 12.5-2.5 17-7l33.3-33.3c16.9 5.4 35 8.3 53.7 8.3zM376 96a40 40 0 1 1 0 80 40 40 0 1 1 0-80z"], - "bullhorn": [512, 512, [128226, 128363], "f0a1", "M480 32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9L381.7 53c-48 48-113.1 75-181 75l-8.7 0-32 0-96 0c-35.3 0-64 28.7-64 64l0 96c0 35.3 28.7 64 64 64l0 128c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-128 8.7 0c67.9 0 133 27 181 75l43.6 43.6c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-147.6c18.6-8.8 32-32.5 32-60.4s-13.4-51.6-32-60.4L480 32zm-64 76.7L416 240l0 131.3C357.2 317.8 280.5 288 200.7 288l-8.7 0 0-96 8.7 0c79.8 0 156.5-29.8 215.3-83.3z"], - "globe": [512, 512, [127760], "f0ac", "M352 256c0 22.2-1.2 43.6-3.3 64l-185.3 0c-2.2-20.4-3.3-41.8-3.3-64s1.2-43.6 3.3-64l185.3 0c2.2 20.4 3.3 41.8 3.3 64zm28.8-64l123.1 0c5.3 20.5 8.1 41.9 8.1 64s-2.8 43.5-8.1 64l-123.1 0c2.1-20.6 3.2-42 3.2-64s-1.1-43.4-3.2-64zm112.6-32l-116.7 0c-10-63.9-29.8-117.4-55.3-151.6c78.3 20.7 142 77.5 171.9 151.6zm-149.1 0l-176.6 0c6.1-36.4 15.5-68.6 27-94.7c10.5-23.6 22.2-40.7 33.5-51.5C239.4 3.2 248.7 0 256 0s16.6 3.2 27.8 13.8c11.3 10.8 23 27.9 33.5 51.5c11.6 26 20.9 58.2 27 94.7zm-209 0L18.6 160C48.6 85.9 112.2 29.1 190.6 8.4C165.1 42.6 145.3 96.1 135.3 160zM8.1 192l123.1 0c-2.1 20.6-3.2 42-3.2 64s1.1 43.4 3.2 64L8.1 320C2.8 299.5 0 278.1 0 256s2.8-43.5 8.1-64zM194.7 446.6c-11.6-26-20.9-58.2-27-94.6l176.6 0c-6.1 36.4-15.5 68.6-27 94.6c-10.5 23.6-22.2 40.7-33.5 51.5C272.6 508.8 263.3 512 256 512s-16.6-3.2-27.8-13.8c-11.3-10.8-23-27.9-33.5-51.5zM135.3 352c10 63.9 29.8 117.4 55.3 151.6C112.2 482.9 48.6 426.1 18.6 352l116.7 0zm358.1 0c-30 74.1-93.6 130.9-171.9 151.6c25.5-34.2 45.2-87.7 55.3-151.6l116.7 0z"], - "synagogue": [640, 512, [128333], "f69b", "M309.8 3.7c5.9-4.9 14.6-4.9 20.5 0l121 100.8C469.5 119.7 480 142.2 480 166l0 114.1L480 512l-16 0-112 0 0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96-112 0-16 0 0-231.9L160 166c0-23.7 10.5-46.3 28.8-61.5L309.8 3.7zM512 512l0-267.5 28.1-31.2c3-3.4 7.4-5.3 11.9-5.3s8.9 1.9 11.9 5.3l63.8 70.9c7.9 8.8 12.3 20.3 12.3 32.1L640 448c0 35.3-28.7 64-64 64l-64 0zM128 244.5L128 512l-64 0c-35.3 0-64-28.7-64-64L0 316.3c0-11.9 4.4-23.3 12.3-32.1l63.8-70.9c3-3.4 7.4-5.3 11.9-5.3s8.9 1.9 11.9 5.3L128 244.5zM327 124.3c-3.1-5.4-10.9-5.4-13.9 0l-15.9 28.1-32.3-.3c-6.2-.1-10.1 6.7-7 12.1L274.3 192l-16.4 27.8c-3.2 5.4 .7 12.1 7 12.1l32.3-.3L313 259.7c3.1 5.4 10.9 5.4 13.9 0l15.9-28.1 32.3 .3c6.2 .1 10.1-6.7 7-12.1L365.7 192l16.4-27.8c3.2-5.4-.7-12.1-7-12.1l-32.3 .3L327 124.3z"], - "person-half-dress": [320, 512, [], "e548", "M160 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm8 352l0-224 6.9 0c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128s0 0 0 0zM58.2 182.3c19.9-33.1 55.3-53.5 93.8-54.3l0 256s0 0 0 0l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-17.8 0c-10.9 0-18.6-10.7-15.2-21.1L93.3 248.1 59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l53.6-89.2z"], - "road-bridge": [640, 512, [], "e563", "M352 0L608 0c17.7 0 32 14.3 32 32l0 448c0 17.7-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32l0-448c0-17.7 14.3-32 32-32zM480 200c-13.3 0-24 10.7-24 24l0 64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64c0-13.3-10.7-24-24-24zm24 184c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64zM480 40c-13.3 0-24 10.7-24 24l0 64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64c0-13.3-10.7-24-24-24zM32 96l256 0 0 64-40 0 0 64 40 0 0 96c-53 0-96 43-96 96l0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-64c0-53-43-96-96-96l0-96 72 0 0-64-40 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm168 64l-80 0 0 64 80 0 0-64z"], - "location-arrow": [448, 512, [], "f124", "M429.6 92.1c4.9-11.9 2.1-25.6-7-34.7s-22.8-11.9-34.7-7l-352 144c-14.2 5.8-22.2 20.8-19.3 35.8s16.1 25.8 31.4 25.8l176 0 0 176c0 15.3 10.8 28.4 25.8 31.4s30-5.1 35.8-19.3l144-352z"], - "c": [384, 512, [99], "43", "M329.1 142.9c-62.5-62.5-155.8-62.5-218.3 0s-62.5 163.8 0 226.3s155.8 62.5 218.3 0c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3c-87.5 87.5-221.3 87.5-308.8 0s-87.5-229.3 0-316.8s221.3-87.5 308.8 0c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0z"], - "tablet-button": [448, 512, [], "f10a", "M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM224 400a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"], - "building-lock": [576, 512, [], "e4d6", "M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 88.6 0c-5.4-9.4-8.6-20.3-8.6-32l0-128c0-23.7 12.9-44.4 32-55.4l0-24.6c0-30.5 12.2-58.2 32-78.4L384 48c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM80 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM464 240c17.7 0 32 14.3 32 32l0 48-64 0 0-48c0-17.7 14.3-32 32-32zm-80 32l0 48c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80z"], - "pizza-slice": [512, 512, [], "f818", "M169.7 .9c-22.8-1.6-41.9 14-47.5 34.7L110.4 80c.5 0 1.1 0 1.6 0c176.7 0 320 143.3 320 320c0 .5 0 1.1 0 1.6l44.4-11.8c20.8-5.5 36.3-24.7 34.7-47.5C498.5 159.5 352.5 13.5 169.7 .9zM399.8 410.2c.1-3.4 .2-6.8 .2-10.2c0-159.1-128.9-288-288-288c-3.4 0-6.8 .1-10.2 .2L.5 491.9c-1.5 5.5 .1 11.4 4.1 15.4s9.9 5.6 15.4 4.1L399.8 410.2zM176 208a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 128a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM96 384a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"], - "money-bill-wave": [576, 512, [], "f53a", "M0 112.5L0 422.3c0 18 10.1 35 27 41.3c87 32.5 174 10.3 261-11.9c79.8-20.3 159.6-40.7 239.3-18.9c23 6.3 48.7-9.5 48.7-33.4l0-309.9c0-18-10.1-35-27-41.3C462 15.9 375 38.1 288 60.3C208.2 80.6 128.4 100.9 48.7 79.1C25.6 72.8 0 88.6 0 112.5zM288 352c-44.2 0-80-43-80-96s35.8-96 80-96s80 43 80 96s-35.8 96-80 96zM64 352c35.3 0 64 28.7 64 64l-64 0 0-64zm64-208c0 35.3-28.7 64-64 64l0-64 64 0zM512 304l0 64-64 0c0-35.3 28.7-64 64-64zM448 96l64 0 0 64c-35.3 0-64-28.7-64-64z"], - "chart-area": [512, 512, ["area-chart"], "f1fe", "M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 400c0 44.2 35.8 80 80 80l400 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 416c-8.8 0-16-7.2-16-16L64 64zm96 288l288 0c17.7 0 32-14.3 32-32l0-68.2c0-7.6-2.7-15-7.7-20.8l-65.8-76.8c-12.1-14.2-33.7-15-46.9-1.8l-21 21c-10 10-26.4 9.2-35.4-1.6l-39.2-47c-12.6-15.1-35.7-15.4-48.7-.6L135.9 215c-5.1 5.8-7.9 13.3-7.9 21.1l0 84c0 17.7 14.3 32 32 32z"], - "house-flag": [640, 512, [], "e50d", "M480 0c-17.7 0-32 14.3-32 32l0 160 0 320 64 0 0-320 112 0c8.8 0 16-7.2 16-16l0-128c0-8.8-7.2-16-16-16L512 32c0-17.7-14.3-32-32-32zM416 159L276.8 39.7c-12-10.3-29.7-10.3-41.7 0l-224 192C1 240.4-2.7 254.5 2 267.1S18.6 288 32 288l32 0 0 192c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-96c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 96c0 17.7 14.3 32 32 32l64.7 0 .2 0-1 0 0-353z"], - "person-circle-minus": [576, 512, [], "e540", "M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zm136 16a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm224 0c0-8.8-7.2-16-16-16l-128 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l128 0c8.8 0 16-7.2 16-16z"], - "ban": [512, 512, [128683, "cancel"], "f05e", "M367.2 412.5L99.5 144.8C77.1 176.1 64 214.5 64 256c0 106 86 192 192 192c41.5 0 79.9-13.1 111.2-35.5zm45.3-45.3C434.9 335.9 448 297.5 448 256c0-106-86-192-192-192c-41.5 0-79.9 13.1-111.2 35.5L412.5 367.2zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z"], - "camera-rotate": [640, 512, [], "e0d8", "M213.1 64.8L202.7 96 128 96c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-74.7 0L426.9 64.8C420.4 45.2 402.1 32 381.4 32L258.6 32c-20.7 0-39 13.2-45.5 32.8zM448 256c0 8.8-7.2 16-16 16l-76.7 0c-6.2 0-11.3-5.1-11.3-11.3c0-3 1.2-5.9 3.3-8L371 229c-13.6-13.4-31.9-21-51-21c-19.2 0-37.7 7.6-51.3 21.3L249 249c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l19.7-19.7C257.4 172.7 288 160 320 160c31.8 0 62.4 12.6 85 35l23.7-23.7c2.1-2.1 5-3.3 8-3.3c6.2 0 11.3 5.1 11.3 11.3l0 76.7zM192 320c0-8.8 7.2-16 16-16l76.7 0c6.2 0 11.3 5.1 11.3 11.3c0 3-1.2 5.9-3.3 8L269 347c13.6 13.4 31.9 21 51 21c19.2 0 37.7-7.6 51.3-21.3L391 327c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-19.7 19.7C382.6 403.3 352 416 320 416c-31.8 0-62.4-12.6-85-35l-23.7 23.7c-2.1 2.1-5 3.3-8 3.3c-6.2 0-11.3-5.1-11.3-11.3l0-76.7z"], - "spray-can-sparkles": [512, 512, ["air-freshener"], "f5d0", "M96 32l0 96 128 0 0-96c0-17.7-14.3-32-32-32L128 0C110.3 0 96 14.3 96 32zm0 128c-53 0-96 43-96 96L0 464c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-208c0-53-43-96-96-96L96 160zm64 96a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM384 48c0-1.4-1-3-2.2-3.6L352 32 339.6 2.2C339 1 337.4 0 336 0s-3 1-3.6 2.2L320 32 290.2 44.4C289 45 288 46.6 288 48c0 1.4 1 3 2.2 3.6L320 64l12.4 29.8C333 95 334.6 96 336 96s3-1 3.6-2.2L352 64l29.8-12.4C383 51 384 49.4 384 48zm76.4 45.8C461 95 462.6 96 464 96s3-1 3.6-2.2L480 64l29.8-12.4C511 51 512 49.4 512 48c0-1.4-1-3-2.2-3.6L480 32 467.6 2.2C467 1 465.4 0 464 0s-3 1-3.6 2.2L448 32 418.2 44.4C417 45 416 46.6 416 48c0 1.4 1 3 2.2 3.6L448 64l12.4 29.8zm7.2 100.4c-.6-1.2-2.2-2.2-3.6-2.2s-3 1-3.6 2.2L448 224l-29.8 12.4c-1.2 .6-2.2 2.2-2.2 3.6c0 1.4 1 3 2.2 3.6L448 256l12.4 29.8c.6 1.2 2.2 2.2 3.6 2.2s3-1 3.6-2.2L480 256l29.8-12.4c1.2-.6 2.2-2.2 2.2-3.6c0-1.4-1-3-2.2-3.6L480 224l-12.4-29.8zM448 144c0-1.4-1-3-2.2-3.6L416 128 403.6 98.2C403 97 401.4 96 400 96s-3 1-3.6 2.2L384 128l-29.8 12.4c-1.2 .6-2.2 2.2-2.2 3.6c0 1.4 1 3 2.2 3.6L384 160l12.4 29.8c.6 1.2 2.2 2.2 3.6 2.2s3-1 3.6-2.2L416 160l29.8-12.4c1.2-.6 2.2-2.2 2.2-3.6z"], - "star": [576, 512, [11088, 61446], "f005", "M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"], - "repeat": [512, 512, [128257], "f363", "M0 224c0 17.7 14.3 32 32 32s32-14.3 32-32c0-53 43-96 96-96l160 0 0 32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9S320 19.1 320 32l0 32L160 64C71.6 64 0 135.6 0 224zm512 64c0-17.7-14.3-32-32-32s-32 14.3-32 32c0 53-43 96-96 96l-160 0 0-32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-32 160 0c88.4 0 160-71.6 160-160z"], - "cross": [384, 512, [128327, 10013], "f654", "M176 0c-26.5 0-48 21.5-48 48l0 80-80 0c-26.5 0-48 21.5-48 48l0 32c0 26.5 21.5 48 48 48l80 0 0 208c0 26.5 21.5 48 48 48l32 0c26.5 0 48-21.5 48-48l0-208 80 0c26.5 0 48-21.5 48-48l0-32c0-26.5-21.5-48-48-48l-80 0 0-80c0-26.5-21.5-48-48-48L176 0z"], - "box": [448, 512, [128230], "f466", "M50.7 58.5L0 160l208 0 0-128L93.7 32C75.5 32 58.9 42.3 50.7 58.5zM240 160l208 0L397.3 58.5C389.1 42.3 372.5 32 354.3 32L240 32l0 128zm208 32L0 192 0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-224z"], - "venus-mars": [640, 512, [9892], "f228", "M176 288a112 112 0 1 0 0-224 112 112 0 1 0 0 224zM352 176c0 86.3-62.1 158.1-144 173.1l0 34.9 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-34.9C62.1 334.1 0 262.3 0 176C0 78.8 78.8 0 176 0s176 78.8 176 176zM271.9 360.6c19.3-10.1 36.9-23.1 52.1-38.4c20 18.5 46.7 29.8 76.1 29.8c61.9 0 112-50.1 112-112s-50.1-112-112-112c-7.2 0-14.3 .7-21.1 2c-4.9-21.5-13-41.7-24-60.2C369.3 66 384.4 64 400 64c37 0 71.4 11.4 99.8 31l20.6-20.6L487 41c-6.9-6.9-8.9-17.2-5.2-26.2S494.3 0 504 0L616 0c13.3 0 24 10.7 24 24l0 112c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-33.4-33.4L545 140.2c19.5 28.4 31 62.7 31 99.8c0 97.2-78.8 176-176 176c-50.5 0-96-21.3-128.1-55.4z"], - "arrow-pointer": [320, 512, ["mouse-pointer"], "f245", "M0 55.2L0 426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320l118.1 0c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z"], - "maximize": [512, 512, ["expand-arrows-alt"], "f31e", "M200 32L56 32C42.7 32 32 42.7 32 56l0 144c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2l40-40 79 79-79 79L73 295c-6.9-6.9-17.2-8.9-26.2-5.2S32 302.3 32 312l0 144c0 13.3 10.7 24 24 24l144 0c9.7 0 18.5-5.8 22.2-14.8s1.7-19.3-5.2-26.2l-40-40 79-79 79 79-40 40c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8l144 0c13.3 0 24-10.7 24-24l0-144c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2l-40 40-79-79 79-79 40 40c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2l0-144c0-13.3-10.7-24-24-24L312 32c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l40 40-79 79-79-79 40-40c6.9-6.9 8.9-17.2 5.2-26.2S209.7 32 200 32z"], - "charging-station": [576, 512, [], "f5e7", "M96 0C60.7 0 32 28.7 32 64l0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-144 16 0c22.1 0 40 17.9 40 40l0 32c0 39.8 32.2 72 72 72s72-32.2 72-72l0-123.7c32.5-10.2 56-40.5 56-76.3l0-32c0-8.8-7.2-16-16-16l-16 0 0-48c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48-32 0 0-48c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48-16 0c-8.8 0-16 7.2-16 16l0 32c0 35.8 23.5 66.1 56 76.3L472 376c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-32c0-48.6-39.4-88-88-88l-16 0 0-192c0-35.3-28.7-64-64-64L96 0zM216.9 82.7c6 4 8.5 11.5 6.3 18.3l-25 74.9 57.8 0c6.7 0 12.7 4.2 15 10.4s.5 13.3-4.6 17.7l-112 96c-5.5 4.7-13.4 5.1-19.3 1.1s-8.5-11.5-6.3-18.3l25-74.9L96 208c-6.7 0-12.7-4.2-15-10.4s-.5-13.3 4.6-17.7l112-96c5.5-4.7 13.4-5.1 19.3-1.1z"], - "shapes": [512, 512, ["triangle-circle-square"], "f61f", "M315.4 15.5C309.7 5.9 299.2 0 288 0s-21.7 5.9-27.4 15.5l-96 160c-5.9 9.9-6.1 22.2-.4 32.2s16.3 16.2 27.8 16.2l192 0c11.5 0 22.2-6.2 27.8-16.2s5.5-22.3-.4-32.2l-96-160zM288 312l0 144c0 22.1 17.9 40 40 40l144 0c22.1 0 40-17.9 40-40l0-144c0-22.1-17.9-40-40-40l-144 0c-22.1 0-40 17.9-40 40zM128 512a128 128 0 1 0 0-256 128 128 0 1 0 0 256z"], - "shuffle": [512, 512, [128256, "random"], "f074", "M403.8 34.4c12-5 25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6l0-32-32 0c-10.1 0-19.6 4.7-25.6 12.8L284 229.3 244 176l31.2-41.6C293.3 110.2 321.8 96 352 96l32 0 0-32c0-12.9 7.8-24.6 19.8-29.6zM164 282.7L204 336l-31.2 41.6C154.7 401.8 126.2 416 96 416l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0c10.1 0 19.6-4.7 25.6-12.8L164 282.7zm274.6 188c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6l0-32-32 0c-30.2 0-58.7-14.2-76.8-38.4L121.6 172.8c-6-8.1-15.5-12.8-25.6-12.8l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0c30.2 0 58.7 14.2 76.8 38.4L326.4 339.2c6 8.1 15.5 12.8 25.6 12.8l32 0 0-32c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64z"], - "person-running": [448, 512, [127939, "running"], "f70c", "M320 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM125.7 175.5c9.9-9.9 23.4-15.5 37.5-15.5c1.9 0 3.8 .1 5.6 .3L137.6 254c-9.3 28 1.7 58.8 26.8 74.5l86.2 53.9-25.4 88.8c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l28.7-100.4c5.9-20.6-2.6-42.6-20.7-53.9L238 299l30.9-82.4 5.1 12.3C289 264.7 323.9 288 362.7 288l21.3 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-21.3 0c-12.9 0-24.6-7.8-29.5-19.7l-6.3-15c-14.6-35.1-44.1-61.9-80.5-73.1l-48.7-15c-11.1-3.4-22.7-5.2-34.4-5.2c-31 0-60.8 12.3-82.7 34.3L57.4 153.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l23.1-23.1zM91.2 352L32 352c-17.7 0-32 14.3-32 32s14.3 32 32 32l69.6 0c19 0 36.2-11.2 43.9-28.5L157 361.6l-9.5-6c-17.5-10.9-30.5-26.8-37.9-44.9L91.2 352z"], - "mobile-retro": [320, 512, [], "e527", "M0 64C0 28.7 28.7 0 64 0L256 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm64 96l0 64c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32L96 128c-17.7 0-32 14.3-32 32zM80 352a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 56a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm56-56a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 56a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm56-56a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 56a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM128 48c-8.8 0-16 7.2-16 16s7.2 16 16 16l64 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-64 0z"], - "grip-lines-vertical": [192, 512, [], "f7a5", "M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32L64 64zm128 0c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384z"], - "spider": [512, 512, [128375], "f717", "M158.4 32.6c4.8-12.4-1.4-26.3-13.8-31s-26.3 1.4-31 13.8L81.1 100c-7.9 20.7-3 44.1 12.7 59.7l57.4 57.4L70.8 190.3c-2.4-.8-4.3-2.7-5.1-5.1L46.8 128.4C42.6 115.8 29 109 16.4 113.2S-3 131 1.2 143.6l18.9 56.8c5.6 16.7 18.7 29.8 35.4 35.4L116.1 256 55.6 276.2c-16.7 5.6-29.8 18.7-35.4 35.4L1.2 368.4C-3 381 3.8 394.6 16.4 398.8s26.2-2.6 30.4-15.2l18.9-56.8c.8-2.4 2.7-4.3 5.1-5.1l80.4-26.8L93.7 352.3C78.1 368 73.1 391.4 81.1 412l32.5 84.6c4.8 12.4 18.6 18.5 31 13.8s18.5-18.6 13.8-31l-32.5-84.6c-1.1-3-.4-6.3 1.8-8.5L160 353.9c1 52.1 43.6 94.1 96 94.1s95-41.9 96-94.1l32.3 32.3c2.2 2.2 2.9 5.6 1.8 8.5l-32.5 84.6c-4.8 12.4 1.4 26.3 13.8 31s26.3-1.4 31-13.8L430.9 412c7.9-20.7 3-44.1-12.7-59.7l-57.4-57.4 80.4 26.8c2.4 .8 4.3 2.7 5.1 5.1l18.9 56.8c4.2 12.6 17.8 19.4 30.4 15.2s19.4-17.8 15.2-30.4l-18.9-56.8c-5.6-16.7-18.7-29.8-35.4-35.4L395.9 256l60.5-20.2c16.7-5.6 29.8-18.7 35.4-35.4l18.9-56.8c4.2-12.6-2.6-26.2-15.2-30.4s-26.2 2.6-30.4 15.2l-18.9 56.8c-.8 2.4-2.7 4.3-5.1 5.1l-80.4 26.8 57.4-57.4c15.6-15.6 20.6-39 12.7-59.7L398.4 15.4C393.6 3 379.8-3.2 367.4 1.6s-18.5 18.6-13.8 31l32.5 84.6c1.1 3 .4 6.3-1.8 8.5L336 174.1l0-14.1c0-31.8-18.6-59.3-45.5-72.2c-9.1-4.4-18.5 3.3-18.5 13.4l0 10.8c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-10.8c0-10.1-9.4-17.7-18.5-13.4C194.6 100.7 176 128.2 176 160l0 14.1-48.3-48.3c-2.2-2.2-2.9-5.6-1.8-8.5l32.5-84.6z"], - "hands-bound": [640, 512, [], "e4f9", "M96 32C96 14.3 81.7 0 64 0S32 14.3 32 32l0 64 0 59.1 0 .7L32 192l0 21.9c0 14.2 5.1 27.9 14.3 38.7L131.6 352l-3.6 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 128 0 64 0 128 0 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-3.6 0 85.3-99.5c9.2-10.8 14.3-24.5 14.3-38.7l0-21.9 0-36.2 0-.7L608 96l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64 0 48.8-69.3 92.4c-5.7 7.6-16.1 9.6-24.2 4.8c-9.7-5.7-12.1-18.7-5.1-27.5L473 180c10.8-13.5 8.9-33.3-4.4-44.5s-33-9.8-44.5 3.2l-46.7 52.5C361 209.7 352 233.4 352 258.1l0 61.9 0 32-64 0 0-32 0-61.9c0-24.6-9-48.4-25.4-66.8l-46.7-52.5c-11.5-13-31.3-14.4-44.5-3.2s-15.2 30.9-4.4 44.5l27.6 34.5c7 8.8 4.7 21.8-5.1 27.5c-8.1 4.8-18.6 2.7-24.2-4.8L96 144.8 96 96l0-64zm64 448l0 32 128 0 0-32 64 0 0 32 128 0 0-32 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0-128 0-64 0-128 0-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0z"], - "file-invoice-dollar": [384, 512, [], "f571", "M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM64 80c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 96c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16zm128 72c8.8 0 16 7.2 16 16l0 17.3c8.5 1.2 16.7 3.1 24.1 5.1c8.5 2.3 13.6 11 11.3 19.6s-11 13.6-19.6 11.3c-11.1-3-22-5.2-32.1-5.3c-8.4-.1-17.4 1.8-23.6 5.5c-5.7 3.4-8.1 7.3-8.1 12.8c0 3.7 1.3 6.5 7.3 10.1c6.9 4.1 16.6 7.1 29.2 10.9l.5 .1s0 0 0 0s0 0 0 0c11.3 3.4 25.3 7.6 36.3 14.6c12.1 7.6 22.4 19.7 22.7 38.2c.3 19.3-9.6 33.3-22.9 41.6c-7.7 4.8-16.4 7.6-25.1 9.1l0 17.1c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-17.8c-11.2-2.1-21.7-5.7-30.9-8.9c0 0 0 0 0 0c-2.1-.7-4.2-1.4-6.2-2.1c-8.4-2.8-12.9-11.9-10.1-20.2s11.9-12.9 20.2-10.1c2.5 .8 4.8 1.6 7.1 2.4c0 0 0 0 0 0s0 0 0 0s0 0 0 0c13.6 4.6 24.6 8.4 36.3 8.7c9.1 .3 17.9-1.7 23.7-5.3c5.1-3.2 7.9-7.3 7.8-14c-.1-4.6-1.8-7.8-7.7-11.6c-6.8-4.3-16.5-7.4-29-11.2l-1.6-.5s0 0 0 0c-11-3.3-24.3-7.3-34.8-13.7c-12-7.2-22.6-18.9-22.7-37.3c-.1-19.4 10.8-32.8 23.8-40.5c7.5-4.4 15.8-7.2 24.1-8.7l0-17.3c0-8.8 7.2-16 16-16z"], - "plane-circle-exclamation": [640, 512, [], "e556", "M256 0c-35 0-64 59.5-64 93.7l0 84.6L8.1 283.4c-5 2.8-8.1 8.2-8.1 13.9l0 65.5c0 10.6 10.2 18.3 20.4 15.4l171.6-49 0 70.9-57.6 43.2c-4 3-6.4 7.8-6.4 12.8l0 42c0 7.8 6.3 14 14 14c1.3 0 2.6-.2 3.9-.5L256 480l110.1 31.5c1.3 .4 2.6 .5 3.9 .5c6 0 11.1-3.7 13.1-9C344.5 470.7 320 422.2 320 368c0-60.6 30.6-114 77.1-145.6L320 178.3l0-84.6C320 59.5 292 0 256 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z"], - "x-ray": [512, 512, [], "f497", "M0 64C0 46.3 14.3 32 32 32l448 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 320c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32L32 96C14.3 96 0 81.7 0 64zM256 96c-8.8 0-16 7.2-16 16l0 32-80 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80 0 0 48-112 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l112 0 0 70.6L189.1 307c-5.2-2-10.6-3-16.2-3l-2.1 0c-23.6 0-42.8 19.2-42.8 42.8c0 9.6 3.2 18.9 9.1 26.4l18.2 23.2c9.7 12.4 24.6 19.6 40.3 19.6l120.8 0c15.7 0 30.6-7.2 40.3-19.6l18.2-23.2c5.9-7.5 9.1-16.8 9.1-26.4c0-23.6-19.2-42.8-42.8-42.8l-2.2 0c-5.5 0-11 1-16.2 3L272 326.6l0-70.6 112 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-112 0 0-48 80 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-80 0 0-32c0-8.8-7.2-16-16-16zM208 352a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm80 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z"], - "spell-check": [576, 512, [], "f891", "M112 0C99.1 0 87.4 7.8 82.5 19.7l-66.7 160-13.3 32c-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2L66.7 224l90.7 0 5.1 12.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8l-13.3-32-66.7-160C136.6 7.8 124.9 0 112 0zm18.7 160l-37.3 0L112 115.2 130.7 160zM256 32l0 96 0 96c0 17.7 14.3 32 32 32l80 0c44.2 0 80-35.8 80-80c0-23.1-9.8-43.8-25.4-58.4c6-11.2 9.4-24 9.4-37.6c0-44.2-35.8-80-80-80L288 0c-17.7 0-32 14.3-32 32zm96 64l-32 0 0-32 32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16zm-32 64l32 0 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0 0-32zM566.6 310.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L352 434.7l-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l192-192z"], - "slash": [640, 512, [], "f715", "M5.1 9.2C13.3-1.2 28.4-3.1 38.8 5.1l592 464c10.4 8.2 12.3 23.3 4.1 33.7s-23.3 12.3-33.7 4.1L9.2 42.9C-1.2 34.7-3.1 19.6 5.1 9.2z"], - "computer-mouse": [384, 512, [128433, "mouse"], "f8cc", "M0 192l176 0L176 0 160 0C71.6 0 0 71.6 0 160l0 32zm0 32L0 352c0 88.4 71.6 160 160 160l64 0c88.4 0 160-71.6 160-160l0-128-192 0L0 224zm384-32l0-32C384 71.6 312.4 0 224 0L208 0l0 192 176 0z"], - "arrow-right-to-bracket": [512, 512, ["sign-in"], "f090", "M352 96l64 0c17.7 0 32 14.3 32 32l0 256c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c53 0 96-43 96-96l0-256c0-53-43-96-96-96l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm-9.4 182.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L242.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l210.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z"], - "shop-slash": [640, 512, ["store-alt-slash"], "e070", "M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-54.8-43L576 224l-64 0 0 152L384 275.7l0-51.7-64 0 0 1.5L277.2 192l325.9 0c20.3 0 36.8-16.5 36.8-36.8c0-7.3-2.2-14.4-6.2-20.4L558.2 21.4C549.3 8 534.4 0 518.3 0L121.7 0c-16 0-31 8-39.9 21.4L74.1 32.8 38.8 5.1zM36.8 192l85 0L21 112.5 6.2 134.7c-4 6.1-6.2 13.2-6.2 20.4C0 175.5 16.5 192 36.8 192zM320 384l-192 0 0-160-64 0 0 160 0 80c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-65.5-64-50.4 0 35.9z"], - "server": [512, 512, [], "f233", "M64 32C28.7 32 0 60.7 0 96l0 64c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64L64 32zm280 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm48 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64L64 288zm280 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm56 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"], - "virus-covid-slash": [640, 512, [], "e4a9", "M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L472.1 344.7c11.4-19.5 19.1-41.4 22.3-64.7l33.6 0 0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-80c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 16-33.6 0c-4.2-30.7-16.3-58.8-34.1-82.3L484 125.9l11.3 11.3c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L472.7 46.7c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L450.1 92l-23.8 23.8C402.8 97.9 374.7 85.8 344 81.6L344 48l16 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L280 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l16 0 0 33.6c-30.7 4.2-58.8 16.3-82.3 34.1L189.9 92l11.3-11.3c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L134.1 79.8 38.8 5.1zM149.2 213.5c-1.5 6-2.7 12.2-3.5 18.5L112 232l0-16c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16 33.6 0c4.2 30.7 16.3 58.8 34.1 82.3L156 386.1l-11.3-11.3c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l56.6 56.6c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L189.9 420l23.8-23.8c23.5 17.9 51.7 29.9 82.3 34.1l0 33.6-16 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-16 0 0-33.6c20.4-2.8 39.7-9.1 57.3-18.2L149.2 213.5z"], - "shop-lock": [640, 512, [], "e4a5", "M36.8 192l412.8 0c20.2-19.8 47.9-32 78.4-32c30.5 0 58.1 12.2 78.3 31.9c18.9-1.6 33.7-17.4 33.7-36.7c0-7.3-2.2-14.4-6.2-20.4L558.2 21.4C549.3 8 534.4 0 518.3 0L121.7 0c-16 0-31 8-39.9 21.4L6.2 134.7c-4 6.1-6.2 13.2-6.2 20.4C0 175.5 16.5 192 36.8 192zM384 224l-64 0 0 160-192 0 0-160-64 0 0 160 0 80c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-80 0-32 0-128zm144 16c17.7 0 32 14.3 32 32l0 48-64 0 0-48c0-17.7 14.3-32 32-32zm-80 32l0 48c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80z"], - "hourglass-start": [384, 512, ["hourglass-1"], "f251", "M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l0 11c0 42.4 16.9 83.1 46.9 113.1L146.7 256 78.9 323.9C48.9 353.9 32 394.6 32 437l0 11c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 256 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-11c0-42.4-16.9-83.1-46.9-113.1L237.3 256l67.9-67.9c30-30 46.9-70.7 46.9-113.1l0-11c17.7 0 32-14.3 32-32s-14.3-32-32-32L320 0 64 0 32 0zM288 437l0 11L96 448l0-11c0-25.5 10.1-49.9 28.1-67.9L192 301.3l67.9 67.9c18 18 28.1 42.4 28.1 67.9z"], - "blender-phone": [576, 512, [], "f6b6", "M224 352L196.8 52.3C194.2 24.2 216.3 0 244.6 0L534.1 0c21.1 0 36.4 20.1 30.9 40.4L558.5 64 400 64c-8.8 0-16 7.2-16 16s7.2 16 16 16l149.8 0-17.5 64L400 160c-8.8 0-16 7.2-16 16s7.2 16 16 16l123.6 0-17.5 64L400 256c-8.8 0-16 7.2-16 16s7.2 16 16 16l97.5 0L480 352l-256 0zm-16 32l288 0c26.5 0 48 21.5 48 48l0 32c0 26.5-21.5 48-48 48l-288 0c-26.5 0-48-21.5-48-48l0-32c0-26.5 21.5-48 48-48zm144 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM147.5 30.7c10.8 6.7 15.3 21 10.6 33.4l-22 57.8c-4.2 10.9-14.5 17.6-25.3 16.4l-33.3-3.6c-13.6 42.2-13.6 88.4 0 130.7l33.3-3.6c10.9-1.2 21.2 5.5 25.3 16.4l22 57.8c4.7 12.4 .2 26.7-10.6 33.4l-44 27.2c-9.7 6-21.9 4.2-29.8-4.3C-24.6 286-24.6 114 73.7 7.8C81.6-.7 93.8-2.5 103.5 3.5l44 27.2z"], - "building-wheat": [640, 512, [], "e4db", "M0 48C0 21.5 21.5 0 48 0L336 0c26.5 0 48 21.5 48 48l0 416c0 26.5-21.5 48-48 48l-96 0 0-80c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 80-96 0c-26.5 0-48-21.5-48-48L0 48zM80 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm80 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm112-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM64 112l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16L80 96c-8.8 0-16 7.2-16 16zM176 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm80 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm384 80l0 16c0 44.2-35.8 80-80 80l-16 0 0-16c0-44.2 35.8-80 80-80l16 0zm0 128c0 44.2-35.8 80-80 80l-16 0 0-16c0-44.2 35.8-80 80-80l16 0 0 16zm0 112c0 44.2-35.8 80-80 80l-16 0 0-16c0-44.2 35.8-80 80-80l16 0 0 16zM512 496l0 16-16 0c-44.2 0-80-35.8-80-80l0-16 16 0c44.2 0 80 35.8 80 80zm0-96l-16 0c-44.2 0-80-35.8-80-80l0-16 16 0c44.2 0 80 35.8 80 80l0 16zm0-128l0 16-16 0c-44.2 0-80-35.8-80-80l0-16 16 0c44.2 0 80 35.8 80 80zM528 32c13.3 0 24 10.7 24 24l0 104c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-104c0-13.3 10.7-24 24-24zm96 64l0 32c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-32c0-13.3 10.7-24 24-24s24 10.7 24 24zM456 72c13.3 0 24 10.7 24 24l0 32c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-32c0-13.3 10.7-24 24-24z"], - "person-breastfeeding": [448, 512, [], "e53a", "M224 0a80 80 0 1 1 0 160A80 80 0 1 1 224 0zM436.8 382.8L373.5 462c-16.6 20.7-46.8 24.1-67.5 7.5c-17.6-14.1-22.7-38.1-13.5-57.7l-.8-.1c-38.9-5.6-74.3-25.1-99.7-54.8l0-36.8c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48c0 .8 0 1.6 .1 2.4l101.4 50.7c23.7 11.9 33.3 40.7 21.5 64.4s-40.7 33.3-64.4 21.5L27.2 427.3c-1.1-.5-2.2-1.1-3.3-1.7c-4.9-2.8-9.2-6.4-12.6-10.6c-4.6-5.4-7.8-11.7-9.6-18.4c-3.3-12-1.9-25.2 4.8-36.6c.6-1.1 1.3-2.2 2-3.2L75.6 256.1c26.7-40.1 71.7-64.1 119.8-64.1l75.2 0c46.5 0 90.1 22.5 117.2 60.3l50.7 70.9c2.2 3 4 6.1 5.5 9.4c2.9 6.7 4.3 13.8 4 20.8c-.3 10.6-4.2 21-11.2 29.4zM320 332a44 44 0 1 0 -88 0 44 44 0 1 0 88 0z"], - "right-to-bracket": [512, 512, ["sign-in-alt"], "f2f6", "M217.9 105.9L340.7 228.7c7.2 7.2 11.3 17.1 11.3 27.3s-4.1 20.1-11.3 27.3L217.9 406.1c-6.4 6.4-15 9.9-24 9.9c-18.7 0-33.9-15.2-33.9-33.9l0-62.1L32 320c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l128 0 0-62.1c0-18.7 15.2-33.9 33.9-33.9c9 0 17.6 3.6 24 9.9zM352 416l64 0c17.7 0 32-14.3 32-32l0-256c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0c53 0 96 43 96 96l0 256c0 53-43 96-96 96l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z"], - "venus": [384, 512, [9792], "f221", "M80 176a112 112 0 1 1 224 0A112 112 0 1 1 80 176zM224 349.1c81.9-15 144-86.8 144-173.1C368 78.8 289.2 0 192 0S16 78.8 16 176c0 86.3 62.1 158.1 144 173.1l0 34.9-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-34.9z"], - "passport": [448, 512, [], "f5ab", "M0 64C0 28.7 28.7 0 64 0L384 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM183 278.8c-27.9-13.2-48.4-39.4-53.7-70.8l39.1 0c1.6 30.4 7.7 53.8 14.6 70.8zm41.3 9.2l-.3 0-.3 0c-2.4-3.5-5.7-8.9-9.1-16.5c-6-13.6-12.4-34.3-14.2-63.5l47.1 0c-1.8 29.2-8.1 49.9-14.2 63.5c-3.4 7.6-6.7 13-9.1 16.5zm40.7-9.2c6.8-17.1 12.9-40.4 14.6-70.8l39.1 0c-5.3 31.4-25.8 57.6-53.7 70.8zM279.6 176c-1.6-30.4-7.7-53.8-14.6-70.8c27.9 13.2 48.4 39.4 53.7 70.8l-39.1 0zM223.7 96l.3 0 .3 0c2.4 3.5 5.7 8.9 9.1 16.5c6 13.6 12.4 34.3 14.2 63.5l-47.1 0c1.8-29.2 8.1-49.9 14.2-63.5c3.4-7.6 6.7-13 9.1-16.5zM183 105.2c-6.8 17.1-12.9 40.4-14.6 70.8l-39.1 0c5.3-31.4 25.8-57.6 53.7-70.8zM352 192A128 128 0 1 0 96 192a128 128 0 1 0 256 0zM112 384c-8.8 0-16 7.2-16 16s7.2 16 16 16l224 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-224 0z"], - "thumbtack-slash": [640, 512, ["thumb-tack-slash"], "e68f", "M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L481.4 352c9.8-.4 18.9-5.3 24.6-13.3c6-8.3 7.7-19.1 4.4-28.8l-1-3c-13.8-41.5-42.8-74.8-79.5-94.7L418.5 64 448 64c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l29.5 0-6.1 79.5L38.8 5.1zM324.9 352L177.1 235.6c-20.9 18.9-37.2 43.3-46.5 71.3l-1 3c-3.3 9.8-1.6 20.5 4.4 28.8s15.7 13.3 26 13.3l164.9 0zM288 384l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96-64 0z"], - "heart-pulse": [512, 512, ["heartbeat"], "f21e", "M228.3 469.1L47.6 300.4c-4.2-3.9-8.2-8.1-11.9-12.4l87 0c22.6 0 43-13.6 51.7-34.5l10.5-25.2 49.3 109.5c3.8 8.5 12.1 14 21.4 14.1s17.8-5 22-13.3L320 253.7l1.7 3.4c9.5 19 28.9 31 50.1 31l104.5 0c-3.7 4.3-7.7 8.5-11.9 12.4L283.7 469.1c-7.5 7-17.4 10.9-27.7 10.9s-20.2-3.9-27.7-10.9zM503.7 240l-132 0c-3 0-5.8-1.7-7.2-4.4l-23.2-46.3c-4.1-8.1-12.4-13.3-21.5-13.3s-17.4 5.1-21.5 13.3l-41.4 82.8L205.9 158.2c-3.9-8.7-12.7-14.3-22.2-14.1s-18.1 5.9-21.8 14.8l-31.8 76.3c-1.2 3-4.2 4.9-7.4 4.9L16 240c-2.6 0-5 .4-7.3 1.1C3 225.2 0 208.2 0 190.9l0-5.8c0-69.9 50.5-129.5 119.4-141C165 36.5 211.4 51.4 244 84l12 12 12-12c32.6-32.6 79-47.5 124.6-39.9C461.5 55.6 512 115.2 512 185.1l0 5.8c0 16.9-2.8 33.5-8.3 49.1z"], - "people-carry-box": [640, 512, ["people-carry"], "f4ce", "M80 48a48 48 0 1 1 96 0A48 48 0 1 1 80 48zm64 193.7l0 65.1 51 51c7.1 7.1 11.8 16.2 13.4 26.1l15.2 90.9c2.9 17.4-8.9 33.9-26.3 36.8s-33.9-8.9-36.8-26.3l-14.3-85.9L66.8 320C54.8 308 48 291.7 48 274.7l0-88.1c0-32.4 26.2-58.6 58.6-58.6c24.1 0 46.5 12 59.9 32l47.4 71.1 10.1 5 0-76.2c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32l0 76.2 10.1-5L473.5 160c13.3-20 35.8-32 59.9-32c32.4 0 58.6 26.2 58.6 58.6l0 88.1c0 17-6.7 33.3-18.7 45.3l-79.4 79.4-14.3 85.9c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8l15.2-90.9c1.6-9.9 6.3-19 13.4-26.1l51-51 0-65.1-19 28.5c-4.6 7-11 12.6-18.5 16.3l-59.6 29.8c-2.4 1.3-4.9 2.2-7.6 2.8c-2.6 .6-5.3 .9-7.9 .8l-126.7 0c-2.5 .1-5-.2-7.5-.7c-2.9-.6-5.6-1.6-8.1-3l-59.5-29.8c-7.5-3.7-13.8-9.4-18.5-16.3l-19-28.5zM2.3 468.1L50.1 348.6l49.2 49.2-37.6 94c-6.6 16.4-25.2 24.4-41.6 17.8S-4.3 484.5 2.3 468.1zM512 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm77.9 348.6l47.8 119.5c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8l-37.6-94 49.2-49.2z"], - "temperature-high": [512, 512, [], "f769", "M416 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0 128A96 96 0 1 0 416 0a96 96 0 1 0 0 192zM96 112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 164.5c0 17.3 7.1 31.9 15.3 42.5C217.8 332.6 224 349.5 224 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9C88.9 308.4 96 293.8 96 276.5L96 112zM144 0C82.1 0 32 50.2 32 112l0 164.4c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C11.2 304.2 0 334.8 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.2-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6L256 112C256 50.2 205.9 0 144 0zm0 416c26.5 0 48-21.5 48-48c0-20.9-13.4-38.7-32-45.3L160 112c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 210.7c-18.6 6.6-32 24.4-32 45.3c0 26.5 21.5 48 48 48z"], - "microchip": [512, 512, [], "f2db", "M176 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c-35.3 0-64 28.7-64 64l-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 56-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 56-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0c0 35.3 28.7 64 64 64l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40 56 0 0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40 56 0 0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40c35.3 0 64-28.7 64-64l40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0 0-56 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0 0-56 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0c0-35.3-28.7-64-64-64l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40-56 0 0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40-56 0 0-40zM160 128l192 0c17.7 0 32 14.3 32 32l0 192c0 17.7-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32l0-192c0-17.7 14.3-32 32-32zm192 32l-192 0 0 192 192 0 0-192z"], - "crown": [576, 512, [128081], "f521", "M309 106c11.4-7 19-19.7 19-34c0-22.1-17.9-40-40-40s-40 17.9-40 40c0 14.4 7.6 27 19 34L209.7 220.6c-9.1 18.2-32.7 23.4-48.6 10.7L72 160c5-6.7 8-15 8-24c0-22.1-17.9-40-40-40S0 113.9 0 136s17.9 40 40 40c.2 0 .5 0 .7 0L86.4 427.4c5.5 30.4 32 52.6 63 52.6l277.2 0c30.9 0 57.4-22.1 63-52.6L535.3 176c.2 0 .5 0 .7 0c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40c0 9 3 17.3 8 24l-89.1 71.3c-15.9 12.7-39.5 7.5-48.6-10.7L309 106z"], - "weight-hanging": [512, 512, [], "f5cd", "M224 96a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm122.5 32c3.5-10 5.5-20.8 5.5-32c0-53-43-96-96-96s-96 43-96 96c0 11.2 1.9 22 5.5 32L120 128c-22 0-41.2 15-46.6 36.4l-72 288c-3.6 14.3-.4 29.5 8.7 41.2S33.2 512 48 512l416 0c14.8 0 28.7-6.8 37.8-18.5s12.3-26.8 8.7-41.2l-72-288C433.2 143 414 128 392 128l-45.5 0z"], - "xmarks-lines": [640, 512, [], "e59a", "M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zm0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416zM7 167c-9.4 9.4-9.4 24.6 0 33.9l55 55L7 311c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55L41 167c-9.4-9.4-24.6-9.4-33.9 0zM265 167c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55zM455 167c-9.4 9.4-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55c-9.4-9.4-24.6-9.4-33.9 0z"], - "file-prescription": [384, 512, [], "f572", "M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM104 196l72 0c33.1 0 60 26.9 60 60c0 25.5-15.9 47.2-38.3 55.9l43 40.3 33.8-31c8.1-7.5 20.8-6.9 28.3 1.2s6.9 20.8-1.2 28.3L270 379.7l31.7 29.7c8.1 7.6 8.5 20.2 .9 28.3s-20.2 8.5-28.3 .9l-33.9-31.8-34.9 32c-8.1 7.5-20.8 6.9-28.3-1.2s-6.9-20.8 1.2-28.3l32.6-29.9-64.8-60.8c-.9-.8-1.6-1.7-2.3-2.6l-20 0 0 44c0 11-9 20-20 20s-20-9-20-20l0-64 0-80c0-11 9-20 20-20zm72 80c11 0 20-9 20-20s-9-20-20-20l-52 0 0 40 52 0z"], - "weight-scale": [512, 512, ["weight"], "f496", "M128 176a128 128 0 1 1 256 0 128 128 0 1 1 -256 0zM391.8 64C359.5 24.9 310.7 0 256 0S152.5 24.9 120.2 64L64 64C28.7 64 0 92.7 0 128L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-56.2 0zM296 224c0-10.6-4.1-20.2-10.9-27.4l33.6-78.3c3.5-8.1-.3-17.5-8.4-21s-17.5 .3-21 8.4L255.7 184c-22 .1-39.7 18-39.7 40c0 22.1 17.9 40 40 40s40-17.9 40-40z"], - "user-group": [640, 512, [128101, "user-friends"], "f500", "M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3zM609.3 512l-137.8 0c5.4-9.4 8.6-20.3 8.6-32l0-8c0-60.7-27.1-115.2-69.8-151.8c2.4-.1 4.7-.2 7.1-.2l61.4 0C567.8 320 640 392.2 640 481.3c0 17-13.8 30.7-30.7 30.7zM432 256c-31 0-59-12.6-79.3-32.9C372.4 196.5 384 163.6 384 128c0-26.8-6.6-52.1-18.3-74.3C384.3 40.1 407.2 32 432 32c61.9 0 112 50.1 112 112s-50.1 112-112 112z"], - "arrow-up-a-z": [576, 512, ["sort-alpha-up"], "f15e", "M183.6 42.4C177.5 35.8 169 32 160 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L128 146.3 128 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-301.7 32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 320c0 17.7 14.3 32 32 32l50.7 0-73.4 73.4c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-50.7 0 73.4-73.4c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8l-128 0c-17.7 0-32 14.3-32 32zM416 32c-12.1 0-23.2 6.8-28.6 17.7l-64 128-16 32c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l7.2-14.3 88.4 0 7.2 14.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9l-16-32-64-128C439.2 38.8 428.1 32 416 32zM395.8 176L416 135.6 436.2 176l-40.4 0z"], - "chess-knight": [448, 512, [9822], "f441", "M96 48L82.7 61.3C70.7 73.3 64 89.5 64 106.5l0 132.4c0 10.7 5.3 20.7 14.2 26.6l10.6 7c14.3 9.6 32.7 10.7 48.1 3l3.2-1.6c2.6-1.3 5-2.8 7.3-4.5l49.4-37c6.6-5 15.7-5 22.3 0c10.2 7.7 9.9 23.1-.7 30.3L90.4 350C73.9 361.3 64 380 64 400l320 0 28.9-159c2.1-11.3 3.1-22.8 3.1-34.3l0-14.7C416 86 330 0 224 0L83.8 0C72.9 0 64 8.9 64 19.8c0 7.5 4.2 14.3 10.9 17.7L96 48zm24 68a20 20 0 1 1 40 0 20 20 0 1 1 -40 0zM22.6 473.4c-4.2 4.2-6.6 10-6.6 16C16 501.9 26.1 512 38.6 512l370.7 0c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16L384 432 64 432 22.6 473.4z"], - "face-laugh-squint": [512, 512, ["laugh-squint"], "f59b", "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1l275.2 0c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zm36.7-199.4l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 125.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z"], - "wheelchair": [512, 512, [], "f193", "M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM120.5 247.2c12.4-4.7 18.7-18.5 14-30.9s-18.5-18.7-30.9-14C43.1 225.1 0 283.5 0 352c0 88.4 71.6 160 160 160c61.2 0 114.3-34.3 141.2-84.7c6.2-11.7 1.8-26.2-9.9-32.5s-26.2-1.8-32.5 9.9C240 440 202.8 464 160 464C98.1 464 48 413.9 48 352c0-47.9 30.1-88.8 72.5-104.8zM259.8 176l-1.9-9.7c-4.5-22.3-24-38.3-46.8-38.3c-30.1 0-52.7 27.5-46.8 57l23.1 115.5c6 29.9 32.2 51.4 62.8 51.4l5.1 0c.4 0 .8 0 1.3 0l94.1 0c6.7 0 12.6 4.1 15 10.4L402 459.2c6 16.1 23.8 24.6 40.1 19.1l48-16c16.8-5.6 25.8-23.7 20.2-40.5s-23.7-25.8-40.5-20.2l-18.7 6.2-25.5-68c-11.7-31.2-41.6-51.9-74.9-51.9l-68.5 0-9.6-48 63.4 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-76.2 0z"], - "circle-arrow-up": [512, 512, ["arrow-circle-up"], "f0aa", "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM385 215c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-71-71L280 392c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-214.1-71 71c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L239 103c9.4-9.4 24.6-9.4 33.9 0L385 215z"], - "toggle-on": [576, 512, [], "f205", "M192 64C86 64 0 150 0 256S86 448 192 448l192 0c106 0 192-86 192-192s-86-192-192-192L192 64zm192 96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z"], - "person-walking": [320, 512, [128694, "walking"], "f554", "M160 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM126.5 199.3c-1 .4-1.9 .8-2.9 1.2l-8 3.5c-16.4 7.3-29 21.2-34.7 38.2l-2.6 7.8c-5.6 16.8-23.7 25.8-40.5 20.2s-25.8-23.7-20.2-40.5l2.6-7.8c11.4-34.1 36.6-61.9 69.4-76.5l8-3.5c20.8-9.2 43.3-14 66.1-14c44.6 0 84.8 26.8 101.9 67.9L281 232.7l21.4 10.7c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3L247 287.3c-10.3-5.2-18.4-13.8-22.8-24.5l-9.6-23-19.3 65.5 49.5 54c5.4 5.9 9.2 13 11.2 20.8l23 92.1c4.3 17.1-6.1 34.5-23.3 38.8s-34.5-6.1-38.8-23.3l-22-88.1-70.7-77.1c-14.8-16.1-20.3-38.6-14.7-59.7l16.9-63.5zM68.7 398l25-62.4c2.1 3 4.5 5.8 7 8.6l40.7 44.4-14.5 36.2c-2.4 6-6 11.5-10.6 16.1L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L68.7 398z"], - "l": [320, 512, [108], "4c", "M64 32c17.7 0 32 14.3 32 32l0 352 192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 480c-17.7 0-32-14.3-32-32L32 64c0-17.7 14.3-32 32-32z"], - "fire": [448, 512, [128293], "f06d", "M159.3 5.4c7.8-7.3 19.9-7.2 27.7 .1c27.6 25.9 53.5 53.8 77.7 84c11-14.4 23.5-30.1 37-42.9c7.9-7.4 20.1-7.4 28 .1c34.6 33 63.9 76.6 84.5 118c20.3 40.8 33.8 82.5 33.8 111.9C448 404.2 348.2 512 224 512C98.4 512 0 404.1 0 276.5c0-38.4 17.8-85.3 45.4-131.7C73.3 97.7 112.7 48.6 159.3 5.4zM225.7 416c25.3 0 47.7-7 68.8-21c42.1-29.4 53.4-88.2 28.1-134.4c-4.5-9-16-9.6-22.5-2l-25.2 29.3c-6.6 7.6-18.5 7.4-24.7-.5c-16.5-21-46-58.5-62.8-79.8c-6.3-8-18.3-8.1-24.7-.1c-33.8 42.5-50.8 69.3-50.8 99.4C112 375.4 162.6 416 225.7 416z"], - "bed-pulse": [640, 512, ["procedures"], "f487", "M483.2 9.6L524 64l92 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-104 0c-7.6 0-14.7-3.6-19.2-9.6L468.7 70.3l-47 99.9c-3.7 7.8-11.3 13.1-19.9 13.7s-16.9-3.4-21.7-10.6L339.2 112 216 112c-13.3 0-24-10.7-24-24s10.7-24 24-24l136 0c8 0 15.5 4 20 10.7l24.4 36.6 45.9-97.5C445.9 6.2 453.2 1 461.6 .1s16.6 2.7 21.6 9.5zM320 160l12.7 0 20.7 31.1c11.2 16.8 30.6 26.3 50.7 24.8s37.9-13.7 46.5-32L461.9 160l82.1 0c53 0 96 43 96 96l0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-224 0-32 0L64 448l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 96C0 78.3 14.3 64 32 64s32 14.3 32 32l0 256 224 0 0-160c0-17.7 14.3-32 32-32zm-144 0a80 80 0 1 1 0 160 80 80 0 1 1 0-160z"], - "shuttle-space": [640, 512, ["space-shuttle"], "f197", "M130 480c40.6 0 80.4-11 115.2-31.9L352 384l-224 0 0 96 2 0zM352 128L245.2 63.9C210.4 43 170.6 32 130 32l-2 0 0 96 224 0zM96 128l0-96L80 32C53.5 32 32 53.5 32 80l0 48 8 0c-22.1 0-40 17.9-40 40l0 16L0 328l0 16c0 22.1 17.9 40 40 40l-8 0 0 48c0 26.5 21.5 48 48 48l16 0 0-96 8 0c26.2 0 49.4-12.6 64-32l288 0c69.3 0 135-22.7 179.2-81.6c6.4-8.5 6.4-20.3 0-28.8C591 182.7 525.3 160 456 160l-288 0c-14.6-19.4-37.8-32-64-32l-8 0zM512 243.6l0 24.9c0 19.6-15.9 35.6-35.6 35.6c-2.5 0-4.4-2-4.4-4.4l0-87.1c0-2.5 2-4.4 4.4-4.4c19.6 0 35.6 15.9 35.6 35.6z"], - "face-laugh": [512, 512, ["laugh"], "f599", "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1l275.2 0c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zM144.4 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"], - "folder-open": [576, 512, [128194, 128449, 61717], "f07c", "M88.7 223.8L0 375.8 0 96C0 60.7 28.7 32 64 32l117.5 0c17 0 33.3 6.7 45.3 18.7l26.5 26.5c12 12 28.3 18.7 45.3 18.7L416 96c35.3 0 64 28.7 64 64l0 32-336 0c-22.8 0-43.8 12.1-55.3 31.8zm27.6 16.1C122.1 230 132.6 224 144 224l400 0c11.5 0 22 6.1 27.7 16.1s5.7 22.2-.1 32.1l-112 192C453.9 474 443.4 480 432 480L32 480c-11.5 0-22-6.1-27.7-16.1s-5.7-22.2 .1-32.1l112-192z"], - "heart-circle-plus": [576, 512, [], "e500", "M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6l0-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1l0 5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm16-208l0 48 48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l48 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16z"], - "code-fork": [448, 512, [], "e13b", "M80 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm80-24c0 32.8-19.7 61-48 73.3l0 38.7c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-38.7C307.7 141 288 112.8 288 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3l0 38.7c0 53-43 96-96 96l-48 0 0 70.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3l0-70.7-48 0c-53 0-96-43-96-96l0-38.7C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80zm208 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM248 432a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z"], - "city": [640, 512, [127961], "f64f", "M480 48c0-26.5-21.5-48-48-48L336 0c-26.5 0-48 21.5-48 48l0 48-64 0 0-72c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 72-64 0 0-72c0-13.3-10.7-24-24-24S64 10.7 64 24l0 72L48 96C21.5 96 0 117.5 0 144l0 96L0 464c0 26.5 21.5 48 48 48l256 0 32 0 96 0 160 0c26.5 0 48-21.5 48-48l0-224c0-26.5-21.5-48-48-48l-112 0 0-144zm96 320l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16zM240 416l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16zM128 400c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32zM560 256c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0zM256 176l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16zM112 160c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0zM256 304c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32zM112 320l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16zm304-48l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16zM400 64c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0zm16 112l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16z"], - "microphone-lines": [384, 512, [127897, "microphone-alt"], "f3c9", "M96 96l0 160c0 53 43 96 96 96s96-43 96-96l-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-32-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-32-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0c0-53-43-96-96-96S96 43 96 96zM320 240l0 16c0 70.7-57.3 128-128 128s-128-57.3-128-128l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 89.1 66.2 162.7 152 174.4l0 33.6-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-33.6c85.8-11.7 152-85.3 152-174.4l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24z"], - "pepper-hot": [512, 512, [127798], "f816", "M428.3 3c11.6-6.4 26.2-2.3 32.6 9.3l4.8 8.7c19.3 34.7 19.8 75.7 3.4 110C495.8 159.6 512 197.9 512 240c0 18.5-3.1 36.3-8.9 52.8c-6.1 17.3-28.5 16.3-36.8-.1l-11.7-23.4c-4.1-8.1-12.4-13.3-21.5-13.3L360 256c-13.3 0-24-10.7-24-24l0-80c0-13.3-10.7-24-24-24l-17.1 0c-21.3 0-30-23.9-10.8-32.9C304.7 85.4 327.7 80 352 80c28.3 0 54.8 7.3 77.8 20.2c5.5-18.2 3.7-38.4-6-55.8L419 35.7c-6.4-11.6-2.3-26.2 9.3-32.6zM171.2 345.5L264 160l40 0 0 80c0 26.5 21.5 48 48 48l76.2 0 23.9 47.8C372.3 443.9 244.3 512 103.2 512l-58.8 0C19.9 512 0 492.1 0 467.6c0-20.8 14.5-38.8 34.8-43.3l49.8-11.1c37.6-8.4 69.5-33.2 86.7-67.7z"], - "unlock": [448, 512, [128275], "f09c", "M144 144c0-44.2 35.8-80 80-80c31.9 0 59.4 18.6 72.3 45.7c7.6 16 26.7 22.8 42.6 15.2s22.8-26.7 15.2-42.6C331 33.7 281.5 0 224 0C144.5 0 80 64.5 80 144l0 48-16 0c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64l-240 0 0-48z"], - "colon-sign": [384, 512, [], "e140", "M255 39.8c4.3-17.1-6.1-34.5-23.3-38.8S197.2 7.1 193 24.2L181.9 68.6C96.1 87.8 32 164.4 32 256c0 58.1 25.8 110.2 66.7 145.4L81 472.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l13-52.1c9 3.4 18.4 6.2 28 8.2L177 472.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l10.4-41.4c33.4-4.4 64.1-17.4 89.8-36.7c14.1-10.6 17-30.7 6.4-44.8s-30.7-17-44.8-6.4c-10.2 7.7-21.7 13.9-34 18.3L321 160c9.4-.3 18.5-4.7 24.6-12.8c10.6-14.1 7.8-34.2-6.4-44.8c-1.1-.8-2.2-1.6-3.3-2.4L351 39.8c4.3-17.1-6.1-34.5-23.3-38.8S293.2 7.1 289 24.2L277.2 71.5c-9.3-2.7-18.8-4.6-28.6-5.9L255 39.8zM163.2 143.3L117.3 326.8C103.9 306.5 96 282.2 96 256c0-48.7 27.2-91 67.2-112.7zm8.6 229.5l61.1-244.6c9.9 .7 19.5 2.5 28.7 5.3l-62 248.1c-9.7-1.9-19-4.8-27.8-8.8z"], - "headset": [512, 512, [], "f590", "M256 48C141.1 48 48 141.1 48 256l0 40c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-40C0 114.6 114.6 0 256 0S512 114.6 512 256l0 144.1c0 48.6-39.4 88-88.1 88L313.6 488c-8.3 14.3-23.8 24-41.6 24l-32 0c-26.5 0-48-21.5-48-48s21.5-48 48-48l32 0c17.8 0 33.3 9.7 41.6 24l110.4 .1c22.1 0 40-17.9 40-40L464 256c0-114.9-93.1-208-208-208zM144 208l16 0c17.7 0 32 14.3 32 32l0 112c0 17.7-14.3 32-32 32l-16 0c-35.3 0-64-28.7-64-64l0-48c0-35.3 28.7-64 64-64zm224 0c35.3 0 64 28.7 64 64l0 48c0 35.3-28.7 64-64 64l-16 0c-17.7 0-32-14.3-32-32l0-112c0-17.7 14.3-32 32-32l16 0z"], - "store-slash": [640, 512, [], "e071", "M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-86.8-68 0-17.1 0-131.4c-4 1-8 1.8-12.3 2.3c0 0 0 0-.1 0c-5.3 .7-10.7 1.1-16.2 1.1c-12.4 0-24.3-1.9-35.4-5.3l0 100.3L301.2 210.7c7-4.4 13.3-9.7 18.8-15.7c15.9 17.6 39.1 29 65.2 29c26.2 0 49.3-11.4 65.2-29c16 17.6 39.1 29 65.2 29c4.1 0 8.1-.3 12.1-.8c55.5-7.4 81.8-72.5 52.1-119.4L522.3 13.1C517.2 5 508.1 0 498.4 0L141.6 0c-9.7 0-18.8 5-23.9 13.1l-22.7 36L38.8 5.1zm73.4 218.1c4 .5 8.1 .8 12.1 .8c11 0 21.4-2 31-5.6L48.9 134.5c-6.1 40.6 19.5 82.8 63.3 88.7zM160 384l0-133.4c-11.2 3.5-23.2 5.4-35.6 5.4c-5.5 0-11-.4-16.3-1.1l-.1 0c-4.1-.6-8.1-1.3-12-2.3L96 384l0 64c0 35.3 28.7 64 64 64l320 0c12.9 0 24.8-3.8 34.9-10.3L365.5 384 160 384z"], - "road-circle-xmark": [640, 512, [], "e566", "M213.2 32L288 32l0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 74.8 0c27.1 0 51.3 17.1 60.3 42.6l42.7 120.6c-10.9-2.1-22.2-3.2-33.8-3.2c-59.5 0-112.1 29.6-144 74.8l0-42.8c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32c2.3 0 4.6-.3 6.8-.7c-4.5 15.5-6.8 31.8-6.8 48.7c0 5.4 .2 10.7 .7 16l-.7 0c-17.7 0-32 14.3-32 32l0 64L86.6 480C56.5 480 32 455.5 32 425.4c0-6.2 1.1-12.4 3.1-18.2L152.9 74.6C162 49.1 186.1 32 213.2 32zM496 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm22.6 144l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L496 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L473.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L496 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L518.6 368z"], - "user-minus": [640, 512, [], "f503", "M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3zM472 200l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"], - "mars-stroke-up": [320, 512, [9896, "mars-stroke-v"], "f22a", "M148.7 4.7c6.2-6.2 16.4-6.2 22.6 0l64 64c4.6 4.6 5.9 11.5 3.5 17.4s-8.3 9.9-14.8 9.9l-40 0 0 24 32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0 0 24c0 .6 0 1.2-.1 1.8c77 11.6 136.1 78 136.1 158.2c0 88.4-71.6 160-160 160S0 440.4 0 352c0-80.2 59.1-146.7 136.1-158.2c0-.6-.1-1.2-.1-1.8l0-24-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l32 0 0-24L96 96c-6.5 0-12.3-3.9-14.8-9.9s-1.1-12.9 3.5-17.4l64-64zM256 352A96 96 0 1 0 64 352a96 96 0 1 0 192 0z"], - "champagne-glasses": [640, 512, [129346, "glass-cheers"], "f79f", "M155.6 17.3C163 3 179.9-3.6 195 1.9L320 47.5l125-45.6c15.1-5.5 32 1.1 39.4 15.4l78.8 152.9c28.8 55.8 10.3 122.3-38.5 156.6L556.1 413l41-15c16.6-6 35 2.5 41 19.1s-2.5 35-19.1 41l-71.1 25.9L476.8 510c-16.6 6.1-35-2.5-41-19.1s2.5-35 19.1-41l41-15-31.3-86.2c-59.4 5.2-116.2-34-130-95.2L320 188.8l-14.6 64.7c-13.8 61.3-70.6 100.4-130 95.2l-31.3 86.2 41 15c16.6 6 25.2 24.4 19.1 41s-24.4 25.2-41 19.1L92.2 484.1 21.1 458.2c-16.6-6.1-25.2-24.4-19.1-41s24.4-25.2 41-19.1l41 15 31.3-86.2C66.5 292.5 48.1 226 76.9 170.2L155.6 17.3zm44 54.4l-27.2 52.8L261.6 157l13.1-57.9L199.6 71.7zm240.9 0L365.4 99.1 378.5 157l89.2-32.5L440.5 71.7z"], - "clipboard": [384, 512, [128203], "f328", "M192 0c-41.8 0-77.4 26.7-90.5 64L64 64C28.7 64 0 92.7 0 128L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-37.5 0C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM112 192l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"], - "house-circle-exclamation": [640, 512, [], "e50a", "M320.7 352c8.1-89.7 83.5-160 175.3-160c8.9 0 17.6 .7 26.1 1.9L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1l32 0 0 69.7c-.1 .9-.1 1.8-.1 2.8l0 112c0 22.1 17.9 40 40 40l16 0c1.2 0 2.4-.1 3.6-.2c1.5 .1 3 .2 4.5 .2l31.9 0 24 0c22.1 0 40-17.9 40-40l0-24 0-64c0-17.7 14.3-32 32-32l64 0 .7 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z"], - "file-arrow-up": [384, 512, ["file-upload"], "f574", "M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM216 408c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-102.1-31 31c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l72-72c9.4-9.4 24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-31-31L216 408z"], - "wifi": [640, 512, ["wifi-3", "wifi-strong"], "f1eb", "M54.2 202.9C123.2 136.7 216.8 96 320 96s196.8 40.7 265.8 106.9c12.8 12.2 33 11.8 45.2-.9s11.8-33-.9-45.2C549.7 79.5 440.4 32 320 32S90.3 79.5 9.8 156.7C-2.9 169-3.3 189.2 8.9 202s32.5 13.2 45.2 .9zM320 256c56.8 0 108.6 21.1 148.2 56c13.3 11.7 33.5 10.4 45.2-2.8s10.4-33.5-2.8-45.2C459.8 219.2 393 192 320 192s-139.8 27.2-190.5 72c-13.3 11.7-14.5 31.9-2.8 45.2s31.9 14.5 45.2 2.8c39.5-34.9 91.3-56 148.2-56zm64 160a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z"], - "bath": [512, 512, [128705, "bathtub"], "f2cd", "M96 77.3c0-7.3 5.9-13.3 13.3-13.3c3.5 0 6.9 1.4 9.4 3.9l14.9 14.9C130 91.8 128 101.7 128 112c0 19.9 7.2 38 19.2 52c-5.3 9.2-4 21.1 3.8 29c9.4 9.4 24.6 9.4 33.9 0L289 89c9.4-9.4 9.4-24.6 0-33.9c-7.9-7.9-19.8-9.1-29-3.8C246 39.2 227.9 32 208 32c-10.3 0-20.2 2-29.2 5.5L163.9 22.6C149.4 8.1 129.7 0 109.3 0C66.6 0 32 34.6 32 77.3L32 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l448 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 256 96 77.3zM32 352l0 16c0 28.4 12.4 54 32 71.6L64 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-16 256 0 0 16c0 17.7 14.3 32 32 32s32-14.3 32-32l0-40.4c19.6-17.6 32-43.1 32-71.6l0-16L32 352z"], - "underline": [448, 512, [], "f0cd", "M16 64c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 128c0 53 43 96 96 96s96-43 96-96l0-128-16 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 128c0 88.4-71.6 160-160 160s-160-71.6-160-160L64 96 48 96C30.3 96 16 81.7 16 64zM0 448c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32z"], - "user-pen": [640, 512, ["user-edit"], "f4ff", "M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512l293.1 0c-3.1-8.8-3.7-18.4-1.4-27.8l15-60.1c2.8-11.3 8.6-21.5 16.8-29.7l40.3-40.3c-32.1-31-75.7-50.1-123.9-50.1l-91.4 0zm435.5-68.3c-15.6-15.6-40.9-15.6-56.6 0l-29.4 29.4 71 71 29.4-29.4c15.6-15.6 15.6-40.9 0-56.6l-14.4-14.4zM375.9 417c-4.1 4.1-7 9.2-8.4 14.9l-15 60.1c-1.4 5.5 .2 11.2 4.2 15.2s9.7 5.6 15.2 4.2l60.1-15c5.6-1.4 10.8-4.3 14.9-8.4L576.1 358.7l-71-71L375.9 417z"], - "signature": [640, 512, [], "f5b7", "M192 128c0-17.7 14.3-32 32-32s32 14.3 32 32l0 7.8c0 27.7-2.4 55.3-7.1 82.5l-84.4 25.3c-40.6 12.2-68.4 49.6-68.4 92l0 71.9c0 40 32.5 72.5 72.5 72.5c26 0 50-13.9 62.9-36.5l13.9-24.3c26.8-47 46.5-97.7 58.4-150.5l94.4-28.3-12.5 37.5c-3.3 9.8-1.6 20.5 4.4 28.8s15.7 13.3 26 13.3l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-83.6 0 18-53.9c3.8-11.3 .9-23.8-7.4-32.4s-20.7-11.8-32.2-8.4L316.4 198.1c2.4-20.7 3.6-41.4 3.6-62.3l0-7.8c0-53-43-96-96-96s-96 43-96 96l0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32zm-9.2 177l49-14.7c-10.4 33.8-24.5 66.4-42.1 97.2l-13.9 24.3c-1.5 2.6-4.3 4.3-7.4 4.3c-4.7 0-8.5-3.8-8.5-8.5l0-71.9c0-14.1 9.3-26.6 22.8-30.7zM24 368c-13.3 0-24 10.7-24 24s10.7 24 24 24l40.3 0c-.2-2.8-.3-5.6-.3-8.5L64 368l-40 0zm592 48c13.3 0 24-10.7 24-24s-10.7-24-24-24l-310.1 0c-6.7 16.3-14.2 32.3-22.3 48L616 416z"], - "stroopwafel": [512, 512, [], "f551", "M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM312.6 63.7c-6.2-6.2-16.4-6.2-22.6 0L256 97.6 222.1 63.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l33.9 33.9-45.3 45.3-56.6-56.6c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l56.6 56.6-45.3 45.3L86.3 199.4c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L97.6 256 63.7 289.9c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l33.9-33.9 45.3 45.3-56.6 56.6c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l56.6-56.6 45.3 45.3-33.9 33.9c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L256 414.4l33.9 33.9c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-33.9-33.9 45.3-45.3 56.6 56.6c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-56.6-56.6 45.3-45.3 33.9 33.9c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L414.4 256l33.9-33.9c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-33.9 33.9-45.3-45.3 56.6-56.6c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-56.6 56.6-45.3-45.3 33.9-33.9c6.2-6.2 6.2-16.4 0-22.6zM142.9 256l45.3-45.3L233.4 256l-45.3 45.3L142.9 256zm67.9 67.9L256 278.6l45.3 45.3L256 369.1l-45.3-45.3zM278.6 256l45.3-45.3L369.1 256l-45.3 45.3L278.6 256zm22.6-67.9L256 233.4l-45.3-45.3L256 142.9l45.3 45.3z"], - "bold": [384, 512, [], "f032", "M0 64C0 46.3 14.3 32 32 32l48 0 16 0 128 0c70.7 0 128 57.3 128 128c0 31.3-11.3 60.1-30 82.3c37.1 22.4 62 63.1 62 109.7c0 70.7-57.3 128-128 128L96 480l-16 0-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-160L48 96 32 96C14.3 96 0 81.7 0 64zM224 224c35.3 0 64-28.7 64-64s-28.7-64-64-64L112 96l0 128 112 0zM112 288l0 128 144 0c35.3 0 64-28.7 64-64s-28.7-64-64-64l-32 0-112 0z"], - "anchor-lock": [640, 512, [], "e4ad", "M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80L224 176c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 208-48 0c-53 0-96-43-96-96l0-6.1 7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7 0 6.1c0 88.4 71.6 160 160 160l80 0 80 0c8 0 15.9-.6 23.6-1.7c-4.8-9-7.6-19.3-7.6-30.3l0-33.3c-5.2 .9-10.5 1.3-16 1.3l-48 0 0-208 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-10.9 0zM528 240c17.7 0 32 14.3 32 32l0 48-64 0 0-48c0-17.7 14.3-32 32-32zm-80 32l0 48c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80z"], - "building-ngo": [384, 512, [], "e4d7", "M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 96 0c26.5 0 48-21.5 48-48l0-416c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM168 64l48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0 0 64 16 0 0-16c0-8.8 7.2-16 16-16s16 7.2 16 16l0 24c0 13.3-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24l0-88c0-8.8 7.2-16 16-16zM304 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16s16-7.2 16-16l0-32c0-8.8-7.2-16-16-16zm-48 16c0-26.5 21.5-48 48-48s48 21.5 48 48l0 32c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-32zM61.3 71.1l34.7 52L96 80c0-8.8 7.2-16 16-16s16 7.2 16 16l0 96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4L64 132.8 64 176c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4z"], - "manat-sign": [384, 512, [], "e1d5", "M192 32c-17.7 0-32 14.3-32 32l0 34.7C69.2 113.9 0 192.9 0 288L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-59.6 40.8-109.8 96-124l0 284c0 17.7 14.3 32 32 32s32-14.3 32-32l0-284c55.2 14.2 96 64.3 96 124l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-95.1-69.2-174.1-160-189.3L224 64c0-17.7-14.3-32-32-32z"], - "not-equal": [448, 512, [], "f53e", "M369.8 37.4c14.7 9.8 18.7 29.7 8.9 44.4L337.1 144l62.9 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-105.5 0-64 96L400 304c17.7 0 32 14.3 32 32s-14.3 32-32 32l-212.2 0-65.2 97.7c-9.8 14.7-29.7 18.7-44.4 8.9s-18.7-29.7-8.9-44.4L110.9 368 48 368c-17.7 0-32-14.3-32-32s14.3-32 32-32l105.5 0 64-96L48 208c-17.7 0-32-14.3-32-32s14.3-32 32-32l212.2 0 65.2-97.7c9.8-14.7 29.7-18.7 44.4-8.9z"], - "border-top-left": [448, 512, ["border-style"], "f853", "M0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-336c0-8.8 7.2-16 16-16l336 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 32C35.8 32 0 67.8 0 112L0 448zm160 0a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm192 0a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm-96 0a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm192 0a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM416 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm0 32a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm0-128a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"], - "map-location-dot": [576, 512, ["map-marked-alt"], "f5a0", "M408 120c0 54.6-73.1 151.9-105.2 192c-7.7 9.6-22 9.6-29.6 0C241.1 271.9 168 174.6 168 120C168 53.7 221.7 0 288 0s120 53.7 120 120zm8 80.4c3.5-6.9 6.7-13.8 9.6-20.6c.5-1.2 1-2.5 1.5-3.7l116-46.4C558.9 123.4 576 135 576 152l0 270.8c0 9.8-6 18.6-15.1 22.3L416 503l0-302.6zM137.6 138.3c2.4 14.1 7.2 28.3 12.8 41.5c2.9 6.8 6.1 13.7 9.6 20.6l0 251.4L32.9 502.7C17.1 509 0 497.4 0 480.4L0 209.6c0-9.8 6-18.6 15.1-22.3l122.6-49zM327.8 332c13.9-17.4 35.7-45.7 56.2-77l0 249.3L192 449.4 192 255c20.5 31.3 42.3 59.6 56.2 77c20.5 25.6 59.1 25.6 79.6 0zM288 152a40 40 0 1 0 0-80 40 40 0 1 0 0 80z"], - "jedi": [576, 512, [], "f669", "M246 315.7l-21.2-31.9c-2.1-3.2-1.7-7.4 1-10.1s6.9-3.1 10.1-1l29.5 19.7c2.1 1.4 4.9 0 5-2.6L279.7 8c.1-4.5 3.8-8 8.3-8s8.1 3.5 8.3 8l9.4 281.9c.1 2.5 2.9 3.9 5 2.6l29.5-19.7c3.2-2.1 7.4-1.7 10.1 1s3.1 6.9 1 10.1L330 315.7c-1.3 1.9-.2 4.5 2 4.9l37.6 7.5c3.7 .7 6.4 4 6.4 7.8s-2.7 7.1-6.4 7.8L332 351.4c-2.2 .4-3.3 3-2 4.9l21.2 31.9c2.1 3.2 1.7 7.4-1 10.1s-6.9 3.1-10.1 1l-26.3-17.6c-2.2-1.4-5.1 .2-5 2.8l2.1 61.5C370.6 435.2 416 382.9 416 320c0-37-15.7-70.4-40.8-93.7c-7-6.5-6.5-18.6 1-24.4C410.1 175.5 432 134.3 432 88c0-16.8-2.9-33-8.2-48c-4.6-13 10.2-30 21.4-22c53.5 38 92.7 94.8 107.8 160.7c.5 2.1-.2 4.3-1.7 5.9l-28.4 28.4c-4 4-1.2 10.9 4.5 10.9l26 0c3.4 0 6.2 2.6 6.3 6c.1 3.3 .2 6.6 .2 10c0 17.5-1.7 34.7-4.8 51.3c-.2 1.2-.9 2.4-1.7 3.3l-46.5 46.5c-4 4-1.2 10.9 4.5 10.9l14.6 0c4.6 0 7.7 4.8 5.7 9C487.2 450.5 394.8 512 288 512S88.8 450.5 44.3 361c-2.1-4.2 1-9 5.7-9l14.6 0c5.7 0 8.6-6.9 4.5-10.9L22.6 294.6c-.9-.9-1.5-2-1.7-3.3C17.7 274.7 16 257.5 16 240c0-3.3 .1-6.7 .2-10c.1-3.4 2.9-6 6.3-6l26 0c5.7 0 8.6-6.9 4.5-10.9L24.6 184.6c-1.5-1.5-2.2-3.8-1.7-5.9C38.1 112.8 77.3 56 130.8 18c11.3-8 26 8.9 21.4 22c-5.3 15-8.2 31.2-8.2 48c0 46.3 21.9 87.5 55.8 113.9c7.5 5.8 8 17.9 1 24.4C175.7 249.6 160 283 160 320c0 62.9 45.4 115.2 105.1 126l2.1-61.5c.1-2.6-2.8-4.2-5-2.8l-26.3 17.6c-3.2 2.1-7.4 1.7-10.1-1s-3.1-6.9-1-10.1L246 356.3c1.3-1.9 .2-4.5-2-4.9l-37.6-7.5c-3.7-.7-6.4-4-6.4-7.8s2.7-7.1 6.4-7.8l37.6-7.5c2.2-.4 3.3-3 2-4.9z"], - "square-poll-vertical": [448, 512, ["poll"], "f681", "M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 192c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32zm64-64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 192c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-192zM320 288c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32z"], - "mug-hot": [512, 512, [9749], "f7b6", "M88 0C74.7 0 64 10.7 64 24c0 38.9 23.4 59.4 39.1 73.1l1.1 1C120.5 112.3 128 119.9 128 136c0 13.3 10.7 24 24 24s24-10.7 24-24c0-38.9-23.4-59.4-39.1-73.1l-1.1-1C119.5 47.7 112 40.1 112 24c0-13.3-10.7-24-24-24zM32 192c-17.7 0-32 14.3-32 32L0 416c0 53 43 96 96 96l192 0c53 0 96-43 96-96l16 0c61.9 0 112-50.1 112-112s-50.1-112-112-112l-48 0L32 192zm352 64l16 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-16 0 0-96zM224 24c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 38.9 23.4 59.4 39.1 73.1l1.1 1C232.5 112.3 240 119.9 240 136c0 13.3 10.7 24 24 24s24-10.7 24-24c0-38.9-23.4-59.4-39.1-73.1l-1.1-1C231.5 47.7 224 40.1 224 24z"], - "car-battery": [512, 512, ["battery-car"], "f5df", "M80 96c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l96 0c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l16 0c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 160c0-35.3 28.7-64 64-64l16 0zm304 96c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 32-32 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l32 0 0 32c0 8.8 7.2 16 16 16s16-7.2 16-16l0-32 32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0 0-32zM80 240c0 8.8 7.2 16 16 16l96 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-96 0c-8.8 0-16 7.2-16 16z"], - "gift": [512, 512, [127873], "f06b", "M190.5 68.8L225.3 128l-1.3 0-72 0c-22.1 0-40-17.9-40-40s17.9-40 40-40l2.2 0c14.9 0 28.8 7.9 36.3 20.8zM64 88c0 14.4 3.5 28 9.6 40L32 128c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l448 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-41.6 0c6.1-12 9.6-25.6 9.6-40c0-48.6-39.4-88-88-88l-2.2 0c-31.9 0-61.5 16.9-77.7 44.4L256 85.5l-24.1-41C215.7 16.9 186.1 0 154.2 0L152 0C103.4 0 64 39.4 64 88zm336 0c0 22.1-17.9 40-40 40l-72 0-1.3 0 34.8-59.2C329.1 55.9 342.9 48 357.8 48l2.2 0c22.1 0 40 17.9 40 40zM32 288l0 176c0 26.5 21.5 48 48 48l144 0 0-224L32 288zM288 512l144 0c26.5 0 48-21.5 48-48l0-176-192 0 0 224z"], - "dice-two": [448, 512, [9857], "f528", "M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM352 352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 192a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"], - "chess-queen": [512, 512, [9819], "f445", "M256 0a56 56 0 1 1 0 112A56 56 0 1 1 256 0zM134.1 143.8c3.3-13 15-23.8 30.2-23.8c12.3 0 22.6 7.2 27.7 17c12 23.2 36.2 39 64 39s52-15.8 64-39c5.1-9.8 15.4-17 27.7-17c15.3 0 27 10.8 30.2 23.8c7 27.8 32.2 48.3 62.1 48.3c10.8 0 21-2.7 29.8-7.4c8.4-4.4 18.9-4.5 27.6 .9c13 8 17.1 25 9.2 38L399.7 400 384 400l-40.4 0-175.1 0L128 400l-15.7 0L5.4 223.6c-7.9-13-3.8-30 9.2-38c8.7-5.3 19.2-5.3 27.6-.9c8.9 4.7 19 7.4 29.8 7.4c29.9 0 55.1-20.5 62.1-48.3zM256 224s0 0 0 0s0 0 0 0s0 0 0 0zM112 432l288 0 41.4 41.4c4.2 4.2 6.6 10 6.6 16c0 12.5-10.1 22.6-22.6 22.6L86.6 512C74.1 512 64 501.9 64 489.4c0-6 2.4-11.8 6.6-16L112 432z"], - "glasses": [576, 512, [], "f530", "M118.6 80c-11.5 0-21.4 7.9-24 19.1L57 260.3c20.5-6.2 48.3-12.3 78.7-12.3c32.3 0 61.8 6.9 82.8 13.5c10.6 3.3 19.3 6.7 25.4 9.2c3.1 1.3 5.5 2.4 7.3 3.2c.9 .4 1.6 .7 2.1 1l.6 .3 .2 .1c0 0 .1 0 .1 0c0 0 0 0 0 0s0 0 0 0L247.9 288s0 0 0 0l6.3-12.7c5.8 2.9 10.4 7.3 13.5 12.7l40.6 0c3.1-5.3 7.7-9.8 13.5-12.7l6.3 12.7s0 0 0 0c-6.3-12.7-6.3-12.7-6.3-12.7s0 0 0 0s0 0 0 0c0 0 .1 0 .1 0l.2-.1 .6-.3c.5-.2 1.2-.6 2.1-1c1.8-.8 4.2-1.9 7.3-3.2c6.1-2.6 14.8-5.9 25.4-9.2c21-6.6 50.4-13.5 82.8-13.5c30.4 0 58.2 6.1 78.7 12.3L481.4 99.1c-2.6-11.2-12.6-19.1-24-19.1c-3.1 0-6.2 .6-9.2 1.8L416.9 94.3c-12.3 4.9-26.3-1.1-31.2-13.4s1.1-26.3 13.4-31.2l31.3-12.5c8.6-3.4 17.7-5.2 27-5.2c33.8 0 63.1 23.3 70.8 56.2l43.9 188c1.7 7.3 2.9 14.7 3.5 22.1c.3 1.9 .5 3.8 .5 5.7l0 6.7 0 41.3 0 16c0 61.9-50.1 112-112 112l-44.3 0c-59.4 0-108.5-46.4-111.8-105.8L306.6 352l-37.2 0-1.2 22.2C264.9 433.6 215.8 480 156.3 480L112 480C50.1 480 0 429.9 0 368l0-16 0-41.3L0 304c0-1.9 .2-3.8 .5-5.7c.6-7.4 1.8-14.8 3.5-22.1l43.9-188C55.5 55.3 84.8 32 118.6 32c9.2 0 18.4 1.8 27 5.2l31.3 12.5c12.3 4.9 18.3 18.9 13.4 31.2s-18.9 18.3-31.2 13.4L127.8 81.8c-2.9-1.2-6-1.8-9.2-1.8zM64 325.4L64 368c0 26.5 21.5 48 48 48l44.3 0c25.5 0 46.5-19.9 47.9-45.3l2.5-45.6c-2.3-.8-4.9-1.7-7.5-2.5c-17.2-5.4-39.9-10.5-63.6-10.5c-23.7 0-46.2 5.1-63.2 10.5c-3.1 1-5.9 1.9-8.5 2.9zM512 368l0-42.6c-2.6-.9-5.5-1.9-8.5-2.9c-17-5.4-39.5-10.5-63.2-10.5c-23.7 0-46.4 5.1-63.6 10.5c-2.7 .8-5.2 1.7-7.5 2.5l2.5 45.6c1.4 25.4 22.5 45.3 47.9 45.3l44.3 0c26.5 0 48-21.5 48-48z"], - "chess-board": [448, 512, [], "f43c", "M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 64l0 64 64 0 0-64 64 0 0 64 64 0 0-64 64 0 0 64-64 0 0 64 64 0 0 64-64 0 0 64 64 0 0 64-64 0 0-64-64 0 0 64-64 0 0-64-64 0 0 64-64 0 0-64 64 0 0-64-64 0 0-64 64 0 0-64-64 0 0-64 64 0zm64 128l64 0 0-64-64 0 0 64zm0 64l0-64-64 0 0 64 64 0zm64 0l-64 0 0 64 64 0 0-64zm0 0l64 0 0-64-64 0 0 64z"], - "building-circle-check": [640, 512, [], "e4d2", "M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 96 0c15.1 0 28.5-6.9 37.3-17.8C340.4 462.2 320 417.5 320 368c0-54.7 24.9-103.5 64-135.8L384 48c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM80 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z"], - "person-chalkboard": [640, 512, [], "e53d", "M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8 384l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-288 56 0 64 0 16 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0 0-64 192 0 0 192-192 0 0-32-64 0 0 48c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-224c0-26.5-21.5-48-48-48L368 0c-26.5 0-48 21.5-48 48l0 80-76.9 0-65.9 0c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9 120 480c0 17.7 14.3 32 32 32s32-14.3 32-32z"], - "mars-stroke-right": [640, 512, [9897, "mars-stroke-h"], "f22b", "M208 368a112 112 0 1 0 0-224 112 112 0 1 0 0 224zm174.4-88C370.7 365.8 297.1 432 208 432c-97.2 0-176-78.8-176-176s78.8-176 176-176c89.1 0 162.7 66.2 174.4 152l33.6 0 0-56c0-13.3 10.7-24 24-24s24 10.7 24 24l0 56 32 0 0-56c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l80 80c9.4 9.4 9.4 24.6 0 33.9l-80 80c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2l0-56-32 0 0 56c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-56-33.6 0z"], - "hand-back-fist": [448, 512, ["hand-rock"], "f255", "M144 0C117.5 0 96 21.5 96 48l0 48 0 28.5L96 176c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-26.7-9 7.5C40.4 169 32 187 32 206L32 244c0 38 16.9 74 46.1 98.3L128 384l0 96c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-105.3c46.9-19 80-65 80-118.7l0-80 0-16 0-16c0-26.5-21.5-48-48-48c-12.4 0-23.6 4.7-32.1 12.3C350 83.5 329.3 64 304 64c-12.4 0-23.6 4.7-32.1 12.3C270 51.5 249.3 32 224 32c-12.4 0-23.6 4.7-32.1 12.3C190 19.5 169.3 0 144 0z"], - "square-caret-up": [448, 512, ["caret-square-up"], "f151", "M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM224 160c6.7 0 13 2.8 17.6 7.7l104 112c6.5 7 8.2 17.2 4.4 25.9s-12.5 14.4-22 14.4l-208 0c-9.5 0-18.2-5.7-22-14.4s-2.1-18.9 4.4-25.9l104-112c4.5-4.9 10.9-7.7 17.6-7.7z"], - "cloud-showers-water": [576, 512, [], "e4e4", "M224 0c38.6 0 71.9 22.8 87.2 55.7C325.7 41.1 345.8 32 368 32c38.7 0 71 27.5 78.4 64l1.6 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-320 0c-35.3 0-64-28.7-64-64s28.7-64 64-64c0-53 43-96 96-96zM140.6 292.3l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15.1-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2s15.1 21.6 8.2 32.9zm327.8-32.9c11.4 6.8 15 21.6 8.2 32.9l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2zM252.6 292.3l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15.1-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2s15.1 21.6 8.2 32.9zm103.8-32.9c11.4 6.8 15 21.6 8.2 32.9l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15.1-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2zM306.5 421.9C329 437.4 356.5 448 384 448c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 501.7 417 512 384 512c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 437.2 165.1 448 192 448c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z"], - "chart-bar": [512, 512, ["bar-chart"], "f080", "M32 32c17.7 0 32 14.3 32 32l0 336c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 480c-44.2 0-80-35.8-80-80L0 64C0 46.3 14.3 32 32 32zm96 96c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 64l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 96l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z"], - "hands-bubbles": [576, 512, ["hands-wash"], "e05e", "M416 64a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm96 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM160 464a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM32 160l.1 72.6c.1 52.2 24 101 64 133.1c-.1-1.9-.1-3.8-.1-5.7l0-8c0-71.8 37-138.6 97.9-176.7l60.2-37.6c8.6-5.4 17.9-8.4 27.3-9.4l45.9-79.5c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8l-78 135.1c-3.3 5.7-10.7 7.7-16.4 4.4s-7.7-10.7-4.4-16.4l62-107.4c6.6-11.5 2.7-26.2-8.8-32.8S214 5 207.4 16.5l-68 117.8s0 0 0 0s0 0 0 0l-43.3 75L96 160c0-17.7-14.4-32-32-32s-32 14.4-32 32zM332.1 88.5L307.5 131c13.9 4.5 26.4 13.7 34.7 27c.9 1.5 1.8 2.9 2.5 4.4l28.9-50c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8zm46.4 63.7l-26.8 46.4c-.6 6-2.1 11.8-4.3 17.4l4.7 0 13.3 0s0 0 0 0l31.8 0 23-39.8c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8zM315.1 175c-9.4-15-29.1-19.5-44.1-10.2l-60.2 37.6C159.3 234.7 128 291.2 128 352l0 8c0 8.9 .8 17.6 2.2 26.1c35.4 8.2 61.8 40 61.8 77.9c0 6.3-.7 12.5-2.1 18.4C215.1 501 246.3 512 280 512l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-92 0c-6.6 0-12-5.4-12-12s5.4-12 12-12l124 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-124 0c-6.6 0-12-5.4-12-12s5.4-12 12-12l156 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-156 0c-6.6 0-12-5.4-12-12s5.4-12 12-12l124 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-136 0s0 0 0 0s0 0 0 0l-93.2 0L305 219.1c15-9.4 19.5-29.1 10.2-44.1z"], - "less-than-equal": [448, 512, [], "f537", "M395.9 93.7c16.4-6.6 24.4-25.2 17.8-41.6s-25.2-24.4-41.6-17.8l-320 128C40 167.1 32 178.9 32 192s8 24.9 20.1 29.7l320 128c16.4 6.6 35-1.4 41.6-17.8s-1.4-35-17.8-41.6L150.2 192 395.9 93.7zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416z"], - "train": [448, 512, [128646], "f238", "M96 0C43 0 0 43 0 96L0 352c0 48 35.2 87.7 81.1 94.9l-46 46C28.1 499.9 33.1 512 43 512l39.7 0c8.5 0 16.6-3.4 22.6-9.4L160 448l128 0 54.6 54.6c6 6 14.1 9.4 22.6 9.4l39.7 0c10 0 15-12.1 7.9-19.1l-46-46c46-7.1 81.1-46.9 81.1-94.9l0-256c0-53-43-96-96-96L96 0zM64 96c0-17.7 14.3-32 32-32l256 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32L96 224c-17.7 0-32-14.3-32-32l0-96zM224 288a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"], - "eye-low-vision": [640, 512, ["low-vision"], "f2a8", "M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zM223 149.5c48.6-44.3 123-50.8 179.3-11.7c60.8 42.4 78.9 123.2 44.2 186.9L408 294.5c8.4-19.3 10.6-41.4 4.8-63.3c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3c0 10.2-2.4 19.8-6.6 28.3L223 149.5zm223.1 298L83.1 161.5c-11 14.4-20.5 28.7-28.4 42.2l339 265.7c18.7-5.5 36.2-13 52.6-21.8zM34.5 268.3c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c3.1 0 6.1-.1 9.2-.2L33.1 247.8c-1.8 6.8-1.3 14 1.4 20.5z"], - "crow": [640, 512, [], "f520", "M456 0c-48.6 0-88 39.4-88 88l0 29.2L12.5 390.6c-14 10.8-16.6 30.9-5.9 44.9s30.9 16.6 44.9 5.9L126.1 384l133.1 0 46.6 113.1c5 12.3 19.1 18.1 31.3 13.1s18.1-19.1 13.1-31.3L311.1 384l40.9 0c1.1 0 2.1 0 3.2 0l46.6 113.2c5 12.3 19.1 18.1 31.3 13.1s18.1-19.1 13.1-31.3l-42-102C484.9 354.1 544 280 544 192l0-64 0-8 80.5-20.1c8.6-2.1 13.8-10.8 11.6-19.4C629 52 603.4 32 574 32l-50.1 0C507.7 12.5 483.3 0 456 0zm0 64a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"], - "sailboat": [576, 512, [], "e445", "M256 16c0-7 4.5-13.2 11.2-15.3s13.9 .4 17.9 6.1l224 320c3.4 4.9 3.8 11.3 1.1 16.6s-8.2 8.6-14.2 8.6l-224 0c-8.8 0-16-7.2-16-16l0-320zM212.1 96.5c7 1.9 11.9 8.2 11.9 15.5l0 224c0 8.8-7.2 16-16 16L80 352c-5.7 0-11-3-13.8-8s-2.9-11-.1-16l128-224c3.6-6.3 11-9.4 18-7.5zM5.7 404.3C2.8 394.1 10.5 384 21.1 384l533.8 0c10.6 0 18.3 10.1 15.4 20.3l-4 14.3C550.7 473.9 500.4 512 443 512L133 512C75.6 512 25.3 473.9 9.7 418.7l-4-14.3z"], - "window-restore": [512, 512, [], "f2d2", "M432 64L208 64c-8.8 0-16 7.2-16 16l0 16-64 0 0-16c0-44.2 35.8-80 80-80L432 0c44.2 0 80 35.8 80 80l0 224c0 44.2-35.8 80-80 80l-16 0 0-64 16 0c8.8 0 16-7.2 16-16l0-224c0-8.8-7.2-16-16-16zM0 192c0-35.3 28.7-64 64-64l256 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192zm64 32c0 17.7 14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 192c-17.7 0-32 14.3-32 32z"], - "square-plus": [448, 512, [61846, "plus-square"], "f0fe", "M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM200 344l0-64-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24z"], - "torii-gate": [512, 512, [9961], "f6a1", "M0 80c0 26.5 21.5 48 48 48l16 0 0 64 64 0 0-64 96 0 0 64 64 0 0-64 96 0 0 64 64 0 0-64 16 0c26.5 0 48-21.5 48-48l0-66.6C512 6 506 0 498.6 0c-1.7 0-3.4 .3-5 1l-49 19.6C425.7 28.1 405.5 32 385.2 32L126.8 32c-20.4 0-40.5-3.9-59.4-11.4L18.4 1c-1.6-.6-3.3-1-5-1C6 0 0 6 0 13.4L0 80zM64 288l0 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-192 256 0 0 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-192 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0z"], - "frog": [576, 512, [], "f52e", "M368 32c41.7 0 75.9 31.8 79.7 72.5l85.6 26.3c25.4 7.8 42.8 31.3 42.8 57.9c0 21.8-11.7 41.9-30.7 52.7L400.8 323.5 493.3 416l50.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-8.5 0-16.6-3.4-22.6-9.4L346.9 360.2c11.7-36 3.2-77.1-25.4-105.7c-40.6-40.6-106.3-40.6-146.9-.1L101 324.4c-6.4 6.1-6.7 16.2-.6 22.6s16.2 6.6 22.6 .6l73.8-70.2 .1-.1 .1-.1c3.5-3.5 7.3-6.6 11.3-9.2c27.9-18.5 65.9-15.4 90.5 9.2c24.7 24.7 27.7 62.9 9 90.9c-2.6 3.8-5.6 7.5-9 10.9L261.8 416l90.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 480c-35.3 0-64-28.7-64-64C0 249.6 127 112.9 289.3 97.5C296.2 60.2 328.8 32 368 32zm0 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"], - "bucket": [448, 512, [], "e4cf", "M96 152l0 8-48 0 0-8C48 68.1 116.1 0 200 0l48 0c83.9 0 152 68.1 152 152l0 8-48 0 0-8c0-57.4-46.6-104-104-104l-48 0C142.6 48 96 94.6 96 152zM0 224c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-5.1 0L388.5 469c-2.6 24.4-23.2 43-47.7 43l-233.6 0c-24.6 0-45.2-18.5-47.7-43L37.1 256 32 256c-17.7 0-32-14.3-32-32z"], - "image": [512, 512, [], "f03e", "M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM323.8 202.5c-4.5-6.6-11.9-10.5-19.8-10.5s-15.4 3.9-19.8 10.5l-87 127.6L170.7 297c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6l96 0 32 0 208 0c8.9 0 17.1-4.9 21.2-12.8s3.6-17.4-1.4-24.7l-120-176zM112 192a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"], - "microphone": [384, 512, [], "f130", "M192 0C139 0 96 43 96 96l0 160c0 53 43 96 96 96s96-43 96-96l0-160c0-53-43-96-96-96zM64 216c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 89.1 66.2 162.7 152 174.4l0 33.6-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-33.6c85.8-11.7 152-85.3 152-174.4l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 70.7-57.3 128-128 128s-128-57.3-128-128l0-40z"], - "cow": [640, 512, [128004], "f6c8", "M96 224l0 32 0 160c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-88.2c9.9 6.6 20.6 12 32 16.1l0 24.2c0 8.8 7.2 16 16 16s16-7.2 16-16l0-16.9c5.3 .6 10.6 .9 16 .9s10.7-.3 16-.9l0 16.9c0 8.8 7.2 16 16 16s16-7.2 16-16l0-24.2c11.4-4 22.1-9.4 32-16.1l0 88.2c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-160 32 32 0 49.5c0 9.5 2.8 18.7 8.1 26.6L530 427c8.8 13.1 23.5 21 39.3 21c22.5 0 41.9-15.9 46.3-38l20.3-101.6c2.6-13-.3-26.5-8-37.3l-3.9-5.5 0-81.6c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 14.4-52.9-74.1C496 86.5 452.4 64 405.9 64L272 64l-16 0-64 0-48 0C77.7 64 24 117.7 24 184l0 54C9.4 249.8 0 267.8 0 288l0 17.6c0 8 6.4 14.4 14.4 14.4C46.2 320 72 294.2 72 262.4l0-6.4 0-32 0-40c0-24.3 12.1-45.8 30.5-58.9C98.3 135.9 96 147.7 96 160l0 64zM560 336a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM166.6 166.6c-4.2-4.2-6.6-10-6.6-16c0-12.5 10.1-22.6 22.6-22.6l178.7 0c12.5 0 22.6 10.1 22.6 22.6c0 6-2.4 11.8-6.6 16l-23.4 23.4C332.2 211.8 302.7 224 272 224s-60.2-12.2-81.9-33.9l-23.4-23.4z"], - "caret-up": [320, 512, [], "f0d8", "M182.6 137.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l256 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-128-128z"], - "screwdriver": [512, 512, [129691], "f54a", "M465 7c-8.5-8.5-22-9.4-31.6-2.1l-104 80c-5.9 4.5-9.4 11.6-9.4 19l0 54.1-85.6 85.6c6.7 4.2 13 9.3 18.8 15.1s10.9 12.2 15.1 18.8L353.9 192l54.1 0c7.5 0 14.5-3.5 19-9.4l80-104c7.4-9.6 6.5-23.1-2.1-31.6L465 7zM121.4 281.4l-112 112c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0l112-112c30.2-30.2 30.2-79.1 0-109.3s-79.1-30.2-109.3 0z"], - "folder-closed": [512, 512, [], "e185", "M448 480L64 480c-35.3 0-64-28.7-64-64L0 192l512 0 0 224c0 35.3-28.7 64-64 64zm64-320L0 160 0 96C0 60.7 28.7 32 64 32l128 0c20.1 0 39.1 9.5 51.2 25.6l19.2 25.6c6 8.1 15.5 12.8 25.6 12.8l160 0c35.3 0 64 28.7 64 64z"], - "house-tsunami": [576, 512, [], "e515", "M80.8 136.5C104.9 93.8 152.6 64 209 64c16.9 0 33.1 2.7 48.2 7.7c16.8 5.5 34.9-3.6 40.4-20.4s-3.6-34.9-20.4-40.4C255.8 3.8 232.8 0 209 0C95.2 0 0 88 0 200c0 91.6 53.5 172.1 142.2 194.1c13.4 3.8 27.5 5.9 42.2 5.9c.7 0 1.4 0 2.1-.1c1.8 0 3.7 .1 5.5 .1c0 0 0 0 0 0c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.5-27.3-10.1-39.2-1.7c0 0 0 0 0 0C439.4 325.2 410.9 336 384 336c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0c-22.4 15.5-49.9 26.1-77.4 26.1c0 0-.1 0-.1 0c-12.4 0-24-1.5-34.9-4.3C121.6 320.2 96 287 96 248c0-48.5 39.5-88 88.4-88c13.5 0 26.1 3 37.5 8.3c16 7.5 35.1 .6 42.5-15.5s.6-35.1-15.5-42.5C229.3 101.1 207.4 96 184.4 96c-40 0-76.4 15.4-103.6 40.5zm252-18.1c-8.1 6-12.8 15.5-12.8 25.6l0 121c1.6 1 3.3 2 4.8 3.1c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.3 78.1 3.4c10.6 8.8 24.2 15.6 37.3 18.6c5.8 1.4 11.2 3.4 16.2 6.2c.7-2.7 1.1-5.5 1.1-8.4l-.4-144c0-10-4.7-19.4-12.7-25.5l-95.5-72c-11.4-8.6-27.1-8.6-38.5 0l-96 72zM384 448c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1c0 0 0 0 0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7c0 0 0 0 0 0C439.4 437.2 410.9 448 384 448z"], - "square-nfi": [448, 512, [], "e576", "M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm75.7 64.6C68.8 162.5 64 168.8 64 176l0 160c0 8.8 7.2 16 16 16s16-7.2 16-16l0-102.2 66.3 110.5c3.7 6.2 11.1 9.1 18 7.2s11.7-8.2 11.7-15.4l0-160c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 102.2L93.7 167.8c-3.7-6.2-11.1-9.1-18-7.2zM224 176l0 64 0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80 48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0 0-32 48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-64 0c-8.8 0-16 7.2-16 16zm160 0c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 160c0 8.8 7.2 16 16 16s16-7.2 16-16l0-160z"], - "arrow-up-from-ground-water": [576, 512, [], "e4b5", "M288 352c17.7 0 32-14.3 32-32l0-210.7 25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-80-80c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L256 109.3 256 320c0 17.7 14.3 32 32 32zm-18.5 69.9C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1c0 0 0 0 0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7c0 0 0 0 0 0C439.4 437.2 410.9 448 384 448c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0zM192 192L48 192c-26.5 0-48 21.5-48 48L0 425c5.3-3.1 11.2-5.4 17.5-6.9c13.1-3.1 26.7-9.8 37.3-18.6c22.2-18.7 54.3-20.1 78.1-3.4c18 12.4 40.1 20.3 59.1 20.3L192 192zm384 48c0-26.5-21.5-48-48-48l-144 0 0 224.5s0 0 0 0c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.4 78.1 3.4c10.6 8.8 24.2 15.6 37.3 18.6c6.3 1.5 12.1 3.8 17.5 6.9l0-185z"], - "martini-glass": [512, 512, [127864, "glass-martini-alt"], "f57b", "M32 0C19.1 0 7.4 7.8 2.4 19.8s-2.2 25.7 6.9 34.9L224 269.3 224 448l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-178.7L502.6 54.6c9.2-9.2 11.9-22.9 6.9-34.9S492.9 0 480 0L32 0zM173.3 128l-64-64 293.5 0-64 64-165.5 0z"], - "square-binary": [448, 512, [], "e69b", "M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm144 4c-24.3 0-44 19.7-44 44l0 48c0 24.3 19.7 44 44 44l32 0c24.3 0 44-19.7 44-44l0-48c0-24.3-19.7-44-44-44l-32 0zm-4 44c0-2.2 1.8-4 4-4l32 0c2.2 0 4 1.8 4 4l0 48c0 2.2-1.8 4-4 4l-32 0c-2.2 0-4-1.8-4-4l0-48zm140-44c-11 0-20 9-20 20c0 9.7 6.9 17.7 16 19.6l0 76.4c0 11 9 20 20 20s20-9 20-20l0-96c0-11-9-20-20-20l-16 0zM132 296c0 9.7 6.9 17.7 16 19.6l0 76.4c0 11 9 20 20 20s20-9 20-20l0-96c0-11-9-20-20-20l-16 0c-11 0-20 9-20 20zm96 24l0 48c0 24.3 19.7 44 44 44l32 0c24.3 0 44-19.7 44-44l0-48c0-24.3-19.7-44-44-44l-32 0c-24.3 0-44 19.7-44 44zm44-4l32 0c2.2 0 4 1.8 4 4l0 48c0 2.2-1.8 4-4 4l-32 0c-2.2 0-4-1.8-4-4l0-48c0-2.2 1.8-4 4-4z"], - "rotate-left": [512, 512, ["rotate-back", "rotate-backward", "undo-alt"], "f2ea", "M48.5 224L40 224c-13.3 0-24-10.7-24-24L16 72c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2L98.6 96.6c87.6-86.5 228.7-86.2 315.8 1c87.5 87.5 87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3c-62.2-62.2-162.7-62.5-225.3-1L185 183c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8L48.5 224z"], - "table-columns": [512, 512, ["columns"], "f0db", "M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm64 64l0 256 160 0 0-256L64 160zm384 0l-160 0 0 256 160 0 0-256z"], - "lemon": [448, 512, [127819], "f094", "M448 96c0-35.3-28.7-64-64-64c-6.6 0-13 1-19 2.9c-22.5 7-48.1 14.9-71 9c-75.2-19.1-156.4 11-213.7 68.3S-7.2 250.8 11.9 326c5.8 22.9-2 48.4-9 71C1 403 0 409.4 0 416c0 35.3 28.7 64 64 64c6.6 0 13-1 19.1-2.9c22.5-7 48.1-14.9 71-9c75.2 19.1 156.4-11 213.7-68.3s87.5-138.5 68.3-213.7c-5.8-22.9 2-48.4 9-71c1.9-6 2.9-12.4 2.9-19.1zM212.5 127.4c-54.6 16-101.1 62.5-117.1 117.1C92.9 253 84 257.8 75.5 255.4S62.2 244 64.6 235.5c19.1-65.1 73.7-119.8 138.9-138.9c8.5-2.5 17.4 2.4 19.9 10.9s-2.4 17.4-10.9 19.9z"], - "head-side-mask": [576, 512, [], "e063", "M32 224.2c0-22.2 3.2-43.6 9.2-63.9L262.2 321c-4 9.5-6.2 20-6.2 31l0 160-128 0c-17.7 0-32-14.3-32-32l0-72.7c0-16.7-6.9-32.5-17.1-45.8C48.6 322.4 32 274.1 32 224.2zm248.3 70.4L53 129.3C88.7 53 166.2 0 256 0l24 0c95.2 0 181.2 69.3 197.3 160.2c2.3 13 6.8 25.7 15.1 36l42 52.6c5.4 6.7 8.6 14.8 9.4 23.2L336 272c-21.7 0-41.3 8.6-55.7 22.6zM336 304l198 0s0 0 0 0l10 0-19.7 64L368 368c-8.8 0-16 7.2-16 16s7.2 16 16 16l146.5 0-9.8 32L368 432c-8.8 0-16 7.2-16 16s7.2 16 16 16l126.8 0-.9 2.8c-8.3 26.9-33.1 45.2-61.2 45.2L288 512l0-160c0-14 6-26.7 15.6-35.4c0 0 0 0 0 0c8.5-7.8 19.9-12.6 32.4-12.6zm48-80a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"], - "handshake": [640, 512, [], "f2b5", "M323.4 85.2l-96.8 78.4c-16.1 13-19.2 36.4-7 53.1c12.9 17.8 38 21.3 55.3 7.8l99.3-77.2c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L512 316.8 512 128l-.7 0-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2zm22.8 124.4l-51.7 40.2C263 274.4 217.3 268 193.7 235.6c-22.2-30.5-16.6-73.1 12.7-96.8l83.2-67.3c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-72 48 0 224 28.2 0 91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c4.5-4.9 7.8-10.6 9.9-16.5c19.4 13 45.8 10.3 62.1-7.5c17.9-19.5 16.6-49.9-2.9-67.8l-134.2-123zM16 128c-8.8 0-16 7.2-16 16L0 352c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-224-80 0zM48 320a16 16 0 1 1 0 32 16 16 0 1 1 0-32zM544 128l0 224c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-208c0-8.8-7.2-16-16-16l-80 0zm32 208a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z"], - "gem": [512, 512, [128142], "f3a5", "M116.7 33.8c4.5-6.1 11.7-9.8 19.3-9.8l240 0c7.6 0 14.8 3.6 19.3 9.8l112 152c6.8 9.2 6.1 21.9-1.5 30.4l-232 256c-4.5 5-11 7.9-17.8 7.9s-13.2-2.9-17.8-7.9l-232-256c-7.7-8.5-8.3-21.2-1.5-30.4l112-152zm38.5 39.8c-3.3 2.5-4.2 7-2.1 10.5l57.4 95.6L63.3 192c-4.1 .3-7.3 3.8-7.3 8s3.2 7.6 7.3 8l192 16c.4 0 .9 0 1.3 0l192-16c4.1-.3 7.3-3.8 7.3-8s-3.2-7.6-7.3-8L301.5 179.8l57.4-95.6c2.1-3.5 1.2-8.1-2.1-10.5s-7.9-2-10.7 1L256 172.2 165.9 74.6c-2.8-3-7.4-3.4-10.7-1z"], - "dolly": [576, 512, ["dolly-box"], "f472", "M0 32C0 14.3 14.3 0 32 0l72.9 0c27.5 0 52 17.6 60.7 43.8L257.7 320c30.1 .5 56.8 14.9 74 37l202.1-67.4c16.8-5.6 34.9 3.5 40.5 20.2s-3.5 34.9-20.2 40.5L352 417.7c-.9 52.2-43.5 94.3-96 94.3c-53 0-96-43-96-96c0-30.8 14.5-58.2 37-75.8L104.9 64 32 64C14.3 64 0 49.7 0 32zM244.8 134.5c-5.5-16.8 3.7-34.9 20.5-40.3L311 79.4l19.8 60.9 60.9-19.8L371.8 59.6l45.7-14.8c16.8-5.5 34.9 3.7 40.3 20.5l49.4 152.2c5.5 16.8-3.7 34.9-20.5 40.3L334.5 307.2c-16.8 5.5-34.9-3.7-40.3-20.5L244.8 134.5z"], - "smoking": [640, 512, [128684], "f48d", "M448 32l0 11c0 38.2 15.2 74.8 42.2 101.8l21 21c21 21 32.8 49.5 32.8 79.2l0 11c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-11c0-12.7-5.1-24.9-14.1-33.9l-21-21C405.9 151.1 384 98.1 384 43l0-11c0-17.7 14.3-32 32-32s32 14.3 32 32zM576 256l0-11c0-38.2-15.2-74.8-42.2-101.8l-21-21c-21-21-32.8-49.5-32.8-79.2l0-11c0-17.7 14.3-32 32-32s32 14.3 32 32l0 11c0 12.7 5.1 24.9 14.1 33.9l21 21c39 39 60.9 91.9 60.9 147.1l0 11c0 17.7-14.3 32-32 32s-32-14.3-32-32zM0 416c0-35.3 28.7-64 64-64l352 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32L64 512c-35.3 0-64-28.7-64-64l0-32zm224 0l0 32 160 0 0-32-160 0zm288-64c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32z"], - "minimize": [512, 512, ["compress-arrows-alt"], "f78c", "M456 224l-144 0c-13.3 0-24-10.7-24-24l0-144c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l40 40L442.3 5.7C446 2 450.9 0 456 0s10 2 13.7 5.7l36.7 36.7C510 46 512 50.9 512 56s-2 10-5.7 13.7L433 143l40 40c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8zm0 64c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-40 40 73.4 73.4c3.6 3.6 5.7 8.5 5.7 13.7s-2 10-5.7 13.7l-36.7 36.7C466 510 461.1 512 456 512s-10-2-13.7-5.7L369 433l-40 40c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2l0-144c0-13.3 10.7-24 24-24l144 0zm-256 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-40-40L69.7 506.3C66 510 61.1 512 56 512s-10-2-13.7-5.7L5.7 469.7C2 466 0 461.1 0 456s2-10 5.7-13.7L79 369 39 329c-6.9-6.9-8.9-17.2-5.2-26.2s12.5-14.8 22.2-14.8l144 0zM56 224c-9.7 0-18.5-5.8-22.2-14.8s-1.7-19.3 5.2-26.2l40-40L5.7 69.7C2 66 0 61.1 0 56s2-10 5.7-13.7L42.3 5.7C46 2 50.9 0 56 0s10 2 13.7 5.7L143 79l40-40c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2l0 144c0 13.3-10.7 24-24 24L56 224z"], - "monument": [384, 512, [], "f5a6", "M180.7 4.7c6.2-6.2 16.4-6.2 22.6 0l80 80c2.5 2.5 4.1 5.8 4.6 9.3l40.2 322L55.9 416 96.1 94c.4-3.5 2-6.8 4.6-9.3l80-80zM152 272c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0zM32 448l320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32z"], - "snowplow": [640, 512, [], "f7d2", "M298.9 64l68.6 160L256 224l-64-64 0-96 106.9 0zM445.1 242.7l-87.4-204C347.6 15.3 324.5 0 298.9 0L176 0c-26.5 0-48 21.5-48 48l0 112-32 0c-17.7 0-32 14.3-32 32l0 106.8C26.2 316.8 0 355.3 0 400c0 61.9 50.1 112 112 112l256 0c61.9 0 112-50.1 112-112c0-17.2-3.9-33.5-10.8-48l42.8 0 0 50.7c0 17 6.7 33.3 18.7 45.3l54.6 54.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L576 402.7l0-82.7 0-84.8L633 164c11-13.8 8.8-33.9-5-45s-33.9-8.8-45 5l-57 71.2c-9.1 11.3-14 25.4-14 40l0 52.8-64 0 0-31.3c.1-2.4-.2-4.8-.6-7.1s-1.2-4.7-2.2-6.8zM368 352c26.5 0 48 21.5 48 48s-21.5 48-48 48l-256 0c-26.5 0-48-21.5-48-48s21.5-48 48-48l256 0zM144 400a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm216 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm-56-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM200 424a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"], - "angles-right": [512, 512, [187, "angle-double-right"], "f101", "M470.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 256 265.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160zm-352 160l160-160c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L210.7 256 73.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z"], - "cannabis": [512, 512, [], "f55f", "M256 0c5.3 0 10.3 2.7 13.3 7.1c15.8 23.5 36.7 63.7 49.2 109c7.2 26.4 11.8 55.2 10.4 84c11.5-8.8 23.7-16.7 35.8-23.6c41-23.3 84.4-36.9 112.2-42.5c5.2-1 10.7 .6 14.4 4.4s5.4 9.2 4.4 14.5c-5.6 27.7-19.3 70.9-42.7 111.7c-9.1 15.9-19.9 31.7-32.4 46.3c27.8 6.6 52.4 17.3 67.2 25.5c5.1 2.8 8.2 8.2 8.2 14s-3.2 11.2-8.2 14c-15.2 8.4-40.9 19.5-69.8 26.1c-20.2 4.6-42.9 7.2-65.2 4.6l8.3 33.1c1.5 6.1-.6 12.4-5.5 16.4s-11.6 4.6-17.2 1.9L280 417.2l0 70.8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-70.8-58.5 29.1c-5.6 2.8-12.3 2.1-17.2-1.9s-7-10.3-5.5-16.4l8.3-33.1c-22.2 2.6-45 0-65.2-4.6c-28.9-6.6-54.6-17.6-69.8-26.1c-5.1-2.8-8.2-8.2-8.2-14s3.2-11.2 8.2-14c14.8-8.2 39.4-18.8 67.2-25.5C78.9 296.3 68.1 280.5 59 264.6c-23.4-40.8-37.1-84-42.7-111.7c-1.1-5.2 .6-10.7 4.4-14.5s9.2-5.4 14.4-4.4c27.9 5.5 71.2 19.2 112.2 42.5c12.1 6.9 24.3 14.7 35.8 23.6c-1.4-28.7 3.1-57.6 10.4-84c12.5-45.3 33.4-85.5 49.2-109c3-4.4 8-7.1 13.3-7.1z"], - "circle-play": [512, 512, [61469, "play-circle"], "f144", "M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c-7.6 4.2-12.3 12.3-12.3 20.9l0 176c0 8.7 4.7 16.7 12.3 20.9s16.8 4.1 24.3-.5l144-88c7.1-4.4 11.5-12.1 11.5-20.5s-4.4-16.1-11.5-20.5l-144-88c-7.4-4.5-16.7-4.7-24.3-.5z"], - "tablets": [640, 512, [], "f490", "M614.3 247c-5.2 7.9-16.2 8.5-22.9 1.8L391.2 48.6c-6.7-6.7-6.2-17.8 1.8-22.9C418.1 9.4 447.9 0 480 0c88.4 0 160 71.6 160 160c0 32.1-9.4 61.9-25.7 87zM567 294.3c-25 16.3-54.9 25.7-87 25.7c-88.4 0-160-71.6-160-160c0-32.1 9.4-61.9 25.7-87c5.2-7.9 16.2-8.5 22.9-1.8L568.8 271.4c6.7 6.7 6.2 17.8-1.8 22.9zM301.5 368c9.5 0 16.9 8.2 15 17.5C301.1 457.8 236.9 512 160 512S18.9 457.8 3.5 385.5c-2-9.3 5.5-17.5 15-17.5l283.1 0zm0-32L18.5 336c-9.5 0-16.9-8.2-15-17.5C18.9 246.2 83.1 192 160 192s141.1 54.2 156.5 126.5c2 9.3-5.5 17.5-15 17.5z"], - "ethernet": [512, 512, [], "f796", "M0 224L0 416c0 17.7 14.3 32 32 32l64 0 0-112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 112 64 0 0-112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 112 64 0 0-112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 112 64 0 0-112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 112 64 0c17.7 0 32-14.3 32-32l0-192c0-17.7-14.3-32-32-32l-32 0 0-32c0-17.7-14.3-32-32-32l-32 0 0-32c0-17.7-14.3-32-32-32L160 64c-17.7 0-32 14.3-32 32l0 32-32 0c-17.7 0-32 14.3-32 32l0 32-32 0c-17.7 0-32 14.3-32 32z"], - "euro-sign": [320, 512, [8364, "eur", "euro"], "f153", "M48.1 240c-.1 2.7-.1 5.3-.1 8l0 16c0 2.7 0 5.3 .1 8L32 272c-17.7 0-32 14.3-32 32s14.3 32 32 32l28.3 0C89.9 419.9 170 480 264 480l24 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-24 0c-57.9 0-108.2-32.4-133.9-80L256 336c17.7 0 32-14.3 32-32s-14.3-32-32-32l-143.8 0c-.1-2.6-.2-5.3-.2-8l0-16c0-2.7 .1-5.4 .2-8L256 240c17.7 0 32-14.3 32-32s-14.3-32-32-32l-125.9 0c25.7-47.6 76-80 133.9-80l24 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-24 0C170 32 89.9 92.1 60.3 176L32 176c-17.7 0-32 14.3-32 32s14.3 32 32 32l16.1 0z"], - "chair": [448, 512, [129681], "f6c0", "M248 48l0 208 48 0 0-197.3c23.9 13.8 40 39.7 40 69.3l0 128 48 0 0-128C384 57.3 326.7 0 256 0L192 0C121.3 0 64 57.3 64 128l0 128 48 0 0-128c0-29.6 16.1-55.5 40-69.3L152 256l48 0 0-208 48 0zM48 288c-12.1 0-23.2 6.8-28.6 17.7l-16 32c-5 9.9-4.4 21.7 1.4 31.1S20.9 384 32 384l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 256 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c11.1 0 21.4-5.7 27.2-15.2s6.4-21.2 1.4-31.1l-16-32C423.2 294.8 412.1 288 400 288L48 288z"], - "circle-check": [512, 512, [61533, "check-circle"], "f058", "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM369 209L241 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L335 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"], - "circle-stop": [512, 512, [62094, "stop-circle"], "f28d", "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM192 160l128 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32z"], - "compass-drafting": [512, 512, ["drafting-compass"], "f568", "M352 96c0 14.3-3.1 27.9-8.8 40.2L396 227.4c-23.7 25.3-54.2 44.1-88.5 53.6L256 192c0 0 0 0 0 0s0 0 0 0l-68 117.5c21.5 6.8 44.3 10.5 68.1 10.5c70.7 0 133.8-32.7 174.9-84c11.1-13.8 31.2-16 45-5s16 31.2 5 45C428.1 341.8 347 384 256 384c-35.4 0-69.4-6.4-100.7-18.1L98.7 463.7C94 471.8 87 478.4 78.6 482.6L23.2 510.3c-5 2.5-10.9 2.2-15.6-.7S0 501.5 0 496l0-55.4c0-8.4 2.2-16.7 6.5-24.1l60-103.7C53.7 301.6 41.8 289.3 31.2 276c-11.1-13.8-8.8-33.9 5-45s33.9-8.8 45 5c5.7 7.1 11.8 13.8 18.2 20.1l69.4-119.9c-5.6-12.2-8.8-25.8-8.8-40.2c0-53 43-96 96-96s96 43 96 96zm21 297.9c32.6-12.8 62.5-30.8 88.9-52.9l43.7 75.5c4.2 7.3 6.5 15.6 6.5 24.1l0 55.4c0 5.5-2.9 10.7-7.6 13.6s-10.6 3.2-15.6 .7l-55.4-27.7c-8.4-4.2-15.4-10.8-20.1-18.9L373 393.9zM256 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"], - "plate-wheat": [512, 512, [], "e55a", "M176 32c44.2 0 80 35.8 80 80l0 16c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80l0-16c0-8.8 7.2-16 16-16zM56 64l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM24 136l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 184c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 96c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24zM272 48c0-8.8 7.2-16 16-16c44.2 0 80 35.8 80 80l0 16c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80l0-16zM400 32c44.2 0 80 35.8 80 80l0 16c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80l0-16c0-8.8 7.2-16 16-16zm80 160l0 16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM352 176c8.8 0 16 7.2 16 16l0 16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80zm-96 16l0 16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM3.5 347.6C1.6 332.9 13 320 27.8 320l456.4 0c14.8 0 26.2 12.9 24.4 27.6C502.3 397.8 464.2 437 416 446l0 2c0 17.7-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32l0-2c-48.2-9-86.3-48.2-92.5-98.4z"], - "icicles": [512, 512, [], "f7ad", "M75.8 304.8L1 35.7c-.7-2.5-1-5-1-7.5C0 12.6 12.6 0 28.2 0H482.4C498.8 0 512 13.2 512 29.6c0 1.6-.1 3.3-.4 4.9L434.6 496.1c-1.5 9.2-9.5 15.9-18.8 15.9c-9.2 0-17.1-6.6-18.7-15.6L336 160 307.2 303.9c-1.9 9.3-10.1 16.1-19.6 16.1c-9.2 0-17.2-6.2-19.4-15.1L240 192 210.6 368.2c-1.5 9.1-9.4 15.8-18.6 15.8s-17.1-6.7-18.6-15.8L144 192 115.9 304.3c-2.3 9.2-10.6 15.7-20.1 15.7c-9.3 0-17.5-6.2-20-15.2z"], - "person-shelter": [512, 512, [], "e54f", "M271.9 4.2c-9.8-5.6-21.9-5.6-31.8 0l-224 128C6.2 137.9 0 148.5 0 160L0 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-301.4L256 68.9 448 178.6 448 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-320c0-11.5-6.2-22.1-16.1-27.8l-224-128zM256 208a40 40 0 1 0 0-80 40 40 0 1 0 0 80zm-8 280l0-88 16 0 0 88c0 13.3 10.7 24 24 24s24-10.7 24-24l0-174.5 26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-37.9-70.3c-15.3-28.5-45.1-46.3-77.5-46.3l-19.5 0c-32.4 0-62.1 17.8-77.5 46.3l-37.9 70.3c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L200 313.5 200 488c0 13.3 10.7 24 24 24s24-10.7 24-24z"], - "neuter": [384, 512, [9906], "f22c", "M80 176a112 112 0 1 1 224 0A112 112 0 1 1 80 176zM224 349.1c81.9-15 144-86.8 144-173.1C368 78.8 289.2 0 192 0S16 78.8 16 176c0 86.3 62.1 158.1 144 173.1L160 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-130.9z"], - "id-badge": [384, 512, [], "f2c1", "M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zm96 320l64 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16L96 416c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-32-96a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM144 64l96 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-96 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"], - "marker": [512, 512, [], "f5a1", "M481 31C445.1-4.8 386.9-4.8 351 31l-15 15L322.9 33C294.8 4.9 249.2 4.9 221.1 33L135 119c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L255 66.9c9.4-9.4 24.6-9.4 33.9 0L302.1 80 186.3 195.7 316.3 325.7 481 161c35.9-35.9 35.9-94.1 0-129.9zM293.7 348.3L163.7 218.3 99.5 282.5c-48 48-80.8 109.2-94.1 175.8l-5 25c-1.6 7.9 .9 16 6.6 21.7s13.8 8.1 21.7 6.6l25-5c66.6-13.3 127.8-46.1 175.8-94.1l64.2-64.2z"], - "face-laugh-beam": [512, 512, [128513, "laugh-beam"], "f59a", "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1l275.2 0c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zM217.6 212.8s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z"], - "helicopter-symbol": [512, 512, [], "e502", "M445.3 224l64.7 0C495.6 108.2 403.8 16.4 288 2l0 64.7C368.4 80.1 431.9 143.6 445.3 224zM510 288l-64.7 0C431.9 368.4 368.4 431.9 288 445.3l0 64.7c115.8-14.4 207.6-106.2 222-222zM2 288C16.4 403.8 108.2 495.6 224 510l0-64.7C143.6 431.9 80.1 368.4 66.7 288L2 288zm0-64l64.7 0C80.1 143.6 143.6 80.1 224 66.7L224 2C108.2 16.4 16.4 108.2 2 224zm206-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 96 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-192c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64-96 0 0-64z"], - "universal-access": [512, 512, [], "f29a", "M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm161.5-86.1c-12.2-5.2-26.3 .4-31.5 12.6s.4 26.3 12.6 31.5l11.9 5.1c17.3 7.4 35.2 12.9 53.6 16.3l0 50.1c0 4.3-.7 8.6-2.1 12.6l-28.7 86.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l24.4-73.2c1.3-3.8 4.8-6.4 8.8-6.4s7.6 2.6 8.8 6.4l24.4 73.2c4.2 12.6 17.8 19.4 30.4 15.2s19.4-17.8 15.2-30.4l-28.7-86.1c-1.4-4.1-2.1-8.3-2.1-12.6l0-50.1c18.4-3.5 36.3-8.9 53.6-16.3l11.9-5.1c12.2-5.2 17.8-19.3 12.6-31.5s-19.3-17.8-31.5-12.6L338.7 175c-26.1 11.2-54.2 17-82.7 17s-56.5-5.8-82.7-17l-11.9-5.1zM256 160a40 40 0 1 0 0-80 40 40 0 1 0 0 80z"], - "circle-chevron-up": [512, 512, ["chevron-circle-up"], "f139", "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM377 271c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-87-87-87 87c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L239 167c9.4-9.4 24.6-9.4 33.9 0L377 271z"], - "lari-sign": [384, 512, [], "e1c8", "M144 32c17.7 0 32 14.3 32 32l0 32.7c5.3-.4 10.6-.7 16-.7s10.7 .2 16 .7L208 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 49.4c54.9 25.2 95.8 75.5 108.2 136.2c3.5 17.3-7.7 34.2-25 37.7s-34.2-7.7-37.7-25c-6.1-29.9-22.5-55.9-45.4-74.3l0 67.9c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-95c-5.2-.7-10.6-1-16-1s-10.8 .3-16 1l0 95c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-67.9C82.7 211.5 64 247.6 64 288c0 70.7 57.3 128 128 128l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l16.9 0C18.5 382 0 337.2 0 288c0-77.5 45.9-144.3 112-174.6L112 64c0-17.7 14.3-32 32-32z"], - "volcano": [512, 512, [127755], "f770", "M160 144c-35.3 0-64-28.7-64-64s28.7-64 64-64c15.7 0 30 5.6 41.2 15C212.4 12.4 232.7 0 256 0s43.6 12.4 54.8 31C322 21.6 336.3 16 352 16c35.3 0 64 28.7 64 64s-28.7 64-64 64c-14.7 0-28.3-5-39.1-13.3l-32 48C275.3 187 266 192 256 192s-19.3-5-24.9-13.3l-32-48C188.3 139 174.7 144 160 144zM144 352l48.4-24.2c10.2-5.1 21.6-7.8 33-7.8c19.6 0 38.4 7.8 52.2 21.6l32.5 32.5c6.3 6.3 14.9 9.9 23.8 9.9c11.3 0 21.8-5.6 28-15l9.7-14.6-58.9-66.3c-9.1-10.2-22.2-16.1-35.9-16.1l-41.8 0c-13.7 0-26.8 5.9-35.9 16.1l-59.9 67.4L144 352zm19.4-95.8c18.2-20.5 44.3-32.2 71.8-32.2l41.8 0c27.4 0 53.5 11.7 71.8 32.2l150.2 169c8.5 9.5 13.2 21.9 13.2 34.7c0 28.8-23.4 52.2-52.2 52.2L52.2 512C23.4 512 0 488.6 0 459.8c0-12.8 4.7-25.1 13.2-34.7l150.2-169z"], - "person-walking-dashed-line-arrow-right": [640, 512, [], "e553", "M208 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM550.6 153.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L530.7 224 384 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l146.7 0-25.4 25.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3l-80-80zM392 0c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48c0-13.3-10.7-24-24-24zm24 152c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16zM392 320c-13.3 0-24 10.7-24 24l0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16c0-13.3-10.7-24-24-24zm24 120c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48z"], - "sterling-sign": [320, 512, [163, "gbp", "pound-sign"], "f154", "M112 160.4c0-35.5 28.8-64.4 64.4-64.4c6.9 0 13.8 1.1 20.4 3.3l81.2 27.1c16.8 5.6 34.9-3.5 40.5-20.2s-3.5-34.9-20.2-40.5L217 38.6c-13.1-4.4-26.8-6.6-40.6-6.6C105.5 32 48 89.5 48 160.4L48 224l-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0 0 44.5c0 17.4-4.7 34.5-13.7 49.4L4.6 431.5c-5.9 9.9-6.1 22.2-.4 32.2S20.5 480 32 480l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L88.5 416l.7-1.1C104.1 390 112 361.5 112 332.5l0-44.5 112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-112 0 0-63.6z"], - "viruses": [640, 512, [], "e076", "M192 0c13.3 0 24 10.7 24 24l0 13.5c0 35.6 43.1 53.5 68.3 28.3l9.5-9.5c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-9.5 9.5C293 124.9 310.9 168 346.5 168l13.5 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-13.5 0c-35.6 0-53.5 43.1-28.3 68.3l9.5 9.5c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-9.5-9.5C259.1 293 216 310.9 216 346.5l0 13.5c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-13.5c0-35.6-43.1-53.5-68.3-28.3l-9.5 9.5c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l9.5-9.5C91 259.1 73.1 216 37.5 216L24 216c-13.3 0-24-10.7-24-24s10.7-24 24-24l13.5 0c35.6 0 53.5-43.1 28.3-68.3l-9.5-9.5c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l9.5 9.5C124.9 91 168 73.1 168 37.5L168 24c0-13.3 10.7-24 24-24zm48 224a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm-48-64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm320 80c0 33 39.9 49.5 63.2 26.2c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6C574.5 312.1 591 352 624 352c8.8 0 16 7.2 16 16s-7.2 16-16 16c-33 0-49.5 39.9-26.2 63.2c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0C551.9 446.5 512 463 512 496c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-33-39.9-49.5-63.2-26.2c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6C417.5 423.9 401 384 368 384c-8.8 0-16-7.2-16-16s7.2-16 16-16c33 0 49.5-39.9 26.2-63.2c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0C440.1 289.5 480 273 480 240c0-8.8 7.2-16 16-16s16 7.2 16 16zm0 112a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"], - "square-person-confined": [448, 512, [], "e577", "M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm96 112a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm80 104c0-30.9 25.1-56 56-56s56 25.1 56 56l0 102.1c0 36.4-29.5 65.9-65.9 65.9c-17.5 0-34.3-6.9-46.6-19.3L184.8 342l-28.1 56.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l48-96c4.6-9.2 13.3-15.6 23.5-17.3s20.5 1.7 27.8 9L240 306.7l0-58.7z"], - "user-tie": [448, 512, [], "f508", "M96 128a128 128 0 1 0 256 0A128 128 0 1 0 96 128zm94.5 200.2l18.6 31L175.8 483.1l-36-146.9c-2-8.1-9.8-13.4-17.9-11.3C51.9 342.4 0 405.8 0 481.3c0 17 13.8 30.7 30.7 30.7l131.7 0c0 0 0 0 .1 0l5.5 0 112 0 5.5 0c0 0 0 0 .1 0l131.7 0c17 0 30.7-13.8 30.7-30.7c0-75.5-51.9-138.9-121.9-156.4c-8.1-2-15.9 3.3-17.9 11.3l-36 146.9L238.9 359.2l18.6-31c6.4-10.7-1.3-24.2-13.7-24.2L224 304l-19.7 0c-12.4 0-20.1 13.6-13.7 24.2z"], - "arrow-down-long": [384, 512, ["long-arrow-down"], "f175", "M169.4 502.6c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 402.7 224 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 370.7L86.6 329.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128z"], - "tent-arrow-down-to-line": [640, 512, [], "e57e", "M241.8 111.9c8.9 9.9 8.1 25-1.8 33.9l-80 72c-9.1 8.2-23 8.2-32.1 0l-80-72c-9.9-8.9-10.7-24-1.8-33.9s24-10.7 33.9-1.8l39.9 36L120 24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 122.1 39.9-36c9.9-8.9 25-8.1 33.9 1.8zm122.8 22.6c11.5-8.7 27.3-8.7 38.8 0l168 128c6.6 5 11 12.5 12.3 20.7l24 160 .7 4.7c17.5 .2 31.6 14.4 31.6 32c0 17.7-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l127.6 0 .7-4.7 24-160c1.2-8.2 5.6-15.7 12.3-20.7l168-128zM384 448l80 0L402.7 325.5c-1.7-3.4-5.1-5.5-8.8-5.5c-5.5 0-9.9 4.4-9.9 9.9L384 448z"], - "certificate": [512, 512, [], "f0a3", "M211 7.3C205 1 196-1.4 187.6 .8s-14.9 8.9-17.1 17.3L154.7 80.6l-62-17.5c-8.4-2.4-17.4 0-23.5 6.1s-8.5 15.1-6.1 23.5l17.5 62L18.1 170.6c-8.4 2.1-15 8.7-17.3 17.1S1 205 7.3 211l46.2 45L7.3 301C1 307-1.4 316 .8 324.4s8.9 14.9 17.3 17.1l62.5 15.8-17.5 62c-2.4 8.4 0 17.4 6.1 23.5s15.1 8.5 23.5 6.1l62-17.5 15.8 62.5c2.1 8.4 8.7 15 17.1 17.3s17.3-.2 23.4-6.4l45-46.2 45 46.2c6.1 6.2 15 8.7 23.4 6.4s14.9-8.9 17.1-17.3l15.8-62.5 62 17.5c8.4 2.4 17.4 0 23.5-6.1s8.5-15.1 6.1-23.5l-17.5-62 62.5-15.8c8.4-2.1 15-8.7 17.3-17.1s-.2-17.4-6.4-23.4l-46.2-45 46.2-45c6.2-6.1 8.7-15 6.4-23.4s-8.9-14.9-17.3-17.1l-62.5-15.8 17.5-62c2.4-8.4 0-17.4-6.1-23.5s-15.1-8.5-23.5-6.1l-62 17.5L341.4 18.1c-2.1-8.4-8.7-15-17.1-17.3S307 1 301 7.3L256 53.5 211 7.3z"], - "reply-all": [576, 512, ["mail-reply-all"], "f122", "M209.4 39.5c-9.1-9.6-24.3-10-33.9-.9L33.8 173.2c-19.9 18.9-19.9 50.7 0 69.6L175.5 377.4c9.6 9.1 24.8 8.7 33.9-.9s8.7-24.8-.9-33.9L66.8 208 208.5 73.4c9.6-9.1 10-24.3 .9-33.9zM352 64c0-12.6-7.4-24.1-19-29.2s-25-3-34.4 5.4l-160 144c-6.7 6.1-10.6 14.7-10.6 23.8s3.9 17.7 10.6 23.8l160 144c9.4 8.5 22.9 10.6 34.4 5.4s19-16.6 19-29.2l0-64 32 0c53 0 96 43 96 96c0 30.4-12.8 47.9-22.2 56.7c-5.5 5.1-9.8 12-9.8 19.5c0 10.9 8.8 19.7 19.7 19.7c2.8 0 5.6-.6 8.1-1.9C494.5 467.9 576 417.3 576 304c0-97.2-78.8-176-176-176l-48 0 0-64z"], - "suitcase": [512, 512, [129523], "f0f2", "M176 56l0 40 160 0 0-40c0-4.4-3.6-8-8-8L184 48c-4.4 0-8 3.6-8 8zM128 96l0-40c0-30.9 25.1-56 56-56L328 0c30.9 0 56 25.1 56 56l0 40 0 32 0 352-256 0 0-352 0-32zM64 96l32 0 0 384-32 0c-35.3 0-64-28.7-64-64L0 160c0-35.3 28.7-64 64-64zM448 480l-32 0 0-384 32 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64z"], - "person-skating": [448, 512, ["skating"], "f7c5", "M352 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM128 128c0-17.7 14.3-32 32-32l159.4 0c43.6 0 64.6 53.4 32.8 83.1l-74.4 69.4 60.2 60.2c9 9 14.1 21.2 14.1 33.9l0 73.4c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7-77.9-77.8c-26.6-26.6-24.6-70.3 4.3-94.4l20.4-17L160 160c-17.7 0-32-14.3-32-32zM81.4 353.4l86.9-86.9c4.6 10 11 19.3 19.3 27.5l21.8 21.8-82.7 82.7c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3zm322.5 95.1c8.6 2.1 13.8 10.8 11.6 19.4l-.4 1.7c-6.2 24.9-28.6 42.4-54.3 42.4L272 512c-8.8 0-16-7.2-16-16s7.2-16 16-16l88.8 0c11 0 20.6-7.5 23.3-18.2l.4-1.7c2.1-8.6 10.8-13.8 19.4-11.6zM135.2 478.3l-6.2 3.1c-21.6 10.8-47.6 6.6-64.6-10.5L4.7 411.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l59.6 59.6c7.3 7.3 18.5 9.1 27.7 4.5l6.2-3.1c7.9-4 17.5-.7 21.5 7.2s.7 17.5-7.2 21.5z"], - "filter-circle-dollar": [576, 512, ["funnel-dollar"], "f662", "M3.9 22.9C10.5 8.9 24.5 0 40 0L472 0c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L396.4 195.6C316.2 212.1 256 283 256 368c0 27.4 6.3 53.4 17.5 76.5c-1.6-.8-3.2-1.8-4.7-2.9l-64-48c-8.1-6-12.8-15.5-12.8-25.6l0-79.1L9 65.3C-.7 53.4-2.8 36.8 3.9 22.9zM288 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm120.8-32.6c.6-.9 1.8-2.1 4.2-3.4c5.1-2.7 12.5-4.1 18.7-4c8.2 .1 17.1 1.8 26.4 4.1c8.6 2.1 17.3-3.1 19.4-11.7s-3.1-17.3-11.7-19.4c-5.6-1.4-11.6-2.7-17.9-3.7l0-9.4c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 9.5c-6.1 1.2-12.3 3.2-18 6.3c-11.8 6.3-23 18.4-21.8 37.2c1 16 11.7 25.3 21.6 30.7c8.8 4.7 19.7 7.8 28.6 10.3l1.8 .5c10.3 2.9 17.9 5.2 23.2 8.3c4.5 2.7 4.7 4.2 4.7 5.6c.1 2.4-.5 3.7-1 4.5c-.6 1-1.8 2.2-4 3.3c-4.7 2.5-11.8 3.8-18.5 3.6c-9.5-.3-18.5-3.1-29.9-6.8c-1.9-.6-3.8-1.2-5.8-1.8c-8.4-2.6-17.4 2.1-20 10.5s2.1 17.4 10.5 20c1.6 .5 3.3 1 5 1.6c0 0 0 0 0 0s0 0 0 0c7 2.3 15.1 4.8 23.7 6.6l0 11.4c0 8.8 7.2 16 16 16s16-7.2 16-16l0-10.8c6.2-1.1 12.5-3.1 18.3-6.2c12.1-6.5 22.3-18.7 21.7-36.9c-.5-16.2-10.3-26.3-20.5-32.3c-9.4-5.6-21.2-8.9-30.5-11.5l-.2 0c-10.4-2.9-18.3-5.2-23.9-8.2c-4.8-2.6-4.8-4-4.8-4.5c0 0 0 0 0-.1c-.1-1.9 .3-2.9 .8-3.6z"], - "camera-retro": [512, 512, [128247], "f083", "M220.6 121.2L271.1 96 448 96l0 96-114.8 0c-21.9-15.1-48.5-24-77.2-24s-55.2 8.9-77.2 24L64 192l0-64 128 0c9.9 0 19.7-2.3 28.6-6.8zM0 128L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L271.1 32c-9.9 0-19.7 2.3-28.6 6.8L192 64l-32 0 0-16c0-8.8-7.2-16-16-16L80 32c-8.8 0-16 7.2-16 16l0 16C28.7 64 0 92.7 0 128zM168 304a88 88 0 1 1 176 0 88 88 0 1 1 -176 0z"], - "circle-arrow-down": [512, 512, ["arrow-circle-down"], "f0ab", "M256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM127 297c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l71 71L232 120c0-13.3 10.7-24 24-24s24 10.7 24 24l0 214.1 71-71c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L273 409c-9.4 9.4-24.6 9.4-33.9 0L127 297z"], - "file-import": [512, 512, ["arrow-right-to-file"], "f56f", "M128 64c0-35.3 28.7-64 64-64L352 0l0 128c0 17.7 14.3 32 32 32l128 0 0 288c0 35.3-28.7 64-64 64l-256 0c-35.3 0-64-28.7-64-64l0-112 174.1 0-39 39c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l39 39L128 288l0-224zm0 224l0 48L24 336c-13.3 0-24-10.7-24-24s10.7-24 24-24l104 0zM512 128l-128 0L384 0 512 128z"], - "square-arrow-up-right": [448, 512, ["external-link-square"], "f14c", "M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM160 144c-13.3 0-24 10.7-24 24s10.7 24 24 24l94.1 0L119 327c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l135-135L288 328c0 13.3 10.7 24 24 24s24-10.7 24-24l0-160c0-13.3-10.7-24-24-24l-152 0z"], - "box-open": [640, 512, [], "f49e", "M58.9 42.1c3-6.1 9.6-9.6 16.3-8.7L320 64 564.8 33.4c6.7-.8 13.3 2.7 16.3 8.7l41.7 83.4c9 17.9-.6 39.6-19.8 45.1L439.6 217.3c-13.9 4-28.8-1.9-36.2-14.3L320 64 236.6 203c-7.4 12.4-22.3 18.3-36.2 14.3L37.1 170.6c-19.3-5.5-28.8-27.2-19.8-45.1L58.9 42.1zM321.1 128l54.9 91.4c14.9 24.8 44.6 36.6 72.5 28.6L576 211.6l0 167c0 22-15 41.2-36.4 46.6l-204.1 51c-10.2 2.6-20.9 2.6-31 0l-204.1-51C79 419.7 64 400.5 64 378.5l0-167L191.6 248c27.8 8 57.6-3.8 72.5-28.6L318.9 128l2.2 0z"], - "scroll": [576, 512, [128220], "f70e", "M0 80l0 48c0 17.7 14.3 32 32 32l16 0 48 0 0-80c0-26.5-21.5-48-48-48S0 53.5 0 80zM112 32c10 13.4 16 30 16 48l0 304c0 35.3 28.7 64 64 64s64-28.7 64-64l0-5.3c0-32.4 26.3-58.7 58.7-58.7L480 320l0-192c0-53-43-96-96-96L112 32zM464 480c61.9 0 112-50.1 112-112c0-8.8-7.2-16-16-16l-245.3 0c-14.7 0-26.7 11.9-26.7 26.7l0 5.3c0 53-43 96-96 96l176 0 96 0z"], - "spa": [576, 512, [], "f5bb", "M183.1 235.3c33.7 20.7 62.9 48.1 85.8 80.5c7 9.9 13.4 20.3 19.1 31c5.7-10.8 12.1-21.1 19.1-31c22.9-32.4 52.1-59.8 85.8-80.5C437.6 207.8 490.1 192 546 192l9.9 0c11.1 0 20.1 9 20.1 20.1C576 360.1 456.1 480 308.1 480L288 480l-20.1 0C119.9 480 0 360.1 0 212.1C0 201 9 192 20.1 192l9.9 0c55.9 0 108.4 15.8 153.1 43.3zM301.5 37.6c15.7 16.9 61.1 71.8 84.4 164.6c-38 21.6-71.4 50.8-97.9 85.6c-26.5-34.8-59.9-63.9-97.9-85.6c23.2-92.8 68.6-147.7 84.4-164.6C278 33.9 282.9 32 288 32s10 1.9 13.5 5.6z"], - "location-pin-lock": [512, 512, [], "e51f", "M215.7 499.2c11-13.8 25.1-31.7 40.3-52.3l0-94.8c0-23.7 12.9-44.4 32-55.4l0-24.6c0-55.6 40.5-101.7 93.6-110.5C367 70 287.7 0 192 0C86 0 0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM400 240c17.7 0 32 14.3 32 32l0 48-64 0 0-48c0-17.7 14.3-32 32-32zm-80 32l0 48c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80z"], - "pause": [320, 512, [9208], "f04c", "M48 64C21.5 64 0 85.5 0 112L0 400c0 26.5 21.5 48 48 48l32 0c26.5 0 48-21.5 48-48l0-288c0-26.5-21.5-48-48-48L48 64zm192 0c-26.5 0-48 21.5-48 48l0 288c0 26.5 21.5 48 48 48l32 0c26.5 0 48-21.5 48-48l0-288c0-26.5-21.5-48-48-48l-32 0z"], - "hill-avalanche": [576, 512, [], "e507", "M439.7 401.9c34.2 23.1 81.1 19.5 111.4-10.8c34.4-34.4 34.4-90.1 0-124.4c-27.8-27.8-69.5-33.1-102.6-16c-11.8 6.1-16.4 20.6-10.3 32.3s20.6 16.4 32.3 10.3c15.1-7.8 34-5.3 46.6 7.3c15.6 15.6 15.6 40.9 0 56.6s-40.9 15.6-56.6 0l-81.7-81.7C401.2 261.3 416 236.4 416 208c0-33.9-21.1-62.9-50.9-74.5c1.9-6.8 2.9-14 2.9-21.5c0-44.2-35.8-80-80-80c-27.3 0-51.5 13.7-65.9 34.6C216.3 46.6 197.9 32 176 32c-26.5 0-48 21.5-48 48c0 4 .5 7.9 1.4 11.6L439.7 401.9zM480 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM68.3 87C43.1 61.8 0 79.7 0 115.3L0 432c0 44.2 35.8 80 80 80l316.7 0c35.6 0 53.5-43.1 28.3-68.3L68.3 87z"], - "temperature-empty": [320, 512, ["temperature-0", "thermometer-0", "thermometer-empty"], "f2cb", "M112 112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 164.5c0 17.3 7.1 31.9 15.3 42.5C233.8 332.6 240 349.5 240 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9c8.2-10.6 15.3-25.2 15.3-42.5L112 112zM160 0C98.1 0 48 50.2 48 112l0 164.4c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C27.2 304.2 16 334.8 16 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.2-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6L272 112C272 50.2 221.9 0 160 0zm0 416a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"], - "bomb": [512, 512, [128163], "f1e2", "M459.1 52.4L442.6 6.5C440.7 2.6 436.5 0 432.1 0s-8.5 2.6-10.4 6.5L405.2 52.4l-46 16.8c-4.3 1.6-7.3 5.9-7.2 10.4c0 4.5 3 8.7 7.2 10.2l45.7 16.8 16.8 45.8c1.5 4.4 5.8 7.5 10.4 7.5s8.9-3.1 10.4-7.5l16.5-45.8 45.7-16.8c4.2-1.5 7.2-5.7 7.2-10.2c0-4.6-3-8.9-7.2-10.4L459.1 52.4zm-132.4 53c-12.5-12.5-32.8-12.5-45.3 0l-2.9 2.9C256.5 100.3 232.7 96 208 96C93.1 96 0 189.1 0 304S93.1 512 208 512s208-93.1 208-208c0-24.7-4.3-48.5-12.2-70.5l2.9-2.9c12.5-12.5 12.5-32.8 0-45.3l-80-80zM200 192c-57.4 0-104 46.6-104 104l0 8c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-8c0-75.1 60.9-136 136-136l8 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-8 0z"], - "registered": [512, 512, [174], "f25d", "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM160 152c0-13.3 10.7-24 24-24l88 0c44.2 0 80 35.8 80 80c0 28-14.4 52.7-36.3 67l34.1 75.1c5.5 12.1 .1 26.3-11.9 31.8s-26.3 .1-31.8-11.9L268.9 288 208 288l0 72c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-96 0-112zm48 88l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0 64z"], - "address-card": [576, 512, [62140, "contact-card", "vcard"], "f2bb", "M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm80 256l64 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16L80 384c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-32-96a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zm256-32l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"], - "scale-unbalanced-flip": [640, 512, ["balance-scale-right"], "f516", "M117.9 62.4c-16.8-5.6-25.8-23.7-20.2-40.5s23.7-25.8 40.5-20.2l113 37.7C265 15.8 290.7 0 320 0c44.2 0 80 35.8 80 80c0 3-.2 5.9-.5 8.8l122.6 40.9c16.8 5.6 25.8 23.7 20.2 40.5s-23.7 25.8-40.5 20.2L366.4 145.2c-4.5 3.2-9.3 5.9-14.4 8.2L352 480c0 17.7-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0 0-294.7c-21-9.2-37.2-27-44.2-49l-125.9-42zM200.4 288L128 163.8 55.6 288l144.9 0zM128 384C65.1 384 12.8 350 2 305.1c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1C243.2 350 190.9 384 128 384zm382.8-92.2L438.4 416l144.9 0L510.8 291.8zm126 141.3C626 478 573.7 512 510.8 512s-115.2-34-126-78.9c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1z"], - "subscript": [512, 512, [], "f12c", "M32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l15.3 0 89.6 128L47.3 384 32 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0c10.4 0 20.2-5.1 26.2-13.6L176 311.8l85.8 122.6c6 8.6 15.8 13.6 26.2 13.6l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-15.3 0L215.1 256l89.6-128 15.3 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-10.4 0-20.2 5.1-26.2 13.6L176 200.2 90.2 77.6C84.2 69.1 74.4 64 64 64L32 64zM480 320c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32 16c-15.8 7.9-22.2 27.1-14.3 42.9C393 361.5 404.3 368 416 368l0 80c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-128z"], - "diamond-turn-right": [512, 512, ["directions"], "f5eb", "M227.7 11.7c15.6-15.6 40.9-15.6 56.6 0l216 216c15.6 15.6 15.6 40.9 0 56.6l-216 216c-15.6 15.6-40.9 15.6-56.6 0l-216-216c-15.6-15.6-15.6-40.9 0-56.6l216-216zm87.6 137c-4.6-4.6-11.5-5.9-17.4-3.5s-9.9 8.3-9.9 14.8l0 56-64 0c-35.3 0-64 28.7-64 64l0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48c0-8.8 7.2-16 16-16l64 0 0 56c0 6.5 3.9 12.3 9.9 14.8s12.9 1.1 17.4-3.5l80-80c6.2-6.2 6.2-16.4 0-22.6l-80-80z"], - "burst": [512, 512, [], "e4dc", "M37.6 4.2C28-2.3 15.2-1.1 7 7s-9.4 21-2.8 30.5l112 163.3L16.6 233.2C6.7 236.4 0 245.6 0 256s6.7 19.6 16.6 22.8l103.1 33.4L66.8 412.8c-4.9 9.3-3.2 20.7 4.3 28.1s18.8 9.2 28.1 4.3l100.6-52.9 33.4 103.1c3.2 9.9 12.4 16.6 22.8 16.6s19.6-6.7 22.8-16.6l33.4-103.1 100.6 52.9c9.3 4.9 20.7 3.2 28.1-4.3s9.2-18.8 4.3-28.1L392.3 312.2l103.1-33.4c9.9-3.2 16.6-12.4 16.6-22.8s-6.7-19.6-16.6-22.8L388.9 198.7l25.7-70.4c3.2-8.8 1-18.6-5.6-25.2s-16.4-8.8-25.2-5.6l-70.4 25.7L278.8 16.6C275.6 6.7 266.4 0 256 0s-19.6 6.7-22.8 16.6l-32.3 99.6L37.6 4.2z"], - "house-laptop": [640, 512, ["laptop-house"], "e066", "M218.3 8.5c12.3-11.3 31.2-11.3 43.4 0l208 192c6.7 6.2 10.3 14.8 10.3 23.5l-144 0c-19.1 0-36.3 8.4-48 21.7l0-37.7c0-8.8-7.2-16-16-16l-64 0c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l64 0 0 128-160 0c-26.5 0-48-21.5-48-48l0-112-32 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8.1-35.2l208-192zM352 304l0 144 192 0 0-144-192 0zm-48-16c0-17.7 14.3-32 32-32l224 0c17.7 0 32 14.3 32 32l0 160 32 0c8.8 0 16 7.2 16 16c0 26.5-21.5 48-48 48l-48 0-192 0-48 0c-26.5 0-48-21.5-48-48c0-8.8 7.2-16 16-16l32 0 0-160z"], - "face-tired": [512, 512, [128555, "tired"], "f5c8", "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM164.7 328.7c22-22 53.9-40.7 91.3-40.7s69.3 18.7 91.3 40.7c11.1 11.1 20.1 23.4 26.4 35.4c6.2 11.7 10.3 24.4 10.3 35.9c0 5.2-2.6 10.2-6.9 13.2s-9.8 3.7-14.7 1.8l-20.5-7.7c-26.9-10.1-55.5-15.3-84.3-15.3l-3.2 0c-28.8 0-57.3 5.2-84.3 15.3L149.6 415c-4.9 1.8-10.4 1.2-14.7-1.8s-6.9-7.9-6.9-13.2c0-11.6 4.2-24.2 10.3-35.9c6.3-12 15.3-24.3 26.4-35.4zm-31.2-182l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z"], - "money-bills": [640, 512, [], "e1f3", "M96 96l0 224c0 35.3 28.7 64 64 64l416 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L160 32c-35.3 0-64 28.7-64 64zm64 160c35.3 0 64 28.7 64 64l-64 0 0-64zM224 96c0 35.3-28.7 64-64 64l0-64 64 0zM576 256l0 64-64 0c0-35.3 28.7-64 64-64zM512 96l64 0 0 64c-35.3 0-64-28.7-64-64zM288 208a80 80 0 1 1 160 0 80 80 0 1 1 -160 0zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120L0 360c0 66.3 53.7 120 120 120l400 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-400 0c-39.8 0-72-32.2-72-72l0-240z"], - "smog": [640, 512, [], "f75f", "M32 144c0 79.5 64.5 144 144 144l123.3 0c22.6 19.9 52.2 32 84.7 32s62.1-12.1 84.7-32l27.3 0c61.9 0 112-50.1 112-112s-50.1-112-112-112c-10.7 0-21 1.5-30.8 4.3C443.8 27.7 401.1 0 352 0c-32.6 0-62.4 12.2-85.1 32.3C242.1 12.1 210.5 0 176 0C96.5 0 32 64.5 32 144zM616 368l-336 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l336 0c13.3 0 24-10.7 24-24s-10.7-24-24-24zm-64 96l-112 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24zm-192 0L24 464c-13.3 0-24 10.7-24 24s10.7 24 24 24l336 0c13.3 0 24-10.7 24-24s-10.7-24-24-24zM224 392c0-13.3-10.7-24-24-24L96 368c-13.3 0-24 10.7-24 24s10.7 24 24 24l104 0c13.3 0 24-10.7 24-24z"], - "crutch": [512, 512, [], "f7f7", "M297.4 9.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0zm-96 144l-34.8 34.8c-12.9 12.9-21.9 29.2-25.8 47.1L116.8 342.9c-1.3 5.9-4.3 11.4-8.6 15.7L9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l98.8-98.8c4.3-4.3 9.7-7.3 15.7-8.6l107.6-23.9c17.8-4 34.1-12.9 47.1-25.8l34.7-34.7c0 0 .1-.1 .1-.1s.1-.1 .1-.1l74.6-74.6-45.3-45.3L336 242.7 269.3 176l52.1-52.1L276.1 78.6l-74.7 74.7zM224 221.3L290.7 288l-12.2 12.2c-4.3 4.3-9.7 7.3-15.7 8.6l-76.7 17 17-76.7c1.3-5.9 4.3-11.4 8.6-15.7L224 221.3z"], - "font-awesome": [512, 512, [62501, 62694, "font-awesome-flag", "font-awesome-logo-full"], "f2b4", "M91.7 96C106.3 86.8 116 70.5 116 52C116 23.3 92.7 0 64 0S12 23.3 12 52c0 16.7 7.8 31.5 20 41l0 3 0 352 0 64 64 0 0-64 373.6 0c14.6 0 26.4-11.8 26.4-26.4c0-3.7-.8-7.3-2.3-10.7L432 272l61.7-138.9c1.5-3.4 2.3-7 2.3-10.7c0-14.6-11.8-26.4-26.4-26.4L91.7 96z"], - "cloud-arrow-up": [640, 512, [62338, "cloud-upload", "cloud-upload-alt"], "f0ee", "M144 480C64.5 480 0 415.5 0 336c0-62.8 40.2-116.2 96.2-135.9c-.1-2.7-.2-5.4-.2-8.1c0-88.4 71.6-160 160-160c59.3 0 111 32.2 138.7 80.2C409.9 102 428.3 96 448 96c53 0 96 43 96 96c0 12.2-2.3 23.8-6.4 34.6C596 238.4 640 290.1 640 352c0 70.7-57.3 128-128 128l-368 0zm79-217c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39L296 392c0 13.3 10.7 24 24 24s24-10.7 24-24l0-134.1 39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0l-80 80z"], - "palette": [512, 512, [127912], "f53f", "M512 256c0 .9 0 1.8 0 2.7c-.4 36.5-33.6 61.3-70.1 61.3L344 320c-26.5 0-48 21.5-48 48c0 3.4 .4 6.7 1 9.9c2.1 10.2 6.5 20 10.8 29.9c6.1 13.8 12.1 27.5 12.1 42c0 31.8-21.6 60.7-53.4 62c-3.5 .1-7 .2-10.6 .2C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"], - "arrows-turn-right": [448, 512, [], "e4c0", "M297.4 9.4c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L338.7 160 128 160c-35.3 0-64 28.7-64 64l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32C0 153.3 57.3 96 128 96l210.7 0L297.4 54.6c-12.5-12.5-12.5-32.8 0-45.3zm-96 256c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 416 96 416c-17.7 0-32 14.3-32 32l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32c0-53 43-96 96-96l146.7 0-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3z"], - "vest": [448, 512, [], "e085", "M207.1 237.4L151.2 69.7C168.6 79.7 192.6 88 224 88s55.4-8.3 72.8-18.3L226.5 280.6c-1.6 4.9-2.5 10-2.5 15.2L224 464c0 26.5 21.5 48 48 48l128 0c26.5 0 48-21.5 48-48l0-193.5c0-9.5-2.8-18.7-8.1-26.6l-47.9-71.8c-5.3-7.9-8.1-17.1-8.1-26.6l0-17.5 0-73.7 0-6.3c0-26.5-21.5-48-48-48l-4.5 0c-.2 0-.4 0-.6 0c-.4 0-.8 0-1.2 0C311 0 295.7 9.7 285.7 18.8C276.4 27.2 257.2 40 224 40s-52.4-12.8-61.7-21.2C152.3 9.7 137 0 118.3 0c-.4 0-.8 0-1.2 0c-.2 0-.4 0-.6 0L112 0C85.5 0 64 21.5 64 48l0 6.3L64 128l0 17.5c0 9.5-2.8 18.7-8.1 26.6L8.1 243.9C2.8 251.8 0 261.1 0 270.5L0 464c0 26.5 21.5 48 48 48l128 0c9.9 0 19-3 26.7-8.1C195.9 492.2 192 478.5 192 464l0-168.2c0-8.6 1.4-17.1 4.1-25.3l11-33.1zM347.3 356.7l48 48c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-48-48c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0zm-294.6 48l48-48c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6l-48 48c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6z"], - "ferry": [576, 512, [], "e4ea", "M224 0L352 0c17.7 0 32 14.3 32 32l75.1 0c20.6 0 31.6 24.3 18.1 39.8L456 96 120 96 98.8 71.8C85.3 56.3 96.3 32 116.9 32L192 32c0-17.7 14.3-32 32-32zM96 128l384 0c17.7 0 32 14.3 32 32l0 123.5c0 13.3-4.2 26.3-11.9 37.2l-51.4 71.9c-1.9 1.1-3.7 2.2-5.5 3.5c-15.5 10.7-34 18-51 19.9l-16.5 0c-17.1-1.8-35-9-50.8-19.9c-22.1-15.5-51.6-15.5-73.7 0c-14.8 10.2-32.5 18-50.6 19.9l-16.6 0c-17-1.8-35.6-9.2-51-19.9c-1.8-1.3-3.7-2.4-5.6-3.5L75.9 320.7C68.2 309.8 64 296.8 64 283.5L64 160c0-17.7 14.3-32 32-32zm32 64l0 96 320 0 0-96-320 0zM306.5 421.9C329 437.4 356.5 448 384 448c26.9 0 55.3-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 501.7 417 512 384 512c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 437.2 165.1 448 192 448c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z"], - "arrows-down-to-people": [640, 512, [], "e4b9", "M144 0c-13.3 0-24 10.7-24 24l0 118.1L97 119c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0l64-64c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23L168 24c0-13.3-10.7-24-24-24zM360 200a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zM184 296a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zm312 40a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM200 441.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-36.3-67.5c1.7-1.7 3.2-3.6 4.3-5.8L264 345.5l0 54.5c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32l0-54.5 26.9 49.9c1.2 2.2 2.6 4.1 4.3 5.8l-36.3 67.5c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L440 441.5l0 38.5c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32l0-38.5 26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-37.9-70.3c-15.3-28.5-45.1-46.3-77.5-46.3l-19.5 0c-16.3 0-31.9 4.5-45.4 12.6l-33.6-62.3c-15.3-28.5-45.1-46.3-77.5-46.3l-19.5 0c-32.4 0-62.1 17.8-77.5 46.3l-33.6 62.3c-13.5-8.1-29.1-12.6-45.4-12.6l-19.5 0c-32.4 0-62.1 17.8-77.5 46.3L18.9 468.6c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L88 441.5 88 480c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32l0-38.5zM415 153l64 64c9.4 9.4 24.6 9.4 33.9 0l64-64c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23L520 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 118.1-23-23c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9z"], - "seedling": [512, 512, [127793, "sprout"], "f4d8", "M512 32c0 113.6-84.6 207.5-194.2 222c-7.1-53.4-30.6-101.6-65.3-139.3C290.8 46.3 364 0 448 0l32 0c17.7 0 32 14.3 32 32zM0 96C0 78.3 14.3 64 32 64l32 0c123.7 0 224 100.3 224 224l0 32 0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160C100.3 320 0 219.7 0 96z"], - "left-right": [512, 512, [8596, "arrows-alt-h"], "f337", "M504.3 273.6c4.9-4.5 7.7-10.9 7.7-17.6s-2.8-13-7.7-17.6l-112-104c-7-6.5-17.2-8.2-25.9-4.4s-14.4 12.5-14.4 22l0 56-192 0 0-56c0-9.5-5.7-18.2-14.4-22s-18.9-2.1-25.9 4.4l-112 104C2.8 243 0 249.3 0 256s2.8 13 7.7 17.6l112 104c7 6.5 17.2 8.2 25.9 4.4s14.4-12.5 14.4-22l0-56 192 0 0 56c0 9.5 5.7 18.2 14.4 22s18.9 2.1 25.9-4.4l112-104z"], - "boxes-packing": [640, 512, [], "e4c7", "M256 48c0-26.5 21.5-48 48-48L592 0c26.5 0 48 21.5 48 48l0 416c0 26.5-21.5 48-48 48l-210.7 0c1.8-5 2.7-10.4 2.7-16l0-242.7c18.6-6.6 32-24.4 32-45.3l0-32c0-26.5-21.5-48-48-48l-112 0 0-80zM571.3 347.3c6.2-6.2 6.2-16.4 0-22.6l-64-64c-6.2-6.2-16.4-6.2-22.6 0l-64 64c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L480 310.6 480 432c0 8.8 7.2 16 16 16s16-7.2 16-16l0-121.4 36.7 36.7c6.2 6.2 16.4 6.2 22.6 0zM0 176c0-8.8 7.2-16 16-16l352 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16L16 224c-8.8 0-16-7.2-16-16l0-32zm352 80l0 224c0 17.7-14.3 32-32 32L64 512c-17.7 0-32-14.3-32-32l0-224 320 0zM144 320c-8.8 0-16 7.2-16 16s7.2 16 16 16l96 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-96 0z"], - "circle-arrow-left": [512, 512, ["arrow-circle-left"], "f0a8", "M512 256A256 256 0 1 0 0 256a256 256 0 1 0 512 0zM215 127c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-71 71L392 232c13.3 0 24 10.7 24 24s-10.7 24-24 24l-214.1 0 71 71c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L103 273c-9.4-9.4-9.4-24.6 0-33.9L215 127z"], - "group-arrows-rotate": [512, 512, [], "e4f6", "M201.1 71.9c16.9-5 26.6-22.9 21.5-39.8s-22.9-26.6-39.8-21.5c-21.5 6.4-41.8 15.5-60.6 27C114.3 34 105.4 32 96 32C60.7 32 32 60.7 32 96c0 9.4 2 18.3 5.6 26.3c-11.5 18.7-20.6 39-27 60.6c-5 16.9 4.6 34.8 21.5 39.8s34.8-4.6 39.8-21.5c4.3-14.6 10.4-28.5 17.9-41.4c2 .2 4.1 .3 6.1 .3c35.3 0 64-28.7 64-64c0-2.1-.1-4.1-.3-6.1c12.9-7.5 26.8-13.6 41.4-17.9zm128-61.3c-16.9-5-34.8 4.6-39.8 21.5s4.6 34.8 21.5 39.8c14.6 4.3 28.5 10.4 41.4 17.9c-.2 2-.3 4.1-.3 6.1c0 35.3 28.7 64 64 64c2.1 0 4.1-.1 6.2-.3c7.5 12.9 13.6 26.8 17.9 41.4c5 16.9 22.9 26.6 39.8 21.5s26.6-22.9 21.5-39.8c-6.4-21.5-15.5-41.8-27-60.6c3.6-8 5.6-16.9 5.6-26.3c0-35.3-28.7-64-64-64c-9.4 0-18.3 2-26.3 5.6c-18.7-11.5-39-20.6-60.6-27zM71.9 310.9c-5-16.9-22.9-26.6-39.8-21.5s-26.6 22.9-21.5 39.8c6.4 21.5 15.5 41.8 27 60.6C34 397.7 32 406.6 32 416c0 35.3 28.7 64 64 64c9.4 0 18.3-2 26.3-5.6c18.7 11.5 39 20.6 60.6 27c16.9 5 34.8-4.6 39.8-21.5s-4.6-34.8-21.5-39.8c-14.6-4.3-28.5-10.4-41.4-17.9c.2-2 .3-4.1 .3-6.2c0-35.3-28.7-64-64-64c-2.1 0-4.1 .1-6.2 .3c-7.5-12.9-13.6-26.8-17.9-41.4zm429.4 18.3c5-16.9-4.6-34.8-21.5-39.8s-34.8 4.6-39.8 21.5c-4.3 14.6-10.4 28.5-17.9 41.4c-2-.2-4.1-.3-6.2-.3c-35.3 0-64 28.7-64 64c0 2.1 .1 4.1 .3 6.2c-12.9 7.5-26.8 13.6-41.4 17.9c-16.9 5-26.6 22.9-21.5 39.8s22.9 26.6 39.8 21.5c21.5-6.4 41.8-15.5 60.6-27c8 3.6 16.9 5.6 26.3 5.6c35.3 0 64-28.7 64-64c0-9.4-2-18.3-5.6-26.3c11.5-18.7 20.6-39 27-60.6zM192.8 256.8c0-15.6 5.6-29.9 14.9-41.1L223 231c6.6 6.6 17.8 1.9 17.8-7.4l0-60.5c0-5.7-4.7-10.4-10.4-10.4l-60.5 0c-9.3 0-13.9 11.2-7.4 17.8l11.2 11.2c-17.9 19.8-28.9 46.2-28.9 75.1c0 43.6 24.9 81.3 61.1 99.8c11.8 6 26.3 1.4 32.3-10.4s1.4-26.3-10.4-32.3c-20.8-10.6-34.9-32.2-34.9-57zm93.1-58.6c20.8 10.6 34.9 32.2 34.9 57c0 15.6-5.6 29.9-14.9 41.1L290.6 281c-6.6-6.6-17.8-1.9-17.8 7.4l0 60.5c0 5.7 4.7 10.4 10.4 10.4l60.5 0c9.3 0 13.9-11.2 7.4-17.8l-11.2-11.2c17.9-19.8 28.9-46.2 28.9-75.1c0-43.6-24.9-81.3-61.1-99.8c-11.8-6-26.3-1.4-32.3 10.4s-1.4 26.3 10.4 32.3z"], - "bowl-food": [512, 512, [], "e4c6", "M0 192c0-35.3 28.7-64 64-64c.5 0 1.1 0 1.6 0C73 91.5 105.3 64 144 64c15 0 29 4.1 40.9 11.2C198.2 49.6 225.1 32 256 32s57.8 17.6 71.1 43.2C339 68.1 353 64 368 64c38.7 0 71 27.5 78.4 64c.5 0 1.1 0 1.6 0c35.3 0 64 28.7 64 64c0 11.7-3.1 22.6-8.6 32L8.6 224C3.1 214.6 0 203.7 0 192zm0 91.4C0 268.3 12.3 256 27.4 256l457.1 0c15.1 0 27.4 12.3 27.4 27.4c0 70.5-44.4 130.7-106.7 154.1L403.5 452c-2 16-15.6 28-31.8 28l-231.5 0c-16.1 0-29.8-12-31.8-28l-1.8-14.4C44.4 414.1 0 353.9 0 283.4z"], - "candy-cane": [512, 512, [], "f786", "M348.8 131.5c3.7-2.3 7.9-3.5 12.2-3.5c12.7 0 23 10.3 23 23l0 5.6c0 9.9-5.1 19.1-13.5 24.3L30.1 393.7C.1 412.5-9 451.9 9.7 481.9s58.2 39.1 88.2 20.4L438.4 289.5c45.8-28.6 73.6-78.8 73.6-132.8l0-5.6C512 67.6 444.4 0 361 0c-28.3 0-56 8-80.1 23L254.1 39.7c-30 18.7-39.1 58.2-20.4 88.2s58.2 39.1 88.2 20.4l26.8-16.8zM298.4 49.8c9.2-5.7 19.1-10.1 29.4-13.1L348 97.5c-5.7 1.4-11.2 3.7-16.3 6.8l-12.6 7.9L298.4 49.8zm88.5 52.7l46.2-46.2c8.5 6.5 16.1 14.1 22.6 22.6l-46.2 46.2c-5.1-9.6-13-17.5-22.6-22.6zm28.9 59.3l61.6 20.5c-2.2 10.5-5.8 20.7-10.5 30.2l-62-20.7c6.2-8.8 10.1-19.1 11-30.1zm-86.1 82.5l60.4 37.7-30.2 18.9-60.4-37.7 30.2-18.9zm-107.2 67l60.4 37.7-30.2 18.9-60.4-37.7 30.2-18.9zM119.3 375.7l60.4 37.7-30.2 18.9L89.1 394.6l30.2-18.9z"], - "arrow-down-wide-short": [576, 512, ["sort-amount-asc", "sort-amount-down"], "f160", "M151.6 469.6C145.5 476.2 137 480 128 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L96 365.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 301.7 32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L320 96z"], - "cloud-bolt": [512, 512, [127785, "thunderstorm"], "f76c", "M0 224c0 53 43 96 96 96l47.2 0L290 202.5c17.6-14.1 42.6-14 60.2 .2s22.8 38.6 12.8 58.8L333.7 320l18.3 0 64 0c53 0 96-43 96-96s-43-96-96-96c-.5 0-1.1 0-1.6 0c1.1-5.2 1.6-10.5 1.6-16c0-44.2-35.8-80-80-80c-24.3 0-46.1 10.9-60.8 28C256.5 24.3 219.1 0 176 0C114.1 0 64 50.1 64 112c0 7.1 .7 14.1 1.9 20.8C27.6 145.4 0 181.5 0 224zm330.1 3.6c-5.8-4.7-14.2-4.7-20.1-.1l-160 128c-5.3 4.2-7.4 11.4-5.1 17.8s8.3 10.7 15.1 10.7l70.1 0L177.7 488.8c-3.4 6.7-1.6 14.9 4.3 19.6s14.2 4.7 20.1 .1l160-128c5.3-4.2 7.4-11.4 5.1-17.8s-8.3-10.7-15.1-10.7l-70.1 0 52.4-104.8c3.4-6.7 1.6-14.9-4.2-19.6z"], - "text-slash": [640, 512, ["remove-format"], "f87d", "M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L355.7 253.5 400.2 96 503 96 497 120.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l11-44.1C577.6 61.3 554.7 32 523.5 32L376.1 32l-.3 0L204.5 32c-22 0-41.2 15-46.6 36.4l-6.3 25.2L38.8 5.1zm168 131.7c.1-.3 .2-.7 .3-1L217 96l116.7 0L301.3 210.8l-94.5-74.1zM243.3 416L192 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-42.2 0 17.6-62.1L272.9 311 243.3 416z"], - "face-smile-wink": [512, 512, [128521, "smile-wink"], "f4da", "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm156.4 25.6c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2c-17.6-23.5-52.8-23.5-70.4 0z"], - "file-word": [384, 512, [], "f1c2", "M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM111 257.1l26.8 89.2 31.6-90.3c3.4-9.6 12.5-16.1 22.7-16.1s19.3 6.4 22.7 16.1l31.6 90.3L273 257.1c3.8-12.7 17.2-19.9 29.9-16.1s19.9 17.2 16.1 29.9l-48 160c-3 10-12 16.9-22.4 17.1s-19.8-6.2-23.2-16.1L192 336.6l-33.3 95.3c-3.4 9.8-12.8 16.3-23.2 16.1s-19.5-7.1-22.4-17.1l-48-160c-3.8-12.7 3.4-26.1 16.1-29.9s26.1 3.4 29.9 16.1z"], - "file-powerpoint": [384, 512, [], "f1c4", "M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM136 240l68 0c42 0 76 34 76 76s-34 76-76 76l-44 0 0 32c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-56 0-104c0-13.3 10.7-24 24-24zm68 104c15.5 0 28-12.5 28-28s-12.5-28-28-28l-44 0 0 56 44 0z"], - "arrows-left-right": [512, 512, ["arrows-h"], "f07e", "M406.6 374.6l96-96c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224l-293.5 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288l293.5 0-41.4 41.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z"], - "house-lock": [640, 512, [], "e510", "M384 480c0 11.7 3.1 22.6 8.6 32l-.6 0c-22.1 0-40-17.9-40-40l0-24 0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 64 0 24c0 22.1-17.9 40-40 40l-24 0-31.9 0c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2l-16 0c-22.1 0-40-17.9-40-40l0-112c0-.9 0-1.9 .1-2.8l0-69.7-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L490.7 166.3C447.2 181.7 416 223.2 416 272l0 24.6c-19.1 11.1-32 31.7-32 55.4l0 128zM528 240c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80l0 48c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l0-48z"], - "cloud-arrow-down": [640, 512, [62337, "cloud-download", "cloud-download-alt"], "f0ed", "M144 480C64.5 480 0 415.5 0 336c0-62.8 40.2-116.2 96.2-135.9c-.1-2.7-.2-5.4-.2-8.1c0-88.4 71.6-160 160-160c59.3 0 111 32.2 138.7 80.2C409.9 102 428.3 96 448 96c53 0 96 43 96 96c0 12.2-2.3 23.8-6.4 34.6C596 238.4 640 290.1 640 352c0 70.7-57.3 128-128 128l-368 0zm79-167l80 80c9.4 9.4 24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-39 39L344 184c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 134.1-39-39c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9z"], - "children": [640, 512, [], "e4e1", "M160 0a64 64 0 1 1 0 128A64 64 0 1 1 160 0zM88 480l0-80-17.8 0c-10.9 0-18.6-10.7-15.2-21.1l31.1-93.4L57.5 323.3c-10.7 14.1-30.8 16.8-44.8 6.2s-16.8-30.7-6.2-44.8L65.4 207c22.4-29.6 57.5-47 94.6-47s72.2 17.4 94.6 47l58.9 77.7c10.7 14.1 7.9 34.2-6.2 44.8s-34.2 7.9-44.8-6.2l-28.6-37.8L265 378.9c3.5 10.4-4.3 21.1-15.2 21.1L232 400l0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-80-16 0 0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32zM480 0a64 64 0 1 1 0 128A64 64 0 1 1 480 0zm-8 384l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-179.5L395.1 321c-9.4 15-29.2 19.4-44.1 10s-19.4-29.2-10-44.1l51.7-82.1c17.6-27.9 48.3-44.9 81.2-44.9l12.3 0c33 0 63.7 16.9 81.2 44.9L619.1 287c9.4 15 4.9 34.7-10 44.1s-34.7 4.9-44.1-10L552 300.5 552 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-16 0z"], - "chalkboard": [576, 512, ["blackboard"], "f51b", "M96 32C60.7 32 32 60.7 32 96l0 288 64 0L96 96l384 0 0 288 64 0 0-288c0-35.3-28.7-64-64-64L96 32zM224 384l0 32L32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-128 0 0-32c0-17.7-14.3-32-32-32l-128 0c-17.7 0-32 14.3-32 32z"], - "user-large-slash": [640, 512, ["user-alt-slash"], "f4fa", "M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L381.9 274c48.5-23.2 82.1-72.7 82.1-130C464 64.5 399.5 0 320 0C250.4 0 192.4 49.3 178.9 114.9L38.8 5.1zM545.5 512L528 512 284.3 320l-59 0C136.2 320 64 392.2 64 481.3c0 17 13.8 30.7 30.7 30.7l450.6 0 .3 0z"], - "envelope-open": [512, 512, [62135], "f2b6", "M64 208.1L256 65.9 448 208.1l0 47.4L289.5 373c-9.7 7.2-21.4 11-33.5 11s-23.8-3.9-33.5-11L64 255.5l0-47.4zM256 0c-12.1 0-23.8 3.9-33.5 11L25.9 156.7C9.6 168.8 0 187.8 0 208.1L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-239.9c0-20.3-9.6-39.4-25.9-51.4L289.5 11C279.8 3.9 268.1 0 256 0z"], - "handshake-simple-slash": [640, 512, ["handshake-alt-slash"], "e05f", "M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-135-105.8c-1.1-11.4-6.3-22.3-15.3-30.7l-134.2-123-23.4 18.2-26-20.3 77.2-60.1c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L550.2 352l41.8 0c26.5 0 48-21.5 48-48l0-128c0-26.5-21.5-48-48-48l-76 0-4 0-.7 0-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2l-89.7 72.6-25.8-20.3 81.8-66.2c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-35.5 23.7L38.8 5.1zM0 176L0 304c0 26.5 21.5 48 48 48l108.2 0 91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c.8-.8 1.5-1.7 2.2-2.6L41.2 128.5C17.9 131.8 0 151.8 0 176z"], - "mattress-pillow": [640, 512, [], "e525", "M256 64L64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l192 0 0-384zm32 384l288 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L288 64l0 384zM64 160c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 192c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-192z"], - "guarani-sign": [384, 512, [], "e19a", "M192 0c-17.7 0-32 14.3-32 32l0 34.7C69.2 81.9 0 160.9 0 256s69.2 174.1 160 189.3l0 34.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-34.7c90.8-15.2 160-94.2 160-189.3c0-17.7-14.3-32-32-32l-128 0 0-92c22.1 5.7 41.8 17.1 57.6 32.6c12.6 12.4 32.9 12.2 45.3-.4s12.2-32.9-.5-45.3C299 92 263.5 73.3 224 66.7L224 32c0-17.7-14.3-32-32-32zM160 132L160 380c-55.2-14.2-96-64.3-96-124s40.8-109.8 96-124zM224 380l0-92 92 0c-11.6 45-47 80.4-92 92z"], - "arrows-rotate": [512, 512, [128472, "refresh", "sync"], "f021", "M105.1 202.6c7.7-21.8 20.2-42.3 37.8-59.8c62.5-62.5 163.8-62.5 226.3 0L386.3 160 352 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l111.5 0c0 0 0 0 0 0l.4 0c17.7 0 32-14.3 32-32l0-112c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 35.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0C73.2 122 55.6 150.7 44.8 181.4c-5.9 16.7 2.9 34.9 19.5 40.8s34.9-2.9 40.8-19.5zM39 289.3c-5 1.5-9.8 4.2-13.7 8.2c-4 4-6.7 8.8-8.1 14c-.3 1.2-.6 2.5-.8 3.8c-.3 1.7-.4 3.4-.4 5.1L16 432c0 17.7 14.3 32 32 32s32-14.3 32-32l0-35.1 17.6 17.5c0 0 0 0 0 0c87.5 87.4 229.3 87.4 316.7 0c24.4-24.4 42.1-53.1 52.9-83.8c5.9-16.7-2.9-34.9-19.5-40.8s-34.9 2.9-40.8 19.5c-7.7 21.8-20.2 42.3-37.8 59.8c-62.5 62.5-163.8 62.5-226.3 0l-.1-.1L125.6 352l34.4 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L48.4 288c-1.6 0-3.2 .1-4.8 .3s-3.1 .5-4.6 1z"], - "fire-extinguisher": [512, 512, [129519], "f134", "M500.3 7.3C507.7 13.3 512 22.4 512 32l0 96c0 9.6-4.3 18.7-11.7 24.7s-17.2 8.5-26.6 6.6l-160-32C301.5 124.9 292 115.7 289 104l-65 0 0 34.8c37.8 18 64 56.5 64 101.2l0 144L64 384l0-144c0-44.7 26.2-83.2 64-101.2l0-28.8c-36.2 11.1-66 36.9-82.3 70.5c-5.8 11.9-20.2 16.9-32.1 11.1S-3.3 171.4 2.5 159.5C26.7 109.8 72.7 72.6 128 60.4L128 32c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 24 65 0c3-11.7 12.5-20.9 24.7-23.4l160-32c9.4-1.9 19.1 .6 26.6 6.6zM288 416l0 32c0 35.3-28.7 64-64 64l-96 0c-35.3 0-64-28.7-64-64l0-32 224 0zM176 96a16 16 0 1 0 0-32 16 16 0 1 0 0 32z"], - "cruzeiro-sign": [448, 512, [], "e152", "M96 256c0-88.4 71.6-160 160-160c41 0 78.3 15.4 106.7 40.7c13.2 11.8 33.4 10.7 45.2-2.5s10.7-33.4-2.5-45.2c-39.6-35.5-92-57-149.3-57C132.3 32 32 132.3 32 256s100.3 224 224 224c57.4 0 109.7-21.6 149.3-57c13.2-11.8 14.3-32 2.5-45.2s-32-14.3-45.2-2.5C334.3 400.6 297 416 256 416l0-96 0-8.7c0-12.8 10.4-23.3 23.3-23.3c4.6 0 9.1 1.4 12.9 3.9l10.1 6.7c14.7 9.8 34.6 5.8 44.4-8.9s5.8-34.6-8.9-44.4l-10.1-6.7c-14.3-9.6-31.2-14.7-48.4-14.7c-12.4 0-24.2 2.6-34.9 7.3c-5.5-4.5-12.6-7.3-20.3-7.3c-17.7 0-32 14.3-32 32l0 55.3 0 8.7 0 82.7C135.5 378 96 321.6 96 256z"], - "greater-than-equal": [448, 512, [], "f532", "M52.1 93.7C35.7 87.1 27.7 68.5 34.3 52.1s25.2-24.4 41.6-17.8l320 128C408 167.1 416 178.9 416 192s-8 24.9-20.1 29.7l-320 128c-16.4 6.6-35-1.4-41.6-17.8s1.4-35 17.8-41.6L297.8 192 52.1 93.7zM416 416c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0z"], - "shield-halved": [512, 512, ["shield-alt"], "f3ed", "M256 0c4.6 0 9.2 1 13.4 2.9L457.7 82.8c22 9.3 38.4 31 38.3 57.2c-.5 99.2-41.3 280.7-213.6 363.2c-16.7 8-36.1 8-52.8 0C57.3 420.7 16.5 239.2 16 140c-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.8 1 251.4 0 256 0zm0 66.8l0 378.1C394 378 431.1 230.1 432 141.4L256 66.8s0 0 0 0z"], - "book-atlas": [448, 512, ["atlas"], "f558", "M0 96C0 43 43 0 96 0L384 0l32 0c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32l0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0L96 512c-53 0-96-43-96-96L0 96zM64 416c0 17.7 14.3 32 32 32l256 0 0-64L96 384c-17.7 0-32 14.3-32 32zM247.4 283.8c-3.7 3.7-6.2 4.2-7.4 4.2s-3.7-.5-7.4-4.2c-3.8-3.7-8-10-11.8-18.9c-6.2-14.5-10.8-34.3-12.2-56.9l63 0c-1.5 22.6-6 42.4-12.2 56.9c-3.8 8.9-8 15.2-11.8 18.9zm42.7-9.9c7.3-18.3 12-41.1 13.4-65.9l31.1 0c-4.7 27.9-21.4 51.7-44.5 65.9zm0-163.8c23.2 14.2 39.9 38 44.5 65.9l-31.1 0c-1.4-24.7-6.1-47.5-13.4-65.9zM368 192a128 128 0 1 0 -256 0 128 128 0 1 0 256 0zM145.3 208l31.1 0c1.4 24.7 6.1 47.5 13.4 65.9c-23.2-14.2-39.9-38-44.5-65.9zm31.1-32l-31.1 0c4.7-27.9 21.4-51.7 44.5-65.9c-7.3 18.3-12 41.1-13.4 65.9zm56.1-75.8c3.7-3.7 6.2-4.2 7.4-4.2s3.7 .5 7.4 4.2c3.8 3.7 8 10 11.8 18.9c6.2 14.5 10.8 34.3 12.2 56.9l-63 0c1.5-22.6 6-42.4 12.2-56.9c3.8-8.9 8-15.2 11.8-18.9z"], - "virus": [512, 512, [], "e074", "M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 11.5c0 49.9-60.3 74.9-95.6 39.6L120.2 75C107.7 62.5 87.5 62.5 75 75s-12.5 32.8 0 45.3l8.2 8.2C118.4 163.7 93.4 224 43.5 224L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l11.5 0c49.9 0 74.9 60.3 39.6 95.6L75 391.8c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l8.2-8.2c35.3-35.3 95.6-10.3 95.6 39.6l0 11.5c0 17.7 14.3 32 32 32s32-14.3 32-32l0-11.5c0-49.9 60.3-74.9 95.6-39.6l8.2 8.2c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-8.2-8.2c-35.3-35.3-10.3-95.6 39.6-95.6l11.5 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-11.5 0c-49.9 0-74.9-60.3-39.6-95.6l8.2-8.2c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-8.2 8.2C348.3 118.4 288 93.4 288 43.5L288 32zM176 224a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm128 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"], - "envelope-circle-check": [640, 512, [], "e4e8", "M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0l57.4-43c23.9-59.8 79.7-103.3 146.3-109.8l13.9-10.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48L48 64zM294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176 0 384c0 35.3 28.7 64 64 64l296.2 0C335.1 417.6 320 378.5 320 336c0-5.6 .3-11.1 .8-16.6l-26.4 19.8zM640 336a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 353.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z"], - "layer-group": [576, 512, [], "f5fd", "M264.5 5.2c14.9-6.9 32.1-6.9 47 0l218.6 101c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 149.8C37.4 145.8 32 137.3 32 128s5.4-17.9 13.9-21.8L264.5 5.2zM476.9 209.6l53.2 24.6c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 277.8C37.4 273.8 32 265.3 32 256s5.4-17.9 13.9-21.8l53.2-24.6 152 70.2c23.4 10.8 50.4 10.8 73.8 0l152-70.2zm-152 198.2l152-70.2 53.2 24.6c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 405.8C37.4 401.8 32 393.3 32 384s5.4-17.9 13.9-21.8l53.2-24.6 152 70.2c23.4 10.8 50.4 10.8 73.8 0z"], - "arrows-to-dot": [512, 512, [], "e4be", "M256 0c17.7 0 32 14.3 32 32l0 32 32 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-64 64c-12.5 12.5-32.8 12.5-45.3 0l-64-64c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8l32 0 0-32c0-17.7 14.3-32 32-32zM169.4 393.4l64-64c12.5-12.5 32.8-12.5 45.3 0l64 64c9.2 9.2 11.9 22.9 6.9 34.9s-16.6 19.8-29.6 19.8l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9zM32 224l32 0 0-32c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c12.5 12.5 12.5 32.8 0 45.3l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm297.4 54.6c-12.5-12.5-12.5-32.8 0-45.3l64-64c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 32 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-64-64zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"], - "archway": [512, 512, [], "f557", "M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l448 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zm0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 64 0 0-128c0-53 43-96 96-96s96 43 96 96l0 128 64 0 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-288L32 128l0 288z"], - "heart-circle-check": [576, 512, [], "e4fd", "M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6l0-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1l0 5.8c0 41.5 17.2 81.2 47.6 109.5zM576 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L416 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z"], - "house-chimney-crack": [576, 512, ["house-damage"], "f6f1", "M575.8 255.5c0 18-15 32.1-32 32.1l-32 0 .7 160.2c.2 35.5-28.5 64.3-64 64.3l-122.1 0L288 448l80.8-67.3c7.8-6.5 7.6-18.6-.4-24.9L250.6 263.2c-14.6-11.5-33.8 7-22.8 22L288 368l-85.5 71.2c-6.1 5-7.5 13.8-3.5 20.5L230.4 512l-102.3 0c-35.3 0-64-28.7-64-64l0-160.4-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L416 100.7 416 64c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 121 52.8 46.4c8 7 12 15 11 24z"], - "file-zipper": [384, 512, ["file-archive"], "f1c6", "M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM96 48c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16zm-6.3 71.8c3.7-14 16.4-23.8 30.9-23.8l14.8 0c14.5 0 27.2 9.7 30.9 23.8l23.5 88.2c1.4 5.4 2.1 10.9 2.1 16.4c0 35.2-28.8 63.7-64 63.7s-64-28.5-64-63.7c0-5.5 .7-11.1 2.1-16.4l23.5-88.2zM112 336c-8.8 0-16 7.2-16 16s7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0z"], - "square": [448, 512, [9632, 9723, 9724, 61590], "f0c8", "M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96z"], - "martini-glass-empty": [512, 512, ["glass-martini"], "f000", "M32 0C19.1 0 7.4 7.8 2.4 19.8s-2.2 25.7 6.9 34.9L224 269.3 224 448l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-178.7L502.6 54.6c9.2-9.2 11.9-22.9 6.9-34.9S492.9 0 480 0L32 0zM256 210.7L109.3 64l293.5 0L256 210.7z"], - "couch": [640, 512, [], "f4b8", "M64 160C64 89.3 121.3 32 192 32l256 0c70.7 0 128 57.3 128 128l0 33.6c-36.5 7.4-64 39.7-64 78.4l0 48-384 0 0-48c0-38.7-27.5-71-64-78.4L64 160zM544 272c0-20.9 13.4-38.7 32-45.3c5-1.8 10.4-2.7 16-2.7c26.5 0 48 21.5 48 48l0 176c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32L96 448c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32L0 272c0-26.5 21.5-48 48-48c5.6 0 11 1 16 2.7c18.6 6.6 32 24.4 32 45.3l0 48 0 32 32 0 384 0 32 0 0-32 0-48z"], - "cedi-sign": [384, 512, [], "e0df", "M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 34.7C101.2 81.9 32 160.9 32 256s69.2 174.1 160 189.3l0 34.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-34.7c30.9-5.2 59.2-17.7 83.2-35.8c14.1-10.6 17-30.7 6.4-44.8s-30.7-17-44.8-6.4c-13.2 9.9-28.3 17.3-44.8 21.6L256 132c16.4 4.2 31.6 11.6 44.8 21.6c14.1 10.6 34.2 7.8 44.8-6.4s7.8-34.2-6.4-44.8c-24-18-52.4-30.6-83.2-35.8L256 32zM192 132L192 380c-55.2-14.2-96-64.3-96-124s40.8-109.8 96-124z"], - "italic": [384, 512, [], "f033", "M128 64c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-58.7 0L160 416l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l58.7 0L224 96l-64 0c-17.7 0-32-14.3-32-32z"], - "table-cells-column-lock": [640, 512, [], "e678", "M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 65.1c-37.8 5.4-69.4 29.6-85.2 62.9L360 224l0 64 56 0 0 8.6c-19.1 11.1-32 31.7-32 55.4l-24 0 0 64 24 0 0 64L64 480c-35.3 0-64-28.7-64-64L0 96zm208 0l0 64 88 0 0-64-88 0zm240 0l-88 0 0 64 88 0 0-64zM208 224l0 64 88 0 0-64-88 0zm0 128l0 64 88 0 0-64-88 0zM528 240c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80l0 48c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l0-48z"], - "church": [640, 512, [9962], "f51d", "M344 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 46.4L183.3 210c-14.5 8.7-23.3 24.3-23.3 41.2L160 512l96 0 0-96c0-35.3 28.7-64 64-64s64 28.7 64 64l0 96 96 0 0-260.8c0-16.9-8.8-32.5-23.3-41.2L344 142.4 344 96l32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-24zM24.9 330.3C9.5 338.8 0 354.9 0 372.4L0 464c0 26.5 21.5 48 48 48l80 0 0-238.4L24.9 330.3zM592 512c26.5 0 48-21.5 48-48l0-91.6c0-17.5-9.5-33.6-24.9-42.1L512 273.6 512 512l80 0z"], - "comments-dollar": [640, 512, [], "f653", "M416 176c0 97.2-93.1 176-208 176c-38.2 0-73.9-8.7-104.7-23.9c-7.5 4-16 7.9-25.2 11.4C59.8 346.4 37.8 352 16 352c-6.9 0-13.1-4.5-15.2-11.1s.2-13.8 5.8-17.9c0 0 0 0 0 0s0 0 0 0l.2-.2c.2-.2 .6-.4 1.1-.8c1-.8 2.5-2 4.3-3.7c3.6-3.3 8.5-8.1 13.3-14.3c5.5-7 10.7-15.4 14.2-24.7C14.7 250.3 0 214.6 0 176C0 78.8 93.1 0 208 0S416 78.8 416 176zM231.5 383C348.9 372.9 448 288.3 448 176c0-5.2-.2-10.4-.6-15.5C555.1 167.1 640 243.2 640 336c0 38.6-14.7 74.3-39.6 103.4c3.5 9.4 8.7 17.7 14.2 24.7c4.8 6.2 9.7 11 13.3 14.3c1.8 1.6 3.3 2.9 4.3 3.7c.5 .4 .9 .7 1.1 .8l.2 .2s0 0 0 0s0 0 0 0c5.6 4.1 7.9 11.3 5.8 17.9c-2.1 6.6-8.3 11.1-15.2 11.1c-21.8 0-43.8-5.6-62.1-12.5c-9.2-3.5-17.8-7.4-25.2-11.4C505.9 503.3 470.2 512 432 512c-95.6 0-176.2-54.6-200.5-129zM228 72c0-11-9-20-20-20s-20 9-20 20l0 14c-7.6 1.7-15.2 4.4-22.2 8.5c-13.9 8.3-25.9 22.8-25.8 43.9c.1 20.3 12 33.1 24.7 40.7c11 6.6 24.7 10.8 35.6 14l1.7 .5c12.6 3.8 21.8 6.8 28 10.7c5.1 3.2 5.8 5.4 5.9 8.2c.1 5-1.8 8-5.9 10.5c-5 3.1-12.9 5-21.4 4.7c-11.1-.4-21.5-3.9-35.1-8.5c-2.3-.8-4.7-1.6-7.2-2.4c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3c1.9 .6 4 1.3 6.1 2.1c0 0 0 0 0 0s0 0 0 0c8.3 2.9 17.9 6.2 28.2 8.4l0 14.6c0 11 9 20 20 20s20-9 20-20l0-13.8c8-1.7 16-4.5 23.2-9c14.3-8.9 25.1-24.1 24.8-45c-.3-20.3-11.7-33.4-24.6-41.6c-11.5-7.2-25.9-11.6-37.1-15l-.7-.2c-12.8-3.9-21.9-6.7-28.3-10.5c-5.2-3.1-5.3-4.9-5.3-6.7c0-3.7 1.4-6.5 6.2-9.3c5.4-3.2 13.6-5.1 21.5-5c9.6 .1 20.2 2.2 31.2 5.2c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-6.5-1.7-13.7-3.4-21.1-4.7L228 72z"], - "democrat": [640, 512, [], "f747", "M64 32c0-8.9 3.8-20.9 6.2-27.3C71.2 1.8 74 0 77 0c1.9 0 3.8 .7 5.2 2.1L128 45.7 173.8 2.1C175.2 .7 177.1 0 179 0c3 0 5.8 1.8 6.8 4.7c2.4 6.5 6.2 18.4 6.2 27.3c0 26.5-21.9 42-29.5 46.6l76.2 72.6c6 5.7 13.9 8.8 22.1 8.8L480 160l32 0c40.3 0 78.2 19 102.4 51.2l19.2 25.6c10.6 14.1 7.7 34.2-6.4 44.8s-34.2 7.7-44.8-6.4l-19.2-25.6c-5.3-7-11.8-12.8-19.2-17l0 87.4-352 0-40.4-94.3c-3.9-9.2-15.3-12.6-23.6-7l-42.1 28c-9.1 6.1-19.7 9.3-30.7 9.3l-2 0C23.9 256 0 232.1 0 202.7c0-12.1 4.1-23.8 11.7-33.3L87.6 74.6C78.1 67.4 64 53.2 64 32zM448 352l96 0 0 64 0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-64-160 0 0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-64 0-64 96 0 160 0zM260.9 210.9c-.9-1.8-2.8-2.9-4.8-2.9s-3.9 1.1-4.8 2.9l-10.5 20.5-23.5 3.3c-2 .3-3.7 1.6-4.3 3.5s-.1 3.9 1.3 5.3l17 16-4 22.6c-.3 1.9 .5 3.9 2.1 5s3.8 1.3 5.6 .4l21-10.7 21 10.7c1.8 .9 4 .8 5.6-.4s2.5-3.1 2.1-5l-4-22.6 17-16c1.5-1.4 2-3.4 1.3-5.3s-2.3-3.2-4.3-3.5l-23.5-3.3-10.5-20.5zM368.1 208c-2 0-3.9 1.1-4.8 2.9l-10.5 20.5-23.5 3.3c-2 .3-3.7 1.6-4.3 3.5s-.1 3.9 1.3 5.3l17 16-4 22.6c-.3 1.9 .5 3.9 2.1 5s3.8 1.3 5.6 .4l21-10.7 21 10.7c1.8 .9 4 .8 5.6-.4s2.5-3.1 2.1-5l-4-22.6 17-16c1.5-1.4 2-3.4 1.4-5.3s-2.3-3.2-4.3-3.5l-23.5-3.3-10.5-20.5c-.9-1.8-2.8-2.9-4.8-2.9zm116.8 2.9c-.9-1.8-2.8-2.9-4.8-2.9s-3.9 1.1-4.8 2.9l-10.5 20.5-23.5 3.3c-2 .3-3.7 1.6-4.3 3.5s-.1 3.9 1.3 5.3l17 16-4 22.6c-.3 1.9 .5 3.9 2.1 5s3.8 1.3 5.6 .4l21-10.7 21 10.7c1.8 .9 4 .8 5.6-.4s2.5-3.1 2.1-5l-4-22.6 17-16c1.5-1.4 2-3.4 1.4-5.3s-2.3-3.2-4.3-3.5l-23.5-3.3-10.5-20.5z"], - "z": [384, 512, [122], "5a", "M0 64C0 46.3 14.3 32 32 32l320 0c12.4 0 23.7 7.2 29 18.4s3.6 24.5-4.4 34.1L100.3 416 352 416c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-12.4 0-23.7-7.2-29-18.4s-3.6-24.5 4.4-34.1L283.7 96 32 96C14.3 96 0 81.7 0 64z"], - "person-skiing": [512, 512, [9975, "skiing"], "f7c9", "M380.7 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM2.7 268.9c6.1-11.8 20.6-16.3 32.4-10.2L232.7 361.3l46.2-69.2-75.1-75.1c-14.6-14.6-20.4-33.9-18.4-52.1l108.8 52 39.3 39.3c16.2 16.2 18.7 41.5 6 60.6L289.8 391l128.7 66.8c13.6 7.1 29.8 7.2 43.6 .3l15.2-7.6c11.9-5.9 26.3-1.1 32.2 10.7s1.1 26.3-10.7 32.2l-15.2 7.6c-27.5 13.7-59.9 13.5-87.2-.7L12.9 301.3C1.2 295.2-3.4 280.7 2.7 268.9zM118.9 65.6L137 74.2l8.7-17.4c4-7.9 13.6-11.1 21.5-7.2s11.1 13.6 7.2 21.5l-8.5 16.9 54.7 26.2c1.5-.7 3.1-1.4 4.7-2.1l83.4-33.4c34.2-13.7 72.8 4.2 84.5 39.2l17.1 51.2 52.1 26.1c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3l-58.1-29c-11.4-5.7-20-15.7-24.1-27.8l-5.8-17.3-27.3 12.1-6.8 3-6.7-3.2L151.5 116.7l-9.2 18.4c-4 7.9-13.6 11.1-21.5 7.2s-11.1-13.6-7.2-21.5l9-18-17.6-8.4c-8-3.8-11.3-13.4-7.5-21.3s13.4-11.3 21.3-7.5z"], - "road-lock": [640, 512, [], "e567", "M288 32l-74.8 0c-27.1 0-51.3 17.1-60.3 42.6L35.1 407.2c-2.1 5.9-3.1 12-3.1 18.2C32 455.5 56.5 480 86.6 480L288 480l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64 32 0 0-128c0-23.7 12.9-44.4 32-55.4l0-24.6c0-58.3 44.6-106.2 101.5-111.5L487.1 74.6C478 49.1 453.9 32 426.8 32L352 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm64 192l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32zm176 16c17.7 0 32 14.3 32 32l0 48-64 0 0-48c0-17.7 14.3-32 32-32zm-80 32l0 48c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80z"], - "a": [384, 512, [97], "41", "M221.5 51.7C216.6 39.8 204.9 32 192 32s-24.6 7.8-29.5 19.7l-120 288-40 96c-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2L93.3 384l197.3 0 31.8 76.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8l-40-96-120-288zM264 320l-144 0 72-172.8L264 320z"], - "temperature-arrow-down": [576, 512, ["temperature-down"], "e03f", "M128 112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 164.5c0 17.3 7.1 31.9 15.3 42.5C249.8 332.6 256 349.5 256 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9c8.2-10.6 15.3-25.2 15.3-42.5L128 112zM176 0C114.1 0 64 50.1 64 112l0 164.4c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C43.2 304.2 32 334.8 32 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.2-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6L288 112C288 50.1 237.9 0 176 0zm0 416c26.5 0 48-21.5 48-48c0-20.9-13.4-38.7-32-45.3l0-50.7c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 50.7c-18.6 6.6-32 24.4-32 45.3c0 26.5 21.5 48 48 48zm336-64l-32 0 0-288c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 288-32 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c6 6 14.1 9.4 22.6 9.4s16.6-3.4 22.6-9.4l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8z"], - "feather-pointed": [512, 512, ["feather-alt"], "f56b", "M278.5 215.6L23 471c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l74.8-74.8c7.4 4.6 15.3 8.2 23.8 10.5C200.3 452.8 270 454.5 338 409.4c12.2-8.1 5.8-25.4-8.8-25.4l-16.1 0c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l97.7-29.3c3.4-1 6.4-3.1 8.4-6.1c4.4-6.4 8.6-12.9 12.6-19.6c6.2-10.3-1.5-23-13.5-23l-38.6 0c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l80.9-24.3c4.6-1.4 8.4-4.8 10.2-9.3C494.5 163 507.8 86.1 511.9 36.8c.8-9.9-3-19.6-10-26.6s-16.7-10.8-26.6-10C391.5 7 228.5 40.5 137.4 131.6C57.3 211.7 56.7 302.3 71.3 356.4c2.1 7.9 12 9.6 17.8 3.8L253.6 195.8c6.2-6.2 16.4-6.2 22.6 0c5.4 5.4 6.1 13.6 2.2 19.8z"], - "p": [320, 512, [112], "50", "M0 96C0 60.7 28.7 32 64 32l96 0c88.4 0 160 71.6 160 160s-71.6 160-160 160l-96 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 320 0 96zM64 288l96 0c53 0 96-43 96-96s-43-96-96-96L64 96l0 192z"], - "snowflake": [448, 512, [10052, 10054], "f2dc", "M224 0c17.7 0 32 14.3 32 32l0 30.1 15-15c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-49 49 0 70.3 61.4-35.8 17.7-66.1c3.4-12.8 16.6-20.4 29.4-17s20.4 16.6 17 29.4l-5.2 19.3 23.6-13.8c15.3-8.9 34.9-3.7 43.8 11.5s3.8 34.9-11.5 43.8l-25.3 14.8 21.7 5.8c12.8 3.4 20.4 16.6 17 29.4s-16.6 20.4-29.4 17l-67.7-18.1L287.5 256l60.9 35.5 67.7-18.1c12.8-3.4 26 4.2 29.4 17s-4.2 26-17 29.4l-21.7 5.8 25.3 14.8c15.3 8.9 20.4 28.5 11.5 43.8s-28.5 20.4-43.8 11.5l-23.6-13.8 5.2 19.3c3.4 12.8-4.2 26-17 29.4s-26-4.2-29.4-17l-17.7-66.1L256 311.7l0 70.3 49 49c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-15-15 0 30.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-30.1-15 15c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l49-49 0-70.3-61.4 35.8-17.7 66.1c-3.4 12.8-16.6 20.4-29.4 17s-20.4-16.6-17-29.4l5.2-19.3L48.1 395.6c-15.3 8.9-34.9 3.7-43.8-11.5s-3.7-34.9 11.5-43.8l25.3-14.8-21.7-5.8c-12.8-3.4-20.4-16.6-17-29.4s16.6-20.4 29.4-17l67.7 18.1L160.5 256 99.6 220.5 31.9 238.6c-12.8 3.4-26-4.2-29.4-17s4.2-26 17-29.4l21.7-5.8L15.9 171.6C.6 162.7-4.5 143.1 4.4 127.9s28.5-20.4 43.8-11.5l23.6 13.8-5.2-19.3c-3.4-12.8 4.2-26 17-29.4s26 4.2 29.4 17l17.7 66.1L192 200.3l0-70.3L143 81c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l15 15L192 32c0-17.7 14.3-32 32-32z"], - "newspaper": [512, 512, [128240], "f1ea", "M96 96c0-35.3 28.7-64 64-64l288 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L80 480c-44.2 0-80-35.8-80-80L0 128c0-17.7 14.3-32 32-32s32 14.3 32 32l0 272c0 8.8 7.2 16 16 16s16-7.2 16-16L96 96zm64 24l0 80c0 13.3 10.7 24 24 24l112 0c13.3 0 24-10.7 24-24l0-80c0-13.3-10.7-24-24-24L184 96c-13.3 0-24 10.7-24 24zm208-8c0 8.8 7.2 16 16 16l48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0c-8.8 0-16 7.2-16 16zm0 96c0 8.8 7.2 16 16 16l48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0c-8.8 0-16 7.2-16 16zM160 304c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-256 0c-8.8 0-16 7.2-16 16zm0 96c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-256 0c-8.8 0-16 7.2-16 16z"], - "rectangle-ad": [576, 512, ["ad"], "f641", "M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM229.5 173.3l72 144c5.9 11.9 1.1 26.3-10.7 32.2s-26.3 1.1-32.2-10.7L253.2 328l-90.3 0-5.4 10.7c-5.9 11.9-20.3 16.7-32.2 10.7s-16.7-20.3-10.7-32.2l72-144c4.1-8.1 12.4-13.3 21.5-13.3s17.4 5.1 21.5 13.3zM208 237.7L186.8 280l42.3 0L208 237.7zM392 256a24 24 0 1 0 0 48 24 24 0 1 0 0-48zm24-43.9l0-28.1c0-13.3 10.7-24 24-24s24 10.7 24 24l0 96 0 48c0 13.3-10.7 24-24 24c-6.6 0-12.6-2.7-17-7c-9.4 4.5-19.9 7-31 7c-39.8 0-72-32.2-72-72s32.2-72 72-72c8.4 0 16.5 1.4 24 4.1z"], - "circle-arrow-right": [512, 512, ["arrow-circle-right"], "f0a9", "M0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM297 385c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l71-71L120 280c-13.3 0-24-10.7-24-24s10.7-24 24-24l214.1 0-71-71c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L409 239c9.4 9.4 9.4 24.6 0 33.9L297 385z"], - "filter-circle-xmark": [576, 512, [], "e17b", "M3.9 22.9C10.5 8.9 24.5 0 40 0L472 0c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L396.4 195.6C316.2 212.1 256 283 256 368c0 27.4 6.3 53.4 17.5 76.5c-1.6-.8-3.2-1.8-4.7-2.9l-64-48c-8.1-6-12.8-15.5-12.8-25.6l0-79.1L9 65.3C-.7 53.4-2.8 36.8 3.9 22.9zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L432 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L409.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L432 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L454.6 368l36.7-36.7z"], - "locust": [576, 512, [], "e520", "M312 32c-13.3 0-24 10.7-24 24s10.7 24 24 24l16 0c98.7 0 180.6 71.4 197 165.4c-9-3.5-18.8-5.4-29-5.4l-64.2 0-41.8-97.5c-3.4-7.9-10.8-13.4-19.3-14.4s-17 2.7-22.1 9.6l-40.9 55.5-21.7-50.7c-3.3-7.8-10.5-13.2-18.9-14.3s-16.7 2.3-22 8.9l-240 304c-8.2 10.4-6.4 25.5 4 33.7s25.5 6.4 33.7-4l79.4-100.5 43 16.4-40.5 55c-7.9 10.7-5.6 25.7 5.1 33.6s25.7 5.6 33.6-5.1L215.1 400l74.5 0-29.3 42.3c-7.5 10.9-4.8 25.8 6.1 33.4s25.8 4.8 33.4-6.1L348 400l80.4 0 38.8 67.9c6.6 11.5 21.2 15.5 32.7 8.9s15.5-21.2 8.9-32.7L483.6 400l12.4 0c44.1 0 79.8-35.7 80-79.7c0-.1 0-.2 0-.3l0-40C576 143 465 32 328 32l-16 0zm50.5 168l17.1 40L333 240l29.5-40zm-87.7 38.1l-1.4 1.9-48.2 0 32.7-41.5 16.9 39.5zM88.8 240C57.4 240 32 265.4 32 296.8c0 15.5 6.3 30 16.9 40.4L126.7 240l-37.9 0zM496 288a16 16 0 1 1 0 32 16 16 0 1 1 0-32z"], - "sort": [320, 512, ["unsorted"], "f0dc", "M137.4 41.4c12.5-12.5 32.8-12.5 45.3 0l128 128c9.2 9.2 11.9 22.9 6.9 34.9s-16.6 19.8-29.6 19.8L32 224c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9l128-128zm0 429.3l-128-128c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8l256 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-128 128c-12.5 12.5-32.8 12.5-45.3 0z"], - "list-ol": [512, 512, ["list-1-2", "list-numeric"], "f0cb", "M24 56c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24l0 120 16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0 0-96-8 0C34.7 80 24 69.3 24 56zM86.7 341.2c-6.5-7.4-18.3-6.9-24 1.2L51.5 357.9c-7.7 10.8-22.7 13.3-33.5 5.6s-13.3-22.7-5.6-33.5l11.1-15.6c23.7-33.2 72.3-35.6 99.2-4.9c21.3 24.4 20.8 60.9-1.1 84.7L86.8 432l33.2 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-88 0c-9.5 0-18.2-5.6-22-14.4s-2.1-18.9 4.3-25.9l72-78c5.3-5.8 5.4-14.6 .3-20.5zM224 64l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z"], - "person-dress-burst": [640, 512, [], "e544", "M528 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM390.2 384l17.8 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 16 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 17.8 0c10.9 0 18.6-10.7 15.2-21.1L546.7 248.1l33.9 56.3c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-53.6-89.2c-20.2-33.7-56.7-54.3-96-54.3l-11.6 0c-39.3 0-75.7 20.6-96 54.3l-53.6 89.2c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9l33.9-56.3L375 362.9c-3.5 10.4 4.3 21.1 15.2 21.1zM190.9 18.1C188.4 12 182.6 8 176 8s-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L176 286.1l58.6 53.9c4.8 4.4 11.9 5.5 17.8 2.6s9.5-9 9-15.5l-5.6-79.4 50.5-7.8 24.4-40.5-55.2-38L315 92.2c3.3-5.7 2.7-12.8-1.4-17.9s-10.9-7.2-17.2-5.3L220.3 92.1l-29.4-74z"], - "money-check-dollar": [576, 512, ["money-check-alt"], "f53d", "M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zM272 192l224 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zM256 304c0-8.8 7.2-16 16-16l224 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16zM164 152l0 13.9c7.5 1.2 14.6 2.9 21.1 4.7c10.7 2.8 17 13.8 14.2 24.5s-13.8 17-24.5 14.2c-11-2.9-21.6-5-31.2-5.2c-7.9-.1-16 1.8-21.5 5c-4.8 2.8-6.2 5.6-6.2 9.3c0 1.8 .1 3.5 5.3 6.7c6.3 3.8 15.5 6.7 28.3 10.5l.7 .2c11.2 3.4 25.6 7.7 37.1 15c12.9 8.1 24.3 21.3 24.6 41.6c.3 20.9-10.5 36.1-24.8 45c-7.2 4.5-15.2 7.3-23.2 9l0 13.8c0 11-9 20-20 20s-20-9-20-20l0-14.6c-10.3-2.2-20-5.5-28.2-8.4c0 0 0 0 0 0s0 0 0 0c-2.1-.7-4.1-1.4-6.1-2.1c-10.5-3.5-16.1-14.8-12.6-25.3s14.8-16.1 25.3-12.6c2.5 .8 4.9 1.7 7.2 2.4c13.6 4.6 24 8.1 35.1 8.5c8.6 .3 16.5-1.6 21.4-4.7c4.1-2.5 6-5.5 5.9-10.5c0-2.9-.8-5-5.9-8.2c-6.3-4-15.4-6.9-28-10.7l-1.7-.5c-10.9-3.3-24.6-7.4-35.6-14c-12.7-7.7-24.6-20.5-24.7-40.7c-.1-21.1 11.8-35.7 25.8-43.9c6.9-4.1 14.5-6.8 22.2-8.5l0-14c0-11 9-20 20-20s20 9 20 20z"], - "vector-square": [448, 512, [], "f5cb", "M368 80l32 0 0 32-32 0 0-32zM352 32c-17.7 0-32 14.3-32 32L128 64c0-17.7-14.3-32-32-32L32 32C14.3 32 0 46.3 0 64l0 64c0 17.7 14.3 32 32 32l0 192c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l192 0c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-192c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0zM96 160c17.7 0 32-14.3 32-32l192 0c0 17.7 14.3 32 32 32l0 192c-17.7 0-32 14.3-32 32l-192 0c0-17.7-14.3-32-32-32l0-192zM48 400l32 0 0 32-32 0 0-32zm320 32l0-32 32 0 0 32-32 0zM48 112l0-32 32 0 0 32-32 0z"], - "bread-slice": [512, 512, [], "f7ec", "M256 32C192 32 0 64 0 192c0 35.3 28.7 64 64 64V432c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V256c35.3 0 64-28.7 64-64C512 64 320 32 256 32z"], - "language": [640, 512, [], "f1ab", "M0 128C0 92.7 28.7 64 64 64l192 0 48 0 16 0 256 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64l-256 0-16 0-48 0L64 448c-35.3 0-64-28.7-64-64L0 128zm320 0l0 256 256 0 0-256-256 0zM178.3 175.9c-3.2-7.2-10.4-11.9-18.3-11.9s-15.1 4.7-18.3 11.9l-64 144c-4.5 10.1 .1 21.9 10.2 26.4s21.9-.1 26.4-10.2l8.9-20.1 73.6 0 8.9 20.1c4.5 10.1 16.3 14.6 26.4 10.2s14.6-16.3 10.2-26.4l-64-144zM160 233.2L179 276l-38 0 19-42.8zM448 164c11 0 20 9 20 20l0 4 44 0 16 0c11 0 20 9 20 20s-9 20-20 20l-2 0-1.6 4.5c-8.9 24.4-22.4 46.6-39.6 65.4c.9 .6 1.8 1.1 2.7 1.6l18.9 11.3c9.5 5.7 12.5 18 6.9 27.4s-18 12.5-27.4 6.9l-18.9-11.3c-4.5-2.7-8.8-5.5-13.1-8.5c-10.6 7.5-21.9 14-34 19.4l-3.6 1.6c-10.1 4.5-21.9-.1-26.4-10.2s.1-21.9 10.2-26.4l3.6-1.6c6.4-2.9 12.6-6.1 18.5-9.8l-12.2-12.2c-7.8-7.8-7.8-20.5 0-28.3s20.5-7.8 28.3 0l14.6 14.6 .5 .5c12.4-13.1 22.5-28.3 29.8-45L448 228l-72 0c-11 0-20-9-20-20s9-20 20-20l52 0 0-4c0-11 9-20 20-20z"], - "face-kiss-wink-heart": [512, 512, [128536, "kiss-wink-heart"], "f598", "M498 339.7c9.1-26.2 14-54.4 14-83.7C512 114.6 397.4 0 256 0S0 114.6 0 256S114.6 512 256 512c35.4 0 69.1-7.2 99.7-20.2c-4.8-5.5-8.5-12.2-10.4-19.7l-22.9-89.3c-10-39 11.8-80.9 51.8-92.1c37.2-10.4 73.8 10.1 87.5 44c12.7-1.6 25.1 .4 36.2 5zM296 332c0 6.9-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C258.7 443.1 241.4 448 224 448c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9c0 0 0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.6-.4-.3-.2-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7c0 0 0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm194.8 57.6c-17.6-23.5-52.8-23.5-70.4 0c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2zM434 352.3c-6-23.2-28.8-37-51.1-30.8s-35.4 30.1-29.5 53.4l22.9 89.3c2.2 8.7 11.2 13.9 19.8 11.4l84.9-23.8c22.2-6.2 35.4-30.1 29.5-53.4s-28.8-37-51.1-30.8l-20.2 5.6-5.4-21z"], - "filter": [512, 512, [], "f0b0", "M3.9 54.9C10.5 40.9 24.5 32 40 32l432 0c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L320 320.9 320 448c0 12.1-6.8 23.2-17.7 28.6s-23.8 4.3-33.5-3l-64-48c-8.1-6-12.8-15.5-12.8-25.6l0-79.1L9 97.3C-.7 85.4-2.8 68.8 3.9 54.9z"], - "question": [320, 512, [10067, 10068, 61736], "3f", "M80 160c0-35.3 28.7-64 64-64l32 0c35.3 0 64 28.7 64 64l0 3.6c0 21.8-11.1 42.1-29.4 53.8l-42.2 27.1c-25.2 16.2-40.4 44.1-40.4 74l0 1.4c0 17.7 14.3 32 32 32s32-14.3 32-32l0-1.4c0-8.2 4.2-15.8 11-20.2l42.2-27.1c36.6-23.6 58.8-64.1 58.8-107.7l0-3.6c0-70.7-57.3-128-128-128l-32 0C73.3 32 16 89.3 16 160c0 17.7 14.3 32 32 32s32-14.3 32-32zm80 320a40 40 0 1 0 0-80 40 40 0 1 0 0 80z"], - "file-signature": [576, 512, [], "f573", "M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-19.3c-2.7 1.1-5.4 2-8.2 2.7l-60.1 15c-3 .7-6 1.2-9 1.4c-.9 .1-1.8 .2-2.7 .2l-64 0c-6.1 0-11.6-3.4-14.3-8.8l-8.8-17.7c-1.7-3.4-5.1-5.5-8.8-5.5s-7.2 2.1-8.8 5.5l-8.8 17.7c-2.9 5.9-9.2 9.4-15.7 8.8s-12.1-5.1-13.9-11.3L144 381l-9.8 32.8c-6.1 20.3-24.8 34.2-46 34.2L80 448c-8.8 0-16-7.2-16-16s7.2-16 16-16l8.2 0c7.1 0 13.3-4.6 15.3-11.4l14.9-49.5c3.4-11.3 13.8-19.1 25.6-19.1s22.2 7.8 25.6 19.1l11.6 38.6c7.4-6.2 16.8-9.7 26.8-9.7c15.9 0 30.4 9 37.5 23.2l4.4 8.8 8.9 0c-3.1-8.8-3.7-18.4-1.4-27.8l15-60.1c2.8-11.3 8.6-21.5 16.8-29.7L384 203.6l0-43.6-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM549.8 139.7c-15.6-15.6-40.9-15.6-56.6 0l-29.4 29.4 71 71 29.4-29.4c15.6-15.6 15.6-40.9 0-56.6l-14.4-14.4zM311.9 321c-4.1 4.1-7 9.2-8.4 14.9l-15 60.1c-1.4 5.5 .2 11.2 4.2 15.2s9.7 5.6 15.2 4.2l60.1-15c5.6-1.4 10.8-4.3 14.9-8.4L512.1 262.7l-71-71L311.9 321z"], - "up-down-left-right": [512, 512, ["arrows-alt"], "f0b2", "M278.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l32 0 0 96-96 0 0-32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-32 96 0 0 96-32 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8l-32 0 0-96 96 0 0 32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6l0 32-96 0 0-96 32 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64z"], - "house-chimney-user": [576, 512, [], "e065", "M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L512 185l0-121c0-17.7-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32l0 36.7L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1l32 0 0 160.4c0 35.3 28.7 64 64 64l320.4 0c35.5 0 64.2-28.8 64-64.3l-.7-160.2 32 0zM288 160a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM176 400c0-44.2 35.8-80 80-80l64 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16z"], - "hand-holding-heart": [576, 512, [], "f4be", "M163.9 136.9c-29.4-29.8-29.4-78.2 0-108s77-29.8 106.4 0l17.7 18 17.7-18c29.4-29.8 77-29.8 106.4 0s29.4 78.2 0 108L310.5 240.1c-6.2 6.3-14.3 9.4-22.5 9.4s-16.3-3.1-22.5-9.4L163.9 136.9zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5L192 512 32 512c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l36.8 0 44.9-36c22.7-18.2 50.9-28 80-28l78.3 0 16 0 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l120.6 0 119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384c0 0 0 0 0 0l-.9 0c.3 0 .6 0 .9 0z"], - "puzzle-piece": [512, 512, [129513], "f12e", "M192 104.8c0-9.2-5.8-17.3-13.2-22.8C167.2 73.3 160 61.3 160 48c0-26.5 28.7-48 64-48s64 21.5 64 48c0 13.3-7.2 25.3-18.8 34c-7.4 5.5-13.2 13.6-13.2 22.8c0 12.8 10.4 23.2 23.2 23.2l56.8 0c26.5 0 48 21.5 48 48l0 56.8c0 12.8 10.4 23.2 23.2 23.2c9.2 0 17.3-5.8 22.8-13.2c8.7-11.6 20.7-18.8 34-18.8c26.5 0 48 28.7 48 64s-21.5 64-48 64c-13.3 0-25.3-7.2-34-18.8c-5.5-7.4-13.6-13.2-22.8-13.2c-12.8 0-23.2 10.4-23.2 23.2L384 464c0 26.5-21.5 48-48 48l-56.8 0c-12.8 0-23.2-10.4-23.2-23.2c0-9.2 5.8-17.3 13.2-22.8c11.6-8.7 18.8-20.7 18.8-34c0-26.5-28.7-48-64-48s-64 21.5-64 48c0 13.3 7.2 25.3 18.8 34c7.4 5.5 13.2 13.6 13.2 22.8c0 12.8-10.4 23.2-23.2 23.2L48 512c-26.5 0-48-21.5-48-48L0 343.2C0 330.4 10.4 320 23.2 320c9.2 0 17.3 5.8 22.8 13.2C54.7 344.8 66.7 352 80 352c26.5 0 48-28.7 48-64s-21.5-64-48-64c-13.3 0-25.3 7.2-34 18.8C40.5 250.2 32.4 256 23.2 256C10.4 256 0 245.6 0 232.8L0 176c0-26.5 21.5-48 48-48l120.8 0c12.8 0 23.2-10.4 23.2-23.2z"], - "money-check": [576, 512, [], "f53c", "M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm48 160l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zM96 336c0-8.8 7.2-16 16-16l352 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-352 0c-8.8 0-16-7.2-16-16zM376 160l80 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24z"], - "star-half-stroke": [576, 512, ["star-half-alt"], "f5c0", "M288 376.4l.1-.1 26.4 14.1 85.2 45.5-16.5-97.6-4.8-28.7 20.7-20.5 70.1-69.3-96.1-14.2-29.3-4.3-12.9-26.6L288.1 86.9l-.1 .3 0 289.2zm175.1 98.3c2 12-3 24.2-12.9 31.3s-23 8-33.8 2.3L288.1 439.8 159.8 508.3C149 514 135.9 513.1 126 506s-14.9-19.3-12.9-31.3L137.8 329 33.6 225.9c-8.6-8.5-11.7-21.2-7.9-32.7s13.7-19.9 25.7-21.7L195 150.3 259.4 18c5.4-11 16.5-18 28.8-18s23.4 7 28.8 18l64.3 132.3 143.6 21.2c12 1.8 22 10.2 25.7 21.7s.7 24.2-7.9 32.7L438.5 329l24.6 145.7z"], - "code": [640, 512, [], "f121", "M392.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6zm80.6 120.1c-12.5 12.5-12.5 32.8 0 45.3L562.7 256l-89.4 89.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-112-112c-12.5-12.5-32.8-12.5-45.3 0zm-306.7 0c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l112 112c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256l89.4-89.4c12.5-12.5 12.5-32.8 0-45.3z"], - "whiskey-glass": [512, 512, [129347, "glass-whiskey"], "f7a0", "M32 32c-9.3 0-18.1 4-24.2 11.1S-1 59.4 .3 68.6l50 342.9c5.7 39.3 39.4 68.5 79.2 68.5l253 0c39.7 0 73.4-29.1 79.2-68.5l50-342.9c1.3-9.2-1.4-18.5-7.5-25.5S489.3 32 480 32L32 32zM87.7 224L69 96l374 0L424.3 224 87.7 224z"], - "building-circle-exclamation": [640, 512, [], "e4d3", "M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 96 0c15.1 0 28.5-6.9 37.3-17.8C340.4 462.2 320 417.5 320 368c0-54.7 24.9-103.5 64-135.8L384 48c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM80 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z"], - "magnifying-glass-chart": [512, 512, [], "e522", "M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zm-312 8l0 64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80-96l0 160c0 13.3 10.7 24 24 24s24-10.7 24-24l0-160c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80 64l0 96c0 13.3 10.7 24 24 24s24-10.7 24-24l0-96c0-13.3-10.7-24-24-24s-24 10.7-24 24z"], - "arrow-up-right-from-square": [512, 512, ["external-link"], "f08e", "M320 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l82.7 0L201.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L448 109.3l0 82.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-17.7-14.3-32-32-32L320 0zM80 32C35.8 32 0 67.8 0 112L0 432c0 44.2 35.8 80 80 80l320 0c44.2 0 80-35.8 80-80l0-112c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112c0 8.8-7.2 16-16 16L80 448c-8.8 0-16-7.2-16-16l0-320c0-8.8 7.2-16 16-16l112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 32z"], - "cubes-stacked": [448, 512, [], "e4e6", "M192 64l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32zM82.7 207c-15.3 8.8-20.5 28.4-11.7 43.7l32 55.4c8.8 15.3 28.4 20.5 43.7 11.7l55.4-32c15.3-8.8 20.5-28.4 11.7-43.7l-32-55.4c-8.8-15.3-28.4-20.5-43.7-11.7L82.7 207zM288 192c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0zm64 160c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0zM160 384l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32zM32 352c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0z"], - "won-sign": [512, 512, [8361, "krw", "won"], "f159", "M62.4 53.9C56.8 37.1 38.6 28.1 21.9 33.6S-3.9 57.4 1.6 74.1L51.6 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l40.9 0 56.7 170.1c4.5 13.5 17.4 22.4 31.6 21.9s26.4-10.4 29.8-24.2L233 288l46 0L321 455.8c3.4 13.8 15.6 23.7 29.8 24.2s27.1-8.4 31.6-21.9L439.1 288l40.9 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-19.6 0 50-149.9c5.6-16.8-3.5-34.9-20.2-40.5s-34.9 3.5-40.5 20.2L392.9 224l-64 0L287 56.2C283.5 42 270.7 32 256 32s-27.5 10-31 24.2L183 224l-64 0L62.4 53.9zm78 234.1l26.6 0-11.4 45.6L140.4 288zM249 224l7-28.1 7 28.1-14 0zm96 64l26.6 0-15.2 45.6L345 288z"], - "virus-covid": [512, 512, [], "e4a8", "M192 24c0-13.3 10.7-24 24-24l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0 0 33.6c30.7 4.2 58.8 16.3 82.3 34.1L386.1 92 374.8 80.6c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l56.6 56.6c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L420 125.9l-23.8 23.8c17.9 23.5 29.9 51.7 34.1 82.3l33.6 0 0-16c0-13.3 10.7-24 24-24s24 10.7 24 24l0 80c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-16-33.6 0c-4.2 30.7-16.3 58.8-34.1 82.3L420 386.1l11.3-11.3c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-56.6 56.6c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L386.1 420l-23.8-23.8c-23.5 17.9-51.7 29.9-82.3 34.1l0 33.6 16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0 0-33.6c-30.7-4.2-58.8-16.3-82.3-34.1L125.9 420l11.3 11.3c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L46.7 408.7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L92 386.1l23.8-23.8C97.9 338.8 85.8 310.7 81.6 280L48 280l0 16c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-80c0-13.3 10.7-24 24-24s24 10.7 24 24l0 16 33.6 0c4.2-30.7 16.3-58.8 34.1-82.3L92 125.9 80.6 137.2c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l56.6-56.6c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L125.9 92l23.8 23.8c23.5-17.9 51.7-29.9 82.3-34.1L232 48l-16 0c-13.3 0-24-10.7-24-24zm48 200a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm64 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"], - "austral-sign": [448, 512, [], "e0a9", "M253.5 51.7C248.6 39.8 236.9 32 224 32s-24.6 7.8-29.5 19.7L122.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0L82.7 320 32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32l24 0L34.5 435.7c-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2L125.3 384l197.3 0 31.8 76.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8L392 384l24 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-50.7 0L352 288l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-90.7 0L253.5 51.7zM256 224l-64 0 32-76.8L256 224zm-90.7 64l117.3 0L296 320l-144 0 13.3-32z"], - "f": [320, 512, [102], "46", "M64 32C28.7 32 0 60.7 0 96L0 256 0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 224 64 96l224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 32z"], - "leaf": [512, 512, [], "f06c", "M272 96c-78.6 0-145.1 51.5-167.7 122.5c33.6-17 71.5-26.5 111.7-26.5l88 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-16 0-72 0s0 0 0 0c-16.6 0-32.7 1.9-48.3 5.4c-25.9 5.9-49.9 16.4-71.4 30.7c0 0 0 0 0 0C38.3 298.8 0 364.9 0 440l0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16c0-48.7 20.7-92.5 53.8-123.2C121.6 392.3 190.3 448 272 448l1 0c132.1-.7 239-130.9 239-291.4c0-42.6-7.5-83.1-21.1-119.6c-2.6-6.9-12.7-6.6-16.2-.1C455.9 72.1 418.7 96 376 96L272 96z"], - "road": [576, 512, [128739], "f018", "M256 32l-74.8 0c-27.1 0-51.3 17.1-60.3 42.6L3.1 407.2C1.1 413 0 419.2 0 425.4C0 455.5 24.5 480 54.6 480L256 480l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64 201.4 0c30.2 0 54.6-24.5 54.6-54.6c0-6.2-1.1-12.4-3.1-18.2L455.1 74.6C446 49.1 421.9 32 394.8 32L320 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm64 192l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32z"], - "taxi": [512, 512, [128662, "cab"], "f1ba", "M192 0c-17.7 0-32 14.3-32 32l0 32 0 .2c-38.6 2.2-72.3 27.3-85.2 64.1L39.6 228.8C16.4 238.4 0 261.3 0 288L0 432l0 48c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-48 320 0 0 48c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-48 0-144c0-26.7-16.4-49.6-39.6-59.2L437.2 128.3c-12.9-36.8-46.6-62-85.2-64.1l0-.2 0-32c0-17.7-14.3-32-32-32L192 0zM165.4 128l181.2 0c13.6 0 25.7 8.6 30.2 21.4L402.9 224l-293.8 0 26.1-74.6c4.5-12.8 16.6-21.4 30.2-21.4zM96 288a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm288 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"], - "person-circle-plus": [576, 512, [], "e541", "M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm16 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16s16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0 0-48z"], - "chart-pie": [576, 512, ["pie-chart"], "f200", "M304 240l0-223.4c0-9 7-16.6 16-16.6C443.7 0 544 100.3 544 224c0 9-7.6 16-16.6 16L304 240zM32 272C32 150.7 122.1 50.3 239 34.3c9.2-1.3 17 6.1 17 15.4L256 288 412.5 444.5c6.7 6.7 6.2 17.7-1.5 23.1C371.8 495.6 323.8 512 272 512C139.5 512 32 404.6 32 272zm526.4 16c9.3 0 16.6 7.8 15.4 17c-7.7 55.9-34.6 105.6-73.9 142.3c-6 5.6-15.4 5.2-21.2-.7L320 288l238.4 0z"], - "bolt-lightning": [384, 512, [], "e0b7", "M0 256L28.5 28c2-16 15.6-28 31.8-28H228.9c15 0 27.1 12.1 27.1 27.1c0 3.2-.6 6.5-1.7 9.5L208 160H347.3c20.2 0 36.7 16.4 36.7 36.7c0 7.4-2.2 14.6-6.4 20.7l-192.2 281c-5.9 8.6-15.6 13.7-25.9 13.7h-2.9c-15.7 0-28.5-12.8-28.5-28.5c0-2.3 .3-4.6 .9-6.9L176 288H32c-17.7 0-32-14.3-32-32z"], - "sack-xmark": [512, 512, [], "e56a", "M192 96l128 0 47.4-71.1C374.5 14.2 366.9 0 354.1 0L157.9 0c-12.8 0-20.4 14.2-13.3 24.9L192 96zm128 32l-128 0c-3.8 2.5-8.1 5.3-13 8.4c0 0 0 0 0 0s0 0 0 0C122.3 172.7 0 250.9 0 416c0 53 43 96 96 96l320 0c53 0 96-43 96-96c0-165.1-122.3-243.3-179-279.6c-4.8-3.1-9.2-5.9-13-8.4zM289.9 336l47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47z"], - "file-excel": [384, 512, [], "f1c3", "M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM155.7 250.2L192 302.1l36.3-51.9c7.6-10.9 22.6-13.5 33.4-5.9s13.5 22.6 5.9 33.4L221.3 344l46.4 66.2c7.6 10.9 5 25.8-5.9 33.4s-25.8 5-33.4-5.9L192 385.8l-36.3 51.9c-7.6 10.9-22.6 13.5-33.4 5.9s-13.5-22.6-5.9-33.4L162.7 344l-46.4-66.2c-7.6-10.9-5-25.8 5.9-33.4s25.8-5 33.4 5.9z"], - "file-contract": [384, 512, [], "f56c", "M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM80 64l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 96c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm54.2 253.8c-6.1 20.3-24.8 34.2-46 34.2L80 416c-8.8 0-16-7.2-16-16s7.2-16 16-16l8.2 0c7.1 0 13.3-4.6 15.3-11.4l14.9-49.5c3.4-11.3 13.8-19.1 25.6-19.1s22.2 7.7 25.6 19.1l11.6 38.6c7.4-6.2 16.8-9.7 26.8-9.7c15.9 0 30.4 9 37.5 23.2l4.4 8.8 54.1 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-6.1 0-11.6-3.4-14.3-8.8l-8.8-17.7c-1.7-3.4-5.1-5.5-8.8-5.5s-7.2 2.1-8.8 5.5l-8.8 17.7c-2.9 5.9-9.2 9.4-15.7 8.8s-12.1-5.1-13.9-11.3L144 349l-9.8 32.8z"], - "fish-fins": [576, 512, [], "e4f2", "M275.2 38.4c-10.6-8-25-8.5-36.3-1.5S222 57.3 224.6 70.3l9.7 48.6c-19.4 9-36.9 19.9-52.4 31.5c-15.3 11.5-29 23.9-40.7 36.3L48.1 132.4c-12.5-7.3-28.4-5.3-38.6 4.9S-3 163.3 4.2 175.9L50 256 4.2 336.1c-7.2 12.6-5 28.4 5.3 38.6s26.1 12.2 38.6 4.9l93.1-54.3c11.8 12.3 25.4 24.8 40.7 36.3c15.5 11.6 33 22.5 52.4 31.5l-9.7 48.6c-2.6 13 3.1 26.3 14.3 33.3s25.6 6.5 36.3-1.5l77.6-58.2c54.9-4 101.5-27 137.2-53.8c39.2-29.4 67.2-64.7 81.6-89.5c5.8-9.9 5.8-22.2 0-32.1c-14.4-24.8-42.5-60.1-81.6-89.5c-35.8-26.8-82.3-49.8-137.2-53.8L275.2 38.4zM384 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"], - "building-flag": [640, 512, [], "e4d5", "M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 96 0c26.5 0 48-21.5 48-48l0-416c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM80 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM448 0c-17.7 0-32 14.3-32 32l0 480 64 0 0-320 144 0c8.8 0 16-7.2 16-16l0-128c0-8.8-7.2-16-16-16L480 32c0-17.7-14.3-32-32-32z"], - "face-grin-beam": [512, 512, [128516, "grin-beam"], "f582", "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zm-170.5-84s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z"], - "object-ungroup": [640, 512, [], "f248", "M32 119.4C12.9 108.4 0 87.7 0 64C0 28.7 28.7 0 64 0c23.7 0 44.4 12.9 55.4 32l209.1 0C339.6 12.9 360.3 0 384 0c35.3 0 64 28.7 64 64c0 23.7-12.9 44.4-32 55.4l0 113.1c19.1 11.1 32 31.7 32 55.4c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32l-209.1 0c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4l0-113.1zM119.4 96c-5.6 9.7-13.7 17.8-23.4 23.4l0 113.1c9.7 5.6 17.8 13.7 23.4 23.4l209.1 0c5.6-9.7 13.7-17.8 23.4-23.4l0-113.1c-9.7-5.6-17.8-13.7-23.4-23.4L119.4 96zm192 384c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4l0-40.6 64 0 0 40.6c9.7 5.6 17.8 13.7 23.4 23.4l209.1 0c5.6-9.7 13.7-17.8 23.4-23.4l0-113.1c-9.7-5.6-17.8-13.7-23.4-23.4l-46 0c-5.4-15.4-14.6-28.9-26.5-39.6l0-24.4 72.6 0c11.1-19.1 31.7-32 55.4-32c35.3 0 64 28.7 64 64c0 23.7-12.9 44.4-32 55.4l0 113.1c19.1 11.1 32 31.7 32 55.4c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32l-209.1 0z"], - "poop": [512, 512, [], "f619", "M254.4 6.6c3.5-4.3 9-6.5 14.5-5.7C315.8 7.2 352 47.4 352 96c0 11.2-1.9 22-5.5 32l5.5 0c35.3 0 64 28.7 64 64c0 19.1-8.4 36.3-21.7 48l13.7 0c39.8 0 72 32.2 72 72c0 23.2-11 43.8-28 57c34.1 5.7 60 35.3 60 71c0 39.8-32.2 72-72 72L72 512c-39.8 0-72-32.2-72-72c0-35.7 25.9-65.3 60-71c-17-13.2-28-33.8-28-57c0-39.8 32.2-72 72-72l13.7 0C104.4 228.3 96 211.1 96 192c0-35.3 28.7-64 64-64l16.2 0c44.1-.1 79.8-35.9 79.8-80c0-9.2-1.5-17.9-4.3-26.1c-1.8-5.2-.8-11.1 2.8-15.4z"], - "location-pin": [384, 512, ["map-marker"], "f041", "M384 192c0 87.4-117 243-168.3 307.2c-12.3 15.3-35.1 15.3-47.4 0C117 435 0 279.4 0 192C0 86 86 0 192 0S384 86 384 192z"], - "kaaba": [576, 512, [128331], "f66b", "M60 120l228 71.2L516 120 288 48.8 60 120zM278.5 1.5c6.2-1.9 12.9-1.9 19.1 0l256 80C566.9 85.6 576 98 576 112l0 16s0 0 0 0l0 21.2L292.8 237.7c-3.1 1-6.4 1-9.5 0L0 149.2 0 128l0-16C0 98 9.1 85.6 22.5 81.5l256-80zm23.9 266.8L576 182.8l0 46.5-52.8 16.5c-8.4 2.6-13.1 11.6-10.5 20s11.6 13.1 20 10.5L576 262.8 576 400c0 14-9.1 26.4-22.5 30.5l-256 80c-6.2 1.9-12.9 1.9-19.1 0l-256-80C9.1 426.4 0 414 0 400L0 262.8l43.2 13.5c8.4 2.6 17.4-2.1 20-10.5s-2.1-17.4-10.5-20L0 229.2l0-46.5 273.7 85.5c9.3 2.9 19.3 2.9 28.6 0zm-185.5-2.6c-8.4-2.6-17.4 2.1-20 10.5s2.1 17.4 10.5 20l64 20c8.4 2.6 17.4-2.1 20-10.5s-2.1-17.4-10.5-20l-64-20zm352 30.5c8.4-2.6 13.1-11.6 10.5-20s-11.6-13.1-20-10.5l-64 20c-8.4 2.6-13.1 11.6-10.5 20s11.6 13.1 20 10.5l64-20zm-224 9.5c-8.4-2.6-17.4 2.1-20 10.5s2.1 17.4 10.5 20l38.5 12c9.3 2.9 19.3 2.9 28.6 0l38.5-12c8.4-2.6 13.1-11.6 10.5-20s-11.6-13.1-20-10.5l-38.5 12c-3.1 1-6.4 1-9.5 0l-38.5-12z"], - "toilet-paper": [640, 512, [129531], "f71e", "M444.2 0C397.2 49.6 384 126.5 384 192c0 158.8-27.3 247-42.7 283.9c-10 24-33.2 36.1-55.4 36.1L48 512c-11.5 0-22.2-6.2-27.8-16.2s-5.6-22.3 .4-32.2c9.8-17.7 15.4-38.2 20.5-57.7C52.3 362.8 64 293.5 64 192C64 86 107 0 160 0L444.2 0zM512 384c-53 0-96-86-96-192S459 0 512 0s96 86 96 192s-43 192-96 192zm0-128c17.7 0 32-28.7 32-64s-14.3-64-32-64s-32 28.7-32 64s14.3 64 32 64zM144 208a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm64 0a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm80-16a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z"], - "helmet-safety": [576, 512, ["hard-hat", "hat-hard"], "f807", "M256 32c-17.7 0-32 14.3-32 32l0 2.3 0 99.6c0 5.6-4.5 10.1-10.1 10.1c-3.6 0-7-1.9-8.8-5.1L157.1 87C83 123.5 32 199.8 32 288l0 64 512 0 0-66.4c-.9-87.2-51.7-162.4-125.1-198.6l-48 83.9c-1.8 3.2-5.2 5.1-8.8 5.1c-5.6 0-10.1-4.5-10.1-10.1l0-99.6 0-2.3c0-17.7-14.3-32-32-32l-64 0zM16.6 384C7.4 384 0 391.4 0 400.6c0 4.7 2 9.2 5.8 11.9C27.5 428.4 111.8 480 288 480s260.5-51.6 282.2-67.5c3.8-2.8 5.8-7.2 5.8-11.9c0-9.2-7.4-16.6-16.6-16.6L16.6 384z"], - "eject": [448, 512, [9167], "f052", "M224 32c13.5 0 26.3 5.6 35.4 15.6l176 192c12.9 14 16.2 34.3 8.6 51.8S419 320 400 320L48 320c-19 0-36.3-11.2-43.9-28.7s-4.3-37.7 8.6-51.8l176-192C197.7 37.6 210.5 32 224 32zM0 432c0-26.5 21.5-48 48-48l352 0c26.5 0 48 21.5 48 48s-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48z"], - "circle-right": [512, 512, [61838, "arrow-alt-circle-right"], "f35a", "M0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zm395.3 11.3l-112 112c-4.6 4.6-11.5 5.9-17.4 3.5s-9.9-8.3-9.9-14.8l0-64-96 0c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32l96 0 0-64c0-6.5 3.9-12.3 9.9-14.8s12.9-1.1 17.4 3.5l112 112c6.2 6.2 6.2 16.4 0 22.6z"], - "plane-circle-check": [640, 512, [], "e555", "M256 0c-35 0-64 59.5-64 93.7l0 84.6L8.1 283.4c-5 2.8-8.1 8.2-8.1 13.9l0 65.5c0 10.6 10.2 18.3 20.4 15.4l171.6-49 0 70.9-57.6 43.2c-4 3-6.4 7.8-6.4 12.8l0 42c0 7.8 6.3 14 14 14c1.3 0 2.6-.2 3.9-.5L256 480l110.1 31.5c1.3 .4 2.6 .5 3.9 .5c6 0 11.1-3.7 13.1-9C344.5 470.7 320 422.2 320 368c0-60.6 30.6-114 77.1-145.6L320 178.3l0-84.6C320 59.5 292 0 256 0zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z"], - "face-rolling-eyes": [512, 512, [128580, "meh-rolling-eyes"], "f5a5", "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM192 368l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm32-144c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26 15.5-48.4 37.8-58.4c-3.7 5.2-5.8 11.6-5.8 18.4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.9-2.2-13.2-5.8-18.4C208.5 175.6 224 198 224 224zm128 64c-35.3 0-64-28.7-64-64c0-26 15.5-48.4 37.8-58.4c-3.7 5.2-5.8 11.6-5.8 18.4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.9-2.2-13.2-5.8-18.4C400.5 175.6 416 198 416 224c0 35.3-28.7 64-64 64z"], - "object-group": [576, 512, [], "f247", "M32 119.4C12.9 108.4 0 87.7 0 64C0 28.7 28.7 0 64 0c23.7 0 44.4 12.9 55.4 32l337.1 0C467.6 12.9 488.3 0 512 0c35.3 0 64 28.7 64 64c0 23.7-12.9 44.4-32 55.4l0 273.1c19.1 11.1 32 31.7 32 55.4c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32l-337.1 0c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4l0-273.1zM456.6 96L119.4 96c-5.6 9.7-13.7 17.8-23.4 23.4l0 273.1c9.7 5.6 17.8 13.7 23.4 23.4l337.1 0c5.6-9.7 13.7-17.8 23.4-23.4l0-273.1c-9.7-5.6-17.8-13.7-23.4-23.4zM128 160c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-96zM256 320l32 0c35.3 0 64-28.7 64-64l0-32 64 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-32z"], - "chart-line": [512, 512, ["line-chart"], "f201", "M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 400c0 44.2 35.8 80 80 80l400 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 416c-8.8 0-16-7.2-16-16L64 64zm406.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L320 210.7l-57.4-57.4c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L240 221.3l57.4 57.4c12.5 12.5 32.8 12.5 45.3 0l128-128z"], - "mask-ventilator": [640, 512, [], "e524", "M159.1 176C139.4 219.2 128 264.7 128 300.8c0 15.9 2.2 31.4 6.3 46l-31.8-7.9C70.5 330.9 48 302.1 48 269l0-85c0-4.4 3.6-8 8-8l103.1 0zm26-48L56 128c-30.9 0-56 25.1-56 56l0 85c0 55.1 37.5 103.1 90.9 116.4l71.3 17.8c22.7 30.5 55.4 54.1 93.8 66.6l0-76.6c-19.7-16.4-32-40.3-32-66.9c0-49.5 43-134.4 96-134.4c52.5 0 96 84.9 96 134.4c0 26.7-12.4 50.4-32 66.8l0 76.6c38-12.6 70.6-36 93.5-66.4l71.6-17.9C602.5 372.1 640 324.1 640 269l0-85c0-30.9-25.1-56-56-56l-129.5 0C419.7 73.8 372.1 32 320 32c-52.6 0-100.2 41.8-134.9 96zm295.6 48L584 176c4.4 0 8 3.6 8 8l0 85c0 33-22.5 61.8-54.5 69.9l-31.8 8c4.2-14.7 6.4-30.1 6.4-46.1c0-36.1-11.6-81.6-31.3-124.8zM288 320l0 192 64 0 0-192c0-17.7-14.3-32-32-32s-32 14.3-32 32z"], - "arrow-right": [448, 512, [8594], "f061", "M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l306.7 0L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z"], - "signs-post": [512, 512, ["map-signs"], "f277", "M224 32L64 32C46.3 32 32 46.3 32 64l0 64c0 17.7 14.3 32 32 32l377.4 0c4.2 0 8.3-1.7 11.3-4.7l48-48c6.2-6.2 6.2-16.4 0-22.6l-48-48c-3-3-7.1-4.7-11.3-4.7L288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32zM480 256c0-17.7-14.3-32-32-32l-160 0 0-32-64 0 0 32L70.6 224c-4.2 0-8.3 1.7-11.3 4.7l-48 48c-6.2 6.2-6.2 16.4 0 22.6l48 48c3 3 7.1 4.7 11.3 4.7L448 352c17.7 0 32-14.3 32-32l0-64zM288 480l0-96-64 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32z"], - "cash-register": [512, 512, [], "f788", "M64 0C46.3 0 32 14.3 32 32l0 64c0 17.7 14.3 32 32 32l80 0 0 32-57 0c-31.6 0-58.5 23.1-63.3 54.4L1.1 364.1C.4 368.8 0 373.6 0 378.4L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-69.6c0-4.8-.4-9.6-1.1-14.4L488.2 214.4C483.5 183.1 456.6 160 425 160l-217 0 0-32 80 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32L64 0zM96 48l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L96 80c-8.8 0-16-7.2-16-16s7.2-16 16-16zM64 432c0-8.8 7.2-16 16-16l352 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 448c-8.8 0-16-7.2-16-16zm48-168a24 24 0 1 1 0-48 24 24 0 1 1 0 48zm120-24a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM160 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM328 240a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM256 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM424 240a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM352 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48z"], - "person-circle-question": [576, 512, [], "e542", "M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM368 321.6l0 6.4c0 8.8 7.2 16 16 16s16-7.2 16-16l0-6.4c0-5.3 4.3-9.6 9.6-9.6l40.5 0c7.7 0 13.9 6.2 13.9 13.9c0 5.2-2.9 9.9-7.4 12.3l-32 16.8c-5.3 2.8-8.6 8.2-8.6 14.2l0 14.8c0 8.8 7.2 16 16 16s16-7.2 16-16l0-5.1 23.5-12.3c15.1-7.9 24.5-23.6 24.5-40.6c0-25.4-20.6-45.9-45.9-45.9l-40.5 0c-23 0-41.6 18.6-41.6 41.6z"], - "h": [384, 512, [104], "48", "M320 256l0 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224 0-160c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 128L64 192 64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-192 256 0z"], - "tarp": [576, 512, [], "e57b", "M576 128c0-35.3-28.7-64-64-64L64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l352 0 0-128c0-17.7 14.3-32 32-32l128 0 0-160zM448 448L576 320l-128 0 0 128zM96 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"], - "screwdriver-wrench": [512, 512, ["tools"], "f7d9", "M78.6 5C69.1-2.4 55.6-1.5 47 7L7 47c-8.5 8.5-9.4 22-2.1 31.6l80 104c4.5 5.9 11.6 9.4 19 9.4l54.1 0 109 109c-14.7 29-10 65.4 14.3 89.6l112 112c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-112-112c-24.2-24.2-60.6-29-89.6-14.3l-109-109 0-54.1c0-7.5-3.5-14.5-9.4-19L78.6 5zM19.9 396.1C7.2 408.8 0 426.1 0 444.1C0 481.6 30.4 512 67.9 512c18 0 35.3-7.2 48-19.9L233.7 374.3c-7.8-20.9-9-43.6-3.6-65.1l-61.7-61.7L19.9 396.1zM512 144c0-10.5-1.1-20.7-3.2-30.5c-2.4-11.2-16.1-14.1-24.2-6l-63.9 63.9c-3 3-7.1 4.7-11.3 4.7L352 176c-8.8 0-16-7.2-16-16l0-57.4c0-4.2 1.7-8.3 4.7-11.3l63.9-63.9c8.1-8.1 5.2-21.8-6-24.2C388.7 1.1 378.5 0 368 0C288.5 0 224 64.5 224 144l0 .8 85.3 85.3c36-9.1 75.8 .5 104 28.7L429 274.5c49-23 83-72.8 83-130.5zM56 432a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"], - "arrows-to-eye": [640, 512, [], "e4bf", "M15 15C24.4 5.7 39.6 5.7 49 15l63 63L112 40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 96c0 13.3-10.7 24-24 24l-96 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l38.1 0L15 49C5.7 39.6 5.7 24.4 15 15zM133.5 243.9C158.6 193.6 222.7 112 320 112s161.4 81.6 186.5 131.9c3.8 7.6 3.8 16.5 0 24.2C481.4 318.4 417.3 400 320 400s-161.4-81.6-186.5-131.9c-3.8-7.6-3.8-16.5 0-24.2zM320 320a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM591 15c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-63 63 38.1 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-96 0c-13.3 0-24-10.7-24-24l0-96c0-13.3 10.7-24 24-24s24 10.7 24 24l0 38.1 63-63zM15 497c-9.4-9.4-9.4-24.6 0-33.9l63-63L40 400c-13.3 0-24-10.7-24-24s10.7-24 24-24l96 0c13.3 0 24 10.7 24 24l0 96c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-38.1L49 497c-9.4 9.4-24.6 9.4-33.9 0zm576 0l-63-63 0 38.1c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-96c0-13.3 10.7-24 24-24l96 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-38.1 0 63 63c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0z"], - "plug-circle-bolt": [576, 512, [], "e55b", "M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32L32 160zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm47.9-225c4.3 3.7 5.4 9.9 2.6 14.9L452.4 356l35.6 0c5.2 0 9.8 3.3 11.4 8.2s-.1 10.3-4.2 13.4l-96 72c-4.5 3.4-10.8 3.2-15.1-.6s-5.4-9.9-2.6-14.9L411.6 380 376 380c-5.2 0-9.8-3.3-11.4-8.2s.1-10.3 4.2-13.4l96-72c4.5-3.4 10.8-3.2 15.1 .6z"], - "heart": [512, 512, [128153, 128154, 128155, 128156, 128420, 129293, 129294, 129505, 9829, 10084, 61578], "f004", "M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9L464.4 300.4c30.4-28.3 47.6-68 47.6-109.5v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5z"], - "mars-and-venus": [512, 512, [9893], "f224", "M337.8 14.8C341.5 5.8 350.3 0 360 0L472 0c13.3 0 24 10.7 24 24l0 112c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-24.7 24.7C407 163.3 416 192.6 416 224c0 80.2-59 146.6-136 158.2l0 25.8 24 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-24 0 0 32c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-32-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-25.8C155 370.6 96 304.2 96 224c0-88.4 71.6-160 160-160c39.6 0 75.9 14.4 103.8 38.2L382.1 80 343 41c-6.9-6.9-8.9-17.2-5.2-26.2zM448 48s0 0 0 0s0 0 0 0s0 0 0 0zM352 224a96 96 0 1 0 -192 0 96 96 0 1 0 192 0z"], - "house-user": [576, 512, ["home-user"], "e1b0", "M575.8 255.5c0 18-15 32.1-32 32.1l-32 0 .7 160.2c.2 35.5-28.5 64.3-64 64.3l-320.4 0c-35.3 0-64-28.7-64-64l0-160.4-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24zM352 224a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zm-96 96c-44.2 0-80 35.8-80 80c0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16c0-44.2-35.8-80-80-80l-64 0z"], - "dumpster-fire": [640, 512, [], "f794", "M49.7 32l90.8 0L114.9 160l-94 0C9.3 160 0 150.7 0 139.1c0-2.1 .3-4.1 .9-6.1L26.8 48.9C29.9 38.9 39.2 32 49.7 32zM272 160l-124.5 0L173.1 32 272 32l0 128zm32 0l0-128 98.9 0 14.4 72.1c-1.7 1.1-3.3 2.4-4.8 3.8c-18.4 16.4-35.4 34-50.5 52.1l-58 0zm209.9-23.7c-1.7 1.6-3.4 3.2-5 4.8C498 129.6 486.7 118.6 475 108c-7.6-6.9-17-10.8-26.6-11.8L435.5 32l90.8 0c10.5 0 19.8 6.9 22.9 16.9L575.1 133c.2 .7 .4 1.4 .5 2.1c-17.8-15-44.3-14.6-61.7 1.2zM325.2 210.7C304.3 244.5 288 282.9 288 318.1c0 49.3 18.6 95.2 49.6 129.9L128 448c0 17.7-14.3 32-32 32s-32-14.3-32-32L44 288l-12 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l4 0-4-32 305.5 0c-4.4 6.2-8.5 12.5-12.3 18.7zm180.6-34.5L518 162.5c5.4-6.1 13.3-8.8 20.9-8.9c7.2 0 14.3 2.6 19.9 7.8c19.7 18.3 39.8 43.2 55 70.6C629 259.2 640 290.2 640 320.2C640 408.8 568.7 480 480 480c-89.6 0-160-71.3-160-159.8c0-37.3 16-73.4 36.8-104.5c20.9-31.3 47.5-59 70.9-80.2c5.7-5.2 13.1-7.7 20.3-7.5c14.1 .3 23.8 11.4 32.7 21.6c0 0 0 0 0 0c2 2.3 4 4.6 6 6.7l19 19.9zM544 368.2c0-36.5-37-73-54.8-88.4c-5.4-4.7-13.1-4.7-18.5 0C453 295.1 416 331.6 416 368.2c0 35.3 28.7 64 64 64s64-28.7 64-64z"], - "house-crack": [576, 512, [], "e3b1", "M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1l32 0 0 160.4c0 35.3 28.7 64 64 64l102.3 0-31.3-52.2c-4.1-6.8-2.6-15.5 3.5-20.5L288 368l-60.2-82.8c-10.9-15 8.2-33.5 22.8-22l117.9 92.6c8 6.3 8.2 18.4 .4 24.9L288 448l38.4 64 122.1 0c35.5 0 64.2-28.8 64-64.3l-.7-160.2 32 0z"], - "martini-glass-citrus": [576, 512, ["cocktail"], "f561", "M432 240c53 0 96-43 96-96s-43-96-96-96c-35.5 0-66.6 19.3-83.2 48l-52.6 0C316 40.1 369.3 0 432 0c79.5 0 144 64.5 144 144s-64.5 144-144 144c-27.7 0-53.5-7.8-75.5-21.3l35.4-35.4c12.2 5.6 25.8 8.7 40.1 8.7zM1.8 142.8C5.5 133.8 14.3 128 24 128l368 0c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-177 177L232 464l64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-88 0-88 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-118.1L7 169c-6.9-6.9-8.9-17.2-5.2-26.2z"], - "face-surprise": [512, 512, [128558, "surprise"], "f5c2", "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM256 288a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"], - "bottle-water": [320, 512, [], "e4c5", "M120 0l80 0c13.3 0 24 10.7 24 24l0 40L96 64l0-40c0-13.3 10.7-24 24-24zM32 167.5c0-19.5 10-37.6 26.6-47.9l15.8-9.9C88.7 100.7 105.2 96 122.1 96l75.8 0c16.9 0 33.4 4.7 47.7 13.7l15.8 9.9C278 129.9 288 148 288 167.5c0 17-7.5 32.3-19.4 42.6C280.6 221.7 288 238 288 256c0 19.1-8.4 36.3-21.7 48c13.3 11.7 21.7 28.9 21.7 48s-8.4 36.3-21.7 48c13.3 11.7 21.7 28.9 21.7 48c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64c0-19.1 8.4-36.3 21.7-48C40.4 388.3 32 371.1 32 352s8.4-36.3 21.7-48C40.4 292.3 32 275.1 32 256c0-18 7.4-34.3 19.4-45.9C39.5 199.7 32 184.5 32 167.5zM96 240c0 8.8 7.2 16 16 16l96 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-96 0c-8.8 0-16 7.2-16 16zm16 112c-8.8 0-16 7.2-16 16s7.2 16 16 16l96 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-96 0z"], - "circle-pause": [512, 512, [62092, "pause-circle"], "f28b", "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM224 192l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32s32 14.3 32 32z"], - "toilet-paper-slash": [640, 512, [], "e072", "M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-109.7-86C569.9 374 608 291.9 608 192C608 86 565 0 512 0s-96 86-96 192c0 49.1 9.2 93.9 24.4 127.9l-59-46.2c1.6-24.8 2.6-52 2.6-81.6c0-65.5 13.2-142.4 60.2-192L160 0c-24.8 0-47.4 18.8-64.4 49.6L38.8 5.1zM367.3 385.4L66.5 148.4C64.9 162.4 64 177 64 192c0 101.5-11.7 170.8-23 213.9c-5.1 19.4-10.7 39.9-20.5 57.7c-5.9 9.9-6.1 22.1-.4 32.2S36.5 512 48 512l237.9 0c22.3 0 45.4-12.1 55.4-36.1c7.4-17.7 17.5-47.2 26-90.6zM544 192c0 35.3-14.3 64-32 64s-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64z"], - "apple-whole": [448, 512, [127822, 127823, "apple-alt"], "f5d1", "M224 112c-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80l16 0c8.8 0 16 7.2 16 16l0 16c0 44.2-35.8 80-80 80l-16 0zM0 288c0-76.3 35.7-160 112-160c27.3 0 59.7 10.3 82.7 19.3c18.8 7.3 39.9 7.3 58.7 0c22.9-8.9 55.4-19.3 82.7-19.3c76.3 0 112 83.7 112 160c0 128-80 224-160 224c-16.5 0-38.1-6.6-51.5-11.3c-8.1-2.8-16.9-2.8-25 0c-13.4 4.7-35 11.3-51.5 11.3C80 512 0 416 0 288z"], - "kitchen-set": [576, 512, [], "e51a", "M240 144A96 96 0 1 0 48 144a96 96 0 1 0 192 0zm44.4 32C269.9 240.1 212.5 288 144 288C64.5 288 0 223.5 0 144S64.5 0 144 0c68.5 0 125.9 47.9 140.4 112l71.8 0c8.8-9.8 21.6-16 35.8-16l104 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-104 0c-14.2 0-27-6.2-35.8-16l-71.8 0zM144 80a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM400 240c13.3 0 24 10.7 24 24l0 8 96 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-240 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l96 0 0-8c0-13.3 10.7-24 24-24zM288 464l0-112 224 0 0 112c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48zM48 320l80 0 16 0 32 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-16 0c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-80c0-8.8 7.2-16 16-16zm128 64c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0 0 32 16 0zM24 464l176 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24z"], - "r": [320, 512, [114], "52", "M64 32C28.7 32 0 60.7 0 96L0 288 0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 95.3 0L261.8 466.4c10.1 14.5 30.1 18 44.6 7.9s18-30.1 7.9-44.6L230.1 309.5C282.8 288.1 320 236.4 320 176c0-79.5-64.5-144-144-144L64 32zM176 256L64 256 64 96l112 0c44.2 0 80 35.8 80 80s-35.8 80-80 80z"], - "temperature-quarter": [320, 512, ["temperature-1", "thermometer-1", "thermometer-quarter"], "f2ca", "M160 64c-26.5 0-48 21.5-48 48l0 164.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5L208 112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112l0 164.4c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6L48 112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3l0-50.7c0-8.8 7.2-16 16-16s16 7.2 16 16l0 50.7c18.6 6.6 32 24.4 32 45.3z"], - "cube": [512, 512, [], "f1b2", "M234.5 5.7c13.9-5 29.1-5 43.1 0l192 68.6C495 83.4 512 107.5 512 134.6l0 242.9c0 27-17 51.2-42.5 60.3l-192 68.6c-13.9 5-29.1 5-43.1 0l-192-68.6C17 428.6 0 404.5 0 377.4L0 134.6c0-27 17-51.2 42.5-60.3l192-68.6zM256 66L82.3 128 256 190l173.7-62L256 66zm32 368.6l160-57.1 0-188L288 246.6l0 188z"], - "bitcoin-sign": [320, 512, [], "e0b4", "M48 32C48 14.3 62.3 0 80 0s32 14.3 32 32l0 32 32 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32c0 1.5-.1 3.1-.3 4.5C254.1 82.2 288 125.1 288 176c0 24.2-7.7 46.6-20.7 64.9c31.7 19.8 52.7 55 52.7 95.1c0 61.9-50.1 112-112 112l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-6.3 0C18.7 448 0 429.3 0 406.3L0 288l0-22.3L0 224 0 101.6C0 80.8 16.8 64 37.6 64L48 64l0-32zM64 224l112 0c26.5 0 48-21.5 48-48s-21.5-48-48-48L64 128l0 96zm112 64L64 288l0 96 144 0c26.5 0 48-21.5 48-48s-21.5-48-48-48l-32 0z"], - "shield-dog": [512, 512, [], "e573", "M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM160.9 286.2c4.8 1.2 9.9 1.8 15.1 1.8c35.3 0 64-28.7 64-64l0-64 44.2 0c12.1 0 23.2 6.8 28.6 17.7L320 192l64 0c8.8 0 16 7.2 16 16l0 32c0 44.2-35.8 80-80 80l-48 0 0 50.7c0 7.3-5.9 13.3-13.3 13.3c-1.8 0-3.6-.4-5.2-1.1l-98.7-42.3c-6.6-2.8-10.8-9.3-10.8-16.4c0-2.8 .6-5.5 1.9-8l15-30zM160 160l40 0 8 0 0 32 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-48c0-8.8 7.2-16 16-16zm128 48a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z"], - "solar-panel": [640, 512, [], "f5ba", "M122.2 0C91.7 0 65.5 21.5 59.5 51.4L8.3 307.4C.4 347 30.6 384 71 384l217 0 0 64-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-64 217 0c40.4 0 70.7-36.9 62.8-76.6l-51.2-256C574.5 21.5 548.3 0 517.8 0L122.2 0zM260.9 64l118.2 0 10.4 104-139 0L260.9 64zM202.3 168l-100.8 0L122.2 64l90.4 0L202.3 168zM91.8 216l105.6 0L187.1 320 71 320 91.8 216zm153.9 0l148.6 0 10.4 104-169.4 0 10.4-104zm196.8 0l105.6 0L569 320l-116 0L442.5 216zm96-48l-100.8 0L427.3 64l90.4 0 31.4-6.3L517.8 64l20.8 104z"], - "lock-open": [576, 512, [], "f3c1", "M352 144c0-44.2 35.8-80 80-80s80 35.8 80 80l0 48c0 17.7 14.3 32 32 32s32-14.3 32-32l0-48C576 64.5 511.5 0 432 0S288 64.5 288 144l0 48L64 192c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64l-32 0 0-48z"], - "elevator": [512, 512, [], "e16d", "M132.7 4.7l-64 64c-4.6 4.6-5.9 11.5-3.5 17.4s8.3 9.9 14.8 9.9l128 0c6.5 0 12.3-3.9 14.8-9.9s1.1-12.9-3.5-17.4l-64-64c-6.2-6.2-16.4-6.2-22.6 0zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 128zm96 96a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM80 400c0-26.5 21.5-48 48-48l64 0c26.5 0 48 21.5 48 48l0 16c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-16zm192 0c0-26.5 21.5-48 48-48l64 0c26.5 0 48 21.5 48 48l0 16c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-16zm32-128a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM356.7 91.3c6.2 6.2 16.4 6.2 22.6 0l64-64c4.6-4.6 5.9-11.5 3.5-17.4S438.5 0 432 0L304 0c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l64 64z"], - "money-bill-transfer": [640, 512, [], "e528", "M535 41c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l64 64c4.5 4.5 7 10.6 7 17s-2.5 12.5-7 17l-64 64c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l23-23L384 112c-13.3 0-24-10.7-24-24s10.7-24 24-24l174.1 0L535 41zM105 377l-23 23L256 400c13.3 0 24 10.7 24 24s-10.7 24-24 24L81.9 448l23 23c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 441c-4.5-4.5-7-10.6-7-17s2.5-12.5 7-17l64-64c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM96 64l241.9 0c-3.7 7.2-5.9 15.3-5.9 24c0 28.7 23.3 52 52 52l117.4 0c-4 17 .6 35.5 13.8 48.8c20.3 20.3 53.2 20.3 73.5 0L608 169.5 608 384c0 35.3-28.7 64-64 64l-241.9 0c3.7-7.2 5.9-15.3 5.9-24c0-28.7-23.3-52-52-52l-117.4 0c4-17-.6-35.5-13.8-48.8c-20.3-20.3-53.2-20.3-73.5 0L32 342.5 32 128c0-35.3 28.7-64 64-64zm64 64l-64 0 0 64c35.3 0 64-28.7 64-64zM544 320c-35.3 0-64 28.7-64 64l64 0 0-64zM320 352a96 96 0 1 0 0-192 96 96 0 1 0 0 192z"], - "money-bill-trend-up": [512, 512, [], "e529", "M470.7 9.4c3 3.1 5.3 6.6 6.9 10.3s2.4 7.8 2.4 12.2c0 0 0 .1 0 .1c0 0 0 0 0 0l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-18.7L310.6 214.6c-11.8 11.8-30.8 12.6-43.5 1.7L176 138.1 84.8 216.3c-13.4 11.5-33.6 9.9-45.1-3.5s-9.9-33.6 3.5-45.1l112-96c12-10.3 29.7-10.3 41.7 0l89.5 76.7L370.7 64 352 64c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0s0 0 0 0c8.8 0 16.8 3.6 22.6 9.3l.1 .1zM0 304c0-26.5 21.5-48 48-48l416 0c26.5 0 48 21.5 48 48l0 160c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 304zM48 416l0 48 48 0c0-26.5-21.5-48-48-48zM96 304l-48 0 0 48c26.5 0 48-21.5 48-48zM464 416c-26.5 0-48 21.5-48 48l48 0 0-48zM416 304c0 26.5 21.5 48 48 48l0-48-48 0zm-96 80a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z"], - "house-flood-water-circle-arrow-right": [640, 512, [], "e50f", "M288 144A144 144 0 1 0 0 144a144 144 0 1 0 288 0zM140.7 76.7c6.2-6.2 16.4-6.2 22.6 0l56 56c6.2 6.2 6.2 16.4 0 22.6l-56 56c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L169.4 160 80 160c-8.8 0-16-7.2-16-16s7.2-16 16-16l89.4 0L140.7 99.3c-6.2-6.2-6.2-16.4 0-22.6zM320 144c0 57.3-27.4 108.2-69.8 140.3c11.8-3.6 23-9.4 33-16.2c22.1-15.5 51.6-15.5 73.7 0c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.4 78.1 3.4c2.1 1.7 4.2 3.3 6.5 4.9l-.3-84.4 16.6 0c13.9 0 26.1-8.9 30.4-22.1s-.4-27.6-11.6-35.8l-176-128C407.6-2 392.4-2 381.2 6.1L301 64.4c12.1 23.9 19 50.9 19 79.6zm18.5 165.9c-11.1-7.9-25.9-7.9-37 0C279 325.4 251.5 336 224 336c-26.9 0-55.3-10.8-77.4-26.1c0 0 0 0 0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C158.5 389.7 191 400 224 400c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.5-27.3-10.1-39.2-1.7c0 0 0 0 0 0C471.4 325.2 442.9 336 416 336c-27.5 0-55-10.6-77.5-26.1zm0 112c-11.1-7.9-25.9-7.9-37 0C279 437.4 251.5 448 224 448c-26.9 0-55.3-10.8-77.4-26.1c0 0 0 0 0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C158.5 501.7 191 512 224 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7c0 0 0 0 0 0C471.4 437.2 442.9 448 416 448c-27.5 0-55-10.6-77.5-26.1z"], - "square-poll-horizontal": [448, 512, ["poll-h"], "f682", "M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM256 160c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32zm64 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l192 0zM192 352c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0c17.7 0 32 14.3 32 32z"], - "circle": [512, 512, [128308, 128309, 128992, 128993, 128994, 128995, 128996, 9679, 9898, 9899, 11044, 61708, 61915], "f111", "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512z"], - "backward-fast": [512, 512, [9198, "fast-backward"], "f049", "M493.6 445c-11.2 5.3-24.5 3.6-34.1-4.4L288 297.7 288 416c0 12.4-7.2 23.7-18.4 29s-24.5 3.6-34.1-4.4L64 297.7 64 416c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 96C0 78.3 14.3 64 32 64s32 14.3 32 32l0 118.3L235.5 71.4c9.5-7.9 22.8-9.7 34.1-4.4S288 83.6 288 96l0 118.3L459.5 71.4c9.5-7.9 22.8-9.7 34.1-4.4S512 83.6 512 96l0 320c0 12.4-7.2 23.7-18.4 29z"], - "recycle": [512, 512, [9842, 9850, 9851], "f1b8", "M174.7 45.1C192.2 17 223 0 256 0s63.8 17 81.3 45.1l38.6 61.7 27-15.6c8.4-4.9 18.9-4.2 26.6 1.7s11.1 15.9 8.6 25.3l-23.4 87.4c-3.4 12.8-16.6 20.4-29.4 17l-87.4-23.4c-9.4-2.5-16.3-10.4-17.6-20s3.4-19.1 11.8-23.9l28.4-16.4L283 79c-5.8-9.3-16-15-27-15s-21.2 5.7-27 15l-17.5 28c-9.2 14.8-28.6 19.5-43.6 10.5c-15.3-9.2-20.2-29.2-10.7-44.4l17.5-28zM429.5 251.9c15-9 34.4-4.3 43.6 10.5l24.4 39.1c9.4 15.1 14.4 32.4 14.6 50.2c.3 53.1-42.7 96.4-95.8 96.4L320 448l0 32c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-64-64c-9.4-9.4-9.4-24.6 0-33.9l64-64c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2l0 32 96.2 0c17.6 0 31.9-14.4 31.8-32c0-5.9-1.7-11.7-4.8-16.7l-24.4-39.1c-9.5-15.2-4.7-35.2 10.7-44.4zm-364.6-31L36 204.2c-8.4-4.9-13.1-14.3-11.8-23.9s8.2-17.5 17.6-20l87.4-23.4c12.8-3.4 26 4.2 29.4 17L182 241.2c2.5 9.4-.9 19.3-8.6 25.3s-18.2 6.6-26.6 1.7l-26.5-15.3L68.8 335.3c-3.1 5-4.8 10.8-4.8 16.7c-.1 17.6 14.2 32 31.8 32l32.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32.2 0C42.7 448-.3 404.8 0 351.6c.1-17.8 5.1-35.1 14.6-50.2l50.3-80.5z"], - "user-astronaut": [448, 512, [], "f4fb", "M370.7 96.1C346.1 39.5 289.7 0 224 0S101.9 39.5 77.3 96.1C60.9 97.5 48 111.2 48 128l0 64c0 16.8 12.9 30.5 29.3 31.9C101.9 280.5 158.3 320 224 320s122.1-39.5 146.7-96.1c16.4-1.4 29.3-15.1 29.3-31.9l0-64c0-16.8-12.9-30.5-29.3-31.9zM336 144l0 16c0 53-43 96-96 96l-32 0c-53 0-96-43-96-96l0-16c0-26.5 21.5-48 48-48l128 0c26.5 0 48 21.5 48 48zM189.3 162.7l-6-21.2c-.9-3.3-3.9-5.5-7.3-5.5s-6.4 2.2-7.3 5.5l-6 21.2-21.2 6c-3.3 .9-5.5 3.9-5.5 7.3s2.2 6.4 5.5 7.3l21.2 6 6 21.2c.9 3.3 3.9 5.5 7.3 5.5s6.4-2.2 7.3-5.5l6-21.2 21.2-6c3.3-.9 5.5-3.9 5.5-7.3s-2.2-6.4-5.5-7.3l-21.2-6zM112.7 316.5C46.7 342.6 0 407 0 482.3C0 498.7 13.3 512 29.7 512l98.3 0 0-64c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32l0 64 98.3 0c16.4 0 29.7-13.3 29.7-29.7c0-75.3-46.7-139.7-112.7-165.8C303.9 338.8 265.5 352 224 352s-79.9-13.2-111.3-35.5zM176 448c-8.8 0-16 7.2-16 16l0 48 32 0 0-48c0-8.8-7.2-16-16-16zm96 32a16 16 0 1 0 0-32 16 16 0 1 0 0 32z"], - "plane-slash": [640, 512, [], "e069", "M514.3 192c34.2 0 93.7 29 93.7 64c0 36-59.5 64-93.7 64l-73.8 0L630.8 469.1c10.4 8.2 12.3 23.3 4.1 33.7s-23.3 12.3-33.7 4.1L9.2 42.9C-1.2 34.7-3.1 19.6 5.1 9.2S28.4-3.1 38.8 5.1L238.1 161.3 197.8 20.4C194.9 10.2 202.6 0 213.2 0l56.2 0c11.5 0 22.1 6.2 27.8 16.1L397.7 192l116.6 0zM41.5 128.7l321 252.9L297.2 495.9c-5.7 10-16.3 16.1-27.8 16.1l-56.2 0c-10.6 0-18.3-10.2-15.4-20.4l49-171.6L144 320l-43.2 57.6c-3 4-7.8 6.4-12.8 6.4l-42 0c-7.8 0-14-6.3-14-14c0-1.3 .2-2.6 .5-3.9L64 256 32.5 145.9c-.4-1.3-.5-2.6-.5-3.9c0-6.2 4-11.4 9.5-13.3z"], - "trademark": [640, 512, [8482], "f25c", "M345.6 108.8c-8.3-11-22.7-15.5-35.7-11.2S288 114.2 288 128l0 256c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 86.4 115.2c6 8.1 15.5 12.8 25.6 12.8s19.6-4.7 25.6-12.8L576 224l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-256c0-13.8-8.8-26-21.9-30.4s-27.5 .1-35.7 11.2L464 266.7 345.6 108.8zM0 128c0 17.7 14.3 32 32 32l64 0 0 224c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 96C14.3 96 0 110.3 0 128z"], - "basketball": [512, 512, [127936, "basketball-ball"], "f434", "M86.6 64l85.2 85.2C194.5 121.7 208 86.4 208 48c0-14.7-2-28.9-5.7-42.4C158.6 15 119 35.5 86.6 64zM64 86.6C35.5 119 15 158.6 5.6 202.3C19.1 206 33.3 208 48 208c38.4 0 73.7-13.5 101.3-36.1L64 86.6zM256 0c-7.3 0-14.6 .3-21.8 .9C238 16 240 31.8 240 48c0 47.3-17.1 90.5-45.4 124L256 233.4 425.4 64C380.2 24.2 320.9 0 256 0zM48 240c-16.2 0-32-2-47.1-5.8C.3 241.4 0 248.7 0 256c0 64.9 24.2 124.2 64 169.4L233.4 256 172 194.6C138.5 222.9 95.3 240 48 240zm463.1 37.8c.6-7.2 .9-14.5 .9-21.8c0-64.9-24.2-124.2-64-169.4L278.6 256 340 317.4c33.4-28.3 76.7-45.4 124-45.4c16.2 0 32 2 47.1 5.8zm-4.7 31.9C492.9 306 478.7 304 464 304c-38.4 0-73.7 13.5-101.3 36.1L448 425.4c28.5-32.3 49.1-71.9 58.4-115.7zM340.1 362.7C317.5 390.3 304 425.6 304 464c0 14.7 2 28.9 5.7 42.4C353.4 497 393 476.5 425.4 448l-85.2-85.2zM317.4 340L256 278.6 86.6 448c45.1 39.8 104.4 64 169.4 64c7.3 0 14.6-.3 21.8-.9C274 496 272 480.2 272 464c0-47.3 17.1-90.5 45.4-124z"], - "satellite-dish": [512, 512, [128225], "f7c0", "M192 32c0-17.7 14.3-32 32-32C383.1 0 512 128.9 512 288c0 17.7-14.3 32-32 32s-32-14.3-32-32C448 164.3 347.7 64 224 64c-17.7 0-32-14.3-32-32zM60.6 220.6L164.7 324.7l28.4-28.4c-.7-2.6-1.1-5.4-1.1-8.3c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32c-2.9 0-5.6-.4-8.3-1.1l-28.4 28.4L291.4 451.4c14.5 14.5 11.8 38.8-7.3 46.3C260.5 506.9 234.9 512 208 512C93.1 512 0 418.9 0 304c0-26.9 5.1-52.5 14.4-76.1c7.5-19 31.8-21.8 46.3-7.3zM224 96c106 0 192 86 192 192c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-70.7-57.3-128-128-128c-17.7 0-32-14.3-32-32s14.3-32 32-32z"], - "circle-up": [512, 512, [61467, "arrow-alt-circle-up"], "f35b", "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm11.3-395.3l112 112c4.6 4.6 5.9 11.5 3.5 17.4s-8.3 9.9-14.8 9.9l-64 0 0 96c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-96-64 0c-6.5 0-12.3-3.9-14.8-9.9s-1.1-12.9 3.5-17.4l112-112c6.2-6.2 16.4-6.2 22.6 0z"], - "mobile-screen-button": [384, 512, ["mobile-alt"], "f3cd", "M16 64C16 28.7 44.7 0 80 0L304 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L80 512c-35.3 0-64-28.7-64-64L16 64zM224 448a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM304 64L80 64l0 320 224 0 0-320z"], - "volume-high": [640, 512, [128266, "volume-up"], "f028", "M533.6 32.5C598.5 85.2 640 165.8 640 256s-41.5 170.7-106.4 223.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C557.5 398.2 592 331.2 592 256s-34.5-142.2-88.7-186.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zM473.1 107c43.2 35.2 70.9 88.9 70.9 149s-27.7 113.8-70.9 149c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C475.3 341.3 496 301.1 496 256s-20.7-85.3-53.2-111.8c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zm-60.5 74.5C434.1 199.1 448 225.9 448 256s-13.9 56.9-35.4 74.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C393.1 284.4 400 271 400 256s-6.9-28.4-17.7-37.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zM301.1 34.8C312.6 40 320 51.4 320 64l0 384c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352 64 352c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l67.8 0L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3z"], - "users-rays": [640, 512, [], "e593", "M41 7C31.6-2.3 16.4-2.3 7 7S-2.3 31.6 7 41l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L41 7zM599 7L527 79c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0zM7 505c9.4 9.4 24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L7 471c-9.4 9.4-9.4 24.6 0 33.9zm592 0c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-72-72c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72zM320 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM212.1 336c-2.7 7.5-4.1 15.6-4.1 24c0 13.3 10.7 24 24 24l176 0c13.3 0 24-10.7 24-24c0-8.4-1.4-16.5-4.1-24c-.5-1.4-1-2.7-1.6-4c-9.4-22.3-29.8-38.9-54.3-43c-3.9-.7-7.9-1-12-1l-80 0c-4.1 0-8.1 .3-12 1c-.8 .1-1.7 .3-2.5 .5c-24.9 5.1-45.1 23-53.4 46.5zM175.8 224a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-26.5 32C119.9 256 96 279.9 96 309.3c0 14.7 11.9 26.7 26.7 26.7l56.1 0c8-34.1 32.8-61.7 65.2-73.6c-7.5-4.1-16.2-6.4-25.3-6.4l-69.3 0zm368 80c14.7 0 26.7-11.9 26.7-26.7c0-29.5-23.9-53.3-53.3-53.3l-69.3 0c-9.2 0-17.8 2.3-25.3 6.4c32.4 11.9 57.2 39.5 65.2 73.6l56.1 0zM464 224a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"], - "wallet": [512, 512, [], "f555", "M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L80 128c-8.8 0-16-7.2-16-16s7.2-16 16-16l368 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 32zM416 272a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"], - "clipboard-check": [384, 512, [], "f46c", "M192 0c-41.8 0-77.4 26.7-90.5 64L64 64C28.7 64 0 92.7 0 128L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-37.5 0C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM305 273L177 401c-9.4 9.4-24.6 9.4-33.9 0L79 337c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L271 239c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"], - "file-audio": [384, 512, [], "f1c7", "M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zm2 226.3c37.1 22.4 62 63.1 62 109.7s-24.9 87.3-62 109.7c-7.6 4.6-17.4 2.1-22-5.4s-2.1-17.4 5.4-22C269.4 401.5 288 370.9 288 336s-18.6-65.5-46.5-82.3c-7.6-4.6-10-14.4-5.4-22s14.4-10 22-5.4zm-91.9 30.9c6 2.5 9.9 8.3 9.9 14.8l0 128c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5L113.4 376 80 376c-8.8 0-16-7.2-16-16l0-48c0-8.8 7.2-16 16-16l33.4 0 35.3-35.3c4.6-4.6 11.5-5.9 17.4-3.5zm51 34.9c6.6-5.9 16.7-5.3 22.6 1.3C249.8 304.6 256 319.6 256 336s-6.2 31.4-16.3 42.7c-5.9 6.6-16 7.1-22.6 1.3s-7.1-16-1.3-22.6c5.1-5.7 8.1-13.1 8.1-21.3s-3.1-15.7-8.1-21.3c-5.9-6.6-5.3-16.7 1.3-22.6z"], - "burger": [512, 512, ["hamburger"], "f805", "M61.1 224C45 224 32 211 32 194.9c0-1.9 .2-3.7 .6-5.6C37.9 168.3 78.8 32 256 32s218.1 136.3 223.4 157.3c.5 1.9 .6 3.7 .6 5.6c0 16.1-13 29.1-29.1 29.1L61.1 224zM144 128a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm240 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32zM272 96a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zM16 304c0-26.5 21.5-48 48-48l384 0c26.5 0 48 21.5 48 48s-21.5 48-48 48L64 352c-26.5 0-48-21.5-48-48zm16 96c0-8.8 7.2-16 16-16l416 0c8.8 0 16 7.2 16 16l0 16c0 35.3-28.7 64-64 64L96 480c-35.3 0-64-28.7-64-64l0-16z"], - "wrench": [512, 512, [128295], "f0ad", "M352 320c88.4 0 160-71.6 160-160c0-15.3-2.2-30.1-6.2-44.2c-3.1-10.8-16.4-13.2-24.3-5.3l-76.8 76.8c-3 3-7.1 4.7-11.3 4.7L336 192c-8.8 0-16-7.2-16-16l0-57.4c0-4.2 1.7-8.3 4.7-11.3l76.8-76.8c7.9-7.9 5.4-21.2-5.3-24.3C382.1 2.2 367.3 0 352 0C263.6 0 192 71.6 192 160c0 19.1 3.4 37.5 9.5 54.5L19.9 396.1C7.2 408.8 0 426.1 0 444.1C0 481.6 30.4 512 67.9 512c18 0 35.3-7.2 48-19.9L297.5 310.5c17 6.2 35.4 9.5 54.5 9.5zM80 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"], - "bugs": [576, 512, [], "e4d0", "M164.5 107.4l33.4-73.5c5.5-12.1 .1-26.3-11.9-31.8s-26.3-.1-31.8 11.9L128 71.7 101.9 14.1C96.4 2 82.1-3.3 70.1 2.1S52.7 21.9 58.1 33.9l33.4 73.5c-10.2 7.1-18.2 17-22.9 28.6l-17 0-4.1-20.7c-2.6-13-15.2-21.4-28.2-18.8S-2.1 111.7 .5 124.7l8 40C10.7 175.9 20.6 184 32 184l32 0 0 23.3-37.8 9.5c-9.5 2.4-16.6 10.2-17.9 19.9l-8 56c-1.9 13.1 7.2 25.3 20.4 27.2s25.3-7.2 27.2-20.4l5.7-40 18.4-4.6C82.7 274.6 103.8 288 128 288s45.3-13.4 56.1-33.2l18.4 4.6 5.7 40c1.9 13.1 14 22.2 27.2 20.4s22.2-14 20.4-27.2l-8-56c-1.4-9.7-8.5-17.5-17.9-19.9L192 207.3l0-23.3 32 0c11.4 0 21.3-8.1 23.5-19.3l8-40c2.6-13-5.8-25.6-18.8-28.2s-25.6 5.8-28.2 18.8L204.3 136l-17 0c-4.7-11.6-12.7-21.5-22.9-28.6zM496 286.5l65.6-47c10.8-7.7 13.3-22.7 5.6-33.5s-22.7-13.3-33.5-5.6l-51.4 36.8 6.1-62.9c1.3-13.2-8.4-24.9-21.6-26.2s-24.9 8.4-26.2 21.6L432.8 250c-12.3 1-24.2 5.6-34.1 13.3L384 254.8l6.8-20c4.2-12.6-2.5-26.2-15-30.4s-26.2 2.5-30.4 15l-13.1 38.6c-3.7 10.8 .8 22.8 10.7 28.5l27.7 16L359 322.7 321.5 312c-9.4-2.7-19.5 .6-25.5 8.3l-34.9 44.5c-8.2 10.4-6.4 25.5 4.1 33.7s25.5 6.4 33.7-4.1l25-31.8 18.2 5.2c-.5 22.6 11 44.7 32 56.8s45.9 11 65.2-.7l13.6 13.2-15.1 37.5c-4.9 12.3 1 26.3 13.3 31.2s26.3-1 31.2-13.3L503.5 440c3.6-9.1 1.4-19.4-5.6-26.2l-28-27.1 11.6-20.1 27.7 16c9.9 5.7 22.5 3.7 30-4.9L566.2 347c8.7-10 7.8-25.1-2.2-33.9s-25.1-7.8-33.9 2.2l-13.9 15.9-14.7-8.5c1.7-12.4-.2-25-5.5-36.2z"], - "rupee-sign": [448, 512, [8360, "rupee"], "f156", "M0 64C0 46.3 14.3 32 32 32l80 0c79.5 0 144 64.5 144 144c0 58.8-35.2 109.3-85.7 131.7l51.4 128.4c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8L106.3 320 64 320l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 288 0 64zM64 256l48 0c44.2 0 80-35.8 80-80s-35.8-80-80-80L64 96l0 160zm256.5 16.4c-.9 6 0 8.7 .4 9.8c.4 1.1 1.4 2.6 4.2 4.9c7.2 5.7 18.7 10 37.9 16.8l1.3 .5c16 5.6 38.7 13.6 55.7 28.1c9.5 8.1 17.9 18.6 23.1 32.3c5.1 13.7 6.1 28.5 3.8 44c-4.2 28.1-20.5 49.3-43.8 60.9c-22.1 11-48.1 12.5-73.2 8l-.2 0s0 0 0 0c-9.3-1.8-20.5-5.7-29.3-9c-6-2.3-12.6-4.9-17.7-6.9c0 0 0 0 0 0c-2.5-1-4.6-1.8-6.3-2.5c-16.5-6.4-24.6-25-18.2-41.4s24.9-24.6 41.4-18.2c2.6 1 5.2 2 7.9 3.1c0 0 0 0 0 0c4.8 1.9 9.8 3.9 15.4 6c8.8 3.3 15.3 5.4 18.7 6c15.7 2.8 26.7 .8 32.9-2.3c5-2.5 8-6 9.1-13c1-6.9 .2-10.5-.5-12.3c-.6-1.7-1.8-3.6-4.5-5.9c-6.9-5.8-18.2-10.4-36.9-17l-3-1.1c-15.5-5.4-37-13-53.3-25.9c-9.5-7.5-18.3-17.6-23.7-31c-5.5-13.4-6.6-28-4.4-43.2c8.4-57.1 67-78 116.9-68.9c6.9 1.3 27.3 5.8 35.4 8.4c16.9 5.2 26.3 23.2 21.1 40.1s-23.2 26.3-40.1 21.1c-4.7-1.4-22.3-5.5-27.9-6.5c-14.6-2.7-25.8-.4-32.6 3.2c-6.3 3.3-8.9 7.6-9.5 12z"], - "file-image": [384, 512, [128443], "f1c5", "M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM64 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm152 32c5.3 0 10.2 2.6 13.2 6.9l88 128c3.4 4.9 3.7 11.3 1 16.5s-8.2 8.6-14.2 8.6l-88 0-40 0-48 0-48 0c-5.8 0-11.1-3.1-13.9-8.1s-2.8-11.2 .2-16.1l48-80c2.9-4.8 8.1-7.8 13.7-7.8s10.8 2.9 13.7 7.8l12.8 21.4 48.3-70.2c3-4.3 7.9-6.9 13.2-6.9z"], - "circle-question": [512, 512, [62108, "question-circle"], "f059", "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM169.8 165.3c7.9-22.3 29.1-37.3 52.8-37.3l58.3 0c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L280 264.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24l0-13.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1l-58.3 0c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"], - "plane-departure": [640, 512, [128747], "f5b0", "M381 114.9L186.1 41.8c-16.7-6.2-35.2-5.3-51.1 2.7L89.1 67.4C78 73 77.2 88.5 87.6 95.2l146.9 94.5L136 240 77.8 214.1c-8.7-3.9-18.8-3.7-27.3 .6L18.3 230.8c-9.3 4.7-11.8 16.8-5 24.7l73.1 85.3c6.1 7.1 15 11.2 24.3 11.2l137.7 0c5 0 9.9-1.2 14.3-3.4L535.6 212.2c46.5-23.3 82.5-63.3 100.8-112C645.9 75 627.2 48 600.2 48l-57.4 0c-20.2 0-40.2 4.8-58.2 14L381 114.9zM0 480c0 17.7 14.3 32 32 32l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 448c-17.7 0-32 14.3-32 32z"], - "handshake-slash": [640, 512, [], "e060", "M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-135-105.8c-1.1-11.4-6.3-22.3-15.3-30.7l-134.2-123-23.4 18.2-26-20.3 77.2-60.1c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L512 316.8 512 128l-.7 0-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2l-89.7 72.6-25.8-20.3 81.8-66.2c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-35.5 23.7L38.8 5.1zM96 171.6L40.6 128 0 128 0 352c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-180.4zM413.6 421.9L128 196.9 128 352l28.2 0 91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c.8-.8 1.5-1.7 2.2-2.6zM48 320a16 16 0 1 1 0 32 16 16 0 1 1 0-32zM544 128l0 224c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-224-96 0zm32 208a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z"], - "book-bookmark": [448, 512, [], "e0bb", "M0 96C0 43 43 0 96 0l96 0 0 190.7c0 13.4 15.5 20.9 26 12.5L272 160l54 43.2c10.5 8.4 26 .9 26-12.5L352 0l32 0 32 0c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32l0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0L96 512c-53 0-96-43-96-96L0 96zM64 416c0 17.7 14.3 32 32 32l256 0 0-64L96 384c-17.7 0-32 14.3-32 32z"], - "code-branch": [448, 512, [], "f126", "M80 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm80-24c0 32.8-19.7 61-48 73.3l0 87.8c18.8-10.9 40.7-17.1 64-17.1l96 0c35.3 0 64-28.7 64-64l0-6.7C307.7 141 288 112.8 288 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3l0 6.7c0 70.7-57.3 128-128 128l-96 0c-35.3 0-64 28.7-64 64l0 6.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3l0-6.7 0-198.7C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80zm232 0a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM80 456a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"], - "hat-cowboy": [640, 512, [], "f8c0", "M320 64c14.4 0 22.3-7 30.8-14.4C360.4 41.1 370.7 32 392 32c49.3 0 84.4 152.2 97.9 221.9C447.8 272.1 390.9 288 320 288s-127.8-15.9-169.9-34.1C163.6 184.2 198.7 32 248 32c21.3 0 31.6 9.1 41.2 17.6C297.7 57 305.6 64 320 64zM111.1 270.7c47.2 24.5 117.5 49.3 209 49.3s161.8-24.8 208.9-49.3c24.8-12.9 49.8-28.3 70.1-47.7c7.9-7.9 20.2-9.2 29.6-3.3c9.5 5.9 13.5 17.9 9.9 28.5c-13.5 37.7-38.4 72.3-66.1 100.6C523.7 398.9 443.6 448 320 448s-203.6-49.1-252.5-99.2C39.8 320.4 14.9 285.8 1.4 248.1c-3.6-10.6 .4-22.6 9.9-28.5c9.5-5.9 21.7-4.5 29.6 3.3c20.4 19.4 45.3 34.8 70.1 47.7z"], - "bridge": [576, 512, [], "e4c8", "M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l40 0 0 64L0 160 0 288c53 0 96 43 96 96l0 64c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96s96 43 96 96l0 64c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96l0-128-72 0 0-64 40 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM456 96l0 64-80 0 0-64 80 0zM328 96l0 64-80 0 0-64 80 0zM200 96l0 64-80 0 0-64 80 0z"], - "phone-flip": [512, 512, [128381, "phone-alt"], "f879", "M347.1 24.6c7.7-18.6 28-28.5 47.4-23.2l88 24C499.9 30.2 512 46 512 64c0 247.4-200.6 448-448 448c-18 0-33.8-12.1-38.6-29.5l-24-88c-5.3-19.4 4.6-39.7 23.2-47.4l96-40c16.3-6.8 35.2-2.1 46.3 11.6L207.3 368c70.4-33.3 127.4-90.3 160.7-160.7L318.7 167c-13.7-11.2-18.4-30-11.6-46.3l40-96z"], - "truck-front": [512, 512, [], "e2b7", "M0 80C0 35.8 35.8 0 80 0L432 0c44.2 0 80 35.8 80 80l0 288c0 26.2-12.6 49.4-32 64l0 48c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32-256 0 0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-48C12.6 417.4 0 394.2 0 368L0 80zm129.9 72.2L112 224l288 0-17.9-71.8C378.5 138 365.7 128 351 128l-190 0c-14.7 0-27.5 10-31 24.2zM128 320a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"], - "cat": [576, 512, [128008], "f6be", "M320 192l17.1 0c22.1 38.3 63.5 64 110.9 64c11 0 21.8-1.4 32-4l0 4 0 32 0 192c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-140.8L280 448l56 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-144 0c-53 0-96-43-96-96l0-223.5c0-16.1-12-29.8-28-31.8l-7.9-1c-17.5-2.2-30-18.2-27.8-35.7s18.2-30 35.7-27.8l7.9 1c48 6 84.1 46.8 84.1 95.3l0 85.3c34.4-51.7 93.2-85.8 160-85.8zm160 26.5s0 0 0 0c-10 3.5-20.8 5.5-32 5.5c-28.4 0-54-12.4-71.6-32c0 0 0 0 0 0c-3.7-4.1-7-8.5-9.9-13.2C357.3 164 352 146.6 352 128c0 0 0 0 0 0l0-96 0-20 0-1.3C352 4.8 356.7 .1 362.6 0l.2 0c3.3 0 6.4 1.6 8.4 4.2c0 0 0 0 0 .1L384 21.3l27.2 36.3L416 64l64 0 4.8-6.4L512 21.3 524.8 4.3c0 0 0 0 0-.1c2-2.6 5.1-4.2 8.4-4.2l.2 0C539.3 .1 544 4.8 544 10.7l0 1.3 0 20 0 96c0 17.3-4.6 33.6-12.6 47.6c-11.3 19.8-29.6 35.2-51.4 42.9zM432 128a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32z"], - "anchor-circle-exclamation": [640, 512, [], "e4ab", "M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80L224 176c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 208-48 0c-53 0-96-43-96-96l0-6.1 7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7 0 6.1c0 88.4 71.6 160 160 160l80 0 80 0c8.2 0 16.3-.6 24.2-1.8c-22.2-16.2-40.4-37.5-53-62.2L320 448l0-80 0-128 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-10.9 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z"], - "truck-field": [640, 512, [], "e58d", "M32 96c0-35.3 28.7-64 64-64l224 0c23.7 0 44.4 12.9 55.4 32l51.8 0c25.3 0 48.2 14.9 58.5 38l52.8 118.8c.5 1.1 .9 2.1 1.3 3.2l4.2 0c35.3 0 64 28.7 64 64l0 32c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c0 53-43 96-96 96s-96-43-96-96l-128 0c0 53-43 96-96 96s-96-43-96-96l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-32c-17.7 0-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32l0-32zM384 224l85.9 0-42.7-96L384 128l0 96zM160 432a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm368-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z"], - "route": [512, 512, [], "f4d7", "M512 96c0 50.2-59.1 125.1-84.6 155c-3.8 4.4-9.4 6.1-14.5 5L320 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c53 0 96 43 96 96s-43 96-96 96l-276.4 0c8.7-9.9 19.3-22.6 30-36.8c6.3-8.4 12.8-17.6 19-27.2L416 448c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0c-53 0-96-43-96-96s43-96 96-96l39.8 0c-21-31.5-39.8-67.7-39.8-96c0-53 43-96 96-96s96 43 96 96zM117.1 489.1c-3.8 4.3-7.2 8.1-10.1 11.3l-1.8 2-.2-.2c-6 4.6-14.6 4-20-1.8C59.8 473 0 402.5 0 352c0-53 43-96 96-96s96 43 96 96c0 30-21.1 67-43.5 97.9c-10.7 14.7-21.7 28-30.8 38.5l-.6 .7zM128 352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM416 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"], - "clipboard-question": [384, 512, [], "e4e3", "M192 0c-41.8 0-77.4 26.7-90.5 64L64 64C28.7 64 0 92.7 0 128L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-37.5 0C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM105.8 229.3c7.9-22.3 29.1-37.3 52.8-37.3l58.3 0c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L216 328.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24l0-13.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1l-58.3 0c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM160 416a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"], - "panorama": [640, 512, [], "e209", "M45.6 32C20.4 32 0 52.4 0 77.6L0 434.4C0 459.6 20.4 480 45.6 480c5.1 0 10-.8 14.7-2.4C74.6 472.8 177.6 440 320 440s245.4 32.8 259.6 37.6c4.7 1.6 9.7 2.4 14.7 2.4c25.2 0 45.6-20.4 45.6-45.6l0-356.7C640 52.4 619.6 32 594.4 32c-5 0-10 .8-14.7 2.4C565.4 39.2 462.4 72 320 72S74.6 39.2 60.4 34.4C55.6 32.8 50.7 32 45.6 32zM96 160a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm272 0c7.9 0 15.4 3.9 19.8 10.5L512.3 353c5.4 8 5.6 18.4 .4 26.5s-14.7 12.3-24.2 10.7C442.7 382.4 385.2 376 320 376c-65.6 0-123.4 6.5-169.3 14.4c-9.8 1.7-19.7-2.9-24.7-11.5s-4.3-19.4 1.9-27.2L197.3 265c4.6-5.7 11.4-9 18.7-9s14.2 3.3 18.7 9l26.4 33.1 87-127.6c4.5-6.6 11.9-10.5 19.8-10.5z"], - "comment-medical": [512, 512, [], "f7f5", "M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zM224 160c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48z"], - "teeth-open": [576, 512, [], "f62f", "M96 32C43 32 0 75 0 128l0 64c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-64c0-53-43-96-96-96L96 32zM224 96c26.5 0 48 21.5 48 48l0 56c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-56c0-26.5 21.5-48 48-48zm80 48c0-26.5 21.5-48 48-48s48 21.5 48 48l0 56c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-56zM96 128c26.5 0 48 21.5 48 48l0 24c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-24c0-26.5 21.5-48 48-48zm336 48c0-26.5 21.5-48 48-48s48 21.5 48 48l0 24c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-24zM96 480l384 0c53 0 96-43 96-96l0-32c0-35.3-28.7-64-64-64L64 288c-35.3 0-64 28.7-64 64l0 32c0 53 43 96 96 96zm0-64c-26.5 0-48-21.5-48-48l0-24c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 24c0 26.5-21.5 48-48 48zm80-48l0-24c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 24c0 26.5-21.5 48-48 48s-48-21.5-48-48zm176 48c-26.5 0-48-21.5-48-48l0-24c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 24c0 26.5-21.5 48-48 48zm80-48l0-24c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 24c0 26.5-21.5 48-48 48s-48-21.5-48-48z"], - "file-circle-minus": [576, 512, [], "e4ed", "M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zM288 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm224 0c0-8.8-7.2-16-16-16l-128 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l128 0c8.8 0 16-7.2 16-16z"], - "tags": [512, 512, [], "f02c", "M345 39.1L472.8 168.4c52.4 53 52.4 138.2 0 191.2L360.8 472.9c-9.3 9.4-24.5 9.5-33.9 .2s-9.5-24.5-.2-33.9L438.6 325.9c33.9-34.3 33.9-89.4 0-123.7L310.9 72.9c-9.3-9.4-9.2-24.6 .2-33.9s24.6-9.2 33.9 .2zM0 229.5L0 80C0 53.5 21.5 32 48 32l149.5 0c17 0 33.3 6.7 45.3 18.7l168 168c25 25 25 65.5 0 90.5L277.3 442.7c-25 25-65.5 25-90.5 0l-168-168C6.7 262.7 0 246.5 0 229.5zM144 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"], - "wine-glass": [320, 512, [127863], "f4e3", "M32.1 29.3C33.5 12.8 47.4 0 64 0L256 0c16.6 0 30.5 12.8 31.9 29.3l14 168.4c6 72-42.5 135.2-109.9 150.6l0 99.6 48 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-80 0-80 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l48 0 0-99.6C60.6 333 12.1 269.8 18.1 197.8l14-168.4zm56 98.7l143.8 0-5.3-64L93.4 64l-5.3 64z"], - "forward-fast": [512, 512, [9197, "fast-forward"], "f050", "M18.4 445c11.2 5.3 24.5 3.6 34.1-4.4L224 297.7 224 416c0 12.4 7.2 23.7 18.4 29s24.5 3.6 34.1-4.4L448 297.7 448 416c0 17.7 14.3 32 32 32s32-14.3 32-32l0-320c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 118.3L276.5 71.4c-9.5-7.9-22.8-9.7-34.1-4.4S224 83.6 224 96l0 118.3L52.5 71.4c-9.5-7.9-22.8-9.7-34.1-4.4S0 83.6 0 96L0 416c0 12.4 7.2 23.7 18.4 29z"], - "face-meh-blank": [512, 512, [128566, "meh-blank"], "f5a4", "M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm208.4-48a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm128 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"], - "square-parking": [448, 512, [127359, "parking"], "f540", "M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM192 256l48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-48 0 0 64zm48 64l-48 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64 0-120c0-22.1 17.9-40 40-40l72 0c53 0 96 43 96 96s-43 96-96 96z"], - "house-signal": [576, 512, [], "e012", "M357.7 8.5c-12.3-11.3-31.2-11.3-43.4 0l-208 192c-9.4 8.6-12.7 22-8.5 34c87.1 25.3 155.6 94.2 180.3 181.6L464 416c26.5 0 48-21.5 48-48l0-112 32 0c13.2 0 25-8.1 29.8-20.3s1.6-26.2-8.1-35.2l-208-192zM288 208c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16l0-64zM24 256c-13.3 0-24 10.7-24 24s10.7 24 24 24c101.6 0 184 82.4 184 184c0 13.3 10.7 24 24 24s24-10.7 24-24c0-128.1-103.9-232-232-232zm8 256a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM0 376c0 13.3 10.7 24 24 24c48.6 0 88 39.4 88 88c0 13.3 10.7 24 24 24s24-10.7 24-24c0-75.1-60.9-136-136-136c-13.3 0-24 10.7-24 24z"], - "bars-progress": [512, 512, ["tasks-alt"], "f828", "M448 160l-128 0 0-32 128 0 0 32zM48 64C21.5 64 0 85.5 0 112l0 64c0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48L48 64zM448 352l0 32-256 0 0-32 256 0zM48 288c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48L48 288z"], - "faucet-drip": [512, 512, [128688], "e006", "M224 0c17.7 0 32 14.3 32 32l0 12 96-12c17.7 0 32 14.3 32 32s-14.3 32-32 32L256 84l-31-3.9-1-.1-1 .1L192 84 96 96C78.3 96 64 81.7 64 64s14.3-32 32-32l96 12 0-12c0-17.7 14.3-32 32-32zM0 224c0-17.7 14.3-32 32-32l96 0 22.6-22.6c6-6 14.1-9.4 22.6-9.4l18.7 0 0-43.8 32-4 32 4 0 43.8 18.7 0c8.5 0 16.6 3.4 22.6 9.4L320 192l32 0c88.4 0 160 71.6 160 160c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s-14.3-32-32-32l-36.1 0c-20.2 29-53.9 48-91.9 48s-71.7-19-91.9-48L32 320c-17.7 0-32-14.3-32-32l0-64zM436.8 423.4c1.9-4.5 6.3-7.4 11.2-7.4s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1l18.2-42.4z"], - "cart-flatbed": [640, 512, ["dolly-flatbed"], "f474", "M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l16 0c8.8 0 16 7.2 16 16l0 288c0 44.2 35.8 80 80 80l18.7 0c-1.8 5-2.7 10.4-2.7 16c0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1-11-2.7-16l197.5 0c-1.8 5-2.7 10.4-2.7 16c0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1-11-2.7-16l66.7 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-464 0c-8.8 0-16-7.2-16-16l0-288C128 35.8 92.2 0 48 0L32 0zM192 80l0 192c0 26.5 21.5 48 48 48l320 0c26.5 0 48-21.5 48-48l0-192c0-26.5-21.5-48-48-48l-96 0 0 144c0 5.9-3.2 11.3-8.5 14.1s-11.5 2.5-16.4-.8L400 163.2l-39.1 26.1c-4.9 3.3-11.2 3.6-16.4 .8s-8.5-8.2-8.5-14.1l0-144-96 0c-26.5 0-48 21.5-48 48z"], - "ban-smoking": [512, 512, [128685, "smoking-ban"], "f54d", "M99.5 144.8L178.7 224l96 96 92.5 92.5C335.9 434.9 297.5 448 256 448C150 448 64 362 64 256c0-41.5 13.1-79.9 35.5-111.2zM333.3 288l-32-32 82.7 0 0 32-50.7 0zm32 32l34.7 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-130.7 0L144.8 99.5C176.1 77.1 214.5 64 256 64c106 0 192 86 192 192c0 41.5-13.1 79.9-35.5 111.2L365.3 320zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM272 96c-8.8 0-16 7.2-16 16c0 26.5 21.5 48 48 48l32 0c8.8 0 16 7.2 16 16s7.2 16 16 16s16-7.2 16-16c0-26.5-21.5-48-48-48l-32 0c-8.8 0-16-7.2-16-16s-7.2-16-16-16zM229.5 320l-96-96L112 224c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l117.5 0z"], - "terminal": [576, 512, [], "f120", "M9.4 86.6C-3.1 74.1-3.1 53.9 9.4 41.4s32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L178.7 256 9.4 86.6zM256 416l288 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-288 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z"], - "mobile-button": [384, 512, [], "f10b", "M80 0C44.7 0 16 28.7 16 64l0 384c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L80 0zM192 400a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"], - "house-medical-flag": [640, 512, [], "e514", "M480 0c17.7 0 32 14.3 32 32l112 0c8.8 0 16 7.2 16 16l0 128c0 8.8-7.2 16-16 16l-112 0 0 320-64 0 0-320 0-160c0-17.7 14.3-32 32-32zM276.8 39.7L416 159l0 353 1 0-.2 0L96 512c-17.7 0-32-14.3-32-32l0-192-32 0c-13.4 0-25.4-8.3-30-20.9s-1-26.7 9.2-35.4l224-192c12-10.3 29.7-10.3 41.7 0zM224 208l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-48 0 0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z"], - "basket-shopping": [576, 512, ["shopping-basket"], "f291", "M253.3 35.1c6.1-11.8 1.5-26.3-10.2-32.4s-26.3-1.5-32.4 10.2L117.6 192 32 192c-17.7 0-32 14.3-32 32s14.3 32 32 32L83.9 463.5C91 492 116.6 512 146 512L430 512c29.4 0 55-20 62.1-48.5L544 256c17.7 0 32-14.3 32-32s-14.3-32-32-32l-85.6 0L365.3 12.9C359.2 1.2 344.7-3.4 332.9 2.7s-16.3 20.6-10.2 32.4L404.3 192l-232.6 0L253.3 35.1zM192 304l0 96c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-8.8 7.2-16 16-16s16 7.2 16 16zm96-16c8.8 0 16 7.2 16 16l0 96c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-8.8 7.2-16 16-16zm128 16l0 96c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-8.8 7.2-16 16-16s16 7.2 16 16z"], - "tape": [576, 512, [], "f4db", "M380.8 416c41.5-40.7 67.2-97.3 67.2-160C448 132.3 347.7 32 224 32S0 132.3 0 256S100.3 480 224 480l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-163.2 0zM224 160a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm64 96a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z"], - "bus-simple": [448, 512, ["bus-alt"], "f55e", "M224 0C348.8 0 448 35.2 448 80l0 16 0 320c0 17.7-14.3 32-32 32l0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32-192 0 0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32c-17.7 0-32-14.3-32-32L0 96 0 80C0 35.2 99.2 0 224 0zM64 128l0 128c0 17.7 14.3 32 32 32l256 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32L96 96c-17.7 0-32 14.3-32 32zM80 400a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm288 0a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"], - "eye": [576, 512, [128065], "f06e", "M288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4C142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32zM144 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-64c0 35.3-28.7 64-64 64c-7.1 0-13.9-1.2-20.3-3.3c-5.5-1.8-11.9 1.6-11.7 7.4c.3 6.9 1.3 13.8 3.2 20.7c13.7 51.2 66.4 81.6 117.6 67.9s81.6-66.4 67.9-117.6c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3z"], - "face-sad-cry": [512, 512, [128557, "sad-cry"], "f5b3", "M352 493.4c-29.6 12-62.1 18.6-96 18.6s-66.4-6.6-96-18.6L160 288c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 189.8C51.5 433.5 0 350.8 0 256C0 114.6 114.6 0 256 0S512 114.6 512 256c0 94.8-51.5 177.5-128 221.8L384 288c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 205.4zM195.2 233.6c5.3 7.1 15.3 8.5 22.4 3.2s8.5-15.3 3.2-22.4c-30.4-40.5-91.2-40.5-121.6 0c-5.3 7.1-3.9 17.1 3.2 22.4s17.1 3.9 22.4-3.2c17.6-23.5 52.8-23.5 70.4 0zm121.6 0c17.6-23.5 52.8-23.5 70.4 0c5.3 7.1 15.3 8.5 22.4 3.2s8.5-15.3 3.2-22.4c-30.4-40.5-91.2-40.5-121.6 0c-5.3 7.1-3.9 17.1 3.2 22.4s17.1 3.9 22.4-3.2zM208 336l0 32c0 26.5 21.5 48 48 48s48-21.5 48-48l0-32c0-26.5-21.5-48-48-48s-48 21.5-48 48z"], - "audio-description": [576, 512, [], "f29e", "M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM213.5 173.3l72 144c5.9 11.9 1.1 26.3-10.7 32.2s-26.3 1.1-32.2-10.7l-9.4-18.9-82.2 0-9.4 18.9c-5.9 11.9-20.3 16.7-32.2 10.7s-16.7-20.3-10.7-32.2l72-144c4.1-8.1 12.4-13.3 21.5-13.3s17.4 5.1 21.5 13.3zm-.4 106.6L192 237.7l-21.1 42.2 42.2 0zM304 184c0-13.3 10.7-24 24-24l56 0c53 0 96 43 96 96s-43 96-96 96l-56 0c-13.3 0-24-10.7-24-24l0-144zm48 24l0 96 32 0c26.5 0 48-21.5 48-48s-21.5-48-48-48l-32 0z"], - "person-military-to-person": [512, 512, [], "e54c", "M71 12.5c-8.6 1-15 8.2-15 16.8c0 9.3 7.5 16.8 16.7 16.9l111.4 0c8.8-.1 15.9-7.2 15.9-16L200 16c0-9.5-8.3-17-17.8-15.9L71 12.5zM189.5 78.1l-122.9 0C64.9 83.8 64 89.8 64 96c0 35.3 28.7 64 64 64s64-28.7 64-64c0-6.2-.9-12.2-2.5-17.9zM32 256l0 32c0 17.7 14.3 32 32 32l128 0c1.8 0 3.5-.1 5.2-.4L53 208.6C40.1 220.3 32 237.2 32 256zm190.2 42.5c1.1-3.3 1.8-6.8 1.8-10.5l0-32c0-35.3-28.7-64-64-64l-64 0c-3.7 0-7.4 .3-10.9 .9L222.2 298.5zM384 160a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm-32 32c-35.3 0-64 28.7-64 64l0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32c0-35.3-28.7-64-64-64l-64 0zM215.8 450.1c5.2-4.6 8.2-11.1 8.2-18.1s-3-13.5-8.2-18.1l-64-56c-7.1-6.2-17.1-7.7-25.7-3.8S112 366.6 112 376l0 32-88 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l88 0 0 32c0 9.4 5.5 18 14.1 21.9s18.6 2.4 25.7-3.8l64-56zM288 431.9c0 6.9 2.9 13.5 8.1 18.1l64 56.4c7.1 6.2 17.1 7.8 25.7 3.9s14.1-12.4 14.1-21.9l0-32.4 88 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-88 0 0-32c0-9.4-5.5-18-14.1-21.9s-18.6-2.4-25.7 3.8l-64 56c-5.2 4.5-8.2 11.1-8.2 18z"], - "file-shield": [576, 512, [], "e4f0", "M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 47-92.8 37.1c-21.3 8.5-35.2 29.1-35.2 52c0 56.6 18.9 148 94.2 208.3c-9 4.8-19.3 7.6-30.2 7.6L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zm39.1 97.7c5.7-2.3 12.1-2.3 17.8 0l120 48C570 277.4 576 286.2 576 296c0 63.3-25.9 168.8-134.8 214.2c-5.9 2.5-12.6 2.5-18.5 0C313.9 464.8 288 359.3 288 296c0-9.8 6-18.6 15.1-22.3l120-48zM527.4 312L432 273.8l0 187.8c68.2-33 91.5-99 95.4-149.7z"], - "user-slash": [640, 512, [], "f506", "M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L353.3 251.6C407.9 237 448 187.2 448 128C448 57.3 390.7 0 320 0C250.2 0 193.5 55.8 192 125.2L38.8 5.1zM264.3 304.3C170.5 309.4 96 387.2 96 482.3c0 16.4 13.3 29.7 29.7 29.7l388.6 0c3.9 0 7.6-.7 11-2.1l-261-205.6z"], - "pen": [512, 512, [128394], "f304", "M362.7 19.3L314.3 67.7 444.3 197.7l48.4-48.4c25-25 25-65.5 0-90.5L453.3 19.3c-25-25-65.5-25-90.5 0zm-71 71L58.6 323.5c-10.4 10.4-18 23.3-22.2 37.4L1 481.2C-1.5 489.7 .8 498.8 7 505s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2L421.7 220.3 291.7 90.3z"], - "tower-observation": [512, 512, [], "e586", "M241.7 3.4c9-4.5 19.6-4.5 28.6 0l160 80c15.8 7.9 22.2 27.1 14.3 42.9C439 137.5 427.7 144 416 144l0 80c0 17.7-14.3 32-32 32l-4.9 0 32 192 68.9 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-95.5 0c-.4 0-.8 0-1.1 0l-254.8 0c-.4 0-.8 0-1.1 0L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l68.9 0 32-192-4.9 0c-17.7 0-32-14.3-32-32l0-80c-11.7 0-23-6.5-28.6-17.7c-7.9-15.8-1.5-35 14.3-42.9l160-80zM314.5 448L256 399.2 197.5 448l117 0zM197.8 256l-4.7 28.3L256 336.8l62.9-52.5L314.2 256l-116.5 0zm-13.9 83.2l-11.2 67L218.5 368l-34.6-28.8zM293.5 368l45.8 38.1-11.2-67L293.5 368zM176 128c-8.8 0-16 7.2-16 16s7.2 16 16 16l160 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-160 0z"], - "file-code": [384, 512, [], "f1c9", "M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM153 289l-31 31 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L71 337c-9.4-9.4-9.4-24.6 0-33.9l48-48c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM265 255l48 48c9.4 9.4 9.4 24.6 0 33.9l-48 48c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z"], - "signal": [640, 512, [128246, "signal-5", "signal-perfect"], "f012", "M576 0c17.7 0 32 14.3 32 32l0 448c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-448c0-17.7 14.3-32 32-32zM448 96c17.7 0 32 14.3 32 32l0 352c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-352c0-17.7 14.3-32 32-32zM352 224l0 256c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32s32 14.3 32 32zM192 288c17.7 0 32 14.3 32 32l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160c0-17.7 14.3-32 32-32zM96 416l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32z"], - "bus": [576, 512, [128653], "f207", "M288 0C422.4 0 512 35.2 512 80l0 16 0 32c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l0 160c0 17.7-14.3 32-32 32l0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32-192 0 0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32c-17.7 0-32-14.3-32-32l0-160c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32c0 0 0 0 0 0l0-32s0 0 0 0l0-16C64 35.2 153.6 0 288 0zM128 160l0 96c0 17.7 14.3 32 32 32l112 0 0-160-112 0c-17.7 0-32 14.3-32 32zM304 288l112 0c17.7 0 32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-112 0 0 160zM144 400a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm288 0a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM384 80c0-8.8-7.2-16-16-16L208 64c-8.8 0-16 7.2-16 16s7.2 16 16 16l160 0c8.8 0 16-7.2 16-16z"], - "heart-circle-xmark": [576, 512, [], "e501", "M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6l0-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1l0 5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L454.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L432 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L409.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L432 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"], - "house-chimney": [576, 512, [63499, "home-lg"], "e3af", "M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L512 185l0-121c0-17.7-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32l0 36.7L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1l32 0 0 69.7c-.1 .9-.1 1.8-.1 2.8l0 112c0 22.1 17.9 40 40 40l16 0c1.2 0 2.4-.1 3.6-.2c1.5 .1 3 .2 4.5 .2l31.9 0 24 0c22.1 0 40-17.9 40-40l0-24 0-64c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 64 0 24c0 22.1 17.9 40 40 40l24 0 32.5 0c1.4 0 2.8 0 4.2-.1c1.1 .1 2.2 .1 3.3 .1l16 0c22.1 0 40-17.9 40-40l0-16.2c.3-2.6 .5-5.3 .5-8.1l-.7-160.2 32 0z"], - "window-maximize": [512, 512, [128470], "f2d0", "M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM96 96l320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L96 160c-17.7 0-32-14.3-32-32s14.3-32 32-32z"], - "face-frown": [512, 512, [9785, "frown"], "f119", "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM159.3 388.7c-2.6 8.4-11.6 13.2-20 10.5s-13.2-11.6-10.5-20C145.2 326.1 196.3 288 256 288s110.8 38.1 127.3 91.3c2.6 8.4-2.1 17.4-10.5 20s-17.4-2.1-20-10.5C340.5 349.4 302.1 320 256 320s-84.5 29.4-96.7 68.7zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"], - "prescription": [448, 512, [], "f5b1", "M32 0C14.3 0 0 14.3 0 32L0 192l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 50.7 0 128 128L137.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L288 397.3 393.4 502.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L333.3 352 438.6 246.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 306.7l-85.8-85.8C251.4 209.1 288 164.8 288 112C288 50.1 237.9 0 176 0L32 0zM176 160L64 160l0-96 112 0c26.5 0 48 21.5 48 48s-21.5 48-48 48z"], - "shop": [640, 512, ["store-alt"], "f54f", "M36.8 192l566.3 0c20.3 0 36.8-16.5 36.8-36.8c0-7.3-2.2-14.4-6.2-20.4L558.2 21.4C549.3 8 534.4 0 518.3 0L121.7 0c-16 0-31 8-39.9 21.4L6.2 134.7c-4 6.1-6.2 13.2-6.2 20.4C0 175.5 16.5 192 36.8 192zM64 224l0 160 0 80c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-80 0-160-64 0 0 160-192 0 0-160-64 0zm448 0l0 256c0 17.7 14.3 32 32 32s32-14.3 32-32l0-256-64 0z"], - "floppy-disk": [448, 512, [128190, 128426, "save"], "f0c7", "M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-242.7c0-17-6.7-33.3-18.7-45.3L352 50.7C340 38.7 323.7 32 306.7 32L64 32zm0 96c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32L96 224c-17.7 0-32-14.3-32-32l0-64zM224 288a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"], - "vihara": [640, 512, [], "f6a7", "M281 22L305.8 4.7c1.3-.9 2.7-1.8 4.1-2.4C313.1 .7 316.6 0 320 0s6.9 .7 10.1 2.2c1.4 .7 2.8 1.5 4.1 2.4L359 22C393 45.8 430.8 63.5 470.8 74.4l23 6.3c1.8 .5 3.6 1.1 5.2 2c3.2 1.7 5.9 4 8.1 6.8c3.8 4.9 5.6 11.3 4.7 17.8c-.4 2.8-1.2 5.4-2.5 7.8c-1.7 3.2-4 5.9-6.8 8.1c-4.3 3.2-9.6 5.1-15.1 4.9l-7.5 0 0 56.1 6.4 5.1 5.2 4.1c21.1 16.7 45 29.6 70.5 38.1l28.9 9.6c1.6 .5 3.2 1.2 4.6 2c3.1 1.7 5.8 4.1 7.8 6.9s3.5 6.1 4.1 9.6c.5 2.7 .6 5.5 .1 8.3s-1.4 5.4-2.7 7.8c-1.7 3.1-4.1 5.8-6.9 7.8s-6.1 3.5-9.6 4.1c-1.6 .3-3.3 .4-5 .4L544 288l0 65.9c20.5 22.8 47.4 39.2 77.4 46.7C632 403 640 412.6 640 424c0 13.3-10.7 24-24 24l-40 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-160 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-160 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-40 0c-13.3 0-24-10.7-24-24c0-11.4 8-21 18.6-23.4c30-7.6 56.9-23.9 77.4-46.7L96 288l-39.4 0c-1.7 0-3.4-.1-5-.4c-3.5-.7-6.8-2.1-9.6-4.1s-5.2-4.7-7-7.8c-1.3-2.4-2.3-5-2.7-7.8s-.4-5.6 .1-8.3c.7-3.5 2.1-6.8 4.1-9.6s4.7-5.2 7.8-6.9c1.4-.8 3-1.5 4.6-2l28.9-9.6c25.5-8.5 49.4-21.4 70.5-38.1l5.2-4.1 6.4-5.1 0-8.1 0-48-7.5 0c-5.5 .1-10.8-1.7-15.1-4.9c-2.8-2.1-5.1-4.8-6.8-8.1c-1.2-2.4-2.1-5-2.5-7.8c-.9-6.5 .9-12.8 4.7-17.8c2.1-2.8 4.8-5.1 8.1-6.8c1.6-.8 3.4-1.5 5.2-2l23-6.3C209.2 63.5 247 45.8 281 22zM416 128l-96 0-96 0 0 64 72 0 48 0 72 0 0-64zM160 288l0 64 136 0 24 0 24 0 136 0 0-64-136 0-24 0s0 0 0 0l-24 0-136 0z"], - "scale-unbalanced": [640, 512, ["balance-scale-left"], "f515", "M522.1 62.4c16.8-5.6 25.8-23.7 20.2-40.5S518.6-3.9 501.9 1.6l-113 37.7C375 15.8 349.3 0 320 0c-44.2 0-80 35.8-80 80c0 3 .2 5.9 .5 8.8L117.9 129.6c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l135.5-45.2c4.5 3.2 9.3 5.9 14.4 8.2L288 480c0 17.7 14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0 0-294.7c21-9.2 37.2-27 44.2-49l125.9-42zM439.6 288L512 163.8 584.4 288l-144.9 0zM512 384c62.9 0 115.2-34 126-78.9c2.6-11-1-22.3-6.7-32.1L536.1 109.8c-5-8.6-14.2-13.8-24.1-13.8s-19.1 5.3-24.1 13.8L392.7 273.1c-5.7 9.8-9.3 21.1-6.7 32.1C396.8 350 449.1 384 512 384zM129.2 291.8L201.6 416 56.7 416l72.4-124.2zM3.2 433.1C14 478 66.3 512 129.2 512s115.2-34 126-78.9c2.6-11-1-22.3-6.7-32.1L153.2 237.8c-5-8.6-14.2-13.8-24.1-13.8s-19.1 5.3-24.1 13.8L9.9 401.1c-5.7 9.8-9.3 21.1-6.7 32.1z"], - "sort-up": [320, 512, ["sort-asc"], "f0de", "M182.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l256 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-128-128z"], - "comment-dots": [512, 512, [128172, 62075, "commenting"], "f4ad", "M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zM128 208a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"], - "plant-wilt": [512, 512, [], "e5aa", "M288 120c0-30.9 25.1-56 56-56s56 25.1 56 56l0 13c-29.3 10-48 34.5-48 70.1c0 27.9 25.3 74.8 66 111.6c3.8 3.5 8.9 5.3 14 5.3s10.2-1.8 14-5.3c40.7-36.8 66-83.7 66-111.6c0-35.6-18.7-60.2-48-70.1l0-13C464 53.7 410.3 0 344 0S224 53.7 224 120l0 21.8C207.3 133 188.2 128 168 128c-66.3 0-120 53.7-120 120l0 13c-29.3 10-48 34.5-48 70.1C0 359 25.3 405.9 66 442.7c3.8 3.5 8.9 5.3 14 5.3s10.2-1.8 14-5.3c40.7-36.8 66-83.7 66-111.6c0-35.6-18.7-60.2-48-70.1l0-13c0-30.9 25.1-56 56-56s56 25.1 56 56l0 32 0 200c0 17.7 14.3 32 32 32s32-14.3 32-32l0-200 0-32 0-128z"], - "diamond": [512, 512, [9830], "f219", "M284.3 11.7c-15.6-15.6-40.9-15.6-56.6 0l-216 216c-15.6 15.6-15.6 40.9 0 56.6l216 216c15.6 15.6 40.9 15.6 56.6 0l216-216c15.6-15.6 15.6-40.9 0-56.6l-216-216z"], - "face-grin-squint": [512, 512, [128518, "grin-squint"], "f585", "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zM133.5 146.7l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z"], - "hand-holding-dollar": [576, 512, ["hand-holding-usd"], "f4c0", "M312 24l0 10.5c6.4 1.2 12.6 2.7 18.2 4.2c12.8 3.4 20.4 16.6 17 29.4s-16.6 20.4-29.4 17c-10.9-2.9-21.1-4.9-30.2-5c-7.3-.1-14.7 1.7-19.4 4.4c-2.1 1.3-3.1 2.4-3.5 3c-.3 .5-.7 1.2-.7 2.8c0 .3 0 .5 0 .6c.2 .2 .9 1.2 3.3 2.6c5.8 3.5 14.4 6.2 27.4 10.1l.9 .3s0 0 0 0c11.1 3.3 25.9 7.8 37.9 15.3c13.7 8.6 26.1 22.9 26.4 44.9c.3 22.5-11.4 38.9-26.7 48.5c-6.7 4.1-13.9 7-21.3 8.8l0 10.6c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-11.4c-9.5-2.3-18.2-5.3-25.6-7.8c-2.1-.7-4.1-1.4-6-2c-12.6-4.2-19.4-17.8-15.2-30.4s17.8-19.4 30.4-15.2c2.6 .9 5 1.7 7.3 2.5c13.6 4.6 23.4 7.9 33.9 8.3c8 .3 15.1-1.6 19.2-4.1c1.9-1.2 2.8-2.2 3.2-2.9c.4-.6 .9-1.8 .8-4.1l0-.2c0-1 0-2.1-4-4.6c-5.7-3.6-14.3-6.4-27.1-10.3l-1.9-.6c-10.8-3.2-25-7.5-36.4-14.4c-13.5-8.1-26.5-22-26.6-44.1c-.1-22.9 12.9-38.6 27.7-47.4c6.4-3.8 13.3-6.4 20.2-8.2L264 24c0-13.3 10.7-24 24-24s24 10.7 24 24zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5L192 512 32 512c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l36.8 0 44.9-36c22.7-18.2 50.9-28 80-28l78.3 0 16 0 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l120.6 0 119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384c0 0 0 0 0 0l-.9 0c.3 0 .6 0 .9 0z"], - "chart-diagram": [512, 512, [], "e695", "M80 32C53.5 32 32 53.5 32 80s21.5 48 48 48l152 0 0 40-48 48-56 0c-48.6 0-88 39.4-88 88l0 48-8 0c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-8 0 0-48c0-22.1 17.9-40 40-40l56 0 48 48 0 40-8 0c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-8 0 0-40 48-48 56 0c22.1 0 40 17.9 40 40l0 48-8 0c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-8 0 0-48c0-48.6-39.4-88-88-88l-56 0-48-48 0-40 152 0c26.5 0 48-21.5 48-48s-21.5-48-48-48L80 32z"], - "bacterium": [512, 512, [], "e05a", "M423.1 30.6c3.6-12.7-3.7-26-16.5-29.7s-26 3.7-29.7 16.5l-4.2 14.7c-9.8-.4-19.9 .5-29.9 2.8c-12.1 2.8-23.7 5.9-34.9 9.4l-5.9-13.7c-5.2-12.2-19.3-17.8-31.5-12.6s-17.8 19.3-12.6 31.5l4.9 11.3c-22 9.4-42 20.1-60.2 31.8L196 82.7c-7.4-11-22.3-14-33.3-6.7s-14 22.3-6.7 33.3l7.8 11.6c-18 15-33.7 30.8-47.3 47.1L103 157.3c-10.4-8.3-25.5-6.6-33.7 3.7s-6.6 25.5 3.7 33.7l15 12c-2.1 3.2-4.1 6.5-6 9.7c-9.4 15.7-17 31-23.2 45.3l-9.9-3.9c-12.3-4.9-26.3 1.1-31.2 13.4s1.1 26.3 13.4 31.2l11.6 4.6c-.3 1.1-.6 2.1-.9 3.1c-3.5 12.5-5.7 23.2-7.1 31.3c-.7 4.1-1.2 7.5-1.6 10.3c-.2 1.4-.3 2.6-.4 3.6l-.1 1.4-.1 .6 0 .3 0 .1c0 0 0 .1 39.2 3.7c0 0 0 0 0 0l-39.2-3.6c-.5 5-.6 10-.4 14.9l-14.7 4.2C4.7 380.6-2.7 393.8 .9 406.6s16.9 20.1 29.7 16.5l13.8-3.9c10.6 20.7 27.6 37.8 48.5 48.5l-3.9 13.7c-3.6 12.7 3.7 26 16.5 29.7s26-3.7 29.7-16.5l4.2-14.7c23.8 1 46.3-5.5 65.1-17.6L215 473c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-10.6-10.6c9.1-14.1 15.1-30.5 17-48.3l.1-.8c.3-1.7 1-5.1 2.3-9.8l.2-.8 12.6 5.4c12.2 5.2 26.3-.4 31.5-12.6s-.4-26.3-12.6-31.5l-11.3-4.8c9.9-14.9 24.9-31.6 48.6-46l2.1 7.5c3.6 12.7 16.9 20.1 29.7 16.5s20.1-16.9 16.5-29.7L371 259.2c6.9-2.2 14.3-4.3 22.2-6.1c12.9-3 24.7-8 35.2-14.8L439 249c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-10.6-10.6c12.2-19 18.6-41.6 17.6-65.1l14.7-4.2c12.7-3.6 20.1-16.9 16.5-29.7s-16.9-20.1-29.7-16.5l-13.7 3.9c-10.8-21.2-28-38-48.5-48.5l3.9-13.8zM92.1 363.3s0 0 0 0L144 368l-51.9-4.7zM112 320a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM240 184a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"], - "hand-pointer": [448, 512, [], "f25a", "M128 40c0-22.1 17.9-40 40-40s40 17.9 40 40l0 148.2c8.5-7.6 19.7-12.2 32-12.2c20.6 0 38.2 13 45 31.2c8.8-9.3 21.2-15.2 35-15.2c25.3 0 46 19.5 47.9 44.3c8.5-7.7 19.8-12.3 32.1-12.3c26.5 0 48 21.5 48 48l0 48 0 16 0 48c0 70.7-57.3 128-128 128l-16 0-64 0-.1 0-5.2 0c-5 0-9.9-.3-14.7-1c-55.3-5.6-106.2-34-140-79L8 336c-13.3-17.7-9.7-42.7 8-56s42.7-9.7 56 8l56 74.7L128 40zM240 304c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96zm48-16c-8.8 0-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96c0-8.8-7.2-16-16-16zm80 16c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96z"], - "drum-steelpan": [576, 512, [], "f56a", "M288 32c159.1 0 288 48 288 128l0 192c0 80-128.9 128-288 128S0 432 0 352L0 160C0 80 128.9 32 288 32zM528 160c0-9.9-8-29.9-55-49.8c-18.6-7.9-40.9-14.4-66-19.4l-27.8 43.6c-7.3 11.5-11.2 24.8-11.2 38.4c0 17.5 6.4 34.4 18.1 47.5l9.8 11c29.8-5.2 55.9-12.5 77.2-21.5c47.1-19.9 55-39.9 55-49.8zM349.2 237.3c-8-26.2-32.4-45.3-61.2-45.3s-53.3 19.1-61.2 45.3c19.4 1.7 39.9 2.7 61.2 2.7s41.8-.9 61.2-2.7zM169 90.8c-25.2 5-47.4 11.6-66 19.4C56 130.1 48 150.1 48 160s8 29.9 55 49.8c21.3 9 47.4 16.3 77.2 21.5l9.8-11c11.6-13.1 18.1-30 18.1-47.5c0-13.6-3.9-26.9-11.2-38.4L169 90.8zm56.3-8C224.5 87 224 91.5 224 96c0 35.3 28.7 64 64 64s64-28.7 64-64c0-4.5-.5-9-1.4-13.2C330.8 81 309.8 80 288 80s-42.8 1-62.6 2.8z"], - "hand-scissors": [512, 512, [], "f257", "M40 208c-22.1 0-40 17.9-40 40s17.9 40 40 40l180.2 0c-7.6 8.5-12.2 19.7-12.2 32c0 25.3 19.5 46 44.3 47.9c-7.7 8.5-12.3 19.8-12.3 32.1c0 26.5 21.5 48 48 48l32 0 64 0c70.7 0 128-57.3 128-128l0-113.1c0-40.2-16-78.8-44.4-107.3C444.8 76.8 413.9 64 381.7 64L336 64c-21.3 0-39.3 13.9-45.6 33.1l74.5 23.7c8.4 2.7 13.1 11.7 10.4 20.1s-11.7 13.1-20.1 10.4L288 129.9c0 0 0 .1 0 .1L84 65.8C62.9 59.2 40.5 70.9 33.8 92s5.1 43.5 26.2 50.2L269.5 208 40 208z"], - "hands-praying": [640, 512, ["praying-hands"], "f684", "M351.2 4.8c3.2-2 6.6-3.3 10-4.1c4.7-1 9.6-.9 14.1 .1c7.7 1.8 14.8 6.5 19.4 13.6L514.6 194.2c8.8 13.1 13.4 28.6 13.4 44.4l0 73.5c0 6.9 4.4 13 10.9 15.2l79.2 26.4C631.2 358 640 370.2 640 384l0 96c0 9.9-4.6 19.3-12.5 25.4s-18.1 8.1-27.7 5.5L431 465.9c-56-14.9-95-65.7-95-123.7L336 224c0-17.7 14.3-32 32-32s32 14.3 32 32l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-84.9c0-7-1.8-13.8-5.3-19.8L340.3 48.1c-1.7-3-2.9-6.1-3.6-9.3c-1-4.7-1-9.6 .1-14.1c1.9-8 6.8-15.2 14.3-19.9zm-62.4 0c7.5 4.6 12.4 11.9 14.3 19.9c1.1 4.6 1.2 9.4 .1 14.1c-.7 3.2-1.9 6.3-3.6 9.3L213.3 199.3c-3.5 6-5.3 12.9-5.3 19.8l0 84.9c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-17.7 14.3-32 32-32s32 14.3 32 32l0 118.2c0 58-39 108.7-95 123.7l-168.7 45c-9.6 2.6-19.9 .5-27.7-5.5S0 490 0 480l0-96c0-13.8 8.8-26 21.9-30.4l79.2-26.4c6.5-2.2 10.9-8.3 10.9-15.2l0-73.5c0-15.8 4.7-31.2 13.4-44.4L245.2 14.5c4.6-7.1 11.7-11.8 19.4-13.6c4.6-1.1 9.4-1.2 14.1-.1c3.5 .8 6.9 2.1 10 4.1z"], - "arrow-rotate-right": [512, 512, [8635, "arrow-right-rotate", "arrow-rotate-forward", "redo"], "f01e", "M386.3 160L336 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 51.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0s-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3s163.8-62.5 226.3 0L386.3 160z"], - "web-awesome": [640, 512, [], "e682", "M372.2 52c0 20.9-12.4 39-30.2 47.2L448 192l104.4-20.9c-5.3-7.7-8.4-17.1-8.4-27.1c0-26.5 21.5-48 48-48s48 21.5 48 48c0 26-20.6 47.1-46.4 48L481 442.3c-10.3 23-33.2 37.7-58.4 37.7l-205.2 0c-25.2 0-48-14.8-58.4-37.7L46.4 192C20.6 191.1 0 170 0 144c0-26.5 21.5-48 48-48s48 21.5 48 48c0 10.1-3.1 19.4-8.4 27.1L192 192 298.1 99.1c-17.7-8.3-30-26.3-30-47.1c0-28.7 23.3-52 52-52s52 23.3 52 52z"], - "biohazard": [576, 512, [9763], "f780", "M173.2 0c-1.8 0-3.5 .7-4.8 2C138.5 32.3 120 74 120 120c0 26.2 6 50.9 16.6 73c-22 2.4-43.8 9.1-64.2 20.5C37.9 232.8 13.3 262.4 .4 296c-.7 1.7-.5 3.7 .5 5.2c2.2 3.7 7.4 4.3 10.6 1.3C64.2 254.3 158 245.1 205 324s-8.1 153.1-77.6 173.2c-4.2 1.2-6.3 5.9-4.1 9.6c1 1.6 2.6 2.7 4.5 3c36.5 5.9 75.2 .1 109.7-19.2c20.4-11.4 37.4-26.5 50.5-43.8c13.1 17.3 30.1 32.4 50.5 43.8c34.5 19.3 73.3 25.2 109.7 19.2c1.9-.3 3.5-1.4 4.5-3c2.2-3.7 .1-8.4-4.1-9.6C379.1 477.1 324 403 371 324s140.7-69.8 193.5-21.4c3.2 2.9 8.4 2.3 10.6-1.3c1-1.6 1.1-3.5 .5-5.2c-12.9-33.6-37.5-63.2-72.1-82.5c-20.4-11.4-42.2-18.1-64.2-20.5C450 170.9 456 146.2 456 120c0-46-18.5-87.7-48.4-118c-1.3-1.3-3-2-4.8-2c-5 0-8.4 5.2-6.7 9.9C421.7 80.5 385.6 176 288 176S154.3 80.5 179.9 9.9c1.7-4.7-1.6-9.9-6.7-9.9zM240 272a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM181.7 417.6c6.3-11.8 9.8-25.1 8.6-39.8c-19.5-18-34-41.4-41.2-67.8c-12.5-8.1-26.2-11.8-40-12.4c-9-.4-18.1 .6-27.1 2.7c7.8 57.1 38.7 106.8 82.9 139.4c6.8-6.7 12.6-14.1 16.8-22.1zM288 64c-28.8 0-56.3 5.9-81.2 16.5c2 8.3 5 16.2 9 23.5c6.8 12.4 16.7 23.1 30.1 30.3c13.3-4.1 27.5-6.3 42.2-6.3s28.8 2.2 42.2 6.3c13.4-7.2 23.3-17.9 30.1-30.3c4-7.3 7-15.2 9-23.5C344.3 69.9 316.8 64 288 64zM426.9 310c-7.2 26.4-21.7 49.7-41.2 67.8c-1.2 14.7 2.2 28.1 8.6 39.8c4.3 8 10 15.4 16.8 22.1c44.3-32.6 75.2-82.3 82.9-139.4c-9-2.2-18.1-3.1-27.1-2.7c-13.8 .6-27.5 4.4-40 12.4z"], - "location-crosshairs": [512, 512, ["location"], "f601", "M256 0c17.7 0 32 14.3 32 32l0 34.7C368.4 80.1 431.9 143.6 445.3 224l34.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-34.7 0C431.9 368.4 368.4 431.9 288 445.3l0 34.7c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-34.7C143.6 431.9 80.1 368.4 66.7 288L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l34.7 0C80.1 143.6 143.6 80.1 224 66.7L224 32c0-17.7 14.3-32 32-32zM128 256a128 128 0 1 0 256 0 128 128 0 1 0 -256 0zm128-80a80 80 0 1 1 0 160 80 80 0 1 1 0-160z"], - "mars-double": [640, 512, [9891], "f227", "M312 32c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l33.4 33.4L275.8 159c-28.4-19.5-62.7-31-99.8-31C78.8 128 0 206.8 0 304s78.8 176 176 176s176-78.8 176-176c0-37-11.4-71.4-31-99.8l52.6-52.6L407 185c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2l0-112c0-13.3-10.7-24-24-24L312 32zm88 48s0 0 0 0s0 0 0 0s0 0 0 0zM64 304a112 112 0 1 1 224 0A112 112 0 1 1 64 304zM368 480c97.2 0 176-78.8 176-176c0-37-11.4-71.4-31-99.8l52.6-52.6L599 185c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2l0-112c0-13.3-10.7-24-24-24L504 32c-9.7 0-18.5 5.8-22.2 14.8c-1.2 2.9-1.8 6-1.8 9l0 .2 0 .2c0 6.2 2.5 12.2 7 16.8l33.4 33.4L480 146.7l0 21.3c0 22.6-13.6 43.1-34.6 51.7c-.8 .3-1.7 .7-2.5 1C465.7 241.2 480 270.9 480 304c0 61.9-50.1 112-112 112c-5.4 0-10.8-.4-16-1.1c-12.9 20.4-29.1 38.3-48.1 53.1c19.8 7.8 41.4 12 64 12z"], - "child-dress": [320, 512, [], "e59c", "M224 64A64 64 0 1 0 96 64a64 64 0 1 0 128 0zM88 400l0 80c0 17.7 14.3 32 32 32s32-14.3 32-32l0-80 16 0 0 80c0 17.7 14.3 32 32 32s32-14.3 32-32l0-80 17.8 0c10.9 0 18.6-10.7 15.2-21.1l-31.1-93.4 28.6 37.8c10.7 14.1 30.8 16.8 44.8 6.2s16.8-30.7 6.2-44.8L254.6 207c-22.4-29.6-57.5-47-94.6-47s-72.2 17.4-94.6 47L6.5 284.7c-10.7 14.1-7.9 34.2 6.2 44.8s34.2 7.9 44.8-6.2l28.7-37.8L55 378.9C51.6 389.3 59.3 400 70.2 400L88 400z"], - "users-between-lines": [640, 512, [], "e591", "M0 24C0 10.7 10.7 0 24 0L616 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 48C10.7 48 0 37.3 0 24zM0 488c0-13.3 10.7-24 24-24l592 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24zM83.2 160a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM32 320c0-35.3 28.7-64 64-64l96 0c12.2 0 23.7 3.4 33.4 9.4c-37.2 15.1-65.6 47.2-75.8 86.6L64 352c-17.7 0-32-14.3-32-32zm461.6 32c-10.3-40.1-39.6-72.6-77.7-87.4c9.4-5.5 20.4-8.6 32.1-8.6l96 0c35.3 0 64 28.7 64 64c0 17.7-14.3 32-32 32l-82.4 0zM391.2 290.4c32.1 7.4 58.1 30.9 68.9 61.6c3.5 10 5.5 20.8 5.5 32c0 17.7-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32c0-11.2 1.9-22 5.5-32c10.5-29.7 35.3-52.8 66.1-60.9c7.8-2.1 16-3.1 24.5-3.1l96 0c7.4 0 14.7 .8 21.6 2.4zm44-130.4a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM321.6 96a80 80 0 1 1 0 160 80 80 0 1 1 0-160z"], - "lungs-virus": [640, 512, [], "e067", "M320 0c17.7 0 32 14.3 32 32l0 124.2c-8.5-7.6-19.7-12.2-32-12.2s-23.5 4.6-32 12.2L288 32c0-17.7 14.3-32 32-32zM444.5 195.5c-16.4-16.4-41.8-18.5-60.5-6.1l0-24.1C384 127 415 96 453.3 96c21.7 0 42.8 10.2 55.8 28.8c15.4 22.1 44.3 65.4 71 116.9c26.5 50.9 52.4 112.5 59.6 170.3c.2 1.3 .2 2.6 .2 4l0 7c0 49.1-39.8 89-89 89c-7.3 0-14.5-.9-21.6-2.7l-72.7-18.2c-20.9-5.2-38.7-17.1-51.5-32.9c14 1.5 28.5-3 39.2-13.8l-22.6-22.6 22.6 22.6c18.7-18.7 18.7-49.1 0-67.9c-1.1-1.1-1.4-2-1.5-2.5c-.1-.8-.1-1.8 .4-2.9s1.2-1.9 1.8-2.3c.5-.3 1.3-.8 2.9-.8c26.5 0 48-21.5 48-48s-21.5-48-48-48c-1.6 0-2.4-.4-2.9-.8c-.6-.4-1.3-1.2-1.8-2.3s-.5-2.2-.4-2.9c.1-.6 .4-1.4 1.5-2.5c18.7-18.7 18.7-49.1 0-67.9zM421.8 421.8c-6.2 6.2-16.4 6.2-22.6 0C375.9 398.5 336 415 336 448c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-33-39.9-49.5-63.2-26.2c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6C241.5 375.9 225 336 192 336c-8.8 0-16-7.2-16-16s7.2-16 16-16c33 0 49.5-39.9 26.2-63.2c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0C264.1 241.5 304 225 304 192c0-8.8 7.2-16 16-16s16 7.2 16 16c0 33 39.9 49.5 63.2 26.2c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6C398.5 264.1 415 304 448 304c8.8 0 16 7.2 16 16s-7.2 16-16 16c-33 0-49.5 39.9-26.2 63.2c6.2 6.2 6.2 16.4 0 22.6zM183.3 491.2l-72.7 18.2c-7.1 1.8-14.3 2.7-21.6 2.7c-49.1 0-89-39.8-89-89l0-7c0-1.3 .1-2.7 .2-4c7.2-57.9 33.1-119.4 59.6-170.3c26.8-51.5 55.6-94.8 71-116.9c13-18.6 34-28.8 55.8-28.8C225 96 256 127 256 165.3l0 24.1c-18.6-12.4-44-10.3-60.5 6.1c-18.7 18.7-18.7 49.1 0 67.9c1.1 1.1 1.4 2 1.5 2.5c.1 .8 .1 1.8-.4 2.9s-1.2 1.9-1.8 2.3c-.5 .3-1.3 .8-2.9 .8c-26.5 0-48 21.5-48 48s21.5 48 48 48c1.6 0 2.4 .4 2.9 .8c.6 .4 1.3 1.2 1.8 2.3s.5 2.2 .4 2.9c-.1 .6-.4 1.4-1.5 2.5c-18.7 18.7-18.7 49.1 0 67.9c10.7 10.7 25.3 15.3 39.2 13.8c-12.8 15.9-30.6 27.7-51.5 32.9zM296 320a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm72 32a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z"], - "face-grin-tears": [640, 512, [128514, "grin-tears"], "f588", "M548.6 371.4C506.4 454.8 419.9 512 320 512s-186.4-57.2-228.6-140.6c4.5-2.9 8.7-6.3 12.7-10.3c8.1-8.1 13.2-18.6 16.5-26.6c3.6-8.8 6.5-18.4 8.8-27.5c4.6-18.2 7.7-37 9.3-48.2c3.9-26.5-18.8-49.2-45.2-45.4c-6.8 .9-16.2 2.4-26.6 4.4C85.3 94.5 191.6 0 320 0S554.7 94.5 573.2 217.7c-10.3-2-19.8-3.5-26.6-4.4c-26.5-3.9-49.2 18.8-45.2 45.4c1.6 11.3 4.6 30 9.3 48.2c2.3 9.1 5.2 18.8 8.8 27.5c3.3 8.1 8.4 18.5 16.5 26.6c3.9 3.9 8.2 7.4 12.7 10.3zM107 254.1c-3.1 21.5-11.4 70.2-25.5 84.4c-.9 1-1.9 1.8-2.9 2.7C60 356.7 32 355.5 14.3 337.7c-18.7-18.7-19.1-48.8-.7-67.2c8.6-8.6 30.1-15.1 50.5-19.6c13-2.8 25.5-4.8 33.9-6c5.4-.8 9.9 3.7 9 9zm454.5 87.1c-.8-.6-1.5-1.3-2.3-2c-.2-.2-.5-.4-.7-.7c-14.1-14.1-22.5-62.9-25.5-84.4c-.8-5.4 3.7-9.9 9-9c1 .1 2.2 .3 3.3 .5c8.2 1.2 19.2 3 30.6 5.5c20.4 4.4 41.9 10.9 50.5 19.6c18.4 18.4 18 48.5-.7 67.2c-17.7 17.7-45.7 19-64.2 3.4zm-90.1-9.7c5-11.8-7-22.5-19.3-18.7c-39.7 12.2-84.5 19-131.8 19s-92.1-6.8-131.8-19c-12.3-3.8-24.3 6.9-19.3 18.7c25 59.1 83.2 100.5 151.1 100.5s126.2-41.4 151.1-100.5zM281.6 228.8s0 0 0 0s0 0 0 0s0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C190.7 188.4 184 206.1 184 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2c0 0 0 0 0 0zm160 0s0 0 0 0s0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C350.7 188.4 344 206.1 344 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2c0 0 0 0 0 0c0 0 0 0 0 0z"], - "phone": [512, 512, [128222, 128379], "f095", "M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z"], - "calendar-xmark": [448, 512, ["calendar-times"], "f273", "M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zM305 305c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-47 47-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l47 47-47 47c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l47-47 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-47-47 47-47z"], - "child-reaching": [384, 512, [], "e59d", "M256 64A64 64 0 1 0 128 64a64 64 0 1 0 128 0zM152.9 169.3c-23.7-8.4-44.5-24.3-58.8-45.8L74.6 94.2C64.8 79.5 45 75.6 30.2 85.4s-18.7 29.7-8.9 44.4L40.9 159c18.1 27.1 42.8 48.4 71.1 62.4L112 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 32 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-258.4c29.1-14.2 54.4-36.2 72.7-64.2l18.2-27.9c9.6-14.8 5.4-34.6-9.4-44.3s-34.6-5.5-44.3 9.4L291 122.4c-21.8 33.4-58.9 53.6-98.8 53.6c-12.6 0-24.9-2-36.6-5.8c-.9-.3-1.8-.7-2.7-.9z"], - "head-side-virus": [512, 512, [], "e064", "M0 224.2C0 100.6 100.2 0 224 0l24 0c95.2 0 181.2 69.3 197.3 160.2c2.3 13 6.8 25.7 15.1 36l42 52.6c6.2 7.8 9.6 17.4 9.6 27.4c0 24.2-19.6 43.8-43.8 43.8L448 320l0 64c0 35.3-28.7 64-64 64l-64 0 0 32c0 17.7-14.3 32-32 32L96 512c-17.7 0-32-14.3-32-32l0-72.7c0-16.7-6.9-32.5-17.1-45.8C16.6 322.4 0 274.1 0 224.2zM224 64c-8.8 0-16 7.2-16 16c0 33-39.9 49.5-63.2 26.2c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6C145.5 152.1 129 192 96 192c-8.8 0-16 7.2-16 16s7.2 16 16 16c33 0 49.5 39.9 26.2 63.2c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0C168.1 286.5 208 303 208 336c0 8.8 7.2 16 16 16s16-7.2 16-16c0-33 39.9-49.5 63.2-26.2c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6C302.5 263.9 319 224 352 224c8.8 0 16-7.2 16-16s-7.2-16-16-16c-33 0-49.5-39.9-26.2-63.2c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0C279.9 129.5 240 113 240 80c0-8.8-7.2-16-16-16zm-24 96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40 80a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z"], - "user-gear": [640, 512, ["user-cog"], "f4fe", "M224 0a128 128 0 1 1 0 256A128 128 0 1 1 224 0zM178.3 304l91.4 0c11.8 0 23.4 1.2 34.5 3.3c-2.1 18.5 7.4 35.6 21.8 44.8c-16.6 10.6-26.7 31.6-20 53.3c4 12.9 9.4 25.5 16.4 37.6s15.2 23.1 24.4 33c15.7 16.9 39.6 18.4 57.2 8.7l0 .9c0 9.2 2.7 18.5 7.9 26.3L29.7 512C13.3 512 0 498.7 0 482.3C0 383.8 79.8 304 178.3 304zM436 218.2c0-7 4.5-13.3 11.3-14.8c10.5-2.4 21.5-3.7 32.7-3.7s22.2 1.3 32.7 3.7c6.8 1.5 11.3 7.8 11.3 14.8l0 30.6c7.9 3.4 15.4 7.7 22.3 12.8l24.9-14.3c6.1-3.5 13.7-2.7 18.5 2.4c7.6 8.1 14.3 17.2 20.1 27.2s10.3 20.4 13.5 31c2.1 6.7-1.1 13.7-7.2 17.2l-25 14.4c.4 4 .7 8.1 .7 12.3s-.2 8.2-.7 12.3l25 14.4c6.1 3.5 9.2 10.5 7.2 17.2c-3.3 10.6-7.8 21-13.5 31s-12.5 19.1-20.1 27.2c-4.8 5.1-12.5 5.9-18.5 2.4l-24.9-14.3c-6.9 5.1-14.3 9.4-22.3 12.8l0 30.6c0 7-4.5 13.3-11.3 14.8c-10.5 2.4-21.5 3.7-32.7 3.7s-22.2-1.3-32.7-3.7c-6.8-1.5-11.3-7.8-11.3-14.8l0-30.5c-8-3.4-15.6-7.7-22.5-12.9l-24.7 14.3c-6.1 3.5-13.7 2.7-18.5-2.4c-7.6-8.1-14.3-17.2-20.1-27.2s-10.3-20.4-13.5-31c-2.1-6.7 1.1-13.7 7.2-17.2l24.8-14.3c-.4-4.1-.7-8.2-.7-12.4s.2-8.3 .7-12.4L343.8 325c-6.1-3.5-9.2-10.5-7.2-17.2c3.3-10.6 7.7-21 13.5-31s12.5-19.1 20.1-27.2c4.8-5.1 12.4-5.9 18.5-2.4l24.8 14.3c6.9-5.1 14.5-9.4 22.5-12.9l0-30.5zm92.1 133.5a48.1 48.1 0 1 0 -96.1 0 48.1 48.1 0 1 0 96.1 0z"], - "arrow-up-1-9": [576, 512, ["sort-numeric-up"], "f163", "M450.7 38c8.3 6 13.3 15.7 13.3 26l0 96 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-48 0-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-51.6-5.9 2c-16.8 5.6-34.9-3.5-40.5-20.2s3.5-34.9 20.2-40.5l48-16c9.8-3.3 20.5-1.6 28.8 4.4zM160 32c9 0 17.5 3.8 23.6 10.4l88 96c11.9 13 11.1 33.3-2 45.2s-33.3 11.1-45.2-2L192 146.3 192 448c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-301.7L95.6 181.6c-11.9 13-32.2 13.9-45.2 2s-13.9-32.2-2-45.2l88-96C142.5 35.8 151 32 160 32zM445.7 364.9A32 32 0 1 0 418.3 307a32 32 0 1 0 27.4 57.9zm-40.7 54.9C369.6 408.4 344 375.2 344 336c0-48.6 39.4-88 88-88s88 39.4 88 88c0 23.5-7.5 46.3-21.5 65.2L449.7 467c-10.5 14.2-30.6 17.2-44.8 6.7s-17.2-30.6-6.7-44.8l6.8-9.2z"], - "door-closed": [576, 512, [128682], "f52a", "M96 64c0-35.3 28.7-64 64-64L416 0c35.3 0 64 28.7 64 64l0 384 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-112 0-288 0L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0L96 64zM384 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"], - "shield-virus": [512, 512, [], "e06c", "M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM256 112c8.8 0 16 7.2 16 16c0 33 39.9 49.5 63.2 26.2c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6C334.5 200.1 351 240 384 240c8.8 0 16 7.2 16 16s-7.2 16-16 16c-33 0-49.5 39.9-26.2 63.2c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0C311.9 334.5 272 351 272 384c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-33-39.9-49.5-63.2-26.2c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6C177.5 311.9 161 272 128 272c-8.8 0-16-7.2-16-16s7.2-16 16-16c33 0 49.5-39.9 26.2-63.2c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0C200.1 177.5 240 161 240 128c0-8.8 7.2-16 16-16zM232 256a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm72 32a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z"], - "dice-six": [448, 512, [9861], "f526", "M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm160 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 192a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"], - "mosquito-net": [640, 512, [], "e52c", "M168.8 462.3c-7.9-4-11.1-13.6-7.2-21.5L192 380.2l0-44.2c0-4.2 1.7-8.3 4.7-11.3L256 265.4l0-23.1L139.2 344C87.8 395.3 0 358.9 0 286.3c0-41.1 30.6-75.8 71.4-80.9l159.9-23.9-49.6-41.3c-5.1-4.2-7-11.1-4.9-17.4l13.9-41.7-29-58.1c-4-7.9-.7-17.5 7.2-21.5s17.5-.7 21.5 7.2l32 64c1.9 3.8 2.2 8.2 .9 12.2l-12.5 37.6L256 160.5l0-22.6c0-14.9 10.1-27.3 23.8-31l0-43.3c0-4.5 3.7-8.2 8.2-8.2s8.2 3.7 8.2 8.2l0 43.3c13.7 3.6 23.8 16.1 23.8 31l0 22.6 45.4-37.8L352.8 85.1c-1.3-4-1-8.4 .9-12.2l32-64c4-7.9 13.6-11.1 21.5-7.2s11.1 13.6 7.2 21.5l-29 58.1 13.9 41.7c2.1 6.2 .1 13.1-4.9 17.4l-49.6 41.3 159.9 23.9c22.5 2.8 41.8 14.6 54.7 31.4c-2.7 2.6-5.2 5.4-7.3 8.6c-8.6-12.9-23.3-21.5-40-21.5s-31.4 8.5-40 21.5c-8.6-12.9-23.3-21.5-40-21.5c-21.7 0-40 14.3-45.9 34.1c-10.7 3.2-19.8 10.1-25.9 19.2l-40.2-35 0 23.1 32.4 32.4c-.3 2-.4 4.1-.4 6.2c0 16.7 8.5 31.4 21.5 40c-4 2.6-7.5 5.9-10.6 9.5L320 310.6l0 50c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-50-32 32 0 41.4c0 2.5-.6 4.9-1.7 7.2l-32 64c-4 7.9-13.6 11.1-21.5 7.2zM512 256c8.8 0 16 7.2 16 16l0 16 48 0 0-16c0-8.8 7.2-16 16-16s16 7.2 16 16l0 16 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-16 0 0 48 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-16 0 0 48 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-16 0 0 16c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-16-48 0 0 16c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-16-48 0 0 16c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-16-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0 0-48-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0 0-48-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0 0-16c0-8.8 7.2-16 16-16s16 7.2 16 16l0 16 48 0 0-16c0-8.8 7.2-16 16-16zm16 112l48 0 0-48-48 0 0 48zm0 80l48 0 0-48-48 0 0 48zM448 320l0 48 48 0 0-48-48 0zm0 80l0 48 48 0 0-48-48 0z"], - "file-fragment": [384, 512, [], "e697", "M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 288c0 35.3-28.7 64-64 64l-128 0 0-128c0-35.3-28.7-64-64-64L0 320 0 64zm384 64l-128 0L256 0 384 128zM32 352l96 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32z"], - "bridge-water": [576, 512, [], "e4ce", "M0 96C0 78.3 14.3 64 32 64l512 0c17.7 0 32 14.3 32 32l0 35.6c0 15.7-12.7 28.4-28.4 28.4c-37.3 0-67.6 30.2-67.6 67.6l0 124.9c-12.9 0-25.8 3.9-36.8 11.7c-18 12.4-40.1 20.3-59.2 20.3c0 0 0 0 0 0l0-.5 0-128c0-53-43-96-96-96s-96 43-96 96l0 128 0 .5c-19 0-41.2-7.9-59.1-20.3c-11.1-7.8-24-11.7-36.9-11.7l0-124.9C96 190.2 65.8 160 28.4 160C12.7 160 0 147.3 0 131.6L0 96zM306.5 389.9C329 405.4 356.5 416 384 416c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 469.7 417 480 384 480c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 405.2 165.1 416 192 416c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z"], - "person-booth": [576, 512, [], "f756", "M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 160 64 0 0-160zm320 0c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-448zM224 512c17.7 0 32-14.3 32-32l0-160-64 0 0 160c0 17.7 14.3 32 32 32zM320 0c-9.3 0-18.1 4-24.2 11s-8.8 16.3-7.5 25.5l31.2 218.6L288.6 409.7c-3.5 17.3 7.8 34.2 25.1 37.7s34.2-7.8 37.7-25.1l.7-3.6c1.3 16.4 15.1 29.4 31.9 29.4c17.7 0 32-14.3 32-32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32L320 0zM112 80A48 48 0 1 0 16 80a48 48 0 1 0 96 0zm0 261.3l0-72.1 4.7 4.7c9 9 21.2 14.1 33.9 14.1l73.4 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-66.7 0-41.6-41.6c-14.3-14.3-33.8-22.4-54-22.4C27.6 160 0 187.6 0 221.6l0 55.7 0 .9L0 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 32 42.7L96 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-58.7c0-10.4-3.4-20.5-9.6-28.8L112 341.3z"], - "text-width": [448, 512, [], "f035", "M64 128l0-32 128 0 0 128-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0 0-128 128 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-48c0-26.5-21.5-48-48-48L224 32 48 32C21.5 32 0 53.5 0 80l0 48c0 17.7 14.3 32 32 32s32-14.3 32-32zM9.4 361.4c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-32 192 0 0 32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6l0 32-192 0 0-32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64z"], - "hat-wizard": [512, 512, [], "f6e8", "M64 416L168.6 180.7c15.3-34.4 40.3-63.5 72-83.7l146.9-94c3-1.9 6.5-2.9 10-2.9C407.7 0 416 8.3 416 18.6l0 1.6c0 2.6-.5 5.1-1.4 7.5L354.8 176.9c-1.9 4.7-2.8 9.7-2.8 14.7c0 5.5 1.2 11 3.4 16.1L448 416l-207.1 0 11.8-35.4 40.4-13.5c6.5-2.2 10.9-8.3 10.9-15.2s-4.4-13-10.9-15.2l-40.4-13.5-13.5-40.4C237 276.4 230.9 272 224 272s-13 4.4-15.2 10.9l-13.5 40.4-40.4 13.5C148.4 339 144 345.1 144 352s4.4 13 10.9 15.2l40.4 13.5L207.1 416 64 416zM279.6 141.5c-1.1-3.3-4.1-5.5-7.6-5.5s-6.5 2.2-7.6 5.5l-6.7 20.2-20.2 6.7c-3.3 1.1-5.5 4.1-5.5 7.6s2.2 6.5 5.5 7.6l20.2 6.7 6.7 20.2c1.1 3.3 4.1 5.5 7.6 5.5s6.5-2.2 7.6-5.5l6.7-20.2 20.2-6.7c3.3-1.1 5.5-4.1 5.5-7.6s-2.2-6.5-5.5-7.6l-20.2-6.7-6.7-20.2zM32 448l448 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32z"], - "pen-fancy": [512, 512, [128395, 10002], "f5ac", "M373.5 27.1C388.5 9.9 410.2 0 433 0c43.6 0 79 35.4 79 79c0 22.8-9.9 44.6-27.1 59.6L277.7 319l-10.3-10.3-64-64L193 234.3 373.5 27.1zM170.3 256.9l10.4 10.4 64 64 10.4 10.4-19.2 83.4c-3.9 17.1-16.9 30.7-33.8 35.4L24.3 510.3l95.4-95.4c2.6 .7 5.4 1.1 8.3 1.1c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32c0 2.9 .4 5.6 1.1 8.3L1.7 487.6 51.5 310c4.7-16.9 18.3-29.9 35.4-33.8l83.4-19.2z"], - "person-digging": [576, 512, ["digging"], "f85e", "M208 64a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM9.8 214.8c5.1-12.2 19.1-18 31.4-12.9L60.7 210l22.9-38.1C99.9 144.6 129.3 128 161 128c51.4 0 97 32.9 113.3 81.7l34.6 103.7 79.3 33.1 34.2-45.6c6.4-8.5 16.6-13.3 27.2-12.8s20.3 6.4 25.8 15.5l96 160c5.9 9.9 6.1 22.2 .4 32.2s-16.3 16.2-27.8 16.2l-256 0c-11.1 0-21.4-5.7-27.2-15.2s-6.4-21.2-1.4-31.1l16-32c5.4-10.8 16.5-17.7 28.6-17.7l32 0 22.5-30L22.8 246.2c-12.2-5.1-18-19.1-12.9-31.4zm82.8 91.8l112 48c11.8 5 19.4 16.6 19.4 29.4l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-74.9-60.6-26-37 111c-5.6 16.8-23.7 25.8-40.5 20.2S-3.9 486.6 1.6 469.9l48-144 11-33 32 13.7z"], - "trash": [448, 512, [], "f1f8", "M135.2 17.7L128 32 32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0-7.2-14.3C307.4 6.8 296.3 0 284.2 0L163.8 0c-12.1 0-23.2 6.8-28.6 17.7zM416 128L32 128 53.2 467c1.6 25.3 22.6 45 47.9 45l245.8 0c25.3 0 46.3-19.7 47.9-45L416 128z"], - "gauge-simple": [512, 512, ["gauge-simple-med", "tachometer-average"], "f629", "M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm320 96c0-26.9-16.5-49.9-40-59.3L280 88c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 204.7c-23.5 9.5-40 32.5-40 59.3c0 35.3 28.7 64 64 64s64-28.7 64-64z"], - "book-medical": [448, 512, [], "f7e6", "M0 96C0 43 43 0 96 0L384 0l32 0c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32l0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0L96 512c-53 0-96-43-96-96L0 96zM64 416c0 17.7 14.3 32 32 32l256 0 0-64L96 384c-17.7 0-32 14.3-32 32zM208 112l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-48 0 0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z"], - "poo": [512, 512, [128169], "f2fe", "M268.9 .9c-5.5-.7-11 1.4-14.5 5.7s-4.6 10.1-2.8 15.4c2.8 8.2 4.3 16.9 4.3 26.1c0 44.1-35.7 79.9-79.8 80L160 128c-35.3 0-64 28.7-64 64c0 19.1 8.4 36.3 21.7 48L104 240c-39.8 0-72 32.2-72 72c0 23.2 11 43.8 28 57c-34.1 5.7-60 35.3-60 71c0 39.8 32.2 72 72 72l368 0c39.8 0 72-32.2 72-72c0-35.7-25.9-65.3-60-71c17-13.2 28-33.8 28-57c0-39.8-32.2-72-72-72l-13.7 0c13.3-11.7 21.7-28.9 21.7-48c0-35.3-28.7-64-64-64l-5.5 0c3.5-10 5.5-20.8 5.5-32c0-48.6-36.2-88.8-83.1-95.1zM192 256a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm64 108.3c0 2.4-.7 4.8-2.2 6.7c-8.2 10.5-39.5 45-93.8 45s-85.6-34.6-93.8-45c-1.5-1.9-2.2-4.3-2.2-6.7c0-6.8 5.5-12.3 12.3-12.3l167.4 0c6.8 0 12.3 5.5 12.3 12.3z"], - "quote-right": [448, 512, [8221, "quote-right-alt"], "f10e", "M448 296c0 66.3-53.7 120-120 120l-8 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l8 0c30.9 0 56-25.1 56-56l0-8-64 0c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l64 0c35.3 0 64 28.7 64 64l0 32 0 32 0 72zm-256 0c0 66.3-53.7 120-120 120l-8 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l8 0c30.9 0 56-25.1 56-56l0-8-64 0c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l64 0c35.3 0 64 28.7 64 64l0 32 0 32 0 72z"], - "shirt": [640, 512, [128085, "t-shirt", "tshirt"], "f553", "M211.8 0c7.8 0 14.3 5.7 16.7 13.2C240.8 51.9 277.1 80 320 80s79.2-28.1 91.5-66.8C413.9 5.7 420.4 0 428.2 0l12.6 0c22.5 0 44.2 7.9 61.5 22.3L628.5 127.4c6.6 5.5 10.7 13.5 11.4 22.1s-2.1 17.1-7.8 23.6l-56 64c-11.4 13.1-31.2 14.6-44.6 3.5L480 197.7 480 448c0 35.3-28.7 64-64 64l-192 0c-35.3 0-64-28.7-64-64l0-250.3-51.5 42.9c-13.3 11.1-33.1 9.6-44.6-3.5l-56-64c-5.7-6.5-8.5-15-7.8-23.6s4.8-16.6 11.4-22.1L137.7 22.3C155 7.9 176.7 0 199.2 0l12.6 0z"], - "cubes": [576, 512, [], "f1b3", "M290.8 48.6l78.4 29.7L288 109.5 206.8 78.3l78.4-29.7c1.8-.7 3.8-.7 5.7 0zM136 92.5l0 112.2c-1.3 .4-2.6 .8-3.9 1.3l-96 36.4C14.4 250.6 0 271.5 0 294.7L0 413.9c0 22.2 13.1 42.3 33.5 51.3l96 42.2c14.4 6.3 30.7 6.3 45.1 0L288 457.5l113.5 49.9c14.4 6.3 30.7 6.3 45.1 0l96-42.2c20.3-8.9 33.5-29.1 33.5-51.3l0-119.1c0-23.3-14.4-44.1-36.1-52.4l-96-36.4c-1.3-.5-2.6-.9-3.9-1.3l0-112.2c0-23.3-14.4-44.1-36.1-52.4l-96-36.4c-12.8-4.8-26.9-4.8-39.7 0l-96 36.4C150.4 48.4 136 69.3 136 92.5zM392 210.6l-82.4 31.2 0-89.2L392 121l0 89.6zM154.8 250.9l78.4 29.7L152 311.7 70.8 280.6l78.4-29.7c1.8-.7 3.8-.7 5.7 0zm18.8 204.4l0-100.5L256 323.2l0 95.9-82.4 36.2zM421.2 250.9c1.8-.7 3.8-.7 5.7 0l78.4 29.7L424 311.7l-81.2-31.1 78.4-29.7zM523.2 421.2l-77.6 34.1 0-100.5L528 323.2l0 90.7c0 3.2-1.9 6-4.8 7.3z"], - "divide": [448, 512, [10135, 247], "f529", "M272 96a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm0 320a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM400 288c17.7 0 32-14.3 32-32s-14.3-32-32-32L48 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l352 0z"], - "tenge-sign": [384, 512, [8376, "tenge"], "f7d7", "M0 64C0 46.3 14.3 32 32 32l320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64zM0 192c0-17.7 14.3-32 32-32l160 0 160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0 0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-224L32 224c-17.7 0-32-14.3-32-32z"], - "headphones": [512, 512, [127911], "f025", "M256 80C149.9 80 62.4 159.4 49.6 262c9.4-3.8 19.6-6 30.4-6c26.5 0 48 21.5 48 48l0 128c0 26.5-21.5 48-48 48c-44.2 0-80-35.8-80-80l0-16 0-48 0-48C0 146.6 114.6 32 256 32s256 114.6 256 256l0 48 0 48 0 16c0 44.2-35.8 80-80 80c-26.5 0-48-21.5-48-48l0-128c0-26.5 21.5-48 48-48c10.8 0 21 2.1 30.4 6C449.6 159.4 362.1 80 256 80z"], - "hands-holding": [640, 512, [], "f4c2", "M80 104c0-22.1-17.9-40-40-40S0 81.9 0 104l0 56 0 64L0 325.5c0 25.5 10.1 49.9 28.1 67.9L128 493.3c12 12 28.3 18.7 45.3 18.7l66.7 0c26.5 0 48-21.5 48-48l0-78.9c0-29.7-11.8-58.2-32.8-79.2l-25.3-25.3c0 0 0 0 0 0l-15.2-15.2-32-32c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l32 32 15.2 15.2c11 11 9.2 29.2-3.7 37.8c-9.7 6.5-22.7 5.2-31-3.1L98.7 309.5c-12-12-18.7-28.3-18.7-45.3L80 224l0-80 0-40zm480 0l0 40 0 80 0 40.2c0 17-6.7 33.3-18.7 45.3l-51.1 51.1c-8.3 8.3-21.3 9.6-31 3.1c-12.9-8.6-14.7-26.9-3.7-37.8l15.2-15.2 32-32c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-32 32-15.2 15.2c0 0 0 0 0 0l-25.3 25.3c-21 21-32.8 49.5-32.8 79.2l0 78.9c0 26.5 21.5 48 48 48l66.7 0c17 0 33.3-6.7 45.3-18.7l99.9-99.9c18-18 28.1-42.4 28.1-67.9L640 224l0-64 0-56c0-22.1-17.9-40-40-40s-40 17.9-40 40z"], - "hands-clapping": [512, 512, [], "e1a8", "M336 16l0 64c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16zm-98.7 7.1l32 48c4.9 7.4 2.9 17.3-4.4 22.2s-17.3 2.9-22.2-4.4l-32-48c-4.9-7.4-2.9-17.3 4.4-22.2s17.3-2.9 22.2 4.4zM135 119c9.4-9.4 24.6-9.4 33.9 0L292.7 242.7c10.1 10.1 27.3 2.9 27.3-11.3l0-39.4c0-17.7 14.3-32 32-32s32 14.3 32 32l0 153.6c0 57.1-30 110-78.9 139.4c-64 38.4-145.8 28.3-198.5-24.4L7 361c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l53 53c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1L23 265c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l93 93c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1L55 185c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l117 117c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1l-93-93c-9.4-9.4-9.4-24.6 0-33.9zM433.1 484.9c-24.2 14.5-50.9 22.1-77.7 23.1c48.1-39.6 76.6-99 76.6-162.4l0-98.1c8.2-.1 16-6.4 16-16l0-39.4c0-17.7 14.3-32 32-32s32 14.3 32 32l0 153.6c0 57.1-30 110-78.9 139.4zM424.9 18.7c7.4 4.9 9.3 14.8 4.4 22.2l-32 48c-4.9 7.4-14.8 9.3-22.2 4.4s-9.3-14.8-4.4-22.2l32-48c4.9-7.4 14.8-9.3 22.2-4.4z"], - "republican": [640, 512, [], "f75e", "M0 192C0 103.6 71.6 32 160 32l224 0c88.4 0 160 71.6 160 160l0 64L0 256l0-64zm415.9-64c-2.4 0-4.7 1.3-5.7 3.4l-12.6 24.6-28.2 4c-2.4 .3-4.4 2-5.2 4.2s-.1 4.7 1.6 6.3l20.4 19.2-4.8 27.1c-.4 2.3 .6 4.7 2.5 6s4.6 1.6 6.7 .5l25.2-12.8 25.2 12.8c2.2 1.1 4.8 .9 6.7-.5s3-3.7 2.5-6l-4.8-27.1L466 170.5c1.7-1.6 2.4-4.1 1.6-6.3s-2.8-3.9-5.2-4.2l-28.2-4-12.6-24.6c-1.1-2.1-3.3-3.4-5.7-3.4zm-138.3 3.4c-1.1-2.1-3.3-3.4-5.7-3.4s-4.7 1.3-5.7 3.4l-12.6 24.6-28.2 4c-2.4 .3-4.4 2-5.2 4.2s-.1 4.7 1.6 6.3l20.4 19.2-4.8 27.1c-.4 2.3 .6 4.7 2.5 6s4.6 1.6 6.7 .5l25.2-12.8 25.2 12.8c2.2 1.1 4.8 .9 6.7-.5s3-3.7 2.5-6l-4.8-27.1L322 170.5c1.7-1.6 2.4-4.1 1.6-6.3s-2.8-3.9-5.2-4.2l-28.2-4-12.6-24.6zM127.9 128c-2.4 0-4.7 1.3-5.7 3.4l-12.6 24.6-28.2 4c-2.4 .3-4.4 2-5.2 4.2s-.1 4.7 1.6 6.3l20.4 19.2-4.8 27.1c-.4 2.3 .6 4.7 2.5 6s4.6 1.6 6.7 .5l25.2-12.8 25.2 12.8c2.2 1.1 4.8 .9 6.7-.5s3-3.7 2.5-6l-4.8-27.1L178 170.5c1.7-1.6 2.4-4.1 1.6-6.3s-2.8-3.9-5.2-4.2l-28.2-4-12.6-24.6c-1.1-2.1-3.3-3.4-5.7-3.4zm.1 160l192 0 96 0 32 0 64 0 32 0 0 32 0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-48c0-17.7 14.3-32 32-32s32 14.3 32 32l0 48c0 44.2-35.8 80-80 80s-80-35.8-80-80l0-48-32 0 0 32 0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64-192 0 0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64 0-96 128 0z"], - "arrow-left": [448, 512, [8592], "f060", "M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.2 288 416 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0L214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z"], - "person-circle-xmark": [576, 512, [], "e543", "M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L432 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L409.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L432 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L454.6 368l36.7-36.7z"], - "ruler": [512, 512, [128207], "f545", "M177.9 494.1c-18.7 18.7-49.1 18.7-67.9 0L17.9 401.9c-18.7-18.7-18.7-49.1 0-67.9l50.7-50.7 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 50.7-50.7c18.7-18.7 49.1-18.7 67.9 0l92.1 92.1c18.7 18.7 18.7 49.1 0 67.9L177.9 494.1z"], - "align-left": [448, 512, [], "f036", "M288 64c0 17.7-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l224 0c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32L32 352c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 224c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z"], - "dice-d6": [448, 512, [], "f6d1", "M201 10.3c14.3-7.8 31.6-7.8 46 0L422.3 106c5.1 2.8 8.3 8.2 8.3 14s-3.2 11.2-8.3 14L231.7 238c-4.8 2.6-10.5 2.6-15.3 0L25.7 134c-5.1-2.8-8.3-8.2-8.3-14s3.2-11.2 8.3-14L201 10.3zM23.7 170l176 96c5.1 2.8 8.3 8.2 8.3 14l0 216c0 5.6-3 10.9-7.8 13.8s-10.9 3-15.8 .3L25 423.1C9.6 414.7 0 398.6 0 381L0 184c0-5.6 3-10.9 7.8-13.8s10.9-3 15.8-.3zm400.7 0c5-2.7 11-2.6 15.8 .3s7.8 8.1 7.8 13.8l0 197c0 17.6-9.6 33.7-25 42.1L263.7 510c-5 2.7-11 2.6-15.8-.3s-7.8-8.1-7.8-13.8l0-216c0-5.9 3.2-11.2 8.3-14l176-96z"], - "restroom": [640, 512, [], "f7bd", "M80 48a48 48 0 1 1 96 0A48 48 0 1 1 80 48zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-154.8c-8.1 9.2-21.1 13.2-33.5 9.4c-16.9-5.3-26.3-23.2-21-40.1l30.9-99.1C44.9 155.3 82 128 124 128l8 0c42 0 79.1 27.3 91.6 67.4l30.9 99.1c5.3 16.9-4.1 34.8-21 40.1c-12.4 3.9-25.4-.2-33.5-9.4L200 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zM320 0c13.3 0 24 10.7 24 24l0 464c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-464c0-13.3 10.7-24 24-24zM464 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM440 480l0-96-17.8 0c-10.9 0-18.6-10.7-15.2-21.1l9-26.9c-3.2 0-6.4-.5-9.5-1.5c-16.9-5.3-26.3-23.2-21-40.1l29.7-95.2C428.4 156.9 467.6 128 512 128s83.6 28.9 96.8 71.2l29.7 95.2c5.3 16.9-4.1 34.8-21 40.1c-3.2 1-6.4 1.5-9.5 1.5l9 26.9c3.5 10.4-4.3 21.1-15.2 21.1L584 384l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-16 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32z"], - "j": [320, 512, [106], "4a", "M288 32c17.7 0 32 14.3 32 32l0 256c0 88.4-71.6 160-160 160S0 408.4 0 320l0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32c0 53 43 96 96 96s96-43 96-96l0-256c0-17.7 14.3-32 32-32z"], - "users-viewfinder": [640, 512, [], "e595", "M48 48l88 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L32 0C14.3 0 0 14.3 0 32L0 136c0 13.3 10.7 24 24 24s24-10.7 24-24l0-88zM175.8 224a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-26.5 32C119.9 256 96 279.9 96 309.3c0 14.7 11.9 26.7 26.7 26.7l56.1 0c8-34.1 32.8-61.7 65.2-73.6c-7.5-4.1-16.2-6.4-25.3-6.4l-69.3 0zm368 80c14.7 0 26.7-11.9 26.7-26.7c0-29.5-23.9-53.3-53.3-53.3l-69.3 0c-9.2 0-17.8 2.3-25.3 6.4c32.4 11.9 57.2 39.5 65.2 73.6l56.1 0zm-89.4 0c-8.6-24.3-29.9-42.6-55.9-47c-3.9-.7-7.9-1-12-1l-80 0c-4.1 0-8.1 .3-12 1c-26 4.4-47.3 22.7-55.9 47c-2.7 7.5-4.1 15.6-4.1 24c0 13.3 10.7 24 24 24l176 0c13.3 0 24-10.7 24-24c0-8.4-1.4-16.5-4.1-24zM464 224a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-80-32a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM504 48l88 0 0 88c0 13.3 10.7 24 24 24s24-10.7 24-24l0-104c0-17.7-14.3-32-32-32L504 0c-13.3 0-24 10.7-24 24s10.7 24 24 24zM48 464l0-88c0-13.3-10.7-24-24-24s-24 10.7-24 24L0 480c0 17.7 14.3 32 32 32l104 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-88 0zm456 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l104 0c17.7 0 32-14.3 32-32l0-104c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 88-88 0z"], - "file-video": [384, 512, [], "f1c8", "M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM64 288c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-96zM300.9 397.9L256 368l0-64 44.9-29.9c2-1.3 4.4-2.1 6.8-2.1c6.8 0 12.3 5.5 12.3 12.3l0 103.4c0 6.8-5.5 12.3-12.3 12.3c-2.4 0-4.8-.7-6.8-2.1z"], - "up-right-from-square": [512, 512, ["external-link-alt"], "f35d", "M352 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9L370.7 96 201.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L416 141.3l41.4 41.4c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-128c0-17.7-14.3-32-32-32L352 0zM80 32C35.8 32 0 67.8 0 112L0 432c0 44.2 35.8 80 80 80l320 0c44.2 0 80-35.8 80-80l0-112c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112c0 8.8-7.2 16-16 16L80 448c-8.8 0-16-7.2-16-16l0-320c0-8.8 7.2-16 16-16l112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 32z"], - "table-cells": [512, 512, ["th"], "f00a", "M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm88 64l0 64-88 0 0-64 88 0zm56 0l88 0 0 64-88 0 0-64zm240 0l0 64-88 0 0-64 88 0zM64 224l88 0 0 64-88 0 0-64zm232 0l0 64-88 0 0-64 88 0zm64 0l88 0 0 64-88 0 0-64zM152 352l0 64-88 0 0-64 88 0zm56 0l88 0 0 64-88 0 0-64zm240 0l0 64-88 0 0-64 88 0z"], - "file-pdf": [512, 512, [], "f1c1", "M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 144-208 0c-35.3 0-64 28.7-64 64l0 144-48 0c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zM176 352l32 0c30.9 0 56 25.1 56 56s-25.1 56-56 56l-16 0 0 32c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48 0-80c0-8.8 7.2-16 16-16zm32 80c13.3 0 24-10.7 24-24s-10.7-24-24-24l-16 0 0 48 16 0zm96-80l32 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16l0-128c0-8.8 7.2-16 16-16zm32 128c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-16 0 0 96 16 0zm80-112c0-8.8 7.2-16 16-16l48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0 0 32 32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0 0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-64 0-64z"], - "book-bible": [448, 512, ["bible"], "f647", "M96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96l288 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-64c17.7 0 32-14.3 32-32l0-320c0-17.7-14.3-32-32-32L384 0 96 0zm0 384l256 0 0 64L96 448c-17.7 0-32-14.3-32-32s14.3-32 32-32zM208 80c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 112c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-112-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48z"], - "o": [448, 512, [111], "4f", "M224 96a160 160 0 1 0 0 320 160 160 0 1 0 0-320zM448 256A224 224 0 1 1 0 256a224 224 0 1 1 448 0z"], - "suitcase-medical": [512, 512, ["medkit"], "f0fa", "M184 48l144 0c4.4 0 8 3.6 8 8l0 40L176 96l0-40c0-4.4 3.6-8 8-8zm-56 8l0 40 0 32 0 352 256 0 0-352 0-32 0-40c0-30.9-25.1-56-56-56L184 0c-30.9 0-56 25.1-56 56zM96 96L64 96C28.7 96 0 124.7 0 160L0 416c0 35.3 28.7 64 64 64l32 0L96 96zM416 480l32 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-32 0 0 384zM224 208c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48z"], - "user-secret": [448, 512, [128373], "f21b", "M224 16c-6.7 0-10.8-2.8-15.5-6.1C201.9 5.4 194 0 176 0c-30.5 0-52 43.7-66 89.4C62.7 98.1 32 112.2 32 128c0 14.3 25 27.1 64.6 35.9c-.4 4-.6 8-.6 12.1c0 17 3.3 33.2 9.3 48l-59.9 0C38 224 32 230 32 237.4c0 1.7 .3 3.4 1 5l38.8 96.9C28.2 371.8 0 423.8 0 482.3C0 498.7 13.3 512 29.7 512l388.6 0c16.4 0 29.7-13.3 29.7-29.7c0-58.5-28.2-110.4-71.7-143L415 242.4c.6-1.6 1-3.3 1-5c0-7.4-6-13.4-13.4-13.4l-59.9 0c6-14.8 9.3-31 9.3-48c0-4.1-.2-8.1-.6-12.1C391 155.1 416 142.3 416 128c0-15.8-30.7-29.9-78-38.6C324 43.7 302.5 0 272 0c-18 0-25.9 5.4-32.5 9.9c-4.8 3.3-8.8 6.1-15.5 6.1zm56 208l-12.4 0c-16.5 0-31.1-10.6-36.3-26.2c-2.3-7-12.2-7-14.5 0c-5.2 15.6-19.9 26.2-36.3 26.2L168 224c-22.1 0-40-17.9-40-40l0-14.4c28.2 4.1 61 6.4 96 6.4s67.8-2.3 96-6.4l0 14.4c0 22.1-17.9 40-40 40zm-88 96l16 32L176 480 128 288l64 32zm128-32L272 480 240 352l16-32 64-32z"], - "otter": [640, 512, [129446], "f700", "M181.5 197.1l12.9 6.4c5.9 3 12.4 4.5 19.1 4.5c23.5 0 42.6-19.1 42.6-42.6l0-21.4c0-35.3-28.7-64-64-64l-64 0c-35.3 0-64 28.7-64 64l0 21.4c0 23.5 19.1 42.6 42.6 42.6c6.6 0 13.1-1.5 19.1-4.5l12.9-6.4 8.4-4.2L135.1 185c-4.5-3-7.1-8-7.1-13.3l0-3.7c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24l0 3.7c0 5.3-2.7 10.3-7.1 13.3l-11.8 7.9 8.4 4.2zm-8.6 49.4L160 240l-12.9 6.4c-12.6 6.3-26.5 9.6-40.5 9.6c-3.6 0-7.1-.2-10.6-.6l0 .6c0 35.3 28.7 64 64 64l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l160 0 0-48 0-16c0-23.7 12.9-44.4 32-55.4c9.4-5.4 20.3-8.6 32-8.6l0-16c0-26.5 21.5-48 48-48c8.8 0 16 7.2 16 16l0 32 0 16 0 48c0 8.8 7.2 16 16 16s16-7.2 16-16l0-99.7c0-48.2-30.8-91-76.6-106.3l-8.5-2.8c-8-2.7-12.6-11.1-10.4-19.3s10.3-13.2 18.6-11.6l19.9 4C576 86.1 640 164.2 640 254.9l0 1.1s0 0 0 0c0 123.7-100.3 224-224 224l-1.1 0L256 480l-.6 0C132 480 32 380 32 256.6l0-.6 0-39.2c-10.1-14.6-16-32.3-16-51.4L16 144l0-1.4C6.7 139.3 0 130.5 0 120c0-13.3 10.7-24 24-24l2.8 0C44.8 58.2 83.3 32 128 32l64 0c44.7 0 83.2 26.2 101.2 64l2.8 0c13.3 0 24 10.7 24 24c0 10.5-6.7 19.3-16 22.6l0 1.4 0 21.4c0 1.4 0 2.8-.1 4.3c12-6.2 25.7-9.6 40.1-9.6l8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-13.3 0-24 10.7-24 24l0 8 56.4 0c-15.2 17-24.4 39.4-24.4 64l-32 0c-42.3 0-78.2-27.4-91-65.3c-5.1 .9-10.3 1.3-15.6 1.3c-14.1 0-27.9-3.3-40.5-9.6zM96 128a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm112 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z"], - "person-dress": [320, 512, ["female"], "f182", "M160 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM88 384l-17.8 0c-10.9 0-18.6-10.7-15.2-21.1L93.3 248.1 59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l53.6-89.2c20.3-33.7 56.7-54.3 96-54.3l11.6 0c39.3 0 75.7 20.6 96 54.3l53.6 89.2c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9l-33.9-56.3L265 362.9c3.5 10.4-4.3 21.1-15.2 21.1L232 384l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-16 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96z"], - "comment-dollar": [512, 512, [], "f651", "M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zm20-312l0 13.9c7.5 1.2 14.6 2.9 21.1 4.7c10.7 2.8 17 13.8 14.2 24.5s-13.8 17-24.5 14.2c-11-2.9-21.6-5-31.2-5.2c-7.9-.1-16 1.8-21.5 5c-4.8 2.8-6.2 5.6-6.2 9.3c0 1.8 .1 3.5 5.3 6.7c6.3 3.8 15.5 6.7 28.3 10.5l.7 .2c11.2 3.4 25.6 7.7 37.1 15c12.9 8.1 24.3 21.3 24.6 41.6c.3 20.9-10.5 36.1-24.8 45c-7.2 4.5-15.2 7.3-23.2 9l0 13.8c0 11-9 20-20 20s-20-9-20-20l0-14.6c-10.3-2.2-20-5.5-28.2-8.4c0 0 0 0 0 0s0 0 0 0c-2.1-.7-4.1-1.4-6.1-2.1c-10.5-3.5-16.1-14.8-12.6-25.3s14.8-16.1 25.3-12.6c2.5 .8 4.9 1.7 7.2 2.4c0 0 0 0 0 0c13.6 4.6 24 8.1 35.1 8.5c8.6 .3 16.5-1.6 21.4-4.7c4.1-2.5 6-5.5 5.9-10.5c0-2.9-.8-5-5.9-8.2c-6.3-4-15.4-6.9-28-10.7l-1.7-.5c-10.9-3.3-24.6-7.4-35.6-14c-12.7-7.7-24.6-20.5-24.7-40.7c-.1-21.1 11.8-35.7 25.8-43.9c6.9-4.1 14.5-6.8 22.2-8.5l0-14c0-11 9-20 20-20s20 9 20 20z"], - "business-time": [640, 512, ["briefcase-clock"], "f64a", "M184 48l144 0c4.4 0 8 3.6 8 8l0 40L176 96l0-40c0-4.4 3.6-8 8-8zm-56 8l0 40L64 96C28.7 96 0 124.7 0 160l0 96 192 0 160 0 8.2 0c32.3-39.1 81.1-64 135.8-64c5.4 0 10.7 .2 16 .7l0-32.7c0-35.3-28.7-64-64-64l-64 0 0-40c0-30.9-25.1-56-56-56L184 0c-30.9 0-56 25.1-56 56zM320 352l-96 0c-17.7 0-32-14.3-32-32l0-32L0 288 0 416c0 35.3 28.7 64 64 64l296.2 0C335.1 449.6 320 410.5 320 368c0-5.4 .2-10.7 .7-16l-.7 0zm320 16a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zM496 288c8.8 0 16 7.2 16 16l0 48 32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16z"], - "table-cells-large": [512, 512, ["th-large"], "f009", "M448 96l0 128-160 0 0-128 160 0zm0 192l0 128-160 0 0-128 160 0zM224 224L64 224 64 96l160 0 0 128zM64 288l160 0 0 128L64 416l0-128zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z"], - "book-tanakh": [448, 512, ["tanakh"], "f827", "M352 0c53 0 96 43 96 96l0 320c0 53-43 96-96 96L64 512l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-64c-17.7 0-32-14.3-32-32L0 32C0 14.3 14.3 0 32 0L64 0 352 0zm0 384L96 384l0 64 256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32zM138.7 208l13.9 24-27.7 0 13.9-24zm-13.9-24L97.1 232c-6.2 10.7 1.5 24 13.9 24l55.4 0 27.7 48c6.2 10.7 21.6 10.7 27.7 0l27.7-48 55.4 0c12.3 0 20-13.3 13.9-24l-27.7-48 27.7-48c6.2-10.7-1.5-24-13.9-24l-55.4 0L221.9 64c-6.2-10.7-21.6-10.7-27.7 0l-27.7 48L111 112c-12.3 0-20 13.3-13.9 24l27.7 48zm27.7 0l27.7-48 55.4 0 27.7 48-27.7 48-55.4 0-27.7-48zm0-48l-13.9 24-13.9-24 27.7 0zm41.6-24L208 88l13.9 24-27.7 0zm69.3 24l27.7 0-13.9 24-13.9-24zm13.9 72l13.9 24-27.7 0 13.9-24zm-55.4 48L208 280l-13.9-24 27.7 0z"], - "phone-volume": [512, 512, ["volume-control-phone"], "f2a0", "M280 0C408.1 0 512 103.9 512 232c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-101.6-82.4-184-184-184c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm-32-72c0-13.3 10.7-24 24-24c75.1 0 136 60.9 136 136c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6-39.4-88-88-88c-13.3 0-24-10.7-24-24zM117.5 1.4c19.4-5.3 39.7 4.6 47.4 23.2l40 96c6.8 16.3 2.1 35.2-11.6 46.3L144 207.3c33.3 70.4 90.3 127.4 160.7 160.7L345 318.7c11.2-13.7 30-18.4 46.3-11.6l96 40c18.6 7.7 28.5 28 23.2 47.4l-24 88C481.8 499.9 466 512 448 512C200.6 512 0 311.4 0 64C0 46 12.1 30.2 29.5 25.4l88-24z"], - "hat-cowboy-side": [640, 512, [], "f8c1", "M152.7 135.9l-10.4 57.2c6.8-.7 13.6-1.1 20.5-1.1l10.7 0c39.4 0 77.8 12.1 110.1 34.7L562.4 421.8l35.1 24.6c24.4-6 42.5-28.1 42.5-54.4c0-75.8-94.7-126.6-134.6-144.7L474 83.9C468.2 53.8 441.8 32 411.1 32l-2.7 0c-5.6 0-11.1 .7-16.5 2.2L199.2 85.5c-23.9 6.4-42 26-46.5 50.4zM0 384c0 35.3 28.7 64 64 64l480 0L265.3 252.9c-26.9-18.8-58.9-28.9-91.8-28.9l-10.7 0c-60.6 0-116 34.2-143.1 88.4L13.5 325C4.6 342.7 0 362.3 0 382.2L0 384z"], - "clipboard-user": [384, 512, [], "f7f3", "M192 0c-41.8 0-77.4 26.7-90.5 64L64 64C28.7 64 0 92.7 0 128L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-37.5 0C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM128 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM80 432c0-44.2 35.8-80 80-80l64 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16L96 448c-8.8 0-16-7.2-16-16z"], - "child": [320, 512, [], "f1ae", "M96 64a64 64 0 1 1 128 0A64 64 0 1 1 96 64zm48 320l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-192.2L59.1 321c-9.4 15-29.2 19.4-44.1 10S-4.5 301.9 4.9 287l39.9-63.3C69.7 184 113.2 160 160 160s90.3 24 115.2 63.6L315.1 287c9.4 15 4.9 34.7-10 44.1s-34.7 4.9-44.1-10L240 287.8 240 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-32 0z"], - "lira-sign": [320, 512, [8356], "f195", "M112 160.4c0-35.5 28.8-64.4 64.4-64.4c6.9 0 13.8 1.1 20.4 3.3l81.2 27.1c16.8 5.6 34.9-3.5 40.5-20.2s-3.5-34.9-20.2-40.5L217 38.6c-13.1-4.4-26.8-6.6-40.6-6.6C105.5 32 48 89.5 48 160.4L48 192l-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0 0 32-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l14 0c-2.2 10.5-6.1 20.6-11.7 29.9L4.6 431.5c-5.9 9.9-6.1 22.2-.4 32.2S20.5 480 32 480l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L88.5 416l.7-1.1c11.6-19.3 18.9-40.7 21.6-62.9L224 352c17.7 0 32-14.3 32-32s-14.3-32-32-32l-112 0 0-32 112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-112 0 0-31.6z"], - "satellite": [512, 512, [128752], "f7bf", "M233 7c-9.4-9.4-24.6-9.4-33.9 0l-96 96c-9.4 9.4-9.4 24.6 0 33.9l89.4 89.4-15.5 15.5C152.3 230.4 124.9 224 96 224c-31.7 0-61.5 7.7-87.8 21.2c-9 4.7-10.3 16.7-3.1 23.8L112.7 376.7 96.3 393.1c-2.6-.7-5.4-1.1-8.3-1.1c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32c0-2.9-.4-5.6-1.1-8.3l16.4-16.4L242.9 506.9c7.2 7.2 19.2 5.9 23.8-3.1C280.3 477.5 288 447.7 288 416c0-28.9-6.4-56.3-17.8-80.9l15.5-15.5L375 409c9.4 9.4 24.6 9.4 33.9 0l96-96c9.4-9.4 9.4-24.6 0-33.9l-89.4-89.4 55-55c12.5-12.5 12.5-32.8 0-45.3l-48-48c-12.5-12.5-32.8-12.5-45.3 0l-55 55L233 7zm159 351l-72.4-72.4 62.1-62.1L454.1 296 392 358.1zM226.3 192.4L153.9 120 216 57.9l72.4 72.4-62.1 62.1z"], - "plane-lock": [640, 512, [], "e558", "M192 93.7C192 59.5 221 0 256 0c36 0 64 59.5 64 93.7l0 84.6 101.8 58.2C418 247.6 416 259.6 416 272l0 24.6c-17.9 10.4-30.3 29.1-31.8 50.9L320 329.1l0 70.9 57.6 43.2c4 3 6.4 7.8 6.4 12.8l0 24 0 18c0 7.8-6.3 14-14 14c-1.3 0-2.6-.2-3.9-.5L256 480 145.9 511.5c-1.3 .4-2.6 .5-3.9 .5c-7.8 0-14-6.3-14-14l0-42c0-5 2.4-9.8 6.4-12.8L192 400l0-70.9-171.6 49C10.2 381.1 0 373.4 0 362.8l0-65.5c0-5.7 3.1-11 8.1-13.9L192 178.3l0-84.6zM528 240c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80l0 48c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l0-48z"], - "tag": [448, 512, [127991], "f02b", "M0 80L0 229.5c0 17 6.7 33.3 18.7 45.3l176 176c25 25 65.5 25 90.5 0L418.7 317.3c25-25 25-65.5 0-90.5l-176-176c-12-12-28.3-18.7-45.3-18.7L48 32C21.5 32 0 53.5 0 80zm112 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"], - "comment": [512, 512, [128489, 61669], "f075", "M512 240c0 114.9-114.6 208-256 208c-37.1 0-72.3-6.4-104.1-17.9c-11.9 8.7-31.3 20.6-54.3 30.6C73.6 471.1 44.7 480 16 480c-6.5 0-12.3-3.9-14.8-9.9c-2.5-6-1.1-12.8 3.4-17.4c0 0 0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.3-.3c.3-.3 .7-.7 1.3-1.4c1.1-1.2 2.8-3.1 4.9-5.7c4.1-5 9.6-12.4 15.2-21.6c10-16.6 19.5-38.4 21.4-62.9C17.7 326.8 0 285.1 0 240C0 125.1 114.6 32 256 32s256 93.1 256 208z"], - "cake-candles": [448, 512, [127874, "birthday-cake", "cake"], "f1fd", "M86.4 5.5L61.8 47.6C58 54.1 56 61.6 56 69.2L56 72c0 22.1 17.9 40 40 40s40-17.9 40-40l0-2.8c0-7.6-2-15-5.8-21.6L105.6 5.5C103.6 2.1 100 0 96 0s-7.6 2.1-9.6 5.5zm128 0L189.8 47.6c-3.8 6.5-5.8 14-5.8 21.6l0 2.8c0 22.1 17.9 40 40 40s40-17.9 40-40l0-2.8c0-7.6-2-15-5.8-21.6L233.6 5.5C231.6 2.1 228 0 224 0s-7.6 2.1-9.6 5.5zM317.8 47.6c-3.8 6.5-5.8 14-5.8 21.6l0 2.8c0 22.1 17.9 40 40 40s40-17.9 40-40l0-2.8c0-7.6-2-15-5.8-21.6L361.6 5.5C359.6 2.1 356 0 352 0s-7.6 2.1-9.6 5.5L317.8 47.6zM128 176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48c-35.3 0-64 28.7-64 64l0 71c8.3 5.2 18.1 9 28.8 9c13.5 0 27.2-6.1 38.4-13.4c5.4-3.5 9.9-7.1 13-9.7c1.5-1.3 2.7-2.4 3.5-3.1c.4-.4 .7-.6 .8-.8l.1-.1s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0c3.1-3.2 7.4-4.9 11.9-4.8s8.6 2.1 11.6 5.4c0 0 0 0 0 0s0 0 0 0l.1 .1c.1 .1 .4 .4 .7 .7c.7 .7 1.7 1.7 3.1 3c2.8 2.6 6.8 6.1 11.8 9.5c10.2 7.1 23 13.1 36.3 13.1s26.1-6 36.3-13.1c5-3.5 9-6.9 11.8-9.5c1.4-1.3 2.4-2.3 3.1-3c.3-.3 .6-.6 .7-.7l.1-.1c3-3.5 7.4-5.4 12-5.4s9 2 12 5.4l.1 .1c.1 .1 .4 .4 .7 .7c.7 .7 1.7 1.7 3.1 3c2.8 2.6 6.8 6.1 11.8 9.5c10.2 7.1 23 13.1 36.3 13.1s26.1-6 36.3-13.1c5-3.5 9-6.9 11.8-9.5c1.4-1.3 2.4-2.3 3.1-3c.3-.3 .6-.6 .7-.7l.1-.1c2.9-3.4 7.1-5.3 11.6-5.4s8.7 1.6 11.9 4.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0l.1 .1c.2 .2 .4 .4 .8 .8c.8 .7 1.9 1.8 3.5 3.1c3.1 2.6 7.5 6.2 13 9.7c11.2 7.3 24.9 13.4 38.4 13.4c10.7 0 20.5-3.9 28.8-9l0-71c0-35.3-28.7-64-64-64l0-48c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48-64 0 0-48c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48-64 0 0-48zM448 394.6c-8.5 3.3-18.2 5.4-28.8 5.4c-22.5 0-42.4-9.9-55.8-18.6c-4.1-2.7-7.8-5.4-10.9-7.8c-2.8 2.4-6.1 5-9.8 7.5C329.8 390 310.6 400 288 400s-41.8-10-54.6-18.9c-3.5-2.4-6.7-4.9-9.4-7.2c-2.7 2.3-5.9 4.7-9.4 7.2C201.8 390 182.6 400 160 400s-41.8-10-54.6-18.9c-3.7-2.6-7-5.2-9.8-7.5c-3.1 2.4-6.8 5.1-10.9 7.8C71.2 390.1 51.3 400 28.8 400c-10.6 0-20.3-2.2-28.8-5.4L0 480c0 17.7 14.3 32 32 32l384 0c17.7 0 32-14.3 32-32l0-85.4z"], - "envelope": [512, 512, [128386, 9993, 61443], "f0e0", "M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0L492.8 150.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48L48 64zM0 176L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-208L294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176z"], - "angles-up": [448, 512, ["angle-double-up"], "f102", "M246.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L224 109.3 361.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160zm160 352l-160-160c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L224 301.3 361.4 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3z"], - "paperclip": [448, 512, [128206], "f0c6", "M364.2 83.8c-24.4-24.4-64-24.4-88.4 0l-184 184c-42.1 42.1-42.1 110.3 0 152.4s110.3 42.1 152.4 0l152-152c10.9-10.9 28.7-10.9 39.6 0s10.9 28.7 0 39.6l-152 152c-64 64-167.6 64-231.6 0s-64-167.6 0-231.6l184-184c46.3-46.3 121.3-46.3 167.6 0s46.3 121.3 0 167.6l-176 176c-28.6 28.6-75 28.6-103.6 0s-28.6-75 0-103.6l144-144c10.9-10.9 28.7-10.9 39.6 0s10.9 28.7 0 39.6l-144 144c-6.7 6.7-6.7 17.7 0 24.4s17.7 6.7 24.4 0l176-176c24.4-24.4 24.4-64 0-88.4z"], - "arrow-right-to-city": [640, 512, [], "e4b3", "M288 48c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 144 40 0 0-72c0-13.3 10.7-24 24-24s24 10.7 24 24l0 72 24 0c26.5 0 48 21.5 48 48l0 224c0 26.5-21.5 48-48 48l-160 0-96 0c-26.5 0-48-21.5-48-48l0-416zm64 32l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM352 272l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm176-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM512 368l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM166.6 153.4l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L146.7 288 32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l114.7 0-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0z"], - "ribbon": [448, 512, [127895], "f4d6", "M333.2 322.8s0 0 0 0l-133.9-146s0 0 0 0L146 118.6c7.8-5.1 37-22.6 78-22.6s70.2 17.4 78 22.6L245.7 180l85.6 93.4 27.4-29.8c16.3-17.7 25.3-40.9 25.3-65l0-29.5c0-19-5.6-37.5-16.1-53.3L327.8 35.6C312.9 13.4 287.9 0 261.2 0l-76 0c-25.8 0-50.1 12.5-65.1 33.5L81.9 87C70.3 103.2 64 122.8 64 142.8L64 164c0 23.2 8.4 45.6 23.6 63.1l56 64.2s0 0 0 0l83.3 95.6s0 0 0 0l91.8 105.3c10 11.5 26.8 14.3 40 6.8l54.5-31.1c17.8-10.2 21.6-34.3 7.7-49.4l-87.7-95.7zM205.2 410.6l-83.3-95.6L27.1 418.5c-13.9 15.1-10.1 39.2 7.7 49.4l55.1 31.5c13 7.4 29.3 4.9 39.4-6.1l75.9-82.6z"], - "lungs": [640, 512, [129729], "f604", "M320 0c17.7 0 32 14.3 32 32l0 132.1c0 16.4 8.4 31.7 22.2 40.5l9.8 6.2 0-45.5C384 127 415 96 453.3 96c21.7 0 42.8 10.2 55.8 28.8c15.4 22.1 44.3 65.4 71 116.9c26.5 50.9 52.4 112.5 59.6 170.3c.2 1.3 .2 2.6 .2 4l0 7c0 49.1-39.8 89-89 89c-7.3 0-14.5-.9-21.6-2.7l-72.7-18.2C414 480.5 384 442.1 384 398l0-73 90.5 57.6c7.5 4.7 17.3 2.5 22.1-4.9s2.5-17.3-4.9-22.1L384 287.1l0-.4-44.1-28.1c-7.3-4.6-13.9-10.1-19.9-16.1c-5.9 6-12.6 11.5-19.9 16.1L256 286.7 161.2 347l-13.5 8.6c0 0 0 0-.1 0c-7.4 4.8-9.6 14.6-4.8 22.1c4.7 7.5 14.6 9.7 22.1 4.9l91.1-58 0 73.4c0 44.1-30 82.5-72.7 93.1l-72.7 18.2c-7.1 1.8-14.3 2.7-21.6 2.7c-49.1 0-89-39.8-89-89l0-7c0-1.3 .1-2.7 .2-4c7.2-57.9 33.1-119.4 59.6-170.3c26.8-51.5 55.6-94.8 71-116.9c13-18.6 34-28.8 55.8-28.8C225 96 256 127 256 165.3l0 45.5 9.8-6.2c13.8-8.8 22.2-24.1 22.2-40.5L288 32c0-17.7 14.3-32 32-32z"], - "arrow-up-9-1": [576, 512, ["sort-numeric-up-alt"], "f887", "M160 32c9 0 17.5 3.8 23.6 10.4l88 96c11.9 13 11.1 33.3-2 45.2s-33.3 11.1-45.2-2L192 146.3 192 448c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-301.7L95.6 181.6c-11.9 13-32.2 13.9-45.2 2s-13.9-32.2-2-45.2l88-96C142.5 35.8 151 32 160 32zM450.7 294c8.3 6 13.3 15.7 13.3 26l0 96 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-48 0-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-51.6-5.9 2c-16.8 5.6-34.9-3.5-40.5-20.2s3.5-34.9 20.2-40.5l48-16c9.8-3.3 20.5-1.6 28.8 4.4zm-5-145.1A32 32 0 1 0 418.3 91a32 32 0 1 0 27.4 57.9zm-40.7 54.9C369.6 192.4 344 159.2 344 120c0-48.6 39.4-88 88-88s88 39.4 88 88c0 23.5-7.5 46.3-21.5 65.2L449.7 251c-10.5 14.2-30.6 17.2-44.8 6.7s-17.2-30.6-6.7-44.8l6.8-9.2z"], - "litecoin-sign": [384, 512, [], "e1d3", "M128 64c0-17.7-14.3-32-32-32S64 46.3 64 64l0 149.6L23.2 225.2c-17 4.9-26.8 22.6-22 39.6s22.6 26.8 39.6 22L64 280.1 64 448c0 17.7 14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-224 0 0-154.1 136.8-39.1c17-4.9 26.8-22.6 22-39.6s-22.6-26.8-39.6-22L128 195.3 128 64z"], - "border-none": [448, 512, [], "f850", "M32 480a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm96-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0-384a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0 256a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM320 416a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0-320a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm0 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM224 480a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm0-448a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0 256a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM416 416a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0-384a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM32 96a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM416 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM32 288a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm192 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm192 64a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM32 320a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM416 192a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM32 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm192 64a32 32 0 1 1 0-64 32 32 0 1 1 0 64z"], - "circle-nodes": [512, 512, [], "e4e2", "M418.4 157.9c35.3-8.3 61.6-40 61.6-77.9c0-44.2-35.8-80-80-80c-43.4 0-78.7 34.5-80 77.5L136.2 151.1C121.7 136.8 101.9 128 80 128c-44.2 0-80 35.8-80 80s35.8 80 80 80c12.2 0 23.8-2.7 34.1-7.6L259.7 407.8c-2.4 7.6-3.7 15.8-3.7 24.2c0 44.2 35.8 80 80 80s80-35.8 80-80c0-27.7-14-52.1-35.4-66.4l37.8-207.7zM156.3 232.2c2.2-6.9 3.5-14.2 3.7-21.7l183.8-73.5c3.6 3.5 7.4 6.7 11.6 9.5L317.6 354.1c-5.5 1.3-10.8 3.1-15.8 5.5L156.3 232.2z"], - "parachute-box": [512, 512, [], "f4cd", "M383.5 192c.3-5.3 .5-10.6 .5-16c0-51-15.9-96-40.2-127.6C319.5 16.9 288.2 0 256 0s-63.5 16.9-87.8 48.4C143.9 80 128 125 128 176c0 5.4 .2 10.7 .5 16L240 192l0 128-32 0c-7 0-13.7 1.5-19.7 4.2L68.2 192l28.3 0c-.3-5.3-.5-10.6-.5-16c0-64 22.2-121.2 57.1-159.3C62 49.3 18.6 122.6 4.2 173.6C1.5 183.1 9 192 18.9 192l6 0L165.2 346.3c-3.3 6.5-5.2 13.9-5.2 21.7l0 96c0 26.5 21.5 48 48 48l96 0c26.5 0 48-21.5 48-48l0-96c0-7.8-1.9-15.2-5.2-21.7L487.1 192l6 0c9.9 0 17.4-8.9 14.7-18.4C493.4 122.6 450 49.3 358.9 16.7C393.8 54.8 416 112.1 416 176c0 5.4-.2 10.7-.5 16l28.3 0L323.7 324.2c-6-2.7-12.7-4.2-19.7-4.2l-32 0 0-128 111.5 0z"], - "indent": [448, 512, [], "f03c", "M0 64C0 46.3 14.3 32 32 32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64zM192 192c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 96l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zM0 448c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32zM127.8 268.6L25.8 347.9C15.3 356.1 0 348.6 0 335.3L0 176.7c0-13.3 15.3-20.8 25.8-12.6l101.9 79.3c8.2 6.4 8.2 18.9 0 25.3z"], - "truck-field-un": [640, 512, [], "e58e", "M96 32C60.7 32 32 60.7 32 96l0 32c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32l0 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0c0 53 43 96 96 96s96-43 96-96l128 0c0 53 43 96 96 96s96-43 96-96l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-32c0-35.3-28.7-64-64-64l-4.2 0c-.4-1.1-.9-2.1-1.3-3.2L485.7 102c-10.3-23.1-33.2-38-58.5-38l-51.8 0C364.4 44.9 343.7 32 320 32L96 32zm288 96l43.2 0 42.7 96L384 224l0-96zM112 384a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm368-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM253.3 135.1l34.7 52 0-43.2c0-8.8 7.2-16 16-16s16 7.2 16 16l0 96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52 0 43.2c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM128 144l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16z"], - "hourglass": [384, 512, [9203, 62032, "hourglass-empty"], "f254", "M0 32C0 14.3 14.3 0 32 0L64 0 320 0l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 11c0 42.4-16.9 83.1-46.9 113.1L237.3 256l67.9 67.9c30 30 46.9 70.7 46.9 113.1l0 11c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0L64 512l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-11c0-42.4 16.9-83.1 46.9-113.1L146.7 256 78.9 188.1C48.9 158.1 32 117.4 32 75l0-11C14.3 64 0 49.7 0 32zM96 64l0 11c0 25.5 10.1 49.9 28.1 67.9L192 210.7l67.9-67.9c18-18 28.1-42.4 28.1-67.9l0-11L96 64zm0 384l192 0 0-11c0-25.5-10.1-49.9-28.1-67.9L192 301.3l-67.9 67.9c-18 18-28.1 42.4-28.1 67.9l0 11z"], - "mountain": [512, 512, [127956], "f6fc", "M256 32c12.5 0 24.1 6.4 30.8 17L503.4 394.4c5.6 8.9 8.6 19.2 8.6 29.7c0 30.9-25 55.9-55.9 55.9L55.9 480C25 480 0 455 0 424.1c0-10.5 3-20.8 8.6-29.7L225.2 49c6.6-10.6 18.3-17 30.8-17zm65 192L256 120.4 176.9 246.5l18.3 24.4c6.4 8.5 19.2 8.5 25.6 0l25.6-34.1c6-8.1 15.5-12.8 25.6-12.8l49 0z"], - "user-doctor": [448, 512, ["user-md"], "f0f0", "M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-96 55.2C54 332.9 0 401.3 0 482.3C0 498.7 13.3 512 29.7 512l388.6 0c16.4 0 29.7-13.3 29.7-29.7c0-81-54-149.4-128-171.1l0 50.8c27.6 7.1 48 32.2 48 62l0 40c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l0-24c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 24c8.8 0 16 7.2 16 16s-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-40c0-29.8 20.4-54.9 48-62l0-57.1c-6-.6-12.1-.9-18.3-.9l-91.4 0c-6.2 0-12.3 .3-18.3 .9l0 65.4c23.1 6.9 40 28.3 40 53.7c0 30.9-25.1 56-56 56s-56-25.1-56-56c0-25.4 16.9-46.8 40-53.7l0-59.1zM144 448a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"], - "circle-info": [512, 512, ["info-circle"], "f05a", "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336l24 0 0-64-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 88 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-208a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"], - "cloud-meatball": [512, 512, [], "f73b", "M0 224c0 53 43 96 96 96l44.7 0c9.5-23.5 32.5-40 59.3-40c2 0 3.9 .1 5.8 .3C217.6 265.5 235.7 256 256 256s38.4 9.5 50.2 24.3c1.9-.2 3.9-.3 5.8-.3c26.9 0 49.9 16.5 59.3 40l44.7 0c53 0 96-43 96-96s-43-96-96-96c-.5 0-1.1 0-1.6 0c1.1-5.2 1.6-10.5 1.6-16c0-44.2-35.8-80-80-80c-24.3 0-46.1 10.9-60.8 28C256.5 24.3 219.1 0 176 0C114.1 0 64 50.1 64 112c0 7.1 .7 14.1 1.9 20.8C27.6 145.4 0 181.5 0 224zm288 96c0-17.7-14.3-32-32-32s-32 14.3-32 32c0 1 .1 2.1 .1 3.1c-.7-.8-1.4-1.6-2.1-2.3c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3c.7 .7 1.5 1.4 2.3 2.1c-1-.1-2.1-.1-3.1-.1c-17.7 0-32 14.3-32 32s14.3 32 32 32c1 0 2.1-.1 3.1-.1c-.8 .7-1.6 1.3-2.3 2.1c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0c.7-.7 1.4-1.5 2.1-2.3c-.1 1-.1 2.1-.1 3.1c0 17.7 14.3 32 32 32s32-14.3 32-32c0-1-.1-2.1-.1-3.1c.7 .8 1.3 1.6 2.1 2.3c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3c-.7-.7-1.5-1.4-2.3-2.1c1 .1 2.1 .1 3.1 .1c17.7 0 32-14.3 32-32s-14.3-32-32-32c-1 0-2.1 .1-3.1 .1c.8-.7 1.6-1.3 2.3-2.1c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-.7 .7-1.4 1.5-2.1 2.3c.1-1 .1-2.1 .1-3.1zM48 448a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm416 0a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"], - "camera": [512, 512, [62258, "camera-alt"], "f030", "M149.1 64.8L138.7 96 64 96C28.7 96 0 124.7 0 160L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-74.7 0L362.9 64.8C356.4 45.2 338.1 32 317.4 32L194.6 32c-20.7 0-39 13.2-45.5 32.8zM256 192a96 96 0 1 1 0 192 96 96 0 1 1 0-192z"], - "square-virus": [448, 512, [], "e578", "M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM223.8 93.7c13.3 0 24 10.7 24 24c0 29.3 35.4 43.9 56.1 23.2c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-20.7 20.7-6 56.1 23.2 56.1c13.3 0 24 10.7 24 24s-10.7 24-24 24c-29.3 0-43.9 35.4-23.2 56.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-20.7-20.7-56.1-6-56.1 23.2c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-29.3-35.4-43.9-56.1-23.2c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9c20.7-20.7 6-56.1-23.2-56.1c-13.3 0-24-10.7-24-24s10.7-24 24-24c29.3 0 43.9-35.4 23.2-56.1c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c20.7 20.7 56.1 6 56.1-23.2c0-13.3 10.7-24 24-24zM192 256a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm88 32a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z"], - "meteor": [512, 512, [9732], "f753", "M493.7 .9L299.4 75.6l2.3-29.3c1-12.8-12.8-21.5-24-15.1L101.3 133.4C38.6 169.7 0 236.6 0 309C0 421.1 90.9 512 203 512c72.4 0 139.4-38.6 175.7-101.3L480.8 234.3c6.5-11.1-2.2-25-15.1-24l-29.3 2.3L511.1 18.3c.6-1.5 .9-3.2 .9-4.8C512 6 506 0 498.5 0c-1.7 0-3.3 .3-4.8 .9zM192 192a128 128 0 1 1 0 256 128 128 0 1 1 0-256zm0 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm16 96a16 16 0 1 0 0-32 16 16 0 1 0 0 32z"], - "car-on": [512, 512, [], "e4dd", "M280 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-80zM185.8 224l140.3 0c6.8 0 12.8 4.3 15.1 10.6L360.3 288l-208.6 0 19.1-53.4c2.3-6.4 8.3-10.6 15.1-10.6zm-75.3-10.9L82.2 292.4C62.1 300.9 48 320.8 48 344l0 40 0 64 0 32c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-32 256 0 0 32c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-32 0-64 0-40c0-23.2-14.1-43.1-34.2-51.6l-28.3-79.3C390.1 181.3 360 160 326.2 160l-140.3 0c-33.8 0-64 21.3-75.3 53.1zM128 344a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm232 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM39 39c-9.4 9.4-9.4 24.6 0 33.9l48 48c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L73 39c-9.4-9.4-24.6-9.4-33.9 0zm400 0L391 87c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l48-48c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0z"], - "sleigh": [640, 512, [], "f7cc", "M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l0 160c0 53 43 96 96 96l0 32 64 0 0-32 192 0 0 32 64 0 0-32c53 0 96-43 96-96l0-96c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0-32 0c-17.7 0-32 14.3-32 32l0 41.3c0 30.2-24.5 54.7-54.7 54.7c-75.5 0-145.6-38.9-185.6-102.9l-4.3-6.9C174.2 67.6 125 37.6 70.7 32.7c-2.2-.5-4.4-.7-6.7-.7l-9 0L32 32zM640 384c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 8c0 13.3-10.7 24-24 24L64 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l488 0c48.6 0 88-39.4 88-88l0-8z"], - "arrow-down-1-9": [576, 512, ["sort-numeric-asc", "sort-numeric-down"], "f162", "M450.7 38c-8.3-6-19.1-7.7-28.8-4.4l-48 16c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l5.9-2 0 51.6-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l48 0 48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0 0-96c0-10.3-4.9-19.9-13.3-26zM160 480c9 0 17.5-3.8 23.6-10.4l88-96c11.9-13 11.1-33.3-2-45.2s-33.3-11.1-45.2 2L192 365.7 192 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 301.7L95.6 330.4c-11.9-13-32.2-13.9-45.2-2s-13.9 32.2-2 45.2l88 96C142.5 476.2 151 480 160 480zM418.3 307a32 32 0 1 1 27.4 57.9A32 32 0 1 1 418.3 307zM405.1 419.8l-6.8 9.2c-10.5 14.2-7.5 34.2 6.7 44.8s34.2 7.5 44.8-6.7l48.8-65.8c14-18.9 21.5-41.7 21.5-65.2c0-48.6-39.4-88-88-88s-88 39.4-88 88c0 39.2 25.6 72.4 61.1 83.8z"], - "hand-holding-droplet": [576, 512, ["hand-holding-water"], "f4c1", "M275.5 6.6C278.3 2.5 283 0 288 0s9.7 2.5 12.5 6.6L366.8 103C378 119.3 384 138.6 384 158.3l0 1.7c0 53-43 96-96 96s-96-43-96-96l0-1.7c0-19.8 6-39 17.2-55.3L275.5 6.6zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5L192 512 32 512c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l36.8 0 44.9-36c22.7-18.2 50.9-28 80-28l78.3 0 16 0 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l120.6 0 119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384c0 0 0 0 0 0l-.9 0c.3 0 .6 0 .9 0z"], - "water": [576, 512, [], "f773", "M269.5 69.9c11.1-7.9 25.9-7.9 37 0C329 85.4 356.5 96 384 96c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 149.7 417 160 384 160c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4C42.8 92.6 61 83.5 75.3 71.6c11.1-9.5 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 85.2 165.1 96 192 96c27.5 0 55-10.6 77.5-26.1zm37 288C329 373.4 356.5 384 384 384c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 437.7 417 448 384 448c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 373.2 165.1 384 192 384c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0zm0-144C329 229.4 356.5 240 384 240c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 293.7 417 304 384 304c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.5 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 229.2 165.1 240 192 240c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z"], - "calendar-check": [448, 512, [], "f274", "M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zM329 305c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-95 95-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L329 305z"], - "braille": [640, 512, [], "f2a1", "M0 96a64 64 0 1 1 128 0A64 64 0 1 1 0 96zM224 272a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm0-80a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM80 416a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zM0 416a64 64 0 1 1 128 0A64 64 0 1 1 0 416zm240 0a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-80 0a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM64 192a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM224 32a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM352 96a64 64 0 1 1 128 0A64 64 0 1 1 352 96zm240 0a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-80 0a64 64 0 1 1 128 0A64 64 0 1 1 512 96zm64 176a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm0-80a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm16 224a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-80 0a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM416 272a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm0-80a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm16 224a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-80 0a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z"], - "prescription-bottle-medical": [384, 512, ["prescription-bottle-alt"], "f486", "M0 32C0 14.3 14.3 0 32 0L352 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64L0 32zm32 96l320 0 0 320c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-320zM160 240l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-48 0 0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z"], - "landmark": [512, 512, [127963], "f66f", "M240.1 4.2c9.8-5.6 21.9-5.6 31.8 0l171.8 98.1L448 104l0 .9 47.9 27.4c12.6 7.2 18.8 22 15.1 36s-16.4 23.8-30.9 23.8L32 192c-14.5 0-27.2-9.8-30.9-23.8s2.5-28.8 15.1-36L64 104.9l0-.9 4.4-1.6L240.1 4.2zM64 224l64 0 0 192 40 0 0-192 64 0 0 192 48 0 0-192 64 0 0 192 40 0 0-192 64 0 0 196.3c.6 .3 1.2 .7 1.8 1.1l48 32c11.7 7.8 17 22.4 12.9 35.9S494.1 512 480 512L32 512c-14.1 0-26.5-9.2-30.6-22.7s1.1-28.1 12.9-35.9l48-32c.6-.4 1.2-.7 1.8-1.1L64 224z"], - "truck": [640, 512, [128666, 9951], "f0d1", "M48 0C21.5 0 0 21.5 0 48L0 368c0 26.5 21.5 48 48 48l16 0c0 53 43 96 96 96s96-43 96-96l128 0c0 53 43 96 96 96s96-43 96-96l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-64 0-32 0-18.7c0-17-6.7-33.3-18.7-45.3L512 114.7c-12-12-28.3-18.7-45.3-18.7L416 96l0-48c0-26.5-21.5-48-48-48L48 0zM416 160l50.7 0L544 237.3l0 18.7-128 0 0-96zM112 416a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm368-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"], - "crosshairs": [512, 512, [], "f05b", "M256 0c17.7 0 32 14.3 32 32l0 10.4c93.7 13.9 167.7 88 181.6 181.6l10.4 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-10.4 0c-13.9 93.7-88 167.7-181.6 181.6l0 10.4c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-10.4C130.3 455.7 56.3 381.7 42.4 288L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l10.4 0C56.3 130.3 130.3 56.3 224 42.4L224 32c0-17.7 14.3-32 32-32zM107.4 288c12.5 58.3 58.4 104.1 116.6 116.6l0-20.6c0-17.7 14.3-32 32-32s32 14.3 32 32l0 20.6c58.3-12.5 104.1-58.4 116.6-116.6L384 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l20.6 0C392.1 165.7 346.3 119.9 288 107.4l0 20.6c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-20.6C165.7 119.9 119.9 165.7 107.4 224l20.6 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-20.6 0zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"], - "person-cane": [448, 512, [], "e53c", "M272 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm-8 187.3l47.4 57.1c11.3 13.6 31.5 15.5 45.1 4.2s15.5-31.5 4.2-45.1l-73.7-88.9c-18.2-22-45.3-34.7-73.9-34.7l-35.9 0c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9 120 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-244.7zM352 376c0-4.4 3.6-8 8-8s8 3.6 8 8l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-30.9-25.1-56-56-56s-56 25.1-56 56l0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8z"], - "tent": [576, 512, [], "e57d", "M269.4 6C280.5-2 295.5-2 306.6 6l224 160c7.4 5.3 12.2 13.5 13.2 22.5l32 288c1 9-1.9 18.1-8 24.9s-14.7 10.7-23.8 10.7l-80 0-28.2 0c-12.1 0-23.2-6.8-28.6-17.7L306.7 293.5c-1.7-3.4-5.1-5.5-8.8-5.5c-5.5 0-9.9 4.4-9.9 9.9L288 480c0 17.7-14.3 32-32 32l-16 0L32 512c-9.1 0-17.8-3.9-23.8-10.7s-9-15.8-8-24.9l32-288c1-9 5.8-17.2 13.2-22.5L269.4 6z"], - "vest-patches": [448, 512, [], "e086", "M151.2 69.7l55.9 167.7-11 33.1c-2.7 8.2-4.1 16.7-4.1 25.3L192 464c0 14.5 3.9 28.2 10.7 39.9C195 509 185.9 512 176 512L48 512c-26.5 0-48-21.5-48-48L0 270.5c0-9.5 2.8-18.7 8.1-26.6l47.9-71.8c5.3-7.9 8.1-17.1 8.1-26.6L64 128l0-73.7L64 48C64 21.5 85.5 0 112 0l4.5 0c.2 0 .4 0 .6 0c.4 0 .8 0 1.2 0c18.8 0 34.1 9.7 44.1 18.8C171.6 27.2 190.8 40 224 40s52.4-12.8 61.7-21.2C295.7 9.7 311 0 329.7 0c.4 0 .8 0 1.2 0c.2 0 .4 0 .6 0L336 0c26.5 0 48 21.5 48 48l0 6.3 0 73.7 0 17.5c0 9.5 2.8 18.7 8.1 26.6l47.9 71.8c5.3 7.9 8.1 17.1 8.1 26.6L448 464c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-168.2c0-5.2 .8-10.3 2.5-15.2L296.8 69.7C279.4 79.7 255.4 88 224 88s-55.4-8.3-72.8-18.3zM96 456a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM63.5 255.5c-4.7 4.7-4.7 12.3 0 17L79 288 63.5 303.5c-4.7 4.7-4.7 12.3 0 17s12.3 4.7 17 0L96 305l15.5 15.5c4.7 4.7 12.3 4.7 17 0s4.7-12.3 0-17L113 288l15.5-15.5c4.7-4.7 4.7-12.3 0-17s-12.3-4.7-17 0L96 271 80.5 255.5c-4.7-4.7-12.3-4.7-17 0zM304 280l0 8 0 32c0 8.8 7.2 16 16 16l32 0 8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0-8c0-13.3-10.7-24-24-24s-24 10.7-24 24z"], - "check-double": [448, 512, [], "f560", "M342.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 178.7l-57.4-57.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l80 80c12.5 12.5 32.8 12.5 45.3 0l160-160zm96 128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 402.7 54.6 297.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l256-256z"], - "arrow-down-a-z": [576, 512, ["sort-alpha-asc", "sort-alpha-down"], "f15d", "M183.6 469.6C177.5 476.2 169 480 160 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L128 365.7 128 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 301.7 32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 320c0-17.7 14.3-32 32-32l128 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L429.3 416l50.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L402.7 352 352 352c-17.7 0-32-14.3-32-32zM416 32c12.1 0 23.2 6.8 28.6 17.7l64 128 16 32c7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3L460.2 224l-88.4 0-7.2 14.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l16-32 64-128C392.8 38.8 403.9 32 416 32zM395.8 176l40.4 0L416 135.6 395.8 176z"], - "money-bill-wheat": [512, 512, [], "e52a", "M176 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80c0-8.8 7.2-16 16-16zM56 16l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L56 64C42.7 64 32 53.3 32 40s10.7-24 24-24zM24 88l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 136c-13.3 0-24-10.7-24-24S10.7 88 24 88zm8 96c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24zM272 16c0-8.8 7.2-16 16-16c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80zM400 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80c0-8.8 7.2-16 16-16zm80 144c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM352 128c8.8 0 16 7.2 16 16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-96 16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM0 304c0-26.5 21.5-48 48-48l416 0c26.5 0 48 21.5 48 48l0 160c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 304zM48 416l0 48 48 0c0-26.5-21.5-48-48-48zM96 304l-48 0 0 48c26.5 0 48-21.5 48-48zM464 416c-26.5 0-48 21.5-48 48l48 0 0-48zM416 304c0 26.5 21.5 48 48 48l0-48-48 0zm-96 80a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z"], - "cookie": [512, 512, [127850], "f563", "M247.2 17c-22.1-3.1-44.6 .9-64.4 11.4l-74 39.5C89.1 78.4 73.2 94.9 63.4 115L26.7 190.6c-9.8 20.1-13 42.9-9.1 64.9l14.5 82.8c3.9 22.1 14.6 42.3 30.7 57.9l60.3 58.4c16.1 15.6 36.6 25.6 58.7 28.7l83 11.7c22.1 3.1 44.6-.9 64.4-11.4l74-39.5c19.7-10.5 35.6-27 45.4-47.2l36.7-75.5c9.8-20.1 13-42.9 9.1-64.9l-14.6-82.8c-3.9-22.1-14.6-42.3-30.7-57.9L388.9 57.5c-16.1-15.6-36.6-25.6-58.7-28.7L247.2 17zM208 144a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM144 336a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm224-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"], - "arrow-rotate-left": [512, 512, [8634, "arrow-left-rotate", "arrow-rotate-back", "arrow-rotate-backward", "undo"], "f0e2", "M125.7 160l50.3 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L48 224c-17.7 0-32-14.3-32-32L16 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 51.2L97.6 97.6c87.5-87.5 229.3-87.5 316.8 0s87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3s-163.8-62.5-226.3 0L125.7 160z"], - "hard-drive": [512, 512, [128436, "hdd"], "f0a0", "M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 184.4c-17-15.2-39.4-24.4-64-24.4L64 256c-24.6 0-47 9.2-64 24.4L0 96zM64 288l384 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64zM320 416a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm128-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"], - "face-grin-squint-tears": [512, 512, [129315, "grin-squint-tears"], "f586", "M426.8 14.2C446-5 477.5-4.6 497.1 14.9s20 51 .7 70.3c-6.8 6.8-21.4 12.4-37.4 16.7c-16.3 4.4-34.1 7.5-46.3 9.3c-1.6 .2-3.1 .5-4.6 .6c-4.9 .8-9.1-2.8-9.5-7.4c-.1-.7 0-1.4 .1-2.1c1.6-11.2 4.6-29.6 9-47c.3-1.3 .7-2.6 1-3.9c4.3-15.9 9.8-30.5 16.7-37.4zm-44.7 19c-1.5 4.8-2.9 9.6-4.1 14.3c-4.8 18.9-8 38.5-9.7 50.3c-4 26.8 18.9 49.7 45.7 45.8c11.9-1.6 31.5-4.8 50.4-9.7c4.7-1.2 9.5-2.5 14.3-4.1C534.2 227.5 520.2 353.8 437 437c-83.2 83.2-209.5 97.2-307.2 41.8c1.5-4.8 2.8-9.6 4-14.3c4.8-18.9 8-38.5 9.7-50.3c4-26.8-18.9-49.7-45.7-45.8c-11.9 1.6-31.5 4.8-50.4 9.7c-4.7 1.2-9.5 2.5-14.3 4.1C-22.2 284.5-8.2 158.2 75 75C158.2-8.3 284.5-22.2 382.2 33.2zM51.5 410.1c18.5-5 38.8-8.3 50.9-10c.4-.1 .7-.1 1-.1c5.1-.2 9.2 4.3 8.4 9.6c-1.7 12.1-5 32.4-10 50.9C97.6 476.4 92 491 85.2 497.8C66 517 34.5 516.6 14.9 497.1s-20-51-.7-70.3c6.8-6.8 21.4-12.4 37.4-16.7zM416.9 209c-4.7-11.9-20.8-11-26.8 .3c-19 35.5-45 70.8-77.5 103.3S244.8 371.1 209.3 390c-11.3 6-12.2 22.1-.3 26.8c57.6 22.9 125.8 11 172.3-35.5s58.4-114.8 35.5-172.3zM87.1 285.1c2 2 4.6 3.2 7.3 3.4l56.1 5.1 5.1 56.1c.3 2.8 1.5 5.4 3.4 7.3c6.3 6.3 17.2 3.6 19.8-4.9l29.7-97.4c3.5-11.6-7.3-22.5-19-19L92 265.3c-8.6 2.6-11.3 13.4-4.9 19.8zM265.3 92l-29.7 97.4c-3.5 11.6 7.3 22.5 19 19l97.4-29.7c8.6-2.6 11.3-13.4 4.9-19.8c-2-2-4.6-3.2-7.3-3.4l-56.1-5.1-5.1-56.1c-.3-2.8-1.5-5.4-3.4-7.3c-6.3-6.3-17.2-3.6-19.8 4.9z"], - "dumbbell": [640, 512, [], "f44b", "M96 64c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 160 0 64 0 160c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-64-32 0c-17.7 0-32-14.3-32-32l0-64c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-64c0-17.7 14.3-32 32-32l32 0 0-64zm448 0l0 64 32 0c17.7 0 32 14.3 32 32l0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 64c0 17.7-14.3 32-32 32l-32 0 0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-160 0-64 0-160c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32zM416 224l0 64-192 0 0-64 192 0z"], - "rectangle-list": [576, 512, ["list-alt"], "f022", "M0 96C0 60.7 28.7 32 64 32l448 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM128 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm32-128a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm96-248c-13.3 0-24 10.7-24 24s10.7 24 24 24l224 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-224 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l224 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-224 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l224 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-224 0z"], - "tarp-droplet": [576, 512, [], "e57c", "M288 160c-35.3 0-64-26.9-64-60c0-24 33.7-70.1 52.2-93.5c6.1-7.7 17.5-7.7 23.6 0C318.3 29.9 352 76 352 100c0 33.1-28.7 60-64 60zM64 128l133.5 0c13.2 37.3 48.7 64 90.5 64s77.4-26.7 90.5-64L512 128c35.3 0 64 28.7 64 64l0 160-128 0c-17.7 0-32 14.3-32 32l0 128L64 512c-35.3 0-64-28.7-64-64L0 192c0-35.3 28.7-64 64-64zM448 512l0-128 128 0L448 512zM96 256a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"], - "house-medical-circle-check": [640, 512, [], "e511", "M320 368c0 59.5 29.5 112.1 74.8 144l-266.7 0c-35.3 0-64-28.7-64-64l0-160.4-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L522.1 193.9c-8.5-1.3-17.3-1.9-26.1-1.9c-54.7 0-103.5 24.9-135.8 64L320 256l0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zm32 0a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L480 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z"], - "person-skiing-nordic": [576, 512, ["skiing-nordic"], "f7ca", "M336 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM227.2 160c1.9 0 3.8 .1 5.6 .3L201.6 254c-9.3 28 1.7 58.8 26.8 74.5l86.2 53.9L291.3 464l-88.5 0 41.1-88.1-32.4-20.3c-7.8-4.9-14.7-10.7-20.6-17.3L132.2 464l-32.4 0 54.2-257.6c4.6-1.5 9-4.1 12.7-7.8l23.1-23.1c9.9-9.9 23.4-15.5 37.5-15.5zM121.4 198.6c.4 .4 .8 .8 1.3 1.2L67 464l-43 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l135.3 0c.5 0 .9 0 1.4 0l158.6 0c.5 0 1 0 1.4 0L504 512c39.8 0 72-32.2 72-72l0-8c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 8c0 13.3-10.7 24-24 24l-69.4 0 27.6-179.3c10.5-5.2 17.8-16.1 17.8-28.7c0-17.7-14.3-32-32-32l-21.3 0c-12.9 0-24.6-7.8-29.5-19.7l-6.3-15c-14.6-35.1-44.1-61.9-80.5-73.1l-48.7-15c-11.1-3.4-22.7-5.2-34.4-5.2c-31 0-60.8 12.3-82.7 34.3l-23.1 23.1c-12.5 12.5-12.5 32.8 0 45.3zm308 89.4L402.3 464l-44.4 0 21.6-75.6c5.9-20.6-2.6-42.6-20.7-53.9L302 299l30.9-82.4 5.1 12.3C353 264.7 387.9 288 426.7 288l2.7 0z"], - "calendar-plus": [448, 512, [], "f271", "M96 32l0 32L48 64C21.5 64 0 85.5 0 112l0 48 448 0 0-48c0-26.5-21.5-48-48-48l-48 0 0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32L160 64l0-32c0-17.7-14.3-32-32-32S96 14.3 96 32zM448 192L0 192 0 464c0 26.5 21.5 48 48 48l352 0c26.5 0 48-21.5 48-48l0-272zM224 248c13.3 0 24 10.7 24 24l0 56 56 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-56 0 0 56c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-56-56 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l56 0 0-56c0-13.3 10.7-24 24-24z"], - "plane-arrival": [640, 512, [128748], "f5af", "M.3 166.9L0 68C0 57.7 9.5 50.1 19.5 52.3l35.6 7.9c10.6 2.3 19.2 9.9 23 20L96 128l127.3 37.6L181.8 20.4C178.9 10.2 186.6 0 197.2 0l40.1 0c11.6 0 22.2 6.2 27.9 16.3l109 193.8 107.2 31.7c15.9 4.7 30.8 12.5 43.7 22.8l34.4 27.6c24 19.2 18.1 57.3-10.7 68.2c-41.2 15.6-86.2 18.1-128.8 7L121.7 289.8c-11.1-2.9-21.2-8.7-29.3-16.9L9.5 189.4c-5.9-6-9.3-14.1-9.3-22.5zM32 448l576 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32zm96-80a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm128-16a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"], - "circle-left": [512, 512, [61840, "arrow-alt-circle-left"], "f359", "M512 256A256 256 0 1 0 0 256a256 256 0 1 0 512 0zM116.7 244.7l112-112c4.6-4.6 11.5-5.9 17.4-3.5s9.9 8.3 9.9 14.8l0 64 96 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32l-96 0 0 64c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5l-112-112c-6.2-6.2-6.2-16.4 0-22.6z"], - "train-subway": [448, 512, ["subway"], "f239", "M96 0C43 0 0 43 0 96L0 352c0 48 35.2 87.7 81.1 94.9l-46 46C28.1 499.9 33.1 512 43 512l39.7 0c8.5 0 16.6-3.4 22.6-9.4L160 448l128 0 54.6 54.6c6 6 14.1 9.4 22.6 9.4l39.7 0c10 0 15-12.1 7.9-19.1l-46-46c46-7.1 81.1-46.9 81.1-94.9l0-256c0-53-43-96-96-96L96 0zM64 128c0-17.7 14.3-32 32-32l80 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-80 0c-17.7 0-32-14.3-32-32l0-96zM272 96l80 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-80 0c-17.7 0-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32zM64 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm288-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"], - "chart-gantt": [512, 512, [], "e0e4", "M32 32c17.7 0 32 14.3 32 32l0 336c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 480c-44.2 0-80-35.8-80-80L0 64C0 46.3 14.3 32 32 32zm96 96c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32zm96 64l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm160 96l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z"], - "indian-rupee-sign": [320, 512, ["indian-rupee", "inr"], "e1bc", "M0 64C0 46.3 14.3 32 32 32l64 0 16 0 176 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-56.2 0c9.6 14.4 16.7 30.6 20.7 48l35.6 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-35.6 0c-13.2 58.3-61.9 103.2-122.2 110.9L274.6 422c14.4 10.3 17.7 30.3 7.4 44.6s-30.3 17.7-44.6 7.4L13.4 314C2.1 306-2.7 291.5 1.5 278.2S18.1 256 32 256l80 0c32.8 0 61-19.7 73.3-48L32 208c-17.7 0-32-14.3-32-32s14.3-32 32-32l153.3 0C173 115.7 144.8 96 112 96L96 96 32 96C14.3 96 0 81.7 0 64z"], - "crop-simple": [512, 512, ["crop-alt"], "f565", "M128 32c0-17.7-14.3-32-32-32S64 14.3 64 32l0 32L32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l32 0 0 256c0 35.3 28.7 64 64 64l224 0 0-64-224 0 0-352zM384 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-256c0-35.3-28.7-64-64-64L160 64l0 64 224 0 0 352z"], - "money-bill-1": [576, 512, ["money-bill-alt"], "f3d1", "M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm64 320l-64 0 0-64c35.3 0 64 28.7 64 64zM64 192l0-64 64 0c0 35.3-28.7 64-64 64zM448 384c0-35.3 28.7-64 64-64l0 64-64 0zm64-192c-35.3 0-64-28.7-64-64l64 0 0 64zM176 256a112 112 0 1 1 224 0 112 112 0 1 1 -224 0zm76-48c0 9.7 6.9 17.7 16 19.6l0 48.4-4 0c-11 0-20 9-20 20s9 20 20 20l24 0 24 0c11 0 20-9 20-20s-9-20-20-20l-4 0 0-68c0-11-9-20-20-20l-16 0c-11 0-20 9-20 20z"], - "left-long": [512, 512, ["long-arrow-alt-left"], "f30a", "M177.5 414c-8.8 3.8-19 2-26-4.6l-144-136C2.7 268.9 0 262.6 0 256s2.7-12.9 7.5-17.4l144-136c7-6.6 17.2-8.4 26-4.6s14.5 12.5 14.5 22l0 72 288 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-288 0 0 72c0 9.6-5.7 18.2-14.5 22z"], - "dna": [448, 512, [129516], "f471", "M416 0c17.7 0 32 14.3 32 32c0 59.8-30.3 107.5-69.4 146.6c-28 28-62.5 53.5-97.3 77.4l-2.5 1.7c-11.9 8.1-23.8 16.1-35.5 23.9c0 0 0 0 0 0s0 0 0 0s0 0 0 0l-1.6 1c-6 4-11.9 7.9-17.8 11.9c-20.9 14-40.8 27.7-59.3 41.5l118.5 0c-9.8-7.4-20.1-14.7-30.7-22.1l7-4.7 3-2c15.1-10.1 30.9-20.6 46.7-31.6c25 18.1 48.9 37.3 69.4 57.7C417.7 372.5 448 420.2 448 480c0 17.7-14.3 32-32 32s-32-14.3-32-32L64 480c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-59.8 30.3-107.5 69.4-146.6c28-28 62.5-53.5 97.3-77.4c-34.8-23.9-69.3-49.3-97.3-77.4C30.3 139.5 0 91.8 0 32C0 14.3 14.3 0 32 0S64 14.3 64 32l320 0c0-17.7 14.3-32 32-32zM338.6 384l-229.2 0c-10.1 10.6-18.6 21.3-25.5 32l280.2 0c-6.8-10.7-15.3-21.4-25.5-32zM109.4 128l229.2 0c10.1-10.7 18.6-21.3 25.5-32L83.9 96c6.8 10.7 15.3 21.3 25.5 32zm55.4 48c18.4 13.8 38.4 27.5 59.3 41.5c20.9-14 40.8-27.7 59.3-41.5l-118.5 0z"], - "virus-slash": [640, 512, [], "e075", "M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-154.3-121c-2-30.1 20.8-60.1 56-60.1l11.5 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-11.5 0c-49.9 0-74.9-60.3-39.6-95.6l8.2-8.2c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-8.2 8.2C412.3 118.4 352 93.4 352 43.5L352 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 11.5c0 49.9-60.3 74.9-95.6 39.6L184.2 75c-12.5-12.5-32.8-12.5-45.3 0c-1.6 1.6-3.1 3.4-4.3 5.3L38.8 5.1zm225.8 177c6.9-3.9 14.9-6.1 23.4-6.1c26.5 0 48 21.5 48 48c0 4.4-.6 8.7-1.7 12.7l-69.7-54.6zM402 412.7L144.7 210c-9.5 8.5-22.2 14-37.2 14L96 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l11.5 0c49.9 0 74.9 60.3 39.6 95.6l-8.2 8.2c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l8.2-8.2c35.3-35.3 95.6-10.3 95.6 39.6l0 11.5c0 17.7 14.3 32 32 32s32-14.3 32-32l0-11.5c0-31.2 23.6-52.7 50-55.7z"], - "minus": [448, 512, [8211, 8722, 10134, "subtract"], "f068", "M432 256c0 17.7-14.3 32-32 32L48 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l352 0c17.7 0 32 14.3 32 32z"], - "chess": [512, 512, [], "f439", "M144 16c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 16L96 32c-8.8 0-16 7.2-16 16s7.2 16 16 16l16 0 0 32L60.2 96C49.1 96 40 105.1 40 116.2c0 2.5 .5 4.9 1.3 7.3L73.8 208 72 208c-13.3 0-24 10.7-24 24s10.7 24 24 24l4 0L60 384l136 0L180 256l4 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-1.8 0 32.5-84.5c.9-2.3 1.3-4.8 1.3-7.3c0-11.2-9.1-20.2-20.2-20.2L144 96l0-32 16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0 0-16zM48 416L4.8 473.6C1.7 477.8 0 482.8 0 488c0 13.3 10.7 24 24 24l208 0c13.3 0 24-10.7 24-24c0-5.2-1.7-10.2-4.8-14.4L208 416 48 416zm288 0l-43.2 57.6c-3.1 4.2-4.8 9.2-4.8 14.4c0 13.3 10.7 24 24 24l176 0c13.3 0 24-10.7 24-24c0-5.2-1.7-10.2-4.8-14.4L464 416l-128 0zM304 208l0 51.9c0 7.8 2.8 15.3 8 21.1L339.2 312 337 384l125.5 0-3.3-72 28.3-30.8c5.4-5.9 8.5-13.6 8.5-21.7l0-51.5c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16l0 16-24 0 0-16c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16l0 16-24 0 0-16c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16zm80 96c0-8.8 7.2-16 16-16s16 7.2 16 16l0 32-32 0 0-32z"], - "arrow-left-long": [512, 512, ["long-arrow-left"], "f177", "M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288 480 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-370.7 0 73.4-73.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-128 128z"], - "plug-circle-check": [576, 512, [], "e55c", "M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32L32 160zM576 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L416 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z"], - "street-view": [512, 512, [], "f21d", "M320 64A64 64 0 1 0 192 64a64 64 0 1 0 128 0zm-96 96c-35.3 0-64 28.7-64 64l0 48c0 17.7 14.3 32 32 32l1.8 0 11.1 99.5c1.8 16.2 15.5 28.5 31.8 28.5l38.7 0c16.3 0 30-12.3 31.8-28.5L318.2 304l1.8 0c17.7 0 32-14.3 32-32l0-48c0-35.3-28.7-64-64-64l-64 0zM132.3 394.2c13-2.4 21.7-14.9 19.3-27.9s-14.9-21.7-27.9-19.3c-32.4 5.9-60.9 14.2-82 24.8c-10.5 5.3-20.3 11.7-27.8 19.6C6.4 399.5 0 410.5 0 424c0 21.4 15.5 36.1 29.1 45c14.7 9.6 34.3 17.3 56.4 23.4C130.2 504.7 190.4 512 256 512s125.8-7.3 170.4-19.6c22.1-6.1 41.8-13.8 56.4-23.4c13.7-8.9 29.1-23.6 29.1-45c0-13.5-6.4-24.5-14-32.6c-7.5-7.9-17.3-14.3-27.8-19.6c-21-10.6-49.5-18.9-82-24.8c-13-2.4-25.5 6.3-27.9 19.3s6.3 25.5 19.3 27.9c30.2 5.5 53.7 12.8 69 20.5c3.2 1.6 5.8 3.1 7.9 4.5c3.6 2.4 3.6 7.2 0 9.6c-8.8 5.7-23.1 11.8-43 17.3C374.3 457 318.5 464 256 464s-118.3-7-157.7-17.9c-19.9-5.5-34.2-11.6-43-17.3c-3.6-2.4-3.6-7.2 0-9.6c2.1-1.4 4.8-2.9 7.9-4.5c15.3-7.7 38.8-14.9 69-20.5z"], - "franc-sign": [320, 512, [], "e18f", "M80 32C62.3 32 48 46.3 48 64l0 160 0 96-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 80 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-80 0 0-64 144 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-144 0 0-96 176 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 32z"], - "volume-off": [320, 512, [], "f026", "M320 64c0-12.6-7.4-24-18.9-29.2s-25-3.1-34.4 5.3L131.8 160 64 160c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l67.8 0L266.7 471.9c9.4 8.4 22.9 10.4 34.4 5.3S320 460.6 320 448l0-384z"], - "hands-asl-interpreting": [640, 512, ["american-sign-language-interpreting", "asl-interpreting", "hands-american-sign-language-interpreting"], "f2a3", "M156.6 46.3c7.9-15.8 1.5-35-14.3-42.9s-35-1.5-42.9 14.3L13.5 189.4C4.6 207.2 0 226.8 0 246.7L0 256c0 70.7 57.3 128 128 128l72 0 8 0 0-.3c35.2-2.7 65.4-22.8 82.1-51.7c8.8-15.3 3.6-34.9-11.7-43.7s-34.9-3.6-43.7 11.7c-7 12-19.9 20-34.7 20c-22.1 0-40-17.9-40-40s17.9-40 40-40c14.8 0 27.7 8 34.7 20c8.8 15.3 28.4 20.5 43.7 11.7s20.5-28.4 11.7-43.7c-12.8-22.1-33.6-39.1-58.4-47.1l80.8-22c17-4.6 27.1-22.2 22.5-39.3s-22.2-27.1-39.3-22.5L194.9 124.6l81.6-68c13.6-11.3 15.4-31.5 4.1-45.1S249.1-3.9 235.5 7.4L133.6 92.3l23-46zM483.4 465.7c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l85.9-171.7c8.9-17.8 13.5-37.4 13.5-57.2l0-9.3c0-70.7-57.3-128-128-128l-72 0-8 0 0 .3c-35.2 2.7-65.4 22.8-82.1 51.7c-8.9 15.3-3.6 34.9 11.7 43.7s34.9 3.6 43.7-11.7c7-12 19.9-20 34.7-20c22.1 0 40 17.9 40 40s-17.9 40-40 40c-14.8 0-27.7-8-34.7-20c-8.9-15.3-28.4-20.5-43.7-11.7s-20.5 28.4-11.7 43.7c12.8 22.1 33.6 39.1 58.4 47.1l-80.8 22c-17.1 4.7-27.1 22.2-22.5 39.3s22.2 27.1 39.3 22.5l100.7-27.5-81.6 68c-13.6 11.3-15.4 31.5-4.1 45.1s31.5 15.4 45.1 4.1l101.9-84.9-23 46z"], - "gear": [512, 512, [9881, "cog"], "f013", "M495.9 166.6c3.2 8.7 .5 18.4-6.4 24.6l-43.3 39.4c1.1 8.3 1.7 16.8 1.7 25.4s-.6 17.1-1.7 25.4l43.3 39.4c6.9 6.2 9.6 15.9 6.4 24.6c-4.4 11.9-9.7 23.3-15.8 34.3l-4.7 8.1c-6.6 11-14 21.4-22.1 31.2c-5.9 7.2-15.7 9.6-24.5 6.8l-55.7-17.7c-13.4 10.3-28.2 18.9-44 25.4l-12.5 57.1c-2 9.1-9 16.3-18.2 17.8c-13.8 2.3-28 3.5-42.5 3.5s-28.7-1.2-42.5-3.5c-9.2-1.5-16.2-8.7-18.2-17.8l-12.5-57.1c-15.8-6.5-30.6-15.1-44-25.4L83.1 425.9c-8.8 2.8-18.6 .3-24.5-6.8c-8.1-9.8-15.5-20.2-22.1-31.2l-4.7-8.1c-6.1-11-11.4-22.4-15.8-34.3c-3.2-8.7-.5-18.4 6.4-24.6l43.3-39.4C64.6 273.1 64 264.6 64 256s.6-17.1 1.7-25.4L22.4 191.2c-6.9-6.2-9.6-15.9-6.4-24.6c4.4-11.9 9.7-23.3 15.8-34.3l4.7-8.1c6.6-11 14-21.4 22.1-31.2c5.9-7.2 15.7-9.6 24.5-6.8l55.7 17.7c13.4-10.3 28.2-18.9 44-25.4l12.5-57.1c2-9.1 9-16.3 18.2-17.8C227.3 1.2 241.5 0 256 0s28.7 1.2 42.5 3.5c9.2 1.5 16.2 8.7 18.2 17.8l12.5 57.1c15.8 6.5 30.6 15.1 44 25.4l55.7-17.7c8.8-2.8 18.6-.3 24.5 6.8c8.1 9.8 15.5 20.2 22.1 31.2l4.7 8.1c6.1 11 11.4 22.4 15.8 34.3zM256 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160z"], - "droplet-slash": [640, 512, ["tint-slash"], "f5c7", "M320 512c53.2 0 101.4-21.6 136.1-56.6l-298.3-235C140 257.1 128 292.3 128 320c0 106 86 192 192 192zM505.2 370.7c4.4-16.2 6.8-33.1 6.8-50.7c0-91.2-130.2-262.3-166.6-308.3C339.4 4.2 330.5 0 320.9 0l-1.8 0c-9.6 0-18.5 4.2-24.5 11.7C277.8 33 240.7 81.3 205.8 136L38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L505.2 370.7zM224 336c0 44.2 35.8 80 80 80c8.8 0 16 7.2 16 16s-7.2 16-16 16c-61.9 0-112-50.1-112-112c0-8.8 7.2-16 16-16s16 7.2 16 16z"], - "mosque": [640, 512, [128332], "f678", "M400 0c5 0 9.8 2.4 12.8 6.4c34.7 46.3 78.1 74.9 133.5 111.5c0 0 0 0 0 0s0 0 0 0c5.2 3.4 10.5 7 16 10.6c28.9 19.2 45.7 51.7 45.7 86.1c0 28.6-11.3 54.5-29.8 73.4l-356.4 0c-18.4-19-29.8-44.9-29.8-73.4c0-34.4 16.7-66.9 45.7-86.1c5.4-3.6 10.8-7.1 16-10.6c0 0 0 0 0 0s0 0 0 0C309.1 81.3 352.5 52.7 387.2 6.4c3-4 7.8-6.4 12.8-6.4zM288 512l0-72c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 72-48 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l416 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-48 0 0-72c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 72-64 0 0-58c0-19-8.4-37-23-49.2L400 384l-25 20.8C360.4 417 352 435 352 454l0 58-64 0zM70.4 5.2c5.7-4.3 13.5-4.3 19.2 0l16 12C139.8 42.9 160 83.2 160 126l0 2L0 128l0-2C0 83.2 20.2 42.9 54.4 17.2l16-12zM0 160l160 0 0 136.6c-19.1 11.1-32 31.7-32 55.4l0 128c0 9.6 2.1 18.6 5.8 26.8c-6.6 3.4-14 5.2-21.8 5.2l-64 0c-26.5 0-48-21.5-48-48L0 176l0-16z"], - "mosquito": [640, 512, [], "e52b", "M463.7 505.9c9.8-8.9 10.7-24.3 2.1-34.3l-42.1-49 0-54.7c0-5.5-1.8-10.8-5.1-15.1L352 266.3l0-.3L485.4 387.8C542.4 447.6 640 405.2 640 320.6c0-47.9-34-88.3-79.4-94.2l-153-23.9 40.8-40.9c7.8-7.8 9.4-20.1 3.9-29.8L428.5 90.1l38.2-50.9c8-10.6 6.1-25.9-4.3-34.1s-25.2-6.3-33.2 4.4l-48 63.9c-5.9 7.9-6.6 18.6-1.7 27.2L402.2 140 352 190.3l0-38.2c0-14.9-10.2-27.4-24-31l0-57.2c0-4.4-3.6-8-8-8s-8 3.6-8 8l0 57.2c-13.8 3.6-24 16.1-24 31l0 38.1L237.8 140l22.6-39.5c4.9-8.6 4.2-19.3-1.7-27.2l-48-63.9c-8-10.6-22.8-12.6-33.2-4.4s-12.2 23.5-4.3 34.1l38.2 50.9-23.9 41.7c-5.5 9.7-3.9 22 3.9 29.8l40.8 40.9-153 23.9C34 232.3 0 272.7 0 320.6c0 84.6 97.6 127 154.6 67.1L288 266l0 .3-66.5 86.4c-3.3 4.3-5.1 9.6-5.1 15.1l0 54.7-42.1 49c-8.6 10.1-7.7 25.5 2.1 34.3s24.7 7.9 33.4-2.1l48-55.9c3.8-4.4 5.9-10.2 5.9-16.1l0-55.4L288 344.7l0 63.1c0 17.7 14.3 32 32 32s32-14.3 32-32l0-63.1 24.3 31.6 0 55.4c0 5.9 2.1 11.7 5.9 16.1l48 55.9c8.6 10.1 23.6 11 33.4 2.1z"], - "star-of-david": [512, 512, [10017], "f69a", "M404.2 309.5L383.1 344l42.3 0-21.1-34.5zM371.4 256l-54-88-122.8 0-54 88 54 88 122.8 0 54-88zm65.7 0l53.4 87c3.6 5.9 5.5 12.7 5.5 19.6c0 20.7-16.8 37.4-37.4 37.4l-109.8 0-56.2 91.5C284.8 504.3 270.9 512 256 512s-28.8-7.7-36.6-20.5L163.3 400 53.4 400C32.8 400 16 383.2 16 362.6c0-6.9 1.9-13.7 5.5-19.6l53.4-87L21.5 169c-3.6-5.9-5.5-12.7-5.5-19.6C16 128.8 32.8 112 53.4 112l109.8 0 56.2-91.5C227.2 7.7 241.1 0 256 0s28.8 7.7 36.6 20.5L348.7 112l109.8 0c20.7 0 37.4 16.8 37.4 37.4c0 6.9-1.9 13.7-5.5 19.6l-53.4 87zm-54-88l21.1 34.5L425.4 168l-42.3 0zM283 112L256 68l-27 44 54 0zM128.9 168l-42.3 0 21.1 34.5L128.9 168zM107.8 309.5L86.6 344l42.3 0-21.1-34.5zM229 400l27 44 27-44-54 0z"], - "person-military-rifle": [512, 512, [], "e54b", "M160 39c0-13 10-23.8 22.9-24.9L334.7 1.4C344 .7 352 8 352 17.4L352 48c0 8.8-7.2 16-16 16L185 64c-13.8 0-25-11.2-25-25zm17.6 57l156.8 0c1 5.2 1.6 10.5 1.6 16c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-5.5 .6-10.8 1.6-16zm228 364.3L352 369.7 352 480c0 1.3-.1 2.5-.2 3.8L177.5 234.9c16.6-7.1 34.6-10.9 53.3-10.9l50.4 0c15.9 0 31.3 2.8 45.8 7.9L421.9 67.7c-7.7-4.4-10.3-14.2-5.9-21.9s14.2-10.3 21.9-5.9l13.9 8 13.9 8c7.7 4.4 10.3 14.2 5.9 21.9L416 173.9l1.6 .9c15.3 8.8 20.6 28.4 11.7 43.7L392.6 282c2 2.8 3.9 5.8 5.7 8.8l76.1 128.8c11.2 19 4.9 43.5-14.1 54.8s-43.5 4.9-54.8-14.1zM320 512l-128 0c-17.7 0-32-14.3-32-32l0-110.3-53.6 90.6c-11.2 19-35.8 25.3-54.8 14.1s-25.3-35.8-14.1-54.8l76.1-128.8c9.4-15.8 21.7-29.3 36-40L331.1 510c-3.5 1.3-7.2 2-11.1 2zM296 320a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"], - "cart-shopping": [576, 512, [128722, "shopping-cart"], "f07a", "M0 24C0 10.7 10.7 0 24 0L69.5 0c22 0 41.5 12.8 50.6 32l411 0c26.3 0 45.5 25 38.6 50.4l-41 152.3c-8.5 31.4-37 53.3-69.5 53.3l-288.5 0 5.4 28.5c2.2 11.3 12.1 19.5 23.6 19.5L488 336c13.3 0 24 10.7 24 24s-10.7 24-24 24l-288.3 0c-34.6 0-64.3-24.6-70.7-58.5L77.4 54.5c-.7-3.8-4-6.5-7.9-6.5L24 48C10.7 48 0 37.3 0 24zM128 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm336-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"], - "vials": [512, 512, [], "f493", "M0 64C0 46.3 14.3 32 32 32l56 0 48 0 56 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 304c0 44.2-35.8 80-80 80s-80-35.8-80-80L32 96C14.3 96 0 81.7 0 64zM136 96L88 96l0 160 48 0 0-160zM288 64c0-17.7 14.3-32 32-32l56 0 48 0 56 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 304c0 44.2-35.8 80-80 80s-80-35.8-80-80l0-304c-17.7 0-32-14.3-32-32zM424 96l-48 0 0 160 48 0 0-160z"], - "plug-circle-plus": [576, 512, [], "e55f", "M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32L32 160zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm16-208l0 48 48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l48 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16z"], - "place-of-worship": [640, 512, [], "f67f", "M224 109.3l0 108.3L183.3 242c-14.5 8.7-23.3 24.3-23.3 41.2L160 512l96 0 0-96c0-35.3 28.7-64 64-64s64 28.7 64 64l0 96 96 0 0-228.8c0-16.9-8.8-32.5-23.3-41.2L416 217.6l0-108.3c0-8.5-3.4-16.6-9.4-22.6L331.3 11.3c-6.2-6.2-16.4-6.2-22.6 0L233.4 86.6c-6 6-9.4 14.1-9.4 22.6zM24.9 330.3C9.5 338.8 0 354.9 0 372.4L0 464c0 26.5 21.5 48 48 48l80 0 0-238.4L24.9 330.3zM592 512c26.5 0 48-21.5 48-48l0-91.6c0-17.5-9.5-33.6-24.9-42.1L512 273.6 512 512l80 0z"], - "grip-vertical": [320, 512, [], "f58e", "M40 352l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zm192 0l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zM40 320c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0zM232 192l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zM40 160c-22.1 0-40-17.9-40-40L0 72C0 49.9 17.9 32 40 32l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0zM232 32l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40z"], - "hexagon-nodes": [448, 512, [], "e699", "M248 106.6c18.9-9 32-28.3 32-50.6c0-30.9-25.1-56-56-56s-56 25.1-56 56c0 22.3 13.1 41.6 32 50.6l0 98.8c-2.8 1.3-5.5 2.9-8 4.7l-80.1-45.8c1.6-20.8-8.6-41.6-27.9-52.8C57.2 96 23 105.2 7.5 132S1.2 193 28 208.5c1.3 .8 2.6 1.5 4 2.1l0 90.8c-1.3 .6-2.7 1.3-4 2.1C1.2 319-8 353.2 7.5 380S57.2 416 84 400.5c19.3-11.1 29.4-32 27.8-52.8l50.5-28.9c-11.5-11.2-19.9-25.6-23.8-41.7L88 306.1c-2.6-1.8-5.2-3.3-8-4.7l0-90.8c2.8-1.3 5.5-2.9 8-4.7l80.1 45.8c-.1 1.4-.2 2.8-.2 4.3c0 22.3 13.1 41.6 32 50.6l0 98.8c-18.9 9-32 28.3-32 50.6c0 30.9 25.1 56 56 56s56-25.1 56-56c0-22.3-13.1-41.6-32-50.6l0-98.8c2.8-1.3 5.5-2.9 8-4.7l80.1 45.8c-1.6 20.8 8.6 41.6 27.8 52.8c26.8 15.5 61 6.3 76.5-20.5s6.3-61-20.5-76.5c-1.3-.8-2.7-1.5-4-2.1l0-90.8c1.4-.6 2.7-1.3 4-2.1c26.8-15.5 36-49.7 20.5-76.5S390.8 96 364 111.5c-19.3 11.1-29.4 32-27.8 52.8l-50.6 28.9c11.5 11.2 19.9 25.6 23.8 41.7L360 205.9c2.6 1.8 5.2 3.3 8 4.7l0 90.8c-2.8 1.3-5.5 2.9-8 4.6l-80.1-45.8c.1-1.4 .2-2.8 .2-4.3c0-22.3-13.1-41.6-32-50.6l0-98.8z"], - "arrow-turn-up": [384, 512, ["level-up"], "f148", "M32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c53 0 96-43 96-96l0-306.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 109.3 160 416c0 17.7-14.3 32-32 32l-96 0z"], - "u": [384, 512, [117], "55", "M32 32c17.7 0 32 14.3 32 32l0 224c0 70.7 57.3 128 128 128s128-57.3 128-128l0-224c0-17.7 14.3-32 32-32s32 14.3 32 32l0 224c0 106-86 192-192 192S0 394 0 288L0 64C0 46.3 14.3 32 32 32z"], - "square-root-variable": [576, 512, ["square-root-alt"], "f698", "M282.6 78.1c8-27.3 33-46.1 61.4-46.1l200 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L344 96 238.7 457c-3.6 12.3-14.1 21.2-26.8 22.8s-25.1-4.6-31.5-15.6L77.6 288 32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l45.6 0c22.8 0 43.8 12.1 55.3 31.8l65.2 111.8L282.6 78.1zM393.4 233.4c12.5-12.5 32.8-12.5 45.3 0L480 274.7l41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L525.3 320l41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L480 365.3l-41.4 41.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L434.7 320l-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3z"], - "clock": [512, 512, [128339, "clock-four"], "f017", "M256 0a256 256 0 1 1 0 512A256 256 0 1 1 256 0zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"], - "backward-step": [320, 512, ["step-backward"], "f048", "M267.5 440.6c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29l0-320c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4l-192 160L64 241 64 96c0-17.7-14.3-32-32-32S0 78.3 0 96L0 416c0 17.7 14.3 32 32 32s32-14.3 32-32l0-145 11.5 9.6 192 160z"], - "pallet": [640, 512, [], "f482", "M32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 64-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 224 0 224 0 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-64 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0-224 0L96 320l-64 0zm96 64l160 0 0 64-160 0 0-64zm224 0l160 0 0 64-160 0 0-64z"], - "faucet": [512, 512, [], "e005", "M192 96l0 12L96 96c-17.7 0-32 14.3-32 32s14.3 32 32 32l96-12 31-3.9 1-.1 1 .1 31 3.9 96 12c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 12 0-12c0-17.7-14.3-32-32-32s-32 14.3-32 32zM32 256c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l100.1 0c20.2 29 53.9 48 91.9 48s71.7-19 91.9-48l36.1 0c17.7 0 32 14.3 32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32c0-88.4-71.6-160-160-160l-32 0-22.6-22.6c-6-6-14.1-9.4-22.6-9.4L256 224l0-43.8-32-4-32 4 0 43.8-18.7 0c-8.5 0-16.6 3.4-22.6 9.4L128 256l-96 0z"], - "baseball-bat-ball": [512, 512, [], "f432", "M424 0c-12.4 0-24.2 4.9-33 13.7L233.5 171.2c-10.5 10.5-19.8 22.1-27.7 34.6L132.7 321.6c-7.3 11.5-15.8 22.2-25.5 31.9L69.9 390.7l51.3 51.3 37.3-37.3c9.6-9.6 20.3-18.2 31.9-25.5l115.8-73.1c12.5-7.9 24.1-17.2 34.6-27.7L498.3 121c8.7-8.7 13.7-20.6 13.7-33s-4.9-24.2-13.7-33L457 13.7C448.2 4.9 436.4 0 424 0zm88 432a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM15 399c-9.4 9.4-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L49 399c-9.4-9.4-24.6-9.4-33.9 0z"], - "s": [320, 512, [115], "53", "M99.1 105.4C79 114 68.2 127.2 65.2 144.8c-2.4 14.1-.7 23.2 2 29.4c2.8 6.3 7.9 12.4 16.7 18.6c19.2 13.4 48.3 22.1 84.9 32.5c1 .3 1.9 .6 2.9 .8c32.7 9.3 72 20.6 100.9 40.7c15.7 10.9 29.9 25.5 38.6 45.1c8.8 19.8 10.8 42 6.6 66.3c-7.3 42.5-35.3 71.7-71.8 87.3c-35.4 15.2-79.1 17.9-123.7 10.9l-.2 0s0 0 0 0c-24-3.9-62.7-17.1-87.6-25.6c-4.8-1.7-9.2-3.1-12.8-4.3C5.1 440.8-3.9 422.7 1.6 405.9s23.7-25.8 40.5-20.3c4.9 1.6 10.2 3.4 15.9 5.4c25.4 8.6 56.4 19.2 74.4 22.1c36.8 5.7 67.5 2.5 88.5-6.5c20.1-8.6 30.8-21.8 33.9-39.4c2.4-14.1 .7-23.2-2-29.4c-2.8-6.3-7.9-12.4-16.7-18.6c-19.2-13.4-48.3-22.1-84.9-32.5c-1-.3-1.9-.6-2.9-.8c-32.7-9.3-72-20.6-100.9-40.7c-15.7-10.9-29.9-25.5-38.6-45.1c-8.8-19.8-10.8-42-6.6-66.3l31.5 5.5L2.1 133.9C9.4 91.4 37.4 62.2 73.9 46.6c35.4-15.2 79.1-17.9 123.7-10.9c13 2 52.4 9.6 66.6 13.4c17.1 4.5 27.2 22.1 22.7 39.2s-22.1 27.2-39.2 22.7c-11.2-3-48.1-10.2-60.1-12l4.9-31.5-4.9 31.5c-36.9-5.8-67.5-2.5-88.6 6.5z"], - "timeline": [640, 512, [], "e29c", "M128 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm32 97.3c28.3-12.3 48-40.5 48-73.3c0-44.2-35.8-80-80-80S48 51.8 48 96c0 32.8 19.7 61 48 73.3L96 224l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0 0 54.7c-28.3 12.3-48 40.5-48 73.3c0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3l0-54.7 256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-54.7c28.3-12.3 48-40.5 48-73.3c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 32.8 19.7 61 48 73.3l0 54.7-320 0 0-54.7zM488 96a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM320 392a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"], - "keyboard": [576, 512, [9000], "f11c", "M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm16 64l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80-176c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM160 336c0-8.8 7.2-16 16-16l224 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16l0-32zM272 128l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM256 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM368 128l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM352 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM464 128l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM448 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16z"], - "caret-down": [320, 512, [], "f0d7", "M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z"], - "house-chimney-medical": [576, 512, ["clinic-medical"], "f7f2", "M575.8 255.5c0 18-15 32.1-32 32.1l-32 0 .7 160.2c.2 35.5-28.5 64.3-64 64.3l-320.4 0c-35.3 0-64-28.7-64-64l0-160.4-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L416 100.7 416 64c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 121 52.8 46.4c8 7 12 15 11 24zM272 192c-8.8 0-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-48 0 0-48c0-8.8-7.2-16-16-16l-32 0z"], - "temperature-three-quarters": [320, 512, ["temperature-3", "thermometer-3", "thermometer-three-quarters"], "f2c8", "M160 64c-26.5 0-48 21.5-48 48l0 164.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5L208 112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112l0 164.4c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6L48 112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3L144 144c0-8.8 7.2-16 16-16s16 7.2 16 16l0 178.7c18.6 6.6 32 24.4 32 45.3z"], - "mobile-screen": [384, 512, ["mobile-android-alt"], "f3cf", "M16 64C16 28.7 44.7 0 80 0L304 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L80 512c-35.3 0-64-28.7-64-64L16 64zM144 448c0 8.8 7.2 16 16 16l64 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-64 0c-8.8 0-16 7.2-16 16zM304 64L80 64l0 320 224 0 0-320z"], - "plane-up": [512, 512, [], "e22d", "M192 93.7C192 59.5 221 0 256 0c36 0 64 59.5 64 93.7l0 66.3L497.8 278.5c8.9 5.9 14.2 15.9 14.2 26.6l0 56.7c0 10.9-10.7 18.6-21.1 15.2L320 320l0 80 57.6 43.2c4 3 6.4 7.8 6.4 12.8l0 42c0 7.8-6.3 14-14 14c-1.3 0-2.6-.2-3.9-.5L256 480 145.9 511.5c-1.3 .4-2.6 .5-3.9 .5c-7.8 0-14-6.3-14-14l0-42c0-5 2.4-9.8 6.4-12.8L192 400l0-80L21.1 377C10.7 380.4 0 372.7 0 361.8l0-56.7c0-10.7 5.3-20.7 14.2-26.6L192 160l0-66.3z"], - "piggy-bank": [576, 512, [], "f4d3", "M400 96l0 .7c-5.3-.4-10.6-.7-16-.7L256 96c-16.5 0-32.5 2.1-47.8 6c-.1-2-.2-4-.2-6c0-53 43-96 96-96s96 43 96 96zm-16 32c3.5 0 7 .1 10.4 .3c4.2 .3 8.4 .7 12.6 1.3C424.6 109.1 450.8 96 480 96l11.5 0c10.4 0 18 9.8 15.5 19.9l-13.8 55.2c15.8 14.8 28.7 32.8 37.5 52.9l13.3 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-32 0c-9.1 12.1-19.9 22.9-32 32l0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32-128 0 0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-64c-34.9-26.2-58.7-66.3-63.2-112L68 304c-37.6 0-68-30.4-68-68s30.4-68 68-68l4 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-4 0c-11 0-20 9-20 20s9 20 20 20l31.2 0c12.1-59.8 57.7-107.5 116.3-122.8c12.9-3.4 26.5-5.2 40.5-5.2l128 0zm64 136a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z"], - "battery-half": [576, 512, ["battery-3"], "f242", "M464 160c8.8 0 16 7.2 16 16l0 160c0 8.8-7.2 16-16 16L80 352c-8.8 0-16-7.2-16-16l0-160c0-8.8 7.2-16 16-16l384 0zM80 96C35.8 96 0 131.8 0 176L0 336c0 44.2 35.8 80 80 80l384 0c44.2 0 80-35.8 80-80l0-16c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-16c0-44.2-35.8-80-80-80L80 96zm208 96L96 192l0 128 192 0 0-128z"], - "mountain-city": [640, 512, [], "e52e", "M336 0c-26.5 0-48 21.5-48 48l0 92.1 71.4 118.4c2.5-1.6 5.4-2.5 8.6-2.5l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-3.5 0 73.8 122.4c12.4 20.6 12.9 46.3 1.2 67.3c-.4 .8-.9 1.6-1.4 2.3L592 512c26.5 0 48-21.5 48-48l0-224c0-26.5-21.5-48-48-48l-24 0 0-72c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 72-40 0 0-144c0-26.5-21.5-48-48-48L336 0zm32 64l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM352 176c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm160 96c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM224 188.9L283.8 288 223 288l-48 64-24.6-41.2L224 188.9zm29.4-44.2C247.1 134.3 236 128 224 128s-23.1 6.3-29.4 16.7L5.1 458.9c-6.5 10.8-6.7 24.3-.7 35.3S22 512 34.5 512l379.1 0c12.5 0 24-6.8 30.1-17.8s5.8-24.5-.7-35.3L253.4 144.7z"], - "coins": [512, 512, [], "f51e", "M512 80c0 18-14.3 34.6-38.4 48c-29.1 16.1-72.5 27.5-122.3 30.9c-3.7-1.8-7.4-3.5-11.3-5C300.6 137.4 248.2 128 192 128c-8.3 0-16.4 .2-24.5 .6l-1.1-.6C142.3 114.6 128 98 128 80c0-44.2 86-80 192-80S512 35.8 512 80zM160.7 161.1c10.2-.7 20.7-1.1 31.3-1.1c62.2 0 117.4 12.3 152.5 31.4C369.3 204.9 384 221.7 384 240c0 4-.7 7.9-2.1 11.7c-4.6 13.2-17 25.3-35 35.5c0 0 0 0 0 0c-.1 .1-.3 .1-.4 .2c0 0 0 0 0 0s0 0 0 0c-.3 .2-.6 .3-.9 .5c-35 19.4-90.8 32-153.6 32c-59.6 0-112.9-11.3-148.2-29.1c-1.9-.9-3.7-1.9-5.5-2.9C14.3 274.6 0 258 0 240c0-34.8 53.4-64.5 128-75.4c10.5-1.5 21.4-2.7 32.7-3.5zM416 240c0-21.9-10.6-39.9-24.1-53.4c28.3-4.4 54.2-11.4 76.2-20.5c16.3-6.8 31.5-15.2 43.9-25.5l0 35.4c0 19.3-16.5 37.1-43.8 50.9c-14.6 7.4-32.4 13.7-52.4 18.5c.1-1.8 .2-3.5 .2-5.3zm-32 96c0 18-14.3 34.6-38.4 48c-1.8 1-3.6 1.9-5.5 2.9C304.9 404.7 251.6 416 192 416c-62.8 0-118.6-12.6-153.6-32C14.3 370.6 0 354 0 336l0-35.4c12.5 10.3 27.6 18.7 43.9 25.5C83.4 342.6 135.8 352 192 352s108.6-9.4 148.1-25.9c7.8-3.2 15.3-6.9 22.4-10.9c6.1-3.4 11.8-7.2 17.2-11.2c1.5-1.1 2.9-2.3 4.3-3.4l0 3.4 0 5.7 0 26.3zm32 0l0-32 0-25.9c19-4.2 36.5-9.5 52.1-16c16.3-6.8 31.5-15.2 43.9-25.5l0 35.4c0 10.5-5 21-14.9 30.9c-16.3 16.3-45 29.7-81.3 38.4c.1-1.7 .2-3.5 .2-5.3zM192 448c56.2 0 108.6-9.4 148.1-25.9c16.3-6.8 31.5-15.2 43.9-25.5l0 35.4c0 44.2-86 80-192 80S0 476.2 0 432l0-35.4c12.5 10.3 27.6 18.7 43.9 25.5C83.4 438.6 135.8 448 192 448z"], - "khanda": [512, 512, [9772], "f66d", "M245.8 3.7c5.9-4.9 14.6-4.9 20.5 0l48 40c5.9 4.9 7.5 13.2 3.8 19.9c0 0 0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0l-.1 .1-.3 .6c-.3 .5-.7 1.3-1.2 2.3c-1 2-2.6 5-4.4 8.6c-.5 .9-.9 1.9-1.4 2.9C344.9 97.4 368 134 368 176s-23.1 78.6-57.3 97.8c.5 1 1 2 1.4 2.9c1.8 3.7 3.3 6.6 4.4 8.6c.5 1 .9 1.8 1.2 2.3l.3 .6 .1 .1s0 0 0 0s0 0 0 0c3.6 6.7 2 15-3.8 19.9L272 343.5l0 19.8 35.6-24.5 41.1-28.2c42.8-29.4 68.4-78 68.4-130c0-31.1-9.2-61.6-26.5-87.5l-2.8-4.2c-4-6-3.5-14 1.3-19.5s12.7-7 19.2-3.7L401.1 80c7.2-14.3 7.2-14.3 7.2-14.3s0 0 0 0s0 0 0 0l.1 0 .3 .2 1 .5c.8 .4 2 1.1 3.5 1.9c2.9 1.7 7 4.1 11.8 7.3c9.6 6.4 22.5 16.1 35.4 29c25.7 25.7 52.7 65.6 52.7 119.3c0 53.1-26.4 100.5-51.2 133.6c-12.6 16.7-25.1 30.3-34.5 39.7c-4.7 4.7-8.7 8.4-11.5 10.9c-1.4 1.3-2.5 2.2-3.3 2.9l-.9 .8-.3 .2-.1 .1c0 0 0 0 0 0s0 0 0 0L401.1 400l10.2 12.3c-5.1 4.3-12.4 4.9-18.2 1.6l-75.6-43-32.7 22.5 45.5 31.3c1.8-.4 3.7-.7 5.7-.7c13.3 0 24 10.7 24 24s-10.7 24-24 24c-12.2 0-22.3-9.1-23.8-21L272 423.4l0 28.9c9.6 5.5 16 15.9 16 27.7c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-11.8 6.4-22.2 16-27.7l0-28.1-40.3 27.7C197.8 463.3 187.9 472 176 472c-13.3 0-24-10.7-24-24s10.7-24 24-24c2.2 0 4.4 .3 6.5 .9l45.8-31.5-32.7-22.5-75.6 43c-5.8 3.3-13 2.7-18.2-1.6L112 400c-10.2 12.3-10.2 12.3-10.3 12.3s0 0 0 0s0 0 0 0l-.1-.1-.3-.2-.9-.8c-.8-.7-1.9-1.7-3.3-2.9c-2.8-2.5-6.7-6.2-11.5-10.9c-9.4-9.4-21.9-23-34.5-39.7C26.4 324.5 0 277.1 0 224c0-53.7 26.9-93.6 52.7-119.3c12.9-12.9 25.8-22.6 35.4-29C93 72.5 97 70 99.9 68.4c1.5-.8 2.6-1.5 3.5-1.9l1-.5 .3-.2 .1 0c0 0 0 0 0 0s0 0 0 0L112 80l-7.2-14.3c6.5-3.2 14.3-1.7 19.2 3.7s5.3 13.4 1.3 19.5l-2.8 4.2C105.2 119 96 149.5 96 180.6c0 51.9 25.6 100.6 68.4 130l41.1 28.2L240 362.6l0-19.1-42.2-35.2c-5.9-4.9-7.5-13.2-3.8-19.9c0 0 0 0 0 0s0 0 0 0s0 0 0 0l.1-.1 .3-.6c.3-.5 .7-1.3 1.2-2.3c1-2 2.6-5 4.4-8.6c.5-.9 .9-1.9 1.4-2.9C167.1 254.6 144 218 144 176s23.1-78.6 57.3-97.8c-.5-1-1-2-1.4-2.9c-1.8-3.7-3.3-6.6-4.4-8.6c-.5-1-.9-1.8-1.2-2.3l-.3-.6-.1-.1s0 0 0 0s0 0 0 0s0 0 0 0c-3.6-6.7-2-15 3.8-19.9l48-40zM220.2 122.9c-17 11.5-28.2 31-28.2 53.1s11.2 41.6 28.2 53.1C227 210.2 232 190.9 232 176s-5-34.2-11.8-53.1zm71.5 106.2c17-11.5 28.2-31 28.2-53.1s-11.2-41.6-28.2-53.1C285 141.8 280 161.1 280 176s5 34.2 11.8 53.1z"], - "sliders": [512, 512, ["sliders-h"], "f1de", "M0 416c0 17.7 14.3 32 32 32l54.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 448c17.7 0 32-14.3 32-32s-14.3-32-32-32l-246.7 0c-12.3-28.3-40.5-48-73.3-48s-61 19.7-73.3 48L32 384c-17.7 0-32 14.3-32 32zm128 0a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM320 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32-80c-32.8 0-61 19.7-73.3 48L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l246.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48l54.7 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-54.7 0c-12.3-28.3-40.5-48-73.3-48zM192 128a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm73.3-64C253 35.7 224.8 16 192 16s-61 19.7-73.3 48L32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l86.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 128c17.7 0 32-14.3 32-32s-14.3-32-32-32L265.3 64z"], - "folder-tree": [576, 512, [], "f802", "M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32l0 96L0 384c0 35.3 28.7 64 64 64l192 0 0-64L64 384l0-224 192 0 0-64L64 96l0-64zM288 192c0 17.7 14.3 32 32 32l224 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l-98.7 0c-8.5 0-16.6-3.4-22.6-9.4L409.4 9.4c-6-6-14.1-9.4-22.6-9.4L320 0c-17.7 0-32 14.3-32 32l0 160zm0 288c0 17.7 14.3 32 32 32l224 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l-98.7 0c-8.5 0-16.6-3.4-22.6-9.4l-13.3-13.3c-6-6-14.1-9.4-22.6-9.4L320 288c-17.7 0-32 14.3-32 32l0 160z"], - "network-wired": [640, 512, [], "f6ff", "M256 64l128 0 0 64-128 0 0-64zM240 0c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48l48 0 0 32L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 0 32-48 0c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48l160 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-48 0 0-32 256 0 0 32-48 0c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48l160 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-48 0 0-32 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-256 0 0-32 48 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48L240 0zM96 448l0-64 128 0 0 64L96 448zm320-64l128 0 0 64-128 0 0-64z"], - "map-pin": [320, 512, [128205], "f276", "M16 144a144 144 0 1 1 288 0A144 144 0 1 1 16 144zM160 80c8.8 0 16-7.2 16-16s-7.2-16-16-16c-53 0-96 43-96 96c0 8.8 7.2 16 16 16s16-7.2 16-16c0-35.3 28.7-64 64-64zM128 480l0-162.9c10.4 1.9 21.1 2.9 32 2.9s21.6-1 32-2.9L192 480c0 17.7-14.3 32-32 32s-32-14.3-32-32z"], - "hamsa": [512, 512, [], "f665", "M34.6 288L80 288c8.8 0 16-7.2 16-16L96 72c0-22.1 17.9-40 40-40s40 17.9 40 40l0 132c0 11 9 20 20 20s20-9 20-20l0-164c0-22.1 17.9-40 40-40s40 17.9 40 40l0 164c0 11 9 20 20 20s20-9 20-20l0-132c0-22.1 17.9-40 40-40s40 17.9 40 40l0 200c0 8.8 7.2 16 16 16l45.4 0c19.1 0 34.6 15.5 34.6 34.6c0 8.6-3.2 16.9-9 23.3L416.6 441c-41.1 45.2-99.4 71-160.6 71s-119.4-25.8-160.6-71L9 345.9c-5.8-6.4-9-14.7-9-23.3C0 303.5 15.5 288 34.6 288zM256 288c-38.4 0-76.8 35.8-90.6 50.2c-3.6 3.7-5.4 8.7-5.4 13.8s1.8 10.1 5.4 13.8C179.2 380.2 217.6 416 256 416s76.8-35.8 90.6-50.2c3.6-3.7 5.4-8.7 5.4-13.8s-1.8-10.1-5.4-13.8C332.8 323.8 294.4 288 256 288zm0 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"], - "cent-sign": [384, 512, [], "e3f5", "M224 0c17.7 0 32 14.3 32 32l0 34.7c30.9 5.2 59.2 17.7 83.2 35.8c14.1 10.6 17 30.7 6.4 44.8s-30.7 17-44.8 6.4C279.4 137.5 252.9 128 224 128c-70.7 0-128 57.3-128 128s57.3 128 128 128c28.9 0 55.4-9.5 76.8-25.6c14.1-10.6 34.2-7.8 44.8 6.4s7.8 34.2-6.4 44.8c-24 18-52.4 30.6-83.2 35.8l0 34.7c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-34.7C101.2 430.1 32 351.1 32 256s69.2-174.1 160-189.3L192 32c0-17.7 14.3-32 32-32z"], - "flask": [448, 512, [], "f0c3", "M288 0L160 0 128 0C110.3 0 96 14.3 96 32s14.3 32 32 32l0 132.8c0 11.8-3.3 23.5-9.5 33.5L10.3 406.2C3.6 417.2 0 429.7 0 442.6C0 480.9 31.1 512 69.4 512l309.2 0c38.3 0 69.4-31.1 69.4-69.4c0-12.8-3.6-25.4-10.3-36.4L329.5 230.4c-6.2-10.1-9.5-21.7-9.5-33.5L320 64c17.7 0 32-14.3 32-32s-14.3-32-32-32L288 0zM192 196.8L192 64l64 0 0 132.8c0 23.7 6.6 46.9 19 67.1L309.5 320l-171 0L173 263.9c12.4-20.2 19-43.4 19-67.1z"], - "person-pregnant": [384, 512, [], "e31e", "M192 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM120 383c-13.8-3.6-24-16.1-24-31l0-55.1-4.6 7.6c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c15-24.9 40.3-41.5 68.7-45.6c4.1-.6 8.2-1 12.5-1l1.1 0 12.5 0 2.4 0c1.4 0 2.8 .1 4.1 .3c35.7 2.9 65.4 29.3 72.1 65l6.1 32.5c44.3 8.6 77.7 47.5 77.7 94.3l0 32c0 17.7-14.3 32-32 32l-16 0-40 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-8 0-8 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-97z"], - "wand-sparkles": [512, 512, [], "f72b", "M464 6.1c9.5-8.5 24-8.1 33 .9l8 8c9 9 9.4 23.5 .9 33l-85.8 95.9c-2.6 2.9-4.1 6.7-4.1 10.7l0 21.4c0 8.8-7.2 16-16 16l-15.8 0c-4.6 0-8.9 1.9-11.9 5.3L100.7 500.9C94.3 508 85.3 512 75.8 512c-8.8 0-17.3-3.5-23.5-9.8L9.7 459.7C3.5 453.4 0 445 0 436.2c0-9.5 4-18.5 11.1-24.8l111.6-99.8c3.4-3 5.3-7.4 5.3-11.9l0-27.6c0-8.8 7.2-16 16-16l34.6 0c3.9 0 7.7-1.5 10.7-4.1L464 6.1zM432 288c3.6 0 6.7 2.4 7.7 5.8l14.8 51.7 51.7 14.8c3.4 1 5.8 4.1 5.8 7.7s-2.4 6.7-5.8 7.7l-51.7 14.8-14.8 51.7c-1 3.4-4.1 5.8-7.7 5.8s-6.7-2.4-7.7-5.8l-14.8-51.7-51.7-14.8c-3.4-1-5.8-4.1-5.8-7.7s2.4-6.7 5.8-7.7l51.7-14.8 14.8-51.7c1-3.4 4.1-5.8 7.7-5.8zM87.7 69.8l14.8 51.7 51.7 14.8c3.4 1 5.8 4.1 5.8 7.7s-2.4 6.7-5.8 7.7l-51.7 14.8L87.7 218.2c-1 3.4-4.1 5.8-7.7 5.8s-6.7-2.4-7.7-5.8L57.5 166.5 5.8 151.7c-3.4-1-5.8-4.1-5.8-7.7s2.4-6.7 5.8-7.7l51.7-14.8L72.3 69.8c1-3.4 4.1-5.8 7.7-5.8s6.7 2.4 7.7 5.8zM208 0c3.7 0 6.9 2.5 7.8 6.1l6.8 27.3 27.3 6.8c3.6 .9 6.1 4.1 6.1 7.8s-2.5 6.9-6.1 7.8l-27.3 6.8-6.8 27.3c-.9 3.6-4.1 6.1-7.8 6.1s-6.9-2.5-7.8-6.1l-6.8-27.3-27.3-6.8c-3.6-.9-6.1-4.1-6.1-7.8s2.5-6.9 6.1-7.8l27.3-6.8 6.8-27.3c.9-3.6 4.1-6.1 7.8-6.1z"], - "ellipsis-vertical": [128, 512, ["ellipsis-v"], "f142", "M64 360a56 56 0 1 0 0 112 56 56 0 1 0 0-112zm0-160a56 56 0 1 0 0 112 56 56 0 1 0 0-112zM120 96A56 56 0 1 0 8 96a56 56 0 1 0 112 0z"], - "ticket": [576, 512, [127903], "f145", "M64 64C28.7 64 0 92.7 0 128l0 64c0 8.8 7.4 15.7 15.7 18.6C34.5 217.1 48 235 48 256s-13.5 38.9-32.3 45.4C7.4 304.3 0 311.2 0 320l0 64c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-64c0-8.8-7.4-15.7-15.7-18.6C541.5 294.9 528 277 528 256s13.5-38.9 32.3-45.4c8.3-2.9 15.7-9.8 15.7-18.6l0-64c0-35.3-28.7-64-64-64L64 64zm64 112l0 160c0 8.8 7.2 16 16 16l288 0c8.8 0 16-7.2 16-16l0-160c0-8.8-7.2-16-16-16l-288 0c-8.8 0-16 7.2-16 16zM96 160c0-17.7 14.3-32 32-32l320 0c17.7 0 32 14.3 32 32l0 192c0 17.7-14.3 32-32 32l-320 0c-17.7 0-32-14.3-32-32l0-192z"], - "power-off": [512, 512, [9211], "f011", "M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 224c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224zM143.5 120.6c13.6-11.3 15.4-31.5 4.1-45.1s-31.5-15.4-45.1-4.1C49.7 115.4 16 181.8 16 256c0 132.5 107.5 240 240 240s240-107.5 240-240c0-74.2-33.8-140.6-86.6-184.6c-13.6-11.3-33.8-9.4-45.1 4.1s-9.4 33.8 4.1 45.1c38.9 32.3 63.5 81 63.5 135.4c0 97.2-78.8 176-176 176s-176-78.8-176-176c0-54.4 24.7-103.1 63.5-135.4z"], - "right-long": [512, 512, ["long-arrow-alt-right"], "f30b", "M334.5 414c8.8 3.8 19 2 26-4.6l144-136c4.8-4.5 7.5-10.8 7.5-17.4s-2.7-12.9-7.5-17.4l-144-136c-7-6.6-17.2-8.4-26-4.6s-14.5 12.5-14.5 22l0 72L32 192c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l288 0 0 72c0 9.6 5.7 18.2 14.5 22z"], - "flag-usa": [448, 512, [], "f74d", "M32 0C49.7 0 64 14.3 64 32l0 16 69-17.2c38.1-9.5 78.3-5.1 113.5 12.5c46.3 23.2 100.8 23.2 147.1 0l9.6-4.8C423.8 28.1 448 43.1 448 66.1l0 36.1-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-20.3-9-41.8-14.7-63.6-16.9l0 32.2c17.4 2.1 34.4 6.7 50.6 13.9l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4L448 136.3l0 62-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-40.2-17.9-85-22.5-128.1-13.3L64 203.1l0 32.7 70.2-15.1c36.4-7.8 74.3-3.9 108.4 11.3l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4L448 232.3l0 62-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-40.2-17.9-85-22.5-128.1-13.3L64 299.1l0 32.7 70.2-15.1c36.4-7.8 74.3-3.9 108.4 11.3l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4L448 328.3l0 33.5c0 13.3-8.3 25.3-20.8 30l-34.7 13c-46.2 17.3-97.6 14.6-141.7-7.4c-37.9-19-81.3-23.7-122.5-13.4L64 400l0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64 0-70.5 0-32.7 0-63.3 0-32.7 0-63.3 0-32.7L0 64 0 32C0 14.3 14.3 0 32 0zm80 96A16 16 0 1 0 80 96a16 16 0 1 0 32 0zm32 0a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm-32 48a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm32 0a16 16 0 1 0 0-32 16 16 0 1 0 0 32z"], - "laptop-file": [640, 512, [], "e51d", "M128 0C92.7 0 64 28.7 64 64l0 224-44.8 0C8.6 288 0 296.6 0 307.2C0 349.6 34.4 384 76.8 384L320 384l0-96-192 0 0-224 320 0 0 32 64 0 0-32c0-35.3-28.7-64-64-64L128 0zM512 128l-112 0c-26.5 0-48 21.5-48 48l0 288c0 26.5 21.5 48 48 48l192 0c26.5 0 48-21.5 48-48l0-208-96 0c-17.7 0-32-14.3-32-32l0-96zm32 0l0 96 96 0-96-96z"], - "tty": [512, 512, ["teletype"], "f1e4", "M38.3 241.3L15.1 200.6c-9.2-16.2-8.4-36.5 4.5-50C61.4 106.8 144.7 48 256 48s194.6 58.8 236.4 102.6c12.9 13.5 13.7 33.8 4.5 50l-23.1 40.7c-7.5 13.2-23.3 19.3-37.8 14.6l-81.1-26.6c-13.1-4.3-22-16.6-22-30.4l0-54.8c-49.6-18.1-104-18.1-153.6 0l0 54.8c0 13.8-8.9 26.1-22 30.4L76.1 255.8c-14.5 4.7-30.3-1.4-37.8-14.6zM32 336c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm0 96c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM144 320l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM128 432c0-8.8 7.2-16 16-16l224 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16l0-32z"], - "diagram-next": [512, 512, [], "e476", "M512 160c0 35.3-28.7 64-64 64l-168 0 0 64 46.1 0c21.4 0 32.1 25.9 17 41L273 399c-9.4 9.4-24.6 9.4-33.9 0L169 329c-15.1-15.1-4.4-41 17-41l46.1 0 0-64L64 224c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 64zM448 416l0-64-82.7 0 .4-.4c18.4-18.4 20.4-43.7 11-63.6l71.3 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l71.3 0c-9.4 19.9-7.4 45.2 11 63.6l.4 .4L64 352l0 64 146.7 0 5.7 5.7c21.9 21.9 57.3 21.9 79.2 0l5.7-5.7L448 416z"], - "person-rifle": [576, 512, [], "e54e", "M265.2 192c25.4 0 49.8 7.1 70.8 19.9L336 512l-192 0 0-174.3L90.4 428.3c-11.2 19-35.8 25.3-54.8 14.1s-25.3-35.8-14.1-54.8L97.7 258.8c24.5-41.4 69-66.8 117.1-66.8l50.4 0zM160 80a80 80 0 1 1 160 0A80 80 0 1 1 160 80zM448 0c8.8 0 16 7.2 16 16l0 116.3c9.6 5.5 16 15.9 16 27.7l0 109.3 16-5.3 0-56c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 84.5c0 6.9-4.4 13-10.9 15.2L480 325.3l0 26.7 48 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-44 0 23 92.1c2.5 10.1-5.1 19.9-15.5 19.9L432 512c-8.8 0-16-7.2-16-16l0-96-16 0c-17.7 0-32-14.3-32-32l0-144c0-17.7 14.3-32 32-32l0-32c0-11.8 6.4-22.2 16-27.7L416 32c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0 16 0z"], - "house-medical-circle-exclamation": [640, 512, [], "e512", "M320 368c0 59.5 29.5 112.1 74.8 144l-266.7 0c-35.3 0-64-28.7-64-64l0-160.4-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L522.1 193.9c-8.5-1.3-17.3-1.9-26.1-1.9c-54.7 0-103.5 24.9-135.8 64L320 256l0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zM496 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0-192c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z"], - "closed-captioning": [576, 512, [], "f20a", "M0 96C0 60.7 28.7 32 64 32l448 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM200 208c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48s21.5-48 48-48zm144 48c0-26.5 21.5-48 48-48c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48z"], - "person-hiking": [384, 512, ["hiking"], "f6ec", "M192 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm51.3 182.7L224.2 307l49.7 49.7c9 9 14.1 21.2 14.1 33.9l0 89.4c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-82.7-73.9-73.9c-15.8-15.8-22.2-38.6-16.9-60.3l20.4-84c8.3-34.1 42.7-54.9 76.7-46.4c19 4.8 35.6 16.4 46.4 32.7L305.1 208l30.9 0 0-24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 55.8c0 .1 0 .2 0 .2s0 .2 0 .2L384 488c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-216-39.4 0c-16 0-31-8-39.9-21.4l-13.3-20zM81.1 471.9L117.3 334c3 4.2 6.4 8.2 10.1 11.9l41.9 41.9L142.9 488.1c-4.5 17.1-22 27.3-39.1 22.8s-27.3-22-22.8-39.1zm55.5-346L101.4 266.5c-3 12.1-14.9 19.9-27.2 17.9l-47.9-8c-14-2.3-22.9-16.3-19.2-30L31.9 155c9.5-34.8 41.1-59 77.2-59l4.2 0c15.6 0 27.1 14.7 23.3 29.8z"], - "venus-double": [640, 512, [9890], "f226", "M192 288a112 112 0 1 0 0-224 112 112 0 1 0 0 224zM368 176c0 86.3-62.1 158.1-144 173.1l0 34.9 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-34.9C78.1 334.1 16 262.3 16 176C16 78.8 94.8 0 192 0s176 78.8 176 176zM344 318c14.6-15.6 26.8-33.4 36-53c18.8 14.4 42.4 23 68 23c61.9 0 112-50.1 112-112s-50.1-112-112-112c-25.6 0-49.1 8.6-68 23c-9.3-19.5-21.5-37.4-36-53C373.1 12.6 409.1 0 448 0c97.2 0 176 78.8 176 176c0 86.3-62.1 158.1-144 173.1l0 34.9 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-34.9c-26.6-4.9-51.1-15.7-72-31.1z"], - "images": [576, 512, [], "f302", "M160 32c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64l352 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L160 32zM396 138.7l96 144c4.9 7.4 5.4 16.8 1.2 24.6S480.9 320 472 320l-144 0-48 0-80 0c-9.2 0-17.6-5.3-21.6-13.6s-2.9-18.2 2.9-25.4l64-80c4.6-5.7 11.4-9 18.7-9s14.2 3.3 18.7 9l17.3 21.6 56-84C360.5 132 368 128 376 128s15.5 4 20 10.7zM192 128a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120L0 344c0 75.1 60.9 136 136 136l320 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-320 0c-48.6 0-88-39.4-88-88l0-224z"], - "calculator": [384, 512, [128425], "f1ec", "M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM96 64l192 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L96 160c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32zm32 160a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zM96 352a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM64 416c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32zM192 256a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm32 64a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm64-64a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm32 64a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zM288 448a32 32 0 1 1 0-64 32 32 0 1 1 0 64z"], - "people-pulling": [576, 512, [], "e535", "M80 96A48 48 0 1 0 80 0a48 48 0 1 0 0 96zM64 128c-35.3 0-64 28.7-64 64L0 320c0 17.7 14.3 32 32 32c9.8 0 18.5-4.4 24.4-11.2L80.4 485.3c2.9 17.4 19.4 29.2 36.8 26.3s29.2-19.4 26.3-36.8L123.1 352l15.7 0 30 134.9c3.8 17.3 20.9 28.1 38.2 24.3s28.1-20.9 24.3-38.2l-57.3-258 116.3 53.8c.5 .3 1.1 .5 1.6 .7c8.6 3.6 18 3.1 25.9-.7c3.4-1.6 6.6-3.9 9.3-6.7c3.1-3.2 5.5-7 7.1-11.4c.1-.3 .2-.7 .3-1l2.5-7.5c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L537 232.7l-15.3-36.8C504.5 154.8 464.3 128 419.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-24.4 10.9-44.6 29-58.1 51.6L157.3 136.9C144.7 131 130.9 128 117 128l-53 0zM464 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM349.7 335.6l-25 62.4-59.4 59.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L372.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6z"], - "n": [384, 512, [110], "4e", "M21.1 33.9c12.7-4.6 26.9-.7 35.5 9.6L320 359.6 320 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 384c0 13.5-8.4 25.5-21.1 30.1s-26.9 .7-35.5-9.6L64 152.4 64 448c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 64C0 50.5 8.4 38.5 21.1 33.9z"], - "cable-car": [512, 512, [128673, 57551, "tram"], "f7da", "M288 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM160 56a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM32 288c0-35.3 28.7-64 64-64l136 0 0-66.5-203.1 42c-13 2.7-25.7-5.7-28.4-18.6s5.7-25.7 18.6-28.4l232-48 232-48c13-2.7 25.7 5.7 28.4 18.6s-5.7 25.7-18.6 28.4L280 147.5l0 76.5 136 0c35.3 0 64 28.7 64 64l0 160c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-160zm64 0c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l64 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-64 0zm112 16l0 64c0 8.8 7.2 16 16 16l64 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-64 0c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l64 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-64 0z"], - "cloud-rain": [512, 512, [127783, 9926], "f73d", "M96 320c-53 0-96-43-96-96c0-42.5 27.6-78.6 65.9-91.2C64.7 126.1 64 119.1 64 112C64 50.1 114.1 0 176 0c43.1 0 80.5 24.3 99.2 60c14.7-17.1 36.5-28 60.8-28c44.2 0 80 35.8 80 80c0 5.5-.6 10.8-1.6 16c.5 0 1.1 0 1.6 0c53 0 96 43 96 96s-43 96-96 96L96 320zm-6.8 52c1.3-2.5 3.9-4 6.8-4s5.4 1.5 6.8 4l35.1 64.6c4.1 7.5 6.2 15.8 6.2 24.3l0 3c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-3c0-8.5 2.1-16.9 6.2-24.3L89.2 372zm160 0c1.3-2.5 3.9-4 6.8-4s5.4 1.5 6.8 4l35.1 64.6c4.1 7.5 6.2 15.8 6.2 24.3l0 3c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-3c0-8.5 2.1-16.9 6.2-24.3L249.2 372zm124.9 64.6L409.2 372c1.3-2.5 3.9-4 6.8-4s5.4 1.5 6.8 4l35.1 64.6c4.1 7.5 6.2 15.8 6.2 24.3l0 3c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-3c0-8.5 2.1-16.9 6.2-24.3z"], - "building-circle-xmark": [640, 512, [], "e4d4", "M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 96 0c15.1 0 28.5-6.9 37.3-17.8C340.4 462.2 320 417.5 320 368c0-54.7 24.9-103.5 64-135.8L384 48c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM80 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"], - "ship": [576, 512, [128674], "f21a", "M192 32c0-17.7 14.3-32 32-32L352 0c17.7 0 32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 128 44.4 14.8c23.1 7.7 29.5 37.5 11.5 53.9l-101 92.6c-16.2 9.4-34.7 15.1-50.9 15.1c-19.6 0-40.8-7.7-59.2-20.3c-22.1-15.5-51.6-15.5-73.7 0c-17.1 11.8-38 20.3-59.2 20.3c-16.2 0-34.7-5.7-50.9-15.1l-101-92.6c-18-16.5-11.6-46.2 11.5-53.9L96 240l0-128c0-26.5 21.5-48 48-48l48 0 0-32zM160 218.7l107.8-35.9c13.1-4.4 27.3-4.4 40.5 0L416 218.7l0-90.7-256 0 0 90.7zM306.5 421.9C329 437.4 356.5 448 384 448c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 501.7 417 512 384 512c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 437.2 165.1 448 192 448c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z"], - "arrows-down-to-line": [576, 512, [], "e4b8", "M544 416L32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32zm22.6-137.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L480 274.7 480 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 210.7-41.4-41.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96zm-320-45.3c-12.5-12.5-32.8-12.5-45.3 0L160 274.7 160 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 210.7L54.6 233.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3z"], - "download": [512, 512, [], "f019", "M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 242.7-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 274.7 288 32zM64 352c-35.3 0-64 28.7-64 64l0 32c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-32c0-35.3-28.7-64-64-64l-101.5 0-45.3 45.3c-25 25-65.5 25-90.5 0L165.5 352 64 352zm368 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"], - "face-grin": [512, 512, [128512, "grin"], "f580", "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"], - "delete-left": [576, 512, [9003, "backspace"], "f55a", "M576 128c0-35.3-28.7-64-64-64L205.3 64c-17 0-33.3 6.7-45.3 18.7L9.4 233.4c-6 6-9.4 14.1-9.4 22.6s3.4 16.6 9.4 22.6L160 429.3c12 12 28.3 18.7 45.3 18.7L512 448c35.3 0 64-28.7 64-64l0-256zM271 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"], - "eye-dropper": [512, 512, ["eye-dropper-empty", "eyedropper"], "f1fb", "M341.6 29.2L240.1 130.8l-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4L482.8 170.4c39-39 39-102.2 0-141.1s-102.2-39-141.1 0zM55.4 323.3c-15 15-23.4 35.4-23.4 56.6l0 42.4L5.4 462.2c-8.5 12.7-6.8 29.6 4 40.4s27.7 12.5 40.4 4L89.7 480l42.4 0c21.2 0 41.6-8.4 56.6-23.4L309.4 335.9l-45.3-45.3L143.4 411.3c-3 3-7.1 4.7-11.3 4.7L96 416l0-36.1c0-4.2 1.7-8.3 4.7-11.3L221.4 247.9l-45.3-45.3L55.4 323.3z"], - "file-circle-check": [576, 512, [], "e5a0", "M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zM288 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L416 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z"], - "forward": [512, 512, [9193], "f04e", "M52.5 440.6c-9.5 7.9-22.8 9.7-34.1 4.4S0 428.4 0 416L0 96C0 83.6 7.2 72.3 18.4 67s24.5-3.6 34.1 4.4L224 214.3l0 41.7 0 41.7L52.5 440.6zM256 352l0-96 0-128 0-32c0-12.4 7.2-23.7 18.4-29s24.5-3.6 34.1 4.4l192 160c7.3 6.1 11.5 15.1 11.5 24.6s-4.2 18.5-11.5 24.6l-192 160c-9.5 7.9-22.8 9.7-34.1 4.4s-18.4-16.6-18.4-29l0-64z"], - "mobile": [384, 512, [128241, "mobile-android", "mobile-phone"], "f3ce", "M80 0C44.7 0 16 28.7 16 64l0 384c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L80 0zm80 432l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"], - "face-meh": [512, 512, [128528, "meh"], "f11a", "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM160 336l192 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"], - "align-center": [448, 512, [], "f037", "M352 64c0-17.7-14.3-32-32-32L128 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32zm96 128c0-17.7-14.3-32-32-32L32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32zM0 448c0 17.7 14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416c-17.7 0-32 14.3-32 32zM352 320c0-17.7-14.3-32-32-32l-192 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32z"], - "book-skull": [448, 512, ["book-dead"], "f6b7", "M0 96C0 43 43 0 96 0L384 0l32 0c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32l0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0L96 512c-53 0-96-43-96-96L0 96zM64 416c0 17.7 14.3 32 32 32l256 0 0-64L96 384c-17.7 0-32 14.3-32 32zM320 112c0-35.3-35.8-64-80-64s-80 28.7-80 64c0 20.9 12.6 39.5 32 51.2l0 12.8c0 8.8 7.2 16 16 16l64 0c8.8 0 16-7.2 16-16l0-12.8c19.4-11.7 32-30.3 32-51.2zM208 96a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm48 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM134.3 209.3c-8.1-3.5-17.5 .3-21 8.4s.3 17.5 8.4 21L199.4 272l-77.7 33.3c-8.1 3.5-11.9 12.9-8.4 21s12.9 11.9 21 8.4L240 289.4l105.7 45.3c8.1 3.5 17.5-.3 21-8.4s-.3-17.5-8.4-21L280.6 272l77.7-33.3c8.1-3.5 11.9-12.9 8.4-21s-12.9-11.9-21-8.4L240 254.6 134.3 209.3z"], - "id-card": [576, 512, [62147, "drivers-license"], "f2c2", "M0 96l576 0c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96zm0 32L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-288L0 128zM64 405.3c0-29.5 23.9-53.3 53.3-53.3l117.3 0c29.5 0 53.3 23.9 53.3 53.3c0 5.9-4.8 10.7-10.7 10.7L74.7 416c-5.9 0-10.7-4.8-10.7-10.7zM176 192a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm176 16c0-8.8 7.2-16 16-16l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16z"], - "outdent": [448, 512, ["dedent"], "f03b", "M0 64C0 46.3 14.3 32 32 32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64zM192 192c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 96l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zM0 448c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32zM.2 268.6c-8.2-6.4-8.2-18.9 0-25.3l101.9-79.3c10.5-8.2 25.8-.7 25.8 12.6l0 158.6c0 13.3-15.3 20.8-25.8 12.6L.2 268.6z"], - "heart-circle-exclamation": [576, 512, [], "e4fe", "M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6l0-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1l0 5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z"], - "house": [576, 512, [127968, 63498, 63500, "home", "home-alt", "home-lg-alt"], "f015", "M575.8 255.5c0 18-15 32.1-32 32.1l-32 0 .7 160.2c0 2.7-.2 5.4-.5 8.1l0 16.2c0 22.1-17.9 40-40 40l-16 0c-1.1 0-2.2 0-3.3-.1c-1.4 .1-2.8 .1-4.2 .1L416 512l-24 0c-22.1 0-40-17.9-40-40l0-24 0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 64 0 24c0 22.1-17.9 40-40 40l-24 0-31.9 0c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2l-16 0c-22.1 0-40-17.9-40-40l0-112c0-.9 0-1.9 .1-2.8l0-69.7-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24z"], - "calendar-week": [448, 512, [], "f784", "M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zm80 64c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l288 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16L80 256z"], - "laptop-medical": [640, 512, [], "f812", "M64 96c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 256-64 0 0-256L128 96l0 256-64 0L64 96zM0 403.2C0 392.6 8.6 384 19.2 384l601.6 0c10.6 0 19.2 8.6 19.2 19.2c0 42.4-34.4 76.8-76.8 76.8L76.8 480C34.4 480 0 445.6 0 403.2zM288 160c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48z"], - "b": [320, 512, [98], "42", "M64 32C28.7 32 0 60.7 0 96L0 256 0 416c0 35.3 28.7 64 64 64l128 0c70.7 0 128-57.3 128-128c0-46.5-24.8-87.3-62-109.7c18.7-22.3 30-51 30-82.3c0-70.7-57.3-128-128-128L64 32zm96 192l-96 0L64 96l96 0c35.3 0 64 28.7 64 64s-28.7 64-64 64zM64 288l96 0 32 0c35.3 0 64 28.7 64 64s-28.7 64-64 64L64 416l0-128z"], - "file-medical": [384, 512, [], "f477", "M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM160 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48z"], - "dice-one": [448, 512, [9856], "f525", "M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM224 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"], - "kiwi-bird": [576, 512, [], "f535", "M291.2 388.4c31.2-18.8 64.7-36.4 101.1-36.4l55.7 0c4.6 0 9.1-.2 13.6-.7l85.3 121.9c4 5.7 11.3 8.2 17.9 6.1s11.2-8.3 11.2-15.3l0-240c0-70.7-57.3-128-128-128l-55.7 0c-36.4 0-69.9-17.6-101.1-36.4C262.3 42.1 228.3 32 192 32C86 32 0 118 0 224c0 71.1 38.6 133.1 96 166.3L96 456c0 13.3 10.7 24 24 24s24-10.7 24-24l0-46c15.3 3.9 31.4 6 48 6c5.4 0 10.7-.2 16-.7l0 40.7c0 13.3 10.7 24 24 24s24-10.7 24-24l0-50.9c12.4-4.4 24.2-10 35.2-16.7zM448 200a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"], - "arrow-right-arrow-left": [448, 512, [8644, "exchange"], "f0ec", "M438.6 150.6c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.7 96 32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l306.7 0-41.4 41.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l96-96zm-333.3 352c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 416 416 416c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96z"], - "rotate-right": [512, 512, ["redo-alt", "rotate-forward"], "f2f9", "M463.5 224l8.5 0c13.3 0 24-10.7 24-24l0-128c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2L413.4 96.6c-87.6-86.5-228.7-86.2-315.8 1c-87.5 87.5-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3c62.2-62.2 162.7-62.5 225.3-1L327 183c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8l119.5 0z"], - "utensils": [448, 512, [127860, 61685, "cutlery"], "f2e7", "M416 0C400 0 288 32 288 176l0 112c0 35.3 28.7 64 64 64l32 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 0-112 0-208c0-17.7-14.3-32-32-32zM64 16C64 7.8 57.9 1 49.7 .1S34.2 4.6 32.4 12.5L2.1 148.8C.7 155.1 0 161.5 0 167.9c0 45.9 35.1 83.6 80 87.7L80 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224.4c44.9-4.1 80-41.8 80-87.7c0-6.4-.7-12.8-2.1-19.1L191.6 12.5c-1.8-8-9.3-13.3-17.4-12.4S160 7.8 160 16l0 134.2c0 5.4-4.4 9.8-9.8 9.8c-5.1 0-9.3-3.9-9.8-9L127.9 14.6C127.2 6.3 120.3 0 112 0s-15.2 6.3-15.9 14.6L83.7 151c-.5 5.1-4.7 9-9.8 9c-5.4 0-9.8-4.4-9.8-9.8L64 16zm48.3 152l-.3 0-.3 0 .3-.7 .3 .7z"], - "arrow-up-wide-short": [576, 512, ["sort-amount-up"], "f161", "M151.6 42.4C145.5 35.8 137 32 128 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L96 146.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-301.7 32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 480l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128l160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128l224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32z"], - "mill-sign": [384, 512, [], "e1ed", "M302.1 42.8c5.9-16.6-2.7-35-19.4-40.9s-35 2.7-40.9 19.4L208 116.1c-5.7 4-11.1 8.5-16 13.5C171.7 108.9 143.3 96 112 96c-19.5 0-37.8 5-53.7 13.7C52.5 101.4 42.9 96 32 96C14.3 96 0 110.3 0 128l0 80L0 416c0 17.7 14.3 32 32 32s32-14.3 32-32l0-208c0-26.5 21.5-48 48-48s48 21.5 48 48l0 42.5L81.9 469.2c-5.9 16.6 2.7 35 19.4 40.9s35-2.7 40.9-19.4l21.4-60C168.9 441 179.6 448 192 448c17.7 0 32-14.3 32-32l0-154.5 35.7-100c3.9-1 8.1-1.6 12.3-1.6c26.5 0 48 21.5 48 48l0 208c0 17.7 14.3 32 32 32s32-14.3 32-32l0-208c0-58.2-44.3-106-101.1-111.5l19.2-53.8z"], - "bowl-rice": [512, 512, [], "e2eb", "M176 56c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zm24 48l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM56 176l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM0 283.4C0 268.3 12.3 256 27.4 256l457.1 0c15.1 0 27.4 12.3 27.4 27.4c0 70.5-44.4 130.7-106.7 154.1L403.5 452c-2 16-15.6 28-31.8 28l-231.5 0c-16.1 0-29.8-12-31.8-28l-1.8-14.4C44.4 414.1 0 353.9 0 283.4zM224 200c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zm-96 0c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zm-24-96l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm216 96c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zm-24-96l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm120 96c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zm-24-96l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM296 32l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"], - "skull": [512, 512, [128128], "f54c", "M416 398.9c58.5-41.1 96-104.1 96-174.9C512 100.3 397.4 0 256 0S0 100.3 0 224c0 70.7 37.5 133.8 96 174.9c0 .4 0 .7 0 1.1l0 64c0 26.5 21.5 48 48 48l48 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16l0 48 64 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16l0 48 48 0c26.5 0 48-21.5 48-48l0-64c0-.4 0-.7 0-1.1zM96 256a64 64 0 1 1 128 0A64 64 0 1 1 96 256zm256-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"], - "tower-broadcast": [576, 512, ["broadcast-tower"], "f519", "M80.3 44C69.8 69.9 64 98.2 64 128s5.8 58.1 16.3 84c6.6 16.4-1.3 35-17.7 41.7s-35-1.3-41.7-17.7C7.4 202.6 0 166.1 0 128S7.4 53.4 20.9 20C27.6 3.6 46.2-4.3 62.6 2.3S86.9 27.6 80.3 44zM555.1 20C568.6 53.4 576 89.9 576 128s-7.4 74.6-20.9 108c-6.6 16.4-25.3 24.3-41.7 17.7S489.1 228.4 495.7 212c10.5-25.9 16.3-54.2 16.3-84s-5.8-58.1-16.3-84C489.1 27.6 497 9 513.4 2.3s35 1.3 41.7 17.7zM352 128c0 23.7-12.9 44.4-32 55.4L320 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-296.6c-19.1-11.1-32-31.7-32-55.4c0-35.3 28.7-64 64-64s64 28.7 64 64zM170.6 76.8C163.8 92.4 160 109.7 160 128s3.8 35.6 10.6 51.2c7.1 16.2-.3 35.1-16.5 42.1s-35.1-.3-42.1-16.5c-10.3-23.6-16-49.6-16-76.8s5.7-53.2 16-76.8c7.1-16.2 25.9-23.6 42.1-16.5s23.6 25.9 16.5 42.1zM464 51.2c10.3 23.6 16 49.6 16 76.8s-5.7 53.2-16 76.8c-7.1 16.2-25.9 23.6-42.1 16.5s-23.6-25.9-16.5-42.1c6.8-15.6 10.6-32.9 10.6-51.2s-3.8-35.6-10.6-51.2c-7.1-16.2 .3-35.1 16.5-42.1s35.1 .3 42.1 16.5z"], - "truck-pickup": [640, 512, [128763], "f63c", "M368.6 96l76.8 96L288 192l0-96 80.6 0zM224 80l0 112L64 192c-17.7 0-32 14.3-32 32l0 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l33.1 0c-.7 5.2-1.1 10.6-1.1 16c0 61.9 50.1 112 112 112s112-50.1 112-112c0-5.4-.4-10.8-1.1-16l66.3 0c-.7 5.2-1.1 10.6-1.1 16c0 61.9 50.1 112 112 112s112-50.1 112-112c0-5.4-.4-10.8-1.1-16l33.1 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-64c0-17.7-14.3-32-32-32l-48.6 0L418.6 56c-12.1-15.2-30.5-24-50-24L272 32c-26.5 0-48 21.5-48 48zm0 288a48 48 0 1 1 -96 0 48 48 0 1 1 96 0zm288 0a48 48 0 1 1 -96 0 48 48 0 1 1 96 0z"], - "up-long": [320, 512, ["long-arrow-alt-up"], "f30c", "M318 177.5c3.8-8.8 2-19-4.6-26l-136-144C172.9 2.7 166.6 0 160 0s-12.9 2.7-17.4 7.5l-136 144c-6.6 7-8.4 17.2-4.6 26S14.4 192 24 192l72 0 0 288c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-288 72 0c9.6 0 18.2-5.7 22-14.5z"], - "stop": [384, 512, [9209], "f04d", "M0 128C0 92.7 28.7 64 64 64H320c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128z"], - "code-merge": [448, 512, [], "f387", "M80 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm32.4 97.2c28-12.4 47.6-40.5 47.6-73.2c0-44.2-35.8-80-80-80S0 35.8 0 80c0 32.8 19.7 61 48 73.3l0 205.3C19.7 371 0 399.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3l0-86.6c26.7 20.1 60 32 96 32l86.7 0c12.3 28.3 40.5 48 73.3 48c44.2 0 80-35.8 80-80s-35.8-80-80-80c-32.8 0-61 19.7-73.3 48L208 240c-49.9 0-91-38.1-95.6-86.8zM80 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM344 272a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"], - "upload": [512, 512, [], "f093", "M288 109.3L288 352c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-242.7-73.4 73.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l128-128c12.5-12.5 32.8-12.5 45.3 0l128 128c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L288 109.3zM64 352l128 0c0 35.3 28.7 64 64 64s64-28.7 64-64l128 0c35.3 0 64 28.7 64 64l0 32c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64l0-32c0-35.3 28.7-64 64-64zM432 456a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"], - "hurricane": [384, 512, [], "f751", "M0 208C0 104.4 75.7 18.5 174.9 2.6C184 1.2 192 8.6 192 17.9l0 63.3c0 8.4 6.5 15.3 14.7 16.5C307 112.5 384 199 384 303.4c0 103.6-75.7 189.5-174.9 205.4c-9.2 1.5-17.1-5.9-17.1-15.2l0-63.3c0-8.4-6.5-15.3-14.7-16.5C77 398.9 0 312.4 0 208zm288 48A96 96 0 1 0 96 256a96 96 0 1 0 192 0zm-96-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"], - "mound": [576, 512, [], "e52d", "M144.1 179.2C173.8 127.7 228.6 96 288 96s114.2 31.7 143.9 83.2L540.4 368c12.3 21.3-3.1 48-27.7 48H63.3c-24.6 0-40-26.6-27.7-48L144.1 179.2z"], - "toilet-portable": [320, 512, [], "e583", "M0 32L0 64l320 0 0-32c0-17.7-14.3-32-32-32L32 0C14.3 0 0 14.3 0 32zM24 96L0 96l0 24L0 488c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8 224 0 0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-368 0-24-24 0L24 96zM256 240l0 64c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16z"], - "compact-disc": [512, 512, [128191, 128192, 128440], "f51f", "M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256 32a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm-96-32a96 96 0 1 0 192 0 96 96 0 1 0 -192 0zM96 240c0-35 17.5-71.1 45.2-98.8S205 96 240 96c8.8 0 16-7.2 16-16s-7.2-16-16-16c-45.4 0-89.2 22.3-121.5 54.5S64 194.6 64 240c0 8.8 7.2 16 16 16s16-7.2 16-16z"], - "file-arrow-down": [384, 512, ["file-download"], "f56d", "M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM216 232l0 102.1 31-31c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0l-72-72c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l31 31L168 232c0-13.3 10.7-24 24-24s24 10.7 24 24z"], - "caravan": [640, 512, [], "f8ff", "M0 112C0 67.8 35.8 32 80 32l336 0c88.4 0 160 71.6 160 160l0 160 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0-288 0c0 53-43 96-96 96s-96-43-96-96l-16 0c-44.2 0-80-35.8-80-80L0 112zM320 352l128 0 0-96-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l32 0 0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 192zM96 128c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32L96 128zm96 336a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"], - "shield-cat": [512, 512, [], "e572", "M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM160 154.4c0-5.8 4.7-10.4 10.4-10.4l.2 0c3.4 0 6.5 1.6 8.5 4.3l40 53.3c3 4 7.8 6.4 12.8 6.4l48 0c5 0 9.8-2.4 12.8-6.4l40-53.3c2-2.7 5.2-4.3 8.5-4.3l.2 0c5.8 0 10.4 4.7 10.4 10.4L352 272c0 53-43 96-96 96s-96-43-96-96l0-117.6zM216 288a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm96-16a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z"], - "bolt": [448, 512, [9889, "zap"], "f0e7", "M349.4 44.6c5.9-13.7 1.5-29.7-10.6-38.5s-28.6-8-39.9 1.8l-256 224c-10 8.8-13.6 22.9-8.9 35.3S50.7 288 64 288l111.5 0L98.6 467.4c-5.9 13.7-1.5 29.7 10.6 38.5s28.6 8 39.9-1.8l256-224c10-8.8 13.6-22.9 8.9-35.3s-16.6-20.7-30-20.7l-111.5 0L349.4 44.6z"], - "glass-water": [384, 512, [], "e4f4", "M32 0C23.1 0 14.6 3.7 8.6 10.2S-.6 25.4 .1 34.3L28.9 437.7c3 41.9 37.8 74.3 79.8 74.3l166.6 0c42 0 76.8-32.4 79.8-74.3L383.9 34.3c.6-8.9-2.4-17.6-8.5-24.1S360.9 0 352 0L32 0zM73 156.5L66.4 64l251.3 0L311 156.5l-24.2 12.1c-19.4 9.7-42.2 9.7-61.6 0c-20.9-10.4-45.5-10.4-66.4 0c-19.4 9.7-42.2 9.7-61.6 0L73 156.5z"], - "oil-well": [576, 512, [], "e532", "M528.3 61.3c-11.4-42.7-55.3-68-98-56.6L414.9 8.8C397.8 13.4 387.7 31 392.3 48l24.5 91.4L308.5 167.5l-6.3-18.1C297.7 136.6 285.6 128 272 128s-25.7 8.6-30.2 21.4l-13.6 39L96 222.6 96 184c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 264-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-137.3 0L340 257.5l-62.2 16.1L305.3 352l-66.6 0L265 277l-74.6 19.3L137.3 448 96 448l0-159.2 337.4-87.5 25.2 94c4.6 17.1 22.1 27.2 39.2 22.6l15.5-4.1c42.7-11.4 68-55.3 56.6-98L528.3 61.3zM205.1 448l11.2-32 111.4 0 11.2 32-133.8 0z"], - "vault": [576, 512, [], "e2c5", "M64 0C28.7 0 0 28.7 0 64L0 416c0 35.3 28.7 64 64 64l16 0 16 32 64 0 16-32 224 0 16 32 64 0 16-32 16 0c35.3 0 64-28.7 64-64l0-352c0-35.3-28.7-64-64-64L64 0zM224 320a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0-240a160 160 0 1 1 0 320 160 160 0 1 1 0-320zM480 221.3L480 336c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-114.7c-18.6-6.6-32-24.4-32-45.3c0-26.5 21.5-48 48-48s48 21.5 48 48c0 20.9-13.4 38.7-32 45.3z"], - "mars": [448, 512, [9794], "f222", "M289.8 46.8c3.7-9 12.5-14.8 22.2-14.8l112 0c13.3 0 24 10.7 24 24l0 112c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-33.4-33.4L321 204.2c19.5 28.4 31 62.7 31 99.8c0 97.2-78.8 176-176 176S0 401.2 0 304s78.8-176 176-176c37 0 71.4 11.4 99.8 31l52.6-52.6L295 73c-6.9-6.9-8.9-17.2-5.2-26.2zM400 80s0 0 0 0s0 0 0 0s0 0 0 0zM176 416a112 112 0 1 0 0-224 112 112 0 1 0 0 224z"], - "toilet": [448, 512, [128701], "f7d8", "M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48l8 0 0 148.9c-1.9 1.4-3.8 2.9-5.6 4.4C10.9 214.5 0 232.9 0 256c0 46.9 14.3 84.1 37 112.5c14.2 17.7 31.1 31.3 48.5 41.8L65.6 469.9c-3.3 9.8-1.6 20.5 4.4 28.8s15.7 13.3 26 13.3l256 0c10.3 0 19.9-4.9 26-13.3s7.7-19.1 4.4-28.8l-19.8-59.5c17.4-10.5 34.3-24.1 48.5-41.8c22.7-28.4 37-65.5 37-112.5c0-23.1-10.9-41.5-26.4-54.6c-1.8-1.5-3.7-3-5.6-4.4L416 48l8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 0zM384 256.3c0 1-.3 2.6-3.8 5.6c-4.8 4.1-14 9-29.3 13.4C320.5 284 276.1 288 224 288s-96.5-4-126.9-12.8c-15.3-4.4-24.5-9.3-29.3-13.4c-3.5-3-3.8-4.6-3.8-5.6l0-.3c0 0 0-.1 0-.1c0-1 0-2.5 3.8-5.8c4.8-4.1 14-9 29.3-13.4C127.5 228 171.9 224 224 224s96.5 4 126.9 12.8c15.3 4.4 24.5 9.3 29.3 13.4c3.8 3.2 3.8 4.8 3.8 5.8c0 0 0 .1 0 .1l0 .3zM328.2 384l-.2 .5 0-.5 .2 0zM112 64l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"], - "plane-circle-xmark": [640, 512, [], "e557", "M256 0c-35 0-64 59.5-64 93.7l0 84.6L8.1 283.4c-5 2.8-8.1 8.2-8.1 13.9l0 65.5c0 10.6 10.2 18.3 20.4 15.4l171.6-49 0 70.9-57.6 43.2c-4 3-6.4 7.8-6.4 12.8l0 42c0 7.8 6.3 14 14 14c1.3 0 2.6-.2 3.9-.5L256 480l110.1 31.5c1.3 .4 2.6 .5 3.9 .5c6 0 11.1-3.7 13.1-9C344.5 470.7 320 422.2 320 368c0-60.6 30.6-114 77.1-145.6L320 178.3l0-84.6C320 59.5 292 0 256 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"], - "yen-sign": [320, 512, [165, "cny", "jpy", "rmb", "yen"], "f157", "M58.6 46.3C48.8 31.5 29 27.6 14.2 37.4S-4.4 67 5.4 81.8L100.2 224 48 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l80 0 0 32-80 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l80 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 80 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-80 0 0-32 80 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-52.2 0L314.6 81.8c9.8-14.7 5.8-34.6-8.9-44.4s-34.6-5.8-44.4 8.9L160 198.3 58.6 46.3z"], - "ruble-sign": [384, 512, [8381, "rouble", "rub", "ruble"], "f158", "M96 32C78.3 32 64 46.3 64 64l0 192-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0 0-32 112 0c79.5 0 144-64.5 144-144s-64.5-144-144-144L96 32zM240 256l-112 0 0-160 112 0c44.2 0 80 35.8 80 80s-35.8 80-80 80z"], - "sun": [512, 512, [9728], "f185", "M361.5 1.2c5 2.1 8.6 6.6 9.6 11.9L391 121l107.9 19.8c5.3 1 9.8 4.6 11.9 9.6s1.5 10.7-1.6 15.2L446.9 256l62.3 90.3c3.1 4.5 3.7 10.2 1.6 15.2s-6.6 8.6-11.9 9.6L391 391 371.1 498.9c-1 5.3-4.6 9.8-9.6 11.9s-10.7 1.5-15.2-1.6L256 446.9l-90.3 62.3c-4.5 3.1-10.2 3.7-15.2 1.6s-8.6-6.6-9.6-11.9L121 391 13.1 371.1c-5.3-1-9.8-4.6-11.9-9.6s-1.5-10.7 1.6-15.2L65.1 256 2.8 165.7c-3.1-4.5-3.7-10.2-1.6-15.2s6.6-8.6 11.9-9.6L121 121 140.9 13.1c1-5.3 4.6-9.8 9.6-11.9s10.7-1.5 15.2 1.6L256 65.1 346.3 2.8c4.5-3.1 10.2-3.7 15.2-1.6zM160 256a96 96 0 1 1 192 0 96 96 0 1 1 -192 0zm224 0a128 128 0 1 0 -256 0 128 128 0 1 0 256 0z"], - "guitar": [512, 512, [], "f7a6", "M465 7c-9.4-9.4-24.6-9.4-33.9 0L383 55c-2.4 2.4-4.3 5.3-5.5 8.5l-15.4 41-77.5 77.6c-45.1-29.4-99.3-30.2-131 1.6c-11 11-18 24.6-21.4 39.6c-3.7 16.6-19.1 30.7-36.1 31.6c-25.6 1.3-49.3 10.7-67.3 28.6C-16 328.4-7.6 409.4 47.5 464.5s136.1 63.5 180.9 18.7c17.9-17.9 27.4-41.7 28.6-67.3c.9-17 15-32.3 31.6-36.1c15-3.4 28.6-10.5 39.6-21.4c31.8-31.8 31-85.9 1.6-131l77.6-77.6 41-15.4c3.2-1.2 6.1-3.1 8.5-5.5l48-48c9.4-9.4 9.4-24.6 0-33.9L465 7zM208 256a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"], - "face-laugh-wink": [512, 512, ["laugh-wink"], "f59c", "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1l275.2 0c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zM144.4 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm156.4 25.6c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2c-17.6-23.5-52.8-23.5-70.4 0z"], - "horse-head": [640, 512, [], "f7ab", "M64 464l0-147.1c0-108.4 68.3-205.1 170.5-241.3L404.2 15.5C425.6 7.9 448 23.8 448 46.4c0 11-5.5 21.2-14.6 27.3L400 96c48.1 0 91.2 29.8 108.1 74.9l48.6 129.5c11.8 31.4 4.1 66.8-19.6 90.5c-16 16-37.8 25.1-60.5 25.1l-3.4 0c-26.1 0-50.9-11.6-67.6-31.7l-32.3-38.7c-11.7 4.1-24.2 6.4-37.3 6.4c0 0 0 0-.1 0c0 0 0 0 0 0c-6.3 0-12.5-.5-18.6-1.5c-3.6-.6-7.2-1.4-10.7-2.3c0 0 0 0 0 0c-28.9-7.8-53.1-26.8-67.8-52.2c-4.4-7.6-14.2-10.3-21.9-5.8s-10.3 14.2-5.8 21.9c24 41.5 68.3 70 119.3 71.9l47.2 70.8c4 6.1 6.2 13.2 6.2 20.4c0 20.3-16.5 36.8-36.8 36.8L112 512c-26.5 0-48-21.5-48-48zM392 224a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"], - "bore-hole": [512, 512, [], "e4c3", "M256 0c-17.7 0-32 14.3-32 32l0 264.6c-19.1 11.1-32 31.7-32 55.4c0 35.3 28.7 64 64 64s64-28.7 64-64c0-23.7-12.9-44.4-32-55.4L288 32c0-17.7-14.3-32-32-32zM48 128c-26.5 0-48 21.5-48 48L0 464c0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48l0-288c0-26.5-21.5-48-48-48l-80 0c-17.7 0-32 14.3-32 32l0 192c0 53-43 96-96 96s-96-43-96-96l0-192c0-17.7-14.3-32-32-32l-80 0z"], - "industry": [576, 512, [], "f275", "M64 32C46.3 32 32 46.3 32 64l0 240 0 48 0 80c0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48l0-128 0-151.8c0-18.2-19.4-29.7-35.4-21.1L352 215.4l0-63.2c0-18.2-19.4-29.7-35.4-21.1L160 215.4 160 64c0-17.7-14.3-32-32-32L64 32z"], - "circle-down": [512, 512, [61466, "arrow-alt-circle-down"], "f358", "M256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM244.7 395.3l-112-112c-4.6-4.6-5.9-11.5-3.5-17.4s8.3-9.9 14.8-9.9l64 0 0-96c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 96 64 0c6.5 0 12.3 3.9 14.8 9.9s1.1 12.9-3.5 17.4l-112 112c-6.2 6.2-16.4 6.2-22.6 0z"], - "arrows-turn-to-dots": [512, 512, [], "e4c1", "M249.4 25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L269.3 96 416 96c53 0 96 43 96 96l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32c0-17.7-14.3-32-32-32l-146.7 0 25.4 25.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3l80-80zm13.3 256l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 416 96 416c-17.7 0-32 14.3-32 32l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32c0-53 43-96 96-96l146.7 0-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0zM384 384a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM64 192A64 64 0 1 1 64 64a64 64 0 1 1 0 128z"], - "florin-sign": [384, 512, [], "e184", "M314.7 32c-38.8 0-73.7 23.3-88.6 59.1L170.7 224 64 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l80 0L98.9 396.3c-5 11.9-16.6 19.7-29.5 19.7L32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l37.3 0c38.8 0 73.7-23.3 88.6-59.1L213.3 288 320 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-80 0 45.1-108.3c5-11.9 16.6-19.7 29.5-19.7L352 96c17.7 0 32-14.3 32-32s-14.3-32-32-32l-37.3 0z"], - "arrow-down-short-wide": [576, 512, ["sort-amount-desc", "sort-amount-down-alt"], "f884", "M151.6 469.6C145.5 476.2 137 480 128 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L96 365.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 301.7 32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 32l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z"], - "less-than": [384, 512, [62774], "3c", "M380.6 81.7c7.9 15.8 1.5 35-14.3 42.9L103.6 256 366.3 387.4c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3l-320-160C6.8 279.2 0 268.1 0 256s6.8-23.2 17.7-28.6l320-160c15.8-7.9 35-1.5 42.9 14.3z"], - "angle-down": [448, 512, [8964], "f107", "M201.4 374.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 306.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z"], - "car-tunnel": [512, 512, [], "e4de", "M256 0C114.6 0 0 114.6 0 256L0 448c0 35.3 28.7 64 64 64l42.8 0c-6.6-5.9-10.8-14.4-10.8-24l0-112c0-20.8 11.3-38.9 28.1-48.6l21-64.7c7.5-23.1 29-38.7 53.3-38.7l115.2 0c24.3 0 45.8 15.6 53.3 38.7l21 64.7c16.8 9.7 28.2 27.8 28.2 48.6l0 112c0 9.6-4.2 18.1-10.8 24l42.8 0c35.3 0 64-28.7 64-64l0-192C512 114.6 397.4 0 256 0zM362.8 512c-6.6-5.9-10.8-14.4-10.8-24l0-40-192 0 0 40c0 9.6-4.2 18.1-10.8 24l213.7 0zM190.8 277.5L177 320l158 0-13.8-42.5c-1.1-3.3-4.1-5.5-7.6-5.5l-115.2 0c-3.5 0-6.5 2.2-7.6 5.5zM168 408a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm200-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z"], - "head-side-cough": [640, 512, [], "e061", "M0 224.2C0 100.6 100.2 0 224 0l24 0c95.2 0 181.2 69.3 197.3 160.2c2.3 13 6.8 25.7 15.1 36l42 52.6c6.2 7.8 9.6 17.4 9.6 27.4c0 24.2-19.6 43.8-43.8 43.8L448 320s0 0 0 0l0 32L339.2 365.6c-11 1.4-19.2 10.7-19.2 21.8c0 11.6 9 21.2 20.6 21.9L448 416l0 16c0 26.5-21.5 48-48 48l-80 0 0 8c0 13.3-10.7 24-24 24l-40 0s0 0 0 0L96 512c-17.7 0-32-14.3-32-32l0-72.7c0-16.7-6.9-32.5-17.1-45.8C16.6 322.4 0 274.1 0 224.2zm352-.2a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM464 384a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm152-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM592 480a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM552 312a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40-24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM552 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"], - "grip-lines": [448, 512, [], "f7a4", "M32 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 288zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 160z"], - "thumbs-down": [512, 512, [128078, 61576], "f165", "M313.4 479.1c26-5.2 42.9-30.5 37.7-56.5l-2.3-11.4c-5.3-26.7-15.1-52.1-28.8-75.2l144 0c26.5 0 48-21.5 48-48c0-18.5-10.5-34.6-25.9-42.6C497 236.6 504 223.1 504 208c0-23.4-16.8-42.9-38.9-47.1c4.4-7.3 6.9-15.8 6.9-24.9c0-21.3-13.9-39.4-33.1-45.6c.7-3.3 1.1-6.8 1.1-10.4c0-26.5-21.5-48-48-48l-97.5 0c-19 0-37.5 5.6-53.3 16.1L202.7 73.8C176 91.6 160 121.6 160 153.7l0 38.3 0 48 0 24.9c0 29.2 13.3 56.7 36 75l7.4 5.9c26.5 21.2 44.6 51 51.2 84.2l2.3 11.4c5.2 26 30.5 42.9 56.5 37.7zM32 384l64 0c17.7 0 32-14.3 32-32l0-224c0-17.7-14.3-32-32-32L32 96C14.3 96 0 110.3 0 128L0 352c0 17.7 14.3 32 32 32z"], - "user-lock": [640, 512, [], "f502", "M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512l362.8 0c-5.4-9.4-8.6-20.3-8.6-32l0-128c0-2.1 .1-4.2 .3-6.3c-31-26-71-41.7-114.6-41.7l-91.4 0zM528 240c17.7 0 32 14.3 32 32l0 48-64 0 0-48c0-17.7 14.3-32 32-32zm-80 32l0 48c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80z"], - "arrow-right-long": [512, 512, ["long-arrow-right"], "f178", "M502.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l370.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z"], - "anchor-circle-xmark": [640, 512, [], "e4ac", "M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80L224 176c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 208-48 0c-53 0-96-43-96-96l0-6.1 7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7 0 6.1c0 88.4 71.6 160 160 160l80 0 80 0c8.2 0 16.3-.6 24.2-1.8c-22.2-16.2-40.4-37.5-53-62.2L320 448l0-80 0-128 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-10.9 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"], - "ellipsis": [448, 512, ["ellipsis-h"], "f141", "M8 256a56 56 0 1 1 112 0A56 56 0 1 1 8 256zm160 0a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm216-56a56 56 0 1 1 0 112 56 56 0 1 1 0-112z"], - "chess-pawn": [320, 512, [9823], "f443", "M215.5 224c29.2-18.4 48.5-50.9 48.5-88c0-57.4-46.6-104-104-104S56 78.6 56 136c0 37.1 19.4 69.6 48.5 88L96 224c-17.7 0-32 14.3-32 32c0 16.5 12.5 30 28.5 31.8L80 400l160 0L227.5 287.8c16-1.8 28.5-15.3 28.5-31.8c0-17.7-14.3-32-32-32l-8.5 0zM22.6 473.4c-4.2 4.2-6.6 10-6.6 16C16 501.9 26.1 512 38.6 512l242.7 0c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16L256 432 64 432 22.6 473.4z"], - "kit-medical": [576, 512, ["first-aid"], "f479", "M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l32 0L96 32 64 32zm64 0l0 448 320 0 0-448L128 32zM512 480c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-32 0 0 448 32 0zM256 176c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48z"], - "person-through-window": [640, 512, [], "e5a9", "M64 64l224 0 0 9.8c0 39-23.7 74-59.9 88.4C167.6 186.5 128 245 128 310.2l0 73.8s0 0 0 0l-64 0L64 64zm288 0l224 0 0 320-67.7 0-3.7-4.5-75.2-90.2c-9.1-10.9-22.6-17.3-36.9-17.3l-71.1 0-41-63.1c-.3-.5-.6-1-1-1.4c44.7-29 72.5-79 72.5-133.6l0-9.8zm73 320l-45.8 0 42.7 64L592 448c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48L48 0C21.5 0 0 21.5 0 48L0 400c0 26.5 21.5 48 48 48l260.2 0 33.2 49.8c9.8 14.7 29.7 18.7 44.4 8.9s18.7-29.7 8.9-44.4L310.5 336l74.6 0 40 48zm-159.5 0L192 384s0 0 0 0l0-73.8c0-10.2 1.6-20.1 4.7-29.5L265.5 384zM192 128a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z"], - "toolbox": [512, 512, [129520], "f552", "M176 88l0 40 160 0 0-40c0-4.4-3.6-8-8-8L184 80c-4.4 0-8 3.6-8 8zm-48 40l0-40c0-30.9 25.1-56 56-56l144 0c30.9 0 56 25.1 56 56l0 40 28.1 0c12.7 0 24.9 5.1 33.9 14.1l51.9 51.9c9 9 14.1 21.2 14.1 33.9l0 92.1-128 0 0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32-128 0 0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32L0 320l0-92.1c0-12.7 5.1-24.9 14.1-33.9l51.9-51.9c9-9 21.2-14.1 33.9-14.1l28.1 0zM0 416l0-64 128 0c0 17.7 14.3 32 32 32s32-14.3 32-32l128 0c0 17.7 14.3 32 32 32s32-14.3 32-32l128 0 0 64c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64z"], - "hands-holding-circle": [640, 512, [], "e4fb", "M320 0a128 128 0 1 1 0 256A128 128 0 1 1 320 0zM40 64c22.1 0 40 17.9 40 40l0 40 0 80 0 40.2c0 17 6.7 33.3 18.7 45.3l51.1 51.1c8.3 8.3 21.3 9.6 31 3.1c12.9-8.6 14.7-26.9 3.7-37.8l-15.2-15.2-32-32c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l32 32 15.2 15.2c0 0 0 0 0 0l25.3 25.3c21 21 32.8 49.5 32.8 79.2l0 78.9c0 26.5-21.5 48-48 48l-66.7 0c-17 0-33.3-6.7-45.3-18.7L28.1 393.4C10.1 375.4 0 351 0 325.5L0 224l0-64 0-56C0 81.9 17.9 64 40 64zm560 0c22.1 0 40 17.9 40 40l0 56 0 64 0 101.5c0 25.5-10.1 49.9-28.1 67.9L512 493.3c-12 12-28.3 18.7-45.3 18.7L400 512c-26.5 0-48-21.5-48-48l0-78.9c0-29.7 11.8-58.2 32.8-79.2l25.3-25.3c0 0 0 0 0 0l15.2-15.2 32-32c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-32 32-15.2 15.2c-11 11-9.2 29.2 3.7 37.8c9.7 6.5 22.7 5.2 31-3.1l51.1-51.1c12-12 18.7-28.3 18.7-45.3l0-40.2 0-80 0-40c0-22.1 17.9-40 40-40z"], - "bug": [512, 512, [], "f188", "M256 0c53 0 96 43 96 96l0 3.6c0 15.7-12.7 28.4-28.4 28.4l-135.1 0c-15.7 0-28.4-12.7-28.4-28.4l0-3.6c0-53 43-96 96-96zM41.4 105.4c12.5-12.5 32.8-12.5 45.3 0l64 64c.7 .7 1.3 1.4 1.9 2.1c14.2-7.3 30.4-11.4 47.5-11.4l112 0c17.1 0 33.2 4.1 47.5 11.4c.6-.7 1.2-1.4 1.9-2.1l64-64c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-64 64c-.7 .7-1.4 1.3-2.1 1.9c6.2 12 10.1 25.3 11.1 39.5l64.3 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c0 24.6-5.5 47.8-15.4 68.6c2.2 1.3 4.2 2.9 6 4.8l64 64c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-63.1-63.1c-24.5 21.8-55.8 36.2-90.3 39.6L272 240c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 239.2c-34.5-3.4-65.8-17.8-90.3-39.6L86.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l64-64c1.9-1.9 3.9-3.4 6-4.8C101.5 367.8 96 344.6 96 320l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64.3 0c1.1-14.1 5-27.5 11.1-39.5c-.7-.6-1.4-1.2-2.1-1.9l-64-64c-12.5-12.5-12.5-32.8 0-45.3z"], - "credit-card": [576, 512, [128179, 62083, "credit-card-alt"], "f09d", "M64 32C28.7 32 0 60.7 0 96l0 32 576 0 0-32c0-35.3-28.7-64-64-64L64 32zM576 224L0 224 0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-192zM112 352l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm112 16c0-8.8 7.2-16 16-16l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16z"], - "car": [512, 512, [128664, "automobile"], "f1b9", "M135.2 117.4L109.1 192l293.8 0-26.1-74.6C372.3 104.6 360.2 96 346.6 96L165.4 96c-13.6 0-25.7 8.6-30.2 21.4zM39.6 196.8L74.8 96.3C88.3 57.8 124.6 32 165.4 32l181.2 0c40.8 0 77.1 25.8 90.6 64.3l35.2 100.5c23.2 9.6 39.6 32.5 39.6 59.2l0 144 0 48c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-48L96 400l0 48c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-48L0 256c0-26.7 16.4-49.6 39.6-59.2zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"], - "hand-holding-hand": [576, 512, [], "e4f7", "M7.8 207.7c-13.1-17.8-9.3-42.8 8.5-55.9L142.9 58.5C166.2 41.3 194.5 32 223.5 32L384 32l160 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-36.8 0-44.9 36c-22.7 18.2-50.9 28-80 28L304 224l-16 0-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0 16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-120.6 0L63.7 216.2c-17.8 13.1-42.8 9.3-55.9-8.5zM382.4 160c0 0 0 0 0 0l.9 0c-.3 0-.6 0-.9 0zM568.2 304.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 453.5c-23.4 17.2-51.6 26.5-80.7 26.5L192 480 32 480c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l36.8 0 44.9-36c22.7-18.2 50.9-28 80-28l78.3 0 16 0 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l120.6 0 119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 352c0 0 0 0 0 0l-.9 0c.3 0 .6 0 .9 0z"], - "book-open-reader": [512, 512, ["book-reader"], "f5da", "M160 96a96 96 0 1 1 192 0A96 96 0 1 1 160 96zm80 152l0 264-48.4-24.2c-20.9-10.4-43.5-17-66.8-19.3l-96-9.6C12.5 457.2 0 443.5 0 427L0 224c0-17.7 14.3-32 32-32l30.3 0c63.6 0 125.6 19.6 177.7 56zm32 264l0-264c52.1-36.4 114.1-56 177.7-56l30.3 0c17.7 0 32 14.3 32 32l0 203c0 16.4-12.5 30.2-28.8 31.8l-96 9.6c-23.2 2.3-45.9 8.9-66.8 19.3L272 512z"], - "mountain-sun": [640, 512, [], "e52f", "M560 160A80 80 0 1 0 560 0a80 80 0 1 0 0 160zM55.9 512l325.2 0 75 0 122.8 0c33.8 0 61.1-27.4 61.1-61.1c0-11.2-3.1-22.2-8.9-31.8l-132-216.3C495 196.1 487.8 192 480 192s-15 4.1-19.1 10.7l-48.2 79L286.8 81c-6.6-10.6-18.3-17-30.8-17s-24.1 6.4-30.8 17L8.6 426.4C3 435.3 0 445.6 0 456.1C0 487 25 512 55.9 512z"], - "arrows-left-right-to-line": [640, 512, [], "e4ba", "M32 64c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 96C0 78.3 14.3 64 32 64zm214.6 73.4c12.5 12.5 12.5 32.8 0 45.3L205.3 224l229.5 0-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L434.7 288l-229.5 0 41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0zM640 96l0 320c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-320c0-17.7 14.3-32 32-32s32 14.3 32 32z"], - "dice-d20": [512, 512, [], "f6cf", "M48.7 125.8l53.2 31.9c7.8 4.7 17.8 2 22.2-5.9L201.6 12.1c3-5.4-.9-12.1-7.1-12.1c-1.6 0-3.2 .5-4.6 1.4L47.9 98.8c-9.6 6.6-9.2 20.9 .8 26.9zM16 171.7l0 123.5c0 8 10.4 11 14.7 4.4l60-92c5-7.6 2.6-17.8-5.2-22.5L40.2 158C29.6 151.6 16 159.3 16 171.7zM310.4 12.1l77.6 139.6c4.4 7.9 14.5 10.6 22.2 5.9l53.2-31.9c10-6 10.4-20.3 .8-26.9L322.1 1.4c-1.4-.9-3-1.4-4.6-1.4c-6.2 0-10.1 6.7-7.1 12.1zM496 171.7c0-12.4-13.6-20.1-24.2-13.7l-45.3 27.2c-7.8 4.7-10.1 14.9-5.2 22.5l60 92c4.3 6.7 14.7 3.6 14.7-4.4l0-123.5zm-49.3 246L286.1 436.6c-8.1 .9-14.1 7.8-14.1 15.9l0 52.8c0 3.7 3 6.8 6.8 6.8c.8 0 1.6-.1 2.4-.4l172.7-64c6.1-2.2 10.1-8 10.1-14.5c0-9.3-8.1-16.5-17.3-15.4zM233.2 512c3.7 0 6.8-3 6.8-6.8l0-52.6c0-8.1-6.1-14.9-14.1-15.9l-160.6-19c-9.2-1.1-17.3 6.1-17.3 15.4c0 6.5 4 12.3 10.1 14.5l172.7 64c.8 .3 1.6 .4 2.4 .4zM41.7 382.9l170.9 20.2c7.8 .9 13.4-7.5 9.5-14.3l-85.7-150c-5.9-10.4-20.7-10.8-27.3-.8L30.2 358.2c-6.5 9.9-.3 23.3 11.5 24.7zm439.6-24.8L402.9 238.1c-6.5-10-21.4-9.6-27.3 .8L290.2 388.5c-3.9 6.8 1.6 15.2 9.5 14.3l170.1-20c11.8-1.4 18-14.7 11.5-24.6zm-216.9 11l78.4-137.2c6.1-10.7-1.6-23.9-13.9-23.9l-145.7 0c-12.3 0-20 13.3-13.9 23.9l78.4 137.2c3.7 6.4 13 6.4 16.7 0zM174.4 176l163.2 0c12.2 0 19.9-13.1 14-23.8l-80-144c-2.8-5.1-8.2-8.2-14-8.2l-3.2 0c-5.8 0-11.2 3.2-14 8.2l-80 144c-5.9 10.7 1.8 23.8 14 23.8z"], - "truck-droplet": [640, 512, [], "e58c", "M0 48C0 21.5 21.5 0 48 0L368 0c26.5 0 48 21.5 48 48l0 48 50.7 0c17 0 33.3 6.7 45.3 18.7L589.3 192c12 12 18.7 28.3 18.7 45.3l0 18.7 0 32 0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c0 53-43 96-96 96s-96-43-96-96l-128 0c0 53-43 96-96 96s-96-43-96-96l-16 0c-26.5 0-48-21.5-48-48L0 48zM416 256l128 0 0-18.7L466.7 160 416 160l0 96zM160 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm368-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM208 272c39.8 0 72-29.6 72-66c0-27-39.4-82.9-59.9-110.3c-6.1-8.2-18.1-8.2-24.2 0C175.4 123 136 179 136 206c0 36.5 32.2 66 72 66z"], - "file-circle-xmark": [576, 512, [], "e5a1", "M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zm48 96a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L432 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L409.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L432 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L454.6 368l36.7-36.7z"], - "temperature-arrow-up": [576, 512, ["temperature-up"], "e040", "M128 112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 164.5c0 17.3 7.1 31.9 15.3 42.5C249.8 332.6 256 349.5 256 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9c8.2-10.6 15.3-25.2 15.3-42.5L128 112zM176 0C114.1 0 64 50.1 64 112l0 164.4c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C43.2 304.2 32 334.8 32 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.2-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6L288 112C288 50.1 237.9 0 176 0zm0 416c26.5 0 48-21.5 48-48c0-20.9-13.4-38.7-32-45.3L192 112c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 210.7c-18.6 6.6-32 24.4-32 45.3c0 26.5 21.5 48 48 48zM480 160l32 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l32 0 0 288c0 17.7 14.3 32 32 32s32-14.3 32-32l0-288z"], - "medal": [512, 512, [127941], "f5a2", "M4.1 38.2C1.4 34.2 0 29.4 0 24.6C0 11 11 0 24.6 0L133.9 0c11.2 0 21.7 5.9 27.4 15.5l68.5 114.1c-48.2 6.1-91.3 28.6-123.4 61.9L4.1 38.2zm503.7 0L405.6 191.5c-32.1-33.3-75.2-55.8-123.4-61.9L350.7 15.5C356.5 5.9 366.9 0 378.1 0L487.4 0C501 0 512 11 512 24.6c0 4.8-1.4 9.6-4.1 13.6zM80 336a176 176 0 1 1 352 0A176 176 0 1 1 80 336zm184.4-94.9c-3.4-7-13.3-7-16.8 0l-22.4 45.4c-1.4 2.8-4 4.7-7 5.1L168 298.9c-7.7 1.1-10.7 10.5-5.2 16l36.3 35.4c2.2 2.2 3.2 5.2 2.7 8.3l-8.6 49.9c-1.3 7.6 6.7 13.5 13.6 9.9l44.8-23.6c2.7-1.4 6-1.4 8.7 0l44.8 23.6c6.9 3.6 14.9-2.2 13.6-9.9l-8.6-49.9c-.5-3 .5-6.1 2.7-8.3l36.3-35.4c5.6-5.4 2.5-14.8-5.2-16l-50.1-7.3c-3-.4-5.7-2.4-7-5.1l-22.4-45.4z"], - "bed": [640, 512, [128716], "f236", "M32 32c17.7 0 32 14.3 32 32l0 256 224 0 0-160c0-17.7 14.3-32 32-32l224 0c53 0 96 43 96 96l0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-224 0-32 0L64 416l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 64C0 46.3 14.3 32 32 32zm144 96a80 80 0 1 1 0 160 80 80 0 1 1 0-160z"], - "square-h": [448, 512, ["h-square"], "f0fd", "M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM336 152l0 104 0 104c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-80-128 0 0 80c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-208c0-13.3 10.7-24 24-24s24 10.7 24 24l0 80 128 0 0-80c0-13.3 10.7-24 24-24s24 10.7 24 24z"], - "podcast": [448, 512, [], "f2ce", "M319.4 372c48.5-31.3 80.6-85.9 80.6-148c0-97.2-78.8-176-176-176S48 126.8 48 224c0 62.1 32.1 116.6 80.6 148c1.2 17.3 4 38 7.2 57.1l.2 1C56 395.8 0 316.5 0 224C0 100.3 100.3 0 224 0S448 100.3 448 224c0 92.5-56 171.9-136 206.1l.2-1.1c3.1-19.2 6-39.8 7.2-57zm-2.3-38.1c-1.6-5.7-3.9-11.1-7-16.2c-5.8-9.7-13.5-17-21.9-22.4c19.5-17.6 31.8-43 31.8-71.3c0-53-43-96-96-96s-96 43-96 96c0 28.3 12.3 53.8 31.8 71.3c-8.4 5.4-16.1 12.7-21.9 22.4c-3.1 5.1-5.4 10.5-7 16.2C99.8 307.5 80 268 80 224c0-79.5 64.5-144 144-144s144 64.5 144 144c0 44-19.8 83.5-50.9 109.9zM224 312c32.9 0 64 8.6 64 43.8c0 33-12.9 104.1-20.6 132.9c-5.1 19-24.5 23.4-43.4 23.4s-38.2-4.4-43.4-23.4c-7.8-28.5-20.6-99.7-20.6-132.8c0-35.1 31.1-43.8 64-43.8zm0-144a56 56 0 1 1 0 112 56 56 0 1 1 0-112z"], - "temperature-full": [320, 512, ["temperature-4", "thermometer-4", "thermometer-full"], "f2c7", "M160 64c-26.5 0-48 21.5-48 48l0 164.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5L208 112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112l0 164.4c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6L48 112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3L144 112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 210.7c18.6 6.6 32 24.4 32 45.3z"], - "bell": [448, 512, [128276, 61602], "f0f3", "M224 0c-17.7 0-32 14.3-32 32l0 19.2C119 66 64 130.6 64 208l0 18.8c0 47-17.3 92.4-48.5 127.6l-7.4 8.3c-8.4 9.4-10.4 22.9-5.3 34.4S19.4 416 32 416l384 0c12.6 0 24-7.4 29.2-18.9s3.1-25-5.3-34.4l-7.4-8.3C401.3 319.2 384 273.9 384 226.8l0-18.8c0-77.4-55-142-128-156.8L256 32c0-17.7-14.3-32-32-32zm45.3 493.3c12-12 18.7-28.3 18.7-45.3l-64 0-64 0c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7z"], - "superscript": [512, 512, [], "f12b", "M480 32c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32 16c-15.8 7.9-22.2 27.1-14.3 42.9C393 73.5 404.3 80 416 80l0 80c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-128zM32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l15.3 0 89.6 128L47.3 384 32 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0c10.4 0 20.2-5.1 26.2-13.6L176 311.8l85.8 122.6c6 8.6 15.8 13.6 26.2 13.6l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-15.3 0L215.1 256l89.6-128 15.3 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-10.4 0-20.2 5.1-26.2 13.6L176 200.2 90.2 77.6C84.2 69.1 74.4 64 64 64L32 64z"], - "plug-circle-xmark": [576, 512, [], "e560", "M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32L32 160zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L454.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L432 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L409.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L432 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"], - "star-of-life": [512, 512, [], "f621", "M208 32c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 140.9 122-70.4c15.3-8.8 34.9-3.6 43.7 11.7l16 27.7c8.8 15.3 3.6 34.9-11.7 43.7L352 256l122 70.4c15.3 8.8 20.6 28.4 11.7 43.7l-16 27.7c-8.8 15.3-28.4 20.6-43.7 11.7L304 339.1 304 480c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-140.9L86 409.6c-15.3 8.8-34.9 3.6-43.7-11.7l-16-27.7c-8.8-15.3-3.6-34.9 11.7-43.7L160 256 38 185.6c-15.3-8.8-20.5-28.4-11.7-43.7l16-27.7C51.1 98.8 70.7 93.6 86 102.4l122 70.4L208 32z"], - "phone-slash": [640, 512, [], "f3dd", "M228.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C76.1 30.2 64 46 64 64c0 107.4 37.8 206 100.8 283.1L9.2 469.1c-10.4 8.2-12.3 23.3-4.1 33.7s23.3 12.3 33.7 4.1l592-464c10.4-8.2 12.3-23.3 4.1-33.7s-23.3-12.3-33.7-4.1L253 278c-17.8-21.5-32.9-45.2-45-70.7L257.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96zm96.8 319l-91.3 72C310.7 476 407.1 512 512 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L368.7 368c-15-7.1-29.3-15.2-43-24.3z"], - "paint-roller": [512, 512, [], "f5aa", "M0 64C0 28.7 28.7 0 64 0L352 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64L64 192c-35.3 0-64-28.7-64-64L0 64zM160 352c0-17.7 14.3-32 32-32l0-16c0-44.2 35.8-80 80-80l144 0c17.7 0 32-14.3 32-32l0-32 0-90.5c37.3 13.2 64 48.7 64 90.5l0 32c0 53-43 96-96 96l-144 0c-8.8 0-16 7.2-16 16l0 16c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-128z"], - "handshake-angle": [640, 512, ["hands-helping"], "f4c4", "M544 248l0 3.3 69.7-69.7c21.9-21.9 21.9-57.3 0-79.2L535.6 24.4c-21.9-21.9-57.3-21.9-79.2 0L416.3 64.5c-2.7-.3-5.5-.5-8.3-.5L296 64c-37.1 0-67.6 28-71.6 64l-.4 0 0 120c0 22.1 17.9 40 40 40s40-17.9 40-40l0-72c0 0 0-.1 0-.1l0-15.9 16 0 136 0c0 0 0 0 .1 0l7.9 0c44.2 0 80 35.8 80 80l0 8zM336 192l0 56c0 39.8-32.2 72-72 72s-72-32.2-72-72l0-118.6c-35.9 6.2-65.8 32.3-76 68.2L99.5 255.2 26.3 328.4c-21.9 21.9-21.9 57.3 0 79.2l78.1 78.1c21.9 21.9 57.3 21.9 79.2 0l37.7-37.7c.9 0 1.8 .1 2.7 .1l160 0c26.5 0 48-21.5 48-48c0-5.6-1-11-2.7-16l2.7 0c26.5 0 48-21.5 48-48c0-12.8-5-24.4-13.2-33c25.7-5 45.1-27.6 45.2-54.8l0-.4c-.1-30.8-25.1-55.8-56-55.8c0 0 0 0 0 0l-120 0z"], - "location-dot": [384, 512, ["map-marker-alt"], "f3c5", "M215.7 499.2C267 435 384 279.4 384 192C384 86 298 0 192 0S0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"], - "file": [384, 512, [128196, 128459, 61462], "f15b", "M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 288c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128z"], - "greater-than": [384, 512, [62769], "3e", "M3.4 81.7c-7.9 15.8-1.5 35 14.3 42.9L280.5 256 17.7 387.4C1.9 395.3-4.5 414.5 3.4 430.3s27.1 22.2 42.9 14.3l320-160c10.8-5.4 17.7-16.5 17.7-28.6s-6.8-23.2-17.7-28.6l-320-160c-15.8-7.9-35-1.5-42.9 14.3z"], - "person-swimming": [576, 512, [127946, "swimmer"], "f5c4", "M309.5 178.4L447.9 297.1c-1.6 .9-3.2 2-4.8 3c-18 12.4-40.1 20.3-59.2 20.3c-19.6 0-40.8-7.7-59.2-20.3c-22.1-15.5-51.6-15.5-73.7 0c-17.1 11.8-38 20.3-59.2 20.3c-10.1 0-21.1-2.2-31.9-6.2C163.1 193.2 262.2 96 384 96l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-26.9 0-52.3 6.6-74.5 18.4zM160 160A64 64 0 1 1 32 160a64 64 0 1 1 128 0zM306.5 325.9C329 341.4 356.5 352 384 352c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 405.7 417 416 384 416c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 341.2 165.1 352 192 352c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z"], - "arrow-down": [384, 512, [8595], "f063", "M169.4 470.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 370.8 224 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 306.7L54.6 265.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z"], - "droplet": [384, 512, [128167, "tint"], "f043", "M192 512C86 512 0 426 0 320C0 228.8 130.2 57.7 166.6 11.7C172.6 4.2 181.5 0 191.1 0l1.8 0c9.6 0 18.5 4.2 24.5 11.7C253.8 57.7 384 228.8 384 320c0 106-86 192-192 192zM96 336c0-8.8-7.2-16-16-16s-16 7.2-16 16c0 61.9 50.1 112 112 112c8.8 0 16-7.2 16-16s-7.2-16-16-16c-44.2 0-80-35.8-80-80z"], - "eraser": [576, 512, [], "f12d", "M290.7 57.4L57.4 290.7c-25 25-25 65.5 0 90.5l80 80c12 12 28.3 18.7 45.3 18.7L288 480l9.4 0L512 480c17.7 0 32-14.3 32-32s-14.3-32-32-32l-124.1 0L518.6 285.3c25-25 25-65.5 0-90.5L381.3 57.4c-25-25-65.5-25-90.5 0zM297.4 416l-9.4 0-105.4 0-80-80L227.3 211.3 364.7 348.7 297.4 416z"], - "earth-americas": [512, 512, [127758, "earth", "earth-america", "globe-americas"], "f57d", "M57.7 193l9.4 16.4c8.3 14.5 21.9 25.2 38 29.8L163 255.7c17.2 4.9 29 20.6 29 38.5l0 39.9c0 11 6.2 21 16 25.9s16 14.9 16 25.9l0 39c0 15.6 14.9 26.9 29.9 22.6c16.1-4.6 28.6-17.5 32.7-33.8l2.8-11.2c4.2-16.9 15.2-31.4 30.3-40l8.1-4.6c15-8.5 24.2-24.5 24.2-41.7l0-8.3c0-12.7-5.1-24.9-14.1-33.9l-3.9-3.9c-9-9-21.2-14.1-33.9-14.1L257 256c-11.1 0-22.1-2.9-31.8-8.4l-34.5-19.7c-4.3-2.5-7.6-6.5-9.2-11.2c-3.2-9.6 1.1-20 10.2-24.5l5.9-3c6.6-3.3 14.3-3.9 21.3-1.5l23.2 7.7c8.2 2.7 17.2-.4 21.9-7.5c4.7-7 4.2-16.3-1.2-22.8l-13.6-16.3c-10-12-9.9-29.5 .3-41.3l15.7-18.3c8.8-10.3 10.2-25 3.5-36.7l-2.4-4.2c-3.5-.2-6.9-.3-10.4-.3C163.1 48 84.4 108.9 57.7 193zM464 256c0-36.8-9.6-71.4-26.4-101.5L412 164.8c-15.7 6.3-23.8 23.8-18.5 39.8l16.9 50.7c3.5 10.4 12 18.3 22.6 20.9l29.1 7.3c1.2-9 1.8-18.2 1.8-27.5zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z"], - "person-burst": [640, 512, [], "e53b", "M480 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8 384l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-223.1 28.6 47.5c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-58.3-97c-17.4-28.9-48.6-46.6-82.3-46.6l-29.7 0c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L408 256.9 408 480c0 17.7 14.3 32 32 32s32-14.3 32-32zM190.9 18.1C188.4 12 182.6 8 176 8s-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L176 286.1l58.6 53.9c4.8 4.4 11.9 5.5 17.8 2.6s9.5-9 9-15.5l-5.6-79.4 50.5-7.8 24.3-40.5-55.2-38L315 92.2c3.3-5.7 2.7-12.8-1.4-17.9s-10.9-7.2-17.2-5.3L220.3 92.1l-29.4-74z"], - "dove": [512, 512, [128330], "f4ba", "M160.8 96.5c14 17 31 30.9 49.5 42.2c25.9 15.8 53.7 25.9 77.7 31.6l0-31.5C265.8 108.5 250 71.5 248.6 28c-.4-11.3-7.5-21.5-18.4-24.4c-7.6-2-15.8-.2-21 5.8c-13.3 15.4-32.7 44.6-48.4 87.2zM320 144l0 30.6s0 0 0 0l0 1.3s0 0 0 0l0 32.1c-60.8-5.1-185-43.8-219.3-157.2C97.4 40 87.9 32 76.6 32c-7.9 0-15.3 3.9-18.8 11C46.8 65.9 32 112.1 32 176c0 116.9 80.1 180.5 118.4 202.8L11.8 416.6C6.7 418 2.6 421.8 .9 426.8s-.8 10.6 2.3 14.8C21.7 466.2 77.3 512 160 512c3.6 0 7.2-1.2 10-3.5L245.6 448l74.4 0c88.4 0 160-71.6 160-160l0-160 29.9-44.9c1.3-2 2.1-4.4 2.1-6.8c0-6.8-5.5-12.3-12.3-12.3L400 64c-44.2 0-80 35.8-80 80zm80-16a16 16 0 1 1 0 32 16 16 0 1 1 0-32z"], - "battery-empty": [576, 512, ["battery-0"], "f244", "M80 160c-8.8 0-16 7.2-16 16l0 160c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-160c0-8.8-7.2-16-16-16L80 160zM0 176c0-44.2 35.8-80 80-80l384 0c44.2 0 80 35.8 80 80l0 16c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l0 16c0 44.2-35.8 80-80 80L80 416c-44.2 0-80-35.8-80-80L0 176z"], - "socks": [512, 512, [129510], "f696", "M175.2 476.6c-9.7-18-15.2-38.7-15.2-60.6c0-40.3 19-78.2 51.2-102.4l64-48c8.1-6 12.8-15.5 12.8-25.6l0-144L128 96l0 144c0 20.1-9.5 39.1-25.6 51.2l-64 48C14.2 357.3 0 385.8 0 416c0 53 43 96 96 96c20.8 0 41-6.7 57.6-19.2l21.6-16.2zM128 64l160 0 0-16c0-14.5 3.9-28.2 10.7-39.9C291 3 281.9 0 272 0L176 0c-26.5 0-48 21.5-48 48l0 16zM320 96l0 144c0 20.1-9.5 39.1-25.6 51.2l-64 48C206.2 357.3 192 385.8 192 416c0 53 43 96 96 96c20.8 0 41-6.7 57.6-19.2l115.2-86.4C493 382.2 512 344.3 512 304l0-208L320 96zM512 64l0-16c0-26.5-21.5-48-48-48L368 0c-26.5 0-48 21.5-48 48l0 16 192 0z"], - "inbox": [512, 512, [], "f01c", "M121 32C91.6 32 66 52 58.9 80.5L1.9 308.4C.6 313.5 0 318.7 0 323.9L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-92.1c0-5.2-.6-10.4-1.9-15.5l-57-227.9C446 52 420.4 32 391 32L121 32zm0 64l270 0 48 192-51.2 0c-12.1 0-23.2 6.8-28.6 17.7l-14.3 28.6c-5.4 10.8-16.5 17.7-28.6 17.7l-120.4 0c-12.1 0-23.2-6.8-28.6-17.7l-14.3-28.6c-5.4-10.8-16.5-17.7-28.6-17.7L73 288 121 96z"], - "section": [256, 512, [], "e447", "M64.9 96C67.1 84.4 73.7 76.2 86 70.6c13.8-6.2 34.8-8.9 61.2-4.5c8.8 1.4 36.1 7.1 44.1 9.3c17 4.8 34.7-5.1 39.5-22.2s-5.1-34.7-22.2-39.5c-11.1-3.1-41-9.2-50.9-10.8C123-2.7 88.3-.6 59.7 12.3C29.9 25.8 7.5 50.9 1.6 86.5c-.1 .5-.2 1.1-.2 1.6c-2.2 19.7 .3 37.9 8.1 54.1c7.7 16.1 19.4 28 32 36.9c.6 .5 1.3 .9 2 1.4C22.3 194.2 6.5 215.1 1.7 243c-.1 .6-.2 1.1-.2 1.7c-2.3 19.3 .4 37.1 8.4 53c7.9 15.6 19.8 27 32.3 35.5c22.4 15.2 51.9 24 75.4 31c0 0 0 0 0 0l3.7 1.1c27.2 8.2 46.9 14.6 59.4 23.8c5.5 4 8.2 7.6 9.5 10.9c1.3 3.2 2.6 8.6 .9 18.1c-1.7 10.1-7.7 18-20.7 23.5c-14 6-35.4 8.5-62 4.4c-12.8-2.1-35.1-9.7-54.1-16.2c0 0 0 0 0 0c-4.3-1.5-8.5-2.9-12.3-4.2C25.3 420 7.2 429.1 1.6 445.8s3.5 34.9 20.3 40.5c2.6 .8 5.7 1.9 9.2 3.1c18.6 6.3 48.5 16.6 67.3 19.6c0 0 0 0 0 0l.2 0c34.5 5.4 68.8 3.4 97.2-8.7c29.4-12.6 52.5-36.5 58.5-71.5c3.3-19.3 1.9-37.4-5-53.9c-6.3-15-16.4-26.4-27.6-35.2c16.5-13.9 28.5-33.2 32.6-58.2c3.2-19.8 1.9-38.3-4.8-55.1c-6.7-16.8-17.8-29.4-30.2-39c-22.8-17.6-53.6-27.4-77.7-35l-1.4-.5c-27.4-8.7-47.8-15.3-61.5-25c-6.1-4.4-9.5-8.5-11.4-12.4c-1.8-3.7-3.2-9.3-2.3-18.5zm76.7 208.5l-.6-.2-1.4-.4c-27.4-8.2-47.9-14.5-61.7-23.8c-6.2-4.2-9.3-7.9-11-11.3c-1.5-3-2.9-7.7-2.1-15.7c1.9-9.7 7.9-17.3 20.5-22.7c14-6 35.4-8.5 62.1-4.3l16.4 2.6c6.3 2.9 11.7 6 16.2 9.5c5.5 4.2 8.4 8.2 10 12.2c1.6 4 2.8 10.4 1.1 20.9c-2.4 14.7-12.8 26.4-37.1 31l-12.4 2.3z"], - "gauge-high": [512, 512, [62461, "tachometer-alt", "tachometer-alt-fast"], "f625", "M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM256 416c35.3 0 64-28.7 64-64c0-17.4-6.9-33.1-18.1-44.6L366 161.7c5.3-12.1-.2-26.3-12.3-31.6s-26.3 .2-31.6 12.3L257.9 288c-.6 0-1.3 0-1.9 0c-35.3 0-64 28.7-64 64s28.7 64 64 64zM176 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM96 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm352-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"], - "envelope-open-text": [512, 512, [], "f658", "M215.4 96L144 96l-36.2 0L96 96l0 8.8L96 144l0 40.4 0 89L.2 202.5c1.6-18.1 10.9-34.9 25.7-45.8L48 140.3 48 96c0-26.5 21.5-48 48-48l76.6 0 49.9-36.9C232.2 3.9 243.9 0 256 0s23.8 3.9 33.5 11L339.4 48 416 48c26.5 0 48 21.5 48 48l0 44.3 22.1 16.4c14.8 10.9 24.1 27.7 25.7 45.8L416 273.4l0-89 0-40.4 0-39.2 0-8.8-11.8 0L368 96l-71.4 0-81.3 0zM0 448L0 242.1 217.6 403.3c11.1 8.2 24.6 12.7 38.4 12.7s27.3-4.4 38.4-12.7L512 242.1 512 448s0 0 0 0c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64c0 0 0 0 0 0zM176 160l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"], - "hospital": [640, 512, [127973, 62589, "hospital-alt", "hospital-wide"], "f0f8", "M192 48c0-26.5 21.5-48 48-48L400 0c26.5 0 48 21.5 48 48l0 464-80 0 0-80c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 80-80 0 0-464zM48 96l112 0 0 416L48 512c-26.5 0-48-21.5-48-48L0 320l80 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L0 288l0-64 80 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L0 192l0-48c0-26.5 21.5-48 48-48zm544 0c26.5 0 48 21.5 48 48l0 48-80 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80 0 0 64-80 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80 0 0 144c0 26.5-21.5 48-48 48l-112 0 0-416 112 0zM312 64c-8.8 0-16 7.2-16 16l0 24-24 0c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l24 0 0 24c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-24 24 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-24 0 0-24c0-8.8-7.2-16-16-16l-16 0z"], - "wine-bottle": [512, 512, [], "f72f", "M393.4 9.4c12.5-12.5 32.8-12.5 45.3 0l64 64c12.5 12.5 12.5 32.8 0 45.3c-11.8 11.8-30.7 12.5-43.2 1.9l-9.5 9.5-48.8 48.8c-9.2 9.2-11.5 22.9-8.6 35.6c9.4 40.9-1.9 85.6-33.8 117.5L197.3 493.3c-25 25-65.5 25-90.5 0l-88-88c-25-25-25-65.5 0-90.5L180.2 153.3c31.9-31.9 76.6-43.1 117.5-33.8c12.6 2.9 26.4 .5 35.5-8.6l48.8-48.8 9.5-9.5c-10.6-12.6-10-31.4 1.9-43.2zM99.3 347.3l65.4 65.4c6.2 6.2 16.4 6.2 22.6 0l97.4-97.4c6.2-6.2 6.2-16.4 0-22.6l-65.4-65.4c-6.2-6.2-16.4-6.2-22.6 0L99.3 324.7c-6.2 6.2-6.2 16.4 0 22.6z"], - "chess-rook": [448, 512, [9820], "f447", "M32 192L32 48c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16l0 40c0 4.4 3.6 8 8 8l32 0c4.4 0 8-3.6 8-8l0-40c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16l0 40c0 4.4 3.6 8 8 8l32 0c4.4 0 8-3.6 8-8l0-40c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16l0 144c0 10.1-4.7 19.6-12.8 25.6L352 256l16 144L80 400 96 256 44.8 217.6C36.7 211.6 32 202.1 32 192zm176 96l32 0c8.8 0 16-7.2 16-16l0-48c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48c0 8.8 7.2 16 16 16zM22.6 473.4L64 432l320 0 41.4 41.4c4.2 4.2 6.6 10 6.6 16c0 12.5-10.1 22.6-22.6 22.6L38.6 512C26.1 512 16 501.9 16 489.4c0-6 2.4-11.8 6.6-16z"], - "bars-staggered": [512, 512, ["reorder", "stream"], "f550", "M0 96C0 78.3 14.3 64 32 64l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96zM64 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L96 288c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z"], - "dharmachakra": [512, 512, [9784], "f655", "M337.8 205.7l48.6-42.5c13.8 19.3 23.4 41.9 27.4 66.2l-64.4 4.3c-2.4-10.1-6.4-19.5-11.6-28zm140.1 19.5c-5.3-38.8-20.6-74.5-43.2-104.3l.8-.7C449 108.4 449.7 87.6 437 75s-33.4-12-45.2 1.5l-.7 .8c-29.8-22.6-65.5-37.9-104.3-43.2l.1-1.1c1.2-17.9-13-33-30.9-33s-32.1 15.2-30.9 33l.1 1.1c-38.8 5.3-74.5 20.6-104.3 43.2l-.7-.8C108.4 63 87.6 62.3 75 75s-12 33.4 1.5 45.2l.8 .7c-22.6 29.8-37.9 65.5-43.2 104.3l-1.1-.1c-17.9-1.2-33 13-33 30.9s15.2 32.1 33 30.9l1.1-.1c5.3 38.8 20.6 74.5 43.2 104.3l-.8 .7C63 403.6 62.3 424.4 75 437s33.4 12 45.2-1.5l.7-.8c29.8 22.6 65.5 37.9 104.3 43.2l-.1 1.1c-1.2 17.9 13 33 30.9 33s32.1-15.2 30.9-33l-.1-1.1c38.8-5.3 74.5-20.6 104.3-43.2l.7 .8c11.8 13.5 32.5 14.2 45.2 1.5s12-33.4-1.5-45.2l-.8-.7c22.6-29.8 37.9-65.5 43.2-104.3l1.1 .1c17.9 1.2 33-13 33-30.9s-15.2-32.1-33-30.9l-1.1 .1zM163.2 125.6c19.3-13.8 41.9-23.4 66.2-27.5l4.3 64.4c-10 2.4-19.5 6.4-28 11.6l-42.5-48.6zm-65 103.8c4.1-24.4 13.7-46.9 27.5-66.2l48.6 42.5c-5.3 8.5-9.2 18-11.6 28l-64.4-4.3zm27.5 119.4c-13.8-19.3-23.4-41.9-27.5-66.2l64.4-4.3c2.4 10 6.4 19.5 11.6 28l-48.6 42.5zm103.8 65c-24.4-4.1-46.9-13.7-66.2-27.4l42.5-48.6c8.5 5.3 18 9.2 28 11.6l-4.3 64.4zm119.4-27.4c-19.3 13.8-41.9 23.4-66.2 27.4l-4.3-64.4c10-2.4 19.5-6.4 28-11.6l42.5 48.6zm65-103.8c-4.1 24.4-13.7 46.9-27.4 66.2l-48.6-42.5c5.3-8.5 9.2-18 11.6-28l64.4 4.3zm-65-156.9l-42.5 48.6c-8.5-5.3-18-9.2-28-11.6l4.3-64.4c24.4 4.1 46.9 13.7 66.2 27.5zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"], - "hotdog": [512, 512, [127789], "f80f", "M488.6 23.4c31.2 31.2 31.2 81.9 0 113.1l-352 352c-31.2 31.2-81.9 31.2-113.1 0s-31.2-81.9 0-113.1l352-352c31.2-31.2 81.9-31.2 113.1 0zM443.3 92.7c-6.2-6.2-16.4-6.2-22.6 0c-12.5 12.5-23.8 15.1-37.5 17.6l-2.5 .4c-13.8 2.5-31.6 5.6-48 22c-16.7 16.7-20.9 36-24.1 50.9c0 0 0 0 0 0s0 0 0 0l-.2 1c-3.4 15.6-6 26.4-15.7 36.1s-20.5 12.3-36.1 15.7l-1 .2c-14.9 3.2-34.2 7.4-50.9 24.1s-20.9 36-24.1 50.9l-.2 1c-3.4 15.6-6 26.4-15.7 36.1c-9.2 9.2-18 10.8-32.7 13.4c0 0 0 0 0 0l-.9 .2c-15.6 2.8-34.9 6.9-54.4 26.4c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0c12.5-12.5 23.8-15.1 37.5-17.6l2.5-.4c13.8-2.5 31.6-5.6 48-22c16.7-16.7 20.9-36 24.1-50.9l.2-1c3.4-15.6 6-26.4 15.7-36.1s20.5-12.3 36.1-15.7l1-.2c14.9-3.2 34.2-7.4 50.9-24.1s20.9-36 24.1-50.9l.2-1c3.4-15.6 6-26.4 15.7-36.1c9.2-9.2 18-10.8 32.7-13.4l.9-.2c15.6-2.8 34.9-6.9 54.4-26.4c6.2-6.2 6.2-16.4 0-22.6zM191.2 479.2l288-288L495 207c10.9 10.9 17 25.6 17 41s-6.1 30.1-17 41L289 495c-10.9 10.9-25.6 17-41 17s-30.1-6.1-41-17l-15.8-15.8zM17 305C6.1 294.1 0 279.4 0 264s6.1-30.1 17-41L223 17C233.9 6.1 248.6 0 264 0s30.1 6.1 41 17l15.8 15.8-288 288L17 305z"], - "person-walking-with-cane": [512, 512, ["blind"], "f29d", "M176 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8.4 32c-36.4 0-69.6 20.5-85.9 53.1L35.4 273.7c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3L128 231.6l0 43.2c0 17 6.7 33.3 18.7 45.3L224 397.3l0 82.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-89.4c0-12.7-5.1-24.9-14.1-33.9L224 306.7l0-93.4 70.4 93.9c10.6 14.1 30.7 17 44.8 6.4s17-30.7 6.4-44.8L268.8 166.4C250.7 142.2 222.2 128 192 128l-24.4 0zM128.3 346.8L97 472.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l22-88.2-52.8-52.8zM450.8 505.1c5 7.3 15 9.1 22.3 4s9.1-15 4-22.3L358.9 316.1c-2.8 3.8-6.1 7.3-10.1 10.3c-5 3.8-10.5 6.4-16.2 7.9L450.8 505.1z"], - "drum": [512, 512, [129345], "f569", "M501.2 76.1c11.1-7.3 14.2-22.1 6.9-33.2s-22.1-14.2-33.2-6.9L370.2 104.5C335.8 98.7 297 96 256 96C114.6 96 0 128 0 208L0 368c0 31.3 27.4 58.8 72 78.7L72 344c0-13.3 10.7-24 24-24s24 10.7 24 24l0 119.4c33 8.9 71.1 14.5 112 16.1L232 376c0-13.3 10.7-24 24-24s24 10.7 24 24l0 103.5c40.9-1.6 79-7.2 112-16.1L392 344c0-13.3 10.7-24 24-24s24 10.7 24 24l0 102.7c44.6-19.9 72-47.4 72-78.7l0-160c0-41.1-30.2-69.5-78.8-87.4l67.9-44.5zM307.4 145.6l-64.6 42.3c-11.1 7.3-14.2 22.1-6.9 33.2s22.1 14.2 33.2 6.9l111.1-72.8c14.7 3.2 27.9 7 39.4 11.5C458.4 181.8 464 197.4 464 208c0 .8-2.7 17.2-46 35.9C379.1 260.7 322 272 256 272s-123.1-11.3-162-28.1C50.7 225.2 48 208.8 48 208c0-10.6 5.6-26.2 44.4-41.3C130.6 151.9 187.8 144 256 144c18 0 35.1 .5 51.4 1.6z"], - "ice-cream": [448, 512, [127848], "f810", "M367.1 160c.6-5.3 .9-10.6 .9-16C368 64.5 303.5 0 224 0S80 64.5 80 144c0 5.4 .3 10.7 .9 16l-.9 0c-26.5 0-48 21.5-48 48s21.5 48 48 48l53.5 0 181 0 53.5 0c26.5 0 48-21.5 48-48s-21.5-48-48-48l-.9 0zM96 288L200.8 497.7c4.4 8.8 13.3 14.3 23.2 14.3s18.8-5.5 23.2-14.3L352 288 96 288z"], - "heart-circle-bolt": [576, 512, [], "e4fc", "M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6l0-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1l0 5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm47.9-225c4.3 3.7 5.4 9.9 2.6 14.9L452.4 356l35.6 0c5.2 0 9.8 3.3 11.4 8.2s-.1 10.3-4.2 13.4l-96 72c-4.5 3.4-10.8 3.2-15.1-.6s-5.4-9.9-2.6-14.9L411.6 380 376 380c-5.2 0-9.8-3.3-11.4-8.2s.1-10.3 4.2-13.4l96-72c4.5-3.4 10.8-3.2 15.1 .6z"], - "fax": [512, 512, [128224, 128439], "f1ac", "M128 64l0 96 64 0 0-96 194.7 0L416 93.3l0 66.7 64 0 0-66.7c0-17-6.7-33.3-18.7-45.3L432 18.7C420 6.7 403.7 0 386.7 0L192 0c-35.3 0-64 28.7-64 64zM0 160L0 480c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-320c0-17.7-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32zm480 32l-352 0 0 288c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32l0-256c0-17.7-14.3-32-32-32zM256 256a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM224 416a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"], - "paragraph": [448, 512, [182], "f1dd", "M192 32l64 0 160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 352c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-352-32 0 0 352c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-32 0c-88.4 0-160-71.6-160-160s71.6-160 160-160z"], - "check-to-slot": [576, 512, ["vote-yea"], "f772", "M96 80c0-26.5 21.5-48 48-48l288 0c26.5 0 48 21.5 48 48l0 304L96 384 96 80zm313 47c-9.4-9.4-24.6-9.4-33.9 0l-111 111-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L409 161c9.4-9.4 9.4-24.6 0-33.9zM0 336c0-26.5 21.5-48 48-48l16 0 0 128 448 0 0-128 16 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48l0-96z"], - "star-half": [576, 512, [61731], "f089", "M288 0c-12.2 .1-23.3 7-28.6 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3L288 439.8 288 0zM429.9 512c1.1 .1 2.1 .1 3.2 0l-3.2 0z"], - "boxes-stacked": [576, 512, [62625, "boxes", "boxes-alt"], "f468", "M248 0L208 0c-26.5 0-48 21.5-48 48l0 112c0 35.3 28.7 64 64 64l128 0c35.3 0 64-28.7 64-64l0-112c0-26.5-21.5-48-48-48L328 0l0 80c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-80zM64 256c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l160 0c35.3 0 64-28.7 64-64l0-128c0-35.3-28.7-64-64-64l-40 0 0 80c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-80-40 0zM352 512l160 0c35.3 0 64-28.7 64-64l0-128c0-35.3-28.7-64-64-64l-40 0 0 80c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-80-40 0c-15 0-28.8 5.1-39.7 13.8c4.9 10.4 7.7 22 7.7 34.2l0 160c0 12.2-2.8 23.8-7.7 34.2C323.2 506.9 337 512 352 512z"], - "link": [640, 512, [128279, "chain"], "f0c1", "M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z"], - "ear-listen": [512, 512, ["assistive-listening-systems"], "f2a2", "M398.3 3.4c-15.8-7.9-35-1.5-42.9 14.3c-7.9 15.8-1.5 34.9 14.2 42.9l.4 .2c.4 .2 1.1 .6 2.1 1.2c2 1.2 5 3 8.7 5.6c7.5 5.2 17.6 13.2 27.7 24.2C428.5 113.4 448 146 448 192c0 17.7 14.3 32 32 32s32-14.3 32-32c0-66-28.5-113.4-56.5-143.7C441.6 33.2 427.7 22.2 417.3 15c-5.3-3.7-9.7-6.4-13-8.3c-1.6-1-3-1.7-4-2.2c-.5-.3-.9-.5-1.2-.7l-.4-.2-.2-.1c0 0 0 0-.1 0c0 0 0 0 0 0L384 32 398.3 3.4zM128.7 227.5c6.2-56 53.7-99.5 111.3-99.5c61.9 0 112 50.1 112 112c0 29.3-11.2 55.9-29.6 75.9c-17 18.4-34.4 45.1-34.4 78l0 6.1c0 26.5-21.5 48-48 48c-17.7 0-32 14.3-32 32s14.3 32 32 32c61.9 0 112-50.1 112-112l0-6.1c0-9.8 5.4-21.7 17.4-34.7C398.3 327.9 416 286 416 240c0-97.2-78.8-176-176-176C149.4 64 74.8 132.5 65.1 220.5c-1.9 17.6 10.7 33.4 28.3 35.3s33.4-10.7 35.3-28.3zM32 512a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM192 352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0zM208 240c0-17.7 14.3-32 32-32s32 14.3 32 32c0 13.3 10.7 24 24 24s24-10.7 24-24c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 13.3 10.7 24 24 24s24-10.7 24-24z"], - "tree-city": [640, 512, [], "e587", "M288 48c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 144 40 0 0-72c0-13.3 10.7-24 24-24s24 10.7 24 24l0 72 24 0c26.5 0 48 21.5 48 48l0 224c0 26.5-21.5 48-48 48l-160 0-96 0c-26.5 0-48-21.5-48-48l0-416zm64 32l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM352 272l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm176-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM512 368l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM224 160c0 6-1 11-2 16c20 14 34 38 34 64c0 45-36 80-80 80l-16 0 0 160c0 18-15 32-32 32c-18 0-32-14-32-32l0-160-16 0c-45 0-80-35-80-80c0-26 13-50 33-64c-1-5-1-10-1-16c0-53 42-96 96-96c53 0 96 43 96 96z"], - "play": [384, 512, [9654], "f04b", "M73 39c-14.8-9.1-33.4-9.4-48.5-.9S0 62.6 0 80L0 432c0 17.4 9.4 33.4 24.5 41.9s33.7 8.1 48.5-.9L361 297c14.3-8.7 23-24.2 23-41s-8.7-32.2-23-41L73 39z"], - "font": [448, 512, [], "f031", "M254 52.8C249.3 40.3 237.3 32 224 32s-25.3 8.3-30 20.8L57.8 416 32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-1.8 0 18-48 159.6 0 18 48-1.8 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-25.8 0L254 52.8zM279.8 304l-111.6 0L224 155.1 279.8 304z"], - "table-cells-row-lock": [640, 512, [], "e67a", "M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 65.1c-37.8 5.4-69.4 29.6-85.2 62.9L360 224l0 64 56 0 0 8.6c-19.1 11.1-32 31.7-32 55.4l-24 0 0 64 24 0 0 64L64 480c-35.3 0-64-28.7-64-64L0 96zM64 224l0 64 88 0 0-64-88 0zm232 0l-88 0 0 64 88 0 0-64zM152 352l-88 0 0 64 88 0 0-64zm56 0l0 64 88 0 0-64-88 0zM528 240c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80l0 48c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l0-48z"], - "rupiah-sign": [512, 512, [], "e23d", "M0 64C0 46.3 14.3 32 32 32l80 0c79.5 0 144 64.5 144 144c0 58.8-35.2 109.3-85.7 131.7l51.4 128.4c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8L106.3 320 64 320l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 288 0 64zM64 256l48 0c44.2 0 80-35.8 80-80s-35.8-80-80-80L64 96l0 160zm256-96l80 0c61.9 0 112 50.1 112 112s-50.1 112-112 112l-48 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128 0-160c0-17.7 14.3-32 32-32zm80 160c26.5 0 48-21.5 48-48s-21.5-48-48-48l-48 0 0 96 48 0z"], - "magnifying-glass": [512, 512, [128269, "search"], "f002", "M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z"], - "table-tennis-paddle-ball": [512, 512, [127955, "ping-pong-paddle-ball", "table-tennis"], "f45d", "M416 288c-50.1 0-93.6 28.8-114.6 70.8L68.9 126.3l.6-.6 60.1-60.1c87.5-87.5 229.3-87.5 316.8 0c67.1 67.1 82.7 166.3 46.8 248.3C471.8 297.6 445 288 416 288zM49.3 151.9L290.1 392.7c-1.4 7.5-2.1 15.3-2.1 23.3c0 23.2 6.2 44.9 16.9 63.7c-3 .2-6.1 .3-9.2 .3l-2.7 0c-33.9 0-66.5-13.5-90.5-37.5l-9.8-9.8c-13.1-13.1-34.6-12.4-46.8 1.7L88.2 501c-5.8 6.7-14.2 10.7-23 11s-17.5-3.1-23.8-9.4l-32-32C3.1 464.3-.3 455.7 0 446.9s4.3-17.2 11-23l66.6-57.7c14-12.2 14.8-33.7 1.7-46.8l-9.8-9.8C45.5 285.5 32 252.9 32 219l0-2.7c0-22.8 6.1-44.9 17.3-64.3zM416 320a96 96 0 1 1 0 192 96 96 0 1 1 0-192z"], - "person-dots-from-line": [576, 512, ["diagnoses"], "f470", "M288 176A88 88 0 1 0 288 0a88 88 0 1 0 0 176zM78.7 372.9c15-12.5 50-34.4 97.3-50.1L176 432l224 0 0-109.3c47.3 15.8 82.3 37.7 97.3 50.1c20.4 17 50.6 14.2 67.6-6.1s14.2-50.6-6.1-67.6c-12-10-30.1-22.5-53.2-35C497.2 278.4 481.7 288 464 288c-26.5 0-48-21.5-48-48c0-4.3 .6-8.4 1.6-12.4C379.1 215.9 335.3 208 288 208c-60.2 0-114.9 12.9-160 29.9c0 .7 0 1.4 0 2.1c0 26.5-21.5 48-48 48c-11.8 0-22.7-4.3-31-11.4c-13.1 8.1-23.7 15.9-31.7 22.5c-20.4 17-23.1 47.2-6.1 67.6s47.2 23.1 67.6 6.1zM24 464c-13.3 0-24 10.7-24 24s10.7 24 24 24l528 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 464zM224 280a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm104 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM96 240a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm368 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32z"], - "trash-can-arrow-up": [448, 512, ["trash-restore-alt"], "f82a", "M163.8 0L284.2 0c12.1 0 23.2 6.8 28.6 17.7L320 32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 7.2-14.3C140.6 6.8 151.7 0 163.8 0zM32 128l384 0 0 320c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-320zm192 64c-6.4 0-12.5 2.5-17 7l-80 80c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39L200 408c0 13.3 10.7 24 24 24s24-10.7 24-24l0-134.1 39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-4.5-4.5-10.6-7-17-7z"], - "naira-sign": [448, 512, [], "e1f6", "M122.6 46.3c-7.8-11.7-22.4-17-35.9-12.9S64 49.9 64 64l0 192-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 100.2 0 97.2 145.8c7.8 11.7 22.4 17 35.9 12.9s22.7-16.5 22.7-30.6l0-128 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-192c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 192-57.5 0L122.6 46.3zM305.1 320l14.9 0 0 22.3L305.1 320zM185.5 256L128 256l0-86.3L185.5 256z"], - "cart-arrow-down": [576, 512, [], "f218", "M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48l45.5 0c3.8 0 7.1 2.7 7.9 6.5l51.6 271c6.5 34 36.2 58.5 70.7 58.5L488 384c13.3 0 24-10.7 24-24s-10.7-24-24-24l-288.3 0c-11.5 0-21.4-8.2-23.6-19.5L170.7 288l288.5 0c32.6 0 61.1-21.8 69.5-53.3l41-152.3C576.6 57 557.4 32 531.1 32L360 32l0 102.1 23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-64 64c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l23 23L312 32 120.1 32C111 12.8 91.6 0 69.5 0L24 0zM176 512a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm336-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z"], - "walkie-talkie": [384, 512, [], "f8ef", "M112 24c0-13.3-10.7-24-24-24S64 10.7 64 24l0 72L48 96C21.5 96 0 117.5 0 144L0 300.1c0 12.7 5.1 24.9 14.1 33.9l3.9 3.9c9 9 14.1 21.2 14.1 33.9L32 464c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-92.1c0-12.7 5.1-24.9 14.1-33.9l3.9-3.9c9-9 14.1-21.2 14.1-33.9L384 144c0-26.5-21.5-48-48-48l-16 0c0-17.7-14.3-32-32-32s-32 14.3-32 32l-32 0c0-17.7-14.3-32-32-32s-32 14.3-32 32l-48 0 0-72zm0 136l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"], - "file-pen": [576, 512, [128221, "file-edit"], "f31c", "M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 125.7-86.8 86.8c-10.3 10.3-17.5 23.1-21 37.2l-18.7 74.9c-2.3 9.2-1.8 18.8 1.3 27.5L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zM549.8 235.7l14.4 14.4c15.6 15.6 15.6 40.9 0 56.6l-29.4 29.4-71-71 29.4-29.4c15.6-15.6 40.9-15.6 56.6 0zM311.9 417L441.1 287.8l71 71L382.9 487.9c-4.1 4.1-9.2 7-14.9 8.4l-60.1 15c-5.5 1.4-11.2-.2-15.2-4.2s-5.6-9.7-4.2-15.2l15-60.1c1.4-5.6 4.3-10.8 8.4-14.9z"], - "receipt": [384, 512, [129534], "f543", "M14 2.2C22.5-1.7 32.5-.3 39.6 5.8L80 40.4 120.4 5.8c9-7.7 22.3-7.7 31.2 0L192 40.4 232.4 5.8c9-7.7 22.3-7.7 31.2 0L304 40.4 344.4 5.8c7.1-6.1 17.1-7.5 25.6-3.6s14 12.4 14 21.8l0 464c0 9.4-5.5 17.9-14 21.8s-18.5 2.5-25.6-3.6L304 471.6l-40.4 34.6c-9 7.7-22.3 7.7-31.2 0L192 471.6l-40.4 34.6c-9 7.7-22.3 7.7-31.2 0L80 471.6 39.6 506.2c-7.1 6.1-17.1 7.5-25.6 3.6S0 497.4 0 488L0 24C0 14.6 5.5 6.1 14 2.2zM96 144c-8.8 0-16 7.2-16 16s7.2 16 16 16l192 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L96 144zM80 352c0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L96 336c-8.8 0-16 7.2-16 16zM96 240c-8.8 0-16 7.2-16 16s7.2 16 16 16l192 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L96 240z"], - "square-pen": [448, 512, ["pen-square", "pencil-square"], "f14b", "M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM325.8 139.7l14.4 14.4c15.6 15.6 15.6 40.9 0 56.6l-21.4 21.4-71-71 21.4-21.4c15.6-15.6 40.9-15.6 56.6 0zM119.9 289L225.1 183.8l71 71L190.9 359.9c-4.1 4.1-9.2 7-14.9 8.4l-60.1 15c-5.5 1.4-11.2-.2-15.2-4.2s-5.6-9.7-4.2-15.2l15-60.1c1.4-5.6 4.3-10.8 8.4-14.9z"], - "suitcase-rolling": [384, 512, [], "f5c1", "M144 56c0-4.4 3.6-8 8-8l80 0c4.4 0 8 3.6 8 8l0 72-96 0 0-72zm176 72l-32 0 0-72c0-30.9-25.1-56-56-56L152 0C121.1 0 96 25.1 96 56l0 72-32 0c-35.3 0-64 28.7-64 64L0 416c0 35.3 28.7 64 64 64c0 17.7 14.3 32 32 32s32-14.3 32-32l128 0c0 17.7 14.3 32 32 32s32-14.3 32-32c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64zM112 224l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 128l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"], - "person-circle-exclamation": [576, 512, [], "e53f", "M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0-192c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z"], - "chevron-down": [512, 512, [], "f078", "M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z"], - "battery-full": [576, 512, [128267, "battery", "battery-5"], "f240", "M464 160c8.8 0 16 7.2 16 16l0 160c0 8.8-7.2 16-16 16L80 352c-8.8 0-16-7.2-16-16l0-160c0-8.8 7.2-16 16-16l384 0zM80 96C35.8 96 0 131.8 0 176L0 336c0 44.2 35.8 80 80 80l384 0c44.2 0 80-35.8 80-80l0-16c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-16c0-44.2-35.8-80-80-80L80 96zm368 96L96 192l0 128 352 0 0-128z"], - "skull-crossbones": [448, 512, [128369, 9760], "f714", "M368 128c0 44.4-25.4 83.5-64 106.4l0 21.6c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-21.6c-38.6-23-64-62.1-64-106.4C80 57.3 144.5 0 224 0s144 57.3 144 128zM168 176a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm144-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM3.4 273.7c7.9-15.8 27.1-22.2 42.9-14.3L224 348.2l177.7-88.8c15.8-7.9 35-1.5 42.9 14.3s1.5 35-14.3 42.9L295.6 384l134.8 67.4c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3L224 419.8 46.3 508.6c-15.8 7.9-35 1.5-42.9-14.3s-1.5-35 14.3-42.9L152.4 384 17.7 316.6C1.9 308.7-4.5 289.5 3.4 273.7z"], - "code-compare": [512, 512, [], "e13a", "M320 488c0 9.5-5.6 18.1-14.2 21.9s-18.8 2.3-25.8-4.1l-80-72c-5.1-4.6-7.9-11-7.9-17.8s2.9-13.3 7.9-17.8l80-72c7-6.3 17.2-7.9 25.8-4.1s14.2 12.4 14.2 21.9l0 40 16 0c35.3 0 64-28.7 64-64l0-166.7C371.7 141 352 112.8 352 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3L464 320c0 70.7-57.3 128-128 128l-16 0 0 40zM456 80a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM192 24c0-9.5 5.6-18.1 14.2-21.9s18.8-2.3 25.8 4.1l80 72c5.1 4.6 7.9 11 7.9 17.8s-2.9 13.3-7.9 17.8l-80 72c-7 6.3-17.2 7.9-25.8 4.1s-14.2-12.4-14.2-21.9l0-40-16 0c-35.3 0-64 28.7-64 64l0 166.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3L48 192c0-70.7 57.3-128 128-128l16 0 0-40zM56 432a24 24 0 1 0 48 0 24 24 0 1 0 -48 0z"], - "list-ul": [512, 512, ["list-dots"], "f0ca", "M64 144a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zM64 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm48-208a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z"], - "school-lock": [640, 512, [], "e56f", "M302.2 5.4c10.7-7.2 24.8-7.2 35.5 0L473.7 96 592 96c26.5 0 48 21.5 48 48l0 128c0-61.9-50.1-112-112-112s-112 50.1-112 112l0 24.6c-19.1 11.1-32 31.7-32 55.4l-63.7 0-.3 0c-35.3 0-64 28.7-64 64l0 96 64 0s0 0 0 0L48 512c-26.5 0-48-21.5-48-48L0 144c0-26.5 21.5-48 48-48l118.3 0L302.2 5.4zM80 208l0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm0 128l0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm240-72a88 88 0 1 0 0-176 88 88 0 1 0 0 176zm16-120l0 16 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16s16 7.2 16 16zm192 96c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80l0 48c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l0-48z"], - "tower-cell": [576, 512, [], "e585", "M62.6 2.3C46.2-4.3 27.6 3.6 20.9 20C7.4 53.4 0 89.9 0 128s7.4 74.6 20.9 108c6.6 16.4 25.3 24.3 41.7 17.7S86.9 228.4 80.3 212C69.8 186.1 64 157.8 64 128s5.8-58.1 16.3-84C86.9 27.6 79 9 62.6 2.3zm450.8 0C497 9 489.1 27.6 495.7 44C506.2 69.9 512 98.2 512 128s-5.8 58.1-16.3 84c-6.6 16.4 1.3 35 17.7 41.7s35-1.3 41.7-17.7c13.5-33.4 20.9-69.9 20.9-108s-7.4-74.6-20.9-108C548.4 3.6 529.8-4.3 513.4 2.3zM340.1 165.2c7.5-10.5 11.9-23.3 11.9-37.2c0-35.3-28.7-64-64-64s-64 28.7-64 64c0 13.9 4.4 26.7 11.9 37.2L98.9 466.8c-7.3 16.1-.2 35.1 15.9 42.4s35.1 .2 42.4-15.9L177.7 448l220.6 0 20.6 45.2c7.3 16.1 26.3 23.2 42.4 15.9s23.2-26.3 15.9-42.4L340.1 165.2zM369.2 384l-162.4 0 14.5-32 133.3 0 14.5 32zM288 205.3L325.6 288l-75.2 0L288 205.3zM163.3 73.6c5.3-12.1-.2-26.3-12.4-31.6s-26.3 .2-31.6 12.4C109.5 77 104 101.9 104 128s5.5 51 15.3 73.6c5.3 12.1 19.5 17.7 31.6 12.4s17.7-19.5 12.4-31.6C156 165.8 152 147.4 152 128s4-37.8 11.3-54.4zM456.7 54.4c-5.3-12.1-19.5-17.7-31.6-12.4s-17.7 19.5-12.4 31.6C420 90.2 424 108.6 424 128s-4 37.8-11.3 54.4c-5.3 12.1 .2 26.3 12.4 31.6s26.3-.2 31.6-12.4C466.5 179 472 154.1 472 128s-5.5-51-15.3-73.6z"], - "down-long": [320, 512, ["long-arrow-alt-down"], "f309", "M2 334.5c-3.8 8.8-2 19 4.6 26l136 144c4.5 4.8 10.8 7.5 17.4 7.5s12.9-2.7 17.4-7.5l136-144c6.6-7 8.4-17.2 4.6-26s-12.5-14.5-22-14.5l-72 0 0-288c0-17.7-14.3-32-32-32L128 0C110.3 0 96 14.3 96 32l0 288-72 0c-9.6 0-18.2 5.7-22 14.5z"], - "ranking-star": [640, 512, [], "e561", "M353.8 54.1L330.2 6.3c-3.9-8.3-16.1-8.6-20.4 0L286.2 54.1l-52.3 7.5c-9.3 1.4-13.3 12.9-6.4 19.8l38 37-9 52.1c-1.4 9.3 8.2 16.5 16.8 12.2l46.9-24.8 46.6 24.4c8.6 4.3 18.3-2.9 16.8-12.2l-9-52.1 38-36.6c6.8-6.8 2.9-18.3-6.4-19.8l-52.3-7.5zM256 256c-17.7 0-32 14.3-32 32l0 192c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-192c0-17.7-14.3-32-32-32l-128 0zM32 320c-17.7 0-32 14.3-32 32L0 480c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32L32 320zm416 96l0 64c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-128 0c-17.7 0-32 14.3-32 32z"], - "chess-king": [448, 512, [9818], "f43f", "M224 0c17.7 0 32 14.3 32 32l0 16 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 48 152 0c22.1 0 40 17.9 40 40c0 5.3-1 10.5-3.1 15.4L368 400 80 400 3.1 215.4C1 210.5 0 205.3 0 200c0-22.1 17.9-40 40-40l152 0 0-48-16 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-16c0-17.7 14.3-32 32-32zM38.6 473.4L80 432l288 0 41.4 41.4c4.2 4.2 6.6 10 6.6 16c0 12.5-10.1 22.6-22.6 22.6L54.6 512C42.1 512 32 501.9 32 489.4c0-6 2.4-11.8 6.6-16z"], - "person-harassing": [576, 512, [], "e549", "M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM59.4 304.5L88 256.9 88 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-244.7 47.4 57.1c11.3 13.6 31.5 15.5 45.1 4.2s15.5-31.5 4.2-45.1l-73.7-88.9c-18.2-22-45.3-34.7-73.9-34.7l-35.9 0c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9zM480 240a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM464 344l0 58.7-41.4-41.4c-7.3-7.3-17.6-10.6-27.8-9s-18.9 8.1-23.5 17.3l-48 96c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3L408.8 438l54.7 54.7c12.4 12.4 29.1 19.3 46.6 19.3c36.4 0 65.9-29.5 65.9-65.9L576 344c0-30.9-25.1-56-56-56s-56 25.1-56 56zM288 48c0 8.8 7.2 16 16 16l56 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-56 0c-8.8 0-16 7.2-16 16zm-.8 49.7c-7.9-4-17.5-.7-21.5 7.2s-.7 17.5 7.2 21.5l48 24c7.9 4 17.5 .7 21.5-7.2s.7-17.5-7.2-21.5l-48-24z"], - "brazilian-real-sign": [512, 512, [], "e46c", "M400 0c17.7 0 32 14.3 32 32l0 18.2c12.5 2.3 24.7 6.4 36.2 12.1l10.1 5.1c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3l-10.2-5.1c-9.9-5-20.9-7.5-32-7.5l-1.7 0c-29.8 0-53.9 24.1-53.9 53.9c0 22 13.4 41.8 33.9 50l52 20.8c44.7 17.9 74.1 61.2 74.1 109.4l0 3.4c0 51.2-33.6 94.6-80 109.2l0 21.3c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-19.4c-15-3.5-29.4-9.7-42.3-18.3l-23.4-15.6c-14.7-9.8-18.7-29.7-8.9-44.4s29.7-18.7 44.4-8.9L361.2 389c10.8 7.2 23.4 11 36.3 11c27.9 0 50.5-22.6 50.5-50.5l0-3.4c0-22-13.4-41.8-33.9-50l-52-20.8C317.3 257.4 288 214.1 288 165.9C288 114 321.5 70 368 54.2L368 32c0-17.7 14.3-32 32-32zM0 64C0 46.3 14.3 32 32 32l80 0c79.5 0 144 64.5 144 144c0 58.8-35.2 109.3-85.7 131.7l51.4 128.4c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8L106.3 320 64 320l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 288 0 64zM64 256l48 0c44.2 0 80-35.8 80-80s-35.8-80-80-80L64 96l0 160z"], - "landmark-dome": [512, 512, ["landmark-alt"], "f752", "M248 0l16 0c13.3 0 24 10.7 24 24l0 10.7C368.4 48.1 431.9 111.6 445.3 192l2.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 256c-17.7 0-32-14.3-32-32s14.3-32 32-32l2.7 0C80.1 111.6 143.6 48.1 224 34.7L224 24c0-13.3 10.7-24 24-24zM64 288l64 0 0 128 40 0 0-128 64 0 0 128 48 0 0-128 64 0 0 128 40 0 0-128 64 0 0 132.3c.6 .3 1.2 .7 1.8 1.1l48 32c11.7 7.8 17 22.4 12.9 35.9S494.1 512 480 512L32 512c-14.1 0-26.5-9.2-30.6-22.7s1.1-28.1 12.9-35.9l48-32c.6-.4 1.2-.7 1.8-1.1L64 288z"], - "arrow-up": [384, 512, [8593], "f062", "M214.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 141.2 160 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7L329.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160z"], - "tv": [640, 512, [63717, "television", "tv-alt"], "f26c", "M64 64l0 288 512 0 0-288L64 64zM0 64C0 28.7 28.7 0 64 0L576 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 416c-35.3 0-64-28.7-64-64L0 64zM128 448l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-384 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z"], - "shrimp": [512, 512, [129424], "e448", "M64 32C28.7 32 0 60.7 0 96s28.7 64 64 64l1 0c3.7 88.9 77 160 167 160l56 0 0-192-24 0L88.8 128 64 128c-17.7 0-32-14.3-32-32s14.3-32 32-32l400 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L64 32zM224 456c0 13.3 10.7 24 24 24l72 0 0-72.2-64.1-22.4c-12.5-4.4-26.2 2.2-30.6 14.7s2.2 26.2 14.7 30.6l4.5 1.6C233 433.9 224 443.9 224 456zm128 23.3c36.4-3.3 69.5-17.6 96.1-39.6l-86.5-34.6c-3 1.8-6.2 3.2-9.6 4.3l0 69.9zM472.6 415c24.6-30.3 39.4-68.9 39.4-111c0-12.3-1.3-24.3-3.7-35.9L382.8 355.1c.8 3.4 1.2 7 1.2 10.6c0 4.6-.7 9-1.9 13.1L472.6 415zM336 128l-16 0 0 192 18.3 0c9.9 0 19.1 3.2 26.6 8.5l133.5-92.4C471.8 172.6 409.1 128 336 128zM168 192a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"], - "list-check": [512, 512, ["tasks"], "f0ae", "M152.1 38.2c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 113C-2.3 103.6-2.3 88.4 7 79s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zm0 160c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 273c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zM224 96c0-17.7 14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32zm0 160c0-17.7 14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32zM160 416c0-17.7 14.3-32 32-32l288 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-288 0c-17.7 0-32-14.3-32-32zM48 368a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"], - "jug-detergent": [384, 512, [], "e519", "M96 24c0-13.3 10.7-24 24-24l80 0c13.3 0 24 10.7 24 24l0 24 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 96C74.7 96 64 85.3 64 72s10.7-24 24-24l8 0 0-24zM0 256c0-70.7 57.3-128 128-128l128 0c70.7 0 128 57.3 128 128l0 192c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 256zm256 0l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32z"], - "circle-user": [512, 512, [62142, "user-circle"], "f2bd", "M399 384.2C376.9 345.8 335.4 320 288 320l-64 0c-47.4 0-88.9 25.8-111 64.2c35.2 39.2 86.2 63.8 143 63.8s107.8-24.7 143-63.8zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256 16a72 72 0 1 0 0-144 72 72 0 1 0 0 144z"], - "user-shield": [640, 512, [], "f505", "M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512l388.6 0c1.8 0 3.5-.2 5.3-.5c-76.3-55.1-99.8-141-103.1-200.2c-16.1-4.8-33.1-7.3-50.7-7.3l-91.4 0zm308.8-78.3l-120 48C358 277.4 352 286.2 352 296c0 63.3 25.9 168.8 134.8 214.2c5.9 2.5 12.6 2.5 18.5 0C614.1 464.8 640 359.3 640 296c0-9.8-6-18.6-15.1-22.3l-120-48c-5.7-2.3-12.1-2.3-17.8 0zM591.4 312c-3.9 50.7-27.2 116.7-95.4 149.7l0-187.8L591.4 312z"], - "wind": [512, 512, [], "f72e", "M288 32c0 17.7 14.3 32 32 32l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l320 0c53 0 96-43 96-96s-43-96-96-96L320 0c-17.7 0-32 14.3-32 32zm64 352c0 17.7 14.3 32 32 32l32 0c53 0 96-43 96-96s-43-96-96-96L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c-17.7 0-32 14.3-32 32zM128 512l32 0c53 0 96-43 96-96s-43-96-96-96L32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32z"], - "car-burst": [640, 512, ["car-crash"], "f5e1", "M176 8c-6.6 0-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6l35.3-32.5 9.5-35.4 10.4-38.6c8-29.9 30.5-52.1 57.9-60.9l41-59.2c11.3-16.3 26.4-28.9 43.5-37.2c-.4-.6-.8-1.2-1.3-1.8c-4.1-5.1-10.9-7.2-17.2-5.3L220.3 92.1l-29.4-74C188.4 12 182.6 8 176 8zM367.7 161.5l135.6 36.3c6.5 1.8 11.3 7.4 11.8 14.2l4.6 56.5-201.5-54 32.2-46.6c3.8-5.6 10.8-8.1 17.3-6.4zm-69.9-30l-47.9 69.3c-21.6 3-40.3 18.6-46.3 41l-10.4 38.6-16.6 61.8-8.3 30.9c-4.6 17.1 5.6 34.6 22.6 39.2l15.5 4.1c17.1 4.6 34.6-5.6 39.2-22.6l8.3-30.9 247.3 66.3-8.3 30.9c-4.6 17.1 5.6 34.6 22.6 39.2l15.5 4.1c17.1 4.6 34.6-5.6 39.2-22.6l8.3-30.9L595 388l10.4-38.6c6-22.4-2.5-45.2-19.6-58.7l-6.8-84c-2.7-33.7-26.4-62-59-70.8L384.2 99.7c-32.7-8.8-67.3 4-86.5 31.8zm-17 131a24 24 0 1 1 -12.4 46.4 24 24 0 1 1 12.4-46.4zm217.9 83.2A24 24 0 1 1 545 358.1a24 24 0 1 1 -46.4-12.4z"], - "y": [384, 512, [121], "59", "M58 45.4C47.8 31 27.8 27.7 13.4 38S-4.3 68.2 6 82.6L160 298.3 160 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-149.7L378 82.6c10.3-14.4 6.9-34.4-7.4-44.6S336.2 31 326 45.4L192 232.9 58 45.4z"], - "person-snowboarding": [512, 512, [127938, "snowboarding"], "f7ce", "M209.7 3.4c15.8-7.9 35-1.5 42.9 14.3l25 50 42.4 8.5c19.5 3.9 37.8 12.3 53.5 24.5l126.1 98.1c14 10.9 16.5 31 5.6 44.9s-31 16.5-44.9 5.6l-72.1-56.1-71.5 31.8 33.1 27.6c23.2 19.3 33.5 50 26.7 79.4l-17.4 75.2c-2.2 9.4-8.2 16.8-16.1 21l86.5 33.1c4.6 1.8 9.4 2.6 14.3 2.6l28.2 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-28.2 0c-10.8 0-21.4-2-31.5-5.8L60.1 371.3c-11.5-4.4-22-11.2-30.8-20L7 329c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.4 22.4c4 4 8.7 7.1 14 9.1l22.4 8.6c-.8-1.6-1.5-3.2-2.1-4.9c-5.6-16.8 3.5-34.9 20.2-40.5L192 264.9l0-53.2c0-24.2 13.7-46.4 35.4-57.2l45.2-22.6-7.5-1.5c-19.4-3.9-35.9-16.5-44.7-34.1l-25-50c-7.9-15.8-1.5-35 14.3-42.9zM139 350.1l159 60.9c-2.1-5.6-2.6-11.9-1.1-18.2l17.4-75.2c1.4-5.9-.7-12-5.3-15.9l-52.8-44 0 18.8c0 20.7-13.2 39-32.8 45.5L139 350.1zM432 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"], - "truck-fast": [640, 512, ["shipping-fast"], "f48b", "M112 0C85.5 0 64 21.5 64 48l0 48L16 96c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 208 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L64 160l-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l16 0 176 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L64 224l-48 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 144 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L64 288l0 128c0 53 43 96 96 96s96-43 96-96l128 0c0 53 43 96 96 96s96-43 96-96l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-64 0-32 0-18.7c0-17-6.7-33.3-18.7-45.3L512 114.7c-12-12-28.3-18.7-45.3-18.7L416 96l0-48c0-26.5-21.5-48-48-48L112 0zM544 237.3l0 18.7-128 0 0-96 50.7 0L544 237.3zM160 368a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm272 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z"], - "fish": [576, 512, [128031], "f578", "M180.5 141.5C219.7 108.5 272.6 80 336 80s116.3 28.5 155.5 61.5c39.1 33 66.9 72.4 81 99.8c4.7 9.2 4.7 20.1 0 29.3c-14.1 27.4-41.9 66.8-81 99.8C452.3 403.5 399.4 432 336 432s-116.3-28.5-155.5-61.5c-16.2-13.7-30.5-28.5-42.7-43.1L48.1 379.6c-12.5 7.3-28.4 5.3-38.7-4.9S-3 348.7 4.2 336.1L50 256 4.2 175.9c-7.2-12.6-5-28.4 5.3-38.6s26.1-12.2 38.7-4.9l89.7 52.3c12.2-14.6 26.5-29.4 42.7-43.1zM448 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"], - "user-graduate": [448, 512, [], "f501", "M219.3 .5c3.1-.6 6.3-.6 9.4 0l200 40C439.9 42.7 448 52.6 448 64s-8.1 21.3-19.3 23.5L352 102.9l0 57.1c0 70.7-57.3 128-128 128s-128-57.3-128-128l0-57.1L48 93.3l0 65.1 15.7 78.4c.9 4.7-.3 9.6-3.3 13.3s-7.6 5.9-12.4 5.9l-32 0c-4.8 0-9.3-2.1-12.4-5.9s-4.3-8.6-3.3-13.3L16 158.4l0-71.8C6.5 83.3 0 74.3 0 64C0 52.6 8.1 42.7 19.3 40.5l200-40zM111.9 327.7c10.5-3.4 21.8 .4 29.4 8.5l71 75.5c6.3 6.7 17 6.7 23.3 0l71-75.5c7.6-8.1 18.9-11.9 29.4-8.5C401 348.6 448 409.4 448 481.3c0 17-13.8 30.7-30.7 30.7L30.7 512C13.8 512 0 498.2 0 481.3c0-71.9 47-132.7 111.9-153.6z"], - "circle-half-stroke": [512, 512, [9680, "adjust"], "f042", "M448 256c0-106-86-192-192-192l0 384c106 0 192-86 192-192zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z"], - "clapperboard": [512, 512, [], "e131", "M448 32l-86.1 0-1 1-127 127 92.1 0 1-1L453.8 32.3c-1.9-.2-3.8-.3-5.8-.3zm64 128l0-64c0-15.1-5.3-29.1-14-40l-104 104L512 160zM294.1 32l-92.1 0-1 1L73.9 160l92.1 0 1-1 127-127zM64 32C28.7 32 0 60.7 0 96l0 64 6.1 0 1-1 127-127L64 32zM512 192L0 192 0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-224z"], - "circle-radiation": [512, 512, [9762, "radiation-alt"], "f7ba", "M256 64a192 192 0 1 1 0 384 192 192 0 1 1 0-384zm0 448A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM200 256c0-20.7 11.3-38.8 28-48.5l-36-62.3c-8.8-15.3-28.7-20.8-42-9c-25.6 22.6-43.9 53.3-50.9 88.1C95.7 241.5 110.3 256 128 256l72 0zm28 48.5l-36 62.4c-8.8 15.3-3.6 35.2 13.1 40.8c16 5.4 33.1 8.3 50.9 8.3s34.9-2.9 50.9-8.3c16.7-5.6 21.9-25.5 13.1-40.8l-36-62.4c-8.2 4.8-17.8 7.5-28 7.5s-19.8-2.7-28-7.5zM312 256l72 0c17.7 0 32.3-14.5 28.8-31.8c-7-34.8-25.3-65.5-50.9-88.1c-13.2-11.7-33.1-6.3-42 9l-36 62.3c16.7 9.7 28 27.8 28 48.5zm-56 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"], - "baseball": [512, 512, [129358, 9918, "baseball-ball"], "f433", "M62.7 223.4c-4.8 .4-9.7 .6-14.7 .6c-15.6 0-30.8-2-45.2-5.9C19.2 107.1 107.1 19.2 218.1 2.8C222 17.2 224 32.4 224 48c0 4.9-.2 9.8-.6 14.7c-.7 8.8 5.8 16.5 14.6 17.3s16.5-5.8 17.3-14.6c.5-5.7 .7-11.5 .7-17.3c0-16.5-1.9-32.6-5.6-47.9c1.8 0 3.7-.1 5.6-.1C397.4 0 512 114.6 512 256c0 1.9 0 3.7-.1 5.6c-15.4-3.6-31.4-5.6-47.9-5.6c-5.8 0-11.6 .2-17.3 .7c-8.8 .7-15.4 8.5-14.6 17.3s8.5 15.4 17.3 14.6c4.8-.4 9.7-.6 14.7-.6c15.6 0 30.8 2 45.2 5.9C492.8 404.9 404.9 492.8 293.9 509.2C290 494.8 288 479.6 288 464c0-4.9 .2-9.8 .6-14.7c.7-8.8-5.8-16.5-14.6-17.3s-16.5 5.8-17.3 14.6c-.5 5.7-.7 11.5-.7 17.3c0 16.5 1.9 32.6 5.6 47.9c-1.8 0-3.7 .1-5.6 .1C114.6 512 0 397.4 0 256c0-1.9 0-3.7 .1-5.6C15.4 254.1 31.5 256 48 256c5.8 0 11.6-.2 17.3-.7c8.8-.7 15.4-8.5 14.6-17.3s-8.5-15.4-17.3-14.6zM121.3 208c-8 3.7-11.6 13.2-7.9 21.2s13.2 11.6 21.2 7.9c45.2-20.8 81.7-57.2 102.5-102.5c3.7-8 .2-17.5-7.9-21.2s-17.5-.2-21.2 7.9c-17.6 38.3-48.5 69.2-86.7 86.7zm277.2 74.7c-3.7-8-13.2-11.6-21.2-7.9c-45.2 20.8-81.7 57.2-102.5 102.5c-3.7 8-.2 17.5 7.9 21.2s17.5 .2 21.2-7.9c17.6-38.3 48.5-69.2 86.7-86.7c8-3.7 11.6-13.2 7.9-21.2z"], - "jet-fighter-up": [512, 512, [], "e518", "M270.7 9.7C268.2 3.8 262.4 0 256 0s-12.2 3.8-14.7 9.7L197.2 112.6c-3.4 8-5.2 16.5-5.2 25.2l0 77-144 84L48 280c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 56 0 32 0 24c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8 144 0 0 32.7L133.5 468c-3.5 3-5.5 7.4-5.5 12l0 16c0 8.8 7.2 16 16 16l96 0 0-64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64 96 0c8.8 0 16-7.2 16-16l0-16c0-4.6-2-9-5.5-12L320 416.7l0-32.7 144 0 0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-24 0-32 0-56c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 18.8-144-84 0-77c0-8.7-1.8-17.2-5.2-25.2L270.7 9.7z"], - "diagram-project": [576, 512, ["project-diagram"], "f542", "M0 80C0 53.5 21.5 32 48 32l96 0c26.5 0 48 21.5 48 48l0 16 192 0 0-16c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-16-192 0 0 16c0 1.7-.1 3.4-.3 5L272 288l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-96c0-1.7 .1-3.4 .3-5L144 224l-96 0c-26.5 0-48-21.5-48-48L0 80z"], - "copy": [448, 512, [], "f0c5", "M208 0L332.1 0c12.7 0 24.9 5.1 33.9 14.1l67.9 67.9c9 9 14.1 21.2 14.1 33.9L448 336c0 26.5-21.5 48-48 48l-192 0c-26.5 0-48-21.5-48-48l0-288c0-26.5 21.5-48 48-48zM48 128l80 0 0 64-64 0 0 256 192 0 0-32 64 0 0 48c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 176c0-26.5 21.5-48 48-48z"], - "volume-xmark": [576, 512, ["volume-mute", "volume-times"], "f6a9", "M301.1 34.8C312.6 40 320 51.4 320 64l0 384c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352 64 352c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l67.8 0L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3zM425 167l55 55 55-55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-55 55 55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-55-55-55 55c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l55-55-55-55c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z"], - "hand-sparkles": [640, 512, [], "e05d", "M320 0c17.7 0 32 14.3 32 32l0 208c0 8.8 7.2 16 16 16s16-7.2 16-16l0-176c0-17.7 14.3-32 32-32s32 14.3 32 32l0 176c0 8.8 7.2 16 16 16s16-7.2 16-16l0-112c0-17.7 14.3-32 32-32s32 14.3 32 32l0 195.1c-11.9 4.8-21.3 14.9-25 27.8l-8.9 31.2L478.9 391C460.6 396.3 448 413 448 432c0 18.9 12.5 35.6 30.6 40.9C448.4 497.4 409.9 512 368 512l-19.2 0c-59.6 0-116.9-22.9-160-64L76.4 341c-16-15.2-16.6-40.6-1.4-56.6s40.6-16.6 56.6-1.4l60.5 57.6c0-1.5-.1-3.1-.1-4.6l0-272c0-17.7 14.3-32 32-32s32 14.3 32 32l0 176c0 8.8 7.2 16 16 16s16-7.2 16-16l0-208c0-17.7 14.3-32 32-32zm-7.3 326.6c-1.1-3.9-4.7-6.6-8.7-6.6s-7.6 2.7-8.7 6.6L288 352l-25.4 7.3c-3.9 1.1-6.6 4.7-6.6 8.7s2.7 7.6 6.6 8.7L288 384l7.3 25.4c1.1 3.9 4.7 6.6 8.7 6.6s7.6-2.7 8.7-6.6L320 384l25.4-7.3c3.9-1.1 6.6-4.7 6.6-8.7s-2.7-7.6-6.6-8.7L320 352l-7.3-25.4zM104 120l48.3 13.8c4.6 1.3 7.7 5.5 7.7 10.2s-3.1 8.9-7.7 10.2L104 168 90.2 216.3c-1.3 4.6-5.5 7.7-10.2 7.7s-8.9-3.1-10.2-7.7L56 168 7.7 154.2C3.1 152.9 0 148.7 0 144s3.1-8.9 7.7-10.2L56 120 69.8 71.7C71.1 67.1 75.3 64 80 64s8.9 3.1 10.2 7.7L104 120zM584 408l48.3 13.8c4.6 1.3 7.7 5.5 7.7 10.2s-3.1 8.9-7.7 10.2L584 456l-13.8 48.3c-1.3 4.6-5.5 7.7-10.2 7.7s-8.9-3.1-10.2-7.7L536 456l-48.3-13.8c-4.6-1.3-7.7-5.5-7.7-10.2s3.1-8.9 7.7-10.2L536 408l13.8-48.3c1.3-4.6 5.5-7.7 10.2-7.7s8.9 3.1 10.2 7.7L584 408z"], - "grip": [448, 512, ["grip-horizontal"], "f58d", "M128 136c0-22.1-17.9-40-40-40L40 96C17.9 96 0 113.9 0 136l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48zm0 192c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48zm32-192l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zM288 328c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48zm32-192l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zM448 328c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48z"], - "share-from-square": [576, 512, [61509, "share-square"], "f14d", "M352 224l-46.5 0c-45 0-81.5 36.5-81.5 81.5c0 22.3 10.3 34.3 19.2 40.5c6.8 4.7 12.8 12 12.8 20.3c0 9.8-8 17.8-17.8 17.8l-2.5 0c-2.4 0-4.8-.4-7.1-1.4C210.8 374.8 128 333.4 128 240c0-79.5 64.5-144 144-144l80 0 0-61.3C352 15.5 367.5 0 386.7 0c8.6 0 16.8 3.2 23.2 8.9L548.1 133.3c7.6 6.8 11.9 16.5 11.9 26.7s-4.3 19.9-11.9 26.7l-139 125.1c-5.9 5.3-13.5 8.2-21.4 8.2l-3.7 0c-17.7 0-32-14.3-32-32l0-64zM80 96c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-48c0-17.7 14.3-32 32-32s32 14.3 32 32l0 48c0 44.2-35.8 80-80 80L80 512c-44.2 0-80-35.8-80-80L0 112C0 67.8 35.8 32 80 32l48 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 96z"], - "child-combatant": [576, 512, ["child-rifle"], "e4e0", "M176 128A64 64 0 1 0 176 0a64 64 0 1 0 0 128zm-8 352l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-179.5L260.9 321c9.4 15 29.2 19.4 44.1 10s19.4-29.2 10-44.1l-51.7-82.1c-17.6-27.9-48.3-44.9-81.2-44.9l-12.3 0c-33 0-63.7 16.9-81.2 44.9L36.9 287c-9.4 15-4.9 34.7 10 44.1s34.7 4.9 44.1-10L104 300.5 104 480c0 17.7 14.3 32 32 32s32-14.3 32-32zM448 0L432 0 416 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l0 100.3c-9.6 5.5-16 15.9-16 27.7l0 32c-17.7 0-32 14.3-32 32l0 144c0 17.7 14.3 32 32 32l16 0 0 96c0 8.8 7.2 16 16 16l59.5 0c10.4 0 18-9.8 15.5-19.9L484 400l44 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-48 0 0-26.7 53.1-17.7c6.5-2.2 10.9-8.3 10.9-15.2l0-84.5c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16l0 56-16 5.3L480 160c0-11.8-6.4-22.2-16-27.7L464 16c0-8.8-7.2-16-16-16z"], - "gun": [576, 512, [], "e19b", "M528 56c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 8L32 64C14.3 64 0 78.3 0 96L0 208c0 17.7 14.3 32 32 32l10 0c20.8 0 36.1 19.6 31 39.8L33 440.2c-2.4 9.6-.2 19.7 5.8 27.5S54.1 480 64 480l96 0c14.7 0 27.5-10 31-24.2L217 352l104.5 0c23.7 0 44.8-14.9 52.7-37.2L400.9 240l31.1 0c8.5 0 16.6-3.4 22.6-9.4L477.3 208l66.7 0c17.7 0 32-14.3 32-32l0-80c0-17.7-14.3-32-32-32l-16 0 0-8zM321.4 304L229 304l16-64 105 0-21 58.7c-1.1 3.2-4.2 5.3-7.5 5.3zM80 128l384 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 160c-8.8 0-16-7.2-16-16s7.2-16 16-16z"], - "square-phone": [448, 512, ["phone-square"], "f098", "M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm90.7 96.7c9.7-2.6 19.9 2.3 23.7 11.6l20 48c3.4 8.2 1 17.6-5.8 23.2L168 231.7c16.6 35.2 45.1 63.7 80.3 80.3l20.2-24.7c5.6-6.8 15-9.2 23.2-5.8l48 20c9.3 3.9 14.2 14 11.6 23.7l-12 44C336.9 378 329 384 320 384C196.3 384 96 283.7 96 160c0-9 6-16.9 14.7-19.3l44-12z"], - "plus": [448, 512, [10133, 61543, "add"], "2b", "M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 144L48 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l144 0 0 144c0 17.7 14.3 32 32 32s32-14.3 32-32l0-144 144 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-144 0 0-144z"], - "expand": [448, 512, [], "f065", "M32 32C14.3 32 0 46.3 0 64l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM64 352c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-64zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-96 0zM448 352c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-96z"], - "computer": [640, 512, [], "e4e5", "M384 96l0 224L64 320 64 96l320 0zM64 32C28.7 32 0 60.7 0 96L0 320c0 35.3 28.7 64 64 64l117.3 0-10.7 32L96 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-74.7 0-10.7-32L384 384c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L64 32zm464 0c-26.5 0-48 21.5-48 48l0 352c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48l-64 0zm16 64l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm-16 80c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16zm32 160a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"], - "xmark": [384, 512, [128473, 10005, 10006, 10060, 215, "close", "multiply", "remove", "times"], "f00d", "M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z"], - "arrows-up-down-left-right": [512, 512, ["arrows"], "f047", "M278.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l9.4-9.4L224 224l-114.7 0 9.4-9.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4L224 288l0 114.7-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-9.4 9.4L288 288l114.7 0-9.4 9.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4L288 224l0-114.7 9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64z"], - "chalkboard-user": [640, 512, ["chalkboard-teacher"], "f51c", "M160 64c0-35.3 28.7-64 64-64L576 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64l-239.2 0c-11.8-25.5-29.9-47.5-52.4-64l99.6 0 0-32c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 32 64 0 0-288L224 64l0 49.1C205.2 102.2 183.3 96 160 96l0-32zm0 64a96 96 0 1 1 0 192 96 96 0 1 1 0-192zM133.3 352l53.3 0C260.3 352 320 411.7 320 485.3c0 14.7-11.9 26.7-26.7 26.7L26.7 512C11.9 512 0 500.1 0 485.3C0 411.7 59.7 352 133.3 352z"], - "peso-sign": [384, 512, [], "e222", "M64 32C46.3 32 32 46.3 32 64l0 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 64 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 80 0c68.4 0 127.7-39 156.8-96l19.2 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-.7 0c.5-5.3 .7-10.6 .7-16s-.2-10.7-.7-16l.7 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-19.2 0C303.7 71 244.4 32 176 32L64 32zm190.4 96L96 128l0-32 80 0c30.5 0 58.2 12.2 78.4 32zM96 192l190.9 0c.7 5.2 1.1 10.6 1.1 16s-.4 10.8-1.1 16L96 224l0-32zm158.4 96c-20.2 19.8-47.9 32-78.4 32l-80 0 0-32 158.4 0z"], - "building-shield": [576, 512, [], "e4d8", "M0 48C0 21.5 21.5 0 48 0L336 0c26.5 0 48 21.5 48 48l0 159-42.4 17L304 224l-32 0c-8.8 0-16 7.2-16 16l0 32 0 24.2 0 7.8c0 .9 .1 1.7 .2 2.6c2.3 58.1 24.1 144.8 98.7 201.5c-5.8 2.5-12.2 3.9-18.9 3.9l-96 0 0-80c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 80-96 0c-26.5 0-48-21.5-48-48L0 48zM80 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm80 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM64 112l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16L80 96c-8.8 0-16 7.2-16 16zM176 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm80 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM423.1 225.7c5.7-2.3 12.1-2.3 17.8 0l120 48C570 277.4 576 286.2 576 296c0 63.3-25.9 168.8-134.8 214.2c-5.9 2.5-12.6 2.5-18.5 0C313.9 464.8 288 359.3 288 296c0-9.8 6-18.6 15.1-22.3l120-48zM527.4 312L432 273.8l0 187.8c68.2-33 91.5-99 95.4-149.7z"], - "baby": [448, 512, [], "f77c", "M152 88a72 72 0 1 1 144 0A72 72 0 1 1 152 88zM39.7 144.5c13-17.9 38-21.8 55.9-8.8L131.8 162c26.8 19.5 59.1 30 92.2 30s65.4-10.5 92.2-30l36.2-26.4c17.9-13 42.9-9 55.9 8.8s9 42.9-8.8 55.9l-36.2 26.4c-13.6 9.9-28.1 18.2-43.3 25l0 36.3-192 0 0-36.3c-15.2-6.7-29.7-15.1-43.3-25L48.5 200.3c-17.9-13-21.8-38-8.8-55.9zm89.8 184.8l60.6 53-26 37.2 24.3 24.3c15.6 15.6 15.6 40.9 0 56.6s-40.9 15.6-56.6 0l-48-48C70 438.6 68.1 417 79.2 401.1l50.2-71.8zm128.5 53l60.6-53 50.2 71.8c11.1 15.9 9.2 37.5-4.5 51.2l-48 48c-15.6 15.6-40.9 15.6-56.6 0s-15.6-40.9 0-56.6L284 419.4l-26-37.2z"], - "users-line": [640, 512, [], "e592", "M211.2 96a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM32 256c0 17.7 14.3 32 32 32l85.6 0c10.1-39.4 38.6-71.5 75.8-86.6c-9.7-6-21.2-9.4-33.4-9.4l-96 0c-35.3 0-64 28.7-64 64zm461.6 32l82.4 0c17.7 0 32-14.3 32-32c0-35.3-28.7-64-64-64l-96 0c-11.7 0-22.7 3.1-32.1 8.6c38.1 14.8 67.4 47.3 77.7 87.4zM391.2 226.4c-6.9-1.6-14.2-2.4-21.6-2.4l-96 0c-8.5 0-16.7 1.1-24.5 3.1c-30.8 8.1-55.6 31.1-66.1 60.9c-3.5 10-5.5 20.8-5.5 32c0 17.7 14.3 32 32 32l224 0c17.7 0 32-14.3 32-32c0-11.2-1.9-22-5.5-32c-10.8-30.7-36.8-54.2-68.9-61.6zM563.2 96a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM321.6 192a80 80 0 1 0 0-160 80 80 0 1 0 0 160zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416z"], - "quote-left": [448, 512, [8220, "quote-left-alt"], "f10d", "M0 216C0 149.7 53.7 96 120 96l8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-30.9 0-56 25.1-56 56l0 8 64 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64l0-32 0-32 0-72zm256 0c0-66.3 53.7-120 120-120l8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-30.9 0-56 25.1-56 56l0 8 64 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64l0-32 0-32 0-72z"], - "tractor": [640, 512, [128668], "f722", "M96 64c0-35.3 28.7-64 64-64L266.3 0c26.2 0 49.7 15.9 59.4 40.2L373.7 160 480 160l0-33.8c0-24.8 5.8-49.3 16.9-71.6l2.5-5c7.9-15.8 27.1-22.2 42.9-14.3s22.2 27.1 14.3 42.9l-2.5 5c-6.7 13.3-10.1 28-10.1 42.9l0 33.8 56 0c22.1 0 40 17.9 40 40l0 45.4c0 16.5-8.5 31.9-22.6 40.7l-43.3 27.1c-14.2-5.9-29.8-9.2-46.1-9.2c-39.3 0-74.1 18.9-96 48l-80 0c0 17.7-14.3 32-32 32l-8.2 0c-1.7 4.8-3.7 9.5-5.8 14.1l5.8 5.8c12.5 12.5 12.5 32.8 0 45.3l-22.6 22.6c-12.5 12.5-32.8 12.5-45.3 0l-5.8-5.8c-4.6 2.2-9.3 4.1-14.1 5.8l0 8.2c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-8.2c-4.8-1.7-9.5-3.7-14.1-5.8l-5.8 5.8c-12.5 12.5-32.8 12.5-45.3 0L40.2 449.1c-12.5-12.5-12.5-32.8 0-45.3l5.8-5.8c-2.2-4.6-4.1-9.3-5.8-14.1L32 384c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32l8.2 0c1.7-4.8 3.7-9.5 5.8-14.1l-5.8-5.8c-12.5-12.5-12.5-32.8 0-45.3l22.6-22.6c9-9 21.9-11.5 33.1-7.6l0-.6 0-32 0-96zm170.3 0L160 64l0 96 32 0 112.7 0L266.3 64zM176 256a80 80 0 1 0 0 160 80 80 0 1 0 0-160zM528 448a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0 64c-48.6 0-88-39.4-88-88c0-29.8 14.8-56.1 37.4-72c14.3-10.1 31.8-16 50.6-16c2.7 0 5.3 .1 7.9 .3c44.9 4 80.1 41.7 80.1 87.7c0 48.6-39.4 88-88 88z"], - "trash-arrow-up": [448, 512, ["trash-restore"], "f829", "M163.8 0L284.2 0c12.1 0 23.2 6.8 28.6 17.7L320 32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 7.2-14.3C140.6 6.8 151.7 0 163.8 0zM32 128l384 0L394.8 467c-1.6 25.3-22.6 45-47.9 45l-245.8 0c-25.3 0-46.3-19.7-47.9-45L32 128zm192 64c-6.4 0-12.5 2.5-17 7l-80 80c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39L200 408c0 13.3 10.7 24 24 24s24-10.7 24-24l0-134.1 39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-4.5-4.5-10.6-7-17-7z"], - "arrow-down-up-lock": [640, 512, [], "e4b0", "M150.6 502.6l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 402.7 160 288l256 0 0-16c0-17.2 3.9-33.5 10.8-48L352 224l0-114.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-6-6-14.1-9.4-22.6-9.4s-16.6 3.4-22.6 9.4l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L288 109.3 288 224l-128 0-64 0-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 0 114.7L54.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0zM160 192l0-128c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 128 64 0zM288 320l0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128-64 0zm240-80c17.7 0 32 14.3 32 32l0 48-64 0 0-48c0-17.7 14.3-32 32-32zm-80 32l0 48c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80z"], - "lines-leaning": [384, 512, [], "e51e", "M190.4 74.1c5.6-16.8-3.5-34.9-20.2-40.5s-34.9 3.5-40.5 20.2l-128 384c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l128-384zm70.9-41.7c-17.4-2.9-33.9 8.9-36.8 26.3l-64 384c-2.9 17.4 8.9 33.9 26.3 36.8s33.9-8.9 36.8-26.3l64-384c2.9-17.4-8.9-33.9-26.3-36.8zM352 32c-17.7 0-32 14.3-32 32l0 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32z"], - "ruler-combined": [512, 512, [], "f546", "M.2 468.9C2.7 493.1 23.1 512 48 512l96 0 320 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-48 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-64-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-64-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-48c0-26.5-21.5-48-48-48L48 0C21.5 0 0 21.5 0 48L0 368l0 96c0 1.7 .1 3.3 .2 4.9z"], - "copyright": [512, 512, [169], "f1f9", "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM199.4 312.6c31.2 31.2 81.9 31.2 113.1 0c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-50 50-131 50-181 0s-50-131 0-181s131-50 181 0c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-31.2-31.2-81.9-31.2-113.1 0s-31.2 81.9 0 113.1z"], - "equals": [448, 512, [62764], "3d", "M48 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l352 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L48 128zm0 192c-17.7 0-32 14.3-32 32s14.3 32 32 32l352 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L48 320z"], - "blender": [512, 512, [], "f517", "M0 64C0 28.7 28.7 0 64 0l64 0 32 0L470.1 0c21.1 0 36.4 20.1 30.9 40.4L494.5 64 336 64c-8.8 0-16 7.2-16 16s7.2 16 16 16l149.8 0-17.5 64L336 160c-8.8 0-16 7.2-16 16s7.2 16 16 16l123.6 0-17.5 64L336 256c-8.8 0-16 7.2-16 16s7.2 16 16 16l97.5 0L416 352l-256 0-8.7-96L64 256c-35.3 0-64-28.7-64-64L0 64zM145.5 192L133.8 64 64 64l0 128 81.5 0zM144 384l288 0c26.5 0 48 21.5 48 48l0 32c0 26.5-21.5 48-48 48l-288 0c-26.5 0-48-21.5-48-48l0-32c0-26.5 21.5-48 48-48zm144 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"], - "teeth": [576, 512, [], "f62e", "M0 128C0 75 43 32 96 32l384 0c53 0 96 43 96 96l0 256c0 53-43 96-96 96L96 480c-53 0-96-43-96-96L0 128zm176 48l0 56c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-56c0-26.5-21.5-48-48-48s-48 21.5-48 48zm176-48c-26.5 0-48 21.5-48 48l0 56c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-56c0-26.5-21.5-48-48-48zM48 208l0 24c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-24c0-26.5-21.5-48-48-48s-48 21.5-48 48zM96 384c26.5 0 48-21.5 48-48l0-24c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24l0 24c0 26.5 21.5 48 48 48zm80-48c0 26.5 21.5 48 48 48s48-21.5 48-48l0-24c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24l0 24zm176 48c26.5 0 48-21.5 48-48l0-24c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24l0 24c0 26.5 21.5 48 48 48zm80-176l0 24c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-24c0-26.5-21.5-48-48-48s-48 21.5-48 48zm48 176c26.5 0 48-21.5 48-48l0-24c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24l0 24c0 26.5 21.5 48 48 48z"], - "shekel-sign": [448, 512, [8362, "ils", "shekel", "sheqel", "sheqel-sign"], "f20b", "M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32L64 96l128 0c35.3 0 64 28.7 64 64l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-70.7-57.3-128-128-128L32 32zM320 480c70.7 0 128-57.3 128-128l0-288c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 288c0 35.3-28.7 64-64 64l-128 0 0-224c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 256c0 17.7 14.3 32 32 32l160 0z"], - "map": [576, 512, [128506, 62072], "f279", "M384 476.1L192 421.2l0-385.3L384 90.8l0 385.3zm32-1.2l0-386.5L543.1 37.5c15.8-6.3 32.9 5.3 32.9 22.3l0 334.8c0 9.8-6 18.6-15.1 22.3L416 474.8zM15.1 95.1L160 37.2l0 386.5L32.9 474.5C17.1 480.8 0 469.2 0 452.2L0 117.4c0-9.8 6-18.6 15.1-22.3z"], - "rocket": [512, 512, [], "f135", "M156.6 384.9L125.7 354c-8.5-8.5-11.5-20.8-7.7-32.2c3-8.9 7-20.5 11.8-33.8L24 288c-8.6 0-16.6-4.6-20.9-12.1s-4.2-16.7 .2-24.1l52.5-88.5c13-21.9 36.5-35.3 61.9-35.3l82.3 0c2.4-4 4.8-7.7 7.2-11.3C289.1-4.1 411.1-8.1 483.9 5.3c11.6 2.1 20.6 11.2 22.8 22.8c13.4 72.9 9.3 194.8-111.4 276.7c-3.5 2.4-7.3 4.8-11.3 7.2l0 82.3c0 25.4-13.4 49-35.3 61.9l-88.5 52.5c-7.4 4.4-16.6 4.5-24.1 .2s-12.1-12.2-12.1-20.9l0-107.2c-14.1 4.9-26.4 8.9-35.7 11.9c-11.2 3.6-23.4 .5-31.8-7.8zM384 168a40 40 0 1 0 0-80 40 40 0 1 0 0 80z"], - "photo-film": [640, 512, ["photo-video"], "f87c", "M256 0L576 0c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64l-320 0c-35.3 0-64-28.7-64-64l0-224c0-35.3 28.7-64 64-64zM476 106.7C471.5 100 464 96 456 96s-15.5 4-20 10.7l-56 84L362.7 169c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6l80 0 48 0 144 0c8.9 0 17-4.9 21.2-12.7s3.7-17.3-1.2-24.6l-96-144zM336 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM64 128l96 0 0 256 0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32 160 0 0 64c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192c0-35.3 28.7-64 64-64zm8 64c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-16 0zm0 104c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-16 0zm0 104c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-16 0zm336 16l0 16c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16z"], - "folder-minus": [512, 512, [], "f65d", "M448 480L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l128 0c20.1 0 39.1 9.5 51.2 25.6l19.2 25.6c6 8.1 15.5 12.8 25.6 12.8l160 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64zM184 272c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z"], - "hexagon-nodes-bolt": [576, 512, [], "e69a", "M248 106.6c18.9-9 32-28.3 32-50.6c0-30.9-25.1-56-56-56s-56 25.1-56 56c0 22.3 13.1 41.6 32 50.6l0 98.8c-2.8 1.3-5.5 2.9-8 4.7l-80.1-45.8c1.6-20.8-8.6-41.6-27.9-52.8C57.2 96 23 105.2 7.5 132S1.2 193 28 208.5c1.3 .8 2.6 1.5 4 2.1l0 90.8c-1.3 .6-2.7 1.3-4 2.1C1.2 319-8 353.2 7.5 380S57.2 416 84 400.5c19.3-11.1 29.4-32 27.8-52.8l50.5-28.9c-11.5-11.2-19.9-25.6-23.8-41.7L88 306.1c-2.6-1.8-5.2-3.3-8-4.7l0-90.8c2.8-1.3 5.5-2.9 8-4.7l80.1 45.8c-.1 1.4-.2 2.8-.2 4.3c0 22.3 13.1 41.6 32 50.6l0 98.8c-18.9 9-32 28.3-32 50.6c0 30.9 25.1 56 56 56c30.7 0 55.6-24.7 56-55.2c-7.5-12.9-13.5-26.8-17.6-41.5c-4.2-4-9.1-7.3-14.4-9.9l0-98.8c2.8-1.3 5.5-2.9 8-4.7l10.5 6c5.5-15.3 13.1-29.5 22.4-42.5l-9.1-5.2c.1-1.4 .2-2.8 .2-4.3c0-22.3-13.1-41.6-32-50.6l0-98.8zM440.5 132C425 105.2 390.8 96 364 111.5c-19.3 11.1-29.4 32-27.8 52.8l-50.6 28.9c11.5 11.2 19.9 25.6 23.8 41.7L360 205.9c.4 .3 .8 .6 1.3 .9c21.7-9.5 45.6-14.8 70.8-14.8c2 0 4 0 5.9 .1c12.1-17.3 13.8-40.6 2.6-60.1zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm47.9-225c4.3 3.7 5.4 9.9 2.6 14.9L452.4 356l35.6 0c5.2 0 9.8 3.3 11.4 8.2s-.1 10.3-4.2 13.4l-96 72c-4.5 3.4-10.8 3.2-15.1-.6s-5.4-9.9-2.6-14.9L411.6 380 376 380c-5.2 0-9.8-3.3-11.4-8.2s.1-10.3 4.2-13.4l96-72c4.5-3.4 10.8-3.2 15.1 .6z"], - "store": [576, 512, [], "f54e", "M547.6 103.8L490.3 13.1C485.2 5 476.1 0 466.4 0L109.6 0C99.9 0 90.8 5 85.7 13.1L28.3 103.8c-29.6 46.8-3.4 111.9 51.9 119.4c4 .5 8.1 .8 12.1 .8c26.1 0 49.3-11.4 65.2-29c15.9 17.6 39.1 29 65.2 29c26.1 0 49.3-11.4 65.2-29c15.9 17.6 39.1 29 65.2 29c26.2 0 49.3-11.4 65.2-29c16 17.6 39.1 29 65.2 29c4.1 0 8.1-.3 12.1-.8c55.5-7.4 81.8-72.5 52.1-119.4zM499.7 254.9c0 0 0 0-.1 0c-5.3 .7-10.7 1.1-16.2 1.1c-12.4 0-24.3-1.9-35.4-5.3L448 384l-320 0 0-133.4c-11.2 3.5-23.2 5.4-35.6 5.4c-5.5 0-11-.4-16.3-1.1l-.1 0c-4.1-.6-8.1-1.3-12-2.3L64 384l0 64c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-64 0-131.4c-4 1-8 1.8-12.3 2.3z"], - "arrow-trend-up": [576, 512, [], "e098", "M384 160c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0c17.7 0 32 14.3 32 32l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-82.7L342.6 374.6c-12.5 12.5-32.8 12.5-45.3 0L192 269.3 54.6 406.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160c12.5-12.5 32.8-12.5 45.3 0L320 306.7 466.7 160 384 160z"], - "plug-circle-minus": [576, 512, [], "e55e", "M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32L32 160zM576 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-64 0c0 8.8-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l128 0c8.8 0 16 7.2 16 16z"], - "sign-hanging": [512, 512, ["sign"], "f4d9", "M96 0c17.7 0 32 14.3 32 32l0 32 352 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-352 0 0 352c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-352-32 0C14.3 128 0 113.7 0 96S14.3 64 32 64l32 0 0-32C64 14.3 78.3 0 96 0zm96 160l256 0c17.7 0 32 14.3 32 32l0 160c0 17.7-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32l0-160c0-17.7 14.3-32 32-32z"], - "bezier-curve": [640, 512, [], "f55b", "M296 136l0-48 48 0 0 48-48 0zM288 32c-26.5 0-48 21.5-48 48l0 4L121.6 84C111.2 62.7 89.3 48 64 48C28.7 48 0 76.7 0 112s28.7 64 64 64c25.3 0 47.2-14.7 57.6-36l66.9 0c-58.9 39.6-98.9 105-104 180L80 320c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-3.3 0c5.9-67 48.5-123.4 107.5-149.1c8.6 12.7 23.2 21.1 39.8 21.1l64 0c16.6 0 31.1-8.4 39.8-21.1c59 25.7 101.6 82.1 107.5 149.1l-3.3 0c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-4.5 0c-5-75-45.1-140.4-104-180l66.9 0c10.4 21.3 32.3 36 57.6 36c35.3 0 64-28.7 64-64s-28.7-64-64-64c-25.3 0-47.2 14.7-57.6 36L400 84l0-4c0-26.5-21.5-48-48-48l-64 0zM88 376l48 0 0 48-48 0 0-48zm416 48l0-48 48 0 0 48-48 0z"], - "bell-slash": [640, 512, [128277, 61943], "f1f6", "M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-90.2-70.7c.2-.4 .4-.9 .6-1.3c5.2-11.5 3.1-25-5.3-34.4l-7.4-8.3C497.3 319.2 480 273.9 480 226.8l0-18.8c0-77.4-55-142-128-156.8L352 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 19.2c-42.6 8.6-79 34.2-102 69.3L38.8 5.1zM406.2 416L160 222.1l0 4.8c0 47-17.3 92.4-48.5 127.6l-7.4 8.3c-8.4 9.4-10.4 22.9-5.3 34.4S115.4 416 128 416l278.2 0zm-40.9 77.3c12-12 18.7-28.3 18.7-45.3l-64 0-64 0c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7z"], - "tablet": [448, 512, ["tablet-android"], "f3fb", "M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM176 432l96 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-96 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"], - "school-flag": [576, 512, [], "e56e", "M288 0L400 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-79.3 0 89.6 64L512 160c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64l-176 0 0-112c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 112L64 512c-35.3 0-64-28.7-64-64L0 224c0-35.3 28.7-64 64-64l101.7 0L256 95.5 256 32c0-17.7 14.3-32 32-32zm48 240a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM80 224c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-32 0zm368 16l0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM80 352c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-32 0zm384 0c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-32 0z"], - "fill": [512, 512, [], "f575", "M86.6 9.4C74.1-3.1 53.9-3.1 41.4 9.4s-12.5 32.8 0 45.3L122.7 136 30.6 228.1c-37.5 37.5-37.5 98.3 0 135.8L148.1 481.4c37.5 37.5 98.3 37.5 135.8 0L474.3 290.9c28.1-28.1 28.1-73.7 0-101.8L322.9 37.7c-28.1-28.1-73.7-28.1-101.8 0L168 90.7 86.6 9.4zM168 181.3l49.4 49.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L213.3 136l53.1-53.1c3.1-3.1 8.2-3.1 11.3 0L429.1 234.3c3.1 3.1 3.1 8.2 0 11.3L386.7 288 67.5 288c1.4-5.4 4.2-10.4 8.4-14.6L168 181.3z"], - "angle-up": [448, 512, [8963], "f106", "M201.4 137.4c12.5-12.5 32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L224 205.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160z"], - "drumstick-bite": [512, 512, [], "f6d7", "M160 265.2c0 8.5-3.4 16.6-9.4 22.6l-26.8 26.8c-12.3 12.3-32.5 11.4-49.4 7.2C69.8 320.6 65 320 60 320c-33.1 0-60 26.9-60 60s26.9 60 60 60c6.3 0 12 5.7 12 12c0 33.1 26.9 60 60 60s60-26.9 60-60c0-5-.6-9.8-1.8-14.5c-4.2-16.9-5.2-37.1 7.2-49.4l26.8-26.8c6-6 14.1-9.4 22.6-9.4l89.2 0c6.3 0 12.4-.3 18.5-1c11.9-1.2 16.4-15.5 10.8-26c-8.5-15.8-13.3-33.8-13.3-53c0-61.9 50.1-112 112-112c8 0 15.7 .8 23.2 2.4c11.7 2.5 24.1-5.9 22-17.6C494.5 62.5 422.5 0 336 0C238.8 0 160 78.8 160 176l0 89.2z"], - "holly-berry": [512, 512, [], "f7aa", "M256 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-80 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM276.8 383.8c1 .1 2.1 .2 3.2 .2c39.8 0 72 32.2 72 72l0 22.7c0 16.4 16 27.9 31.6 22.8l12.8-4.3c18-6 37.3-6.5 55.6-1.5l19.4 5.3c17.9 4.9 34.4-11.6 29.5-29.5L495.6 452c-5-18.3-4.4-37.6 1.5-55.6l4.3-12.8c5.2-15.5-6.4-31.6-22.8-31.6c-34.6 0-62.7-28.1-62.7-62.7l0-32c0-16.4-16-27.9-31.6-22.8l-12.8 4.3c-18 6-37.3 6.5-55.6 1.5l-29.6-8.1c-2.9-.8-5.9-1-8.7-.7c4.2 9.7 5.8 20.8 3.7 32.3L275 298.7c-1.5 8.4-1.4 17 .5 25.3l5.3 23.9c2.8 12.7 1.1 25.2-4 35.9zM127.6 234.5c-15.5-5.2-31.6 6.4-31.6 22.8l0 32C96 323.9 67.9 352 33.3 352c-16.4 0-27.9 16-22.8 31.6l4.3 12.8c6 18 6.5 37.3 1.5 55.6l-5.3 19.4C6.2 489.4 22.6 505.8 40.5 501L60 495.6c18.3-5 37.6-4.5 55.6 1.5l12.8 4.3c15.5 5.2 31.6-6.4 31.6-22.8l0-32c0-34.6 28.1-62.7 62.7-62.7c16.4 0 27.9-16 22.8-31.6l-4.3-12.8c-6-18-6.5-37.3-1.5-55.6l5.3-19.4c4.9-17.9-11.6-34.4-29.5-29.5L196 240.4c-18.3 5-37.6 4.4-55.6-1.5l-12.8-4.3zM384 144a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z"], - "chevron-left": [320, 512, [9001], "f053", "M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l192 192c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 246.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192z"], - "bacteria": [640, 512, [], "e059", "M304.9 .7c-9.6-2.7-19.5 2.8-22.3 12.4l-4.3 15.2c-8.3-.6-16.8 0-25.2 1.9c-7.3 1.7-14.3 3.5-21.1 5.5l-5.5-12.7c-3.9-9.1-14.5-13.4-23.6-9.5s-13.4 14.5-9.5 23.6l4.4 10.4c-16.6 6.7-31.7 14.4-45.4 22.8L147 62c-5.5-8.3-16.7-10.5-25-5s-10.5 16.7-5 25l6 9c-13.7 11-25.5 22.8-35.8 34.9l-10-8c-7.8-6.2-19.1-5-25.3 2.8s-5 19.1 2.8 25.3L65.9 155c-1.8 2.8-3.5 5.7-5.1 8.5c-6.6 11.4-11.8 22.6-16 33l-8-3.2c-9.2-3.7-19.7 .8-23.4 10s.8 19.7 10 23.4l10.4 4.2c-.2 .8-.4 1.5-.5 2.3c-2.2 9.3-3.4 17.3-4.1 23.4c-.4 3.1-.6 5.7-.8 7.8c-.1 1.1-.1 2-.2 2.8l-.1 1.1 0 .5 0 .2 0 .1c0 0 0 .1 29.1 1c0 0 0 0-.1 0L28 269.3c-.1 3.1 0 6.1 .2 9.1l-15.2 4.3C3.5 285.4-2 295.4 .7 304.9s12.7 15.1 22.3 12.4l15.6-4.5c7.6 13.6 18.9 25 32.6 32.6L66.7 361c-2.7 9.6 2.8 19.5 12.4 22.3s19.5-2.8 22.3-12.4l4.3-15.2c1.2 .1 2.4 .2 3.6 .2c15.6 .5 30.3-3.3 43-10.2l9 9c7 7 18.4 7 25.5 0s7-18.4 0-25.5l-7.2-7.2c9.3-12.6 15.2-27.8 16.3-44.5l7.1 3c9.1 3.9 19.7-.3 23.6-9.5s-.3-19.7-9.5-23.6l-8.6-3.7c6.4-9.9 17.3-22.4 36.9-33.3l1.3 4.4c2.7 9.6 12.7 15.1 22.3 12.4s15.1-12.7 12.4-22.3l-2.3-8.1c3.8-1.1 7.7-2.1 11.9-3.1c11.6-2.7 22.1-7.7 31.1-14.4l7.2 7.2c7 7 18.4 7 25.5 0s7-18.4 0-25.5l-9-9c7.6-13.9 11.3-30.1 10.1-46.6l15.2-4.3c9.6-2.7 15.1-12.7 12.4-22.3S370.6 64 361 66.7l-15.6 4.5c-7.7-13.9-19.1-25.1-32.6-32.6l4.5-15.6c2.7-9.6-2.8-19.5-12.4-22.3zM112 272l-48-1.5c0 0 0 0 0 0c11.7 .4 27.3 .9 48 1.6zm16-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64-48a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM322.7 489c-2.7 9.6 2.8 19.5 12.4 22.3s19.5-2.8 22.2-12.4l4.3-15.2c8.3 .6 16.8 0 25.2-1.9c7.3-1.7 14.3-3.5 21.1-5.5l5.5 12.7c3.9 9.1 14.5 13.4 23.6 9.5s13.4-14.5 9.5-23.6l-4.4-10.4c16.6-6.7 31.7-14.4 45.4-22.8L493 450c5.5 8.3 16.7 10.5 25 5s10.5-16.7 5-25l-6-9c13.7-11 25.5-22.8 35.8-34.9l10 8c7.8 6.2 19.1 5 25.3-2.8s5-19.1-2.8-25.3L574.1 357c1.8-2.8 3.5-5.7 5.1-8.5c6.6-11.4 11.8-22.6 16-33l8 3.2c9.2 3.7 19.7-.8 23.4-10s-.8-19.7-10-23.4l-10.4-4.2c.2-.8 .4-1.5 .5-2.3c2.2-9.3 3.4-17.3 4.1-23.4c.4-3.1 .6-5.7 .8-7.8c.1-1.1 .1-2 .2-2.8l.1-1.1 0-.5 0-.2 0-.1c0 0 0-.1-29.1-1c0 0 0 0 .1 0l29.1 .9c.1-3.1 0-6.1-.2-9.1l15.2-4.3c9.6-2.7 15.1-12.7 12.4-22.3s-12.7-15.1-22.3-12.4l-15.6 4.5c-7.6-13.6-18.9-25-32.6-32.6l4.5-15.6c2.7-9.6-2.8-19.5-12.4-22.3s-19.5 2.8-22.3 12.4l-4.3 15.2c-1.2-.1-2.4-.2-3.6-.2c-15.6-.5-30.3 3.3-43 10.2l-9-9c-7-7-18.4-7-25.5 0s-7 18.4 0 25.5l7.2 7.2c-9.3 12.6-15.2 27.8-16.3 44.5l-7.1-3c-9.1-3.9-19.7 .3-23.6 9.5s.3 19.7 9.5 23.6l8.6 3.7c-6.4 9.9-17.3 22.4-36.9 33.3l-1.3-4.4c-2.7-9.6-12.7-15.1-22.3-12.4s-15.1 12.7-12.4 22.3l2.3 8.1c-3.8 1.1-7.7 2.1-11.9 3.1c-11.6 2.7-22.1 7.7-31.1 14.4l-7.2-7.2c-7-7-18.4-7-25.5 0s-7 18.4 0 25.5l9 9c-7.6 13.9-11.3 30.1-10.1 46.6l-15.2 4.3c-9.6 2.7-15.1 12.7-12.4 22.2s12.7 15.1 22.3 12.4l15.6-4.5c7.7 13.9 19.1 25.1 32.6 32.6L322.7 489zM576 241.5c0 0 0 0 0 0c-11.7-.4-27.3-.9-48-1.6l48 1.5zM448 384a32 32 0 1 1 -64 0 32 32 0 1 1 64 0z"], - "hand-lizard": [512, 512, [], "f258", "M0 112C0 85.5 21.5 64 48 64l112 0 80 0 46.5 0c36.8 0 71.2 18 92.1 48.2l113.5 164c13 18.7 19.9 41 19.9 63.8l0 12 0 16 0 48c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-13.8L273.9 352 240 352l-80 0-48 0c-26.5 0-48-21.5-48-48s21.5-48 48-48l48 0 80 0c26.5 0 48-21.5 48-48s-21.5-48-48-48l-80 0L48 160c-26.5 0-48-21.5-48-48z"], - "notdef": [384, 512, [], "e1fe", "M64 390.3L153.5 256 64 121.7l0 268.6zM102.5 448l179.1 0L192 313.7 102.5 448zm128-192L320 390.3l0-268.6L230.5 256zM281.5 64L102.5 64 192 198.3 281.5 64zM0 48C0 21.5 21.5 0 48 0L336 0c26.5 0 48 21.5 48 48l0 416c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 48z"], - "disease": [512, 512, [], "f7fa", "M236.4 61.4L227 75.5c-21.3 32-59.4 48.5-97.3 42.1l-59.6-9.9C33.4 101.6 0 129.9 .1 167.1c0 15.9 6.4 31.2 17.6 42.5l29.2 29.2c11 11 17.2 25.9 17.2 41.5c0 15.8-6.4 30.9-17.7 42L33.3 335.1C22.2 345.9 16 360.7 16 376.2c0 36.8 34.1 64.2 70.1 56.2l62.3-13.8c7.7-1.7 15.7-2.6 23.6-2.6l10 0c27.2 0 53.7 9.3 75 26.3L287.8 467c10.5 8.4 23.6 13 37 13c32.7 0 59.3-26.5 59.3-59.3l0-25.2c0-34.9 21.4-66.2 53.9-78.8l36.9-14.3c22.4-8.7 37.2-30.3 37.2-54.3c0-28.1-20.1-52.3-47.8-57.3l-28-5.1c-36.5-6.7-65.4-34.5-73.6-70.7l-7.1-31.5C348.9 53.4 322.1 32 291.3 32c-22 0-42.6 11-54.9 29.4zM160 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm0 80a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"], - "briefcase-medical": [512, 512, [], "f469", "M184 48l144 0c4.4 0 8 3.6 8 8l0 40L176 96l0-40c0-4.4 3.6-8 8-8zm-56 8l0 40L64 96C28.7 96 0 124.7 0 160L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-64 0 0-40c0-30.9-25.1-56-56-56L184 0c-30.9 0-56 25.1-56 56zm96 152c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48z"], - "genderless": [384, 512, [], "f22d", "M192 144a112 112 0 1 1 0 224 112 112 0 1 1 0-224zm0 288a176 176 0 1 0 0-352 176 176 0 1 0 0 352z"], - "chevron-right": [320, 512, [9002], "f054", "M310.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 256 73.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z"], - "retweet": [576, 512, [], "f079", "M272 416c17.7 0 32-14.3 32-32s-14.3-32-32-32l-112 0c-17.7 0-32-14.3-32-32l0-128 32 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l32 0 0 128c0 53 43 96 96 96l112 0zM304 96c-17.7 0-32 14.3-32 32s14.3 32 32 32l112 0c17.7 0 32 14.3 32 32l0 128-32 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8l-32 0 0-128c0-53-43-96-96-96L304 96z"], - "car-rear": [512, 512, ["car-alt"], "f5de", "M165.4 96l181.2 0c13.6 0 25.7 8.6 30.2 21.4L402.9 192l-293.8 0 26.1-74.6c4.5-12.8 16.6-21.4 30.2-21.4zm-90.6 .3L39.6 196.8C16.4 206.4 0 229.3 0 256l0 80c0 23.7 12.9 44.4 32 55.4L32 448c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-48 256 0 0 48c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-56.6c19.1-11.1 32-31.7 32-55.4l0-80c0-26.7-16.4-49.6-39.6-59.2L437.2 96.3C423.7 57.8 387.4 32 346.6 32L165.4 32c-40.8 0-77.1 25.8-90.6 64.3zM208 272l96 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-96 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM48 280c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm360-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"], - "pump-soap": [448, 512, [], "e06b", "M128 32l0 96 128 0 0-32 60.1 0c4.2 0 8.3 1.7 11.3 4.7l33.9 33.9c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L372.7 55.4c-15-15-35.4-23.4-56.6-23.4L256 32c0-17.7-14.3-32-32-32L160 0c-17.7 0-32 14.3-32 32zM117.4 160c-33.3 0-61 25.5-63.8 58.7L35 442.7C31.9 480 61.3 512 98.8 512l186.4 0c37.4 0 66.9-32 63.8-69.3l-18.7-224c-2.8-33.2-30.5-58.7-63.8-58.7l-149.1 0zM256 360c0 35.3-28.7 56-64 56s-64-20.7-64-56c0-32.5 37-80.9 50.9-97.9c3.2-3.9 8.1-6.1 13.1-6.1s9.9 2.2 13.1 6.1C219 279.1 256 327.5 256 360z"], - "video-slash": [640, 512, [], "f4e2", "M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-86.4-67.7 13.8 9.2c9.8 6.5 22.4 7.2 32.9 1.6s16.9-16.4 16.9-28.2l0-256c0-11.8-6.5-22.6-16.9-28.2s-23-5-32.9 1.6l-96 64L448 174.9l0 17.1 0 128 0 5.8-32-25.1L416 128c0-35.3-28.7-64-64-64L113.9 64 38.8 5.1zM407 416.7L32.3 121.5c-.2 2.1-.3 4.3-.3 6.5l0 256c0 35.3 28.7 64 64 64l256 0c23.4 0 43.9-12.6 55-31.3z"], - "battery-quarter": [576, 512, ["battery-2"], "f243", "M464 160c8.8 0 16 7.2 16 16l0 160c0 8.8-7.2 16-16 16L80 352c-8.8 0-16-7.2-16-16l0-160c0-8.8 7.2-16 16-16l384 0zM80 96C35.8 96 0 131.8 0 176L0 336c0 44.2 35.8 80 80 80l384 0c44.2 0 80-35.8 80-80l0-16c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-16c0-44.2-35.8-80-80-80L80 96zm112 96l-96 0 0 128 96 0 0-128z"], - "radio": [512, 512, [128251], "f8d7", "M494.8 47c12.7-3.7 20-17.1 16.3-29.8S494-2.8 481.2 1L51.7 126.9c-9.4 2.7-17.9 7.3-25.1 13.2C10.5 151.7 0 170.6 0 192l0 4L0 304 0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-229.5 0L494.8 47zM368 240a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM80 256c0-8.8 7.2-16 16-16l96 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-96 0c-8.8 0-16-7.2-16-16zM64 320c0-8.8 7.2-16 16-16l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 336c-8.8 0-16-7.2-16-16zm16 64c0-8.8 7.2-16 16-16l96 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-96 0c-8.8 0-16-7.2-16-16z"], - "baby-carriage": [512, 512, ["carriage-baby"], "f77d", "M256 192L.1 192C2.7 117.9 41.3 52.9 99 14.1c13.3-8.9 30.8-4.3 39.9 8.8L256 192zm128-32c0-35.3 28.7-64 64-64l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 64c0 25.2-5.8 50.2-17 73.5s-27.8 44.5-48.6 62.3s-45.5 32-72.7 41.6S253.4 416 224 416s-58.5-5-85.7-14.6s-51.9-23.8-72.7-41.6s-37.3-39-48.6-62.3S0 249.2 0 224l224 0 160 0 0-64zM80 416a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm240 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z"], - "traffic-light": [320, 512, [128678], "f637", "M64 0C28.7 0 0 28.7 0 64L0 352c0 88.4 71.6 160 160 160s160-71.6 160-160l0-288c0-35.3-28.7-64-64-64L64 0zm96 416a48 48 0 1 1 0-96 48 48 0 1 1 0 96zm48-176a48 48 0 1 1 -96 0 48 48 0 1 1 96 0zm-48-80a48 48 0 1 1 0-96 48 48 0 1 1 0 96z"], - "thermometer": [512, 512, [], "f491", "M96 382.1l0-88.8c0-14.9 5.9-29.1 16.4-39.6l27.3-27.3 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 41.4-41.4 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 41.4-41.4 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 45.5-45.5C355.2 10.9 381.4 0 408.8 0C465.8 0 512 46.2 512 103.2c0 27.4-10.9 53.6-30.2 73L258.3 399.6c-10.5 10.5-24.7 16.4-39.6 16.4l-88.8 0L41 505c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l89-89z"], - "vr-cardboard": [640, 512, [], "f729", "M576 64L64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l120.4 0c24.2 0 46.4-13.7 57.2-35.4l32-64c8.8-17.5 26.7-28.6 46.3-28.6s37.5 11.1 46.3 28.6l32 64c10.8 21.7 33 35.4 57.2 35.4L576 448c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64zM96 240a64 64 0 1 1 128 0A64 64 0 1 1 96 240zm384-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"], - "hand-middle-finger": [448, 512, [128405], "f806", "M232 0c-22.1 0-40 17.9-40 40l0 164.2c-8.5-7.6-19.7-12.2-32-12.2c-26.5 0-48 21.5-48 48l0 7 0 73c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-55.7c-2 1.4-3.9 3-5.8 4.5L55 284.8C40.4 297 32 315 32 334L32 372c0 38 16.9 74 46.1 98.3l5.4 4.5c28.8 24 65 37.1 102.4 37.1L304 512c70.7 0 128-57.3 128-128l0-64 0-32c0-26.5-21.5-48-48-48c-12.4 0-23.6 4.7-32.1 12.3C350 227.5 329.3 208 304 208c-12.3 0-23.5 4.6-32 12.2L272 40c0-22.1-17.9-40-40-40z"], - "percent": [384, 512, [62101, 62785, "percentage"], "25", "M374.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-320 320c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l320-320zM128 128A64 64 0 1 0 0 128a64 64 0 1 0 128 0zM384 384a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z"], - "truck-moving": [640, 512, [], "f4df", "M64 32C28.7 32 0 60.7 0 96L0 304l0 80 0 16c0 44.2 35.8 80 80 80c26.2 0 49.4-12.6 64-32c14.6 19.4 37.8 32 64 32c44.2 0 80-35.8 80-80c0-5.5-.6-10.8-1.6-16L416 384l33.6 0c-1 5.2-1.6 10.5-1.6 16c0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16l1.6 0c17.7 0 32-14.3 32-32l0-64 0-16 0-10.3c0-9.2-3.2-18.2-9-25.3l-58.8-71.8c-10.6-13-26.5-20.5-43.3-20.5L480 144l0-48c0-35.3-28.7-64-64-64L64 32zM585 256l-105 0 0-64 48.8 0c2.4 0 4.7 1.1 6.2 2.9L585 256zM528 368a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM176 400a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM80 368a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"], - "glass-water-droplet": [384, 512, [], "e4f5", "M32 0C23.1 0 14.6 3.7 8.6 10.2S-.6 25.4 .1 34.3L28.9 437.7c3 41.9 37.8 74.3 79.8 74.3l166.6 0c42 0 76.8-32.4 79.8-74.3L383.9 34.3c.6-8.9-2.4-17.6-8.5-24.1S360.9 0 352 0L32 0zM83 297.5L66.4 64l251.3 0L301 297.5 288 304c-20.1 10.1-43.9 10.1-64 0s-43.9-10.1-64 0s-43.9 10.1-64 0l-13-6.5zM256 196c0-24-33.7-70.1-52.2-93.5c-6.1-7.7-17.5-7.7-23.6 0C161.7 125.9 128 172 128 196c0 33.1 28.7 60 64 60s64-26.9 64-60z"], - "display": [576, 512, [], "e163", "M64 0C28.7 0 0 28.7 0 64L0 352c0 35.3 28.7 64 64 64l176 0-10.7 32L160 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-69.3 0L336 416l176 0c35.3 0 64-28.7 64-64l0-288c0-35.3-28.7-64-64-64L64 0zM512 64l0 288L64 352 64 64l448 0z"], - "face-smile": [512, 512, [128578, "smile"], "f118", "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"], - "thumbtack": [384, 512, [128204, 128392, "thumb-tack"], "f08d", "M32 32C32 14.3 46.3 0 64 0L320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-29.5 0 11.4 148.2c36.7 19.9 65.7 53.2 79.5 94.7l1 3c3.3 9.8 1.6 20.5-4.4 28.8s-15.7 13.3-26 13.3L32 352c-10.3 0-19.9-4.9-26-13.3s-7.7-19.1-4.4-28.8l1-3c13.8-41.5 42.8-74.8 79.5-94.7L93.5 64 64 64C46.3 64 32 49.7 32 32zM160 384l64 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96z"], - "trophy": [576, 512, [127942], "f091", "M400 0L176 0c-26.5 0-48.1 21.8-47.1 48.2c.2 5.3 .4 10.6 .7 15.8L24 64C10.7 64 0 74.7 0 88c0 92.6 33.5 157 78.5 200.7c44.3 43.1 98.3 64.8 138.1 75.8c23.4 6.5 39.4 26 39.4 45.6c0 20.9-17 37.9-37.9 37.9L192 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-26.1 0C337 448 320 431 320 410.1c0-19.6 15.9-39.2 39.4-45.6c39.9-11 93.9-32.7 138.2-75.8C542.5 245 576 180.6 576 88c0-13.3-10.7-24-24-24L446.4 64c.3-5.2 .5-10.4 .7-15.8C448.1 21.8 426.5 0 400 0zM48.9 112l84.4 0c9.1 90.1 29.2 150.3 51.9 190.6c-24.9-11-50.8-26.5-73.2-48.3c-32-31.1-58-76-63-142.3zM464.1 254.3c-22.4 21.8-48.3 37.3-73.2 48.3c22.7-40.3 42.8-100.5 51.9-190.6l84.4 0c-5.1 66.3-31.1 111.2-63 142.3z"], - "person-praying": [448, 512, [128720, "pray"], "f683", "M352 64A64 64 0 1 0 224 64a64 64 0 1 0 128 0zM232.7 264l22.9 31.5c6.5 8.9 16.3 14.7 27.2 16.1s21.9-1.7 30.4-8.7l88-72c17.1-14 19.6-39.2 5.6-56.3s-39.2-19.6-56.3-5.6l-55.2 45.2-26.2-36C253.6 156.7 228.6 144 202 144c-30.9 0-59.2 17.1-73.6 44.4L79.8 280.9c-20.2 38.5-9.4 85.9 25.6 111.8L158.6 432 72 432c-22.1 0-40 17.9-40 40s17.9 40 40 40l208 0c17.3 0 32.6-11.1 38-27.5s-.3-34.4-14.2-44.7L187.7 354l45-90z"], - "hammer": [576, 512, [128296], "f6e3", "M413.5 237.5c-28.2 4.8-58.2-3.6-80-25.4l-38.1-38.1C280.4 159 272 138.8 272 117.6l0-12.1L192.3 62c-5.3-2.9-8.6-8.6-8.3-14.7s3.9-11.5 9.5-14l47.2-21C259.1 4.2 279 0 299.2 0l18.1 0c36.7 0 72 14 98.7 39.1l44.6 42c24.2 22.8 33.2 55.7 26.6 86L503 183l8-8c9.4-9.4 24.6-9.4 33.9 0l24 24c9.4 9.4 9.4 24.6 0 33.9l-88 88c-9.4 9.4-24.6 9.4-33.9 0l-24-24c-9.4-9.4-9.4-24.6 0-33.9l8-8-17.5-17.5zM27.4 377.1L260.9 182.6c3.5 4.9 7.5 9.6 11.8 14l38.1 38.1c6 6 12.4 11.2 19.2 15.7L134.9 484.6c-14.5 17.4-36 27.4-58.6 27.4C34.1 512 0 477.8 0 435.7c0-22.6 10.1-44.1 27.4-58.6z"], - "hand-peace": [512, 512, [9996], "f25b", "M224 0c17.7 0 32 14.3 32 32l0 208-64 0 0-208c0-17.7 14.3-32 32-32zm96 160c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm64 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zM93.3 51.2L175.9 240l-69.9 0L34.7 76.8C27.6 60.6 35 41.8 51.2 34.7s35.1 .3 42.1 16.5zm27 221.3l-.2-.5 69.9 0 26.1 0c22.1 0 40 17.9 40 40s-17.9 40-40 40l-56 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l56 0c39.8 0 72-32.2 72-72l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6l0 8.6c0 88.4-71.6 160-160 160l-61.7 0c-42.4 0-83.1-16.9-113.1-46.9l-11.6-11.6C77.5 429.5 64 396.9 64 363l0-27c0-32.7 24.6-59.7 56.3-63.5z"], - "rotate": [512, 512, [128260, "sync-alt"], "f2f1", "M142.9 142.9c-17.5 17.5-30.1 38-37.8 59.8c-5.9 16.7-24.2 25.4-40.8 19.5s-25.4-24.2-19.5-40.8C55.6 150.7 73.2 122 97.6 97.6c87.2-87.2 228.3-87.5 315.8-1L455 55c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2l0 128c0 13.3-10.7 24-24 24l-8.4 0c0 0 0 0 0 0L344 224c-9.7 0-18.5-5.8-22.2-14.8s-1.7-19.3 5.2-26.2l41.1-41.1c-62.6-61.5-163.1-61.2-225.3 1zM16 312c0-13.3 10.7-24 24-24l7.6 0 .7 0L168 288c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-41.1 41.1c62.6 61.5 163.1 61.2 225.3-1c17.5-17.5 30.1-38 37.8-59.8c5.9-16.7 24.2-25.4 40.8-19.5s25.4 24.2 19.5 40.8c-10.8 30.6-28.4 59.3-52.9 83.8c-87.2 87.2-228.3 87.5-315.8 1L57 457c-6.9 6.9-17.2 8.9-26.2 5.2S16 449.7 16 440l0-119.6 0-.7 0-7.6z"], - "spinner": [512, 512, [], "f110", "M304 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm0 416a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM48 304a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm464-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM142.9 437A48 48 0 1 0 75 369.1 48 48 0 1 0 142.9 437zm0-294.2A48 48 0 1 0 75 75a48 48 0 1 0 67.9 67.9zM369.1 437A48 48 0 1 0 437 369.1 48 48 0 1 0 369.1 437z"], - "robot": [640, 512, [129302], "f544", "M320 0c17.7 0 32 14.3 32 32l0 64 120 0c39.8 0 72 32.2 72 72l0 272c0 39.8-32.2 72-72 72l-304 0c-39.8 0-72-32.2-72-72l0-272c0-39.8 32.2-72 72-72l120 0 0-64c0-17.7 14.3-32 32-32zM208 384c-8.8 0-16 7.2-16 16s7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0zm96 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0zm96 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0zM264 256a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zm152 40a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM48 224l16 0 0 192-16 0c-26.5 0-48-21.5-48-48l0-96c0-26.5 21.5-48 48-48zm544 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-16 0 0-192 16 0z"], - "peace": [512, 512, [9774], "f67c", "M224 445.3l0-121.8-94.3 77.1c26.1 22.8 58.5 38.7 94.3 44.7zM89.2 351.1L224 240.8l0-174.2C133.2 81.9 64 160.9 64 256c0 34.6 9.2 67.1 25.2 95.1zm293.1 49.5L288 323.5l0 121.8c35.7-6 68.1-21.9 94.3-44.7zm40.6-49.5c16-28 25.2-60.5 25.2-95.1c0-95.1-69.2-174.1-160-189.3l0 174.2L422.8 351.1zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z"], - "gears": [640, 512, ["cogs"], "f085", "M308.5 135.3c7.1-6.3 9.9-16.2 6.2-25c-2.3-5.3-4.8-10.5-7.6-15.5L304 89.4c-3-5-6.3-9.9-9.8-14.6c-5.7-7.6-15.7-10.1-24.7-7.1l-28.2 9.3c-10.7-8.8-23-16-36.2-20.9L199 27.1c-1.9-9.3-9.1-16.7-18.5-17.8C173.9 8.4 167.2 8 160.4 8l-.7 0c-6.8 0-13.5 .4-20.1 1.2c-9.4 1.1-16.6 8.6-18.5 17.8L115 56.1c-13.3 5-25.5 12.1-36.2 20.9L50.5 67.8c-9-3-19-.5-24.7 7.1c-3.5 4.7-6.8 9.6-9.9 14.6l-3 5.3c-2.8 5-5.3 10.2-7.6 15.6c-3.7 8.7-.9 18.6 6.2 25l22.2 19.8C32.6 161.9 32 168.9 32 176s.6 14.1 1.7 20.9L11.5 216.7c-7.1 6.3-9.9 16.2-6.2 25c2.3 5.3 4.8 10.5 7.6 15.6l3 5.2c3 5.1 6.3 9.9 9.9 14.6c5.7 7.6 15.7 10.1 24.7 7.1l28.2-9.3c10.7 8.8 23 16 36.2 20.9l6.1 29.1c1.9 9.3 9.1 16.7 18.5 17.8c6.7 .8 13.5 1.2 20.4 1.2s13.7-.4 20.4-1.2c9.4-1.1 16.6-8.6 18.5-17.8l6.1-29.1c13.3-5 25.5-12.1 36.2-20.9l28.2 9.3c9 3 19 .5 24.7-7.1c3.5-4.7 6.8-9.5 9.8-14.6l3.1-5.4c2.8-5 5.3-10.2 7.6-15.5c3.7-8.7 .9-18.6-6.2-25l-22.2-19.8c1.1-6.8 1.7-13.8 1.7-20.9s-.6-14.1-1.7-20.9l22.2-19.8zM112 176a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM504.7 500.5c6.3 7.1 16.2 9.9 25 6.2c5.3-2.3 10.5-4.8 15.5-7.6l5.4-3.1c5-3 9.9-6.3 14.6-9.8c7.6-5.7 10.1-15.7 7.1-24.7l-9.3-28.2c8.8-10.7 16-23 20.9-36.2l29.1-6.1c9.3-1.9 16.7-9.1 17.8-18.5c.8-6.7 1.2-13.5 1.2-20.4s-.4-13.7-1.2-20.4c-1.1-9.4-8.6-16.6-17.8-18.5L583.9 307c-5-13.3-12.1-25.5-20.9-36.2l9.3-28.2c3-9 .5-19-7.1-24.7c-4.7-3.5-9.6-6.8-14.6-9.9l-5.3-3c-5-2.8-10.2-5.3-15.6-7.6c-8.7-3.7-18.6-.9-25 6.2l-19.8 22.2c-6.8-1.1-13.8-1.7-20.9-1.7s-14.1 .6-20.9 1.7l-19.8-22.2c-6.3-7.1-16.2-9.9-25-6.2c-5.3 2.3-10.5 4.8-15.6 7.6l-5.2 3c-5.1 3-9.9 6.3-14.6 9.9c-7.6 5.7-10.1 15.7-7.1 24.7l9.3 28.2c-8.8 10.7-16 23-20.9 36.2L315.1 313c-9.3 1.9-16.7 9.1-17.8 18.5c-.8 6.7-1.2 13.5-1.2 20.4s.4 13.7 1.2 20.4c1.1 9.4 8.6 16.6 17.8 18.5l29.1 6.1c5 13.3 12.1 25.5 20.9 36.2l-9.3 28.2c-3 9-.5 19 7.1 24.7c4.7 3.5 9.5 6.8 14.6 9.8l5.4 3.1c5 2.8 10.2 5.3 15.5 7.6c8.7 3.7 18.6 .9 25-6.2l19.8-22.2c6.8 1.1 13.8 1.7 20.9 1.7s14.1-.6 20.9-1.7l19.8 22.2zM464 304a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"], - "warehouse": [640, 512, [], "f494", "M0 488L0 171.3c0-26.2 15.9-49.7 40.2-59.4L308.1 4.8c7.6-3.1 16.1-3.1 23.8 0L599.8 111.9c24.3 9.7 40.2 33.3 40.2 59.4L640 488c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-264c0-17.7-14.3-32-32-32l-384 0c-17.7 0-32 14.3-32 32l0 264c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24zm488 24l-336 0c-13.3 0-24-10.7-24-24l0-56 384 0 0 56c0 13.3-10.7 24-24 24zM128 400l0-64 384 0 0 64-384 0zm0-96l0-80 384 0 0 80-384 0z"], - "arrow-up-right-dots": [576, 512, [], "e4b7", "M160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l50.7 0L9.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L256 109.3l0 50.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128c0-17.7-14.3-32-32-32L160 0zM576 80a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM448 208a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM400 384a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm48 80a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm128 0a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM272 384a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm48 80a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM144 512a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM576 336a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm-48-80a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"], - "splotch": [512, 512, [], "f5bc", "M208.5 62.3l28.1-36.9C248.8 9.4 267.8 0 288 0c28.5 0 53.6 18.7 61.8 46l17.8 59.4c10.3 34.4 36.1 62 69.8 74.6l39.8 14.9c20.9 7.9 34.8 27.9 34.8 50.2c0 16.9-7.9 32.8-21.5 42.9l-67.3 50.5c-24.3 18.2-37.2 47.9-33.8 78.1l2.5 22.7c4.3 38.7-26 72.6-65 72.6c-14.8 0-29.3-5.1-40.8-14.3l-55.4-44.3c-4.5-3.6-9.3-6.7-14.5-9.2c-15.8-7.9-33.7-10.4-51-7.3L82.4 451.9C47.8 458.2 16 431.6 16 396.5c0-13.2 4.7-26 13.1-36.2l11.2-13.4c14.6-17.4 22.6-39.4 22.6-62.1c0-18.8-5.5-37.2-15.8-53L8.8 173.5C3.1 164.7 0 154.4 0 143.9c0-33.4 30.1-58.8 63-53.2l51.3 8.7c35.9 6.1 72.2-8.2 94.2-37.1z"], - "face-grin-hearts": [512, 512, [128525, "grin-hearts"], "f584", "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zM199.3 129.1c17.8 4.8 28.4 23.1 23.6 40.8l-17.4 65c-2.3 8.5-11.1 13.6-19.6 11.3l-65.1-17.4c-17.8-4.8-28.4-23.1-23.6-40.8s23.1-28.4 40.8-23.6l16.1 4.3 4.3-16.1c4.8-17.8 23.1-28.4 40.8-23.6zm154.3 23.6l4.3 16.1 16.1-4.3c17.8-4.8 36.1 5.8 40.8 23.6s-5.8 36.1-23.6 40.8l-65.1 17.4c-8.5 2.3-17.3-2.8-19.6-11.3l-17.4-65c-4.8-17.8 5.8-36.1 23.6-40.8s36.1 5.8 40.9 23.6z"], - "dice-four": [448, 512, [9859], "f524", "M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm160 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM352 160a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"], - "sim-card": [384, 512, [], "f7c4", "M64 0L242.7 0c17 0 33.3 6.7 45.3 18.7L365.3 96c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64C0 28.7 28.7 0 64 0zM96 192c-17.7 0-32 14.3-32 32l0 32 64 0 0-64-32 0zM64 352l80 0 96 0 80 0 0-64-80 0-96 0-80 0 0 64zM320 224c0-17.7-14.3-32-32-32l-32 0 0 64 64 0 0-32zM160 192l0 64 64 0 0-64-64 0zM288 448c17.7 0 32-14.3 32-32l0-32-64 0 0 64 32 0zM160 384l0 64 64 0 0-64-64 0zM64 416c0 17.7 14.3 32 32 32l32 0 0-64-64 0 0 32z"], - "transgender": [512, 512, [9895, "transgender-alt"], "f225", "M112 0c6.5 0 12.3 3.9 14.8 9.9s1.1 12.9-3.5 17.4l-31 31L112 78.1l7-7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-7 7 15.2 15.2C187.7 107.6 220.5 96 256 96s68.3 11.6 94.9 31.2l68.8-68.8-31-31c-4.6-4.6-5.9-11.5-3.5-17.4s8.3-9.9 14.8-9.9l96 0c8.8 0 16 7.2 16 16l0 96c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5l-31-31-68.8 68.8C404.4 187.7 416 220.5 416 256c0 80.2-59 146.6-136 158.2l0 17.8 16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0 0 8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0 0-17.8C155 402.6 96 336.2 96 256c0-35.5 11.6-68.3 31.2-94.9L112 145.9l-7 7c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l7-7L58.3 92.3l-31 31c-4.6 4.6-11.5 5.9-17.4 3.5S0 118.5 0 112L0 16C0 7.2 7.2 0 16 0l96 0zM352 256a96 96 0 1 0 -192 0 96 96 0 1 0 192 0z"], - "mercury": [384, 512, [9791], "f223", "M72.1 7C85.8-4 106-1.8 117 12c17.6 22 44.7 36 75 36s57.3-14 75-36c11.1-13.8 31.2-16 45-5s16 31.2 5 45c-7.8 9.7-16.6 18.4-26.4 26.1C337.3 109.7 368 163.3 368 224c0 89.1-66.2 162.7-152 174.4l0 25.6 32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0 0 16c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-16-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l32 0 0-25.6C82.2 386.7 16 313.1 16 224c0-60.7 30.7-114.3 77.5-145.9C83.7 70.5 74.9 61.7 67.1 52c-11.1-13.8-8.8-33.9 5-45zM80 224a112 112 0 1 0 224 0A112 112 0 1 0 80 224z"], - "arrow-turn-down": [384, 512, ["level-down"], "f149", "M32 64C14.3 64 0 49.7 0 32S14.3 0 32 0l96 0c53 0 96 43 96 96l0 306.7 73.4-73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-128 128c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 402.7 160 96c0-17.7-14.3-32-32-32L32 64z"], - "person-falling-burst": [640, 512, [], "e547", "M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 9.8c0 39-23.7 74-59.9 88.4C71.6 154.5 32 213 32 278.2L32 352c0 17.7 14.3 32 32 32s32-14.3 32-32l0-73.8c0-10 1.6-19.8 4.5-29L261.1 497.4c9.6 14.8 29.4 19.1 44.3 9.5s19.1-29.4 9.5-44.3L222.6 320l1.4 0 80 0 38.4 51.2c10.6 14.1 30.7 17 44.8 6.4s17-30.7 6.4-44.8l-43.2-57.6C341.3 263.1 327.1 256 312 256l-71.5 0-56.8-80.2-.2-.3c44.7-29 72.5-79 72.5-133.6l0-9.8zM96 80A48 48 0 1 0 0 80a48 48 0 1 0 96 0zM464 286.1l58.6 53.9c4.8 4.4 11.9 5.5 17.8 2.6s9.5-9 9-15.5l-5.6-79.4 78.7-12.2c6.5-1 11.7-5.9 13.1-12.2s-1.1-13-6.5-16.7l-65.6-45.1L603 92.2c3.3-5.7 2.7-12.8-1.4-17.9s-10.9-7.2-17.2-5.3L508.3 92.1l-29.4-74C476.4 12 470.6 8 464 8s-12.4 4-14.9 10.1l-29.4 74L343.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1-65.6 45.1c-5.4 3.7-8 10.3-6.5 16.7c.1 .3 .1 .6 .2 .8l19.4 0c20.1 0 39.2 7.5 53.8 20.8l18.4 2.9L383 265.3l36.2 48.3c2.1 2.8 3.9 5.7 5.5 8.6L464 286.1z"], - "award": [384, 512, [], "f559", "M173.8 5.5c11-7.3 25.4-7.3 36.4 0L228 17.2c6 3.9 13 5.8 20.1 5.4l21.3-1.3c13.2-.8 25.6 6.4 31.5 18.2l9.6 19.1c3.2 6.4 8.4 11.5 14.7 14.7L344.5 83c11.8 5.9 19 18.3 18.2 31.5l-1.3 21.3c-.4 7.1 1.5 14.2 5.4 20.1l11.8 17.8c7.3 11 7.3 25.4 0 36.4L366.8 228c-3.9 6-5.8 13-5.4 20.1l1.3 21.3c.8 13.2-6.4 25.6-18.2 31.5l-19.1 9.6c-6.4 3.2-11.5 8.4-14.7 14.7L301 344.5c-5.9 11.8-18.3 19-31.5 18.2l-21.3-1.3c-7.1-.4-14.2 1.5-20.1 5.4l-17.8 11.8c-11 7.3-25.4 7.3-36.4 0L156 366.8c-6-3.9-13-5.8-20.1-5.4l-21.3 1.3c-13.2 .8-25.6-6.4-31.5-18.2l-9.6-19.1c-3.2-6.4-8.4-11.5-14.7-14.7L39.5 301c-11.8-5.9-19-18.3-18.2-31.5l1.3-21.3c.4-7.1-1.5-14.2-5.4-20.1L5.5 210.2c-7.3-11-7.3-25.4 0-36.4L17.2 156c3.9-6 5.8-13 5.4-20.1l-1.3-21.3c-.8-13.2 6.4-25.6 18.2-31.5l19.1-9.6C65 70.2 70.2 65 73.4 58.6L83 39.5c5.9-11.8 18.3-19 31.5-18.2l21.3 1.3c7.1 .4 14.2-1.5 20.1-5.4L173.8 5.5zM272 192a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM1.3 441.8L44.4 339.3c.2 .1 .3 .2 .4 .4l9.6 19.1c11.7 23.2 36 37.3 62 35.8l21.3-1.3c.2 0 .5 0 .7 .2l17.8 11.8c5.1 3.3 10.5 5.9 16.1 7.7l-37.6 89.3c-2.3 5.5-7.4 9.2-13.3 9.7s-11.6-2.2-14.8-7.2L74.4 455.5l-56.1 8.3c-5.7 .8-11.4-1.5-15-6s-4.3-10.7-2.1-16zm248 60.4L211.7 413c5.6-1.8 11-4.3 16.1-7.7l17.8-11.8c.2-.1 .4-.2 .7-.2l21.3 1.3c26 1.5 50.3-12.6 62-35.8l9.6-19.1c.1-.2 .2-.3 .4-.4l43.2 102.5c2.2 5.3 1.4 11.4-2.1 16s-9.3 6.9-15 6l-56.1-8.3-32.2 49.2c-3.2 5-8.9 7.7-14.8 7.2s-11-4.3-13.3-9.7z"], - "ticket-simple": [576, 512, ["ticket-alt"], "f3ff", "M0 128C0 92.7 28.7 64 64 64l448 0c35.3 0 64 28.7 64 64l0 64c0 8.8-7.4 15.7-15.7 18.6C541.5 217.1 528 235 528 256s13.5 38.9 32.3 45.4c8.3 2.9 15.7 9.8 15.7 18.6l0 64c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64l0-64c0-8.8 7.4-15.7 15.7-18.6C34.5 294.9 48 277 48 256s-13.5-38.9-32.3-45.4C7.4 207.7 0 200.8 0 192l0-64z"], - "building": [384, 512, [127970, 61687], "f1ad", "M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 96 0c26.5 0 48-21.5 48-48l0-416c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM80 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16z"], - "angles-left": [512, 512, [171, "angle-double-left"], "f100", "M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256 246.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160zm352-160l-160 160c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L301.3 256 438.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0z"], - "qrcode": [448, 512, [], "f029", "M0 80C0 53.5 21.5 32 48 32l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48L0 80zM64 96l0 64 64 0 0-64L64 96zM0 336c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-96zm64 16l0 64 64 0 0-64-64 0zM304 32l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-96c0-26.5 21.5-48 48-48zm80 64l-64 0 0 64 64 0 0-64zM256 304c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16s7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s7.2-16 16-16s16 7.2 16 16l0 96c0 8.8-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16s-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-160zM368 480a16 16 0 1 1 0-32 16 16 0 1 1 0 32zm64 0a16 16 0 1 1 0-32 16 16 0 1 1 0 32z"], - "clock-rotate-left": [512, 512, ["history"], "f1da", "M75 75L41 41C25.9 25.9 0 36.6 0 57.9L0 168c0 13.3 10.7 24 24 24l110.1 0c21.4 0 32.1-25.9 17-41l-30.8-30.8C155 85.5 203 64 256 64c106 0 192 86 192 192s-86 192-192 192c-40.8 0-78.6-12.7-109.7-34.4c-14.5-10.1-34.4-6.6-44.6 7.9s-6.6 34.4 7.9 44.6C151.2 495 201.7 512 256 512c141.4 0 256-114.6 256-256S397.4 0 256 0C185.3 0 121.3 28.7 75 75zm181 53c-13.3 0-24 10.7-24 24l0 104c0 6.4 2.5 12.5 7 17l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-65-65 0-94.1c0-13.3-10.7-24-24-24z"], - "face-grin-beam-sweat": [512, 512, [128517, "grin-beam-sweat"], "f583", "M476.8 126.3c-4.1 1.1-8.4 1.7-12.8 1.7c-26.5 0-48-21-48-47c0-5 1.8-11.3 4.6-18.1c.3-.7 .6-1.4 .9-2.1c9-20.2 26.5-44.9 36-57.5c3.2-4.4 9.6-4.4 12.8 0C483.4 20.6 512 61 512 81c0 21.7-14.9 39.8-35.2 45.3zM256 0c51.4 0 99.3 15.2 139.4 41.2c-1.5 3.1-3 6.2-4.3 9.3c-3.4 8-7.1 19-7.1 30.5c0 44.3 36.6 79 80 79c9.6 0 18.8-1.7 27.4-4.8c13.3 30.9 20.6 65 20.6 100.8c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0zM383.8 317.8C345.3 329.4 301.9 336 256 336s-89.3-6.6-127.8-18.2c-12.3-3.7-24.3 7-19.2 18.7c24.5 56.9 81.1 96.7 147 96.7s122.5-39.8 147-96.7c5.1-11.8-6.9-22.4-19.2-18.7zm-166.2-89s0 0 0 0s0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C126.7 188.4 120 206.1 120 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2c0 0 0 0 0 0c0 0 0 0 0 0zm160 0s0 0 0 0s0 0 0 0s0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C286.7 188.4 280 206.1 280 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2c0 0 0 0 0 0z"], - "file-export": [576, 512, ["arrow-right-from-file"], "f56e", "M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 128-168 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l168 0 0 112c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM384 336l0-48 110.1 0-39-39c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l80 80c9.4 9.4 9.4 24.6 0 33.9l-80 80c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l39-39L384 336zm0-208l-128 0L256 0 384 128z"], - "shield": [512, 512, [128737, "shield-blank"], "f132", "M256 0c4.6 0 9.2 1 13.4 2.9L457.7 82.8c22 9.3 38.4 31 38.3 57.2c-.5 99.2-41.3 280.7-213.6 363.2c-16.7 8-36.1 8-52.8 0C57.3 420.7 16.5 239.2 16 140c-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.8 1 251.4 0 256 0z"], - "arrow-up-short-wide": [576, 512, ["sort-amount-up-alt"], "f885", "M151.6 42.4C145.5 35.8 137 32 128 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L96 146.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-301.7 32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-224 0z"], - "comment-nodes": [640, 512, [], "e696", "M256 448c10.8 0 21.5-.5 32-1.6c.3-15.8 4.4-31.7 12.9-46.4c16-27.7 43.7-44.4 73.2-47.5l16.7-29.2c-4.3-11-6.7-22.9-6.7-35.4c0-53 43-96 96-96c9.1 0 17.8 1.3 26.2 3.6C481.1 102.1 378.6 32 256 32C114.6 32 0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.2 .3-.4 .5-.6 .7c-.3 .3-.5 .5-.6 .7l-.3 .3c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zm72.6-32c-17.7 30.6-7.2 69.7 23.4 87.4s69.7 7.2 87.4-23.4c1.5-2.6 2.8-5.3 3.9-8l73.3 0c1.1 2.7 2.4 5.4 3.9 8c17.7 30.6 56.8 41.1 87.4 23.4s41.1-56.8 23.4-87.4c-13.4-23.2-39.1-34.8-64-31.4l-17.6-30.7c-11 11.7-25 20.6-40.6 25.6l16.5 28.9c-3.8 4.8-6.8 10-9 15.6l-73.4 0c-2.2-5.6-5.3-10.8-9-15.6l33-57.7c4.1 .8 8.4 1.3 12.8 1.3c35.3 0 64-28.7 64-64s-28.7-64-64-64s-64 28.7-64 64c0 13.4 4.1 25.8 11.2 36.1l-34.6 60.5c-25-3.4-50.6 8.3-64 31.4z"], - "house-medical": [576, 512, [], "e3b2", "M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1l32 0 0 160.4c0 35.3 28.7 64 64 64l320.4 0c35.5 0 64.2-28.8 64-64.3l-.7-160.2 32 0zM256 208c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48z"], - "golf-ball-tee": [384, 512, ["golf-ball"], "f450", "M384 192c0 66.8-34.1 125.6-85.8 160L85.8 352C34.1 317.6 0 258.8 0 192C0 86 86 0 192 0S384 86 384 192zM242.1 256.6c0 18.5-15 33.5-33.5 33.5c-4.9 0-9.1 5.1-5.4 8.4c5.9 5.2 13.7 8.4 22.1 8.4c18.5 0 33.5-15 33.5-33.5c0-8.5-3.2-16.2-8.4-22.1c-3.3-3.7-8.4 .5-8.4 5.4zm-52.3-49.3c-4.9 0-9.1 5.1-5.4 8.4c5.9 5.2 13.7 8.4 22.1 8.4c18.5 0 33.5-15 33.5-33.5c0-8.5-3.2-16.2-8.4-22.1c-3.3-3.7-8.4 .5-8.4 5.4c0 18.5-15 33.5-33.5 33.5zm113.5-17.5c0 18.5-15 33.5-33.5 33.5c-4.9 0-9.1 5.1-5.4 8.4c5.9 5.2 13.7 8.4 22.1 8.4c18.5 0 33.5-15 33.5-33.5c0-8.5-3.2-16.2-8.4-22.1c-3.3-3.7-8.4 .5-8.4 5.4zM96 416c0-17.7 14.3-32 32-32l64 0 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0c-8.8 0-16 7.2-16 16l0 16c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-16c0-8.8-7.2-16-16-16l-16 0c-17.7 0-32-14.3-32-32z"], - "circle-chevron-left": [512, 512, ["chevron-circle-left"], "f137", "M512 256A256 256 0 1 0 0 256a256 256 0 1 0 512 0zM271 135c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-87 87 87 87c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L167 273c-9.4-9.4-9.4-24.6 0-33.9L271 135z"], - "house-chimney-window": [576, 512, [], "e00d", "M575.8 255.5c0 18-15 32.1-32 32.1l-32 0 .7 160.2c.2 35.5-28.5 64.3-64 64.3l-320.4 0c-35.3 0-64-28.7-64-64l0-160.4-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L416 100.7 416 64c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 121 52.8 46.4c8 7 12 15 11 24zM248 192c-13.3 0-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-80c0-13.3-10.7-24-24-24l-80 0z"], - "pen-nib": [512, 512, [10001], "f5ad", "M368.4 18.3L312.7 74.1 437.9 199.3l55.7-55.7c21.9-21.9 21.9-57.3 0-79.2L447.6 18.3c-21.9-21.9-57.3-21.9-79.2 0zM288 94.6l-9.2 2.8L134.7 140.6c-19.9 6-35.7 21.2-42.3 41L3.8 445.8c-3.8 11.3-1 23.9 7.3 32.4L164.7 324.7c-3-6.3-4.7-13.3-4.7-20.7c0-26.5 21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48c-7.4 0-14.4-1.7-20.7-4.7L33.7 500.9c8.6 8.3 21.1 11.2 32.4 7.3l264.3-88.6c19.7-6.6 35-22.4 41-42.3l43.2-144.1 2.7-9.2L288 94.6z"], - "tent-arrow-turn-left": [576, 512, [], "e580", "M120.1 41.8c9.9-8.9 10.7-24 1.8-33.9S97.8-2.7 87.9 6.2l-80 72C2.9 82.7 0 89.2 0 96s2.9 13.3 7.9 17.8l80 72c9.9 8.9 25 8.1 33.9-1.8s8.1-25-1.8-33.9L86.5 120 456 120c39.8 0 72 32.2 72 72l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40c0-66.3-53.7-120-120-120L86.5 72l33.5-30.2zM307.4 166.5c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S86.7 512 96 512l144 0 16 0c17.7 0 32-14.3 32-32l0-118.1c0-5.5 4.4-9.9 9.9-9.9c3.7 0 7.2 2.1 8.8 5.5l68.4 136.8c5.4 10.8 16.5 17.7 28.6 17.7l60.2 0 16 0c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z"], - "tents": [640, 512, [], "e582", "M396.6 6.5L235.8 129.1c9.6 1.8 18.9 5.8 27 12l168 128c13.2 10.1 22 24.9 24.5 41.4l6.2 41.5L608 352c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128c-11.5-8.7-27.3-8.7-38.8 0zm-153.2 160c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S22.7 512 32 512l144 0 16 0c17.7 0 32-14.3 32-32l0-118.1c0-5.5 4.4-9.9 9.9-9.9c3.7 0 7.2 2.1 8.8 5.5l68.4 136.8c5.4 10.8 16.5 17.7 28.6 17.7l60.2 0 16 0c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z"], - "wand-magic": [512, 512, ["magic"], "f0d0", "M14.1 463.3c-18.7-18.7-18.7-49.1 0-67.9L395.4 14.1c18.7-18.7 49.1-18.7 67.9 0l34.6 34.6c18.7 18.7 18.7 49.1 0 67.9L116.5 497.9c-18.7 18.7-49.1 18.7-67.9 0L14.1 463.3zM347.6 187.6l105-105L429.4 59.3l-105 105 23.3 23.3z"], - "dog": [576, 512, [128021], "f6d3", "M309.6 158.5L332.7 19.8C334.6 8.4 344.5 0 356.1 0c7.5 0 14.5 3.5 19 9.5L392 32l52.1 0c12.7 0 24.9 5.1 33.9 14.1L496 64l56 0c13.3 0 24 10.7 24 24l0 24c0 44.2-35.8 80-80 80l-32 0-16 0-21.3 0-5.1 30.5-112-64zM416 256.1L416 480c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-115.2c-24 12.3-51.2 19.2-80 19.2s-56-6.9-80-19.2L160 480c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-230.2c-28.8-10.9-51.4-35.3-59.2-66.5L1 167.8c-4.3-17.1 6.1-34.5 23.3-38.8s34.5 6.1 38.8 23.3l3.9 15.5C70.5 182 83.3 192 98 192l30 0 16 0 159.8 0L416 256.1zM464 80a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z"], - "carrot": [512, 512, [129365], "f787", "M346.7 6C337.6 17 320 42.3 320 72c0 40 15.3 55.3 40 80s40 40 80 40c29.7 0 55-17.6 66-26.7c4-3.3 6-8.2 6-13.3s-2-10-6-13.2c-11.4-9.1-38.3-26.8-74-26.8c-32 0-40 8-40 8s8-8 8-40c0-35.7-17.7-62.6-26.8-74C370 2 365.1 0 360 0s-10 2-13.3 6zM244.6 136c-40 0-77.1 18.1-101.7 48.2l60.5 60.5c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-55.3-55.3 0 .1L2.2 477.9C-2 487-.1 497.8 7 505s17.9 9 27.1 4.8l134.7-62.4-52.1-52.1c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L199.7 433l100.2-46.4c46.4-21.5 76.2-68 76.2-119.2C376 194.8 317.2 136 244.6 136z"], - "moon": [384, 512, [127769, 9214], "f186", "M223.5 32C100 32 0 132.3 0 256S100 480 223.5 480c60.6 0 115.5-24.2 155.8-63.4c5-4.9 6.3-12.5 3.1-18.7s-10.1-9.7-17-8.5c-9.8 1.7-19.8 2.6-30.1 2.6c-96.9 0-175.5-78.8-175.5-176c0-65.8 36-123.1 89.3-153.3c6.1-3.5 9.2-10.5 7.7-17.3s-7.3-11.9-14.3-12.5c-6.3-.5-12.6-.8-19-.8z"], - "wine-glass-empty": [320, 512, ["wine-glass-alt"], "f5ce", "M64 0C47.4 0 33.5 12.8 32.1 29.3l-14 168.4c-6 72 42.5 135.2 109.9 150.6l0 99.6-48 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l80 0 80 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-48 0 0-99.6c67.4-15.4 115.9-78.6 109.9-150.6l-14-168.4C286.5 12.8 272.6 0 256 0L64 0zM81.9 203.1L93.4 64l133.1 0 11.6 139.1C242 248.8 205.9 288 160 288s-82-39.2-78.1-84.9z"], - "cheese": [512, 512, [], "f7ef", "M512 240.2l0 15.8L0 256c0-20 10-38.7 26.6-49.8L274.9 40.7c8.6-5.7 18.6-8.7 28.9-8.7C418.8 32 512 125.2 512 240.2zm0 47.8l0 128c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 288l512 0z"], - "yin-yang": [512, 512, [9775], "f6ad", "M256 64c53 0 96 43 96 96s-43 96-96 96s-96 43-96 96s43 96 96 96C150 448 64 362 64 256S150 64 256 64zm0 448A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm32-352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"], - "music": [512, 512, [127925], "f001", "M499.1 6.3c8.1 6 12.9 15.6 12.9 25.7l0 72 0 264c0 44.2-43 80-96 80s-96-35.8-96-80s43-80 96-80c11.2 0 22 1.6 32 4.6L448 147 192 223.8 192 432c0 44.2-43 80-96 80s-96-35.8-96-80s43-80 96-80c11.2 0 22 1.6 32 4.6L128 200l0-72c0-14.1 9.3-26.6 22.8-30.7l320-96c9.7-2.9 20.2-1.1 28.3 5z"], - "code-commit": [640, 512, [], "f386", "M320 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm156.8-48C462 361 397.4 416 320 416s-142-55-156.8-128L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l131.2 0C178 151 242.6 96 320 96s142 55 156.8 128L608 224c17.7 0 32 14.3 32 32s-14.3 32-32 32l-131.2 0z"], - "temperature-low": [512, 512, [], "f76b", "M448 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 96a96 96 0 1 1 192 0A96 96 0 1 1 320 96zM144 64c-26.5 0-48 21.5-48 48l0 164.5c0 17.3-7.1 31.9-15.3 42.5C70.2 332.6 64 349.5 64 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5L192 112c0-26.5-21.5-48-48-48zM32 112C32 50.2 82.1 0 144 0s112 50.1 112 112l0 164.4c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S0 447.5 0 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6L32 112zM192 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3l0-50.7c0-8.8 7.2-16 16-16s16 7.2 16 16l0 50.7c18.6 6.6 32 24.4 32 45.3z"], - "person-biking": [640, 512, [128692, "biking"], "f84a", "M400 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm27.2 64l-61.8-48.8c-17.3-13.6-41.7-13.8-59.1-.3l-83.1 64.2c-30.7 23.8-28.5 70.8 4.3 91.6L288 305.1 288 416c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128c0-10.7-5.3-20.7-14.2-26.6L295 232.9l60.3-48.5L396 217c5.7 4.5 12.7 7 20 7l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-52.8 0zM56 384a72 72 0 1 1 144 0A72 72 0 1 1 56 384zm200 0A128 128 0 1 0 0 384a128 128 0 1 0 256 0zm184 0a72 72 0 1 1 144 0 72 72 0 1 1 -144 0zm200 0a128 128 0 1 0 -256 0 128 128 0 1 0 256 0z"], - "broom": [576, 512, [129529], "f51a", "M566.6 54.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192-34.7-34.7c-4.2-4.2-10-6.6-16-6.6c-12.5 0-22.6 10.1-22.6 22.6l0 29.1L364.3 320l29.1 0c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16l-34.7-34.7 192-192zM341.1 353.4L222.6 234.9c-42.7-3.7-85.2 11.7-115.8 42.3l-8 8C76.5 307.5 64 337.7 64 369.2c0 6.8 7.1 11.2 13.2 8.2l51.1-25.5c5-2.5 9.5 4.1 5.4 7.9L7.3 473.4C2.7 477.6 0 483.6 0 489.9C0 502.1 9.9 512 22.1 512l173.3 0c38.8 0 75.9-15.4 103.4-42.8c30.6-30.6 45.9-73.1 42.3-115.8z"], - "shield-heart": [512, 512, [], "e574", "M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM144 221.3c0-33.8 27.4-61.3 61.3-61.3c16.2 0 31.8 6.5 43.3 17.9l7.4 7.4 7.4-7.4c11.5-11.5 27.1-17.9 43.3-17.9c33.8 0 61.3 27.4 61.3 61.3c0 16.2-6.5 31.8-17.9 43.3l-82.7 82.7c-6.2 6.2-16.4 6.2-22.6 0l-82.7-82.7c-11.5-11.5-17.9-27.1-17.9-43.3z"], - "gopuram": [512, 512, [], "f664", "M120 0c13.3 0 24 10.7 24 24l0 8 40 0 0-8c0-13.3 10.7-24 24-24s24 10.7 24 24l0 8 48 0 0-8c0-13.3 10.7-24 24-24s24 10.7 24 24l0 8 40 0 0-8c0-13.3 10.7-24 24-24s24 10.7 24 24l0 8 0 32 0 64c17.7 0 32 14.3 32 32l0 64c17.7 0 32 14.3 32 32l0 96c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-64 0 0-160-32 0 0-128-32 0 0-96-32 0 0 96 32 0 0 128 32 0 0 160-80 0 0-48c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 48-80 0 0-160 32 0 0-128 32 0 0-96-32 0 0 96-32 0 0 128-32 0 0 160-64 0c-17.7 0-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32l0-96c0-17.7 14.3-32 32-32l0-64c0-17.7 14.3-32 32-32l0-64 0-32 0-8c0-13.3 10.7-24 24-24zM256 272c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zm-32-80l0 32 64 0 0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32z"], - "earth-oceania": [512, 512, ["globe-oceania"], "e47b", "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM208.6 357.3l-39-13.5c-6.5-2.2-13.6-2.3-20.1-.3l-15.3 4.9c-18.5 5.9-38.5-2.4-47.5-19.5l-3.3-6.2c-10.6-20.1-2.3-45 18.2-54.7l35.3-16.8c2.3-1.1 4.4-2.8 5.9-4.8l5.3-7c7.2-9.6 18.6-15.3 30.6-15.3s23.4 5.7 30.6 15.3l4.6 6.1c2 2.6 4.9 4.5 8.1 5.1c7.8 1.6 15.7-1.5 20.4-7.9l10.4-14.2c2-2.8 5.3-4.4 8.7-4.4c4.4 0 8.4 2.7 10 6.8l10.1 25.9c2.8 7.2 6.7 14 11.5 20.2L311 299.8c5.8 7.4 9 16.6 9 26s-3.2 18.6-9 26L299 367.2c-8.3 10.6-21 16.8-34.4 16.8c-8.4 0-16.6-2.4-23.7-7l-25.4-16.4c-2.2-1.4-4.5-2.5-6.9-3.4zm65.2-214.8L296 164.7c10.1 10.1 2.9 27.3-11.3 27.3l-29.9 0c-5.6 0-11.1-1.2-16.2-3.4l-42.8-19c-14.3-6.3-11.9-27.3 3.4-30.3l38.5-7.7c13.1-2.6 26.7 1.5 36.1 10.9zM248 432c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16zM431.2 298.9l8 24c2.8 8.4-1.7 17.4-10.1 20.2s-17.4-1.7-20.2-10.1l-8-24c-2.8-8.4 1.7-17.4 10.1-20.2s17.4 1.7 20.2 10.1zm-19.9 80.4l-32 32c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l32-32c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"], - "square-xmark": [448, 512, [10062, "times-square", "xmark-square"], "f2d3", "M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm79 143c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"], - "hashtag": [448, 512, [62098], "23", "M181.3 32.4c17.4 2.9 29.2 19.4 26.3 36.8L197.8 128l95.1 0 11.5-69.3c2.9-17.4 19.4-29.2 36.8-26.3s29.2 19.4 26.3 36.8L357.8 128l58.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-68.9 0L325.8 320l58.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-68.9 0-11.5 69.3c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8l9.8-58.7-95.1 0-11.5 69.3c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8L90.2 384 32 384c-17.7 0-32-14.3-32-32s14.3-32 32-32l68.9 0 21.3-128L64 192c-17.7 0-32-14.3-32-32s14.3-32 32-32l68.9 0 11.5-69.3c2.9-17.4 19.4-29.2 36.8-26.3zM187.1 192L165.8 320l95.1 0 21.3-128-95.1 0z"], - "up-right-and-down-left-from-center": [512, 512, ["expand-alt"], "f424", "M344 0L488 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-87 87c-9.4 9.4-24.6 9.4-33.9 0l-32-32c-9.4-9.4-9.4-24.6 0-33.9l87-87L327 41c-6.9-6.9-8.9-17.2-5.2-26.2S334.3 0 344 0zM168 512L24 512c-13.3 0-24-10.7-24-24L0 344c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39 87-87c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8z"], - "oil-can": [640, 512, [], "f613", "M320 128c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32-80 0-48 0-48 0c-26.5 0-48 21.5-48 48l0 64.8c0 19 11.2 36.2 28.5 43.9l67.5 30L96 368c0 26.5 21.5 48 48 48l259.1 0c18.4 0 35.8-7.9 48-21.7L633.5 187.7c12.3-13.9-.3-35.4-18.4-31.5L448 192l-50.5-25.2c-8.9-4.4-18.7-6.8-28.6-6.8L288 160l0-32 32 0zM96 208l0 86.1L48 272.8 48 208l48 0z"], - "t": [384, 512, [116], "54", "M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l128 0 0 352c0 17.7 14.3 32 32 32s32-14.3 32-32l0-352 128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 32 32 32z"], - "hippo": [640, 512, [129435], "f6ed", "M407 47c9.4-9.4 24.6-9.4 33.9 0l17.2 17.2c1.9-.1 3.9-.2 5.8-.2l32 0c11.2 0 21.9 2.3 31.6 6.5L543 55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L564 101.9c7.6 12.2 12 26.7 12 42.1c0 10.2 7.4 18.8 16.7 23c27.9 12.5 47.3 40.5 47.3 73c0 26.2-12.6 49.4-32 64l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-16-64 0 0 16c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-17.6c-11.8-2.4-22.7-7.4-32-14.4c-1.5-1.1-2.9-2.3-4.3-3.5c-17-14.7-27.7-36.4-27.7-60.5c0-8.8-7.2-16-16-16s-16 7.2-16 16c0 44.7 26.2 83.2 64 101.2l0 10.8c0 17.7 14.3 32 32 32l32 0 0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-76c-19.8 7.7-41.4 12-64 12s-44.2-4.3-64-12l0 76c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-118.9L45.9 369.7c-5.4 12.1-19.6 17.6-31.7 12.2S-3.3 362.4 2.1 350.3L24 300.9c5.3-11.9 8-24.7 8-37.7C32 155.7 117.2 68 223.8 64.1l.2-.1 7.2 0L256 64l32 0c41.7 0 83.4 12.1 117.2 25.7c1.7-1.8 3.5-3.6 5.3-5.2L407 81c-9.4-9.4-9.4-24.6 0-33.9zm73 185a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm88 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM480 144a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32z"], - "chart-column": [512, 512, [], "e0e3", "M32 32c17.7 0 32 14.3 32 32l0 336c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 480c-44.2 0-80-35.8-80-80L0 64C0 46.3 14.3 32 32 32zM160 224c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm128-64l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160c0-17.7 14.3-32 32-32s32 14.3 32 32zm64 32c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32zM480 96l0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-224c0-17.7 14.3-32 32-32s32 14.3 32 32z"], - "infinity": [640, 512, [8734, 9854], "f534", "M0 241.1C0 161 65 96 145.1 96c38.5 0 75.4 15.3 102.6 42.5L320 210.7l72.2-72.2C419.5 111.3 456.4 96 494.9 96C575 96 640 161 640 241.1l0 29.7C640 351 575 416 494.9 416c-38.5 0-75.4-15.3-102.6-42.5L320 301.3l-72.2 72.2C220.5 400.7 183.6 416 145.1 416C65 416 0 351 0 270.9l0-29.7zM274.7 256l-72.2-72.2c-15.2-15.2-35.9-23.8-57.4-23.8C100.3 160 64 196.3 64 241.1l0 29.7c0 44.8 36.3 81.1 81.1 81.1c21.5 0 42.2-8.5 57.4-23.8L274.7 256zm90.5 0l72.2 72.2c15.2 15.2 35.9 23.8 57.4 23.8c44.8 0 81.1-36.3 81.1-81.1l0-29.7c0-44.8-36.3-81.1-81.1-81.1c-21.5 0-42.2 8.5-57.4 23.8L365.3 256z"], - "vial-circle-check": [512, 512, [], "e596", "M0 64C0 46.3 14.3 32 32 32l64 0 64 0 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 170.8c-20.2 28.6-32 63.5-32 101.2c0 25.2 5.3 49.1 14.8 70.8C189.5 463.7 160.6 480 128 480c-53 0-96-43-96-96L32 96C14.3 96 0 81.7 0 64zM96 96l0 96 64 0 0-96L96 96zM224 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L352 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z"], - "person-arrow-down-to-line": [640, 512, [], "e538", "M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8 352l0-96 16 0 0 96-16 0zm-64 0l-88 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l120 0 80 0 376 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-344 0 0-191.1 28.6 47.5c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-58.3-97c-17.4-28.9-48.6-46.6-82.3-46.6l-29.7 0c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9 120 448zM464 64l0 242.7-25.4-25.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l80 80c12.5 12.5 32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L528 306.7 528 64c0-17.7-14.3-32-32-32s-32 14.3-32 32z"], - "voicemail": [640, 512, [], "f897", "M144 320a80 80 0 1 1 0-160 80 80 0 1 1 0 160zm119.8 0c15.3-22.9 24.2-50.4 24.2-80c0-79.5-64.5-144-144-144S0 160.5 0 240s64.5 144 144 144l352 0c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144c0 29.6 8.9 57.1 24.2 80l-112.5 0zM496 160a80 80 0 1 1 0 160 80 80 0 1 1 0-160z"], - "fan": [512, 512, [], "f863", "M258.6 0c-1.7 0-3.4 .1-5.1 .5C168 17 115.6 102.3 130.5 189.3c2.9 17 8.4 32.9 15.9 47.4L32 224l-2.6 0C13.2 224 0 237.2 0 253.4c0 1.7 .1 3.4 .5 5.1C17 344 102.3 396.4 189.3 381.5c17-2.9 32.9-8.4 47.4-15.9L224 480l0 2.6c0 16.2 13.2 29.4 29.4 29.4c1.7 0 3.4-.1 5.1-.5C344 495 396.4 409.7 381.5 322.7c-2.9-17-8.4-32.9-15.9-47.4L480 288l2.6 0c16.2 0 29.4-13.2 29.4-29.4c0-1.7-.1-3.4-.5-5.1C495 168 409.7 115.6 322.7 130.5c-17 2.9-32.9 8.4-47.4 15.9L288 32l0-2.6C288 13.2 274.8 0 258.6 0zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"], - "person-walking-luggage": [576, 512, [], "e554", "M432 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM347.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L505 232.7l-15.3-36.8C472.5 154.8 432.3 128 387.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1l-25 62.4-59.4 59.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L340.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM256 274.1c-7.7-4.4-17.4-1.8-21.9 5.9l-32 55.4L147.7 304c-15.3-8.8-34.9-3.6-43.7 11.7L40 426.6c-8.8 15.3-3.6 34.9 11.7 43.7l55.4 32c15.3 8.8 34.9 3.6 43.7-11.7l64-110.9c1.5-2.6 2.6-5.2 3.3-8L261.9 296c4.4-7.7 1.8-17.4-5.9-21.9z"], - "up-down": [256, 512, [8597, 11021, "arrows-alt-v"], "f338", "M145.6 7.7C141 2.8 134.7 0 128 0s-13 2.8-17.6 7.7l-104 112c-6.5 7-8.2 17.2-4.4 25.9S14.5 160 24 160l56 0 0 192-56 0c-9.5 0-18.2 5.7-22 14.4s-2.1 18.9 4.4 25.9l104 112c4.5 4.9 10.9 7.7 17.6 7.7s13-2.8 17.6-7.7l104-112c6.5-7 8.2-17.2 4.4-25.9s-12.5-14.4-22-14.4l-56 0 0-192 56 0c9.5 0 18.2-5.7 22-14.4s2.1-18.9-4.4-25.9l-104-112z"], - "cloud-moon-rain": [576, 512, [], "f73c", "M481.2 0C417 0 363.5 46.5 353.7 107.6c35.4 17.6 60.2 53.3 62.1 95.1c23.2 11 42 29.7 53.1 52.7c4 .4 8.1 .6 12.3 .6c34.9 0 66.7-13.8 89.9-36.1c5.1-4.9 6.4-12.5 3.2-18.7s-10.1-9.7-17-8.6c-4.9 .8-10 1.3-15.2 1.3c-49 0-88.4-39.3-88.4-87.4c0-32.6 18-61.1 44.9-76.1c6.1-3.4 9.3-10.5 7.8-17.4s-7.3-12-14.3-12.6c-3.6-.3-7.3-.5-10.9-.5zM367.9 383.9c44.2 0 80-35.8 80-80c0-39.3-28.4-72.1-65.8-78.7c1.2-5.6 1.9-11.3 1.9-17.2c0-44.2-35.8-80-80-80c-17 0-32.8 5.3-45.8 14.4C241.3 114.6 210.8 96 176 96c-53 0-96 43-96 96l0 1.3c-45.4 7.6-80 47.1-80 94.6c0 53 43 96 96 96l271.9 0zM85.4 420.1c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3z"], - "calendar": [448, 512, [128197, 128198], "f133", "M96 32l0 32L48 64C21.5 64 0 85.5 0 112l0 48 448 0 0-48c0-26.5-21.5-48-48-48l-48 0 0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32L160 64l0-32c0-17.7-14.3-32-32-32S96 14.3 96 32zM448 192L0 192 0 464c0 26.5 21.5 48 48 48l352 0c26.5 0 48-21.5 48-48l0-272z"], - "trailer": [640, 512, [], "e041", "M48 32C21.5 32 0 53.5 0 80L0 336c0 26.5 21.5 48 48 48l17.1 0c7.8-54.3 54.4-96 110.9-96s103.1 41.7 110.9 96L488 384l8 0 112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-240c0-26.5-21.5-48-48-48L48 32zM80 96c8.8 0 16 7.2 16 16l0 131.2c-11.4 5.9-22.2 12.9-32 21L64 112c0-8.8 7.2-16 16-16zm96 128c-5.4 0-10.7 .2-16 .7L160 112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 112.7c-5.3-.5-10.6-.7-16-.7zm80 19.2L256 112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 152.2c-9.8-8.1-20.6-15.2-32-21zM368 96c8.8 0 16 7.2 16 16l0 192c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-192c0-8.8 7.2-16 16-16zm112 16l0 192c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-192c0-8.8 7.2-16 16-16s16 7.2 16 16zM176 480a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0-112a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"], - "bahai": [576, 512, ["haykal"], "f666", "M288 0c14.5 0 27.2 9.7 30.9 23.8l23.9 89.6 75.9-53.3c11.9-8.3 27.8-7.6 39 1.7s14.6 24.9 8.4 38.1l-39.3 84 92.4 8c14.4 1.2 26.2 12 28.8 26.3s-4.9 28.5-18 34.6l-84.1 39.1 65.7 65.5c10.3 10.2 12.4 26.1 5.1 38.7s-22 18.7-36 14.9L391 386.8l8.2 92.4c1.3 14.4-7.3 27.9-20.9 32.9s-28.9 .1-37.2-11.7l-53.1-76-53.1 76c-8.3 11.9-23.6 16.7-37.2 11.7s-22.2-18.5-20.9-32.9l8.2-92.4L95.4 410.9c-14 3.8-28.8-2.3-36-14.9s-5.2-28.4 5.1-38.7l65.7-65.5L46 252.7c-13.1-6.1-20.5-20.3-18-34.6s14.3-25.1 28.8-26.3l92.4-8-39.3-84c-6.1-13.1-2.7-28.8 8.4-38.1s27.1-10 39-1.7l75.9 53.3 23.9-89.6C260.8 9.7 273.5 0 288 0zm0 156.2l-4.8 18c-2.7 10.1-10.2 18.2-20 21.8s-20.8 2.1-29.3-3.9l-15.2-10.7 7.9 16.8c4.4 9.5 4 20.5-1.3 29.6s-14.5 15-25 15.9l-18.5 1.6 16.8 7.8c9.5 4.4 16.2 13.2 18 23.5s-1.5 20.8-8.9 28.2l-13.2 13.1 17.9-4.8c10.1-2.7 20.9-.3 28.9 6.4s12.2 16.9 11.3 27.3l-1.6 18.5 10.6-15.2c6-8.6 15.8-13.7 26.2-13.7s20.2 5.1 26.2 13.7l10.6 15.2-1.6-18.5c-.9-10.4 3.3-20.6 11.3-27.3s18.8-9.1 28.9-6.4l17.9 4.8-13.2-13.1c-7.4-7.4-10.7-17.9-8.9-28.2s8.5-19.1 18-23.5l16.8-7.8-18.5-1.6c-10.4-.9-19.7-6.8-25-15.9s-5.7-20.1-1.3-29.6l7.9-16.8-15.2 10.7c-8.6 6-19.5 7.5-29.3 3.9s-17.3-11.7-20-21.8l-4.8-18z"], - "sd-card": [384, 512, [], "f7c2", "M320 0L141.3 0C124.3 0 108 6.7 96 18.7L18.7 96C6.7 108 0 124.3 0 141.3L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64zM160 88l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24zm80 0l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24zm80 0l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24z"], - "dragon": [640, 512, [128009], "f6d5", "M352 124.5l-51.9-13c-6.5-1.6-11.3-7.1-12-13.8s2.8-13.1 8.7-16.1l40.8-20.4L294.4 28.8c-5.5-4.1-7.8-11.3-5.6-17.9S297.1 0 304 0L416 0l32 0 16 0c30.2 0 58.7 14.2 76.8 38.4l57.6 76.8c6.2 8.3 9.6 18.4 9.6 28.8c0 26.5-21.5 48-48 48l-21.5 0c-17 0-33.3-6.7-45.3-18.7L480 160l-32 0 0 21.5c0 24.8 12.8 47.9 33.8 61.1l106.6 66.6c32.1 20.1 51.6 55.2 51.6 93.1C640 462.9 590.9 512 530.2 512L496 512l-64 0L32.3 512c-3.3 0-6.6-.4-9.6-1.4C13.5 507.8 6 501 2.4 492.1C1 488.7 .2 485.2 0 481.4c-.2-3.7 .3-7.3 1.3-10.7c2.8-9.2 9.6-16.7 18.6-20.4c3-1.2 6.2-2 9.5-2.2L433.3 412c8.3-.7 14.7-7.7 14.7-16.1c0-4.3-1.7-8.4-4.7-11.4l-44.4-44.4c-30-30-46.9-70.7-46.9-113.1l0-45.5 0-57zM512 72.3c0-.1 0-.2 0-.3s0-.2 0-.3l0 .6zm-1.3 7.4L464.3 68.1c-.2 1.3-.3 2.6-.3 3.9c0 13.3 10.7 24 24 24c10.6 0 19.5-6.8 22.7-16.3zM130.9 116.5c16.3-14.5 40.4-16.2 58.5-4.1l130.6 87 0 27.5c0 32.8 8.4 64.8 24 93l-232 0c-6.7 0-12.7-4.2-15-10.4s-.5-13.3 4.6-17.7L171 232.3 18.4 255.8c-7 1.1-13.9-2.6-16.9-9s-1.5-14.1 3.8-18.8L130.9 116.5z"], - "shoe-prints": [640, 512, [], "f54b", "M416 0C352.3 0 256 32 256 32l0 128c48 0 76 16 104 32s56 32 104 32c56.4 0 176-16 176-96S512 0 416 0zM128 96c0 35.3 28.7 64 64 64l32 0 0-128-32 0c-35.3 0-64 28.7-64 64zM288 512c96 0 224-48 224-128s-119.6-96-176-96c-48 0-76 16-104 32s-56 32-104 32l0 128s96.3 32 160 32zM0 416c0 35.3 28.7 64 64 64l32 0 0-128-32 0c-35.3 0-64 28.7-64 64z"], - "circle-plus": [512, 512, ["plus-circle"], "f055", "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM232 344l0-64-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24z"], - "face-grin-tongue-wink": [512, 512, [128540, "grin-tongue-wink"], "f58b", "M174.5 498.8C73.1 464.7 0 368.9 0 256C0 114.6 114.6 0 256 0S512 114.6 512 256c0 112.9-73.1 208.7-174.5 242.8C346.7 484 352 466.6 352 448l0-46.9c24.3-17.5 43.6-41.6 55.4-69.6c5-11.8-7-22.5-19.3-18.7c-39.7 12.2-84.5 19-131.8 19s-92.1-6.8-131.8-19c-12.3-3.8-24.3 6.9-19.3 18.7c11.7 27.8 30.8 51.7 54.8 69.2l0 47.3c0 18.6 5.3 36 14.5 50.8zm20.7-265.2c5.3 7.1 15.3 8.5 22.4 3.2s8.5-15.3 3.2-22.4c-30.4-40.5-91.2-40.5-121.6 0c-5.3 7.1-3.9 17.1 3.2 22.4s17.1 3.9 22.4-3.2c17.6-23.5 52.8-23.5 70.4 0zM336 272a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM320 402.6l0 45.4c0 35.3-28.7 64-64 64s-64-28.7-64-64l0-45.4c0-14.7 11.9-26.6 26.6-26.6l2 0c11.3 0 21.1 7.9 23.6 18.9c2.8 12.6 20.8 12.6 23.6 0c2.5-11.1 12.3-18.9 23.6-18.9l2 0c14.7 0 26.6 11.9 26.6 26.6zM336 184a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"], - "hand-holding": [576, 512, [], "f4bd", "M559.7 392.2c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416 272 416c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0-16 0-78.3 0c-29.1 0-57.3 9.9-80 28L68.8 384 32 384c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l160 0 160.5 0c29 0 57.3-9.3 80.7-26.5l126.6-93.3zm-367-8.2c.3 0 .6 0 .9 0c0 0 0 0 0 0c-.3 0-.6 0-.9 0z"], - "plug-circle-exclamation": [576, 512, [], "e55d", "M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32L32 160zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z"], - "link-slash": [640, 512, ["chain-broken", "chain-slash", "unlink"], "f127", "M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L489.3 358.2l90.5-90.5c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114l-96 96-31.9-25C430.9 239.6 420.1 175.1 377 132c-52.2-52.3-134.5-56.2-191.3-11.7L38.8 5.1zM239 162c30.1-14.9 67.7-9.9 92.8 15.3c20 20 27.5 48.3 21.7 74.5L239 162zM406.6 416.4L220.9 270c-2.1 39.8 12.2 80.1 42.2 110c38.9 38.9 94.4 51 143.6 36.3zm-290-228.5L60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5l61.8-61.8-50.6-39.9z"], - "clone": [512, 512, [], "f24d", "M288 448L64 448l0-224 64 0 0-64-64 0c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-64-64 0 0 64zm-64-96l224 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L224 0c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64z"], - "person-walking-arrow-loop-left": [640, 512, [], "e551", "M208 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zm347.7 119c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L461.3 384l18.7 0c88.4 0 160-71.6 160-160s-71.6-160-160-160L352 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c53 0 96 43 96 96s-43 96-96 96l-18.7 0 25.4-25.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3l80 80z"], - "arrow-up-z-a": [576, 512, ["sort-alpha-up-alt"], "f882", "M183.6 42.4C177.5 35.8 169 32 160 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L128 146.3 128 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-301.7 32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 64c0 17.7 14.3 32 32 32l50.7 0-73.4 73.4c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-50.7 0 73.4-73.4c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L352 32c-17.7 0-32 14.3-32 32zm96 192c-12.1 0-23.2 6.8-28.6 17.7l-64 128-16 32c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l7.2-14.3 88.4 0 7.2 14.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9l-16-32-64-128C439.2 262.8 428.1 256 416 256zM395.8 400L416 359.6 436.2 400l-40.4 0z"], - "fire-flame-curved": [384, 512, ["fire-alt"], "f7e4", "M153.6 29.9l16-21.3C173.6 3.2 180 0 186.7 0C198.4 0 208 9.6 208 21.3V43.5c0 13.1 5.4 25.7 14.9 34.7L307.6 159C356.4 205.6 384 270.2 384 337.7C384 434 306 512 209.7 512H192C86 512 0 426 0 320v-3.8c0-48.8 19.4-95.6 53.9-130.1l3.5-3.5c4.2-4.2 10-6.6 16-6.6C85.9 176 96 186.1 96 198.6V288c0 35.3 28.7 64 64 64s64-28.7 64-64v-3.9c0-18-7.2-35.3-19.9-48l-38.6-38.6c-24-24-37.5-56.7-37.5-90.7c0-27.7 9-54.8 25.6-76.9z"], - "tornado": [448, 512, [127786], "f76f", "M0 32L0 45.6C0 62.7 1.7 79.6 5 96l352.8 0c3.2-6.9 7.5-13.3 13-18.8l38.6-38.6c4.2-4.2 6.6-10 6.6-16C416 10.1 405.9 0 393.4 0L32 0C14.3 0 0 14.3 0 32zm352.2 96L13.6 128c12.2 35.9 32.3 68.7 58.8 96L412 224l-47.2-62.9c-7.3-9.7-11.6-21.2-12.6-33.1zm-226 138.2l116.4 68.5c8.2 4.8 15.8 10.7 22.5 17.3L445 352c2-9.8 3-19.9 3-30.1c0-23-5.3-45.5-15.3-65.9l-322.5 0c5.2 3.6 10.5 7 16 10.2zM288 384c10.3 21.4 13.8 45.5 9.9 69l-5.9 35.7c-2 12.2 7.4 23.4 19.8 23.4c5.3 0 10.4-2.1 14.2-5.9l78.2-78.2c12.8-12.8 23.1-27.7 30.4-43.9L288 384z"], - "file-circle-plus": [576, 512, [58606], "e494", "M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zm48 96a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm16 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16s16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0 0-48z"], - "book-quran": [448, 512, ["quran"], "f687", "M352 0c53 0 96 43 96 96l0 320c0 53-43 96-96 96L64 512l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-64c-17.7 0-32-14.3-32-32L0 32C0 14.3 14.3 0 32 0L64 0 352 0zm0 384L96 384l0 64 256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32zM274.1 150.2l-8.9 21.4-23.1 1.9c-5.7 .5-8 7.5-3.7 11.2L256 199.8l-5.4 22.6c-1.3 5.5 4.7 9.9 9.6 6.9L280 217.2l19.8 12.1c4.9 3 10.9-1.4 9.6-6.9L304 199.8l17.6-15.1c4.3-3.7 2-10.8-3.7-11.2l-23.1-1.9-8.9-21.4c-2.2-5.3-9.6-5.3-11.8 0zM96 192c0 70.7 57.3 128 128 128c25.6 0 49.5-7.5 69.5-20.5c3.2-2.1 4.5-6.2 3.1-9.7s-5.2-5.6-9-4.8c-6.1 1.2-12.5 1.9-19 1.9c-52.4 0-94.9-42.5-94.9-94.9s42.5-94.9 94.9-94.9c6.5 0 12.8 .7 19 1.9c3.8 .8 7.5-1.3 9-4.8s.2-7.6-3.1-9.7C273.5 71.5 249.6 64 224 64C153.3 64 96 121.3 96 192z"], - "anchor": [576, 512, [9875], "f13d", "M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80L224 176c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 208-48 0c-53 0-96-43-96-96l0-6.1 7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7 0 6.1c0 88.4 71.6 160 160 160l80 0 80 0c88.4 0 160-71.6 160-160l0-6.1 7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-56-56c-9.4-9.4-24.6-9.4-33.9 0l-56 56c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7 0 6.1c0 53-43 96-96 96l-48 0 0-208 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-10.9 0z"], - "border-all": [448, 512, [], "f84c", "M384 96l0 128-128 0 0-128 128 0zm0 192l0 128-128 0 0-128 128 0zM192 224L64 224 64 96l128 0 0 128zM64 288l128 0 0 128L64 416l0-128zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z"], - "face-angry": [512, 512, [128544, "angry"], "f556", "M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM338.7 395.9c6.6-5.9 7.1-16 1.2-22.6C323.8 355.4 295.7 336 256 336s-67.8 19.4-83.9 37.3c-5.9 6.6-5.4 16.7 1.2 22.6s16.7 5.4 22.6-1.2c11.7-13 31.6-26.7 60.1-26.7s48.4 13.7 60.1 26.7c5.9 6.6 16 7.1 22.6 1.2zM176.4 272c17.7 0 32-14.3 32-32c0-1.5-.1-3-.3-4.4l10.9 3.6c8.4 2.8 17.4-1.7 20.2-10.1s-1.7-17.4-10.1-20.2l-96-32c-8.4-2.8-17.4 1.7-20.2 10.1s1.7 17.4 10.1 20.2l30.7 10.2c-5.8 5.8-9.3 13.8-9.3 22.6c0 17.7 14.3 32 32 32zm192-32c0-8.9-3.6-17-9.5-22.8l30.2-10.1c8.4-2.8 12.9-11.9 10.1-20.2s-11.9-12.9-20.2-10.1l-96 32c-8.4 2.8-12.9 11.9-10.1 20.2s11.9 12.9 20.2 10.1l11.7-3.9c-.2 1.5-.3 3.1-.3 4.7c0 17.7 14.3 32 32 32s32-14.3 32-32z"], - "cookie-bite": [512, 512, [], "f564", "M257.5 27.6c-.8-5.4-4.9-9.8-10.3-10.6c-22.1-3.1-44.6 .9-64.4 11.4l-74 39.5C89.1 78.4 73.2 94.9 63.4 115L26.7 190.6c-9.8 20.1-13 42.9-9.1 64.9l14.5 82.8c3.9 22.1 14.6 42.3 30.7 57.9l60.3 58.4c16.1 15.6 36.6 25.6 58.7 28.7l83 11.7c22.1 3.1 44.6-.9 64.4-11.4l74-39.5c19.7-10.5 35.6-27 45.4-47.2l36.7-75.5c9.8-20.1 13-42.9 9.1-64.9c-.9-5.3-5.3-9.3-10.6-10.1c-51.5-8.2-92.8-47.1-104.5-97.4c-1.8-7.6-8-13.4-15.7-14.6c-54.6-8.7-97.7-52-106.2-106.8zM208 144a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM144 336a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm224-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"], - "arrow-trend-down": [576, 512, [], "e097", "M384 352c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-160c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 82.7L342.6 137.4c-12.5-12.5-32.8-12.5-45.3 0L192 242.7 54.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0L320 205.3 466.7 352 384 352z"], - "rss": [448, 512, ["feed"], "f09e", "M0 64C0 46.3 14.3 32 32 32c229.8 0 416 186.2 416 416c0 17.7-14.3 32-32 32s-32-14.3-32-32C384 253.6 226.4 96 32 96C14.3 96 0 81.7 0 64zM0 416a64 64 0 1 1 128 0A64 64 0 1 1 0 416zM32 160c159.1 0 288 128.9 288 288c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-123.7-100.3-224-224-224c-17.7 0-32-14.3-32-32s14.3-32 32-32z"], - "draw-polygon": [448, 512, [], "f5ee", "M96 151.4l0 209.1c9.7 5.6 17.8 13.7 23.4 23.4l209.1 0c0-.1 .1-.2 .1-.3l-4.5-7.9-32-56s0 0 0 0c-1.4 .1-2.8 .1-4.2 .1c-35.3 0-64-28.7-64-64s28.7-64 64-64c1.4 0 2.8 0 4.2 .1c0 0 0 0 0 0l32-56 4.5-7.9-.1-.3-209.1 0c-5.6 9.7-13.7 17.8-23.4 23.4zM384.3 352c35.2 .2 63.7 28.7 63.7 64c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32l-209.1 0c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4l0-209.1C12.9 140.4 0 119.7 0 96C0 60.7 28.7 32 64 32c23.7 0 44.4 12.9 55.4 32l209.1 0c11.1-19.1 31.7-32 55.4-32c35.3 0 64 28.7 64 64c0 35.3-28.5 63.8-63.7 64l-4.5 7.9-32 56-2.3 4c4.2 8.5 6.5 18 6.5 28.1s-2.3 19.6-6.5 28.1l2.3 4 32 56 4.5 7.9z"], - "scale-balanced": [640, 512, [9878, "balance-scale"], "f24e", "M384 32l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L398.4 96c-5.2 25.8-22.9 47.1-46.4 57.3L352 448l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0 0-294.7c-23.5-10.3-41.2-31.6-46.4-57.3L128 96c-17.7 0-32-14.3-32-32s14.3-32 32-32l128 0c14.6-19.4 37.8-32 64-32s49.4 12.6 64 32zm55.6 288l144.9 0L512 195.8 439.6 320zM512 416c-62.9 0-115.2-34-126-78.9c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1C627.2 382 574.9 416 512 416zM126.8 195.8L54.4 320l144.9 0L126.8 195.8zM.9 337.1c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1C242 382 189.7 416 126.8 416S11.7 382 .9 337.1z"], - "gauge-simple-high": [512, 512, [61668, "tachometer", "tachometer-fast"], "f62a", "M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm320 96c0-15.9-5.8-30.4-15.3-41.6l76.6-147.4c6.1-11.8 1.5-26.3-10.2-32.4s-26.2-1.5-32.4 10.2L262.1 288.3c-2-.2-4-.3-6.1-.3c-35.3 0-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64z"], - "shower": [512, 512, [128703], "f2cc", "M64 131.9C64 112.1 80.1 96 99.9 96c9.5 0 18.6 3.8 25.4 10.5l16.2 16.2c-21 38.9-17.4 87.5 10.9 123L151 247c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L345 121c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-1.3 1.3c-35.5-28.3-84.2-31.9-123-10.9L170.5 61.3C151.8 42.5 126.4 32 99.9 32C44.7 32 0 76.7 0 131.9L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-316.1zM256 352a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm32-32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"], - "desktop": [576, 512, [128421, 61704, "desktop-alt"], "f390", "M64 0C28.7 0 0 28.7 0 64L0 352c0 35.3 28.7 64 64 64l176 0-10.7 32L160 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-69.3 0L336 416l176 0c35.3 0 64-28.7 64-64l0-288c0-35.3-28.7-64-64-64L64 0zM512 64l0 224L64 288 64 64l448 0z"], - "m": [448, 512, [109], "4d", "M22.7 33.4c13.5-4.1 28.1 1.1 35.9 12.9L224 294.3 389.4 46.3c7.8-11.7 22.4-17 35.9-12.9S448 49.9 448 64l0 384c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-278.3L250.6 369.8c-5.9 8.9-15.9 14.2-26.6 14.2s-20.7-5.3-26.6-14.2L64 169.7 64 448c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 64C0 49.9 9.2 37.5 22.7 33.4z"], - "table-list": [512, 512, ["th-list"], "f00b", "M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm64 0l0 64 64 0 0-64L64 96zm384 0L192 96l0 64 256 0 0-64zM64 224l0 64 64 0 0-64-64 0zm384 0l-256 0 0 64 256 0 0-64zM64 352l0 64 64 0 0-64-64 0zm384 0l-256 0 0 64 256 0 0-64z"], - "comment-sms": [512, 512, ["sms"], "f7cd", "M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zM96 212.8c0-20.3 16.5-36.8 36.8-36.8l19.2 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-19.2 0c-2.7 0-4.8 2.2-4.8 4.8c0 1.6 .8 3.1 2.2 4l29.4 19.6c10.3 6.8 16.4 18.3 16.4 30.7c0 20.3-16.5 36.8-36.8 36.8L112 304c-8.8 0-16-7.2-16-16s7.2-16 16-16l27.2 0c2.7 0 4.8-2.2 4.8-4.8c0-1.6-.8-3.1-2.2-4l-29.4-19.6C102.2 236.7 96 225.2 96 212.8zM372.8 176l19.2 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-19.2 0c-2.7 0-4.8 2.2-4.8 4.8c0 1.6 .8 3.1 2.2 4l29.4 19.6c10.2 6.8 16.4 18.3 16.4 30.7c0 20.3-16.5 36.8-36.8 36.8L352 304c-8.8 0-16-7.2-16-16s7.2-16 16-16l27.2 0c2.7 0 4.8-2.2 4.8-4.8c0-1.6-.8-3.1-2.2-4l-29.4-19.6c-10.2-6.8-16.4-18.3-16.4-30.7c0-20.3 16.5-36.8 36.8-36.8zm-152 6.4L256 229.3l35.2-46.9c4.1-5.5 11.3-7.8 17.9-5.6s10.9 8.3 10.9 15.2l0 96c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48-19.2 25.6c-3 4-7.8 6.4-12.8 6.4s-9.8-2.4-12.8-6.4L224 240l0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-6.9 4.4-13 10.9-15.2s13.7 .1 17.9 5.6z"], - "book": [448, 512, [128212], "f02d", "M96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96l288 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-64c17.7 0 32-14.3 32-32l0-320c0-17.7-14.3-32-32-32L384 0 96 0zm0 384l256 0 0 64L96 448c-17.7 0-32-14.3-32-32s14.3-32 32-32zm32-240c0-8.8 7.2-16 16-16l192 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16zm16 48l192 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"], - "user-plus": [640, 512, [], "f234", "M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3zM504 312l0-64-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24z"], - "check": [448, 512, [10003, 10004], "f00c", "M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"], - "battery-three-quarters": [576, 512, ["battery-4"], "f241", "M464 160c8.8 0 16 7.2 16 16l0 160c0 8.8-7.2 16-16 16L80 352c-8.8 0-16-7.2-16-16l0-160c0-8.8 7.2-16 16-16l384 0zM80 96C35.8 96 0 131.8 0 176L0 336c0 44.2 35.8 80 80 80l384 0c44.2 0 80-35.8 80-80l0-16c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-16c0-44.2-35.8-80-80-80L80 96zm272 96L96 192l0 128 256 0 0-128z"], - "house-circle-check": [640, 512, [], "e509", "M320.7 352c8.1-89.7 83.5-160 175.3-160c8.9 0 17.6 .7 26.1 1.9L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1l32 0 0 69.7c-.1 .9-.1 1.8-.1 2.8l0 112c0 22.1 17.9 40 40 40l16 0c1.2 0 2.4-.1 3.6-.2c1.5 .1 3 .2 4.5 .2l31.9 0 24 0c22.1 0 40-17.9 40-40l0-24 0-64c0-17.7 14.3-32 32-32l64 0 .7 0zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z"], - "angle-left": [320, 512, [8249], "f104", "M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256 246.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z"], - "diagram-successor": [512, 512, [], "e47a", "M512 416l0-64c0-35.3-28.7-64-64-64L64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64zM64 160l0-64 144 0 16 0 0 64L64 160zm224 0l0-64 80 0c8.8 0 16 7.2 16 16l0 16-38.1 0c-21.4 0-32.1 25.9-17 41L399 239c9.4 9.4 24.6 9.4 33.9 0L503 169c15.1-15.1 4.4-41-17-41L448 128l0-16c0-44.2-35.8-80-80-80L224 32l-16 0L64 32C28.7 32 0 60.7 0 96l0 64c0 35.3 28.7 64 64 64l160 0c35.3 0 64-28.7 64-64z"], - "truck-arrow-right": [640, 512, [], "e58b", "M0 48C0 21.5 21.5 0 48 0L368 0c26.5 0 48 21.5 48 48l0 48 50.7 0c17 0 33.3 6.7 45.3 18.7L589.3 192c12 12 18.7 28.3 18.7 45.3l0 18.7 0 32 0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c0 53-43 96-96 96s-96-43-96-96l-128 0c0 53-43 96-96 96s-96-43-96-96l-16 0c-26.5 0-48-21.5-48-48L0 48zM416 256l128 0 0-18.7L466.7 160 416 160l0 96zM160 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm368-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM257 95c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l39 39L96 168c-13.3 0-24 10.7-24 24s10.7 24 24 24l166.1 0-39 39c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9L257 95z"], - "arrows-split-up-and-left": [512, 512, [], "e4bc", "M246.6 150.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L352 109.3 352 384c0 35.3 28.7 64 64 64l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-70.7 0-128-57.3-128-128c0-35.3-28.7-64-64-64l-114.7 0 41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L109.3 256 224 256c23.3 0 45.2 6.2 64 17.1l0-163.9-41.4 41.4z"], - "hand-fist": [448, 512, [9994, "fist-raised"], "f6de", "M192 0c17.7 0 32 14.3 32 32l0 112-64 0 0-112c0-17.7 14.3-32 32-32zM64 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 80-64 0 0-80zm192 0c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96zm96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm-96 88l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6l0 8.6c0 52.3-25.1 98.8-64 128l0 96c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-78.4c-17.3-7.9-33.2-18.8-46.9-32.5L69.5 357.5C45.5 333.5 32 300.9 32 267l0-27c0-35.3 28.7-64 64-64l88 0c22.1 0 40 17.9 40 40s-17.9 40-40 40l-56 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l56 0c39.8 0 72-32.2 72-72z"], - "cloud-moon": [640, 512, [], "f6c3", "M495.8 0c5.5 0 10.9 .2 16.3 .7c7 .6 12.8 5.7 14.3 12.5s-1.6 13.9-7.7 17.3c-44.4 25.2-74.4 73-74.4 127.8c0 81 65.5 146.6 146.2 146.6c8.6 0 17-.7 25.1-2.1c6.9-1.2 13.8 2.2 17 8.5s1.9 13.8-3.1 18.7c-34.5 33.6-81.7 54.4-133.6 54.4c-9.3 0-18.4-.7-27.4-1.9c-11.2-22.6-29.8-40.9-52.6-51.7c-2.7-58.5-50.3-105.3-109.2-106.7c-1.7-10.4-2.6-21-2.6-31.8C304 86.1 389.8 0 495.8 0zM447.9 431.9c0 44.2-35.8 80-80 80L96 511.9c-53 0-96-43-96-96c0-47.6 34.6-87 80-94.6l0-1.3c0-53 43-96 96-96c34.9 0 65.4 18.6 82.2 46.4c13-9.1 28.8-14.4 45.8-14.4c44.2 0 80 35.8 80 80c0 5.9-.6 11.7-1.9 17.2c37.4 6.7 65.8 39.4 65.8 78.7z"], - "briefcase": [512, 512, [128188], "f0b1", "M184 48l144 0c4.4 0 8 3.6 8 8l0 40L176 96l0-40c0-4.4 3.6-8 8-8zm-56 8l0 40L64 96C28.7 96 0 124.7 0 160l0 96 192 0 128 0 192 0 0-96c0-35.3-28.7-64-64-64l-64 0 0-40c0-30.9-25.1-56-56-56L184 0c-30.9 0-56 25.1-56 56zM512 288l-192 0 0 32c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-32L0 288 0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-128z"], - "person-falling": [512, 512, [], "e546", "M288 0c17.7 0 32 14.3 32 32l0 9.8c0 54.6-27.9 104.6-72.5 133.6l.2 .3L304.5 256l87.5 0c15.1 0 29.3 7.1 38.4 19.2l43.2 57.6c10.6 14.1 7.7 34.2-6.4 44.8s-34.2 7.7-44.8-6.4L384 320l-96 0-1.4 0 92.3 142.6c9.6 14.8 5.4 34.6-9.5 44.3s-34.6 5.4-44.3-9.5L164.5 249.2c-2.9 9.2-4.5 19-4.5 29l0 73.8c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-73.8c0-65.1 39.6-123.7 100.1-147.9C232.3 115.8 256 80.8 256 41.8l0-9.8c0-17.7 14.3-32 32-32zM112 32a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"], - "image-portrait": [384, 512, ["portrait"], "f3e0", "M384 64c0-35.3-28.7-64-64-64L64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384zM128 192a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM80 356.6c0-37.9 30.7-68.6 68.6-68.6l86.9 0c37.9 0 68.6 30.7 68.6 68.6c0 15.1-12.3 27.4-27.4 27.4l-169.1 0C92.3 384 80 371.7 80 356.6z"], - "user-tag": [640, 512, [], "f507", "M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512l388.6 0c10 0 18.8-4.9 24.2-12.5l-99.2-99.2c-14.9-14.9-23.3-35.1-23.3-56.1l0-33c-15.9-4.7-32.8-7.2-50.3-7.2l-91.4 0zM384 224c-17.7 0-32 14.3-32 32l0 82.7c0 17 6.7 33.3 18.7 45.3L478.1 491.3c18.7 18.7 49.1 18.7 67.9 0l73.4-73.4c18.7-18.7 18.7-49.1 0-67.9L512 242.7c-12-12-28.3-18.7-45.3-18.7L384 224zm24 80a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"], - "rug": [640, 512, [], "e569", "M24 64l32 0 24 0 0 24 0 88 0 80 0 80 0 88 0 24-24 0-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-40-8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-32-8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-32-8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-40-8 0C10.7 112 0 101.3 0 88S10.7 64 24 64zm88 0l416 0 0 384-416 0 0-384zM640 88c0 13.3-10.7 24-24 24l-8 0 0 40 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 32 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 32 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 40 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0-24 0 0-24 0-88 0-80 0-80 0-88 0-24 24 0 32 0c13.3 0 24 10.7 24 24z"], - "earth-europe": [512, 512, ["globe-europe"], "f7a2", "M266.3 48.3L232.5 73.6c-5.4 4-8.5 10.4-8.5 17.1l0 9.1c0 6.8 5.5 12.3 12.3 12.3c2.4 0 4.8-.7 6.8-2.1l41.8-27.9c2-1.3 4.4-2.1 6.8-2.1l1 0c6.2 0 11.3 5.1 11.3 11.3c0 3-1.2 5.9-3.3 8l-19.9 19.9c-5.8 5.8-12.9 10.2-20.7 12.8l-26.5 8.8c-5.8 1.9-9.6 7.3-9.6 13.4c0 3.7-1.5 7.3-4.1 10l-17.9 17.9c-6.4 6.4-9.9 15-9.9 24l0 4.3c0 16.4 13.6 29.7 29.9 29.7c11 0 21.2-6.2 26.1-16l4-8.1c2.4-4.8 7.4-7.9 12.8-7.9c4.5 0 8.7 2.1 11.4 5.7l16.3 21.7c2.1 2.9 5.5 4.5 9.1 4.5c8.4 0 13.9-8.9 10.1-16.4l-1.1-2.3c-3.5-7 0-15.5 7.5-18l21.2-7.1c7.6-2.5 12.7-9.6 12.7-17.6c0-10.3 8.3-18.6 18.6-18.6l29.4 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-20.7 0c-7.2 0-14.2 2.9-19.3 8l-4.7 4.7c-2.1 2.1-3.3 5-3.3 8c0 6.2 5.1 11.3 11.3 11.3l11.3 0c6 0 11.8 2.4 16 6.6l6.5 6.5c1.8 1.8 2.8 4.3 2.8 6.8s-1 5-2.8 6.8l-7.5 7.5C386 262 384 266.9 384 272s2 10 5.7 13.7L408 304c10.2 10.2 24.1 16 38.6 16l7.3 0c6.5-20.2 10-41.7 10-64c0-111.4-87.6-202.4-197.7-207.7zm172 307.9c-3.7-2.6-8.2-4.1-13-4.1c-6 0-11.8-2.4-16-6.6L396 332c-7.7-7.7-18-12-28.9-12c-9.7 0-19.2-3.5-26.6-9.8L314 287.4c-11.6-9.9-26.4-15.4-41.7-15.4l-20.9 0c-12.6 0-25 3.7-35.5 10.7L188.5 301c-17.8 11.9-28.5 31.9-28.5 53.3l0 3.2c0 17 6.7 33.3 18.7 45.3l16 16c8.5 8.5 20 13.3 32 13.3l21.3 0c13.3 0 24 10.7 24 24c0 2.5 .4 5 1.1 7.3c71.3-5.8 132.5-47.6 165.2-107.2zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM187.3 100.7c-6.2-6.2-16.4-6.2-22.6 0l-32 32c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l32-32c6.2-6.2 6.2-16.4 0-22.6z"], - "cart-flatbed-suitcase": [640, 512, ["luggage-cart"], "f59d", "M0 32C0 14.3 14.3 0 32 0L48 0c44.2 0 80 35.8 80 80l0 288c0 8.8 7.2 16 16 16l464 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-66.7 0c1.8 5 2.7 10.4 2.7 16c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-5.6 1-11 2.7-16l-197.5 0c1.8 5 2.7 10.4 2.7 16c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-5.6 1-11 2.7-16L144 448c-44.2 0-80-35.8-80-80L64 80c0-8.8-7.2-16-16-16L32 64C14.3 64 0 49.7 0 32zM432 96l0-40c0-4.4-3.6-8-8-8l-80 0c-4.4 0-8 3.6-8 8l0 40 96 0zM288 96l0-40c0-30.9 25.1-56 56-56l80 0c30.9 0 56 25.1 56 56l0 40 0 224-192 0 0-224zM512 320l0-224 16 0c26.5 0 48 21.5 48 48l0 128c0 26.5-21.5 48-48 48l-16 0zM240 96l16 0 0 224-16 0c-26.5 0-48-21.5-48-48l0-128c0-26.5 21.5-48 48-48z"], - "rectangle-xmark": [512, 512, [62164, "rectangle-times", "times-rectangle", "window-close"], "f410", "M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"], - "baht-sign": [320, 512, [], "e0ac", "M144 0c-17.7 0-32 14.3-32 32l0 32L37.6 64C16.8 64 0 80.8 0 101.6L0 224l0 41.7L0 288 0 406.3c0 23 18.7 41.7 41.7 41.7l70.3 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c61.9 0 112-50.1 112-112c0-40.1-21.1-75.3-52.7-95.1C280.3 222.6 288 200.2 288 176c0-61.9-50.1-112-112-112l0-32c0-17.7-14.3-32-32-32zM112 128l0 96-48 0 0-96 48 0zm64 96l0-96c26.5 0 48 21.5 48 48s-21.5 48-48 48zm-64 64l0 96-48 0 0-96 48 0zm64 96l0-96 32 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-32 0z"], - "book-open": [576, 512, [128214, 128366], "f518", "M249.6 471.5c10.8 3.8 22.4-4.1 22.4-15.5l0-377.4c0-4.2-1.6-8.4-5-11C247.4 52 202.4 32 144 32C93.5 32 46.3 45.3 18.1 56.1C6.8 60.5 0 71.7 0 83.8L0 454.1c0 11.9 12.8 20.2 24.1 16.5C55.6 460.1 105.5 448 144 448c33.9 0 79 14 105.6 23.5zm76.8 0C353 462 398.1 448 432 448c38.5 0 88.4 12.1 119.9 22.6c11.3 3.8 24.1-4.6 24.1-16.5l0-370.3c0-12.1-6.8-23.3-18.1-27.6C529.7 45.3 482.5 32 432 32c-58.4 0-103.4 20-123 35.6c-3.3 2.6-5 6.8-5 11L304 456c0 11.4 11.7 19.3 22.4 15.5z"], - "book-journal-whills": [448, 512, ["journal-whills"], "f66a", "M0 96C0 43 43 0 96 0L384 0l32 0c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32l0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0L96 512c-53 0-96-43-96-96L0 96zM64 416c0 17.7 14.3 32 32 32l256 0 0-64L96 384c-17.7 0-32 14.3-32 32zm90.4-234.4l-21.2-21.2c-3 10.1-5.1 20.6-5.1 31.6c0 .2 0 .5 .1 .8s.1 .5 .1 .8L165.2 226c2.5 2.1 3.4 5.8 2.3 8.9c-1.3 3-4.1 5.1-7.5 5.1c-1.9-.1-3.8-.8-5.2-2l-23.6-20.6C142.8 267 186.9 304 240 304s97.3-37 108.9-86.6L325.3 238c-1.4 1.2-3.3 2-5.3 2c-2.2-.1-4.4-1.1-6-2.8c-1.2-1.5-1.9-3.4-2-5.2c.1-2.2 1.1-4.4 2.8-6l37.1-32.5c0-.3 0-.5 .1-.8s.1-.5 .1-.8c0-11-2.1-21.5-5.1-31.6l-21.2 21.2c-3.1 3.1-8.1 3.1-11.3 0s-3.1-8.1 0-11.2l26.4-26.5c-8.2-17-20.5-31.7-35.9-42.6c-2.7-1.9-6.2 1.4-5 4.5c8.5 22.4 3.6 48-13 65.6c-3.2 3.4-3.6 8.9-.9 12.7c9.8 14 12.7 31.9 7.5 48.5c-5.9 19.4-22 34.1-41.9 38.3l-1.4-34.3 12.6 8.6c.6 .4 1.5 .6 2.3 .6c1.5 0 2.7-.8 3.5-2s.6-2.8-.1-4L260 225.4l18-3.6c1.8-.4 3.1-2.1 3.1-4s-1.4-3.5-3.1-3.9l-18-3.7 8.5-14.3c.8-1.2 .9-2.9 .1-4.1s-2-2-3.5-2l-.1 0c-.7 .1-1.5 .3-2.1 .7l-14.1 9.6L244 87.9c-.1-2.2-1.9-3.9-4-3.9s-3.9 1.6-4 3.9l-4.6 110.8-12-8.1c-1.5-1.1-3.6-.9-5 .4s-1.6 3.4-.8 5l8.6 14.3-18 3.7c-1.8 .4-3.1 2-3.1 3.9s1.4 3.6 3.1 4l18 3.8-8.6 14.2c-.2 .6-.5 1.4-.5 2c0 1.1 .5 2.1 1.2 3c.8 .6 1.8 1 2.8 1c.7 0 1.6-.2 2.2-.6l10.4-7.1-1.4 32.8c-19.9-4.1-36-18.9-41.9-38.3c-5.1-16.6-2.2-34.4 7.6-48.5c2.7-3.9 2.3-9.3-.9-12.7c-16.6-17.5-21.6-43.1-13.1-65.5c1.2-3.1-2.3-6.4-5-4.5c-15.3 10.9-27.6 25.6-35.8 42.6l26.4 26.5c3.1 3.1 3.1 8.1 0 11.2s-8.1 3.1-11.2 0z"], - "handcuffs": [640, 512, [], "e4f8", "M240 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM192 48a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm-32 80c17.7 0 32 14.3 32 32l8 0c13.3 0 24 10.7 24 24l0 16c0 1.7-.2 3.4-.5 5.1C280.3 229.6 320 286.2 320 352c0 88.4-71.6 160-160 160S0 440.4 0 352c0-65.8 39.7-122.4 96.5-146.9c-.4-1.6-.5-3.3-.5-5.1l0-16c0-13.3 10.7-24 24-24l8 0c0-17.7 14.3-32 32-32zm0 320a96 96 0 1 0 0-192 96 96 0 1 0 0 192zm192-96c0-25.9-5.1-50.5-14.4-73.1c16.9-32.9 44.8-59.1 78.9-73.9c-.4-1.6-.5-3.3-.5-5.1l0-16c0-13.3 10.7-24 24-24l8 0c0-17.7 14.3-32 32-32s32 14.3 32 32l8 0c13.3 0 24 10.7 24 24l0 16c0 1.7-.2 3.4-.5 5.1C600.3 229.6 640 286.2 640 352c0 88.4-71.6 160-160 160c-62 0-115.8-35.3-142.4-86.9c9.3-22.5 14.4-47.2 14.4-73.1zm224 0a96 96 0 1 0 -192 0 96 96 0 1 0 192 0zM368 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm80 48a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"], - "triangle-exclamation": [512, 512, [9888, "exclamation-triangle", "warning"], "f071", "M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480L40 480c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zm32 224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"], - "database": [448, 512, [], "f1c0", "M448 80l0 48c0 44.2-100.3 80-224 80S0 172.2 0 128L0 80C0 35.8 100.3 0 224 0S448 35.8 448 80zM393.2 214.7c20.8-7.4 39.9-16.9 54.8-28.6L448 288c0 44.2-100.3 80-224 80S0 332.2 0 288L0 186.1c14.9 11.8 34 21.2 54.8 28.6C99.7 230.7 159.5 240 224 240s124.3-9.3 169.2-25.3zM0 346.1c14.9 11.8 34 21.2 54.8 28.6C99.7 390.7 159.5 400 224 400s124.3-9.3 169.2-25.3c20.8-7.4 39.9-16.9 54.8-28.6l0 85.9c0 44.2-100.3 80-224 80S0 476.2 0 432l0-85.9z"], - "share": [512, 512, ["mail-forward"], "f064", "M307 34.8c-11.5 5.1-19 16.6-19 29.2l0 64-112 0C78.8 128 0 206.8 0 304C0 417.3 81.5 467.9 100.2 478.1c2.5 1.4 5.3 1.9 8.1 1.9c10.9 0 19.7-8.9 19.7-19.7c0-7.5-4.3-14.4-9.8-19.5C108.8 431.9 96 414.4 96 384c0-53 43-96 96-96l96 0 0 64c0 12.6 7.4 24.1 19 29.2s25 3 34.4-5.4l160-144c6.7-6.1 10.6-14.7 10.6-23.8s-3.8-17.7-10.6-23.8l-160-144c-9.4-8.5-22.9-10.6-34.4-5.4z"], - "bottle-droplet": [320, 512, [], "e4c4", "M96 0C82.7 0 72 10.7 72 24s10.7 24 24 24c4.4 0 8 3.6 8 8l0 64.9c0 12.2-7.2 23.1-17.2 30.1C53.7 174.1 32 212.5 32 256l0 192c0 35.3 28.7 64 64 64l128 0c35.3 0 64-28.7 64-64l0-192c0-43.5-21.7-81.9-54.8-105c-10-7-17.2-17.9-17.2-30.1L216 56c0-4.4 3.6-8 8-8c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0s0 0 0 0s0 0 0 0L104 0s0 0 0 0s0 0 0 0L96 0zm64 382c-26.5 0-48-20.1-48-45c0-16.8 22.1-48.1 36.3-66.4c6-7.8 17.5-7.8 23.5 0C185.9 288.9 208 320.2 208 337c0 24.9-21.5 45-48 45z"], - "mask-face": [640, 512, [], "e1d7", "M320 64c-27.2 0-53.8 8-76.4 23.1l-37.1 24.8c-15.8 10.5-34.3 16.1-53.3 16.1l-9.2 0-16 0-72 0c-30.9 0-56 25.1-56 56l0 85c0 55.1 37.5 103.1 90.9 116.4l108 27C233.8 435 275.4 448 320 448s86.2-13 121.1-35.5l108-27C602.5 372.1 640 324.1 640 269l0-85c0-30.9-25.1-56-56-56l-72 0-16 0-9.2 0c-19 0-37.5-5.6-53.3-16.1L396.4 87.1C373.8 72 347.2 64 320 64zM132.3 346.3l-29.8-7.4C70.5 330.9 48 302.1 48 269l0-85c0-4.4 3.6-8 8-8l40 0 0 48c0 45.1 13.4 87.2 36.3 122.3zm405.1-7.4l-29.8 7.4c23-35.2 36.3-77.2 36.3-122.3l0-48 40 0c4.4 0 8 3.6 8 8l0 85c0 33-22.5 61.8-54.5 69.9zM192 208c0-8.8 7.2-16 16-16l224 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16zm16 48l224 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm16 80c0-8.8 7.2-16 16-16l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16z"], - "hill-rockslide": [576, 512, [], "e508", "M252.4 103.8l27 48c2.8 5 8.2 8.2 13.9 8.2l53.3 0c5.8 0 11.1-3.1 13.9-8.2l27-48c2.7-4.9 2.7-10.8 0-15.7l-27-48c-2.8-5-8.2-8.2-13.9-8.2l-53.3 0c-5.8 0-11.1 3.1-13.9 8.2l-27 48c-2.7 4.9-2.7 10.8 0 15.7zM68.3 87C43.1 61.8 0 79.7 0 115.3L0 432c0 44.2 35.8 80 80 80l316.7 0c35.6 0 53.5-43.1 28.3-68.3L68.3 87zM504.2 403.6c4.9 2.7 10.8 2.7 15.7 0l48-27c5-2.8 8.2-8.2 8.2-13.9l0-53.3c0-5.8-3.1-11.1-8.2-13.9l-48-27c-4.9-2.7-10.8-2.7-15.7 0l-48 27c-5 2.8-8.2 8.2-8.2 13.9l0 53.3c0 5.8 3.1 11.1 8.2 13.9l48 27zM192 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM384 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"], - "right-left": [512, 512, ["exchange-alt"], "f362", "M32 96l320 0 0-64c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l96 96c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-96 96c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6l0-64L32 160c-17.7 0-32-14.3-32-32s14.3-32 32-32zM480 352c17.7 0 32 14.3 32 32s-14.3 32-32 32l-320 0 0 64c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-96-96c-6-6-9.4-14.1-9.4-22.6s3.4-16.6 9.4-22.6l96-96c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 64 320 0z"], - "paper-plane": [512, 512, [61913], "f1d8", "M498.1 5.6c10.1 7 15.4 19.1 13.5 31.2l-64 416c-1.5 9.7-7.4 18.2-16 23s-18.9 5.4-28 1.6L284 427.7l-68.5 74.1c-8.9 9.7-22.9 12.9-35.2 8.1S160 493.2 160 480l0-83.6c0-4 1.5-7.8 4.2-10.8L331.8 202.8c5.8-6.3 5.6-16-.4-22s-15.7-6.4-22-.7L106 360.8 17.7 316.6C7.1 311.3 .3 300.7 0 288.9s5.9-22.8 16.1-28.7l448-256c10.7-6.1 23.9-5.5 34 1.4z"], - "road-circle-exclamation": [640, 512, [], "e565", "M213.2 32L288 32l0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 74.8 0c27.1 0 51.3 17.1 60.3 42.6l42.7 120.6c-10.9-2.1-22.2-3.2-33.8-3.2c-59.5 0-112.1 29.6-144 74.8l0-42.8c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32c2.3 0 4.6-.3 6.8-.7c-4.5 15.5-6.8 31.8-6.8 48.7c0 5.4 .2 10.7 .7 16l-.7 0c-17.7 0-32 14.3-32 32l0 64L86.6 480C56.5 480 32 455.5 32 425.4c0-6.2 1.1-12.4 3.1-18.2L152.9 74.6C162 49.1 186.1 32 213.2 32zM496 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0-192c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z"], - "dungeon": [512, 512, [], "f6d9", "M336.6 156.5c1.3 1.1 2.7 2.2 3.9 3.3c9.3 8.2 23 10.5 33.4 3.6l67.6-45.1c11.4-7.6 14.2-23.2 5.1-33.4C430 66.6 410.9 50.6 389.7 37.6c-11.9-7.3-26.9-1.4-32.1 11.6l-30.5 76.2c-4.5 11.1 .2 23.6 9.5 31.2zM328 36.8c5.1-12.8-1.6-27.4-15-30.5C294.7 2.2 275.6 0 256 0s-38.7 2.2-57 6.4C185.5 9.4 178.8 24 184 36.8l30.3 75.8c4.5 11.3 16.8 17.2 29 16c4.2-.4 8.4-.6 12.7-.6s8.6 .2 12.7 .6c12.1 1.2 24.4-4.7 29-16L328 36.8zM65.5 85c-9.1 10.2-6.3 25.8 5.1 33.4l67.6 45.1c10.3 6.9 24.1 4.6 33.4-3.6c1.3-1.1 2.6-2.3 4-3.3c9.3-7.5 13.9-20.1 9.5-31.2L154.4 49.2c-5.2-12.9-20.3-18.8-32.1-11.6C101.1 50.6 82 66.6 65.5 85zm314 137.1c.9 3.3 1.7 6.6 2.3 10c2.5 13 13 23.9 26.2 23.9l80 0c13.3 0 24.1-10.8 22.9-24c-2.5-27.2-9.3-53.2-19.7-77.3c-5.5-12.9-21.4-16.6-33.1-8.9l-68.6 45.7c-9.8 6.5-13.2 19.2-10 30.5zM53.9 145.8c-11.6-7.8-27.6-4-33.1 8.9C10.4 178.8 3.6 204.8 1.1 232c-1.2 13.2 9.6 24 22.9 24l80 0c13.3 0 23.8-10.8 26.2-23.9c.6-3.4 1.4-6.7 2.3-10c3.1-11.4-.2-24-10-30.5L53.9 145.8zM104 288l-80 0c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24zm304 0c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-80 0zM24 416c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-80 0zm384 0c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-80 0zM272 192c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 272c0 8.8 7.2 16 16 16s16-7.2 16-16l0-272zm-64 32c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 240c0 8.8 7.2 16 16 16s16-7.2 16-16l0-240zm128 0c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 240c0 8.8 7.2 16 16 16s16-7.2 16-16l0-240z"], - "align-right": [448, 512, [], "f038", "M448 64c0 17.7-14.3 32-32 32L192 96c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 224c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z"], - "money-bill-1-wave": [576, 512, ["money-bill-wave-alt"], "f53b", "M0 112.5L0 422.3c0 18 10.1 35 27 41.3c87 32.5 174 10.3 261-11.9c79.8-20.3 159.6-40.7 239.3-18.9c23 6.3 48.7-9.5 48.7-33.4l0-309.9c0-18-10.1-35-27-41.3C462 15.9 375 38.1 288 60.3C208.2 80.6 128.4 100.9 48.7 79.1C25.6 72.8 0 88.6 0 112.5zM128 416l-64 0 0-64c35.3 0 64 28.7 64 64zM64 224l0-64 64 0c0 35.3-28.7 64-64 64zM448 352c0-35.3 28.7-64 64-64l0 64-64 0zm64-192c-35.3 0-64-28.7-64-64l64 0 0 64zM384 256c0 61.9-43 112-96 112s-96-50.1-96-112s43-112 96-112s96 50.1 96 112zM252 208c0 9.7 6.9 17.7 16 19.6l0 48.4-4 0c-11 0-20 9-20 20s9 20 20 20l24 0 24 0c11 0 20-9 20-20s-9-20-20-20l-4 0 0-68c0-11-9-20-20-20l-16 0c-11 0-20 9-20 20z"], - "life-ring": [512, 512, [], "f1cd", "M367.2 412.5C335.9 434.9 297.5 448 256 448s-79.9-13.1-111.2-35.5l58-58c15.8 8.6 34 13.5 53.3 13.5s37.4-4.9 53.3-13.5l58 58zm90.7 .8c33.8-43.4 54-98 54-157.3s-20.2-113.9-54-157.3c9-12.5 7.9-30.1-3.4-41.3S425.8 45 413.3 54C369.9 20.2 315.3 0 256 0S142.1 20.2 98.7 54c-12.5-9-30.1-7.9-41.3 3.4S45 86.2 54 98.7C20.2 142.1 0 196.7 0 256s20.2 113.9 54 157.3c-9 12.5-7.9 30.1 3.4 41.3S86.2 467 98.7 458c43.4 33.8 98 54 157.3 54s113.9-20.2 157.3-54c12.5 9 30.1 7.9 41.3-3.4s12.4-28.8 3.4-41.3zm-45.5-46.1l-58-58c8.6-15.8 13.5-34 13.5-53.3s-4.9-37.4-13.5-53.3l58-58C434.9 176.1 448 214.5 448 256s-13.1 79.9-35.5 111.2zM367.2 99.5l-58 58c-15.8-8.6-34-13.5-53.3-13.5s-37.4 4.9-53.3 13.5l-58-58C176.1 77.1 214.5 64 256 64s79.9 13.1 111.2 35.5zM157.5 309.3l-58 58C77.1 335.9 64 297.5 64 256s13.1-79.9 35.5-111.2l58 58c-8.6 15.8-13.5 34-13.5 53.3s4.9 37.4 13.5 53.3zM208 256a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z"], - "hands": [576, 512, ["sign-language", "signing"], "f2a7", "M544 160l-.1 72.6c-.1 52.2-24 101-64 133.1c.1-1.9 .1-3.8 .1-5.7l0-8c0-71.8-37-138.6-97.9-176.7l-60.2-37.6c-8.6-5.4-17.9-8.4-27.3-9.4L248.7 48.8c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8l78 135.1c3.3 5.7 10.7 7.7 16.4 4.4s7.7-10.7 4.4-16.4l-62-107.4c-6.6-11.5-2.7-26.2 8.8-32.8S362 5 368.6 16.5l68 117.8s0 0 0 0s0 0 0 0l43.3 75L480 160c0-17.7 14.4-32 32-32s32 14.4 32 32zM243.9 88.5L268.5 131c-13.9 4.5-26.4 13.7-34.7 27c-.9 1.4-1.7 2.9-2.5 4.4l-28.9-50c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8zm-46.4 63.7l26.8 46.4c.6 6 2.1 11.8 4.3 17.4l-4.7 0-13.3 0s0 0 0 0L179 216l-23-39.8c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8zM260.9 175c9.4-15 29.1-19.5 44.1-10.2l60.2 37.6C416.7 234.7 448 291.2 448 352l0 8c0 83.9-68.1 152-152 152l-176 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l92 0c6.6 0 12-5.4 12-12s-5.4-12-12-12L88 440c-13.3 0-24-10.7-24-24s10.7-24 24-24l124 0c6.6 0 12-5.4 12-12s-5.4-12-12-12L56 368c-13.3 0-24-10.7-24-24s10.7-24 24-24l156 0c6.6 0 12-5.4 12-12s-5.4-12-12-12L88 296c-13.3 0-24-10.7-24-24s10.7-24 24-24l136 0s0 0 0 0s0 0 0 0l93.2 0L271 219.1c-15-9.4-19.5-29.1-10.2-44.1z"], - "calendar-day": [448, 512, [], "f783", "M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zm80 64c-8.8 0-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16l96 0c8.8 0 16-7.2 16-16l0-96c0-8.8-7.2-16-16-16l-96 0z"], - "water-ladder": [576, 512, ["ladder-water", "swimming-pool"], "f5c5", "M128 127.7C128 74.9 170.9 32 223.7 32c48.3 0 89 36 95 83.9l1 8.2c2.2 17.5-10.2 33.5-27.8 35.7s-33.5-10.2-35.7-27.8l-1-8.2c-2-15.9-15.5-27.8-31.5-27.8c-17.5 0-31.7 14.2-31.7 31.7l0 96.3 192 0 0-96.3C384 74.9 426.9 32 479.7 32c48.3 0 89 36 95 83.9l1 8.2c2.2 17.5-10.2 33.5-27.8 35.7s-33.5-10.2-35.7-27.8l-1-8.2c-2-15.9-15.5-27.8-31.5-27.8c-17.5 0-31.7 14.2-31.7 31.7L448 361c-1.6 1-3.3 2-4.8 3.1c-18 12.4-40.1 20.3-59.2 20.3c0 0 0 0 0 0l0-96.5-192 0 0 96.5c-19 0-41.2-7.9-59.1-20.3c-1.6-1.1-3.2-2.2-4.9-3.1l0-233.3zM306.5 389.9C329 405.4 356.5 416 384 416c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 469.7 417 480 384 480c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 405.2 165.1 416 192 416c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z"], - "arrows-up-down": [320, 512, ["arrows-v"], "f07d", "M182.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L128 109.3l0 293.5L86.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 402.7l0-293.5 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96z"], - "face-grimace": [512, 512, [128556, "grimace"], "f57f", "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm96-112l-8 0 0-40 55.3 0c-3.8 22.7-23.6 40-47.3 40zm47.3-56L344 344l0-40 8 0c23.8 0 43.5 17.3 47.3 40zM328 344l-64 0 0-40 64 0 0 40zm0 56l-64 0 0-40 64 0 0 40zm-80-96l0 40-64 0 0-40 64 0zm0 56l0 40-64 0 0-40 64 0zm-80-16l-55.3 0c3.8-22.7 23.6-40 47.3-40l8 0 0 40zm0 56l-8 0c-23.8 0-43.5-17.3-47.3-40l55.3 0 0 40zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"], - "wheelchair-move": [448, 512, ["wheelchair-alt"], "e2ce", "M320 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM204.5 121.3c-5.4-2.5-11.7-1.9-16.4 1.7l-40.9 30.7c-14.1 10.6-34.2 7.7-44.8-6.4s-7.7-34.2 6.4-44.8l40.9-30.7c23.7-17.8 55.3-21 82.1-8.4l90.4 42.5c29.1 13.7 36.8 51.6 15.2 75.5L299.1 224l97.4 0c30.3 0 53 27.7 47.1 57.4L415.4 422.3c-3.5 17.3-20.3 28.6-37.7 25.1s-28.6-20.3-25.1-37.7L377 288l-70.3 0c8.6 19.6 13.3 41.2 13.3 64c0 88.4-71.6 160-160 160S0 440.4 0 352s71.6-160 160-160c11.1 0 22 1.1 32.4 3.3l54.2-54.2-42.1-19.8zM160 448a96 96 0 1 0 0-192 96 96 0 1 0 0 192z"], - "turn-down": [384, 512, [10549, "level-down-alt"], "f3be", "M350 334.5c3.8 8.8 2 19-4.6 26l-136 144c-4.5 4.8-10.8 7.5-17.4 7.5s-12.9-2.7-17.4-7.5l-136-144c-6.6-7-8.4-17.2-4.6-26s12.5-14.5 22-14.5l88 0 0-192c0-17.7-14.3-32-32-32L32 96C14.3 96 0 81.7 0 64L0 32C0 14.3 14.3 0 32 0l80 0c70.7 0 128 57.3 128 128l0 192 88 0c9.6 0 18.2 5.7 22 14.5z"], - "person-walking-arrow-right": [640, 512, [], "e552", "M208 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM550.6 153.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L530.7 224 384 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l146.7 0-25.4 25.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3l-80-80z"], - "square-envelope": [448, 512, ["envelope-square"], "f199", "M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM218 271.7L64.2 172.4C66 156.4 79.5 144 96 144l256 0c16.5 0 30 12.4 31.8 28.4L230 271.7c-1.8 1.2-3.9 1.8-6 1.8s-4.2-.6-6-1.8zm29.4 26.9L384 210.4 384 336c0 17.7-14.3 32-32 32L96 368c-17.7 0-32-14.3-32-32l0-125.6 136.6 88.2c7 4.5 15.1 6.9 23.4 6.9s16.4-2.4 23.4-6.9z"], - "dice": [640, 512, [127922], "f522", "M274.9 34.3c-28.1-28.1-73.7-28.1-101.8 0L34.3 173.1c-28.1 28.1-28.1 73.7 0 101.8L173.1 413.7c28.1 28.1 73.7 28.1 101.8 0L413.7 274.9c28.1-28.1 28.1-73.7 0-101.8L274.9 34.3zM200 224a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM96 200a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM224 376a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM352 200a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM224 120a24 24 0 1 1 0-48 24 24 0 1 1 0 48zm96 328c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64l-114.3 0c11.6 36 3.1 77-25.4 105.5L320 413.8l0 34.2zM480 328a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"], - "bowling-ball": [512, 512, [], "f436", "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM240 80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM208 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-64-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"], - "brain": [512, 512, [129504], "f5dc", "M184 0c30.9 0 56 25.1 56 56l0 400c0 30.9-25.1 56-56 56c-28.9 0-52.7-21.9-55.7-50.1c-5.2 1.4-10.7 2.1-16.3 2.1c-35.3 0-64-28.7-64-64c0-7.4 1.3-14.6 3.6-21.2C21.4 367.4 0 338.2 0 304c0-31.9 18.7-59.5 45.8-72.3C37.1 220.8 32 207 32 192c0-30.7 21.6-56.3 50.4-62.6C80.8 123.9 80 118 80 112c0-29.9 20.6-55.1 48.3-62.1C131.3 21.9 155.1 0 184 0zM328 0c28.9 0 52.6 21.9 55.7 49.9c27.8 7 48.3 32.1 48.3 62.1c0 6-.8 11.9-2.4 17.4c28.8 6.2 50.4 31.9 50.4 62.6c0 15-5.1 28.8-13.8 39.7C493.3 244.5 512 272.1 512 304c0 34.2-21.4 63.4-51.6 74.8c2.3 6.6 3.6 13.8 3.6 21.2c0 35.3-28.7 64-64 64c-5.6 0-11.1-.7-16.3-2.1c-3 28.2-26.8 50.1-55.7 50.1c-30.9 0-56-25.1-56-56l0-400c0-30.9 25.1-56 56-56z"], - "bandage": [640, 512, [129657, "band-aid"], "f462", "M480 416l96 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64l-96 0 0 320zM448 96L192 96l0 320 256 0 0-320zM64 96C28.7 96 0 124.7 0 160L0 352c0 35.3 28.7 64 64 64l96 0 0-320L64 96zM248 208a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM248 304a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"], - "calendar-minus": [448, 512, [], "f272", "M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zM312 376c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l176 0z"], - "circle-xmark": [512, 512, [61532, "times-circle", "xmark-circle"], "f057", "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"], - "gifts": [640, 512, [], "f79c", "M200.6 32C205 19.5 198.5 5.8 186 1.4S159.8 3.5 155.4 16L144.7 46.2l-9.9-29.8C130.6 3.8 117-3 104.4 1.2S85 19 89.2 31.6l8.3 25-27.4-20c-10.7-7.8-25.7-5.4-33.5 5.3s-5.4 25.7 5.3 33.5L70.2 96 48 96C21.5 96 0 117.5 0 144L0 464c0 26.5 21.5 48 48 48l152.6 0c-5.4-9.4-8.6-20.3-8.6-32l0-224c0-29.9 20.5-55 48.2-62c1.8-31 17.1-58.2 40.1-76.1C271.7 104.7 256.9 96 240 96l-22.2 0 28.3-20.6c10.7-7.8 13.1-22.8 5.3-33.5s-22.8-13.1-33.5-5.3L192.5 55.1 200.6 32zM363.5 185.5L393.1 224 344 224c-13.3 0-24-10.7-24-24c0-13.1 10.8-24 24.2-24c7.6 0 14.7 3.5 19.3 9.5zM272 200c0 8.4 1.4 16.5 4.1 24l-4.1 0c-26.5 0-48 21.5-48 48l0 80 192 0 0-96 32 0 0 96 192 0 0-80c0-26.5-21.5-48-48-48l-4.1 0c2.7-7.5 4.1-15.6 4.1-24c0-39.9-32.5-72-72.2-72c-22.4 0-43.6 10.4-57.3 28.2L432 195.8l-30.5-39.6c-13.7-17.8-35-28.2-57.3-28.2c-39.7 0-72.2 32.1-72.2 72zM224 464c0 26.5 21.5 48 48 48l144 0 0-128-192 0 0 80zm224 48l144 0c26.5 0 48-21.5 48-48l0-80-192 0 0 128zm96-312c0 13.3-10.7 24-24 24l-49.1 0 29.6-38.5c4.6-5.9 11.7-9.5 19.3-9.5c13.4 0 24.2 10.9 24.2 24z"], - "hotel": [512, 512, [127976], "f594", "M0 32C0 14.3 14.3 0 32 0L480 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 384c17.7 0 32 14.3 32 32s-14.3 32-32 32l-176 0 0-48c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 48L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32L32 64C14.3 64 0 49.7 0 32zm96 80l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM240 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM112 192c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM328 384c13.3 0 24.3-10.9 21-23.8c-10.6-41.5-48.2-72.2-93-72.2s-82.5 30.7-93 72.2c-3.3 12.8 7.8 23.8 21 23.8l144 0z"], - "earth-asia": [512, 512, [127759, "globe-asia"], "f57e", "M51.7 295.1l31.7 6.3c7.9 1.6 16-.9 21.7-6.6l15.4-15.4c11.6-11.6 31.1-8.4 38.4 6.2l9.3 18.5c4.8 9.6 14.6 15.7 25.4 15.7c15.2 0 26.1-14.6 21.7-29.2l-6-19.9c-4.6-15.4 6.9-30.9 23-30.9l2.3 0c13.4 0 25.9-6.7 33.3-17.8l10.7-16.1c5.6-8.5 5.3-19.6-.8-27.7l-16.1-21.5c-10.3-13.7-3.3-33.5 13.4-37.7l17-4.3c7.5-1.9 13.6-7.2 16.5-14.4l16.4-40.9C303.4 52.1 280.2 48 256 48C141.1 48 48 141.1 48 256c0 13.4 1.3 26.5 3.7 39.1zm407.7 4.6c-3-.3-6-.1-9 .8l-15.8 4.4c-6.7 1.9-13.8-.9-17.5-6.7l-2-3.1c-6-9.4-16.4-15.1-27.6-15.1s-21.6 5.7-27.6 15.1l-6.1 9.5c-1.4 2.2-3.4 4.1-5.7 5.3L312 330.1c-18.1 10.1-25.5 32.4-17 51.3l5.5 12.4c8.6 19.2 30.7 28.5 50.5 21.1l2.6-1c10-3.7 21.3-2.2 29.9 4.1l1.5 1.1c37.2-29.5 64.1-71.4 74.4-119.5zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm144.5 92.1c-2.1 8.6 3.1 17.3 11.6 19.4l32 8c8.6 2.1 17.3-3.1 19.4-11.6s-3.1-17.3-11.6-19.4l-32-8c-8.6-2.1-17.3 3.1-19.4 11.6zm92-20c-2.1 8.6 3.1 17.3 11.6 19.4s17.3-3.1 19.4-11.6l8-32c2.1-8.6-3.1-17.3-11.6-19.4s-17.3 3.1-19.4 11.6l-8 32zM343.2 113.7c-7.9-4-17.5-.7-21.5 7.2l-16 32c-4 7.9-.7 17.5 7.2 21.5s17.5 .7 21.5-7.2l16-32c4-7.9 .7-17.5-7.2-21.5z"], - "id-card-clip": [576, 512, ["id-card-alt"], "f47f", "M256 0l64 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zM64 64l128 0 0 48c0 26.5 21.5 48 48 48l96 0c26.5 0 48-21.5 48-48l0-48 128 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64zM176 437.3c0 5.9 4.8 10.7 10.7 10.7l202.7 0c5.9 0 10.7-4.8 10.7-10.7c0-29.5-23.9-53.3-53.3-53.3l-117.3 0c-29.5 0-53.3 23.9-53.3 53.3zM288 352a64 64 0 1 0 0-128 64 64 0 1 0 0 128z"], - "magnifying-glass-plus": [512, 512, ["search-plus"], "f00e", "M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM184 296c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64 64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0 0-64c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 64-64 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l64 0 0 64z"], - "thumbs-up": [512, 512, [128077, 61575], "f164", "M313.4 32.9c26 5.2 42.9 30.5 37.7 56.5l-2.3 11.4c-5.3 26.7-15.1 52.1-28.8 75.2l144 0c26.5 0 48 21.5 48 48c0 18.5-10.5 34.6-25.9 42.6C497 275.4 504 288.9 504 304c0 23.4-16.8 42.9-38.9 47.1c4.4 7.3 6.9 15.8 6.9 24.9c0 21.3-13.9 39.4-33.1 45.6c.7 3.3 1.1 6.8 1.1 10.4c0 26.5-21.5 48-48 48l-97.5 0c-19 0-37.5-5.6-53.3-16.1l-38.5-25.7C176 420.4 160 390.4 160 358.3l0-38.3 0-48 0-24.9c0-29.2 13.3-56.7 36-75l7.4-5.9c26.5-21.2 44.6-51 51.2-84.2l2.3-11.4c5.2-26 30.5-42.9 56.5-37.7zM32 192l64 0c17.7 0 32 14.3 32 32l0 224c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32L0 224c0-17.7 14.3-32 32-32z"], - "user-clock": [640, 512, [], "f4fd", "M224 0a128 128 0 1 1 0 256A128 128 0 1 1 224 0zM178.3 304l91.4 0c20.6 0 40.4 3.5 58.8 9.9C323 331 320 349.1 320 368c0 59.5 29.5 112.1 74.8 144L29.7 512C13.3 512 0 498.7 0 482.3C0 383.8 79.8 304 178.3 304zM352 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-80c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0 0-48c0-8.8-7.2-16-16-16z"], - "hand-dots": [512, 512, ["allergies"], "f461", "M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 272c0 1.5 0 3.1 .1 4.6L67.6 283c-16-15.2-41.3-14.6-56.6 1.4s-14.6 41.3 1.4 56.6L124.8 448c43.1 41.1 100.4 64 160 64l19.2 0c97.2 0 176-78.8 176-176l0-208c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 176c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208zM240 336a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm80 16a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm48-16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm-16 80a16 16 0 1 1 0 32 16 16 0 1 1 0-32zM240 432a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm-48-48a16 16 0 1 1 0 32 16 16 0 1 1 0-32z"], - "file-invoice": [384, 512, [], "f570", "M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM80 64l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 96c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm16 96l192 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32L96 352c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm0 32l0 64 192 0 0-64L96 256zM240 416l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"], - "window-minimize": [512, 512, [128469], "f2d1", "M32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l448 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416z"], - "mug-saucer": [640, 512, ["coffee"], "f0f4", "M96 64c0-17.7 14.3-32 32-32l320 0 64 0c70.7 0 128 57.3 128 128s-57.3 128-128 128l-32 0c0 53-43 96-96 96l-192 0c-53 0-96-43-96-96L96 64zM480 224l32 0c35.3 0 64-28.7 64-64s-28.7-64-64-64l-32 0 0 128zM32 416l512 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32z"], - "brush": [384, 512, [], "f55d", "M162.4 6c-1.5-3.6-5-6-8.9-6l-19 0c-3.9 0-7.5 2.4-8.9 6L104.9 57.7c-3.2 8-14.6 8-17.8 0L66.4 6c-1.5-3.6-5-6-8.9-6L48 0C21.5 0 0 21.5 0 48L0 224l0 22.4L0 256l9.6 0 364.8 0 9.6 0 0-9.6 0-22.4 0-176c0-26.5-21.5-48-48-48L230.5 0c-3.9 0-7.5 2.4-8.9 6L200.9 57.7c-3.2 8-14.6 8-17.8 0L162.4 6zM0 288l0 32c0 35.3 28.7 64 64 64l64 0 0 64c0 35.3 28.7 64 64 64s64-28.7 64-64l0-64 64 0c35.3 0 64-28.7 64-64l0-32L0 288zM192 432a16 16 0 1 1 0 32 16 16 0 1 1 0-32z"], - "file-half-dashed": [384, 512, [], "e698", "M64 0C28.7 0 0 28.7 0 64L0 320l384 0 0-160-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM0 416l64 0 0-64L0 352l0 64zm288 32l-80 0 0 64 80 0 0-64zm-112 0l-80 0 0 64 80 0 0-64zM64 448L0 448c0 35.3 28.7 64 64 64l0-64zm256 0l0 64c35.3 0 64-28.7 64-64l-64 0zm64-32l0-64-64 0 0 64 64 0z"], - "mask": [576, 512, [], "f6fa", "M288 64C64 64 0 160 0 272S80 448 176 448l8.4 0c24.2 0 46.4-13.7 57.2-35.4l23.2-46.3c4.4-8.8 13.3-14.3 23.2-14.3s18.8 5.5 23.2 14.3l23.2 46.3c10.8 21.7 33 35.4 57.2 35.4l8.4 0c96 0 176-64 176-176s-64-208-288-208zM96 256a64 64 0 1 1 128 0A64 64 0 1 1 96 256zm320-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"], - "magnifying-glass-minus": [512, 512, ["search-minus"], "f010", "M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM136 184c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z"], - "ruler-vertical": [256, 512, [], "f548", "M0 48C0 21.5 21.5 0 48 0L208 0c26.5 0 48 21.5 48 48l0 48-80 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80 0 0 64-80 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80 0 0 64-80 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80 0 0 64-80 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80 0 0 48c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 48z"], - "user-large": [512, 512, ["user-alt"], "f406", "M256 288A144 144 0 1 0 256 0a144 144 0 1 0 0 288zm-94.7 32C72.2 320 0 392.2 0 481.3c0 17 13.8 30.7 30.7 30.7l450.6 0c17 0 30.7-13.8 30.7-30.7C512 392.2 439.8 320 350.7 320l-189.4 0z"], - "train-tram": [448, 512, [128650], "e5b4", "M86.8 48c-12.2 0-23.6 5.5-31.2 15L42.7 79C34.5 89.3 19.4 91 9 82.7S-3 59.4 5.3 49L18 33C34.7 12.2 60 0 86.8 0L361.2 0c26.7 0 52 12.2 68.7 33l12.8 16c8.3 10.4 6.6 25.5-3.8 33.7s-25.5 6.6-33.7-3.7L392.5 63c-7.6-9.5-19.1-15-31.2-15L248 48l0 48 40 0c53 0 96 43 96 96l0 160c0 30.6-14.3 57.8-36.6 75.4l65.5 65.5c7.1 7.1 2.1 19.1-7.9 19.1l-39.7 0c-8.5 0-16.6-3.4-22.6-9.4L288 448l-128 0-54.6 54.6c-6 6-14.1 9.4-22.6 9.4L43 512c-10 0-15-12.1-7.9-19.1l65.5-65.5C78.3 409.8 64 382.6 64 352l0-160c0-53 43-96 96-96l40 0 0-48L86.8 48zM160 160c-17.7 0-32 14.3-32 32l0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32l-128 0zm32 192a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"], - "user-nurse": [448, 512, [], "f82f", "M96 128l0-57.8c0-13.3 8.3-25.3 20.8-30l96-36c7.2-2.7 15.2-2.7 22.5 0l96 36c12.5 4.7 20.8 16.6 20.8 30l0 57.8-.3 0c.2 2.6 .3 5.3 .3 8l0 40c0 70.7-57.3 128-128 128s-128-57.3-128-128l0-40c0-2.7 .1-5.4 .3-8l-.3 0zm48 48c0 44.2 35.8 80 80 80s80-35.8 80-80l0-16-160 0 0 16zM111.9 327.7c10.5-3.4 21.8 .4 29.4 8.5l71 75.5c6.3 6.7 17 6.7 23.3 0l71-75.5c7.6-8.1 18.9-11.9 29.4-8.5C401 348.6 448 409.4 448 481.3c0 17-13.8 30.7-30.7 30.7L30.7 512C13.8 512 0 498.2 0 481.3c0-71.9 47-132.7 111.9-153.6zM208 48l0 16-16 0c-4.4 0-8 3.6-8 8l0 16c0 4.4 3.6 8 8 8l16 0 0 16c0 4.4 3.6 8 8 8l16 0c4.4 0 8-3.6 8-8l0-16 16 0c4.4 0 8-3.6 8-8l0-16c0-4.4-3.6-8-8-8l-16 0 0-16c0-4.4-3.6-8-8-8l-16 0c-4.4 0-8 3.6-8 8z"], - "syringe": [512, 512, [128137], "f48e", "M441 7l32 32 32 32c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-15-15L417.9 128l55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-72-72L295 73c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l55 55L422.1 56 407 41c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0zM210.3 155.7l61.1-61.1c.3 .3 .6 .7 1 1l16 16 56 56 56 56 16 16c.3 .3 .6 .6 1 1l-191 191c-10.5 10.5-24.7 16.4-39.6 16.4l-88.8 0L41 505c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l57-57 0-88.8c0-14.9 5.9-29.1 16.4-39.6l43.3-43.3 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 41.4-41.4 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57z"], - "cloud-sun": [640, 512, [9925], "f6c4", "M294.2 1.2c5.1 2.1 8.7 6.7 9.6 12.1l14.1 84.7 84.7 14.1c5.4 .9 10 4.5 12.1 9.6s1.5 10.9-1.6 15.4l-38.5 55c-2.2-.1-4.4-.2-6.7-.2c-23.3 0-45.1 6.2-64 17.1l0-1.1c0-53-43-96-96-96s-96 43-96 96s43 96 96 96c8.1 0 15.9-1 23.4-2.9c-36.6 18.1-63.3 53.1-69.8 94.9l-24.4 17c-4.5 3.2-10.3 3.8-15.4 1.6s-8.7-6.7-9.6-12.1L98.1 317.9 13.4 303.8c-5.4-.9-10-4.5-12.1-9.6s-1.5-10.9 1.6-15.4L52.5 208 2.9 137.2c-3.2-4.5-3.8-10.3-1.6-15.4s6.7-8.7 12.1-9.6L98.1 98.1l14.1-84.7c.9-5.4 4.5-10 9.6-12.1s10.9-1.5 15.4 1.6L208 52.5 278.8 2.9c4.5-3.2 10.3-3.8 15.4-1.6zM144 208a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM639.9 431.9c0 44.2-35.8 80-80 80l-271.9 0c-53 0-96-43-96-96c0-47.6 34.6-87 80-94.6l0-1.3c0-53 43-96 96-96c34.9 0 65.4 18.6 82.2 46.4c13-9.1 28.8-14.4 45.8-14.4c44.2 0 80 35.8 80 80c0 5.9-.6 11.7-1.9 17.2c37.4 6.7 65.8 39.4 65.8 78.7z"], - "stopwatch-20": [448, 512, [], "e06f", "M176 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0 0 34.4C92.3 113.8 16 200 16 304c0 114.9 93.1 208 208 208s208-93.1 208-208c0-41.8-12.3-80.7-33.5-113.2l24.1-24.1c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L355.7 143c-28.1-23-62.2-38.8-99.7-44.6L256 64l16 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L176 0zM288 204c28.7 0 52 23.3 52 52l0 96c0 28.7-23.3 52-52 52s-52-23.3-52-52l0-96c0-28.7 23.3-52 52-52zm-12 52l0 96c0 6.6 5.4 12 12 12s12-5.4 12-12l0-96c0-6.6-5.4-12-12-12s-12 5.4-12 12zM159.5 244c-5.4 0-10.2 3.5-11.9 8.6l-.6 1.7c-3.5 10.5-14.8 16.1-25.3 12.6s-16.1-14.8-12.6-25.3l.6-1.7c7.2-21.5 27.2-35.9 49.8-35.9c29 0 52.5 23.5 52.5 52.5l0 2.2c0 13.4-4.9 26.4-13.8 36.4l-39 43.9c-6.2 7-10 15.7-10.9 24.9l43.8 0c11 0 20 9 20 20s-9 20-20 20l-64 0c-11 0-20-9-20-20l0-15.7c0-20.6 7.5-40.4 21.2-55.8l39-43.9c2.4-2.7 3.7-6.2 3.7-9.8l0-2.2c0-6.9-5.6-12.5-12.5-12.5z"], - "square-full": [512, 512, [128997, 128998, 128999, 129000, 129001, 129002, 129003, 11035, 11036], "f45c", "M0 0H512V512H0V0z"], - "magnet": [448, 512, [129522], "f076", "M0 160l0 96C0 379.7 100.3 480 224 480s224-100.3 224-224l0-96-128 0 0 96c0 53-43 96-96 96s-96-43-96-96l0-96L0 160zm0-32l128 0 0-64c0-17.7-14.3-32-32-32L32 32C14.3 32 0 46.3 0 64l0 64zm320 0l128 0 0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 64z"], - "jar": [320, 512, [], "e516", "M32 32C32 14.3 46.3 0 64 0L256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 64C46.3 64 32 49.7 32 32zM0 160c0-35.3 28.7-64 64-64l192 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 160zm96 64c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-96c0-17.7-14.3-32-32-32L96 224z"], - "note-sticky": [448, 512, [62026, "sticky-note"], "f249", "M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l224 0 0-112c0-26.5 21.5-48 48-48l112 0 0-224c0-35.3-28.7-64-64-64L64 32zM448 352l-45.3 0L336 352c-8.8 0-16 7.2-16 16l0 66.7 0 45.3 32-32 64-64 32-32z"], - "bug-slash": [640, 512, [], "e490", "M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L477.4 348.9c1.7-9.4 2.6-19 2.6-28.9l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64.3 0c-1.1-14.1-5-27.5-11.1-39.5c.7-.6 1.4-1.2 2.1-1.9l64-64c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-.7 .7-1.3 1.4-1.9 2.1C409.2 164.1 393.1 160 376 160l-112 0c-8.3 0-16.3 1-24 2.8L38.8 5.1zM320 0c-53 0-96 43-96 96l0 3.6c0 15.7 12.7 28.4 28.4 28.4l135.1 0c15.7 0 28.4-12.7 28.4-28.4l0-3.6c0-53-43-96-96-96zM160.3 256L96 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c0 24.6 5.5 47.8 15.4 68.6c-2.2 1.3-4.2 2.9-6 4.8l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l63.1-63.1c24.5 21.8 55.8 36.2 90.3 39.6l0-143.7L166.7 227.3c-3.4 9-5.6 18.7-6.4 28.7zM336 479.2c36.6-3.6 69.7-19.6 94.8-43.8L336 360.7l0 118.5z"], - "arrow-up-from-water-pump": [576, 512, [], "e4b6", "M112 0C85.5 0 64 21.5 64 48l0 208-16 0c-26.5 0-48 21.5-48 48l0 96c0 8 2 15.6 5.4 22.2c3.8-1.7 7.8-3.1 12-4.1c13.1-3.1 26.7-9.8 37.3-18.6c22.2-18.7 54.3-20.1 78.1-3.4c18 12.4 40.1 20.3 59.2 20.3c21.1 0 42-8.5 59.2-20.3c22.1-15.5 51.6-15.5 73.7 0c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.3 78.1 3.4c10.6 8.8 24.2 15.6 37.3 18.6c4.2 1 8.2 2.4 12 4.1C574 415.6 576 408 576 400l0-96c0-26.5-21.5-48-48-48l-48 0 0-146.7 25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-80-80c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L416 109.3 416 256l-128 0 0-208c0-26.5-21.5-48-48-48L112 0zM306.5 421.9c-11.1-7.9-25.9-7.9-37 0C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1c0 0 0 0 0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7c0 0 0 0 0 0C439.4 437.2 410.9 448 384 448c-27.5 0-55-10.6-77.5-26.1z"], - "bone": [576, 512, [129460], "f5d7", "M153.7 144.8c6.9 16.3 20.6 31.2 38.3 31.2l192 0c17.7 0 31.4-14.9 38.3-31.2C434.4 116.1 462.9 96 496 96c44.2 0 80 35.8 80 80c0 30.4-17 56.9-42 70.4c-3.6 1.9-6 5.5-6 9.6s2.4 7.7 6 9.6c25 13.5 42 40 42 70.4c0 44.2-35.8 80-80 80c-33.1 0-61.6-20.1-73.7-48.8C415.4 350.9 401.7 336 384 336l-192 0c-17.7 0-31.4 14.9-38.3 31.2C141.6 395.9 113.1 416 80 416c-44.2 0-80-35.8-80-80c0-30.4 17-56.9 42-70.4c3.6-1.9 6-5.5 6-9.6s-2.4-7.7-6-9.6C17 232.9 0 206.4 0 176c0-44.2 35.8-80 80-80c33.1 0 61.6 20.1 73.7 48.8z"], - "table-cells-row-unlock": [640, 512, [], "e691", "M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 65.1c-37.8 5.4-69.4 29.6-85.2 62.9L360 224l0 64 56 0 0 8.6c-19.1 11.1-32 31.7-32 55.4l-24 0 0 64 24 0 0 64L64 480c-35.3 0-64-28.7-64-64L0 96zM64 224l0 64 88 0 0-64-88 0zm232 0l-88 0 0 64 88 0 0-64zM152 352l-88 0 0 64 88 0 0-64zm56 0l0 64 88 0 0-64-88 0zm288-80l0 48 32 0 32 0 48 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l0-48c0-44.2 35.8-80 80-80s80 35.8 80 80l-48 0c0-17.7-14.3-32-32-32s-32 14.3-32 32z"], - "user-injured": [448, 512, [], "f728", "M240 80l102.7 0c-7.9-19.5-20.4-36.5-36.2-49.9L240 80zm37.7-68.2C261.3 4.2 243.2 0 224 0c-53.7 0-99.7 33.1-118.7 80l81.4 0 91-68.2zM224 256c70.7 0 128-57.3 128-128c0-5.4-.3-10.8-1-16L97 112c-.7 5.2-1 10.6-1 16c0 70.7 57.3 128 128 128zM124 312.4c-9.7 3.1-19.1 7-28 11.7L96 512l147.7 0L181.5 408.2 124 312.4zm33-7.2L204.3 384l67.7 0c44.2 0 80 35.8 80 80c0 18-6 34.6-16 48l82.3 0c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304l-91.4 0c-7.2 0-14.3 .4-21.3 1.3zM0 482.3C0 498.7 13.3 512 29.7 512L64 512l0-166.6C24.9 378.1 0 427.3 0 482.3zM320 464c0-26.5-21.5-48-48-48l-48.5 0 57.1 95.2C303 507.2 320 487.6 320 464z"], - "face-sad-tear": [512, 512, [128546, "sad-tear"], "f5b4", "M0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zm240 80c0-8.8 7.2-16 16-16c45 0 85.6 20.5 115.7 53.1c6 6.5 5.6 16.6-.9 22.6s-16.6 5.6-22.6-.9c-25-27.1-57.4-42.9-92.3-42.9c-8.8 0-16-7.2-16-16zm-80 80c-26.5 0-48-21-48-47c0-20 28.6-60.4 41.6-77.7c3.2-4.4 9.6-4.4 12.8 0C179.6 308.6 208 349 208 369c0 26-21.5 47-48 47zM367.6 208a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm-192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"], - "plane": [576, 512, [], "f072", "M482.3 192c34.2 0 93.7 29 93.7 64c0 36-59.5 64-93.7 64l-116.6 0L265.2 495.9c-5.7 10-16.3 16.1-27.8 16.1l-56.2 0c-10.6 0-18.3-10.2-15.4-20.4l49-171.6L112 320 68.8 377.6c-3 4-7.8 6.4-12.8 6.4l-42 0c-7.8 0-14-6.3-14-14c0-1.3 .2-2.6 .5-3.9L32 256 .5 145.9c-.4-1.3-.5-2.6-.5-3.9c0-7.8 6.3-14 14-14l42 0c5 0 9.8 2.4 12.8 6.4L112 192l102.9 0-49-171.6C162.9 10.2 170.6 0 181.2 0l56.2 0c11.5 0 22.1 6.2 27.8 16.1L365.7 192l116.6 0z"], - "tent-arrows-down": [576, 512, [], "e581", "M209.8 111.9c-8.9-9.9-24-10.7-33.9-1.8l-39.9 36L136 24c0-13.3-10.7-24-24-24S88 10.7 88 24l0 122.1-39.9-36c-9.9-8.9-25-8.1-33.9 1.8s-8.1 25 1.8 33.9l80 72c9.1 8.2 23 8.2 32.1 0l80-72c9.9-8.9 10.7-24 1.8-33.9zm352 0c-8.9-9.9-24-10.7-33.9-1.8l-39.9 36L488 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 122.1-39.9-36c-9.9-8.9-25-8.1-33.9 1.8s-8.1 25 1.8 33.9l80 72c9.1 8.2 23 8.2 32.1 0l80-72c9.9-8.9 10.7-24 1.8-33.9zM307.4 166.5c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S86.7 512 96 512l144 0 16 0c17.7 0 32-14.3 32-32l0-118.1c0-5.5 4.4-9.9 9.9-9.9c3.7 0 7.2 2.1 8.8 5.5l68.4 136.8c5.4 10.8 16.5 17.7 28.6 17.7l60.2 0 16 0c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z"], - "exclamation": [128, 512, [10069, 10071, 61738], "21", "M96 64c0-17.7-14.3-32-32-32S32 46.3 32 64l0 256c0 17.7 14.3 32 32 32s32-14.3 32-32L96 64zM64 480a40 40 0 1 0 0-80 40 40 0 1 0 0 80z"], - "arrows-spin": [512, 512, [], "e4bb", "M256 96c38.4 0 73.7 13.5 101.3 36.1l-32.6 32.6c-4.6 4.6-5.9 11.5-3.5 17.4s8.3 9.9 14.8 9.9l112 0c8.8 0 16-7.2 16-16l0-112c0-6.5-3.9-12.3-9.9-14.8s-12.9-1.1-17.4 3.5l-34 34C363.4 52.6 312.1 32 256 32c-10.9 0-21.5 .8-32 2.3l0 64.9c10.3-2.1 21-3.2 32-3.2zM132.1 154.7l32.6 32.6c4.6 4.6 11.5 5.9 17.4 3.5s9.9-8.3 9.9-14.8l0-112c0-8.8-7.2-16-16-16L64 48c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l34 34C52.6 148.6 32 199.9 32 256c0 10.9 .8 21.5 2.3 32l64.9 0c-2.1-10.3-3.2-21-3.2-32c0-38.4 13.5-73.7 36.1-101.3zM477.7 224l-64.9 0c2.1 10.3 3.2 21 3.2 32c0 38.4-13.5 73.7-36.1 101.3l-32.6-32.6c-4.6-4.6-11.5-5.9-17.4-3.5s-9.9 8.3-9.9 14.8l0 112c0 8.8 7.2 16 16 16l112 0c6.5 0 12.3-3.9 14.8-9.9s1.1-12.9-3.5-17.4l-34-34C459.4 363.4 480 312.1 480 256c0-10.9-.8-21.5-2.3-32zM256 416c-38.4 0-73.7-13.5-101.3-36.1l32.6-32.6c4.6-4.6 5.9-11.5 3.5-17.4s-8.3-9.9-14.8-9.9L64 320c-8.8 0-16 7.2-16 16l0 112c0 6.5 3.9 12.3 9.9 14.8s12.9 1.1 17.4-3.5l34-34C148.6 459.4 199.9 480 256 480c10.9 0 21.5-.8 32-2.3l0-64.9c-10.3 2.1-21 3.2-32 3.2z"], - "print": [512, 512, [128424, 128438, 9113], "f02f", "M128 0C92.7 0 64 28.7 64 64l0 96 64 0 0-96 226.7 0L384 93.3l0 66.7 64 0 0-66.7c0-17-6.7-33.3-18.7-45.3L400 18.7C388 6.7 371.7 0 354.7 0L128 0zM384 352l0 32 0 64-256 0 0-64 0-16 0-16 256 0zm64 32l32 0c17.7 0 32-14.3 32-32l0-96c0-35.3-28.7-64-64-64L64 192c-35.3 0-64 28.7-64 64l0 96c0 17.7 14.3 32 32 32l32 0 0 64c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-64zM432 248a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"], - "turkish-lira-sign": [384, 512, ["try", "turkish-lira"], "e2bb", "M96 32c17.7 0 32 14.3 32 32l0 35.3L247.2 65.2c17-4.9 34.7 5 39.6 22s-5 34.7-22 39.6L128 165.9l0 29.4 119.2-34.1c17-4.9 34.7 5 39.6 22s-5 34.7-22 39.6L128 261.9 128 416l63.8 0c68.2 0 124.4-53.5 127.8-121.6l.4-8c.9-17.7 15.9-31.2 33.6-30.4s31.2 15.9 30.4 33.6l-.4 8C378.5 399.8 294.1 480 191.8 480L96 480c-17.7 0-32-14.3-32-32l0-167.9-23.2 6.6c-17 4.9-34.7-5-39.6-22s5-34.7 22-39.6L64 213.6l0-29.4-23.2 6.6c-17 4.9-34.7-5-39.6-22s5-34.7 22-39.6L64 117.6 64 64c0-17.7 14.3-32 32-32z"], - "dollar-sign": [320, 512, [128178, 61781, "dollar", "usd"], "24", "M160 0c17.7 0 32 14.3 32 32l0 35.7c1.6 .2 3.1 .4 4.7 .7c.4 .1 .7 .1 1.1 .2l48 8.8c17.4 3.2 28.9 19.9 25.7 37.2s-19.9 28.9-37.2 25.7l-47.5-8.7c-31.3-4.6-58.9-1.5-78.3 6.2s-27.2 18.3-29 28.1c-2 10.7-.5 16.7 1.2 20.4c1.8 3.9 5.5 8.3 12.8 13.2c16.3 10.7 41.3 17.7 73.7 26.3l2.9 .8c28.6 7.6 63.6 16.8 89.6 33.8c14.2 9.3 27.6 21.9 35.9 39.5c8.5 17.9 10.3 37.9 6.4 59.2c-6.9 38-33.1 63.4-65.6 76.7c-13.7 5.6-28.6 9.2-44.4 11l0 33.4c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-34.9c-.4-.1-.9-.1-1.3-.2l-.2 0s0 0 0 0c-24.4-3.8-64.5-14.3-91.5-26.3c-16.1-7.2-23.4-26.1-16.2-42.2s26.1-23.4 42.2-16.2c20.9 9.3 55.3 18.5 75.2 21.6c31.9 4.7 58.2 2 76-5.3c16.9-6.9 24.6-16.9 26.8-28.9c1.9-10.6 .4-16.7-1.3-20.4c-1.9-4-5.6-8.4-13-13.3c-16.4-10.7-41.5-17.7-74-26.3l-2.8-.7s0 0 0 0C119.4 279.3 84.4 270 58.4 253c-14.2-9.3-27.5-22-35.8-39.6c-8.4-17.9-10.1-37.9-6.1-59.2C23.7 116 52.3 91.2 84.8 78.3c13.3-5.3 27.9-8.9 43.2-11L128 32c0-17.7 14.3-32 32-32z"], - "x": [384, 512, [120], "58", "M376.6 84.5c11.3-13.6 9.5-33.8-4.1-45.1s-33.8-9.5-45.1 4.1L192 206 56.6 43.5C45.3 29.9 25.1 28.1 11.5 39.4S-3.9 70.9 7.4 84.5L150.3 256 7.4 427.5c-11.3 13.6-9.5 33.8 4.1 45.1s33.8 9.5 45.1-4.1L192 306 327.4 468.5c11.3 13.6 31.5 15.4 45.1 4.1s15.4-31.5 4.1-45.1L233.7 256 376.6 84.5z"], - "magnifying-glass-dollar": [512, 512, ["search-dollar"], "f688", "M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM228 104c0-11-9-20-20-20s-20 9-20 20l0 14c-7.6 1.7-15.2 4.4-22.2 8.5c-13.9 8.3-25.9 22.8-25.8 43.9c.1 20.3 12 33.1 24.7 40.7c11 6.6 24.7 10.8 35.6 14l1.7 .5c12.6 3.8 21.8 6.8 28 10.7c5.1 3.2 5.8 5.4 5.9 8.2c.1 5-1.8 8-5.9 10.5c-5 3.1-12.9 5-21.4 4.7c-11.1-.4-21.5-3.9-35.1-8.5c-2.3-.8-4.7-1.6-7.2-2.4c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3c1.9 .6 4 1.3 6.1 2.1c0 0 0 0 0 0s0 0 0 0c8.3 2.9 17.9 6.2 28.2 8.4l0 14.6c0 11 9 20 20 20s20-9 20-20l0-13.8c8-1.7 16-4.5 23.2-9c14.3-8.9 25.1-24.1 24.8-45c-.3-20.3-11.7-33.4-24.6-41.6c-11.5-7.2-25.9-11.6-37.1-15l-.7-.2c-12.8-3.9-21.9-6.7-28.3-10.5c-5.2-3.1-5.3-4.9-5.3-6.7c0-3.7 1.4-6.5 6.2-9.3c5.4-3.2 13.6-5.1 21.5-5c9.6 .1 20.2 2.2 31.2 5.2c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-6.5-1.7-13.7-3.4-21.1-4.7l0-13.9z"], - "users-gear": [640, 512, ["users-cog"], "f509", "M144 160A80 80 0 1 0 144 0a80 80 0 1 0 0 160zm368 0A80 80 0 1 0 512 0a80 80 0 1 0 0 160zM0 298.7C0 310.4 9.6 320 21.3 320l213.3 0c.2 0 .4 0 .7 0c-26.6-23.5-43.3-57.8-43.3-96c0-7.6 .7-15 1.9-22.3c-13.6-6.3-28.7-9.7-44.6-9.7l-42.7 0C47.8 192 0 239.8 0 298.7zM320 320c24 0 45.9-8.8 62.7-23.3c2.5-3.7 5.2-7.3 8-10.7c2.7-3.3 5.7-6.1 9-8.3C410 262.3 416 243.9 416 224c0-53-43-96-96-96s-96 43-96 96s43 96 96 96zm65.4 60.2c-10.3-5.9-18.1-16.2-20.8-28.2l-103.2 0C187.7 352 128 411.7 128 485.3c0 14.7 11.9 26.7 26.7 26.7l300.6 0c-2.1-5.2-3.2-10.9-3.2-16.4l0-3c-1.3-.7-2.7-1.5-4-2.3l-2.6 1.5c-16.8 9.7-40.5 8-54.7-9.7c-4.5-5.6-8.6-11.5-12.4-17.6l-.1-.2-.1-.2-2.4-4.1-.1-.2-.1-.2c-3.4-6.2-6.4-12.6-9-19.3c-8.2-21.2 2.2-42.6 19-52.3l2.7-1.5c0-.8 0-1.5 0-2.3s0-1.5 0-2.3l-2.7-1.5zM533.3 192l-42.7 0c-15.9 0-31 3.5-44.6 9.7c1.3 7.2 1.9 14.7 1.9 22.3c0 17.4-3.5 33.9-9.7 49c2.5 .9 4.9 2 7.1 3.3l2.6 1.5c1.3-.8 2.6-1.6 4-2.3l0-3c0-19.4 13.3-39.1 35.8-42.6c7.9-1.2 16-1.9 24.2-1.9s16.3 .6 24.2 1.9c22.5 3.5 35.8 23.2 35.8 42.6l0 3c1.3 .7 2.7 1.5 4 2.3l2.6-1.5c16.8-9.7 40.5-8 54.7 9.7c2.3 2.8 4.5 5.8 6.6 8.7c-2.1-57.1-49-102.7-106.6-102.7zm91.3 163.9c6.3-3.6 9.5-11.1 6.8-18c-2.1-5.5-4.6-10.8-7.4-15.9l-2.3-4c-3.1-5.1-6.5-9.9-10.2-14.5c-4.6-5.7-12.7-6.7-19-3l-2.9 1.7c-9.2 5.3-20.4 4-29.6-1.3s-16.1-14.5-16.1-25.1l0-3.4c0-7.3-4.9-13.8-12.1-14.9c-6.5-1-13.1-1.5-19.9-1.5s-13.4 .5-19.9 1.5c-7.2 1.1-12.1 7.6-12.1 14.9l0 3.4c0 10.6-6.9 19.8-16.1 25.1s-20.4 6.6-29.6 1.3l-2.9-1.7c-6.3-3.6-14.4-2.6-19 3c-3.7 4.6-7.1 9.5-10.2 14.6l-2.3 3.9c-2.8 5.1-5.3 10.4-7.4 15.9c-2.6 6.8 .5 14.3 6.8 17.9l2.9 1.7c9.2 5.3 13.7 15.8 13.7 26.4s-4.5 21.1-13.7 26.4l-3 1.7c-6.3 3.6-9.5 11.1-6.8 17.9c2.1 5.5 4.6 10.7 7.4 15.8l2.4 4.1c3 5.1 6.4 9.9 10.1 14.5c4.6 5.7 12.7 6.7 19 3l2.9-1.7c9.2-5.3 20.4-4 29.6 1.3s16.1 14.5 16.1 25.1l0 3.4c0 7.3 4.9 13.8 12.1 14.9c6.5 1 13.1 1.5 19.9 1.5s13.4-.5 19.9-1.5c7.2-1.1 12.1-7.6 12.1-14.9l0-3.4c0-10.6 6.9-19.8 16.1-25.1s20.4-6.6 29.6-1.3l2.9 1.7c6.3 3.6 14.4 2.6 19-3c3.7-4.6 7.1-9.4 10.1-14.5l2.4-4.2c2.8-5.1 5.3-10.3 7.4-15.8c2.6-6.8-.5-14.3-6.8-17.9l-3-1.7c-9.2-5.3-13.7-15.8-13.7-26.4s4.5-21.1 13.7-26.4l3-1.7zM472 384a40 40 0 1 1 80 0 40 40 0 1 1 -80 0z"], - "person-military-pointing": [576, 512, [], "e54a", "M246.9 14.1C234 15.2 224 26 224 39c0 13.8 11.2 25 25 25l151 0c8.8 0 16-7.2 16-16l0-30.6C416 8 408 .7 398.7 1.4L246.9 14.1zM240 112c0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16L241.6 96c-1 5.2-1.6 10.5-1.6 16zM72 224c-22.1 0-40 17.9-40 40s17.9 40 40 40l152 0 0 89.4L386.8 230.5c-13.3-4.3-27.3-6.5-41.6-6.5L240 224 72 224zm345.7 20.9L246.6 416 416 416l0-46.3 53.6 90.6c11.2 19 35.8 25.3 54.8 14.1s25.3-35.8 14.1-54.8L462.3 290.8c-11.2-18.9-26.6-34.5-44.6-45.9zM224 448l0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32-192 0z"], - "building-columns": [512, 512, ["bank", "institution", "museum", "university"], "f19c", "M243.4 2.6l-224 96c-14 6-21.8 21-18.7 35.8S16.8 160 32 160l0 8c0 13.3 10.7 24 24 24l400 0c13.3 0 24-10.7 24-24l0-8c15.2 0 28.3-10.7 31.3-25.6s-4.8-29.9-18.7-35.8l-224-96c-8-3.4-17.2-3.4-25.2 0zM128 224l-64 0 0 196.3c-.6 .3-1.2 .7-1.8 1.1l-48 32c-11.7 7.8-17 22.4-12.9 35.9S17.9 512 32 512l448 0c14.1 0 26.5-9.2 30.6-22.7s-1.1-28.1-12.9-35.9l-48-32c-.6-.4-1.2-.7-1.8-1.1L448 224l-64 0 0 192-40 0 0-192-64 0 0 192-48 0 0-192-64 0 0 192-40 0 0-192zM256 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"], - "umbrella": [576, 512, [], "f0e9", "M288 0c17.7 0 32 14.3 32 32l0 17.7C451.8 63.4 557.7 161 573.9 285.9c2 15.6-17.3 24.4-27.8 12.7C532.1 283 504.8 272 480 272c-38.7 0-71 27.5-78.4 64.1c-1.7 8.7-8.7 15.9-17.6 15.9s-15.8-7.2-17.6-15.9C359 299.5 326.7 272 288 272s-71 27.5-78.4 64.1c-1.7 8.7-8.7 15.9-17.6 15.9s-15.8-7.2-17.6-15.9C167 299.5 134.7 272 96 272c-24.8 0-52.1 11-66.1 26.7C19.4 310.4 .1 301.5 2.1 285.9C18.3 161 124.2 63.4 256 49.7L256 32c0-17.7 14.3-32 32-32zm0 304c12.3 0 23.5 4.6 32 12.2l0 114.3c0 45-36.5 81.4-81.4 81.4c-30.8 0-59-17.4-72.8-45l-2.3-4.7c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l2.3 4.7c3 5.9 9 9.6 15.6 9.6c9.6 0 17.4-7.8 17.4-17.4l0-114.3c8.5-7.6 19.7-12.2 32-12.2z"], - "trowel": [512, 512, [], "e589", "M343.9 213.4L245.3 312l65.4 65.4c7.9 7.9 11.1 19.4 8.4 30.3s-10.8 19.6-21.5 22.9l-256 80c-11.4 3.5-23.8 .5-32.2-7.9S-2.1 481.8 1.5 470.5l80-256c3.3-10.7 12-18.9 22.9-21.5s22.4 .5 30.3 8.4L200 266.7l98.6-98.6c-14.3-14.6-14.2-38 .3-52.5l95.4-95.4c26.9-26.9 70.5-26.9 97.5 0s26.9 70.5 0 97.5l-95.4 95.4c-14.5 14.5-37.9 14.6-52.5 .3z"], - "d": [384, 512, [100], "44", "M0 96C0 60.7 28.7 32 64 32l96 0c123.7 0 224 100.3 224 224s-100.3 224-224 224l-96 0c-35.3 0-64-28.7-64-64L0 96zm160 0L64 96l0 320 96 0c88.4 0 160-71.6 160-160s-71.6-160-160-160z"], - "stapler": [640, 512, [], "e5af", "M640 299.3l0 4.7 0 128c0 26.5-21.5 48-48 48l-80 0-64 0L64 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0 0-48L96 368c-17.7 0-32-14.3-32-32l0-116.6L33.8 214C14.2 210.5 0 193.5 0 173.7c0-8.9 2.9-17.5 8.2-24.6l35.6-47.5C76.7 57.8 128.2 32 182.9 32c27 0 53.6 6.3 77.8 18.4L586.9 213.5C619.5 229.7 640 263 640 299.3zM448 304l0-16L128 230.9l0 73.1 320 0z"], - "masks-theater": [640, 512, [127917, "theater-masks"], "f630", "M74.6 373.2c41.7 36.1 108 82.5 166.1 73.7c6.1-.9 12.1-2.5 18-4.5c-9.2-12.3-17.3-24.4-24.2-35.4c-21.9-35-28.8-75.2-25.9-113.6c-20.6 4.1-39.2 13-54.7 25.4c-6.5 5.2-16.3 1.3-14.8-7c6.4-33.5 33-60.9 68.2-66.3c2.6-.4 5.3-.7 7.9-.8l19.4-131.3c2-13.8 8-32.7 25-45.9C278.2 53.2 310.5 37 363.2 32.2c-.8-.7-1.6-1.4-2.4-2.1C340.6 14.5 288.4-11.5 175.7 5.6S20.5 63 5.7 83.9C0 91.9-.8 102 .6 111.8L24.8 276.1c5.5 37.3 21.5 72.6 49.8 97.2zm87.7-219.6c4.4-3.1 10.8-2 11.8 3.3c.1 .5 .2 1.1 .3 1.6c3.2 21.8-11.6 42-33.1 45.3s-41.5-11.8-44.7-33.5c-.1-.5-.1-1.1-.2-1.6c-.6-5.4 5.2-8.4 10.3-6.7c9 3 18.8 3.9 28.7 2.4s19.1-5.3 26.8-10.8zM261.6 390c29.4 46.9 79.5 110.9 137.6 119.7s124.5-37.5 166.1-73.7c28.3-24.5 44.3-59.8 49.8-97.2l24.2-164.3c1.4-9.8 .6-19.9-5.1-27.9c-14.8-20.9-57.3-61.2-170-78.3S299.4 77.2 279.2 92.8c-7.8 6-11.5 15.4-12.9 25.2L242.1 282.3c-5.5 37.3-.4 75.8 19.6 107.7zM404.5 235.3c-7.7-5.5-16.8-9.3-26.8-10.8s-19.8-.6-28.7 2.4c-5.1 1.7-10.9-1.3-10.3-6.7c.1-.5 .1-1.1 .2-1.6c3.2-21.8 23.2-36.8 44.7-33.5s36.3 23.5 33.1 45.3c-.1 .5-.2 1.1-.3 1.6c-1 5.3-7.4 6.4-11.8 3.3zm136.2 15.5c-1 5.3-7.4 6.4-11.8 3.3c-7.7-5.5-16.8-9.3-26.8-10.8s-19.8-.6-28.7 2.4c-5.1 1.7-10.9-1.3-10.3-6.7c.1-.5 .1-1.1 .2-1.6c3.2-21.8 23.2-36.8 44.7-33.5s36.3 23.5 33.1 45.3c-.1 .5-.2 1.1-.3 1.6zM530 350.2c-19.6 44.7-66.8 72.5-116.8 64.9s-87.1-48.2-93-96.7c-1-8.3 8.9-12.1 15.2-6.7c23.9 20.8 53.6 35.3 87 40.3s66.1 .1 94.9-12.8c7.6-3.4 16 3.2 12.6 10.9z"], - "kip-sign": [384, 512, [], "e1c4", "M340.8 88.3c13.4-11.5 15-31.7 3.5-45.1s-31.7-15-45.1-3.5L128 186.4 128 64c0-17.7-14.3-32-32-32S64 46.3 64 64l0 160-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-122.4L299.2 472.3c13.4 11.5 33.6 9.9 45.1-3.5s9.9-33.6-3.5-45.1L182.5 288 352 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-169.5 0L340.8 88.3z"], - "hand-point-left": [512, 512, [], "f0a5", "M32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l208 0 0-64L32 96zM192 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0zm-64-64c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-48 0c-17.7 0-32 14.3-32 32zm96 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0zm88-96l-.6 0c5.4 9.4 8.6 20.3 8.6 32c0 13.2-4 25.4-10.8 35.6c24.9 8.7 42.8 32.5 42.8 60.4c0 11.7-3.1 22.6-8.6 32l8.6 0c88.4 0 160-71.6 160-160l0-61.7c0-42.4-16.9-83.1-46.9-113.1l-11.6-11.6C429.5 77.5 396.9 64 363 64l-27 0c-35.3 0-64 28.7-64 64l0 88c0 22.1 17.9 40 40 40s40-17.9 40-40l0-56c0-8.8 7.2-16 16-16s16 7.2 16 16l0 56c0 39.8-32.2 72-72 72z"], - "handshake-simple": [640, 512, [129309, "handshake-alt"], "f4c6", "M323.4 85.2l-96.8 78.4c-16.1 13-19.2 36.4-7 53.1c12.9 17.8 38 21.3 55.3 7.8l99.3-77.2c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L550.2 352l41.8 0c26.5 0 48-21.5 48-48l0-128c0-26.5-21.5-48-48-48l-76 0-4 0-.7 0-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2zm22.8 124.4l-51.7 40.2C263 274.4 217.3 268 193.7 235.6c-22.2-30.5-16.6-73.1 12.7-96.8l83.2-67.3c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-72 48-80 0c-26.5 0-48 21.5-48 48L0 304c0 26.5 21.5 48 48 48l108.2 0 91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c4.5-4.9 7.8-10.6 9.9-16.5c19.4 13 45.8 10.3 62.1-7.5c17.9-19.5 16.6-49.9-2.9-67.8l-134.2-123z"], - "jet-fighter": [640, 512, ["fighter-jet"], "f0fb", "M160 24c0-13.3 10.7-24 24-24L296 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0L384 192l116.4 0c7.7 0 15.3 1.4 22.5 4.1L625 234.4c9 3.4 15 12 15 21.6s-6 18.2-15 21.6L522.9 315.9c-7.2 2.7-14.8 4.1-22.5 4.1L384 320 280 464l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-112 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-144-32 0-54.6 54.6c-6 6-14.1 9.4-22.6 9.4L64 384c-17.7 0-32-14.3-32-32l0-64c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-64c0-17.7 14.3-32 32-32l18.7 0c8.5 0 16.6 3.4 22.6 9.4L160 192l32 0 0-144-8 0c-13.3 0-24-10.7-24-24zM80 240c-8.8 0-16 7.2-16 16s7.2 16 16 16l64 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-64 0z"], - "square-share-nodes": [448, 512, ["share-alt-square"], "f1e1", "M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM384 160c0 35.3-28.7 64-64 64c-15.4 0-29.5-5.4-40.6-14.5L194.1 256l85.3 46.5c11-9.1 25.2-14.5 40.6-14.5c35.3 0 64 28.7 64 64s-28.7 64-64 64s-64-28.7-64-64c0-2.5 .1-4.9 .4-7.3L174.5 300c-11.7 12.3-28.2 20-46.5 20c-35.3 0-64-28.7-64-64s28.7-64 64-64c18.3 0 34.8 7.7 46.5 20l81.9-44.7c-.3-2.4-.4-4.9-.4-7.3c0-35.3 28.7-64 64-64s64 28.7 64 64z"], - "barcode": [512, 512, [], "f02a", "M24 32C10.7 32 0 42.7 0 56L0 456c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24L64 56c0-13.3-10.7-24-24-24L24 32zm88 0c-8.8 0-16 7.2-16 16l0 416c0 8.8 7.2 16 16 16s16-7.2 16-16l0-416c0-8.8-7.2-16-16-16zm72 0c-13.3 0-24 10.7-24 24l0 400c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-400c0-13.3-10.7-24-24-24l-16 0zm96 0c-13.3 0-24 10.7-24 24l0 400c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-400c0-13.3-10.7-24-24-24l-16 0zM448 56l0 400c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-400c0-13.3-10.7-24-24-24l-16 0c-13.3 0-24 10.7-24 24zm-64-8l0 416c0 8.8 7.2 16 16 16s16-7.2 16-16l0-416c0-8.8-7.2-16-16-16s-16 7.2-16 16z"], - "plus-minus": [384, 512, [], "e43c", "M224 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112L48 144c-17.7 0-32 14.3-32 32s14.3 32 32 32l112 0 0 112c0 17.7 14.3 32 32 32s32-14.3 32-32l0-112 112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-112 0 0-112zM0 480c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 448c-17.7 0-32 14.3-32 32z"], - "video": [576, 512, ["video-camera"], "f03d", "M0 128C0 92.7 28.7 64 64 64l256 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zM559.1 99.8c10.4 5.6 16.9 16.4 16.9 28.2l0 256c0 11.8-6.5 22.6-16.9 28.2s-23 5-32.9-1.6l-96-64L416 337.1l0-17.1 0-128 0-17.1 14.2-9.5 96-64c9.8-6.5 22.4-7.2 32.9-1.6z"], - "graduation-cap": [640, 512, [127891, "mortar-board"], "f19d", "M320 32c-8.1 0-16.1 1.4-23.7 4.1L15.8 137.4C6.3 140.9 0 149.9 0 160s6.3 19.1 15.8 22.6l57.9 20.9C57.3 229.3 48 259.8 48 291.9l0 28.1c0 28.4-10.8 57.7-22.3 80.8c-6.5 13-13.9 25.8-22.5 37.6C0 442.7-.9 448.3 .9 453.4s6 8.9 11.2 10.2l64 16c4.2 1.1 8.7 .3 12.4-2s6.3-6.1 7.1-10.4c8.6-42.8 4.3-81.2-2.1-108.7C90.3 344.3 86 329.8 80 316.5l0-24.6c0-30.2 10.2-58.7 27.9-81.5c12.9-15.5 29.6-28 49.2-35.7l157-61.7c8.2-3.2 17.5 .8 20.7 9s-.8 17.5-9 20.7l-157 61.7c-12.4 4.9-23.3 12.4-32.2 21.6l159.6 57.6c7.6 2.7 15.6 4.1 23.7 4.1s16.1-1.4 23.7-4.1L624.2 182.6c9.5-3.4 15.8-12.5 15.8-22.6s-6.3-19.1-15.8-22.6L343.7 36.1C336.1 33.4 328.1 32 320 32zM128 408c0 35.3 86 72 192 72s192-36.7 192-72L496.7 262.6 354.5 314c-11.1 4-22.8 6-34.5 6s-23.5-2-34.5-6L143.3 262.6 128 408z"], - "hand-holding-medical": [576, 512, [], "e05c", "M224 24l0 56-56 0c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l56 0 0 56c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-56 56 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-56 0 0-56c0-13.3-10.7-24-24-24L248 0c-13.3 0-24 10.7-24 24zM559.7 392.2c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416 272 416c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0-16 0-78.3 0c-29.1 0-57.3 9.9-80 28L68.8 384 32 384c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l160 0 160.5 0c29 0 57.3-9.3 80.7-26.5l126.6-93.3zm-367-8.2l.9 0c0 0 0 0 0 0c-.3 0-.6 0-.9 0z"], - "person-circle-check": [576, 512, [], "e53e", "M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zm136 16a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L416 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z"], - "turn-up": [384, 512, [10548, "level-up-alt"], "f3bf", "M350 177.5c3.8-8.8 2-19-4.6-26l-136-144C204.9 2.7 198.6 0 192 0s-12.9 2.7-17.4 7.5l-136 144c-6.6 7-8.4 17.2-4.6 26s12.5 14.5 22 14.5l88 0 0 192c0 17.7-14.3 32-32 32l-80 0c-17.7 0-32 14.3-32 32l0 32c0 17.7 14.3 32 32 32l80 0c70.7 0 128-57.3 128-128l0-192 88 0c9.6 0 18.2-5.7 22-14.5z"] - }; - - bunker(() => { - defineIcons('fas', icons); - defineIcons('fa-solid', icons); - }); - -}()); -(function () { - 'use strict'; - - function _defineProperty(e, r, t) { - return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { - value: t, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[r] = t, e; - } - function _inherits(t, e) { - if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); - t.prototype = Object.create(e && e.prototype, { - constructor: { - value: t, - writable: !0, - configurable: !0 - } - }), Object.defineProperty(t, "prototype", { - writable: !1 - }), e && _setPrototypeOf(t, e); - } - function ownKeys(e, r) { - var t = Object.keys(e); - if (Object.getOwnPropertySymbols) { - var o = Object.getOwnPropertySymbols(e); - r && (o = o.filter(function (r) { - return Object.getOwnPropertyDescriptor(e, r).enumerable; - })), t.push.apply(t, o); - } - return t; - } - function _objectSpread2(e) { - for (var r = 1; r < arguments.length; r++) { - var t = null != arguments[r] ? arguments[r] : {}; - r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { - _defineProperty(e, r, t[r]); - }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { - Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); - }); - } - return e; - } - function _setPrototypeOf(t, e) { - return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { - return t.__proto__ = e, t; - }, _setPrototypeOf(t, e); - } - function _toPrimitive(t, r) { - if ("object" != typeof t || !t) return t; - var e = t[Symbol.toPrimitive]; - if (void 0 !== e) { - var i = e.call(t, r || "default"); - if ("object" != typeof i) return i; - throw new TypeError("@@toPrimitive must return a primitive value."); - } - return ("string" === r ? String : Number)(t); - } - function _toPropertyKey(t) { - var i = _toPrimitive(t, "string"); - return "symbol" == typeof i ? i : i + ""; - } - function _wrapRegExp() { - _wrapRegExp = function (e, r) { - return new BabelRegExp(e, void 0, r); - }; - var e = RegExp.prototype, - r = new WeakMap(); - function BabelRegExp(e, t, p) { - var o = RegExp(e, t); - return r.set(o, p || r.get(e)), _setPrototypeOf(o, BabelRegExp.prototype); - } - function buildGroups(e, t) { - var p = r.get(t); - return Object.keys(p).reduce(function (r, t) { - var o = p[t]; - if ("number" == typeof o) r[t] = e[o];else { - for (var i = 0; void 0 === e[o[i]] && i + 1 < o.length;) i++; - r[t] = e[o[i]]; - } - return r; - }, Object.create(null)); - } - return _inherits(BabelRegExp, RegExp), BabelRegExp.prototype.exec = function (r) { - var t = e.exec.call(this, r); - if (t) { - t.groups = buildGroups(t, this); - var p = t.indices; - p && (p.groups = buildGroups(p, this)); - } - return t; - }, BabelRegExp.prototype[Symbol.replace] = function (t, p) { - if ("string" == typeof p) { - var o = r.get(this); - return e[Symbol.replace].call(this, t, p.replace(/\$<([^>]+)>/g, function (e, r) { - var t = o[r]; - return "$" + (Array.isArray(t) ? t.join("$") : t); - })); - } - if ("function" == typeof p) { - var i = this; - return e[Symbol.replace].call(this, t, function () { - var e = arguments; - return "object" != typeof e[e.length - 1] && (e = [].slice.call(e)).push(buildGroups(e, i)), p.apply(this, e); - }); - } - return e[Symbol.replace].call(this, t, p); - }, _wrapRegExp.apply(this, arguments); - } - - const noop = () => {}; - let _WINDOW = {}; - let _DOCUMENT = {}; - let _MUTATION_OBSERVER = null; - let _PERFORMANCE = { - mark: noop, - measure: noop - }; - try { - if (typeof window !== 'undefined') _WINDOW = window; - if (typeof document !== 'undefined') _DOCUMENT = document; - if (typeof MutationObserver !== 'undefined') _MUTATION_OBSERVER = MutationObserver; - if (typeof performance !== 'undefined') _PERFORMANCE = performance; - } catch (e) {} - const { - userAgent = '' - } = _WINDOW.navigator || {}; - const WINDOW = _WINDOW; - const DOCUMENT = _DOCUMENT; - const MUTATION_OBSERVER = _MUTATION_OBSERVER; - const PERFORMANCE = _PERFORMANCE; - const IS_BROWSER = !!WINDOW.document; - const IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function'; - const IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/'); - - var p = /fa(s|r|l|t|d|dr|dl|dt|b|k|kd|ss|sr|sl|st|sds|sdr|sdl|sdt)?[\-\ ]/, - g = /Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp Duotone|Sharp|Kit)?.*/i; - var S = { - classic: { - fa: "solid", - fas: "solid", - "fa-solid": "solid", - far: "regular", - "fa-regular": "regular", - fal: "light", - "fa-light": "light", - fat: "thin", - "fa-thin": "thin", - fab: "brands", - "fa-brands": "brands" - }, - duotone: { - fa: "solid", - fad: "solid", - "fa-solid": "solid", - "fa-duotone": "solid", - fadr: "regular", - "fa-regular": "regular", - fadl: "light", - "fa-light": "light", - fadt: "thin", - "fa-thin": "thin" - }, - sharp: { - fa: "solid", - fass: "solid", - "fa-solid": "solid", - fasr: "regular", - "fa-regular": "regular", - fasl: "light", - "fa-light": "light", - fast: "thin", - "fa-thin": "thin" - }, - "sharp-duotone": { - fa: "solid", - fasds: "solid", - "fa-solid": "solid", - fasdr: "regular", - "fa-regular": "regular", - fasdl: "light", - "fa-light": "light", - fasdt: "thin", - "fa-thin": "thin" - } - }, - A = { - GROUP: "duotone-group", - SWAP_OPACITY: "swap-opacity", - PRIMARY: "primary", - SECONDARY: "secondary" - }, - P = ["fa-classic", "fa-duotone", "fa-sharp", "fa-sharp-duotone"]; - var s = "classic", - t = "duotone", - r = "sharp", - o = "sharp-duotone", - L = [s, t, r, o]; - var G = { - classic: { - 900: "fas", - 400: "far", - normal: "far", - 300: "fal", - 100: "fat" - }, - duotone: { - 900: "fad", - 400: "fadr", - 300: "fadl", - 100: "fadt" - }, - sharp: { - 900: "fass", - 400: "fasr", - 300: "fasl", - 100: "fast" - }, - "sharp-duotone": { - 900: "fasds", - 400: "fasdr", - 300: "fasdl", - 100: "fasdt" - } - }; - var lt = { - "Font Awesome 6 Free": { - 900: "fas", - 400: "far" - }, - "Font Awesome 6 Pro": { - 900: "fas", - 400: "far", - normal: "far", - 300: "fal", - 100: "fat" - }, - "Font Awesome 6 Brands": { - 400: "fab", - normal: "fab" - }, - "Font Awesome 6 Duotone": { - 900: "fad", - 400: "fadr", - normal: "fadr", - 300: "fadl", - 100: "fadt" - }, - "Font Awesome 6 Sharp": { - 900: "fass", - 400: "fasr", - normal: "fasr", - 300: "fasl", - 100: "fast" - }, - "Font Awesome 6 Sharp Duotone": { - 900: "fasds", - 400: "fasdr", - normal: "fasdr", - 300: "fasdl", - 100: "fasdt" - } - }; - var pt = new Map([["classic", { - defaultShortPrefixId: "fas", - defaultStyleId: "solid", - styleIds: ["solid", "regular", "light", "thin", "brands"], - futureStyleIds: [], - defaultFontWeight: 900 - }], ["sharp", { - defaultShortPrefixId: "fass", - defaultStyleId: "solid", - styleIds: ["solid", "regular", "light", "thin"], - futureStyleIds: [], - defaultFontWeight: 900 - }], ["duotone", { - defaultShortPrefixId: "fad", - defaultStyleId: "solid", - styleIds: ["solid", "regular", "light", "thin"], - futureStyleIds: [], - defaultFontWeight: 900 - }], ["sharp-duotone", { - defaultShortPrefixId: "fasds", - defaultStyleId: "solid", - styleIds: ["solid", "regular", "light", "thin"], - futureStyleIds: [], - defaultFontWeight: 900 - }]]), - xt = { - classic: { - solid: "fas", - regular: "far", - light: "fal", - thin: "fat", - brands: "fab" - }, - duotone: { - solid: "fad", - regular: "fadr", - light: "fadl", - thin: "fadt" - }, - sharp: { - solid: "fass", - regular: "fasr", - light: "fasl", - thin: "fast" - }, - "sharp-duotone": { - solid: "fasds", - regular: "fasdr", - light: "fasdl", - thin: "fasdt" - } - }; - var Ft = ["fak", "fa-kit", "fakd", "fa-kit-duotone"], - St = { - kit: { - fak: "kit", - "fa-kit": "kit" - }, - "kit-duotone": { - fakd: "kit-duotone", - "fa-kit-duotone": "kit-duotone" - } - }, - At = ["kit"]; - var Ct = { - kit: { - "fa-kit": "fak" - }, - "kit-duotone": { - "fa-kit-duotone": "fakd" - } - }; - var Lt = ["fak", "fakd"], - Wt = { - kit: { - fak: "fa-kit" - }, - "kit-duotone": { - fakd: "fa-kit-duotone" - } - }; - var Et = { - kit: { - kit: "fak" - }, - "kit-duotone": { - "kit-duotone": "fakd" - } - }; - - var t$1 = { - GROUP: "duotone-group", - SWAP_OPACITY: "swap-opacity", - PRIMARY: "primary", - SECONDARY: "secondary" - }, - r$1 = ["fa-classic", "fa-duotone", "fa-sharp", "fa-sharp-duotone"]; - var bt$1 = ["fak", "fa-kit", "fakd", "fa-kit-duotone"]; - var Yt = { - "Font Awesome Kit": { - 400: "fak", - normal: "fak" - }, - "Font Awesome Kit Duotone": { - 400: "fakd", - normal: "fakd" - } - }; - var ua = { - classic: { - "fa-brands": "fab", - "fa-duotone": "fad", - "fa-light": "fal", - "fa-regular": "far", - "fa-solid": "fas", - "fa-thin": "fat" - }, - duotone: { - "fa-regular": "fadr", - "fa-light": "fadl", - "fa-thin": "fadt" - }, - sharp: { - "fa-solid": "fass", - "fa-regular": "fasr", - "fa-light": "fasl", - "fa-thin": "fast" - }, - "sharp-duotone": { - "fa-solid": "fasds", - "fa-regular": "fasdr", - "fa-light": "fasdl", - "fa-thin": "fasdt" - } - }, - I$1 = { - classic: ["fas", "far", "fal", "fat", "fad"], - duotone: ["fadr", "fadl", "fadt"], - sharp: ["fass", "fasr", "fasl", "fast"], - "sharp-duotone": ["fasds", "fasdr", "fasdl", "fasdt"] - }, - ga = { - classic: { - fab: "fa-brands", - fad: "fa-duotone", - fal: "fa-light", - far: "fa-regular", - fas: "fa-solid", - fat: "fa-thin" - }, - duotone: { - fadr: "fa-regular", - fadl: "fa-light", - fadt: "fa-thin" - }, - sharp: { - fass: "fa-solid", - fasr: "fa-regular", - fasl: "fa-light", - fast: "fa-thin" - }, - "sharp-duotone": { - fasds: "fa-solid", - fasdr: "fa-regular", - fasdl: "fa-light", - fasdt: "fa-thin" - } - }, - x = ["fa-solid", "fa-regular", "fa-light", "fa-thin", "fa-duotone", "fa-brands"], - Ia = ["fa", "fas", "far", "fal", "fat", "fad", "fadr", "fadl", "fadt", "fab", "fass", "fasr", "fasl", "fast", "fasds", "fasdr", "fasdl", "fasdt", ...r$1, ...x], - m$1 = ["solid", "regular", "light", "thin", "duotone", "brands"], - c$1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], - F$1 = c$1.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]), - ma = [...Object.keys(I$1), ...m$1, "2xs", "xs", "sm", "lg", "xl", "2xl", "beat", "border", "fade", "beat-fade", "bounce", "flip-both", "flip-horizontal", "flip-vertical", "flip", "fw", "inverse", "layers-counter", "layers-text", "layers", "li", "pull-left", "pull-right", "pulse", "rotate-180", "rotate-270", "rotate-90", "rotate-by", "shake", "spin-pulse", "spin-reverse", "spin", "stack-1x", "stack-2x", "stack", "ul", t$1.GROUP, t$1.SWAP_OPACITY, t$1.PRIMARY, t$1.SECONDARY].concat(c$1.map(a => "".concat(a, "x"))).concat(F$1.map(a => "w-".concat(a))); - var wa = { - "Font Awesome 5 Free": { - 900: "fas", - 400: "far" - }, - "Font Awesome 5 Pro": { - 900: "fas", - 400: "far", - normal: "far", - 300: "fal" - }, - "Font Awesome 5 Brands": { - 400: "fab", - normal: "fab" - }, - "Font Awesome 5 Duotone": { - 900: "fad" - } - }; - - const NAMESPACE_IDENTIFIER = '___FONT_AWESOME___'; - const UNITS_IN_GRID = 16; - const DEFAULT_CSS_PREFIX = 'fa'; - const DEFAULT_REPLACEMENT_CLASS = 'svg-inline--fa'; - const DATA_FA_I2SVG = 'data-fa-i2svg'; - const DATA_FA_PSEUDO_ELEMENT = 'data-fa-pseudo-element'; - const DATA_FA_PSEUDO_ELEMENT_PENDING = 'data-fa-pseudo-element-pending'; - const DATA_PREFIX = 'data-prefix'; - const DATA_ICON = 'data-icon'; - const HTML_CLASS_I2SVG_BASE_CLASS = 'fontawesome-i2svg'; - const MUTATION_APPROACH_ASYNC = 'async'; - const TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS = ['HTML', 'HEAD', 'STYLE', 'SCRIPT']; - const PRODUCTION = (() => { - try { - return "production" === 'production'; - } catch (e$$1) { - return false; - } - })(); - function familyProxy(obj) { - // Defaults to the classic family if family is not available - return new Proxy(obj, { - get(target, prop) { - return prop in target ? target[prop] : target[s]; - } - }); - } - const _PREFIX_TO_STYLE = _objectSpread2({}, S); - - // We changed FACSSClassesToStyleId in the icons repo to be canonical and as such, "classic" family does not have any - // duotone styles. But we do still need duotone in _PREFIX_TO_STYLE below, so we are manually adding - // {'fa-duotone': 'duotone'} - _PREFIX_TO_STYLE[s] = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, { - 'fa-duotone': 'duotone' - }), S[s]), St['kit']), St['kit-duotone']); - const PREFIX_TO_STYLE = familyProxy(_PREFIX_TO_STYLE); - const _STYLE_TO_PREFIX = _objectSpread2({}, xt); - - // We changed FAStyleIdToShortPrefixId in the icons repo to be canonical and as such, "classic" family does not have any - // duotone styles. But we do still need duotone in _STYLE_TO_PREFIX below, so we are manually adding {duotone: 'fad'} - _STYLE_TO_PREFIX[s] = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, { - duotone: 'fad' - }), _STYLE_TO_PREFIX[s]), Et['kit']), Et['kit-duotone']); - const STYLE_TO_PREFIX = familyProxy(_STYLE_TO_PREFIX); - const _PREFIX_TO_LONG_STYLE = _objectSpread2({}, ga); - _PREFIX_TO_LONG_STYLE[s] = _objectSpread2(_objectSpread2({}, _PREFIX_TO_LONG_STYLE[s]), Wt['kit']); - const PREFIX_TO_LONG_STYLE = familyProxy(_PREFIX_TO_LONG_STYLE); - const _LONG_STYLE_TO_PREFIX = _objectSpread2({}, ua); - _LONG_STYLE_TO_PREFIX[s] = _objectSpread2(_objectSpread2({}, _LONG_STYLE_TO_PREFIX[s]), Ct['kit']); - const LONG_STYLE_TO_PREFIX = familyProxy(_LONG_STYLE_TO_PREFIX); - const ICON_SELECTION_SYNTAX_PATTERN = p; // eslint-disable-line no-useless-escape - - const LAYERS_TEXT_CLASSNAME = 'fa-layers-text'; - const FONT_FAMILY_PATTERN = g; - const _FONT_WEIGHT_TO_PREFIX = _objectSpread2({}, G); - const FONT_WEIGHT_TO_PREFIX = familyProxy(_FONT_WEIGHT_TO_PREFIX); - const ATTRIBUTES_WATCHED_FOR_MUTATION = ['class', 'data-prefix', 'data-icon', 'data-fa-transform', 'data-fa-mask']; - const DUOTONE_CLASSES = A; - const RESERVED_CLASSES = [...At, ...ma]; - - const initial = WINDOW.FontAwesomeConfig || {}; - function getAttrConfig(attr) { - var element = DOCUMENT.querySelector('script[' + attr + ']'); - if (element) { - return element.getAttribute(attr); - } - } - function coerce(val) { - // Getting an empty string will occur if the attribute is set on the HTML tag but without a value - // We'll assume that this is an indication that it should be toggled to true - if (val === '') return true; - if (val === 'false') return false; - if (val === 'true') return true; - return val; - } - if (DOCUMENT && typeof DOCUMENT.querySelector === 'function') { - const attrs = [['data-family-prefix', 'familyPrefix'], ['data-css-prefix', 'cssPrefix'], ['data-family-default', 'familyDefault'], ['data-style-default', 'styleDefault'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-auto-a11y', 'autoA11y'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']]; - attrs.forEach(_ref => { - let [attr, key] = _ref; - const val = coerce(getAttrConfig(attr)); - if (val !== undefined && val !== null) { - initial[key] = val; - } - }); - } - const _default = { - styleDefault: 'solid', - familyDefault: s, - cssPrefix: DEFAULT_CSS_PREFIX, - replacementClass: DEFAULT_REPLACEMENT_CLASS, - autoReplaceSvg: true, - autoAddCss: true, - autoA11y: true, - searchPseudoElements: false, - observeMutations: true, - mutateApproach: 'async', - keepOriginalSource: true, - measurePerformance: false, - showMissingIcons: true - }; - - // familyPrefix is deprecated but we must still support it if present - if (initial.familyPrefix) { - initial.cssPrefix = initial.familyPrefix; - } - const _config = _objectSpread2(_objectSpread2({}, _default), initial); - if (!_config.autoReplaceSvg) _config.observeMutations = false; - const config = {}; - Object.keys(_default).forEach(key => { - Object.defineProperty(config, key, { - enumerable: true, - set: function (val) { - _config[key] = val; - _onChangeCb.forEach(cb => cb(config)); - }, - get: function () { - return _config[key]; - } - }); - }); - - // familyPrefix is deprecated as of 6.2.0 and should be removed in 7.0.0 - Object.defineProperty(config, 'familyPrefix', { - enumerable: true, - set: function (val) { - _config.cssPrefix = val; - _onChangeCb.forEach(cb => cb(config)); - }, - get: function () { - return _config.cssPrefix; - } - }); - WINDOW.FontAwesomeConfig = config; - const _onChangeCb = []; - function onChange(cb) { - _onChangeCb.push(cb); - return () => { - _onChangeCb.splice(_onChangeCb.indexOf(cb), 1); - }; - } - - const d$2 = UNITS_IN_GRID; - const meaninglessTransform = { - size: 16, - x: 0, - y: 0, - rotate: 0, - flipX: false, - flipY: false - }; - function bunker(fn) { - try { - for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - fn(...args); - } catch (e) { - if (!PRODUCTION) { - throw e; - } - } - } - function insertCss(css) { - if (!css || !IS_DOM) { - return; - } - const style = DOCUMENT.createElement('style'); - style.setAttribute('type', 'text/css'); - style.innerHTML = css; - const headChildren = DOCUMENT.head.childNodes; - let beforeChild = null; - for (let i = headChildren.length - 1; i > -1; i--) { - const child = headChildren[i]; - const tagName = (child.tagName || '').toUpperCase(); - if (['STYLE', 'LINK'].indexOf(tagName) > -1) { - beforeChild = child; - } - } - DOCUMENT.head.insertBefore(style, beforeChild); - return css; - } - const idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; - function nextUniqueId() { - let size = 12; - let id = ''; - while (size-- > 0) { - id += idPool[Math.random() * 62 | 0]; - } - return id; - } - function toArray(obj) { - const array = []; - for (let i = (obj || []).length >>> 0; i--;) { - array[i] = obj[i]; - } - return array; - } - function classArray(node) { - if (node.classList) { - return toArray(node.classList); - } else { - return (node.getAttribute('class') || '').split(' ').filter(i => i); - } - } - function htmlEscape(str) { - return "".concat(str).replace(/&/g, '&').replace(/"/g, '"').replace(/'/g, ''').replace(//g, '>'); - } - function joinAttributes(attributes) { - return Object.keys(attributes || {}).reduce((acc, attributeName) => { - return acc + "".concat(attributeName, "=\"").concat(htmlEscape(attributes[attributeName]), "\" "); - }, '').trim(); - } - function joinStyles(styles) { - return Object.keys(styles || {}).reduce((acc, styleName) => { - return acc + "".concat(styleName, ": ").concat(styles[styleName].trim(), ";"); - }, ''); - } - function transformIsMeaningful(transform) { - return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY; - } - function transformForSvg(_ref) { - let { - transform, - containerWidth, - iconWidth - } = _ref; - const outer = { - transform: "translate(".concat(containerWidth / 2, " 256)") - }; - const innerTranslate = "translate(".concat(transform.x * 32, ", ").concat(transform.y * 32, ") "); - const innerScale = "scale(".concat(transform.size / 16 * (transform.flipX ? -1 : 1), ", ").concat(transform.size / 16 * (transform.flipY ? -1 : 1), ") "); - const innerRotate = "rotate(".concat(transform.rotate, " 0 0)"); - const inner = { - transform: "".concat(innerTranslate, " ").concat(innerScale, " ").concat(innerRotate) - }; - const path = { - transform: "translate(".concat(iconWidth / 2 * -1, " -256)") - }; - return { - outer, - inner, - path - }; - } - function transformForCss(_ref2) { - let { - transform, - width = UNITS_IN_GRID, - height = UNITS_IN_GRID, - startCentered = false - } = _ref2; - let val = ''; - if (startCentered && IS_IE) { - val += "translate(".concat(transform.x / d$2 - width / 2, "em, ").concat(transform.y / d$2 - height / 2, "em) "); - } else if (startCentered) { - val += "translate(calc(-50% + ".concat(transform.x / d$2, "em), calc(-50% + ").concat(transform.y / d$2, "em)) "); - } else { - val += "translate(".concat(transform.x / d$2, "em, ").concat(transform.y / d$2, "em) "); - } - val += "scale(".concat(transform.size / d$2 * (transform.flipX ? -1 : 1), ", ").concat(transform.size / d$2 * (transform.flipY ? -1 : 1), ") "); - val += "rotate(".concat(transform.rotate, "deg) "); - return val; - } - - var baseStyles = ":host,:root{--fa-font-solid:normal 900 1em/1 \"Font Awesome 6 Free\";--fa-font-regular:normal 400 1em/1 \"Font Awesome 6 Free\";--fa-font-light:normal 300 1em/1 \"Font Awesome 6 Pro\";--fa-font-thin:normal 100 1em/1 \"Font Awesome 6 Pro\";--fa-font-duotone:normal 900 1em/1 \"Font Awesome 6 Duotone\";--fa-font-duotone-regular:normal 400 1em/1 \"Font Awesome 6 Duotone\";--fa-font-duotone-light:normal 300 1em/1 \"Font Awesome 6 Duotone\";--fa-font-duotone-thin:normal 100 1em/1 \"Font Awesome 6 Duotone\";--fa-font-brands:normal 400 1em/1 \"Font Awesome 6 Brands\";--fa-font-sharp-solid:normal 900 1em/1 \"Font Awesome 6 Sharp\";--fa-font-sharp-regular:normal 400 1em/1 \"Font Awesome 6 Sharp\";--fa-font-sharp-light:normal 300 1em/1 \"Font Awesome 6 Sharp\";--fa-font-sharp-thin:normal 100 1em/1 \"Font Awesome 6 Sharp\";--fa-font-sharp-duotone-solid:normal 900 1em/1 \"Font Awesome 6 Sharp Duotone\";--fa-font-sharp-duotone-regular:normal 400 1em/1 \"Font Awesome 6 Sharp Duotone\";--fa-font-sharp-duotone-light:normal 300 1em/1 \"Font Awesome 6 Sharp Duotone\";--fa-font-sharp-duotone-thin:normal 100 1em/1 \"Font Awesome 6 Sharp Duotone\"}svg:not(:host).svg-inline--fa,svg:not(:root).svg-inline--fa{overflow:visible;box-sizing:content-box}.svg-inline--fa{display:var(--fa-display,inline-block);height:1em;overflow:visible;vertical-align:-.125em}.svg-inline--fa.fa-2xs{vertical-align:.1em}.svg-inline--fa.fa-xs{vertical-align:0}.svg-inline--fa.fa-sm{vertical-align:-.0714285705em}.svg-inline--fa.fa-lg{vertical-align:-.2em}.svg-inline--fa.fa-xl{vertical-align:-.25em}.svg-inline--fa.fa-2xl{vertical-align:-.3125em}.svg-inline--fa.fa-pull-left{margin-right:var(--fa-pull-margin,.3em);width:auto}.svg-inline--fa.fa-pull-right{margin-left:var(--fa-pull-margin,.3em);width:auto}.svg-inline--fa.fa-li{width:var(--fa-li-width,2em);top:.25em}.svg-inline--fa.fa-fw{width:var(--fa-fw-width,1.25em)}.fa-layers svg.svg-inline--fa{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:1em}.fa-layers svg.svg-inline--fa{transform-origin:center center}.fa-layers-text{left:50%;top:50%;transform:translate(-50%,-50%);transform-origin:center center}.fa-layers-counter{background-color:var(--fa-counter-background-color,#ff253a);border-radius:var(--fa-counter-border-radius,1em);box-sizing:border-box;color:var(--fa-inverse,#fff);line-height:var(--fa-counter-line-height,1);max-width:var(--fa-counter-max-width,5em);min-width:var(--fa-counter-min-width,1.5em);overflow:hidden;padding:var(--fa-counter-padding,.25em .5em);right:var(--fa-right,0);text-overflow:ellipsis;top:var(--fa-top,0);transform:scale(var(--fa-counter-scale,.25));transform-origin:top right}.fa-layers-bottom-right{bottom:var(--fa-bottom,0);right:var(--fa-right,0);top:auto;transform:scale(var(--fa-layers-scale,.25));transform-origin:bottom right}.fa-layers-bottom-left{bottom:var(--fa-bottom,0);left:var(--fa-left,0);right:auto;top:auto;transform:scale(var(--fa-layers-scale,.25));transform-origin:bottom left}.fa-layers-top-right{top:var(--fa-top,0);right:var(--fa-right,0);transform:scale(var(--fa-layers-scale,.25));transform-origin:top right}.fa-layers-top-left{left:var(--fa-left,0);right:auto;top:var(--fa-top,0);transform:scale(var(--fa-layers-scale,.25));transform-origin:top left}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.0833333337em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.0714285718em;vertical-align:.0535714295em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.0416666682em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(-1 * var(--fa-li-width,2em));position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-color:var(--fa-border-color,#eee);border-radius:var(--fa-border-radius,.1em);border-style:var(--fa-border-style,solid);border-width:var(--fa-border-width,.08em);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{animation-name:fa-beat;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{animation-name:fa-bounce;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{animation-name:fa-fade;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade{animation-name:fa-beat-fade;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{animation-name:fa-flip;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{animation-name:fa-shake;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin{animation-name:fa-spin;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,2s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{animation-name:fa-spin;animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{animation-delay:-1ms;animation-duration:1ms;animation-iteration-count:1;transition-delay:0s;transition-duration:0s}}@keyframes fa-beat{0%,90%{transform:scale(1)}45%{transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-bounce{0%{transform:scale(1,1) translateY(0)}10%{transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{transform:scale(1,1) translateY(var(--fa-bounce-rebound,-.125em))}64%{transform:scale(1,1) translateY(0)}100%{transform:scale(1,1) translateY(0)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-beat-fade{0%,100%{opacity:var(--fa-beat-fade-opacity,.4);transform:scale(1)}50%{opacity:1;transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-flip{50%{transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-shake{0%{transform:rotate(-15deg)}4%{transform:rotate(15deg)}24%,8%{transform:rotate(-18deg)}12%,28%{transform:rotate(18deg)}16%{transform:rotate(-22deg)}20%{transform:rotate(22deg)}32%{transform:rotate(-12deg)}36%{transform:rotate(12deg)}100%,40%{transform:rotate(0)}}@keyframes fa-spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.fa-rotate-90{transform:rotate(90deg)}.fa-rotate-180{transform:rotate(180deg)}.fa-rotate-270{transform:rotate(270deg)}.fa-flip-horizontal{transform:scale(-1,1)}.fa-flip-vertical{transform:scale(1,-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1,-1)}.fa-rotate-by{transform:rotate(var(--fa-rotate-angle,0))}.fa-stack{display:inline-block;vertical-align:middle;height:2em;position:relative;width:2.5em}.fa-stack-1x,.fa-stack-2x{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0;z-index:var(--fa-stack-z-index,auto)}.svg-inline--fa.fa-stack-1x{height:1em;width:1.25em}.svg-inline--fa.fa-stack-2x{height:2em;width:2.5em}.fa-inverse{color:var(--fa-inverse,#fff)}.fa-sr-only,.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.fa-sr-only-focusable:not(:focus),.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.svg-inline--fa .fa-primary{fill:var(--fa-primary-color,currentColor);opacity:var(--fa-primary-opacity,1)}.svg-inline--fa .fa-secondary{fill:var(--fa-secondary-color,currentColor);opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-primary{opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-secondary{opacity:var(--fa-primary-opacity,1)}.svg-inline--fa mask .fa-primary,.svg-inline--fa mask .fa-secondary{fill:#000}"; - - function css() { - const dcp = DEFAULT_CSS_PREFIX; - const drc = DEFAULT_REPLACEMENT_CLASS; - const fp = config.cssPrefix; - const rc = config.replacementClass; - let s = baseStyles; - if (fp !== dcp || rc !== drc) { - const dPatt = new RegExp("\\.".concat(dcp, "\\-"), 'g'); - const customPropPatt = new RegExp("\\--".concat(dcp, "\\-"), 'g'); - const rPatt = new RegExp("\\.".concat(drc), 'g'); - s = s.replace(dPatt, ".".concat(fp, "-")).replace(customPropPatt, "--".concat(fp, "-")).replace(rPatt, ".".concat(rc)); - } - return s; - } - let _cssInserted = false; - function ensureCss() { - if (config.autoAddCss && !_cssInserted) { - insertCss(css()); - _cssInserted = true; - } - } - var InjectCSS = { - mixout() { - return { - dom: { - css, - insertCss: ensureCss - } - }; - }, - hooks() { - return { - beforeDOMElementCreation() { - ensureCss(); - }, - beforeI2svg() { - ensureCss(); - } - }; - } - }; - - const w = WINDOW || {}; - if (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {}; - if (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {}; - if (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {}; - if (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = []; - var namespace = w[NAMESPACE_IDENTIFIER]; - - const functions = []; - const listener = function () { - DOCUMENT.removeEventListener('DOMContentLoaded', listener); - loaded = 1; - functions.map(fn => fn()); - }; - let loaded = false; - if (IS_DOM) { - loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState); - if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener); - } - function domready (fn) { - if (!IS_DOM) return; - loaded ? setTimeout(fn, 0) : functions.push(fn); - } - - function toHtml(abstractNodes) { - const { - tag, - attributes = {}, - children = [] - } = abstractNodes; - if (typeof abstractNodes === 'string') { - return htmlEscape(abstractNodes); - } else { - return "<".concat(tag, " ").concat(joinAttributes(attributes), ">").concat(children.map(toHtml).join(''), ""); - } - } - - function iconFromMapping(mapping, prefix, iconName) { - if (mapping && mapping[prefix] && mapping[prefix][iconName]) { - return { - prefix, - iconName, - icon: mapping[prefix][iconName] - }; - } - } - - /** - * Internal helper to bind a function known to have 4 arguments - * to a given context. - */ - var bindInternal4 = function bindInternal4(func, thisContext) { - return function (a, b, c, d) { - return func.call(thisContext, a, b, c, d); - }; - }; - - /** - * # Reduce - * - * A fast object `.reduce()` implementation. - * - * @param {Object} subject The object to reduce over. - * @param {Function} fn The reducer function. - * @param {mixed} initialValue The initial value for the reducer, defaults to subject[0]. - * @param {Object} thisContext The context for the reducer. - * @return {mixed} The final result. - */ - var reduce = function fastReduceObject(subject, fn, initialValue, thisContext) { - var keys = Object.keys(subject), - length = keys.length, - iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn, - i, - key, - result; - if (initialValue === undefined) { - i = 1; - result = subject[keys[0]]; - } else { - i = 0; - result = initialValue; - } - for (; i < length; i++) { - key = keys[i]; - result = iterator(result, subject[key], key, subject); - } - return result; - }; - - /** - * ucs2decode() and codePointAt() are both works of Mathias Bynens and licensed under MIT - * - * Copyright Mathias Bynens - - * 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. - */ - - function ucs2decode(string) { - const output = []; - let counter = 0; - const length = string.length; - while (counter < length) { - const value = string.charCodeAt(counter++); - if (value >= 0xD800 && value <= 0xDBFF && counter < length) { - const extra = string.charCodeAt(counter++); - if ((extra & 0xFC00) == 0xDC00) { - // eslint-disable-line eqeqeq - output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000); - } else { - output.push(value); - counter--; - } - } else { - output.push(value); - } - } - return output; - } - function toHex(unicode) { - const decoded = ucs2decode(unicode); - return decoded.length === 1 ? decoded[0].toString(16) : null; - } - function codePointAt(string, index) { - const size = string.length; - let first = string.charCodeAt(index); - let second; - if (first >= 0xD800 && first <= 0xDBFF && size > index + 1) { - second = string.charCodeAt(index + 1); - if (second >= 0xDC00 && second <= 0xDFFF) { - return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000; - } - } - return first; - } - - function normalizeIcons(icons) { - return Object.keys(icons).reduce((acc, iconName) => { - const icon = icons[iconName]; - const expanded = !!icon.icon; - if (expanded) { - acc[icon.iconName] = icon.icon; - } else { - acc[iconName] = icon; - } - return acc; - }, {}); - } - function defineIcons(prefix, icons) { - let params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; - const { - skipHooks = false - } = params; - const normalized = normalizeIcons(icons); - if (typeof namespace.hooks.addPack === 'function' && !skipHooks) { - namespace.hooks.addPack(prefix, normalizeIcons(icons)); - } else { - namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), normalized); - } - - /** - * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction - * of new styles we needed to differentiate between them. Prefix `fa` is now an alias - * for `fas` so we'll ease the upgrade process for our users by automatically defining - * this as well. - */ - if (prefix === 'fas') { - defineIcons('fa', icons); - } - } - - const duotonePathRe = [/*#__PURE__*/_wrapRegExp(/path d="([^"]+)".*path d="([^"]+)"/, { - d1: 1, - d2: 2 - }), /*#__PURE__*/_wrapRegExp(/path class="([^"]+)".*d="([^"]+)".*path class="([^"]+)".*d="([^"]+)"/, { - cls1: 1, - d1: 2, - cls2: 3, - d2: 4 - }), /*#__PURE__*/_wrapRegExp(/path class="([^"]+)".*d="([^"]+)"/, { - cls1: 1, - d1: 2 - })]; - - const { - styles, - shims - } = namespace; - const FAMILY_NAMES = Object.keys(PREFIX_TO_LONG_STYLE); - const PREFIXES_FOR_FAMILY = FAMILY_NAMES.reduce((acc, familyId) => { - acc[familyId] = Object.keys(PREFIX_TO_LONG_STYLE[familyId]); - return acc; - }, {}); - let _defaultUsablePrefix = null; - let _byUnicode = {}; - let _byLigature = {}; - let _byOldName = {}; - let _byOldUnicode = {}; - let _byAlias = {}; - function isReserved(name) { - return ~RESERVED_CLASSES.indexOf(name); - } - function getIconName(cssPrefix, cls) { - const parts = cls.split('-'); - const prefix = parts[0]; - const iconName = parts.slice(1).join('-'); - if (prefix === cssPrefix && iconName !== '' && !isReserved(iconName)) { - return iconName; - } else { - return null; - } - } - const build = () => { - const lookup = reducer => { - return reduce(styles, (o$$1, style, prefix) => { - o$$1[prefix] = reduce(style, reducer, {}); - return o$$1; - }, {}); - }; - _byUnicode = lookup((acc, icon, iconName) => { - if (icon[3]) { - acc[icon[3]] = iconName; - } - if (icon[2]) { - const aliases = icon[2].filter(a$$1 => { - return typeof a$$1 === 'number'; - }); - aliases.forEach(alias => { - acc[alias.toString(16)] = iconName; - }); - } - return acc; - }); - _byLigature = lookup((acc, icon, iconName) => { - acc[iconName] = iconName; - if (icon[2]) { - const aliases = icon[2].filter(a$$1 => { - return typeof a$$1 === 'string'; - }); - aliases.forEach(alias => { - acc[alias] = iconName; - }); - } - return acc; - }); - _byAlias = lookup((acc, icon, iconName) => { - const aliases = icon[2]; - acc[iconName] = iconName; - aliases.forEach(alias => { - acc[alias] = iconName; - }); - return acc; - }); - - // If we have a Kit, we can't determine if regular is available since we - // could be auto-fetching it. We'll have to assume that it is available. - const hasRegular = 'far' in styles || config.autoFetchSvg; - const shimLookups = reduce(shims, (acc, shim) => { - const maybeNameMaybeUnicode = shim[0]; - let prefix = shim[1]; - const iconName = shim[2]; - if (prefix === 'far' && !hasRegular) { - prefix = 'fas'; - } - if (typeof maybeNameMaybeUnicode === 'string') { - acc.names[maybeNameMaybeUnicode] = { - prefix, - iconName - }; - } - if (typeof maybeNameMaybeUnicode === 'number') { - acc.unicodes[maybeNameMaybeUnicode.toString(16)] = { - prefix, - iconName - }; - } - return acc; - }, { - names: {}, - unicodes: {} - }); - _byOldName = shimLookups.names; - _byOldUnicode = shimLookups.unicodes; - _defaultUsablePrefix = getCanonicalPrefix(config.styleDefault, { - family: config.familyDefault - }); - }; - onChange(c$$1 => { - _defaultUsablePrefix = getCanonicalPrefix(c$$1.styleDefault, { - family: config.familyDefault - }); - }); - build(); - function byUnicode(prefix, unicode) { - return (_byUnicode[prefix] || {})[unicode]; - } - function byLigature(prefix, ligature) { - return (_byLigature[prefix] || {})[ligature]; - } - function byAlias(prefix, alias) { - return (_byAlias[prefix] || {})[alias]; - } - function byOldName(name) { - return _byOldName[name] || { - prefix: null, - iconName: null - }; - } - function byOldUnicode(unicode) { - const oldUnicode = _byOldUnicode[unicode]; - const newUnicode = byUnicode('fas', unicode); - return oldUnicode || (newUnicode ? { - prefix: 'fas', - iconName: newUnicode - } : null) || { - prefix: null, - iconName: null - }; - } - function getDefaultUsablePrefix() { - return _defaultUsablePrefix; - } - const emptyCanonicalIcon = () => { - return { - prefix: null, - iconName: null, - rest: [] - }; - }; - function getFamilyId(values) { - let family = s; - const famProps = FAMILY_NAMES.reduce((acc, familyId) => { - acc[familyId] = "".concat(config.cssPrefix, "-").concat(familyId); - return acc; - }, {}); - L.forEach(familyId => { - if (values.includes(famProps[familyId]) || values.some(v$$1 => PREFIXES_FOR_FAMILY[familyId].includes(v$$1))) { - family = familyId; - } - }); - return family; - } - function getCanonicalPrefix(styleOrPrefix) { - let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - const { - family = s - } = params; - const style = PREFIX_TO_STYLE[family][styleOrPrefix]; - - // handles the exception of passing in only a family of 'duotone' with no style - if (family === t && !styleOrPrefix) { - return 'fad'; - } - const prefix = STYLE_TO_PREFIX[family][styleOrPrefix] || STYLE_TO_PREFIX[family][style]; - const defined = styleOrPrefix in namespace.styles ? styleOrPrefix : null; - const result = prefix || defined || null; - return result; - } - function moveNonFaClassesToRest(classNames) { - let rest = []; - let iconName = null; - classNames.forEach(cls => { - const result = getIconName(config.cssPrefix, cls); - if (result) { - iconName = result; - } else if (cls) { - rest.push(cls); - } - }); - return { - iconName, - rest - }; - } - function sortedUniqueValues(arr) { - return arr.sort().filter((value, index, arr) => { - return arr.indexOf(value) === index; - }); - } - function getCanonicalIcon(values) { - let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - const { - skipLookups = false - } = params; - let givenPrefix = null; - const faCombinedClasses = Ia.concat(bt$1); - const faStyleOrFamilyClasses = sortedUniqueValues(values.filter(cls => faCombinedClasses.includes(cls))); - const nonStyleOrFamilyClasses = sortedUniqueValues(values.filter(cls => !Ia.includes(cls))); - const faStyles = faStyleOrFamilyClasses.filter(cls => { - givenPrefix = cls; - return !P.includes(cls); - }); - const [styleFromValues = null] = faStyles; - const family = getFamilyId(faStyleOrFamilyClasses); - const canonical = _objectSpread2(_objectSpread2({}, moveNonFaClassesToRest(nonStyleOrFamilyClasses)), {}, { - prefix: getCanonicalPrefix(styleFromValues, { - family - }) - }); - return _objectSpread2(_objectSpread2(_objectSpread2({}, canonical), getDefaultCanonicalPrefix({ - values, - family, - styles, - config, - canonical, - givenPrefix - })), applyShimAndAlias(skipLookups, givenPrefix, canonical)); - } - function applyShimAndAlias(skipLookups, givenPrefix, canonical) { - let { - prefix, - iconName - } = canonical; - if (skipLookups || !prefix || !iconName) { - return { - prefix, - iconName - }; - } - const shim = givenPrefix === 'fa' ? byOldName(iconName) : {}; - const aliasIconName = byAlias(prefix, iconName); - iconName = shim.iconName || aliasIconName || iconName; - prefix = shim.prefix || prefix; - if (prefix === 'far' && !styles['far'] && styles['fas'] && !config.autoFetchSvg) { - // Allow a fallback from the regular style to solid if regular is not available - // but only if we aren't auto-fetching SVGs - prefix = 'fas'; - } - return { - prefix, - iconName - }; - } - const newCanonicalFamilies = L.filter(familyId => { - return familyId !== s || familyId !== t; - }); - const newCanonicalStyles = Object.keys(ga).filter(key => key !== s).map(key => Object.keys(ga[key])).flat(); - function getDefaultCanonicalPrefix(prefixOptions) { - const { - values, - family, - canonical, - givenPrefix = '', - styles = {}, - config: config$$1 = {} - } = prefixOptions; - const isDuotoneFamily = family === t; - const valuesHasDuotone = values.includes('fa-duotone') || values.includes('fad'); - const defaultFamilyIsDuotone = config$$1.familyDefault === 'duotone'; - const canonicalPrefixIsDuotone = canonical.prefix === 'fad' || canonical.prefix === 'fa-duotone'; - if (!isDuotoneFamily && (valuesHasDuotone || defaultFamilyIsDuotone || canonicalPrefixIsDuotone)) { - canonical.prefix = 'fad'; - } - if (values.includes('fa-brands') || values.includes('fab')) { - canonical.prefix = 'fab'; - } - if (!canonical.prefix && newCanonicalFamilies.includes(family)) { - const validPrefix = Object.keys(styles).find(key => newCanonicalStyles.includes(key)); - if (validPrefix || config$$1.autoFetchSvg) { - const defaultPrefix = pt.get(family).defaultShortPrefixId; - canonical.prefix = defaultPrefix; - canonical.iconName = byAlias(canonical.prefix, canonical.iconName) || canonical.iconName; - } - } - if (canonical.prefix === 'fa' || givenPrefix === 'fa') { - // The fa prefix is not canonical. So if it has made it through until this point - // we will shift it to the correct prefix. - canonical.prefix = getDefaultUsablePrefix() || 'fas'; - } - return canonical; - } - - class Library { - constructor() { - this.definitions = {}; - } - add() { - for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) { - definitions[_key] = arguments[_key]; - } - const additions = definitions.reduce(this._pullDefinitions, {}); - Object.keys(additions).forEach(key => { - this.definitions[key] = _objectSpread2(_objectSpread2({}, this.definitions[key] || {}), additions[key]); - defineIcons(key, additions[key]); - - // TODO can we stop doing this? We can't get the icons by 'fa-solid' any longer so this probably needs to change - const longPrefix = PREFIX_TO_LONG_STYLE[s][key]; - if (longPrefix) defineIcons(longPrefix, additions[key]); - build(); - }); - } - reset() { - this.definitions = {}; - } - _pullDefinitions(additions, definition) { - const normalized = definition.prefix && definition.iconName && definition.icon ? { - 0: definition - } : definition; - Object.keys(normalized).map(key => { - const { - prefix, - iconName, - icon - } = normalized[key]; - const aliases = icon[2]; - if (!additions[prefix]) additions[prefix] = {}; - if (aliases.length > 0) { - aliases.forEach(alias => { - if (typeof alias === 'string') { - additions[prefix][alias] = icon; - } - }); - } - additions[prefix][iconName] = icon; - }); - return additions; - } - } - - let _plugins = []; - let _hooks = {}; - const providers = {}; - const defaultProviderKeys = Object.keys(providers); - function registerPlugins(nextPlugins, _ref) { - let { - mixoutsTo: obj - } = _ref; - _plugins = nextPlugins; - _hooks = {}; - Object.keys(providers).forEach(k => { - if (defaultProviderKeys.indexOf(k) === -1) { - delete providers[k]; - } - }); - _plugins.forEach(plugin => { - const mixout = plugin.mixout ? plugin.mixout() : {}; - Object.keys(mixout).forEach(tk => { - if (typeof mixout[tk] === 'function') { - obj[tk] = mixout[tk]; - } - if (typeof mixout[tk] === 'object') { - Object.keys(mixout[tk]).forEach(sk => { - if (!obj[tk]) { - obj[tk] = {}; - } - obj[tk][sk] = mixout[tk][sk]; - }); - } - }); - if (plugin.hooks) { - const hooks = plugin.hooks(); - Object.keys(hooks).forEach(hook => { - if (!_hooks[hook]) { - _hooks[hook] = []; - } - _hooks[hook].push(hooks[hook]); - }); - } - if (plugin.provides) { - plugin.provides(providers); - } - }); - return obj; - } - function chainHooks(hook, accumulator) { - for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) { - args[_key - 2] = arguments[_key]; - } - const hookFns = _hooks[hook] || []; - hookFns.forEach(hookFn => { - accumulator = hookFn.apply(null, [accumulator, ...args]); // eslint-disable-line no-useless-call - }); - return accumulator; - } - function callHooks(hook) { - for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { - args[_key2 - 1] = arguments[_key2]; - } - const hookFns = _hooks[hook] || []; - hookFns.forEach(hookFn => { - hookFn.apply(null, args); - }); - return undefined; - } - function callProvided() { - const hook = arguments[0]; - const args = Array.prototype.slice.call(arguments, 1); - return providers[hook] ? providers[hook].apply(null, args) : undefined; - } - - function findIconDefinition(iconLookup) { - if (iconLookup.prefix === 'fa') { - iconLookup.prefix = 'fas'; - } - let { - iconName - } = iconLookup; - const prefix = iconLookup.prefix || getDefaultUsablePrefix(); - if (!iconName) return; - iconName = byAlias(prefix, iconName) || iconName; - return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName); - } - const library = new Library(); - const noAuto = () => { - config.autoReplaceSvg = false; - config.observeMutations = false; - callHooks('noAuto'); - }; - const dom = { - i2svg: function () { - let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - if (IS_DOM) { - callHooks('beforeI2svg', params); - callProvided('pseudoElements2svg', params); - return callProvided('i2svg', params); - } else { - return Promise.reject(new Error('Operation requires a DOM of some kind.')); - } - }, - watch: function () { - let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - const { - autoReplaceSvgRoot - } = params; - if (config.autoReplaceSvg === false) { - config.autoReplaceSvg = true; - } - config.observeMutations = true; - domready(() => { - autoReplace({ - autoReplaceSvgRoot - }); - callHooks('watch', params); - }); - } - }; - const parse = { - icon: icon => { - if (icon === null) { - return null; - } - if (typeof icon === 'object' && icon.prefix && icon.iconName) { - return { - prefix: icon.prefix, - iconName: byAlias(icon.prefix, icon.iconName) || icon.iconName - }; - } - if (Array.isArray(icon) && icon.length === 2) { - const iconName = icon[1].indexOf('fa-') === 0 ? icon[1].slice(3) : icon[1]; - const prefix = getCanonicalPrefix(icon[0]); - return { - prefix, - iconName: byAlias(prefix, iconName) || iconName - }; - } - if (typeof icon === 'string' && (icon.indexOf("".concat(config.cssPrefix, "-")) > -1 || icon.match(ICON_SELECTION_SYNTAX_PATTERN))) { - const canonicalIcon = getCanonicalIcon(icon.split(' '), { - skipLookups: true - }); - return { - prefix: canonicalIcon.prefix || getDefaultUsablePrefix(), - iconName: byAlias(canonicalIcon.prefix, canonicalIcon.iconName) || canonicalIcon.iconName - }; - } - if (typeof icon === 'string') { - const prefix = getDefaultUsablePrefix(); - return { - prefix, - iconName: byAlias(prefix, icon) || icon - }; - } - } - }; - const api = { - noAuto, - config, - dom, - parse, - library, - findIconDefinition, - toHtml - }; - const autoReplace = function () { - let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - const { - autoReplaceSvgRoot = DOCUMENT - } = params; - if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({ - node: autoReplaceSvgRoot - }); - }; - function bootstrap(plugins) { - if (IS_BROWSER) { - if (!WINDOW.FontAwesome) { - WINDOW.FontAwesome = api; - } - domready(() => { - autoReplace(); - callHooks('bootstrap'); - }); - } - namespace.hooks = _objectSpread2(_objectSpread2({}, namespace.hooks), {}, { - addPack: (prefix, icons) => { - namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), icons); - build(); - autoReplace(); - }, - addPacks: packs => { - packs.forEach(_ref => { - let [prefix, icons] = _ref; - namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), icons); - }); - build(); - autoReplace(); - }, - addShims: shims => { - namespace.shims.push(...shims); - build(); - autoReplace(); - } - }); - } - - function domVariants(val, abstractCreator) { - Object.defineProperty(val, 'abstract', { - get: abstractCreator - }); - Object.defineProperty(val, 'html', { - get: function () { - return val.abstract.map(a => toHtml(a)); - } - }); - Object.defineProperty(val, 'node', { - get: function () { - if (!IS_DOM) return; - const container = DOCUMENT.createElement('div'); - container.innerHTML = val.html; - return container.children; - } - }); - return val; - } - - function asIcon (_ref) { - let { - children, - main, - mask, - attributes, - styles, - transform - } = _ref; - if (transformIsMeaningful(transform) && main.found && !mask.found) { - const { - width, - height - } = main; - const offset = { - x: width / height / 2, - y: 0.5 - }; - attributes['style'] = joinStyles(_objectSpread2(_objectSpread2({}, styles), {}, { - 'transform-origin': "".concat(offset.x + transform.x / 16, "em ").concat(offset.y + transform.y / 16, "em") - })); - } - return [{ - tag: 'svg', - attributes, - children - }]; - } - - function asSymbol (_ref) { - let { - prefix, - iconName, - children, - attributes, - symbol - } = _ref; - const id = symbol === true ? "".concat(prefix, "-").concat(config.cssPrefix, "-").concat(iconName) : symbol; - return [{ - tag: 'svg', - attributes: { - style: 'display: none;' - }, - children: [{ - tag: 'symbol', - attributes: _objectSpread2(_objectSpread2({}, attributes), {}, { - id - }), - children - }] - }]; - } - - function makeInlineSvgAbstract(params) { - const { - icons: { - main, - mask - }, - prefix, - iconName, - transform, - symbol, - title, - maskId, - titleId, - extra, - watchable = false - } = params; - const { - width, - height - } = mask.found ? mask : main; - const isUploadedIcon = Lt.includes(prefix); - const attrClass = [config.replacementClass, iconName ? "".concat(config.cssPrefix, "-").concat(iconName) : ''].filter(c$$1 => extra.classes.indexOf(c$$1) === -1).filter(c$$1 => c$$1 !== '' || !!c$$1).concat(extra.classes).join(' '); - let content = { - children: [], - attributes: _objectSpread2(_objectSpread2({}, extra.attributes), {}, { - 'data-prefix': prefix, - 'data-icon': iconName, - 'class': attrClass, - 'role': extra.attributes.role || 'img', - 'xmlns': 'http://www.w3.org/2000/svg', - 'viewBox': "0 0 ".concat(width, " ").concat(height) - }) - }; - const uploadedIconWidthStyle = isUploadedIcon && !~extra.classes.indexOf('fa-fw') ? { - width: "".concat(width / height * 16 * 0.0625, "em") - } : {}; - if (watchable) { - content.attributes[DATA_FA_I2SVG] = ''; - } - if (title) { - content.children.push({ - tag: 'title', - attributes: { - id: content.attributes['aria-labelledby'] || "title-".concat(titleId || nextUniqueId()) - }, - children: [title] - }); - delete content.attributes.title; - } - const args = _objectSpread2(_objectSpread2({}, content), {}, { - prefix, - iconName, - main, - mask, - maskId, - transform, - symbol, - styles: _objectSpread2(_objectSpread2({}, uploadedIconWidthStyle), extra.styles) - }); - const { - children, - attributes - } = mask.found && main.found ? callProvided('generateAbstractMask', args) || { - children: [], - attributes: {} - } : callProvided('generateAbstractIcon', args) || { - children: [], - attributes: {} - }; - args.children = children; - args.attributes = attributes; - if (symbol) { - return asSymbol(args); - } else { - return asIcon(args); - } - } - function makeLayersTextAbstract(params) { - const { - content, - width, - height, - transform, - title, - extra, - watchable = false - } = params; - const attributes = _objectSpread2(_objectSpread2(_objectSpread2({}, extra.attributes), title ? { - 'title': title - } : {}), {}, { - 'class': extra.classes.join(' ') - }); - if (watchable) { - attributes[DATA_FA_I2SVG] = ''; - } - const styles = _objectSpread2({}, extra.styles); - if (transformIsMeaningful(transform)) { - styles['transform'] = transformForCss({ - transform, - startCentered: true, - width, - height - }); - styles['-webkit-transform'] = styles['transform']; - } - const styleString = joinStyles(styles); - if (styleString.length > 0) { - attributes['style'] = styleString; - } - const val = []; - val.push({ - tag: 'span', - attributes, - children: [content] - }); - if (title) { - val.push({ - tag: 'span', - attributes: { - class: 'sr-only' - }, - children: [title] - }); - } - return val; - } - function makeLayersCounterAbstract(params) { - const { - content, - title, - extra - } = params; - const attributes = _objectSpread2(_objectSpread2(_objectSpread2({}, extra.attributes), title ? { - 'title': title - } : {}), {}, { - 'class': extra.classes.join(' ') - }); - const styleString = joinStyles(extra.styles); - if (styleString.length > 0) { - attributes['style'] = styleString; - } - const val = []; - val.push({ - tag: 'span', - attributes, - children: [content] - }); - if (title) { - val.push({ - tag: 'span', - attributes: { - class: 'sr-only' - }, - children: [title] - }); - } - return val; - } - - const { - styles: styles$1 - } = namespace; - function asFoundIcon(icon) { - const width = icon[0]; - const height = icon[1]; - const [vectorData] = icon.slice(4); - let element = null; - if (Array.isArray(vectorData)) { - element = { - tag: 'g', - attributes: { - class: "".concat(config.cssPrefix, "-").concat(DUOTONE_CLASSES.GROUP) - }, - children: [{ - tag: 'path', - attributes: { - class: "".concat(config.cssPrefix, "-").concat(DUOTONE_CLASSES.SECONDARY), - fill: 'currentColor', - d: vectorData[0] - } - }, { - tag: 'path', - attributes: { - class: "".concat(config.cssPrefix, "-").concat(DUOTONE_CLASSES.PRIMARY), - fill: 'currentColor', - d: vectorData[1] - } - }] - }; - } else { - element = { - tag: 'path', - attributes: { - fill: 'currentColor', - d: vectorData - } - }; - } - return { - found: true, - width, - height, - icon: element - }; - } - const missingIconResolutionMixin = { - found: false, - width: 512, - height: 512 - }; - function maybeNotifyMissing(iconName, prefix) { - if (!PRODUCTION && !config.showMissingIcons && iconName) { - console.error("Icon with name \"".concat(iconName, "\" and prefix \"").concat(prefix, "\" is missing.")); - } - } - function findIcon(iconName, prefix) { - let givenPrefix = prefix; - if (prefix === 'fa' && config.styleDefault !== null) { - prefix = getDefaultUsablePrefix(); - } - return new Promise((resolve, reject) => { - if (givenPrefix === 'fa') { - const shim = byOldName(iconName) || {}; - iconName = shim.iconName || iconName; - prefix = shim.prefix || prefix; - } - if (iconName && prefix && styles$1[prefix] && styles$1[prefix][iconName]) { - const icon = styles$1[prefix][iconName]; - return resolve(asFoundIcon(icon)); - } - maybeNotifyMissing(iconName, prefix); - resolve(_objectSpread2(_objectSpread2({}, missingIconResolutionMixin), {}, { - icon: config.showMissingIcons && iconName ? callProvided('missingIconAbstract') || {} : {} - })); - }); - } - - const noop$1 = () => {}; - const p$2 = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : { - mark: noop$1, - measure: noop$1 - }; - const preamble = "FA \"6.7.2\""; - const begin = name => { - p$2.mark("".concat(preamble, " ").concat(name, " begins")); - return () => end(name); - }; - const end = name => { - p$2.mark("".concat(preamble, " ").concat(name, " ends")); - p$2.measure("".concat(preamble, " ").concat(name), "".concat(preamble, " ").concat(name, " begins"), "".concat(preamble, " ").concat(name, " ends")); - }; - var perf = { - begin, - end - }; - - const noop$2 = () => {}; - function isWatched(node) { - const i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null; - return typeof i2svg === 'string'; - } - function hasPrefixAndIcon(node) { - const prefix = node.getAttribute ? node.getAttribute(DATA_PREFIX) : null; - const icon = node.getAttribute ? node.getAttribute(DATA_ICON) : null; - return prefix && icon; - } - function hasBeenReplaced(node) { - return node && node.classList && node.classList.contains && node.classList.contains(config.replacementClass); - } - function getMutator() { - if (config.autoReplaceSvg === true) { - return mutators.replace; - } - const mutator = mutators[config.autoReplaceSvg]; - return mutator || mutators.replace; - } - function createElementNS(tag) { - return DOCUMENT.createElementNS('http://www.w3.org/2000/svg', tag); - } - function createElement(tag) { - return DOCUMENT.createElement(tag); - } - function convertSVG(abstractObj) { - let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - const { - ceFn = abstractObj.tag === 'svg' ? createElementNS : createElement - } = params; - if (typeof abstractObj === 'string') { - return DOCUMENT.createTextNode(abstractObj); - } - const tag = ceFn(abstractObj.tag); - Object.keys(abstractObj.attributes || []).forEach(function (key) { - tag.setAttribute(key, abstractObj.attributes[key]); - }); - const children = abstractObj.children || []; - children.forEach(function (child) { - tag.appendChild(convertSVG(child, { - ceFn - })); - }); - return tag; - } - function nodeAsComment(node) { - let comment = " ".concat(node.outerHTML, " "); - /* BEGIN.ATTRIBUTION */ - comment = "".concat(comment, "Font Awesome fontawesome.com "); - /* END.ATTRIBUTION */ - return comment; - } - const mutators = { - replace: function (mutation) { - const node = mutation[0]; - if (node.parentNode) { - mutation[1].forEach(abstract => { - node.parentNode.insertBefore(convertSVG(abstract), node); - }); - if (node.getAttribute(DATA_FA_I2SVG) === null && config.keepOriginalSource) { - let comment = DOCUMENT.createComment(nodeAsComment(node)); - node.parentNode.replaceChild(comment, node); - } else { - node.remove(); - } - } - }, - nest: function (mutation) { - const node = mutation[0]; - const abstract = mutation[1]; - - // If we already have a replaced node we do not want to continue nesting within it. - // Short-circuit to the standard replacement - if (~classArray(node).indexOf(config.replacementClass)) { - return mutators.replace(mutation); - } - const forSvg = new RegExp("".concat(config.cssPrefix, "-.*")); - delete abstract[0].attributes.id; - if (abstract[0].attributes.class) { - const splitClasses = abstract[0].attributes.class.split(' ').reduce((acc, cls) => { - if (cls === config.replacementClass || cls.match(forSvg)) { - acc.toSvg.push(cls); - } else { - acc.toNode.push(cls); - } - return acc; - }, { - toNode: [], - toSvg: [] - }); - abstract[0].attributes.class = splitClasses.toSvg.join(' '); - if (splitClasses.toNode.length === 0) { - node.removeAttribute('class'); - } else { - node.setAttribute('class', splitClasses.toNode.join(' ')); - } - } - const newInnerHTML = abstract.map(a => toHtml(a)).join('\n'); - node.setAttribute(DATA_FA_I2SVG, ''); - node.innerHTML = newInnerHTML; - } - }; - function performOperationSync(op) { - op(); - } - function perform(mutations, callback) { - const callbackFunction = typeof callback === 'function' ? callback : noop$2; - if (mutations.length === 0) { - callbackFunction(); - } else { - let frame = performOperationSync; - if (config.mutateApproach === MUTATION_APPROACH_ASYNC) { - frame = WINDOW.requestAnimationFrame || performOperationSync; - } - frame(() => { - const mutator = getMutator(); - const mark = perf.begin('mutate'); - mutations.map(mutator); - mark(); - callbackFunction(); - }); - } - } - let disabled = false; - function disableObservation() { - disabled = true; - } - function enableObservation() { - disabled = false; - } - let mo = null; - function observe(options) { - if (!MUTATION_OBSERVER) { - return; - } - if (!config.observeMutations) { - return; - } - const { - treeCallback = noop$2, - nodeCallback = noop$2, - pseudoElementsCallback = noop$2, - observeMutationsRoot = DOCUMENT - } = options; - mo = new MUTATION_OBSERVER(objects => { - if (disabled) return; - const defaultPrefix = getDefaultUsablePrefix(); - toArray(objects).forEach(mutationRecord => { - if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) { - if (config.searchPseudoElements) { - pseudoElementsCallback(mutationRecord.target); - } - treeCallback(mutationRecord.target); - } - if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) { - pseudoElementsCallback(mutationRecord.target.parentNode); - } - if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) { - if (mutationRecord.attributeName === 'class' && hasPrefixAndIcon(mutationRecord.target)) { - const { - prefix, - iconName - } = getCanonicalIcon(classArray(mutationRecord.target)); - mutationRecord.target.setAttribute(DATA_PREFIX, prefix || defaultPrefix); - if (iconName) mutationRecord.target.setAttribute(DATA_ICON, iconName); - } else if (hasBeenReplaced(mutationRecord.target)) { - nodeCallback(mutationRecord.target); - } - } - }); - }); - if (!IS_DOM) return; - mo.observe(observeMutationsRoot, { - childList: true, - attributes: true, - characterData: true, - subtree: true - }); - } - function disconnect() { - if (!mo) return; - mo.disconnect(); - } - - function styleParser (node) { - const style = node.getAttribute('style'); - let val = []; - if (style) { - val = style.split(';').reduce((acc, style) => { - const styles = style.split(':'); - const prop = styles[0]; - const value = styles.slice(1); - if (prop && value.length > 0) { - acc[prop] = value.join(':').trim(); - } - return acc; - }, {}); - } - return val; - } - - function classParser (node) { - const existingPrefix = node.getAttribute('data-prefix'); - const existingIconName = node.getAttribute('data-icon'); - const innerText = node.innerText !== undefined ? node.innerText.trim() : ''; - let val = getCanonicalIcon(classArray(node)); - if (!val.prefix) { - val.prefix = getDefaultUsablePrefix(); - } - if (existingPrefix && existingIconName) { - val.prefix = existingPrefix; - val.iconName = existingIconName; - } - if (val.iconName && val.prefix) { - return val; - } - if (val.prefix && innerText.length > 0) { - val.iconName = byLigature(val.prefix, node.innerText) || byUnicode(val.prefix, toHex(node.innerText)); - } - if (!val.iconName && config.autoFetchSvg && node.firstChild && node.firstChild.nodeType === Node.TEXT_NODE) { - val.iconName = node.firstChild.data; - } - return val; - } - - function attributesParser (node) { - const extraAttributes = toArray(node.attributes).reduce((acc, attr) => { - if (acc.name !== 'class' && acc.name !== 'style') { - acc[attr.name] = attr.value; - } - return acc; - }, {}); - const title = node.getAttribute('title'); - const titleId = node.getAttribute('data-fa-title-id'); - if (config.autoA11y) { - if (title) { - extraAttributes['aria-labelledby'] = "".concat(config.replacementClass, "-title-").concat(titleId || nextUniqueId()); - } else { - extraAttributes['aria-hidden'] = 'true'; - extraAttributes['focusable'] = 'false'; - } - } - return extraAttributes; - } - - function blankMeta() { - return { - iconName: null, - title: null, - titleId: null, - prefix: null, - transform: meaninglessTransform, - symbol: false, - mask: { - iconName: null, - prefix: null, - rest: [] - }, - maskId: null, - extra: { - classes: [], - styles: {}, - attributes: {} - } - }; - } - function parseMeta(node) { - let parser = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { - styleParser: true - }; - const { - iconName, - prefix, - rest: extraClasses - } = classParser(node); - const extraAttributes = attributesParser(node); - const pluginMeta = chainHooks('parseNodeAttributes', {}, node); - let extraStyles = parser.styleParser ? styleParser(node) : []; - return _objectSpread2({ - iconName, - title: node.getAttribute('title'), - titleId: node.getAttribute('data-fa-title-id'), - prefix, - transform: meaninglessTransform, - mask: { - iconName: null, - prefix: null, - rest: [] - }, - maskId: null, - symbol: false, - extra: { - classes: extraClasses, - styles: extraStyles, - attributes: extraAttributes - } - }, pluginMeta); - } - - const { - styles: styles$2 - } = namespace; - function generateMutation(node) { - const nodeMeta = config.autoReplaceSvg === 'nest' ? parseMeta(node, { - styleParser: false - }) : parseMeta(node); - if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) { - return callProvided('generateLayersText', node, nodeMeta); - } else { - return callProvided('generateSvgReplacementMutation', node, nodeMeta); - } - } - function getKnownPrefixes() { - return [...Ft, ...Ia]; - } - function onTree(root) { - let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; - if (!IS_DOM) return Promise.resolve(); - const htmlClassList = DOCUMENT.documentElement.classList; - const hclAdd = suffix => htmlClassList.add("".concat(HTML_CLASS_I2SVG_BASE_CLASS, "-").concat(suffix)); - const hclRemove = suffix => htmlClassList.remove("".concat(HTML_CLASS_I2SVG_BASE_CLASS, "-").concat(suffix)); - const prefixes = config.autoFetchSvg ? getKnownPrefixes() : P.concat(Object.keys(styles$2)); - if (!prefixes.includes('fa')) { - prefixes.push('fa'); - } - const prefixesDomQuery = [".".concat(LAYERS_TEXT_CLASSNAME, ":not([").concat(DATA_FA_I2SVG, "])")].concat(prefixes.map(p$$1 => ".".concat(p$$1, ":not([").concat(DATA_FA_I2SVG, "])"))).join(', '); - if (prefixesDomQuery.length === 0) { - return Promise.resolve(); - } - let candidates = []; - try { - candidates = toArray(root.querySelectorAll(prefixesDomQuery)); - } catch (e$$1) { - // noop - } - if (candidates.length > 0) { - hclAdd('pending'); - hclRemove('complete'); - } else { - return Promise.resolve(); - } - const mark = perf.begin('onTree'); - const mutations = candidates.reduce((acc, node) => { - try { - const mutation = generateMutation(node); - if (mutation) { - acc.push(mutation); - } - } catch (e$$1) { - if (!PRODUCTION) { - if (e$$1.name === 'MissingIcon') { - console.error(e$$1); - } - } - } - return acc; - }, []); - return new Promise((resolve, reject) => { - Promise.all(mutations).then(resolvedMutations => { - perform(resolvedMutations, () => { - hclAdd('active'); - hclAdd('complete'); - hclRemove('pending'); - if (typeof callback === 'function') callback(); - mark(); - resolve(); - }); - }).catch(e$$1 => { - mark(); - reject(e$$1); - }); - }); - } - function onNode(node) { - let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; - generateMutation(node).then(mutation => { - if (mutation) { - perform([mutation], callback); - } - }); - } - function resolveIcons(next) { - return function (maybeIconDefinition) { - let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - const iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {}); - let { - mask - } = params; - if (mask) { - mask = (mask || {}).icon ? mask : findIconDefinition(mask || {}); - } - return next(iconDefinition, _objectSpread2(_objectSpread2({}, params), {}, { - mask - })); - }; - } - const render = function (iconDefinition) { - let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - const { - transform = meaninglessTransform, - symbol = false, - mask = null, - maskId = null, - title = null, - titleId = null, - classes = [], - attributes = {}, - styles = {} - } = params; - if (!iconDefinition) return; - const { - prefix, - iconName, - icon - } = iconDefinition; - return domVariants(_objectSpread2({ - type: 'icon' - }, iconDefinition), () => { - callHooks('beforeDOMElementCreation', { - iconDefinition, - params - }); - if (config.autoA11y) { - if (title) { - attributes['aria-labelledby'] = "".concat(config.replacementClass, "-title-").concat(titleId || nextUniqueId()); - } else { - attributes['aria-hidden'] = 'true'; - attributes['focusable'] = 'false'; - } - } - return makeInlineSvgAbstract({ - icons: { - main: asFoundIcon(icon), - mask: mask ? asFoundIcon(mask.icon) : { - found: false, - width: null, - height: null, - icon: {} - } - }, - prefix, - iconName, - transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform), - symbol, - title, - maskId, - titleId, - extra: { - attributes, - styles, - classes - } - }); - }); - }; - var ReplaceElements = { - mixout() { - return { - icon: resolveIcons(render) - }; - }, - hooks() { - return { - mutationObserverCallbacks(accumulator) { - accumulator.treeCallback = onTree; - accumulator.nodeCallback = onNode; - return accumulator; - } - }; - }, - provides(providers$$1) { - providers$$1.i2svg = function (params) { - const { - node = DOCUMENT, - callback = () => {} - } = params; - return onTree(node, callback); - }; - providers$$1.generateSvgReplacementMutation = function (node, nodeMeta) { - const { - iconName, - title, - titleId, - prefix, - transform, - symbol, - mask, - maskId, - extra - } = nodeMeta; - return new Promise((resolve, reject) => { - Promise.all([findIcon(iconName, prefix), mask.iconName ? findIcon(mask.iconName, mask.prefix) : Promise.resolve({ - found: false, - width: 512, - height: 512, - icon: {} - })]).then(_ref => { - let [main, mask] = _ref; - resolve([node, makeInlineSvgAbstract({ - icons: { - main, - mask - }, - prefix, - iconName, - transform, - symbol, - maskId, - title, - titleId, - extra, - watchable: true - })]); - }).catch(reject); - }); - }; - providers$$1.generateAbstractIcon = function (_ref2) { - let { - children, - attributes, - main, - transform, - styles - } = _ref2; - const styleString = joinStyles(styles); - if (styleString.length > 0) { - attributes['style'] = styleString; - } - let nextChild; - if (transformIsMeaningful(transform)) { - nextChild = callProvided('generateAbstractTransformGrouping', { - main, - transform, - containerWidth: main.width, - iconWidth: main.width - }); - } - children.push(nextChild || main.icon); - return { - children, - attributes - }; - }; - } - }; - - var Layers = { - mixout() { - return { - layer(assembler) { - let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - const { - classes = [] - } = params; - return domVariants({ - type: 'layer' - }, () => { - callHooks('beforeDOMElementCreation', { - assembler, - params - }); - let children = []; - assembler(args => { - Array.isArray(args) ? args.map(a => { - children = children.concat(a.abstract); - }) : children = children.concat(args.abstract); - }); - return [{ - tag: 'span', - attributes: { - class: ["".concat(config.cssPrefix, "-layers"), ...classes].join(' ') - }, - children - }]; - }); - } - }; - } - }; - - var LayersCounter = { - mixout() { - return { - counter(content) { - let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - const { - title = null, - classes = [], - attributes = {}, - styles = {} - } = params; - return domVariants({ - type: 'counter', - content - }, () => { - callHooks('beforeDOMElementCreation', { - content, - params - }); - return makeLayersCounterAbstract({ - content: content.toString(), - title, - extra: { - attributes, - styles, - classes: ["".concat(config.cssPrefix, "-layers-counter"), ...classes] - } - }); - }); - } - }; - } - }; - - var LayersText = { - mixout() { - return { - text(content) { - let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - const { - transform = meaninglessTransform, - title = null, - classes = [], - attributes = {}, - styles = {} - } = params; - return domVariants({ - type: 'text', - content - }, () => { - callHooks('beforeDOMElementCreation', { - content, - params - }); - return makeLayersTextAbstract({ - content, - transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform), - title, - extra: { - attributes, - styles, - classes: ["".concat(config.cssPrefix, "-layers-text"), ...classes] - } - }); - }); - } - }; - }, - provides(providers$$1) { - providers$$1.generateLayersText = function (node, nodeMeta) { - const { - title, - transform, - extra - } = nodeMeta; - let width = null; - let height = null; - if (IS_IE) { - const computedFontSize = parseInt(getComputedStyle(node).fontSize, 10); - const boundingClientRect = node.getBoundingClientRect(); - width = boundingClientRect.width / computedFontSize; - height = boundingClientRect.height / computedFontSize; - } - if (config.autoA11y && !title) { - extra.attributes['aria-hidden'] = 'true'; - } - return Promise.resolve([node, makeLayersTextAbstract({ - content: node.innerHTML, - width, - height, - transform, - title, - extra, - watchable: true - })]); - }; - } - }; - - const CLEAN_CONTENT_PATTERN = new RegExp('\u{22}', 'ug'); - const SECONDARY_UNICODE_RANGE = [1105920, 1112319]; - const _FONT_FAMILY_WEIGHT_TO_PREFIX = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, { - FontAwesome: { - normal: 'fas', - 400: 'fas' - } - }), lt), wa), Yt); - const FONT_FAMILY_WEIGHT_TO_PREFIX = Object.keys(_FONT_FAMILY_WEIGHT_TO_PREFIX).reduce((acc, key) => { - acc[key.toLowerCase()] = _FONT_FAMILY_WEIGHT_TO_PREFIX[key]; - return acc; - }, {}); - const FONT_FAMILY_WEIGHT_FALLBACK = Object.keys(FONT_FAMILY_WEIGHT_TO_PREFIX).reduce((acc, fontFamily) => { - const weights = FONT_FAMILY_WEIGHT_TO_PREFIX[fontFamily]; - acc[fontFamily] = weights[900] || [...Object.entries(weights)][0][1]; - return acc; - }, {}); - function hexValueFromContent(content) { - const cleaned = content.replace(CLEAN_CONTENT_PATTERN, ''); - const codePoint = codePointAt(cleaned, 0); - const isPrependTen = codePoint >= SECONDARY_UNICODE_RANGE[0] && codePoint <= SECONDARY_UNICODE_RANGE[1]; - const isDoubled = cleaned.length === 2 ? cleaned[0] === cleaned[1] : false; - return { - value: isDoubled ? toHex(cleaned[0]) : toHex(cleaned), - isSecondary: isPrependTen || isDoubled - }; - } - function getPrefix(fontFamily, fontWeight) { - const fontFamilySanitized = fontFamily.replace(/^['"]|['"]$/g, '').toLowerCase(); - const fontWeightInteger = parseInt(fontWeight); - const fontWeightSanitized = isNaN(fontWeightInteger) ? 'normal' : fontWeightInteger; - return (FONT_FAMILY_WEIGHT_TO_PREFIX[fontFamilySanitized] || {})[fontWeightSanitized] || FONT_FAMILY_WEIGHT_FALLBACK[fontFamilySanitized]; - } - function replaceForPosition(node, position) { - const pendingAttribute = "".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-')); - return new Promise((resolve, reject) => { - if (node.getAttribute(pendingAttribute) !== null) { - // This node is already being processed - return resolve(); - } - const children = toArray(node.children); - const alreadyProcessedPseudoElement = children.filter(c$$1 => c$$1.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position)[0]; - const styles = WINDOW.getComputedStyle(node, position); - const fontFamily = styles.getPropertyValue('font-family'); - const fontFamilyMatch = fontFamily.match(FONT_FAMILY_PATTERN); - const fontWeight = styles.getPropertyValue('font-weight'); - const content = styles.getPropertyValue('content'); - if (alreadyProcessedPseudoElement && !fontFamilyMatch) { - // If we've already processed it but the current computed style does not result in a font-family, - // that probably means that a class name that was previously present to make the icon has been - // removed. So we now should delete the icon. - node.removeChild(alreadyProcessedPseudoElement); - return resolve(); - } else if (fontFamilyMatch && content !== 'none' && content !== '') { - const content = styles.getPropertyValue('content'); - let prefix = getPrefix(fontFamily, fontWeight); - const { - value: hexValue, - isSecondary - } = hexValueFromContent(content); - const isV4 = fontFamilyMatch[0].startsWith('FontAwesome'); - let iconName = byUnicode(prefix, hexValue); - let iconIdentifier = iconName; - if (isV4) { - const iconName4 = byOldUnicode(hexValue); - if (iconName4.iconName && iconName4.prefix) { - iconName = iconName4.iconName; - prefix = iconName4.prefix; - } - } - - // Only convert the pseudo element in this ::before/::after position into an icon if we haven't - // already done so with the same prefix and iconName - if (iconName && !isSecondary && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) { - node.setAttribute(pendingAttribute, iconIdentifier); - if (alreadyProcessedPseudoElement) { - // Delete the old one, since we're replacing it with a new one - node.removeChild(alreadyProcessedPseudoElement); - } - const meta = blankMeta(); - const { - extra - } = meta; - extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position; - findIcon(iconName, prefix).then(main => { - const abstract = makeInlineSvgAbstract(_objectSpread2(_objectSpread2({}, meta), {}, { - icons: { - main, - mask: emptyCanonicalIcon() - }, - prefix, - iconName: iconIdentifier, - extra, - watchable: true - })); - const element = DOCUMENT.createElementNS('http://www.w3.org/2000/svg', 'svg'); - if (position === '::before') { - node.insertBefore(element, node.firstChild); - } else { - node.appendChild(element); - } - element.outerHTML = abstract.map(a$$1 => toHtml(a$$1)).join('\n'); - node.removeAttribute(pendingAttribute); - resolve(); - }).catch(reject); - } else { - resolve(); - } - } else { - resolve(); - } - }); - } - function replace(node) { - return Promise.all([replaceForPosition(node, '::before'), replaceForPosition(node, '::after')]); - } - function processable(node) { - return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg'); - } - function searchPseudoElements(root) { - if (!IS_DOM) return; - return new Promise((resolve, reject) => { - const operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace); - const end = perf.begin('searchPseudoElements'); - disableObservation(); - Promise.all(operations).then(() => { - end(); - enableObservation(); - resolve(); - }).catch(() => { - end(); - enableObservation(); - reject(); - }); - }); - } - var PseudoElements = { - hooks() { - return { - mutationObserverCallbacks(accumulator) { - accumulator.pseudoElementsCallback = searchPseudoElements; - return accumulator; - } - }; - }, - provides(providers) { - providers.pseudoElements2svg = function (params) { - const { - node = DOCUMENT - } = params; - if (config.searchPseudoElements) { - searchPseudoElements(node); - } - }; - } - }; - - let _unwatched = false; - var MutationObserver$1 = { - mixout() { - return { - dom: { - unwatch() { - disableObservation(); - _unwatched = true; - } - } - }; - }, - hooks() { - return { - bootstrap() { - observe(chainHooks('mutationObserverCallbacks', {})); - }, - noAuto() { - disconnect(); - }, - watch(params) { - const { - observeMutationsRoot - } = params; - if (_unwatched) { - enableObservation(); - } else { - observe(chainHooks('mutationObserverCallbacks', { - observeMutationsRoot - })); - } - } - }; - } - }; - - const parseTransformString = transformString => { - let transform = { - size: 16, - x: 0, - y: 0, - flipX: false, - flipY: false, - rotate: 0 - }; - return transformString.toLowerCase().split(' ').reduce((acc, n) => { - const parts = n.toLowerCase().split('-'); - const first = parts[0]; - let rest = parts.slice(1).join('-'); - if (first && rest === 'h') { - acc.flipX = true; - return acc; - } - if (first && rest === 'v') { - acc.flipY = true; - return acc; - } - rest = parseFloat(rest); - if (isNaN(rest)) { - return acc; - } - switch (first) { - case 'grow': - acc.size = acc.size + rest; - break; - case 'shrink': - acc.size = acc.size - rest; - break; - case 'left': - acc.x = acc.x - rest; - break; - case 'right': - acc.x = acc.x + rest; - break; - case 'up': - acc.y = acc.y - rest; - break; - case 'down': - acc.y = acc.y + rest; - break; - case 'rotate': - acc.rotate = acc.rotate + rest; - break; - } - return acc; - }, transform); - }; - var PowerTransforms = { - mixout() { - return { - parse: { - transform: transformString => { - return parseTransformString(transformString); - } - } - }; - }, - hooks() { - return { - parseNodeAttributes(accumulator, node) { - const transformString = node.getAttribute('data-fa-transform'); - if (transformString) { - accumulator.transform = parseTransformString(transformString); - } - return accumulator; - } - }; - }, - provides(providers) { - providers.generateAbstractTransformGrouping = function (_ref) { - let { - main, - transform, - containerWidth, - iconWidth - } = _ref; - const outer = { - transform: "translate(".concat(containerWidth / 2, " 256)") - }; - const innerTranslate = "translate(".concat(transform.x * 32, ", ").concat(transform.y * 32, ") "); - const innerScale = "scale(".concat(transform.size / 16 * (transform.flipX ? -1 : 1), ", ").concat(transform.size / 16 * (transform.flipY ? -1 : 1), ") "); - const innerRotate = "rotate(".concat(transform.rotate, " 0 0)"); - const inner = { - transform: "".concat(innerTranslate, " ").concat(innerScale, " ").concat(innerRotate) - }; - const path = { - transform: "translate(".concat(iconWidth / 2 * -1, " -256)") - }; - const operations = { - outer, - inner, - path - }; - return { - tag: 'g', - attributes: _objectSpread2({}, operations.outer), - children: [{ - tag: 'g', - attributes: _objectSpread2({}, operations.inner), - children: [{ - tag: main.icon.tag, - children: main.icon.children, - attributes: _objectSpread2(_objectSpread2({}, main.icon.attributes), operations.path) - }] - }] - }; - }; - } - }; - - const ALL_SPACE = { - x: 0, - y: 0, - width: '100%', - height: '100%' - }; - function fillBlack(abstract) { - let force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; - if (abstract.attributes && (abstract.attributes.fill || force)) { - abstract.attributes.fill = 'black'; - } - return abstract; - } - function deGroup(abstract) { - if (abstract.tag === 'g') { - return abstract.children; - } else { - return [abstract]; - } - } - var Masks = { - hooks() { - return { - parseNodeAttributes(accumulator, node) { - const maskData = node.getAttribute('data-fa-mask'); - const mask = !maskData ? emptyCanonicalIcon() : getCanonicalIcon(maskData.split(' ').map(i => i.trim())); - if (!mask.prefix) { - mask.prefix = getDefaultUsablePrefix(); - } - accumulator.mask = mask; - accumulator.maskId = node.getAttribute('data-fa-mask-id'); - return accumulator; - } - }; - }, - provides(providers) { - providers.generateAbstractMask = function (_ref) { - let { - children, - attributes, - main, - mask, - maskId: explicitMaskId, - transform - } = _ref; - const { - width: mainWidth, - icon: mainPath - } = main; - const { - width: maskWidth, - icon: maskPath - } = mask; - const trans = transformForSvg({ - transform, - containerWidth: maskWidth, - iconWidth: mainWidth - }); - const maskRect = { - tag: 'rect', - attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, { - fill: 'white' - }) - }; - const maskInnerGroupChildrenMixin = mainPath.children ? { - children: mainPath.children.map(fillBlack) - } : {}; - const maskInnerGroup = { - tag: 'g', - attributes: _objectSpread2({}, trans.inner), - children: [fillBlack(_objectSpread2({ - tag: mainPath.tag, - attributes: _objectSpread2(_objectSpread2({}, mainPath.attributes), trans.path) - }, maskInnerGroupChildrenMixin))] - }; - const maskOuterGroup = { - tag: 'g', - attributes: _objectSpread2({}, trans.outer), - children: [maskInnerGroup] - }; - const maskId = "mask-".concat(explicitMaskId || nextUniqueId()); - const clipId = "clip-".concat(explicitMaskId || nextUniqueId()); - const maskTag = { - tag: 'mask', - attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, { - id: maskId, - maskUnits: 'userSpaceOnUse', - maskContentUnits: 'userSpaceOnUse' - }), - children: [maskRect, maskOuterGroup] - }; - const defs = { - tag: 'defs', - children: [{ - tag: 'clipPath', - attributes: { - id: clipId - }, - children: deGroup(maskPath) - }, maskTag] - }; - children.push(defs, { - tag: 'rect', - attributes: _objectSpread2({ - fill: 'currentColor', - 'clip-path': "url(#".concat(clipId, ")"), - mask: "url(#".concat(maskId, ")") - }, ALL_SPACE) - }); - return { - children, - attributes - }; - }; - } - }; - - var MissingIconIndicator = { - provides(providers) { - let reduceMotion = false; - if (WINDOW.matchMedia) { - reduceMotion = WINDOW.matchMedia('(prefers-reduced-motion: reduce)').matches; - } - providers.missingIconAbstract = function () { - const gChildren = []; - const FILL = { - fill: 'currentColor' - }; - const ANIMATION_BASE = { - attributeType: 'XML', - repeatCount: 'indefinite', - dur: '2s' - }; - - // Ring - gChildren.push({ - tag: 'path', - attributes: _objectSpread2(_objectSpread2({}, FILL), {}, { - d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z' - }) - }); - const OPACITY_ANIMATE = _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, { - attributeName: 'opacity' - }); - const dot = { - tag: 'circle', - attributes: _objectSpread2(_objectSpread2({}, FILL), {}, { - cx: '256', - cy: '364', - r: '28' - }), - children: [] - }; - if (!reduceMotion) { - dot.children.push({ - tag: 'animate', - attributes: _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, { - attributeName: 'r', - values: '28;14;28;28;14;28;' - }) - }, { - tag: 'animate', - attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, { - values: '1;0;1;1;0;1;' - }) - }); - } - gChildren.push(dot); - gChildren.push({ - tag: 'path', - attributes: _objectSpread2(_objectSpread2({}, FILL), {}, { - opacity: '1', - d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z' - }), - children: reduceMotion ? [] : [{ - tag: 'animate', - attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, { - values: '1;0;0;0;0;1;' - }) - }] - }); - if (!reduceMotion) { - // Exclamation - gChildren.push({ - tag: 'path', - attributes: _objectSpread2(_objectSpread2({}, FILL), {}, { - opacity: '0', - d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z' - }), - children: [{ - tag: 'animate', - attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, { - values: '0;0;1;1;0;0;' - }) - }] - }); - } - return { - tag: 'g', - attributes: { - 'class': 'missing' - }, - children: gChildren - }; - }; - } - }; - - var SvgSymbols = { - hooks() { - return { - parseNodeAttributes(accumulator, node) { - const symbolData = node.getAttribute('data-fa-symbol'); - const symbol = symbolData === null ? false : symbolData === '' ? true : symbolData; - accumulator['symbol'] = symbol; - return accumulator; - } - }; - } - }; - - var plugins = [InjectCSS, ReplaceElements, Layers, LayersCounter, LayersText, PseudoElements, MutationObserver$1, PowerTransforms, Masks, MissingIconIndicator, SvgSymbols]; - - registerPlugins(plugins, { - mixoutsTo: api - }); - bunker(bootstrap); - -}()); diff --git a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/js/all.min.js b/XNSimHtml/node_modules/@fortawesome/fontawesome-free/js/all.min.js deleted file mode 100644 index 4a373a4..0000000 --- a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/js/all.min.js +++ /dev/null @@ -1,6 +0,0 @@ -/*! - * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - * Copyright 2024 Fonticons, Inc. - */ -(()=>{let c={},l={};try{"undefined"!=typeof window&&(c=window),"undefined"!=typeof document&&(l=document)}catch(c){}var{userAgent:s=""}=c.navigator||{},a=c,z=l;function e(c,l,s){var a;(l="symbol"==typeof(a=((c,l)=>{if("object"!=typeof c||!c)return c;var s=c[Symbol.toPrimitive];if(void 0===s)return("string"===l?String:Number)(c);if("object"!=typeof(s=s.call(c,l||"default")))return s;throw new TypeError("@@toPrimitive must return a primitive value.")})(l,"string"))?a:a+"")in c?Object.defineProperty(c,l,{value:s,enumerable:!0,configurable:!0,writable:!0}):c[l]=s}function L(l,c){var s,a=Object.keys(l);return Object.getOwnPropertySymbols&&(s=Object.getOwnPropertySymbols(l),c&&(s=s.filter(function(c){return Object.getOwnPropertyDescriptor(l,c).enumerable})),a.push.apply(a,s)),a}function t(l){for(var c=1;c{try{return!0}catch(c){return!1}})();function o(c){return new Proxy(c,{get(c,l){return l in c?c[l]:c[M]}})}var n=t({},z);n[M]=t(t(t(t({},{"fa-duotone":"duotone"}),z[M]),s),r),o(n),(z=t({},{classic:{solid:"fas",regular:"far",light:"fal",thin:"fat",brands:"fab"},duotone:{solid:"fad",regular:"fadr",light:"fadl",thin:"fadt"},sharp:{solid:"fass",regular:"fasr",light:"fasl",thin:"fast"},"sharp-duotone":{solid:"fasds",regular:"fasdr",light:"fasdl",thin:"fasdt"}}))[M]=t(t(t(t({},{duotone:"fad"}),z[M]),m),f),o(z),(s=t({},{classic:{fab:"fa-brands",fad:"fa-duotone",fal:"fa-light",far:"fa-regular",fas:"fa-solid",fat:"fa-thin"},duotone:{fadr:"fa-regular",fadl:"fa-light",fadt:"fa-thin"},sharp:{fass:"fa-solid",fasr:"fa-regular",fasl:"fa-light",fast:"fa-thin"},"sharp-duotone":{fasds:"fa-solid",fasdr:"fa-regular",fasdl:"fa-light",fasdt:"fa-thin"}}))[M]=t(t({},s[M]),{fak:"fa-kit"}),o(s),(r=t({},{classic:{"fa-brands":"fab","fa-duotone":"fad","fa-light":"fal","fa-regular":"far","fa-solid":"fas","fa-thin":"fat"},duotone:{"fa-regular":"fadr","fa-light":"fadl","fa-thin":"fadt"},sharp:{"fa-solid":"fass","fa-regular":"fasr","fa-light":"fasl","fa-thin":"fast"},"sharp-duotone":{"fa-solid":"fasds","fa-regular":"fasdr","fa-light":"fasdl","fa-thin":"fasdt"}}))[M]=t(t({},r[M]),{"fa-kit":"fak"}),o(r),o(t({},{classic:{900:"fas",400:"far",normal:"far",300:"fal",100:"fat"},duotone:{900:"fad",400:"fadr",300:"fadl",100:"fadt"},sharp:{900:"fass",400:"fasr",300:"fasl",100:"fast"},"sharp-duotone":{900:"fasds",400:"fasdr",300:"fasdl",100:"fasdt"}}));(n=a||{})[i]||(n[i]={}),n[i].styles||(n[i].styles={}),n[i].hooks||(n[i].hooks={}),n[i].shims||(n[i].shims=[]);var h=n[i];function d(a){return Object.keys(a).reduce((c,l)=>{var s=a[l];return!!s.icon?c[s.iconName]=s.icon:c[l]=s,c},{})}function u(c,l,s){var{skipHooks:a=!1}=2{u("fab",v),u("fa-brands",v)})})(),(()=>{let c={},l={};try{"undefined"!=typeof window&&(c=window),"undefined"!=typeof document&&(l=document)}catch(c){}var{userAgent:s=""}=c.navigator||{},a=c,z=l;function e(c,l,s){var a;(l="symbol"==typeof(a=((c,l)=>{if("object"!=typeof c||!c)return c;var s=c[Symbol.toPrimitive];if(void 0===s)return("string"===l?String:Number)(c);if("object"!=typeof(s=s.call(c,l||"default")))return s;throw new TypeError("@@toPrimitive must return a primitive value.")})(l,"string"))?a:a+"")in c?Object.defineProperty(c,l,{value:s,enumerable:!0,configurable:!0,writable:!0}):c[l]=s}function L(l,c){var s,a=Object.keys(l);return Object.getOwnPropertySymbols&&(s=Object.getOwnPropertySymbols(l),c&&(s=s.filter(function(c){return Object.getOwnPropertyDescriptor(l,c).enumerable})),a.push.apply(a,s)),a}function t(l){for(var c=1;c{try{return!0}catch(c){return!1}})();function o(c){return new Proxy(c,{get(c,l){return l in c?c[l]:c[M]}})}var n=t({},z);n[M]=t(t(t(t({},{"fa-duotone":"duotone"}),z[M]),s),r),o(n),(z=t({},{classic:{solid:"fas",regular:"far",light:"fal",thin:"fat",brands:"fab"},duotone:{solid:"fad",regular:"fadr",light:"fadl",thin:"fadt"},sharp:{solid:"fass",regular:"fasr",light:"fasl",thin:"fast"},"sharp-duotone":{solid:"fasds",regular:"fasdr",light:"fasdl",thin:"fasdt"}}))[M]=t(t(t(t({},{duotone:"fad"}),z[M]),m),f),o(z),(s=t({},{classic:{fab:"fa-brands",fad:"fa-duotone",fal:"fa-light",far:"fa-regular",fas:"fa-solid",fat:"fa-thin"},duotone:{fadr:"fa-regular",fadl:"fa-light",fadt:"fa-thin"},sharp:{fass:"fa-solid",fasr:"fa-regular",fasl:"fa-light",fast:"fa-thin"},"sharp-duotone":{fasds:"fa-solid",fasdr:"fa-regular",fasdl:"fa-light",fasdt:"fa-thin"}}))[M]=t(t({},s[M]),{fak:"fa-kit"}),o(s),(r=t({},{classic:{"fa-brands":"fab","fa-duotone":"fad","fa-light":"fal","fa-regular":"far","fa-solid":"fas","fa-thin":"fat"},duotone:{"fa-regular":"fadr","fa-light":"fadl","fa-thin":"fadt"},sharp:{"fa-solid":"fass","fa-regular":"fasr","fa-light":"fasl","fa-thin":"fast"},"sharp-duotone":{"fa-solid":"fasds","fa-regular":"fasdr","fa-light":"fasdl","fa-thin":"fasdt"}}))[M]=t(t({},r[M]),{"fa-kit":"fak"}),o(r),o(t({},{classic:{900:"fas",400:"far",normal:"far",300:"fal",100:"fat"},duotone:{900:"fad",400:"fadr",300:"fadl",100:"fadt"},sharp:{900:"fass",400:"fasr",300:"fasl",100:"fast"},"sharp-duotone":{900:"fasds",400:"fasdr",300:"fasdl",100:"fasdt"}}));(n=a||{})[i]||(n[i]={}),n[i].styles||(n[i].styles={}),n[i].hooks||(n[i].hooks={}),n[i].shims||(n[i].shims=[]);var h=n[i];function d(a){return Object.keys(a).reduce((c,l)=>{var s=a[l];return!!s.icon?c[s.iconName]=s.icon:c[l]=s,c},{})}function u(c,l,s){var{skipHooks:a=!1}=2{u("far",v),u("fa-regular",v)})})(),(()=>{let c={},l={};try{"undefined"!=typeof window&&(c=window),"undefined"!=typeof document&&(l=document)}catch(c){}var{userAgent:s=""}=c.navigator||{},a=c,z=l;function e(c,l,s){var a;(l="symbol"==typeof(a=((c,l)=>{if("object"!=typeof c||!c)return c;var s=c[Symbol.toPrimitive];if(void 0===s)return("string"===l?String:Number)(c);if("object"!=typeof(s=s.call(c,l||"default")))return s;throw new TypeError("@@toPrimitive must return a primitive value.")})(l,"string"))?a:a+"")in c?Object.defineProperty(c,l,{value:s,enumerable:!0,configurable:!0,writable:!0}):c[l]=s}function L(l,c){var s,a=Object.keys(l);return Object.getOwnPropertySymbols&&(s=Object.getOwnPropertySymbols(l),c&&(s=s.filter(function(c){return Object.getOwnPropertyDescriptor(l,c).enumerable})),a.push.apply(a,s)),a}function t(l){for(var c=1;c{try{return!0}catch(c){return!1}})();function o(c){return new Proxy(c,{get(c,l){return l in c?c[l]:c[M]}})}var n=t({},z);n[M]=t(t(t(t({},{"fa-duotone":"duotone"}),z[M]),s),r),o(n),(z=t({},{classic:{solid:"fas",regular:"far",light:"fal",thin:"fat",brands:"fab"},duotone:{solid:"fad",regular:"fadr",light:"fadl",thin:"fadt"},sharp:{solid:"fass",regular:"fasr",light:"fasl",thin:"fast"},"sharp-duotone":{solid:"fasds",regular:"fasdr",light:"fasdl",thin:"fasdt"}}))[M]=t(t(t(t({},{duotone:"fad"}),z[M]),m),f),o(z),(s=t({},{classic:{fab:"fa-brands",fad:"fa-duotone",fal:"fa-light",far:"fa-regular",fas:"fa-solid",fat:"fa-thin"},duotone:{fadr:"fa-regular",fadl:"fa-light",fadt:"fa-thin"},sharp:{fass:"fa-solid",fasr:"fa-regular",fasl:"fa-light",fast:"fa-thin"},"sharp-duotone":{fasds:"fa-solid",fasdr:"fa-regular",fasdl:"fa-light",fasdt:"fa-thin"}}))[M]=t(t({},s[M]),{fak:"fa-kit"}),o(s),(r=t({},{classic:{"fa-brands":"fab","fa-duotone":"fad","fa-light":"fal","fa-regular":"far","fa-solid":"fas","fa-thin":"fat"},duotone:{"fa-regular":"fadr","fa-light":"fadl","fa-thin":"fadt"},sharp:{"fa-solid":"fass","fa-regular":"fasr","fa-light":"fasl","fa-thin":"fast"},"sharp-duotone":{"fa-solid":"fasds","fa-regular":"fasdr","fa-light":"fasdl","fa-thin":"fasdt"}}))[M]=t(t({},r[M]),{"fa-kit":"fak"}),o(r),o(t({},{classic:{900:"fas",400:"far",normal:"far",300:"fal",100:"fat"},duotone:{900:"fad",400:"fadr",300:"fadl",100:"fadt"},sharp:{900:"fass",400:"fasr",300:"fasl",100:"fast"},"sharp-duotone":{900:"fasds",400:"fasdr",300:"fasdl",100:"fasdt"}}));(n=a||{})[i]||(n[i]={}),n[i].styles||(n[i].styles={}),n[i].hooks||(n[i].hooks={}),n[i].shims||(n[i].shims=[]);var h=n[i];function d(a){return Object.keys(a).reduce((c,l)=>{var s=a[l];return!!s.icon?c[s.iconName]=s.icon:c[l]=s,c},{})}function u(c,l,s){var{skipHooks:a=!1}=2{u("fas",v),u("fa-solid",v)})})(),(()=>{function N(c,l,s){var a;(l="symbol"==typeof(a=((c,l)=>{if("object"!=typeof c||!c)return c;var s=c[Symbol.toPrimitive];if(void 0===s)return("string"===l?String:Number)(c);if("object"!=typeof(s=s.call(c,l||"default")))return s;throw new TypeError("@@toPrimitive must return a primitive value.")})(l,"string"))?a:a+"")in c?Object.defineProperty(c,l,{value:s,enumerable:!0,configurable:!0,writable:!0}):c[l]=s}function E(l,c){var s,a=Object.keys(l);return Object.getOwnPropertySymbols&&(s=Object.getOwnPropertySymbols(l),c&&(s=s.filter(function(c){return Object.getOwnPropertyDescriptor(l,c).enumerable})),a.push.apply(a,s)),a}function u(l){for(var c=1;c{},measure:c};try{"undefined"!=typeof window&&(I=window),"undefined"!=typeof document&&(F=document),"undefined"!=typeof MutationObserver&&(D=MutationObserver),"undefined"!=typeof performance&&(T=performance)}catch(c){}var{userAgent:c=""}=I.navigator||{};let l=I,h=F,R=D;var s=T;let _=!!l.document,r=!!h.documentElement&&!!h.head&&"function"==typeof h.addEventListener&&"function"==typeof h.createElement,Y=~c.indexOf("MSIE")||~c.indexOf("Trident/");var c={classic:{fa:"solid",fas:"solid","fa-solid":"solid",far:"regular","fa-regular":"regular",fal:"light","fa-light":"light",fat:"thin","fa-thin":"thin",fab:"brands","fa-brands":"brands"},duotone:{fa:"solid",fad:"solid","fa-solid":"solid","fa-duotone":"solid",fadr:"regular","fa-regular":"regular",fadl:"light","fa-light":"light",fadt:"thin","fa-thin":"thin"},sharp:{fa:"solid",fass:"solid","fa-solid":"solid",fasr:"regular","fa-regular":"regular",fasl:"light","fa-light":"light",fast:"thin","fa-thin":"thin"},"sharp-duotone":{fa:"solid",fasds:"solid","fa-solid":"solid",fasdr:"regular","fa-regular":"regular",fasdl:"light","fa-light":"light",fasdt:"thin","fa-thin":"thin"}},W=["fa-classic","fa-duotone","fa-sharp","fa-sharp-duotone"],M="classic",f="duotone",U=[M,f,"sharp","sharp-duotone"],B=new Map([["classic",{defaultShortPrefixId:"fas",defaultStyleId:"solid",styleIds:["solid","regular","light","thin","brands"],futureStyleIds:[],defaultFontWeight:900}],["sharp",{defaultShortPrefixId:"fass",defaultStyleId:"solid",styleIds:["solid","regular","light","thin"],futureStyleIds:[],defaultFontWeight:900}],["duotone",{defaultShortPrefixId:"fad",defaultStyleId:"solid",styleIds:["solid","regular","light","thin"],futureStyleIds:[],defaultFontWeight:900}],["sharp-duotone",{defaultShortPrefixId:"fasds",defaultStyleId:"solid",styleIds:["solid","regular","light","thin"],futureStyleIds:[],defaultFontWeight:900}]]),X=["fak","fa-kit","fakd","fa-kit-duotone"],z={fak:"kit","fa-kit":"kit"},a={fakd:"kit-duotone","fa-kit-duotone":"kit-duotone"},G=["fak","fakd"],Q={kit:"fak"},e={"kit-duotone":"fakd"},L={GROUP:"duotone-group",SWAP_OPACITY:"swap-opacity",PRIMARY:"primary",SECONDARY:"secondary"},K=["fak","fa-kit","fakd","fa-kit-duotone"],J={classic:{fab:"fa-brands",fad:"fa-duotone",fal:"fa-light",far:"fa-regular",fas:"fa-solid",fat:"fa-thin"},duotone:{fadr:"fa-regular",fadl:"fa-light",fadt:"fa-thin"},sharp:{fass:"fa-solid",fasr:"fa-regular",fasl:"fa-light",fast:"fa-thin"},"sharp-duotone":{fasds:"fa-solid",fasdr:"fa-regular",fasdl:"fa-light",fasdt:"fa-thin"}},$=["fa","fas","far","fal","fat","fad","fadr","fadl","fadt","fab","fass","fasr","fasl","fast","fasds","fasdr","fasdl","fasdt","fa-classic","fa-duotone","fa-sharp","fa-sharp-duotone","fa-solid","fa-regular","fa-light","fa-thin","fa-duotone","fa-brands"],t=(m=[1,2,3,4,5,6,7,8,9,10]).concat([11,12,13,14,15,16,17,18,19,20]),L=[...Object.keys({classic:["fas","far","fal","fat","fad"],duotone:["fadr","fadl","fadt"],sharp:["fass","fasr","fasl","fast"],"sharp-duotone":["fasds","fasdr","fasdl","fasdt"]}),"solid","regular","light","thin","duotone","brands","2xs","xs","sm","lg","xl","2xl","beat","border","fade","beat-fade","bounce","flip-both","flip-horizontal","flip-vertical","flip","fw","inverse","layers-counter","layers-text","layers","li","pull-left","pull-right","pulse","rotate-180","rotate-270","rotate-90","rotate-by","shake","spin-pulse","spin-reverse","spin","stack-1x","stack-2x","stack","ul",L.GROUP,L.SWAP_OPACITY,L.PRIMARY,L.SECONDARY].concat(m.map(c=>"".concat(c,"x"))).concat(t.map(c=>"w-".concat(c))),m="___FONT_AWESOME___";let c1=16,l1="svg-inline--fa",v="data-fa-i2svg",s1="data-fa-pseudo-element",a1="data-fa-pseudo-element-pending",z1="data-prefix",e1="data-icon",L1="fontawesome-i2svg",t1="async",M1=["HTML","HEAD","STYLE","SCRIPT"],r1=(()=>{try{return!0}catch(c){return!1}})();function i(c){return new Proxy(c,{get(c,l){return l in c?c[l]:c[M]}})}(t=u({},c))[M]=u(u(u(u({},{"fa-duotone":"duotone"}),c[M]),z),a);let m1=i(t),f1=((c=u({},{classic:{solid:"fas",regular:"far",light:"fal",thin:"fat",brands:"fab"},duotone:{solid:"fad",regular:"fadr",light:"fadl",thin:"fadt"},sharp:{solid:"fass",regular:"fasr",light:"fasl",thin:"fast"},"sharp-duotone":{solid:"fasds",regular:"fasdr",light:"fasdl",thin:"fasdt"}}))[M]=u(u(u(u({},{duotone:"fad"}),c[M]),Q),e),i(c)),i1=((z=u({},J))[M]=u(u({},z[M]),{fak:"fa-kit"}),i(z)),C1=((a=u({},{classic:{"fa-brands":"fab","fa-duotone":"fad","fa-light":"fal","fa-regular":"far","fa-solid":"fas","fa-thin":"fat"},duotone:{"fa-regular":"fadr","fa-light":"fadl","fa-thin":"fadt"},sharp:{"fa-solid":"fass","fa-regular":"fasr","fa-light":"fasl","fa-thin":"fast"},"sharp-duotone":{"fa-solid":"fasds","fa-regular":"fasdr","fa-light":"fasdl","fa-thin":"fasdt"}}))[M]=u(u({},a[M]),{"fa-kit":"fak"}),i(a),/fa(s|r|l|t|d|dr|dl|dt|b|k|kd|ss|sr|sl|st|sds|sdr|sdl|sdt)?[\-\ ]/),o1="fa-layers-text",n1=/Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp Duotone|Sharp|Kit)?.*/i,h1=(i(u({},{classic:{900:"fas",400:"far",normal:"far",300:"fal",100:"fat"},duotone:{900:"fad",400:"fadr",300:"fadl",100:"fadt"},sharp:{900:"fass",400:"fasr",300:"fasl",100:"fast"},"sharp-duotone":{900:"fasds",400:"fasdr",300:"fasdl",100:"fasdt"}})),["class","data-prefix","data-icon","data-fa-transform","data-fa-mask"]),d1={GROUP:"duotone-group",SWAP_OPACITY:"swap-opacity",PRIMARY:"primary",SECONDARY:"secondary"},u1=["kit",...L],C=l.FontAwesomeConfig||{},o=(h&&"function"==typeof h.querySelector&&[["data-family-prefix","familyPrefix"],["data-css-prefix","cssPrefix"],["data-family-default","familyDefault"],["data-style-default","styleDefault"],["data-replacement-class","replacementClass"],["data-auto-replace-svg","autoReplaceSvg"],["data-auto-add-css","autoAddCss"],["data-auto-a11y","autoA11y"],["data-search-pseudo-elements","searchPseudoElements"],["data-observe-mutations","observeMutations"],["data-mutate-approach","mutateApproach"],["data-keep-original-source","keepOriginalSource"],["data-measure-performance","measurePerformance"],["data-show-missing-icons","showMissingIcons"]].forEach(c=>{var[l,s]=c,l=""===(c=(c=>{var l=h.querySelector("script["+c+"]");if(l)return l.getAttribute(c)})(l))||"false"!==c&&("true"===c||c);null!=l&&(C[s]=l)}),t={styleDefault:"solid",familyDefault:M,cssPrefix:"fa",replacementClass:l1,autoReplaceSvg:!0,autoAddCss:!0,autoA11y:!0,searchPseudoElements:!1,observeMutations:!0,mutateApproach:"async",keepOriginalSource:!0,measurePerformance:!1,showMissingIcons:!0},C.familyPrefix&&(C.cssPrefix=C.familyPrefix),u(u({},t),C)),p=(o.autoReplaceSvg||(o.observeMutations=!1),{}),v1=(Object.keys(t).forEach(l=>{Object.defineProperty(p,l,{enumerable:!0,set:function(c){o[l]=c,v1.forEach(c=>c(p))},get:function(){return o[l]}})}),Object.defineProperty(p,"familyPrefix",{enumerable:!0,set:function(c){o.cssPrefix=c,v1.forEach(c=>c(p))},get:function(){return o.cssPrefix}}),l.FontAwesomeConfig=p,[]),n=c1,d={size:16,x:0,y:0,rotate:0,flipX:!1,flipY:!1},p1="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";function g(){let c=12,l="";for(;0>>0;s--;)l[s]=c[s];return l}function g1(c){return c.classList?b(c.classList):(c.getAttribute("class")||"").split(" ").filter(c=>c)}function b1(c){return"".concat(c).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function H(s){return Object.keys(s||{}).reduce((c,l)=>c+"".concat(l,": ").concat(s[l].trim(),";"),"")}function H1(c){return c.size!==d.size||c.x!==d.x||c.y!==d.y||c.rotate!==d.rotate||c.flipX||c.flipY}function V1(){var c,l,s=l1,a=p.cssPrefix,z=p.replacementClass;let e=':host,:root{--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free";--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free";--fa-font-light:normal 300 1em/1 "Font Awesome 6 Pro";--fa-font-thin:normal 100 1em/1 "Font Awesome 6 Pro";--fa-font-duotone:normal 900 1em/1 "Font Awesome 6 Duotone";--fa-font-duotone-regular:normal 400 1em/1 "Font Awesome 6 Duotone";--fa-font-duotone-light:normal 300 1em/1 "Font Awesome 6 Duotone";--fa-font-duotone-thin:normal 100 1em/1 "Font Awesome 6 Duotone";--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands";--fa-font-sharp-solid:normal 900 1em/1 "Font Awesome 6 Sharp";--fa-font-sharp-regular:normal 400 1em/1 "Font Awesome 6 Sharp";--fa-font-sharp-light:normal 300 1em/1 "Font Awesome 6 Sharp";--fa-font-sharp-thin:normal 100 1em/1 "Font Awesome 6 Sharp";--fa-font-sharp-duotone-solid:normal 900 1em/1 "Font Awesome 6 Sharp Duotone";--fa-font-sharp-duotone-regular:normal 400 1em/1 "Font Awesome 6 Sharp Duotone";--fa-font-sharp-duotone-light:normal 300 1em/1 "Font Awesome 6 Sharp Duotone";--fa-font-sharp-duotone-thin:normal 100 1em/1 "Font Awesome 6 Sharp Duotone"}svg:not(:host).svg-inline--fa,svg:not(:root).svg-inline--fa{overflow:visible;box-sizing:content-box}.svg-inline--fa{display:var(--fa-display,inline-block);height:1em;overflow:visible;vertical-align:-.125em}.svg-inline--fa.fa-2xs{vertical-align:.1em}.svg-inline--fa.fa-xs{vertical-align:0}.svg-inline--fa.fa-sm{vertical-align:-.0714285705em}.svg-inline--fa.fa-lg{vertical-align:-.2em}.svg-inline--fa.fa-xl{vertical-align:-.25em}.svg-inline--fa.fa-2xl{vertical-align:-.3125em}.svg-inline--fa.fa-pull-left{margin-right:var(--fa-pull-margin,.3em);width:auto}.svg-inline--fa.fa-pull-right{margin-left:var(--fa-pull-margin,.3em);width:auto}.svg-inline--fa.fa-li{width:var(--fa-li-width,2em);top:.25em}.svg-inline--fa.fa-fw{width:var(--fa-fw-width,1.25em)}.fa-layers svg.svg-inline--fa{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:1em}.fa-layers svg.svg-inline--fa{transform-origin:center center}.fa-layers-text{left:50%;top:50%;transform:translate(-50%,-50%);transform-origin:center center}.fa-layers-counter{background-color:var(--fa-counter-background-color,#ff253a);border-radius:var(--fa-counter-border-radius,1em);box-sizing:border-box;color:var(--fa-inverse,#fff);line-height:var(--fa-counter-line-height,1);max-width:var(--fa-counter-max-width,5em);min-width:var(--fa-counter-min-width,1.5em);overflow:hidden;padding:var(--fa-counter-padding,.25em .5em);right:var(--fa-right,0);text-overflow:ellipsis;top:var(--fa-top,0);transform:scale(var(--fa-counter-scale,.25));transform-origin:top right}.fa-layers-bottom-right{bottom:var(--fa-bottom,0);right:var(--fa-right,0);top:auto;transform:scale(var(--fa-layers-scale,.25));transform-origin:bottom right}.fa-layers-bottom-left{bottom:var(--fa-bottom,0);left:var(--fa-left,0);right:auto;top:auto;transform:scale(var(--fa-layers-scale,.25));transform-origin:bottom left}.fa-layers-top-right{top:var(--fa-top,0);right:var(--fa-right,0);transform:scale(var(--fa-layers-scale,.25));transform-origin:top right}.fa-layers-top-left{left:var(--fa-left,0);right:auto;top:var(--fa-top,0);transform:scale(var(--fa-layers-scale,.25));transform-origin:top left}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.0833333337em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.0714285718em;vertical-align:.0535714295em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.0416666682em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(-1 * var(--fa-li-width,2em));position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-color:var(--fa-border-color,#eee);border-radius:var(--fa-border-radius,.1em);border-style:var(--fa-border-style,solid);border-width:var(--fa-border-width,.08em);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{animation-name:fa-beat;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{animation-name:fa-bounce;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{animation-name:fa-fade;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade{animation-name:fa-beat-fade;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{animation-name:fa-flip;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{animation-name:fa-shake;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin{animation-name:fa-spin;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,2s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{animation-name:fa-spin;animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{animation-delay:-1ms;animation-duration:1ms;animation-iteration-count:1;transition-delay:0s;transition-duration:0s}}@keyframes fa-beat{0%,90%{transform:scale(1)}45%{transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-bounce{0%{transform:scale(1,1) translateY(0)}10%{transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{transform:scale(1,1) translateY(var(--fa-bounce-rebound,-.125em))}64%{transform:scale(1,1) translateY(0)}100%{transform:scale(1,1) translateY(0)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-beat-fade{0%,100%{opacity:var(--fa-beat-fade-opacity,.4);transform:scale(1)}50%{opacity:1;transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-flip{50%{transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-shake{0%{transform:rotate(-15deg)}4%{transform:rotate(15deg)}24%,8%{transform:rotate(-18deg)}12%,28%{transform:rotate(18deg)}16%{transform:rotate(-22deg)}20%{transform:rotate(22deg)}32%{transform:rotate(-12deg)}36%{transform:rotate(12deg)}100%,40%{transform:rotate(0)}}@keyframes fa-spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.fa-rotate-90{transform:rotate(90deg)}.fa-rotate-180{transform:rotate(180deg)}.fa-rotate-270{transform:rotate(270deg)}.fa-flip-horizontal{transform:scale(-1,1)}.fa-flip-vertical{transform:scale(1,-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1,-1)}.fa-rotate-by{transform:rotate(var(--fa-rotate-angle,0))}.fa-stack{display:inline-block;vertical-align:middle;height:2em;position:relative;width:2.5em}.fa-stack-1x,.fa-stack-2x{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0;z-index:var(--fa-stack-z-index,auto)}.svg-inline--fa.fa-stack-1x{height:1em;width:1.25em}.svg-inline--fa.fa-stack-2x{height:2em;width:2.5em}.fa-inverse{color:var(--fa-inverse,#fff)}.fa-sr-only,.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.fa-sr-only-focusable:not(:focus),.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.svg-inline--fa .fa-primary{fill:var(--fa-primary-color,currentColor);opacity:var(--fa-primary-opacity,1)}.svg-inline--fa .fa-secondary{fill:var(--fa-secondary-color,currentColor);opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-primary{opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-secondary{opacity:var(--fa-primary-opacity,1)}.svg-inline--fa mask .fa-primary,.svg-inline--fa mask .fa-secondary{fill:#000}';return"fa"===a&&z===s||(c=new RegExp("\\.".concat("fa","\\-"),"g"),l=new RegExp("\\--".concat("fa","\\-"),"g"),s=new RegExp("\\.".concat(s),"g"),e=e.replace(c,".".concat(a,"-")).replace(l,"--".concat(a,"-")).replace(s,".".concat(z))),e}let w1=!1;function y1(){if(p.autoAddCss&&!w1){var s=V1();if(s&&r){var a=h.createElement("style"),z=(a.setAttribute("type","text/css"),a.innerHTML=s,h.head.childNodes);let c=null;for(let l=z.length-1;-1c())}let S1=[],A1=!1;function x1(c){r&&(A1?setTimeout(c,0):S1.push(c))}function w(c){var s,{tag:l,attributes:a={},children:z=[]}=c;return"string"==typeof c?b1(c):"<".concat(l," ").concat((s=a,Object.keys(s||{}).reduce((c,l)=>c+"".concat(l,'="').concat(b1(s[l]),'" '),"").trim()),">").concat(z.map(w).join(""),"")}function q1(c,l,s){if(c&&c[l]&&c[l][s])return{prefix:l,iconName:s,icon:c[l][s]}}function Z1(c,l,s,a){for(var z,e,L=Object.keys(c),t=L.length,M=void 0!==a?O1(l,a):l,r=void 0===s?(z=1,c[L[0]]):(z=0,s);z{var l=[];let s=0;for(var a=c.length;s{var s=a[l];return!!s.icon?c[s.iconName]=s.icon:c[l]=s,c},{})}function N1(c,l,s){var{skipHooks:a=!1}=2(c[l]=Object.keys(i1[l]),c),{}),k=null,D1={},T1={},R1={},_1={},Y1={};function W1(c,l){var s=l.split("-"),a=s[0],s=s.slice(1).join("-");return a!==c||""===s||(l=s,~u1.indexOf(l))?null:s}let S=()=>{var c=a=>Z1(y,(c,l,s)=>(c[s]=Z1(l,a,{}),c),{});D1=c((l,c,s)=>(c[3]&&(l[c[3]]=s),c[2]&&c[2].filter(c=>"number"==typeof c).forEach(c=>{l[c.toString(16)]=s}),l)),T1=c((l,c,s)=>(l[s]=s,c[2]&&c[2].filter(c=>"string"==typeof c).forEach(c=>{l[c]=s}),l)),Y1=c((l,c,s)=>{var a=c[2];return l[s]=s,a.forEach(c=>{l[c]=s}),l});let e="far"in y||p.autoFetchSvg;c=Z1(E1,(c,l)=>{var s=l[0];let a=l[1];var z=l[2];return"far"!==a||e||(a="fas"),"string"==typeof s&&(c.names[s]={prefix:a,iconName:z}),"number"==typeof s&&(c.unicodes[s.toString(16)]={prefix:a,iconName:z}),c},{names:{},unicodes:{}});R1=c.names,_1=c.unicodes,k=G1(p.styleDefault,{family:p.familyDefault})};function U1(c,l){return(D1[c]||{})[l]}function A(c,l){return(Y1[c]||{})[l]}function B1(c){return R1[c]||{prefix:null,iconName:null}}c3=c=>{k=G1(c.styleDefault,{family:p.familyDefault})},v1.push(c3),S();let X1=()=>({prefix:null,iconName:null,rest:[]});function G1(c,l){var{family:s=M}=1s.indexOf(c)===l)}function K1(c,l){var{skipLookups:s=!1}=1z.includes(c))),L=Q1(c.filter(c=>!$.includes(c))),[t=null]=e.filter(c=>(a=c,!W.includes(c))),e=(c=>{let s=M,a=I1.reduce((c,l)=>(c[l]="".concat(p.cssPrefix,"-").concat(l),c),{});return U.forEach(l=>{(c.includes(a[l])||c.some(c=>F1[l].includes(c)))&&(s=l)}),s})(e),L=u(u({},(c=>{let s=[],a=null;return c.forEach(c=>{var l=W1(p.cssPrefix,c);l?a=l:c&&s.push(c)}),{iconName:a,rest:s}})(L)),{},{prefix:G1(t,{family:e})});return u(u(u({},L),(c=>{var{values:l,family:s,canonical:a,givenPrefix:z="",styles:e={},config:L={}}=c,t=s===f,M=l.includes("fa-duotone")||l.includes("fad"),r="duotone"===L.familyDefault,m="fad"===a.prefix||"fa-duotone"===a.prefix;return!t&&(M||r||m)&&(a.prefix="fad"),(l.includes("fa-brands")||l.includes("fab"))&&(a.prefix="fab"),!a.prefix&&J1.includes(s)&&(Object.keys(e).find(c=>$1.includes(c))||L.autoFetchSvg)&&(t=B.get(s).defaultShortPrefixId,a.prefix=t,a.iconName=A(a.prefix,a.iconName)||a.iconName),"fa"!==a.prefix&&"fa"!==z||(a.prefix=k||"fas"),a})({values:c,family:e,styles:y,config:p,canonical:L,givenPrefix:a})),((c,l,s)=>{let{prefix:a,iconName:z}=s;var e,L;return!c&&a&&z&&(e="fa"===l?B1(z):{},L=A(a,z),z=e.iconName||L||z,"far"!==(a=e.prefix||a)||y.far||!y.fas||p.autoFetchSvg||(a="fas")),{prefix:a,iconName:z}})(s,a,L))}let J1=U.filter(c=>c!==M||c!==f),$1=Object.keys(J).filter(c=>c!==M).map(c=>Object.keys(J[c])).flat(),c2=[],x={},q={},l2=Object.keys(q);function s2(c,l){for(var s=arguments.length,a=new Array(2{l=c.apply(null,[l,...a])}),l}function Z(c){for(var l=arguments.length,s=new Array(1{c.apply(null,s)})}function O(c){var l=c,s=Array.prototype.slice.call(arguments,1);return q[l]?q[l].apply(null,s):void 0}function a2(c){"fa"===c.prefix&&(c.prefix="fas");var l=c.iconName,s=c.prefix||k;if(l)return l=A(s,l)||l,q1(z2.definitions,s,l)||q1(V.styles,s,l)}let z2=new class{constructor(){this.definitions={}}add(){for(var c=arguments.length,l=new Array(c),s=0;s{this.definitions[c]=u(u({},this.definitions[c]||{}),a[c]),N1(c,a[c]);var l=i1[M][c];l&&N1(l,a[c]),S()})}reset(){this.definitions={}}_pullDefinitions(e,c){let L=c.prefix&&c.iconName&&c.icon?{0:c}:c;return Object.keys(L).map(c=>{let{prefix:l,iconName:s,icon:a}=L[c];var z=a[2];e[l]||(e[l]={}),0{"string"==typeof c&&(e[l][c]=a)}),e[l][s]=a}),e}},e2={noAuto:()=>{p.autoReplaceSvg=!1,p.observeMutations=!1,Z("noAuto")},config:p,dom:{i2svg:function(){var c=0{j({autoReplaceSvgRoot:l}),Z("watch",c)})}},parse:{icon:c=>{var l,s;return null===c?null:"object"==typeof c&&c.prefix&&c.iconName?{prefix:c.prefix,iconName:A(c.prefix,c.iconName)||c.iconName}:Array.isArray(c)&&2===c.length?(l=0===c[1].indexOf("fa-")?c[1].slice(3):c[1],{prefix:s=G1(c[0]),iconName:A(s,l)||l}):"string"==typeof c&&(-1w(c))}}),Object.defineProperty(l,"node",{get:function(){var c;if(r)return(c=h.createElement("div")).innerHTML=l.html,c.children}}),l}function t2(c){let{icons:{main:l,mask:s},prefix:a,iconName:z,transform:e,symbol:L,title:t,maskId:M,titleId:r,extra:m,watchable:f=!1}=c;var i,C,{width:o,height:n}=s.found?s:l,h=G.includes(a),d=[p.replacementClass,z?"".concat(p.cssPrefix,"-").concat(z):""].filter(c=>-1===m.classes.indexOf(c)).filter(c=>""!==c||!!c).concat(m.classes).join(" "),d={children:[],attributes:u(u({},m.attributes),{},{"data-prefix":a,"data-icon":z,class:d,role:m.attributes.role||"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(o," ").concat(n)})},h=h&&!~m.classes.indexOf("fa-fw")?{width:"".concat(o/n*16*.0625,"em")}:{},o=(f&&(d.attributes[v]=""),t&&(d.children.push({tag:"title",attributes:{id:d.attributes["aria-labelledby"]||"title-".concat(r||g())},children:[t]}),delete d.attributes.title),u(u({},d),{},{prefix:a,iconName:z,main:l,mask:s,maskId:M,transform:e,symbol:L,styles:u(u({},h),m.styles)})),{children:n,attributes:d}=s.found&&l.found?O("generateAbstractMask",o)||{children:[],attributes:{}}:O("generateAbstractIcon",o)||{children:[],attributes:{}};return o.children=n,o.attributes=d,L?({prefix:h,iconName:n,children:d,attributes:C,symbol:i}=o,h=!0===i?"".concat(h,"-").concat(p.cssPrefix,"-").concat(n):i,[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:u(u({},C),{},{id:h}),children:d}]}]):({children:n,main:i,mask:C,attributes:h,styles:d,transform:o}=o,H1(o)&&i.found&&!C.found&&({width:C,height:i}=i,C={x:C/i/2,y:.5},h.style=H(u(u({},d),{},{"transform-origin":"".concat(C.x+o.x/16,"em ").concat(C.y+o.y/16,"em")}))),[{tag:"svg",attributes:h,children:n}])}function M2(c){var{content:l,width:s,height:a,transform:z,title:e,extra:L,watchable:t=!1}=c,M=u(u(u({},L.attributes),e?{title:e}:{}),{},{class:L.classes.join(" ")}),t=(t&&(M[v]=""),u({},L.styles)),L=(H1(z)&&(t.transform=(c=>{var{transform:l,width:s=c1,height:a=c1,startCentered:z=!1}=c;let e="";return z&&Y?e+="translate(".concat(l.x/n-s/2,"em, ").concat(l.y/n-a/2,"em) "):e+=z?"translate(calc(-50% + ".concat(l.x/n,"em), calc(-50% + ").concat(l.y/n,"em)) "):"translate(".concat(l.x/n,"em, ").concat(l.y/n,"em) "),e=(e+="scale(".concat(l.size/n*(l.flipX?-1:1),", ").concat(l.size/n*(l.flipY?-1:1),") "))+"rotate(".concat(l.rotate,"deg) ")})({transform:z,startCentered:!0,width:s,height:a}),t["-webkit-transform"]=t.transform),H(t)),z=(0{var s,a,z;if("fa"===t&&(s=B1(e)||{},e=s.iconName||e,L=s.prefix||L),e&&L&&r2[L]&&r2[L][e])return c(m2(r2[L][e]));a=e,z=L,r1||p.showMissingIcons||!a||console.error('Icon with name "'.concat(a,'" and prefix "').concat(z,'" is missing.')),c(u(u({},f2),{},{icon:p.showMissingIcons&&e&&O("missingIconAbstract")||{}}))})}c=()=>{};let C2=p.measurePerformance&&s&&s.mark&&s.measure?s:{mark:c,measure:c},P='FA "6.7.2"',o2=c=>{C2.mark("".concat(P," ").concat(c," ends")),C2.measure("".concat(P," ").concat(c),"".concat(P," ").concat(c," begins"),"".concat(P," ").concat(c," ends"))};var n2={begin:c=>(C2.mark("".concat(P," ").concat(c," begins")),()=>o2(c)),end:o2};let h2=()=>{};function d2(c){return"string"==typeof(c.getAttribute?c.getAttribute(v):null)}function u2(l,c){let{ceFn:s="svg"===l.tag?function(c){return h.createElementNS("http://www.w3.org/2000/svg",c)}:function(c){return h.createElement(c)}}=1{l.parentNode.insertBefore(u2(c),l)}),null===l.getAttribute(v)&&p.keepOriginalSource?(s=h.createComment((c=l,s=" ".concat(c.outerHTML," "),"".concat(s,"Font Awesome fontawesome.com "))),l.parentNode.replaceChild(s,l)):l.remove())},nest:function(c){var l=c[0],s=c[1];if(~g1(l).indexOf(p.replacementClass))return v2.replace(c);let a=new RegExp("".concat(p.cssPrefix,"-.*"));delete s[0].attributes.id,s[0].attributes.class&&(z=s[0].attributes.class.split(" ").reduce((c,l)=>((l===p.replacementClass||l.match(a)?c.toSvg:c.toNode).push(l),c),{toNode:[],toSvg:[]}),s[0].attributes.class=z.toSvg.join(" "),0===z.toNode.length?l.removeAttribute("class"):l.setAttribute("class",z.toNode.join(" ")));var z=s.map(c=>w(c)).join("\n");l.setAttribute(v,""),l.innerHTML=z}};function p2(c){c()}function g2(s,c){let a="function"==typeof c?c:h2;if(0===s.length)a();else{let c=p2;(c=p.mutateApproach===t1?l.requestAnimationFrame||p2:c)(()=>{var c=!0!==p.autoReplaceSvg&&v2[p.autoReplaceSvg]||v2.replace,l=n2.begin("mutate");s.map(c),l(),a()})}}let b2=!1;function H2(){b2=!0}function V2(){b2=!1}let w2=null;function y2(c){if(!R)return;if(!p.observeMutations)return;let{treeCallback:e=h2,nodeCallback:L=h2,pseudoElementsCallback:t=h2,observeMutationsRoot:l=h}=c;w2=new R(c=>{if(!b2){let z=k;b(c).forEach(c=>{var l,s,a;"childList"===c.type&&0("class"!==c.name&&"style"!==c.name&&(c[l.name]=l.value),c),{}),L=l.getAttribute("title"),t=l.getAttribute("data-fa-title-id"),p.autoA11y&&(L?M["aria-labelledby"]="".concat(p.replacementClass,"-title-").concat(t||g()):(M["aria-hidden"]="true",M.focusable="false")),M),t=s2("parseNodeAttributes",{},c),M=s.styleParser?(c=>{var l=c.getAttribute("style");let s=[];return s=l?l.split(";").reduce((c,l)=>{var s=l.split(":"),a=s[0],s=s.slice(1);return a&&0l.add("".concat(L1,"-").concat(c)),e=c=>l.remove("".concat(L1,"-").concat(c));var s=p.autoFetchSvg?[...X,...$]:W.concat(Object.keys(A2)),s=(s.includes("fa")||s.push("fa"),[".".concat(o1,":not([").concat(v,"])")].concat(s.map(c=>".".concat(c,":not([").concat(v,"])"))).join(", "));if(0===s.length)return Promise.resolve();let L=[];try{L=b(c.querySelectorAll(s))}catch(c){}if(!(0{try{var s=x2(l);s&&c.push(s)}catch(c){r1||"MissingIcon"===c.name&&console.error(c)}return c},[]);return new Promise((l,s)=>{Promise.all(M).then(c=>{g2(c,()=>{z("active"),z("complete"),e("pending"),"function"==typeof a&&a(),t(),l()})}).catch(c=>{t(),s(c)})})}function Z2(c){let l=1{c&&g2([c],l)})}function O2(a){let z=1(Z("beforeDOMElementCreation",{iconDefinition:a,params:z}),p.autoA11y&&(r?i["aria-labelledby"]="".concat(p.replacementClass,"-title-").concat(m||g()):(i["aria-hidden"]="true",i.focusable="false")),t2({icons:{main:m2(s),mask:t?m2(t.icon):{found:!1,width:null,height:null,icon:{}}},prefix:c,iconName:l,transform:u(u({},d),e),symbol:L,title:r,maskId:M,titleId:m,extra:{attributes:i,styles:C,classes:f}})))}}let j2={mixout(){return{icon:(z=O2,function(c){var l=1{}}=c;return q2(l,s)},c.generateSvgReplacementMutation=function(z,c){let{iconName:e,title:L,titleId:t,prefix:M,transform:r,symbol:m,mask:l,maskId:f,extra:i}=c;return new Promise((a,c)=>{Promise.all([i2(e,M),l.iconName?i2(l.iconName,l.prefix):Promise.resolve({found:!1,width:512,height:512,icon:{}})]).then(c=>{var[l,s]=c;a([z,t2({icons:{main:l,mask:s},prefix:M,iconName:e,transform:r,symbol:m,maskId:f,title:L,titleId:t,extra:i,watchable:!0})])}).catch(c)})},c.generateAbstractIcon=function(c){var{children:l,attributes:s,main:a,transform:z,styles:e}=c,e=H(e);0{Z("beforeDOMElementCreation",{assembler:c,params:s});let l=[];return c(c=>{Array.isArray(c)?c.map(c=>{l=l.concat(c.abstract)}):l=l.concat(c.abstract)}),[{tag:"span",attributes:{class:["".concat(p.cssPrefix,"-layers"),...a].join(" ")},children:l}]})}}}},N2={mixout(){return{counter(z){let e=1{Z("beforeDOMElementCreation",{content:z,params:e});var{content:c,title:l,extra:s}={content:z.toString(),title:L,extra:{attributes:M,styles:r,classes:["".concat(p.cssPrefix,"-layers-counter"),...t]}},a=u(u(u({},s.attributes),l?{title:l}:{}),{},{class:s.classes.join(" ")});return 0<(s=H(s.styles)).length&&(a.style=s),(s=[]).push({tag:"span",attributes:a,children:[c]}),l&&s.push({tag:"span",attributes:{class:"sr-only"},children:[l]}),s})}}}},E2={mixout(){return{text(c){let l=1(Z("beforeDOMElementCreation",{content:c,params:l}),M2({content:c,transform:u(u({},d),s),title:a,extra:{attributes:e,styles:L,classes:["".concat(p.cssPrefix,"-layers-text"),...z]}})))}}},provides(c){c.generateLayersText=function(c,l){var s,a,{title:z,transform:e,extra:L}=l;let t=null,M=null;return Y&&(s=parseInt(getComputedStyle(c).fontSize,10),a=c.getBoundingClientRect(),t=a.width/s,M=a.height/s),p.autoA11y&&!z&&(L.attributes["aria-hidden"]="true"),Promise.resolve([c,M2({content:c.innerHTML,width:t,height:M,transform:e,title:z,extra:L,watchable:!0})])}}},I2=new RegExp('"',"ug"),F2=[1105920,1112319],D2=u(u(u(u({},{FontAwesome:{normal:"fas",400:"fas"}}),{"Font Awesome 6 Free":{900:"fas",400:"far"},"Font Awesome 6 Pro":{900:"fas",400:"far",normal:"far",300:"fal",100:"fat"},"Font Awesome 6 Brands":{400:"fab",normal:"fab"},"Font Awesome 6 Duotone":{900:"fad",400:"fadr",normal:"fadr",300:"fadl",100:"fadt"},"Font Awesome 6 Sharp":{900:"fass",400:"fasr",normal:"fasr",300:"fasl",100:"fast"},"Font Awesome 6 Sharp Duotone":{900:"fasds",400:"fasdr",normal:"fasdr",300:"fasdl",100:"fasdt"}}),{"Font Awesome 5 Free":{900:"fas",400:"far"},"Font Awesome 5 Pro":{900:"fas",400:"far",normal:"far",300:"fal"},"Font Awesome 5 Brands":{400:"fab",normal:"fab"},"Font Awesome 5 Duotone":{900:"fad"}}),{"Font Awesome Kit":{400:"fak",normal:"fak"},"Font Awesome Kit Duotone":{400:"fakd",normal:"fakd"}}),T2=Object.keys(D2).reduce((c,l)=>(c[l.toLowerCase()]=D2[l],c),{}),R2=Object.keys(T2).reduce((c,l)=>{var s=T2[l];return c[l]=s[900]||[...Object.entries(s)][0][1],c},{});function _2(C,o){let n="".concat(a1).concat(o.replace(":","-"));return new Promise((t,s)=>{if(null!==C.getAttribute(n))return t();var a,z,M=b(C.children).filter(c=>c.getAttribute(s1)===o)[0],r=l.getComputedStyle(C,o),m=r.getPropertyValue("font-family"),f=m.match(n1),i=r.getPropertyValue("font-weight");let c=r.getPropertyValue("content");if(M&&!f)return C.removeChild(M),t();if(f&&"none"!==c&&""!==c){let c=r.getPropertyValue("content"),e=(z=i,r=m.replace(/^['"]|['"]$/g,"").toLowerCase(),i=parseInt(z),i=isNaN(i)?"normal":i,(T2[r]||{})[i]||R2[r]);z=c,m=z.replace(I2,""),z=0,i=(a=m).length,r=(i=55296<=(r=a.charCodeAt(z))&&r<=56319&&z+1=F2[0]&&i<=F2[1];var{value:m,isSecondary:r}={value:j1((i=2===m.length&&m[0]===m[1])?m[0]:m),isSecondary:r||i},i=f[0].startsWith("FontAwesome");let l=U1(e,m),L=l;if(i&&(a=m,f=_1[a],i=U1("fas",a),(m=f||(i?{prefix:"fas",iconName:i}:null)||{prefix:null,iconName:null}).iconName)&&m.prefix&&(l=m.iconName,e=m.prefix),!l||r||M&&M.getAttribute(z1)===e&&M.getAttribute(e1)===L)t();else{C.setAttribute(n,L),M&&C.removeChild(M);let a={iconName:null,title:null,titleId:null,prefix:null,transform:d,symbol:!1,mask:{iconName:null,prefix:null,rest:[]},maskId:null,extra:{classes:[],styles:{},attributes:{}}},z=a.extra;z.attributes[s1]=o,i2(l,e).then(c=>{var l=t2(u(u({},a),{},{icons:{main:c,mask:X1()},prefix:e,iconName:L,extra:z,watchable:!0})),s=h.createElementNS("http://www.w3.org/2000/svg","svg");"::before"===o?C.insertBefore(s,C.firstChild):C.appendChild(s),s.outerHTML=l.map(c=>w(c)).join("\n"),C.removeAttribute(n),t()}).catch(s)}}else t()})}function Y2(c){return Promise.all([_2(c,"::before"),_2(c,"::after")])}function W2(c){return!(c.parentNode===document.head||~M1.indexOf(c.tagName.toUpperCase())||c.getAttribute(s1)||c.parentNode&&"svg"===c.parentNode.tagName)}function U2(z){if(r)return new Promise((c,l)=>{var s=b(z.querySelectorAll("*")).filter(W2).map(Y2);let a=n2.begin("searchPseudoElements");H2(),Promise.all(s).then(()=>{a(),V2(),c()}).catch(()=>{a(),V2(),l()})})}let B2={hooks(){return{mutationObserverCallbacks(c){return c.pseudoElementsCallback=U2,c}}},provides(c){c.pseudoElements2svg=function(c){var{node:l=h}=c;p.searchPseudoElements&&U2(l)}}},X2=!1,G2={mixout(){return{dom:{unwatch(){H2(),X2=!0}}}},hooks(){return{bootstrap(){y2(s2("mutationObserverCallbacks",{}))},noAuto(){w2&&w2.disconnect()},watch(c){var l=c.observeMutationsRoot;X2?V2():y2(s2("mutationObserverCallbacks",{observeMutationsRoot:l}))}}}},Q2=c=>c.toLowerCase().split(" ").reduce((c,l)=>{var s=l.toLowerCase().split("-"),a=s[0],z=s.slice(1).join("-");if(a&&"h"===z)c.flipX=!0;else if(a&&"v"===z)c.flipY=!0;else if(z=parseFloat(z),!isNaN(z))switch(a){case"grow":c.size=c.size+z;break;case"shrink":c.size=c.size-z;break;case"left":c.x=c.x-z;break;case"right":c.x=c.x+z;break;case"up":c.y=c.y-z;break;case"down":c.y=c.y+z;break;case"rotate":c.rotate=c.rotate+z}return c},{size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0}),K2={mixout(){return{parse:{transform:c=>Q2(c)}}},hooks(){return{parseNodeAttributes(c,l){var s=l.getAttribute("data-fa-transform");return s&&(c.transform=Q2(s)),c}}},provides(c){c.generateAbstractTransformGrouping=function(c){var{main:l,transform:s,containerWidth:a,iconWidth:z}=c,a={transform:"translate(".concat(a/2," 256)")},e="translate(".concat(32*s.x,", ").concat(32*s.y,") "),L="scale(".concat(s.size/16*(s.flipX?-1:1),", ").concat(s.size/16*(s.flipY?-1:1),") "),s="rotate(".concat(s.rotate," 0 0)"),a={outer:a,inner:{transform:"".concat(e," ").concat(L," ").concat(s)},path:{transform:"translate(".concat(z/2*-1," -256)")}};return{tag:"g",attributes:u({},a.outer),children:[{tag:"g",attributes:u({},a.inner),children:[{tag:l.icon.tag,children:l.icon.children,attributes:u(u({},l.icon.attributes),a.path)}]}]}}}},J2={x:0,y:0,width:"100%",height:"100%"};function $2(c){return c.attributes&&(c.attributes.fill||(!(1c.trim())):X1();return s.prefix||(s.prefix=k),c.mask=s,c.maskId=l.getAttribute("data-fa-mask-id"),c}}},provides(c){c.generateAbstractMask=function(c){var{children:l,attributes:s,main:a,mask:z,maskId:e,transform:L}=c,{width:a,icon:t}=a,{width:z,icon:M}=z,L=(c=>{var{transform:l,containerWidth:s,iconWidth:a}=c,s={transform:"translate(".concat(s/2," 256)")},z="translate(".concat(32*l.x,", ").concat(32*l.y,") "),e="scale(".concat(l.size/16*(l.flipX?-1:1),", ").concat(l.size/16*(l.flipY?-1:1),") "),l="rotate(".concat(l.rotate," 0 0)");return{outer:s,inner:{transform:"".concat(z," ").concat(e," ").concat(l)},path:{transform:"translate(".concat(a/2*-1," -256)")}}})({transform:L,containerWidth:z,iconWidth:a}),z={tag:"rect",attributes:u(u({},J2),{},{fill:"white"})},a=t.children?{children:t.children.map($2)}:{},t={tag:"g",attributes:u({},L.inner),children:[$2(u({tag:t.tag,attributes:u(u({},t.attributes),L.path)},a))]},a={tag:"g",attributes:u({},L.outer),children:[t]},L="mask-".concat(e||g()),t="clip-".concat(e||g()),e={tag:"mask",attributes:u(u({},J2),{},{id:L,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[z,a]},z={tag:"defs",children:[{tag:"clipPath",attributes:{id:t},children:"g"===(c=M).tag?c.children:[c]},e]};return l.push(z,{tag:"rect",attributes:u({fill:"currentColor","clip-path":"url(#".concat(t,")"),mask:"url(#".concat(L,")")},J2)}),{children:l,attributes:s}}}},{provides(c){let e=!1;l.matchMedia&&(e=l.matchMedia("(prefers-reduced-motion: reduce)").matches),c.missingIconAbstract=function(){var c=[],l={fill:"currentColor"},s={attributeType:"XML",repeatCount:"indefinite",dur:"2s"},a=(c.push({tag:"path",attributes:u(u({},l),{},{d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"})}),u(u({},s),{},{attributeName:"opacity"})),z={tag:"circle",attributes:u(u({},l),{},{cx:"256",cy:"364",r:"28"}),children:[]};return e||z.children.push({tag:"animate",attributes:u(u({},s),{},{attributeName:"r",values:"28;14;28;28;14;28;"})},{tag:"animate",attributes:u(u({},a),{},{values:"1;0;1;1;0;1;"})}),c.push(z),c.push({tag:"path",attributes:u(u({},l),{},{opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"}),children:e?[]:[{tag:"animate",attributes:u(u({},a),{},{values:"1;0;0;0;0;1;"})}]}),e||c.push({tag:"path",attributes:u(u({},l),{},{opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"}),children:[{tag:"animate",attributes:u(u({},a),{},{values:"0;0;1;1;0;0;"})}]}),{tag:"g",attributes:{class:"missing"},children:c}}}},{hooks(){return{parseNodeAttributes(c,l){var s=l.getAttribute("data-fa-symbol");return c.symbol=null!==s&&(""===s||s),c}}}}];{var c3=z;let a={mixoutsTo:e2}.mixoutsTo;c2=c3,x={},Object.keys(q).forEach(c=>{-1===l2.indexOf(c)&&delete q[c]}),c2.forEach(c=>{let s=c.mixout?c.mixout():{};if(Object.keys(s).forEach(l=>{"function"==typeof s[l]&&(a[l]=s[l]),"object"==typeof s[l]&&Object.keys(s[l]).forEach(c=>{a[l]||(a[l]={}),a[l][c]=s[l][c]})}),c.hooks){let l=c.hooks();Object.keys(l).forEach(c=>{x[c]||(x[c]=[]),x[c].push(l[c])})}c.provides&&c.provides(q)}),a}!function(c){try{for(var l=arguments.length,s=new Array(1{j(),Z("bootstrap")})),V.hooks=u(u({},V.hooks),{},{addPack:(c,l)=>{V.styles[c]=u(u({},V.styles[c]||{}),l),S(),j()},addPacks:c=>{c.forEach(c=>{var[l,s]=c;V.styles[l]=u(u({},V.styles[l]||{}),s)}),S(),j()},addShims:c=>{V.shims.push(...c),S(),j()}})})})(); \ No newline at end of file diff --git a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/js/brands.js b/XNSimHtml/node_modules/@fortawesome/fontawesome-free/js/brands.js deleted file mode 100644 index d67b101..0000000 --- a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/js/brands.js +++ /dev/null @@ -1,862 +0,0 @@ -/*! - * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - * Copyright 2024 Fonticons, Inc. - */ -(function () { - 'use strict'; - - let _WINDOW = {}; - let _DOCUMENT = {}; - try { - if (typeof window !== 'undefined') _WINDOW = window; - if (typeof document !== 'undefined') _DOCUMENT = document; - } catch (e) {} - const { - userAgent = '' - } = _WINDOW.navigator || {}; - const WINDOW = _WINDOW; - const DOCUMENT = _DOCUMENT; - const IS_BROWSER = !!WINDOW.document; - const IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function'; - const IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/'); - - function _defineProperty(e, r, t) { - return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { - value: t, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[r] = t, e; - } - function ownKeys(e, r) { - var t = Object.keys(e); - if (Object.getOwnPropertySymbols) { - var o = Object.getOwnPropertySymbols(e); - r && (o = o.filter(function (r) { - return Object.getOwnPropertyDescriptor(e, r).enumerable; - })), t.push.apply(t, o); - } - return t; - } - function _objectSpread2(e) { - for (var r = 1; r < arguments.length; r++) { - var t = null != arguments[r] ? arguments[r] : {}; - r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { - _defineProperty(e, r, t[r]); - }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { - Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); - }); - } - return e; - } - function _toPrimitive(t, r) { - if ("object" != typeof t || !t) return t; - var e = t[Symbol.toPrimitive]; - if (void 0 !== e) { - var i = e.call(t, r || "default"); - if ("object" != typeof i) return i; - throw new TypeError("@@toPrimitive must return a primitive value."); - } - return ("string" === r ? String : Number)(t); - } - function _toPropertyKey(t) { - var i = _toPrimitive(t, "string"); - return "symbol" == typeof i ? i : i + ""; - } - - var S = { - classic: { - fa: "solid", - fas: "solid", - "fa-solid": "solid", - far: "regular", - "fa-regular": "regular", - fal: "light", - "fa-light": "light", - fat: "thin", - "fa-thin": "thin", - fab: "brands", - "fa-brands": "brands" - }, - duotone: { - fa: "solid", - fad: "solid", - "fa-solid": "solid", - "fa-duotone": "solid", - fadr: "regular", - "fa-regular": "regular", - fadl: "light", - "fa-light": "light", - fadt: "thin", - "fa-thin": "thin" - }, - sharp: { - fa: "solid", - fass: "solid", - "fa-solid": "solid", - fasr: "regular", - "fa-regular": "regular", - fasl: "light", - "fa-light": "light", - fast: "thin", - "fa-thin": "thin" - }, - "sharp-duotone": { - fa: "solid", - fasds: "solid", - "fa-solid": "solid", - fasdr: "regular", - "fa-regular": "regular", - fasdl: "light", - "fa-light": "light", - fasdt: "thin", - "fa-thin": "thin" - } - }; - var s = "classic"; - var G = { - classic: { - 900: "fas", - 400: "far", - normal: "far", - 300: "fal", - 100: "fat" - }, - duotone: { - 900: "fad", - 400: "fadr", - 300: "fadl", - 100: "fadt" - }, - sharp: { - 900: "fass", - 400: "fasr", - 300: "fasl", - 100: "fast" - }, - "sharp-duotone": { - 900: "fasds", - 400: "fasdr", - 300: "fasdl", - 100: "fasdt" - } - }; - var xt = { - classic: { - solid: "fas", - regular: "far", - light: "fal", - thin: "fat", - brands: "fab" - }, - duotone: { - solid: "fad", - regular: "fadr", - light: "fadl", - thin: "fadt" - }, - sharp: { - solid: "fass", - regular: "fasr", - light: "fasl", - thin: "fast" - }, - "sharp-duotone": { - solid: "fasds", - regular: "fasdr", - light: "fasdl", - thin: "fasdt" - } - }; - var St = { - kit: { - fak: "kit", - "fa-kit": "kit" - }, - "kit-duotone": { - fakd: "kit-duotone", - "fa-kit-duotone": "kit-duotone" - } - }; - var Ct = { - kit: { - "fa-kit": "fak" - }, - "kit-duotone": { - "fa-kit-duotone": "fakd" - } - }; - var Wt = { - kit: { - fak: "fa-kit" - }, - "kit-duotone": { - fakd: "fa-kit-duotone" - } - }; - var Et = { - kit: { - kit: "fak" - }, - "kit-duotone": { - "kit-duotone": "fakd" - } - }; - - var ua = { - classic: { - "fa-brands": "fab", - "fa-duotone": "fad", - "fa-light": "fal", - "fa-regular": "far", - "fa-solid": "fas", - "fa-thin": "fat" - }, - duotone: { - "fa-regular": "fadr", - "fa-light": "fadl", - "fa-thin": "fadt" - }, - sharp: { - "fa-solid": "fass", - "fa-regular": "fasr", - "fa-light": "fasl", - "fa-thin": "fast" - }, - "sharp-duotone": { - "fa-solid": "fasds", - "fa-regular": "fasdr", - "fa-light": "fasdl", - "fa-thin": "fasdt" - } - }, - ga = { - classic: { - fab: "fa-brands", - fad: "fa-duotone", - fal: "fa-light", - far: "fa-regular", - fas: "fa-solid", - fat: "fa-thin" - }, - duotone: { - fadr: "fa-regular", - fadl: "fa-light", - fadt: "fa-thin" - }, - sharp: { - fass: "fa-solid", - fasr: "fa-regular", - fasl: "fa-light", - fast: "fa-thin" - }, - "sharp-duotone": { - fasds: "fa-solid", - fasdr: "fa-regular", - fasdl: "fa-light", - fasdt: "fa-thin" - } - }; - - const NAMESPACE_IDENTIFIER = '___FONT_AWESOME___'; - const PRODUCTION = (() => { - try { - return "production" === 'production'; - } catch (e$$1) { - return false; - } - })(); - function familyProxy(obj) { - // Defaults to the classic family if family is not available - return new Proxy(obj, { - get(target, prop) { - return prop in target ? target[prop] : target[s]; - } - }); - } - const _PREFIX_TO_STYLE = _objectSpread2({}, S); - - // We changed FACSSClassesToStyleId in the icons repo to be canonical and as such, "classic" family does not have any - // duotone styles. But we do still need duotone in _PREFIX_TO_STYLE below, so we are manually adding - // {'fa-duotone': 'duotone'} - _PREFIX_TO_STYLE[s] = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, { - 'fa-duotone': 'duotone' - }), S[s]), St['kit']), St['kit-duotone']); - const PREFIX_TO_STYLE = familyProxy(_PREFIX_TO_STYLE); - const _STYLE_TO_PREFIX = _objectSpread2({}, xt); - - // We changed FAStyleIdToShortPrefixId in the icons repo to be canonical and as such, "classic" family does not have any - // duotone styles. But we do still need duotone in _STYLE_TO_PREFIX below, so we are manually adding {duotone: 'fad'} - _STYLE_TO_PREFIX[s] = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, { - duotone: 'fad' - }), _STYLE_TO_PREFIX[s]), Et['kit']), Et['kit-duotone']); - const STYLE_TO_PREFIX = familyProxy(_STYLE_TO_PREFIX); - const _PREFIX_TO_LONG_STYLE = _objectSpread2({}, ga); - _PREFIX_TO_LONG_STYLE[s] = _objectSpread2(_objectSpread2({}, _PREFIX_TO_LONG_STYLE[s]), Wt['kit']); - const PREFIX_TO_LONG_STYLE = familyProxy(_PREFIX_TO_LONG_STYLE); - const _LONG_STYLE_TO_PREFIX = _objectSpread2({}, ua); - _LONG_STYLE_TO_PREFIX[s] = _objectSpread2(_objectSpread2({}, _LONG_STYLE_TO_PREFIX[s]), Ct['kit']); - const LONG_STYLE_TO_PREFIX = familyProxy(_LONG_STYLE_TO_PREFIX); - const _FONT_WEIGHT_TO_PREFIX = _objectSpread2({}, G); - const FONT_WEIGHT_TO_PREFIX = familyProxy(_FONT_WEIGHT_TO_PREFIX); - - function bunker(fn) { - try { - for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - fn(...args); - } catch (e) { - if (!PRODUCTION) { - throw e; - } - } - } - - const w = WINDOW || {}; - if (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {}; - if (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {}; - if (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {}; - if (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = []; - var namespace = w[NAMESPACE_IDENTIFIER]; - - function normalizeIcons(icons) { - return Object.keys(icons).reduce((acc, iconName) => { - const icon = icons[iconName]; - const expanded = !!icon.icon; - if (expanded) { - acc[icon.iconName] = icon.icon; - } else { - acc[iconName] = icon; - } - return acc; - }, {}); - } - function defineIcons(prefix, icons) { - let params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; - const { - skipHooks = false - } = params; - const normalized = normalizeIcons(icons); - if (typeof namespace.hooks.addPack === 'function' && !skipHooks) { - namespace.hooks.addPack(prefix, normalizeIcons(icons)); - } else { - namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), normalized); - } - - /** - * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction - * of new styles we needed to differentiate between them. Prefix `fa` is now an alias - * for `fas` so we'll ease the upgrade process for our users by automatically defining - * this as well. - */ - if (prefix === 'fas') { - defineIcons('fa', icons); - } - } - - var icons = { - "monero": [496, 512, [], "f3d0", "M352 384h108.4C417 455.9 338.1 504 248 504S79 455.9 35.6 384H144V256.2L248 361l104-105v128zM88 336V128l159.4 159.4L408 128v208h74.8c8.5-25.1 13.2-52 13.2-80C496 119 385 8 248 8S0 119 0 256c0 28 4.6 54.9 13.2 80H88z"], - "hooli": [640, 512, [], "f427", "M144.5 352l38.3.8c-13.2-4.6-26-10.2-38.3-16.8zm57.7-5.3v5.3l-19.4.8c36.5 12.5 69.9 14.2 94.7 7.2-19.9.2-45.8-2.6-75.3-13.3zm408.9-115.2c15.9 0 28.9-12.9 28.9-28.9s-12.9-24.5-28.9-24.5c-15.9 0-28.9 8.6-28.9 24.5s12.9 28.9 28.9 28.9zm-29 120.5H640V241.5h-57.9zm-73.7 0h57.9V156.7L508.4 184zm-31-119.4c-18.2-18.2-50.4-17.1-50.4-17.1s-32.3-1.1-50.4 17.1c-18.2 18.2-16.8 33.9-16.8 52.6s-1.4 34.3 16.8 52.5 50.4 17.1 50.4 17.1 32.3 1.1 50.4-17.1c18.2-18.2 16.8-33.8 16.8-52.5-.1-18.8 1.3-34.5-16.8-52.6zm-39.8 71.9c0 3.6-1.8 12.5-10.7 12.5s-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9s10.7 2.1 10.7 10.9zm-106.2-71.9c-18.2-18.2-50.4-17.1-50.4-17.1s-32.2-1.1-50.4 17.1c-1.9 1.9-3.7 3.9-5.3 6-38.2-29.6-72.5-46.5-102.1-61.1v-20.7l-22.5 10.6c-54.4-22.1-89-18.2-97.3.1 0 0-24.9 32.8 61.8 110.8V352h57.9v-28.6c-6.5-4.2-13-8.7-19.4-13.6-14.8-11.2-27.4-21.6-38.4-31.4v-31c13.1 14.7 30.5 31.4 53.4 50.3l4.5 3.6v-29.8c0-6.9 1.7-18.2 10.8-18.2s10.6 6.9 10.6 15V317c18 12.2 37.3 22.1 57.7 29.6v-93.9c0-18.7-13.4-37.4-40.6-37.4-15.8-.1-30.5 8.2-38.5 21.9v-54.3c41.9 20.9 83.9 46.5 99.9 58.3-10.2 14.6-9.3 28.1-9.3 43.7 0 18.7-1.4 34.3 16.8 52.5s50.4 17.1 50.4 17.1 32.3 1.1 50.4-17.1c18.2-18.2 16.7-33.8 16.7-52.5 0-18.5 1.5-34.2-16.7-52.3zM65.2 184v63.3c-48.7-54.5-38.9-76-35.2-79.1 13.5-11.4 37.5-8 64.4 2.1zm226.5 120.5c0 3.6-1.8 12.5-10.7 12.5s-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9s10.7 2.1 10.7 10.9z"], - "yelp": [384, 512, [], "f1e9", "M42.9 240.32l99.62 48.61c19.2 9.4 16.2 37.51-4.5 42.71L30.5 358.45a22.79 22.79 0 0 1-28.21-19.6 197.16 197.16 0 0 1 9-85.32 22.8 22.8 0 0 1 31.61-13.21zm44 239.25a199.45 199.45 0 0 0 79.42 32.11A22.78 22.78 0 0 0 192.94 490l3.9-110.82c.7-21.3-25.5-31.91-39.81-16.1l-74.21 82.4a22.82 22.82 0 0 0 4.09 34.09zm145.34-109.92l58.81 94a22.93 22.93 0 0 0 34 5.5 198.36 198.36 0 0 0 52.71-67.61A23 23 0 0 0 364.17 370l-105.42-34.26c-20.31-6.5-37.81 15.8-26.51 33.91zm148.33-132.23a197.44 197.44 0 0 0-50.41-69.31 22.85 22.85 0 0 0-34 4.4l-62 91.92c-11.9 17.7 4.7 40.61 25.2 34.71L366 268.63a23 23 0 0 0 14.61-31.21zM62.11 30.18a22.86 22.86 0 0 0-9.9 32l104.12 180.44c11.7 20.2 42.61 11.9 42.61-11.4V22.88a22.67 22.67 0 0 0-24.5-22.8 320.37 320.37 0 0 0-112.33 30.1z"], - "cc-visa": [576, 512, [], "f1f0", "M470.1 231.3s7.6 37.2 9.3 45H446c3.3-8.9 16-43.5 16-43.5-.2.3 3.3-9.1 5.3-14.9l2.8 13.4zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM152.5 331.2L215.7 176h-42.5l-39.3 106-4.3-21.5-14-71.4c-2.3-9.9-9.4-12.7-18.2-13.1H32.7l-.7 3.1c15.8 4 29.9 9.8 42.2 17.1l35.8 135h42.5zm94.4.2L272.1 176h-40.2l-25.1 155.4h40.1zm139.9-50.8c.2-17.7-10.6-31.2-33.7-42.3-14.1-7.1-22.7-11.9-22.7-19.2.2-6.6 7.3-13.4 23.1-13.4 13.1-.3 22.7 2.8 29.9 5.9l3.6 1.7 5.5-33.6c-7.9-3.1-20.5-6.6-36-6.6-39.7 0-67.6 21.2-67.8 51.4-.3 22.3 20 34.7 35.2 42.2 15.5 7.6 20.8 12.6 20.8 19.3-.2 10.4-12.6 15.2-24.1 15.2-16 0-24.6-2.5-37.7-8.3l-5.3-2.5-5.6 34.9c9.4 4.3 26.8 8.1 44.8 8.3 42.2.1 69.7-20.8 70-53zM528 331.4L495.6 176h-31.1c-9.6 0-16.9 2.8-21 12.9l-59.7 142.5H426s6.9-19.2 8.4-23.3H486c1.2 5.5 4.8 23.3 4.8 23.3H528z"], - "lastfm": [512, 512, [], "f202", "M225.8 367.1l-18.8-51s-30.5 34-76.2 34c-40.5 0-69.2-35.2-69.2-91.5 0-72.1 36.4-97.9 72.1-97.9 66.5 0 74.8 53.3 100.9 134.9 18.8 56.9 54 102.6 155.4 102.6 72.7 0 122-22.3 122-80.9 0-72.9-62.7-80.6-115-92.1-25.8-5.9-33.4-16.4-33.4-34 0-19.9 15.8-31.7 41.6-31.7 28.2 0 43.4 10.6 45.7 35.8l58.6-7c-4.7-52.8-41.1-74.5-100.9-74.5-52.8 0-104.4 19.9-104.4 83.9 0 39.9 19.4 65.1 68 76.8 44.9 10.6 79.8 13.8 79.8 45.7 0 21.7-21.1 30.5-61 30.5-59.2 0-83.9-31.1-97.9-73.9-32-96.8-43.6-163-161.3-163C45.7 113.8 0 168.3 0 261c0 89.1 45.7 137.2 127.9 137.2 66.2 0 97.9-31.1 97.9-31.1z"], - "shopware": [512, 512, [], "f5b5", "M403.5 455.41A246.17 246.17 0 0 1 256 504C118.81 504 8 393 8 256 8 118.81 119 8 256 8a247.39 247.39 0 0 1 165.7 63.5 3.57 3.57 0 0 1-2.86 6.18A418.62 418.62 0 0 0 362.13 74c-129.36 0-222.4 53.47-222.4 155.35 0 109 92.13 145.88 176.83 178.73 33.64 13 65.4 25.36 87 41.59a3.58 3.58 0 0 1 0 5.72zM503 233.09a3.64 3.64 0 0 0-1.27-2.44c-51.76-43-93.62-60.48-144.48-60.48-84.13 0-80.25 52.17-80.25 53.63 0 42.6 52.06 62 112.34 84.49 31.07 11.59 63.19 23.57 92.68 39.93a3.57 3.57 0 0 0 5-1.82A249 249 0 0 0 503 233.09z"], - "creative-commons-nc": [496, 512, [], "f4e8", "M247.6 8C387.4 8 496 115.9 496 256c0 147.2-118.5 248-248.4 248C113.1 504 0 393.2 0 256 0 123.1 104.7 8 247.6 8zM55.8 189.1c-7.4 20.4-11.1 42.7-11.1 66.9 0 110.9 92.1 202.4 203.7 202.4 122.4 0 177.2-101.8 178.5-104.1l-93.4-41.6c-7.7 37.1-41.2 53-68.2 55.4v38.1h-28.8V368c-27.5-.3-52.6-10.2-75.3-29.7l34.1-34.5c31.7 29.4 86.4 31.8 86.4-2.2 0-6.2-2.2-11.2-6.6-15.1-14.2-6-1.8-.1-219.3-97.4zM248.4 52.3c-38.4 0-112.4 8.7-170.5 93l94.8 42.5c10-31.3 40.4-42.9 63.8-44.3v-38.1h28.8v38.1c22.7 1.2 43.4 8.9 62 23L295 199.7c-42.7-29.9-83.5-8-70 11.1 53.4 24.1 43.8 19.8 93 41.6l127.1 56.7c4.1-17.4 6.2-35.1 6.2-53.1 0-57-19.8-105-59.3-143.9-39.3-39.9-87.2-59.8-143.6-59.8z"], - "aws": [640, 512, [], "f375", "M180.41 203.01c-.72 22.65 10.6 32.68 10.88 39.05a8.164 8.164 0 0 1-4.1 6.27l-12.8 8.96a10.66 10.66 0 0 1-5.63 1.92c-.43-.02-8.19 1.83-20.48-25.61a78.608 78.608 0 0 1-62.61 29.45c-16.28.89-60.4-9.24-58.13-56.21-1.59-38.28 34.06-62.06 70.93-60.05 7.1.02 21.6.37 46.99 6.27v-15.62c2.69-26.46-14.7-46.99-44.81-43.91-2.4.01-19.4-.5-45.84 10.11-7.36 3.38-8.3 2.82-10.75 2.82-7.41 0-4.36-21.48-2.94-24.2 5.21-6.4 35.86-18.35 65.94-18.18a76.857 76.857 0 0 1 55.69 17.28 70.285 70.285 0 0 1 17.67 52.36l-.01 69.29zM93.99 235.4c32.43-.47 46.16-19.97 49.29-30.47 2.46-10.05 2.05-16.41 2.05-27.4-9.67-2.32-23.59-4.85-39.56-4.87-15.15-1.14-42.82 5.63-41.74 32.26-1.24 16.79 11.12 31.4 29.96 30.48zm170.92 23.05c-7.86.72-11.52-4.86-12.68-10.37l-49.8-164.65c-.97-2.78-1.61-5.65-1.92-8.58a4.61 4.61 0 0 1 3.86-5.25c.24-.04-2.13 0 22.25 0 8.78-.88 11.64 6.03 12.55 10.37l35.72 140.83 33.16-140.83c.53-3.22 2.94-11.07 12.8-10.24h17.16c2.17-.18 11.11-.5 12.68 10.37l33.42 142.63L420.98 80.1c.48-2.18 2.72-11.37 12.68-10.37h19.72c.85-.13 6.15-.81 5.25 8.58-.43 1.85 3.41-10.66-52.75 169.9-1.15 5.51-4.82 11.09-12.68 10.37h-18.69c-10.94 1.15-12.51-9.66-12.68-10.75L328.67 110.7l-32.78 136.99c-.16 1.09-1.73 11.9-12.68 10.75h-18.3zm273.48 5.63c-5.88.01-33.92-.3-57.36-12.29a12.802 12.802 0 0 1-7.81-11.91v-10.75c0-8.45 6.2-6.9 8.83-5.89 10.04 4.06 16.48 7.14 28.81 9.6 36.65 7.53 52.77-2.3 56.72-4.48 13.15-7.81 14.19-25.68 5.25-34.95-10.48-8.79-15.48-9.12-53.13-21-4.64-1.29-43.7-13.61-43.79-52.36-.61-28.24 25.05-56.18 69.52-55.95 12.67-.01 46.43 4.13 55.57 15.62 1.35 2.09 2.02 4.55 1.92 7.04v10.11c0 4.44-1.62 6.66-4.87 6.66-7.71-.86-21.39-11.17-49.16-10.75-6.89-.36-39.89.91-38.41 24.97-.43 18.96 26.61 26.07 29.7 26.89 36.46 10.97 48.65 12.79 63.12 29.58 17.14 22.25 7.9 48.3 4.35 55.44-19.08 37.49-68.42 34.44-69.26 34.42zm40.2 104.86c-70.03 51.72-171.69 79.25-258.49 79.25A469.127 469.127 0 0 1 2.83 327.46c-6.53-5.89-.77-13.96 7.17-9.47a637.37 637.37 0 0 0 316.88 84.12 630.22 630.22 0 0 0 241.59-49.55c11.78-5 21.77 7.8 10.12 16.38zm29.19-33.29c-8.96-11.52-59.28-5.38-81.81-2.69-6.79.77-7.94-5.12-1.79-9.47 40.07-28.17 105.88-20.1 113.44-10.63 7.55 9.47-2.05 75.41-39.56 106.91-5.76 4.87-11.27 2.3-8.71-4.1 8.44-21.25 27.39-68.49 18.43-80.02z"], - "redhat": [512, 512, [], "f7bc", "M341.52 285.56c33.65 0 82.34-6.94 82.34-47 .22-6.74.86-1.82-20.88-96.24-4.62-19.15-8.68-27.84-42.31-44.65-26.09-13.34-82.92-35.37-99.73-35.37-15.66 0-20.2 20.17-38.87 20.17-18 0-31.31-15.06-48.12-15.06-16.14 0-26.66 11-34.78 33.62-27.5 77.55-26.28 74.27-26.12 78.27 0 24.8 97.64 106.11 228.47 106.11M429 254.84c4.65 22 4.65 24.35 4.65 27.25 0 37.66-42.33 58.56-98 58.56-125.74.08-235.91-73.65-235.91-122.33a49.55 49.55 0 0 1 4.06-19.72C58.56 200.86 0 208.93 0 260.63c0 84.67 200.63 189 359.49 189 121.79 0 152.51-55.08 152.51-98.58 0-34.21-29.59-73.05-82.93-96.24"], - "yoast": [448, 512, [], "f2b1", "M91.3 76h186l-7 18.9h-179c-39.7 0-71.9 31.6-71.9 70.3v205.4c0 35.4 24.9 70.3 84 70.3V460H91.3C41.2 460 0 419.8 0 370.5V165.2C0 115.9 40.7 76 91.3 76zm229.1-56h66.5C243.1 398.1 241.2 418.9 202.2 459.3c-20.8 21.6-49.3 31.7-78.3 32.7v-51.1c49.2-7.7 64.6-49.9 64.6-75.3 0-20.1.6-12.6-82.1-223.2h61.4L218.2 299 320.4 20zM448 161.5V460H234c6.6-9.6 10.7-16.3 12.1-19.4h182.5V161.5c0-32.5-17.1-51.9-48.2-62.9l6.7-17.6c41.7 13.6 60.9 43.1 60.9 80.5z"], - "cloudflare": [640, 512, [], "e07d", "M407.906,319.913l-230.8-2.928a4.58,4.58,0,0,1-3.632-1.926,4.648,4.648,0,0,1-.494-4.147,6.143,6.143,0,0,1,5.361-4.076L411.281,303.9c27.631-1.26,57.546-23.574,68.022-50.784l13.286-34.542a7.944,7.944,0,0,0,.524-2.936,7.735,7.735,0,0,0-.164-1.631A151.91,151.91,0,0,0,201.257,198.4,68.12,68.12,0,0,0,94.2,269.59C41.924,271.106,0,313.728,0,366.12a96.054,96.054,0,0,0,1.029,13.958,4.508,4.508,0,0,0,4.445,3.871l426.1.051c.043,0,.08-.019.122-.02a5.606,5.606,0,0,0,5.271-4l3.273-11.265c3.9-13.4,2.448-25.8-4.1-34.9C430.124,325.423,420.09,320.487,407.906,319.913ZM513.856,221.1c-2.141,0-4.271.062-6.391.164a3.771,3.771,0,0,0-3.324,2.653l-9.077,31.193c-3.9,13.4-2.449,25.786,4.1,34.89,6.02,8.4,16.054,13.323,28.238,13.9l49.2,2.939a4.491,4.491,0,0,1,3.51,1.894,4.64,4.64,0,0,1,.514,4.169,6.153,6.153,0,0,1-5.351,4.075l-51.125,2.939c-27.754,1.27-57.669,23.574-68.145,50.784l-3.695,9.606a2.716,2.716,0,0,0,2.427,3.68c.046,0,.088.017.136.017h175.91a4.69,4.69,0,0,0,4.539-3.37,124.807,124.807,0,0,0,4.682-34C640,277.3,583.524,221.1,513.856,221.1Z"], - "ups": [384, 512, [], "f7e0", "M103.2 303c-5.2 3.6-32.6 13.1-32.6-19V180H37.9v102.6c0 74.9 80.2 51.1 97.9 39V180h-32.6zM4 74.82v220.9c0 103.7 74.9 135.2 187.7 184.1 112.4-48.9 187.7-80.2 187.7-184.1V74.82c-116.3-61.6-281.8-49.6-375.4 0zm358.1 220.9c0 86.6-53.2 113.6-170.4 165.3-117.5-51.8-170.5-78.7-170.5-165.3v-126.4c102.3-93.8 231.6-100 340.9-89.8zm-209.6-107.4v212.8h32.7v-68.7c24.4 7.3 71.7-2.6 71.7-78.5 0-97.4-80.7-80.92-104.4-65.6zm32.7 117.3v-100.3c8.4-4.2 38.4-12.7 38.4 49.3 0 67.9-36.4 51.8-38.4 51zm79.1-86.4c.1 47.3 51.6 42.5 52.2 70.4.6 23.5-30.4 23-50.8 4.9v30.1c36.2 21.5 81.9 8.1 83.2-33.5 1.7-51.5-54.1-46.6-53.4-73.2.6-20.3 30.6-20.5 48.5-2.2v-28.4c-28.5-22-79.9-9.2-79.7 31.9z"], - "pixiv": [448, 512, [], "e640", "M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm171.5 84c41 0 76.3 12.9 101.4 35.2l0 0c25.2 22.2 39.8 54.1 39.8 88.8c.1 35.3-16.6 66.3-42.4 87c-25.9 20.8-60.6 32.4-98.8 32.4c-43.5 0-83.8-16.1-83.8-16.1v51.8c7.4 2.2 19.7 7 11.9 14.8H104.8c-7.7-7.8 3.6-12.4 12.1-14.8V175.5C97.1 190.9 87 204.3 81.8 214.2c6 19.4-5.3 18.5-5.3 18.5L56 199.7s72.7-83.7 179.5-83.7zm-3.6 222.9c30 0 56-11.3 73.9-29.2c17.9-18.1 27.9-41.6 28-70.2c-.1-29.3-9.5-54.6-26.7-73.6c-17.2-18.9-42.7-31.3-75.2-31.4c-26.7-.1-59.8 9-80.2 23.7V323.1c18.6 9.3 46.8 15.9 80.2 15.8z"], - "wpexplorer": [512, 512, [], "f2de", "M512 256c0 141.2-114.7 256-256 256C114.8 512 0 397.3 0 256S114.7 0 256 0s256 114.7 256 256zm-32 0c0-123.2-100.3-224-224-224C132.5 32 32 132.5 32 256s100.5 224 224 224 224-100.5 224-224zM160.9 124.6l86.9 37.1-37.1 86.9-86.9-37.1 37.1-86.9zm110 169.1l46.6 94h-14.6l-50-100-48.9 100h-14l51.1-106.9-22.3-9.4 6-14 68.6 29.1-6 14.3-16.5-7.1zm-11.8-116.3l68.6 29.4-29.4 68.3L230 246l29.1-68.6zm80.3 42.9l54.6 23.1-23.4 54.3-54.3-23.1 23.1-54.3z"], - "dyalog": [416, 512, [], "f399", "M0 32v119.2h64V96h107.2C284.6 96 352 176.2 352 255.9 352 332 293.4 416 171.2 416H0v64h171.2C331.9 480 416 367.3 416 255.9c0-58.7-22.1-113.4-62.3-154.3C308.9 56 245.7 32 171.2 32H0z"], - "bity": [496, 512, [], "f37a", "M78.4 67.2C173.8-22 324.5-24 421.5 71c14.3 14.1-6.4 37.1-22.4 21.5-84.8-82.4-215.8-80.3-298.9-3.2-16.3 15.1-36.5-8.3-21.8-22.1zm98.9 418.6c19.3 5.7 29.3-23.6 7.9-30C73 421.9 9.4 306.1 37.7 194.8c5-19.6-24.9-28.1-30.2-7.1-32.1 127.4 41.1 259.8 169.8 298.1zm148.1-2c121.9-40.2 192.9-166.9 164.4-291-4.5-19.7-34.9-13.8-30 7.9 24.2 107.7-37.1 217.9-143.2 253.4-21.2 7-10.4 36 8.8 29.7zm-62.9-79l.2-71.8c0-8.2-6.6-14.8-14.8-14.8-8.2 0-14.8 6.7-14.8 14.8l-.2 71.8c0 8.2 6.6 14.8 14.8 14.8s14.8-6.6 14.8-14.8zm71-269c2.1 90.9 4.7 131.9-85.5 132.5-92.5-.7-86.9-44.3-85.5-132.5 0-21.8-32.5-19.6-32.5 0v71.6c0 69.3 60.7 90.9 118 90.1 57.3.8 118-20.8 118-90.1v-71.6c0-19.6-32.5-21.8-32.5 0z"], - "stackpath": [448, 512, [], "f842", "M244.6 232.4c0 8.5-4.26 20.49-21.34 20.49h-19.61v-41.47h19.61c17.13 0 21.34 12.36 21.34 20.98zM448 32v448H0V32zM151.3 287.84c0-21.24-12.12-34.54-46.72-44.85-20.57-7.41-26-10.91-26-18.63s7-14.61 20.41-14.61c14.09 0 20.79 8.45 20.79 18.35h30.7l.19-.57c.5-19.57-15.06-41.65-51.12-41.65-23.37 0-52.55 10.75-52.55 38.29 0 19.4 9.25 31.29 50.74 44.37 17.26 6.15 21.91 10.4 21.91 19.48 0 15.2-19.13 14.23-19.47 14.23-20.4 0-25.65-9.1-25.65-21.9h-30.8l-.18.56c-.68 31.32 28.38 45.22 56.63 45.22 29.98 0 51.12-13.55 51.12-38.29zm125.38-55.63c0-25.3-18.43-45.46-53.42-45.46h-51.78v138.18h32.17v-47.36h19.61c30.25 0 53.42-15.95 53.42-45.36zM297.94 325L347 186.78h-31.09L268 325zm106.52-138.22h-31.09L325.46 325h29.94z"], - "buysellads": [448, 512, [], "f20d", "M224 150.7l42.9 160.7h-85.8L224 150.7zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-65.3 325.3l-94.5-298.7H159.8L65.3 405.3H156l111.7-91.6 24.2 91.6h90.8z"], - "first-order": [448, 512, [], "f2b0", "M12.9 229.2c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4h-.2zM224 96.6c-7.1 0-14.6.6-21.4 1.7l3.7 67.4-22-64c-14.3 3.7-27.7 9.4-40 16.6l29.4 61.4-45.1-50.9c-11.4 8.9-21.7 19.1-30.6 30.9l50.6 45.4-61.1-29.7c-7.1 12.3-12.9 25.7-16.6 40l64.3 22.6-68-4c-.9 7.1-1.4 14.6-1.4 22s.6 14.6 1.4 21.7l67.7-4-64 22.6c3.7 14.3 9.4 27.7 16.6 40.3l61.1-29.7L97.7 352c8.9 11.7 19.1 22.3 30.9 30.9l44.9-50.9-29.5 61.4c12.3 7.4 25.7 13.1 40 16.9l22.3-64.6-4 68c7.1 1.1 14.6 1.7 21.7 1.7 7.4 0 14.6-.6 21.7-1.7l-4-68.6 22.6 65.1c14.3-4 27.7-9.4 40-16.9L274.9 332l44.9 50.9c11.7-8.9 22-19.1 30.6-30.9l-50.6-45.1 61.1 29.4c7.1-12.3 12.9-25.7 16.6-40.3l-64-22.3 67.4 4c1.1-7.1 1.4-14.3 1.4-21.7s-.3-14.9-1.4-22l-67.7 4 64-22.3c-3.7-14.3-9.1-28-16.6-40.3l-60.9 29.7 50.6-45.4c-8.9-11.7-19.1-22-30.6-30.9l-45.1 50.9 29.4-61.1c-12.3-7.4-25.7-13.1-40-16.9L241.7 166l4-67.7c-7.1-1.2-14.3-1.7-21.7-1.7zM443.4 128v256L224 512 4.6 384V128L224 0l219.4 128zm-17.1 10.3L224 20.9 21.7 138.3v235.1L224 491.1l202.3-117.7V138.3zM224 37.1l187.7 109.4v218.9L224 474.9 36.3 365.4V146.6L224 37.1zm0 50.9c-92.3 0-166.9 75.1-166.9 168 0 92.6 74.6 167.7 166.9 167.7 92 0 166.9-75.1 166.9-167.7 0-92.9-74.9-168-166.9-168z"], - "modx": [448, 512, [], "f285", "M356 241.8l36.7 23.7V480l-133-83.8L356 241.8zM440 75H226.3l-23 37.8 153.5 96.5L440 75zm-89 142.8L55.2 32v214.5l46 29L351 217.8zM97 294.2L8 437h213.7l125-200.5L97 294.2z"], - "guilded": [448, 512, [], "e07e", "M443.427,64H4.571c0,103.26,22.192,180.06,43.418,222.358C112.046,414.135,224,448,225.256,448a312.824,312.824,0,0,0,140.55-103.477c25.907-33.923,53.1-87.19,65.916-145.761H171.833c4.14,36.429,22.177,67.946,45.1,86.944h88.589c-17.012,28.213-48.186,54.4-80.456,69.482-31.232-13.259-69.09-46.544-96.548-98.362-26.726-53.833-27.092-105.883-27.092-105.883H437.573A625.91,625.91,0,0,0,443.427,64Z"], - "vnv": [640, 512, [], "f40b", "M104.9 352c-34.1 0-46.4-30.4-46.4-30.4L2.6 210.1S-7.8 192 13 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.7-74.5c5.6-9.5 8.4-18.1 18.8-18.1h32.8c20.8 0 10.4 18.1 10.4 18.1l-55.8 111.5S174.2 352 140 352h-35.1zm395 0c-34.1 0-46.4-30.4-46.4-30.4l-55.9-111.5S387.2 192 408 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.8-74.5c5.6-9.5 8.4-18.1 18.8-18.1H627c20.8 0 10.4 18.1 10.4 18.1l-55.9 111.5S569.3 352 535.1 352h-35.2zM337.6 192c34.1 0 46.4 30.4 46.4 30.4l55.9 111.5s10.4 18.1-10.4 18.1h-32.8c-10.4 0-13.2-8.7-18.8-18.1l-36.7-74.5s-5.2-13.1-21.1-13.1c-15.9 0-21.1 13.1-21.1 13.1l-36.7 74.5c-5.6 9.4-8.4 18.1-18.8 18.1h-32.9c-20.8 0-10.4-18.1-10.4-18.1l55.9-111.5s12.2-30.4 46.4-30.4h35.1z"], - "square-js": [448, 512, ["js-square"], "f3b9", "M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM180.9 444.9c-33.7 0-53.2-17.4-63.2-38.5L152 385.7c6.6 11.7 12.6 21.6 27.1 21.6c13.8 0 22.6-5.4 22.6-26.5V237.7h42.1V381.4c0 43.6-25.6 63.5-62.9 63.5zm85.8-43L301 382.1c9 14.7 20.8 25.6 41.5 25.6c17.4 0 28.6-8.7 28.6-20.8c0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5c0-31.6 24.1-55.6 61.6-55.6c26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18c-12.3 0-20.1 7.8-20.1 18c0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2c0 37.8-29.8 58.6-69.7 58.6c-39.1 0-64.4-18.6-76.7-43z"], - "microsoft": [448, 512, [], "f3ca", "M0 32h214.6v214.6H0V32zm233.4 0H448v214.6H233.4V32zM0 265.4h214.6V480H0V265.4zm233.4 0H448V480H233.4V265.4z"], - "qq": [448, 512, [], "f1d6", "M433.754 420.445c-11.526 1.393-44.86-52.741-44.86-52.741 0 31.345-16.136 72.247-51.051 101.786 16.842 5.192 54.843 19.167 45.803 34.421-7.316 12.343-125.51 7.881-159.632 4.037-34.122 3.844-152.316 8.306-159.632-4.037-9.045-15.25 28.918-29.214 45.783-34.415-34.92-29.539-51.059-70.445-51.059-101.792 0 0-33.334 54.134-44.859 52.741-5.37-.65-12.424-29.644 9.347-99.704 10.261-33.024 21.995-60.478 40.144-105.779C60.683 98.063 108.982.006 224 0c113.737.006 163.156 96.133 160.264 214.963 18.118 45.223 29.912 72.85 40.144 105.778 21.768 70.06 14.716 99.053 9.346 99.704z"], - "orcid": [512, 512, [], "f8d2", "M294.75 188.19h-45.92V342h47.47c67.62 0 83.12-51.34 83.12-76.91 0-41.64-26.54-76.9-84.67-76.9zM256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm-80.79 360.76h-29.84v-207.5h29.84zm-14.92-231.14a19.57 19.57 0 1 1 19.57-19.57 19.64 19.64 0 0 1-19.57 19.57zM300 369h-81V161.26h80.6c76.73 0 110.44 54.83 110.44 103.85C410 318.39 368.38 369 300 369z"], - "java": [384, 512, [], "f4e4", "M277.74 312.9c9.8-6.7 23.4-12.5 23.4-12.5s-38.7 7-77.2 10.2c-47.1 3.9-97.7 4.7-123.1 1.3-60.1-8 33-30.1 33-30.1s-36.1-2.4-80.6 19c-52.5 25.4 130 37 224.5 12.1zm-85.4-32.1c-19-42.7-83.1-80.2 0-145.8C296 53.2 242.84 0 242.84 0c21.5 84.5-75.6 110.1-110.7 162.6-23.9 35.9 11.7 74.4 60.2 118.2zm114.6-176.2c.1 0-175.2 43.8-91.5 140.2 24.7 28.4-6.5 54-6.5 54s62.7-32.4 33.9-72.9c-26.9-37.8-47.5-56.6 64.1-121.3zm-6.1 270.5a12.19 12.19 0 0 1-2 2.6c128.3-33.7 81.1-118.9 19.8-97.3a17.33 17.33 0 0 0-8.2 6.3 70.45 70.45 0 0 1 11-3c31-6.5 75.5 41.5-20.6 91.4zM348 437.4s14.5 11.9-15.9 21.2c-57.9 17.5-240.8 22.8-291.6.7-18.3-7.9 16-19 26.8-21.3 11.2-2.4 17.7-2 17.7-2-20.3-14.3-131.3 28.1-56.4 40.2C232.84 509.4 401 461.3 348 437.4zM124.44 396c-78.7 22 47.9 67.4 148.1 24.5a185.89 185.89 0 0 1-28.2-13.8c-44.7 8.5-65.4 9.1-106 4.5-33.5-3.8-13.9-15.2-13.9-15.2zm179.8 97.2c-78.7 14.8-175.8 13.1-233.3 3.6 0-.1 11.8 9.7 72.4 13.6 92.2 5.9 233.8-3.3 237.1-46.9 0 0-6.4 16.5-76.2 29.7zM260.64 353c-59.2 11.4-93.5 11.1-136.8 6.6-33.5-3.5-11.6-19.7-11.6-19.7-86.8 28.8 48.2 61.4 169.5 25.9a60.37 60.37 0 0 1-21.1-12.8z"], - "invision": [448, 512, [], "f7b0", "M407.4 32H40.6C18.2 32 0 50.2 0 72.6v366.8C0 461.8 18.2 480 40.6 480h366.8c22.4 0 40.6-18.2 40.6-40.6V72.6c0-22.4-18.2-40.6-40.6-40.6zM176.1 145.6c.4 23.4-22.4 27.3-26.6 27.4-14.9 0-27.1-12-27.1-27 .1-35.2 53.1-35.5 53.7-.4zM332.8 377c-65.6 0-34.1-74-25-106.6 14.1-46.4-45.2-59-59.9.7l-25.8 103.3H177l8.1-32.5c-31.5 51.8-94.6 44.4-94.6-4.3.1-14.3.9-14 23-104.1H81.7l9.7-35.6h76.4c-33.6 133.7-32.6 126.9-32.9 138.2 0 20.9 40.9 13.5 57.4-23.2l19.8-79.4h-32.3l9.7-35.6h68.8l-8.9 40.5c40.5-75.5 127.9-47.8 101.8 38-14.2 51.1-14.6 50.7-14.9 58.8 0 15.5 17.5 22.6 31.8-16.9L386 325c-10.5 36.7-29.4 52-53.2 52z"], - "creative-commons-pd-alt": [496, 512, [], "f4ed", "M247.6 8C104.7 8 0 123.1 0 256c0 138.5 113.6 248 247.6 248C377.5 504 496 403.1 496 256 496 118.1 389.4 8 247.6 8zm.8 450.8c-112.5 0-203.7-93-203.7-202.8 0-105.4 85.5-203.3 203.7-203.3 112.6 0 202.9 89.5 202.8 203.3 0 121.7-99.6 202.8-202.8 202.8zM316.7 186h-53.2v137.2h53.2c21.4 0 70-5.1 70-68.6 0-63.4-48.6-68.6-70-68.6zm.8 108.5h-19.9v-79.7l19.4-.1c3.8 0 35-2.1 35 39.9 0 24.6-10.5 39.9-34.5 39.9zM203.7 186h-68.2v137.3h34.6V279h27c54.1 0 57.1-37.5 57.1-46.5 0-31-16.8-46.5-50.5-46.5zm-4.9 67.3h-29.2v-41.6h28.3c30.9 0 28.8 41.6.9 41.6z"], - "centercode": [512, 512, [], "f380", "M329.2 268.6c-3.8 35.2-35.4 60.6-70.6 56.8-35.2-3.8-60.6-35.4-56.8-70.6 3.8-35.2 35.4-60.6 70.6-56.8 35.1 3.8 60.6 35.4 56.8 70.6zm-85.8 235.1C96.7 496-8.2 365.5 10.1 224.3c11.2-86.6 65.8-156.9 139.1-192 161-77.1 349.7 37.4 354.7 216.6 4.1 147-118.4 262.2-260.5 254.8zm179.9-180c27.9-118-160.5-205.9-237.2-234.2-57.5 56.3-69.1 188.6-33.8 344.4 68.8 15.8 169.1-26.4 271-110.2z"], - "glide-g": [448, 512, [], "f2a6", "M407.1 211.2c-3.5-1.4-11.6-3.8-15.4-3.8-37.1 0-62.2 16.8-93.5 34.5l-.9-.9c7-47.3 23.5-91.9 23.5-140.4C320.8 29.1 282.6 0 212.4 0 97.3 0 39 113.7 39 198.4 39 286.3 90.3 335 177.6 335c12 0 11-1 11 3.8-16.9 128.9-90.8 133.1-90.8 94.6 0-39.2 45-58.6 45.5-61-.3-12.2-47-27.6-58.9-27.6-33.9.1-52.4 51.2-52.4 79.3C32 476 64.8 512 117.5 512c77.4 0 134-77.8 151.4-145.4 15.1-60.5 11.2-63.3 19.7-67.6 32.2-16.2 57.5-27 93.8-27 17.8 0 30.5 3.7 58.9 8.4 2.9 0 6.7-2.9 6.7-5.8 0-8-33.4-60.5-40.9-63.4zm-175.3-84.4c-9.3 44.7-18.6 89.6-27.8 134.3-2.3 10.2-13.3 7.8-22 7.8-38.3 0-49-41.8-49-73.1 0-47 18-109.3 61.8-133.4 7-4.1 14.8-6.7 22.6-6.7 18.6 0 20 13.3 20 28.7-.1 14.3-2.7 28.5-5.6 42.4z"], - "drupal": [448, 512, [], "f1a9", "M303.973,108.136C268.2,72.459,234.187,38.35,224.047,0c-9.957,38.35-44.25,72.459-80.019,108.136C90.467,161.7,29.716,222.356,29.716,313.436c-2.337,107.3,82.752,196.18,190.053,198.517S415.948,429.2,418.285,321.9q.091-4.231,0-8.464C418.285,222.356,357.534,161.7,303.973,108.136Zm-174.326,223a130.282,130.282,0,0,0-15.211,24.153,4.978,4.978,0,0,1-3.319,2.766h-1.659c-4.333,0-9.219-8.481-9.219-8.481h0c-1.29-2.028-2.489-4.149-3.687-6.361l-.83-1.752c-11.247-25.72-1.475-62.318-1.475-62.318h0a160.585,160.585,0,0,1,23.231-49.873A290.8,290.8,0,0,1,138.5,201.613l9.219,9.219,43.512,44.434a4.979,4.979,0,0,1,0,6.638L145.78,312.33h0Zm96.612,127.311a67.2,67.2,0,0,1-49.781-111.915c14.2-16.871,31.528-33.464,50.334-55.313,22.309,23.785,36.875,40.1,51.164,57.986a28.413,28.413,0,0,1,2.95,4.425,65.905,65.905,0,0,1,11.984,37.981,66.651,66.651,0,0,1-66.466,66.836ZM352.371,351.6h0a7.743,7.743,0,0,1-6.176,5.347H344.9a11.249,11.249,0,0,1-6.269-5.07h0a348.21,348.21,0,0,0-39.456-48.952L281.387,284.49,222.3,223.185a497.888,497.888,0,0,1-35.4-36.322,12.033,12.033,0,0,0-.922-1.382,35.4,35.4,0,0,1-4.7-9.219V174.51a31.346,31.346,0,0,1,9.218-27.656c11.432-11.431,22.955-22.954,33.833-34.939,11.984,13.275,24.8,26,37.428,38.627h0a530.991,530.991,0,0,1,69.6,79.1,147.494,147.494,0,0,1,27.011,83.8A134.109,134.109,0,0,1,352.371,351.6Z"], - "jxl": [448, 512, [], "e67b", "M412.2 32H35.8C16 32 0 48 0 67.8V444.2C0 464 16 480 35.8 480H412.2c19.8 0 35.8-16 35.8-35.8V67.8C448 48 432 32 412.2 32zM378.6 333.7c0 40.2-32.6 72.8-72.8 72.8H70.2c0-40.2 32.6-72.8 72.8-72.8H378.6zm0-113.9c0 40.2-32.6 72.8-72.8 72.8H70.2c0-40.2 32.6-72.8 72.8-72.8H378.6zm0-113.9c0 40.2-32.6 72.8-72.8 72.8H70.2c0-40.2 32.6-72.8 72.8-72.8H378.6z"], - "dart-lang": [512, 512, [], "e693", "M378.6 78.9c-2.8-.1-5.6-.2-8.5-.2l-264.1 0 143.2-72C256.6 2.3 268 0 279.6 0c13.5 0 29.4 9.2 37 16.8l62 62zM107.3 96.5l262.8 0c16 0 25.4 1.4 35.4 9.3L512 212.2 512 421l-79.3 .7L107.3 96.5zM96.5 373l0-262.2L420.3 434.6l.7 77.4-212.2 0-98.1-98.2 0 0C99.4 402.5 96.5 398.5 96.5 373zM78.7 105.3l0 267.7c0 3.3 .1 6.3 .2 9.1l-62-62C6.5 309.3 0 294.3 0 279.6c0-6.8 3.9-17.5 6.7-23.6l72-150.7z"], - "hire-a-helper": [512, 512, [], "f3b0", "M443.1 0H71.9C67.9 37.3 37.4 67.8 0 71.7v371.5c37.4 4.9 66 32.4 71.9 68.8h372.2c3-36.4 32.5-65.8 67.9-69.8V71.7c-36.4-5.9-65-35.3-68.9-71.7zm-37 404.9c-36.3 0-18.8-2-55.1-2-35.8 0-21 2-56.1 2-5.9 0-4.9-8.2 0-9.8 22.8-7.6 22.9-10.2 24.6-12.8 10.4-15.6 5.9-83 5.9-113 0-5.3-6.4-12.8-13.8-12.8H200.4c-7.4 0-13.8 7.5-13.8 12.8 0 30-4.5 97.4 5.9 113 1.7 2.5 1.8 5.2 24.6 12.8 4.9 1.6 6 9.8 0 9.8-35.1 0-20.3-2-56.1-2-36.3 0-18.8 2-55.1 2-7.9 0-5.8-10.8 0-10.8 10.2-3.4 13.5-3.5 21.7-13.8 7.7-12.9 7.9-44.4 7.9-127.8V151.3c0-22.2-12.2-28.3-28.6-32.4-8.8-2.2-4-11.8 1-11.8 36.5 0 20.6 2 57.1 2 32.7 0 16.5-2 49.2-2 3.3 0 8.5 8.3 1 10.8-4.9 1.6-27.6 3.7-27.6 39.3 0 45.6-.2 55.8 1 68.8 0 1.3 2.3 12.8 12.8 12.8h109.2c10.5 0 12.8-11.5 12.8-12.8 1.2-13 1-23.2 1-68.8 0-35.6-22.7-37.7-27.6-39.3-7.5-2.5-2.3-10.8 1-10.8 32.7 0 16.5 2 49.2 2 36.5 0 20.6-2 57.1-2 4.9 0 9.9 9.6 1 11.8-16.4 4.1-28.6 10.3-28.6 32.4v101.2c0 83.4.1 114.9 7.9 127.8 8.2 10.2 11.4 10.4 21.7 13.8 5.8 0 7.8 10.8 0 10.8z"], - "creative-commons-by": [496, 512, [], "f4e7", "M314.9 194.4v101.4h-28.3v120.5h-77.1V295.9h-28.3V194.4c0-4.4 1.6-8.2 4.6-11.3 3.1-3.1 6.9-4.7 11.3-4.7H299c4.1 0 7.8 1.6 11.1 4.7 3.1 3.2 4.8 6.9 4.8 11.3zm-101.5-63.7c0-23.3 11.5-35 34.5-35s34.5 11.7 34.5 35c0 23-11.5 34.5-34.5 34.5s-34.5-11.5-34.5-34.5zM247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3z"], - "unity": [448, 512, [], "e049", "M243.583 91.6027L323.695 138.384C326.575 140.026 326.68 144.583 323.695 146.225L228.503 201.854C225.623 203.55 222.22 203.444 219.549 201.854L124.357 146.225C121.425 144.636 121.373 139.973 124.357 138.384L204.417 91.6027V0L0 119.417V358.252L78.3843 312.477V218.914C78.3319 215.576 82.2066 213.192 85.0865 214.993L180.279 270.622C183.159 272.318 184.782 275.338 184.782 278.464V389.669C184.834 393.007 180.959 395.391 178.079 393.589L97.9673 346.808L19.583 392.583L224 512L428.417 392.583L350.033 346.808L269.921 393.589C267.093 395.338 263.114 393.06 263.218 389.669V278.464C263.218 275.126 265.051 272.159 267.721 270.622L362.914 214.993C365.741 213.245 369.72 215.47 369.616 218.914V312.477L448 358.252V119.417L243.583 0V91.6027Z"], - "whmcs": [448, 512, [], "f40d", "M448 161v-21.3l-28.5-8.8-2.2-10.4 20.1-20.7L427 80.4l-29 7.5-7.2-7.5 7.5-28.2-19.1-11.6-21.3 21-10.7-3.2-7-26.4h-22.6l-6.2 26.4-12.1 3.2-19.7-21-19.4 11 8.1 27.7-8.1 8.4-28.5-7.5-11 19.1 20.7 21-2.9 10.4-28.5 7.8-.3 21.7 28.8 7.5 2.4 12.1-20.1 19.9 10.4 18.5 29.6-7.5 7.2 8.6-8.1 26.9 19.9 11.6 19.4-20.4 11.6 2.9 6.7 28.5 22.6.3 6.7-28.8 11.6-3.5 20.7 21.6 20.4-12.1-8.8-28 7.8-8.1 28.8 8.8 10.3-20.1-20.9-18.8 2.2-12.1 29.1-7zm-119.2 45.2c-31.3 0-56.8-25.4-56.8-56.8s25.4-56.8 56.8-56.8 56.8 25.4 56.8 56.8c0 31.5-25.4 56.8-56.8 56.8zm72.3 16.4l46.9 14.5V277l-55.1 13.4-4.1 22.7 38.9 35.3-19.2 37.9-54-16.7-14.6 15.2 16.7 52.5-38.3 22.7-38.9-40.5-21.7 6.6-12.6 54-42.4-.5-12.6-53.6-21.7-5.6-36.4 38.4-37.4-21.7 15.2-50.5-13.7-16.1-55.5 14.1-19.7-34.8 37.9-37.4-4.8-22.8-54-14.1.5-40.9L54 219.9l5.7-19.7-38.9-39.4L41.5 125l53.6 14.1 15.2-15.7-15.2-52 36.4-20.7 36.8 39.4L191 84l11.6-52H245l11.6 45.9L234 72l-6.3-1.7-3.3 5.7-11 19.1-3.3 5.6 4.6 4.6 17.2 17.4-.3 1-23.8 6.5-6.2 1.7-.1 6.4-.2 12.9C153.8 161.6 118 204 118 254.7c0 58.3 47.3 105.7 105.7 105.7 50.5 0 92.7-35.4 103.2-82.8l13.2.2 6.9.1 1.6-6.7 5.6-24 1.9-.6 17.1 17.8 4.7 4.9 5.8-3.4 20.4-12.1 5.8-3.5-2-6.5-6.8-21.2z"], - "rocketchat": [576, 512, [], "f3e8", "M284.046,224.8a34.114,34.114,0,1,0,34.317,34.113A34.217,34.217,0,0,0,284.046,224.8Zm-110.45,0a34.114,34.114,0,1,0,34.317,34.113A34.217,34.217,0,0,0,173.6,224.8Zm220.923,0a34.114,34.114,0,1,0,34.317,34.113A34.215,34.215,0,0,0,394.519,224.8Zm153.807-55.319c-15.535-24.172-37.31-45.57-64.681-63.618-52.886-34.817-122.374-54-195.666-54a405.975,405.975,0,0,0-72.032,6.357,238.524,238.524,0,0,0-49.51-36.588C99.684-11.7,40.859.711,11.135,11.421A14.291,14.291,0,0,0,5.58,34.782C26.542,56.458,61.222,99.3,52.7,138.252c-33.142,33.9-51.112,74.776-51.112,117.337,0,43.372,17.97,84.248,51.112,118.148,8.526,38.956-26.154,81.816-47.116,103.491a14.284,14.284,0,0,0,5.555,23.34c29.724,10.709,88.549,23.147,155.324-10.2a238.679,238.679,0,0,0,49.51-36.589A405.972,405.972,0,0,0,288,460.14c73.313,0,142.8-19.159,195.667-53.975,27.371-18.049,49.145-39.426,64.679-63.619,17.309-26.923,26.07-55.916,26.07-86.125C574.394,225.4,565.634,196.43,548.326,169.485ZM284.987,409.9a345.65,345.65,0,0,1-89.446-11.5l-20.129,19.393a184.366,184.366,0,0,1-37.138,27.585,145.767,145.767,0,0,1-52.522,14.87c.983-1.771,1.881-3.563,2.842-5.356q30.258-55.68,16.325-100.078c-32.992-25.962-52.778-59.2-52.778-95.4,0-83.1,104.254-150.469,232.846-150.469s232.867,67.373,232.867,150.469C517.854,342.525,413.6,409.9,284.987,409.9Z"], - "vk": [448, 512, [], "f189", "M31.4907 63.4907C0 94.9813 0 145.671 0 247.04V264.96C0 366.329 0 417.019 31.4907 448.509C62.9813 480 113.671 480 215.04 480H232.96C334.329 480 385.019 480 416.509 448.509C448 417.019 448 366.329 448 264.96V247.04C448 145.671 448 94.9813 416.509 63.4907C385.019 32 334.329 32 232.96 32H215.04C113.671 32 62.9813 32 31.4907 63.4907ZM75.6 168.267H126.747C128.427 253.76 166.133 289.973 196 297.44V168.267H244.16V242C273.653 238.827 304.64 205.227 315.093 168.267H363.253C359.313 187.435 351.46 205.583 340.186 221.579C328.913 237.574 314.461 251.071 297.733 261.227C316.41 270.499 332.907 283.63 346.132 299.751C359.357 315.873 369.01 334.618 374.453 354.747H321.44C316.555 337.262 306.614 321.61 292.865 309.754C279.117 297.899 262.173 290.368 244.16 288.107V354.747H238.373C136.267 354.747 78.0267 284.747 75.6 168.267Z"], - "untappd": [640, 512, [], "f405", "M401.3 49.9c-79.8 160.1-84.6 152.5-87.9 173.2l-5.2 32.8c-1.9 12-6.6 23.5-13.7 33.4L145.6 497.1c-7.6 10.6-20.4 16.2-33.4 14.6-40.3-5-77.8-32.2-95.3-68.5-5.7-11.8-4.5-25.8 3.1-36.4l148.9-207.9c7.1-9.9 16.4-18 27.2-23.7l29.3-15.5c18.5-9.8 9.7-11.9 135.6-138.9 1-4.8 1-7.3 3.6-8 3-.7 6.6-1 6.3-4.6l-.4-4.6c-.2-1.9 1.3-3.6 3.2-3.6 4.5-.1 13.2 1.2 25.6 10 12.3 8.9 16.4 16.8 17.7 21.1.6 1.8-.6 3.7-2.4 4.2l-4.5 1.1c-3.4.9-2.5 4.4-2.3 7.4.1 2.8-2.3 3.6-6.5 6.1zM230.1 36.4c3.4.9 2.5 4.4 2.3 7.4-.2 2.7 2.1 3.5 6.4 6 7.9 15.9 15.3 30.5 22.2 44 .7 1.3 2.3 1.5 3.3.5 11.2-12 24.6-26.2 40.5-42.6 1.3-1.4 1.4-3.5.1-4.9-8-8.2-16.5-16.9-25.6-26.1-1-4.7-1-7.3-3.6-8-3-.8-6.6-1-6.3-4.6.3-3.3 1.4-8.1-2.8-8.2-4.5-.1-13.2 1.1-25.6 10-12.3 8.9-16.4 16.8-17.7 21.1-1.4 4.2 3.6 4.6 6.8 5.4zM620 406.7L471.2 198.8c-13.2-18.5-26.6-23.4-56.4-39.1-11.2-5.9-14.2-10.9-30.5-28.9-1-1.1-2.9-.9-3.6.5-46.3 88.8-47.1 82.8-49 94.8-1.7 10.7-1.3 20 .3 29.8 1.9 12 6.6 23.5 13.7 33.4l148.9 207.9c7.6 10.6 20.2 16.2 33.1 14.7 40.3-4.9 78-32 95.7-68.6 5.4-11.9 4.3-25.9-3.4-36.6z"], - "mailchimp": [448, 512, [], "f59e", "M330.61 243.52a36.15 36.15 0 0 1 9.3 0c1.66-3.83 1.95-10.43.45-17.61-2.23-10.67-5.25-17.14-11.48-16.13s-6.47 8.74-4.24 19.42c1.26 6 3.49 11.14 6 14.32zM277.05 252c4.47 2 7.2 3.26 8.28 2.13 1.89-1.94-3.48-9.39-12.12-13.09a31.44 31.44 0 0 0-30.61 3.68c-3 2.18-5.81 5.22-5.41 7.06.85 3.74 10-2.71 22.6-3.48 7-.44 12.8 1.75 17.26 3.71zm-9 5.13c-9.07 1.42-15 6.53-13.47 10.1.9.34 1.17.81 5.21-.81a37 37 0 0 1 18.72-1.95c2.92.34 4.31.52 4.94-.49 1.46-2.22-5.71-8-15.39-6.85zm54.17 17.1c3.38-6.87-10.9-13.93-14.3-7s10.92 13.88 14.32 6.97zm15.66-20.47c-7.66-.13-7.95 15.8-.26 15.93s7.98-15.81.28-15.96zm-218.79 78.9c-1.32.31-6 1.45-8.47-2.35-5.2-8 11.11-20.38 3-35.77-9.1-17.47-27.82-13.54-35.05-5.54-8.71 9.6-8.72 23.54-5 24.08 4.27.57 4.08-6.47 7.38-11.63a12.83 12.83 0 0 1 17.85-3.72c11.59 7.59 1.37 17.76 2.28 28.62 1.39 16.68 18.42 16.37 21.58 9a2.08 2.08 0 0 0-.2-2.33c.03.89.68-1.3-3.35-.39zm299.72-17.07c-3.35-11.73-2.57-9.22-6.78-20.52 2.45-3.67 15.29-24-3.07-43.25-10.4-10.92-33.9-16.54-41.1-18.54-1.5-11.39 4.65-58.7-21.52-83 20.79-21.55 33.76-45.29 33.73-65.65-.06-39.16-48.15-51-107.42-26.47l-12.55 5.33c-.06-.05-22.71-22.27-23.05-22.57C169.5-18-41.77 216.81 25.78 273.85l14.76 12.51a72.49 72.49 0 0 0-4.1 33.5c3.36 33.4 36 60.42 67.53 60.38 57.73 133.06 267.9 133.28 322.29 3 1.74-4.47 9.11-24.61 9.11-42.38s-10.09-25.27-16.53-25.27zm-316 48.16c-22.82-.61-47.46-21.15-49.91-45.51-6.17-61.31 74.26-75.27 84-12.33 4.54 29.64-4.67 58.49-34.12 57.81zM84.3 249.55C69.14 252.5 55.78 261.09 47.6 273c-4.88-4.07-14-12-15.59-15-13.01-24.85 14.24-73 33.3-100.21C112.42 90.56 186.19 39.68 220.36 48.91c5.55 1.57 23.94 22.89 23.94 22.89s-34.15 18.94-65.8 45.35c-42.66 32.85-74.89 80.59-94.2 132.4zM323.18 350.7s-35.74 5.3-69.51-7.07c6.21-20.16 27 6.1 96.4-13.81 15.29-4.38 35.37-13 51-25.35a102.85 102.85 0 0 1 7.12 24.28c3.66-.66 14.25-.52 11.44 18.1-3.29 19.87-11.73 36-25.93 50.84A106.86 106.86 0 0 1 362.55 421a132.45 132.45 0 0 1-20.34 8.58c-53.51 17.48-108.3-1.74-126-43a66.33 66.33 0 0 1-3.55-9.74c-7.53-27.2-1.14-59.83 18.84-80.37 1.23-1.31 2.48-2.85 2.48-4.79a8.45 8.45 0 0 0-1.92-4.54c-7-10.13-31.19-27.4-26.33-60.83 3.5-24 24.49-40.91 44.07-39.91l5 .29c8.48.5 15.89 1.59 22.88 1.88 11.69.5 22.2-1.19 34.64-11.56 4.2-3.5 7.57-6.54 13.26-7.51a17.45 17.45 0 0 1 13.6 2.24c10 6.64 11.4 22.73 11.92 34.49.29 6.72 1.1 23 1.38 27.63.63 10.67 3.43 12.17 9.11 14 3.19 1.05 6.15 1.83 10.51 3.06 13.21 3.71 21 7.48 26 12.31a16.38 16.38 0 0 1 4.74 9.29c1.56 11.37-8.82 25.4-36.31 38.16-46.71 21.68-93.68 14.45-100.48 13.68-20.15-2.71-31.63 23.32-19.55 41.15 22.64 33.41 122.4 20 151.37-21.35.69-1 .12-1.59-.73-1-41.77 28.58-97.06 38.21-128.46 26-4.77-1.85-14.73-6.44-15.94-16.67 43.6 13.49 71 .74 71 .74s2.03-2.79-.56-2.53zm-68.47-5.7zm-83.4-187.5c16.74-19.35 37.36-36.18 55.83-45.63a.73.73 0 0 1 1 1c-1.46 2.66-4.29 8.34-5.19 12.65a.75.75 0 0 0 1.16.79c11.49-7.83 31.48-16.22 49-17.3a.77.77 0 0 1 .52 1.38 41.86 41.86 0 0 0-7.71 7.74.75.75 0 0 0 .59 1.19c12.31.09 29.66 4.4 41 10.74.76.43.22 1.91-.64 1.72-69.55-15.94-123.08 18.53-134.5 26.83a.76.76 0 0 1-1-1.12z"], - "css3-alt": [384, 512, [], "f38b", "M0 32l34.9 395.8L192 480l157.1-52.2L384 32H0zm313.1 80l-4.8 47.3L193 208.6l-.3.1h111.5l-12.8 146.6-98.2 28.7-98.8-29.2-6.4-73.9h48.9l3.2 38.3 52.6 13.3 54.7-15.4 3.7-61.6-166.3-.5v-.1l-.2.1-3.6-46.3L193.1 162l6.5-2.7H76.7L70.9 112h242.2z"], - "square-reddit": [448, 512, ["reddit-square"], "f1a2", "M64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32zM305.9 166.4c20.6 0 37.3-16.7 37.3-37.3s-16.7-37.3-37.3-37.3c-18 0-33.1 12.8-36.6 29.8c-30.2 3.2-53.8 28.8-53.8 59.9l0 .2c-32.8 1.4-62.8 10.7-86.6 25.5c-8.8-6.8-19.9-10.9-32-10.9c-28.9 0-52.3 23.4-52.3 52.3c0 21 12.3 39 30.1 47.4c1.7 60.7 67.9 109.6 149.3 109.6s147.6-48.9 149.3-109.7c17.7-8.4 29.9-26.4 29.9-47.3c0-28.9-23.4-52.3-52.3-52.3c-12 0-23 4-31.9 10.8c-24-14.9-54.3-24.2-87.5-25.4l0-.1c0-22.2 16.5-40.7 37.9-43.7l0 0c3.9 16.5 18.7 28.7 36.3 28.7zM155 248.1c14.6 0 25.8 15.4 25 34.4s-11.8 25.9-26.5 25.9s-27.5-7.7-26.6-26.7s13.5-33.5 28.1-33.5zm166.4 33.5c.9 19-12 26.7-26.6 26.7s-25.6-6.9-26.5-25.9c-.9-19 10.3-34.4 25-34.4s27.3 14.6 28.1 33.5zm-42.1 49.6c-9 21.5-30.3 36.7-55.1 36.7s-46.1-15.1-55.1-36.7c-1.1-2.6 .7-5.4 3.4-5.7c16.1-1.6 33.5-2.5 51.7-2.5s35.6 .9 51.7 2.5c2.7 .3 4.5 3.1 3.4 5.7z"], - "vimeo-v": [448, 512, [], "f27d", "M447.8 153.6c-2 43.6-32.4 103.3-91.4 179.1-60.9 79.2-112.4 118.8-154.6 118.8-26.1 0-48.2-24.1-66.3-72.3C100.3 250 85.3 174.3 56.2 174.3c-3.4 0-15.1 7.1-35.2 21.1L0 168.2c51.6-45.3 100.9-95.7 131.8-98.5 34.9-3.4 56.3 20.5 64.4 71.5 28.7 181.5 41.4 208.9 93.6 126.7 18.7-29.6 28.8-52.1 30.2-67.6 4.8-45.9-35.8-42.8-63.3-31 22-72.1 64.1-107.1 126.2-105.1 45.8 1.2 67.5 31.1 64.9 89.4z"], - "contao": [512, 512, [], "f26d", "M45.4 305c14.4 67.1 26.4 129 68.2 175H34c-18.7 0-34-15.2-34-34V66c0-18.7 15.2-34 34-34h57.7C77.9 44.6 65.6 59.2 54.8 75.6c-45.4 70-27 146.8-9.4 229.4zM478 32h-90.2c21.4 21.4 39.2 49.5 52.7 84.1l-137.1 29.3c-14.9-29-37.8-53.3-82.6-43.9-24.6 5.3-41 19.3-48.3 34.6-8.8 18.7-13.2 39.8 8.2 140.3 21.1 100.2 33.7 117.7 49.5 131.2 12.9 11.1 33.4 17 58.3 11.7 44.5-9.4 55.7-40.7 57.4-73.2l137.4-29.6c3.2 71.5-18.7 125.2-57.4 163.6H478c18.7 0 34-15.2 34-34V66c0-18.8-15.2-34-34-34z"], - "square-font-awesome": [448, 512, [], "e5ad", "M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm90 122c0 9.3-4.8 17.4-12.1 22l188.9 0c7.3 0 13.2 5.9 13.2 13.2c0 1.8-.4 3.7-1.1 5.4L312 264l30.9 69.4c.7 1.7 1.1 3.5 1.1 5.4c0 7.3-5.9 13.2-13.2 13.2L144 352l0 32-32 0 0-32 0-176 0-1.5c-6.1-4.8-10-12.2-10-20.5c0-14.4 11.6-26 26-26s26 11.6 26 26z"], - "deskpro": [480, 512, [], "f38f", "M205.9 512l31.1-38.4c12.3-.2 25.6-1.4 36.5-6.6 38.9-18.6 38.4-61.9 38.3-63.8-.1-5-.8-4.4-28.9-37.4H362c-.2 50.1-7.3 68.5-10.2 75.7-9.4 23.7-43.9 62.8-95.2 69.4-8.7 1.1-32.8 1.2-50.7 1.1zm200.4-167.7c38.6 0 58.5-13.6 73.7-30.9l-175.5-.3-17.4 31.3 119.2-.1zm-43.6-223.9v168.3h-73.5l-32.7 55.5H250c-52.3 0-58.1-56.5-58.3-58.9-1.2-13.2-21.3-11.6-20.1 1.8 1.4 15.8 8.8 40 26.4 57.1h-91c-25.5 0-110.8-26.8-107-114V16.9C0 .9 9.7.3 15 .1h82c.2 0 .3.1.5.1 4.3-.4 50.1-2.1 50.1 43.7 0 13.3 20.2 13.4 20.2 0 0-18.2-5.5-32.8-15.8-43.7h84.2c108.7-.4 126.5 79.4 126.5 120.2zm-132.5 56l64 29.3c13.3-45.5-42.2-71.7-64-29.3z"], - "brave": [448, 512, [], "e63c", "M145.5 0H224h78.5l44.7 50.8s39.3-10.9 57.8 7.6s33.8 34.9 33.8 34.9l-12 29.5 15.3 43.7s-44.9 170.2-50.1 191c-10.4 40.9-17.4 56.8-46.9 77.5s-82.9 56.8-91.6 62.2c-1.9 1.2-3.9 2.5-5.9 3.9c-7.5 5.1-15.8 10.8-23.5 10.8l0 0 0 0c-7.7 0-16.1-5.7-23.5-10.8c-2-1.4-4-2.8-5.9-3.9c-8.7-5.5-62.1-41.5-91.6-62.2s-36.5-36.6-46.9-77.5c-5.3-20.8-50.1-191-50.1-191l15.3-43.7L9.2 93.3s15.3-16.4 33.8-34.9s57.8-7.6 57.8-7.6L145.5 0zM224 407.6l0 0c3.7 0 8.9-4.7 13-8.4c.6-.5 1.2-1.1 1.7-1.5c4.2-3.7 47.8-37.5 51-39.8s5.4-6.5 1.9-8.7c-2.8-1.7-10-5.5-20.3-10.8c-3-1.6-6.3-3.2-9.7-5c-15.4-8-34.5-14.7-37.5-14.7l0 0 0 0c-3 0-22.1 6.8-37.5 14.7c-3.5 1.8-6.7 3.5-9.7 5c-10.3 5.3-17.6 9.1-20.3 10.8c-3.6 2.2-1.4 6.4 1.9 8.7s46.8 36.1 51 39.8c.5 .5 1.1 1 1.7 1.5c4.1 3.7 9.3 8.4 13 8.4l0 0zm0-165.7l0 0c4.7 0 17.6-3 26.4-5l0 0 2-.5c7.8-1.8 7.3-6.3 6.4-13c-.1-.8-.2-1.6-.3-2.4c-.6-6.1-5.8-33.1-9.1-50.3c-1.1-5.8-2-10.5-2.4-12.9c-1.5-8.1-.6-9.4 .7-11.3c.2-.3 .5-.7 .7-1.1c1.4-2.3 16-6.2 27.9-9.5l0 0c2.5-.7 4.8-1.3 6.9-1.9c10.6-3 32.4-.6 44.2 .6c1.8 .2 3.4 .4 4.7 .5c9.6 .9 10.4 2.3 7.2 3.8c-2.3 1.1-16.2 6.3-28.7 10.9l0 0 0 0c-4.7 1.8-9.2 3.5-12.8 4.8c-1.5 .5-3 1.1-4.5 1.7c-12.5 4.6-27.2 10-28.9 19.4c-1.5 8.3 5.2 19.9 11.3 30.3l0 0c1.6 2.8 3.2 5.5 4.6 8.1c6.3 11.9 6.5 13.3 6.1 18.1c-.4 3.9-14.5 12.7-22.4 17.6l0 0c-1.8 1.1-3.3 2.1-4.2 2.7c-.8 .5-2.1 1.4-3.8 2.4c-8.6 5.2-26.3 16-26.3 22.5c0 7.8 24.6 28.1 32.4 33.2s28.9 16.1 37.9 17.8s23-8.5 31.2-23.8c7.7-14.4 1.7-28.5-3.2-40l-.9-2.2c-4.5-10.6 1.9-17 6.2-21.3l0 0c.5-.5 1-1 1.4-1.4L377.7 194c1.3-1.3 2.5-2.6 3.7-3.8l0 0c5.8-5.7 10.8-10.5 10.8-22.8c0-14.9-57.5-84.5-57.5-84.5s-48.5 9.3-55.1 9.3c-5.2 0-15.3-3.5-25.8-7.1l0 0c-2.7-.9-5.4-1.9-8-2.7C232.8 78.1 224 78 224 78l0 0 0 0s-8.7 0-21.8 4.4c-2.7 .9-5.4 1.8-8 2.7l0 0c-10.5 3.6-20.6 7.1-25.8 7.1c-6.5 0-55.1-9.3-55.1-9.3s-57.5 69.6-57.5 84.5c0 12.3 4.9 17.1 10.8 22.8l0 0c1.2 1.2 2.5 2.4 3.7 3.8l43.1 45.8c.4 .5 .9 .9 1.4 1.4l0 0c4.3 4.3 10.6 10.7 6.2 21.3l-.9 2.2c-4.9 11.5-11 25.6-3.2 40c8.2 15.3 22.2 25.5 31.2 23.8s30.1-12.7 37.9-17.8s32.4-25.4 32.4-33.2c0-6.5-17.7-17.3-26.3-22.5c-1.7-1-3.1-1.9-3.8-2.4c-.9-.6-2.4-1.5-4.2-2.7c-7.9-4.9-22-13.7-22.4-17.6c-.4-4.8-.3-6.2 6.1-18.1c1.3-2.5 2.9-5.3 4.6-8.1c6-10.4 12.8-22 11.3-30.3c-1.7-9.4-16.4-14.8-28.9-19.4c-1.6-.6-3.1-1.1-4.5-1.7c-3.6-1.4-8.1-3.1-12.8-4.8l-.1 0c-12.5-4.7-26.4-9.9-28.7-10.9c-3.2-1.5-2.3-2.8 7.2-3.8c1.3-.1 2.9-.3 4.7-.5c11.8-1.3 33.6-3.6 44.2-.6c2.1 .6 4.4 1.2 6.9 1.9c11.9 3.2 26.5 7.2 27.9 9.5c.2 .4 .5 .7 .7 1.1c1.3 1.9 2.2 3.2 .7 11.3c-.4 2.4-1.3 7.1-2.4 12.9c-3.3 17.2-8.5 44.2-9.1 50.3c-.1 .8-.2 1.7-.3 2.4c-.8 6.7-1.4 11.2 6.4 13l2 .5 0 0c8.8 2 21.8 5 26.4 5l0 0z"], - "sistrix": [448, 512, [], "f3ee", "M448 449L301.2 300.2c20-27.9 31.9-62.2 31.9-99.2 0-93.1-74.7-168.9-166.5-168.9C74.7 32 0 107.8 0 200.9s74.7 168.9 166.5 168.9c39.8 0 76.3-14.2 105-37.9l146 148.1 30.5-31zM166.5 330.8c-70.6 0-128.1-58.3-128.1-129.9S95.9 71 166.5 71s128.1 58.3 128.1 129.9-57.4 129.9-128.1 129.9z"], - "square-instagram": [448, 512, ["instagram-square"], "e055", "M194.4 211.7a53.3 53.3 0 1 0 59.3 88.7 53.3 53.3 0 1 0 -59.3-88.7zm142.3-68.4c-5.2-5.2-11.5-9.3-18.4-12c-18.1-7.1-57.6-6.8-83.1-6.5c-4.1 0-7.9 .1-11.2 .1c-3.3 0-7.2 0-11.4-.1c-25.5-.3-64.8-.7-82.9 6.5c-6.9 2.7-13.1 6.8-18.4 12s-9.3 11.5-12 18.4c-7.1 18.1-6.7 57.7-6.5 83.2c0 4.1 .1 7.9 .1 11.1s0 7-.1 11.1c-.2 25.5-.6 65.1 6.5 83.2c2.7 6.9 6.8 13.1 12 18.4s11.5 9.3 18.4 12c18.1 7.1 57.6 6.8 83.1 6.5c4.1 0 7.9-.1 11.2-.1c3.3 0 7.2 0 11.4 .1c25.5 .3 64.8 .7 82.9-6.5c6.9-2.7 13.1-6.8 18.4-12s9.3-11.5 12-18.4c7.2-18 6.8-57.4 6.5-83c0-4.2-.1-8.1-.1-11.4s0-7.1 .1-11.4c.3-25.5 .7-64.9-6.5-83l0 0c-2.7-6.9-6.8-13.1-12-18.4zm-67.1 44.5A82 82 0 1 1 178.4 324.2a82 82 0 1 1 91.1-136.4zm29.2-1.3c-3.1-2.1-5.6-5.1-7.1-8.6s-1.8-7.3-1.1-11.1s2.6-7.1 5.2-9.8s6.1-4.5 9.8-5.2s7.6-.4 11.1 1.1s6.5 3.9 8.6 7s3.2 6.8 3.2 10.6c0 2.5-.5 5-1.4 7.3s-2.4 4.4-4.1 6.2s-3.9 3.2-6.2 4.2s-4.8 1.5-7.3 1.5l0 0c-3.8 0-7.5-1.1-10.6-3.2zM448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM357 389c-18.7 18.7-41.4 24.6-67 25.9c-26.4 1.5-105.6 1.5-132 0c-25.6-1.3-48.3-7.2-67-25.9s-24.6-41.4-25.8-67c-1.5-26.4-1.5-105.6 0-132c1.3-25.6 7.1-48.3 25.8-67s41.5-24.6 67-25.8c26.4-1.5 105.6-1.5 132 0c25.6 1.3 48.3 7.1 67 25.8s24.6 41.4 25.8 67c1.5 26.3 1.5 105.4 0 131.9c-1.3 25.6-7.1 48.3-25.8 67z"], - "battle-net": [512, 512, [], "f835", "M448.61 225.62c26.87.18 35.57-7.43 38.92-12.37 12.47-16.32-7.06-47.6-52.85-71.33 17.76-33.58 30.11-63.68 36.34-85.3 3.38-11.83 1.09-19 .45-20.25-1.72 10.52-15.85 48.46-48.2 100.05-25-11.22-56.52-20.1-93.77-23.8-8.94-16.94-34.88-63.86-60.48-88.93C252.18 7.14 238.7 1.07 228.18.22h-.05c-13.83-1.55-22.67 5.85-27.4 11-17.2 18.53-24.33 48.87-25 84.07-7.24-12.35-17.17-24.63-28.5-25.93h-.18c-20.66-3.48-38.39 29.22-36 81.29-38.36 1.38-71 5.75-93 11.23-9.9 2.45-16.22 7.27-17.76 9.72 1-.38 22.4-9.22 111.56-9.22 5.22 53 29.75 101.82 26 93.19-9.73 15.4-38.24 62.36-47.31 97.7-5.87 22.88-4.37 37.61.15 47.14 5.57 12.75 16.41 16.72 23.2 18.26 25 5.71 55.38-3.63 86.7-21.14-7.53 12.84-13.9 28.51-9.06 39.34 7.31 19.65 44.49 18.66 88.44-9.45 20.18 32.18 40.07 57.94 55.7 74.12a39.79 39.79 0 0 0 8.75 7.09c5.14 3.21 8.58 3.37 8.58 3.37-8.24-6.75-34-38-62.54-91.78 22.22-16 45.65-38.87 67.47-69.27 122.82 4.6 143.29-24.76 148-31.64 14.67-19.88 3.43-57.44-57.32-93.69zm-77.85 106.22c23.81-37.71 30.34-67.77 29.45-92.33 27.86 17.57 47.18 37.58 49.06 58.83 1.14 12.93-8.1 29.12-78.51 33.5zM216.9 387.69c9.76-6.23 19.53-13.12 29.2-20.49 6.68 13.33 13.6 26.1 20.6 38.19-40.6 21.86-68.84 12.76-49.8-17.7zm215-171.35c-10.29-5.34-21.16-10.34-32.38-15.05a722.459 722.459 0 0 0 22.74-36.9c39.06 24.1 45.9 53.18 9.64 51.95zM279.18 398c-5.51-11.35-11-23.5-16.5-36.44 43.25 1.27 62.42-18.73 63.28-20.41 0 .07-25 15.64-62.53 12.25a718.78 718.78 0 0 0 85.06-84q13.06-15.31 24.93-31.11c-.36-.29-1.54-3-16.51-12-51.7 60.27-102.34 98-132.75 115.92-20.59-11.18-40.84-31.78-55.71-61.49-20-39.92-30-82.39-31.57-116.07 12.3.91 25.27 2.17 38.85 3.88-22.29 36.8-14.39 63-13.47 64.23 0-.07-.95-29.17 20.14-59.57a695.23 695.23 0 0 0 44.67 152.84c.93-.38 1.84.88 18.67-8.25-26.33-74.47-33.76-138.17-34-173.43 20-12.42 48.18-19.8 81.63-17.81 44.57 2.67 86.36 15.25 116.32 30.71q-10.69 15.66-23.33 32.47C365.63 152 339.1 145.84 337.5 146c.11 0 25.9 14.07 41.52 47.22a717.63 717.63 0 0 0-115.34-31.71 646.608 646.608 0 0 0-39.39-6.05c-.07.45-1.81 1.85-2.16 20.33C300 190.28 358.78 215.68 389.36 233c.74 23.55-6.95 51.61-25.41 79.57-24.6 37.31-56.39 67.23-84.77 85.43zm27.4-287c-44.56-1.66-73.58 7.43-94.69 20.67 2-52.3 21.31-76.38 38.21-75.28C267 52.15 305 108.55 306.58 111zm-130.65 3.1c.48 12.11 1.59 24.62 3.21 37.28-14.55-.85-28.74-1.25-42.4-1.26-.08 3.24-.12-51 24.67-49.59h.09c5.76 1.09 10.63 6.88 14.43 13.57zm-28.06 162c20.76 39.7 43.3 60.57 65.25 72.31-46.79 24.76-77.53 20-84.92 4.51-.2-.21-11.13-15.3 19.67-76.81zm210.06 74.8"], - "the-red-yeti": [512, 512, [], "f69d", "M488.23 241.7l20.7 7.1c-9.6-23.9-23.9-37-31.7-44.8l7.1-18.2c.2 0 12.3-27.8-2.5-30.7-.6-11.3-6.6-27-18.4-27-7.6-10.6-17.7-12.3-30.7-5.9a122.2 122.2 0 0 0-25.3 16.5c-5.3-6.4-3 .4-3-29.8-37.1-24.3-45.4-11.7-74.8 3l.5.5a239.36 239.36 0 0 0-68.4-13.3c-5.5-8.7-18.6-19.1-25.1-25.1l24.8 7.1c-5.5-5.5-26.8-12.9-34.2-15.2 18.2-4.1 29.8-20.8 42.5-33-34.9-10.1-67.9-5.9-97.9 11.8l12-44.2L182 0c-31.6 24.2-33 41.9-33.7 45.5-.9-2.4-6.3-19.6-15.2-27a35.12 35.12 0 0 0-.5 25.3c3 8.4 5.9 14.8 8.4 18.9-16-3.3-28.3-4.9-49.2 0h-3.7l33 14.3a194.26 194.26 0 0 0-46.7 67.4l-1.7 8.4 1.7 1.7 7.6-4.7c-3.3 11.6-5.3 19.4-6.6 25.8a200.18 200.18 0 0 0-27.8 40.3c-15 1-31.8 10.8-40.3 14.3l3 3.4 28.8 1c-.5 1-.7 2.2-1.2 3.2-7.3 6.4-39.8 37.7-33 80.7l20.2-22.4c.5 1.7.7 3.4 1.2 5.2 0 25.5.4 89.6 64.9 150.5 43.6 40 96 60.2 157.5 60.2 121.7 0 223-87.3 223-211.5 6.8-9.7-1.2 3 16.7-25.1l13 14.3 2.5-.5A181.84 181.84 0 0 0 495 255a44.74 44.74 0 0 0-6.8-13.3zM398 111.2l-.5 21.9c5.5 18.1 16.9 17.2 22.4 17.2l-3.4-4.7 22.4-5.4a242.44 242.44 0 0 1-27 0c12.8-2.1 33.3-29 43-11.3 3.4 7.6 6.4 17.2 9.3 27.8l1.7-5.9a56.38 56.38 0 0 1-1.7-15.2c5.4.5 8.8 3.4 9.3 10.1.5 6.4 1.7 14.8 3.4 25.3l4.7-11.3c4.6 0 4.5-3.6-2.5 20.7-20.9-8.7-35.1-8.4-46.5-8.4l18.2-16c-25.3 8.2-33 10.8-54.8 20.9-1.1-5.4-5-13.5-16-19.9-3.2 3.8-2.8.9-.7 14.8h-2.5a62.32 62.32 0 0 0-8.4-23.1l4.2-3.4c8.4-7.1 11.8-14.3 10.6-21.9-.5-6.4-5.4-13.5-13.5-20.7 5.6-3.4 15.2-.4 28.3 8.5zm-39.6-10.1c2.7 1.9 11.4 5.4 18.9 17.2 4.2 8.4 4 9.8 3.4 11.1-.5 2.4-.5 4.3-3 7.1-1.7 2.5-5.4 4.7-11.8 7.6-7.6-13-16.5-23.6-27.8-31.2zM91 143.1l1.2-1.7c1.2-2.9 4.2-7.6 9.3-15.2l2.5-3.4-13 12.3 5.4-4.7-10.1 9.3-4.2 1.2c12.3-24.1 23.1-41.3 32.5-50.2 9.3-9.3 16-16 20.2-19.4l-6.4 1.2c-11.3-4.2-19.4-7.1-24.8-8.4 2.5-.5 3.7-.5 3.2-.5 10.3 0 17.5.5 20.9 1.2a52.35 52.35 0 0 0 16 2.5l.5-1.7-8.4-35.8 13.5 29a42.89 42.89 0 0 0 5.9-14.3c1.7-6.4 5.4-13 10.1-19.4s7.6-10.6 9.3-11.3a234.68 234.68 0 0 0-6.4 25.3l-1.7 7.1-.5 4.7 2.5 2.5C190.4 39.9 214 34 239.8 34.5l21.1.5c-11.8 13.5-27.8 21.9-48.5 24.8a201.26 201.26 0 0 1-23.4 2.9l-.2-.5-2.5-1.2a20.75 20.75 0 0 0-14 2c-2.5-.2-4.9-.5-7.1-.7l-2.5 1.7.5 1.2c2 .2 3.9.5 6.2.7l-2 3.4 3.4-.5-10.6 11.3c-4.2 3-5.4 6.4-4.2 9.3l5.4-3.4h1.2a39.4 39.4 0 0 1 25.3-15.2v-3c6.4.5 13 1 19.4 1.2 6.4 0 8.4.5 5.4 1.2a189.6 189.6 0 0 1 20.7 13.5c13.5 10.1 23.6 21.9 30 35.4 8.8 18.2 13.5 37.1 13.5 56.6a141.13 141.13 0 0 1-3 28.3 209.91 209.91 0 0 1-16 46l2.5.5c18.2-19.7 41.9-16 49.2-16l-6.4 5.9 22.4 17.7-1.7 30.7c-5.4-12.3-16.5-21.1-33-27.8 16.5 14.8 23.6 21.1 21.9 20.2-4.8-2.8-3.5-1.9-10.8-3.7 4.1 4.1 17.5 18.8 18.2 20.7l.2.2-.2.2c0 1.8 1.6-1.2-14 22.9-75.2-15.3-106.27-42.7-141.2-63.2l11.8 1.2c-11.8-18.5-15.6-17.7-38.4-26.1L149 225c-8.8-3-18.2-3-28.3.5l7.6-10.6-1.2-1.7c-14.9 4.3-19.8 9.2-22.6 11.3-1.1-5.5-2.8-12.4-12.3-28.8l-1.2 27-13.2-5c1.5-25.2 5.4-50.5 13.2-74.6zm276.5 330c-49.9 25-56.1 22.4-59 23.9-29.8-11.8-50.9-31.7-63.5-58.8l30 16.5c-9.8-9.3-18.3-16.5-38.4-44.3l11.8 23.1-17.7-7.6c14.2 21.1 23.5 51.7 66.6 73.5-120.8 24.2-199-72.1-200.9-74.3a262.57 262.57 0 0 0 35.4 24.8c3.4 1.7 7.1 2.5 10.1 1.2l-16-20.7c9.2 4.2 9.5 4.5 69.1 29-42.5-20.7-73.8-40.8-93.2-60.2-.5 6.4-1.2 10.1-1.2 10.1a80.25 80.25 0 0 1 20.7 26.6c-39-18.9-57.6-47.6-71.3-82.6 49.9 55.1 118.9 37.5 120.5 37.1 34.8 16.4 69.9 23.6 113.9 10.6 3.3 0 20.3 17 25.3 39.1l4.2-3-2.5-23.6c9 9 24.9 22.6 34.4 13-15.6-5.3-23.5-9.5-29.5-31.7 4.6 4.2 7.6 9 27.8 15l1.2-1.2-10.5-14.2c11.7-4.8-3.5 1 32-10.8 4.3 34.3 9 49.2.7 89.5zm115.3-214.4l-2.5.5 3 9.3c-3.5 5.9-23.7 44.3-71.6 79.7-39.5 29.8-76.6 39.1-80.9 40.3l-7.6-7.1-1.2 3 14.3 16-7.1-4.7 3.4 4.2h-1.2l-21.9-13.5 9.3 26.6-19-27.9-1.2 2.5 7.6 29c-6.1-8.2-21-32.6-56.8-39.6l32.5 21.2a214.82 214.82 0 0 1-93.2-6.4c-4.2-1.2-8.9-2.5-13.5-4.2l1.2-3-44.8-22.4 26.1 22.4c-57.7 9.1-113-25.4-126.4-83.4l-2.5-16.4-22.27 22.3c19.5-57.5 25.6-57.9 51.4-70.1-9.1-5.3-1.6-3.3-38.4-9.3 15.8-5.8 33-15.4 73 5.2a18.5 18.5 0 0 1 3.7-1.7c.6-3.2.4-.8 1-11.8 3.9 10 3.6 8.7 3 9.3l1.7.5c12.7-6.5 8.9-4.5 17-8.9l-5.4 13.5 22.3-5.8-8.4 8.4 2.5 2.5c4.5-1.8 30.3 3.4 40.8 16l-23.6-2.5c39.4 23 51.5 54 55.8 69.6l1.7-1.2c-2.8-22.3-12.4-33.9-16-40.1 4.2 5 39.2 34.6 110.4 46-11.3-.5-23.1 5.4-34.9 18.9l46.7-20.2-9.3 21.9c7.6-10.1 14.8-23.6 21.2-39.6v-.5l1.2-3-1.2 16c13.5-41.8 25.3-78.5 35.4-109.7l13.5-27.8v-2l-5.4-4.2h10.1l5.9 4.2 2.5-1.2-3.4-16 12.3 18.9 41.8-20.2-14.8 13 .5 2.9 17.7-.5a184 184 0 0 1 33 4.2l-23.6 2.5-1.2 3 26.6 23.1a254.21 254.21 0 0 1 27 32c-11.2-3.3-10.3-3.4-21.2-3.4l12.3 32.5zm-6.1-71.3l-3.9 13-14.3-11.8zm-254.8 7.1c1.7 10.6 4.7 17.7 8.8 21.9-9.3 6.6-27.5 13.9-46.5 16l.5 1.2a50.22 50.22 0 0 0 24.8-2.5l-7.1 13c4.2-1.7 10.1-7.1 17.7-14.8 11.9-5.5 12.7-5.1 20.2-16-12.7-6.4-15.7-13.7-18.4-18.8zm3.7-102.3c-6.4-3.4-10.6 3-12.3 18.9s2.5 29.5 11.8 39.6 18.2 10.6 26.1 3 3.4-23.6-11.3-47.7a39.57 39.57 0 0 0-14.27-13.8zm-4.7 46.3c5.4 2.2 10.5 1.9 12.3-10.6v-4.7l-1.2.5c-4.3-3.1-2.5-4.5-1.7-6.2l.5-.5c-.9-1.2-5-8.1-12.5 4.7-.5-13.5.5-21.9 3-24.8 1.2-2.5 4.7-1.2 11.3 4.2 6.4 5.4 11.3 16 15.2 32.5 6.5 28-19.8 26.2-26.9 4.9zm-45-5.5c1.6.3 9.3-1.1 9.3-14.8h-.5c-5.4-1.1-2.2-5.5-.7-5.9-1.7-3-3.4-4.2-5.4-4.7-8.1 0-11.6 12.7-8.1 21.2a7.51 7.51 0 0 0 5.43 4.2zM216 82.9l-2.5.5.5 3a48.94 48.94 0 0 1 26.1 5.9c-2.5-5.5-10-14.3-28.3-14.3l.5 2.5zm-71.8 49.4c21.7 16.8 16.5 21.4 46.5 23.6l-2.9-4.7a42.67 42.67 0 0 0 14.8-28.3c1.7-16-1.2-29.5-8.8-41.3l13-7.6a2.26 2.26 0 0 0-.5-1.7 14.21 14.21 0 0 0-13.5 1.7c-12.7 6.7-28 20.9-29 22.4-1.7 1.7-3.4 5.9-5.4 13.5a99.61 99.61 0 0 0-2.9 23.6c-4.7-8-10.5-6.4-19.9-5.9l7.1 7.6c-16.5 0-23.3 15.4-23.6 16 6.8 0 4.6-7.6 30-12.3-4.3-6.3-3.3-5-4.9-6.6zm18.7-18.7c1.2-7.6 3.4-13 6.4-17.2 5.4-6.4 10.6-10.1 16-11.8 4.2-1.7 7.1 1.2 10.1 9.3a72.14 72.14 0 0 1 3 25.3c-.5 9.3-3.4 17.2-8.4 23.1-2.9 3.4-5.4 5.9-6.4 7.6a39.21 39.21 0 0 1-11.3-.5l-7.1-3.4-5.4-6.4c.8-10 1.3-18.8 3.1-26zm42 56.1c-34.8 14.4-34.7 14-36.1 14.3-20.8 4.7-19-24.4-18.9-24.8l5.9-1.2-.5-2.5c-20.2-2.6-31 4.2-32.5 4.9.5.5 3 3.4 5.9 9.3 4.2-6.4 8.8-10.1 15.2-10.6a83.47 83.47 0 0 0 1.7 33.7c.1.5 2.6 17.4 27.5 24.1 11.3 3 27 1.2 48.9-5.4l-9.2.5c-4.2-14.8-6.4-24.8-5.9-29.5 11.3-8.8 21.9-11.3 30.7-7.6h2.5l-11.8-7.6-7.1.5c-5.9 1.2-12.3 4.2-19.4 8.4z"], - "square-hacker-news": [448, 512, ["hacker-news-square"], "f3af", "M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM21 229.2c0 0 .1-.1 .1-.2s.1-.2 .2-.2c0 .1 0 .3-.1 .4H21zM239.2 384H207.8V281.3L128 128h37.3c41.5 77.7 48.1 95.8 54.1 112c1.6 4.3 3.1 8.5 5.2 13.6c3.2-7 5.1-11.9 7.1-17.3c5.9-15.3 12.8-33.2 53.5-108.3H320L239.2 283.1V384z"], - "edge": [512, 512, [], "f282", "M120.1 37.44C161.1 12.23 207.7-.7753 255 .0016C423 .0016 512 123.8 512 219.5C511.9 252.2 499 283.4 476.1 306.7C453.2 329.9 422.1 343.2 389.4 343.7C314.2 343.7 297.9 320.6 297.9 311.7C297.9 307.9 299.1 305.5 302.7 302.3L303.7 301.1L304.1 299.5C314.6 288 320 273.3 320 257.9C320 179.2 237.8 115.2 136 115.2C98.46 114.9 61.46 124.1 28.48 142.1C55.48 84.58 111.2 44.5 119.8 38.28C120.6 37.73 120.1 37.44 120.1 37.44V37.44zM135.7 355.5C134.3 385.5 140.3 415.5 152.1 442.7C165.7 469.1 184.8 493.7 208.6 512C149.1 500.5 97.11 468.1 59.2 422.7C21.12 376.3 0 318.4 0 257.9C0 206.7 62.4 163.5 136 163.5C172.6 162.9 208.4 174.4 237.8 196.2L234.2 197.4C182.7 215 135.7 288.1 135.7 355.5V355.5zM469.8 400L469.1 400.1C457.3 418.9 443.2 435.2 426.9 449.6C396.1 477.6 358.8 495.1 318.1 499.5C299.5 499.8 281.3 496.3 264.3 488.1C238.7 477.8 217.2 458.1 202.7 435.1C188.3 411.2 181.6 383.4 183.7 355.5C183.1 335.4 189.1 315.2 198.7 297.3C212.6 330.4 236.2 358.6 266.3 378.1C296.4 397.6 331.8 407.6 367.7 406.7C398.7 407 429.8 400 457.9 386.2L459.8 385.3C463.7 383 467.5 381.4 471.4 385.3C475.9 390.2 473.2 394.5 470.2 399.3C470 399.5 469.9 399.8 469.8 400V400z"], - "threads": [448, 512, [], "e618", "M331.5 235.7c2.2 .9 4.2 1.9 6.3 2.8c29.2 14.1 50.6 35.2 61.8 61.4c15.7 36.5 17.2 95.8-30.3 143.2c-36.2 36.2-80.3 52.5-142.6 53h-.3c-70.2-.5-124.1-24.1-160.4-70.2c-32.3-41-48.9-98.1-49.5-169.6V256v-.2C17 184.3 33.6 127.2 65.9 86.2C102.2 40.1 156.2 16.5 226.4 16h.3c70.3 .5 124.9 24 162.3 69.9c18.4 22.7 32 50 40.6 81.7l-40.4 10.8c-7.1-25.8-17.8-47.8-32.2-65.4c-29.2-35.8-73-54.2-130.5-54.6c-57 .5-100.1 18.8-128.2 54.4C72.1 146.1 58.5 194.3 58 256c.5 61.7 14.1 109.9 40.3 143.3c28 35.6 71.2 53.9 128.2 54.4c51.4-.4 85.4-12.6 113.7-40.9c32.3-32.2 31.7-71.8 21.4-95.9c-6.1-14.2-17.1-26-31.9-34.9c-3.7 26.9-11.8 48.3-24.7 64.8c-17.1 21.8-41.4 33.6-72.7 35.3c-23.6 1.3-46.3-4.4-63.9-16c-20.8-13.8-33-34.8-34.3-59.3c-2.5-48.3 35.7-83 95.2-86.4c21.1-1.2 40.9-.3 59.2 2.8c-2.4-14.8-7.3-26.6-14.6-35.2c-10-11.7-25.6-17.7-46.2-17.8H227c-16.6 0-39 4.6-53.3 26.3l-34.4-23.6c19.2-29.1 50.3-45.1 87.8-45.1h.8c62.6 .4 99.9 39.5 103.7 107.7l-.2 .2zm-156 68.8c1.3 25.1 28.4 36.8 54.6 35.3c25.6-1.4 54.6-11.4 59.5-73.2c-13.2-2.9-27.8-4.4-43.4-4.4c-4.8 0-9.6 .1-14.4 .4c-42.9 2.4-57.2 23.2-56.2 41.8l-.1 .1z"], - "napster": [496, 512, [], "f3d2", "M298.3 373.6c-14.2 13.6-31.3 24.1-50.4 30.5-19-6.4-36.2-16.9-50.3-30.5h100.7zm44-199.6c20-16.9 43.6-29.2 69.6-36.2V299c0 219.4-328 217.6-328 .3V137.7c25.9 6.9 49.6 19.6 69.5 36.4 56.8-40 132.5-39.9 188.9-.1zm-208.8-58.5c64.4-60 164.3-60.1 228.9-.2-7.1 3.5-13.9 7.3-20.6 11.5-58.7-30.5-129.2-30.4-187.9.1-6.3-4-13.9-8.2-20.4-11.4zM43.8 93.2v69.3c-58.4 36.5-58.4 121.1.1 158.3 26.4 245.1 381.7 240.3 407.6 1.5l.3-1.7c58.7-36.3 58.9-121.7.2-158.2V93.2c-17.3.5-34 3-50.1 7.4-82-91.5-225.5-91.5-307.5.1-16.3-4.4-33.1-7-50.6-7.5zM259.2 352s36-.3 61.3-1.5c10.2-.5 21.1-4 25.5-6.5 26.3-15.1 25.4-39.2 26.2-47.4-79.5-.6-99.9-3.9-113 55.4zm-135.5-55.3c.8 8.2-.1 32.3 26.2 47.4 4.4 2.5 15.2 6 25.5 6.5 25.3 1.1 61.3 1.5 61.3 1.5-13.2-59.4-33.7-56.1-113-55.4zm169.1 123.4c-3.2-5.3-6.9-7.3-6.9-7.3-24.8 7.3-52.2 6.9-75.9 0 0 0-2.9 1.5-6.4 6.6-2.8 4.1-3.7 9.6-3.7 9.6 29.1 17.6 67.1 17.6 96.2 0-.1-.1-.3-4-3.3-8.9z"], - "square-snapchat": [448, 512, ["snapchat-square"], "f2ad", "M384,32H64A64,64,0,0,0,0,96V416a64,64,0,0,0,64,64H384a64,64,0,0,0,64-64V96A64,64,0,0,0,384,32Zm-3.907,319.309-.083.1a32.364,32.364,0,0,1-8.717,6.823,90.26,90.26,0,0,1-20.586,8.2,12.694,12.694,0,0,0-3.852,1.76c-2.158,1.909-2.1,4.64-4.4,8.55a23.137,23.137,0,0,1-6.84,7.471c-6.707,4.632-14.244,4.923-22.23,5.23-7.214.274-15.39.581-24.729,3.669-3.761,1.245-7.753,3.694-12.377,6.533-11.265,6.9-26.68,16.353-52.3,16.353s-40.925-9.4-52.106-16.279c-4.657-2.888-8.675-5.362-12.543-6.64-9.339-3.08-17.516-3.4-24.729-3.67-7.986-.307-15.523-.6-22.231-5.229a23.085,23.085,0,0,1-6.01-6.11c-3.2-4.632-2.855-7.8-5.254-9.895a13.428,13.428,0,0,0-4.1-1.834,89.986,89.986,0,0,1-20.313-8.127,32.905,32.905,0,0,1-8.3-6.284c-6.583-6.757-8.276-14.776-5.686-21.824,3.436-9.338,11.571-12.111,19.4-16.262,14.776-8.027,26.348-18.055,34.433-29.884a68.236,68.236,0,0,0,5.985-10.567c.789-2.158.772-3.329.241-4.416a7.386,7.386,0,0,0-2.208-2.217c-2.532-1.676-5.113-3.353-6.882-4.5-3.27-2.141-5.868-3.818-7.529-4.98-6.267-4.383-10.65-9.04-13.4-14.245a28.4,28.4,0,0,1-1.369-23.584c4.134-10.924,14.469-17.706,26.978-17.706a37.141,37.141,0,0,1,7.845.83c.689.15,1.37.307,2.042.482-.108-7.43.058-15.357.722-23.119,2.358-27.261,11.912-41.589,21.874-52.994a86.836,86.836,0,0,1,22.28-17.931C188.254,100.383,205.312,96,224,96s35.828,4.383,50.944,13.016a87.169,87.169,0,0,1,22.239,17.9c9.961,11.406,19.516,25.709,21.874,52.995a231.194,231.194,0,0,1,.713,23.118c.673-.174,1.362-.332,2.051-.481a37.131,37.131,0,0,1,7.844-.83c12.5,0,22.82,6.782,26.971,17.706a28.37,28.37,0,0,1-1.4,23.559c-2.74,5.2-7.123,9.861-13.39,14.244-1.668,1.187-4.258,2.864-7.529,4.981-1.835,1.187-4.541,2.947-7.164,4.682a6.856,6.856,0,0,0-1.951,2.034c-.506,1.046-.539,2.191.166,4.208a69.015,69.015,0,0,0,6.085,10.792c8.268,12.1,20.188,22.313,35.454,30.407,1.486.772,2.98,1.5,4.441,2.258.722.332,1.569.763,2.491,1.3,4.9,2.723,9.2,6.01,11.455,12.153C387.821,336.915,386.269,344.7,380.093,351.309Zm-16.719-18.461c-50.313-24.314-58.332-61.918-58.689-64.749-.431-3.379-.921-6.035,2.806-9.472,3.594-3.328,19.541-13.19,23.965-16.278,7.33-5.114,10.534-10.219,8.16-16.495-1.66-4.316-5.686-5.976-9.961-5.976a18.5,18.5,0,0,0-3.993.448c-8.035,1.743-15.838,5.769-20.354,6.857a7.1,7.1,0,0,1-1.66.224c-2.408,0-3.279-1.071-3.088-3.968.564-8.783,1.759-25.925.373-41.937-1.884-22.032-8.99-32.948-17.432-42.6-4.051-4.624-23.135-24.654-59.536-24.654S168.53,134.359,164.479,139c-8.434,9.654-15.531,20.57-17.432,42.6-1.386,16.013-.141,33.147.373,41.937.166,2.756-.68,3.968-3.088,3.968a7.1,7.1,0,0,1-1.66-.224c-4.507-1.087-12.31-5.113-20.346-6.856a18.494,18.494,0,0,0-3.993-.449c-4.25,0-8.3,1.636-9.961,5.977-2.374,6.276.847,11.381,8.168,16.494,4.425,3.088,20.371,12.958,23.966,16.279,3.719,3.437,3.237,6.093,2.805,9.471-.356,2.79-8.384,40.394-58.689,64.749-2.946,1.428-7.96,4.45.88,9.331,13.88,7.628,23.111,6.807,30.3,11.43,6.093,3.927,2.5,12.394,6.923,15.449,5.454,3.76,21.583-.266,42.335,6.6,17.433,5.744,28.116,22.015,58.963,22.015s41.788-16.3,58.938-21.973c20.795-6.865,36.89-2.839,42.336-6.6,4.433-3.055.822-11.522,6.923-15.448,7.181-4.624,16.411-3.8,30.3-11.472C371.36,337.355,366.346,334.333,363.374,332.848Z"], - "google-plus-g": [640, 512, [], "f0d5", "M386.061 228.496c1.834 9.692 3.143 19.384 3.143 31.956C389.204 370.205 315.599 448 204.8 448c-106.084 0-192-85.915-192-192s85.916-192 192-192c51.864 0 95.083 18.859 128.611 50.292l-52.126 50.03c-14.145-13.621-39.028-29.599-76.485-29.599-65.484 0-118.92 54.221-118.92 121.277 0 67.056 53.436 121.277 118.92 121.277 75.961 0 104.513-54.745 108.965-82.773H204.8v-66.009h181.261zm185.406 6.437V179.2h-56.001v55.733h-55.733v56.001h55.733v55.733h56.001v-55.733H627.2v-56.001h-55.733z"], - "artstation": [512, 512, [], "f77a", "M2 377.4l43 74.3A51.35 51.35 0 0 0 90.9 480h285.4l-59.2-102.6zM501.8 350L335.6 59.3A51.38 51.38 0 0 0 290.2 32h-88.4l257.3 447.6 40.7-70.5c1.9-3.2 21-29.7 2-59.1zM275 304.5l-115.5-200L44 304.5z"], - "markdown": [640, 512, [], "f60f", "M593.8 59.1H46.2C20.7 59.1 0 79.8 0 105.2v301.5c0 25.5 20.7 46.2 46.2 46.2h547.7c25.5 0 46.2-20.7 46.1-46.1V105.2c0-25.4-20.7-46.1-46.2-46.1zM338.5 360.6H277v-120l-61.5 76.9-61.5-76.9v120H92.3V151.4h61.5l61.5 76.9 61.5-76.9h61.5v209.2zm135.3 3.1L381.5 256H443V151.4h61.5V256H566z"], - "sourcetree": [448, 512, [], "f7d3", "M427.2 203c0-112.1-90.9-203-203-203C112.1-.2 21.2 90.6 21 202.6A202.86 202.86 0 0 0 161.5 396v101.7a14.3 14.3 0 0 0 14.3 14.3h96.4a14.3 14.3 0 0 0 14.3-14.3V396.1A203.18 203.18 0 0 0 427.2 203zm-271.6 0c0-90.8 137.3-90.8 137.3 0-.1 89.9-137.3 91-137.3 0z"], - "google-plus": [512, 512, [], "f2b3", "M256,8C119.1,8,8,119.1,8,256S119.1,504,256,504,504,392.9,504,256,392.9,8,256,8ZM185.3,380a124,124,0,0,1,0-248c31.3,0,60.1,11,83,32.3l-33.6,32.6c-13.2-12.9-31.3-19.1-49.4-19.1-42.9,0-77.2,35.5-77.2,78.1S142.3,334,185.3,334c32.6,0,64.9-19.1,70.1-53.3H185.3V238.1H302.2a109.2,109.2,0,0,1,1.9,20.7c0,70.8-47.5,121.2-118.8,121.2ZM415.5,273.8v35.5H380V273.8H344.5V238.3H380V202.8h35.5v35.5h35.2v35.5Z"], - "diaspora": [512, 512, [], "f791", "M251.64 354.55c-1.4 0-88 119.9-88.7 119.9S76.34 414 76 413.25s86.6-125.7 86.6-127.4c0-2.2-129.6-44-137.6-47.1-1.3-.5 31.4-101.8 31.7-102.1.6-.7 144.4 47 145.5 47 .4 0 .9-.6 1-1.3.4-2 1-148.6 1.7-149.6.8-1.2 104.5-.7 105.1-.3 1.5 1 3.5 156.1 6.1 156.1 1.4 0 138.7-47 139.3-46.3.8.9 31.9 102.2 31.5 102.6-.9.9-140.2 47.1-140.6 48.8-.3 1.4 82.8 122.1 82.5 122.9s-85.5 63.5-86.3 63.5c-1-.2-89-125.5-90.9-125.5z"], - "foursquare": [368, 512, [], "f180", "M323.1 3H49.9C12.4 3 0 31.3 0 49.1v433.8c0 20.3 12.1 27.7 18.2 30.1 6.2 2.5 22.8 4.6 32.9-7.1C180 356.5 182.2 354 182.2 354c3.1-3.4 3.4-3.1 6.8-3.1h83.4c35.1 0 40.6-25.2 44.3-39.7l48.6-243C373.8 25.8 363.1 3 323.1 3zm-16.3 73.8l-11.4 59.7c-1.2 6.5-9.5 13.2-16.9 13.2H172.1c-12 0-20.6 8.3-20.6 20.3v13c0 12 8.6 20.6 20.6 20.6h90.4c8.3 0 16.6 9.2 14.8 18.2-1.8 8.9-10.5 53.8-11.4 58.8-.9 4.9-6.8 13.5-16.9 13.5h-73.5c-13.5 0-17.2 1.8-26.5 12.6 0 0-8.9 11.4-89.5 108.3-.9.9-1.8.6-1.8-.3V75.9c0-7.7 6.8-16.6 16.6-16.6h219c8.2 0 15.6 7.7 13.5 17.5z"], - "stack-overflow": [384, 512, [], "f16c", "M290.7 311L95 269.7 86.8 309l195.7 41zm51-87L188.2 95.7l-25.5 30.8 153.5 128.3zm-31.2 39.7L129.2 179l-16.7 36.5L293.7 300zM262 32l-32 24 119.3 160.3 32-24zm20.5 328h-200v39.7h200zm39.7 80H42.7V320h-40v160h359.5V320h-40z"], - "github-alt": [480, 512, [], "f113", "M186.1 328.7c0 20.9-10.9 55.1-36.7 55.1s-36.7-34.2-36.7-55.1 10.9-55.1 36.7-55.1 36.7 34.2 36.7 55.1zM480 278.2c0 31.9-3.2 65.7-17.5 95-37.9 76.6-142.1 74.8-216.7 74.8-75.8 0-186.2 2.7-225.6-74.8-14.6-29-20.2-63.1-20.2-95 0-41.9 13.9-81.5 41.5-113.6-5.2-15.8-7.7-32.4-7.7-48.8 0-21.5 4.9-32.3 14.6-51.8 45.3 0 74.3 9 108.8 36 29-6.9 58.8-10 88.7-10 27 0 54.2 2.9 80.4 9.2 34-26.7 63-35.2 107.8-35.2 9.8 19.5 14.6 30.3 14.6 51.8 0 16.4-2.6 32.7-7.7 48.2 27.5 32.4 39 72.3 39 114.2zm-64.3 50.5c0-43.9-26.7-82.6-73.5-82.6-18.9 0-37 3.4-56 6-14.9 2.3-29.8 3.2-45.1 3.2-15.2 0-30.1-.9-45.1-3.2-18.7-2.6-37-6-56-6-46.8 0-73.5 38.7-73.5 82.6 0 87.8 80.4 101.3 150.4 101.3h48.2c70.3 0 150.6-13.4 150.6-101.3zm-82.6-55.1c-25.8 0-36.7 34.2-36.7 55.1s10.9 55.1 36.7 55.1 36.7-34.2 36.7-55.1-10.9-55.1-36.7-55.1z"], - "phoenix-squadron": [512, 512, [], "f511", "M96 63.38C142.49 27.25 201.55 7.31 260.51 8.81c29.58-.38 59.11 5.37 86.91 15.33-24.13-4.63-49-6.34-73.38-2.45C231.17 27 191 48.84 162.21 80.87c5.67-1 10.78-3.67 16-5.86 18.14-7.87 37.49-13.26 57.23-14.83 19.74-2.13 39.64-.43 59.28 1.92-14.42 2.79-29.12 4.57-43 9.59-34.43 11.07-65.27 33.16-86.3 62.63-13.8 19.71-23.63 42.86-24.67 67.13-.35 16.49 5.22 34.81 19.83 44a53.27 53.27 0 0 0 37.52 6.74c15.45-2.46 30.07-8.64 43.6-16.33 11.52-6.82 22.67-14.55 32-24.25 3.79-3.22 2.53-8.45 2.62-12.79-2.12-.34-4.38-1.11-6.3.3a203 203 0 0 1-35.82 15.37c-20 6.17-42.16 8.46-62.1.78 12.79 1.73 26.06.31 37.74-5.44 20.23-9.72 36.81-25.2 54.44-38.77a526.57 526.57 0 0 1 88.9-55.31c25.71-12 52.94-22.78 81.57-24.12-15.63 13.72-32.15 26.52-46.78 41.38-14.51 14-27.46 29.5-40.11 45.18-3.52 4.6-8.95 6.94-13.58 10.16a150.7 150.7 0 0 0-51.89 60.1c-9.33 19.68-14.5 41.85-11.77 63.65 1.94 13.69 8.71 27.59 20.9 34.91 12.9 8 29.05 8.07 43.48 5.1 32.8-7.45 61.43-28.89 81-55.84 20.44-27.52 30.52-62.2 29.16-96.35-.52-7.5-1.57-15-1.66-22.49 8 19.48 14.82 39.71 16.65 60.83 2 14.28.75 28.76-1.62 42.9-1.91 11-5.67 21.51-7.78 32.43a165 165 0 0 0 39.34-81.07 183.64 183.64 0 0 0-14.21-104.64c20.78 32 32.34 69.58 35.71 107.48.49 12.73.49 25.51 0 38.23A243.21 243.21 0 0 1 482 371.34c-26.12 47.34-68 85.63-117.19 108-78.29 36.23-174.68 31.32-248-14.68A248.34 248.34 0 0 1 25.36 366 238.34 238.34 0 0 1 0 273.08v-31.34C3.93 172 40.87 105.82 96 63.38m222 80.33a79.13 79.13 0 0 0 16-4.48c5-1.77 9.24-5.94 10.32-11.22-8.96 4.99-17.98 9.92-26.32 15.7z"], - "pagelines": [384, 512, [], "f18c", "M384 312.7c-55.1 136.7-187.1 54-187.1 54-40.5 81.8-107.4 134.4-184.6 134.7-16.1 0-16.6-24.4 0-24.4 64.4-.3 120.5-42.7 157.2-110.1-41.1 15.9-118.6 27.9-161.6-82.2 109-44.9 159.1 11.2 178.3 45.5 9.9-24.4 17-50.9 21.6-79.7 0 0-139.7 21.9-149.5-98.1 119.1-47.9 152.6 76.7 152.6 76.7 1.6-16.7 3.3-52.6 3.3-53.4 0 0-106.3-73.7-38.1-165.2 124.6 43 61.4 162.4 61.4 162.4.5 1.6.5 23.8 0 33.4 0 0 45.2-89 136.4-57.5-4.2 134-141.9 106.4-141.9 106.4-4.4 27.4-11.2 53.4-20 77.5 0 0 83-91.8 172-20z"], - "algolia": [512, 512, [], "f36c", "M256 0C116.1 0 2 112.7 0 252.1C-2 393.6 112.9 510.8 254.5 511.6c43.7 .3 85.9-10.4 123.3-30.7c3.6-2 4.2-7 1.1-9.7l-24-21.2c-4.9-4.3-11.8-5.5-17.8-3c-26.1 11.1-54.5 16.8-83.7 16.4C139 461.9 46.5 366.8 48.3 252.4C50.1 139.5 142.6 48.2 256 48.2H463.7V417.2L345.9 312.5c-3.8-3.4-9.7-2.7-12.7 1.3c-18.9 25-49.7 40.6-83.9 38.2c-47.5-3.3-85.9-41.5-89.5-88.9c-4.2-56.6 40.6-103.9 96.3-103.9c50.4 0 91.9 38.8 96.2 88c.4 4.4 2.4 8.5 5.7 11.4l30.7 27.2c3.5 3.1 9 1.2 9.9-3.4c2.2-11.8 3-24.2 2.1-36.8c-4.9-72-63.3-130-135.4-134.4c-82.7-5.1-151.8 59.5-154 140.6c-2.1 78.9 62.6 147 141.6 148.7c33 .7 63.6-9.6 88.3-27.6L495 509.4c6.6 5.8 17 1.2 17-7.7V9.7c0-5.4-4.4-9.7-9.7-9.7H256z"], - "red-river": [448, 512, [], "f3e3", "M353.2 32H94.8C42.4 32 0 74.4 0 126.8v258.4C0 437.6 42.4 480 94.8 480h258.4c52.4 0 94.8-42.4 94.8-94.8V126.8c0-52.4-42.4-94.8-94.8-94.8zM144.9 200.9v56.3c0 27-21.9 48.9-48.9 48.9V151.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9h-56.3c-12.3-.6-24.6 11.6-24 24zm176.3 72h-56.3c-12.3-.6-24.6 11.6-24 24v56.3c0 27-21.9 48.9-48.9 48.9V247.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9z"], - "creative-commons-sa": [496, 512, [], "f4ef", "M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zM137.7 221c13-83.9 80.5-95.7 108.9-95.7 99.8 0 127.5 82.5 127.5 134.2 0 63.6-41 132.9-128.9 132.9-38.9 0-99.1-20-109.4-97h62.5c1.5 30.1 19.6 45.2 54.5 45.2 23.3 0 58-18.2 58-82.8 0-82.5-49.1-80.6-56.7-80.6-33.1 0-51.7 14.6-55.8 43.8h18.2l-49.2 49.2-49-49.2h19.4z"], - "safari": [512, 512, [], "f267", "M274.69,274.69l-37.38-37.38L166,346ZM256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8ZM411.85,182.79l14.78-6.13A8,8,0,0,1,437.08,181h0a8,8,0,0,1-4.33,10.46L418,197.57a8,8,0,0,1-10.45-4.33h0A8,8,0,0,1,411.85,182.79ZM314.43,94l6.12-14.78A8,8,0,0,1,331,74.92h0a8,8,0,0,1,4.33,10.45l-6.13,14.78a8,8,0,0,1-10.45,4.33h0A8,8,0,0,1,314.43,94ZM256,60h0a8,8,0,0,1,8,8V84a8,8,0,0,1-8,8h0a8,8,0,0,1-8-8V68A8,8,0,0,1,256,60ZM181,74.92a8,8,0,0,1,10.46,4.33L197.57,94a8,8,0,1,1-14.78,6.12l-6.13-14.78A8,8,0,0,1,181,74.92Zm-63.58,42.49h0a8,8,0,0,1,11.31,0L140,128.72A8,8,0,0,1,140,140h0a8,8,0,0,1-11.31,0l-11.31-11.31A8,8,0,0,1,117.41,117.41ZM60,256h0a8,8,0,0,1,8-8H84a8,8,0,0,1,8,8h0a8,8,0,0,1-8,8H68A8,8,0,0,1,60,256Zm40.15,73.21-14.78,6.13A8,8,0,0,1,74.92,331h0a8,8,0,0,1,4.33-10.46L94,314.43a8,8,0,0,1,10.45,4.33h0A8,8,0,0,1,100.15,329.21Zm4.33-136h0A8,8,0,0,1,94,197.57l-14.78-6.12A8,8,0,0,1,74.92,181h0a8,8,0,0,1,10.45-4.33l14.78,6.13A8,8,0,0,1,104.48,193.24ZM197.57,418l-6.12,14.78a8,8,0,0,1-14.79-6.12l6.13-14.78A8,8,0,1,1,197.57,418ZM264,444a8,8,0,0,1-8,8h0a8,8,0,0,1-8-8V428a8,8,0,0,1,8-8h0a8,8,0,0,1,8,8Zm67-6.92h0a8,8,0,0,1-10.46-4.33L314.43,418a8,8,0,0,1,4.33-10.45h0a8,8,0,0,1,10.45,4.33l6.13,14.78A8,8,0,0,1,331,437.08Zm63.58-42.49h0a8,8,0,0,1-11.31,0L372,383.28A8,8,0,0,1,372,372h0a8,8,0,0,1,11.31,0l11.31,11.31A8,8,0,0,1,394.59,394.59ZM286.25,286.25,110.34,401.66,225.75,225.75,401.66,110.34ZM437.08,331h0a8,8,0,0,1-10.45,4.33l-14.78-6.13a8,8,0,0,1-4.33-10.45h0A8,8,0,0,1,418,314.43l14.78,6.12A8,8,0,0,1,437.08,331ZM444,264H428a8,8,0,0,1-8-8h0a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8h0A8,8,0,0,1,444,264Z"], - "google": [488, 512, [], "f1a0", "M488 261.8C488 403.3 391.1 504 248 504 110.8 504 0 393.2 0 256S110.8 8 248 8c66.8 0 123 24.5 166.3 64.9l-67.5 64.9C258.5 52.6 94.3 116.6 94.3 256c0 86.5 69.1 156.6 153.7 156.6 98.2 0 135-70.4 140.8-106.9H248v-85.3h236.1c2.3 12.7 3.9 24.9 3.9 41.4z"], - "square-font-awesome-stroke": [448, 512, ["font-awesome-alt"], "f35c", "M64 64C46.3 64 32 78.3 32 96l0 320c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32l0-320c0-17.7-14.3-32-32-32L64 64zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm154 58c0 9.3-4.8 17.4-12.1 22l188.9 0c7.3 0 13.2 5.9 13.2 13.2c0 1.8-.4 3.7-1.1 5.4L312 264l30.9 69.4c.8 1.7 1.1 3.5 1.1 5.4c0 7.3-5.9 13.2-13.2 13.2L144 352l0 32-32 0 0-32 0-176 0-1.5c-6.1-4.8-10-12.2-10-20.5c0-14.4 11.6-26 26-26s26 11.6 26 26z"], - "atlassian": [512, 512, [], "f77b", "M152.2 236.4c-7.7-8.2-19.7-7.7-24.8 2.8L1.6 490.2c-5 10 2.4 21.7 13.4 21.7h175c5.8.1 11-3.2 13.4-8.4 37.9-77.8 15.1-196.3-51.2-267.1zM244.4 8.1c-122.3 193.4-8.5 348.6 65 495.5 2.5 5.1 7.7 8.4 13.4 8.4H497c11.2 0 18.4-11.8 13.4-21.7 0 0-234.5-470.6-240.4-482.3-5.3-10.6-18.8-10.8-25.6.1z"], - "linkedin-in": [448, 512, [], "f0e1", "M100.28 448H7.4V148.9h92.88zM53.79 108.1C24.09 108.1 0 83.5 0 53.8a53.79 53.79 0 0 1 107.58 0c0 29.7-24.1 54.3-53.79 54.3zM447.9 448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29 0-55.69 37.7-55.69 76.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5 42.69-48.3 87.88-48.3 94 0 111.28 61.9 111.28 142.3V448z"], - "digital-ocean": [512, 512, [], "f391", "M87 481.8h73.7v-73.6H87zM25.4 346.6v61.6H87v-61.6zm466.2-169.7c-23-74.2-82.4-133.3-156.6-156.6C164.9-32.8 8 93.7 8 255.9h95.8c0-101.8 101-180.5 208.1-141.7 39.7 14.3 71.5 46.1 85.8 85.7 39.1 107-39.7 207.8-141.4 208v.3h-.3V504c162.6 0 288.8-156.8 235.6-327.1zm-235.3 231v-95.3h-95.6v95.6H256v-.3z"], - "nimblr": [384, 512, [], "f5a8", "M246.6 299.29c15.57 0 27.15 11.46 27.15 27s-11.62 27-27.15 27c-15.7 0-27.15-11.57-27.15-27s11.55-27 27.15-27zM113 326.25c0-15.61 11.68-27 27.15-27s27.15 11.46 27.15 27-11.47 27-27.15 27c-15.44 0-27.15-11.31-27.15-27M191.76 159C157 159 89.45 178.77 59.25 227L14 0v335.48C14 433.13 93.61 512 191.76 512s177.76-78.95 177.76-176.52S290.13 159 191.76 159zm0 308.12c-73.27 0-132.51-58.9-132.51-131.59s59.24-131.59 132.51-131.59 132.51 58.86 132.51 131.54S265 467.07 191.76 467.07z"], - "chromecast": [512, 512, [], "f838", "M447.8,64H64c-23.6,0-42.7,19.1-42.7,42.7v63.9H64v-63.9h383.8v298.6H298.6V448H448c23.6,0,42.7-19.1,42.7-42.7V106.7 C490.7,83.1,471.4,64,447.8,64z M21.3,383.6L21.3,383.6l0,63.9h63.9C85.2,412.2,56.6,383.6,21.3,383.6L21.3,383.6z M21.3,298.6V341 c58.9,0,106.6,48.1,106.6,107h42.7C170.7,365.6,103.7,298.7,21.3,298.6z M213.4,448h42.7c-0.5-129.5-105.3-234.3-234.8-234.6l0,42.4 C127.3,255.6,213.3,342,213.4,448z"], - "evernote": [384, 512, [], "f839", "M120.82 132.21c1.6 22.31-17.55 21.59-21.61 21.59-68.93 0-73.64-1-83.58 3.34-.56.22-.74 0-.37-.37L123.79 46.45c.38-.37.6-.22.38.37-4.35 9.99-3.35 15.09-3.35 85.39zm79 308c-14.68-37.08 13-76.93 52.52-76.62 17.49 0 22.6 23.21 7.95 31.42-6.19 3.3-24.95 1.74-25.14 19.2-.05 17.09 19.67 25 31.2 24.89A45.64 45.64 0 0 0 312 393.45v-.08c0-11.63-7.79-47.22-47.54-55.34-7.72-1.54-65-6.35-68.35-50.52-3.74 16.93-17.4 63.49-43.11 69.09-8.74 1.94-69.68 7.64-112.92-36.77 0 0-18.57-15.23-28.23-57.95-3.38-15.75-9.28-39.7-11.14-62 0-18 11.14-30.45 25.07-32.2 81 0 90 2.32 101-7.8 9.82-9.24 7.8-15.5 7.8-102.78 1-8.3 7.79-30.81 53.41-24.14 6 .86 31.91 4.18 37.48 30.64l64.26 11.15c20.43 3.71 70.94 7 80.6 57.94 22.66 121.09 8.91 238.46 7.8 238.46C362.15 485.53 267.06 480 267.06 480c-18.95-.23-54.25-9.4-67.27-39.83zm80.94-204.84c-1 1.92-2.2 6 .85 7 14.09 4.93 39.75 6.84 45.88 5.53 3.11-.25 3.05-4.43 2.48-6.65-3.53-21.85-40.83-26.5-49.24-5.92z"], - "hacker-news": [448, 512, [], "f1d4", "M0 32v448h448V32H0zm21.2 197.2H21c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4zm218 53.9V384h-31.4V281.3L128 128h37.3c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6H320l-80.8 155.1z"], - "creative-commons-sampling": [496, 512, [], "f4f0", "M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm3.6 53.2c2.8-.3 11.5 1 11.5 11.5l6.6 107.2 4.9-59.3c0-6 4.7-10.6 10.6-10.6 5.9 0 10.6 4.7 10.6 10.6 0 2.5-.5-5.7 5.7 81.5l5.8-64.2c.3-2.9 2.9-9.3 10.2-9.3 3.8 0 9.9 2.3 10.6 8.9l11.5 96.5 5.3-12.8c1.8-4.4 5.2-6.6 10.2-6.6h58v21.3h-50.9l-18.2 44.3c-3.9 9.9-19.5 9.1-20.8-3.1l-4-31.9-7.5 92.6c-.3 3-3 9.3-10.2 9.3-3 0-9.8-2.1-10.6-9.3 0-1.9.6 5.8-6.2-77.9l-5.3 72.2c-1.1 4.8-4.8 9.3-10.6 9.3-2.9 0-9.8-2-10.6-9.3 0-1.9.5 6.7-5.8-87.7l-5.8 94.8c0 6.3-3.6 12.4-10.6 12.4-5.2 0-10.6-4.1-10.6-12l-5.8-87.7c-5.8 92.5-5.3 84-5.3 85.9-1.1 4.8-4.8 9.3-10.6 9.3-3 0-9.8-2.1-10.6-9.3 0-.7-.4-1.1-.4-2.6l-6.2-88.6L182 348c-.7 6.5-6.7 9.3-10.6 9.3-5.8 0-9.6-4.1-10.6-8.9L149.7 272c-2 4-3.5 8.4-11.1 8.4H87.2v-21.3H132l13.7-27.9c4.4-9.9 18.2-7.2 19.9 2.7l3.1 20.4 8.4-97.9c0-6 4.8-10.6 10.6-10.6.5 0 10.6-.2 10.6 12.4l4.9 69.1 6.6-92.6c0-10.1 9.5-10.6 10.2-10.6.6 0 10.6.7 10.6 10.6l5.3 80.6 6.2-97.9c.1-1.1-.6-10.3 9.9-11.5z"], - "adversal": [512, 512, [], "f36a", "M482.1 32H28.7C5.8 32 0 37.9 0 60.9v390.2C0 474.4 5.8 480 28.7 480h453.4c24.4 0 29.9-5.2 29.9-29.7V62.2c0-24.6-5.4-30.2-29.9-30.2zM178.4 220.3c-27.5-20.2-72.1-8.7-84.2 23.4-4.3 11.1-9.3 9.5-17.5 8.3-9.7-1.5-17.2-3.2-22.5-5.5-28.8-11.4 8.6-55.3 24.9-64.3 41.1-21.4 83.4-22.2 125.3-4.8 40.9 16.8 34.5 59.2 34.5 128.5 2.7 25.8-4.3 58.3 9.3 88.8 1.9 4.4.4 7.9-2.7 10.7-8.4 6.7-39.3 2.2-46.6-7.4-1.9-2.2-1.8-3.6-3.9-6.2-3.6-3.9-7.3-2.2-11.9 1-57.4 36.4-140.3 21.4-147-43.3-3.1-29.3 12.4-57.1 39.6-71 38.2-19.5 112.2-11.8 114-30.9 1.1-10.2-1.9-20.1-11.3-27.3zm286.7 222c0 15.1-11.1 9.9-17.8 9.9H52.4c-7.4 0-18.2 4.8-17.8-10.7.4-13.9 10.5-9.1 17.1-9.1 132.3-.4 264.5-.4 396.8 0 6.8 0 16.6-4.4 16.6 9.9zm3.8-340.5v291c0 5.7-.7 13.9-8.1 13.9-12.4-.4-27.5 7.1-36.1-5.6-5.8-8.7-7.8-4-12.4-1.2-53.4 29.7-128.1 7.1-144.4-85.2-6.1-33.4-.7-67.1 15.7-100 11.8-23.9 56.9-76.1 136.1-30.5v-71c0-26.2-.1-26.2 26-26.2 3.1 0 6.6.4 9.7 0 10.1-.8 13.6 4.4 13.6 14.3-.1.2-.1.3-.1.5zm-51.5 232.3c-19.5 47.6-72.9 43.3-90 5.2-15.1-33.3-15.5-68.2.4-101.5 16.3-34.1 59.7-35.7 81.5-4.8 20.6 28.8 14.9 84.6 8.1 101.1zm-294.8 35.3c-7.5-1.3-33-3.3-33.7-27.8-.4-13.9 7.8-23 19.8-25.8 24.4-5.9 49.3-9.9 73.7-14.7 8.9-2 7.4 4.4 7.8 9.5 1.4 33-26.1 59.2-67.6 58.8z"], - "creative-commons": [496, 512, [], "f25e", "M245.83 214.87l-33.22 17.28c-9.43-19.58-25.24-19.93-27.46-19.93-22.13 0-33.22 14.61-33.22 43.84 0 23.57 9.21 43.84 33.22 43.84 14.47 0 24.65-7.09 30.57-21.26l30.55 15.5c-6.17 11.51-25.69 38.98-65.1 38.98-22.6 0-73.96-10.32-73.96-77.05 0-58.69 43-77.06 72.63-77.06 30.72-.01 52.7 11.95 65.99 35.86zm143.05 0l-32.78 17.28c-9.5-19.77-25.72-19.93-27.9-19.93-22.14 0-33.22 14.61-33.22 43.84 0 23.55 9.23 43.84 33.22 43.84 14.45 0 24.65-7.09 30.54-21.26l31 15.5c-2.1 3.75-21.39 38.98-65.09 38.98-22.69 0-73.96-9.87-73.96-77.05 0-58.67 42.97-77.06 72.63-77.06 30.71-.01 52.58 11.95 65.56 35.86zM247.56 8.05C104.74 8.05 0 123.11 0 256.05c0 138.49 113.6 248 247.56 248 129.93 0 248.44-100.87 248.44-248 0-137.87-106.62-248-248.44-248zm.87 450.81c-112.54 0-203.7-93.04-203.7-202.81 0-105.42 85.43-203.27 203.72-203.27 112.53 0 202.82 89.46 202.82 203.26-.01 121.69-99.68 202.82-202.84 202.82z"], - "watchman-monitoring": [512, 512, [], "e087", "M256,16C123.452,16,16,123.452,16,256S123.452,496,256,496,496,388.548,496,256,388.548,16,256,16ZM121.69,429.122C70.056,388.972,36.741,326.322,36.741,256a218.519,218.519,0,0,1,9.587-64.122l102.9-17.895-.121,10.967-13.943,2.013s-.144,12.5-.144,19.549a12.778,12.778,0,0,0,4.887,10.349l9.468,7.4Zm105.692-283.27,8.48-7.618s6.934-5.38-.143-9.344c-7.188-4.024-39.53-34.5-39.53-34.5-5.348-5.477-8.257-7.347-15.46,0,0,0-32.342,30.474-39.529,34.5-7.078,3.964-.144,9.344-.144,9.344l8.481,7.618-.048,4.369L75.982,131.045c39.644-56.938,105.532-94.3,180.018-94.3A218.754,218.754,0,0,1,420.934,111.77l-193.512,37.7Zm34.063,329.269-33.9-250.857,9.467-7.4a12.778,12.778,0,0,0,4.888-10.349c0-7.044-.144-19.549-.144-19.549l-13.943-2.013-.116-10.474,241.711,31.391A218.872,218.872,0,0,1,475.259,256C475.259,375.074,379.831,472.212,261.445,475.121Z"], - "fonticons": [448, 512, [], "f280", "M0 32v448h448V32zm187 140.9c-18.4 0-19 9.9-19 27.4v23.3c0 2.4-3.5 4.4-.6 4.4h67.4l-11.1 37.3H168v112.9c0 5.8-2 6.7 3.2 7.3l43.5 4.1v25.1H84V389l21.3-2c5.2-.6 6.7-2.3 6.7-7.9V267.7c0-2.3-2.9-2.3-5.8-2.3H84V228h28v-21c0-49.6 26.5-70 77.3-70 34.1 0 64.7 8.2 64.7 52.8l-50.7 6.1c.3-18.7-4.4-23-16.3-23zm74.3 241.8v-25.1l20.4-2.6c5.2-.6 7.6-1.7 7.6-7.3V271.8c0-4.1-2.9-6.7-6.7-7.9l-24.2-6.4 6.7-29.5h80.2v151.7c0 5.8-2.6 6.4 2.9 7.3l15.7 2.6v25.1zm80.8-255.5l9 33.2-7.3 7.3-31.2-16.6-31.2 16.6-7.3-7.3 9-33.2-21.8-24.2 3.5-9.6h27.7l15.5-28h9.3l15.5 28h27.7l3.5 9.6z"], - "weixin": [576, 512, [], "f1d7", "M385.2 167.6c6.4 0 12.6.3 18.8 1.1C387.4 90.3 303.3 32 207.7 32 100.5 32 13 104.8 13 197.4c0 53.4 29.3 97.5 77.9 131.6l-19.3 58.6 68-34.1c24.4 4.8 43.8 9.7 68.2 9.7 6.2 0 12.1-.3 18.3-.8-4-12.9-6.2-26.6-6.2-40.8-.1-84.9 72.9-154 165.3-154zm-104.5-52.9c14.5 0 24.2 9.7 24.2 24.4 0 14.5-9.7 24.2-24.2 24.2-14.8 0-29.3-9.7-29.3-24.2.1-14.7 14.6-24.4 29.3-24.4zm-136.4 48.6c-14.5 0-29.3-9.7-29.3-24.2 0-14.8 14.8-24.4 29.3-24.4 14.8 0 24.4 9.7 24.4 24.4 0 14.6-9.6 24.2-24.4 24.2zM563 319.4c0-77.9-77.9-141.3-165.4-141.3-92.7 0-165.4 63.4-165.4 141.3S305 460.7 397.6 460.7c19.3 0 38.9-5.1 58.6-9.9l53.4 29.3-14.8-48.6C534 402.1 563 363.2 563 319.4zm-219.1-24.5c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.8 0 24.4 9.7 24.4 19.3 0 10-9.7 19.6-24.4 19.6zm107.1 0c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.5 0 24.4 9.7 24.4 19.3.1 10-9.9 19.6-24.4 19.6z"], - "shirtsinbulk": [448, 512, [], "f214", "M100 410.3l30.6 13.4 4.4-9.9-30.6-13.4zm39.4 17.5l30.6 13.4 4.4-9.9-30.6-13.4zm172.1-14l4.4 9.9 30.6-13.4-4.4-9.9zM179.1 445l30.3 13.7 4.4-9.9-30.3-13.4zM60.4 392.8L91 406.2l4.4-9.6-30.6-13.7zm211.4 38.5l4.4 9.9 30.6-13.4-4.4-9.9zm-39.3 17.5l4.4 9.9 30.6-13.7-4.4-9.6zm118.4-52.2l4.4 9.6 30.6-13.4-4.4-9.9zM170 46.6h-33.5v10.5H170zm-47.2 0H89.2v10.5h33.5zm-47.3 0H42.3v10.5h33.3zm141.5 0h-33.2v10.5H217zm94.5 0H278v10.5h33.5zm47.3 0h-33.5v10.5h33.5zm-94.6 0H231v10.5h33.2zm141.5 0h-33.3v10.5h33.3zM52.8 351.1H42v33.5h10.8zm70-215.9H89.2v10.5h33.5zm-70 10.6h22.8v-10.5H42v33.5h10.8zm168.9 228.6c50.5 0 91.3-40.8 91.3-91.3 0-50.2-40.8-91.3-91.3-91.3-50.2 0-91.3 41.1-91.3 91.3 0 50.5 41.1 91.3 91.3 91.3zm-48.2-111.1c0-25.4 29.5-31.8 49.6-31.8 16.9 0 29.2 5.8 44.3 12l-8.8 16.9h-.9c-6.4-9.9-24.8-13.1-35.6-13.1-9 0-29.8 1.8-29.8 14.9 0 21.6 78.5-10.2 78.5 37.9 0 25.4-31.5 31.2-51 31.2-18.1 0-32.4-2.9-47.2-12.2l9-18.4h.9c6.1 12.2 23.6 14.9 35.9 14.9 8.7 0 32.7-1.2 32.7-14.3 0-26.1-77.6 6.3-77.6-38zM52.8 178.4H42V212h10.8zm342.4 206.2H406v-33.5h-10.8zM52.8 307.9H42v33.5h10.8zM0 3.7v406l221.7 98.6L448 409.7V3.7zm418.8 387.1L222 476.5 29.2 390.8V120.7h389.7v270.1zm0-299.3H29.2V32.9h389.7v58.6zm-366 130.1H42v33.5h10.8zm0 43.2H42v33.5h10.8zM170 135.2h-33.5v10.5H170zm225.2 163.1H406v-33.5h-10.8zm0-43.2H406v-33.5h-10.8zM217 135.2h-33.2v10.5H217zM395.2 212H406v-33.5h-10.8zm0 129.5H406V308h-10.8zm-131-206.3H231v10.5h33.2zm47.3 0H278v10.5h33.5zm83.7 33.6H406v-33.5h-33.5v10.5h22.8zm-36.4-33.6h-33.5v10.5h33.5z"], - "codepen": [512, 512, [], "f1cb", "M502.285 159.704l-234-156c-7.987-4.915-16.511-4.96-24.571 0l-234 156C3.714 163.703 0 170.847 0 177.989v155.999c0 7.143 3.714 14.286 9.715 18.286l234 156.022c7.987 4.915 16.511 4.96 24.571 0l234-156.022c6-3.999 9.715-11.143 9.715-18.286V177.989c-.001-7.142-3.715-14.286-9.716-18.285zM278 63.131l172.286 114.858-76.857 51.429L278 165.703V63.131zm-44 0v102.572l-95.429 63.715-76.857-51.429L234 63.131zM44 219.132l55.143 36.857L44 292.846v-73.714zm190 229.715L61.714 333.989l76.857-51.429L234 346.275v102.572zm22-140.858l-77.715-52 77.715-52 77.715 52-77.715 52zm22 140.858V346.275l95.429-63.715 76.857 51.429L278 448.847zm190-156.001l-55.143-36.857L468 219.132v73.714z"], - "git-alt": [448, 512, [], "f841", "M439.55 236.05L244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"], - "lyft": [512, 512, [], "f3c3", "M0 81.1h77.8v208.7c0 33.1 15 52.8 27.2 61-12.7 11.1-51.2 20.9-80.2-2.8C7.8 334 0 310.7 0 289V81.1zm485.9 173.5v-22h23.8v-76.8h-26.1c-10.1-46.3-51.2-80.7-100.3-80.7-56.6 0-102.7 46-102.7 102.7V357c16 2.3 35.4-.3 51.7-14 17.1-14 24.8-37.2 24.8-59v-6.7h38.8v-76.8h-38.8v-23.3c0-34.6 52.2-34.6 52.2 0v77.1c0 56.6 46 102.7 102.7 102.7v-76.5c-14.5 0-26.1-11.7-26.1-25.9zm-294.3-99v113c0 15.4-23.8 15.4-23.8 0v-113H91v132.7c0 23.8 8 54 45 63.9 37 9.8 58.2-10.6 58.2-10.6-2.1 13.4-14.5 23.3-34.9 25.3-15.5 1.6-35.2-3.6-45-7.8v70.3c25.1 7.5 51.5 9.8 77.6 4.7 47.1-9.1 76.8-48.4 76.8-100.8V155.1h-77.1v.5z"], - "rev": [448, 512, [], "f5b2", "M289.67 274.89a65.57 65.57 0 1 1-65.56-65.56 65.64 65.64 0 0 1 65.56 65.56zm139.55-5.05h-.13a204.69 204.69 0 0 0-74.32-153l-45.38 26.2a157.07 157.07 0 0 1 71.81 131.84C381.2 361.5 310.73 432 224.11 432S67 361.5 67 274.88c0-81.88 63-149.27 143-156.43v39.12l108.77-62.79L210 32v38.32c-106.7 7.25-191 96-191 204.57 0 111.59 89.12 202.29 200.06 205v.11h210.16V269.84z"], - "windows": [448, 512, [], "f17a", "M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z"], - "wizards-of-the-coast": [640, 512, [], "f730", "M219.19 345.69c-1.9 1.38-11.07 8.44-.26 23.57 4.64 6.42 14.11 12.79 21.73 6.55 6.5-4.88 7.35-12.92.26-23.04-5.47-7.76-14.28-12.88-21.73-7.08zm336.75 75.94c-.34 1.7-.55 1.67.79 0 2.09-4.19 4.19-10.21 4.98-19.9 3.14-38.49-40.33-71.49-101.34-78.03-54.73-6.02-124.38 9.17-188.8 60.49l-.26 1.57c2.62 4.98 4.98 10.74 3.4 21.21l.79.26c63.89-58.4 131.19-77.25 184.35-73.85 58.4 3.67 100.03 34.04 100.03 68.08-.01 9.96-2.63 15.72-3.94 20.17zM392.28 240.42c.79 7.07 4.19 10.21 9.17 10.47 5.5.26 9.43-2.62 10.47-6.55.79-3.4 2.09-29.85 2.09-29.85s-11.26 6.55-14.93 10.47c-3.66 3.68-7.33 8.39-6.8 15.46zm-50.02-151.1C137.75 89.32 13.1 226.8.79 241.2c-1.05.52-1.31.79.79 1.31 60.49 16.5 155.81 81.18 196.13 202.16l1.05.26c55.25-69.92 140.88-128.05 236.99-128.05 80.92 0 130.15 42.16 130.15 80.39 0 18.33-6.55 33.52-22.26 46.35 0 .96-.2.79.79.79 14.66-10.74 27.5-28.8 27.5-48.18 0-22.78-12.05-38.23-12.05-38.23 7.07 7.07 10.74 16.24 10.74 16.24 5.76-40.85 26.97-62.32 26.97-62.32-2.36-9.69-6.81-17.81-6.81-17.81 7.59 8.12 14.4 27.5 14.4 41.37 0 10.47-3.4 22.78-12.57 31.95l.26.52c8.12-4.98 16.5-16.76 16.5-37.97 0-15.71-4.71-25.92-4.71-25.92 5.76-5.24 11.26-9.17 15.97-11.78.79 3.4 2.09 9.69 2.36 14.93 0 1.05.79 1.83 1.05 0 .79-5.76-.26-16.24-.26-16.5 6.02-3.14 9.69-4.45 9.69-4.45C617.74 176 489.43 89.32 342.26 89.32zm-99.24 289.62c-11.06 8.99-24.2 4.08-30.64-4.19-7.45-9.58-6.76-24.09 4.19-32.47 14.85-11.35 27.08-.49 31.16 5.5.28.39 12.13 16.57-4.71 31.16zm2.09-136.43l9.43-17.81 11.78 70.96-12.57 6.02-24.62-28.8 14.14-26.71 3.67 4.45-1.83-8.11zm18.59 117.58l-.26-.26c2.05-4.1-2.5-6.61-17.54-31.69-1.31-2.36-3.14-2.88-4.45-2.62l-.26-.52c7.86-5.76 15.45-10.21 25.4-15.71l.52.26c1.31 1.83 2.09 2.88 3.4 4.71l-.26.52c-1.05-.26-2.36-.79-5.24.26-2.09.79-7.86 3.67-12.31 7.59v1.31c1.57 2.36 3.93 6.55 5.76 9.69h.26c10.05-6.28 7.56-4.55 11.52-7.86h.26c.52 1.83.52 1.83 1.83 5.5l-.26.26c-3.06.61-4.65.34-11.52 5.5v.26c9.46 17.02 11.01 16.75 12.57 15.97l.26.26c-2.34 1.59-6.27 4.21-9.68 6.57zm55.26-32.47c-3.14 1.57-6.02 2.88-9.95 4.98l-.26-.26c1.29-2.59 1.16-2.71-11.78-32.47l-.26-.26c-.15 0-8.9 3.65-9.95 7.33h-.52l-1.05-5.76.26-.52c7.29-4.56 25.53-11.64 27.76-12.57l.52.26 3.14 4.98-.26.52c-3.53-1.76-7.35.76-12.31 2.62v.26c12.31 32.01 12.67 30.64 14.66 30.64v.25zm44.77-16.5c-4.19 1.05-5.24 1.31-9.69 2.88l-.26-.26.52-4.45c-1.05-3.4-3.14-11.52-3.67-13.62l-.26-.26c-3.4.79-8.9 2.62-12.83 3.93l-.26.26c.79 2.62 3.14 9.95 4.19 13.88.79 2.36 1.83 2.88 2.88 3.14v.52c-3.67 1.05-7.07 2.62-10.21 3.93l-.26-.26c1.05-1.31 1.05-2.88.26-4.98-1.05-3.14-8.12-23.83-9.17-27.23-.52-1.83-1.57-3.14-2.62-3.14v-.52c3.14-1.05 6.02-2.09 10.74-3.4l.26.26-.26 4.71c1.31 3.93 2.36 7.59 3.14 9.69h.26c3.93-1.31 9.43-2.88 12.83-3.93l.26-.26-2.62-9.43c-.52-1.83-1.05-3.4-2.62-3.93v-.26c4.45-1.05 7.33-1.83 10.74-2.36l.26.26c-1.05 1.31-1.05 2.88-.52 4.45 1.57 6.28 4.71 20.43 6.28 26.45.54 2.62 1.85 3.41 2.63 3.93zm32.21-6.81l-.26.26c-4.71.52-14.14 2.36-22.52 4.19l-.26-.26.79-4.19c-1.57-7.86-3.4-18.59-4.98-26.19-.26-1.83-.79-2.88-2.62-3.67l.79-.52c9.17-1.57 20.16-2.36 24.88-2.62l.26.26c.52 2.36.79 3.14 1.57 5.5l-.26.26c-1.14-1.14-3.34-3.2-16.24-.79l-.26.26c.26 1.57 1.05 6.55 1.57 9.95l.26.26c9.52-1.68 4.76-.06 10.74-2.36h.26c0 1.57-.26 1.83-.26 5.24h-.26c-4.81-1.03-2.15-.9-10.21 0l-.26.26c.26 2.09 1.57 9.43 2.09 12.57l.26.26c1.15.38 14.21-.65 16.24-4.71h.26c-.53 2.38-1.05 4.21-1.58 6.04zm10.74-44.51c-4.45 2.36-8.12 2.88-11 2.88-.25.02-11.41 1.09-17.54-9.95-6.74-10.79-.98-25.2 5.5-31.69 8.8-8.12 23.35-10.1 28.54-17.02 8.03-10.33-13.04-22.31-29.59-5.76l-2.62-2.88 5.24-16.24c25.59-1.57 45.2-3.04 50.02 16.24.79 3.14 0 9.43-.26 12.05 0 2.62-1.83 18.85-2.09 23.04-.52 4.19-.79 18.33-.79 20.69.26 2.36.52 4.19 1.57 5.5 1.57 1.83 5.76 1.83 5.76 1.83l-.79 4.71c-11.82-1.07-10.28-.59-20.43-1.05-3.22-5.15-2.23-3.28-4.19-7.86 0 .01-4.19 3.94-7.33 5.51zm37.18 21.21c-6.35-10.58-19.82-7.16-21.73 5.5-2.63 17.08 14.3 19.79 20.69 10.21l.26.26c-.52 1.83-1.83 6.02-1.83 6.28l-.52.52c-10.3 6.87-28.5-2.5-25.66-18.59 1.94-10.87 14.44-18.93 28.8-9.95l.26.52c0 1.06-.27 3.41-.27 5.25zm5.77-87.73v-6.55c.69 0 19.65 3.28 27.76 7.33l-1.57 17.54s10.21-9.43 15.45-10.74c5.24-1.57 14.93 7.33 14.93 7.33l-11.26 11.26c-12.07-6.35-19.59-.08-20.69.79-5.29 38.72-8.6 42.17 4.45 46.09l-.52 4.71c-17.55-4.29-18.53-4.5-36.92-7.33l.79-4.71c7.25 0 7.48-5.32 7.59-6.81 0 0 4.98-53.16 4.98-55.25-.02-2.87-4.99-3.66-4.99-3.66zm10.99 114.44c-8.12-2.09-14.14-11-10.74-20.69 3.14-9.43 12.31-12.31 18.85-10.21 9.17 2.62 12.83 11.78 10.74 19.38-2.61 8.9-9.42 13.87-18.85 11.52zm42.16 9.69c-2.36-.52-7.07-2.36-8.64-2.88v-.26l1.57-1.83c.59-8.24.59-7.27.26-7.59-4.82-1.81-6.66-2.36-7.07-2.36-1.31 1.83-2.88 4.45-3.67 5.5l-.79 3.4v.26c-1.31-.26-3.93-1.31-6.02-1.57v-.26l2.62-1.83c3.4-4.71 9.95-14.14 13.88-20.16v-2.09l.52-.26c2.09.79 5.5 2.09 7.59 2.88.48.48.18-1.87-1.05 25.14-.24 1.81.02 2.6.8 3.91zm-4.71-89.82c11.25-18.27 30.76-16.19 34.04-3.4L539.7 198c2.34-6.25-2.82-9.9-4.45-11.26l1.83-3.67c12.22 10.37 16.38 13.97 22.52 20.43-25.91 73.07-30.76 80.81-24.62 84.32l-1.83 4.45c-6.37-3.35-8.9-4.42-17.81-8.64l2.09-6.81c-.26-.26-3.93 3.93-9.69 3.67-19.06-1.3-22.89-31.75-9.67-52.9zm29.33 79.34c0-5.71-6.34-7.89-7.86-5.24-1.31 2.09 1.05 4.98 2.88 8.38 1.57 2.62 2.62 6.28 1.05 9.43-2.64 6.34-12.4 5.31-15.45-.79 0-.7-.27.09 1.83-4.71l.79-.26c-.57 5.66 6.06 9.61 8.38 4.98 1.05-2.09-.52-5.5-2.09-8.38-1.57-2.62-3.67-6.28-1.83-9.69 2.72-5.06 11.25-4.47 14.66 2.36v.52l-2.36 3.4zm21.21 13.36c-1.96-3.27-.91-2.14-4.45-4.71h-.26c-2.36 4.19-5.76 10.47-8.64 16.24-1.31 2.36-1.05 3.4-.79 3.93l-.26.26-5.76-4.45.26-.26 2.09-1.31c3.14-5.76 6.55-12.05 9.17-17.02v-.26c-2.64-1.98-1.22-1.51-6.02-1.83v-.26l3.14-3.4h.26c3.67 2.36 9.95 6.81 12.31 8.9l.26.26-1.31 3.91zm27.23-44.26l-2.88-2.88c.79-2.36 1.83-4.98 2.09-7.59.75-9.74-11.52-11.84-11.52-4.98 0 4.98 7.86 19.38 7.86 27.76 0 10.21-5.76 15.71-13.88 16.5-8.38.79-20.16-10.47-20.16-10.47l4.98-14.4 2.88 2.09c-2.97 17.8 17.68 20.37 13.35 5.24-1.06-4.02-18.75-34.2 2.09-38.23 13.62-2.36 23.04 16.5 23.04 16.5l-7.85 10.46zm35.62-10.21c-11-30.38-60.49-127.53-191.95-129.62-53.42-1.05-94.27 15.45-132.76 37.97l85.63-9.17-91.39 20.69 25.14 19.64-3.93-16.5c7.5-1.71 39.15-8.45 66.77-8.9l-22.26 80.39c13.61-.7 18.97-8.98 19.64-22.78l4.98-1.05.26 26.71c-22.46 3.21-37.3 6.69-49.49 9.95l13.09-43.21-61.54-36.66 2.36 8.12 10.21 4.98c6.28 18.59 19.38 56.56 20.43 58.66 1.95 4.28 3.16 5.78 12.05 4.45l1.05 4.98c-16.08 4.86-23.66 7.61-39.02 14.4l-2.36-4.71c4.4-2.94 8.73-3.94 5.5-12.83-23.7-62.5-21.48-58.14-22.78-59.44l2.36-4.45 33.52 67.3c-3.84-11.87 1.68 1.69-32.99-78.82l-41.9 88.51 4.71-13.88-35.88-42.16 27.76 93.48-11.78 8.38C95 228.58 101.05 231.87 93.23 231.52c-5.5-.26-13.62 5.5-13.62 5.5L74.63 231c30.56-23.53 31.62-24.33 58.4-42.68l4.19 7.07s-5.76 4.19-7.86 7.07c-5.9 9.28 1.67 13.28 61.8 75.68l-18.85-58.92 39.8-10.21 25.66 30.64 4.45-12.31-4.98-24.62 13.09-3.4.52 3.14 3.67-10.47-94.27 29.33 11.26-4.98-13.62-42.42 17.28-9.17 30.11 36.14 28.54-13.09c-1.41-7.47-2.47-14.5-4.71-19.64l17.28 13.88 4.71-2.09-59.18-42.68 23.08 11.5c18.98-6.07 25.23-7.47 32.21-9.69l2.62 11c-12.55 12.55 1.43 16.82 6.55 19.38l-13.62-61.01 12.05 28.28c4.19-1.31 7.33-2.09 7.33-2.09l2.62 8.64s-3.14 1.05-6.28 2.09l8.9 20.95 33.78-65.73-20.69 61.01c42.42-24.09 81.44-36.66 131.98-35.88 67.04 1.05 167.33 40.85 199.8 139.83.78 2.1-.01 2.63-.79.27zM203.48 152.43s1.83-.52 4.19-1.31l9.43 7.59c-.4 0-3.44-.25-11.26 2.36l-2.36-8.64zm143.76 38.5c-1.57-.6-26.46-4.81-33.26 20.69l21.73 17.02 11.53-37.71zM318.43 67.07c-58.4 0-106.05 12.05-114.96 14.4v.79c8.38 2.09 14.4 4.19 21.21 11.78l1.57.26c6.55-1.83 48.97-13.88 110.24-13.88 180.16 0 301.67 116.79 301.67 223.37v9.95c0 1.31.79 2.62 1.05.52.52-2.09.79-8.64.79-19.64.26-83.79-96.63-227.55-321.57-227.55zm211.06 169.68c1.31-5.76 0-12.31-7.33-13.09-9.62-1.13-16.14 23.79-17.02 33.52-.79 5.5-1.31 14.93 6.02 14.93 4.68-.01 9.72-.91 18.33-35.36zm-61.53 42.95c-2.62-.79-9.43-.79-12.57 10.47-1.83 6.81.52 13.35 6.02 14.66 3.67 1.05 8.9.52 11.78-10.74 2.62-9.94-1.83-13.61-5.23-14.39zM491 300.65c1.83.52 3.14 1.05 5.76 1.83 0-1.83.52-8.38.79-12.05-1.05 1.31-5.5 8.12-6.55 9.95v.27z"], - "square-viadeo": [448, 512, ["viadeo-square"], "f2aa", "M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM118.3 381.2c-68-73.6-19.8-196.1 81.2-196.1c13.3 0 26.6 2.1 39.1 6.7c-4.3 8.4-7.3 17.6-8.4 27.1c-9.7-4.1-20.2-6-30.7-6c-48.8 0-84.6 41.7-84.6 88.9c0 43 28.5 78.7 69.5 85.9c61.5-24 72.9-117.6 72.9-175v0c0-7.3 0-14.8-.6-22.1c-11.2-32.9-26.6-64.6-44.2-94.5c27.1 18.3 41.9 62.5 44.2 94.1v.4c7.7 22.5 11.8 46.2 11.8 70c0 54.1-21.9 99-68.3 128.2l-2.4 .2c50 1 86.2-38.6 86.2-87.2c0-12.2-2.1-24.3-6.9-35.7c9.5-1.9 18.5-5.6 26.4-10.5c15.3 36.6 12.6 87.3-22.8 125.6c-42.4 46.2-120 46.6-162.4 0zM274.6 217.6c21.9-12 49.6-30.7 62.3-53c1.5-3 4.1-8.6 4.5-12c-12.5 27.9-44.2 49.8-73.9 56.7c-4.7-7.3-7.5-15.5-7.5-24.3c0-10.3 5.2-24.1 12.9-31.6c8.3-7.9 18-10.9 27.9-14.1c16-5.1 32.5-10.3 44.5-35.9c32.5 46.2 13.1 130.3-36.3 130.3c-13.3 0-25.1-7.1-34.4-16.1z"], - "meetup": [512, 512, [], "f2e0", "M99 414.3c1.1 5.7-2.3 11.1-8 12.3-5.4 1.1-10.9-2.3-12-8-1.1-5.4 2.3-11.1 7.7-12.3 5.4-1.2 11.1 2.3 12.3 8zm143.1 71.4c-6.3 4.6-8 13.4-3.7 20 4.6 6.6 13.4 8.3 20 3.7 6.3-4.6 8-13.4 3.4-20-4.2-6.5-13.1-8.3-19.7-3.7zm-86-462.3c6.3-1.4 10.3-7.7 8.9-14-1.1-6.6-7.4-10.6-13.7-9.1-6.3 1.4-10.3 7.7-9.1 14 1.4 6.6 7.6 10.6 13.9 9.1zM34.4 226.3c-10-6.9-23.7-4.3-30.6 6-6.9 10-4.3 24 5.7 30.9 10 7.1 23.7 4.6 30.6-5.7 6.9-10.4 4.3-24.1-5.7-31.2zm272-170.9c10.6-6.3 13.7-20 7.7-30.3-6.3-10.6-19.7-14-30-7.7s-13.7 20-7.4 30.6c6 10.3 19.4 13.7 29.7 7.4zm-191.1 58c7.7-5.4 9.4-16 4.3-23.7s-15.7-9.4-23.1-4.3c-7.7 5.4-9.4 16-4.3 23.7 5.1 7.8 15.6 9.5 23.1 4.3zm372.3 156c-7.4 1.7-12.3 9.1-10.6 16.9 1.4 7.4 8.9 12.3 16.3 10.6 7.4-1.4 12.3-8.9 10.6-16.6-1.5-7.4-8.9-12.3-16.3-10.9zm39.7-56.8c-1.1-5.7-6.6-9.1-12-8-5.7 1.1-9.1 6.9-8 12.6 1.1 5.4 6.6 9.1 12.3 8 5.4-1.5 9.1-6.9 7.7-12.6zM447 138.9c-8.6 6-10.6 17.7-4.9 26.3 5.7 8.6 17.4 10.6 26 4.9 8.3-6 10.3-17.7 4.6-26.3-5.7-8.7-17.4-10.9-25.7-4.9zm-6.3 139.4c26.3 43.1 15.1 100-26.3 129.1-17.4 12.3-37.1 17.7-56.9 17.1-12 47.1-69.4 64.6-105.1 32.6-1.1.9-2.6 1.7-3.7 2.9-39.1 27.1-92.3 17.4-119.4-22.3-9.7-14.3-14.6-30.6-15.1-46.9-65.4-10.9-90-94-41.1-139.7-28.3-46.9.6-107.4 53.4-114.9C151.6 70 234.1 38.6 290.1 82c67.4-22.3 136.3 29.4 130.9 101.1 41.1 12.6 52.8 66.9 19.7 95.2zm-70 74.3c-3.1-20.6-40.9-4.6-43.1-27.1-3.1-32 43.7-101.1 40-128-3.4-24-19.4-29.1-33.4-29.4-13.4-.3-16.9 2-21.4 4.6-2.9 1.7-6.6 4.9-11.7-.3-6.3-6-11.1-11.7-19.4-12.9-12.3-2-17.7 2-26.6 9.7-3.4 2.9-12 12.9-20 9.1-3.4-1.7-15.4-7.7-24-11.4-16.3-7.1-40 4.6-48.6 20-12.9 22.9-38 113.1-41.7 125.1-8.6 26.6 10.9 48.6 36.9 47.1 11.1-.6 18.3-4.6 25.4-17.4 4-7.4 41.7-107.7 44.6-112.6 2-3.4 8.9-8 14.6-5.1 5.7 3.1 6.9 9.4 6 15.1-1.1 9.7-28 70.9-28.9 77.7-3.4 22.9 26.9 26.6 38.6 4 3.7-7.1 45.7-92.6 49.4-98.3 4.3-6.3 7.4-8.3 11.7-8 3.1 0 8.3.9 7.1 10.9-1.4 9.4-35.1 72.3-38.9 87.7-4.6 20.6 6.6 41.4 24.9 50.6 11.4 5.7 62.5 15.7 58.5-11.1zm5.7 92.3c-10.3 7.4-12.9 22-5.7 32.6 7.1 10.6 21.4 13.1 32 6 10.6-7.4 13.1-22 6-32.6-7.4-10.6-21.7-13.5-32.3-6z"], - "centos": [448, 512, [], "f789", "M289.6 97.5l31.6 31.7-76.3 76.5V97.5zm-162.4 31.7l76.3 76.5V97.5h-44.7zm41.5-41.6h44.7v127.9l10.8 10.8 10.8-10.8V87.6h44.7L224.2 32zm26.2 168.1l-10.8-10.8H55.5v-44.8L0 255.7l55.5 55.6v-44.8h128.6l10.8-10.8zm79.3-20.7h107.9v-44.8l-31.6-31.7zm173.3 20.7L392 200.1v44.8H264.3l-10.8 10.8 10.8 10.8H392v44.8l55.5-55.6zM65.4 176.2l32.5-31.7 90.3 90.5h15.3v-15.3l-90.3-90.5 31.6-31.7H65.4zm316.7-78.7h-78.5l31.6 31.7-90.3 90.5V235h15.3l90.3-90.5 31.6 31.7zM203.5 413.9V305.8l-76.3 76.5 31.6 31.7h44.7zM65.4 235h108.8l-76.3-76.5-32.5 31.7zm316.7 100.2l-31.6 31.7-90.3-90.5h-15.3v15.3l90.3 90.5-31.6 31.7h78.5zm0-58.8H274.2l76.3 76.5 31.6-31.7zm-60.9 105.8l-76.3-76.5v108.1h44.7zM97.9 352.9l76.3-76.5H65.4v44.8zm181.8 70.9H235V295.9l-10.8-10.8-10.8 10.8v127.9h-44.7l55.5 55.6zm-166.5-41.6l90.3-90.5v-15.3h-15.3l-90.3 90.5-32.5-31.7v78.7h79.4z"], - "adn": [496, 512, [], "f170", "M248 167.5l64.9 98.8H183.1l64.9-98.8zM496 256c0 136.9-111.1 248-248 248S0 392.9 0 256 111.1 8 248 8s248 111.1 248 248zm-99.8 82.7L248 115.5 99.8 338.7h30.4l33.6-51.7h168.6l33.6 51.7h30.2z"], - "cloudsmith": [512, 512, [], "f384", "M512 227.6v56.9L284.4 512H227.6L0 284.4V227.6L227.6 0h56.9L512 227.6zm-256 162a133.6 133.6 0 1 0 0-267.1 133.6 133.6 0 1 0 0 267.1z"], - "opensuse": [640, 512, [], "e62b", "M471.1 102.7s-.3 18.3-.3 20.3c-9.1-3-74.4-24.1-135.7-26.3c-51.9-1.8-122.8-4.3-223 57.3c-19.4 12.4-73.9 46.1-99.6 109.7C7 277-.1 307 7 335.1c3.3 12.8 8.9 24.9 16.5 35.7c17.4 25 46.6 41.6 78.1 44.4c44.4 3.9 78.1-16 90-53.3c8.2-25.8 0-63.6-31.5-82.9c-25.6-15.7-53.3-12.1-69.2-1.6c-13.9 9.2-21.8 23.5-21.6 39.2c.3 27.8 24.3 42.6 41.5 42.6c5.4 0 10.7-.9 15.8-2.7c6.5-1.8 13.3-6.5 13.3-14.9c0-12.1-11.6-14.8-16.8-13.9c-2.9 .5-4.5 2-11.8 2.4c-2-.2-12-3.1-12-14V316c.2-12.3 13.2-18 25.5-16.9c32.3 2.8 47.7 40.7 28.5 65.7C135 388.5 76.7 388 53.6 344.4c-26-49.2 12.7-111.2 87-98.4c33.2 5.7 83.6 35.5 102.4 104.3h45.9c-5.7-17.6-8.9-68.3 42.7-68.3c56.7 0 63.9 39.9 79.8 68.3H460c-12.8-18.3-21.7-38.7-18.9-55.8c5.6-33.8 39.7-18.4 82.4-17.4c66.5 .4 102.1-27 103.1-28c3.7-3.1 6.5-15.8 7-17.7c1.3-5.1-3.2-2.4-3.2-2.4c-8.7 5.2-30.5 15.2-50.9 15.6c-25.3 .5-76.2-25.4-81.6-28.2c-.3-.4 .1 1.2-11-25.5c88.4 58.3 118.3 40.5 145.2 21.7c.8-.6 4.3-2.9 3.6-5.7c-13.8-48.1-22.4-62.7-34.5-69.6c-37-21.6-125-34.7-129.2-35.3c.1-.1-.9-.3-.9 .7l0 0zm135.6 75.4a37.6 37.6 0 1 1 -75.2-2.6 37.6 37.6 0 1 1 75.2 2.6zm-36.6-27.9a26.3 26.3 0 1 0 -1.7 52.5 26.3 26.3 0 1 0 1.7-52.5zm4.3 28.8c-15.4 0-15.4-15.6 0-15.6s15.4 15.6 0 15.6v0z"], - "pied-piper-alt": [576, 512, [], "f1a8", "M244 246c-3.2-2-6.3-2.9-10.1-2.9-6.6 0-12.6 3.2-19.3 3.7l1.7 4.9zm135.9 197.9c-19 0-64.1 9.5-79.9 19.8l6.9 45.1c35.7 6.1 70.1 3.6 106-9.8-4.8-10-23.5-55.1-33-55.1zM340.8 177c6.6 2.8 11.5 9.2 22.7 22.1 2-1.4 7.5-5.2 7.5-8.6 0-4.9-11.8-13.2-13.2-23 11.2-5.7 25.2-6 37.6-8.9 68.1-16.4 116.3-52.9 146.8-116.7C548.3 29.3 554 16.1 554.6 2l-2 2.6c-28.4 50-33 63.2-81.3 100-31.9 24.4-69.2 40.2-106.6 54.6l-6.3-.3v-21.8c-19.6 1.6-19.7-14.6-31.6-23-18.7 20.6-31.6 40.8-58.9 51.1-12.7 4.8-19.6 10-25.9 21.8 34.9-16.4 91.2-13.5 98.8-10zM555.5 0l-.6 1.1-.3.9.6-.6zm-59.2 382.1c-33.9-56.9-75.3-118.4-150-115.5l-.3-6c-1.1-13.5 32.8 3.2 35.1-31l-14.4 7.2c-19.8-45.7-8.6-54.3-65.5-54.3-14.7 0-26.7 1.7-41.4 4.6 2.9 18.6 2.2 36.7-10.9 50.3l19.5 5.5c-1.7 3.2-2.9 6.3-2.9 9.8 0 21 42.8 2.9 42.8 33.6 0 18.4-36.8 60.1-54.9 60.1-8 0-53.7-50-53.4-60.1l.3-4.6 52.3-11.5c13-2.6 12.3-22.7-2.9-22.7-3.7 0-43.1 9.2-49.4 10.6-2-5.2-7.5-14.1-13.8-14.1-3.2 0-6.3 3.2-9.5 4-9.2 2.6-31 2.9-21.5 20.1L15.9 298.5c-5.5 1.1-8.9 6.3-8.9 11.8 0 6 5.5 10.9 11.5 10.9 8 0 131.3-28.4 147.4-32.2 2.6 3.2 4.6 6.3 7.8 8.6 20.1 14.4 59.8 85.9 76.4 85.9 24.1 0 58-22.4 71.3-41.9 3.2-4.3 6.9-7.5 12.4-6.9.6 13.8-31.6 34.2-33 43.7-1.4 10.2-1 35.2-.3 41.1 26.7 8.1 52-3.6 77.9-2.9 4.3-21 10.6-41.9 9.8-63.5l-.3-9.5c-1.4-34.2-10.9-38.5-34.8-58.6-1.1-1.1-2.6-2.6-3.7-4 2.2-1.4 1.1-1 4.6-1.7 88.5 0 56.3 183.6 111.5 229.9 33.1-15 72.5-27.9 103.5-47.2-29-25.6-52.6-45.7-72.7-79.9zm-196.2 46.1v27.2l11.8-3.4-2.9-23.8zm-68.7-150.4l24.1 61.2 21-13.8-31.3-50.9zm84.4 154.9l2 12.4c9-1.5 58.4-6.6 58.4-14.1 0-1.4-.6-3.2-.9-4.6-26.8 0-36.9 3.8-59.5 6.3z"], - "square-dribbble": [448, 512, ["dribbble-square"], "f397", "M165.9 132.5c-38.3 18-66.8 53.3-75.7 95.7c6.1 .1 62.4 .3 126.4-16.7c-22.7-40.2-47.1-74.1-50.7-79zm26.1-9.1c3.8 5.1 28.6 38.9 51 80c48.6-18.3 69.1-45.9 71.6-49.4C281 124.2 235.3 112.9 192 123.4zM277.4 382c-2-12-10-53.8-29.2-103.6c-55.1 18.8-93.8 56.4-108.1 85.6c40.5 31.6 93.3 36.7 137.3 18zM227.8 232.6C159.6 253 93.4 252.2 87.4 252c0 .7 0 1.4 0 2.1s0 1.4 0 2.1c0 35.1 13.3 67.1 35.1 91.4c22.2-37.9 67.1-77.9 116.5-91.8c-3.4-7.8-7.2-15.5-11.1-23.2zm72.5 136.9c30.7-20.7 52.5-53.6 58.6-91.6c-4.6-1.5-42.3-12.7-85.1-5.8c17.9 49.1 25.1 89.1 26.5 97.4zm-34.8-119c45.5-5.7 90.7 3.4 95.2 4.4c-.3-32.3-11.8-61.9-30.9-85.1c-2.9 3.9-25.8 33.2-76.3 53.9c4.8 9.8 8.3 17.8 12 26.8zM384 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64zM224 416a160 160 0 1 1 0-320 160 160 0 1 1 0 320z"], - "codiepie": [472, 512, [], "f284", "M422.5 202.9c30.7 0 33.5 53.1-.3 53.1h-10.8v44.3h-26.6v-97.4h37.7zM472 352.6C429.9 444.5 350.4 504 248 504 111 504 0 393 0 256S111 8 248 8c97.4 0 172.8 53.7 218.2 138.4l-186 108.8L472 352.6zm-38.5 12.5l-60.3-30.7c-27.1 44.3-70.4 71.4-122.4 71.4-82.5 0-149.2-66.7-149.2-148.9 0-82.5 66.7-149.2 149.2-149.2 48.4 0 88.9 23.5 116.9 63.4l59.5-34.6c-40.7-62.6-104.7-100-179.2-100-121.2 0-219.5 98.3-219.5 219.5S126.8 475.5 248 475.5c78.6 0 146.5-42.1 185.5-110.4z"], - "node": [640, 512, [], "f419", "M316.3 452c-2.1 0-4.2-.6-6.1-1.6L291 439c-2.9-1.6-1.5-2.2-.5-2.5 3.8-1.3 4.6-1.6 8.7-4 .4-.2 1-.1 1.4.1l14.8 8.8c.5.3 1.3.3 1.8 0L375 408c.5-.3.9-.9.9-1.6v-66.7c0-.7-.3-1.3-.9-1.6l-57.8-33.3c-.5-.3-1.2-.3-1.8 0l-57.8 33.3c-.6.3-.9 1-.9 1.6v66.7c0 .6.4 1.2.9 1.5l15.8 9.1c8.6 4.3 13.9-.8 13.9-5.8v-65.9c0-.9.7-1.7 1.7-1.7h7.3c.9 0 1.7.7 1.7 1.7v65.9c0 11.5-6.2 18-17.1 18-3.3 0-6 0-13.3-3.6l-15.2-8.7c-3.7-2.2-6.1-6.2-6.1-10.5v-66.7c0-4.3 2.3-8.4 6.1-10.5l57.8-33.4c3.7-2.1 8.5-2.1 12.1 0l57.8 33.4c3.7 2.2 6.1 6.2 6.1 10.5v66.7c0 4.3-2.3 8.4-6.1 10.5l-57.8 33.4c-1.7 1.1-3.8 1.7-6 1.7zm46.7-65.8c0-12.5-8.4-15.8-26.2-18.2-18-2.4-19.8-3.6-19.8-7.8 0-3.5 1.5-8.1 14.8-8.1 11.9 0 16.3 2.6 18.1 10.6.2.8.8 1.3 1.6 1.3h7.5c.5 0 .9-.2 1.2-.5.3-.4.5-.8.4-1.3-1.2-13.8-10.3-20.2-28.8-20.2-16.5 0-26.3 7-26.3 18.6 0 12.7 9.8 16.1 25.6 17.7 18.9 1.9 20.4 4.6 20.4 8.3 0 6.5-5.2 9.2-17.4 9.2-15.3 0-18.7-3.8-19.8-11.4-.1-.8-.8-1.4-1.7-1.4h-7.5c-.9 0-1.7.7-1.7 1.7 0 9.7 5.3 21.3 30.6 21.3 18.5 0 29-7.2 29-19.8zm54.5-50.1c0 6.1-5 11.1-11.1 11.1s-11.1-5-11.1-11.1c0-6.3 5.2-11.1 11.1-11.1 6-.1 11.1 4.8 11.1 11.1zm-1.8 0c0-5.2-4.2-9.3-9.4-9.3-5.1 0-9.3 4.1-9.3 9.3 0 5.2 4.2 9.4 9.3 9.4 5.2-.1 9.4-4.3 9.4-9.4zm-4.5 6.2h-2.6c-.1-.6-.5-3.8-.5-3.9-.2-.7-.4-1.1-1.3-1.1h-2.2v5h-2.4v-12.5h4.3c1.5 0 4.4 0 4.4 3.3 0 2.3-1.5 2.8-2.4 3.1 1.7.1 1.8 1.2 2.1 2.8.1 1 .3 2.7.6 3.3zm-2.8-8.8c0-1.7-1.2-1.7-1.8-1.7h-2v3.5h1.9c1.6 0 1.9-1.1 1.9-1.8zM137.3 191c0-2.7-1.4-5.1-3.7-6.4l-61.3-35.3c-1-.6-2.2-.9-3.4-1h-.6c-1.2 0-2.3.4-3.4 1L3.7 184.6C1.4 185.9 0 188.4 0 191l.1 95c0 1.3.7 2.5 1.8 3.2 1.1.7 2.5.7 3.7 0L42 268.3c2.3-1.4 3.7-3.8 3.7-6.4v-44.4c0-2.6 1.4-5.1 3.7-6.4l15.5-8.9c1.2-.7 2.4-1 3.7-1 1.3 0 2.6.3 3.7 1l15.5 8.9c2.3 1.3 3.7 3.8 3.7 6.4v44.4c0 2.6 1.4 5.1 3.7 6.4l36.4 20.9c1.1.7 2.6.7 3.7 0 1.1-.6 1.8-1.9 1.8-3.2l.2-95zM472.5 87.3v176.4c0 2.6-1.4 5.1-3.7 6.4l-61.3 35.4c-2.3 1.3-5.1 1.3-7.4 0l-61.3-35.4c-2.3-1.3-3.7-3.8-3.7-6.4v-70.8c0-2.6 1.4-5.1 3.7-6.4l61.3-35.4c2.3-1.3 5.1-1.3 7.4 0l15.3 8.8c1.7 1 3.9-.3 3.9-2.2v-94c0-2.8 3-4.6 5.5-3.2l36.5 20.4c2.3 1.2 3.8 3.7 3.8 6.4zm-46 128.9c0-.7-.4-1.3-.9-1.6l-21-12.2c-.6-.3-1.3-.3-1.9 0l-21 12.2c-.6.3-.9.9-.9 1.6v24.3c0 .7.4 1.3.9 1.6l21 12.1c.6.3 1.3.3 1.8 0l21-12.1c.6-.3.9-.9.9-1.6v-24.3zm209.8-.7c2.3-1.3 3.7-3.8 3.7-6.4V192c0-2.6-1.4-5.1-3.7-6.4l-60.9-35.4c-2.3-1.3-5.1-1.3-7.4 0l-61.3 35.4c-2.3 1.3-3.7 3.8-3.7 6.4v70.8c0 2.7 1.4 5.1 3.7 6.4l60.9 34.7c2.2 1.3 5 1.3 7.3 0l36.8-20.5c2.5-1.4 2.5-5 0-6.4L550 241.6c-1.2-.7-1.9-1.9-1.9-3.2v-22.2c0-1.3.7-2.5 1.9-3.2l19.2-11.1c1.1-.7 2.6-.7 3.7 0l19.2 11.1c1.1.7 1.9 1.9 1.9 3.2v17.4c0 2.8 3.1 4.6 5.6 3.2l36.7-21.3zM559 219c-.4.3-.7.7-.7 1.2v13.6c0 .5.3 1 .7 1.2l11.8 6.8c.4.3 1 .3 1.4 0L584 235c.4-.3.7-.7.7-1.2v-13.6c0-.5-.3-1-.7-1.2l-11.8-6.8c-.4-.3-1-.3-1.4 0L559 219zm-254.2 43.5v-70.4c0-2.6-1.6-5.1-3.9-6.4l-61.1-35.2c-2.1-1.2-5-1.4-7.4 0l-61.1 35.2c-2.3 1.3-3.9 3.7-3.9 6.4v70.4c0 2.8 1.9 5.2 4 6.4l61.2 35.2c2.4 1.4 5.2 1.3 7.4 0l61-35.2c1.8-1 3.1-2.7 3.6-4.7.1-.5.2-1.1.2-1.7zm-74.3-124.9l-.8.5h1.1l-.3-.5zm76.2 130.2l-.4-.7v.9l.4-.2z"], - "mix": [448, 512, [], "f3cb", "M0 64v348.9c0 56.2 88 58.1 88 0V174.3c7.9-52.9 88-50.4 88 6.5v175.3c0 57.9 96 58 96 0V240c5.3-54.7 88-52.5 88 4.3v23.8c0 59.9 88 56.6 88 0V64H0z"], - "steam": [496, 512, [], "f1b6", "M496 256c0 137-111.2 248-248.4 248-113.8 0-209.6-76.3-239-180.4l95.2 39.3c6.4 32.1 34.9 56.4 68.9 56.4 39.2 0 71.9-32.4 70.2-73.5l84.5-60.2c52.1 1.3 95.8-40.9 95.8-93.5 0-51.6-42-93.5-93.7-93.5s-93.7 42-93.7 93.5v1.2L176.6 279c-15.5-.9-30.7 3.4-43.5 12.1L0 236.1C10.2 108.4 117.1 8 247.6 8 384.8 8 496 119 496 256zM155.7 384.3l-30.5-12.6a52.79 52.79 0 0 0 27.2 25.8c26.9 11.2 57.8-1.6 69-28.4 5.4-13 5.5-27.3.1-40.3-5.4-13-15.5-23.2-28.5-28.6-12.9-5.4-26.7-5.2-38.9-.6l31.5 13c19.8 8.2 29.2 30.9 20.9 50.7-8.3 19.9-31 29.2-50.8 21zm173.8-129.9c-34.4 0-62.4-28-62.4-62.3s28-62.3 62.4-62.3 62.4 28 62.4 62.3-27.9 62.3-62.4 62.3zm.1-15.6c25.9 0 46.9-21 46.9-46.8 0-25.9-21-46.8-46.9-46.8s-46.9 21-46.9 46.8c.1 25.8 21.1 46.8 46.9 46.8z"], - "cc-apple-pay": [576, 512, [], "f416", "M302.2 218.4c0 17.2-10.5 27.1-29 27.1h-24.3v-54.2h24.4c18.4 0 28.9 9.8 28.9 27.1zm47.5 62.6c0 8.3 7.2 13.7 18.5 13.7 14.4 0 25.2-9.1 25.2-21.9v-7.7l-23.5 1.5c-13.3.9-20.2 5.8-20.2 14.4zM576 79v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM127.8 197.2c8.4.7 16.8-4.2 22.1-10.4 5.2-6.4 8.6-15 7.7-23.7-7.4.3-16.6 4.9-21.9 11.3-4.8 5.5-8.9 14.4-7.9 22.8zm60.6 74.5c-.2-.2-19.6-7.6-19.8-30-.2-18.7 15.3-27.7 16-28.2-8.8-13-22.4-14.4-27.1-14.7-12.2-.7-22.6 6.9-28.4 6.9-5.9 0-14.7-6.6-24.3-6.4-12.5.2-24.2 7.3-30.5 18.6-13.1 22.6-3.4 56 9.3 74.4 6.2 9.1 13.7 19.1 23.5 18.7 9.3-.4 13-6 24.2-6 11.3 0 14.5 6 24.3 5.9 10.2-.2 16.5-9.1 22.8-18.2 6.9-10.4 9.8-20.4 10-21zm135.4-53.4c0-26.6-18.5-44.8-44.9-44.8h-51.2v136.4h21.2v-46.6h29.3c26.8 0 45.6-18.4 45.6-45zm90 23.7c0-19.7-15.8-32.4-40-32.4-22.5 0-39.1 12.9-39.7 30.5h19.1c1.6-8.4 9.4-13.9 20-13.9 13 0 20.2 6 20.2 17.2v7.5l-26.4 1.6c-24.6 1.5-37.9 11.6-37.9 29.1 0 17.7 13.7 29.4 33.4 29.4 13.3 0 25.6-6.7 31.2-17.4h.4V310h19.6v-68zM516 210.9h-21.5l-24.9 80.6h-.4l-24.9-80.6H422l35.9 99.3-1.9 6c-3.2 10.2-8.5 14.2-17.9 14.2-1.7 0-4.9-.2-6.2-.3v16.4c1.2.4 6.5.5 8.1.5 20.7 0 30.4-7.9 38.9-31.8L516 210.9z"], - "scribd": [384, 512, [], "f28a", "M42.3 252.7c-16.1-19-24.7-45.9-24.8-79.9 0-100.4 75.2-153.1 167.2-153.1 98.6-1.6 156.8 49 184.3 70.6l-50.5 72.1-37.3-24.6 26.9-38.6c-36.5-24-79.4-36.5-123-35.8-50.7-.8-111.7 27.2-111.7 76.2 0 18.7 11.2 20.7 28.6 15.6 23.3-5.3 41.9.6 55.8 14 26.4 24.3 23.2 67.6-.7 91.9-29.2 29.5-85.2 27.3-114.8-8.4zm317.7 5.9c-15.5-18.8-38.9-29.4-63.2-28.6-38.1-2-71.1 28-70.5 67.2-.7 16.8 6 33 18.4 44.3 14.1 13.9 33 19.7 56.3 14.4 17.4-5.1 28.6-3.1 28.6 15.6 0 4.3-.5 8.5-1.4 12.7-16.7 40.9-59.5 64.4-121.4 64.4-51.9.2-102.4-16.4-144.1-47.3l33.7-39.4-35.6-27.4L0 406.3l15.4 13.8c52.5 46.8 120.4 72.5 190.7 72.2 51.4 0 94.4-10.5 133.6-44.1 57.1-51.4 54.2-149.2 20.3-189.6z"], - "debian": [448, 512, [], "e60b", "M380.2 245.6c3-7.6 5.5-14 5.2-24.4l-4.3 9c4.4-13.2 4-27.1 3.6-40.4c-.2-6-.3-11.8 0-17.4l-1.8-.5c-1.5-45.2-40.6-93.1-75.3-109.4c-30-13.8-76.1-16.2-97.3-5.8c1.3-1.1 4.2-2 6.8-2.7l.3-.1c3.3-1 6-1.7 4-2.9c-19.2 1.9-24.9 5.5-31.1 9.4l-.1 0c-4.6 2.9-9.5 6-20.3 8.7c-3.5 3.4 1.7 2 5.8 .9l0 0c4.1-1.1 7.2-1.9-.1 2.4c-3.5 1-6.6 1.3-9.6 1.6l-.1 0c-8.3 .8-15.8 1.6-30.7 17c.8 1.3 3.4-.2 5.3-1.3l.1-.1c2.3-1.4 3.4-2-1.7 4.4c-19.1-2.4-60.3 43.7-69.1 59l4.6 .8c-3.2 8-6.8 14.8-10 20.8c-4.3 8.1-7.9 14.9-8.7 21.3c-.3 5.1-1 11-1.7 17.3l0 0c-.1 1-.2 2-.3 3l-.1 .6c-3 27.3-6.7 60.8 3.9 73l-1.3 13c.6 1.2 1.1 2.3 1.6 3.5c.2 .4 .4 .8 .5 1.1l0 0 0 0 0 0 0 0 0 0 0 0 0 0c1 2.1 2 4.2 3.3 6.2l-3 .2c7 22.1 10.8 22.5 15.1 22.9l0 0c4.4 .4 9.3 .9 18.7 24.2c-2.7-.9-5.5-1.9-9.4-7.2c-.5 4.1 5.8 16.3 13.1 25.8l-3.1 3.6c2.1 3.7 4.8 6.2 7.6 8.8l0 0 0 0c1 .9 2.1 1.9 3.1 2.9c-11.9-6.5 3.2 13.7 11.9 25.2c.8 1.1 1.5 2 2.2 2.9l0 0 0 0 0 0 0 0 0 0c1.4 1.9 2.5 3.4 2.9 4.1l2.4-4.2c-.3 6.1 4.3 13.9 13.1 24.7l7.3-.3c3 6 14 16.7 20.7 17.2l-4.4 5.8c8.1 2.6 10.3 4.3 12.7 6.2c2.6 2.1 5.4 4.3 16.1 8.1l-4.2-7.4c3.5 3 6.2 5.9 8.8 8.7l.1 .1c5.2 5.6 9.9 10.6 19.7 15.3c10.7 3.7 16.6 4.7 22.7 5.8c.3 0 .6 .1 .9 .1c5.4 .8 11.2 1.8 20.8 4.5c-1.1-.1-2.2-.1-3.3-.1h0c-2.3-.1-4.7-.1-7-.1l0 0 0 0 0 0 0 0 0 0 0 0 0 0c-14.4-.2-29.2-.4-42.7-5.2C107.8 480.5 19.5 367.2 26 250.6c-.6-9.9-.3-20.9 0-30.7c.4-13.5 .7-24.8-1.6-28.3l1-3.1c5.3-17.4 11.7-38.2 23.8-62.8l-.1-.2v-.1c.4 .4 3.4 3.4 8.8-5.8c.8-1.8 1.6-3.7 2.4-5.6c.5-1.1 .9-2.2 1.4-3.2c2.5-6.1 5.1-12.3 8.4-17.9l2.6-.6c1.7-10.1 17-23.8 29.8-35.2l1.1-1c5.7-5.1 10.7-9.7 13.6-13.1l.7 4.4c17-15.9 44.6-27.5 65.6-36.4l.5-.2c4.8-2 9.3-3.9 13.3-5.7c-3.4 3.8 2.2 2.7 10 1c4.8-1 10.4-2.1 15.3-2.4l-3.9 2.1c-2.7 1.4-5.4 2.8-8 4.6c8.1-2 11.7-1.4 15.7-.8l.3 0c3.5 .6 7.3 1.2 14.6 .2c-5.6 .8-12.3 3-11.2 3.8c7.9 .9 12.8-.1 17.2-1l.2 0c5.5-1.1 10.3-2 19.3 .9l-1-4.8c7.3 2.6 12.7 4.3 17.5 5.8l.5 .1c10 3 17.6 5.3 34.2 14.1c3.2 .2 5.3-.5 7.4-1.2l.1 0c3.6-1.1 7-2.1 15.2 1.2c.3 .5 .5 1 .7 1.4c.1 .2 .2 .5 .3 .7l0 .1c1 2.6 1.8 4.6 14.6 12.1c1.7-.7-2.7-4.7-6.4-8.2c0 0 0 0-.1-.1c-.2-.1-.3-.3-.5-.4c32.2 17.3 67.3 54.1 78 93.5c-6-11.1-5.2-5.5-4.3 .5c.6 4 1.2 8.1-.2 7.5c4.5 12.1 8.1 24.5 10.4 37.4l-.8-2.9-.1-.3c-3.3-11.9-9.6-34.3-19.9-49.3c-.4 4.3-2.8 3.9-5.2 3.5l-.1 0 0 0c-3.3-.6-6.2-1.1-1.9 12.6c2.6 3.8 3.1 2.4 3.5 1.1l0 0c.5-1.5 .9-2.7 4.7 5.2c.1 4.1 1 8.2 2.1 12.7l0 0 0 0 .1 .6c.1 .3 .1 .5 .2 .8l.1 .6c.6 2.6 1.3 5.4 1.8 8.4c-1.1-.2-2.3-2.2-3.4-4.2c-1.4-2.4-2.8-4.7-3.7-3.2c2.4 11.5 6.5 17.4 8 18.3c-.3 .6-.6 .7-1.1 .7c-.8 0-1.8 .1-1.9 5.3c.7 13.7 3.3 12.5 5.3 11.6l0 0c.6-.3 1.2-.6 1.7-.4c-.6 2.5-1.6 5.1-2.7 7.9c-2.8 7.1-6 15.4-3.4 26.1c-.8-3-2-6-3.1-8.9l-.1-.4c-.2-.5-.4-1-.6-1.5l0 0c-.3-.8-.6-1.6-.9-2.3c-.6 4.4-.3 7.7-.1 10.6c0 .2 0 .5 0 .7c.4 5.3 .7 10-3 19.9c4.3-14.2 3.8-26.9-.2-20.8c1 10.9-3.7 20.4-8 28.9l-.1 .2c-3.6 7.1-6.8 13.5-5.9 19.3l-5.2-7.1c-7.5 10.9-7 13.3-6.5 15.5l0 .1c.5 1.9 1 3.8-3.4 10.8c1.7-2.9 1.3-3.6 1-4.2l0 0c-.4-.8-.7-1.5 1.7-5.1c-1.6 .1-5.5 3.9-10.1 8.5c-3.9 3.9-8.5 8.4-12.8 11.8c-37.5 30.1-82.3 34-125.6 17.8c.2-1-.2-2.1-3.1-4.1c-36.8-28.2-58.5-52.1-50.9-107.5c2.1-1.6 3.6-5.8 5.3-10.8l0 0 0 0 .2-.4 .1-.3 0-.1c2.9-8.4 6.5-18.8 14.3-23.8c7.8-17.3 31.3-33.3 56.4-33.7c25.6-1.4 47.2 13.7 58.1 27.9c-19.8-18.4-52.1-24-79.7-10.4c-28.2 12.7-45 43.8-42.5 74.7c.3-.4 .6-.6 .9-.8l0 0s0 0 0 0c0 0 .1-.1 .1-.1l.1-.1c.6-.5 1.1-.9 1.4-3.3c-.9 60.2 64.8 104.3 112.1 82l.6 1.3c12.7-3.5 15.9-6.5 20.3-10.7l.1-.1 0 0c2.2-2.1 4.7-4.5 8.9-7.3c-.3 .7-1.3 1.7-2.4 2.7c-2.2 2.1-4.6 4.5-1.6 4.6c5-1.3 18.5-13.4 28.5-22.3l0 0 0 0c.6-.5 1.2-1 1.7-1.5c1.5-1.3 2.8-2.5 4-3.6l0 0 .3-.3c1.9-4.2 1.6-5.6 1.3-7l0-.1c-.4-1.6-.8-3.3 2.4-9.6l7.3-3.7c.8-2.1 1.5-4.1 2.2-6c.2-.6 .5-1.2 .7-1.8l-.4-.2zM349.3 34.3l-.2-.1 .2 .1 0 0zM247.8 334.1c-6-3-13.7-8.9-14.8-11.4l-.4 .3c-.3 .6-.5 1.3-.2 2.2c-12.2-5.7-23.4-14.3-32.6-24.9c4.9 7.1 10.1 14.1 17 19.5c-6.9-2.3-15.1-11.8-21.6-19.3l-.1-.1c-4.3-5-7.9-9.1-9.7-9.5c19.8 35.5 80.5 62.3 112.3 49c-14.7 .5-33.4 .3-49.9-5.8zm79.3-119.7l-.1-.2c-.5-1.5-1.1-3.1-1.7-3.4c1.4-5.8 5.4-10.7 4.4 4.6c-1 3.8-1.8 1.5-2.6-1zm-4.2 22.2c-1.3 7.9-5 15.5-10.1 22.5c.2-2-1.2-2.4-2.6-2.8l0 0c-2.9-.8-5.9-1.6 5.6-16.1c-.5 1.9-2.1 4.6-3.7 7.3l0 0 0 0-.3 .4c-3.6 5.9-6.7 11 4 4.3l1-1.8c2.6-4.5 5-8.8 6-13.8h.1zm-55.6 33.9c7.1 .6 14.1 .6 21-1.1c-2.5 2.4-5.2 4.8-8.3 7.2c-11.1-1.7-21.2-6-12.7-6.1zm-92.6 11.6c3.6 7.1 6.4 11.5 9 15.7l.1 .2c2.3 3.7 4.4 7.1 6.8 11.7c-5.1-4.2-8.7-9.5-12.5-15l-.3-.5c-1.4-2.1-2.8-4.2-4.4-6.2l1.2-5.9h.1zm7.5-9.6c1.6 3.3 3.2 6.4 5.7 9.1l2.6 7.7-1.3-2.1c-3.2-5.3-6.3-10.6-8-16.7l.8 1.6 .2 .4zm238.9-41.6c-2.3 17.4-7.7 34.6-16 50.3c7.6-14.9 12.5-30.9 14.8-47.2l1.2-3.1zM35.6 110.6c.4 .8 1.4 .5 2.3 .3c1.9-.5 3.6-.9-.1 7.6c-.5 .3-1 .7-1.5 1l0 0 0 0c-1.4 .9-2.8 1.9-3.9 3c1.9-3.8 3.5-7.4 3.2-11.9zM25.3 152.3c-.7 3.7-1.5 7.9-3.4 13.9c.2-1.9 0-3.5-.2-4.9l0-.1c-.4-3.4-.7-6.3 4.3-12.8c-.3 1.2-.5 2.5-.7 3.8v.1z"], - "openid": [448, 512, [], "f19b", "M271.5 432l-68 32C88.5 453.7 0 392.5 0 318.2c0-71.5 82.5-131 191.7-144.3v43c-71.5 12.5-124 53-124 101.3 0 51 58.5 93.3 135.7 103v-340l68-33.2v384zM448 291l-131.3-28.5 36.8-20.7c-19.5-11.5-43.5-20-70-24.8v-43c46.2 5.5 87.7 19.5 120.3 39.3l35-19.8L448 291z"], - "instalod": [512, 512, [], "e081", "M153.384,480H387.113L502.554,275.765,204.229,333.211ZM504.726,240.078,387.113,32H155.669L360.23,267.9ZM124.386,48.809,7.274,256,123.236,461.154,225.627,165.561Z"], - "files-pinwheel": [512, 512, [], "e69f", "M253.2 246.4L136.9 130.2c-.6-.6-1-1.3-1.4-2s-.5-1.6-.5-2.4s.2-1.6 .5-2.4s.8-1.4 1.4-2L253.3 5.1c.9-.9 2-1.5 3.2-1.7s2.5-.1 3.6 .3s2.1 1.3 2.8 2.3s1.1 2.2 1.1 3.5L264 242c0 1.3-.3 2.5-1 3.6s-1.7 1.9-2.9 2.4s-2.5 .6-3.7 .3s-2.4-.9-3.2-1.9zm40.3-4.4l0-134.4c0-.8 .1-1.6 .5-2.4s.8-1.5 1.3-2.1s1.3-1.1 2-1.4s1.6-.5 2.4-.5l134.4 0c1.2 0 2.5 .4 3.5 1.1s1.8 1.7 2.3 2.8s.6 2.4 .3 3.6s-.9 2.3-1.7 3.2L304 246.4c-.9 .8-2 1.4-3.2 1.6s-2.4 .1-3.5-.4s-2.1-1.3-2.8-2.3s-1.1-2.2-1.1-3.4zm30.6 35c-1.2 0-2.5-.3-3.5-1s-1.9-1.6-2.4-2.8s-.6-2.4-.4-3.6s.8-2.3 1.7-3.2l84.2-84.2c.6-.6 1.3-1 2-1.4s1.6-.5 2.4-.5s1.6 .2 2.4 .5s1.4 .8 2 1.4l84.4 84.2c.9 .9 1.5 2 1.7 3.2s.1 2.5-.3 3.6s-1.3 2.1-2.3 2.8s-2.2 1.1-3.5 1.1l-168.5 0zM414.8 408l-95.3-95.2c-.9-.9-1.5-2-1.7-3.2s-.1-2.5 .4-3.7s1.3-2.1 2.4-2.8s2.3-1 3.5-1l95.2 0c1.7 0 3.2 .7 4.4 1.8s1.8 2.8 1.8 4.4l0 95.3c0 1.2-.4 2.5-1.1 3.5s-1.7 1.8-2.8 2.3s-2.4 .6-3.6 .3s-2.3-.9-3.2-1.7zM16.5 302.1l216.9 0c1.2 0 2.5 .4 3.5 1.1s1.8 1.7 2.3 2.8s.6 2.4 .3 3.6s-.8 2.3-1.7 3.2L129.4 421.2c-.6 .6-1.3 1-2 1.4s-1.6 .5-2.4 .5s-1.6-.2-2.4-.5s-1.4-.8-2-1.4L12 312.8c-.9-.9-1.5-2-1.7-3.2s-.1-2.5 .4-3.6s1.3-2.1 2.3-2.8s2.3-1 3.5-1zM264 465.3c0 .8-.2 1.6-.5 2.4s-.8 1.5-1.4 2s-1.3 1-2 1.4s-1.6 .5-2.4 .5l-128 0c-1.2 0-2.5-.4-3.5-1.1s-1.8-1.7-2.3-2.8s-.6-2.4-.3-3.6s.8-2.3 1.7-3.2l128-128c.9-.9 2-1.5 3.2-1.7s2.5-.1 3.6 .3s2.1 1.3 2.8 2.3s1.1 2.2 1.1 3.5l0 128zm40-132.5l82.8 82.7c.6 .6 1 1.3 1.4 2s.5 1.6 .5 2.4s-.2 1.6-.5 2.4s-.8 1.4-1.4 2L304 507c-.9 .9-2 1.5-3.2 1.7s-2.5 .1-3.6-.3s-2.1-1.3-2.8-2.3s-1.1-2.2-1.1-3.5l0-165.4c0-1.2 .4-2.5 1.1-3.5s1.7-1.8 2.8-2.3s2.4-.6 3.6-.3s2.3 .8 3.2 1.7zM78.7 122.4c0-1.2 .3-2.5 1-3.5s1.7-1.8 2.8-2.3s2.4-.6 3.6-.4s2.3 .8 3.2 1.7L237.8 266.4c.9 .9 1.5 2 1.7 3.2s.1 2.5-.3 3.6s-1.3 2.1-2.3 2.8s-2.2 1.1-3.5 1.1L85 277.1c-1.7 0-3.2-.7-4.4-1.8s-1.8-2.8-1.8-4.4l0-148.4z"], - "expeditedssl": [496, 512, [], "f23e", "M248 43.4C130.6 43.4 35.4 138.6 35.4 256S130.6 468.6 248 468.6 460.6 373.4 460.6 256 365.4 43.4 248 43.4zm-97.4 132.9c0-53.7 43.7-97.4 97.4-97.4s97.4 43.7 97.4 97.4v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6c0-82.1-124-82.1-124 0v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6zM389.7 380c0 9.7-8 17.7-17.7 17.7H124c-9.7 0-17.7-8-17.7-17.7V238.3c0-9.7 8-17.7 17.7-17.7h248c9.7 0 17.7 8 17.7 17.7V380zm-248-137.3v132.9c0 2.5-1.9 4.4-4.4 4.4h-8.9c-2.5 0-4.4-1.9-4.4-4.4V242.7c0-2.5 1.9-4.4 4.4-4.4h8.9c2.5 0 4.4 1.9 4.4 4.4zm141.7 48.7c0 13-7.2 24.4-17.7 30.4v31.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-31.6c-10.5-6.1-17.7-17.4-17.7-30.4 0-19.7 15.8-35.4 35.4-35.4s35.5 15.8 35.5 35.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 478.3C121 486.3 17.7 383 17.7 256S121 25.7 248 25.7 478.3 129 478.3 256 375 486.3 248 486.3z"], - "sellcast": [448, 512, [], "f2da", "M353.4 32H94.7C42.6 32 0 74.6 0 126.6v258.7C0 437.4 42.6 480 94.7 480h258.7c52.1 0 94.7-42.6 94.7-94.6V126.6c0-52-42.6-94.6-94.7-94.6zm-50 316.4c-27.9 48.2-89.9 64.9-138.2 37.2-22.9 39.8-54.9 8.6-42.3-13.2l15.7-27.2c5.9-10.3 19.2-13.9 29.5-7.9 18.6 10.8-.1-.1 18.5 10.7 27.6 15.9 63.4 6.3 79.4-21.3 15.9-27.6 6.3-63.4-21.3-79.4-17.8-10.2-.6-.4-18.6-10.6-24.6-14.2-3.4-51.9 21.6-37.5 18.6 10.8-.1-.1 18.5 10.7 48.4 28 65.1 90.3 37.2 138.5zm21.8-208.8c-17 29.5-16.3 28.8-19 31.5-6.5 6.5-16.3 8.7-26.5 3.6-18.6-10.8.1.1-18.5-10.7-27.6-15.9-63.4-6.3-79.4 21.3s-6.3 63.4 21.3 79.4c0 0 18.5 10.6 18.6 10.6 24.6 14.2 3.4 51.9-21.6 37.5-18.6-10.8.1.1-18.5-10.7-48.2-27.8-64.9-90.1-37.1-138.4 27.9-48.2 89.9-64.9 138.2-37.2l4.8-8.4c14.3-24.9 52-3.3 37.7 21.5z"], - "square-twitter": [448, 512, ["twitter-square"], "f081", "M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM351.3 199.3v0c0 86.7-66 186.6-186.6 186.6c-37.2 0-71.7-10.8-100.7-29.4c5.3 .6 10.4 .8 15.8 .8c30.7 0 58.9-10.4 81.4-28c-28.8-.6-53-19.5-61.3-45.5c10.1 1.5 19.2 1.5 29.6-1.2c-30-6.1-52.5-32.5-52.5-64.4v-.8c8.7 4.9 18.9 7.9 29.6 8.3c-9-6-16.4-14.1-21.5-23.6s-7.8-20.2-7.7-31c0-12.2 3.2-23.4 8.9-33.1c32.3 39.8 80.8 65.8 135.2 68.6c-9.3-44.5 24-80.6 64-80.6c18.9 0 35.9 7.9 47.9 20.7c14.8-2.8 29-8.3 41.6-15.8c-4.9 15.2-15.2 28-28.8 36.1c13.2-1.4 26-5.1 37.8-10.2c-8.9 13.1-20.1 24.7-32.9 34c.2 2.8 .2 5.7 .2 8.5z"], - "r-project": [581, 512, [], "f4f7", "M581 226.6C581 119.1 450.9 32 290.5 32S0 119.1 0 226.6C0 322.4 103.3 402 239.4 418.1V480h99.1v-61.5c24.3-2.7 47.6-7.4 69.4-13.9L448 480h112l-67.4-113.7c54.5-35.4 88.4-84.9 88.4-139.7zm-466.8 14.5c0-73.5 98.9-133 220.8-133s211.9 40.7 211.9 133c0 50.1-26.5 85-70.3 106.4-2.4-1.6-4.7-2.9-6.4-3.7-10.2-5.2-27.8-10.5-27.8-10.5s86.6-6.4 86.6-92.7-90.6-87.9-90.6-87.9h-199V361c-74.1-21.5-125.2-67.1-125.2-119.9zm225.1 38.3v-55.6c57.8 0 87.8-6.8 87.8 27.3 0 36.5-38.2 28.3-87.8 28.3zm-.9 72.5H365c10.8 0 18.9 11.7 24 19.2-16.1 1.9-33 2.8-50.6 2.9v-22.1z"], - "delicious": [448, 512, [], "f1a5", "M446.5 68c-.4-1.5-.9-3-1.4-4.5-.9-2.5-2-4.8-3.3-7.1-1.4-2.4-3-4.8-4.7-6.9-2.1-2.5-4.4-4.8-6.9-6.8-1.1-.9-2.2-1.7-3.3-2.5-1.3-.9-2.6-1.7-4-2.4-1.8-1-3.6-1.8-5.5-2.5-1.7-.7-3.5-1.3-5.4-1.7-3.8-1-7.9-1.5-12-1.5H48C21.5 32 0 53.5 0 80v352c0 4.1.5 8.2 1.5 12 2 7.7 5.8 14.6 11 20.3 1 1.1 2.1 2.2 3.3 3.3 5.7 5.2 12.6 9 20.3 11 3.8 1 7.9 1.5 12 1.5h352c26.5 0 48-21.5 48-48V80c-.1-4.1-.6-8.2-1.6-12zM416 432c0 8.8-7.2 16-16 16H224V256H32V80c0-8.8 7.2-16 16-16h176v192h192z"], - "freebsd": [448, 512, [], "f3a4", "M303.7 96.2c11.1-11.1 115.5-77 139.2-53.2 23.7 23.7-42.1 128.1-53.2 139.2-11.1 11.1-39.4.9-63.1-22.9-23.8-23.7-34.1-52-22.9-63.1zM109.9 68.1C73.6 47.5 22 24.6 5.6 41.1c-16.6 16.6 7.1 69.4 27.9 105.7 18.5-32.2 44.8-59.3 76.4-78.7zM406.7 174c3.3 11.3 2.7 20.7-2.7 26.1-20.3 20.3-87.5-27-109.3-70.1-18-32.3-11.1-53.4 14.9-48.7 5.7-3.6 12.3-7.6 19.6-11.6-29.8-15.5-63.6-24.3-99.5-24.3-119.1 0-215.6 96.5-215.6 215.6 0 119 96.5 215.6 215.6 215.6S445.3 380.1 445.3 261c0-38.4-10.1-74.5-27.7-105.8-3.9 7-7.6 13.3-10.9 18.8z"], - "vuejs": [448, 512, [], "f41f", "M356.9 64.3H280l-56 88.6-48-88.6H0L224 448 448 64.3h-91.1zm-301.2 32h53.8L224 294.5 338.4 96.3h53.8L224 384.5 55.7 96.3z"], - "accusoft": [640, 512, [], "f369", "M322.1 252v-1l-51.2-65.8s-12 1.6-25 15.1c-9 9.3-242.1 239.1-243.4 240.9-7 10 1.6 6.8 15.7 1.7.8 0 114.5-36.6 114.5-36.6.5-.6-.1-.1.6-.6-.4-5.1-.8-26.2-1-27.7-.6-5.2 2.2-6.9 7-8.9l92.6-33.8c.6-.8 88.5-81.7 90.2-83.3zm160.1 120.1c13.3 16.1 20.7 13.3 30.8 9.3 3.2-1.2 115.4-47.6 117.8-48.9 8-4.3-1.7-16.7-7.2-23.4-2.1-2.5-205.1-245.6-207.2-248.3-9.7-12.2-14.3-12.9-38.4-12.8-10.2 0-106.8.5-116.5.6-19.2.1-32.9-.3-19.2 16.9C250 75 476.5 365.2 482.2 372.1zm152.7 1.6c-2.3-.3-24.6-4.7-38-7.2 0 0-115 50.4-117.5 51.6-16 7.3-26.9-3.2-36.7-14.6l-57.1-74c-5.4-.9-60.4-9.6-65.3-9.3-3.1.2-9.6.8-14.4 2.9-4.9 2.1-145.2 52.8-150.2 54.7-5.1 2-11.4 3.6-11.1 7.6.2 2.5 2 2.6 4.6 3.5 2.7.8 300.9 67.6 308 69.1 15.6 3.3 38.5 10.5 53.6 1.7 2.1-1.2 123.8-76.4 125.8-77.8 5.4-4 4.3-6.8-1.7-8.2z"], - "ioxhost": [640, 512, [], "f208", "M616 160h-67.3C511.2 70.7 422.9 8 320 8 183 8 72 119 72 256c0 16.4 1.6 32.5 4.7 48H24c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h67.3c37.5 89.3 125.8 152 228.7 152 137 0 248-111 248-248 0-16.4-1.6-32.5-4.7-48H616c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24zm-96 96c0 110.5-89.5 200-200 200-75.7 0-141.6-42-175.5-104H424c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24H125.8c-3.8-15.4-5.8-31.4-5.8-48 0-110.5 89.5-200 200-200 75.7 0 141.6 42 175.5 104H216c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h298.2c3.8 15.4 5.8 31.4 5.8 48zm-304-24h208c13.3 0 24 10.7 24 24 0 13.2-10.7 24-24 24H216c-13.3 0-24-10.7-24-24 0-13.2 10.7-24 24-24z"], - "fonticons-fi": [384, 512, [], "f3a2", "M114.4 224h92.4l-15.2 51.2h-76.4V433c0 8-2.8 9.2 4.4 10l59.6 5.6V483H0v-35.2l29.2-2.8c7.2-.8 9.2-3.2 9.2-10.8V278.4c0-3.2-4-3.2-8-3.2H0V224h38.4v-28.8c0-68 36.4-96 106-96 46.8 0 88.8 11.2 88.8 72.4l-69.6 8.4c.4-25.6-6-31.6-22.4-31.6-25.2 0-26 13.6-26 37.6v32c0 3.2-4.8 6-.8 6zM384 483H243.2v-34.4l28-3.6c7.2-.8 10.4-2.4 10.4-10V287c0-5.6-4-9.2-9.2-10.8l-33.2-8.8 9.2-40.4h110v208c0 8-3.6 8.8 4 10l21.6 3.6V483zm-30-347.2l12.4 45.6-10 10-42.8-22.8-42.8 22.8-10-10 12.4-45.6-30-36.4 4.8-10h38L307.2 51H320l21.2 38.4h38l4.8 13.2-30 33.2z"], - "app-store": [512, 512, [], "f36f", "M255.9 120.9l9.1-15.7c5.6-9.8 18.1-13.1 27.9-7.5 9.8 5.6 13.1 18.1 7.5 27.9l-87.5 151.5h63.3c20.5 0 32 24.1 23.1 40.8H113.8c-11.3 0-20.4-9.1-20.4-20.4 0-11.3 9.1-20.4 20.4-20.4h52l66.6-115.4-20.8-36.1c-5.6-9.8-2.3-22.2 7.5-27.9 9.8-5.6 22.2-2.3 27.9 7.5l8.9 15.7zm-78.7 218l-19.6 34c-5.6 9.8-18.1 13.1-27.9 7.5-9.8-5.6-13.1-18.1-7.5-27.9l14.6-25.2c16.4-5.1 29.8-1.2 40.4 11.6zm168.9-61.7h53.1c11.3 0 20.4 9.1 20.4 20.4 0 11.3-9.1 20.4-20.4 20.4h-29.5l19.9 34.5c5.6 9.8 2.3 22.2-7.5 27.9-9.8 5.6-22.2 2.3-27.9-7.5-33.5-58.1-58.7-101.6-75.4-130.6-17.1-29.5-4.9-59.1 7.2-69.1 13.4 23 33.4 57.7 60.1 104zM256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm216 248c0 118.7-96.1 216-216 216-118.7 0-216-96.1-216-216 0-118.7 96.1-216 216-216 118.7 0 216 96.1 216 216z"], - "cc-mastercard": [576, 512, [], "f1f1", "M482.9 410.3c0 6.8-4.6 11.7-11.2 11.7-6.8 0-11.2-5.2-11.2-11.7 0-6.5 4.4-11.7 11.2-11.7 6.6 0 11.2 5.2 11.2 11.7zm-310.8-11.7c-7.1 0-11.2 5.2-11.2 11.7 0 6.5 4.1 11.7 11.2 11.7 6.5 0 10.9-4.9 10.9-11.7-.1-6.5-4.4-11.7-10.9-11.7zm117.5-.3c-5.4 0-8.7 3.5-9.5 8.7h19.1c-.9-5.7-4.4-8.7-9.6-8.7zm107.8.3c-6.8 0-10.9 5.2-10.9 11.7 0 6.5 4.1 11.7 10.9 11.7 6.8 0 11.2-4.9 11.2-11.7 0-6.5-4.4-11.7-11.2-11.7zm105.9 26.1c0 .3.3.5.3 1.1 0 .3-.3.5-.3 1.1-.3.3-.3.5-.5.8-.3.3-.5.5-1.1.5-.3.3-.5.3-1.1.3-.3 0-.5 0-1.1-.3-.3 0-.5-.3-.8-.5-.3-.3-.5-.5-.5-.8-.3-.5-.3-.8-.3-1.1 0-.5 0-.8.3-1.1 0-.5.3-.8.5-1.1.3-.3.5-.3.8-.5.5-.3.8-.3 1.1-.3.5 0 .8 0 1.1.3.5.3.8.3 1.1.5s.2.6.5 1.1zm-2.2 1.4c.5 0 .5-.3.8-.3.3-.3.3-.5.3-.8 0-.3 0-.5-.3-.8-.3 0-.5-.3-1.1-.3h-1.6v3.5h.8V426h.3l1.1 1.4h.8l-1.1-1.3zM576 81v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V81c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM64 220.6c0 76.5 62.1 138.5 138.5 138.5 27.2 0 53.9-8.2 76.5-23.1-72.9-59.3-72.4-171.2 0-230.5-22.6-15-49.3-23.1-76.5-23.1-76.4-.1-138.5 62-138.5 138.2zm224 108.8c70.5-55 70.2-162.2 0-217.5-70.2 55.3-70.5 162.6 0 217.5zm-142.3 76.3c0-8.7-5.7-14.4-14.7-14.7-4.6 0-9.5 1.4-12.8 6.5-2.4-4.1-6.5-6.5-12.2-6.5-3.8 0-7.6 1.4-10.6 5.4V392h-8.2v36.7h8.2c0-18.9-2.5-30.2 9-30.2 10.2 0 8.2 10.2 8.2 30.2h7.9c0-18.3-2.5-30.2 9-30.2 10.2 0 8.2 10 8.2 30.2h8.2v-23zm44.9-13.7h-7.9v4.4c-2.7-3.3-6.5-5.4-11.7-5.4-10.3 0-18.2 8.2-18.2 19.3 0 11.2 7.9 19.3 18.2 19.3 5.2 0 9-1.9 11.7-5.4v4.6h7.9V392zm40.5 25.6c0-15-22.9-8.2-22.9-15.2 0-5.7 11.9-4.8 18.5-1.1l3.3-6.5c-9.4-6.1-30.2-6-30.2 8.2 0 14.3 22.9 8.3 22.9 15 0 6.3-13.5 5.8-20.7.8l-3.5 6.3c11.2 7.6 32.6 6 32.6-7.5zm35.4 9.3l-2.2-6.8c-3.8 2.1-12.2 4.4-12.2-4.1v-16.6h13.1V392h-13.1v-11.2h-8.2V392h-7.6v7.3h7.6V416c0 17.6 17.3 14.4 22.6 10.9zm13.3-13.4h27.5c0-16.2-7.4-22.6-17.4-22.6-10.6 0-18.2 7.9-18.2 19.3 0 20.5 22.6 23.9 33.8 14.2l-3.8-6c-7.8 6.4-19.6 5.8-21.9-4.9zm59.1-21.5c-4.6-2-11.6-1.8-15.2 4.4V392h-8.2v36.7h8.2V408c0-11.6 9.5-10.1 12.8-8.4l2.4-7.6zm10.6 18.3c0-11.4 11.6-15.1 20.7-8.4l3.8-6.5c-11.6-9.1-32.7-4.1-32.7 15 0 19.8 22.4 23.8 32.7 15l-3.8-6.5c-9.2 6.5-20.7 2.6-20.7-8.6zm66.7-18.3H408v4.4c-8.3-11-29.9-4.8-29.9 13.9 0 19.2 22.4 24.7 29.9 13.9v4.6h8.2V392zm33.7 0c-2.4-1.2-11-2.9-15.2 4.4V392h-7.9v36.7h7.9V408c0-11 9-10.3 12.8-8.4l2.4-7.6zm40.3-14.9h-7.9v19.3c-8.2-10.9-29.9-5.1-29.9 13.9 0 19.4 22.5 24.6 29.9 13.9v4.6h7.9v-51.7zm7.6-75.1v4.6h.8V302h1.9v-.8h-4.6v.8h1.9zm6.6 123.8c0-.5 0-1.1-.3-1.6-.3-.3-.5-.8-.8-1.1-.3-.3-.8-.5-1.1-.8-.5 0-1.1-.3-1.6-.3-.3 0-.8.3-1.4.3-.5.3-.8.5-1.1.8-.5.3-.8.8-.8 1.1-.3.5-.3 1.1-.3 1.6 0 .3 0 .8.3 1.4 0 .3.3.8.8 1.1.3.3.5.5 1.1.8.5.3 1.1.3 1.4.3.5 0 1.1 0 1.6-.3.3-.3.8-.5 1.1-.8.3-.3.5-.8.8-1.1.3-.6.3-1.1.3-1.4zm3.2-124.7h-1.4l-1.6 3.5-1.6-3.5h-1.4v5.4h.8v-4.1l1.6 3.5h1.1l1.4-3.5v4.1h1.1v-5.4zm4.4-80.5c0-76.2-62.1-138.3-138.5-138.3-27.2 0-53.9 8.2-76.5 23.1 72.1 59.3 73.2 171.5 0 230.5 22.6 15 49.5 23.1 76.5 23.1 76.4.1 138.5-61.9 138.5-138.4z"], - "itunes-note": [384, 512, [], "f3b5", "M381.9 388.2c-6.4 27.4-27.2 42.8-55.1 48-24.5 4.5-44.9 5.6-64.5-10.2-23.9-20.1-24.2-53.4-2.7-74.4 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 6.4-7.2 4.4-4.1 4.4-163.2 0-11.2-5.5-14.3-17-12.3-8.2 1.4-185.7 34.6-185.7 34.6-10.2 2.2-13.4 5.2-13.4 16.7 0 234.7 1.1 223.9-2.5 239.5-4.2 18.2-15.4 31.9-30.2 39.5-16.8 9.3-47.2 13.4-63.4 10.4-43.2-8.1-58.4-58-29.1-86.6 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 10.1-11.5 1.8-256.6 5.2-270.2.8-5.2 3-9.6 7.1-12.9 4.2-3.5 11.8-5.5 13.4-5.5 204-38.2 228.9-43.1 232.4-43.1 11.5-.8 18.1 6 18.1 17.6.2 344.5 1.1 326-1.8 338.5z"], - "golang": [640, 512, [], "e40f", "M400.1 194.8C389.2 197.6 380.2 199.1 371 202.4C363.7 204.3 356.3 206.3 347.8 208.5L347.2 208.6C343 209.8 342.6 209.9 338.7 205.4C334 200.1 330.6 196.7 324.1 193.5C304.4 183.9 285.4 186.7 267.7 198.2C246.5 211.9 235.6 232.2 235.9 257.4C236.2 282.4 253.3 302.9 277.1 306.3C299.1 309.1 316.9 301.7 330.9 285.8C333 283.2 334.9 280.5 337 277.5V277.5L337 277.5C337.8 276.5 338.5 275.4 339.3 274.2H279.2C272.7 274.2 271.1 270.2 273.3 264.9C277.3 255.2 284.8 239 289.2 230.9C290.1 229.1 292.3 225.1 296.1 225.1H397.2C401.7 211.7 409 198.2 418.8 185.4C441.5 155.5 468.1 139.9 506 133.4C537.8 127.8 567.7 130.9 594.9 149.3C619.5 166.1 634.7 188.9 638.8 218.8C644.1 260.9 631.9 295.1 602.1 324.4C582.4 345.3 557.2 358.4 528.2 364.3C522.6 365.3 517.1 365.8 511.7 366.3C508.8 366.5 506 366.8 503.2 367.1C474.9 366.5 449 358.4 427.2 339.7C411.9 326.4 401.3 310.1 396.1 291.2C392.4 298.5 388.1 305.6 382.1 312.3C360.5 341.9 331.2 360.3 294.2 365.2C263.6 369.3 235.3 363.4 210.3 344.7C187.3 327.2 174.2 304.2 170.8 275.5C166.7 241.5 176.7 210.1 197.2 184.2C219.4 155.2 248.7 136.8 284.5 130.3C313.8 124.1 341.8 128.4 367.1 145.6C383.6 156.5 395.4 171.4 403.2 189.5C405.1 192.3 403.8 193.9 400.1 194.8zM48.3 200.4C47.05 200.4 46.74 199.8 47.36 198.8L53.91 190.4C54.53 189.5 56.09 188.9 57.34 188.9H168.6C169.8 188.9 170.1 189.8 169.5 190.7L164.2 198.8C163.6 199.8 162 200.7 161.1 200.7L48.3 200.4zM1.246 229.1C0 229.1-.3116 228.4 .3116 227.5L6.855 219.1C7.479 218.2 9.037 217.5 10.28 217.5H152.4C153.6 217.5 154.2 218.5 153.9 219.4L151.4 226.9C151.1 228.1 149.9 228.8 148.6 228.8L1.246 229.1zM75.72 255.9C75.1 256.8 75.41 257.7 76.65 257.7L144.6 258C145.5 258 146.8 257.1 146.8 255.9L147.4 248.4C147.4 247.1 146.8 246.2 145.5 246.2H83.2C81.95 246.2 80.71 247.1 80.08 248.1L75.72 255.9zM577.2 237.9C577 235.3 576.9 233.1 576.5 230.9C570.9 200.1 542.5 182.6 512.9 189.5C483.9 196 465.2 214.4 458.4 243.7C452.8 268 464.6 292.6 487 302.6C504.2 310.1 521.3 309.2 537.8 300.7C562.4 287.1 575.8 268 577.4 241.2C577.3 240 577.3 238.9 577.2 237.9z"], - "kickstarter": [448, 512, ["square-kickstarter"], "f3bb", "M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM320.8 233l-23.3 23.1L320.8 279c24.1 23.9 24.1 63 0 86.9s-63.4 23.9-87.6 0l-8.5-8.4c-11.3 16-29.7 26.5-50.9 26.5c-34.1 0-61.9-27.5-61.9-61.4l0-133.2c0-33.8 27.7-61.4 61.9-61.4c21.1 0 39.6 10.5 50.9 26.5l8.5-8.4c24.1-23.9 63.4-23.9 87.6 0s24.1 63 0 86.9z"], - "grav": [512, 512, [], "f2d6", "M301.1 212c4.4 4.4 4.4 11.9 0 16.3l-9.7 9.7c-4.4 4.7-11.9 4.7-16.6 0l-10.5-10.5c-4.4-4.7-4.4-11.9 0-16.6l9.7-9.7c4.4-4.4 11.9-4.4 16.6 0l10.5 10.8zm-30.2-19.7c3-3 3-7.8 0-10.5-2.8-3-7.5-3-10.5 0-2.8 2.8-2.8 7.5 0 10.5 3.1 2.8 7.8 2.8 10.5 0zm-26 5.3c-3 2.8-3 7.5 0 10.2 2.8 3 7.5 3 10.5 0 2.8-2.8 2.8-7.5 0-10.2-3-3-7.7-3-10.5 0zm72.5-13.3c-19.9-14.4-33.8-43.2-11.9-68.1 21.6-24.9 40.7-17.2 59.8.8 11.9 11.3 29.3 24.9 17.2 48.2-12.5 23.5-45.1 33.2-65.1 19.1zm47.7-44.5c-8.9-10-23.3 6.9-15.5 16.1 7.4 9 32.1 2.4 15.5-16.1zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-66.2 42.6c2.5-16.1-20.2-16.6-25.2-25.7-13.6-24.1-27.7-36.8-54.5-30.4 11.6-8 23.5-6.1 23.5-6.1.3-6.4 0-13-9.4-24.9 3.9-12.5.3-22.4.3-22.4 15.5-8.6 26.8-24.4 29.1-43.2 3.6-31-18.8-59.2-49.8-62.8-22.1-2.5-43.7 7.7-54.3 25.7-23.2 40.1 1.4 70.9 22.4 81.4-14.4-1.4-34.3-11.9-40.1-34.3-6.6-25.7 2.8-49.8 8.9-61.4 0 0-4.4-5.8-8-8.9 0 0-13.8 0-24.6 5.3 11.9-15.2 25.2-14.4 25.2-14.4 0-6.4-.6-14.9-3.6-21.6-5.4-11-23.8-12.9-31.7 2.8.1-.2.3-.4.4-.5-5 11.9-1.1 55.9 16.9 87.2-2.5 1.4-9.1 6.1-13 10-21.6 9.7-56.2 60.3-56.2 60.3-28.2 10.8-77.2 50.9-70.6 79.7.3 3 1.4 5.5 3 7.5-2.8 2.2-5.5 5-8.3 8.3-11.9 13.8-5.3 35.2 17.7 24.4 15.8-7.2 29.6-20.2 36.3-30.4 0 0-5.5-5-16.3-4.4 27.7-6.6 34.3-9.4 46.2-9.1 8 3.9 8-34.3 8-34.3 0-14.7-2.2-31-11.1-41.5 12.5 12.2 29.1 32.7 28 60.6-.8 18.3-15.2 23-15.2 23-9.1 16.6-43.2 65.9-30.4 106 0 0-9.7-14.9-10.2-22.1-17.4 19.4-46.5 52.3-24.6 64.5 26.6 14.7 108.8-88.6 126.2-142.3 34.6-20.8 55.4-47.3 63.9-65 22 43.5 95.3 94.5 101.1 59z"], - "weibo": [512, 512, [], "f18a", "M407 177.6c7.6-24-13.4-46.8-37.4-41.7-22 4.8-28.8-28.1-7.1-32.8 50.1-10.9 92.3 37.1 76.5 84.8-6.8 21.2-38.8 10.8-32-10.3zM214.8 446.7C108.5 446.7 0 395.3 0 310.4c0-44.3 28-95.4 76.3-143.7C176 67 279.5 65.8 249.9 161c-4 13.1 12.3 5.7 12.3 6 79.5-33.6 140.5-16.8 114 51.4-3.7 9.4 1.1 10.9 8.3 13.1 135.7 42.3 34.8 215.2-169.7 215.2zm143.7-146.3c-5.4-55.7-78.5-94-163.4-85.7-84.8 8.6-148.8 60.3-143.4 116s78.5 94 163.4 85.7c84.8-8.6 148.8-60.3 143.4-116zM347.9 35.1c-25.9 5.6-16.8 43.7 8.3 38.3 72.3-15.2 134.8 52.8 111.7 124-7.4 24.2 29.1 37 37.4 12 31.9-99.8-55.1-195.9-157.4-174.3zm-78.5 311c-17.1 38.8-66.8 60-109.1 46.3-40.8-13.1-58-53.4-40.3-89.7 17.7-35.4 63.1-55.4 103.4-45.1 42 10.8 63.1 50.2 46 88.5zm-86.3-30c-12.9-5.4-30 .3-38 12.9-8.3 12.9-4.3 28 8.6 34 13.1 6 30.8.3 39.1-12.9 8-13.1 3.7-28.3-9.7-34zm32.6-13.4c-5.1-1.7-11.4.6-14.3 5.4-2.9 5.1-1.4 10.6 3.7 12.9 5.1 2 11.7-.3 14.6-5.4 2.8-5.2 1.1-10.9-4-12.9z"], - "uncharted": [448, 512, [], "e084", "M171.73,232.813A5.381,5.381,0,0,0,176.7,229.5,48.081,48.081,0,0,1,191.6,204.244c1.243-.828,1.657-2.484,1.657-4.141a4.22,4.22,0,0,0-2.071-3.312L74.429,128.473,148.958,85a9.941,9.941,0,0,0,4.968-8.281,9.108,9.108,0,0,0-4.968-8.281L126.6,55.6a9.748,9.748,0,0,0-9.523,0l-100.2,57.966a9.943,9.943,0,0,0-4.969,8.281V236.954a9.109,9.109,0,0,0,4.969,8.281L39.235,258.07a8.829,8.829,0,0,0,4.968,1.242,9.4,9.4,0,0,0,6.625-2.484,10.8,10.8,0,0,0,2.9-7.039V164.5L169.66,232.4A4.5,4.5,0,0,0,171.73,232.813ZM323.272,377.73a12.478,12.478,0,0,0-4.969,1.242l-74.528,43.062V287.882c0-2.9-2.9-5.8-6.211-4.555a53.036,53.036,0,0,1-28.984.414,4.86,4.86,0,0,0-6.21,4.555V421.619l-74.529-43.061a8.83,8.83,0,0,0-4.969-1.242,9.631,9.631,0,0,0-9.523,9.523v26.085a9.107,9.107,0,0,0,4.969,8.281l100.2,57.553A8.829,8.829,0,0,0,223.486,480a11.027,11.027,0,0,0,4.969-1.242l100.2-57.553a9.941,9.941,0,0,0,4.968-8.281V386.839C332.8,382.285,328.24,377.73,323.272,377.73ZM286.007,78a23,23,0,1,0-23-23A23,23,0,0,0,286.007,78Zm63.627-10.086a23,23,0,1,0,23,23A23,23,0,0,0,349.634,67.914ZM412.816,151.6a23,23,0,1,0-23-23A23,23,0,0,0,412.816,151.6Zm-63.182-9.2a23,23,0,1,0,23,23A23,23,0,0,0,349.634,142.4Zm-63.627,83.244a23,23,0,1,0-23-23A23,23,0,0,0,286.007,225.648Zm-62.074,36.358a23,23,0,1,0-23-23A23,23,0,0,0,223.933,262.006Zm188.883-82.358a23,23,0,1,0,23,23A23,23,0,0,0,412.816,179.648Zm0,72.272a23,23,0,1,0,23,23A23,23,0,0,0,412.816,251.92Z"], - "firstdraft": [384, 512, [], "f3a1", "M384 192h-64v128H192v128H0v-25.6h166.4v-128h128v-128H384V192zm-25.6 38.4v128h-128v128H64V512h192V384h128V230.4h-25.6zm25.6 192h-89.6V512H320v-64h64v-25.6zM0 0v384h128V256h128V128h128V0H0z"], - "square-youtube": [448, 512, [61798, "youtube-square"], "f431", "M282 256.2l-95.2-54.1V310.3L282 256.2zM384 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64zm14.4 136.1c7.6 28.6 7.6 88.2 7.6 88.2s0 59.6-7.6 88.1c-4.2 15.8-16.5 27.7-32.2 31.9C337.9 384 224 384 224 384s-113.9 0-142.2-7.6c-15.7-4.2-28-16.1-32.2-31.9C42 315.9 42 256.3 42 256.3s0-59.7 7.6-88.2c4.2-15.8 16.5-28.2 32.2-32.4C110.1 128 224 128 224 128s113.9 0 142.2 7.7c15.7 4.2 28 16.6 32.2 32.4z"], - "wikipedia-w": [640, 512, [], "f266", "M640 51.2l-.3 12.2c-28.1.8-45 15.8-55.8 40.3-25 57.8-103.3 240-155.3 358.6H415l-81.9-193.1c-32.5 63.6-68.3 130-99.2 193.1-.3.3-15 0-15-.3C172 352.3 122.8 243.4 75.8 133.4 64.4 106.7 26.4 63.4.2 63.7c0-3.1-.3-10-.3-14.2h161.9v13.9c-19.2 1.1-52.8 13.3-43.3 34.2 21.9 49.7 103.6 240.3 125.6 288.6 15-29.7 57.8-109.2 75.3-142.8-13.9-28.3-58.6-133.9-72.8-160-9.7-17.8-36.1-19.4-55.8-19.7V49.8l142.5.3v13.1c-19.4.6-38.1 7.8-29.4 26.1 18.9 40 30.6 68.1 48.1 104.7 5.6-10.8 34.7-69.4 48.1-100.8 8.9-20.6-3.9-28.6-38.6-29.4.3-3.6 0-10.3.3-13.6 44.4-.3 111.1-.3 123.1-.6v13.6c-22.5.8-45.8 12.8-58.1 31.7l-59.2 122.8c6.4 16.1 63.3 142.8 69.2 156.7L559.2 91.8c-8.6-23.1-36.4-28.1-47.2-28.3V49.6l127.8 1.1.2.5z"], - "wpressr": [496, 512, ["rendact"], "f3e4", "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm171.33 158.6c-15.18 34.51-30.37 69.02-45.63 103.5-2.44 5.51-6.89 8.24-12.97 8.24-23.02-.01-46.03.06-69.05-.05-5.12-.03-8.25 1.89-10.34 6.72-10.19 23.56-20.63 47-30.95 70.5-1.54 3.51-4.06 5.29-7.92 5.29-45.94-.01-91.87-.02-137.81 0-3.13 0-5.63-1.15-7.72-3.45-11.21-12.33-22.46-24.63-33.68-36.94-2.69-2.95-2.79-6.18-1.21-9.73 8.66-19.54 17.27-39.1 25.89-58.66 12.93-29.35 25.89-58.69 38.75-88.08 1.7-3.88 4.28-5.68 8.54-5.65 14.24.1 28.48.02 42.72.05 6.24.01 9.2 4.84 6.66 10.59-13.6 30.77-27.17 61.55-40.74 92.33-5.72 12.99-11.42 25.99-17.09 39-3.91 8.95 7.08 11.97 10.95 5.6.23-.37-1.42 4.18 30.01-67.69 1.36-3.1 3.41-4.4 6.77-4.39 15.21.08 30.43.02 45.64.04 5.56.01 7.91 3.64 5.66 8.75-8.33 18.96-16.71 37.9-24.98 56.89-4.98 11.43 8.08 12.49 11.28 5.33.04-.08 27.89-63.33 32.19-73.16 2.02-4.61 5.44-6.51 10.35-6.5 26.43.05 52.86 0 79.29.05 12.44.02 13.93-13.65 3.9-13.64-25.26.03-50.52.02-75.78.02-6.27 0-7.84-2.47-5.27-8.27 5.78-13.06 11.59-26.11 17.3-39.21 1.73-3.96 4.52-5.79 8.84-5.78 23.09.06 25.98.02 130.78.03 6.08-.01 8.03 2.79 5.62 8.27z"], - "angellist": [448, 512, [], "f209", "M347.1 215.4c11.7-32.6 45.4-126.9 45.4-157.1 0-26.6-15.7-48.9-43.7-48.9-44.6 0-84.6 131.7-97.1 163.1C242 144 196.6 0 156.6 0c-31.1 0-45.7 22.9-45.7 51.7 0 35.3 34.2 126.8 46.6 162-6.3-2.3-13.1-4.3-20-4.3-23.4 0-48.3 29.1-48.3 52.6 0 8.9 4.9 21.4 8 29.7-36.9 10-51.1 34.6-51.1 71.7C46 435.6 114.4 512 210.6 512c118 0 191.4-88.6 191.4-202.9 0-43.1-6.9-82-54.9-93.7zM311.7 108c4-12.3 21.1-64.3 37.1-64.3 8.6 0 10.9 8.9 10.9 16 0 19.1-38.6 124.6-47.1 148l-34-6 33.1-93.7zM142.3 48.3c0-11.9 14.5-45.7 46.3 47.1l34.6 100.3c-15.6-1.3-27.7-3-35.4 1.4-10.9-28.8-45.5-119.7-45.5-148.8zM140 244c29.3 0 67.1 94.6 67.1 107.4 0 5.1-4.9 11.4-10.6 11.4-20.9 0-76.9-76.9-76.9-97.7.1-7.7 12.7-21.1 20.4-21.1zm184.3 186.3c-29.1 32-66.3 48.6-109.7 48.6-59.4 0-106.3-32.6-128.9-88.3-17.1-43.4 3.8-68.3 20.6-68.3 11.4 0 54.3 60.3 54.3 73.1 0 4.9-7.7 8.3-11.7 8.3-16.1 0-22.4-15.5-51.1-51.4-29.7 29.7 20.5 86.9 58.3 86.9 26.1 0 43.1-24.2 38-42 3.7 0 8.3.3 11.7-.6 1.1 27.1 9.1 59.4 41.7 61.7 0-.9 2-7.1 2-7.4 0-17.4-10.6-32.6-10.6-50.3 0-28.3 21.7-55.7 43.7-71.7 8-6 17.7-9.7 27.1-13.1 9.7-3.7 20-8 27.4-15.4-1.1-11.2-5.7-21.1-16.9-21.1-27.7 0-120.6 4-120.6-39.7 0-6.7.1-13.1 17.4-13.1 32.3 0 114.3 8 138.3 29.1 18.1 16.1 24.3 113.2-31 174.7zm-98.6-126c9.7 3.1 19.7 4 29.7 6-7.4 5.4-14 12-20.3 19.1-2.8-8.5-6.2-16.8-9.4-25.1z"], - "galactic-republic": [496, 512, [], "f50c", "M248 504C111.25 504 0 392.75 0 256S111.25 8 248 8s248 111.25 248 248-111.25 248-248 248zm0-479.47C120.37 24.53 16.53 128.37 16.53 256S120.37 487.47 248 487.47 479.47 383.63 479.47 256 375.63 24.53 248 24.53zm27.62 21.81v24.62a185.933 185.933 0 0 1 83.57 34.54l17.39-17.36c-28.75-22.06-63.3-36.89-100.96-41.8zm-55.37.07c-37.64 4.94-72.16 19.8-100.88 41.85l17.28 17.36h.08c24.07-17.84 52.55-30.06 83.52-34.67V46.41zm12.25 50.17v82.87c-10.04 2.03-19.42 5.94-27.67 11.42l-58.62-58.59-21.93 21.93 58.67 58.67c-5.47 8.23-9.45 17.59-11.47 27.62h-82.9v31h82.9c2.02 10.02 6.01 19.31 11.47 27.54l-58.67 58.69 21.93 21.93 58.62-58.62a77.873 77.873 0 0 0 27.67 11.47v82.9h31v-82.9c10.05-2.03 19.37-6.06 27.62-11.55l58.67 58.69 21.93-21.93-58.67-58.69c5.46-8.23 9.47-17.52 11.5-27.54h82.87v-31h-82.87c-2.02-10.02-6.03-19.38-11.5-27.62l58.67-58.67-21.93-21.93-58.67 58.67c-8.25-5.49-17.57-9.47-27.62-11.5V96.58h-31zm183.24 30.72l-17.36 17.36a186.337 186.337 0 0 1 34.67 83.67h24.62c-4.95-37.69-19.83-72.29-41.93-101.03zm-335.55.13c-22.06 28.72-36.91 63.26-41.85 100.91h24.65c4.6-30.96 16.76-59.45 34.59-83.52l-17.39-17.39zM38.34 283.67c4.92 37.64 19.75 72.18 41.8 100.9l17.36-17.39c-17.81-24.07-29.92-52.57-34.51-83.52H38.34zm394.7 0c-4.61 30.99-16.8 59.5-34.67 83.6l17.36 17.36c22.08-28.74 36.98-63.29 41.93-100.96h-24.62zM136.66 406.38l-17.36 17.36c28.73 22.09 63.3 36.98 100.96 41.93v-24.64c-30.99-4.63-59.53-16.79-83.6-34.65zm222.53.05c-24.09 17.84-52.58 30.08-83.57 34.67v24.57c37.67-4.92 72.21-19.79 100.96-41.85l-17.31-17.39h-.08z"], - "nfc-directional": [512, 512, [], "e530", "M211.8 488.6C213.4 491.1 213.9 494.2 213.2 497.1C212.6 500 210.8 502.6 208.3 504.2C205.7 505.8 202.7 506.3 199.7 505.7C138.3 491.8 84.1 455.8 47.53 404.5C10.97 353.2-5.395 290.3 1.57 227.7C8.536 165 38.34 107.2 85.29 65.21C132.2 23.2 193-.0131 256 0C257.5 0 258.1 .2931 260.3 .8627C261.7 1.432 262.1 2.267 264 3.319C265.1 4.371 265.9 5.619 266.5 6.993C267 8.367 267.3 9.839 267.3 11.32V112.3L291.8 86.39C292.8 85.31 294 84.44 295.4 83.84C296.7 83.23 298.2 82.9 299.7 82.86C301.2 82.81 302.6 83.06 304 83.59C305.4 84.12 306.7 84.92 307.8 85.94C308.8 86.96 309.7 88.18 310.3 89.54C310.9 90.89 311.3 92.35 311.3 93.84C311.3 95.32 311.1 96.8 310.6 98.18C310 99.57 309.2 100.8 308.2 101.9L264.2 148.5C263.1 149.6 261.9 150.5 260.5 151.1C259 151.7 257.5 152 255.1 152C254.5 152 252.9 151.7 251.5 151.1C250.1 150.5 248.8 149.6 247.8 148.5L203.7 101.9C201.7 99.74 200.6 96.83 200.7 93.84C200.7 90.84 202 87.1 204.2 85.94C206.4 83.88 209.3 82.77 212.3 82.86C215.3 82.94 218.1 84.21 220.2 86.39L244.7 112.4V22.89C188.3 25.64 134.9 48.73 94.23 87.87C53.58 127 28.49 179.6 23.61 235.8C18.73 292 34.38 348.1 67.68 393.7C100.1 439.2 149.7 471.2 204.7 483.6C207.6 484.3 210.2 486.1 211.8 488.6L211.8 488.6zM171.4 126.1C170.6 127.4 169.5 128.5 168.3 129.3C147.8 143.2 131.1 161.9 119.5 183.8C107.9 205.7 101.8 230.1 101.8 254.9C101.8 279.7 107.9 304.1 119.5 325.1C131.1 347.9 147.8 366.6 168.3 380.5C170.8 382.2 172.5 384.8 173 387.8C173.6 390.7 172.1 393.8 171.3 396.2C169.6 398.7 166.1 400.4 164 400.1C161.1 401.5 158 400.9 155.6 399.2C132 383.2 112.8 361.7 99.46 336.5C86.15 311.4 79.19 283.4 79.19 254.9C79.19 226.5 86.15 198.4 99.46 173.3C112.8 148.1 132 126.6 155.6 110.6C156.8 109.8 158.2 109.2 159.6 108.8C161.1 108.5 162.6 108.5 164.1 108.8C165.5 109 166.9 109.6 168.2 110.4C169.5 111.2 170.5 112.3 171.4 113.5C172.2 114.7 172.8 116.1 173.1 117.6C173.4 119.1 173.4 120.6 173.1 122C172.8 123.5 172.3 124.9 171.4 126.1H171.4zM340.9 383.5C341.7 382.3 342.8 381.2 343.1 380.4V380.3C364.4 366.3 381.1 347.6 392.7 325.7C404.2 303.9 410.2 279.5 410.2 254.8C410.2 230.1 404.2 205.7 392.7 183.8C381.1 161.1 364.4 143.3 343.1 129.3C342.8 128.5 341.7 127.4 340.9 126.2C340.1 124.9 339.5 123.5 339.3 122.1C338.1 120.6 339 119.1 339.3 117.7C339.6 116.2 340.2 114.8 341 113.6C341.9 112.4 342.1 111.3 344.2 110.5C345.4 109.7 346.8 109.2 348.3 108.9C349.8 108.6 351.2 108.6 352.7 108.9C354.2 109.2 355.5 109.8 356.8 110.7C380.2 126.7 399.5 148.2 412.7 173.3C426 198.4 432.1 226.4 432.1 254.8C432.1 283.3 426 311.3 412.7 336.4C399.5 361.5 380.2 383 356.8 399C355.5 399.9 354.2 400.5 352.7 400.8C351.2 401.1 349.8 401.1 348.3 400.8C346.8 400.5 345.4 399.1 344.2 399.2C342.1 398.4 341.9 397.3 341 396.1C340.2 394.9 339.6 393.5 339.3 392C339 390.6 338.1 389.1 339.3 387.6C339.5 386.2 340.1 384.8 340.9 383.5V383.5zM312.3 6.307C368.5 19.04 418.7 50.28 455 95.01C485.4 132.6 504.6 178 510.3 226C515.9 274 507.9 322.7 487.1 366.3C466.2 409.9 433.5 446.8 392.6 472.6C351.7 498.3 304.4 512 256 512C254.5 512 253.1 511.7 251.7 511.1C250.3 510.6 249.1 509.7 248 508.7C246.1 507.6 246.1 506.4 245.6 505C245 503.6 244.7 502.2 244.7 500.7V401.5L220.2 427.5C218.1 429.7 215.3 430.1 212.3 431.1C209.3 431.2 206.4 430 204.2 427.1C202 425.9 200.7 423.1 200.7 420.1C200.6 417.1 201.7 414.2 203.7 412L247.8 365.4C249.1 363.2 252.9 362 255.1 362C259.1 362 262 363.2 264.2 365.4L308.2 412C310.3 414.2 311.4 417.1 311.3 420.1C311.2 423.1 309.9 425.9 307.8 427.1C305.6 430 302.7 431.2 299.7 431.1C296.7 430.1 293.8 429.7 291.8 427.5L267.3 401.6V489.1C323.7 486.3 377.1 463.3 417.8 424.1C458.5 384.1 483.6 332.4 488.5 276.2C493.3 219.1 477.7 163.9 444.4 118.3C411.1 72.75 362.4 40.79 307.4 28.36C305.9 28.03 304.6 27.42 303.3 26.57C302.1 25.71 301.1 24.63 300.3 23.37C299.5 22.12 298.1 20.72 298.7 19.26C298.5 17.8 298.5 16.3 298.8 14.85C299.2 13.41 299.8 12.04 300.6 10.82C301.5 9.61 302.6 8.577 303.8 7.784C305.1 6.99 306.5 6.451 307.9 6.198C309.4 5.945 310.9 5.982 312.3 6.307L312.3 6.307zM353.1 256.1C353.1 287.5 335.6 317.2 303.8 339.6C301.7 341.1 299 341.9 296.4 341.6C293.7 341.4 291.2 340.3 289.4 338.4L219.3 268.6C217.1 266.5 215.1 263.6 215.9 260.6C215.9 257.6 217.1 254.7 219.2 252.6C221.4 250.5 224.2 249.3 227.2 249.3C230.2 249.3 233.1 250.5 235.2 252.6L298.3 315.4C319.1 298.3 330.5 277.5 330.5 256.1C330.5 232.2 316.4 209.1 290.8 191C288.3 189.3 286.7 186.7 286.2 183.7C285.7 180.8 286.3 177.7 288.1 175.3C289.8 172.8 292.4 171.2 295.4 170.7C298.3 170.2 301.4 170.8 303.8 172.6C335.6 195 353.1 224.7 353.1 256.1V256.1zM216.7 341.5C213.7 342 210.7 341.3 208.2 339.6C176.5 317.2 158.1 287.5 158.1 256.1C158.1 224.7 176.5 195 208.2 172.6C210.4 171 213.1 170.3 215.7 170.5C218.4 170.8 220.8 171.9 222.7 173.8L292.8 243.6C294.9 245.7 296.1 248.6 296.1 251.6C296.1 254.6 294.1 257.4 292.8 259.6C290.7 261.7 287.8 262.9 284.9 262.9C281.9 262.9 278.1 261.7 276.9 259.6L213.8 196.7C192.9 214 181.6 234.7 181.6 256.1C181.6 279.1 195.7 303.1 221.3 321.1C223.7 322.9 225.4 325.5 225.9 328.5C226.4 331.4 225.7 334.4 224 336.9C222.3 339.3 219.6 341 216.7 341.5L216.7 341.5z"], - "skype": [448, 512, [], "f17e", "M424.7 299.8c2.9-14 4.7-28.9 4.7-43.8 0-113.5-91.9-205.3-205.3-205.3-14.9 0-29.7 1.7-43.8 4.7C161.3 40.7 137.7 32 112 32 50.2 32 0 82.2 0 144c0 25.7 8.7 49.3 23.3 68.2-2.9 14-4.7 28.9-4.7 43.8 0 113.5 91.9 205.3 205.3 205.3 14.9 0 29.7-1.7 43.8-4.7 19 14.6 42.6 23.3 68.2 23.3 61.8 0 112-50.2 112-112 .1-25.6-8.6-49.2-23.2-68.1zm-194.6 91.5c-65.6 0-120.5-29.2-120.5-65 0-16 9-30.6 29.5-30.6 31.2 0 34.1 44.9 88.1 44.9 25.7 0 42.3-11.4 42.3-26.3 0-18.7-16-21.6-42-28-62.5-15.4-117.8-22-117.8-87.2 0-59.2 58.6-81.1 109.1-81.1 55.1 0 110.8 21.9 110.8 55.4 0 16.9-11.4 31.8-30.3 31.8-28.3 0-29.2-33.5-75-33.5-25.7 0-42 7-42 22.5 0 19.8 20.8 21.8 69.1 33 41.4 9.3 90.7 26.8 90.7 77.6 0 59.1-57.1 86.5-112 86.5z"], - "joget": [496, 512, [], "f3b7", "M378.1 45C337.6 19.9 292.6 8 248.2 8 165 8 83.8 49.9 36.9 125.9c-71.9 116.6-35.6 269.3 81 341.2s269.3 35.6 341.2-80.9c71.9-116.6 35.6-269.4-81-341.2zm51.8 323.2c-40.4 65.5-110.4 101.5-182 101.5-6.8 0-13.6-.4-20.4-1-9-13.6-19.9-33.3-23.7-42.4-5.7-13.7-27.2-45.6 31.2-67.1 51.7-19.1 176.7-16.5 208.8-17.6-4 9-8.6 17.9-13.9 26.6zm-200.8-86.3c-55.5-1.4-81.7-20.8-58.5-48.2s51.1-40.7 68.9-51.2c17.9-10.5 27.3-33.7-23.6-29.7C87.3 161.5 48.6 252.1 37.6 293c-8.8-49.7-.1-102.7 28.5-149.1C128 43.4 259.6 12.2 360.1 74.1c74.8 46.1 111.2 130.9 99.3 212.7-24.9-.5-179.3-3.6-230.3-4.9zm183.8-54.8c-22.7-6-57 11.3-86.7 27.2-29.7 15.8-31.1 8.2-31.1 8.2s40.2-28.1 50.7-34.5 31.9-14 13.4-24.6c-3.2-1.8-6.7-2.7-10.4-2.7-17.8 0-41.5 18.7-67.5 35.6-31.5 20.5-65.3 31.3-65.3 31.3l169.5-1.6 46.5-23.4s3.6-9.5-19.1-15.5z"], - "fedora": [448, 512, [], "f798", "M.0413 255.8C.1219 132.2 100.3 32 224 32C347.7 32 448 132.3 448 256C448 379.7 347.8 479.9 224.1 480H50.93C22.84 480 .0832 457.3 .0416 429.2H0V255.8H.0413zM342.6 192.7C342.6 153 307 124.2 269.4 124.2C234.5 124.2 203.6 150.5 199.3 184.1C199.1 187.9 198.9 189.1 198.9 192.6C198.8 213.7 198.9 235.4 198.1 257C199 283.1 199.1 309.1 198.1 333.6C198.1 360.7 178.7 379.1 153.4 379.1C128.1 379.1 107.6 358.9 107.6 333.6C108.1 305.9 130.2 288.3 156.1 287.5H156.3L182.6 287.3V250L156.3 250.2C109.2 249.8 71.72 286.7 70.36 333.6C70.36 379.2 107.9 416.5 153.4 416.5C196.4 416.5 232.1 382.9 236 340.9L236.2 287.4L268.8 287.1C294.1 287.3 293.8 249.3 268.6 249.8L236.2 250.1C236.2 243.7 236.3 237.3 236.3 230.9C236.4 218.2 236.4 205.5 236.2 192.7C236.3 176.2 252 161.5 269.4 161.5C286.9 161.5 305.3 170.2 305.3 192.7C305.3 195.9 305.2 197.8 305 199C303.1 209.5 310.2 219.4 320.7 220.9C331.3 222.4 340.9 214.8 341.9 204.3C342.5 200.1 342.6 196.4 342.6 192.7H342.6z"], - "stripe-s": [384, 512, [], "f42a", "M155.3 154.6c0-22.3 18.6-30.9 48.4-30.9 43.4 0 98.5 13.3 141.9 36.7V26.1C298.3 7.2 251.1 0 203.8 0 88.1 0 11 60.4 11 161.4c0 157.9 216.8 132.3 216.8 200.4 0 26.4-22.9 34.9-54.7 34.9-47.2 0-108.2-19.5-156.1-45.5v128.5a396.09 396.09 0 0 0 156 32.4c118.6 0 200.3-51 200.3-153.6 0-170.2-218-139.7-218-203.9z"], - "meta": [640, 512, [], "e49b", "M640 317.9C640 409.2 600.6 466.4 529.7 466.4C467.1 466.4 433.9 431.8 372.8 329.8L341.4 277.2C333.1 264.7 326.9 253 320.2 242.2C300.1 276 273.1 325.2 273.1 325.2C206.1 441.8 168.5 466.4 116.2 466.4C43.42 466.4 0 409.1 0 320.5C0 177.5 79.78 42.4 183.9 42.4C234.1 42.4 277.7 67.08 328.7 131.9C365.8 81.8 406.8 42.4 459.3 42.4C558.4 42.4 640 168.1 640 317.9H640zM287.4 192.2C244.5 130.1 216.5 111.7 183 111.7C121.1 111.7 69.22 217.8 69.22 321.7C69.22 370.2 87.7 397.4 118.8 397.4C149 397.4 167.8 378.4 222 293.6C222 293.6 246.7 254.5 287.4 192.2V192.2zM531.2 397.4C563.4 397.4 578.1 369.9 578.1 322.5C578.1 198.3 523.8 97.08 454.9 97.08C421.7 97.08 393.8 123 360 175.1C369.4 188.9 379.1 204.1 389.3 220.5L426.8 282.9C485.5 377 500.3 397.4 531.2 397.4L531.2 397.4z"], - "laravel": [512, 512, [], "f3bd", "M107.2 0c2.5 0 4.7 .8 6.7 2l94.3 54.1c2.7 1.5 4.5 3.5 5.4 5.9c.9 2.2 .9 4.3 .9 5.6l0 193.4 69.2-39.7 0-100.3c0-2.6 .6-5 2.2-7.2c1.5-2.1 3.5-3.6 5.7-4.8c0 0 0 0 0 0l94-54c1.6-.9 3.4-1.6 5.5-1.6s4 .7 5.6 1.6l95.8 55.1c2.3 1.3 3.9 3 4.9 5.3c.9 2.1 .9 4.2 .9 5.8l0 107.2c0 2-.2 4.3-1.4 6.4c-1.2 2.2-3 3.7-5.1 4.9l-.1 .1-88 50.5 0 100c0 2.3-.3 4.8-1.6 7c-1.3 2.2-3.3 3.7-5.3 4.9c0 0 0 0-.1 0L208.7 510c-2.2 1.2-4.5 2-7.1 2s-4.9-.9-7.1-2l-.1-.1L7.1 402l-.5-.3c-1.1-.7-2.6-1.7-3.8-2.9C.9 396.9 0 394.6 0 391.6L0 65.9c0-4.8 3-7.9 5.5-9.3L100.5 2c2-1.2 4.3-2 6.8-2zM38.1 67.1l69 39.9 69.2-39.9L107.1 27.4l-69 39.7zm353 93.2l69-39.7-69-39.7-69.1 39.7 69.1 39.7zM189.2 89L120 128.8l0 186.4 69.2-39.9 0-186.4zM94.5 128.9L25.2 89.1l0 294.2 164 94.2 0-79.4-87.3-49.3-.2-.1c-1.3-.8-3.2-1.9-4.6-3.7c-1.7-2.1-2.5-4.7-2.5-7.7l0-208.5zm214.7 92.4l69.3 39.6 0-78.5-69.3-39.9 0 78.8zm94.5 39.6L473 221.2l0-78.8-69.3 39.9 0 78.5zM201.6 376.1l163.8-93.2-69-39.9L133 337.1l68.6 38.9zm12.9 101.5l164-94.2 0-78.8-164 93.6 0 79.4z"], - "hotjar": [512, 512, [], "f3b1", "M361.5 0c0 131.6-80.7 176.8-140.2 209.4c-.6 .3-1.1 .6-1.6 .9c-53.8 30.2-88.7 49.8-89.6 122H32C32 200.8 112.7 155.6 172.2 123C227 93.2 262.5 73 262.5 0h98.9zM301 302.6c54.8-29.8 90.3-50 90.3-123h98c0 131.6-80.7 176.7-140.2 209.4c-54.8 29.8-90.3 50-90.3 123h-98c0-131.6 80.7-176.8 140.2-209.4z"], - "bluetooth-b": [320, 512, [], "f294", "M196.48 260.023l92.626-103.333L143.125 0v206.33l-86.111-86.111-31.406 31.405 108.061 108.399L25.608 368.422l31.406 31.405 86.111-86.111L145.84 512l148.552-148.644-97.912-103.333zm40.86-102.996l-49.977 49.978-.338-100.295 50.315 50.317zM187.363 313.04l49.977 49.978-50.315 50.316.338-100.294z"], - "square-letterboxd": [448, 512, [], "e62e", "M384 32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H384zM105.1 187C66.4 187 35 218.3 35 257s31.4 70 70.1 70c24.8 0 46.5-12.8 59-32.2l.5-.7-.4-.6c-6.5-10.6-10.2-23.1-10.2-36.5c0-13.6 3.9-26.3 10.6-37.1c-12.4-19.8-34.4-32.9-59.5-32.9zM224 187c-24.8 0-46.5 12.8-59 32.2l-.5 .7 .4 .6c6.5 10.6 10.2 23.1 10.2 36.5c0 13.6-3.9 26.3-10.6 37.1C176.9 313.8 198.9 327 224 327c24.8 0 46.5-12.8 59-32.2l.5-.7-.4-.6c-6.5-10.6-10.2-23.1-10.2-36.5c0-13.6 3.9-26.3 10.6-37.1C271.1 200.2 249.1 187 224 187zm118.9 0c-24.8 0-46.5 12.8-59 32.2l-.5 .7 .4 .6c6.5 10.6 10.2 23.1 10.2 36.5c0 13.6-3.9 26.3-10.6 37.1c12.4 19.8 34.4 32.9 59.5 32.9c38.7 0 70.1-31.3 70.1-70s-31.4-70-70.1-70z"], - "sticker-mule": [576, 512, [], "f3f7", "M561.7 199.6c-1.3.3.3 0 0 0zm-6.2-77.4c-7.7-22.3-5.1-7.2-13.4-36.9-1.6-6.5-3.6-14.5-6.2-20-4.4-8.7-4.6-7.5-4.6-9.5 0-5.3 30.7-45.3 19-46.9-5.7-.6-12.2 11.6-20.6 17-8.6 4.2-8 5-10.3 5-2.6 0-5.7-3-6.2-5-2-5.7 1.9-25.9-3.6-25.9-3.6 0-12.3 24.8-17 25.8-5.2 1.3-27.9-11.4-75.1 18-25.3 13.2-86.9 65.2-87 65.3-6.7 4.7-20 4.7-35.5 16-44.4 30.1-109.6 9.4-110.7 9-110.6-26.8-128-15.2-159 11.5-20.8 17.9-23.7 36.5-24.2 38.9-4.2 20.4 5.2 48.3 6.7 64.3 1.8 19.3-2.7 17.7 7.7 98.3.5 1 4.1 0 5.1 1.5 0 8.4-3.8 12.1-4.1 13-1.5 4.5-1.5 10.5 0 16 2.3 8.2 8.2 37.2 8.2 46.9 0 41.8.4 44 2.6 49.4 3.9 10 12.5 9.1 17 12 3.1 3.5-.5 8.5 1 12.5.5 2 3.6 4 6.2 5 9.2 3.6 27 .3 29.9-2.5 1.6-1.5.5-4.5 3.1-5 5.1 0 10.8-.5 14.4-2.5 5.1-2.5 4.1-6 1.5-10.5-.4-.8-7-13.3-9.8-16-2.1-2-5.1-3-7.2-4.5-5.8-4.9-10.3-19.4-10.3-19.5-4.6-19.4-10.3-46.3-4.1-66.8 4.6-17.2 39.5-87.7 39.6-87.8 4.1-6.5 17-11.5 27.3-7 6 1.9 19.3 22 65.4 30.9 47.9 8.7 97.4-2 112.2-2 2.8 2-1.9 13-.5 38.9 0 26.4-.4 13.7-4.1 29.9-2.2 9.7 3.4 23.2-1.5 46.9-1.4 9.8-9.9 32.7-8.2 43.4.5 1 1 2 1.5 3.5.5 4.5 1.5 8.5 4.6 10 7.3 3.6 12-3.5 9.8 11.5-.7 3.1-2.6 12 1.5 15 4.4 3.7 30.6 3.4 36.5.5 2.6-1.5 1.6-4.5 6.4-7.4 1.9-.9 11.3-.4 11.3-6.5.3-1.8-9.2-19.9-9.3-20-2.6-3.5-9.2-4.5-11.3-8-6.9-10.1-1.7-52.6.5-59.4 3-11 5.6-22.4 8.7-32.4 11-42.5 10.3-50.6 16.5-68.3.8-1.8 6.4-23.1 10.3-29.9 9.3-17 21.7-32.4 33.5-47.4 18-22.9 34-46.9 52-69.8 6.1-7 8.2-13.7 18-8 10.8 5.7 21.6 7 31.9 17 14.6 12.8 10.2 18.2 11.8 22.9 1.5 5 7.7 10.5 14.9 9.5 10.4-2 13-2.5 13.4-2.5 2.6-.5 5.7-5 7.2-8 3.1-5.5 7.2-9 7.2-16.5 0-7.7-.4-2.8-20.6-52.9z"], - "creative-commons-zero": [496, 512, [], "f4f3", "M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm-.4 60.5c-81.9 0-102.5 77.3-102.5 142.8 0 65.5 20.6 142.8 102.5 142.8S350.5 321.5 350.5 256c0-65.5-20.6-142.8-102.5-142.8zm0 53.9c3.3 0 6.4.5 9.2 1.2 5.9 5.1 8.8 12.1 3.1 21.9l-54.5 100.2c-1.7-12.7-1.9-25.1-1.9-34.4 0-28.8 2-88.9 44.1-88.9zm40.8 46.2c2.9 15.4 3.3 31.4 3.3 42.7 0 28.9-2 88.9-44.1 88.9-13.5 0-32.6-7.7-20.1-26.4l60.9-105.2z"], - "hips": [640, 512, [], "f452", "M251.6 157.6c0-1.9-.9-2.8-2.8-2.8h-40.9c-1.6 0-2.7 1.4-2.7 2.8v201.8c0 1.4 1.1 2.8 2.7 2.8h40.9c1.9 0 2.8-.9 2.8-2.8zM156.5 168c-16.1-11.8-36.3-17.9-60.3-18-18.1-.1-34.6 3.7-49.8 11.4V80.2c0-1.8-.9-2.7-2.8-2.7H2.7c-1.8 0-2.7.9-2.7 2.7v279.2c0 1.9.9 2.8 2.7 2.8h41c1.9 0 2.8-.9 2.8-2.8V223.3c0-.8-2.8-27 45.8-27 48.5 0 45.8 26.1 45.8 27v122.6c0 9 7.3 16.3 16.4 16.3h27.3c1.8 0 2.7-.9 2.7-2.8V223.3c0-23.4-9.3-41.8-28-55.3zm478.4 110.1c-6.8-15.7-18.4-27-34.9-34.1l-57.6-25.3c-8.6-3.6-9.2-11.2-2.6-16.1 7.4-5.5 44.3-13.9 84 6.8 1.7 1 4-.3 4-2.4v-44.7c0-1.3-.6-2.1-1.9-2.6-17.7-6.6-36.1-9.9-55.1-9.9-26.5 0-45.3 5.8-58.5 15.4-.5.4-28.4 20-22.7 53.7 3.4 19.6 15.8 34.2 37.2 43.6l53.6 23.5c11.6 5.1 15.2 13.3 12.2 21.2-3.7 9.1-13.2 13.6-36.5 13.6-24.3 0-44.7-8.9-58.4-19.1-2.1-1.4-4.4.2-4.4 2.3v34.4c0 10.4 4.9 17.3 14.6 20.7 15.6 5.5 31.6 8.2 48.2 8.2 12.7 0 25.8-1.2 36.3-4.3.7-.3 36-8.9 45.6-45.8 3.5-13.5 2.4-26.5-3.1-39.1zM376.2 149.8c-31.7 0-104.2 20.1-104.2 103.5v183.5c0 .8.6 2.7 2.7 2.7h40.9c1.9 0 2.8-.9 2.8-2.7V348c16.5 12.7 35.8 19.1 57.7 19.1 60.5 0 108.7-48.5 108.7-108.7.1-60.3-48.2-108.6-108.6-108.6zm0 170.9c-17.2 0-31.9-6.1-44-18.2-12.2-12.2-18.2-26.8-18.2-44 0-34.5 27.6-62.2 62.2-62.2 34.5 0 62.2 27.6 62.2 62.2.1 34.3-27.3 62.2-62.2 62.2zM228.3 72.5c-15.9 0-28.8 12.9-28.9 28.9 0 15.6 12.7 28.9 28.9 28.9s28.9-13.1 28.9-28.9c0-16.2-13-28.9-28.9-28.9z"], - "css": [448, 512, [], "e6a2", "M376.3 32L0 32 0 408.3c0 19 7.6 37.2 21 50.7s31.7 21 50.7 21l304.6 0c19 0 37.2-7.6 50.7-21s21-31.7 21-50.7l0-304.6c0-19-7.6-37.2-21-50.7s-31.7-21-50.7-21zM332.4 431.4c-7.7-8.5-11.7-20.7-12-36.6l31.3 0c.2 14.1 5.1 21.1 14.8 21.1c4.9 0 8.4-1.6 10.5-4.7c2-3.1 3-8 3-14.8c0-5.4-1.3-9.9-4-13.4c-3.5-4.2-8.1-7.5-13.2-9.5L351.2 368c-10.3-4.9-17.8-10.8-22.5-17.6c-4.5-6.8-6.7-16.3-6.7-28.4c0-13.6 4-24.6 11.8-33.1c8.1-8.5 19.1-12.7 33.2-12.7c13.6 0 24.1 4.2 31.5 12.5c7.5 8.4 11.5 20.3 11.8 35.9l-30.1 0c.2-5.1-.9-10.2-3-14.8c-1.7-3.4-5-5.1-10-5.1c-8.8 0-13.2 5.2-13.2 15.7c0 5.3 1.1 9.4 3.2 12.6c3.1 3.5 7 6.2 11.4 7.8l11.1 4.9c11.5 5.3 19.7 11.7 24.8 19.4c5.1 7.7 7.6 18 7.6 31c0 15.5-4 27.4-12.3 35.7c-8.2 8.3-19.5 12.5-34.1 12.5s-25.6-4.2-33.4-12.7zm-101 0c-7.7-8.5-11.7-20.7-12-36.6l31.3 0c.2 14.1 5.1 21.1 14.8 21.1c4.9 0 8.4-1.6 10.4-4.7c2-3.1 3-8 3-14.8c0-5.4-1.3-9.9-3.9-13.4c-3.5-4.2-8.1-7.5-13.2-9.5L250.2 368c-10.3-4.9-17.8-10.8-22.5-17.6c-4.5-6.8-6.7-16.3-6.7-28.4c0-13.6 4-24.6 11.8-33.1c8.1-8.5 19.1-12.7 33.2-12.7c13.6 0 24.1 4.2 31.4 12.5c7.6 8.4 11.5 20.3 11.9 35.9l-30.1 0c.2-5.1-.9-10.2-3-14.8c-1.7-3.4-5-5.1-10-5.1c-8.8 0-13.2 5.2-13.2 15.7c0 5.3 1.1 9.4 3.2 12.6c3.1 3.5 7 6.2 11.4 7.8l11.1 4.9c11.5 5.3 19.7 11.7 24.8 19.4c5.1 7.7 7.6 18 7.6 31c0 15.5-4.1 27.4-12.3 35.7s-19.5 12.5-34.1 12.5s-25.6-4.2-33.4-12.7zm-105.6 1.1c-8.4-7.7-12.5-19.2-12.5-34.5l0-75.4c0-15.2 4.4-26.7 13.2-34.6c8.9-7.8 20.7-11.8 35.2-11.8c14.1 0 25.2 4 33.4 12c8.3 8 12.5 20 12.5 35.9l0 6-33.1 0 0-5.8c0-6.1-1.3-10.7-4-13.6c-1.1-1.5-2.6-2.7-4.3-3.5s-3.5-1.2-5.4-1.1c-5.4 0-9.2 1.8-11.4 5.6c-2.3 5.2-3.3 10.8-3 16.4l0 65.5c0 13.7 4.8 20.6 14.4 20.8c4.5 0 7.9-1.6 10.2-4.8c2.5-4.1 3.7-8.8 3.5-13.6l0-4.9 33.1 0 0 5.1c0 10.6-2.1 19.5-6.2 26.6c-4 6.9-9.9 12.5-17.1 16c-7.7 3.7-16.1 5.5-24.6 5.3c-14.2 0-25.5-3.9-33.8-11.6z"], - "behance": [576, 512, [], "f1b4", "M232 237.2c31.8-15.2 48.4-38.2 48.4-74 0-70.6-52.6-87.8-113.3-87.8H0v354.4h171.8c64.4 0 124.9-30.9 124.9-102.9 0-44.5-21.1-77.4-64.7-89.7zM77.9 135.9H151c28.1 0 53.4 7.9 53.4 40.5 0 30.1-19.7 42.2-47.5 42.2h-79v-82.7zm83.3 233.7H77.9V272h84.9c34.3 0 56 14.3 56 50.6 0 35.8-25.9 47-57.6 47zm358.5-240.7H376V94h143.7v34.9zM576 305.2c0-75.9-44.4-139.2-124.9-139.2-78.2 0-131.3 58.8-131.3 135.8 0 79.9 50.3 134.7 131.3 134.7 61.3 0 101-27.6 120.1-86.3H509c-6.7 21.9-34.3 33.5-55.7 33.5-41.3 0-63-24.2-63-65.3h185.1c.3-4.2.6-8.7.6-13.2zM390.4 274c2.3-33.7 24.7-54.8 58.5-54.8 35.4 0 53.2 20.8 56.2 54.8H390.4z"], - "reddit": [512, 512, [], "f1a1", "M0 256C0 114.6 114.6 0 256 0S512 114.6 512 256s-114.6 256-256 256L37.1 512c-13.7 0-20.5-16.5-10.9-26.2L75 437C28.7 390.7 0 326.7 0 256zM349.6 153.6c23.6 0 42.7-19.1 42.7-42.7s-19.1-42.7-42.7-42.7c-20.6 0-37.8 14.6-41.8 34c-34.5 3.7-61.4 33-61.4 68.4l0 .2c-37.5 1.6-71.8 12.3-99 29.1c-10.1-7.8-22.8-12.5-36.5-12.5c-33 0-59.8 26.8-59.8 59.8c0 24 14.1 44.6 34.4 54.1c2 69.4 77.6 125.2 170.6 125.2s168.7-55.9 170.6-125.3c20.2-9.6 34.1-30.2 34.1-54c0-33-26.8-59.8-59.8-59.8c-13.7 0-26.3 4.6-36.4 12.4c-27.4-17-62.1-27.7-100-29.1l0-.2c0-25.4 18.9-46.5 43.4-49.9l0 0c4.4 18.8 21.3 32.8 41.5 32.8zM177.1 246.9c16.7 0 29.5 17.6 28.5 39.3s-13.5 29.6-30.3 29.6s-31.4-8.8-30.4-30.5s15.4-38.3 32.1-38.3zm190.1 38.3c1 21.7-13.7 30.5-30.4 30.5s-29.3-7.9-30.3-29.6c-1-21.7 11.8-39.3 28.5-39.3s31.2 16.6 32.1 38.3zm-48.1 56.7c-10.3 24.6-34.6 41.9-63 41.9s-52.7-17.3-63-41.9c-1.2-2.9 .8-6.2 3.9-6.5c18.4-1.9 38.3-2.9 59.1-2.9s40.7 1 59.1 2.9c3.1 .3 5.1 3.6 3.9 6.5z"], - "discord": [640, 512, [], "f392", "M524.531,69.836a1.5,1.5,0,0,0-.764-.7A485.065,485.065,0,0,0,404.081,32.03a1.816,1.816,0,0,0-1.923.91,337.461,337.461,0,0,0-14.9,30.6,447.848,447.848,0,0,0-134.426,0,309.541,309.541,0,0,0-15.135-30.6,1.89,1.89,0,0,0-1.924-.91A483.689,483.689,0,0,0,116.085,69.137a1.712,1.712,0,0,0-.788.676C39.068,183.651,18.186,294.69,28.43,404.354a2.016,2.016,0,0,0,.765,1.375A487.666,487.666,0,0,0,176.02,479.918a1.9,1.9,0,0,0,2.063-.676A348.2,348.2,0,0,0,208.12,430.4a1.86,1.86,0,0,0-1.019-2.588,321.173,321.173,0,0,1-45.868-21.853,1.885,1.885,0,0,1-.185-3.126c3.082-2.309,6.166-4.711,9.109-7.137a1.819,1.819,0,0,1,1.9-.256c96.229,43.917,200.41,43.917,295.5,0a1.812,1.812,0,0,1,1.924.233c2.944,2.426,6.027,4.851,9.132,7.16a1.884,1.884,0,0,1-.162,3.126,301.407,301.407,0,0,1-45.89,21.83,1.875,1.875,0,0,0-1,2.611,391.055,391.055,0,0,0,30.014,48.815,1.864,1.864,0,0,0,2.063.7A486.048,486.048,0,0,0,610.7,405.729a1.882,1.882,0,0,0,.765-1.352C623.729,277.594,590.933,167.465,524.531,69.836ZM222.491,337.58c-28.972,0-52.844-26.587-52.844-59.239S193.056,219.1,222.491,219.1c29.665,0,53.306,26.82,52.843,59.239C275.334,310.993,251.924,337.58,222.491,337.58Zm195.38,0c-28.971,0-52.843-26.587-52.843-59.239S388.437,219.1,417.871,219.1c29.667,0,53.307,26.82,52.844,59.239C470.715,310.993,447.538,337.58,417.871,337.58Z"], - "chrome": [512, 512, [], "f268", "M0 256C0 209.4 12.47 165.6 34.27 127.1L144.1 318.3C166 357.5 207.9 384 256 384C270.3 384 283.1 381.7 296.8 377.4L220.5 509.6C95.9 492.3 0 385.3 0 256zM365.1 321.6C377.4 302.4 384 279.1 384 256C384 217.8 367.2 183.5 340.7 160H493.4C505.4 189.6 512 222.1 512 256C512 397.4 397.4 511.1 256 512L365.1 321.6zM477.8 128H256C193.1 128 142.3 172.1 130.5 230.7L54.19 98.47C101 38.53 174 0 256 0C350.8 0 433.5 51.48 477.8 128V128zM168 256C168 207.4 207.4 168 256 168C304.6 168 344 207.4 344 256C344 304.6 304.6 344 256 344C207.4 344 168 304.6 168 256z"], - "app-store-ios": [448, 512, [], "f370", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM127 384.5c-5.5 9.6-17.8 12.8-27.3 7.3-9.6-5.5-12.8-17.8-7.3-27.3l14.3-24.7c16.1-4.9 29.3-1.1 39.6 11.4L127 384.5zm138.9-53.9H84c-11 0-20-9-20-20s9-20 20-20h51l65.4-113.2-20.5-35.4c-5.5-9.6-2.2-21.8 7.3-27.3 9.6-5.5 21.8-2.2 27.3 7.3l8.9 15.4 8.9-15.4c5.5-9.6 17.8-12.8 27.3-7.3 9.6 5.5 12.8 17.8 7.3 27.3l-85.8 148.6h62.1c20.2 0 31.5 23.7 22.7 40zm98.1 0h-29l19.6 33.9c5.5 9.6 2.2 21.8-7.3 27.3-9.6 5.5-21.8 2.2-27.3-7.3-32.9-56.9-57.5-99.7-74-128.1-16.7-29-4.8-58 7.1-67.8 13.1 22.7 32.7 56.7 58.9 102h52c11 0 20 9 20 20 0 11.1-9 20-20 20z"], - "cc-discover": [576, 512, [], "f1f2", "M520.4 196.1c0-7.9-5.5-12.1-15.6-12.1h-4.9v24.9h4.7c10.3 0 15.8-4.4 15.8-12.8zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-44.1 138.9c22.6 0 52.9-4.1 52.9 24.4 0 12.6-6.6 20.7-18.7 23.2l25.8 34.4h-19.6l-22.2-32.8h-2.2v32.8h-16zm-55.9.1h45.3v14H444v18.2h28.3V217H444v22.2h29.3V253H428zm-68.7 0l21.9 55.2 22.2-55.2h17.5l-35.5 84.2h-8.6l-35-84.2zm-55.9-3c24.7 0 44.6 20 44.6 44.6 0 24.7-20 44.6-44.6 44.6-24.7 0-44.6-20-44.6-44.6 0-24.7 20-44.6 44.6-44.6zm-49.3 6.1v19c-20.1-20.1-46.8-4.7-46.8 19 0 25 27.5 38.5 46.8 19.2v19c-29.7 14.3-63.3-5.7-63.3-38.2 0-31.2 33.1-53 63.3-38zm-97.2 66.3c11.4 0 22.4-15.3-3.3-24.4-15-5.5-20.2-11.4-20.2-22.7 0-23.2 30.6-31.4 49.7-14.3l-8.4 10.8c-10.4-11.6-24.9-6.2-24.9 2.5 0 4.4 2.7 6.9 12.3 10.3 18.2 6.6 23.6 12.5 23.6 25.6 0 29.5-38.8 37.4-56.6 11.3l10.3-9.9c3.7 7.1 9.9 10.8 17.5 10.8zM55.4 253H32v-82h23.4c26.1 0 44.1 17 44.1 41.1 0 18.5-13.2 40.9-44.1 40.9zm67.5 0h-16v-82h16zM544 433c0 8.2-6.8 15-15 15H128c189.6-35.6 382.7-139.2 416-160zM74.1 191.6c-5.2-4.9-11.6-6.6-21.9-6.6H48v54.2h4.2c10.3 0 17-2 21.9-6.4 5.7-5.2 8.9-12.8 8.9-20.7s-3.2-15.5-8.9-20.5z"], - "wpbeginner": [512, 512, [], "f297", "M462.799 322.374C519.01 386.682 466.961 480 370.944 480c-39.602 0-78.824-17.687-100.142-50.04-6.887.356-22.702.356-29.59 0C219.848 462.381 180.588 480 141.069 480c-95.49 0-148.348-92.996-91.855-157.626C-29.925 190.523 80.479 32 256.006 32c175.632 0 285.87 158.626 206.793 290.374zm-339.647-82.972h41.529v-58.075h-41.529v58.075zm217.18 86.072v-23.839c-60.506 20.915-132.355 9.198-187.589-33.971l.246 24.897c51.101 46.367 131.746 57.875 187.343 32.913zm-150.753-86.072h166.058v-58.075H189.579v58.075z"], - "confluence": [512, 512, [], "f78d", "M2.3 412.2c-4.5 7.6-2.1 17.5 5.5 22.2l105.9 65.2c7.7 4.7 17.7 2.4 22.4-5.3 0-.1.1-.2.1-.2 67.1-112.2 80.5-95.9 280.9-.7 8.1 3.9 17.8.4 21.7-7.7.1-.1.1-.3.2-.4l50.4-114.1c3.6-8.1-.1-17.6-8.1-21.3-22.2-10.4-66.2-31.2-105.9-50.3C127.5 179 44.6 345.3 2.3 412.2zm507.4-312.1c4.5-7.6 2.1-17.5-5.5-22.2L398.4 12.8c-7.5-5-17.6-3.1-22.6 4.4-.2.3-.4.6-.6 1-67.3 112.6-81.1 95.6-280.6.9-8.1-3.9-17.8-.4-21.7 7.7-.1.1-.1.3-.2.4L22.2 141.3c-3.6 8.1.1 17.6 8.1 21.3 22.2 10.4 66.3 31.2 106 50.4 248 120 330.8-45.4 373.4-112.9z"], - "shoelace": [512, 512, [], "e60c", "M404.9 331c2.2-1.1 4.4-2.3 6.5-3.7l8.3-4.8c1.5-1.1 4.4-3.4 8.7-6.7l.5-.5c3.4-3.4 7.2-5 11.3-4.9c1.8 0 3.9 .5 6.4 1.5l31-27.5c.9-.7 1.7-1.3 2.6-1.8h.2c3.3-1.9 6-1.8 8.2 .4c3.9 2.1 4.2 5.6 .9 10.6L456.9 322c.2 .5 .4 1 .4 1.5c.5 2.2 .3 4.4-.5 6.6c-.7 1.5-1.8 2.9-3.1 4.2c-1.4 1.4-2.7 2.8-4.2 4.2l-18.8 13.7c-1.7 1.2-3.4 2.3-5.1 3.3c-2.1 1.3-4.3 2.5-6.6 3.6c-1 .4-1.9 .9-2.9 1.3c-5.9 2.5-11.9 4.2-18.2 5c-2.9 24.5-11.3 47.1-25.1 67.8c-17.5 25.7-41.4 45.4-71.8 58.8c-30.2 13.5-63 20.2-98.2 20.2c-48.6-.5-88-11.4-118.2-32.8C49.5 454.4 32 421.5 32 380.3v-5.6c1.2-28.1 9.5-54.6 24.8-79.8c15.1-24.9 37.1-41.7 66.1-50.5c14.9-4.4 29.9-6.6 45-6.6c15.5 0 31.6 2.9 48.1 8.6s35.2 15.5 55.9 29.5L326 312.2c15.1 9.8 28.8 16.5 41.2 20c-2.6-25.1-11.7-46.6-27.3-64.5c-15.7-18.1-35.6-31.3-59.9-39.7l-23.3-8c-21.4-7.5-37.3-14.9-47.7-22.2c-28.2-19.1-43.8-45.2-47-78.5l-.5-9.8c0-32.1 13-58.9 39-80.5C223.5 9.7 251.1 0 283 0c24 0 45.6 6.9 64.7 20.8c19.2 14 30.1 33.8 32.6 59.4l.5 10c0 18.6-4.8 34.5-14.4 47.7c-9.8 13.2-18.5 19.9-26 19.9c-1.6-.1-3.1-.3-4.5-.6l-34 32c-5.5 3-9.2 2.5-11.1-1.6c-1.9-2.2-1.8-4.9 .5-8.2l.2-.2c.5-.7 1.2-1.5 2-2.4l31.6-30c-.4-1.5-.6-3.1-.6-4.8c0-4.1 1.6-7.6 4.9-10.4c13.8-12.4 20.8-26.7 20.8-42.8c0-16-6.1-29.5-18.2-40.4s-28.7-16.5-49.7-16.8c-26.2 0-47.8 7.9-64.7 23.7S192.3 89.9 192.3 112c0 17.8 6.9 33.9 20.6 48.3c13.6 14.2 34.6 25.4 63 33.5c39.8 11.5 70.2 31 91.3 58.3c18.7 24.2 29.1 51.3 31.3 81.4c2.2-.7 4.3-1.5 6.5-2.6zM294.1 178.7c0 1.1 .6 1.6 1.8 1.6c.1 0 9.7-8.9 28.8-26.6c0-2.4-5.1 .9-15.3 10c-10.2 9.2-15.3 14.2-15.3 14.9zm8 6.4c0-1-.5-1.5-1.5-1.5c-1.1 0-2.1 .5-2.9 1.6c-1.9-.1-3.3 .1-4.2 .7c-.4 .2-.5 .5-.5 .7c0 .7 .5 1.3 1.5 1.6h3.3c2.9-1.1 4.4-2.2 4.4-3.3zm22.6-19.9c0-2.8-1.6-2.8-4.9 0c-1.6 1.5-3.6 3.5-6 6.2c-.8 .6-2.6 2.2-5.3 4.9c-2.8 2.9-4.2 4.7-4.2 5.3l.2 1.3c.7 .2 1.2 .4 1.5 .4c.1 0 3.3-2.9 9.5-8.7s9.3-8.9 9.3-9.3zm159.7 120l-30.6 27c1.8 1 3.2 2.4 4 4.2l30.2-27c.2-1.2 .1-2.2-.5-2.9c-.6-.5-1.6-.9-3.1-1.3zm-1.6-.9l-.7-.7-27 21.9 1.6 2 26-23.1zM366.6 363.9c-8-2.1-15.4-4.6-22.2-7.5c-15.3-6.2-34.3-17-57-32.4L250 298.7c-15.8-10.1-30.2-17.6-43.2-22.6c-13.1-4.9-26-7.3-38.6-7.3h-5.5c-32.2 1.7-57.2 13.8-75 36.2c-16.6 20.8-25 45.3-25 73.6c0 31.8 12.8 56.7 38.2 74.7c25.4 18.1 60.2 27.1 104.4 27.1c34.7 0 64-6.2 87.8-18.6c23.7-12.4 42.1-28.8 55.2-49.2c9.8-15.5 15.9-31.8 18.2-48.8z"], - "mdb": [576, 512, [], "f8ca", "M17.37 160.41L7 352h43.91l5.59-79.83L84.43 352h44.71l25.54-77.43 4.79 77.43H205l-12.79-191.59H146.7L106 277.74 63.67 160.41zm281 0h-47.9V352h47.9s95 .8 94.2-95.79c-.78-94.21-94.18-95.78-94.18-95.78zm-1.2 146.46V204.78s46 4.27 46.8 50.57-46.78 51.54-46.78 51.54zm238.29-74.24a56.16 56.16 0 0 0 8-38.31c-5.34-35.76-55.08-34.32-55.08-34.32h-51.9v191.58H482s87 4.79 87-63.85c0-43.14-33.52-55.08-33.52-55.08zm-51.9-31.94s13.57-1.59 16 9.59c1.43 6.66-4 12-4 12h-12v-21.57zm-.1 109.46l.1-24.92V267h.08s41.58-4.73 41.19 22.43c-.33 25.65-41.35 20.74-41.35 20.74z"], - "dochub": [416, 512, [], "f394", "M397.9 160H256V19.6L397.9 160zM304 192v130c0 66.8-36.5 100.1-113.3 100.1H96V84.8h94.7c12 0 23.1.8 33.1 2.5v-84C212.9 1.1 201.4 0 189.2 0H0v512h189.2C329.7 512 400 447.4 400 318.1V192h-96z"], - "accessible-icon": [448, 512, [62107], "f368", "M423.9 255.8L411 413.1c-3.3 40.7-63.9 35.1-60.6-4.9l10-122.5-41.1 2.3c10.1 20.7 15.8 43.9 15.8 68.5 0 41.2-16.1 78.7-42.3 106.5l-39.3-39.3c57.9-63.7 13.1-167.2-74-167.2-25.9 0-49.5 9.9-67.2 26L73 243.2c22-20.7 50.1-35.1 81.4-40.2l75.3-85.7-42.6-24.8-51.6 46c-30 26.8-70.6-18.5-40.5-45.4l68-60.7c9.8-8.8 24.1-10.2 35.5-3.6 0 0 139.3 80.9 139.5 81.1 16.2 10.1 20.7 36 6.1 52.6L285.7 229l106.1-5.9c18.5-1.1 33.6 14.4 32.1 32.7zm-64.9-154c28.1 0 50.9-22.8 50.9-50.9C409.9 22.8 387.1 0 359 0c-28.1 0-50.9 22.8-50.9 50.9 0 28.1 22.8 50.9 50.9 50.9zM179.6 456.5c-80.6 0-127.4-90.6-82.7-156.1l-39.7-39.7C36.4 287 24 320.3 24 356.4c0 130.7 150.7 201.4 251.4 122.5l-39.7-39.7c-16 10.9-35.3 17.3-56.1 17.3z"], - "ebay": [640, 512, [], "f4f4", "M606 189.5l-54.8 109.9-54.9-109.9h-37.5l10.9 20.6c-11.5-19-35.9-26-63.3-26-31.8 0-67.9 8.7-71.5 43.1h33.7c1.4-13.8 15.7-21.8 35-21.8 26 0 41 9.6 41 33v3.4c-12.7 0-28 .1-41.7.4-42.4.9-69.6 10-76.7 34.4 1-5.2 1.5-10.6 1.5-16.2 0-52.1-39.7-76.2-75.4-76.2-21.3 0-43 5.5-58.7 24.2v-80.6h-32.1v169.5c0 10.3-.6 22.9-1.1 33.1h31.5c.7-6.3 1.1-12.9 1.1-19.5 13.6 16.6 35.4 24.9 58.7 24.9 36.9 0 64.9-21.9 73.3-54.2-.5 2.8-.7 5.8-.7 9 0 24.1 21.1 45 60.6 45 26.6 0 45.8-5.7 61.9-25.5 0 6.6.3 13.3 1.1 20.2h29.8c-.7-8.2-1-17.5-1-26.8v-65.6c0-9.3-1.7-17.2-4.8-23.8l61.5 116.1-28.5 54.1h35.9L640 189.5zM243.7 313.8c-29.6 0-50.2-21.5-50.2-53.8 0-32.4 20.6-53.8 50.2-53.8 29.8 0 50.2 21.4 50.2 53.8 0 32.3-20.4 53.8-50.2 53.8zm200.9-47.3c0 30-17.9 48.4-51.6 48.4-25.1 0-35-13.4-35-25.8 0-19.1 18.1-24.4 47.2-25.3 13.1-.5 27.6-.6 39.4-.6zm-411.9 1.6h128.8v-8.5c0-51.7-33.1-75.4-78.4-75.4-56.8 0-83 30.8-83 77.6 0 42.5 25.3 74 82.5 74 31.4 0 68-11.7 74.4-46.1h-33.1c-12 35.8-87.7 36.7-91.2-21.6zm95-21.4H33.3c6.9-56.6 92.1-54.7 94.4 0z"], - "amazon": [448, 512, [], "f270", "M257.2 162.7c-48.7 1.8-169.5 15.5-169.5 117.5 0 109.5 138.3 114 183.5 43.2 6.5 10.2 35.4 37.5 45.3 46.8l56.8-56S341 288.9 341 261.4V114.3C341 89 316.5 32 228.7 32 140.7 32 94 87 94 136.3l73.5 6.8c16.3-49.5 54.2-49.5 54.2-49.5 40.7-.1 35.5 29.8 35.5 69.1zm0 86.8c0 80-84.2 68-84.2 17.2 0-47.2 50.5-56.7 84.2-57.8v40.6zm136 163.5c-7.7 10-70 67-174.5 67S34.2 408.5 9.7 379c-6.8-7.7 1-11.3 5.5-8.3C88.5 415.2 203 488.5 387.7 401c7.5-3.7 13.3 2 5.5 12zm39.8 2.2c-6.5 15.8-16 26.8-21.2 31-5.5 4.5-9.5 2.7-6.5-3.8s19.3-46.5 12.7-55c-6.5-8.3-37-4.3-48-3.2-10.8 1-13 2-14-.3-2.3-5.7 21.7-15.5 37.5-17.5 15.7-1.8 41-.8 46 5.7 3.7 5.1 0 27.1-6.5 43.1z"], - "unsplash": [448, 512, [], "e07c", "M448,230.17V480H0V230.17H141.13V355.09H306.87V230.17ZM306.87,32H141.13V156.91H306.87Z"], - "yarn": [496, 512, [], "f7e3", "M393.9 345.2c-39 9.3-48.4 32.1-104 47.4 0 0-2.7 4-10.4 5.8-13.4 3.3-63.9 6-68.5 6.1-12.4.1-19.9-3.2-22-8.2-6.4-15.3 9.2-22 9.2-22-8.1-5-9-9.9-9.8-8.1-2.4 5.8-3.6 20.1-10.1 26.5-8.8 8.9-25.5 5.9-35.3.8-10.8-5.7.8-19.2.8-19.2s-5.8 3.4-10.5-3.6c-6-9.3-17.1-37.3 11.5-62-1.3-10.1-4.6-53.7 40.6-85.6 0 0-20.6-22.8-12.9-43.3 5-13.4 7-13.3 8.6-13.9 5.7-2.2 11.3-4.6 15.4-9.1 20.6-22.2 46.8-18 46.8-18s12.4-37.8 23.9-30.4c3.5 2.3 16.3 30.6 16.3 30.6s13.6-7.9 15.1-5c8.2 16 9.2 46.5 5.6 65.1-6.1 30.6-21.4 47.1-27.6 57.5-1.4 2.4 16.5 10 27.8 41.3 10.4 28.6 1.1 52.7 2.8 55.3.8 1.4 13.7.8 36.4-13.2 12.8-7.9 28.1-16.9 45.4-17 16.7-.5 17.6 19.2 4.9 22.2zM496 256c0 136.9-111.1 248-248 248S0 392.9 0 256 111.1 8 248 8s248 111.1 248 248zm-79.3 75.2c-1.7-13.6-13.2-23-28-22.8-22 .3-40.5 11.7-52.8 19.2-4.8 3-8.9 5.2-12.4 6.8 3.1-44.5-22.5-73.1-28.7-79.4 7.8-11.3 18.4-27.8 23.4-53.2 4.3-21.7 3-55.5-6.9-74.5-1.6-3.1-7.4-11.2-21-7.4-9.7-20-13-22.1-15.6-23.8-1.1-.7-23.6-16.4-41.4 28-12.2.9-31.3 5.3-47.5 22.8-2 2.2-5.9 3.8-10.1 5.4h.1c-8.4 3-12.3 9.9-16.9 22.3-6.5 17.4.2 34.6 6.8 45.7-17.8 15.9-37 39.8-35.7 82.5-34 36-11.8 73-5.6 79.6-1.6 11.1 3.7 19.4 12 23.8 12.6 6.7 30.3 9.6 43.9 2.8 4.9 5.2 13.8 10.1 30 10.1 6.8 0 58-2.9 72.6-6.5 6.8-1.6 11.5-4.5 14.6-7.1 9.8-3.1 36.8-12.3 62.2-28.7 18-11.7 24.2-14.2 37.6-17.4 12.9-3.2 21-15.1 19.4-28.2z"], - "square-steam": [448, 512, ["steam-square"], "f1b7", "M165.6 309.1c18.6 7.7 27.3 28.9 19.6 47.4s-29 27.2-47.6 19.4l-28.5-11.8c5 10.6 13.8 19.4 25.4 24.2c25.2 10.5 54.1-1.4 64.6-26.5c5.1-12.1 5.1-25.5 .1-37.7c-5.1-12.1-14.5-21.6-26.7-26.7c-12.1-5-25-4.8-36.4-.5l29.5 12.2zM448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V240.7l116.6 48.1c12-8.2 26.2-12.1 40.7-11.3l55.4-80.2v-1.1c0-48.2 39.3-87.5 87.6-87.5s87.6 39.3 87.6 87.5c0 49.2-40.9 88.7-89.6 87.5l-79 56.3c1.6 38.5-29.1 68.8-65.7 68.8c-31.8 0-58.5-22.7-64.5-52.7L0 319.2V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM241.9 196.2a58.4 58.4 0 1 0 116.8 0 58.4 58.4 0 1 0 -116.8 0zm14.6-.1a43.9 43.9 0 1 1 87.8 0 43.9 43.9 0 1 1 -87.8 0z"], - "500px": [448, 512, [], "f26e", "M103.3 344.3c-6.5-14.2-6.9-18.3 7.4-23.1 25.6-8 8 9.2 43.2 49.2h.3v-93.9c1.2-50.2 44-92.2 97.7-92.2 53.9 0 97.7 43.5 97.7 96.8 0 63.4-60.8 113.2-128.5 93.3-10.5-4.2-2.1-31.7 8.5-28.6 53 0 89.4-10.1 89.4-64.4 0-61-77.1-89.6-116.9-44.6-23.5 26.4-17.6 42.1-17.6 157.6 50.7 31 118.3 22 160.4-20.1 24.8-24.8 38.5-58 38.5-93 0-35.2-13.8-68.2-38.8-93.3-24.8-24.8-57.8-38.5-93.3-38.5s-68.8 13.8-93.5 38.5c-.3.3-16 16.5-21.2 23.9l-.5.6c-3.3 4.7-6.3 9.1-20.1 6.1-6.9-1.7-14.3-5.8-14.3-11.8V20c0-5 3.9-10.5 10.5-10.5h241.3c8.3 0 8.3 11.6 8.3 15.1 0 3.9 0 15.1-8.3 15.1H130.3v132.9h.3c104.2-109.8 282.8-36 282.8 108.9 0 178.1-244.8 220.3-310.1 62.8zm63.3-260.8c-.5 4.2 4.6 24.5 14.6 20.6C306 56.6 384 144.5 390.6 144.5c4.8 0 22.8-15.3 14.3-22.8-93.2-89-234.5-57-238.3-38.2zM393 414.7C283 524.6 94 475.5 61 310.5c0-12.2-30.4-7.4-28.9 3.3 24 173.4 246 256.9 381.6 121.3 6.9-7.8-12.6-28.4-20.7-20.4zM213.6 306.6c0 4 4.3 7.3 5.5 8.5 3 3 6.1 4.4 8.5 4.4 3.8 0 2.6.2 22.3-19.5 19.6 19.3 19.1 19.5 22.3 19.5 5.4 0 18.5-10.4 10.7-18.2L265.6 284l18.2-18.2c6.3-6.8-10.1-21.8-16.2-15.7L249.7 268c-18.6-18.8-18.4-19.5-21.5-19.5-5 0-18 11.7-12.4 17.3L234 284c-18.1 17.9-20.4 19.2-20.4 22.6z"], - "square-vimeo": [448, 512, ["vimeo-square"], "f194", "M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM318.5 309.5C275 366 238.2 394.3 208.1 394.3c-18.7 0-34.4-17.2-47.3-51.6c-3.8-13.9-7.3-26.9-10.5-39c-18.2-68.3-28.6-107.4-46.2-107.4c-2.4 0-10.8 5-25.1 15.1L64 192c7-6.1 13.9-12.4 20.6-18.5c29.1-26.3 55.6-50.3 73.5-51.9c24.9-2.4 40.2 14.6 46 51.1c20.5 129.6 29.6 149.2 66.8 90.5c13.4-21.2 20.6-37.2 21.5-48.3c3.4-32.8-25.6-30.6-45.2-22.2c15.7-51.5 45.8-76.5 90.1-75.1c32.9 1 48.4 22.4 46.5 64c-1.4 31.1-23.2 73.8-65.3 127.9z"], - "asymmetrik": [576, 512, [], "f372", "M517.5 309.2c38.8-40 58.1-80 58.5-116.1.8-65.5-59.4-118.2-169.4-135C277.9 38.4 118.1 73.6 0 140.5 52 114 110.6 92.3 170.7 82.3c74.5-20.5 153-25.4 221.3-14.8C544.5 91.3 588.8 195 490.8 299.2c-10.2 10.8-22 21.1-35 30.6L304.9 103.4 114.7 388.9c-65.6-29.4-76.5-90.2-19.1-151.2 20.8-22.2 48.3-41.9 79.5-58.1 20-12.2 39.7-22.6 62-30.7-65.1 20.3-122.7 52.9-161.6 92.9-27.7 28.6-41.4 57.1-41.7 82.9-.5 35.1 23.4 65.1 68.4 83l-34.5 51.7h101.6l22-34.4c22.2 1 45.3 0 68.6-2.7l-22.8 37.1h135.5L340 406.3c18.6-5.3 36.9-11.5 54.5-18.7l45.9 71.8H542L468.6 349c18.5-12.1 35-25.5 48.9-39.8zm-187.6 80.5l-25-40.6-32.7 53.3c-23.4 3.5-46.7 5.1-69.2 4.4l101.9-159.3 78.7 123c-17.2 7.4-35.3 13.9-53.7 19.2z"], - "font-awesome": [512, 512, [62501, 62694, "font-awesome-flag", "font-awesome-logo-full"], "f2b4", "M91.7 96C106.3 86.8 116 70.5 116 52C116 23.3 92.7 0 64 0S12 23.3 12 52c0 16.7 7.8 31.5 20 41l0 3 0 352 0 64 64 0 0-64 373.6 0c14.6 0 26.4-11.8 26.4-26.4c0-3.7-.8-7.3-2.3-10.7L432 272l61.7-138.9c1.5-3.4 2.3-7 2.3-10.7c0-14.6-11.8-26.4-26.4-26.4L91.7 96z"], - "gratipay": [496, 512, [], "f184", "M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm114.6 226.4l-113 152.7-112.7-152.7c-8.7-11.9-19.1-50.4 13.6-72 28.1-18.1 54.6-4.2 68.5 11.9 15.9 17.9 46.6 16.9 61.7 0 13.9-16.1 40.4-30 68.1-11.9 32.9 21.6 22.6 60 13.8 72z"], - "apple": [384, 512, [], "f179", "M318.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C63.3 141.2 4 184.8 4 273.5q0 39.3 14.4 81.2c12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z"], - "hive": [512, 512, [], "e07f", "M260.353,254.878,131.538,33.1a2.208,2.208,0,0,0-3.829.009L.3,254.887A2.234,2.234,0,0,0,.3,257.122L129.116,478.9a2.208,2.208,0,0,0,3.83-.009L260.358,257.113A2.239,2.239,0,0,0,260.353,254.878Zm39.078-25.713a2.19,2.19,0,0,0,1.9,1.111h66.509a2.226,2.226,0,0,0,1.9-3.341L259.115,33.111a2.187,2.187,0,0,0-1.9-1.111H190.707a2.226,2.226,0,0,0-1.9,3.341ZM511.7,254.886,384.9,33.112A2.2,2.2,0,0,0,382.99,32h-66.6a2.226,2.226,0,0,0-1.906,3.34L440.652,256,314.481,476.66a2.226,2.226,0,0,0,1.906,3.34h66.6a2.2,2.2,0,0,0,1.906-1.112L511.7,257.114A2.243,2.243,0,0,0,511.7,254.886ZM366.016,284.917H299.508a2.187,2.187,0,0,0-1.9,1.111l-108.8,190.631a2.226,2.226,0,0,0,1.9,3.341h66.509a2.187,2.187,0,0,0,1.9-1.111l108.8-190.631A2.226,2.226,0,0,0,366.016,284.917Z"], - "gitkraken": [592, 512, [], "f3a6", "M565.7 118.1c-2.3-6.1-9.3-9.2-15.3-6.6-5.7 2.4-8.5 8.9-6.3 14.6 10.9 29 16.9 60.5 16.9 93.3 0 134.6-100.3 245.7-230.2 262.7V358.4c7.9-1.5 15.5-3.6 23-6.2v104c106.7-25.9 185.9-122.1 185.9-236.8 0-91.8-50.8-171.8-125.8-213.3-5.7-3.2-13-.9-15.9 5-2.7 5.5-.6 12.2 4.7 15.1 67.9 37.6 113.9 110 113.9 193.2 0 93.3-57.9 173.1-139.8 205.4v-92.2c14.2-4.5 24.9-17.7 24.9-33.5 0-13.1-6.8-24.4-17.3-30.5 8.3-79.5 44.5-58.6 44.5-83.9V170c0-38-87.9-161.8-129-164.7-2.5-.2-5-.2-7.6 0C251.1 8.3 163.2 132 163.2 170v14.8c0 25.3 36.3 4.3 44.5 83.9-10.6 6.1-17.3 17.4-17.3 30.5 0 15.8 10.6 29 24.8 33.5v92.2c-81.9-32.2-139.8-112-139.8-205.4 0-83.1 46-155.5 113.9-193.2 5.4-3 7.4-9.6 4.7-15.1-2.9-5.9-10.1-8.2-15.9-5-75 41.5-125.8 121.5-125.8 213.3 0 114.7 79.2 210.8 185.9 236.8v-104c7.6 2.5 15.1 4.6 23 6.2v123.7C131.4 465.2 31 354.1 31 219.5c0-32.8 6-64.3 16.9-93.3 2.2-5.8-.6-12.2-6.3-14.6-6-2.6-13 .4-15.3 6.6C14.5 149.7 8 183.8 8 219.5c0 155.1 122.6 281.6 276.3 287.8V361.4c6.8.4 15 .5 23.4 0v145.8C461.4 501.1 584 374.6 584 219.5c0-35.7-6.5-69.8-18.3-101.4zM365.9 275.5c13 0 23.7 10.5 23.7 23.7 0 13.1-10.6 23.7-23.7 23.7-13 0-23.7-10.5-23.7-23.7 0-13.1 10.6-23.7 23.7-23.7zm-139.8 47.3c-13.2 0-23.7-10.7-23.7-23.7s10.5-23.7 23.7-23.7c13.1 0 23.7 10.6 23.7 23.7 0 13-10.5 23.7-23.7 23.7z"], - "keybase": [448, 512, [], "f4f5", "M286.17 419a18 18 0 1 0 18 18 18 18 0 0 0-18-18zm111.92-147.6c-9.5-14.62-39.37-52.45-87.26-73.71q-9.1-4.06-18.38-7.27a78.43 78.43 0 0 0-47.88-104.13c-12.41-4.1-23.33-6-32.41-5.77-.6-2-1.89-11 9.4-35L198.66 32l-5.48 7.56c-8.69 12.06-16.92 23.55-24.34 34.89a51 51 0 0 0-8.29-1.25c-41.53-2.45-39-2.33-41.06-2.33-50.61 0-50.75 52.12-50.75 45.88l-2.36 36.68c-1.61 27 19.75 50.21 47.63 51.85l8.93.54a214 214 0 0 0-46.29 35.54C14 304.66 14 374 14 429.77v33.64l23.32-29.8a148.6 148.6 0 0 0 14.56 37.56c5.78 10.13 14.87 9.45 19.64 7.33 4.21-1.87 10-6.92 3.75-20.11a178.29 178.29 0 0 1-15.76-53.13l46.82-59.83-24.66 74.11c58.23-42.4 157.38-61.76 236.25-38.59 34.2 10.05 67.45.69 84.74-23.84.72-1 1.2-2.16 1.85-3.22a156.09 156.09 0 0 1 2.8 28.43c0 23.3-3.69 52.93-14.88 81.64-2.52 6.46 1.76 14.5 8.6 15.74 7.42 1.57 15.33-3.1 18.37-11.15C429 443 434 414 434 382.32c0-38.58-13-77.46-35.91-110.92zM142.37 128.58l-15.7-.93-1.39 21.79 13.13.78a93 93 0 0 0 .32 19.57l-22.38-1.34a12.28 12.28 0 0 1-11.76-12.79L107 119c1-12.17 13.87-11.27 13.26-11.32l29.11 1.73a144.35 144.35 0 0 0-7 19.17zm148.42 172.18a10.51 10.51 0 0 1-14.35-1.39l-9.68-11.49-34.42 27a8.09 8.09 0 0 1-11.13-1.08l-15.78-18.64a7.38 7.38 0 0 1 1.34-10.34l34.57-27.18-14.14-16.74-17.09 13.45a7.75 7.75 0 0 1-10.59-1s-3.72-4.42-3.8-4.53a7.38 7.38 0 0 1 1.37-10.34L214 225.19s-18.51-22-18.6-22.14a9.56 9.56 0 0 1 1.74-13.42 10.38 10.38 0 0 1 14.3 1.37l81.09 96.32a9.58 9.58 0 0 1-1.74 13.44zM187.44 419a18 18 0 1 0 18 18 18 18 0 0 0-18-18z"], - "apple-pay": [640, 512, [], "f415", "M116.9 158.5c-7.5 8.9-19.5 15.9-31.5 14.9-1.5-12 4.4-24.8 11.3-32.6 7.5-9.1 20.6-15.6 31.3-16.1 1.2 12.4-3.7 24.7-11.1 33.8m10.9 17.2c-17.4-1-32.3 9.9-40.5 9.9-8.4 0-21-9.4-34.8-9.1-17.9.3-34.5 10.4-43.6 26.5-18.8 32.3-4.9 80 13.3 106.3 8.9 13 19.5 27.3 33.5 26.8 13.3-.5 18.5-8.6 34.5-8.6 16.1 0 20.8 8.6 34.8 8.4 14.5-.3 23.6-13 32.5-26 10.1-14.8 14.3-29.1 14.5-29.9-.3-.3-28-10.9-28.3-42.9-.3-26.8 21.9-39.5 22.9-40.3-12.5-18.6-32-20.6-38.8-21.1m100.4-36.2v194.9h30.3v-66.6h41.9c38.3 0 65.1-26.3 65.1-64.3s-26.4-64-64.1-64h-73.2zm30.3 25.5h34.9c26.3 0 41.3 14 41.3 38.6s-15 38.8-41.4 38.8h-34.8V165zm162.2 170.9c19 0 36.6-9.6 44.6-24.9h.6v23.4h28v-97c0-28.1-22.5-46.3-57.1-46.3-32.1 0-55.9 18.4-56.8 43.6h27.3c2.3-12 13.4-19.9 28.6-19.9 18.5 0 28.9 8.6 28.9 24.5v10.8l-37.8 2.3c-35.1 2.1-54.1 16.5-54.1 41.5.1 25.2 19.7 42 47.8 42zm8.2-23.1c-16.1 0-26.4-7.8-26.4-19.6 0-12.3 9.9-19.4 28.8-20.5l33.6-2.1v11c0 18.2-15.5 31.2-36 31.2zm102.5 74.6c29.5 0 43.4-11.3 55.5-45.4L640 193h-30.8l-35.6 115.1h-.6L537.4 193h-31.6L557 334.9l-2.8 8.6c-4.6 14.6-12.1 20.3-25.5 20.3-2.4 0-7-.3-8.9-.5v23.4c1.8.4 9.3.7 11.6.7z"], - "padlet": [640, 512, [], "e4a0", "M297.9 0L298 .001C305.6 .1078 312.4 4.72 315.5 11.78L447.5 320.3L447.8 320.2L448 320.6L445.2 330.6L402.3 488.6C398.6 504.8 382.6 514.9 366.5 511.2L298.1 495.6L229.6 511.2C213.5 514.9 197.5 504.8 193.8 488.6L150.9 330.6L148.2 320.6L148.3 320.2L280.4 11.78C283.4 4.797 290.3 .1837 297.9 .0006L297.9 0zM160.1 322.1L291.1 361.2L298 483.7L305.9 362.2L436.5 322.9L436.7 322.8L305.7 347.9L297.1 27.72L291.9 347.9L160.1 322.1zM426 222.6L520.4 181.6H594.2L437.2 429.2L468.8 320.2L426 222.6zM597.5 181.4L638.9 257.6C642.9 265.1 635 273.5 627.3 269.8L579.7 247.1L597.5 181.4zM127.3 318.5L158.7 430L1.61 154.5C-4.292 144.1 7.128 132.5 17.55 138.3L169.4 222.5L127.3 318.5z"], - "amazon-pay": [640, 512, [], "f42c", "M14 325.3c2.3-4.2 5.2-4.9 9.7-2.5 10.4 5.6 20.6 11.4 31.2 16.7a595.88 595.88 0 0 0 127.4 46.3 616.61 616.61 0 0 0 63.2 11.8 603.33 603.33 0 0 0 95 5.2c17.4-.4 34.8-1.8 52.1-3.8a603.66 603.66 0 0 0 163.3-42.8c2.9-1.2 5.9-2 9.1-1.2 6.7 1.8 9 9 4.1 13.9a70 70 0 0 1-9.6 7.4c-30.7 21.1-64.2 36.4-99.6 47.9a473.31 473.31 0 0 1-75.1 17.6 431 431 0 0 1-53.2 4.8 21.3 21.3 0 0 0-2.5.3H308a21.3 21.3 0 0 0-2.5-.3c-3.6-.2-7.2-.3-10.7-.4a426.3 426.3 0 0 1-50.4-5.3A448.4 448.4 0 0 1 164 420a443.33 443.33 0 0 1-145.6-87c-1.8-1.6-3-3.8-4.4-5.7zM172 65.1l-4.3.6a80.92 80.92 0 0 0-38 15.1c-2.4 1.7-4.6 3.5-7.1 5.4a4.29 4.29 0 0 1-.4-1.4c-.4-2.7-.8-5.5-1.3-8.2-.7-4.6-3-6.6-7.6-6.6h-11.5c-6.9 0-8.2 1.3-8.2 8.2v209.3c0 1 0 2 .1 3 .2 3 2 4.9 4.9 5 7 .1 14.1.1 21.1 0 2.9 0 4.7-2 5-5 .1-1 .1-2 .1-3v-72.4c1.1.9 1.7 1.4 2.2 1.9 17.9 14.9 38.5 19.8 61 15.4 20.4-4 34.6-16.5 43.8-34.9 7-13.9 9.9-28.7 10.3-44.1.5-17.1-1.2-33.9-8.1-49.8-8.5-19.6-22.6-32.5-43.9-36.9-3.2-.7-6.5-1-9.8-1.5-2.8-.1-5.5-.1-8.3-.1zM124.6 107a3.48 3.48 0 0 1 1.7-3.3c13.7-9.5 28.8-14.5 45.6-13.2 14.9 1.1 27.1 8.4 33.5 25.9 3.9 10.7 4.9 21.8 4.9 33 0 10.4-.8 20.6-4 30.6-6.8 21.3-22.4 29.4-42.6 28.5-14-.6-26.2-6-37.4-13.9a3.57 3.57 0 0 1-1.7-3.3c.1-14.1 0-28.1 0-42.2s.1-28 0-42.1zm205.7-41.9c-1 .1-2 .3-2.9.4a148 148 0 0 0-28.9 4.1c-6.1 1.6-12 3.8-17.9 5.8-3.6 1.2-5.4 3.8-5.3 7.7.1 3.3-.1 6.6 0 9.9.1 4.8 2.1 6.1 6.8 4.9 7.8-2 15.6-4.2 23.5-5.7 12.3-2.3 24.7-3.3 37.2-1.4 6.5 1 12.6 2.9 16.8 8.4 3.7 4.8 5.1 10.5 5.3 16.4.3 8.3.2 16.6.3 24.9a7.84 7.84 0 0 1-.2 1.4c-.5-.1-.9 0-1.3-.1a180.56 180.56 0 0 0-32-4.9c-11.3-.6-22.5.1-33.3 3.9-12.9 4.5-23.3 12.3-29.4 24.9-4.7 9.8-5.4 20.2-3.9 30.7 2 14 9 24.8 21.4 31.7 11.9 6.6 24.8 7.4 37.9 5.4 15.1-2.3 28.5-8.7 40.3-18.4a7.36 7.36 0 0 1 1.6-1.1c.6 3.8 1.1 7.4 1.8 11 .6 3.1 2.5 5.1 5.4 5.2 5.4.1 10.9.1 16.3 0a4.84 4.84 0 0 0 4.8-4.7 26.2 26.2 0 0 0 .1-2.8v-106a80 80 0 0 0-.9-12.9c-1.9-12.9-7.4-23.5-19-30.4-6.7-4-14.1-6-21.8-7.1-3.6-.5-7.2-.8-10.8-1.3-3.9.1-7.9.1-11.9.1zm35 127.7a3.33 3.33 0 0 1-1.5 3c-11.2 8.1-23.5 13.5-37.4 14.9-5.7.6-11.4.4-16.8-1.8a20.08 20.08 0 0 1-12.4-13.3 32.9 32.9 0 0 1-.1-19.4c2.5-8.3 8.4-13 16.4-15.6a61.33 61.33 0 0 1 24.8-2.2c8.4.7 16.6 2.3 25 3.4 1.6.2 2.1 1 2.1 2.6-.1 4.8 0 9.5 0 14.3s-.2 9.4-.1 14.1zm259.9 129.4c-1-5-4.8-6.9-9.1-8.3a88.42 88.42 0 0 0-21-3.9 147.32 147.32 0 0 0-39.2 1.9c-14.3 2.7-27.9 7.3-40 15.6a13.75 13.75 0 0 0-3.7 3.5 5.11 5.11 0 0 0-.5 4c.4 1.5 2.1 1.9 3.6 1.8a16.2 16.2 0 0 0 2.2-.1c7.8-.8 15.5-1.7 23.3-2.5 11.4-1.1 22.9-1.8 34.3-.9a71.64 71.64 0 0 1 14.4 2.7c5.1 1.4 7.4 5.2 7.6 10.4.4 8-1.4 15.7-3.5 23.3-4.1 15.4-10 30.3-15.8 45.1a17.6 17.6 0 0 0-1 3c-.5 2.9 1.2 4.8 4.1 4.1a10.56 10.56 0 0 0 4.8-2.5 145.91 145.91 0 0 0 12.7-13.4c12.8-16.4 20.3-35.3 24.7-55.6.8-3.6 1.4-7.3 2.1-10.9v-17.3zM493.1 199q-19.35-53.55-38.7-107.2c-2-5.7-4.2-11.3-6.3-16.9-1.1-2.9-3.2-4.8-6.4-4.8-7.6-.1-15.2-.2-22.9-.1-2.5 0-3.7 2-3.2 4.5a43.1 43.1 0 0 0 1.9 6.1q29.4 72.75 59.1 145.5c1.7 4.1 2.1 7.6.2 11.8-3.3 7.3-5.9 15-9.3 22.3-3 6.5-8 11.4-15.2 13.3a42.13 42.13 0 0 1-15.4 1.1c-2.5-.2-5-.8-7.5-1-3.4-.2-5.1 1.3-5.2 4.8q-.15 5 0 9.9c.1 5.5 2 8 7.4 8.9a108.18 108.18 0 0 0 16.9 2c17.1.4 30.7-6.5 39.5-21.4a131.63 131.63 0 0 0 9.2-18.4q35.55-89.7 70.6-179.6a26.62 26.62 0 0 0 1.6-5.5c.4-2.8-.9-4.4-3.7-4.4-6.6-.1-13.3 0-19.9 0a7.54 7.54 0 0 0-7.7 5.2c-.5 1.4-1.1 2.7-1.6 4.1l-34.8 100c-2.5 7.2-5.1 14.5-7.7 22.2-.4-1.1-.6-1.7-.9-2.4z"], - "square-github": [448, 512, ["github-square"], "f092", "M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM265.8 407.7c0-1.8 0-6 .1-11.6c.1-11.4 .1-28.8 .1-43.7c0-15.6-5.2-25.5-11.3-30.7c37-4.1 76-9.2 76-73.1c0-18.2-6.5-27.3-17.1-39c1.7-4.3 7.4-22-1.7-45c-13.9-4.3-45.7 17.9-45.7 17.9c-13.2-3.7-27.5-5.6-41.6-5.6s-28.4 1.9-41.6 5.6c0 0-31.8-22.2-45.7-17.9c-9.1 22.9-3.5 40.6-1.7 45c-10.6 11.7-15.6 20.8-15.6 39c0 63.6 37.3 69 74.3 73.1c-4.8 4.3-9.1 11.7-10.6 22.3c-9.5 4.3-33.8 11.7-48.3-13.9c-9.1-15.8-25.5-17.1-25.5-17.1c-16.2-.2-1.1 10.2-1.1 10.2c10.8 5 18.4 24.2 18.4 24.2c9.7 29.7 56.1 19.7 56.1 19.7c0 9 .1 21.7 .1 30.6c0 4.8 .1 8.6 .1 10c0 4.3-3 9.5-11.5 8C106 393.6 59.8 330.8 59.8 257.4c0-91.8 70.2-161.5 162-161.5s166.2 69.7 166.2 161.5c.1 73.4-44.7 136.3-110.7 158.3c-8.4 1.5-11.5-3.7-11.5-8zm-90.5-54.8c-.2-1.5 1.1-2.8 3-3.2c1.9-.2 3.7 .6 3.9 1.9c.3 1.3-1 2.6-3 3c-1.9 .4-3.7-.4-3.9-1.7zm-9.1 3.2c-2.2 .2-3.7-.9-3.7-2.4c0-1.3 1.5-2.4 3.5-2.4c1.9-.2 3.7 .9 3.7 2.4c0 1.3-1.5 2.4-3.5 2.4zm-14.3-2.2c-1.9-.4-3.2-1.9-2.8-3.2s2.4-1.9 4.1-1.5c2 .6 3.3 2.1 2.8 3.4c-.4 1.3-2.4 1.9-4.1 1.3zm-12.5-7.3c-1.5-1.3-1.9-3.2-.9-4.1c.9-1.1 2.8-.9 4.3 .6c1.3 1.3 1.8 3.3 .9 4.1c-.9 1.1-2.8 .9-4.3-.6zm-8.5-10c-1.1-1.5-1.1-3.2 0-3.9c1.1-.9 2.8-.2 3.7 1.3c1.1 1.5 1.1 3.3 0 4.1c-.9 .6-2.6 0-3.7-1.5zm-6.3-8.8c-1.1-1.3-1.3-2.8-.4-3.5c.9-.9 2.4-.4 3.5 .6c1.1 1.3 1.3 2.8 .4 3.5c-.9 .9-2.4 .4-3.5-.6zm-6-6.4c-1.3-.6-1.9-1.7-1.5-2.6c.4-.6 1.5-.9 2.8-.4c1.3 .7 1.9 1.8 1.5 2.6c-.4 .9-1.7 1.1-2.8 .4z"], - "stumbleupon": [512, 512, [], "f1a4", "M502.9 266v69.7c0 62.1-50.3 112.4-112.4 112.4-61.8 0-112.4-49.8-112.4-111.3v-70.2l34.3 16 51.1-15.2V338c0 14.7 12 26.5 26.7 26.5S417 352.7 417 338v-72h85.9zm-224.7-58.2l34.3 16 51.1-15.2V173c0-60.5-51.1-109-112.1-109-60.8 0-112.1 48.2-112.1 108.2v162.4c0 14.9-12 26.7-26.7 26.7S86 349.5 86 334.6V266H0v69.7C0 397.7 50.3 448 112.4 448c61.6 0 112.4-49.5 112.4-110.8V176.9c0-14.7 12-26.7 26.7-26.7s26.7 12 26.7 26.7v30.9z"], - "fedex": [640, 512, [], "f797", "M586 284.5l53.3-59.9h-62.4l-21.7 24.8-22.5-24.8H414v-16h56.1v-48.1H318.9V236h-.5c-9.6-11-21.5-14.8-35.4-14.8-28.4 0-49.8 19.4-57.3 44.9-18-59.4-97.4-57.6-121.9-14v-24.2H49v-26.2h60v-41.1H0V345h49v-77.5h48.9c-1.5 5.7-2.3 11.8-2.3 18.2 0 73.1 102.6 91.4 130.2 23.7h-42c-14.7 20.9-45.8 8.9-45.8-14.6h85.5c3.7 30.5 27.4 56.9 60.1 56.9 14.1 0 27-6.9 34.9-18.6h.5V345h212.2l22.1-25 22.3 25H640l-54-60.5zm-446.7-16.6c6.1-26.3 41.7-25.6 46.5 0h-46.5zm153.4 48.9c-34.6 0-34-62.8 0-62.8 32.6 0 34.5 62.8 0 62.8zm167.8 19.1h-94.4V169.4h95v30.2H405v33.9h55.5v28.1h-56.1v44.7h56.1v29.6zm-45.9-39.8v-24.4h56.1v-44l50.7 57-50.7 57v-45.6h-56.1zm138.6 10.3l-26.1 29.5H489l45.6-51.2-45.6-51.2h39.7l26.6 29.3 25.6-29.3h38.5l-45.4 51 46 51.4h-40.5l-26.3-29.5z"], - "phoenix-framework": [640, 512, [], "f3dc", "M212.9 344.3c3.8-.1 22.8-1.4 25.6-2.2-2.4-2.6-43.6-1-68-49.6-4.3-8.6-7.5-17.6-6.4-27.6 2.9-25.5 32.9-30 52-18.5 36 21.6 63.3 91.3 113.7 97.5 37 4.5 84.6-17 108.2-45.4-.6-.1-.8-.2-1-.1-.4.1-.8.2-1.1.3-33.3 12.1-94.3 9.7-134.7-14.8-37.6-22.8-53.1-58.7-51.8-74.6 1.8-21.3 22.9-23.2 35.9-19.6 14.4 3.9 24.4 17.6 38.9 27.4 15.6 10.4 32.9 13.7 51.3 10.3 14.9-2.7 34.4-12.3 36.5-14.5-1.1-.1-1.8-.1-2.5-.2-6.2-.6-12.4-.8-18.5-1.7C279.8 194.5 262.1 47.4 138.5 37.9 94.2 34.5 39.1 46 2.2 72.9c-.8.6-1.5 1.2-2.2 1.8.1.2.1.3.2.5.8 0 1.6-.1 2.4-.2 6.3-1 12.5-.8 18.7.3 23.8 4.3 47.7 23.1 55.9 76.5 5.3 34.3-.7 50.8 8 86.1 19 77.1 91 107.6 127.7 106.4zM75.3 64.9c-.9-1-.9-1.2-1.3-2 12.1-2.6 24.2-4.1 36.6-4.8-1.1 14.7-22.2 21.3-35.3 6.8zm196.9 350.5c-42.8 1.2-92-26.7-123.5-61.4-4.6-5-16.8-20.2-18.6-23.4l.4-.4c6.6 4.1 25.7 18.6 54.8 27 24.2 7 48.1 6.3 71.6-3.3 22.7-9.3 41-.5 43.1 2.9-18.5 3.8-20.1 4.4-24 7.9-5.1 4.4-4.6 11.7 7 17.2 26.2 12.4 63-2.8 97.2 25.4 2.4 2 8.1 7.8 10.1 10.7-.1.2-.3.3-.4.5-4.8-1.5-16.4-7.5-40.2-9.3-24.7-2-46.3 5.3-77.5 6.2zm174.8-252c16.4-5.2 41.3-13.4 66.5-3.3 16.1 6.5 26.2 18.7 32.1 34.6 3.5 9.4 5.1 19.7 5.1 28.7-.2 0-.4 0-.6.1-.2-.4-.4-.9-.5-1.3-5-22-29.9-43.8-67.6-29.9-50.2 18.6-130.4 9.7-176.9-48-.7-.9-2.4-1.7-1.3-3.2.1-.2 2.1.6 3 1.3 18.1 13.4 38.3 21.9 60.3 26.2 30.5 6.1 54.6 2.9 79.9-5.2zm102.7 117.5c-32.4.2-33.8 50.1-103.6 64.4-18.2 3.7-38.7 4.6-44.9 4.2v-.4c2.8-1.5 14.7-2.6 29.7-16.6 7.9-7.3 15.3-15.1 22.8-22.9 19.5-20.2 41.4-42.2 81.9-39 23.1 1.8 29.3 8.2 36.1 12.7.3.2.4.5.7.9-.5 0-.7.1-.9 0-7-2.7-14.3-3.3-21.8-3.3zm-12.3-24.1c-.1.2-.1.4-.2.6-28.9-4.4-48-7.9-68.5 4-17 9.9-31.4 20.5-62 24.4-27.1 3.4-45.1 2.4-66.1-8-.3-.2-.6-.4-1-.6 0-.2.1-.3.1-.5 24.9 3.8 36.4 5.1 55.5-5.8 22.3-12.9 40.1-26.6 71.3-31 29.6-4.1 51.3 2.5 70.9 16.9zM268.6 97.3c-.6-.6-1.1-1.2-2.1-2.3 7.6 0 29.7-1.2 53.4 8.4 19.7 8 32.2 21 50.2 32.9 11.1 7.3 23.4 9.3 36.4 8.1 4.3-.4 8.5-1.2 12.8-1.7.4-.1.9 0 1.5.3-.6.4-1.2.9-1.8 1.2-8.1 4-16.7 6.3-25.6 7.1-26.1 2.6-50.3-3.7-73.4-15.4-19.3-9.9-36.4-22.9-51.4-38.6zM640 335.7c-3.5 3.1-22.7 11.6-42.7 5.3-12.3-3.9-19.5-14.9-31.6-24.1-10-7.6-20.9-7.9-28.1-8.4.6-.8.9-1.2 1.2-1.4 14.8-9.2 30.5-12.2 47.3-6.5 12.5 4.2 19.2 13.5 30.4 24.2 10.8 10.4 21 9.9 23.1 10.5.1-.1.2 0 .4.4zm-212.5 137c2.2 1.2 1.6 1.5 1.5 2-18.5-1.4-33.9-7.6-46.8-22.2-21.8-24.7-41.7-27.9-48.6-29.7.5-.2.8-.4 1.1-.4 13.1.1 26.1.7 38.9 3.9 25.3 6.4 35 25.4 41.6 35.3 3.2 4.8 7.3 8.3 12.3 11.1z"], - "shopify": [448, 512, [], "e057", "M388.32,104.1a4.66,4.66,0,0,0-4.4-4c-2,0-37.23-.8-37.23-.8s-21.61-20.82-29.62-28.83V503.2L442.76,472S388.72,106.5,388.32,104.1ZM288.65,70.47a116.67,116.67,0,0,0-7.21-17.61C271,32.85,255.42,22,237,22a15,15,0,0,0-4,.4c-.4-.8-1.2-1.2-1.6-2C223.4,11.63,213,7.63,200.58,8c-24,.8-48,18-67.25,48.83-13.61,21.62-24,48.84-26.82,70.06-27.62,8.4-46.83,14.41-47.23,14.81-14,4.4-14.41,4.8-16,18-1.2,10-38,291.82-38,291.82L307.86,504V65.67a41.66,41.66,0,0,0-4.4.4S297.86,67.67,288.65,70.47ZM233.41,87.69c-16,4.8-33.63,10.4-50.84,15.61,4.8-18.82,14.41-37.63,25.62-50,4.4-4.4,10.41-9.61,17.21-12.81C232.21,54.86,233.81,74.48,233.41,87.69ZM200.58,24.44A27.49,27.49,0,0,1,215,28c-6.4,3.2-12.81,8.41-18.81,14.41-15.21,16.42-26.82,42-31.62,66.45-14.42,4.41-28.83,8.81-42,12.81C131.33,83.28,163.75,25.24,200.58,24.44ZM154.15,244.61c1.6,25.61,69.25,31.22,73.25,91.66,2.8,47.64-25.22,80.06-65.65,82.47-48.83,3.2-75.65-25.62-75.65-25.62l10.4-44s26.82,20.42,48.44,18.82c14-.8,19.22-12.41,18.81-20.42-2-33.62-57.24-31.62-60.84-86.86-3.2-46.44,27.22-93.27,94.47-97.68,26-1.6,39.23,4.81,39.23,4.81L221.4,225.39s-17.21-8-37.63-6.4C154.15,221,153.75,239.8,154.15,244.61ZM249.42,82.88c0-12-1.6-29.22-7.21-43.63,18.42,3.6,27.22,24,31.23,36.43Q262.63,78.68,249.42,82.88Z"], - "neos": [512, 512, [], "f612", "M415.44 512h-95.11L212.12 357.46v91.1L125.69 512H28V29.82L68.47 0h108.05l123.74 176.13V63.45L386.69 0h97.69v461.5zM38.77 35.27V496l72-52.88V194l215.5 307.64h84.79l52.35-38.17h-78.27L69 13zm82.54 466.61l80-58.78v-101l-79.76-114.4v220.94L49 501.89h72.34zM80.63 10.77l310.6 442.57h82.37V10.77h-79.75v317.56L170.91 10.77zM311 191.65l72 102.81V15.93l-72 53v122.72z"], - "square-threads": [448, 512, [], "e619", "M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM294.2 244.3c19.5 9.3 33.7 23.5 41.2 40.9c10.4 24.3 11.4 63.9-20.2 95.4c-24.2 24.1-53.5 35-95.1 35.3h-.2c-46.8-.3-82.8-16.1-106.9-46.8C91.5 341.8 80.4 303.7 80 256v-.1-.1c.4-47.7 11.5-85.7 33-113.1c24.2-30.7 60.2-46.5 106.9-46.8h.2c46.9 .3 83.3 16 108.2 46.6c12.3 15.1 21.3 33.3 27 54.4l-26.9 7.2c-4.7-17.2-11.9-31.9-21.4-43.6c-19.4-23.9-48.7-36.1-87-36.4c-38 .3-66.8 12.5-85.5 36.2c-17.5 22.3-26.6 54.4-26.9 95.5c.3 41.1 9.4 73.3 26.9 95.5c18.7 23.8 47.4 36 85.5 36.2c34.3-.3 56.9-8.4 75.8-27.3c21.5-21.5 21.1-47.9 14.2-64c-4-9.4-11.4-17.3-21.3-23.3c-2.4 18-7.9 32.2-16.5 43.2c-11.4 14.5-27.7 22.4-48.4 23.5c-15.7 .9-30.8-2.9-42.6-10.7c-13.9-9.2-22-23.2-22.9-39.5c-1.7-32.2 23.8-55.3 63.5-57.6c14.1-.8 27.3-.2 39.5 1.9c-1.6-9.9-4.9-17.7-9.8-23.4c-6.7-7.8-17.1-11.8-30.8-11.9h-.4c-11 0-26 3.1-35.6 17.6l-23-15.8c12.8-19.4 33.6-30.1 58.5-30.1h.6c41.8 .3 66.6 26.3 69.1 71.8c1.4 .6 2.8 1.2 4.2 1.9l.1 .5zm-71.8 67.5c17-.9 36.4-7.6 39.7-48.8c-8.8-1.9-18.6-2.9-29-2.9c-3.2 0-6.4 .1-9.6 .3c-28.6 1.6-38.1 15.5-37.4 27.9c.9 16.7 19 24.5 36.4 23.6l-.1-.1z"], - "hackerrank": [512, 512, [], "f5f7", "M477.5 128C463 103.05 285.13 0 256.16 0S49.25 102.79 34.84 128s-14.49 230.8 0 256 192.38 128 221.32 128S463 409.08 477.49 384s14.51-231 .01-256zM316.13 414.22c-4 0-40.91-35.77-38-38.69.87-.87 6.26-1.48 17.55-1.83 0-26.23.59-68.59.94-86.32 0-2-.44-3.43-.44-5.85h-79.93c0 7.1-.46 36.2 1.37 72.88.23 4.54-1.58 6-5.74 5.94-10.13 0-20.27-.11-30.41-.08-4.1 0-5.87-1.53-5.74-6.11.92-33.44 3-84-.15-212.67v-3.17c-9.67-.35-16.38-1-17.26-1.84-2.92-2.92 34.54-38.69 38.49-38.69s41.17 35.78 38.27 38.69c-.87.87-7.9 1.49-16.77 1.84v3.16c-2.42 25.75-2 79.59-2.63 105.39h80.26c0-4.55.39-34.74-1.2-83.64-.1-3.39.95-5.17 4.21-5.2 11.07-.08 22.15-.13 33.23-.06 3.46 0 4.57 1.72 4.5 5.38C333 354.64 336 341.29 336 373.69c8.87.35 16.82 1 17.69 1.84 2.88 2.91-33.62 38.69-37.58 38.69z"], - "researchgate": [448, 512, [], "f4f8", "M0 32v448h448V32H0zm262.2 334.4c-6.6 3-33.2 6-50-14.2-9.2-10.6-25.3-33.3-42.2-63.6-8.9 0-14.7 0-21.4-.6v46.4c0 23.5 6 21.2 25.8 23.9v8.1c-6.9-.3-23.1-.8-35.6-.8-13.1 0-26.1.6-33.6.8v-8.1c15.5-2.9 22-1.3 22-23.9V225c0-22.6-6.4-21-22-23.9V193c25.8 1 53.1-.6 70.9-.6 31.7 0 55.9 14.4 55.9 45.6 0 21.1-16.7 42.2-39.2 47.5 13.6 24.2 30 45.6 42.2 58.9 7.2 7.8 17.2 14.7 27.2 14.7v7.3zm22.9-135c-23.3 0-32.2-15.7-32.2-32.2V167c0-12.2 8.8-30.4 34-30.4s30.4 17.9 30.4 17.9l-10.7 7.2s-5.5-12.5-19.7-12.5c-7.9 0-19.7 7.3-19.7 19.7v26.8c0 13.4 6.6 23.3 17.9 23.3 14.1 0 21.5-10.9 21.5-26.8h-17.9v-10.7h30.4c0 20.5 4.7 49.9-34 49.9zm-116.5 44.7c-9.4 0-13.6-.3-20-.8v-69.7c6.4-.6 15-.6 22.5-.6 23.3 0 37.2 12.2 37.2 34.5 0 21.9-15 36.6-39.7 36.6z"], - "swift": [448, 512, [], "f8e1", "M448 156.09c0-4.51-.08-9-.2-13.52a196.31 196.31 0 0 0-2.58-29.42 99.62 99.62 0 0 0-9.22-28A94.08 94.08 0 0 0 394.84 44a99.17 99.17 0 0 0-28-9.22 195 195 0 0 0-29.43-2.59c-4.51-.12-9-.17-13.52-.2H124.14c-4.51 0-9 .08-13.52.2-2.45.07-4.91.15-7.37.27a171.68 171.68 0 0 0-22.06 2.32 103.06 103.06 0 0 0-21.21 6.1q-3.46 1.45-6.81 3.12a94.66 94.66 0 0 0-18.39 12.32c-1.88 1.61-3.69 3.28-5.43 5A93.86 93.86 0 0 0 12 85.17a99.45 99.45 0 0 0-9.22 28 196.31 196.31 0 0 0-2.54 29.4c-.13 4.51-.18 9-.21 13.52v199.83c0 4.51.08 9 .21 13.51a196.08 196.08 0 0 0 2.58 29.42 99.3 99.3 0 0 0 9.22 28A94.31 94.31 0 0 0 53.17 468a99.47 99.47 0 0 0 28 9.21 195 195 0 0 0 29.43 2.59c4.5.12 9 .17 13.52.2H323.91c4.51 0 9-.08 13.52-.2a196.59 196.59 0 0 0 29.44-2.59 99.57 99.57 0 0 0 28-9.21A94.22 94.22 0 0 0 436 426.84a99.3 99.3 0 0 0 9.22-28 194.79 194.79 0 0 0 2.59-29.42c.12-4.5.17-9 .2-13.51V172.14c-.01-5.35-.01-10.7-.01-16.05zm-69.88 241c-20-38.93-57.23-29.27-76.31-19.47-1.72 1-3.48 2-5.25 3l-.42.25c-39.5 21-92.53 22.54-145.85-.38A234.64 234.64 0 0 1 45 290.12a230.63 230.63 0 0 0 39.17 23.37c56.36 26.4 113 24.49 153 0-57-43.85-104.6-101-141.09-147.22a197.09 197.09 0 0 1-18.78-25.9c43.7 40 112.7 90.22 137.48 104.12-52.57-55.49-98.89-123.94-96.72-121.74 82.79 83.42 159.18 130.59 159.18 130.59 2.88 1.58 5 2.85 6.73 4a127.44 127.44 0 0 0 4.16-12.47c13.22-48.33-1.66-103.58-35.31-149.2C329.61 141.75 375 229.34 356.4 303.42c-.44 1.73-.95 3.4-1.44 5.09 38.52 47.4 28.04 98.17 23.13 88.59z"], - "angular": [448, 512, [], "f420", "M185.7 268.1h76.2l-38.1-91.6-38.1 91.6zM223.8 32L16 106.4l31.8 275.7 176 97.9 176-97.9 31.8-275.7zM354 373.8h-48.6l-26.2-65.4H168.6l-26.2 65.4H93.7L223.8 81.5z"], - "speakap": [448, 512, [], "f3f3", "M64 391.78C-15.41 303.59-8 167.42 80.64 87.64s224.8-73 304.21 15.24 72 224.36-16.64 304.14c-18.74 16.87 64 43.09 42 52.26-82.06 34.21-253.91 35-346.23-67.5zm213.31-211.6l38.5-40.86c-9.61-8.89-32-26.83-76.17-27.6-52.33-.91-95.86 28.3-96.77 80-.2 11.33.29 36.72 29.42 54.83 34.46 21.42 86.52 21.51 86 52.26-.37 21.28-26.42 25.81-38.59 25.6-3-.05-30.23-.46-47.61-24.62l-40 42.61c28.16 27 59 32.62 83.49 33.05 10.23.18 96.42.33 97.84-81 .28-15.81-2.07-39.72-28.86-56.59-34.36-21.64-85-19.45-84.43-49.75.41-23.25 31-25.37 37.53-25.26.43 0 26.62.26 39.62 17.37z"], - "angrycreative": [640, 512, [], "f36e", "M640 238.2l-3.2 28.2-34.5 2.3-2 18.1 34.5-2.3-3.2 28.2-34.4 2.2-2.3 20.1 34.4-2.2-3 26.1-64.7 4.1 12.7-113.2L527 365.2l-31.9 2-23.8-117.8 30.3-2 13.6 79.4 31.7-82.4 93.1-6.2zM426.8 371.5l28.3-1.8L468 249.6l-28.4 1.9-12.8 120zM162 388.1l-19.4-36-3.5 37.4-28.2 1.7 2.7-29.1c-11 18-32 34.3-56.9 35.8C23.9 399.9-3 377 .3 339.7c2.6-29.3 26.7-62.8 67.5-65.4 37.7-2.4 47.6 23.2 51.3 28.8l2.8-30.8 38.9-2.5c20.1-1.3 38.7 3.7 42.5 23.7l2.6-26.6 64.8-4.2-2.7 27.9-36.4 2.4-1.7 17.9 36.4-2.3-2.7 27.9-36.4 2.3-1.9 19.9 36.3-2.3-2.1 20.8 55-117.2 23.8-1.6L370.4 369l8.9-85.6-22.3 1.4 2.9-27.9 75-4.9-3 28-24.3 1.6-9.7 91.9-58 3.7-4.3-15.6-39.4 2.5-8 16.3-126.2 7.7zm-44.3-70.2l-26.4 1.7C84.6 307.2 76.9 303 65 303.8c-19 1.2-33.3 17.5-34.6 33.3-1.4 16 7.3 32.5 28.7 31.2 12.8-.8 21.3-8.6 28.9-18.9l27-1.7 2.7-29.8zm56.1-7.7c1.2-12.9-7.6-13.6-26.1-12.4l-2.7 28.5c14.2-.9 27.5-2.1 28.8-16.1zm21.1 70.8l5.8-60c-5 13.5-14.7 21.1-27.9 26.6l22.1 33.4zm135.4-45l-7.9-37.8-15.8 39.3 23.7-1.5zm-170.1-74.6l-4.3-17.5-39.6 2.6-8.1 18.2-31.9 2.1 57-121.9 23.9-1.6 30.7 102 9.9-104.7 27-1.8 37.8 63.6 6.5-66.6 28.5-1.9-4 41.2c7.4-13.5 22.9-44.7 63.6-47.5 40.5-2.8 52.4 29.3 53.4 30.3l3.3-32 39.3-2.7c12.7-.9 27.8.3 36.3 9.7l-4.4-11.9 32.2-2.2 12.9 43.2 23-45.7 31-2.2-43.6 78.4-4.8 44.3-28.4 1.9 4.8-44.3-15.8-43c1 22.3-9.2 40.1-32 49.6l25.2 38.8-36.4 2.4-19.2-36.8-4 38.3-28.4 1.9 3.3-31.5c-6.7 9.3-19.7 35.4-59.6 38-26.2 1.7-45.6-10.3-55.4-39.2l-4 40.3-25 1.6-37.6-63.3-6.3 66.2-56.8 3.7zm276.6-82.1c10.2-.7 17.5-2.1 21.6-4.3 4.5-2.4 7-6.4 7.6-12.1.6-5.3-.6-8.8-3.4-10.4-3.6-2.1-10.6-2.8-22.9-2l-2.9 28.8zM327.7 214c5.6 5.9 12.7 8.5 21.3 7.9 4.7-.3 9.1-1.8 13.3-4.1 5.5-3 10.6-8 15.1-14.3l-34.2 2.3 2.4-23.9 63.1-4.3 1.2-12-31.2 2.1c-4.1-3.7-7.8-6.6-11.1-8.1-4-1.7-8.1-2.8-12.2-2.5-8 .5-15.3 3.6-22 9.2-7.7 6.4-12 14.5-12.9 24.4-1.1 9.6 1.4 17.3 7.2 23.3zm-201.3 8.2l23.8-1.6-8.3-37.6-15.5 39.2z"], - "y-combinator": [448, 512, [], "f23b", "M448 32v448H0V32h448zM236 287.5L313.5 142h-32.7L235 233c-4.7 9.3-9 18.3-12.8 26.8L210 233l-45.2-91h-35l76.7 143.8v94.5H236v-92.8z"], - "empire": [496, 512, [], "f1d1", "M287.6 54.2c-10.8-2.2-22.1-3.3-33.5-3.6V32.4c78.1 2.2 146.1 44 184.6 106.6l-15.8 9.1c-6.1-9.7-12.7-18.8-20.2-27.1l-18 15.5c-26-29.6-61.4-50.7-101.9-58.4l4.8-23.9zM53.4 322.4l23-7.7c-6.4-18.3-10-38.2-10-58.7s3.3-40.4 9.7-58.7l-22.7-7.7c3.6-10.8 8.3-21.3 13.6-31l-15.8-9.1C34 181 24.1 217.5 24.1 256s10 75 27.1 106.6l15.8-9.1c-5.3-10-9.7-20.3-13.6-31.1zM213.1 434c-40.4-8-75.8-29.1-101.9-58.7l-18 15.8c-7.5-8.6-14.4-17.7-20.2-27.4l-16 9.4c38.5 62.3 106.8 104.3 184.9 106.6v-18.3c-11.3-.3-22.7-1.7-33.5-3.6l4.7-23.8zM93.3 120.9l18 15.5c26-29.6 61.4-50.7 101.9-58.4l-4.7-23.8c10.8-2.2 22.1-3.3 33.5-3.6V32.4C163.9 34.6 95.9 76.4 57.4 139l15.8 9.1c6-9.7 12.6-18.9 20.1-27.2zm309.4 270.2l-18-15.8c-26 29.6-61.4 50.7-101.9 58.7l4.7 23.8c-10.8 1.9-22.1 3.3-33.5 3.6v18.3c78.1-2.2 146.4-44.3 184.9-106.6l-16.1-9.4c-5.7 9.7-12.6 18.8-20.1 27.4zM496 256c0 137-111 248-248 248S0 393 0 256 111 8 248 8s248 111 248 248zm-12.2 0c0-130.1-105.7-235.8-235.8-235.8S12.2 125.9 12.2 256 117.9 491.8 248 491.8 483.8 386.1 483.8 256zm-39-106.6l-15.8 9.1c5.3 9.7 10 20.2 13.6 31l-22.7 7.7c6.4 18.3 9.7 38.2 9.7 58.7s-3.6 40.4-10 58.7l23 7.7c-3.9 10.8-8.3 21-13.6 31l15.8 9.1C462 331 471.9 294.5 471.9 256s-9.9-75-27.1-106.6zm-183 177.7c16.3-3.3 30.4-11.6 40.7-23.5l51.2 44.8c11.9-13.6 21.3-29.3 27.1-46.8l-64.2-22.1c2.5-7.5 3.9-15.2 3.9-23.5s-1.4-16.1-3.9-23.5l64.5-22.1c-6.1-17.4-15.5-33.2-27.4-46.8l-51.2 44.8c-10.2-11.9-24.4-20.5-40.7-23.8l13.3-66.4c-8.6-1.9-17.7-2.8-27.1-2.8-9.4 0-18.5.8-27.1 2.8l13.3 66.4c-16.3 3.3-30.4 11.9-40.7 23.8l-51.2-44.8c-11.9 13.6-21.3 29.3-27.4 46.8l64.5 22.1c-2.5 7.5-3.9 15.2-3.9 23.5s1.4 16.1 3.9 23.5l-64.2 22.1c5.8 17.4 15.2 33.2 27.1 46.8l51.2-44.8c10.2 11.9 24.4 20.2 40.7 23.5l-13.3 66.7c8.6 1.7 17.7 2.8 27.1 2.8 9.4 0 18.5-1.1 27.1-2.8l-13.3-66.7z"], - "envira": [448, 512, [], "f299", "M0 32c477.6 0 366.6 317.3 367.1 366.3L448 480h-26l-70.4-71.2c-39 4.2-124.4 34.5-214.4-37C47 300.3 52 214.7 0 32zm79.7 46c-49.7-23.5-5.2 9.2-5.2 9.2 45.2 31.2 66 73.7 90.2 119.9 31.5 60.2 79 139.7 144.2 167.7 65 28 34.2 12.5 6-8.5-28.2-21.2-68.2-87-91-130.2-31.7-60-61-118.6-144.2-158.1z"], - "google-scholar": [512, 512, [], "e63b", "M390.9 298.5c0 0 0 .1 .1 .1c9.2 19.4 14.4 41.1 14.4 64C405.3 445.1 338.5 512 256 512s-149.3-66.9-149.3-149.3c0-22.9 5.2-44.6 14.4-64h0c1.7-3.6 3.6-7.2 5.6-10.7c4.4-7.6 9.4-14.7 15-21.3c27.4-32.6 68.5-53.3 114.4-53.3c33.6 0 64.6 11.1 89.6 29.9c9.1 6.9 17.4 14.7 24.8 23.5c5.6 6.6 10.6 13.8 15 21.3c2 3.4 3.8 7 5.5 10.5zm26.4-18.8c-30.1-58.4-91-98.4-161.3-98.4s-131.2 40-161.3 98.4L0 202.7 256 0 512 202.7l-94.7 77.1z"], - "square-gitlab": [448, 512, ["gitlab-square"], "e5ae", "M0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96zm337.5 12.5l44.6 116.4 .4 1.2c5.6 16.8 7.2 35.2 2.3 52.5c-5 17.2-15.4 32.4-29.8 43.3l-.2 .1-68.4 51.2-54.1 40.9c-.5 .2-1.1 .5-1.7 .8c-2 1-4.4 2-6.7 2c-3 0-6.8-1.8-8.3-2.8l-54.2-40.9L93.5 322.3l-.4-.3-.2-.1c-14.3-10.8-24.8-26-29.7-43.3s-4.2-35.7 2.2-52.5l.5-1.2 44.7-116.4c.9-2.3 2.5-4.3 4.5-5.6c1.6-1 3.4-1.6 5.2-1.8c1.3-.7 2.1-.4 3.4 .1c.6 .2 1.2 .5 2 .7c1 .4 1.6 .9 2.4 1.5c.6 .4 1.2 1 2.1 1.5c1.2 1.4 2.2 3 2.7 4.8l29.2 92.2H285l30.2-92.2c.5-1.8 1.4-3.4 2.6-4.8s2.8-2.4 4.5-3.1c1.7-.6 3.6-.9 5.4-.7s3.6 .8 5.2 1.8c2 1.3 3.7 3.3 4.6 5.6z"], - "studiovinari": [512, 512, [], "f3f8", "M480.3 187.7l4.2 28v28l-25.1 44.1-39.8 78.4-56.1 67.5-79.1 37.8-17.7 24.5-7.7 12-9.6 4s17.3-63.6 19.4-63.6c2.1 0 20.3.7 20.3.7l66.7-38.6-92.5 26.1-55.9 36.8-22.8 28-6.6 1.4 20.8-73.6 6.9-5.5 20.7 12.9 88.3-45.2 56.8-51.5 14.8-68.4-125.4 23.3 15.2-18.2-173.4-53.3 81.9-10.5-166-122.9L133.5 108 32.2 0l252.9 126.6-31.5-38L378 163 234.7 64l18.7 38.4-49.6-18.1L158.3 0l194.6 122L310 66.2l108 96.4 12-8.9-21-16.4 4.2-37.8L451 89.1l29.2 24.7 11.5 4.2-7 6.2 8.5 12-13.1 7.4-10.3 20.2 10.5 23.9z"], - "pied-piper": [480, 512, [], "f2ae", "M455.93,23.2C429.23,30,387.79,51.69,341.35,90.66A206,206,0,0,0,240,64C125.13,64,32,157.12,32,272s93.13,208,208,208,208-93.13,208-208a207.25,207.25,0,0,0-58.75-144.81,155.35,155.35,0,0,0-17,27.4A176.16,176.16,0,0,1,417.1,272c0,97.66-79.44,177.11-177.09,177.11a175.81,175.81,0,0,1-87.63-23.4c82.94-107.33,150.79-37.77,184.31-226.65,5.79-32.62,28-94.26,126.23-160.18C471,33.45,465.35,20.8,455.93,23.2ZM125,406.4A176.66,176.66,0,0,1,62.9,272C62.9,174.34,142.35,94.9,240,94.9a174,174,0,0,1,76.63,17.75C250.64,174.76,189.77,265.52,125,406.4Z"], - "wordpress": [512, 512, [], "f19a", "M61.7 169.4l101.5 278C92.2 413 43.3 340.2 43.3 256c0-30.9 6.6-60.1 18.4-86.6zm337.9 75.9c0-26.3-9.4-44.5-17.5-58.7-10.8-17.5-20.9-32.4-20.9-49.9 0-19.6 14.8-37.8 35.7-37.8.9 0 1.8.1 2.8.2-37.9-34.7-88.3-55.9-143.7-55.9-74.3 0-139.7 38.1-177.8 95.9 5 .2 9.7.3 13.7.3 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l77.5 230.4L249.8 247l-33.1-90.8c-11.5-.7-22.3-2-22.3-2-11.5-.7-10.1-18.2 1.3-17.5 0 0 35.1 2.7 56 2.7 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l76.9 228.7 21.2-70.9c9-29.4 16-50.5 16-68.7zm-139.9 29.3l-63.8 185.5c19.1 5.6 39.2 8.7 60.1 8.7 24.8 0 48.5-4.3 70.6-12.1-.6-.9-1.1-1.9-1.5-2.9l-65.4-179.2zm183-120.7c.9 6.8 1.4 14 1.4 21.9 0 21.6-4 45.8-16.2 76.2l-65 187.9C426.2 403 468.7 334.5 468.7 256c0-37-9.4-71.8-26-102.1zM504 256c0 136.8-111.3 248-248 248C119.2 504 8 392.7 8 256 8 119.2 119.2 8 256 8c136.7 0 248 111.2 248 248zm-11.4 0c0-130.5-106.2-236.6-236.6-236.6C125.5 19.4 19.4 125.5 19.4 256S125.6 492.6 256 492.6c130.5 0 236.6-106.1 236.6-236.6z"], - "product-hunt": [512, 512, [], "f288", "M326.3 218.8c0 20.5-16.7 37.2-37.2 37.2h-70.3v-74.4h70.3c20.5 0 37.2 16.7 37.2 37.2zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-128.1-37.2c0-47.9-38.9-86.8-86.8-86.8H169.2v248h49.6v-74.4h70.3c47.9 0 86.8-38.9 86.8-86.8z"], - "firefox": [512, 512, [], "f269", "M503.52,241.48c-.12-1.56-.24-3.12-.24-4.68v-.12l-.36-4.68v-.12a245.86,245.86,0,0,0-7.32-41.15c0-.12,0-.12-.12-.24l-1.08-4c-.12-.24-.12-.48-.24-.6-.36-1.2-.72-2.52-1.08-3.72-.12-.24-.12-.6-.24-.84-.36-1.2-.72-2.4-1.08-3.48-.12-.36-.24-.6-.36-1-.36-1.2-.72-2.28-1.2-3.48l-.36-1.08c-.36-1.08-.84-2.28-1.2-3.36a8.27,8.27,0,0,0-.36-1c-.48-1.08-.84-2.28-1.32-3.36-.12-.24-.24-.6-.36-.84-.48-1.2-1-2.28-1.44-3.48,0-.12-.12-.24-.12-.36-1.56-3.84-3.24-7.68-5-11.4l-.36-.72c-.48-1-.84-1.8-1.32-2.64-.24-.48-.48-1.08-.72-1.56-.36-.84-.84-1.56-1.2-2.4-.36-.6-.6-1.2-1-1.8s-.84-1.44-1.2-2.28c-.36-.6-.72-1.32-1.08-1.92s-.84-1.44-1.2-2.16a18.07,18.07,0,0,0-1.2-2c-.36-.72-.84-1.32-1.2-2s-.84-1.32-1.2-2-.84-1.32-1.2-1.92-.84-1.44-1.32-2.16a15.63,15.63,0,0,0-1.2-1.8L463.2,119a15.63,15.63,0,0,0-1.2-1.8c-.48-.72-1.08-1.56-1.56-2.28-.36-.48-.72-1.08-1.08-1.56l-1.8-2.52c-.36-.48-.6-.84-1-1.32-1-1.32-1.8-2.52-2.76-3.72a248.76,248.76,0,0,0-23.51-26.64A186.82,186.82,0,0,0,412,62.46c-4-3.48-8.16-6.72-12.48-9.84a162.49,162.49,0,0,0-24.6-15.12c-2.4-1.32-4.8-2.52-7.2-3.72a254,254,0,0,0-55.43-19.56c-1.92-.36-3.84-.84-5.64-1.2h-.12c-1-.12-1.8-.36-2.76-.48a236.35,236.35,0,0,0-38-4H255.14a234.62,234.62,0,0,0-45.48,5c-33.59,7.08-63.23,21.24-82.91,39-1.08,1-1.92,1.68-2.4,2.16l-.48.48H124l-.12.12.12-.12a.12.12,0,0,0,.12-.12l-.12.12a.42.42,0,0,1,.24-.12c14.64-8.76,34.92-16,49.44-19.56l5.88-1.44c.36-.12.84-.12,1.2-.24,1.68-.36,3.36-.72,5.16-1.08.24,0,.6-.12.84-.12C250.94,20.94,319.34,40.14,367,85.61a171.49,171.49,0,0,1,26.88,32.76c30.36,49.2,27.48,111.11,3.84,147.59-34.44,53-111.35,71.27-159,24.84a84.19,84.19,0,0,1-25.56-59,74.05,74.05,0,0,1,6.24-31c1.68-3.84,13.08-25.67,18.24-24.59-13.08-2.76-37.55,2.64-54.71,28.19-15.36,22.92-14.52,58.2-5,83.28a132.85,132.85,0,0,1-12.12-39.24c-12.24-82.55,43.31-153,94.31-170.51-27.48-24-96.47-22.31-147.71,15.36-29.88,22-51.23,53.16-62.51,90.36,1.68-20.88,9.6-52.08,25.8-83.88-17.16,8.88-39,37-49.8,62.88-15.6,37.43-21,82.19-16.08,124.79.36,3.24.72,6.36,1.08,9.6,19.92,117.11,122,206.38,244.78,206.38C392.77,503.42,504,392.19,504,255,503.88,250.48,503.76,245.92,503.52,241.48Z"], - "linode": [448, 512, [], "f2b8", "M366.036,186.867l-59.5,36.871-.838,36.871-29.329-19.273-39.384,24.3c2.238,55.211,2.483,59.271,2.51,59.5l-97.2,65.359L127.214,285.748l108.1-62.01L195.09,197.761l-75.417,38.547L98.723,93.015,227.771,43.574,136.432,0,10.737,39.385,38.39,174.3l41.9,32.681L48.445,222.062,69.394,323.457,98.723,351.11,77.774,363.679l16.76,78.769L160.733,512c-10.8-74.842-11.658-78.641-11.725-78.773l77.925-55.3c16.759-12.57,15.083-10.894,15.083-10.894l.838,24.3,33.519,28.491-.838-77.093,46.927-33.519,26.815-18.435-2.514,36.033,25.139,17.6,6.7-74.579,58.657-43.575Z"], - "goodreads": [448, 512, [], "f3a8", "M299.9 191.2c5.1 37.3-4.7 79-35.9 100.7-22.3 15.5-52.8 14.1-70.8 5.7-37.1-17.3-49.5-58.6-46.8-97.2 4.3-60.9 40.9-87.9 75.3-87.5 46.9-.2 71.8 31.8 78.2 78.3zM448 88v336c0 30.9-25.1 56-56 56H56c-30.9 0-56-25.1-56-56V88c0-30.9 25.1-56 56-56h336c30.9 0 56 25.1 56 56zM330 313.2s-.1-34-.1-217.3h-29v40.3c-.8.3-1.2-.5-1.6-1.2-9.6-20.7-35.9-46.3-76-46-51.9.4-87.2 31.2-100.6 77.8-4.3 14.9-5.8 30.1-5.5 45.6 1.7 77.9 45.1 117.8 112.4 115.2 28.9-1.1 54.5-17 69-45.2.5-1 1.1-1.9 1.7-2.9.2.1.4.1.6.2.3 3.8.2 30.7.1 34.5-.2 14.8-2 29.5-7.2 43.5-7.8 21-22.3 34.7-44.5 39.5-17.8 3.9-35.6 3.8-53.2-1.2-21.5-6.1-36.5-19-41.1-41.8-.3-1.6-1.3-1.3-2.3-1.3h-26.8c.8 10.6 3.2 20.3 8.5 29.2 24.2 40.5 82.7 48.5 128.2 37.4 49.9-12.3 67.3-54.9 67.4-106.3z"], - "square-odnoklassniki": [448, 512, ["odnoklassniki-square"], "f264", "M224 137.1a39.9 39.9 0 1 0 0 79.7 39.9 39.9 0 1 0 0-79.7zM384 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64zM224 95.9A81 81 0 1 1 224 258a81 81 0 1 1 0-162.1zm59.3 168.3c16.8-13.2 29.5-5.5 34.1 3.6c7.8 16-1.1 23.7-21.5 37c-17.1 10.9-40.7 15.2-56.2 16.8l13 12.9 47.7 47.7c17.4 17.9-11 45.8-28.6 28.6c-12-12.2-29.5-29.7-47.7-47.9l0 0-47.7 47.9c-17.7 17.2-46-11-28.4-28.6c3.7-3.7 7.9-7.9 12.5-12.5c10.4-10.4 22.6-22.7 35.2-35.2l12.9-12.9c-15.4-1.6-39.3-5.7-56.6-16.8c-20.3-13.3-29.3-20.9-21.4-37c4.6-9.1 17.3-16.8 34.1-3.6c0 0 22.7 18 59.3 18s59.3-18 59.3-18z"], - "jsfiddle": [576, 512, [], "f1cc", "M510.634 237.462c-4.727-2.621-5.664-5.748-6.381-10.776-2.352-16.488-3.539-33.619-9.097-49.095-35.895-99.957-153.99-143.386-246.849-91.646-27.37 15.25-48.971 36.369-65.493 63.903-3.184-1.508-5.458-2.71-7.824-3.686-30.102-12.421-59.049-10.121-85.331 9.167-25.531 18.737-36.422 44.548-32.676 76.408.355 3.025-1.967 7.621-4.514 9.545-39.712 29.992-56.031 78.065-41.902 124.615 13.831 45.569 57.514 79.796 105.608 81.433 30.291 1.031 60.637.546 90.959.539 84.041-.021 168.09.531 252.12-.48 52.664-.634 96.108-36.873 108.212-87.293 11.54-48.074-11.144-97.3-56.832-122.634zm21.107 156.88c-18.23 22.432-42.343 35.253-71.28 35.65-56.874.781-113.767.23-170.652.23 0 .7-163.028.159-163.728.154-43.861-.332-76.739-19.766-95.175-59.995-18.902-41.245-4.004-90.848 34.186-116.106 9.182-6.073 12.505-11.566 10.096-23.136-5.49-26.361 4.453-47.956 26.42-62.981 22.987-15.723 47.422-16.146 72.034-3.083 10.269 5.45 14.607 11.564 22.198-2.527 14.222-26.399 34.557-46.727 60.671-61.294 97.46-54.366 228.37 7.568 230.24 132.697.122 8.15 2.412 12.428 9.848 15.894 57.56 26.829 74.456 96.122 35.142 144.497zm-87.789-80.499c-5.848 31.157-34.622 55.096-66.666 55.095-16.953-.001-32.058-6.545-44.079-17.705-27.697-25.713-71.141-74.98-95.937-93.387-20.056-14.888-41.99-12.333-60.272 3.782-49.996 44.071 15.859 121.775 67.063 77.188 4.548-3.96 7.84-9.543 12.744-12.844 8.184-5.509 20.766-.884 13.168 10.622-17.358 26.284-49.33 38.197-78.863 29.301-28.897-8.704-48.84-35.968-48.626-70.179 1.225-22.485 12.364-43.06 35.414-55.965 22.575-12.638 46.369-13.146 66.991 2.474C295.68 280.7 320.467 323.97 352.185 343.47c24.558 15.099 54.254 7.363 68.823-17.506 28.83-49.209-34.592-105.016-78.868-63.46-3.989 3.744-6.917 8.932-11.41 11.72-10.975 6.811-17.333-4.113-12.809-10.353 20.703-28.554 50.464-40.44 83.271-28.214 31.429 11.714 49.108 44.366 42.76 78.186z"], - "sith": [448, 512, [], "f512", "M0 32l69.71 118.75-58.86-11.52 69.84 91.03a146.741 146.741 0 0 0 0 51.45l-69.84 91.03 58.86-11.52L0 480l118.75-69.71-11.52 58.86 91.03-69.84c17.02 3.04 34.47 3.04 51.48 0l91.03 69.84-11.52-58.86L448 480l-69.71-118.78 58.86 11.52-69.84-91.03c3.03-17.01 3.04-34.44 0-51.45l69.84-91.03-58.86 11.52L448 32l-118.75 69.71 11.52-58.9-91.06 69.87c-8.5-1.52-17.1-2.29-25.71-2.29s-17.21.78-25.71 2.29l-91.06-69.87 11.52 58.9L0 32zm224 99.78c31.8 0 63.6 12.12 87.85 36.37 48.5 48.5 48.49 127.21 0 175.7s-127.2 48.46-175.7-.03c-48.5-48.5-48.49-127.21 0-175.7 24.24-24.25 56.05-36.34 87.85-36.34zm0 36.66c-22.42 0-44.83 8.52-61.92 25.61-34.18 34.18-34.19 89.68 0 123.87s89.65 34.18 123.84 0c34.18-34.18 34.19-89.68 0-123.87-17.09-17.09-39.5-25.61-61.92-25.61z"], - "themeisle": [512, 512, [], "f2b2", "M208 88.286c0-10 6.286-21.714 17.715-21.714 11.142 0 17.714 11.714 17.714 21.714 0 10.285-6.572 21.714-17.714 21.714C214.286 110 208 98.571 208 88.286zm304 160c0 36.001-11.429 102.286-36.286 129.714-22.858 24.858-87.428 61.143-120.857 70.572l-1.143.286v32.571c0 16.286-12.572 30.571-29.143 30.571-10 0-19.429-5.714-24.572-14.286-5.427 8.572-14.856 14.286-24.856 14.286-10 0-19.429-5.714-24.858-14.286-5.142 8.572-14.571 14.286-24.57 14.286-10.286 0-19.429-5.714-24.858-14.286-5.143 8.572-14.571 14.286-24.571 14.286-18.857 0-29.429-15.714-29.429-32.857-16.286 12.285-35.715 19.428-56.571 19.428-22 0-43.429-8.285-60.286-22.857 10.285-.286 20.571-2.286 30.285-5.714-20.857-5.714-39.428-18.857-52-36.286 21.37 4.645 46.209 1.673 67.143-11.143-22-22-56.571-58.857-68.572-87.428C1.143 321.714 0 303.714 0 289.429c0-49.714 20.286-160 86.286-160 10.571 0 18.857 4.858 23.143 14.857a158.792 158.792 0 0 1 12-15.428c2-2.572 5.714-5.429 7.143-8.286 7.999-12.571 11.714-21.142 21.714-34C182.571 45.428 232 17.143 285.143 17.143c6 0 12 .285 17.714 1.143C313.714 6.571 328.857 0 344.572 0c14.571 0 29.714 6 40 16.286.857.858 1.428 2.286 1.428 3.428 0 3.714-10.285 13.429-12.857 16.286 4.286 1.429 15.714 6.858 15.714 12 0 2.857-2.857 5.143-4.571 7.143 31.429 27.714 49.429 67.143 56.286 108 4.286-5.143 10.285-8.572 17.143-8.572 10.571 0 20.857 7.144 28.571 14.001C507.143 187.143 512 221.714 512 248.286zM188 89.428c0 18.286 12.571 37.143 32.286 37.143 19.714 0 32.285-18.857 32.285-37.143 0-18-12.571-36.857-32.285-36.857-19.715 0-32.286 18.858-32.286 36.857zM237.714 194c0-19.714 3.714-39.143 8.571-58.286-52.039 79.534-13.531 184.571 68.858 184.571 21.428 0 42.571-7.714 60-20 2-7.429 3.714-14.857 3.714-22.572 0-14.286-6.286-21.428-20.572-21.428-4.571 0-9.143.857-13.429 1.714-63.343 12.668-107.142 3.669-107.142-63.999zm-41.142 254.858c0-11.143-8.858-20.857-20.286-20.857-11.429 0-20 9.715-20 20.857v32.571c0 11.143 8.571 21.142 20 21.142 11.428 0 20.286-9.715 20.286-21.142v-32.571zm49.143 0c0-11.143-8.572-20.857-20-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20-10 20-21.142v-32.571zm49.713 0c0-11.143-8.857-20.857-20.285-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20.285-9.715 20.285-21.142v-32.571zm49.715 0c0-11.143-8.857-20.857-20.286-20.857-11.428 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.858 21.142 20.286 21.142 11.429 0 20.286-10 20.286-21.142v-32.571zM421.714 286c-30.857 59.142-90.285 102.572-158.571 102.572-96.571 0-160.571-84.572-160.571-176.572 0-16.857 2-33.429 6-49.714-20 33.715-29.714 72.572-29.714 111.429 0 60.286 24.857 121.715 71.429 160.857 5.143-9.714 14.857-16.286 26-16.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.571-14.286 24.858-14.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.857-14.286 24.858-14.286 10 0 19.428 5.714 24.857 14.286 5.143-8.571 14.571-14.286 24.572-14.286 10.857 0 20.857 6.572 25.714 16 43.427-36.286 68.569-92 71.426-148.286zm10.572-99.714c0-53.714-34.571-105.714-92.572-105.714-30.285 0-58.571 15.143-78.857 36.857C240.862 183.812 233.41 254 302.286 254c28.805 0 97.357-28.538 84.286 36.857 28.857-26 45.714-65.714 45.714-104.571z"], - "page4": [496, 512, [], "f3d7", "M248 504C111 504 0 393 0 256S111 8 248 8c20.9 0 41.3 2.6 60.7 7.5L42.3 392H248v112zm0-143.6V146.8L98.6 360.4H248zm96 31.6v92.7c45.7-19.2 84.5-51.7 111.4-92.7H344zm57.4-138.2l-21.2 8.4 21.2 8.3v-16.7zm-20.3 54.5c-6.7 0-8 6.3-8 12.9v7.7h16.2v-10c0-5.9-2.3-10.6-8.2-10.6zM496 256c0 37.3-8.2 72.7-23 104.4H344V27.3C433.3 64.8 496 153.1 496 256zM360.4 143.6h68.2V96h-13.9v32.6h-13.9V99h-13.9v29.6h-12.7V96h-13.9v47.6zm68.1 185.3H402v-11c0-15.4-5.6-25.2-20.9-25.2-15.4 0-20.7 10.6-20.7 25.9v25.3h68.2v-15zm0-103l-68.2 29.7V268l68.2 29.5v-16.6l-14.4-5.7v-26.5l14.4-5.9v-16.9zm-4.8-68.5h-35.6V184H402v-12.2h11c8.6 15.8 1.3 35.3-18.6 35.3-22.5 0-28.3-25.3-15.5-37.7l-11.6-10.6c-16.2 17.5-12.2 63.9 27.1 63.9 34 0 44.7-35.9 29.3-65.3z"], - "hashnode": [512, 512, [], "e499", "M35.19 171.1C-11.72 217.1-11.72 294 35.19 340.9L171.1 476.8C217.1 523.7 294 523.7 340.9 476.8L476.8 340.9C523.7 294 523.7 217.1 476.8 171.1L340.9 35.19C294-11.72 217.1-11.72 171.1 35.19L35.19 171.1zM315.5 315.5C282.6 348.3 229.4 348.3 196.6 315.5C163.7 282.6 163.7 229.4 196.6 196.6C229.4 163.7 282.6 163.7 315.5 196.6C348.3 229.4 348.3 282.6 315.5 315.5z"], - "react": [512, 512, [], "f41b", "M418.2 177.2c-5.4-1.8-10.8-3.5-16.2-5.1.9-3.7 1.7-7.4 2.5-11.1 12.3-59.6 4.2-107.5-23.1-123.3-26.3-15.1-69.2.6-112.6 38.4-4.3 3.7-8.5 7.6-12.5 11.5-2.7-2.6-5.5-5.2-8.3-7.7-45.5-40.4-91.1-57.4-118.4-41.5-26.2 15.2-34 60.3-23 116.7 1.1 5.6 2.3 11.1 3.7 16.7-6.4 1.8-12.7 3.8-18.6 5.9C38.3 196.2 0 225.4 0 255.6c0 31.2 40.8 62.5 96.3 81.5 4.5 1.5 9 3 13.6 4.3-1.5 6-2.8 11.9-4 18-10.5 55.5-2.3 99.5 23.9 114.6 27 15.6 72.4-.4 116.6-39.1 3.5-3.1 7-6.3 10.5-9.7 4.4 4.3 9 8.4 13.6 12.4 42.8 36.8 85.1 51.7 111.2 36.6 27-15.6 35.8-62.9 24.4-120.5-.9-4.4-1.9-8.9-3-13.5 3.2-.9 6.3-1.9 9.4-2.9 57.7-19.1 99.5-50 99.5-81.7 0-30.3-39.4-59.7-93.8-78.4zM282.9 92.3c37.2-32.4 71.9-45.1 87.7-36 16.9 9.7 23.4 48.9 12.8 100.4-.7 3.4-1.4 6.7-2.3 10-22.2-5-44.7-8.6-67.3-10.6-13-18.6-27.2-36.4-42.6-53.1 3.9-3.7 7.7-7.2 11.7-10.7zM167.2 307.5c5.1 8.7 10.3 17.4 15.8 25.9-15.6-1.7-31.1-4.2-46.4-7.5 4.4-14.4 9.9-29.3 16.3-44.5 4.6 8.8 9.3 17.5 14.3 26.1zm-30.3-120.3c14.4-3.2 29.7-5.8 45.6-7.8-5.3 8.3-10.5 16.8-15.4 25.4-4.9 8.5-9.7 17.2-14.2 26-6.3-14.9-11.6-29.5-16-43.6zm27.4 68.9c6.6-13.8 13.8-27.3 21.4-40.6s15.8-26.2 24.4-38.9c15-1.1 30.3-1.7 45.9-1.7s31 .6 45.9 1.7c8.5 12.6 16.6 25.5 24.3 38.7s14.9 26.7 21.7 40.4c-6.7 13.8-13.9 27.4-21.6 40.8-7.6 13.3-15.7 26.2-24.2 39-14.9 1.1-30.4 1.6-46.1 1.6s-30.9-.5-45.6-1.4c-8.7-12.7-16.9-25.7-24.6-39s-14.8-26.8-21.5-40.6zm180.6 51.2c5.1-8.8 9.9-17.7 14.6-26.7 6.4 14.5 12 29.2 16.9 44.3-15.5 3.5-31.2 6.2-47 8 5.4-8.4 10.5-17 15.5-25.6zm14.4-76.5c-4.7-8.8-9.5-17.6-14.5-26.2-4.9-8.5-10-16.9-15.3-25.2 16.1 2 31.5 4.7 45.9 8-4.6 14.8-10 29.2-16.1 43.4zM256.2 118.3c10.5 11.4 20.4 23.4 29.6 35.8-19.8-.9-39.7-.9-59.5 0 9.8-12.9 19.9-24.9 29.9-35.8zM140.2 57c16.8-9.8 54.1 4.2 93.4 39 2.5 2.2 5 4.6 7.6 7-15.5 16.7-29.8 34.5-42.9 53.1-22.6 2-45 5.5-67.2 10.4-1.3-5.1-2.4-10.3-3.5-15.5-9.4-48.4-3.2-84.9 12.6-94zm-24.5 263.6c-4.2-1.2-8.3-2.5-12.4-3.9-21.3-6.7-45.5-17.3-63-31.2-10.1-7-16.9-17.8-18.8-29.9 0-18.3 31.6-41.7 77.2-57.6 5.7-2 11.5-3.8 17.3-5.5 6.8 21.7 15 43 24.5 63.6-9.6 20.9-17.9 42.5-24.8 64.5zm116.6 98c-16.5 15.1-35.6 27.1-56.4 35.3-11.1 5.3-23.9 5.8-35.3 1.3-15.9-9.2-22.5-44.5-13.5-92 1.1-5.6 2.3-11.2 3.7-16.7 22.4 4.8 45 8.1 67.9 9.8 13.2 18.7 27.7 36.6 43.2 53.4-3.2 3.1-6.4 6.1-9.6 8.9zm24.5-24.3c-10.2-11-20.4-23.2-30.3-36.3 9.6.4 19.5.6 29.5.6 10.3 0 20.4-.2 30.4-.7-9.2 12.7-19.1 24.8-29.6 36.4zm130.7 30c-.9 12.2-6.9 23.6-16.5 31.3-15.9 9.2-49.8-2.8-86.4-34.2-4.2-3.6-8.4-7.5-12.7-11.5 15.3-16.9 29.4-34.8 42.2-53.6 22.9-1.9 45.7-5.4 68.2-10.5 1 4.1 1.9 8.2 2.7 12.2 4.9 21.6 5.7 44.1 2.5 66.3zm18.2-107.5c-2.8.9-5.6 1.8-8.5 2.6-7-21.8-15.6-43.1-25.5-63.8 9.6-20.4 17.7-41.4 24.5-62.9 5.2 1.5 10.2 3.1 15 4.7 46.6 16 79.3 39.8 79.3 58 0 19.6-34.9 44.9-84.8 61.4zm-149.7-15c25.3 0 45.8-20.5 45.8-45.8s-20.5-45.8-45.8-45.8c-25.3 0-45.8 20.5-45.8 45.8s20.5 45.8 45.8 45.8z"], - "cc-paypal": [576, 512, [], "f1f4", "M186.3 258.2c0 12.2-9.7 21.5-22 21.5-9.2 0-16-5.2-16-15 0-12.2 9.5-22 21.7-22 9.3 0 16.3 5.7 16.3 15.5zM80.5 209.7h-4.7c-1.5 0-3 1-3.2 2.7l-4.3 26.7 8.2-.3c11 0 19.5-1.5 21.5-14.2 2.3-13.4-6.2-14.9-17.5-14.9zm284 0H360c-1.8 0-3 1-3.2 2.7l-4.2 26.7 8-.3c13 0 22-3 22-18-.1-10.6-9.6-11.1-18.1-11.1zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM128.3 215.4c0-21-16.2-28-34.7-28h-40c-2.5 0-5 2-5.2 4.7L32 294.2c-.3 2 1.2 4 3.2 4h19c2.7 0 5.2-2.9 5.5-5.7l4.5-26.6c1-7.2 13.2-4.7 18-4.7 28.6 0 46.1-17 46.1-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.2 8.2-5.8-8.5-14.2-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9 0 20.2-4.9 26.5-11.9-.5 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H200c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm40.5 97.9l63.7-92.6c.5-.5.5-1 .5-1.7 0-1.7-1.5-3.5-3.2-3.5h-19.2c-1.7 0-3.5 1-4.5 2.5l-26.5 39-11-37.5c-.8-2.2-3-4-5.5-4h-18.7c-1.7 0-3.2 1.8-3.2 3.5 0 1.2 19.5 56.8 21.2 62.1-2.7 3.8-20.5 28.6-20.5 31.6 0 1.8 1.5 3.2 3.2 3.2h19.2c1.8-.1 3.5-1.1 4.5-2.6zm159.3-106.7c0-21-16.2-28-34.7-28h-39.7c-2.7 0-5.2 2-5.5 4.7l-16.2 102c-.2 2 1.3 4 3.2 4h20.5c2 0 3.5-1.5 4-3.2l4.5-29c1-7.2 13.2-4.7 18-4.7 28.4 0 45.9-17 45.9-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.3 8.2-5.5-8.5-14-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9.3 0 20.5-4.9 26.5-11.9-.3 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H484c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm47.5-33.3c0-2-1.5-3.5-3.2-3.5h-18.5c-1.5 0-3 1.2-3.2 2.7l-16.2 104-.3.5c0 1.8 1.5 3.5 3.5 3.5h16.5c2.5 0 5-2.9 5.2-5.7L544 191.2v-.3zm-90 51.8c-12.2 0-21.7 9.7-21.7 22 0 9.7 7 15 16.2 15 12 0 21.7-9.2 21.7-21.5.1-9.8-6.9-15.5-16.2-15.5z"], - "squarespace": [512, 512, [], "f5be", "M186.12 343.34c-9.65 9.65-9.65 25.29 0 34.94 9.65 9.65 25.29 9.65 34.94 0L378.24 221.1c19.29-19.29 50.57-19.29 69.86 0s19.29 50.57 0 69.86L293.95 445.1c19.27 19.29 50.53 19.31 69.82.04l.04-.04 119.25-119.24c38.59-38.59 38.59-101.14 0-139.72-38.59-38.59-101.15-38.59-139.72 0l-157.22 157.2zm244.53-104.8c-9.65-9.65-25.29-9.65-34.93 0l-157.2 157.18c-19.27 19.29-50.53 19.31-69.82.05l-.05-.05c-9.64-9.64-25.27-9.65-34.92-.01l-.01.01c-9.65 9.64-9.66 25.28-.02 34.93l.02.02c38.58 38.57 101.14 38.57 139.72 0l157.2-157.2c9.65-9.65 9.65-25.29.01-34.93zm-261.99 87.33l157.18-157.18c9.64-9.65 9.64-25.29 0-34.94-9.64-9.64-25.27-9.64-34.91 0L133.72 290.93c-19.28 19.29-50.56 19.3-69.85.01l-.01-.01c-19.29-19.28-19.31-50.54-.03-69.84l.03-.03L218.03 66.89c-19.28-19.29-50.55-19.3-69.85-.02l-.02.02L28.93 186.14c-38.58 38.59-38.58 101.14 0 139.72 38.6 38.59 101.13 38.59 139.73.01zm-87.33-52.4c9.64 9.64 25.27 9.64 34.91 0l157.21-157.19c19.28-19.29 50.55-19.3 69.84-.02l.02.02c9.65 9.65 25.29 9.65 34.93 0 9.65-9.65 9.65-25.29 0-34.93-38.59-38.59-101.13-38.59-139.72 0L81.33 238.54c-9.65 9.64-9.65 25.28-.01 34.93h.01z"], - "cc-stripe": [576, 512, [], "f1f5", "M492.4 220.8c-8.9 0-18.7 6.7-18.7 22.7h36.7c0-16-9.3-22.7-18-22.7zM375 223.4c-8.2 0-13.3 2.9-17 7l.2 52.8c3.5 3.7 8.5 6.7 16.8 6.7 13.1 0 21.9-14.3 21.9-33.4 0-18.6-9-33.2-21.9-33.1zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM122.2 281.1c0 25.6-20.3 40.1-49.9 40.3-12.2 0-25.6-2.4-38.8-8.1v-33.9c12 6.4 27.1 11.3 38.9 11.3 7.9 0 13.6-2.1 13.6-8.7 0-17-54-10.6-54-49.9 0-25.2 19.2-40.2 48-40.2 11.8 0 23.5 1.8 35.3 6.5v33.4c-10.8-5.8-24.5-9.1-35.3-9.1-7.5 0-12.1 2.2-12.1 7.7 0 16 54.3 8.4 54.3 50.7zm68.8-56.6h-27V275c0 20.9 22.5 14.4 27 12.6v28.9c-4.7 2.6-13.3 4.7-24.9 4.7-21.1 0-36.9-15.5-36.9-36.5l.2-113.9 34.7-7.4v30.8H191zm74 2.4c-4.5-1.5-18.7-3.6-27.1 7.4v84.4h-35.5V194.2h30.7l2.2 10.5c8.3-15.3 24.9-12.2 29.6-10.5h.1zm44.1 91.8h-35.7V194.2h35.7zm0-142.9l-35.7 7.6v-28.9l35.7-7.6zm74.1 145.5c-12.4 0-20-5.3-25.1-9l-.1 40.2-35.5 7.5V194.2h31.3l1.8 8.8c4.9-4.5 13.9-11.1 27.8-11.1 24.9 0 48.4 22.5 48.4 63.8 0 45.1-23.2 65.5-48.6 65.6zm160.4-51.5h-69.5c1.6 16.6 13.8 21.5 27.6 21.5 14.1 0 25.2-3 34.9-7.9V312c-9.7 5.3-22.4 9.2-39.4 9.2-34.6 0-58.8-21.7-58.8-64.5 0-36.2 20.5-64.9 54.3-64.9 33.7 0 51.3 28.7 51.3 65.1 0 3.5-.3 10.9-.4 12.9z"], - "creative-commons-share": [496, 512, [], "f4f2", "M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm101 132.4c7.8 0 13.7 6.1 13.7 13.7v182.5c0 7.7-6.1 13.7-13.7 13.7H214.3c-7.7 0-13.7-6-13.7-13.7v-54h-54c-7.8 0-13.7-6-13.7-13.7V131.1c0-8.2 6.6-12.7 12.4-13.7h136.4c7.7 0 13.7 6 13.7 13.7v54h54zM159.9 300.3h40.7V198.9c0-7.4 5.8-12.6 12-13.7h55.8v-40.3H159.9v155.4zm176.2-88.1H227.6v155.4h108.5V212.2z"], - "bitcoin": [512, 512, [], "f379", "M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-141.651-35.33c4.937-32.999-20.191-50.739-54.55-62.573l11.146-44.702-27.213-6.781-10.851 43.524c-7.154-1.783-14.502-3.464-21.803-5.13l10.929-43.81-27.198-6.781-11.153 44.686c-5.922-1.349-11.735-2.682-17.377-4.084l.031-.14-37.53-9.37-7.239 29.062s20.191 4.627 19.765 4.913c11.022 2.751 13.014 10.044 12.68 15.825l-12.696 50.925c.76.194 1.744.473 2.829.907-.907-.225-1.876-.473-2.876-.713l-17.796 71.338c-1.349 3.348-4.767 8.37-12.471 6.464.271.395-19.78-4.937-19.78-4.937l-13.51 31.147 35.414 8.827c6.588 1.651 13.045 3.379 19.4 5.006l-11.262 45.213 27.182 6.781 11.153-44.733a1038.209 1038.209 0 0 0 21.687 5.627l-11.115 44.523 27.213 6.781 11.262-45.128c46.404 8.781 81.299 5.239 95.986-36.727 11.836-33.79-.589-53.281-25.004-65.991 17.78-4.098 31.174-15.792 34.747-39.949zm-62.177 87.179c-8.41 33.79-65.308 15.523-83.755 10.943l14.944-59.899c18.446 4.603 77.6 13.717 68.811 48.956zm8.417-87.667c-7.673 30.736-55.031 15.12-70.393 11.292l13.548-54.327c15.363 3.828 64.836 10.973 56.845 43.035z"], - "keycdn": [512, 512, [], "f3ba", "M63.8 409.3l60.5-59c32.1 42.8 71.1 66 126.6 67.4 30.5.7 60.3-7 86.4-22.4 5.1 5.3 18.5 19.5 20.9 22-32.2 20.7-69.6 31.1-108.1 30.2-43.3-1.1-84.6-16.7-117.7-44.4.3-.6-38.2 37.5-38.6 37.9 9.5 29.8-13.1 62.4-46.3 62.4C20.7 503.3 0 481.7 0 454.9c0-34.3 33.1-56.6 63.8-45.6zm354.9-252.4c19.1 31.3 29.6 67.4 28.7 104-1.1 44.8-19 87.5-48.6 121 .3.3 23.8 25.2 24.1 25.5 9.6-1.3 19.2 2 25.9 9.1 11.3 12 10.9 30.9-1.1 42.4-12 11.3-30.9 10.9-42.4-1.1-6.7-7-9.4-16.8-7.6-26.3-24.9-26.6-44.4-47.2-44.4-47.2 42.7-34.1 63.3-79.6 64.4-124.2.7-28.9-7.2-57.2-21.1-82.2l22.1-21zM104 53.1c6.7 7 9.4 16.8 7.6 26.3l45.9 48.1c-4.7 3.8-13.3 10.4-22.8 21.3-25.4 28.5-39.6 64.8-40.7 102.9-.7 28.9 6.1 57.2 20 82.4l-22 21.5C72.7 324 63.1 287.9 64.2 250.9c1-44.6 18.3-87.6 47.5-121.1l-25.3-26.4c-9.6 1.3-19.2-2-25.9-9.1-11.3-12-10.9-30.9 1.1-42.4C73.5 40.7 92.2 41 104 53.1zM464.9 8c26 0 47.1 22.4 47.1 48.3S490.9 104 464.9 104c-6.3.1-14-1.1-15.9-1.8l-62.9 59.7c-32.7-43.6-76.7-65.9-126.9-67.2-30.5-.7-60.3 6.8-86.2 22.4l-21.1-22C184.1 74.3 221.5 64 260 64.9c43.3 1.1 84.6 16.7 117.7 44.6l41.1-38.6c-1.5-4.7-2.2-9.6-2.2-14.5C416.5 29.7 438.9 8 464.9 8zM256.7 113.4c5.5 0 10.9.4 16.4 1.1 78.1 9.8 133.4 81.1 123.8 159.1-9.8 78.1-81.1 133.4-159.1 123.8-78.1-9.8-133.4-81.1-123.8-159.2 9.3-72.4 70.1-124.6 142.7-124.8zm-59 119.4c.6 22.7 12.2 41.8 32.4 52.2l-11 51.7h73.7l-11-51.7c20.1-10.9 32.1-29 32.4-52.2-.4-32.8-25.8-57.5-58.3-58.3-32.1.8-57.3 24.8-58.2 58.3zM256 160"], - "opera": [496, 512, [], "f26a", "M313.9 32.7c-170.2 0-252.6 223.8-147.5 355.1 36.5 45.4 88.6 75.6 147.5 75.6 36.3 0 70.3-11.1 99.4-30.4-43.8 39.2-101.9 63-165.3 63-3.9 0-8 0-11.9-.3C104.6 489.6 0 381.1 0 248 0 111 111 0 248 0h.8c63.1.3 120.7 24.1 164.4 63.1-29-19.4-63.1-30.4-99.3-30.4zm101.8 397.7c-40.9 24.7-90.7 23.6-132-5.8 56.2-20.5 97.7-91.6 97.7-176.6 0-84.7-41.2-155.8-97.4-176.6 41.8-29.2 91.2-30.3 132.9-5 105.9 98.7 105.5 265.7-1.2 364z"], - "itch-io": [512, 512, [], "f83a", "M71.92 34.77C50.2 47.67 7.4 96.84 7 109.73v21.34c0 27.06 25.29 50.84 48.25 50.84 27.57 0 50.54-22.85 50.54-50 0 27.12 22.18 50 49.76 50s49-22.85 49-50c0 27.12 23.59 50 51.16 50h.5c27.57 0 51.16-22.85 51.16-50 0 27.12 21.47 50 49 50s49.76-22.85 49.76-50c0 27.12 23 50 50.54 50 23 0 48.25-23.78 48.25-50.84v-21.34c-.4-12.9-43.2-62.07-64.92-75C372.56 32.4 325.76 32 256 32S91.14 33.1 71.92 34.77zm132.32 134.39c-22 38.4-77.9 38.71-99.85.25-13.17 23.14-43.17 32.07-56 27.66-3.87 40.15-13.67 237.13 17.73 269.15 80 18.67 302.08 18.12 379.76 0 31.65-32.27 21.32-232 17.75-269.15-12.92 4.44-42.88-4.6-56-27.66-22 38.52-77.85 38.1-99.85-.24-7.1 12.49-23.05 28.94-51.76 28.94a57.54 57.54 0 0 1-51.75-28.94zm-41.58 53.77c16.47 0 31.09 0 49.22 19.78a436.91 436.91 0 0 1 88.18 0C318.22 223 332.85 223 349.31 223c52.33 0 65.22 77.53 83.87 144.45 17.26 62.15-5.52 63.67-33.95 63.73-42.15-1.57-65.49-32.18-65.49-62.79-39.25 6.43-101.93 8.79-155.55 0 0 30.61-23.34 61.22-65.49 62.79-28.42-.06-51.2-1.58-33.94-63.73 18.67-67 31.56-144.45 83.88-144.45zM256 270.79s-44.38 40.77-52.35 55.21l29-1.17v25.32c0 1.55 21.34.16 23.33.16 11.65.54 23.31 1 23.31-.16v-25.28l29 1.17c-8-14.48-52.35-55.24-52.35-55.24z"], - "umbraco": [510, 512, [], "f8e8", "M255.35 8C118.36 7.83 7.14 118.72 7 255.68c-.07 137 111 248.2 248 248.27 136.85 0 247.82-110.7 248-247.67S392.34 8.17 255.35 8zm145 266q-1.14 40.68-14 65t-43.51 35q-30.61 10.7-85.45 10.47h-4.6q-54.78.22-85.44-10.47t-43.52-35q-12.85-24.36-14-65a224.81 224.81 0 0 1 0-30.71 418.37 418.37 0 0 1 3.6-43.88c1.88-13.39 3.57-22.58 5.4-32 1-4.88 1.28-6.42 1.82-8.45a5.09 5.09 0 0 1 4.9-3.89h.69l32 5a5.07 5.07 0 0 1 4.16 5 5 5 0 0 1 0 .77l-1.7 8.78q-2.41 13.25-4.84 33.68a380.62 380.62 0 0 0-2.64 42.15q-.28 40.43 8.13 59.83a43.87 43.87 0 0 0 31.31 25.18A243 243 0 0 0 250 340.6h10.25a242.64 242.64 0 0 0 57.27-5.16 43.86 43.86 0 0 0 31.15-25.23q8.53-19.42 8.13-59.78a388 388 0 0 0-2.6-42.15q-2.48-20.38-4.89-33.68l-1.69-8.78a5 5 0 0 1 0-.77 5 5 0 0 1 4.2-5l32-5h.82a5 5 0 0 1 4.9 3.89c.55 2.05.81 3.57 1.83 8.45 1.82 9.62 3.52 18.78 5.39 32a415.71 415.71 0 0 1 3.61 43.88 228.06 228.06 0 0 1-.04 30.73z"], - "galactic-senate": [512, 512, [], "f50d", "M249.86 33.48v26.07C236.28 80.17 226 168.14 225.39 274.9c11.74-15.62 19.13-33.33 19.13-48.24v-16.88c-.03-5.32.75-10.53 2.19-15.65.65-2.14 1.39-4.08 2.62-5.82 1.23-1.75 3.43-3.79 6.68-3.79 3.24 0 5.45 2.05 6.68 3.79 1.23 1.75 1.97 3.68 2.62 5.82 1.44 5.12 2.22 10.33 2.19 15.65v16.88c0 14.91 7.39 32.62 19.13 48.24-.63-106.76-10.91-194.73-24.49-215.35V33.48h-12.28zm-26.34 147.77c-9.52 2.15-18.7 5.19-27.46 9.08 8.9 16.12 9.76 32.64 1.71 37.29-8 4.62-21.85-4.23-31.36-19.82-11.58 8.79-21.88 19.32-30.56 31.09 14.73 9.62 22.89 22.92 18.32 30.66-4.54 7.7-20.03 7.14-35.47-.96-5.78 13.25-9.75 27.51-11.65 42.42 9.68.18 18.67 2.38 26.18 6.04 17.78-.3 32.77-1.96 40.49-4.22 5.55-26.35 23.02-48.23 46.32-59.51.73-25.55 1.88-49.67 3.48-72.07zm64.96 0c1.59 22.4 2.75 46.52 3.47 72.07 23.29 11.28 40.77 33.16 46.32 59.51 7.72 2.26 22.71 3.92 40.49 4.22 7.51-3.66 16.5-5.85 26.18-6.04-1.9-14.91-5.86-29.17-11.65-42.42-15.44 8.1-30.93 8.66-35.47.96-4.57-7.74 3.6-21.05 18.32-30.66-8.68-11.77-18.98-22.3-30.56-31.09-9.51 15.59-23.36 24.44-31.36 19.82-8.05-4.65-7.19-21.16 1.71-37.29a147.49 147.49 0 0 0-27.45-9.08zm-32.48 8.6c-3.23 0-5.86 8.81-6.09 19.93h-.05v16.88c0 41.42-49.01 95.04-93.49 95.04-52 0-122.75-1.45-156.37 29.17v2.51c9.42 17.12 20.58 33.17 33.18 47.97C45.7 380.26 84.77 360.4 141.2 360c45.68 1.02 79.03 20.33 90.76 40.87.01.01-.01.04 0 .05 7.67 2.14 15.85 3.23 24.04 3.21 8.19.02 16.37-1.07 24.04-3.21.01-.01-.01-.04 0-.05 11.74-20.54 45.08-39.85 90.76-40.87 56.43.39 95.49 20.26 108.02 41.35 12.6-14.8 23.76-30.86 33.18-47.97v-2.51c-33.61-30.62-104.37-29.17-156.37-29.17-44.48 0-93.49-53.62-93.49-95.04v-16.88h-.05c-.23-11.12-2.86-19.93-6.09-19.93zm0 96.59c22.42 0 40.6 18.18 40.6 40.6s-18.18 40.65-40.6 40.65-40.6-18.23-40.6-40.65c0-22.42 18.18-40.6 40.6-40.6zm0 7.64c-18.19 0-32.96 14.77-32.96 32.96S237.81 360 256 360s32.96-14.77 32.96-32.96-14.77-32.96-32.96-32.96zm0 6.14c14.81 0 26.82 12.01 26.82 26.82s-12.01 26.82-26.82 26.82-26.82-12.01-26.82-26.82 12.01-26.82 26.82-26.82zm-114.8 66.67c-10.19.07-21.6.36-30.5 1.66.43 4.42 1.51 18.63 7.11 29.76 9.11-2.56 18.36-3.9 27.62-3.9 41.28.94 71.48 34.35 78.26 74.47l.11 4.7c10.4 1.91 21.19 2.94 32.21 2.94 11.03 0 21.81-1.02 32.21-2.94l.11-4.7c6.78-40.12 36.98-73.53 78.26-74.47 9.26 0 18.51 1.34 27.62 3.9 5.6-11.13 6.68-25.34 7.11-29.76-8.9-1.3-20.32-1.58-30.5-1.66-18.76.42-35.19 4.17-48.61 9.67-12.54 16.03-29.16 30.03-49.58 33.07-.09.02-.17.04-.27.05-.05.01-.11.04-.16.05-5.24 1.07-10.63 1.6-16.19 1.6-5.55 0-10.95-.53-16.19-1.6-.05-.01-.11-.04-.16-.05-.1-.02-.17-.04-.27-.05-20.42-3.03-37.03-17.04-49.58-33.07-13.42-5.49-29.86-9.25-48.61-9.67z"], - "ubuntu": [576, 512, [], "f7df", "M469.2 75A75.6 75.6 0 1 0 317.9 75a75.6 75.6 0 1 0 151.2 0zM154.2 240.7A75.6 75.6 0 1 0 3 240.7a75.6 75.6 0 1 0 151.2 0zM57 346C75.6 392.9 108 433 150 461.1s91.5 42.6 142 41.7c-14.7-18.6-22.9-41.5-23.2-65.2c-6.8-.9-13.3-2.1-19.5-3.4c-26.8-5.7-51.9-17.3-73.6-34s-39.3-38.1-51.7-62.5c-20.9 9.9-44.5 12.8-67.1 8.2zm395.1 89.8a75.6 75.6 0 1 0 -151.2 0 75.6 75.6 0 1 0 151.2 0zM444 351.6c18.5 14.8 31.6 35.2 37.2 58.2c33.3-41.3 52.6-92.2 54.8-145.2s-12.5-105.4-42.2-149.4c-8.6 21.5-24 39.6-43.8 51.6c15.4 28.6 22.9 60.8 21.9 93.2s-10.7 64-28 91.6zM101.1 135.4c12.4 2.7 24.3 7.5 35.1 14.3c16.6-24.2 38.9-44.1 64.8-58S255.8 70.4 285.2 70c.2-5.9 .9-11.9 2-17.7c3.6-16.7 11.1-32.3 21.8-45.5c-47.7-3.8-95.4 6-137.6 28.5S94.3 91.7 70.8 133.4c2.7-.2 5.3-.3 8-.3c7.5 0 15 .8 22.4 2.3z"], - "draft2digital": [480, 512, [], "f396", "M480 398.1l-144-82.2v64.7h-91.3c30.8-35 81.8-95.9 111.8-149.3 35.2-62.6 16.1-123.4-12.8-153.3-4.4-4.6-62.2-62.9-166-41.2-59.1 12.4-89.4 43.4-104.3 67.3-13.1 20.9-17 39.8-18.2 47.7-5.5 33 19.4 67.1 56.7 67.1 31.7 0 57.3-25.7 57.3-57.4 0-27.1-19.7-52.1-48-56.8 1.8-7.3 17.7-21.1 26.3-24.7 41.1-17.3 78 5.2 83.3 33.5 8.3 44.3-37.1 90.4-69.7 127.6C84.5 328.1 18.3 396.8 0 415.9l336-.1V480zM369.9 371l47.1 27.2-47.1 27.2zM134.2 161.4c0 12.4-10 22.4-22.4 22.4s-22.4-10-22.4-22.4 10-22.4 22.4-22.4 22.4 10.1 22.4 22.4zM82.5 380.5c25.6-27.4 97.7-104.7 150.8-169.9 35.1-43.1 40.3-82.4 28.4-112.7-7.4-18.8-17.5-30.2-24.3-35.7 45.3 2.1 68 23.4 82.2 38.3 0 0 42.4 48.2 5.8 113.3-37 65.9-110.9 147.5-128.5 166.7z"], - "stripe": [640, 512, [], "f429", "M165 144.7l-43.3 9.2-.2 142.4c0 26.3 19.8 43.3 46.1 43.3 14.6 0 25.3-2.7 31.2-5.9v-33.8c-5.7 2.3-33.7 10.5-33.7-15.7V221h33.7v-37.8h-33.7zm89.1 51.6l-2.7-13.1H213v153.2h44.3V233.3c10.5-13.8 28.2-11.1 33.9-9.3v-40.8c-6-2.1-26.7-6-37.1 13.1zm92.3-72.3l-44.6 9.5v36.2l44.6-9.5zM44.9 228.3c0-6.9 5.8-9.6 15.1-9.7 13.5 0 30.7 4.1 44.2 11.4v-41.8c-14.7-5.8-29.4-8.1-44.1-8.1-36 0-60 18.8-60 50.2 0 49.2 67.5 41.2 67.5 62.4 0 8.2-7.1 10.9-17 10.9-14.7 0-33.7-6.1-48.6-14.2v40c16.5 7.1 33.2 10.1 48.5 10.1 36.9 0 62.3-15.8 62.3-47.8 0-52.9-67.9-43.4-67.9-63.4zM640 261.6c0-45.5-22-81.4-64.2-81.4s-67.9 35.9-67.9 81.1c0 53.5 30.3 78.2 73.5 78.2 21.2 0 37.1-4.8 49.2-11.5v-33.4c-12.1 6.1-26 9.8-43.6 9.8-17.3 0-32.5-6.1-34.5-26.9h86.9c.2-2.3.6-11.6.6-15.9zm-87.9-16.8c0-20 12.3-28.4 23.4-28.4 10.9 0 22.5 8.4 22.5 28.4zm-112.9-64.6c-17.4 0-28.6 8.2-34.8 13.9l-2.3-11H363v204.8l44.4-9.4.1-50.2c6.4 4.7 15.9 11.2 31.4 11.2 31.8 0 60.8-23.2 60.8-79.6.1-51.6-29.3-79.7-60.5-79.7zm-10.6 122.5c-10.4 0-16.6-3.8-20.9-8.4l-.3-66c4.6-5.1 11-8.8 21.2-8.8 16.2 0 27.4 18.2 27.4 41.4.1 23.9-10.9 41.8-27.4 41.8zm-126.7 33.7h44.6V183.2h-44.6z"], - "houzz": [448, 512, [], "f27c", "M275.9 330.7H171.3V480H17V32h109.5v104.5l305.1 85.6V480H275.9z"], - "gg": [512, 512, [], "f260", "M179.2 230.4l102.4 102.4-102.4 102.4L0 256 179.2 76.8l44.8 44.8-25.6 25.6-19.2-19.2-128 128 128 128 51.5-51.5-77.1-76.5 25.6-25.6zM332.8 76.8L230.4 179.2l102.4 102.4 25.6-25.6-77.1-76.5 51.5-51.5 128 128-128 128-19.2-19.2-25.6 25.6 44.8 44.8L512 256 332.8 76.8z"], - "dhl": [640, 512, [], "f790", "M238 301.2h58.7L319 271h-58.7L238 301.2zM0 282.9v6.4h81.8l4.7-6.4H0zM172.9 271c-8.7 0-6-3.6-4.6-5.5 2.8-3.8 7.6-10.4 10.4-14.1 2.8-3.7 2.8-5.9-2.8-5.9h-51l-41.1 55.8h100.1c33.1 0 51.5-22.5 57.2-30.3h-68.2zm317.5-6.9l39.3-53.4h-62.2l-39.3 53.4h62.2zM95.3 271H0v6.4h90.6l4.7-6.4zm111-26.6c-2.8 3.8-7.5 10.4-10.3 14.2-1.4 2-4.1 5.5 4.6 5.5h45.6s7.3-10 13.5-18.4c8.4-11.4.7-35-29.2-35H112.6l-20.4 27.8h111.4c5.6 0 5.5 2.2 2.7 5.9zM0 301.2h73.1l4.7-6.4H0v6.4zm323 0h58.7L404 271h-58.7c-.1 0-22.3 30.2-22.3 30.2zm222 .1h95v-6.4h-90.3l-4.7 6.4zm22.3-30.3l-4.7 6.4H640V271h-72.7zm-13.5 18.3H640v-6.4h-81.5l-4.7 6.4zm-164.2-78.6l-22.5 30.6h-26.2l22.5-30.6h-58.7l-39.3 53.4H409l39.3-53.4h-58.7zm33.5 60.3s-4.3 5.9-6.4 8.7c-7.4 10-.9 21.6 23.2 21.6h94.3l22.3-30.3H423.1z"], - "square-pinterest": [448, 512, ["pinterest-square"], "f0d3", "M384 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64h72.6l-2.2-.8c-5.4-48.1-3.1-57.5 15.7-134.7c3.9-16 8.5-35 13.9-57.9c0 0-7.3-14.8-7.3-36.5c0-70.7 75.5-78 75.5-25c0 13.5-5.4 31.1-11.2 49.8c-3.3 10.6-6.6 21.5-9.1 32c-5.7 24.5 12.3 44.4 36.4 44.4c43.7 0 77.2-46 77.2-112.4c0-58.8-42.3-99.9-102.6-99.9C153 139 112 191.4 112 245.6c0 21.1 8.2 43.7 18.3 56c2 2.4 2.3 4.5 1.7 7c-1.1 4.7-3.1 12.9-4.7 19.2c-1 4-1.8 7.3-2.1 8.6c-1.1 4.5-3.5 5.5-8.2 3.3c-30.6-14.3-49.8-59.1-49.8-95.1C67.2 167.1 123.4 96 229.4 96c85.2 0 151.4 60.7 151.4 141.8c0 84.6-53.3 152.7-127.4 152.7c-24.9 0-48.3-12.9-56.3-28.2c0 0-12.3 46.9-15.3 58.4c-5 19.3-17.6 42.9-27.4 59.3H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64z"], - "xing": [384, 512, [], "f168", "M162.7 210c-1.8 3.3-25.2 44.4-70.1 123.5-4.9 8.3-10.8 12.5-17.7 12.5H9.8c-7.7 0-12.1-7.5-8.5-14.4l69-121.3c.2 0 .2-.1 0-.3l-43.9-75.6c-4.3-7.8.3-14.1 8.5-14.1H100c7.3 0 13.3 4.1 18 12.2l44.7 77.5zM382.6 46.1l-144 253v.3L330.2 466c3.9 7.1.2 14.1-8.5 14.1h-65.2c-7.6 0-13.6-4-18-12.2l-92.4-168.5c3.3-5.8 51.5-90.8 144.8-255.2 4.6-8.1 10.4-12.2 17.5-12.2h65.7c8 0 12.3 6.7 8.5 14.1z"], - "blackberry": [512, 512, [], "f37b", "M166 116.9c0 23.4-16.4 49.1-72.5 49.1H23.4l21-88.8h67.8c42.1 0 53.8 23.3 53.8 39.7zm126.2-39.7h-67.8L205.7 166h70.1c53.8 0 70.1-25.7 70.1-49.1.1-16.4-11.6-39.7-53.7-39.7zM88.8 208.1H21L0 296.9h70.1c56.1 0 72.5-23.4 72.5-49.1 0-16.3-11.7-39.7-53.8-39.7zm180.1 0h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1 0-16.3-11.7-39.7-53.7-39.7zm189.3-53.8h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7zm-28 137.9h-67.8L343.7 381h70.1c56.1 0 70.1-23.4 70.1-49.1 0-16.3-11.6-39.7-53.7-39.7zM240.8 346H173l-18.7 88.8h70.1c56.1 0 70.1-25.7 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7z"], - "creative-commons-pd": [496, 512, [], "f4ec", "M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm0 449.5c-139.2 0-235.8-138-190.2-267.9l78.8 35.1c-2.1 10.5-3.3 21.5-3.3 32.9 0 99 73.9 126.9 120.4 126.9 22.9 0 53.5-6.7 79.4-29.5L297 311.1c-5.5 6.3-17.6 16.7-36.3 16.7-37.8 0-53.7-39.9-53.9-71.9 230.4 102.6 216.5 96.5 217.9 96.8-34.3 62.4-100.6 104.8-176.7 104.8zm194.2-150l-224-100c18.8-34 54.9-30.7 74.7-11l40.4-41.6c-27.1-23.3-58-27.5-78.1-27.5-47.4 0-80.9 20.5-100.7 51.6l-74.9-33.4c36.1-54.9 98.1-91.2 168.5-91.2 111.1 0 201.5 90.4 201.5 201.5 0 18-2.4 35.4-6.8 52-.3-.1-.4-.2-.6-.4z"], - "playstation": [576, 512, [], "f3df", "M570.9 372.3c-11.3 14.2-38.8 24.3-38.8 24.3L327 470.2v-54.3l150.9-53.8c17.1-6.1 19.8-14.8 5.8-19.4-13.9-4.6-39.1-3.3-56.2 2.9L327 381.1v-56.4c23.2-7.8 47.1-13.6 75.7-16.8 40.9-4.5 90.9.6 130.2 15.5 44.2 14 49.2 34.7 38 48.9zm-224.4-92.5v-139c0-16.3-3-31.3-18.3-35.6-11.7-3.8-19 7.1-19 23.4v347.9l-93.8-29.8V32c39.9 7.4 98 24.9 129.2 35.4C424.1 94.7 451 128.7 451 205.2c0 74.5-46 102.8-104.5 74.6zM43.2 410.2c-45.4-12.8-53-39.5-32.3-54.8 19.1-14.2 51.7-24.9 51.7-24.9l134.5-47.8v54.5l-96.8 34.6c-17.1 6.1-19.7 14.8-5.8 19.4 13.9 4.6 39.1 3.3 56.2-2.9l46.4-16.9v48.8c-51.6 9.3-101.4 7.3-153.9-10z"], - "quinscape": [512, 512, [], "f459", "M313.6 474.6h-1a158.1 158.1 0 0 1 0-316.2c94.9 0 168.2 83.1 157 176.6 4 5.1 8.2 9.6 11.2 15.3 13.4-30.3 20.3-62.4 20.3-97.7C501.1 117.5 391.6 8 256.5 8S12 117.5 12 252.6s109.5 244.6 244.5 244.6a237.36 237.36 0 0 0 70.4-10.1c-5.2-3.5-8.9-8.1-13.3-12.5zm-.1-.1l.4.1zm78.4-168.9a99.2 99.2 0 1 0 99.2 99.2 99.18 99.18 0 0 0-99.2-99.2z"], - "less": [640, 512, [], "f41d", "M612.7 219c0-20.5 3.2-32.6 3.2-54.6 0-34.2-12.6-45.2-40.5-45.2h-20.5v24.2h6.3c14.2 0 17.3 4.7 17.3 22.1 0 16.3-1.6 32.6-1.6 51.5 0 24.2 7.9 33.6 23.6 37.3v1.6c-15.8 3.7-23.6 13.1-23.6 37.3 0 18.9 1.6 34.2 1.6 51.5 0 17.9-3.7 22.6-17.3 22.6v.5h-6.3V393h20.5c27.8 0 40.5-11 40.5-45.2 0-22.6-3.2-34.2-3.2-54.6 0-11 6.8-22.6 27.3-23.6v-27.3c-20.5-.7-27.3-12.3-27.3-23.3zm-105.6 32c-15.8-6.3-30.5-10-30.5-20.5 0-7.9 6.3-12.6 17.9-12.6s22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-21 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51s-22.5-41-43-47.8zm-358.9 59.4c-3.7 0-8.4-3.2-8.4-13.1V119.1H65.2c-28.4 0-41 11-41 45.2 0 22.6 3.2 35.2 3.2 54.6 0 11-6.8 22.6-27.3 23.6v27.3c20.5.5 27.3 12.1 27.3 23.1 0 19.4-3.2 31-3.2 53.6 0 34.2 12.6 45.2 40.5 45.2h20.5v-24.2h-6.3c-13.1 0-17.3-5.3-17.3-22.6s1.6-32.1 1.6-51.5c0-24.2-7.9-33.6-23.6-37.3v-1.6c15.8-3.7 23.6-13.1 23.6-37.3 0-18.9-1.6-34.2-1.6-51.5s3.7-22.1 17.3-22.1H93v150.8c0 32.1 11 53.1 43.1 53.1 10 0 17.9-1.6 23.6-3.7l-5.3-34.2c-3.1.8-4.6.8-6.2.8zM379.9 251c-16.3-6.3-31-10-31-20.5 0-7.9 6.3-12.6 17.9-12.6 11.6 0 22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-20.5 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51 .1-28.9-22.5-41-43-47.8zm-155-68.8c-38.4 0-75.1 32.1-74.1 82.5 0 52 34.2 82.5 79.3 82.5 18.9 0 39.9-6.8 56.2-17.9l-15.8-27.8c-11.6 6.8-22.6 10-34.2 10-21 0-37.3-10-41.5-34.2H290c.5-3.7 1.6-11 1.6-19.4.6-42.6-22.6-75.7-66.7-75.7zm-30 66.2c3.2-21 15.8-31 30.5-31 18.9 0 26.3 13.1 26.3 31h-56.8z"], - "blogger-b": [448, 512, [], "f37d", "M446.6 222.7c-1.8-8-6.8-15.4-12.5-18.5-1.8-1-13-2.2-25-2.7-20.1-.9-22.3-1.3-28.7-5-10.1-5.9-12.8-12.3-12.9-29.5-.1-33-13.8-63.7-40.9-91.3-19.3-19.7-40.9-33-65.5-40.5-5.9-1.8-19.1-2.4-63.3-2.9-69.4-.8-84.8.6-108.4 10C45.9 59.5 14.7 96.1 3.3 142.9 1.2 151.7.7 165.8.2 246.8c-.6 101.5.1 116.4 6.4 136.5 15.6 49.6 59.9 86.3 104.4 94.3 14.8 2.7 197.3 3.3 216 .8 32.5-4.4 58-17.5 81.9-41.9 17.3-17.7 28.1-36.8 35.2-62.1 4.9-17.6 4.5-142.8 2.5-151.7zm-322.1-63.6c7.8-7.9 10-8.2 58.8-8.2 43.9 0 45.4.1 51.8 3.4 9.3 4.7 13.4 11.3 13.4 21.9 0 9.5-3.8 16.2-12.3 21.6-4.6 2.9-7.3 3.1-50.3 3.3-26.5.2-47.7-.4-50.8-1.2-16.6-4.7-22.8-28.5-10.6-40.8zm191.8 199.8l-14.9 2.4-77.5.9c-68.1.8-87.3-.4-90.9-2-7.1-3.1-13.8-11.7-14.9-19.4-1.1-7.3 2.6-17.3 8.2-22.4 7.1-6.4 10.2-6.6 97.3-6.7 89.6-.1 89.1-.1 97.6 7.8 12.1 11.3 9.5 31.2-4.9 39.4z"], - "opencart": [640, 512, [], "f23d", "M423.3 440.7c0 25.3-20.3 45.6-45.6 45.6s-45.8-20.3-45.8-45.6 20.6-45.8 45.8-45.8c25.4 0 45.6 20.5 45.6 45.8zm-253.9-45.8c-25.3 0-45.6 20.6-45.6 45.8s20.3 45.6 45.6 45.6 45.8-20.3 45.8-45.6-20.5-45.8-45.8-45.8zm291.7-270C158.9 124.9 81.9 112.1 0 25.7c34.4 51.7 53.3 148.9 373.1 144.2 333.3-5 130 86.1 70.8 188.9 186.7-166.7 319.4-233.9 17.2-233.9z"], - "vine": [384, 512, [], "f1ca", "M384 254.7v52.1c-18.4 4.2-36.9 6.1-52.1 6.1-36.9 77.4-103 143.8-125.1 156.2-14 7.9-27.1 8.4-42.7-.8C137 452 34.2 367.7 0 102.7h74.5C93.2 261.8 139 343.4 189.3 404.5c27.9-27.9 54.8-65.1 75.6-106.9-49.8-25.3-80.1-80.9-80.1-145.6 0-65.6 37.7-115.1 102.2-115.1 114.9 0 106.2 127.9 81.6 181.5 0 0-46.4 9.2-63.5-20.5 3.4-11.3 8.2-30.8 8.2-48.5 0-31.3-11.3-46.6-28.4-46.6-18.2 0-30.8 17.1-30.8 50 .1 79.2 59.4 118.7 129.9 101.9z"], - "signal-messenger": [512, 512, [], "e663", "M256 0c13.3 0 26.3 1 39.1 3l-3.7 23.7C279.9 24.9 268 24 256 24s-23.9 .9-35.4 2.7L216.9 3C229.7 1 242.7 0 256 0zm60.8 7.3l-5.7 23.3c23.4 5.7 45.4 14.9 65.4 27.1l12.5-20.5c-22.1-13.4-46.4-23.6-72.2-29.9zm90.5 42.2L393.1 68.8c19.1 14 36 30.9 50.1 50.1l19.4-14.2C447 83.6 428.4 65 407.3 49.5zm67.5 73.6l-20.5 12.5c12.2 20 21.4 42 27.1 65.4l23.3-5.7c-6.3-25.8-16.5-50.1-29.9-72.2zM509 216.9l-23.7 3.7c1.8 11.5 2.7 23.4 2.7 35.4s-.9 23.9-2.7 35.4l23.7 3.7c1.9-12.7 3-25.8 3-39.1s-1-26.3-3-39.1zM454.3 376.5c12.2-20 21.4-42 27.1-65.4l23.3 5.7c-6.3 25.8-16.5 50.1-29.9 72.2l-20.5-12.5zm-11.1 16.6l19.4 14.2c-15.5 21.1-34.1 39.8-55.2 55.2l-14.2-19.4c19.1-14 36-30.9 50.1-50.1zm-66.7 61.2l12.5 20.5c-22.1 13.4-46.4 23.6-72.2 29.9l-5.7-23.3c23.4-5.7 45.4-14.9 65.4-27.1zm-85.1 31l3.7 23.7c-12.7 1.9-25.8 3-39.1 3s-26.3-1-39.1-3l3.7-23.7c11.5 1.8 23.4 2.7 35.4 2.7s23.9-.9 35.4-2.7zm-90.5-3.9l-5.7 23.3c-19.4-4.7-37.9-11.6-55.3-20.5l-24.3 5.7-5.5-23.4 32.8-7.7 7.8 4c15.7 8 32.5 14.3 50.1 18.6zM90 471.3l5.5 23.4-41.6 9.7C26 510.8 1.2 486 7.6 458.2l9.7-41.6L40.7 422 31 463.7c-2.4 10.4 6.9 19.7 17.3 17.3L90 471.3zM45.5 401.8l-23.4-5.5L27.8 372C18.9 354.7 12 336.1 7.3 316.7l23.3-5.7c4.3 17.6 10.6 34.4 18.6 50.1l4 7.8-7.7 32.8zM26.7 291.4L3 295.1C1 282.3 0 269.3 0 256s1-26.3 3-39.1l23.7 3.7C24.9 232.1 24 244 24 256s.9 23.9 2.7 35.4zm3.9-90.5L7.3 195.2c6.3-25.8 16.5-50.1 29.9-72.2l20.5 12.5c-12.2 20-21.4 42-27.1 65.4zm38.3-82.1L49.5 104.7C65 83.6 83.6 65 104.7 49.5l14.2 19.4c-19.1 14-36 30.9-50.1 50.1zm66.7-61.2L123.1 37.2c22.1-13.4 46.4-23.6 72.2-29.9l5.7 23.3c-23.4 5.7-45.4 14.9-65.4 27.1zM464 256c0 114.9-93.1 208-208 208c-36.4 0-70.7-9.4-100.5-25.8c-2.9-1.6-6.2-2.1-9.4-1.4L53.6 458.4l21.6-92.5c.7-3.2 .2-6.5-1.4-9.4C57.4 326.7 48 292.4 48 256C48 141.1 141.1 48 256 48s208 93.1 208 208z"], - "paypal": [384, 512, [], "f1ed", "M111.4 295.9c-3.5 19.2-17.4 108.7-21.5 134-.3 1.8-1 2.5-3 2.5H12.3c-7.6 0-13.1-6.6-12.1-13.9L58.8 46.6c1.5-9.6 10.1-16.9 20-16.9 152.3 0 165.1-3.7 204 11.4 60.1 23.3 65.6 79.5 44 140.3-21.5 62.6-72.5 89.5-140.1 90.3-43.4.7-69.5-7-75.3 24.2zM357.1 152c-1.8-1.3-2.5-1.8-3 1.3-2 11.4-5.1 22.5-8.8 33.6-39.9 113.8-150.5 103.9-204.5 103.9-6.1 0-10.1 3.3-10.9 9.4-22.6 140.4-27.1 169.7-27.1 169.7-1 7.1 3.5 12.9 10.6 12.9h63.5c8.6 0 15.7-6.3 17.4-14.9.7-5.4-1.1 6.1 14.4-91.3 4.6-22 14.3-19.7 29.3-19.7 71 0 126.4-28.8 142.9-112.3 6.5-34.8 4.6-71.4-23.8-92.6z"], - "gitlab": [512, 512, [], "f296", "M503.5 204.6L502.8 202.8L433.1 21.02C431.7 17.45 429.2 14.43 425.9 12.38C423.5 10.83 420.8 9.865 417.9 9.57C415 9.275 412.2 9.653 409.5 10.68C406.8 11.7 404.4 13.34 402.4 15.46C400.5 17.58 399.1 20.13 398.3 22.9L351.3 166.9H160.8L113.7 22.9C112.9 20.13 111.5 17.59 109.6 15.47C107.6 13.35 105.2 11.72 102.5 10.7C99.86 9.675 96.98 9.295 94.12 9.587C91.26 9.878 88.51 10.83 86.08 12.38C82.84 14.43 80.33 17.45 78.92 21.02L9.267 202.8L8.543 204.6C-1.484 230.8-2.72 259.6 5.023 286.6C12.77 313.5 29.07 337.3 51.47 354.2L51.74 354.4L52.33 354.8L158.3 434.3L210.9 474L242.9 498.2C246.6 500.1 251.2 502.5 255.9 502.5C260.6 502.5 265.2 500.1 268.9 498.2L300.9 474L353.5 434.3L460.2 354.4L460.5 354.1C482.9 337.2 499.2 313.5 506.1 286.6C514.7 259.6 513.5 230.8 503.5 204.6z"], - "typo3": [448, 512, [], "f42b", "M178.7 78.4c0-24.7 5.4-32.4 13.9-39.4-69.5 8.5-149.3 34-176.3 66.4-5.4 7.7-9.3 20.8-9.3 37.1C7 246 113.8 480 191.1 480c36.3 0 97.3-59.5 146.7-139-7 2.3-11.6 2.3-18.5 2.3-57.2 0-140.6-198.5-140.6-264.9zM301.5 32c-30.1 0-41.7 5.4-41.7 36.3 0 66.4 53.8 198.5 101.7 198.5 26.3 0 78.8-99.7 78.8-182.3 0-40.9-67-52.5-138.8-52.5z"], - "reddit-alien": [512, 512, [], "f281", "M373 138.6c-25.2 0-46.3-17.5-51.9-41l0 0c-30.6 4.3-54.2 30.7-54.2 62.4l0 .2c47.4 1.8 90.6 15.1 124.9 36.3c12.6-9.7 28.4-15.5 45.5-15.5c41.3 0 74.7 33.4 74.7 74.7c0 29.8-17.4 55.5-42.7 67.5c-2.4 86.8-97 156.6-213.2 156.6S45.5 410.1 43 323.4C17.6 311.5 0 285.7 0 255.7c0-41.3 33.4-74.7 74.7-74.7c17.2 0 33 5.8 45.7 15.6c34-21.1 76.8-34.4 123.7-36.4l0-.3c0-44.3 33.7-80.9 76.8-85.5C325.8 50.2 347.2 32 373 32c29.4 0 53.3 23.9 53.3 53.3s-23.9 53.3-53.3 53.3zM157.5 255.3c-20.9 0-38.9 20.8-40.2 47.9s17.1 38.1 38 38.1s36.6-9.8 37.8-36.9s-14.7-49.1-35.7-49.1zM395 303.1c-1.2-27.1-19.2-47.9-40.2-47.9s-36.9 22-35.7 49.1c1.2 27.1 16.9 36.9 37.8 36.9s39.3-11 38-38.1zm-60.1 70.8c1.5-3.6-1-7.7-4.9-8.1c-23-2.3-47.9-3.6-73.8-3.6s-50.8 1.3-73.8 3.6c-3.9 .4-6.4 4.5-4.9 8.1c12.9 30.8 43.3 52.4 78.7 52.4s65.8-21.6 78.7-52.4z"], - "yahoo": [512, 512, [], "f19e", "M223.69,141.06,167,284.23,111,141.06H14.93L120.76,390.19,82.19,480h94.17L317.27,141.06Zm105.4,135.79a58.22,58.22,0,1,0,58.22,58.22A58.22,58.22,0,0,0,329.09,276.85ZM394.65,32l-93,223.47H406.44L499.07,32Z"], - "dailymotion": [448, 512, [], "e052", "M298.93,267a48.4,48.4,0,0,0-24.36-6.21q-19.83,0-33.44,13.27t-13.61,33.42q0,21.16,13.28,34.6t33.43,13.44q20.5,0,34.11-13.78T322,307.47A47.13,47.13,0,0,0,315.9,284,44.13,44.13,0,0,0,298.93,267ZM0,32V480H448V32ZM374.71,405.26h-53.1V381.37h-.67q-15.79,26.2-55.78,26.2-27.56,0-48.89-13.1a88.29,88.29,0,0,1-32.94-35.77q-11.6-22.68-11.59-50.89,0-27.56,11.76-50.22a89.9,89.9,0,0,1,32.93-35.78q21.18-13.09,47.72-13.1a80.87,80.87,0,0,1,29.74,5.21q13.28,5.21,25,17V153l55.79-12.09Z"], - "affiliatetheme": [512, 512, [], "f36b", "M159.7 237.4C108.4 308.3 43.1 348.2 14 326.6-15.2 304.9 2.8 230 54.2 159.1c51.3-70.9 116.6-110.8 145.7-89.2 29.1 21.6 11.1 96.6-40.2 167.5zm351.2-57.3C437.1 303.5 319 367.8 246.4 323.7c-25-15.2-41.3-41.2-49-73.8-33.6 64.8-92.8 113.8-164.1 133.2 49.8 59.3 124.1 96.9 207 96.9 150 0 271.6-123.1 271.6-274.9.1-8.5-.3-16.8-1-25z"], - "pied-piper-pp": [448, 512, [], "f1a7", "M205.3 174.6c0 21.1-14.2 38.1-31.7 38.1-7.1 0-12.8-1.2-17.2-3.7v-68c4.4-2.7 10.1-4.2 17.2-4.2 17.5 0 31.7 16.9 31.7 37.8zm52.6 67c-7.1 0-12.8 1.5-17.2 4.2v68c4.4 2.5 10.1 3.7 17.2 3.7 17.4 0 31.7-16.9 31.7-37.8 0-21.1-14.3-38.1-31.7-38.1zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM185 255.1c41 0 74.2-35.6 74.2-79.6 0-44-33.2-79.6-74.2-79.6-12 0-24.1 3.2-34.6 8.8h-45.7V311l51.8-10.1v-50.6c8.6 3.1 18.1 4.8 28.5 4.8zm158.4 25.3c0-44-33.2-79.6-73.9-79.6-3.2 0-6.4.2-9.6.7-3.7 12.5-10.1 23.8-19.2 33.4-13.8 15-32.2 23.8-51.8 24.8V416l51.8-10.1v-50.6c8.6 3.2 18.2 4.7 28.7 4.7 40.8 0 74-35.6 74-79.6z"], - "bootstrap": [576, 512, [], "f836", "M333.5,201.4c0-22.1-15.6-34.3-43-34.3h-50.4v71.2h42.5C315.4,238.2,333.5,225,333.5,201.4z M517,188.6 c-9.5-30.9-10.9-68.8-9.8-98.1c1.1-30.5-22.7-58.5-54.7-58.5H123.7c-32.1,0-55.8,28.1-54.7,58.5c1,29.3-0.3,67.2-9.8,98.1 c-9.6,31-25.7,50.6-52.2,53.1v28.5c26.4,2.5,42.6,22.1,52.2,53.1c9.5,30.9,10.9,68.8,9.8,98.1c-1.1,30.5,22.7,58.5,54.7,58.5h328.7 c32.1,0,55.8-28.1,54.7-58.5c-1-29.3,0.3-67.2,9.8-98.1c9.6-31,25.7-50.6,52.1-53.1v-28.5C542.7,239.2,526.5,219.6,517,188.6z M300.2,375.1h-97.9V136.8h97.4c43.3,0,71.7,23.4,71.7,59.4c0,25.3-19.1,47.9-43.5,51.8v1.3c33.2,3.6,55.5,26.6,55.5,58.3 C383.4,349.7,352.1,375.1,300.2,375.1z M290.2,266.4h-50.1v78.4h52.3c34.2,0,52.3-13.7,52.3-39.5 C344.7,279.6,326.1,266.4,290.2,266.4z"], - "odnoklassniki": [320, 512, [], "f263", "M275.1 334c-27.4 17.4-65.1 24.3-90 26.9l20.9 20.6 76.3 76.3c27.9 28.6-17.5 73.3-45.7 45.7-19.1-19.4-47.1-47.4-76.3-76.6L84 503.4c-28.2 27.5-73.6-17.6-45.4-45.7 19.4-19.4 47.1-47.4 76.3-76.3l20.6-20.6c-24.6-2.6-62.9-9.1-90.6-26.9-32.6-21-46.9-33.3-34.3-59 7.4-14.6 27.7-26.9 54.6-5.7 0 0 36.3 28.9 94.9 28.9s94.9-28.9 94.9-28.9c26.9-21.1 47.1-8.9 54.6 5.7 12.4 25.7-1.9 38-34.5 59.1zM30.3 129.7C30.3 58 88.6 0 160 0s129.7 58 129.7 129.7c0 71.4-58.3 129.4-129.7 129.4s-129.7-58-129.7-129.4zm66 0c0 35.1 28.6 63.7 63.7 63.7s63.7-28.6 63.7-63.7c0-35.4-28.6-64-63.7-64s-63.7 28.6-63.7 64z"], - "nfc-symbol": [576, 512, [], "e531", "M392.9 32.43C400.6 31.1 408.6 32.89 414.1 37.41C498.2 96.14 544 173.7 544 255.1C544 338.2 498.2 415.9 414.1 474.6C409.3 478.6 402.4 480.5 395.5 479.9C388.5 479.3 382 476.3 377.1 471.4L193.7 288.7C188.1 283.2 185 275.7 184.1 267.8C184.1 260 188.1 252.5 193.6 246.9C199.2 241.4 206.7 238.2 214.5 238.2C222.4 238.2 229.9 241.3 235.4 246.8L400.5 411.2C455.1 366.5 484.8 312 484.8 255.1C484.8 193.5 447.9 132.9 380.9 85.76C374.5 81.24 370.1 74.35 368.8 66.62C367.4 58.89 369.2 50.94 373.8 44.53C378.3 38.12 385.2 33.77 392.9 32.43V32.43zM186.9 479.6C179.2 480.9 171.3 479.1 164.8 474.6C81.67 415.9 35.84 338.2 35.84 255.1C35.84 173.7 81.67 96.14 164.8 37.41C170.5 33.4 177.4 31.53 184.4 32.12C191.3 32.71 197.8 35.72 202.7 40.63L386.1 223.3C391.7 228.8 394.8 236.3 394.8 244.2C394.9 251.1 391.8 259.5 386.2 265.1C380.7 270.6 373.2 273.8 365.3 273.8C357.5 273.8 349.1 270.7 344.4 265.2L179.3 100.7C124.7 145.9 95.03 199.9 95.03 255.1C95.03 318.5 131.9 379.1 198.1 426.2C205.4 430.8 209.7 437.6 211.1 445.4C212.4 453.1 210.6 461.1 206.1 467.5C201.6 473.9 194.7 478.2 186.9 479.6V479.6z"], - "mintbit": [512, 512, [], "e62f", "M73.2 512V438.9H365.7V365.7h73.2V219.4H512V0H292.6V73.1H146.3v73.2H73.2V438.9H0V512H73.2zm73.1-219.4h73.2v73.1H146.3V292.6zm73.2-73.1h73.1v73.1H219.4V219.4zm73.1 0V146.3h73.2v73.1H292.6zM365.7 73.1h73.2v73.2H365.7V73.1z"], - "ethereum": [320, 512, [], "f42e", "M311.9 260.8L160 353.6 8 260.8 160 0l151.9 260.8zM160 383.4L8 290.6 160 512l152-221.4-152 92.8z"], - "speaker-deck": [512, 512, [], "f83c", "M213.86 296H100a100 100 0 0 1 0-200h132.84a40 40 0 0 1 0 80H98c-26.47 0-26.45 40 0 40h113.82a100 100 0 0 1 0 200H40a40 40 0 0 1 0-80h173.86c26.48 0 26.46-40 0-40zM298 416a120.21 120.21 0 0 0 51.11-80h64.55a19.83 19.83 0 0 0 19.66-20V196a19.83 19.83 0 0 0-19.66-20H296.42a60.77 60.77 0 0 0 0-80h136.93c43.44 0 78.65 35.82 78.65 80v160c0 44.18-35.21 80-78.65 80z"], - "creative-commons-nc-eu": [496, 512, [], "f4e9", "M247.7 8C103.6 8 0 124.8 0 256c0 136.3 111.7 248 247.7 248C377.9 504 496 403.1 496 256 496 117 388.4 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-23.2 3.7-45.2 10.9-66l65.7 29.1h-4.7v29.5h23.3c0 6.2-.4 3.2-.4 19.5h-22.8v29.5h27c11.4 67 67.2 101.3 124.6 101.3 26.6 0 50.6-7.9 64.8-15.8l-10-46.1c-8.7 4.6-28.2 10.8-47.3 10.8-28.2 0-58.1-10.9-67.3-50.2h90.3l128.3 56.8c-1.5 2.1-56.2 104.3-178.8 104.3zm-16.7-190.6l-.5-.4.9.4h-.4zm77.2-19.5h3.7v-29.5h-70.3l-28.6-12.6c2.5-5.5 5.4-10.5 8.8-14.3 12.9-15.8 31.1-22.4 51.1-22.4 18.3 0 35.3 5.4 46.1 10l11.6-47.3c-15-6.6-37-12.4-62.3-12.4-39 0-72.2 15.8-95.9 42.3-5.3 6.1-9.8 12.9-13.9 20.1l-81.6-36.1c64.6-96.8 157.7-93.6 170.7-93.6 113 0 203 90.2 203 203.4 0 18.7-2.1 36.3-6.3 52.9l-136.1-60.5z"], - "patreon": [512, 512, [], "f3d9", "M489.7 153.8c-.1-65.4-51-119-110.7-138.3C304.8-8.5 207-5 136.1 28.4C50.3 68.9 23.3 157.7 22.3 246.2C21.5 319 28.7 510.6 136.9 512c80.3 1 92.3-102.5 129.5-152.3c26.4-35.5 60.5-45.5 102.4-55.9c72-17.8 121.1-74.7 121-150z"], - "avianex": [512, 512, [], "f374", "M453.1 32h-312c-38.9 0-76.2 31.2-83.3 69.7L1.2 410.3C-5.9 448.8 19.9 480 58.9 480h312c38.9 0 76.2-31.2 83.3-69.7l56.7-308.5c7-38.6-18.8-69.8-57.8-69.8zm-58.2 347.3l-32 13.5-115.4-110c-14.7 10-29.2 19.5-41.7 27.1l22.1 64.2-17.9 12.7-40.6-61-52.4-48.1 15.7-15.4 58 31.1c9.3-10.5 20.8-22.6 32.8-34.9L203 228.9l-68.8-99.8 18.8-28.9 8.9-4.8L265 207.8l4.9 4.5c19.4-18.8 33.8-32.4 33.8-32.4 7.7-6.5 21.5-2.9 30.7 7.9 9 10.5 10.6 24.7 2.7 31.3-1.8 1.3-15.5 11.4-35.3 25.6l4.5 7.3 94.9 119.4-6.3 7.9z"], - "ello": [496, 512, [], "f5f1", "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm143.84 285.2C375.31 358.51 315.79 404.8 248 404.8s-127.31-46.29-143.84-111.6c-1.65-7.44 2.48-15.71 9.92-17.36 7.44-1.65 15.71 2.48 17.36 9.92 14.05 52.91 62 90.11 116.56 90.11s102.51-37.2 116.56-90.11c1.65-7.44 9.92-12.4 17.36-9.92 7.44 1.65 12.4 9.92 9.92 17.36z"], - "gofore": [400, 512, [], "f3a7", "M324 319.8h-13.2v34.7c-24.5 23.1-56.3 35.8-89.9 35.8-73.2 0-132.4-60.2-132.4-134.4 0-74.1 59.2-134.4 132.4-134.4 35.3 0 68.6 14 93.6 39.4l62.3-63.3C335 55.3 279.7 32 220.7 32 98 32 0 132.6 0 256c0 122.5 97 224 220.7 224 63.2 0 124.5-26.2 171-82.5-2-27.6-13.4-77.7-67.7-77.7zm-12.1-112.5H205.6v89H324c33.5 0 60.5 15.1 76 41.8v-30.6c0-65.2-40.4-100.2-88.1-100.2z"], - "bimobject": [448, 512, [], "f378", "M416 32H32C14.4 32 0 46.4 0 64v384c0 17.6 14.4 32 32 32h384c17.6 0 32-14.4 32-32V64c0-17.6-14.4-32-32-32zm-64 257.4c0 49.4-11.4 82.6-103.8 82.6h-16.9c-44.1 0-62.4-14.9-70.4-38.8h-.9V368H96V136h64v74.7h1.1c4.6-30.5 39.7-38.8 69.7-38.8h17.3c92.4 0 103.8 33.1 103.8 82.5v35zm-64-28.9v22.9c0 21.7-3.4 33.8-38.4 33.8h-45.3c-28.9 0-44.1-6.5-44.1-35.7v-19c0-29.3 15.2-35.7 44.1-35.7h45.3c35-.2 38.4 12 38.4 33.7z"], - "brave-reverse": [448, 512, [], "e63d", "M298 0c3 0 5.8 1.3 7.8 3.6l38.1 44c.5-.1 1-.2 1.5-.3c9.2-1.6 18.6-2.2 27.7-1.2c11.6 1.4 21.5 5.4 28.9 12.9c7.7 7.8 15.4 15.8 22.6 23.6c2.5 2.7 4.9 5.2 6.9 7.4c.7 .8 1.4 1.5 1.9 2c3.4 3.7 4.2 8.1 2.7 11.9l-9.8 24.6 13.1 38.1c.7 2 .8 4.1 .2 6.2c-.1 .4-.1 .4-.5 2.1c-.6 2.3-.6 2.3-1.5 5.8c-1.6 6.3-3.5 13.3-5.4 20.9c-5.6 21.6-11.2 43.2-16.4 63.4c-12.9 49.9-21.4 82.7-23.4 90.9c-11.1 44.5-19.9 60-48.3 80.3c-24.9 17.8-76.8 53.6-86.8 60c-1 .6-2 1.3-3.4 2.3c-.5 .4-3.2 2.2-3.9 2.7c-4.9 3.3-8.3 5.5-12.1 7.3c-4.7 2.2-9.3 3.5-13.9 3.5s-9.1-1.2-13.9-3.5c-3.7-1.8-7.2-3.9-12.1-7.3c-.8-.5-3.4-2.4-3.9-2.7c-1.4-1-2.5-1.7-3.4-2.3c-10-6.4-61.9-42.1-86.8-60c-28.4-20.4-37.2-35.8-48.3-80.3c-2-8.2-10.5-41-23.3-90.5c-5.3-20.6-10.9-42.2-16.5-63.8c-2-7.6-3.8-14.6-5.4-20.9c-.9-3.5-.9-3.5-1.5-5.8c-.4-1.7-.4-1.7-.5-2.1c-.5-2-.4-4.2 .2-6.2l13.1-38.1L11.8 104c-1.5-3.8-.7-8.2 2-11.2c1.2-1.3 1.8-2 2.6-2.8c2-2.2 4.4-4.7 6.9-7.4C30.6 74.9 38.3 66.9 46 59.1c7.4-7.5 17.3-11.6 28.9-12.9c9.1-1.1 18.5-.5 27.7 1.2c.5 .1 1 .2 1.5 .3l38.1-44C144.2 1.3 147 0 150 0H298zm-4.7 21.1H154.7L115.6 66.2c-2.6 3-6.7 4.3-10.6 3.2c-.2-.1-.7-.2-1.5-.4c-1.3-.3-2.9-.6-4.5-.9c-7.4-1.3-14.9-1.8-21.7-1C70 68 64.3 70.3 60.7 74c-7.6 7.7-15.2 15.6-22.3 23.3c-1.7 1.8-3.3 3.5-4.8 5.1l8.8 22c1 2.4 1 5 .2 7.5L29.2 170.6c.4 1.4 .5 1.9 1.2 4.8c1.6 6.3 3.5 13.3 5.4 20.9c5.6 21.6 11.2 43.2 16.4 63.4c12.9 50 21.4 82.8 23.4 91C85.7 390.8 92 402 115.8 419c24.6 17.6 76.3 53.2 85.9 59.3c1.2 .8 2.5 1.6 4 2.7c.6 .4 3.2 2.2 3.9 2.7c4 2.8 6.7 4.4 9.2 5.6c2.2 1 3.9 1.5 5.1 1.5s2.9-.5 5.1-1.5c2.5-1.2 5.2-2.8 9.2-5.6c.7-.5 3.3-2.3 3.9-2.7c1.6-1.1 2.8-1.9 4-2.7c9.6-6.1 61.3-41.7 85.9-59.3c23.8-17.1 30.2-28.2 40.1-68.3c2.1-8.3 10.5-41.1 23.3-90.7c5.3-20.6 10.9-42.2 16.5-63.8c2-7.6 3.8-14.6 5.4-20.9c.7-2.9 .9-3.4 1.2-4.8l-13.3-38.8c-.8-2.4-.8-5.1 .2-7.5l8.8-22c-1.5-1.6-3.1-3.3-4.8-5.1c-7.2-7.6-14.7-15.5-22.3-23.3c-3.7-3.7-9.3-6-16.6-6.9c-6.8-.8-14.4-.3-21.7 1c-1.7 .3-3.2 .6-4.5 .9c-.8 .2-1.3 .3-1.5 .4c-3.8 1.1-7.9-.2-10.6-3.2L293.3 21.1zM224 316c2.8 0 20.9 6.5 35.4 14.1s25 13 28.3 15.2s1.3 6.2-1.7 8.4s-44.1 34.6-48.1 38.2s-9.8 9.5-13.8 9.5s-9.8-5.9-13.8-9.5s-45.1-36-48.1-38.2s-5.1-6.2-1.7-8.4s13.9-7.5 28.3-15.2s32.5-14.1 35.4-14.1zm.1-230.7c.7 0 8.8 .2 20.5 4.2c12.3 4.2 25.7 9.4 31.9 9.4s51.9-8.9 51.9-8.9s54.2 66.7 54.2 81s-6.8 18-13.7 25.4s-36.8 39.8-40.7 43.9s-11.9 10.5-7.1 21.8s11.7 25.8 3.9 40.4s-21 24.4-29.4 22.8s-28.4-12.2-35.7-17.1s-30.5-24.3-30.5-31.8s24-20.8 28.4-23.9s24.7-14.8 25.1-19.4s.3-6-5.7-17.4s-16.7-26.7-14.9-36.8s19.1-15.4 31.5-20.2s36.2-13.7 39.2-15.1s2.2-2.7-6.8-3.6s-34.6-4.3-46.1-1.1s-31.2 8.2-32.8 10.9s-3 2.7-1.4 11.8s10.1 52.8 10.9 60.6s2.4 12.9-5.8 14.8s-22.1 5.2-26.8 5.2s-18.6-3.3-26.8-5.2s-6.6-7-5.8-14.8s9.3-51.5 10.9-60.6s.2-9.2-1.4-11.8s-21.3-7.6-32.8-10.9s-37.1 .2-46.1 1.1s-9.8 2.2-6.8 3.6s26.8 10.4 39.2 15.1s29.7 10 31.5 20.2s-9 25.4-14.9 36.8s-6.1 12.8-5.7 17.4s20.6 16.4 25.1 19.4s28.4 16.4 28.4 23.9s-23.2 27-30.5 31.8s-27.2 15.4-35.7 17.1s-21.7-8.2-29.4-22.8s-.8-29.1 3.9-40.4s-3.3-17.7-7.1-21.8s-33.8-36.5-40.7-43.9s-13.7-11.2-13.7-25.4s54.2-81 54.2-81s45.8 8.9 51.9 8.9s19.5-5.2 31.9-9.4s20.6-4.2 20.6-4.2l.1 0z"], - "facebook-f": [320, 512, [], "f39e", "M80 299.3V512H196V299.3h86.5l18-97.8H196V166.9c0-51.7 20.3-71.5 72.7-71.5c16.3 0 29.4 .4 37 1.2V7.9C291.4 4 256.4 0 236.2 0C129.3 0 80 50.5 80 159.4v42.1H14v97.8H80z"], - "square-google-plus": [448, 512, ["google-plus-square"], "f0d4", "M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM64 256c0-55.3 44.7-100 100-100c27 0 49.5 9.8 67 26.2l-27.1 26.1c-7.4-7.1-20.3-15.4-39.8-15.4c-34.1 0-61.9 28.2-61.9 63.2c0 34.9 27.8 63.2 61.9 63.2c39.6 0 54.4-28.5 56.8-43.1H164V241.8h94.4c1 5 1.6 10.1 1.6 16.6c0 57.1-38.3 97.6-96 97.6c-55.3 0-100-44.7-100-100zm291 18.2v29H325.8v-29h-29V245h29V216H355v29h29v29.2H355z"], - "web-awesome": [640, 512, [], "e682", "M372.2 52c0 20.9-12.4 39-30.2 47.2L448 192l104.4-20.9c-5.3-7.7-8.4-17.1-8.4-27.1c0-26.5 21.5-48 48-48s48 21.5 48 48c0 26-20.6 47.1-46.4 48L481 442.3c-10.3 23-33.2 37.7-58.4 37.7l-205.2 0c-25.2 0-48-14.8-58.4-37.7L46.4 192C20.6 191.1 0 170 0 144c0-26.5 21.5-48 48-48s48 21.5 48 48c0 10.1-3.1 19.4-8.4 27.1L192 192 298.1 99.1c-17.7-8.3-30-26.3-30-47.1c0-28.7 23.3-52 52-52s52 23.3 52 52z"], - "mandalorian": [448, 512, [], "f50f", "M232.27 511.89c-1-3.26-1.69-15.83-1.39-24.58.55-15.89 1-24.72 1.4-28.76.64-6.2 2.87-20.72 3.28-21.38.6-1 .4-27.87-.24-33.13-.31-2.58-.63-11.9-.69-20.73-.13-16.47-.53-20.12-2.73-24.76-1.1-2.32-1.23-3.84-1-11.43a92.38 92.38 0 0 0-.34-12.71c-2-13-3.46-27.7-3.25-33.9s.43-7.15 2.06-9.67c3.05-4.71 6.51-14 8.62-23.27 2.26-9.86 3.88-17.18 4.59-20.74a109.54 109.54 0 0 1 4.42-15.05c2.27-6.25 2.49-15.39.37-15.39-.3 0-1.38 1.22-2.41 2.71s-4.76 4.8-8.29 7.36c-8.37 6.08-11.7 9.39-12.66 12.58s-1 7.23-.16 7.76c.34.21 1.29 2.4 2.11 4.88a28.83 28.83 0 0 1 .72 15.36c-.39 1.77-1 5.47-1.46 8.23s-1 6.46-1.25 8.22a9.85 9.85 0 0 1-1.55 4.26c-1 1-1.14.91-2.05-.53a14.87 14.87 0 0 1-1.44-4.75c-.25-1.74-1.63-7.11-3.08-11.93-3.28-10.9-3.52-16.15-1-21a14.24 14.24 0 0 0 1.67-4.61c0-2.39-2.2-5.32-7.41-9.89-7-6.18-8.63-7.92-10.23-11.3-1.71-3.6-3.06-4.06-4.54-1.54-1.78 3-2.6 9.11-3 22l-.34 12.19 2 2.25c3.21 3.7 12.07 16.45 13.78 19.83 3.41 6.74 4.34 11.69 4.41 23.56s.95 22.75 2 24.71c.36.66.51 1.35.34 1.52s.41 2.09 1.29 4.27a38.14 38.14 0 0 1 2.06 9 91 91 0 0 0 1.71 10.37c2.23 9.56 2.77 14.08 2.39 20.14-.2 3.27-.53 11.07-.73 17.32-1.31 41.76-1.85 58-2 61.21-.12 2-.39 11.51-.6 21.07-.36 16.3-1.3 27.37-2.42 28.65-.64.73-8.07-4.91-12.52-9.49-3.75-3.87-4-4.79-2.83-9.95.7-3 2.26-18.29 3.33-32.62.36-4.78.81-10.5 1-12.71.83-9.37 1.66-20.35 2.61-34.78.56-8.46 1.33-16.44 1.72-17.73s.89-9.89 1.13-19.11l.43-16.77-2.26-4.3c-1.72-3.28-4.87-6.94-13.22-15.34-6-6.07-11.84-12.3-12.91-13.85l-1.95-2.81.75-10.9c1.09-15.71 1.1-48.57 0-59.06l-.89-8.7-3.28-4.52c-5.86-8.08-5.8-7.75-6.22-33.27-.1-6.07-.38-11.5-.63-12.06-.83-1.87-3.05-2.66-8.54-3.05-8.86-.62-11-1.9-23.85-14.55-6.15-6-12.34-12-13.75-13.19-2.81-2.42-2.79-2-.56-9.63l1.35-4.65-1.69-3a32.22 32.22 0 0 0-2.59-4.07c-1.33-1.51-5.5-10.89-6-13.49a4.24 4.24 0 0 1 .87-3.9c2.23-2.86 3.4-5.68 4.45-10.73 2.33-11.19 7.74-26.09 10.6-29.22 3.18-3.47 7.7-1 9.41 5 1.34 4.79 1.37 9.79.1 18.55a101.2 101.2 0 0 0-1 11.11c0 4 .19 4.69 2.25 7.39 3.33 4.37 7.73 7.41 15.2 10.52a18.67 18.67 0 0 1 4.72 2.85c11.17 10.72 18.62 16.18 22.95 16.85 5.18.8 8 4.54 10 13.39 1.31 5.65 4 11.14 5.46 11.14a9.38 9.38 0 0 0 3.33-1.39c2-1.22 2.25-1.73 2.25-4.18a132.88 132.88 0 0 0-2-17.84c-.37-1.66-.78-4.06-.93-5.35s-.61-3.85-1-5.69c-2.55-11.16-3.65-15.46-4.1-16-1.55-2-4.08-10.2-4.93-15.92-1.64-11.11-4-14.23-12.91-17.39A43.15 43.15 0 0 1 165.24 78c-1.15-1-4-3.22-6.35-5.06s-4.41-3.53-4.6-3.76a22.7 22.7 0 0 0-2.69-2c-6.24-4.22-8.84-7-11.26-12l-2.44-5-.22-13-.22-13 6.91-6.55c3.95-3.75 8.48-7.35 10.59-8.43 3.31-1.69 4.45-1.89 11.37-2 8.53-.19 10.12 0 11.66 1.56s1.36 6.4-.29 8.5a6.66 6.66 0 0 0-1.34 2.32c0 .58-2.61 4.91-5.42 9a30.39 30.39 0 0 0-2.37 6.82c20.44 13.39 21.55 3.77 14.07 29L194 66.92c3.11-8.66 6.47-17.26 8.61-26.22.29-7.63-12-4.19-15.4-8.68-2.33-5.93 3.13-14.18 6.06-19.2 1.6-2.34 6.62-4.7 8.82-4.15.88.22 4.16-.35 7.37-1.28a45.3 45.3 0 0 1 7.55-1.68 29.57 29.57 0 0 0 6-1.29c3.65-1.11 4.5-1.17 6.35-.4a29.54 29.54 0 0 0 5.82 1.36 18.18 18.18 0 0 1 6 1.91 22.67 22.67 0 0 0 5 2.17c2.51.68 3 .57 7.05-1.67l4.35-2.4L268.32 5c10.44-.4 10.81-.47 15.26-2.68L288.16 0l2.46 1.43c1.76 1 3.14 2.73 4.85 6 2.36 4.51 2.38 4.58 1.37 7.37-.88 2.44-.89 3.3-.1 6.39a35.76 35.76 0 0 0 2.1 5.91 13.55 13.55 0 0 1 1.31 4c.31 4.33 0 5.3-2.41 6.92-2.17 1.47-7 7.91-7 9.34a14.77 14.77 0 0 1-1.07 3c-5 11.51-6.76 13.56-14.26 17-9.2 4.2-12.3 5.19-16.21 5.19-3.1 0-4 .25-4.54 1.26a18.33 18.33 0 0 1-4.09 3.71 13.62 13.62 0 0 0-4.38 4.78 5.89 5.89 0 0 1-2.49 2.91 6.88 6.88 0 0 0-2.45 1.71 67.62 67.62 0 0 1-7 5.38c-3.33 2.34-6.87 5-7.87 6A7.27 7.27 0 0 1 224 100a5.76 5.76 0 0 0-2.13 1.65c-1.31 1.39-1.49 2.11-1.14 4.6a36.45 36.45 0 0 0 1.42 5.88c1.32 3.8 1.31 7.86 0 10.57s-.89 6.65 1.35 9.59c2 2.63 2.16 4.56.71 8.84a33.45 33.45 0 0 0-1.06 8.91c0 4.88.22 6.28 1.46 8.38s1.82 2.48 3.24 2.32c2-.23 2.3-1.05 4.71-12.12 2.18-10 3.71-11.92 13.76-17.08 2.94-1.51 7.46-4 10-5.44s6.79-3.69 9.37-4.91a40.09 40.09 0 0 0 15.22-11.67c7.11-8.79 10-16.22 12.85-33.3a18.37 18.37 0 0 1 2.86-7.73 20.39 20.39 0 0 0 2.89-7.31c1-5.3 2.85-9.08 5.58-11.51 4.7-4.18 6-1.09 4.59 10.87-.46 3.86-1.1 10.33-1.44 14.38l-.61 7.36 4.45 4.09 4.45 4.09.11 8.42c.06 4.63.47 9.53.92 10.89l.82 2.47-6.43 6.28c-8.54 8.33-12.88 13.93-16.76 21.61-1.77 3.49-3.74 7.11-4.38 8-2.18 3.11-6.46 13-8.76 20.26l-2.29 7.22-7 6.49c-3.83 3.57-8 7.25-9.17 8.17-3.05 2.32-4.26 5.15-4.26 10a14.62 14.62 0 0 0 1.59 7.26 42 42 0 0 1 2.09 4.83 9.28 9.28 0 0 0 1.57 2.89c1.4 1.59 1.92 16.12.83 23.22-.68 4.48-3.63 12-4.7 12-1.79 0-4.06 9.27-5.07 20.74-.18 2-.62 5.94-1 8.7s-1 10-1.35 16.05c-.77 12.22-.19 18.77 2 23.15 3.41 6.69.52 12.69-11 22.84l-4 3.49.07 5.19a40.81 40.81 0 0 0 1.14 8.87c4.61 16 4.73 16.92 4.38 37.13-.46 26.4-.26 40.27.63 44.15a61.31 61.31 0 0 1 1.08 7c.17 2 .66 5.33 1.08 7.36.47 2.26.78 11 .79 22.74v19.06l-1.81 2.63c-2.71 3.91-15.11 13.54-15.49 12.29zm29.53-45.11c-.18-.3-.33-6.87-.33-14.59 0-14.06-.89-27.54-2.26-34.45-.4-2-.81-9.7-.9-17.06-.15-11.93-1.4-24.37-2.64-26.38-.66-1.07-3-17.66-3-21.3 0-4.23 1-6 5.28-9.13s4.86-3.14 5.48-.72c.28 1.1 1.45 5.62 2.6 10 3.93 15.12 4.14 16.27 4.05 21.74-.1 5.78-.13 6.13-1.74 17.73-1 7.07-1.17 12.39-1 28.43.17 19.4-.64 35.73-2 41.27-.71 2.78-2.8 5.48-3.43 4.43zm-71-37.58a101 101 0 0 1-1.73-10.79 100.5 100.5 0 0 0-1.73-10.79 37.53 37.53 0 0 1-1-6.49c-.31-3.19-.91-7.46-1.33-9.48-1-4.79-3.35-19.35-3.42-21.07 0-.74-.34-4.05-.7-7.36-.67-6.21-.84-27.67-.22-28.29 1-1 6.63 2.76 11.33 7.43l5.28 5.25-.45 6.47c-.25 3.56-.6 10.23-.78 14.83s-.49 9.87-.67 11.71-.61 9.36-.94 16.72c-.79 17.41-1.94 31.29-2.65 32a.62.62 0 0 1-1-.14zm-87.18-266.59c21.07 12.79 17.84 14.15 28.49 17.66 13 4.29 18.87 7.13 23.15 16.87C111.6 233.28 86.25 255 78.55 268c-31 52-6 101.59 62.75 87.21-14.18 29.23-78 28.63-98.68-4.9-24.68-39.95-22.09-118.3 61-187.66zm210.79 179c56.66 6.88 82.32-37.74 46.54-89.23 0 0-26.87-29.34-64.28-68 3-15.45 9.49-32.12 30.57-53.82 89.2 63.51 92 141.61 92.46 149.36 4.3 70.64-78.7 91.18-105.29 61.71z"], - "first-order-alt": [496, 512, [], "f50a", "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 488.21C115.34 496.21 7.79 388.66 7.79 256S115.34 15.79 248 15.79 488.21 123.34 488.21 256 380.66 496.21 248 496.21zm0-459.92C126.66 36.29 28.29 134.66 28.29 256S126.66 475.71 248 475.71 467.71 377.34 467.71 256 369.34 36.29 248 36.29zm0 431.22c-116.81 0-211.51-94.69-211.51-211.51S131.19 44.49 248 44.49 459.51 139.19 459.51 256 364.81 467.51 248 467.51zm186.23-162.98a191.613 191.613 0 0 1-20.13 48.69l-74.13-35.88 61.48 54.82a193.515 193.515 0 0 1-37.2 37.29l-54.8-61.57 35.88 74.27a190.944 190.944 0 0 1-48.63 20.23l-27.29-78.47 4.79 82.93c-8.61 1.18-17.4 1.8-26.33 1.8s-17.72-.62-26.33-1.8l4.76-82.46-27.15 78.03a191.365 191.365 0 0 1-48.65-20.2l35.93-74.34-54.87 61.64a193.85 193.85 0 0 1-37.22-37.28l61.59-54.9-74.26 35.93a191.638 191.638 0 0 1-20.14-48.69l77.84-27.11-82.23 4.76c-1.16-8.57-1.78-17.32-1.78-26.21 0-9 .63-17.84 1.82-26.51l82.38 4.77-77.94-27.16a191.726 191.726 0 0 1 20.23-48.67l74.22 35.92-61.52-54.86a193.85 193.85 0 0 1 37.28-37.22l54.76 61.53-35.83-74.17a191.49 191.49 0 0 1 48.65-20.13l26.87 77.25-4.71-81.61c8.61-1.18 17.39-1.8 26.32-1.8s17.71.62 26.32 1.8l-4.74 82.16 27.05-77.76c17.27 4.5 33.6 11.35 48.63 20.17l-35.82 74.12 54.72-61.47a193.13 193.13 0 0 1 37.24 37.23l-61.45 54.77 74.12-35.86a191.515 191.515 0 0 1 20.2 48.65l-77.81 27.1 82.24-4.75c1.19 8.66 1.82 17.5 1.82 26.49 0 8.88-.61 17.63-1.78 26.19l-82.12-4.75 77.72 27.09z"], - "osi": [512, 512, [], "f41a", "M8 266.44C10.3 130.64 105.4 34 221.8 18.34c138.8-18.6 255.6 75.8 278 201.1 21.3 118.8-44 230-151.6 274-9.3 3.8-14.4 1.7-18-7.7q-26.7-69.45-53.4-139c-3.1-8.1-1-13.2 7-16.8 24.2-11 39.3-29.4 43.3-55.8a71.47 71.47 0 0 0-64.5-82.2c-39-3.4-71.8 23.7-77.5 59.7-5.2 33 11.1 63.7 41.9 77.7 9.6 4.4 11.5 8.6 7.8 18.4q-26.85 69.9-53.7 139.9c-2.6 6.9-8.3 9.3-15.5 6.5-52.6-20.3-101.4-61-130.8-119-24.9-49.2-25.2-87.7-26.8-108.7zm20.9-1.9c.4 6.6.6 14.3 1.3 22.1 6.3 71.9 49.6 143.5 131 183.1 3.2 1.5 4.4.8 5.6-2.3q22.35-58.65 45-117.3c1.3-3.3.6-4.8-2.4-6.7-31.6-19.9-47.3-48.5-45.6-86 1-21.6 9.3-40.5 23.8-56.3 30-32.7 77-39.8 115.5-17.6a91.64 91.64 0 0 1 45.2 90.4c-3.6 30.6-19.3 53.9-45.7 69.8-2.7 1.6-3.5 2.9-2.3 6q22.8 58.8 45.2 117.7c1.2 3.1 2.4 3.8 5.6 2.3 35.5-16.6 65.2-40.3 88.1-72 34.8-48.2 49.1-101.9 42.3-161-13.7-117.5-119.4-214.8-255.5-198-106.1 13-195.3 102.5-197.1 225.8z"], - "google-wallet": [448, 512, [], "f1ee", "M156.8 126.8c37.6 60.6 64.2 113.1 84.3 162.5-8.3 33.8-18.8 66.5-31.3 98.3-13.2-52.3-26.5-101.3-56-148.5 6.5-36.4 2.3-73.6 3-112.3zM109.3 200H16.1c-6.5 0-10.5 7.5-6.5 12.7C51.8 267 81.3 330.5 101.3 400h103.5c-16.2-69.7-38.7-133.7-82.5-193.5-3-4-8-6.5-13-6.5zm47.8-88c68.5 108 130 234.5 138.2 368H409c-12-138-68.4-265-143.2-368H157.1zm251.8-68.5c-1.8-6.8-8.2-11.5-15.2-11.5h-88.3c-5.3 0-9 5-7.8 10.3 13.2 46.5 22.3 95.5 26.5 146 48.2 86.2 79.7 178.3 90.6 270.8 15.8-60.5 25.3-133.5 25.3-203 0-73.6-12.1-145.1-31.1-212.6z"], - "d-and-d-beyond": [640, 512, [], "f6ca", "M313.8 241.5c13.8 0 21-10.1 24.8-17.9-1-1.1-5-4.2-7.4-6.6-2.4 4.3-8.2 10.7-13.9 10.7-10.2 0-15.4-14.7-3.2-26.6-.5-.2-4.3-1.8-8 2.4 0-3 1-5.1 2.1-6.6-3.5 1.3-9.8 5.6-11.4 7.9.2-5.8 1.6-7.5.6-9l-.2-.2s-8.5 5.6-9.3 14.7c0 0 1.1-1.6 2.1-1.9.6-.3 1.3 0 .6 1.9-.2.6-5.8 15.7 5.1 26-.6-1.6-1.9-7.6 2.4-1.9-.3.1 5.8 7.1 15.7 7.1zm52.4-21.1c0-4-4.9-4.4-5.6-4.5 2 3.9.9 7.5.2 9 2.5-.4 5.4-1.6 5.4-4.5zm10.3 5.2c0-6.4-6.2-11.4-13.5-10.7 8 1.3 5.6 13.8-5 11.4 3.7-2.6 3.2-9.9-1.3-12.5 1.4 4.2-3 8.2-7.4 4.6-2.4-1.9-8-6.6-10.6-8.6-2.4-2.1-5.5-1-6.6-1.8-1.3-1.1-.5-3.8-2.2-5-1.6-.8-3-.3-4.8-1-1.6-.6-2.7-1.9-2.6-3.5-2.5 4.4 3.4 6.3 4.5 8.5 1 1.9-.8 4.8 4 8.5 14.8 11.6 9.1 8 10.4 18.1.6 4.3 4.2 6.7 6.4 7.4-2.1-1.9-2.9-6.4 0-9.3 0 13.9 19.2 13.3 23.1 6.4-2.4 1.1-7-.2-9-1.9 7.7 1 14.2-4.1 14.6-10.6zm-39.4-18.4c2 .8 1.6.7 6.4 4.5 10.2-24.5 21.7-15.7 22-15.5 2.2-1.9 9.8-3.8 13.8-2.7-2.4-2.7-7.5-6.2-13.3-6.2-4.7 0-7.4 2.2-8 1.3-.8-1.4 3.2-3.4 3.2-3.4-5.4.2-9.6 6.7-11.2 5.9-1.1-.5 1.4-3.7 1.4-3.7-5.1 2.9-9.3 9.1-10.2 13 4.6-5.8 13.8-9.8 19.7-9-10.5.5-19.5 9.7-23.8 15.8zm242.5 51.9c-20.7 0-40 1.3-50.3 2.1l7.4 8.2v77.2l-7.4 8.2c10.4.8 30.9 2.1 51.6 2.1 42.1 0 59.1-20.7 59.1-48.9 0-29.3-23.2-48.9-60.4-48.9zm-15.1 75.6v-53.3c30.1-3.3 46.8 3.8 46.8 26.3 0 25.6-21.4 30.2-46.8 27zM301.6 181c-1-3.4-.2-6.9 1.1-9.4 1 3 2.6 6.4 7.5 9-.5-2.4-.2-5.6.5-8-1.4-5.4 2.1-9.9 6.4-9.9 6.9 0 8.5 8.8 4.7 14.4 2.1 3.2 5.5 5.6 7.7 7.8 3.2-3.7 5.5-9.5 5.5-13.8 0-8.2-5.5-15.9-16.7-16.5-20-.9-20.2 16.6-20 18.9.5 5.2 3.4 7.8 3.3 7.5zm-.4 6c-.5 1.8-7 3.7-10.2 6.9 4.8-1 7-.2 7.8 1.8.5 1.4-.2 3.4-.5 5.6 1.6-1.8 7-5.5 11-6.2-1-.3-3.4-.8-4.3-.8 2.9-3.4 9.3-4.5 12.8-3.7-2.2-.2-6.7 1.1-8.5 2.6 1.6.3 3 .6 4.3 1.1-2.1.8-4.8 3.4-5.8 6.1 7-5 13.1 5.2 7 8.2.8.2 2.7 0 3.5-.5-.3 1.1-1.9 3-3 3.4 2.9 0 7-1.9 8.2-4.6 0 0-1.8.6-2.6-.2s.3-4.3.3-4.3c-2.3 2.9-3.4-1.3-1.3-4.2-1-.3-3.5-.6-4.6-.5 3.2-1.1 10.4-1.8 11.2-.3.6 1.1-1 3.4-1 3.4 4-.5 8.3 1.1 6.7 5.1 2.9-1.4 5.5-5.9 4.8-10.4-.3 1-1.6 2.4-2.9 2.7.2-1.4-1-2.2-1.9-2.6 1.7-9.6-14.6-14.2-14.1-23.9-1 1.3-1.8 5-.8 7.1 2.7 3.2 8.7 6.7 10.1 12.2-2.6-6.4-15.1-11.4-14.6-20.2-1.6 1.6-2.6 7.8-1.3 11 2.4 1.4 4.5 3.8 4.8 6.1-2.2-5.1-11.4-6.1-13.9-12.2-.6 2.2-.3 5 1 6.7 0 0-2.2-.8-7-.6 1.7.6 5.1 3.5 4.8 5.2zm25.9 7.4c-2.7 0-3.5-2.1-4.2-4.3 3.3 1.3 4.2 4.3 4.2 4.3zm38.9 3.7l-1-.6c-1.1-1-2.9-1.4-4.7-1.4-2.9 0-5.8 1.3-7.5 3.4-.8.8-1.4 1.8-2.1 2.6v15.7c3.5 2.6 7.1-2.9 3-7.2 1.5.3 4.6 2.7 5.1 3.2 0 0 2.6-.5 5-.5 2.1 0 3.9.3 5.6 1.1V196c-1.1.5-2.2 1-2.7 1.4zM79.9 305.9c17.2-4.6 16.2-18 16.2-19.9 0-20.6-24.1-25-37-25H3l8.3 8.6v29.5H0l11.4 14.6V346L3 354.6c61.7 0 73.8 1.5 86.4-5.9 6.7-4 9.9-9.8 9.9-17.6 0-5.1 2.6-18.8-19.4-25.2zm-41.3-27.5c20 0 29.6-.8 29.6 9.1v3c0 12.1-19 8.8-29.6 8.8zm0 59.2V315c12.2 0 32.7-2.3 32.7 8.8v4.5h.2c0 11.2-12.5 9.3-32.9 9.3zm101.2-19.3l23.1.2v-.2l14.1-21.2h-37.2v-14.9h52.4l-14.1-21v-.2l-73.5.2 7.4 8.2v77.1l-7.4 8.2h81.2l14.1-21.2-60.1.2zm214.7-60.1c-73.9 0-77.5 99.3-.3 99.3 77.9 0 74.1-99.3.3-99.3zm-.3 77.5c-37.4 0-36.9-55.3.2-55.3 36.8.1 38.8 55.3-.2 55.3zm-91.3-8.3l44.1-66.2h-41.7l6.1 7.2-20.5 37.2h-.3l-21-37.2 6.4-7.2h-44.9l44.1 65.8.2 19.4-7.7 8.2h42.6l-7.2-8.2zm-28.4-151.3c1.6 1.3 2.9 2.4 2.9 6.6v38.8c0 4.2-.8 5.3-2.7 6.4-.1.1-7.5 4.5-7.9 4.6h35.1c10 0 17.4-1.5 26-8.6-.6-5 .2-9.5.8-12 0-.2-1.8 1.4-2.7 3.5 0-5.7 1.6-15.4 9.6-20.5-.1 0-3.7-.8-9 1.1 2-3.1 10-7.9 10.4-7.9-8.2-26-38-22.9-32.2-22.9-30.9 0-32.6.3-39.9-4 .1.8.5 8.2 9.6 14.9zm21.5 5.5c4.6 0 23.1-3.3 23.1 17.3 0 20.7-18.4 17.3-23.1 17.3zm228.9 79.6l7 8.3V312h-.3c-5.4-14.4-42.3-41.5-45.2-50.9h-31.6l7.4 8.5v76.9l-7.2 8.3h39l-7.4-8.2v-47.4h.3c3.7 10.6 44.5 42.9 48.5 55.6h21.3v-85.2l7.4-8.3zm-106.7-96.1c-32.2 0-32.8.2-39.9-4 .1.7.5 8.3 9.6 14.9 3.1 2 2.9 4.3 2.9 9.5 1.8-1.1 3.8-2.2 6.1-3-1.1 1.1-2.7 2.7-3.5 4.5 1-1.1 7.5-5.1 14.6-3.5-1.6.3-4 1.1-6.1 2.9.1 0 2.1-1.1 7.5-.3v-4.3c4.7 0 23.1-3.4 23.1 17.3 0 20.5-18.5 17.3-19.7 17.3 5.7 4.4 5.8 12 2.2 16.3h.3c33.4 0 36.7-27.3 36.7-34 0-3.8-1.1-32-33.8-33.6z"], - "periscope": [448, 512, [], "f3da", "M370 63.6C331.4 22.6 280.5 0 226.6 0 111.9 0 18.5 96.2 18.5 214.4c0 75.1 57.8 159.8 82.7 192.7C137.8 455.5 192.6 512 226.6 512c41.6 0 112.9-94.2 120.9-105 24.6-33.1 82-118.3 82-192.6 0-56.5-21.1-110.1-59.5-150.8zM226.6 493.9c-42.5 0-190-167.3-190-279.4 0-107.4 83.9-196.3 190-196.3 100.8 0 184.7 89 184.7 196.3.1 112.1-147.4 279.4-184.7 279.4zM338 206.8c0 59.1-51.1 109.7-110.8 109.7-100.6 0-150.7-108.2-92.9-181.8v.4c0 24.5 20.1 44.4 44.8 44.4 24.7 0 44.8-19.9 44.8-44.4 0-18.2-11.1-33.8-26.9-40.7 76.6-19.2 141 39.3 141 112.4z"], - "fulcrum": [320, 512, [], "f50b", "M95.75 164.14l-35.38 43.55L25 164.14l35.38-43.55zM144.23 0l-20.54 198.18L72.72 256l51 57.82L144.23 512V300.89L103.15 256l41.08-44.89zm79.67 164.14l35.38 43.55 35.38-43.55-35.38-43.55zm-48.48 47L216.5 256l-41.08 44.89V512L196 313.82 247 256l-51-57.82L175.42 0z"], - "cloudscale": [448, 512, [], "f383", "M318.1 154l-9.4 7.6c-22.5-19.3-51.5-33.6-83.3-33.6C153.8 128 96 188.8 96 260.3c0 6.6.4 13.1 1.4 19.4-2-56 41.8-97.4 92.6-97.4 24.2 0 46.2 9.4 62.6 24.7l-25.2 20.4c-8.3-.9-16.8 1.8-23.1 8.1-11.1 11-11.1 28.9 0 40 11.1 11 28.9 11 40 0 6.3-6.3 9-14.9 8.1-23.1l75.2-88.8c6.3-6.5-3.3-15.9-9.5-9.6zm-83.8 111.5c-5.6 5.5-14.6 5.5-20.2 0-5.6-5.6-5.6-14.6 0-20.2s14.6-5.6 20.2 0 5.6 14.7 0 20.2zM224 32C100.5 32 0 132.5 0 256s100.5 224 224 224 224-100.5 224-224S347.5 32 224 32zm0 384c-88.2 0-160-71.8-160-160S135.8 96 224 96s160 71.8 160 160-71.8 160-160 160z"], - "forumbee": [448, 512, [], "f211", "M5.8 309.7C2 292.7 0 275.5 0 258.3 0 135 99.8 35 223.1 35c16.6 0 33.3 2 49.3 5.5C149 87.5 51.9 186 5.8 309.7zm392.9-189.2C385 103 369 87.8 350.9 75.2c-149.6 44.3-266.3 162.1-309.7 312 12.5 18.1 28 35.6 45.2 49 43.1-151.3 161.2-271.7 312.3-315.7zm15.8 252.7c15.2-25.1 25.4-53.7 29.5-82.8-79.4 42.9-145 110.6-187.6 190.3 30-4.4 58.9-15.3 84.6-31.3 35 13.1 70.9 24.3 107 33.6-9.3-36.5-20.4-74.5-33.5-109.8zm29.7-145.5c-2.6-19.5-7.9-38.7-15.8-56.8C290.5 216.7 182 327.5 137.1 466c18.1 7.6 37 12.5 56.6 15.2C240 367.1 330.5 274.4 444.2 227.7z"], - "mizuni": [496, 512, [], "f3cc", "M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm-80 351.9c-31.4 10.6-58.8 27.3-80 48.2V136c0-22.1 17.9-40 40-40s40 17.9 40 40v223.9zm120-9.9c-12.9-2-26.2-3.1-39.8-3.1-13.8 0-27.2 1.1-40.2 3.1V136c0-22.1 17.9-40 40-40s40 17.9 40 40v214zm120 57.7c-21.2-20.8-48.6-37.4-80-48V136c0-22.1 17.9-40 40-40s40 17.9 40 40v271.7z"], - "schlix": [448, 512, [], "f3ea", "M350.5 157.7l-54.2-46.1 73.4-39 78.3 44.2-97.5 40.9zM192 122.1l45.7-28.2 34.7 34.6-55.4 29-25-35.4zm-65.1 6.6l31.9-22.1L176 135l-36.7 22.5-12.4-28.8zm-23.3 88.2l-8.8-34.8 29.6-18.3 13.1 35.3-33.9 17.8zm-21.2-83.7l23.9-18.1 8.9 24-26.7 18.3-6.1-24.2zM59 206.5l-3.6-28.4 22.3-15.5 6.1 28.7L59 206.5zm-30.6 16.6l20.8-12.8 3.3 33.4-22.9 12-1.2-32.6zM1.4 268l19.2-10.2.4 38.2-21 8.8L1.4 268zm59.1 59.3l-28.3 8.3-1.6-46.8 25.1-10.7 4.8 49.2zM99 263.2l-31.1 13-5.2-40.8L90.1 221l8.9 42.2zM123.2 377l-41.6 5.9-8.1-63.5 35.2-10.8 14.5 68.4zm28.5-139.9l21.2 57.1-46.2 13.6-13.7-54.1 38.7-16.6zm85.7 230.5l-70.9-3.3-24.3-95.8 55.2-8.6 40 107.7zm-84.9-279.7l42.2-22.4 28 45.9-50.8 21.3-19.4-44.8zm41 94.9l61.3-18.7 52.8 86.6-79.8 11.3-34.3-79.2zm51.4-85.6l67.3-28.8 65.5 65.4-88.6 26.2-44.2-62.8z"], - "square-xing": [448, 512, ["xing-square"], "f169", "M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM93.8 320.2c-5.5 0-8.7-5.3-6-10.3l49.3-86.7c.1 0 .1-.1 0-.2l-31.4-54c-3-5.6 .2-10.1 6-10.1h46.6c5.2 0 9.5 2.9 12.9 8.7l31.9 55.3c-1.3 2.3-18 31.7-50.1 88.2c-3.5 6.2-7.7 9.1-12.6 9.1H93.8zm163.5-33.4v.2l65.5 119c2.8 5.1 .1 10.1-6 10.1H270.2c-5.5 0-9.7-2.9-12.9-8.7l-66-120.3c1.8-3.2 22.9-40.4 63.3-111.6c11.7-20.7 25.1-44.3 40.1-70.8c3.3-5.8 7.4-8.7 12.5-8.7h46.9c5.7-.1 8.8 4.7 6 10L257.3 286.8z"], - "bandcamp": [512, 512, [], "f2d5", "M256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8Zm48.2,326.1h-181L207.9,178h181Z"], - "wpforms": [448, 512, [], "f298", "M448 75.2v361.7c0 24.3-19 43.2-43.2 43.2H43.2C19.3 480 0 461.4 0 436.8V75.2C0 51.1 18.8 32 43.2 32h361.7c24 0 43.1 18.8 43.1 43.2zm-37.3 361.6V75.2c0-3-2.6-5.8-5.8-5.8h-9.3L285.3 144 224 94.1 162.8 144 52.5 69.3h-9.3c-3.2 0-5.8 2.8-5.8 5.8v361.7c0 3 2.6 5.8 5.8 5.8h361.7c3.2.1 5.8-2.7 5.8-5.8zM150.2 186v37H76.7v-37h73.5zm0 74.4v37.3H76.7v-37.3h73.5zm11.1-147.3l54-43.7H96.8l64.5 43.7zm210 72.9v37h-196v-37h196zm0 74.4v37.3h-196v-37.3h196zm-84.6-147.3l64.5-43.7H232.8l53.9 43.7zM371.3 335v37.3h-99.4V335h99.4z"], - "cloudversify": [616, 512, [], "f385", "M148.6 304c8.2 68.5 67.4 115.5 146 111.3 51.2 43.3 136.8 45.8 186.4-5.6 69.2 1.1 118.5-44.6 131.5-99.5 14.8-62.5-18.2-132.5-92.1-155.1-33-88.1-131.4-101.5-186.5-85-57.3 17.3-84.3 53.2-99.3 109.7-7.8 2.7-26.5 8.9-45 24.1 11.7 0 15.2 8.9 15.2 19.5v20.4c0 10.7-8.7 19.5-19.5 19.5h-20.2c-10.7 0-19.5-6-19.5-16.7V240H98.8C95 240 88 244.3 88 251.9v40.4c0 6.4 5.3 11.8 11.7 11.8h48.9zm227.4 8c-10.7 46.3 21.7 72.4 55.3 86.8C324.1 432.6 259.7 348 296 288c-33.2 21.6-33.7 71.2-29.2 92.9-17.9-12.4-53.8-32.4-57.4-79.8-3-39.9 21.5-75.7 57-93.9C297 191.4 369.9 198.7 400 248c-14.1-48-53.8-70.1-101.8-74.8 30.9-30.7 64.4-50.3 114.2-43.7 69.8 9.3 133.2 82.8 67.7 150.5 35-16.3 48.7-54.4 47.5-76.9l10.5 19.6c11.8 22 15.2 47.6 9.4 72-9.2 39-40.6 68.8-79.7 76.5-32.1 6.3-83.1-5.1-91.8-59.2zM128 208H88.2c-8.9 0-16.2-7.3-16.2-16.2v-39.6c0-8.9 7.3-16.2 16.2-16.2H128c8.9 0 16.2 7.3 16.2 16.2v39.6c0 8.9-7.3 16.2-16.2 16.2zM10.1 168C4.5 168 0 163.5 0 157.9v-27.8c0-5.6 4.5-10.1 10.1-10.1h27.7c5.5 0 10.1 4.5 10.1 10.1v27.8c0 5.6-4.5 10.1-10.1 10.1H10.1zM168 142.7v-21.4c0-5.1 4.2-9.3 9.3-9.3h21.4c5.1 0 9.3 4.2 9.3 9.3v21.4c0 5.1-4.2 9.3-9.3 9.3h-21.4c-5.1 0-9.3-4.2-9.3-9.3zM56 235.5v25c0 6.3-5.1 11.5-11.4 11.5H19.4C13.1 272 8 266.8 8 260.5v-25c0-6.3 5.1-11.5 11.4-11.5h25.1c6.4 0 11.5 5.2 11.5 11.5z"], - "usps": [576, 512, [], "f7e1", "M460.3 241.7c25.8-41.3 15.2-48.8-11.7-48.8h-27c-.1 0-1.5-1.4-10.9 8-11.2 5.6-37.9 6.3-37.9 8.7 0 4.5 70.3-3.1 88.1 0 9.5 1.5-1.5 20.4-4.4 32-.5 4.5 2.4 2.3 3.8.1zm-112.1 22.6c64-21.3 97.3-23.9 102-26.2 4.4-2.9-4.4-6.6-26.2-5.8-51.7 2.2-137.6 37.1-172.6 53.9l-30.7-93.3h196.6c-2.7-28.2-152.9-22.6-337.9-22.6L27 415.8c196.4-97.3 258.9-130.3 321.2-151.5zM94.7 96c253.3 53.7 330 65.7 332.1 85.2 36.4 0 45.9 0 52.4 6.6 21.1 19.7-14.6 67.7-14.6 67.7-4.4 2.9-406.4 160.2-406.4 160.2h423.1L549 96z"], - "megaport": [496, 512, [], "f5a3", "M214.5 209.6v66.2l33.5 33.5 33.3-33.3v-66.4l-33.4-33.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm145.1 414.4L367 441.6l-26-19.2v-65.5l-33.4-33.4-33.4 33.4v65.5L248 441.6l-26.1-19.2v-65.5l-33.4-33.4-33.5 33.4v65.5l-26.1 19.2-26.1-19.2v-87l59.5-59.5V188l59.5-59.5V52.9l26.1-19.2L274 52.9v75.6l59.5 59.5v87.6l59.7 59.7v87.1z"], - "magento": [448, 512, [], "f3c4", "M445.7 127.9V384l-63.4 36.5V164.7L223.8 73.1 65.2 164.7l.4 255.9L2.3 384V128.1L224.2 0l221.5 127.9zM255.6 420.5L224 438.9l-31.8-18.2v-256l-63.3 36.6.1 255.9 94.9 54.9 95.1-54.9v-256l-63.4-36.6v255.9z"], - "spotify": [496, 512, [], "f1bc", "M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm100.7 364.9c-4.2 0-6.8-1.3-10.7-3.6-62.4-37.6-135-39.2-206.7-24.5-3.9 1-9 2.6-11.9 2.6-9.7 0-15.8-7.7-15.8-15.8 0-10.3 6.1-15.2 13.6-16.8 81.9-18.1 165.6-16.5 237 26.2 6.1 3.9 9.7 7.4 9.7 16.5s-7.1 15.4-15.2 15.4zm26.9-65.6c-5.2 0-8.7-2.3-12.3-4.2-62.5-37-155.7-51.9-238.6-29.4-4.8 1.3-7.4 2.6-11.9 2.6-10.7 0-19.4-8.7-19.4-19.4s5.2-17.8 15.5-20.7c27.8-7.8 56.2-13.6 97.8-13.6 64.9 0 127.6 16.1 177 45.5 8.1 4.8 11.3 11 11.3 19.7-.1 10.8-8.5 19.5-19.4 19.5zm31-76.2c-5.2 0-8.4-1.3-12.9-3.9-71.2-42.5-198.5-52.7-280.9-29.7-3.6 1-8.1 2.6-12.9 2.6-13.2 0-23.3-10.3-23.3-23.6 0-13.6 8.4-21.3 17.4-23.9 35.2-10.3 74.6-15.2 117.5-15.2 73 0 149.5 15.2 205.4 47.8 7.8 4.5 12.9 10.7 12.9 22.6 0 13.6-11 23.3-23.2 23.3z"], - "optin-monster": [576, 512, [], "f23c", "M572.6 421.4c5.6-9.5 4.7-15.2-5.4-11.6-3-4.9-7-9.5-11.1-13.8 2.9-9.7-.7-14.2-10.8-9.2-4.6-3.2-10.3-6.5-15.9-9.2 0-15.1-11.6-11.6-17.6-5.7-10.4-1.5-18.7-.3-26.8 5.7.3-6.5.3-13 .3-19.7 12.6 0 40.2-11 45.9-36.2 1.4-6.8 1.6-13.8-.3-21.9-3-13.5-14.3-21.3-25.1-25.7-.8-5.9-7.6-14.3-14.9-15.9s-12.4 4.9-14.1 10.3c-8.5 0-19.2 2.8-21.1 8.4-5.4-.5-11.1-1.4-16.8-1.9 2.7-1.9 5.4-3.5 8.4-4.6 5.4-9.2 14.6-11.4 25.7-11.6V256c19.5-.5 43-5.9 53.8-18.1 12.7-13.8 14.6-37.3 12.4-55.1-2.4-17.3-9.7-37.6-24.6-48.1-8.4-5.9-21.6-.8-22.7 9.5-2.2 19.6 1.2 30-38.6 25.1-10.3-23.8-24.6-44.6-42.7-60C341 49.6 242.9 55.5 166.4 71.7c19.7 4.6 41.1 8.6 59.7 16.5-26.2 2.4-52.7 11.3-76.2 23.2-32.8 17-44 29.9-56.7 42.4 14.9-2.2 28.9-5.1 43.8-3.8-9.7 5.4-18.4 12.2-26.5 20-25.8.9-23.8-5.3-26.2-25.9-1.1-10.5-14.3-15.4-22.7-9.7-28.1 19.9-33.5 79.9-12.2 103.5 10.8 12.2 35.1 17.3 54.9 17.8-.3 1.1-.3 1.9-.3 2.7 10.8.5 19.5 2.7 24.6 11.6 3 1.1 5.7 2.7 8.1 4.6-5.4.5-11.1 1.4-16.5 1.9-3.3-6.6-13.7-8.1-21.1-8.1-1.6-5.7-6.5-12.2-14.1-10.3-6.8 1.9-14.1 10-14.9 15.9-22.5 9.5-30.1 26.8-25.1 47.6 5.3 24.8 33 36.2 45.9 36.2v19.7c-6.6-5-14.3-7.5-26.8-5.7-5.5-5.5-17.3-10.1-17.3 5.7-5.9 2.7-11.4 5.9-15.9 9.2-9.8-4.9-13.6-1.7-11.1 9.2-4.1 4.3-7.8 8.6-11.1 13.8-10.2-3.7-11 2.2-5.4 11.6-1.1 3.5-1.6 7-1.9 10.8-.5 31.6 44.6 64 73.5 65.1 17.3.5 34.6-8.4 43-23.5 113.2 4.9 226.7 4.1 340.2 0 8.1 15.1 25.4 24.3 42.7 23.5 29.2-1.1 74.3-33.5 73.5-65.1.2-3.7-.7-7.2-1.7-10.7zm-73.8-254c1.1-3 2.4-8.4 2.4-14.6 0-5.9 6.8-8.1 14.1-.8 11.1 11.6 14.9 40.5 13.8 51.1-4.1-13.6-13-29-30.3-35.7zm-4.6 6.7c19.5 6.2 28.6 27.6 29.7 48.9-1.1 2.7-3 5.4-4.9 7.6-5.7 5.9-15.4 10-26.2 12.2 4.3-21.3.3-47.3-12.7-63 4.9-.8 10.9-2.4 14.1-5.7zm-24.1 6.8c13.8 11.9 20 39.2 14.1 63.5-4.1.5-8.1.8-11.6.8-1.9-21.9-6.8-44-14.3-64.6 3.7.3 8.1.3 11.8.3zM47.5 203c-1.1-10.5 2.4-39.5 13.8-51.1 7-7.3 14.1-5.1 14.1.8 0 6.2 1.4 11.6 2.4 14.6-17.3 6.8-26.2 22.2-30.3 35.7zm9.7 27.6c-1.9-2.2-3.5-4.9-4.9-7.6 1.4-21.3 10.3-42.7 29.7-48.9 3.2 3.2 9.2 4.9 14.1 5.7-13 15.7-17 41.6-12.7 63-10.8-2.2-20.5-6-26.2-12.2zm47.9 14.6c-4.1 0-8.1-.3-12.7-.8-4.6-18.6-1.9-38.9 5.4-53v.3l12.2-5.1c4.9-1.9 9.7-3.8 14.9-4.9-10.7 19.7-17.4 41.3-19.8 63.5zm184-162.7c41.9 0 76.2 34 76.2 75.9 0 42.2-34.3 76.2-76.2 76.2s-76.2-34-76.2-76.2c0-41.8 34.3-75.9 76.2-75.9zm115.6 174.3c-.3 17.8-7 48.9-23 57-13.2 6.6-6.5-7.5-16.5-58.1 13.3.3 26.6.3 39.5 1.1zm-54-1.6c.8 4.9 3.8 40.3-1.6 41.9-11.6 3.5-40 4.3-51.1-1.1-4.1-3-4.6-35.9-4.3-41.1v.3c18.9-.3 38.1-.3 57 0zM278.3 309c-13 3.5-41.6 4.1-54.6-1.6-6.5-2.7-3.8-42.4-1.9-51.6 19.2-.5 38.4-.5 57.8-.8v.3c1.1 8.3 3.3 51.2-1.3 53.7zm-106.5-51.1c12.2-.8 24.6-1.4 36.8-1.6-2.4 15.4-3 43.5-4.9 52.2-1.1 6.8-4.3 6.8-9.7 4.3-21.9-9.8-27.6-35.2-22.2-54.9zm-35.4 31.3c7.8-1.1 15.7-1.9 23.5-2.7 1.6 6.2 3.8 11.9 7 17.6 10 17 44 35.7 45.1 7 6.2 14.9 40.8 12.2 54.9 10.8 15.7-1.4 23.8-1.4 26.8-14.3 12.4 4.3 30.8 4.1 44 3 11.3-.8 20.8-.5 24.6-8.9 1.1 5.1 1.9 11.6 4.6 16.8 10.8 21.3 37.3 1.4 46.8-31.6 8.6.8 17.6 1.9 26.5 2.7-.4 1.3-3.8 7.3 7.3 11.6-47.6 47-95.7 87.8-163.2 107-63.2-20.8-112.1-59.5-155.9-106.5 9.6-3.4 10.4-8.8 8-12.5zm-21.6 172.5c-3.8 17.8-21.9 29.7-39.7 28.9-19.2-.8-46.5-17-59.2-36.5-2.7-31.1 43.8-61.3 66.2-54.6 14.9 4.3 27.8 30.8 33.5 54 0 3-.3 5.7-.8 8.2zm-8.7-66c-.5-13.5-.5-27-.3-40.5h.3c2.7-1.6 5.7-3.8 7.8-6.5 6.5-1.6 13-5.1 15.1-9.2 3.3-7.1-7-7.5-5.4-12.4 2.7-1.1 5.7-2.2 7.8-3.5 29.2 29.2 58.6 56.5 97.3 77-36.8 11.3-72.4 27.6-105.9 47-1.2-18.6-7.7-35.9-16.7-51.9zm337.6 64.6c-103 3.5-206.2 4.1-309.4 0 0 .3 0 .3-.3.3v-.3h.3c35.1-21.6 72.2-39.2 112.4-50.8 11.6 5.1 23 9.5 34.9 13.2 2.2.8 2.2.8 4.3 0 14.3-4.1 28.4-9.2 42.2-15.4 41.5 11.7 78.8 31.7 115.6 53zm10.5-12.4c-35.9-19.5-73-35.9-111.9-47.6 38.1-20 71.9-47.3 103.5-76.7 2.2 1.4 4.6 2.4 7.6 3.2 0 .8.3 1.9.5 2.4-4.6 2.7-7.8 6.2-5.9 10.3 2.2 3.8 8.6 7.6 15.1 8.9 2.4 2.7 5.1 5.1 8.1 6.8 0 13.8-.3 27.6-.8 41.3l.3-.3c-9.3 15.9-15.5 37-16.5 51.7zm105.9 6.2c-12.7 19.5-40 35.7-59.2 36.5-19.3.9-40.5-13.2-40.5-37 5.7-23.2 18.9-49.7 33.5-54 22.7-6.9 69.2 23.4 66.2 54.5zM372.9 75.2c-3.8-72.1-100.8-79.7-126-23.5 44.6-24.3 90.3-15.7 126 23.5zM74.8 407.1c-15.7 1.6-49.5 25.4-49.5 43.2 0 11.6 15.7 19.5 32.2 14.9 12.2-3.2 31.1-17.6 35.9-27.3 6-11.6-3.7-32.7-18.6-30.8zm215.9-176.2c28.6 0 51.9-21.6 51.9-48.4 0-36.1-40.5-58.1-72.2-44.3 9.5 3 16.5 11.6 16.5 21.6 0 23.3-33.3 32-46.5 11.3-7.3 34.1 19.4 59.8 50.3 59.8zM68 474.1c.5 6.5 12.2 12.7 21.6 9.5 6.8-2.7 14.6-10.5 17.3-16.2 3-7-1.1-20-9.7-18.4-8.9 1.6-29.7 16.7-29.2 25.1zm433.2-67c-14.9-1.9-24.6 19.2-18.9 30.8 4.9 9.7 24.1 24.1 36.2 27.3 16.5 4.6 32.2-3.2 32.2-14.9 0-17.8-33.8-41.6-49.5-43.2zM478.8 449c-8.4-1.6-12.4 11.3-9.5 18.4 2.4 5.7 10.3 13.5 17.3 16.2 9.2 3.2 21.1-3 21.3-9.5.9-8.4-20.2-23.5-29.1-25.1z"], - "fly": [384, 512, [], "f417", "M197.8 427.8c12.9 11.7 33.7 33.3 33.2 50.7 0 .8-.1 1.6-.1 2.5-1.8 19.8-18.8 31.1-39.1 31-25-.1-39.9-16.8-38.7-35.8 1-16.2 20.5-36.7 32.4-47.6 2.3-2.1 2.7-2.7 5.6-3.6 3.4 0 3.9.3 6.7 2.8zM331.9 67.3c-16.3-25.7-38.6-40.6-63.3-52.1C243.1 4.5 214-.2 192 0c-44.1 0-71.2 13.2-81.1 17.3C57.3 45.2 26.5 87.2 28 158.6c7.1 82.2 97 176 155.8 233.8 1.7 1.6 4.5 4.5 6.2 5.1l3.3.1c2.1-.7 1.8-.5 3.5-2.1 52.3-49.2 140.7-145.8 155.9-215.7 7-39.2 3.1-72.5-20.8-112.5zM186.8 351.9c-28-51.1-65.2-130.7-69.3-189-3.4-47.5 11.4-131.2 69.3-136.7v325.7zM328.7 180c-16.4 56.8-77.3 128-118.9 170.3C237.6 298.4 275 217 277 158.4c1.6-45.9-9.8-105.8-48-131.4 88.8 18.3 115.5 98.1 99.7 153z"], - "square-bluesky": [448, 512, [], "e6a3", "M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM224 247.4c14.5-30 54-85.8 90.7-113.3c26.5-19.9 69.3-35.2 69.3 13.7c0 9.8-5.6 82.1-8.9 93.8c-11.4 40.8-53 51.2-90 44.9c64.7 11 81.2 47.5 45.6 84c-67.5 69.3-97-17.4-104.6-39.6c0 0 0 0 0 0l-.3-.9c-.9-2.6-1.4-4.1-1.8-4.1s-.9 1.5-1.8 4.1c-.1 .3-.2 .6-.3 .9c0 0 0 0 0 0c-7.6 22.2-37.1 108.8-104.6 39.6c-35.5-36.5-19.1-73 45.6-84c-37 6.3-78.6-4.1-90-44.9c-3.3-11.7-8.9-84-8.9-93.8c0-48.9 42.9-33.5 69.3-13.7c36.7 27.5 76.2 83.4 90.7 113.3z"], - "aviato": [640, 512, [], "f421", "M107.2 283.5l-19-41.8H36.1l-19 41.8H0l62.2-131.4 62.2 131.4h-17.2zm-45-98.1l-19.6 42.5h39.2l-19.6-42.5zm112.7 102.4l-62.2-131.4h17.1l45.1 96 45.1-96h17l-62.1 131.4zm80.6-4.3V156.4H271v127.1h-15.5zm209.1-115.6v115.6h-17.3V167.9h-41.2v-11.5h99.6v11.5h-41.1zM640 218.8c0 9.2-1.7 17.8-5.1 25.8-3.4 8-8.2 15.1-14.2 21.1-6 6-13.1 10.8-21.1 14.2-8 3.4-16.6 5.1-25.8 5.1s-17.8-1.7-25.8-5.1c-8-3.4-15.1-8.2-21.1-14.2-6-6-10.8-13-14.2-21.1-3.4-8-5.1-16.6-5.1-25.8s1.7-17.8 5.1-25.8c3.4-8 8.2-15.1 14.2-21.1 6-6 13-8.4 21.1-11.9 8-3.4 16.6-5.1 25.8-5.1s17.8 1.7 25.8 5.1c8 3.4 15.1 5.8 21.1 11.9 6 6 10.7 13.1 14.2 21.1 3.4 8 5.1 16.6 5.1 25.8zm-15.5 0c0-7.3-1.3-14-3.9-20.3-2.6-6.3-6.2-11.7-10.8-16.3-4.6-4.6-10-8.2-16.2-10.9-6.2-2.7-12.8-4-19.8-4s-13.6 1.3-19.8 4c-6.2 2.7-11.6 6.3-16.2 10.9-4.6 4.6-8.2 10-10.8 16.3-2.6 6.3-3.9 13.1-3.9 20.3 0 7.3 1.3 14 3.9 20.3 2.6 6.3 6.2 11.7 10.8 16.3 4.6 4.6 10 8.2 16.2 10.9 6.2 2.7 12.8 4 19.8 4s13.6-1.3 19.8-4c6.2-2.7 11.6-6.3 16.2-10.9 4.6-4.6 8.2-10 10.8-16.3 2.6-6.3 3.9-13.1 3.9-20.3zm-94.8 96.7v-6.3l88.9-10-242.9 13.4c.6-2.2 1.1-4.6 1.4-7.2.3-2 .5-4.2.6-6.5l64.8-8.1-64.9 1.9c0-.4-.1-.7-.1-1.1-2.8-17.2-25.5-23.7-25.5-23.7l-1.1-26.3h23.8l19 41.8h17.1L348.6 152l-62.2 131.4h17.1l19-41.8h23.6L345 268s-22.7 6.5-25.5 23.7c-.1.3-.1.7-.1 1.1l-64.9-1.9 64.8 8.1c.1 2.3.3 4.4.6 6.5.3 2.6.8 5 1.4 7.2L78.4 299.2l88.9 10v6.3c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4 0-6.2-4.6-11.3-10.5-12.2v-5.8l80.3 9v5.4c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-4.9l28.4 3.2v23.7h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9V323l38.3 4.3c8.1 11.4 19 13.6 19 13.6l-.1 6.7-5.1.2-.1 12.1h4.1l.1-5h5.2l.1 5h4.1l-.1-12.1-5.1-.2-.1-6.7s10.9-2.1 19-13.6l38.3-4.3v23.2h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9v-23.7l28.4-3.2v4.9c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-5.4l80.3-9v5.8c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4-.2-6.3-4.7-11.4-10.7-12.3zm-200.8-87.6l19.6-42.5 19.6 42.5h-17.9l-1.7-40.3-1.7 40.3h-17.9z"], - "itunes": [448, 512, [], "f3b4", "M223.6 80.3C129 80.3 52.5 157 52.5 251.5S129 422.8 223.6 422.8s171.2-76.7 171.2-171.2c0-94.6-76.7-171.3-171.2-171.3zm79.4 240c-3.2 13.6-13.5 21.2-27.3 23.8-12.1 2.2-22.2 2.8-31.9-5-11.8-10-12-26.4-1.4-36.8 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 3.2-3.6 2.2-2 2.2-80.8 0-5.6-2.7-7.1-8.4-6.1-4 .7-91.9 17.1-91.9 17.1-5 1.1-6.7 2.6-6.7 8.3 0 116.1.5 110.8-1.2 118.5-2.1 9-7.6 15.8-14.9 19.6-8.3 4.6-23.4 6.6-31.4 5.2-21.4-4-28.9-28.7-14.4-42.9 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 5-5.7.9-127 2.6-133.7.4-2.6 1.5-4.8 3.5-6.4 2.1-1.7 5.8-2.7 6.7-2.7 101-19 113.3-21.4 115.1-21.4 5.7-.4 9 3 9 8.7-.1 170.6.4 161.4-1 167.6zM345.2 32H102.8C45.9 32 0 77.9 0 134.8v242.4C0 434.1 45.9 480 102.8 480h242.4c57 0 102.8-45.9 102.8-102.8V134.8C448 77.9 402.1 32 345.2 32zM223.6 444c-106.3 0-192.5-86.2-192.5-192.5S117.3 59 223.6 59s192.5 86.2 192.5 192.5S329.9 444 223.6 444z"], - "cuttlefish": [440, 512, [], "f38c", "M344 305.5c-17.5 31.6-57.4 54.5-96 54.5-56.6 0-104-47.4-104-104s47.4-104 104-104c38.6 0 78.5 22.9 96 54.5 13.7-50.9 41.7-93.3 87-117.8C385.7 39.1 320.5 8 248 8 111 8 0 119 0 256s111 248 248 248c72.5 0 137.7-31.1 183-80.7-45.3-24.5-73.3-66.9-87-117.8z"], - "blogger": [448, 512, [], "f37c", "M162.4 196c4.8-4.9 6.2-5.1 36.4-5.1 27.2 0 28.1.1 32.1 2.1 5.8 2.9 8.3 7 8.3 13.6 0 5.9-2.4 10-7.6 13.4-2.8 1.8-4.5 1.9-31.1 2.1-16.4.1-29.5-.2-31.5-.8-10.3-2.9-14.1-17.7-6.6-25.3zm61.4 94.5c-53.9 0-55.8.2-60.2 4.1-3.5 3.1-5.7 9.4-5.1 13.9.7 4.7 4.8 10.1 9.2 12 2.2 1 14.1 1.7 56.3 1.2l47.9-.6 9.2-1.5c9-5.1 10.5-17.4 3.1-24.4-5.3-4.7-5-4.7-60.4-4.7zm223.4 130.1c-3.5 28.4-23 50.4-51.1 57.5-7.2 1.8-9.7 1.9-172.9 1.8-157.8 0-165.9-.1-172-1.8-8.4-2.2-15.6-5.5-22.3-10-5.6-3.8-13.9-11.8-17-16.4-3.8-5.6-8.2-15.3-10-22C.1 423 0 420.3 0 256.3 0 93.2 0 89.7 1.8 82.6 8.1 57.9 27.7 39 53 33.4c7.3-1.6 332.1-1.9 340-.3 21.2 4.3 37.9 17.1 47.6 36.4 7.7 15.3 7-1.5 7.3 180.6.2 115.8 0 164.5-.7 170.5zm-85.4-185.2c-1.1-5-4.2-9.6-7.7-11.5-1.1-.6-8-1.3-15.5-1.7-12.4-.6-13.8-.8-17.8-3.1-6.2-3.6-7.9-7.6-8-18.3 0-20.4-8.5-39.4-25.3-56.5-12-12.2-25.3-20.5-40.6-25.1-3.6-1.1-11.8-1.5-39.2-1.8-42.9-.5-52.5.4-67.1 6.2-27 10.7-46.3 33.4-53.4 62.4-1.3 5.4-1.6 14.2-1.9 64.3-.4 62.8 0 72.1 4 84.5 9.7 30.7 37.1 53.4 64.6 58.4 9.2 1.7 122.2 2.1 133.7.5 20.1-2.7 35.9-10.8 50.7-25.9 10.7-10.9 17.4-22.8 21.8-38.5 3.2-10.9 2.9-88.4 1.7-93.9z"], - "flickr": [448, 512, [], "f16e", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM144.5 319c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5zm159 0c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5z"], - "viber": [512, 512, [], "f409", "M444 49.9C431.3 38.2 379.9.9 265.3.4c0 0-135.1-8.1-200.9 52.3C27.8 89.3 14.9 143 13.5 209.5c-1.4 66.5-3.1 191.1 117 224.9h.1l-.1 51.6s-.8 20.9 13 25.1c16.6 5.2 26.4-10.7 42.3-27.8 8.7-9.4 20.7-23.2 29.8-33.7 82.2 6.9 145.3-8.9 152.5-11.2 16.6-5.4 110.5-17.4 125.7-142 15.8-128.6-7.6-209.8-49.8-246.5zM457.9 287c-12.9 104-89 110.6-103 115.1-6 1.9-61.5 15.7-131.2 11.2 0 0-52 62.7-68.2 79-5.3 5.3-11.1 4.8-11-5.7 0-6.9.4-85.7.4-85.7-.1 0-.1 0 0 0-101.8-28.2-95.8-134.3-94.7-189.8 1.1-55.5 11.6-101 42.6-131.6 55.7-50.5 170.4-43 170.4-43 96.9.4 143.3 29.6 154.1 39.4 35.7 30.6 53.9 103.8 40.6 211.1zm-139-80.8c.4 8.6-12.5 9.2-12.9.6-1.1-22-11.4-32.7-32.6-33.9-8.6-.5-7.8-13.4.7-12.9 27.9 1.5 43.4 17.5 44.8 46.2zm20.3 11.3c1-42.4-25.5-75.6-75.8-79.3-8.5-.6-7.6-13.5.9-12.9 58 4.2 88.9 44.1 87.8 92.5-.1 8.6-13.1 8.2-12.9-.3zm47 13.4c.1 8.6-12.9 8.7-12.9.1-.6-81.5-54.9-125.9-120.8-126.4-8.5-.1-8.5-12.9 0-12.9 73.7.5 133 51.4 133.7 139.2zM374.9 329v.2c-10.8 19-31 40-51.8 33.3l-.2-.3c-21.1-5.9-70.8-31.5-102.2-56.5-16.2-12.8-31-27.9-42.4-42.4-10.3-12.9-20.7-28.2-30.8-46.6-21.3-38.5-26-55.7-26-55.7-6.7-20.8 14.2-41 33.3-51.8h.2c9.2-4.8 18-3.2 23.9 3.9 0 0 12.4 14.8 17.7 22.1 5 6.8 11.7 17.7 15.2 23.8 6.1 10.9 2.3 22-3.7 26.6l-12 9.6c-6.1 4.9-5.3 14-5.3 14s17.8 67.3 84.3 84.3c0 0 9.1.8 14-5.3l9.6-12c4.6-6 15.7-9.8 26.6-3.7 14.7 8.3 33.4 21.2 45.8 32.9 7 5.7 8.6 14.4 3.8 23.6z"], - "soundcloud": [640, 512, [], "f1be", "M639.8 298.6c-1.3 23.1-11.5 44.8-28.4 60.5s-39.2 24.4-62.3 24.1h-218c-4.8 0-9.4-2-12.8-5.4s-5.3-8-5.3-12.8V130.2c-.2-4 .9-8 3.1-11.4s5.3-6.1 9-7.7c0 0 20.1-13.9 62.3-13.9c25.8 0 51.1 6.9 73.3 20.1c17.3 10.2 32.3 23.8 44.1 40.1s20 34.8 24.2 54.4c7.5-2.1 15.3-3.2 23.1-3.2c11.7-.1 23.3 2.2 34.2 6.7S606.8 226.6 615 235s14.6 18.3 18.9 29.3s6.3 22.6 5.9 34.3zm-354-153.5c.1-1 0-2-.3-2.9s-.8-1.8-1.5-2.6s-1.5-1.3-2.4-1.7s-1.9-.6-2.9-.6s-2 .2-2.9 .6s-1.7 1-2.4 1.7s-1.2 1.6-1.5 2.6s-.4 1.9-.3 2.9c-6 78.9-10.6 152.9 0 231.6c.2 1.7 1 3.3 2.3 4.5s3 1.8 4.7 1.8s3.4-.6 4.7-1.8s2.1-2.8 2.3-4.5c11.3-79.4 6.6-152 0-231.6zm-44 27.3c-.2-1.8-1.1-3.5-2.4-4.7s-3.1-1.9-5-1.9s-3.6 .7-5 1.9s-2.2 2.9-2.4 4.7c-7.9 67.9-7.9 136.5 0 204.4c.3 1.8 1.2 3.4 2.5 4.5s3.1 1.8 4.8 1.8s3.5-.6 4.8-1.8s2.2-2.8 2.5-4.5c8.8-67.8 8.8-136.5 .1-204.4zm-44.3-6.9c-.2-1.8-1-3.4-2.3-4.6s-3-1.8-4.8-1.8s-3.5 .7-4.8 1.8s-2.1 2.8-2.3 4.6c-6.7 72-10.2 139.3 0 211.1c0 1.9 .7 3.7 2.1 5s3.1 2.1 5 2.1s3.7-.7 5-2.1s2.1-3.1 2.1-5c10.5-72.8 7.3-138.2 .1-211.1zm-44 20.6c0-1.9-.8-3.8-2.1-5.2s-3.2-2.1-5.2-2.1s-3.8 .8-5.2 2.1s-2.1 3.2-2.1 5.2c-8.1 63.3-8.1 127.5 0 190.8c.2 1.8 1 3.4 2.4 4.6s3.1 1.9 4.8 1.9s3.5-.7 4.8-1.9s2.2-2.8 2.4-4.6c8.8-63.3 8.9-127.5 .3-190.8zM109 233.7c0-1.9-.8-3.8-2.1-5.1s-3.2-2.1-5.1-2.1s-3.8 .8-5.1 2.1s-2.1 3.2-2.1 5.1c-10.5 49.2-5.5 93.9 .4 143.6c.3 1.6 1.1 3.1 2.3 4.2s2.8 1.7 4.5 1.7s3.2-.6 4.5-1.7s2.1-2.5 2.3-4.2c6.6-50.4 11.6-94.1 .4-143.6zm-44.1-7.5c-.2-1.8-1.1-3.5-2.4-4.8s-3.2-1.9-5-1.9s-3.6 .7-5 1.9s-2.2 2.9-2.4 4.8c-9.3 50.2-6.2 94.4 .3 144.5c.7 7.6 13.6 7.5 14.4 0c7.2-50.9 10.5-93.8 .3-144.5zM20.3 250.8c-.2-1.8-1.1-3.5-2.4-4.8s-3.2-1.9-5-1.9s-3.6 .7-5 1.9s-2.3 2.9-2.4 4.8c-8.5 33.7-5.9 61.6 .6 95.4c.2 1.7 1 3.3 2.3 4.4s2.9 1.8 4.7 1.8s3.4-.6 4.7-1.8s2.1-2.7 2.3-4.4c7.5-34.5 11.2-61.8 .4-95.4z"], - "digg": [512, 512, [], "f1a6", "M81.7 172.3H0v174.4h132.7V96h-51v76.3zm0 133.4H50.9v-92.3h30.8v92.3zm297.2-133.4v174.4h81.8v28.5h-81.8V416H512V172.3H378.9zm81.8 133.4h-30.8v-92.3h30.8v92.3zm-235.6 41h82.1v28.5h-82.1V416h133.3V172.3H225.1v174.4zm51.2-133.3h30.8v92.3h-30.8v-92.3zM153.3 96h51.3v51h-51.3V96zm0 76.3h51.3v174.4h-51.3V172.3z"], - "tencent-weibo": [384, 512, [], "f1d5", "M72.3 495.8c1.4 19.9-27.6 22.2-29.7 2.9C31 368.8 73.7 259.2 144 185.5c-15.6-34 9.2-77.1 50.6-77.1 30.3 0 55.1 24.6 55.1 55.1 0 44-49.5 70.8-86.9 45.1-65.7 71.3-101.4 169.8-90.5 287.2zM192 .1C66.1.1-12.3 134.3 43.7 242.4 52.4 259.8 79 246.9 70 229 23.7 136.4 91 29.8 192 29.8c75.4 0 136.9 61.4 136.9 136.9 0 90.8-86.9 153.9-167.7 133.1-19.1-4.1-25.6 24.4-6.6 29.1 110.7 23.2 204-60 204-162.3C358.6 74.7 284 .1 192 .1z"], - "letterboxd": [640, 512, [], "e62d", "M521.3 128C586.9 128 640 181.1 640 246.6s-53.1 118.6-118.7 118.6c-42.5 0-79.7-22.3-100.7-55.8c11.4-18.2 18-39.7 18-62.8s-6.6-44.6-18-62.8l0 0 .8-1.2c20.8-32.3 56.8-53.9 97.9-54.6l2 0zM320 128c42.5 0 79.7 22.3 100.7 55.8c-11.4 18.2-18 39.7-18 62.8s6.6 44.6 18 62.8l0 0-.8 1.2c-20.8 32.3-56.8 53.9-97.9 54.6l-2 0c-42.5 0-79.7-22.3-100.7-55.8c11.4-18.2 18-39.7 18-62.8s-6.6-44.6-18-62.8l0 0 .8-1.2c20.8-32.3 56.8-53.9 97.9-54.6l2 0zm-201.3 0c42.5 0 79.7 22.3 100.7 55.8c-11.4 18.2-18 39.7-18 62.8s6.6 44.6 18 62.8l0 0-.8 1.2c-20.8 32.3-56.8 53.9-97.9 54.6l-2 0C53.1 365.1 0 312.1 0 246.6S53.1 128 118.7 128z"], - "symfony": [512, 512, [], "f83d", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm133.74 143.54c-11.47.41-19.4-6.45-19.77-16.87-.27-9.18 6.68-13.44 6.53-18.85-.23-6.55-10.16-6.82-12.87-6.67-39.78 1.29-48.59 57-58.89 113.85 21.43 3.15 36.65-.72 45.14-6.22 12-7.75-3.34-15.72-1.42-24.56 4-18.16 32.55-19 32 5.3-.36 17.86-25.92 41.81-77.6 35.7-10.76 59.52-18.35 115-58.2 161.72-29 34.46-58.4 39.82-71.58 40.26-24.65.85-41-12.31-41.58-29.84-.56-17 14.45-26.26 24.31-26.59 21.89-.75 30.12 25.67 14.88 34-12.09 9.71.11 12.61 2.05 12.55 10.42-.36 17.34-5.51 22.18-9 24-20 33.24-54.86 45.35-118.35 8.19-49.66 17-78 18.23-82-16.93-12.75-27.08-28.55-49.85-34.72-15.61-4.23-25.12-.63-31.81 7.83-7.92 10-5.29 23 2.37 30.7l12.63 14c15.51 17.93 24 31.87 20.8 50.62-5.06 29.93-40.72 52.9-82.88 39.94-36-11.11-42.7-36.56-38.38-50.62 7.51-24.15 42.36-11.72 34.62 13.6-2.79 8.6-4.92 8.68-6.28 13.07-4.56 14.77 41.85 28.4 51-1.39 4.47-14.52-5.3-21.71-22.25-39.85-28.47-31.75-16-65.49 2.95-79.67C204.23 140.13 251.94 197 262 205.29c37.17-109 100.53-105.46 102.43-105.53 25.16-.81 44.19 10.59 44.83 28.65.25 7.69-4.17 22.59-19.52 23.13z"], - "maxcdn": [512, 512, [], "f136", "M461.1 442.7h-97.4L415.6 200c2.3-10.2.9-19.5-4.4-25.7-5-6.1-13.7-9.6-24.2-9.6h-49.3l-59.5 278h-97.4l59.5-278h-83.4l-59.5 278H0l59.5-278-44.6-95.4H387c39.4 0 75.3 16.3 98.3 44.9 23.3 28.6 31.8 67.4 23.6 105.9l-47.8 222.6z"], - "etsy": [384, 512, [], "f2d7", "M384 348c-1.75 10.75-13.75 110-15.5 132-117.879-4.299-219.895-4.743-368.5 0v-25.5c45.457-8.948 60.627-8.019 61-35.25 1.793-72.322 3.524-244.143 0-322-1.029-28.46-12.13-26.765-61-36v-25.5c73.886 2.358 255.933 8.551 362.999-3.75-3.5 38.25-7.75 126.5-7.75 126.5H332C320.947 115.665 313.241 68 277.25 68h-137c-10.25 0-10.75 3.5-10.75 9.75V241.5c58 .5 88.5-2.5 88.5-2.5 29.77-.951 27.56-8.502 40.75-65.251h25.75c-4.407 101.351-3.91 61.829-1.75 160.25H257c-9.155-40.086-9.065-61.045-39.501-61.5 0 0-21.5-2-88-2v139c0 26 14.25 38.25 44.25 38.25H263c63.636 0 66.564-24.996 98.751-99.75H384z"], - "facebook-messenger": [512, 512, [], "f39f", "M256.55 8C116.52 8 8 110.34 8 248.57c0 72.3 29.71 134.78 78.07 177.94 8.35 7.51 6.63 11.86 8.05 58.23A19.92 19.92 0 0 0 122 502.31c52.91-23.3 53.59-25.14 62.56-22.7C337.85 521.8 504 423.7 504 248.57 504 110.34 396.59 8 256.55 8zm149.24 185.13l-73 115.57a37.37 37.37 0 0 1-53.91 9.93l-58.08-43.47a15 15 0 0 0-18 0l-78.37 59.44c-10.46 7.93-24.16-4.6-17.11-15.67l73-115.57a37.36 37.36 0 0 1 53.91-9.93l58.06 43.46a15 15 0 0 0 18 0l78.41-59.38c10.44-7.98 24.14 4.54 17.09 15.62z"], - "audible": [640, 512, [], "f373", "M640 199.9v54l-320 200L0 254v-54l320 200 320-200.1zm-194.5 72l47.1-29.4c-37.2-55.8-100.7-92.6-172.7-92.6-72 0-135.5 36.7-172.6 92.4h.3c2.5-2.3 5.1-4.5 7.7-6.7 89.7-74.4 219.4-58.1 290.2 36.3zm-220.1 18.8c16.9-11.9 36.5-18.7 57.4-18.7 34.4 0 65.2 18.4 86.4 47.6l45.4-28.4c-20.9-29.9-55.6-49.5-94.8-49.5-38.9 0-73.4 19.4-94.4 49zM103.6 161.1c131.8-104.3 318.2-76.4 417.5 62.1l.7 1 48.8-30.4C517.1 112.1 424.8 58.1 319.9 58.1c-103.5 0-196.6 53.5-250.5 135.6 9.9-10.5 22.7-23.5 34.2-32.6zm467 32.7z"], - "think-peaks": [576, 512, [], "f731", "M465.4 409.4l87.1-150.2-32-.3-55.1 95L259.2 0 23 407.4l32 .3L259.2 55.6zm-355.3-44.1h32.1l117.4-202.5L463 511.9l32.5.1-235.8-404.6z"], - "bilibili": [512, 512, [], "e3d9", "M488.6 104.1C505.3 122.2 513 143.8 511.9 169.8V372.2C511.5 398.6 502.7 420.3 485.4 437.3C468.2 454.3 446.3 463.2 419.9 464H92.02C65.57 463.2 43.81 454.2 26.74 436.8C9.682 419.4 .7667 396.5 0 368.2V169.8C.7667 143.8 9.682 122.2 26.74 104.1C43.81 87.75 65.57 78.77 92.02 78H121.4L96.05 52.19C90.3 46.46 87.42 39.19 87.42 30.4C87.42 21.6 90.3 14.34 96.05 8.603C101.8 2.868 109.1 0 117.9 0C126.7 0 134 2.868 139.8 8.603L213.1 78H301.1L375.6 8.603C381.7 2.868 389.2 0 398 0C406.8 0 414.1 2.868 419.9 8.603C425.6 14.34 428.5 21.6 428.5 30.4C428.5 39.19 425.6 46.46 419.9 52.19L394.6 78L423.9 78C450.3 78.77 471.9 87.75 488.6 104.1H488.6zM449.8 173.8C449.4 164.2 446.1 156.4 439.1 150.3C433.9 144.2 425.1 140.9 416.4 140.5H96.05C86.46 140.9 78.6 144.2 72.47 150.3C66.33 156.4 63.07 164.2 62.69 173.8V368.2C62.69 377.4 65.95 385.2 72.47 391.7C78.99 398.2 86.85 401.5 96.05 401.5H416.4C425.6 401.5 433.4 398.2 439.7 391.7C446 385.2 449.4 377.4 449.8 368.2L449.8 173.8zM185.5 216.5C191.8 222.8 195.2 230.6 195.6 239.7V273C195.2 282.2 191.9 289.9 185.8 296.2C179.6 302.5 171.8 305.7 162.2 305.7C152.6 305.7 144.7 302.5 138.6 296.2C132.5 289.9 129.2 282.2 128.8 273V239.7C129.2 230.6 132.6 222.8 138.9 216.5C145.2 210.2 152.1 206.9 162.2 206.5C171.4 206.9 179.2 210.2 185.5 216.5H185.5zM377 216.5C383.3 222.8 386.7 230.6 387.1 239.7V273C386.7 282.2 383.4 289.9 377.3 296.2C371.2 302.5 363.3 305.7 353.7 305.7C344.1 305.7 336.3 302.5 330.1 296.2C323.1 289.9 320.7 282.2 320.4 273V239.7C320.7 230.6 324.1 222.8 330.4 216.5C336.7 210.2 344.5 206.9 353.7 206.5C362.9 206.9 370.7 210.2 377 216.5H377z"], - "erlang": [640, 512, [], "f39d", "M87.2 53.5H0v405h100.4c-49.7-52.6-78.8-125.3-78.7-212.1-.1-76.7 24-142.7 65.5-192.9zm238.2 9.7c-45.9.1-85.1 33.5-89.2 83.2h169.9c-1.1-49.7-34.5-83.1-80.7-83.2zm230.7-9.6h.3l-.1-.1zm.3 0c31.4 42.7 48.7 97.5 46.2 162.7.5 6 .5 11.7 0 24.1H230.2c-.2 109.7 38.9 194.9 138.6 195.3 68.5-.3 118-51 151.9-106.1l96.4 48.2c-17.4 30.9-36.5 57.8-57.9 80.8H640v-405z"], - "x-twitter": [512, 512, [], "e61b", "M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z"], - "cotton-bureau": [512, 512, [], "f89e", "M474.31 330.41c-23.66 91.85-94.23 144.59-201.9 148.35V429.6c0-48 26.41-74.39 74.39-74.39 62 0 99.2-37.2 99.2-99.21 0-61.37-36.53-98.28-97.38-99.06-33-69.32-146.5-64.65-177.24 0C110.52 157.72 74 194.63 74 256c0 62.13 37.27 99.41 99.4 99.41 48 0 74.55 26.23 74.55 74.39V479c-134.43-5-211.1-85.07-211.1-223 0-141.82 81.35-223.2 223.2-223.2 114.77 0 189.84 53.2 214.69 148.81H500C473.88 71.51 388.22 8 259.82 8 105 8 12 101.19 12 255.82 12 411.14 105.19 504.34 259.82 504c128.27 0 213.87-63.81 239.67-173.59zM357 182.33c41.37 3.45 64.2 29 64.2 73.67 0 48-26.43 74.41-74.4 74.41-28.61 0-49.33-9.59-61.59-27.33 83.06-16.55 75.59-99.67 71.79-120.75zm-81.68 97.36c-2.46-10.34-16.33-87 56.23-97 2.27 10.09 16.52 87.11-56.26 97zM260 132c28.61 0 49 9.67 61.44 27.61-28.36 5.48-49.36 20.59-61.59 43.45-12.23-22.86-33.23-38-61.6-43.45 12.41-17.69 33.27-27.35 61.57-27.35zm-71.52 50.72c73.17 10.57 58.91 86.81 56.49 97-72.41-9.84-59-86.95-56.25-97zM173.2 330.41c-48 0-74.4-26.4-74.4-74.41 0-44.36 22.86-70 64.22-73.67-6.75 37.2-1.38 106.53 71.65 120.75-12.14 17.63-32.84 27.3-61.14 27.3zm53.21 12.39A80.8 80.8 0 0 0 260 309.25c7.77 14.49 19.33 25.54 33.82 33.55a80.28 80.28 0 0 0-33.58 33.83c-8-14.5-19.07-26.23-33.56-33.83z"], - "dashcube": [448, 512, [], "f210", "M326.6 104H110.4c-51.1 0-91.2 43.3-91.2 93.5V427c0 50.5 40.1 85 91.2 85h227.2c51.1 0 91.2-34.5 91.2-85V0L326.6 104zM153.9 416.5c-17.7 0-32.4-15.1-32.4-32.8V240.8c0-17.7 14.7-32.5 32.4-32.5h140.7c17.7 0 32 14.8 32 32.5v123.5l51.1 52.3H153.9z"], - "42-group": [640, 512, ["innosoft"], "e080", "M320 96V416C341.011 416 361.818 411.861 381.23 403.821C400.641 395.78 418.28 383.995 433.138 369.138C447.995 354.28 459.78 336.641 467.821 317.23C475.861 297.818 480 277.011 480 256C480 234.989 475.861 214.182 467.821 194.771C459.78 175.359 447.995 157.72 433.138 142.863C418.28 128.005 400.641 116.22 381.23 108.179C361.818 100.139 341.011 96 320 96ZM0 256L160.002 416L320.003 256L160.002 96L0 256ZM480 256C480 277.011 484.138 297.818 492.179 317.23C500.219 336.643 512.005 354.28 526.862 369.138C541.72 383.995 559.357 395.781 578.77 403.821C598.182 411.862 618.989 416 640 416V96C597.565 96 556.869 112.858 526.862 142.863C496.857 172.869 480 213.565 480 256Z"], - "stack-exchange": [448, 512, [], "f18d", "M17.7 332.3h412.7v22c0 37.7-29.3 68-65.3 68h-19L259.3 512v-89.7H83c-36 0-65.3-30.3-65.3-68v-22zm0-23.6h412.7v-85H17.7v85zm0-109.4h412.7v-85H17.7v85zM365 0H83C47 0 17.7 30.3 17.7 67.7V90h412.7V67.7C430.3 30.3 401 0 365 0z"], - "elementor": [512, 512, [], "f430", "M.361 256C.361 397 114 511 255 511C397 511 511 397 511 256C511 116 397 2.05 255 2.05C114 2.05 .361 116 .361 256zM192 150V363H149V150H192zM234 150H362V193H234V150zM362 235V278H234V235H362zM234 320H362V363H234V320z"], - "square-pied-piper": [448, 512, ["pied-piper-square"], "e01e", "M32 419L0 479.2l.8-328C.8 85.3 54 32 120 32h327.2c-93 28.9-189.9 94.2-253.9 168.6C122.7 282 82.6 338 32 419M448 32S305.2 98.8 261.6 199.1c-23.2 53.6-28.9 118.1-71 158.6-28.9 27.8-69.8 38.2-105.3 56.3-23.2 12-66.4 40.5-84.9 66h328.4c66 0 119.3-53.3 119.3-119.2-.1 0-.1-328.8-.1-328.8z"], - "creative-commons-nd": [496, 512, [], "f4eb", "M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm94 144.3v42.5H162.1V197h180.3zm0 79.8v42.5H162.1v-42.5h180.3z"], - "palfed": [576, 512, [], "f3d8", "M384.9 193.9c0-47.4-55.2-44.2-95.4-29.8-1.3 39.4-2.5 80.7-3 119.8.7 2.8 2.6 6.2 15.1 6.2 36.8 0 83.4-42.8 83.3-96.2zm-194.5 72.2c.2 0 6.5-2.7 11.2-2.7 26.6 0 20.7 44.1-14.4 44.1-21.5 0-37.1-18.1-37.1-43 0-42 42.9-95.6 100.7-126.5 1-12.4 3-22 10.5-28.2 11.2-9 26.6-3.5 29.5 11.1 72.2-22.2 135.2 1 135.2 72 0 77.9-79.3 152.6-140.1 138.2-.1 39.4.9 74.4 2.7 100v.2c.2 3.4.6 12.5-5.3 19.1-9.6 10.6-33.4 10-36.4-22.3-4.1-44.4.2-206.1 1.4-242.5-21.5 15-58.5 50.3-58.5 75.9.2 2.5.4 4 .6 4.6zM8 181.1s-.1 37.4 38.4 37.4h30l22.4 217.2s0 44.3 44.7 44.3h288.9s44.7-.4 44.7-44.3l22.4-217.2h30s38.4 1.2 38.4-37.4c0 0 .1-37.4-38.4-37.4h-30.1c-7.3-25.6-30.2-74.3-119.4-74.3h-28V50.3s-2.7-18.4-21.1-18.4h-85.8s-21.1 0-21.1 18.4v19.1h-28.1s-105 4.2-120.5 74.3h-29S8 142.5 8 181.1z"], - "superpowers": [448, 512, [], "f2dd", "M448 32c-83.3 11-166.8 22-250 33-92 12.5-163.3 86.7-169 180-3.3 55.5 18 109.5 57.8 148.2L0 480c83.3-11 166.5-22 249.8-33 91.8-12.5 163.3-86.8 168.7-179.8 3.5-55.5-18-109.5-57.7-148.2L448 32zm-79.7 232.3c-4.2 79.5-74 139.2-152.8 134.5-79.5-4.7-140.7-71-136.3-151 4.5-79.2 74.3-139.3 153-134.5 79.3 4.7 140.5 71 136.1 151z"], - "resolving": [496, 512, [], "f3e7", "M281.2 278.2c46-13.3 49.6-23.5 44-43.4L314 195.5c-6.1-20.9-18.4-28.1-71.1-12.8L54.7 236.8l28.6 98.6 197.9-57.2zM248.5 8C131.4 8 33.2 88.7 7.2 197.5l221.9-63.9c34.8-10.2 54.2-11.7 79.3-8.2 36.3 6.1 52.7 25 61.4 55.2l10.7 37.8c8.2 28.1 1 50.6-23.5 73.6-19.4 17.4-31.2 24.5-61.4 33.2L203 351.8l220.4 27.1 9.7 34.2-48.1 13.3-286.8-37.3 23 80.2c36.8 22 80.3 34.7 126.3 34.7 137 0 248.5-111.4 248.5-248.3C497 119.4 385.5 8 248.5 8zM38.3 388.6L0 256.8c0 48.5 14.3 93.4 38.3 131.8z"], - "xbox": [512, 512, [], "f412", "M369.9 318.2c44.3 54.3 64.7 98.8 54.4 118.7-7.9 15.1-56.7 44.6-92.6 55.9-29.6 9.3-68.4 13.3-100.4 10.2-38.2-3.7-76.9-17.4-110.1-39C93.3 445.8 87 438.3 87 423.4c0-29.9 32.9-82.3 89.2-142.1 32-33.9 76.5-73.7 81.4-72.6 9.4 2.1 84.3 75.1 112.3 109.5zM188.6 143.8c-29.7-26.9-58.1-53.9-86.4-63.4-15.2-5.1-16.3-4.8-28.7 8.1-29.2 30.4-53.5 79.7-60.3 122.4-5.4 34.2-6.1 43.8-4.2 60.5 5.6 50.5 17.3 85.4 40.5 120.9 9.5 14.6 12.1 17.3 9.3 9.9-4.2-11-.3-37.5 9.5-64 14.3-39 53.9-112.9 120.3-194.4zm311.6 63.5C483.3 127.3 432.7 77 425.6 77c-7.3 0-24.2 6.5-36 13.9-23.3 14.5-41 31.4-64.3 52.8C367.7 197 427.5 283.1 448.2 346c6.8 20.7 9.7 41.1 7.4 52.3-1.7 8.5-1.7 8.5 1.4 4.6 6.1-7.7 19.9-31.3 25.4-43.5 7.4-16.2 15-40.2 18.6-58.7 4.3-22.5 3.9-70.8-.8-93.4zM141.3 43C189 40.5 251 77.5 255.6 78.4c.7.1 10.4-4.2 21.6-9.7 63.9-31.1 94-25.8 107.4-25.2-63.9-39.3-152.7-50-233.9-11.7-23.4 11.1-24 11.9-9.4 11.2z"], - "square-web-awesome-stroke": [448, 512, [], "e684", "M64 64C46.3 64 32 78.3 32 96l0 320c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32l0-320c0-17.7-14.3-32-32-32L64 64zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm235 81.6L288 224l52.2-10.4c-2.6-3.9-4.2-8.5-4.2-13.6c0-13.3 10.7-24 24-24s24 10.7 24 24c0 13-10.3 23.6-23.2 24L304.5 349.1c-5.2 11.5-16.6 18.9-29.2 18.9l-102.6 0c-12.6 0-24-7.4-29.2-18.9L87.2 224C74.3 223.6 64 213 64 200c0-13.3 10.7-24 24-24s24 10.7 24 24c0 5-1.5 9.7-4.2 13.6L160 224l53.1-46.4c-8.9-4.1-15-13.1-15-23.6c0-14.4 11.6-26 26-26s26 11.6 26 26c0 10.5-6.2 19.5-15.1 23.6z"], - "searchengin": [460, 512, [], "f3eb", "M220.6 130.3l-67.2 28.2V43.2L98.7 233.5l54.7-24.2v130.3l67.2-209.3zm-83.2-96.7l-1.3 4.7-15.2 52.9C80.6 106.7 52 145.8 52 191.5c0 52.3 34.3 95.9 83.4 105.5v53.6C57.5 340.1 0 272.4 0 191.6c0-80.5 59.8-147.2 137.4-158zm311.4 447.2c-11.2 11.2-23.1 12.3-28.6 10.5-5.4-1.8-27.1-19.9-60.4-44.4-33.3-24.6-33.6-35.7-43-56.7-9.4-20.9-30.4-42.6-57.5-52.4l-9.7-14.7c-24.7 16.9-53 26.9-81.3 28.7l2.1-6.6 15.9-49.5c46.5-11.9 80.9-54 80.9-104.2 0-54.5-38.4-102.1-96-107.1V32.3C254.4 37.4 320 106.8 320 191.6c0 33.6-11.2 64.7-29 90.4l14.6 9.6c9.8 27.1 31.5 48 52.4 57.4s32.2 9.7 56.8 43c24.6 33.2 42.7 54.9 44.5 60.3s.7 17.3-10.5 28.5zm-9.9-17.9c0-4.4-3.6-8-8-8s-8 3.6-8 8 3.6 8 8 8 8-3.6 8-8z"], - "tiktok": [448, 512, [], "e07b", "M448,209.91a210.06,210.06,0,0,1-122.77-39.25V349.38A162.55,162.55,0,1,1,185,188.31V278.2a74.62,74.62,0,1,0,52.23,71.18V0l88,0a121.18,121.18,0,0,0,1.86,22.17h0A122.18,122.18,0,0,0,381,102.39a121.43,121.43,0,0,0,67,20.14Z"], - "square-facebook": [448, 512, ["facebook-square"], "f082", "M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64h98.2V334.2H109.4V256h52.8V222.3c0-87.1 39.4-127.5 125-127.5c16.2 0 44.2 3.2 55.7 6.4V172c-6-.6-16.5-1-29.6-1c-42 0-58.2 15.9-58.2 57.2V256h83.6l-14.4 78.2H255V480H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z"], - "renren": [512, 512, [], "f18b", "M214 169.1c0 110.4-61 205.4-147.6 247.4C30 373.2 8 317.7 8 256.6 8 133.9 97.1 32.2 214 12.5v156.6zM255 504c-42.9 0-83.3-11-118.5-30.4C193.7 437.5 239.9 382.9 255 319c15.5 63.9 61.7 118.5 118.8 154.7C338.7 493 298.3 504 255 504zm190.6-87.5C359 374.5 298 279.6 298 169.1V12.5c116.9 19.7 206 121.4 206 244.1 0 61.1-22 116.6-58.4 159.9z"], - "linux": [448, 512, [], "f17c", "M220.8 123.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5.2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4.2-.8.7-.6 1.1.3 1.3 2.3 1.1 3.4 1.7zm-21.9 1.7c1.2 0 2-1.2 3-1.7 1.1-.6 3.1-.4 3.5-1.6.2-.4-.2-.9-.6-1.1-1.6-.9-3.8-.6-5.5.1-1.3.6-3.4 1.5-3.2 2.9.1 1 1.8 1.5 2.8 1.4zM420 403.8c-3.6-4-5.3-11.6-7.2-19.7-1.8-8.1-3.9-16.8-10.5-22.4-1.3-1.1-2.6-2.1-4-2.9-1.3-.8-2.7-1.5-4.1-2 9.2-27.3 5.6-54.5-3.7-79.1-11.4-30.1-31.3-56.4-46.5-74.4-17.1-21.5-33.7-41.9-33.4-72C311.1 85.4 315.7.1 234.8 0 132.4-.2 158 103.4 156.9 135.2c-1.7 23.4-6.4 41.8-22.5 64.7-18.9 22.5-45.5 58.8-58.1 96.7-6 17.9-8.8 36.1-6.2 53.3-6.5 5.8-11.4 14.7-16.6 20.2-4.2 4.3-10.3 5.9-17 8.3s-14 6-18.5 14.5c-2.1 3.9-2.8 8.1-2.8 12.4 0 3.9.6 7.9 1.2 11.8 1.2 8.1 2.5 15.7.8 20.8-5.2 14.4-5.9 24.4-2.2 31.7 3.8 7.3 11.4 10.5 20.1 12.3 17.3 3.6 40.8 2.7 59.3 12.5 19.8 10.4 39.9 14.1 55.9 10.4 11.6-2.6 21.1-9.6 25.9-20.2 12.5-.1 26.3-5.4 48.3-6.6 14.9-1.2 33.6 5.3 55.1 4.1.6 2.3 1.4 4.6 2.5 6.7v.1c8.3 16.7 23.8 24.3 40.3 23 16.6-1.3 34.1-11 48.3-27.9 13.6-16.4 36-23.2 50.9-32.2 7.4-4.5 13.4-10.1 13.9-18.3.4-8.2-4.4-17.3-15.5-29.7zM223.7 87.3c9.8-22.2 34.2-21.8 44-.4 6.5 14.2 3.6 30.9-4.3 40.4-1.6-.8-5.9-2.6-12.6-4.9 1.1-1.2 3.1-2.7 3.9-4.6 4.8-11.8-.2-27-9.1-27.3-7.3-.5-13.9 10.8-11.8 23-4.1-2-9.4-3.5-13-4.4-1-6.9-.3-14.6 2.9-21.8zM183 75.8c10.1 0 20.8 14.2 19.1 33.5-3.5 1-7.1 2.5-10.2 4.6 1.2-8.9-3.3-20.1-9.6-19.6-8.4.7-9.8 21.2-1.8 28.1 1 .8 1.9-.2-5.9 5.5-15.6-14.6-10.5-52.1 8.4-52.1zm-13.6 60.7c6.2-4.6 13.6-10 14.1-10.5 4.7-4.4 13.5-14.2 27.9-14.2 7.1 0 15.6 2.3 25.9 8.9 6.3 4.1 11.3 4.4 22.6 9.3 8.4 3.5 13.7 9.7 10.5 18.2-2.6 7.1-11 14.4-22.7 18.1-11.1 3.6-19.8 16-38.2 14.9-3.9-.2-7-1-9.6-2.1-8-3.5-12.2-10.4-20-15-8.6-4.8-13.2-10.4-14.7-15.3-1.4-4.9 0-9 4.2-12.3zm3.3 334c-2.7 35.1-43.9 34.4-75.3 18-29.9-15.8-68.6-6.5-76.5-21.9-2.4-4.7-2.4-12.7 2.6-26.4v-.2c2.4-7.6.6-16-.6-23.9-1.2-7.8-1.8-15 .9-20 3.5-6.7 8.5-9.1 14.8-11.3 10.3-3.7 11.8-3.4 19.6-9.9 5.5-5.7 9.5-12.9 14.3-18 5.1-5.5 10-8.1 17.7-6.9 8.1 1.2 15.1 6.8 21.9 16l19.6 35.6c9.5 19.9 43.1 48.4 41 68.9zm-1.4-25.9c-4.1-6.6-9.6-13.6-14.4-19.6 7.1 0 14.2-2.2 16.7-8.9 2.3-6.2 0-14.9-7.4-24.9-13.5-18.2-38.3-32.5-38.3-32.5-13.5-8.4-21.1-18.7-24.6-29.9s-3-23.3-.3-35.2c5.2-22.9 18.6-45.2 27.2-59.2 2.3-1.7.8 3.2-8.7 20.8-8.5 16.1-24.4 53.3-2.6 82.4.6-20.7 5.5-41.8 13.8-61.5 12-27.4 37.3-74.9 39.3-112.7 1.1.8 4.6 3.2 6.2 4.1 4.6 2.7 8.1 6.7 12.6 10.3 12.4 10 28.5 9.2 42.4 1.2 6.2-3.5 11.2-7.5 15.9-9 9.9-3.1 17.8-8.6 22.3-15 7.7 30.4 25.7 74.3 37.2 95.7 6.1 11.4 18.3 35.5 23.6 64.6 3.3-.1 7 .4 10.9 1.4 13.8-35.7-11.7-74.2-23.3-84.9-4.7-4.6-4.9-6.6-2.6-6.5 12.6 11.2 29.2 33.7 35.2 59 2.8 11.6 3.3 23.7.4 35.7 16.4 6.8 35.9 17.9 30.7 34.8-2.2-.1-3.2 0-4.2 0 3.2-10.1-3.9-17.6-22.8-26.1-19.6-8.6-36-8.6-38.3 12.5-12.1 4.2-18.3 14.7-21.4 27.3-2.8 11.2-3.6 24.7-4.4 39.9-.5 7.7-3.6 18-6.8 29-32.1 22.9-76.7 32.9-114.3 7.2zm257.4-11.5c-.9 16.8-41.2 19.9-63.2 46.5-13.2 15.7-29.4 24.4-43.6 25.5s-26.5-4.8-33.7-19.3c-4.7-11.1-2.4-23.1 1.1-36.3 3.7-14.2 9.2-28.8 9.9-40.6.8-15.2 1.7-28.5 4.2-38.7 2.6-10.3 6.6-17.2 13.7-21.1.3-.2.7-.3 1-.5.8 13.2 7.3 26.6 18.8 29.5 12.6 3.3 30.7-7.5 38.4-16.3 9-.3 15.7-.9 22.6 5.1 9.9 8.5 7.1 30.3 17.1 41.6 10.6 11.6 14 19.5 13.7 24.6zM173.3 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4s5.9-6.3 3.1-6.6-2.6 2.6-6 5.1c-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2s-18.7-4.8-24.9-9.7c-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5z"], - "glide": [448, 512, [], "f2a5", "M252.8 148.6c0 8.8-1.6 17.7-3.4 26.4-5.8 27.8-11.6 55.8-17.3 83.6-1.4 6.3-8.3 4.9-13.7 4.9-23.8 0-30.5-26-30.5-45.5 0-29.3 11.2-68.1 38.5-83.1 4.3-2.5 9.2-4.2 14.1-4.2 11.4 0 12.3 8.3 12.3 17.9zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-64 187c0-5.1-20.8-37.7-25.5-39.5-2.2-.9-7.2-2.3-9.6-2.3-23.1 0-38.7 10.5-58.2 21.5l-.5-.5c4.3-29.4 14.6-57.2 14.6-87.4 0-44.6-23.8-62.7-67.5-62.7-71.7 0-108 70.8-108 123.5 0 54.7 32 85 86.3 85 7.5 0 6.9-.6 6.9 2.3-10.5 80.3-56.5 82.9-56.5 58.9 0-24.4 28-36.5 28.3-38-.2-7.6-29.3-17.2-36.7-17.2-21.1 0-32.7 33-32.7 50.6 0 32.3 20.4 54.7 53.3 54.7 48.2 0 83.4-49.7 94.3-91.7 9.4-37.7 7-39.4 12.3-42.1 20-10.1 35.8-16.8 58.4-16.8 11.1 0 19 2.3 36.7 5.2 1.8.1 4.1-1.7 4.1-3.5z"], - "linkedin": [448, 512, [], "f08c", "M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z"], - "hubspot": [512, 512, [], "f3b2", "M267.4 211.6c-25.1 23.7-40.8 57.3-40.8 94.6 0 29.3 9.7 56.3 26 78L203.1 434c-4.4-1.6-9.1-2.5-14-2.5-10.8 0-20.9 4.2-28.5 11.8-7.6 7.6-11.8 17.8-11.8 28.6s4.2 20.9 11.8 28.5c7.6 7.6 17.8 11.6 28.5 11.6 10.8 0 20.9-3.9 28.6-11.6 7.6-7.6 11.8-17.8 11.8-28.5 0-4.2-.6-8.2-1.9-12.1l50-50.2c22 16.9 49.4 26.9 79.3 26.9 71.9 0 130-58.3 130-130.2 0-65.2-47.7-119.2-110.2-128.7V116c17.5-7.4 28.2-23.8 28.2-42.9 0-26.1-20.9-47.9-47-47.9S311.2 47 311.2 73.1c0 19.1 10.7 35.5 28.2 42.9v61.2c-15.2 2.1-29.6 6.7-42.7 13.6-27.6-20.9-117.5-85.7-168.9-124.8 1.2-4.4 2-9 2-13.8C129.8 23.4 106.3 0 77.4 0 48.6 0 25.2 23.4 25.2 52.2c0 28.9 23.4 52.3 52.2 52.3 9.8 0 18.9-2.9 26.8-7.6l163.2 114.7zm89.5 163.6c-38.1 0-69-30.9-69-69s30.9-69 69-69 69 30.9 69 69-30.9 69-69 69z"], - "deploydog": [512, 512, [], "f38e", "M382.2 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.6 0-33.2 16.4-33.2 32.6zM188.5 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.7 0-33.2 16.4-33.2 32.6zM448 96c17.5 0 32 14.4 32 32v256c0 17.5-14.4 32-32 32H64c-17.5 0-32-14.4-32-32V128c0-17.5 14.4-32 32-32h384m0-32H64C28.8 64 0 92.8 0 128v256c0 35.2 28.8 64 64 64h384c35.2 0 64-28.8 64-64V128c0-35.2-28.8-64-64-64z"], - "twitch": [512, 512, [], "f1e8", "M391.17,103.47H352.54v109.7h38.63ZM285,103H246.37V212.75H285ZM120.83,0,24.31,91.42V420.58H140.14V512l96.53-91.42h77.25L487.69,256V0ZM449.07,237.75l-77.22,73.12H294.61l-67.6,64v-64H140.14V36.58H449.07Z"], - "flutter": [448, 512, [], "e694", "M429.5 236.3L291.7 374.1 429.5 512H272l-59.1-59.1-78.8-78.8L272 236.3H429.5zM272 0L16 256l78.8 78.8L429.5 0H272z"], - "ravelry": [512, 512, [], "f2d9", "M498.252,234.223c-1.208-10.34-1.7-20.826-3.746-31a310.306,310.306,0,0,0-9.622-36.6,184.068,184.068,0,0,0-30.874-57.5,251.154,251.154,0,0,0-18.818-21.689,237.362,237.362,0,0,0-47.113-36.116A240.8,240.8,0,0,0,331.356,26.65c-11.018-3.1-22.272-5.431-33.515-7.615-6.78-1.314-13.749-1.667-20.627-2.482-.316-.036-.6-.358-.9-.553q-16.143.009-32.288.006c-2.41.389-4.808.925-7.236,1.15a179.331,179.331,0,0,0-34.256,7.1,221.5,221.5,0,0,0-39.768,16.355,281.385,281.385,0,0,0-38.08,24.158c-6.167,4.61-12.268,9.36-17.974,14.518C96.539,88.494,86.34,97.72,76.785,107.555a243.878,243.878,0,0,0-33.648,43.95,206.488,206.488,0,0,0-20.494,44.6,198.2,198.2,0,0,0-7.691,34.759A201.13,201.13,0,0,0,13.4,266.385a299.716,299.716,0,0,0,4.425,40.24,226.865,226.865,0,0,0,16.73,53.3,210.543,210.543,0,0,0,24,39.528,213.589,213.589,0,0,0,26.358,28.416A251.313,251.313,0,0,0,126.7,458.455a287.831,287.831,0,0,0,55.9,25.277,269.5,269.5,0,0,0,40.641,9.835c6.071,1.01,12.275,1.253,18.412,1.873a4.149,4.149,0,0,1,1.19.56h32.289c2.507-.389,5-.937,7.527-1.143,16.336-1.332,32.107-5.335,47.489-10.717A219.992,219.992,0,0,0,379.1,460.322c9.749-6.447,19.395-13.077,28.737-20.1,5.785-4.348,10.988-9.5,16.3-14.457,3.964-3.7,7.764-7.578,11.51-11.5a232.162,232.162,0,0,0,31.427-41.639c9.542-16.045,17.355-32.905,22.3-50.926,2.859-10.413,4.947-21.045,7.017-31.652,1.032-5.279,1.251-10.723,1.87-16.087.036-.317.358-.6.552-.9V236.005A9.757,9.757,0,0,1,498.252,234.223Zm-161.117-1.15s-16.572-2.98-28.47-2.98c-27.2,0-33.57,14.9-33.57,37.04V360.8H201.582V170.062H275.1v31.931c8.924-26.822,26.771-36.189,62.04-36.189Z"], - "mixer": [512, 512, [], "e056", "M114.57,76.07a45.71,45.71,0,0,0-67.51-6.41c-17.58,16.18-19,43.52-4.75,62.77l91.78,123L41.76,379.58c-14.23,19.25-13.11,46.59,4.74,62.77A45.71,45.71,0,0,0,114,435.94L242.89,262.7a12.14,12.14,0,0,0,0-14.23ZM470.24,379.58,377.91,255.45l91.78-123c14.22-19.25,12.83-46.59-4.75-62.77a45.71,45.71,0,0,0-67.51,6.41l-128,172.12a12.14,12.14,0,0,0,0,14.23L398,435.94a45.71,45.71,0,0,0,67.51,6.41C483.35,426.17,484.47,398.83,470.24,379.58Z"], - "square-lastfm": [448, 512, ["lastfm-square"], "f203", "M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM210.7 280.8c-1.8-5.5-3.4-10.8-5-15.9c-12.9-41.9-21-68.4-58-68.4c-22.4 0-45.1 16.1-45.1 61.2c0 35.2 18 57.2 43.3 57.2c28.6 0 47.6-21.3 47.6-21.3l11.7 31.9s-19.8 19.4-61.2 19.4c-51.3 0-79.9-30.1-79.9-85.8c0-57.9 28.6-92 82.5-92c67.9 0 79.3 35.3 96.4 88.4c1.4 4.4 2.9 8.9 4.4 13.5c8.8 26.8 24.2 46.2 61.2 46.2c24.9 0 38.1-5.5 38.1-19.1c0-17.5-16.9-21.2-40-26.4c-3.2-.7-6.5-1.4-9.9-2.2c-30.4-7.3-42.5-23.1-42.5-48c0-40 32.3-52.4 65.2-52.4c37.4 0 60.1 13.6 63 46.6l-36.7 4.4c-1.5-15.8-11-22.4-28.6-22.4c-16.1 0-26 7.3-26 19.8c0 11 4.8 17.6 20.9 21.3c2.2 .5 4.5 1 6.7 1.4c31.1 6.5 65.1 13.7 65.1 56.1c.1 36.7-30.7 50.6-76.1 50.6c-63.4 0-85.4-28.6-97.1-64.1z"], - "vimeo": [448, 512, [], "f40a", "M403.2 32H44.8C20.1 32 0 52.1 0 76.8v358.4C0 459.9 20.1 480 44.8 480h358.4c24.7 0 44.8-20.1 44.8-44.8V76.8c0-24.7-20.1-44.8-44.8-44.8zM377 180.8c-1.4 31.5-23.4 74.7-66 129.4-44 57.2-81.3 85.8-111.7 85.8-18.9 0-34.8-17.4-47.9-52.3-25.5-93.3-36.4-148-57.4-148-2.4 0-10.9 5.1-25.4 15.2l-15.2-19.6c37.3-32.8 72.9-69.2 95.2-71.2 25.2-2.4 40.7 14.8 46.5 51.7 20.7 131.2 29.9 151 67.6 91.6 13.5-21.4 20.8-37.7 21.8-48.9 3.5-33.2-25.9-30.9-45.8-22.4 15.9-52.1 46.3-77.4 91.2-76 33.3.9 49 22.5 47.1 64.7z"], - "mendeley": [640, 512, [], "f7b3", "M624.6 325.2c-12.3-12.4-29.7-19.2-48.4-17.2-43.3-1-49.7-34.9-37.5-98.8 22.8-57.5-14.9-131.5-87.4-130.8-77.4.7-81.7 82-130.9 82-48.1 0-54-81.3-130.9-82-72.9-.8-110.1 73.3-87.4 130.8 12.2 63.9 5.8 97.8-37.5 98.8-21.2-2.3-37 6.5-53 22.5-19.9 19.7-19.3 94.8 42.6 102.6 47.1 5.9 81.6-42.9 61.2-87.8-47.3-103.7 185.9-106.1 146.5-8.2-.1.1-.2.2-.3.4-26.8 42.8 6.8 97.4 58.8 95.2 52.1 2.1 85.4-52.6 58.8-95.2-.1-.2-.2-.3-.3-.4-39.4-97.9 193.8-95.5 146.5 8.2-4.6 10-6.7 21.3-5.7 33 4.9 53.4 68.7 74.1 104.9 35.2 17.8-14.8 23.1-65.6 0-88.3zm-303.9-19.1h-.6c-43.4 0-62.8-37.5-62.8-62.8 0-34.7 28.2-62.8 62.8-62.8h.6c34.7 0 62.8 28.1 62.8 62.8 0 25-19.2 62.8-62.8 62.8z"], - "uniregistry": [384, 512, [], "f404", "M192 480c39.5 0 76.2-11.8 106.8-32.2H85.3C115.8 468.2 152.5 480 192 480zm-89.1-193.1v-12.4H0v12.4c0 2.5 0 5 .1 7.4h103.1c-.2-2.4-.3-4.9-.3-7.4zm20.5 57H8.5c2.6 8.5 5.8 16.8 9.6 24.8h138.3c-12.9-5.7-24.1-14.2-33-24.8zm-17.7-34.7H1.3c.9 7.6 2.2 15 3.9 22.3h109.7c-4-6.9-7.2-14.4-9.2-22.3zm-2.8-69.3H0v17.3h102.9zm0-173.2H0v4.9h102.9zm0-34.7H0v2.5h102.9zm0 69.3H0v7.4h102.9zm0 104H0v14.8h102.9zm0-69.3H0v9.9h102.9zm0 34.6H0V183h102.9zm166.2 160.9h109.7c1.8-7.3 3.1-14.7 3.9-22.3H278.3c-2.1 7.9-5.2 15.4-9.2 22.3zm12-185.7H384V136H281.1zm0 37.2H384v-12.4H281.1zm0-74.3H384v-7.4H281.1zm0-76.7v2.5H384V32zm-203 410.9h227.7c11.8-8.7 22.7-18.6 32.2-29.7H44.9c9.6 11 21.4 21 33.2 29.7zm203-371.3H384v-4.9H281.1zm0 148.5H384v-14.8H281.1zM38.8 405.7h305.3c6.7-8.5 12.6-17.6 17.8-27.2H23c5.2 9.6 9.2 18.7 15.8 27.2zm188.8-37.1H367c3.7-8 5.8-16.2 8.5-24.8h-115c-8.8 10.7-20.1 19.2-32.9 24.8zm53.5-81.7c0 2.5-.1 5-.4 7.4h103.1c.1-2.5.2-4.9.2-7.4v-12.4H281.1zm0-29.7H384v-17.3H281.1z"], - "figma": [384, 512, [], "f799", "M14 95.7924C14 42.8877 56.8878 0 109.793 0H274.161C327.066 0 369.954 42.8877 369.954 95.7924C369.954 129.292 352.758 158.776 326.711 175.897C352.758 193.019 369.954 222.502 369.954 256.002C369.954 308.907 327.066 351.795 274.161 351.795H272.081C247.279 351.795 224.678 342.369 207.666 326.904V415.167C207.666 468.777 163.657 512 110.309 512C57.5361 512 14 469.243 14 416.207C14 382.709 31.1945 353.227 57.2392 336.105C31.1945 318.983 14 289.5 14 256.002C14 222.502 31.196 193.019 57.2425 175.897C31.196 158.776 14 129.292 14 95.7924ZM176.288 191.587H109.793C74.2172 191.587 45.3778 220.427 45.3778 256.002C45.3778 291.44 73.9948 320.194 109.381 320.416C109.518 320.415 109.655 320.415 109.793 320.415H176.288V191.587ZM207.666 256.002C207.666 291.577 236.505 320.417 272.081 320.417H274.161C309.737 320.417 338.576 291.577 338.576 256.002C338.576 220.427 309.737 191.587 274.161 191.587H272.081C236.505 191.587 207.666 220.427 207.666 256.002ZM109.793 351.795C109.655 351.795 109.518 351.794 109.381 351.794C73.9948 352.015 45.3778 380.769 45.3778 416.207C45.3778 451.652 74.6025 480.622 110.309 480.622C146.591 480.622 176.288 451.186 176.288 415.167V351.795H109.793ZM109.793 31.3778C74.2172 31.3778 45.3778 60.2173 45.3778 95.7924C45.3778 131.368 74.2172 160.207 109.793 160.207H176.288V31.3778H109.793ZM207.666 160.207H274.161C309.737 160.207 338.576 131.368 338.576 95.7924C338.576 60.2173 309.737 31.3778 274.161 31.3778H207.666V160.207Z"], - "creative-commons-remix": [496, 512, [], "f4ee", "M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm161.7 207.7l4.9 2.2v70c-7.2 3.6-63.4 27.5-67.3 28.8-6.5-1.8-113.7-46.8-137.3-56.2l-64.2 26.6-63.3-27.5v-63.8l59.3-24.8c-.7-.7-.4 5-.4-70.4l67.3-29.7L361 178.5v61.6l49.1 20.3zm-70.4 81.5v-43.8h-.4v-1.8l-113.8-46.5V295l113.8 46.9v-.4l.4.4zm7.5-57.6l39.9-16.4-36.8-15.5-39 16.4 35.9 15.5zm52.3 38.1v-43L355.2 298v43.4l44.3-19z"], - "cc-amazon-pay": [576, 512, [], "f42d", "M124.7 201.8c.1-11.8 0-23.5 0-35.3v-35.3c0-1.3.4-2 1.4-2.7 11.5-8 24.1-12.1 38.2-11.1 12.5.9 22.7 7 28.1 21.7 3.3 8.9 4.1 18.2 4.1 27.7 0 8.7-.7 17.3-3.4 25.6-5.7 17.8-18.7 24.7-35.7 23.9-11.7-.5-21.9-5-31.4-11.7-.9-.8-1.4-1.6-1.3-2.8zm154.9 14.6c4.6 1.8 9.3 2 14.1 1.5 11.6-1.2 21.9-5.7 31.3-12.5.9-.6 1.3-1.3 1.3-2.5-.1-3.9 0-7.9 0-11.8 0-4-.1-8 0-12 0-1.4-.4-2-1.8-2.2-7-.9-13.9-2.2-20.9-2.9-7-.6-14-.3-20.8 1.9-6.7 2.2-11.7 6.2-13.7 13.1-1.6 5.4-1.6 10.8.1 16.2 1.6 5.5 5.2 9.2 10.4 11.2zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zm-207.5 23.9c.4 1.7.9 3.4 1.6 5.1 16.5 40.6 32.9 81.3 49.5 121.9 1.4 3.5 1.7 6.4.2 9.9-2.8 6.2-4.9 12.6-7.8 18.7-2.6 5.5-6.7 9.5-12.7 11.2-4.2 1.1-8.5 1.3-12.9.9-2.1-.2-4.2-.7-6.3-.8-2.8-.2-4.2 1.1-4.3 4-.1 2.8-.1 5.6 0 8.3.1 4.6 1.6 6.7 6.2 7.5 4.7.8 9.4 1.6 14.2 1.7 14.3.3 25.7-5.4 33.1-17.9 2.9-4.9 5.6-10.1 7.7-15.4 19.8-50.1 39.5-100.3 59.2-150.5.6-1.5 1.1-3 1.3-4.6.4-2.4-.7-3.6-3.1-3.7-5.6-.1-11.1 0-16.7 0-3.1 0-5.3 1.4-6.4 4.3-.4 1.1-.9 2.3-1.3 3.4l-29.1 83.7c-2.1 6.1-4.2 12.1-6.5 18.6-.4-.9-.6-1.4-.8-1.9-10.8-29.9-21.6-59.9-32.4-89.8-1.7-4.7-3.5-9.5-5.3-14.2-.9-2.5-2.7-4-5.4-4-6.4-.1-12.8-.2-19.2-.1-2.2 0-3.3 1.6-2.8 3.7zM242.4 206c1.7 11.7 7.6 20.8 18 26.6 9.9 5.5 20.7 6.2 31.7 4.6 12.7-1.9 23.9-7.3 33.8-15.5.4-.3.8-.6 1.4-1 .5 3.2.9 6.2 1.5 9.2.5 2.6 2.1 4.3 4.5 4.4 4.6.1 9.1.1 13.7 0 2.3-.1 3.8-1.6 4-3.9.1-.8.1-1.6.1-2.3v-88.8c0-3.6-.2-7.2-.7-10.8-1.6-10.8-6.2-19.7-15.9-25.4-5.6-3.3-11.8-5-18.2-5.9-3-.4-6-.7-9.1-1.1h-10c-.8.1-1.6.3-2.5.3-8.2.4-16.3 1.4-24.2 3.5-5.1 1.3-10 3.2-15 4.9-3 1-4.5 3.2-4.4 6.5.1 2.8-.1 5.6 0 8.3.1 4.1 1.8 5.2 5.7 4.1 6.5-1.7 13.1-3.5 19.7-4.8 10.3-1.9 20.7-2.7 31.1-1.2 5.4.8 10.5 2.4 14.1 7 3.1 4 4.2 8.8 4.4 13.7.3 6.9.2 13.9.3 20.8 0 .4-.1.7-.2 1.2-.4 0-.8 0-1.1-.1-8.8-2.1-17.7-3.6-26.8-4.1-9.5-.5-18.9.1-27.9 3.2-10.8 3.8-19.5 10.3-24.6 20.8-4.1 8.3-4.6 17-3.4 25.8zM98.7 106.9v175.3c0 .8 0 1.7.1 2.5.2 2.5 1.7 4.1 4.1 4.2 5.9.1 11.8.1 17.7 0 2.5 0 4-1.7 4.1-4.1.1-.8.1-1.7.1-2.5v-60.7c.9.7 1.4 1.2 1.9 1.6 15 12.5 32.2 16.6 51.1 12.9 17.1-3.4 28.9-13.9 36.7-29.2 5.8-11.6 8.3-24.1 8.7-37 .5-14.3-1-28.4-6.8-41.7-7.1-16.4-18.9-27.3-36.7-30.9-2.7-.6-5.5-.8-8.2-1.2h-7c-1.2.2-2.4.3-3.6.5-11.7 1.4-22.3 5.8-31.8 12.7-2 1.4-3.9 3-5.9 4.5-.1-.5-.3-.8-.4-1.2-.4-2.3-.7-4.6-1.1-6.9-.6-3.9-2.5-5.5-6.4-5.6h-9.7c-5.9-.1-6.9 1-6.9 6.8zM493.6 339c-2.7-.7-5.1 0-7.6 1-43.9 18.4-89.5 30.2-136.8 35.8-14.5 1.7-29.1 2.8-43.7 3.2-26.6.7-53.2-.8-79.6-4.3-17.8-2.4-35.5-5.7-53-9.9-37-8.9-72.7-21.7-106.7-38.8-8.8-4.4-17.4-9.3-26.1-14-3.8-2.1-6.2-1.5-8.2 2.1v1.7c1.2 1.6 2.2 3.4 3.7 4.8 36 32.2 76.6 56.5 122 72.9 21.9 7.9 44.4 13.7 67.3 17.5 14 2.3 28 3.8 42.2 4.5 3 .1 6 .2 9 .4.7 0 1.4.2 2.1.3h17.7c.7-.1 1.4-.3 2.1-.3 14.9-.4 29.8-1.8 44.6-4 21.4-3.2 42.4-8.1 62.9-14.7 29.6-9.6 57.7-22.4 83.4-40.1 2.8-1.9 5.7-3.8 8-6.2 4.3-4.4 2.3-10.4-3.3-11.9zm50.4-27.7c-.8-4.2-4-5.8-7.6-7-5.7-1.9-11.6-2.8-17.6-3.3-11-.9-22-.4-32.8 1.6-12 2.2-23.4 6.1-33.5 13.1-1.2.8-2.4 1.8-3.1 3-.6.9-.7 2.3-.5 3.4.3 1.3 1.7 1.6 3 1.5.6 0 1.2 0 1.8-.1l19.5-2.1c9.6-.9 19.2-1.5 28.8-.8 4.1.3 8.1 1.2 12 2.2 4.3 1.1 6.2 4.4 6.4 8.7.3 6.7-1.2 13.1-2.9 19.5-3.5 12.9-8.3 25.4-13.3 37.8-.3.8-.7 1.7-.8 2.5-.4 2.5 1 4 3.4 3.5 1.4-.3 3-1.1 4-2.1 3.7-3.6 7.5-7.2 10.6-11.2 10.7-13.8 17-29.6 20.7-46.6.7-3 1.2-6.1 1.7-9.1.2-4.7.2-9.6.2-14.5z"], - "dropbox": [528, 512, [], "f16b", "M264.4 116.3l-132 84.3 132 84.3-132 84.3L0 284.1l132.3-84.3L0 116.3 132.3 32l132.1 84.3zM131.6 395.7l132-84.3 132 84.3-132 84.3-132-84.3zm132.8-111.6l132-84.3-132-83.6L395.7 32 528 116.3l-132.3 84.3L528 284.8l-132.3 84.3-131.3-85z"], - "instagram": [448, 512, [], "f16d", "M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z"], - "cmplid": [640, 512, [], "e360", "M226.119,388.165a3.816,3.816,0,0,0-2.294-3.5,3.946,3.946,0,0,0-1.629-.385L72.6,384.3a19.243,19.243,0,0,1-17.924-26.025L81.585,255.692a35.72,35.72,0,0,1,32.373-26H262.525a7.07,7.07,0,0,0,6.392-5.194l10.769-41.131a3.849,3.849,0,0,0-2.237-4.937,3.755,3.755,0,0,0-1.377-.261c-.063,0-.126,0-.189.005H127.38a106.8,106.8,0,0,0-96.99,77.1L3.483,358.824A57.469,57.469,0,0,0,57.314,436q1.43,0,2.86-.072H208.742a7.131,7.131,0,0,0,6.391-5.193L225.839,389.6A3.82,3.82,0,0,0,226.119,388.165ZM306.658,81.2a3.861,3.861,0,0,0,.251-1.367A3.813,3.813,0,0,0,303.079,76c-.064,0-.128,0-.192,0h-41A7.034,7.034,0,0,0,255.5,81.2l-21.347,80.915h51.131ZM180.364,368.249H231.5L263.452,245.69H212.321ZM511.853,79.723a3.809,3.809,0,0,0-3.8-3.661c-.058,0-.137,0-.23.007h-41a7.1,7.1,0,0,0-6.584,5.129L368.91,430.634a3.54,3.54,0,0,0-.262,1.335,3.873,3.873,0,0,0,3.864,3.863c.056,0,.112,0,.169,0h41a7.068,7.068,0,0,0,6.392-5.193L511.533,81.2A3.624,3.624,0,0,0,511.853,79.723ZM324.649,384.47h-41a7.2,7.2,0,0,0-6.392,5.194L266.52,430.8a3.662,3.662,0,0,0-.268,1.374A3.783,3.783,0,0,0,270.023,436c.06,0,.166,0,.3-.012h40.905a7.036,7.036,0,0,0,6.391-5.193l10.769-41.131a3.75,3.75,0,0,0-3.445-5.208c-.108,0-.217,0-.326.014Zm311.324-308.4h-41a7.066,7.066,0,0,0-6.392,5.129l-91.46,349.436a4.073,4.073,0,0,0-.229,1.347,3.872,3.872,0,0,0,3.863,3.851c.056,0,.112,0,.169,0h40.968a7.1,7.1,0,0,0,6.392-5.193L639.68,81.2a3.624,3.624,0,0,0,.32-1.475,3.841,3.841,0,0,0-3.821-3.564c-.068,0-.137,0-.206.006ZM371.562,225.236l10.8-41.1a4.369,4.369,0,0,0,.227-1.388,3.869,3.869,0,0,0-3.861-3.842c-.057,0-.113,0-.169,0h-41.1a7.292,7.292,0,0,0-6.391,5.226l-10.834,41.1a4.417,4.417,0,0,0-.26,1.493c0,.069,0,.138,0,.206a3.776,3.776,0,0,0,3.757,3.507c.076,0,.18,0,.3-.012h41.129A7.034,7.034,0,0,0,371.562,225.236Z"], - "upwork": [641, 512, [], "e641", "M494.7 295.6c-50.3 0-83.5-38.9-92.8-53.9c11.9-95.3 46.8-125.4 92.8-125.4c45.5 0 80.9 36.4 80.9 89.7s-35.4 89.7-80.9 89.7zm0-237.8c-81.9 0-127.8 53.4-141 108.4c-14.9-28-25.9-65.5-34.5-100.3H206v141c0 51.1-23.3 89-68.8 89s-71.6-37.8-71.6-89l.5-141H.8v141c0 41.1 13.3 78.4 37.6 105.1c25 27.5 59.2 41.8 98.8 41.8c78.8 0 133.8-60.4 133.8-146.9V112.1c8.2 31.2 27.8 91.1 65.3 143.6l-35 199.4h66.4l23.1-141.3c7.6 6.3 15.7 12 24.2 17c22.2 14 47.7 21.9 73.9 22.8c0 0 4 .2 6.1 .2c81.2 0 145.9-62.9 145.9-147.8s-64.8-148.1-146-148.1z"], - "facebook": [512, 512, [62000], "f09a", "M512 256C512 114.6 397.4 0 256 0S0 114.6 0 256C0 376 82.7 476.8 194.2 504.5V334.2H141.4V256h52.8V222.3c0-87.1 39.4-127.5 125-127.5c16.2 0 44.2 3.2 55.7 6.4V172c-6-.6-16.5-1-29.6-1c-42 0-58.2 15.9-58.2 57.2V256h83.6l-14.4 78.2H287V510.1C413.8 494.8 512 386.9 512 256h0z"], - "gripfire": [384, 512, [], "f3ac", "M112.5 301.4c0-73.8 105.1-122.5 105.1-203 0-47.1-34-88-39.1-90.4.4 3.3.6 6.7.6 10C179.1 110.1 32 171.9 32 286.6c0 49.8 32.2 79.2 66.5 108.3 65.1 46.7 78.1 71.4 78.1 86.6 0 10.1-4.8 17-4.8 22.3 13.1-16.7 17.4-31.9 17.5-46.4 0-29.6-21.7-56.3-44.2-86.5-16-22.3-32.6-42.6-32.6-69.5zm205.3-39c-12.1-66.8-78-124.4-94.7-130.9l4 7.2c2.4 5.1 3.4 10.9 3.4 17.1 0 44.7-54.2 111.2-56.6 116.7-2.2 5.1-3.2 10.5-3.2 15.8 0 20.1 15.2 42.1 17.9 42.1 2.4 0 56.6-55.4 58.1-87.7 6.4 11.7 9.1 22.6 9.1 33.4 0 41.2-41.8 96.9-41.8 96.9 0 11.6 31.9 53.2 35.5 53.2 1 0 2.2-1.4 3.2-2.4 37.9-39.3 67.3-85 67.3-136.8 0-8-.7-16.2-2.2-24.6z"], - "jedi-order": [448, 512, [], "f50e", "M398.5 373.6c95.9-122.1 17.2-233.1 17.2-233.1 45.4 85.8-41.4 170.5-41.4 170.5 105-171.5-60.5-271.5-60.5-271.5 96.9 72.7-10.1 190.7-10.1 190.7 85.8 158.4-68.6 230.1-68.6 230.1s-.4-16.9-2.2-85.7c4.3 4.5 34.5 36.2 34.5 36.2l-24.2-47.4 62.6-9.1-62.6-9.1 20.2-55.5-31.4 45.9c-2.2-87.7-7.8-305.1-7.9-306.9v-2.4 1-1 2.4c0 1-5.6 219-7.9 306.9l-31.4-45.9 20.2 55.5-62.6 9.1 62.6 9.1-24.2 47.4 34.5-36.2c-1.8 68.8-2.2 85.7-2.2 85.7s-154.4-71.7-68.6-230.1c0 0-107-118.1-10.1-190.7 0 0-165.5 99.9-60.5 271.5 0 0-86.8-84.8-41.4-170.5 0 0-78.7 111 17.2 233.1 0 0-26.2-16.1-49.4-77.7 0 0 16.9 183.3 222 185.7h4.1c205-2.4 222-185.7 222-185.7-23.6 61.5-49.9 77.7-49.9 77.7z"], - "uikit": [448, 512, [], "f403", "M443.9 128v256L218 512 0 384V169.7l87.6 45.1v117l133.5 75.5 135.8-75.5v-151l-101.1-57.6 87.6-53.1L443.9 128zM308.6 49.1L223.8 0l-88.6 54.8 86 47.3 87.4-53z"], - "fort-awesome-alt": [512, 512, [], "f3a3", "M208 237.4h-22.2c-2.1 0-3.7 1.6-3.7 3.7v51.7c0 2.1 1.6 3.7 3.7 3.7H208c2.1 0 3.7-1.6 3.7-3.7v-51.7c0-2.1-1.6-3.7-3.7-3.7zm118.2 0H304c-2.1 0-3.7 1.6-3.7 3.7v51.7c0 2.1 1.6 3.7 3.7 3.7h22.2c2.1 0 3.7-1.6 3.7-3.7v-51.7c-.1-2.1-1.7-3.7-3.7-3.7zm132-125.1c-2.3-3.2-4.6-6.4-7.1-9.5-9.8-12.5-20.8-24-32.8-34.4-4.5-3.9-9.1-7.6-13.9-11.2-1.6-1.2-3.2-2.3-4.8-3.5C372 34.1 340.3 20 306 13c-16.2-3.3-32.9-5-50-5s-33.9 1.7-50 5c-34.3 7.1-66 21.2-93.3 40.8-1.6 1.1-3.2 2.3-4.8 3.5-4.8 3.6-9.4 7.3-13.9 11.2-3 2.6-5.9 5.3-8.8 8s-5.7 5.5-8.4 8.4c-5.5 5.7-10.7 11.8-15.6 18-2.4 3.1-4.8 6.3-7.1 9.5C25.2 153 8.3 202.5 8.3 256c0 2 .1 4 .1 6 .1.7.1 1.3.1 2 .1 1.3.1 2.7.2 4 0 .8.1 1.5.1 2.3 0 1.3.1 2.5.2 3.7.1.8.1 1.6.2 2.4.1 1.1.2 2.3.3 3.5 0 .8.1 1.6.2 2.4.1 1.2.3 2.4.4 3.6.1.8.2 1.5.3 2.3.1 1.3.3 2.6.5 3.9.1.6.2 1.3.3 1.9l.9 5.7c.1.6.2 1.1.3 1.7.3 1.3.5 2.7.8 4 .2.8.3 1.6.5 2.4.2 1 .5 2.1.7 3.2.2.9.4 1.7.6 2.6.2 1 .4 2 .7 3 .2.9.5 1.8.7 2.7.3 1 .5 1.9.8 2.9.3.9.5 1.8.8 2.7.2.9.5 1.9.8 2.8s.5 1.8.8 2.7c.3 1 .6 1.9.9 2.8.6 1.6 1.1 3.3 1.7 4.9.4 1 .7 1.9 1 2.8.3 1 .7 2 1.1 3 .3.8.6 1.5.9 2.3l1.2 3c.3.7.6 1.5.9 2.2.4 1 .9 2 1.3 3l.9 2.1c.5 1 .9 2 1.4 3 .3.7.6 1.3.9 2 .5 1 1 2.1 1.5 3.1.2.6.5 1.1.8 1.7.6 1.1 1.1 2.2 1.7 3.3.1.2.2.3.3.5 2.2 4.1 4.4 8.2 6.8 12.2.2.4.5.8.7 1.2.7 1.1 1.3 2.2 2 3.3.3.5.6.9.9 1.4.6 1.1 1.3 2.1 2 3.2.3.5.6.9.9 1.4.7 1.1 1.4 2.1 2.1 3.2.2.4.5.8.8 1.2.7 1.1 1.5 2.2 2.3 3.3.2.2.3.5.5.7 37.5 51.7 94.4 88.5 160 99.4.9.1 1.7.3 2.6.4 1 .2 2.1.4 3.1.5s1.9.3 2.8.4c1 .2 2 .3 3 .4.9.1 1.9.2 2.9.3s1.9.2 2.9.3 2.1.2 3.1.3c.9.1 1.8.1 2.7.2 1.1.1 2.3.1 3.4.2.8 0 1.7.1 2.5.1 1.3 0 2.6.1 3.9.1.7.1 1.4.1 2.1.1 2 .1 4 .1 6 .1s4-.1 6-.1c.7 0 1.4-.1 2.1-.1 1.3 0 2.6 0 3.9-.1.8 0 1.7-.1 2.5-.1 1.1-.1 2.3-.1 3.4-.2.9 0 1.8-.1 2.7-.2 1-.1 2.1-.2 3.1-.3s1.9-.2 2.9-.3c.9-.1 1.9-.2 2.9-.3s2-.3 3-.4 1.9-.3 2.8-.4c1-.2 2.1-.3 3.1-.5.9-.1 1.7-.3 2.6-.4 65.6-11 122.5-47.7 160.1-102.4.2-.2.3-.5.5-.7.8-1.1 1.5-2.2 2.3-3.3.2-.4.5-.8.8-1.2.7-1.1 1.4-2.1 2.1-3.2.3-.5.6-.9.9-1.4.6-1.1 1.3-2.1 2-3.2.3-.5.6-.9.9-1.4.7-1.1 1.3-2.2 2-3.3.2-.4.5-.8.7-1.2 2.4-4 4.6-8.1 6.8-12.2.1-.2.2-.3.3-.5.6-1.1 1.1-2.2 1.7-3.3.2-.6.5-1.1.8-1.7.5-1 1-2.1 1.5-3.1.3-.7.6-1.3.9-2 .5-1 1-2 1.4-3l.9-2.1c.5-1 .9-2 1.3-3 .3-.7.6-1.5.9-2.2l1.2-3c.3-.8.6-1.5.9-2.3.4-1 .7-2 1.1-3s.7-1.9 1-2.8c.6-1.6 1.2-3.3 1.7-4.9.3-1 .6-1.9.9-2.8s.5-1.8.8-2.7c.2-.9.5-1.9.8-2.8s.6-1.8.8-2.7c.3-1 .5-1.9.8-2.9.2-.9.5-1.8.7-2.7.2-1 .5-2 .7-3 .2-.9.4-1.7.6-2.6.2-1 .5-2.1.7-3.2.2-.8.3-1.6.5-2.4.3-1.3.6-2.7.8-4 .1-.6.2-1.1.3-1.7l.9-5.7c.1-.6.2-1.3.3-1.9.1-1.3.3-2.6.5-3.9.1-.8.2-1.5.3-2.3.1-1.2.3-2.4.4-3.6 0-.8.1-1.6.2-2.4.1-1.1.2-2.3.3-3.5.1-.8.1-1.6.2-2.4.1 1.7.1.5.2-.7 0-.8.1-1.5.1-2.3.1-1.3.2-2.7.2-4 .1-.7.1-1.3.1-2 .1-2 .1-4 .1-6 0-53.5-16.9-103-45.8-143.7zM448 371.5c-9.4 15.5-20.6 29.9-33.6 42.9-20.6 20.6-44.5 36.7-71.2 48-13.9 5.8-28.2 10.3-42.9 13.2v-75.8c0-58.6-88.6-58.6-88.6 0v75.8c-14.7-2.9-29-7.3-42.9-13.2-26.7-11.3-50.6-27.4-71.2-48-13-13-24.2-27.4-33.6-42.9v-71.3c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7V326h29.6V182c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7H208c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-4.8 6.5-3.7 9.5-3.7V88.1c-4.4-2-7.4-6.7-7.4-11.5 0-16.8 25.4-16.8 25.4 0 0 4.8-3 9.4-7.4 11.5V92c6.3-1.4 12.7-2.3 19.2-2.3 9.4 0 18.4 3.5 26.3 3.5 7.2 0 15.2-3.5 19.4-3.5 2.1 0 3.7 1.6 3.7 3.7v48.4c0 5.6-18.7 6.5-22.4 6.5-8.6 0-16.6-3.5-25.4-3.5-7 0-14.1 1.2-20.8 2.8v30.7c3 0 9.5-1.1 9.5 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7h22.2c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7v144h29.5v-25.8c0-2.1 1.6-3.7 3.7-3.7h22.2c2.1 0 3.7 1.6 3.7 3.7z"], - "phabricator": [496, 512, [], "f3db", "M323 262.1l-.1-13s21.7-19.8 21.1-21.2l-9.5-20c-.6-1.4-29.5-.5-29.5-.5l-9.4-9.3s.2-28.5-1.2-29.1l-20.1-9.2c-1.4-.6-20.7 21-20.7 21l-13.1-.2s-20.5-21.4-21.9-20.8l-20 8.3c-1.4.5.2 28.9.2 28.9l-9.1 9.1s-29.2-.9-29.7.4l-8.1 19.8c-.6 1.4 21 21 21 21l.1 12.9s-21.7 19.8-21.1 21.2l9.5 20c.6 1.4 29.5.5 29.5.5l9.4 9.3s-.2 31.8 1.2 32.3l20.1 8.3c1.4.6 20.7-23.5 20.7-23.5l13.1.2s20.5 23.8 21.8 23.3l20-7.5c1.4-.6-.2-32.1-.2-32.1l9.1-9.1s29.2.9 29.7-.5l8.1-19.8c.7-1.1-20.9-20.7-20.9-20.7zm-44.9-8.7c.7 17.1-12.8 31.6-30.1 32.4-17.3.8-32.1-12.5-32.8-29.6-.7-17.1 12.8-31.6 30.1-32.3 17.3-.8 32.1 12.5 32.8 29.5zm201.2-37.9l-97-97-.1.1c-75.1-73.3-195.4-72.8-269.8 1.6-50.9 51-27.8 27.9-95.7 95.3-22.3 22.3-22.3 58.7 0 81 69.9 69.4 46.4 46 97.4 97l.1-.1c75.1 73.3 195.4 72.9 269.8-1.6 51-50.9 27.9-27.9 95.3-95.3 22.3-22.3 22.3-58.7 0-81zM140.4 363.8c-59.6-59.5-59.6-156 0-215.5 59.5-59.6 156-59.5 215.6 0 59.5 59.5 59.6 156 0 215.6-59.6 59.5-156 59.4-215.6-.1z"], - "ussunnah": [482, 512, [], "f407", "M481.9 268.1A240.9 240.9 0 1 1 .1 268a240.9 240.9 0 1 1 481.9 0zM24.5 268a216.5 216.5 0 1 0 432.9 0A216.5 216.5 0 1 0 24.5 268zm385.9 63.3c-12.7 0-21.6-1.9-26.7-5.9c-5.5-4.3-8.2-12.3-8.2-23.8V205.1c0-6.5-5.2-20.2-15.7-41.2c7 0 17-9.1 30-27.2V284.5c0 11 2.4 19.4 7 25.3c3.7 4.7 10.1 8.9 19 12.6c1.2 .4 2.6 .9 4.1 1.4c2.9 .9 6.3 2.1 10.3 3.5c-1.8 2.7-8.3 4-19.9 4zm-219 0c-1.3 2.4-3.6 5.5-6.8 9.4l-18.5 22.5c-1-6.1-4-13-9.3-20.6s-9.7-11.4-13.4-11.4h-8.3H53.6c3.3-5.3 4.9-8.8 4.9-10.8c0-2-.8-5.3-2.4-9.7c-1.5-4.4-2.4-8.5-2.4-12.4c0-7.4 2.1-13.9 6.3-19.3L80 253.4l-7.1-17.7L89 215.9l6.7 16.8 8-10.3c-1.8 6.4-2.6 12.3-2.6 17.7c0 4.2 2.8 13.3 8.3 27.3l16.2 40.7H135h8 .3c2.8 .4 7.7 5 14.6 13.9c1.8 2.4 4.3 5.8 7.7 10.2c1.4 1.9 2.9 3.9 4.6 6.1c1.3-2.3 2-4.6 2-7.1c0-2-1.3-6.6-4-13.4L163 304.1c-4-10.6-6.1-17.7-6.1-21.3c0-6.3 1.9-12.3 5.8-17.9c.5-.6 1-1.3 1.5-1.9c4.4-5.6 8.8-11.1 13.3-16.5c-1.1 4.6-1.7 8.7-1.7 12c0 3.7 1.7 9.9 5.1 18.8l7.9 20.4c1.9 4.7 3 8.2 3.7 10.3h17.6 8.3l-.9-2.6c-1.4-3.9-4-7-7.7-9.3l15.6-20.1 12.3 32h13.4L245 292.2c-1.5-3.9-4-7-7.7-9.3L253 262.8 270.3 308h13.4l-11.4-29.4c-1.5-3.9-4-7-7.7-9.3l15.6-20L302.6 308h10.3 8.3 7.6c1.5 0 3-1.1 4.5-3.1s2.2-4.1 2.2-6.3V205.1c0-6.5-4.5-20.3-13.7-41.2c5.4 0 14.1-9.1 26.2-27.2V300.2c0 7.2 .6 12 1.7 14.6c1.6 3.4 5.3 6.2 11.1 8.2c-3.9 5.6-8.7 8.5-14.5 8.5H321.1h-8.3H210.5h-19zM93.4 287.3c-2.7-6.7-4-11.7-4-15c-.6 1.2-2.4 3.7-5.4 7.6c-1.4 1.9-2.2 3.7-2.2 5.3c0 2.6 .8 5.7 2.2 9.3l5.6 13.9h0c5 0 9 0 11.9-.1l-8.2-20.9zm13.5-72.4c-3-5.2-7-9.3-11.9-11.9c-3.5-1.9-5.3-4.3-5.3-7.4c0-2.4 4.6-8.6 14-18.3c.2 3.8 1.9 7.6 4.9 11.2c3.1 3.6 4.6 7 4.6 10.1c0 2.6-2.1 8-6.2 16.3zm-27.6 0c-3-5.2-7-9.3-11.9-11.9c-3.5-1.9-5.3-4.3-5.3-7.4c0-2.4 4.6-8.6 14-18.3c.2 3.8 1.9 7.6 4.9 11.2c3.1 3.6 4.6 7 4.6 10.1c0 2.6-2.1 8-6.2 16.3zm87 27.5c-3-5.2-7-9.3-11.9-11.9c-3.5-1.9-5.3-4.3-5.3-7.4c0-2.4 4.6-8.6 14-18.3c.2 3.8 1.9 7.6 4.9 11.2c3.1 3.6 4.6 7 4.6 10.1c0 2.6-2.1 8-6.2 16.3z"], - "earlybirds": [480, 512, [], "f39a", "M313.2 47.5c1.2-13 21.3-14 36.6-8.7.9.3 26.2 9.7 19 15.2-27.9-7.4-56.4 18.2-55.6-6.5zm-201 6.9c30.7-8.1 62 20 61.1-7.1-1.3-14.2-23.4-15.3-40.2-9.6-1 .3-28.7 10.5-20.9 16.7zM319.4 160c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-159.7 0c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm318.5 163.2c-9.9 24-40.7 11-63.9-1.2-13.5 69.1-58.1 111.4-126.3 124.2.3.9-2-.1 24 1 33.6 1.4 63.8-3.1 97.4-8-19.8-13.8-11.4-37.1-9.8-38.1 1.4-.9 14.7 1.7 21.6 11.5 8.6-12.5 28.4-14.8 30.2-13.6 1.6 1.1 6.6 20.9-6.9 34.6 4.7-.9 8.2-1.6 9.8-2.1 2.6-.8 17.7 11.3 3.1 13.3-14.3 2.3-22.6 5.1-47.1 10.8-45.9 10.7-85.9 11.8-117.7 12.8l1 11.6c3.8 18.1-23.4 24.3-27.6 6.2.8 17.9-27.1 21.8-28.4-1l-.5 5.3c-.7 18.4-28.4 17.9-28.3-.6-7.5 13.5-28.1 6.8-26.4-8.5l1.2-12.4c-36.7.9-59.7 3.1-61.8 3.1-20.9 0-20.9-31.6 0-31.6 2.4 0 27.7 1.3 63.2 2.8-61.1-15.5-103.7-55-114.9-118.2-25 12.8-57.5 26.8-68.2.8-10.5-25.4 21.5-42.6 66.8-73.4.7-6.6 1.6-13.3 2.7-19.8-14.4-19.6-11.6-36.3-16.1-60.4-16.8 2.4-23.2-9.1-23.6-23.1.3-7.3 2.1-14.9 2.4-15.4 1.1-1.8 10.1-2 12.7-2.6 6-31.7 50.6-33.2 90.9-34.5 19.7-21.8 45.2-41.5 80.9-48.3C203.3 29 215.2 8.5 216.2 8c1.7-.8 21.2 4.3 26.3 23.2 5.2-8.8 18.3-11.4 19.6-10.7 1.1.6 6.4 15-4.9 25.9 40.3 3.5 72.2 24.7 96 50.7 36.1 1.5 71.8 5.9 77.1 34 2.7.6 11.6.8 12.7 2.6.3.5 2.1 8.1 2.4 15.4-.5 13.9-6.8 25.4-23.6 23.1-3.2 17.3-2.7 32.9-8.7 47.7 2.4 11.7 4 23.8 4.8 36.4 37 25.4 70.3 42.5 60.3 66.9zM207.4 159.9c.9-44-37.9-42.2-78.6-40.3-21.7 1-38.9 1.9-45.5 13.9-11.4 20.9 5.9 92.9 23.2 101.2 9.8 4.7 73.4 7.9 86.3-7.1 8.2-9.4 15-49.4 14.6-67.7zm52 58.3c-4.3-12.4-6-30.1-15.3-32.7-2-.5-9-.5-11 0-10 2.8-10.8 22.1-17 37.2 15.4 0 19.3 9.7 23.7 9.7 4.3 0 6.3-11.3 19.6-14.2zm135.7-84.7c-6.6-12.1-24.8-12.9-46.5-13.9-40.2-1.9-78.2-3.8-77.3 40.3-.5 18.3 5 58.3 13.2 67.8 13 14.9 76.6 11.8 86.3 7.1 15.8-7.6 36.5-78.9 24.3-101.3z"], - "trade-federation": [496, 512, [], "f513", "M248 8.8c-137 0-248 111-248 248s111 248 248 248 248-111 248-248-111-248-248-248zm0 482.8c-129.7 0-234.8-105.1-234.8-234.8S118.3 22 248 22s234.8 105.1 234.8 234.8S377.7 491.6 248 491.6zm155.1-328.5v-46.8H209.3V198H54.2l36.7 46h117.7v196.8h48.8V245h83.3v-47h-83.3v-34.8h145.7zm-73.3 45.1v23.9h-82.9v197.4h-26.8V232.1H96.3l-20.1-23.9h143.9v-80.6h171.8V152h-145v56.2zm-161.3-69l-12.4-20.7 2.1 23.8-23.5 5.4 23.3 5.4-2.1 24 12.3-20.5 22.2 9.5-15.7-18.1 15.8-18.1zm-29.6-19.7l9.3-11.5-12.7 5.9-8-12.4 1.7 13.9-14.3 3.8 13.7 2.7-.8 14.7 6.8-12.2 13.8 5.3zm165.4 145.2l-13.1 5.6-7.3-12.2 1.3 14.2-13.9 3.2 13.9 3.2-1.2 14.2 7.3-12.2 13.1 5.5-9.4-10.7zm106.9-77.2l-20.9 9.1-12-19.6 2.2 22.7-22.3 5.4 22.2 4.9-1.8 22.9 11.5-19.6 21.2 8.8-15.1-17zM248 29.9c-125.3 0-226.9 101.6-226.9 226.9S122.7 483.7 248 483.7s226.9-101.6 226.9-226.9S373.3 29.9 248 29.9zM342.6 196v51h-83.3v195.7h-52.7V245.9H89.9l-40-49.9h157.4v-81.6h197.8v50.7H259.4V196zM248 43.2c60.3 0 114.8 25 153.6 65.2H202.5V190H45.1C73.1 104.8 153.4 43.2 248 43.2zm0 427.1c-117.9 0-213.6-95.6-213.6-213.5 0-21.2 3.1-41.8 8.9-61.1L87.1 252h114.7v196.8h64.6V253h83.3v-62.7h-83.2v-19.2h145.6v-50.8c30.8 37 49.3 84.6 49.3 136.5.1 117.9-95.5 213.5-213.4 213.5zM178.8 275l-11-21.4 1.7 24.5-23.7 3.9 23.8 5.9-3.7 23.8 13-20.9 21.5 10.8-15.8-18.8 16.9-17.1z"], - "autoprefixer": [640, 512, [], "f41c", "M318.4 16l-161 480h77.5l25.4-81.4h119.5L405 496h77.5L318.4 16zm-40.3 341.9l41.2-130.4h1.5l40.9 130.4h-83.6zM640 405l-10-31.4L462.1 358l19.4 56.5L640 405zm-462.1-47L10 373.7 0 405l158.5 9.4 19.4-56.4z"], - "whatsapp": [448, 512, [], "f232", "M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z"], - "square-upwork": [448, 512, [], "e67c", "M56 32l336 0c30.9 0 56 25.1 56 56l0 336c0 30.9-25.1 56-56 56L56 480c-30.9 0-56-25.1-56-56L0 88C0 57.1 25.1 32 56 32zM270.9 274.2c6.6-52.9 25.9-69.5 51.4-69.5c25.3 0 44.9 20.2 44.9 49.7s-19.7 49.7-44.9 49.7c-27.9 0-46.3-21.5-51.4-29.9zm-26.7-41.8c-8.2-15.5-14.3-36.3-19.2-55.6l-29.7 0-33.2 0 0 78.1c0 28.4-12.9 49.4-38.2 49.4s-39.8-20.9-39.8-49.3l.3-78.1-36.2 0 0 78.1c0 22.8 7.4 43.5 20.9 58.2c13.9 15.2 32.8 23.2 54.8 23.2c43.7 0 74.2-33.5 74.2-81.5l0-52.5c4.6 17.3 15.4 50.5 36.2 79.7L215 392.6l36.8 0 12.8-78.4c4.2 3.5 8.7 6.6 13.4 9.4c12.3 7.8 26.4 12.2 40.9 12.6l.1 0c.5 0 1.1 0 1.6 0c.6 0 1.1 0 1.7 0c45.1 0 80.9-34.9 80.9-81.9s-35.9-82.2-80.9-82.2c-45.4 0-70.9 29.7-78.1 60.1z"], - "slideshare": [512, 512, [], "f1e7", "M187.7 153.7c-34 0-61.7 25.7-61.7 57.7 0 31.7 27.7 57.7 61.7 57.7s61.7-26 61.7-57.7c0-32-27.7-57.7-61.7-57.7zm143.4 0c-34 0-61.7 25.7-61.7 57.7 0 31.7 27.7 57.7 61.7 57.7 34.3 0 61.7-26 61.7-57.7.1-32-27.4-57.7-61.7-57.7zm156.6 90l-6 4.3V49.7c0-27.4-20.6-49.7-46-49.7H76.6c-25.4 0-46 22.3-46 49.7V248c-2-1.4-4.3-2.9-6.3-4.3-15.1-10.6-25.1 4-16 17.7 18.3 22.6 53.1 50.3 106.3 72C58.3 525.1 252 555.7 248.9 457.5c0-.7.3-56.6.3-96.6 5.1 1.1 9.4 2.3 13.7 3.1 0 39.7.3 92.8.3 93.5-3.1 98.3 190.6 67.7 134.3-124 53.1-21.7 88-49.4 106.3-72 9.1-13.8-.9-28.3-16.1-17.8zm-30.5 19.2c-68.9 37.4-128.3 31.1-160.6 29.7-23.7-.9-32.6 9.1-33.7 24.9-10.3-7.7-18.6-15.5-20.3-17.1-5.1-5.4-13.7-8-27.1-7.7-31.7 1.1-89.7 7.4-157.4-28V72.3c0-34.9 8.9-45.7 40.6-45.7h317.7c30.3 0 40.9 12.9 40.9 45.7v190.6z"], - "google-play": [512, 512, [], "f3ab", "M325.3 234.3L104.6 13l280.8 161.2-60.1 60.1zM47 0C34 6.8 25.3 19.2 25.3 35.3v441.3c0 16.1 8.7 28.5 21.7 35.3l256.6-256L47 0zm425.2 225.6l-58.9-34.1-65.7 64.5 65.7 64.5 60.1-34.1c18-14.3 18-46.5-1.2-60.8zM104.6 499l280.8-161.2-60.1-60.1L104.6 499z"], - "viadeo": [448, 512, [], "f2a9", "M276.2 150.5v.7C258.3 98.6 233.6 47.8 205.4 0c43.3 29.2 67 100 70.8 150.5zm32.7 121.7c7.6 18.2 11 37.5 11 57 0 77.7-57.8 141-137.8 139.4l3.8-.3c74.2-46.7 109.3-118.6 109.3-205.1 0-38.1-6.5-75.9-18.9-112 1 11.7 1 23.7 1 35.4 0 91.8-18.1 241.6-116.6 280C95 455.2 49.4 398 49.4 329.2c0-75.6 57.4-142.3 135.4-142.3 16.8 0 33.7 3.1 49.1 9.6 1.7-15.1 6.5-29.9 13.4-43.3-19.9-7.2-41.2-10.7-62.5-10.7-161.5 0-238.7 195.9-129.9 313.7 67.9 74.6 192 73.9 259.8 0 56.6-61.3 60.9-142.4 36.4-201-12.7 8-27.1 13.9-42.2 17zM418.1 11.7c-31 66.5-81.3 47.2-115.8 80.1-12.4 12-20.6 34-20.6 50.5 0 14.1 4.5 27.1 12 38.8 47.4-11 98.3-46 118.2-90.7-.7 5.5-4.8 14.4-7.2 19.2-20.3 35.7-64.6 65.6-99.7 84.9 14.8 14.4 33.7 25.8 55 25.8 79 0 110.1-134.6 58.1-208.6z"], - "line": [512, 512, [], "f3c0", "M311 196.8v81.3c0 2.1-1.6 3.7-3.7 3.7h-13c-1.3 0-2.4-.7-3-1.5l-37.3-50.3v48.2c0 2.1-1.6 3.7-3.7 3.7h-13c-2.1 0-3.7-1.6-3.7-3.7V196.9c0-2.1 1.6-3.7 3.7-3.7h12.9c1.1 0 2.4 .6 3 1.6l37.3 50.3V196.9c0-2.1 1.6-3.7 3.7-3.7h13c2.1-.1 3.8 1.6 3.8 3.5zm-93.7-3.7h-13c-2.1 0-3.7 1.6-3.7 3.7v81.3c0 2.1 1.6 3.7 3.7 3.7h13c2.1 0 3.7-1.6 3.7-3.7V196.8c0-1.9-1.6-3.7-3.7-3.7zm-31.4 68.1H150.3V196.8c0-2.1-1.6-3.7-3.7-3.7h-13c-2.1 0-3.7 1.6-3.7 3.7v81.3c0 1 .3 1.8 1 2.5c.7 .6 1.5 1 2.5 1h52.2c2.1 0 3.7-1.6 3.7-3.7v-13c0-1.9-1.6-3.7-3.5-3.7zm193.7-68.1H327.3c-1.9 0-3.7 1.6-3.7 3.7v81.3c0 1.9 1.6 3.7 3.7 3.7h52.2c2.1 0 3.7-1.6 3.7-3.7V265c0-2.1-1.6-3.7-3.7-3.7H344V247.7h35.5c2.1 0 3.7-1.6 3.7-3.7V230.9c0-2.1-1.6-3.7-3.7-3.7H344V213.5h35.5c2.1 0 3.7-1.6 3.7-3.7v-13c-.1-1.9-1.7-3.7-3.7-3.7zM512 93.4V419.4c-.1 51.2-42.1 92.7-93.4 92.6H92.6C41.4 511.9-.1 469.8 0 418.6V92.6C.1 41.4 42.2-.1 93.4 0H419.4c51.2 .1 92.7 42.1 92.6 93.4zM441.6 233.5c0-83.4-83.7-151.3-186.4-151.3s-186.4 67.9-186.4 151.3c0 74.7 66.3 137.4 155.9 149.3c21.8 4.7 19.3 12.7 14.4 42.1c-.8 4.7-3.8 18.4 16.1 10.1s107.3-63.2 146.5-108.2c27-29.7 39.9-59.8 39.9-93.1z"], - "google-drive": [512, 512, [], "f3aa", "M339 314.9L175.4 32h161.2l163.6 282.9H339zm-137.5 23.6L120.9 480h310.5L512 338.5H201.5zM154.1 67.4L0 338.5 80.6 480 237 208.8 154.1 67.4z"], - "servicestack": [496, 512, [], "f3ec", "M88 216c81.7 10.2 273.7 102.3 304 232H0c99.5-8.1 184.5-137 88-232zm32-152c32.3 35.6 47.7 83.9 46.4 133.6C249.3 231.3 373.7 321.3 400 448h96C455.3 231.9 222.8 79.5 120 64z"], - "simplybuilt": [512, 512, [], "f215", "M481.2 64h-106c-14.5 0-26.6 11.8-26.6 26.3v39.6H163.3V90.3c0-14.5-12-26.3-26.6-26.3h-106C16.1 64 4.3 75.8 4.3 90.3v331.4c0 14.5 11.8 26.3 26.6 26.3h450.4c14.8 0 26.6-11.8 26.6-26.3V90.3c-.2-14.5-12-26.3-26.7-26.3zM149.8 355.8c-36.6 0-66.4-29.7-66.4-66.4 0-36.9 29.7-66.6 66.4-66.6 36.9 0 66.6 29.7 66.6 66.6 0 36.7-29.7 66.4-66.6 66.4zm212.4 0c-36.9 0-66.6-29.7-66.6-66.6 0-36.6 29.7-66.4 66.6-66.4 36.6 0 66.4 29.7 66.4 66.4 0 36.9-29.8 66.6-66.4 66.6z"], - "bitbucket": [512, 512, [61810], "f171", "M22.2 32A16 16 0 0 0 6 47.8a26.35 26.35 0 0 0 .2 2.8l67.9 412.1a21.77 21.77 0 0 0 21.3 18.2h325.7a16 16 0 0 0 16-13.4L505 50.7a16 16 0 0 0-13.2-18.3 24.58 24.58 0 0 0-2.8-.2L22.2 32zm285.9 297.8h-104l-28.1-147h157.3l-25.2 147z"], - "imdb": [448, 512, [], "f2d8", "M89.5 323.6H53.93V186.2H89.5V323.6zM156.1 250.5L165.2 186.2H211.5V323.6H180.5V230.9L167.1 323.6H145.8L132.8 232.9L132.7 323.6H101.5V186.2H147.6C148.1 194.5 150.4 204.3 151.9 215.6L156.1 250.5zM223.7 323.6V186.2H250.3C267.3 186.2 277.3 187.1 283.3 188.6C289.4 190.3 294 192.8 297.2 196.5C300.3 199.8 302.3 203.1 303 208.5C303.9 212.9 304.4 221.6 304.4 234.7V282.9C304.4 295.2 303.7 303.4 302.5 307.6C301.4 311.7 299.4 315 296.5 317.3C293.7 319.7 290.1 321.4 285.8 322.3C281.6 323.1 275.2 323.6 266.7 323.6H223.7zM259.2 209.7V299.1C264.3 299.1 267.5 298.1 268.6 296.8C269.7 294.8 270.4 289.2 270.4 280.1V226.8C270.4 220.6 270.3 216.6 269.7 214.8C269.4 213 268.5 211.8 267.1 210.1C265.7 210.1 263 209.7 259.2 209.7V209.7zM316.5 323.6V186.2H350.6V230.1C353.5 227.7 356.7 225.2 360.1 223.5C363.7 222 368.9 221.1 372.9 221.1C377.7 221.1 381.8 221.9 385.2 223.3C388.6 224.8 391.2 226.8 393.2 229.5C394.9 232.1 395.9 234.8 396.3 237.3C396.7 239.9 396.1 245.3 396.1 253.5V292.1C396.1 300.3 396.3 306.4 395.3 310.5C394.2 314.5 391.5 318.1 387.5 320.1C383.4 324 378.6 325.4 372.9 325.4C368.9 325.4 363.7 324.5 360.2 322.9C356.7 321.1 353.5 318.4 350.6 314.9L348.5 323.6L316.5 323.6zM361.6 302.9C362.3 301.1 362.6 296.9 362.6 290.4V255C362.6 249.4 362.3 245.5 361.5 243.8C360.8 241.9 357.8 241.1 355.7 241.1C353.7 241.1 352.3 241.9 351.6 243.4C351 244.9 350.6 248.8 350.6 255V291.4C350.6 297.5 351 301.4 351.8 303C352.4 304.7 353.9 305.5 355.9 305.5C358.1 305.5 360.1 304.7 361.6 302.9L361.6 302.9zM418.4 32.04C434.1 33.27 447.1 47.28 447.1 63.92V448.1C447.1 464.5 435.2 478.5 418.9 479.1C418.6 479.1 418.4 480 418.1 480H29.88C29.6 480 29.32 479.1 29.04 479.9C13.31 478.5 1.093 466.1 0 449.7L.0186 61.78C1.081 45.88 13.82 33.09 30.26 31.1H417.7C417.9 31.1 418.2 32.01 418.4 32.04L418.4 32.04zM30.27 41.26C19 42.01 10.02 51.01 9.257 62.4V449.7C9.63 455.1 11.91 460.2 15.7 464C19.48 467.9 24.51 470.3 29.89 470.7H418.1C429.6 469.7 438.7 459.1 438.7 448.1V63.91C438.7 58.17 436.6 52.65 432.7 48.45C428.8 44.24 423.4 41.67 417.7 41.26L30.27 41.26z"], - "deezer": [576, 512, [], "e077", "M451.46,244.71H576V172H451.46Zm0-173.89v72.67H576V70.82Zm0,275.06H576V273.2H451.46ZM0,447.09H124.54V374.42H0Zm150.47,0H275V374.42H150.47Zm150.52,0H425.53V374.42H301Zm150.47,0H576V374.42H451.46ZM301,345.88H425.53V273.2H301Zm-150.52,0H275V273.2H150.47Zm0-101.17H275V172H150.47Z"], - "raspberry-pi": [407, 512, [], "f7bb", "M372 232.5l-3.7-6.5c.1-46.4-21.4-65.3-46.5-79.7 7.6-2 15.4-3.6 17.6-13.2 13.1-3.3 15.8-9.4 17.1-15.8 3.4-2.3 14.8-8.7 13.6-19.7 6.4-4.4 10-10.1 8.1-18.1 6.9-7.5 8.7-13.7 5.8-19.4 8.3-10.3 4.6-15.6 1.1-20.9 6.2-11.2.7-23.2-16.6-21.2-6.9-10.1-21.9-7.8-24.2-7.8-2.6-3.2-6-6-16.5-4.7-6.8-6.1-14.4-5-22.3-2.1-9.3-7.3-15.5-1.4-22.6.8C271.6.6 269 5.5 263.5 7.6c-12.3-2.6-16.1 3-22 8.9l-6.9-.1c-18.6 10.8-27.8 32.8-31.1 44.1-3.3-11.3-12.5-33.3-31.1-44.1l-6.9.1c-5.9-5.9-9.7-11.5-22-8.9-5.6-2-8.1-7-19.4-3.4-4.6-1.4-8.9-4.4-13.9-4.3-2.6.1-5.5 1-8.7 3.5-7.9-3-15.5-4-22.3 2.1-10.5-1.3-14 1.4-16.5 4.7-2.3 0-17.3-2.3-24.2 7.8C21.2 16 15.8 28 22 39.2c-3.5 5.4-7.2 10.7 1.1 20.9-2.9 5.7-1.1 11.9 5.8 19.4-1.8 8 1.8 13.7 8.1 18.1-1.2 11 10.2 17.4 13.6 19.7 1.3 6.4 4 12.4 17.1 15.8 2.2 9.5 10 11.2 17.6 13.2-25.1 14.4-46.6 33.3-46.5 79.7l-3.7 6.5c-28.8 17.2-54.7 72.7-14.2 117.7 2.6 14.1 7.1 24.2 11 35.4 5.9 45.2 44.5 66.3 54.6 68.8 14.9 11.2 30.8 21.8 52.2 29.2C159 504.2 181 512 203 512h1c22.1 0 44-7.8 64.2-28.4 21.5-7.4 37.3-18 52.2-29.2 10.2-2.5 48.7-23.6 54.6-68.8 3.9-11.2 8.4-21.3 11-35.4 40.6-45.1 14.7-100.5-14-117.7zm-22.2-8c-1.5 18.7-98.9-65.1-82.1-67.9 45.7-7.5 83.6 19.2 82.1 67.9zm-43 93.1c-24.5 15.8-59.8 5.6-78.8-22.8s-14.6-64.2 9.9-80c24.5-15.8 59.8-5.6 78.8 22.8s14.6 64.2-9.9 80zM238.9 29.3c.8 4.2 1.8 6.8 2.9 7.6 5.4-5.8 9.8-11.7 16.8-17.3 0 3.3-1.7 6.8 2.5 9.4 3.7-5 8.8-9.5 15.5-13.3-3.2 5.6-.6 7.3 1.2 9.6 5.1-4.4 10-8.8 19.4-12.3-2.6 3.1-6.2 6.2-2.4 9.8 5.3-3.3 10.6-6.6 23.1-8.9-2.8 3.1-8.7 6.3-5.1 9.4 6.6-2.5 14-4.4 22.1-5.4-3.9 3.2-7.1 6.3-3.9 8.8 7.1-2.2 16.9-5.1 26.4-2.6l-6 6.1c-.7.8 14.1.6 23.9.8-3.6 5-7.2 9.7-9.3 18.2 1 1 5.8.4 10.4 0-4.7 9.9-12.8 12.3-14.7 16.6 2.9 2.2 6.8 1.6 11.2.1-3.4 6.9-10.4 11.7-16 17.3 1.4 1 3.9 1.6 9.7.9-5.2 5.5-11.4 10.5-18.8 15 1.3 1.5 5.8 1.5 10 1.6-6.7 6.5-15.3 9.9-23.4 14.2 4 2.7 6.9 2.1 10 2.1-5.7 4.7-15.4 7.1-24.4 10 1.7 2.7 3.4 3.4 7.1 4.1-9.5 5.3-23.2 2.9-27 5.6.9 2.7 3.6 4.4 6.7 5.8-15.4.9-57.3-.6-65.4-32.3 15.7-17.3 44.4-37.5 93.7-62.6-38.4 12.8-73 30-102 53.5-34.3-15.9-10.8-55.9 5.8-71.8zm-34.4 114.6c24.2-.3 54.1 17.8 54 34.7-.1 15-21 27.1-53.8 26.9-32.1-.4-53.7-15.2-53.6-29.8 0-11.9 26.2-32.5 53.4-31.8zm-123-12.8c3.7-.7 5.4-1.5 7.1-4.1-9-2.8-18.7-5.3-24.4-10 3.1 0 6 .7 10-2.1-8.1-4.3-16.7-7.7-23.4-14.2 4.2-.1 8.7 0 10-1.6-7.4-4.5-13.6-9.5-18.8-15 5.8.7 8.3.1 9.7-.9-5.6-5.6-12.7-10.4-16-17.3 4.3 1.5 8.3 2 11.2-.1-1.9-4.2-10-6.7-14.7-16.6 4.6.4 9.4 1 10.4 0-2.1-8.5-5.8-13.3-9.3-18.2 9.8-.1 24.6 0 23.9-.8l-6-6.1c9.5-2.5 19.3.4 26.4 2.6 3.2-2.5-.1-5.6-3.9-8.8 8.1 1.1 15.4 2.9 22.1 5.4 3.5-3.1-2.3-6.3-5.1-9.4 12.5 2.3 17.8 5.6 23.1 8.9 3.8-3.6.2-6.7-2.4-9.8 9.4 3.4 14.3 7.9 19.4 12.3 1.7-2.3 4.4-4 1.2-9.6 6.7 3.8 11.8 8.3 15.5 13.3 4.1-2.6 2.5-6.2 2.5-9.4 7 5.6 11.4 11.5 16.8 17.3 1.1-.8 2-3.4 2.9-7.6 16.6 15.9 40.1 55.9 6 71.8-29-23.5-63.6-40.7-102-53.5 49.3 25 78 45.3 93.7 62.6-8 31.8-50 33.2-65.4 32.3 3.1-1.4 5.8-3.2 6.7-5.8-4-2.8-17.6-.4-27.2-5.6zm60.1 24.1c16.8 2.8-80.6 86.5-82.1 67.9-1.5-48.7 36.5-75.5 82.1-67.9zM38.2 342c-23.7-18.8-31.3-73.7 12.6-98.3 26.5-7 9 107.8-12.6 98.3zm91 98.2c-13.3 7.9-45.8 4.7-68.8-27.9-15.5-27.4-13.5-55.2-2.6-63.4 16.3-9.8 41.5 3.4 60.9 25.6 16.9 20 24.6 55.3 10.5 65.7zm-26.4-119.7c-24.5-15.8-28.9-51.6-9.9-80s54.3-38.6 78.8-22.8 28.9 51.6 9.9 80c-19.1 28.4-54.4 38.6-78.8 22.8zM205 496c-29.4 1.2-58.2-23.7-57.8-32.3-.4-12.7 35.8-22.6 59.3-22 23.7-1 55.6 7.5 55.7 18.9.5 11-28.8 35.9-57.2 35.4zm58.9-124.9c.2 29.7-26.2 53.8-58.8 54-32.6.2-59.2-23.8-59.4-53.4v-.6c-.2-29.7 26.2-53.8 58.8-54 32.6-.2 59.2 23.8 59.4 53.4v.6zm82.2 42.7c-25.3 34.6-59.6 35.9-72.3 26.3-13.3-12.4-3.2-50.9 15.1-72 20.9-23.3 43.3-38.5 58.9-26.6 10.5 10.3 16.7 49.1-1.7 72.3zm22.9-73.2c-21.5 9.4-39-105.3-12.6-98.3 43.9 24.7 36.3 79.6 12.6 98.3z"], - "jira": [496, 512, [], "f7b1", "M490 241.7C417.1 169 320.6 71.8 248.5 0 83 164.9 6 241.7 6 241.7c-7.9 7.9-7.9 20.7 0 28.7C138.8 402.7 67.8 331.9 248.5 512c379.4-378 15.7-16.7 241.5-241.7 8-7.9 8-20.7 0-28.6zm-241.5 90l-76-75.7 76-75.7 76 75.7-76 75.7z"], - "docker": [640, 512, [], "f395", "M349.9 236.3h-66.1v-59.4h66.1v59.4zm0-204.3h-66.1v60.7h66.1V32zm78.2 144.8H362v59.4h66.1v-59.4zm-156.3-72.1h-66.1v60.1h66.1v-60.1zm78.1 0h-66.1v60.1h66.1v-60.1zm276.8 100c-14.4-9.7-47.6-13.2-73.1-8.4-3.3-24-16.7-44.9-41.1-63.7l-14-9.3-9.3 14c-18.4 27.8-23.4 73.6-3.7 103.8-8.7 4.7-25.8 11.1-48.4 10.7H2.4c-8.7 50.8 5.8 116.8 44 162.1 37.1 43.9 92.7 66.2 165.4 66.2 157.4 0 273.9-72.5 328.4-204.2 21.4.4 67.6.1 91.3-45.2 1.5-2.5 6.6-13.2 8.5-17.1l-13.3-8.9zm-511.1-27.9h-66v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm-78.1-72.1h-66.1v60.1h66.1v-60.1z"], - "screenpal": [512, 512, [], "e570", "M233.5 22.49C233.5 10.07 243.6 0 256 0C268.4 0 278.5 10.07 278.5 22.49C278.5 34.91 268.4 44.98 256 44.98C243.6 44.98 233.5 34.91 233.5 22.49zM313.4 259C313.4 290.7 287.7 316.4 256 316.4C224.3 316.4 198.6 290.7 198.6 259C198.6 227.3 224.3 201.6 256 201.6C287.7 201.6 313.4 227.3 313.4 259zM337.2 350C359.5 330.1 373.7 302.7 377.1 273H496.6C493.1 334.4 466.2 392.2 421.4 434.4C376.7 476.6 317.5 500.2 256 500.2C194.5 500.2 135.3 476.6 90.56 434.4C45.83 392.2 18.94 334.4 15.39 273H135.1C138.5 302.7 152.7 330.1 175 350C197.3 369.9 226.2 380.9 256.1 380.9C285.1 380.9 314.8 369.9 337.2 350zM73.14 140.3C73.54 152.7 63.81 163.1 51.39 163.5C38.97 163.9 28.59 154.2 28.18 141.8C27.78 129.3 37.52 118.9 49.94 118.5C62.35 118.1 72.74 127.9 73.14 140.3zM438.9 141C438.9 128.6 448.9 118.5 461.4 118.5C473.8 118.5 483.8 128.6 483.8 141C483.8 153.5 473.8 163.5 461.4 163.5C448.9 163.5 438.9 153.5 438.9 141zM317.9 95.27C300.6 109.1 278.7 118.1 256 118.1C233.3 118.1 211.4 109.1 194.1 95.27C176.8 80.55 165.3 60.18 161.7 37.78C176.8 31.37 192.5 26.52 208.6 23.31C208.6 35.88 213.6 47.93 222.5 56.82C231.4 65.7 243.4 70.7 256 70.7C268.6 70.7 280.6 65.7 289.5 56.82C298.4 47.93 303.4 35.88 303.4 23.31C319.5 26.52 335.2 31.37 350.3 37.78C346.7 60.18 335.2 80.55 317.9 95.27H317.9zM82.78 231C61.42 238.6 38.06 238.4 16.86 230.4C18.82 214.1 22.46 198.1 27.71 182.5C33.1 185.6 39.05 187.6 45.22 188.5C51.39 189.3 57.67 188.9 63.68 187.3C69.69 185.6 75.33 182.9 80.27 179.1C85.21 175.3 89.36 170.6 92.47 165.2C95.58 159.8 97.61 153.8 98.42 147.7C99.23 141.5 98.83 135.2 97.22 129.2C95.61 123.2 92.83 117.6 89.04 112.6C85.25 107.7 80.53 103.5 75.14 100.4C85.96 88.11 98.01 76.94 111.1 67.07C128.7 81.42 140.6 101.6 144.7 123.9C148.8 146.2 144.8 169.3 133.5 188.9C122.1 208.5 104.1 223.4 82.78 231V231zM429.2 231.1C407.9 223.5 389.9 208.5 378.5 188.9C367.2 169.3 363.3 146.2 367.4 123.9C371.5 101.7 383.4 81.54 400.9 67.19C414 77.04 426.1 88.21 436.9 100.5C426.2 106.9 418.5 117.2 415.4 129.3C412.2 141.3 413.1 154.1 420.2 164.9C426.4 175.7 436.6 183.6 448.6 186.9C460.6 190.2 473.5 188.6 484.3 182.6C489.6 198.1 493.2 214.2 495.2 230.4C473.1 238.5 450.6 238.7 429.2 231.1L429.2 231.1z"], - "bluetooth": [448, 512, [], "f293", "M292.6 171.1L249.7 214l-.3-86 43.2 43.1m-43.2 219.8l43.1-43.1-42.9-42.9-.2 86zM416 259.4C416 465 344.1 512 230.9 512S32 465 32 259.4 115.4 0 228.6 0 416 53.9 416 259.4zm-158.5 0l79.4-88.6L211.8 36.5v176.9L138 139.6l-27 26.9 92.7 93-92.7 93 26.9 26.9 73.8-73.8 2.3 170 127.4-127.5-83.9-88.7z"], - "gitter": [384, 512, [], "f426", "M66.4 322.5H16V0h50.4v322.5zM166.9 76.1h-50.4V512h50.4V76.1zm100.6 0h-50.4V512h50.4V76.1zM368 76h-50.4v247H368V76z"], - "d-and-d": [576, 512, [], "f38d", "M82.5 98.9c-.6-17.2 2-33.8 12.7-48.2.3 7.4 1.2 14.5 4.2 21.6 5.9-27.5 19.7-49.3 42.3-65.5-1.9 5.9-3.5 11.8-3 17.7 8.7-7.4 18.8-17.8 44.4-22.7 14.7-2.8 29.7-2 42.1 1 38.5 9.3 61 34.3 69.7 72.3 5.3 23.1.7 45-8.3 66.4-5.2 12.4-12 24.4-20.7 35.1-2-1.9-3.9-3.8-5.8-5.6-42.8-40.8-26.8-25.2-37.4-37.4-1.1-1.2-1-2.2-.1-3.6 8.3-13.5 11.8-28.2 10-44-1.1-9.8-4.3-18.9-11.3-26.2-14.5-15.3-39.2-15-53.5.6-11.4 12.5-14.1 27.4-10.9 43.6.2 1.3.4 2.7 0 3.9-3.4 13.7-4.6 27.6-2.5 41.6.1.5.1 1.1.1 1.6 0 .3-.1.5-.2 1.1-21.8-11-36-28.3-43.2-52.2-8.3 17.8-11.1 35.5-6.6 54.1-15.6-15.2-21.3-34.3-22-55.2zm469.6 123.2c-11.6-11.6-25-20.4-40.1-26.6-12.8-5.2-26-7.9-39.9-7.1-10 .6-19.6 3.1-29 6.4-2.5.9-5.1 1.6-7.7 2.2-4.9 1.2-7.3-3.1-4.7-6.8 3.2-4.6 3.4-4.2 15-12 .6-.4 1.2-.8 2.2-1.5h-2.5c-.6 0-1.2.2-1.9.3-19.3 3.3-30.7 15.5-48.9 29.6-10.4 8.1-13.8 3.8-12-.5 1.4-3.5 3.3-6.7 5.1-10 1-1.8 2.3-3.4 3.5-5.1-.2-.2-.5-.3-.7-.5-27 18.3-46.7 42.4-57.7 73.3.3.3.7.6 1 .9.3-.6.5-1.2.9-1.7 10.4-12.1 22.8-21.8 36.6-29.8 18.2-10.6 37.5-18.3 58.7-20.2 4.3-.4 8.7-.1 13.1-.1-1.8.7-3.5.9-5.3 1.1-18.5 2.4-35.5 9-51.5 18.5-30.2 17.9-54.5 42.2-75.1 70.4-.3.4-.4.9-.7 1.3 14.5 5.3 24 17.3 36.1 25.6.2-.1.3-.2.4-.4l1.2-2.7c12.2-26.9 27-52.3 46.7-74.5 16.7-18.8 38-25.3 62.5-20 5.9 1.3 11.4 4.4 17.2 6.8 2.3-1.4 5.1-3.2 8-4.7 8.4-4.3 17.4-7 26.7-9 14.7-3.1 29.5-4.9 44.5-1.3v-.5c-.5-.4-1.2-.8-1.7-1.4zM316.7 397.6c-39.4-33-22.8-19.5-42.7-35.6-.8.9 0-.2-1.9 3-11.2 19.1-25.5 35.3-44 47.6-10.3 6.8-21.5 11.8-34.1 11.8-21.6 0-38.2-9.5-49.4-27.8-12-19.5-13.3-40.7-8.2-62.6 7.8-33.8 30.1-55.2 38.6-64.3-18.7-6.2-33 1.7-46.4 13.9.8-13.9 4.3-26.2 11.8-37.3-24.3 10.6-45.9 25-64.8 43.9-.3-5.8 5.4-43.7 5.6-44.7.3-2.7-.6-5.3-3-7.4-24.2 24.7-44.5 51.8-56.1 84.6 7.4-5.9 14.9-11.4 23.6-16.2-8.3 22.3-19.6 52.8-7.8 101.1 4.6 19 11.9 36.8 24.1 52.3 2.9 3.7 6.3 6.9 9.5 10.3.2-.2.4-.3.6-.5-1.4-7-2.2-14.1-1.5-21.9 2.2 3.2 3.9 6 5.9 8.6 12.6 16 28.7 27.4 47.2 35.6 25 11.3 51.1 13.3 77.9 8.6 54.9-9.7 90.7-48.6 116-98.8 1-1.8.6-2.9-.9-4.2zm172-46.4c-9.5-3.1-22.2-4.2-28.7-2.9 9.9 4 14.1 6.6 18.8 12 12.6 14.4 10.4 34.7-5.4 45.6-11.7 8.1-24.9 10.5-38.9 9.1-1.2-.1-2.3-.4-3-.6 2.8-3.7 6-7 8.1-10.8 9.4-16.8 5.4-42.1-8.7-56.1-2.1-2.1-4.6-3.9-7-5.9-.3 1.3-.1 2.1.1 2.8 4.2 16.6-8.1 32.4-24.8 31.8-7.6-.3-13.9-3.8-19.6-8.5-19.5-16.1-39.1-32.1-58.5-48.3-5.9-4.9-12.5-8.1-20.1-8.7-4.6-.4-9.3-.6-13.9-.9-5.9-.4-8.8-2.8-10.4-8.4-.9-3.4-1.5-6.8-2.2-10.2-1.5-8.1-6.2-13-14.3-14.2-4.4-.7-8.9-1-13.3-1.5-13-1.4-19.8-7.4-22.6-20.3-5 11-1.6 22.4 7.3 29.9 4.5 3.8 9.3 7.3 13.8 11.2 4.6 3.8 7.4 8.7 7.9 14.8.4 4.7.8 9.5 1.8 14.1 2.2 10.6 8.9 18.4 17 25.1 16.5 13.7 33 27.3 49.5 41.1 17.9 15 13.9 32.8 13 56-.9 22.9 12.2 42.9 33.5 51.2 1 .4 2 .6 3.6 1.1-15.7-18.2-10.1-44.1.7-52.3.3 2.2.4 4.3.9 6.4 9.4 44.1 45.4 64.2 85 56.9 16-2.9 30.6-8.9 42.9-19.8 2-1.8 3.7-4.1 5.9-6.5-19.3 4.6-35.8.1-50.9-10.6.7-.3 1.3-.3 1.9-.3 21.3 1.8 40.6-3.4 57-17.4 19.5-16.6 26.6-42.9 17.4-66-8.3-20.1-23.6-32.3-43.8-38.9zM99.4 179.3c-5.3-9.2-13.2-15.6-22.1-21.3 13.7-.5 26.6.2 39.6 3.7-7-12.2-8.5-24.7-5-38.7 5.3 11.9 13.7 20.1 23.6 26.8 19.7 13.2 35.7 19.6 46.7 30.2 3.4 3.3 6.3 7.1 9.6 10.9-.8-2.1-1.4-4.1-2.2-6-5-10.6-13-18.6-22.6-25-1.8-1.2-2.8-2.5-3.4-4.5-3.3-12.5-3-25.1-.7-37.6 1-5.5 2.8-10.9 4.5-16.3.8-2.4 2.3-4.6 4-6.6.6 6.9 0 25.5 19.6 46 10.8 11.3 22.4 21.9 33.9 32.7 9 8.5 18.3 16.7 25.5 26.8 1.1 1.6 2.2 3.3 3.8 4.7-5-13-14.2-24.1-24.2-33.8-9.6-9.3-19.4-18.4-29.2-27.4-3.3-3-4.6-6.7-5.1-10.9-1.2-10.4 0-20.6 4.3-30.2.5-1 1.1-2 1.9-3.3.5 4.2.6 7.9 1.4 11.6 4.8 23.1 20.4 36.3 49.3 63.5 10 9.4 19.3 19.2 25.6 31.6 4.8 9.3 7.3 19 5.7 29.6-.1.6.5 1.7 1.1 2 6.2 2.6 10 6.9 9.7 14.3 7.7-2.6 12.5-8 16.4-14.5 4.2 20.2-9.1 50.3-27.2 58.7.4-4.5 5-23.4-16.5-27.7-6.8-1.3-12.8-1.3-22.9-2.1 4.7-9 10.4-20.6.5-22.4-24.9-4.6-52.8 1.9-57.8 4.6 8.2.4 16.3 1 23.5 3.3-2 6.5-4 12.7-5.8 18.9-1.9 6.5 2.1 14.6 9.3 9.6 1.2-.9 2.3-1.9 3.3-2.7-3.1 17.9-2.9 15.9-2.8 18.3.3 10.2 9.5 7.8 15.7 7.3-2.5 11.8-29.5 27.3-45.4 25.8 7-4.7 12.7-10.3 15.9-17.9-6.5.8-12.9 1.6-19.2 2.4l-.3-.9c4.7-3.4 8-7.8 10.2-13.1 8.7-21.1-3.6-38-25-39.9-9.1-.8-17.8.8-25.9 5.5 6.2-15.6 17.2-26.6 32.6-34.5-15.2-4.3-8.9-2.7-24.6-6.3 14.6-9.3 30.2-13.2 46.5-14.6-5.2-3.2-48.1-3.6-70.2 20.9 7.9 1.4 15.5 2.8 23.2 4.2-23.8 7-44 19.7-62.4 35.6 1.1-4.8 2.7-9.5 3.3-14.3.6-4.5.8-9.2.1-13.6-1.5-9.4-8.9-15.1-19.7-16.3-7.9-.9-15.6.1-23.3 1.3-.9.1-1.7.3-2.9 0 15.8-14.8 36-21.7 53.1-33.5 6-4.5 6.8-8.2 3-14.9zm128.4 26.8c3.3 16 12.6 25.5 23.8 24.3-4.6-11.3-12.1-19.5-23.8-24.3z"], - "microblog": [448, 512, [], "e01a", "M399.36,362.23c29.49-34.69,47.1-78.34,47.1-125.79C446.46,123.49,346.86,32,224,32S1.54,123.49,1.54,236.44,101.14,440.87,224,440.87a239.28,239.28,0,0,0,79.44-13.44,7.18,7.18,0,0,1,8.12,2.56c18.58,25.09,47.61,42.74,79.89,49.92a4.42,4.42,0,0,0,5.22-3.43,4.37,4.37,0,0,0-.85-3.62,87,87,0,0,1,3.69-110.69ZM329.52,212.4l-57.3,43.49L293,324.75a6.5,6.5,0,0,1-9.94,7.22L224,290.92,164.94,332a6.51,6.51,0,0,1-9.95-7.22l20.79-68.86-57.3-43.49a6.5,6.5,0,0,1,3.8-11.68l71.88-1.51,23.66-67.92a6.5,6.5,0,0,1,12.28,0l23.66,67.92,71.88,1.51a6.5,6.5,0,0,1,3.88,11.68Z"], - "cc-diners-club": [576, 512, [], "f24c", "M239.7 79.9c-96.9 0-175.8 78.6-175.8 175.8 0 96.9 78.9 175.8 175.8 175.8 97.2 0 175.8-78.9 175.8-175.8 0-97.2-78.6-175.8-175.8-175.8zm-39.9 279.6c-41.7-15.9-71.4-56.4-71.4-103.8s29.7-87.9 71.4-104.1v207.9zm79.8.3V151.6c41.7 16.2 71.4 56.7 71.4 104.1s-29.7 87.9-71.4 104.1zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM329.7 448h-90.3c-106.2 0-193.8-85.5-193.8-190.2C45.6 143.2 133.2 64 239.4 64h90.3c105 0 200.7 79.2 200.7 193.8 0 104.7-95.7 190.2-200.7 190.2z"], - "gg-circle": [512, 512, [], "f261", "M257 8C120 8 9 119 9 256s111 248 248 248 248-111 248-248S394 8 257 8zm-49.5 374.8L81.8 257.1l125.7-125.7 35.2 35.4-24.2 24.2-11.1-11.1-77.2 77.2 77.2 77.2 26.6-26.6-53.1-52.9 24.4-24.4 77.2 77.2-75 75.2zm99-2.2l-35.2-35.2 24.1-24.4 11.1 11.1 77.2-77.2-77.2-77.2-26.5 26.5 53.1 52.9-24.4 24.4-77.2-77.2 75-75L432.2 255 306.5 380.6z"], - "pied-piper-hat": [640, 512, [], "f4e5", "M640 24.9c-80.8 53.6-89.4 92.5-96.4 104.4-6.7 12.2-11.7 60.3-23.3 83.6-11.7 23.6-54.2 42.2-66.1 50-11.7 7.8-28.3 38.1-41.9 64.2-108.1-4.4-167.4 38.8-259.2 93.6 29.4-9.7 43.3-16.7 43.3-16.7 94.2-36 139.3-68.3 281.1-49.2 1.1 0 1.9.6 2.8.8 3.9 2.2 5.3 6.9 3.1 10.8l-53.9 95.8c-2.5 4.7-7.8 7.2-13.1 6.1-126.8-23.8-226.9 17.3-318.9 18.6C24.1 488 0 453.4 0 451.8c0-1.1.6-1.7 1.7-1.7 0 0 38.3 0 103.1-15.3C178.4 294.5 244 245.4 315.4 245.4c0 0 71.7 0 90.6 61.9 22.8-39.7 28.3-49.2 28.3-49.2 5.3-9.4 35-77.2 86.4-141.4 51.5-64 90.4-79.9 119.3-91.8z"], - "kickstarter-k": [448, 512, [], "f3bc", "M356.6 256.2l40.8-40.5c42.2-41.9 42.2-110.3 0-152.1s-111-41.9-153.2 0L229.3 78.4C209.6 50.3 177.1 32 140.2 32C80.5 32 32 80.2 32 139.5V372.5C32 431.9 80.5 480 140.2 480c37.1 0 69.3-18.3 89-46.4l14.9 14.7c42.2 41.9 111 41.9 153.2 0s42.2-110.3 0-152.1l-40.8-40z"], - "yandex": [256, 512, [], "f413", "M153.1 315.8L65.7 512H2l96-209.8c-45.1-22.9-75.2-64.4-75.2-141.1C22.7 53.7 90.8 0 171.7 0H254v512h-55.1V315.8h-45.8zm45.8-269.3h-29.4c-44.4 0-87.4 29.4-87.4 114.6 0 82.3 39.4 108.8 87.4 108.8h29.4V46.5z"], - "readme": [576, 512, [], "f4d5", "M528.3 46.5H388.5c-48.1 0-89.9 33.3-100.4 80.3-10.6-47-52.3-80.3-100.4-80.3H48c-26.5 0-48 21.5-48 48v245.8c0 26.5 21.5 48 48 48h89.7c102.2 0 132.7 24.4 147.3 75 .7 2.8 5.2 2.8 6 0 14.7-50.6 45.2-75 147.3-75H528c26.5 0 48-21.5 48-48V94.6c0-26.4-21.3-47.9-47.7-48.1zM242 311.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5V289c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V251zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm259.3 121.7c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5V228c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.8c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V190z"], - "html5": [384, 512, [], "f13b", "M0 32l34.9 395.8L191.5 480l157.6-52.2L384 32H0zm308.2 127.9H124.4l4.1 49.4h175.6l-13.6 148.4-97.9 27v.3h-1.1l-98.7-27.3-6-75.8h47.7L138 320l53.5 14.5 53.7-14.5 6-62.2H84.3L71.5 112.2h241.1l-4.4 47.7z"], - "sellsy": [640, 512, [], "f213", "M539.71 237.308c3.064-12.257 4.29-24.821 4.29-37.384C544 107.382 468.618 32 376.076 32c-77.22 0-144.634 53.012-163.02 127.781-15.322-13.176-34.934-20.53-55.157-20.53-46.271 0-83.962 37.69-83.962 83.961 0 7.354.92 15.015 3.065 22.369-42.9 20.225-70.785 63.738-70.785 111.234C6.216 424.843 61.68 480 129.401 480h381.198c67.72 0 123.184-55.157 123.184-123.184.001-56.384-38.916-106.025-94.073-119.508zM199.88 401.554c0 8.274-7.048 15.321-15.321 15.321H153.61c-8.274 0-15.321-7.048-15.321-15.321V290.626c0-8.273 7.048-15.321 15.321-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v110.928zm89.477 0c0 8.274-7.048 15.321-15.322 15.321h-30.949c-8.274 0-15.321-7.048-15.321-15.321V270.096c0-8.274 7.048-15.321 15.321-15.321h30.949c8.274 0 15.322 7.048 15.322 15.321v131.458zm89.477 0c0 8.274-7.047 15.321-15.321 15.321h-30.949c-8.274 0-15.322-7.048-15.322-15.321V238.84c0-8.274 7.048-15.321 15.322-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v162.714zm87.027 0c0 8.274-7.048 15.321-15.322 15.321h-28.497c-8.274 0-15.321-7.048-15.321-15.321V176.941c0-8.579 7.047-15.628 15.321-15.628h28.497c8.274 0 15.322 7.048 15.322 15.628v224.613z"], - "square-web-awesome": [448, 512, [], "e683", "M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM235 177.6L288 224l52.2-10.4c-2.6-3.9-4.2-8.5-4.2-13.6c0-13.3 10.7-24 24-24s24 10.7 24 24c0 13-10.3 23.6-23.2 24L304.5 349.1c-5.2 11.5-16.6 18.9-29.2 18.9l-102.6 0c-12.6 0-24-7.4-29.2-18.9L87.2 224C74.3 223.6 64 213 64 200c0-13.3 10.7-24 24-24s24 10.7 24 24c0 5-1.5 9.7-4.2 13.6L160 224l53.1-46.4c-8.9-4.1-15-13.1-15-23.6c0-14.4 11.6-26 26-26s26 11.6 26 26c0 10.5-6.2 19.5-15.1 23.6z"], - "sass": [640, 512, [], "f41e", "M301.84 378.92c-.3.6-.6 1.08 0 0zm249.13-87a131.16 131.16 0 0 0-58 13.5c-5.9-11.9-12-22.3-13-30.1-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2-1.4-6.6-14.3-6.7-24 2.5-25.29 5.9a122.83 122.83 0 0 0-5.3 19.1c-2.3 11.7-25.79 53.5-39.09 75.3-4.4-8.5-8.1-16-8.9-22-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2-1.4-6.6-14.29-6.7-24 2.5-25.3 5.9-2.7 11.4-5.3 19.1-33.89 77.3-42.08 95.4c-4.2 9.2-7.8 16.6-10.4 21.6-.4.8-.7 1.3-.9 1.7.3-.5.5-1 .5-.8-2.2 4.3-3.5 6.7-3.5 6.7v.1c-1.7 3.2-3.6 6.1-4.5 6.1-.6 0-1.9-8.4.3-19.9 4.7-24.2 15.8-61.8 15.7-63.1-.1-.7 2.1-7.2-7.3-10.7-9.1-3.3-12.4 2.2-13.2 2.2s-1.4 2-1.4 2 10.1-42.4-19.39-42.4c-18.4 0-44 20.2-56.58 38.5-7.9 4.3-25 13.6-43 23.5-6.9 3.8-14 7.7-20.7 11.4-.5-.5-.9-1-1.4-1.5-35.79-38.2-101.87-65.2-99.07-116.5 1-18.7 7.5-67.8 127.07-127.4 98-48.8 176.35-35.4 189.84-5.6 19.4 42.5-41.89 121.6-143.66 133-38.79 4.3-59.18-10.7-64.28-16.3-5.3-5.9-6.1-6.2-8.1-5.1-3.3 1.8-1.2 7 0 10.1 3 7.9 15.5 21.9 36.79 28.9 18.7 6.1 64.18 9.5 119.17-11.8 61.78-23.8 109.87-90.1 95.77-145.6C386.52 18.32 293-.18 204.57 31.22c-52.69 18.7-109.67 48.1-150.66 86.4-48.69 45.6-56.48 85.3-53.28 101.9 11.39 58.9 92.57 97.3 125.06 125.7-1.6.9-3.1 1.7-4.5 2.5-16.29 8.1-78.18 40.5-93.67 74.7-17.5 38.8 2.9 66.6 16.29 70.4 41.79 11.6 84.58-9.3 107.57-43.6s20.2-79.1 9.6-99.5c-.1-.3-.3-.5-.4-.8 4.2-2.5 8.5-5 12.8-7.5 8.29-4.9 16.39-9.4 23.49-13.3-4 10.8-6.9 23.8-8.4 42.6-1.8 22 7.3 50.5 19.1 61.7 5.2 4.9 11.49 5 15.39 5 13.8 0 20-11.4 26.89-25 8.5-16.6 16-35.9 16-35.9s-9.4 52.2 16.3 52.2c9.39 0 18.79-12.1 23-18.3v.1s.2-.4.7-1.2c1-1.5 1.5-2.4 1.5-2.4v-.3c3.8-6.5 12.1-21.4 24.59-46 16.2-31.8 31.69-71.5 31.69-71.5a201.24 201.24 0 0 0 6.2 25.8c2.8 9.5 8.7 19.9 13.4 30-3.8 5.2-6.1 8.2-6.1 8.2a.31.31 0 0 0 .1.2c-3 4-6.4 8.3-9.9 12.5-12.79 15.2-28 32.6-30 37.6-2.4 5.9-1.8 10.3 2.8 13.7 3.4 2.6 9.4 3 15.69 2.5 11.5-.8 19.6-3.6 23.5-5.4a82.2 82.2 0 0 0 20.19-10.6c12.5-9.2 20.1-22.4 19.4-39.8-.4-9.6-3.5-19.2-7.3-28.2 1.1-1.6 2.3-3.3 3.4-5C434.8 301.72 450.1 270 450.1 270a201.24 201.24 0 0 0 6.2 25.8c2.4 8.1 7.09 17 11.39 25.7-18.59 15.1-30.09 32.6-34.09 44.1-7.4 21.3-1.6 30.9 9.3 33.1 4.9 1 11.9-1.3 17.1-3.5a79.46 79.46 0 0 0 21.59-11.1c12.5-9.2 24.59-22.1 23.79-39.6-.3-7.9-2.5-15.8-5.4-23.4 15.7-6.6 36.09-10.2 62.09-7.2 55.68 6.5 66.58 41.3 64.48 55.8s-13.8 22.6-17.7 25-5.1 3.3-4.8 5.1c.5 2.6 2.3 2.5 5.6 1.9 4.6-.8 29.19-11.8 30.29-38.7 1.6-34-31.09-71.4-89-71.1zm-429.18 144.7c-18.39 20.1-44.19 27.7-55.28 21.3C54.61 451 59.31 421.42 82 400c13.8-13 31.59-25 43.39-32.4 2.7-1.6 6.6-4 11.4-6.9.8-.5 1.2-.7 1.2-.7.9-.6 1.9-1.1 2.9-1.7 8.29 30.4.3 57.2-19.1 78.3zm134.36-91.4c-6.4 15.7-19.89 55.7-28.09 53.6-7-1.8-11.3-32.3-1.4-62.3 5-15.1 15.6-33.1 21.9-40.1 10.09-11.3 21.19-14.9 23.79-10.4 3.5 5.9-12.2 49.4-16.2 59.2zm111 53c-2.7 1.4-5.2 2.3-6.4 1.6-.9-.5 1.1-2.4 1.1-2.4s13.9-14.9 19.4-21.7c3.2-4 6.9-8.7 10.89-13.9 0 .5.1 1 .1 1.6-.13 17.9-17.32 30-25.12 34.8zm85.58-19.5c-2-1.4-1.7-6.1 5-20.7 2.6-5.7 8.59-15.3 19-24.5a36.18 36.18 0 0 1 1.9 10.8c-.1 22.5-16.2 30.9-25.89 34.4z"], - "wirsindhandwerk": [512, 512, ["wsh"], "e2d0", "M50.77161,479.81213h83.36071V367.84741l-83.36071,47.009Zm329.04675,0h82.35022V414.85645l-82.35022-47.009Zm.00568-448V251.568L256.1759,179.1861,134.50378,251.568V31.81213H50.77161V392.60565L256.1759,270.31909,462.16858,392.60565V31.81213Z"], - "buromobelexperte": [448, 512, [], "f37f", "M0 32v128h128V32H0zm120 120H8V40h112v112zm40-120v128h128V32H160zm120 120H168V40h112v112zm40-120v128h128V32H320zm120 120H328V40h112v112zM0 192v128h128V192H0zm120 120H8V200h112v112zm40-120v128h128V192H160zm120 120H168V200h112v112zm40-120v128h128V192H320zm120 120H328V200h112v112zM0 352v128h128V352H0zm120 120H8V360h112v112zm40-120v128h128V352H160zm120 120H168V360h112v112zm40-120v128h128V352H320z"], - "salesforce": [640, 512, [], "f83b", "M248.89 245.64h-26.35c.69-5.16 3.32-14.12 13.64-14.12 6.75 0 11.97 3.82 12.71 14.12zm136.66-13.88c-.47 0-14.11-1.77-14.11 20s13.63 20 14.11 20c13 0 14.11-13.54 14.11-20 0-21.76-13.66-20-14.11-20zm-243.22 23.76a8.63 8.63 0 0 0-3.29 7.29c0 4.78 2.08 6.05 3.29 7.05 4.7 3.7 15.07 2.12 20.93.95v-16.94c-5.32-1.07-16.73-1.96-20.93 1.65zM640 232c0 87.58-80 154.39-165.36 136.43-18.37 33-70.73 70.75-132.2 41.63-41.16 96.05-177.89 92.18-213.81-5.17C8.91 428.78-50.19 266.52 53.36 205.61 18.61 126.18 76 32 167.67 32a124.24 124.24 0 0 1 98.56 48.7c20.7-21.4 49.4-34.81 81.15-34.81 42.34 0 79 23.52 98.8 58.57C539 63.78 640 132.69 640 232zm-519.55 31.8c0-11.76-11.69-15.17-17.87-17.17-5.27-2.11-13.41-3.51-13.41-8.94 0-9.46 17-6.66 25.17-2.12 0 0 1.17.71 1.64-.47.24-.7 2.36-6.58 2.59-7.29a1.13 1.13 0 0 0-.7-1.41c-12.33-7.63-40.7-8.51-40.7 12.7 0 12.46 11.49 15.44 17.88 17.17 4.72 1.58 13.17 3 13.17 8.7 0 4-3.53 7.06-9.17 7.06a31.76 31.76 0 0 1-19-6.35c-.47-.23-1.42-.71-1.65.71l-2.4 7.47c-.47.94.23 1.18.23 1.41 1.75 1.4 10.3 6.59 22.82 6.59 13.17 0 21.4-7.06 21.4-18.11zm32-42.58c-10.13 0-18.66 3.17-21.4 5.18a1 1 0 0 0-.24 1.41l2.59 7.06a1 1 0 0 0 1.18.7c.65 0 6.8-4 16.93-4 4 0 7.06.71 9.18 2.36 3.6 2.8 3.06 8.29 3.06 10.58-4.79-.3-19.11-3.44-29.41 3.76a16.92 16.92 0 0 0-7.34 14.54c0 5.9 1.51 10.4 6.59 14.35 12.24 8.16 36.28 2 38.1 1.41 1.58-.32 3.53-.66 3.53-1.88v-33.88c.04-4.61.32-21.64-22.78-21.64zM199 200.24a1.11 1.11 0 0 0-1.18-1.18H188a1.11 1.11 0 0 0-1.17 1.18v79a1.11 1.11 0 0 0 1.17 1.18h9.88a1.11 1.11 0 0 0 1.18-1.18zm55.75 28.93c-2.1-2.31-6.79-7.53-17.65-7.53-3.51 0-14.16.23-20.7 8.94-6.35 7.63-6.58 18.11-6.58 21.41 0 3.12.15 14.26 7.06 21.17 2.64 2.91 9.06 8.23 22.81 8.23 10.82 0 16.47-2.35 18.58-3.76.47-.24.71-.71.24-1.88l-2.35-6.83a1.26 1.26 0 0 0-1.41-.7c-2.59.94-6.35 2.82-15.29 2.82-17.42 0-16.85-14.74-16.94-16.7h37.17a1.23 1.23 0 0 0 1.17-.94c-.29 0 2.07-14.7-6.09-24.23zm36.69 52.69c13.17 0 21.41-7.06 21.41-18.11 0-11.76-11.7-15.17-17.88-17.17-4.14-1.66-13.41-3.38-13.41-8.94 0-3.76 3.29-6.35 8.47-6.35a38.11 38.11 0 0 1 16.7 4.23s1.18.71 1.65-.47c.23-.7 2.35-6.58 2.58-7.29a1.13 1.13 0 0 0-.7-1.41c-7.91-4.9-16.74-4.94-20.23-4.94-12 0-20.46 7.29-20.46 17.64 0 12.46 11.48 15.44 17.87 17.17 6.11 2 13.17 3.26 13.17 8.7 0 4-3.52 7.06-9.17 7.06a31.8 31.8 0 0 1-19-6.35 1 1 0 0 0-1.65.71l-2.35 7.52c-.47.94.23 1.18.23 1.41 1.72 1.4 10.33 6.59 22.79 6.59zM357.09 224c0-.71-.24-1.18-1.18-1.18h-11.76c0-.14.94-8.94 4.47-12.47 4.16-4.15 11.76-1.64 12-1.64 1.17.47 1.41 0 1.64-.47l2.83-7.77c.7-.94 0-1.17-.24-1.41-5.09-2-17.35-2.87-24.46 4.24-5.48 5.48-7 13.92-8 19.52h-8.47a1.28 1.28 0 0 0-1.17 1.18l-1.42 7.76c0 .7.24 1.17 1.18 1.17h8.23c-8.51 47.9-8.75 50.21-10.35 55.52-1.08 3.62-3.29 6.9-5.88 7.76-.09 0-3.88 1.68-9.64-.24 0 0-.94-.47-1.41.71-.24.71-2.59 6.82-2.83 7.53s0 1.41.47 1.41c5.11 2 13 1.77 17.88 0 6.28-2.28 9.72-7.89 11.53-12.94 2.75-7.71 2.81-9.79 11.76-59.74h12.23a1.29 1.29 0 0 0 1.18-1.18zm53.39 16c-.56-1.68-5.1-18.11-25.17-18.11-15.25 0-23 10-25.16 18.11-1 3-3.18 14 0 23.52.09.3 4.41 18.12 25.16 18.12 14.95 0 22.9-9.61 25.17-18.12 3.21-9.61 1.01-20.52 0-23.52zm45.4-16.7c-5-1.65-16.62-1.9-22.11 5.41v-4.47a1.11 1.11 0 0 0-1.18-1.17h-9.4a1.11 1.11 0 0 0-1.18 1.17v55.28a1.12 1.12 0 0 0 1.18 1.18h9.64a1.12 1.12 0 0 0 1.18-1.18v-27.77c0-2.91.05-11.37 4.46-15.05 4.9-4.9 12-3.36 13.41-3.06a1.57 1.57 0 0 0 1.41-.94 74 74 0 0 0 3.06-8 1.16 1.16 0 0 0-.47-1.41zm46.81 54.1l-2.12-7.29c-.47-1.18-1.41-.71-1.41-.71-4.23 1.82-10.15 1.89-11.29 1.89-4.64 0-17.17-1.13-17.17-19.76 0-6.23 1.85-19.76 16.47-19.76a34.85 34.85 0 0 1 11.52 1.65s.94.47 1.18-.71c.94-2.59 1.64-4.47 2.59-7.53.23-.94-.47-1.17-.71-1.17-11.59-3.87-22.34-2.53-27.76 0-1.59.74-16.23 6.49-16.23 27.52 0 2.9-.58 30.11 28.94 30.11a44.45 44.45 0 0 0 15.52-2.83 1.3 1.3 0 0 0 .47-1.42zm53.87-39.52c-.8-3-5.37-16.23-22.35-16.23-16 0-23.52 10.11-25.64 18.59a38.58 38.58 0 0 0-1.65 11.76c0 25.87 18.84 29.4 29.88 29.4 10.82 0 16.46-2.35 18.58-3.76.47-.24.71-.71.24-1.88l-2.36-6.83a1.26 1.26 0 0 0-1.41-.7c-2.59.94-6.35 2.82-15.29 2.82-17.42 0-16.85-14.74-16.93-16.7h37.16a1.25 1.25 0 0 0 1.18-.94c-.24-.01.94-7.07-1.41-15.54zm-23.29-6.35c-10.33 0-13 9-13.64 14.12H546c-.88-11.92-7.62-14.13-12.73-14.13z"], - "octopus-deploy": [512, 512, [], "e082", "M455.6,349.2c-45.891-39.09-36.67-77.877-16.095-128.11C475.16,134.04,415.967,34.14,329.93,8.3,237.04-19.6,134.252,24.341,99.677,117.147a180.862,180.862,0,0,0-10.988,73.544c1.733,29.543,14.717,52.97,24.09,80.3,17.2,50.161-28.1,92.743-66.662,117.582-46.806,30.2-36.319,39.857-8.428,41.858,23.378,1.68,44.478-4.548,65.265-15.045,9.2-4.647,40.687-18.931,45.13-28.588C135.9,413.388,111.122,459.5,126.621,488.9c19.1,36.229,67.112-31.77,76.709-45.812,8.591-12.572,42.963-81.279,63.627-46.926,18.865,31.361,8.6,76.391,35.738,104.622,32.854,34.2,51.155-18.312,51.412-44.221.163-16.411-6.1-95.852,29.9-59.944C405.428,418,436.912,467.8,472.568,463.642c38.736-4.516-22.123-67.967-28.262-78.695,5.393,4.279,53.665,34.128,53.818,9.52C498.234,375.678,468.039,359.8,455.6,349.2Z"], - "medapps": [320, 512, [], "f3c6", "M118.3 238.4c3.5-12.5 6.9-33.6 13.2-33.6 8.3 1.8 9.6 23.4 18.6 36.6 4.6-23.5 5.3-85.1 14.1-86.7 9-.7 19.7 66.5 22 77.5 9.9 4.1 48.9 6.6 48.9 6.6 1.9 7.3-24 7.6-40 7.8-4.6 14.8-5.4 27.7-11.4 28-4.7.2-8.2-28.8-17.5-49.6l-9.4 65.5c-4.4 13-15.5-22.5-21.9-39.3-3.3-.1-62.4-1.6-47.6-7.8l31-5zM228 448c21.2 0 21.2-32 0-32H92c-21.2 0-21.2 32 0 32h136zm-24 64c21.2 0 21.2-32 0-32h-88c-21.2 0-21.2 32 0 32h88zm34.2-141.5c3.2-18.9 5.2-36.4 11.9-48.8 7.9-14.7 16.1-28.1 24-41 24.6-40.4 45.9-75.2 45.9-125.5C320 69.6 248.2 0 160 0S0 69.6 0 155.2c0 50.2 21.3 85.1 45.9 125.5 7.9 12.9 16 26.3 24 41 6.7 12.5 8.7 29.8 11.9 48.9 3.5 21 36.1 15.7 32.6-5.1-3.6-21.7-5.6-40.7-15.3-58.6C66.5 246.5 33 211.3 33 155.2 33 87.3 90 32 160 32s127 55.3 127 123.2c0 56.1-33.5 91.3-66.1 151.6-9.7 18-11.7 37.4-15.3 58.6-3.4 20.6 29 26.4 32.6 5.1z"], - "ns8": [640, 512, [], "f3d5", "M104.324,269.172h26.067V242.994H104.324Zm52.466-26.178-.055-26.178v-.941a39.325,39.325,0,0,0-78.644.941v.166h26.4v-.166a12.98,12.98,0,0,1,25.956,0v26.178Zm52.356,25.846a91.1,91.1,0,0,1-91.1,91.1h-.609a91.1,91.1,0,0,1-91.1-91.1H0v.166A117.33,117.33,0,0,0,117.44,386.28h.775A117.331,117.331,0,0,0,235.49,268.84V242.828H209.146Zm-157.233,0a65.362,65.362,0,0,0,130.723,0H156.292a39.023,39.023,0,0,1-78.035,0V242.883H51.968v-26.62A65.42,65.42,0,0,1,182.8,217.48v25.293h26.344V217.48a91.761,91.761,0,0,0-183.522,0v25.4H51.913Zm418.4-71.173c13.67,0,24.573,6.642,30.052,18.264l.719,1.549,23.245-11.511-.609-1.439c-8.025-19.26-28.5-31.27-53.407-31.27-23.134,0-43.611,11.4-50.972,28.447-.123,26.876-.158,23.9,0,24.85,4.7,11.013,14.555,19.37,28.668,24.241a102.033,102.033,0,0,0,19.813,3.984c5.479.72,10.626,1.384,15.829,3.1,6.364,2.1,10.46,5.257,12.84,9.851v9.851c-3.708,7.527-13.781,12.342-25.791,12.342-14.334,0-25.956-6.918-31.933-19.039l-.72-1.494L415.026,280.9l.553,1.439c7.915,19.426,29.609,32.044,55.289,32.044,23.632,0,44.608-11.4,52.3-28.447l.166-25.9-.166-.664c-4.87-11.014-15.219-19.647-28.944-24.241-7.693-2.712-14.335-3.6-20.7-4.427a83.777,83.777,0,0,1-14.832-2.878c-6.31-1.937-10.4-5.092-12.619-9.63v-8.412C449.45,202.427,458.969,197.667,470.315,197.667ZM287.568,311.344h26.067v-68.4H287.568Zm352.266-53.3c-2.933-6.254-8.3-12.01-15.441-16.714A37.99,37.99,0,0,0,637.4,226l.166-25.347-.166-.664C630.038,184,610.667,173.26,589.25,173.26S548.461,184,541.1,199.992l-.166,25.347.166.664a39.643,39.643,0,0,0,13.006,15.331c-7.2,4.7-12.508,10.46-15.441,16.714l-.166,28.889.166.72c7.582,15.994,27.893,26.731,50.585,26.731s43.057-10.737,50.584-26.731l.166-28.89Zm-73.22-50.806c3.6-6.31,12.563-10.516,22.58-10.516s19.038,4.206,22.636,10.516v13.725c-3.542,6.2-12.563,10.349-22.636,10.349s-19.094-4.15-22.58-10.349Zm47.319,72.169c-3.764,6.641-13.338,10.9-24.683,10.9-11.125,0-20.976-4.372-24.684-10.9V263.25c3.708-6.309,13.5-10.515,24.684-10.515,11.345,0,20.919,4.15,24.683,10.515ZM376.4,265.962l-59.827-89.713h-29v40.623h26.51v.387l62.539,94.085H402.3V176.249H376.4Z"], - "pinterest-p": [384, 512, [], "f231", "M204 6.5C101.4 6.5 0 74.9 0 185.6 0 256 39.6 296 63.6 296c9.9 0 15.6-27.6 15.6-35.4 0-9.3-23.7-29.1-23.7-67.8 0-80.4 61.2-137.4 140.4-137.4 68.1 0 118.5 38.7 118.5 109.8 0 53.1-21.3 152.7-90.3 152.7-24.9 0-46.2-18-46.2-43.8 0-37.8 26.4-74.4 26.4-113.4 0-66.2-93.9-54.2-93.9 25.8 0 16.8 2.1 35.4 9.6 50.7-13.8 59.4-42 147.9-42 209.1 0 18.9 2.7 37.5 4.5 56.4 3.4 3.8 1.7 3.4 6.9 1.5 50.4-69 48.6-82.5 71.4-172.8 12.3 23.4 44.1 36 69.3 36 106.2 0 153.9-103.5 153.9-196.8C384 71.3 298.2 6.5 204 6.5z"], - "apper": [640, 512, [], "f371", "M42.1 239.1c22.2 0 29 2.8 33.5 14.6h.8v-22.9c0-11.3-4.8-15.4-17.9-15.4-11.3 0-14.4 2.5-15.1 12.8H4.8c.3-13.9 1.5-19.1 5.8-24.4C17.9 195 29.5 192 56.7 192c33 0 47.1 5 53.9 18.9 2 4.3 4 15.6 4 23.7v76.3H76.3l1.3-19.1h-1c-5.3 15.6-13.6 20.4-35.5 20.4-30.3 0-41.1-10.1-41.1-37.3 0-25.2 12.3-35.8 42.1-35.8zm17.1 48.1c13.1 0 16.9-3 16.9-13.4 0-9.1-4.3-11.6-19.6-11.6-13.1 0-17.9 3-17.9 12.1-.1 10.4 3.7 12.9 20.6 12.9zm77.8-94.9h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.2 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3H137v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm57.9-60.7h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.3 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3h-39.5v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm53.8-3.8c0-25.4 3.3-37.8 12.3-45.8 8.8-8.1 22.2-11.3 45.1-11.3 42.8 0 55.7 12.8 55.7 55.7v11.1h-75.3c-.3 2-.3 4-.3 4.8 0 16.9 4.5 21.9 20.1 21.9 13.9 0 17.9-3 17.9-13.9h37.5v2.3c0 9.8-2.5 18.9-6.8 24.7-7.3 9.8-19.6 13.6-44.3 13.6-27.5 0-41.6-3.3-50.6-12.3-8.5-8.5-11.3-21.3-11.3-50.8zm76.4-11.6c-.3-1.8-.3-3.3-.3-3.8 0-12.3-3.3-14.6-19.6-14.6-14.4 0-17.1 3-18.1 15.1l-.3 3.3h38.3zm55.6-45.3h38.3l-1.8 19.9h.7c6.8-14.9 14.4-20.2 29.7-20.2 10.8 0 19.1 3.3 23.4 9.3 5.3 7.3 6.8 14.4 6.8 34 0 1.5 0 5 .2 9.3h-35c.3-1.8.3-3.3.3-4 0-15.4-2-19.4-10.3-19.4-6.3 0-10.8 3.3-13.1 9.3-1 3-1 4.3-1 12.3v68h-38.3V192.3z"], - "fort-awesome": [512, 512, [], "f286", "M489.2 287.9h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6V146.2c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-6-8-4.6-11.7-4.6v-38c8.3-2 17.1-3.4 25.7-3.4 10.9 0 20.9 4.3 31.4 4.3 4.6 0 27.7-1.1 27.7-8v-60c0-2.6-2-4.6-4.6-4.6-5.1 0-15.1 4.3-24 4.3-9.7 0-20.9-4.3-32.6-4.3-8 0-16 1.1-23.7 2.9v-4.9c5.4-2.6 9.1-8.3 9.1-14.3 0-20.7-31.4-20.8-31.4 0 0 6 3.7 11.7 9.1 14.3v111.7c-3.7 0-11.7-1.4-11.7 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32H128v-32c0-2.6-2-4.6-4.6-4.6H96c-2.6 0-4.6 2-4.6 4.6v178.3H54.8v-32c0-2.6-2-4.6-4.6-4.6H22.8c-2.6 0-4.6 2-4.6 4.6V512h182.9v-96c0-72.6 109.7-72.6 109.7 0v96h182.9V292.5c.1-2.6-1.9-4.6-4.5-4.6zm-288.1-4.5c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64zm146.4 0c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64z"], - "waze": [512, 512, [], "f83f", "M502.17 201.67C516.69 287.53 471.23 369.59 389 409.8c13 34.1-12.4 70.2-48.32 70.2a51.68 51.68 0 0 1-51.57-49c-6.44.19-64.2 0-76.33-.64A51.69 51.69 0 0 1 159 479.92c-33.86-1.36-57.95-34.84-47-67.92-37.21-13.11-72.54-34.87-99.62-70.8-13-17.28-.48-41.8 20.84-41.8 46.31 0 32.22-54.17 43.15-110.26C94.8 95.2 193.12 32 288.09 32c102.48 0 197.15 70.67 214.08 169.67zM373.51 388.28c42-19.18 81.33-56.71 96.29-102.14 40.48-123.09-64.15-228-181.71-228-83.45 0-170.32 55.42-186.07 136-9.53 48.91 5 131.35-68.75 131.35C58.21 358.6 91.6 378.11 127 389.54c24.66-21.8 63.87-15.47 79.83 14.34 14.22 1 79.19 1.18 87.9.82a51.69 51.69 0 0 1 78.78-16.42zM205.12 187.13c0-34.74 50.84-34.75 50.84 0s-50.84 34.74-50.84 0zm116.57 0c0-34.74 50.86-34.75 50.86 0s-50.86 34.75-50.86 0zm-122.61 70.69c-3.44-16.94 22.18-22.18 25.62-5.21l.06.28c4.14 21.42 29.85 44 64.12 43.07 35.68-.94 59.25-22.21 64.11-42.77 4.46-16.05 28.6-10.36 25.47 6-5.23 22.18-31.21 62-91.46 62.9-42.55 0-80.88-27.84-87.9-64.25z"], - "bluesky": [512, 512, [], "e671", "M111.8 62.2C170.2 105.9 233 194.7 256 242.4c23-47.6 85.8-136.4 144.2-180.2c42.1-31.6 110.3-56 110.3 21.8c0 15.5-8.9 130.5-14.1 149.2C478.2 298 412 314.6 353.1 304.5c102.9 17.5 129.1 75.5 72.5 133.5c-107.4 110.2-154.3-27.6-166.3-62.9l0 0c-1.7-4.9-2.6-7.8-3.3-7.8s-1.6 3-3.3 7.8l0 0c-12 35.3-59 173.1-166.3 62.9c-56.5-58-30.4-116 72.5-133.5C100 314.6 33.8 298 15.7 233.1C10.4 214.4 1.5 99.4 1.5 83.9c0-77.8 68.2-53.4 110.3-21.8z"], - "cc-jcb": [576, 512, [], "f24b", "M431.5 244.3V212c41.2 0 38.5.2 38.5.2 7.3 1.3 13.3 7.3 13.3 16 0 8.8-6 14.5-13.3 15.8-1.2.4-3.3.3-38.5.3zm42.8 20.2c-2.8-.7-3.3-.5-42.8-.5v35c39.6 0 40 .2 42.8-.5 7.5-1.5 13.5-8 13.5-17 0-8.7-6-15.5-13.5-17zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM182 192.3h-57c0 67.1 10.7 109.7-35.8 109.7-19.5 0-38.8-5.7-57.2-14.8v28c30 8.3 68 8.3 68 8.3 97.9 0 82-47.7 82-131.2zm178.5 4.5c-63.4-16-165-14.9-165 59.3 0 77.1 108.2 73.6 165 59.2V287C312.9 311.7 253 309 253 256s59.8-55.6 107.5-31.2v-28zM544 286.5c0-18.5-16.5-30.5-38-32v-.8c19.5-2.7 30.3-15.5 30.3-30.2 0-19-15.7-30-37-31 0 0 6.3-.3-120.3-.3v127.5h122.7c24.3.1 42.3-12.9 42.3-33.2z"], - "snapchat": [512, 512, [62124, "snapchat-ghost"], "f2ab", "M496.926,366.6c-3.373-9.176-9.8-14.086-17.112-18.153-1.376-.806-2.641-1.451-3.72-1.947-2.182-1.128-4.414-2.22-6.634-3.373-22.8-12.09-40.609-27.341-52.959-45.42a102.889,102.889,0,0,1-9.089-16.12c-1.054-3.013-1-4.724-.248-6.287a10.221,10.221,0,0,1,2.914-3.038c3.918-2.591,7.96-5.22,10.7-6.993,4.885-3.162,8.754-5.667,11.246-7.44,9.362-6.547,15.909-13.5,20-21.278a42.371,42.371,0,0,0,2.1-35.191c-6.2-16.318-21.613-26.449-40.287-26.449a55.543,55.543,0,0,0-11.718,1.24c-1.029.224-2.059.459-3.063.72.174-11.16-.074-22.94-1.066-34.534-3.522-40.758-17.794-62.123-32.674-79.16A130.167,130.167,0,0,0,332.1,36.443C309.515,23.547,283.91,17,256,17S202.6,23.547,180,36.443a129.735,129.735,0,0,0-33.281,26.783c-14.88,17.038-29.152,38.44-32.673,79.161-.992,11.594-1.24,23.435-1.079,34.533-1-.26-2.021-.5-3.051-.719a55.461,55.461,0,0,0-11.717-1.24c-18.687,0-34.125,10.131-40.3,26.449a42.423,42.423,0,0,0,2.046,35.228c4.105,7.774,10.652,14.731,20.014,21.278,2.48,1.736,6.361,4.24,11.246,7.44,2.641,1.711,6.5,4.216,10.28,6.72a11.054,11.054,0,0,1,3.3,3.311c.794,1.624.818,3.373-.36,6.6a102.02,102.02,0,0,1-8.94,15.785c-12.077,17.669-29.363,32.648-51.434,44.639C32.355,348.608,20.2,352.75,15.069,366.7c-3.868,10.528-1.339,22.506,8.494,32.6a49.137,49.137,0,0,0,12.4,9.387,134.337,134.337,0,0,0,30.342,12.139,20.024,20.024,0,0,1,6.126,2.741c3.583,3.137,3.075,7.861,7.849,14.78a34.468,34.468,0,0,0,8.977,9.127c10.019,6.919,21.278,7.353,33.207,7.811,10.776.41,22.989.881,36.939,5.481,5.778,1.91,11.78,5.605,18.736,9.92C194.842,480.951,217.707,495,255.973,495s61.292-14.123,78.118-24.428c6.907-4.24,12.872-7.9,18.489-9.758,13.949-4.613,26.163-5.072,36.939-5.481,11.928-.459,23.187-.893,33.206-7.812a34.584,34.584,0,0,0,10.218-11.16c3.434-5.84,3.348-9.919,6.572-12.771a18.971,18.971,0,0,1,5.753-2.629A134.893,134.893,0,0,0,476.02,408.71a48.344,48.344,0,0,0,13.019-10.193l.124-.149C498.389,388.5,500.708,376.867,496.926,366.6Zm-34.013,18.277c-20.745,11.458-34.533,10.23-45.259,17.137-9.114,5.865-3.72,18.513-10.342,23.076-8.134,5.617-32.177-.4-63.239,9.858-25.618,8.469-41.961,32.822-88.038,32.822s-62.036-24.3-88.076-32.884c-31-10.255-55.092-4.241-63.239-9.858-6.609-4.563-1.24-17.211-10.341-23.076-10.739-6.907-24.527-5.679-45.26-17.075-13.206-7.291-5.716-11.8-1.314-13.937,75.143-36.381,87.133-92.552,87.666-96.719.645-5.046,1.364-9.014-4.191-14.148-5.369-4.96-29.189-19.7-35.8-24.316-10.937-7.638-15.748-15.264-12.2-24.638,2.48-6.485,8.531-8.928,14.879-8.928a27.643,27.643,0,0,1,5.965.67c12,2.6,23.659,8.617,30.392,10.242a10.749,10.749,0,0,0,2.48.335c3.6,0,4.86-1.811,4.612-5.927-.768-13.132-2.628-38.725-.558-62.644,2.84-32.909,13.442-49.215,26.04-63.636,6.051-6.932,34.484-36.976,88.857-36.976s82.88,29.92,88.931,36.827c12.611,14.421,23.225,30.727,26.04,63.636,2.071,23.919.285,49.525-.558,62.644-.285,4.327,1.017,5.927,4.613,5.927a10.648,10.648,0,0,0,2.48-.335c6.745-1.624,18.4-7.638,30.4-10.242a27.641,27.641,0,0,1,5.964-.67c6.386,0,12.4,2.48,14.88,8.928,3.546,9.374-1.24,17-12.189,24.639-6.609,4.612-30.429,19.343-35.8,24.315-5.568,5.134-4.836,9.1-4.191,14.149.533,4.228,12.511,60.4,87.666,96.718C468.629,373.011,476.119,377.524,462.913,384.877Z"], - "fantasy-flight-games": [512, 512, [], "f6dc", "M256 32.86L32.86 256 256 479.14 479.14 256 256 32.86zM88.34 255.83c1.96-2 11.92-12.3 96.49-97.48 41.45-41.75 86.19-43.77 119.77-18.69 24.63 18.4 62.06 58.9 62.15 59 .68.74 1.07 2.86.58 3.38-11.27 11.84-22.68 23.54-33.5 34.69-34.21-32.31-40.52-38.24-48.51-43.95-17.77-12.69-41.4-10.13-56.98 5.1-2.17 2.13-1.79 3.43.12 5.35 2.94 2.95 28.1 28.33 35.09 35.78-11.95 11.6-23.66 22.97-35.69 34.66-12.02-12.54-24.48-25.53-36.54-38.11-21.39 21.09-41.69 41.11-61.85 60.99zm234.82 101.6c-35.49 35.43-78.09 38.14-106.99 20.47-22.08-13.5-39.38-32.08-72.93-66.84 12.05-12.37 23.79-24.42 35.37-36.31 33.02 31.91 37.06 36.01 44.68 42.09 18.48 14.74 42.52 13.67 59.32-1.8 3.68-3.39 3.69-3.64.14-7.24-10.59-10.73-21.19-21.44-31.77-32.18-1.32-1.34-3.03-2.48-.8-4.69 10.79-10.71 21.48-21.52 32.21-32.29.26-.26.65-.38 1.91-1.07 12.37 12.87 24.92 25.92 37.25 38.75 21.01-20.73 41.24-40.68 61.25-60.42 13.68 13.4 27.13 26.58 40.86 40.03-20.17 20.86-81.68 82.71-100.5 101.5zM256 0L0 256l256 256 256-256L256 0zM16 256L256 16l240 240-240 240L16 256z"], - "rust": [512, 512, [], "e07a", "M508.52,249.75,486.7,236.24c-.17-2-.34-3.93-.55-5.88l18.72-17.5a7.35,7.35,0,0,0-2.44-12.25l-24-9c-.54-1.88-1.08-3.78-1.67-5.64l15-20.83a7.35,7.35,0,0,0-4.79-11.54l-25.42-4.15c-.9-1.73-1.79-3.45-2.73-5.15l10.68-23.42a7.35,7.35,0,0,0-6.95-10.39l-25.82.91q-1.79-2.22-3.61-4.4L439,81.84A7.36,7.36,0,0,0,430.16,73L405,78.93q-2.17-1.83-4.4-3.61l.91-25.82a7.35,7.35,0,0,0-10.39-7L367.7,53.23c-1.7-.94-3.43-1.84-5.15-2.73L358.4,25.08a7.35,7.35,0,0,0-11.54-4.79L326,35.26c-1.86-.59-3.75-1.13-5.64-1.67l-9-24a7.35,7.35,0,0,0-12.25-2.44l-17.5,18.72c-1.95-.21-3.91-.38-5.88-.55L262.25,3.48a7.35,7.35,0,0,0-12.5,0L236.24,25.3c-2,.17-3.93.34-5.88.55L212.86,7.13a7.35,7.35,0,0,0-12.25,2.44l-9,24c-1.89.55-3.79,1.08-5.66,1.68l-20.82-15a7.35,7.35,0,0,0-11.54,4.79l-4.15,25.41c-1.73.9-3.45,1.79-5.16,2.73L120.88,42.55a7.35,7.35,0,0,0-10.39,7l.92,25.81c-1.49,1.19-3,2.39-4.42,3.61L81.84,73A7.36,7.36,0,0,0,73,81.84L78.93,107c-1.23,1.45-2.43,2.93-3.62,4.41l-25.81-.91a7.42,7.42,0,0,0-6.37,3.26,7.35,7.35,0,0,0-.57,7.13l10.66,23.41c-.94,1.7-1.83,3.43-2.73,5.16L25.08,153.6a7.35,7.35,0,0,0-4.79,11.54l15,20.82c-.59,1.87-1.13,3.77-1.68,5.66l-24,9a7.35,7.35,0,0,0-2.44,12.25l18.72,17.5c-.21,1.95-.38,3.91-.55,5.88L3.48,249.75a7.35,7.35,0,0,0,0,12.5L25.3,275.76c.17,2,.34,3.92.55,5.87L7.13,299.13a7.35,7.35,0,0,0,2.44,12.25l24,9c.55,1.89,1.08,3.78,1.68,5.65l-15,20.83a7.35,7.35,0,0,0,4.79,11.54l25.42,4.15c.9,1.72,1.79,3.45,2.73,5.14L42.56,391.12a7.35,7.35,0,0,0,.57,7.13,7.13,7.13,0,0,0,6.37,3.26l25.83-.91q1.77,2.22,3.6,4.4L73,430.16A7.36,7.36,0,0,0,81.84,439L107,433.07q2.18,1.83,4.41,3.61l-.92,25.82a7.35,7.35,0,0,0,10.39,6.95l23.43-10.68c1.69.94,3.42,1.83,5.14,2.73l4.15,25.42a7.34,7.34,0,0,0,11.54,4.78l20.83-15c1.86.6,3.76,1.13,5.65,1.68l9,24a7.36,7.36,0,0,0,12.25,2.44l17.5-18.72c1.95.21,3.92.38,5.88.55l13.51,21.82a7.35,7.35,0,0,0,12.5,0l13.51-21.82c2-.17,3.93-.34,5.88-.56l17.5,18.73a7.36,7.36,0,0,0,12.25-2.44l9-24c1.89-.55,3.78-1.08,5.65-1.68l20.82,15a7.34,7.34,0,0,0,11.54-4.78l4.15-25.42c1.72-.9,3.45-1.79,5.15-2.73l23.42,10.68a7.35,7.35,0,0,0,10.39-6.95l-.91-25.82q2.22-1.79,4.4-3.61L430.16,439a7.36,7.36,0,0,0,8.84-8.84L433.07,405q1.83-2.17,3.61-4.4l25.82.91a7.23,7.23,0,0,0,6.37-3.26,7.35,7.35,0,0,0,.58-7.13L458.77,367.7c.94-1.7,1.83-3.43,2.73-5.15l25.42-4.15a7.35,7.35,0,0,0,4.79-11.54l-15-20.83c.59-1.87,1.13-3.76,1.67-5.65l24-9a7.35,7.35,0,0,0,2.44-12.25l-18.72-17.5c.21-1.95.38-3.91.55-5.87l21.82-13.51a7.35,7.35,0,0,0,0-12.5Zm-151,129.08A13.91,13.91,0,0,0,341,389.51l-7.64,35.67A187.51,187.51,0,0,1,177,424.44l-7.64-35.66a13.87,13.87,0,0,0-16.46-10.68l-31.51,6.76a187.38,187.38,0,0,1-16.26-19.21H258.3c1.72,0,2.89-.29,2.89-1.91V309.55c0-1.57-1.17-1.91-2.89-1.91H213.47l.05-34.35H262c4.41,0,23.66,1.28,29.79,25.87,1.91,7.55,6.17,32.14,9.06,40,2.89,8.82,14.6,26.46,27.1,26.46H407a187.3,187.3,0,0,1-17.34,20.09Zm25.77,34.49A15.24,15.24,0,1,1,368,398.08h.44A15.23,15.23,0,0,1,383.24,413.32Zm-225.62-.68a15.24,15.24,0,1,1-15.25-15.25h.45A15.25,15.25,0,0,1,157.62,412.64ZM69.57,234.15l32.83-14.6a13.88,13.88,0,0,0,7.06-18.33L102.69,186h26.56V305.73H75.65A187.65,187.65,0,0,1,69.57,234.15ZM58.31,198.09a15.24,15.24,0,0,1,15.23-15.25H74a15.24,15.24,0,1,1-15.67,15.24Zm155.16,24.49.05-35.32h63.26c3.28,0,23.07,3.77,23.07,18.62,0,12.29-15.19,16.7-27.68,16.7ZM399,306.71c-9.8,1.13-20.63-4.12-22-10.09-5.78-32.49-15.39-39.4-30.57-51.4,18.86-11.95,38.46-29.64,38.46-53.26,0-25.52-17.49-41.59-29.4-49.48-16.76-11-35.28-13.23-40.27-13.23H116.32A187.49,187.49,0,0,1,221.21,70.06l23.47,24.6a13.82,13.82,0,0,0,19.6.44l26.26-25a187.51,187.51,0,0,1,128.37,91.43l-18,40.57A14,14,0,0,0,408,220.43l34.59,15.33a187.12,187.12,0,0,1,.4,32.54H423.71c-1.91,0-2.69,1.27-2.69,3.13v8.82C421,301,409.31,305.58,399,306.71ZM240,60.21A15.24,15.24,0,0,1,255.21,45h.45A15.24,15.24,0,1,1,240,60.21ZM436.84,214a15.24,15.24,0,1,1,0-30.48h.44a15.24,15.24,0,0,1-.44,30.48Z"], - "wix": [640, 512, [], "f5cf", "M393.38 131.69c0 13.03 2.08 32.69-28.68 43.83-9.52 3.45-15.95 9.66-15.95 9.66 0-31 4.72-42.22 17.4-48.86 9.75-5.11 27.23-4.63 27.23-4.63zm-115.8 35.54l-34.24 132.66-28.48-108.57c-7.69-31.99-20.81-48.53-48.43-48.53-27.37 0-40.66 16.18-48.43 48.53L89.52 299.89 55.28 167.23C49.73 140.51 23.86 128.96 0 131.96l65.57 247.93s21.63 1.56 32.46-3.96c14.22-7.25 20.98-12.84 29.59-46.57 7.67-30.07 29.11-118.41 31.12-124.7 4.76-14.94 11.09-13.81 15.4 0 1.97 6.3 23.45 94.63 31.12 124.7 8.6 33.73 15.37 39.32 29.59 46.57 10.82 5.52 32.46 3.96 32.46 3.96l65.57-247.93c-24.42-3.07-49.82 8.93-55.3 35.27zm115.78 5.21s-4.1 6.34-13.46 11.57c-6.01 3.36-11.78 5.64-17.97 8.61-15.14 7.26-13.18 13.95-13.18 35.2v152.07s16.55 2.09 27.37-3.43c13.93-7.1 17.13-13.95 17.26-44.78V181.41l-.02.01v-8.98zm163.44 84.08L640 132.78s-35.11-5.98-52.5 9.85c-13.3 12.1-24.41 29.55-54.18 72.47-.47.73-6.25 10.54-13.07 0-29.29-42.23-40.8-60.29-54.18-72.47-17.39-15.83-52.5-9.85-52.5-9.85l83.2 123.74-82.97 123.36s36.57 4.62 53.95-11.21c11.49-10.46 17.58-20.37 52.51-70.72 6.81-10.52 12.57-.77 13.07 0 29.4 42.38 39.23 58.06 53.14 70.72 17.39 15.83 53.32 11.21 53.32 11.21L556.8 256.52z"], - "square-behance": [448, 512, ["behance-square"], "f1b5", "M155.3 318.4c17.2 0 31.2-6.1 31.2-25.4c0-19.7-11.7-27.4-30.3-27.5h-46v52.9h45.1zm-5.4-129.6H110.3v44.8H153c15.1 0 25.8-6.6 25.8-22.9c0-17.7-13.7-21.9-28.9-21.9zm129.5 74.8h62.2c-1.7-18.5-11.3-29.7-30.5-29.7c-18.3 0-30.5 11.4-31.7 29.7zM384 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64zM349.5 185H271.7V166.1h77.8V185zM193.7 243.7c23.6 6.7 35 27.5 35 51.6c0 39-32.7 55.7-67.6 55.9H68v-192h90.5c32.9 0 61.4 9.3 61.4 47.5c0 19.3-9 28.8-26.2 37zm118.7-38.6c43.5 0 67.6 34.3 67.6 75.4c0 1.6-.1 3.3-.2 5c0 .8-.1 1.5-.1 2.2H279.5c0 22.2 11.7 35.3 34.1 35.3c11.6 0 26.5-6.2 30.2-18.1h33.7c-10.4 31.9-31.9 46.8-65.1 46.8c-43.8 0-71.1-29.7-71.1-73c0-41.8 28.7-73.6 71.1-73.6z"], - "supple": [640, 512, [], "f3f9", "M640 262.5c0 64.1-109 116.1-243.5 116.1-24.8 0-48.6-1.8-71.1-5 7.7.4 15.5.6 23.4.6 134.5 0 243.5-56.9 243.5-127.1 0-29.4-19.1-56.4-51.2-78 60 21.1 98.9 55.1 98.9 93.4zM47.7 227.9c-.1-70.2 108.8-127.3 243.3-127.6 7.9 0 15.6.2 23.3.5-22.5-3.2-46.3-4.9-71-4.9C108.8 96.3-.1 148.5 0 212.6c.1 38.3 39.1 72.3 99.3 93.3-32.3-21.5-51.5-48.6-51.6-78zm60.2 39.9s10.5 13.2 29.3 13.2c17.9 0 28.4-11.5 28.4-25.1 0-28-40.2-25.1-40.2-39.7 0-5.4 5.3-9.1 12.5-9.1 5.7 0 11.3 2.6 11.3 6.6v3.9h14.2v-7.9c0-12.1-15.4-16.8-25.4-16.8-16.5 0-28.5 10.2-28.5 24.1 0 26.6 40.2 25.4 40.2 39.9 0 6.6-5.8 10.1-12.3 10.1-11.9 0-20.7-10.1-20.7-10.1l-8.8 10.9zm120.8-73.6v54.4c0 11.3-7.1 17.8-17.8 17.8-10.7 0-17.8-6.5-17.8-17.7v-54.5h-15.8v55c0 18.9 13.4 31.9 33.7 31.9 20.1 0 33.4-13 33.4-31.9v-55h-15.7zm34.4 85.4h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.8-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5.1 14.7-14 14.7h-12.6zm57 43h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.7-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5 14.7-14 14.7h-12.6zm57.1 34.8c0 5.8 2.4 8.2 8.2 8.2h37.6c5.8 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-18.6c-1.7 0-2.6-1-2.6-2.6v-61.2c0-5.7-2.4-8.2-8.2-8.2H401v13.4h5.2c1.7 0 2.6 1 2.6 2.6v61.2zm63.4 0c0 5.8 2.4 8.2 8.2 8.2H519c5.7 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-19.7c-1.7 0-2.6-1-2.6-2.6v-20.3h27.7v-13.4H488v-22.4h19.2c1.7 0 2.6 1 2.6 2.6v5.2H524v-13c0-5.7-2.5-8.2-8.2-8.2h-51.6v13.4h7.8v63.9zm58.9-76v5.9h1.6v-5.9h2.7v-1.2h-7v1.2h2.7zm5.7-1.2v7.1h1.5v-5.7l2.3 5.7h1.3l2.3-5.7v5.7h1.5v-7.1h-2.3l-2.1 5.1-2.1-5.1h-2.4z"], - "webflow": [640, 512, [], "e65c", "M640 64L435.8 463.2H244l85.5-165.5h-3.8C255.1 389.3 149.9 449.5 0 463.2V300.1s95.9-5.7 152.3-64.9H0V64H171.1V204.8l3.8 0L244.9 64H374.3V203.9l3.8 0L450.7 64H640z"], - "rebel": [512, 512, [], "f1d0", "M256.5 504C117.2 504 9 387.8 13.2 249.9 16 170.7 56.4 97.7 129.7 49.5c.3 0 1.9-.6 1.1.8-5.8 5.5-111.3 129.8-14.1 226.4 49.8 49.5 90 2.5 90 2.5 38.5-50.1-.6-125.9-.6-125.9-10-24.9-45.7-40.1-45.7-40.1l28.8-31.8c24.4 10.5 43.2 38.7 43.2 38.7.8-29.6-21.9-61.4-21.9-61.4L255.1 8l44.3 50.1c-20.5 28.8-21.9 62.6-21.9 62.6 13.8-23 43.5-39.3 43.5-39.3l28.5 31.8c-27.4 8.9-45.4 39.9-45.4 39.9-15.8 28.5-27.1 89.4.6 127.3 32.4 44.6 87.7-2.8 87.7-2.8 102.7-91.9-10.5-225-10.5-225-6.1-5.5.8-2.8.8-2.8 50.1 36.5 114.6 84.4 116.2 204.8C500.9 400.2 399 504 256.5 504z"], - "css3": [512, 512, [], "f13c", "M480 32l-64 368-223.3 80L0 400l19.6-94.8h82l-8 40.6L210 390.2l134.1-44.4 18.8-97.1H29.5l16-82h333.7l10.5-52.7H56.3l16.3-82H480z"], - "staylinked": [440, 512, [], "f3f5", "M382.7 292.5l2.7 2.7-170-167.3c-3.5-3.5-9.7-3.7-13.8-.5L144.3 171c-4.2 3.2-4.6 8.7-1.1 12.2l68.1 64.3c3.6 3.5 9.9 3.7 14 .5l.1-.1c4.1-3.2 10.4-3 14 .5l84 81.3c3.6 3.5 3.2 9-.9 12.2l-93.2 74c-4.2 3.3-10.5 3.1-14.2-.4L63.2 268c-3.5-3.5-9.7-3.7-13.9-.5L3.5 302.4c-4.2 3.2-4.7 8.7-1.2 12.2L211 510.7s7.4 6.8 17.3-.8l198-163.9c4-3.2 4.4-8.7.7-12.2zm54.5-83.4L226.7 2.5c-1.5-1.2-8-5.5-16.3 1.1L3.6 165.7c-4.2 3.2-4.8 8.7-1.2 12.2l42.3 41.7 171.7 165.1c3.7 3.5 10.1 3.7 14.3.4l50.2-38.8-.3-.3 7.7-6c4.2-3.2 4.6-8.7.9-12.2l-57.1-54.4c-3.6-3.5-10-3.7-14.2-.5l-.1.1c-4.2 3.2-10.5 3.1-14.2-.4L109 180.8c-3.6-3.5-3.1-8.9 1.1-12.2l92.2-71.5c4.1-3.2 10.3-3 13.9.5l160.4 159c3.7 3.5 10 3.7 14.1.5l45.8-35.8c4.1-3.2 4.4-8.7.7-12.2z"], - "kaggle": [320, 512, [], "f5fa", "M304.2 501.5L158.4 320.3 298.2 185c2.6-2.7 1.7-10.5-5.3-10.5h-69.2c-3.5 0-7 1.8-10.5 5.3L80.9 313.5V7.5q0-7.5-7.5-7.5H21.5Q14 0 14 7.5v497q0 7.5 7.5 7.5h51.9q7.5 0 7.5-7.5v-109l30.8-29.3 110.5 140.6c3 3.5 6.5 5.3 10.5 5.3h66.9q5.25 0 6-3z"], - "space-awesome": [512, 512, [], "e5ac", "M96 256H128V512H0V352H32V320H64V288H96V256zM512 352V512H384V256H416V288H448V320H480V352H512zM320 64H352V448H320V416H192V448H160V64H192V32H224V0H288V32H320V64zM288 128H224V192H288V128z"], - "deviantart": [320, 512, [], "f1bd", "M320 93.2l-98.2 179.1 7.4 9.5H320v127.7H159.1l-13.5 9.2-43.7 84c-.3 0-8.6 8.6-9.2 9.2H0v-93.2l93.2-179.4-7.4-9.2H0V102.5h156l13.5-9.2 43.7-84c.3 0 8.6-8.6 9.2-9.2H320v93.1z"], - "cpanel": [640, 512, [], "f388", "M210.3 220.2c-5.6-24.8-26.9-41.2-51-41.2h-37c-7.1 0-12.5 4.5-14.3 10.9L73.1 320l24.7-.1c6.8 0 12.3-4.5 14.2-10.7l25.8-95.7h19.8c8.4 0 16.2 5.6 18.3 14.8 2.5 10.9-5.9 22.6-18.3 22.6h-10.3c-7 0-12.5 4.6-14.3 10.8l-6.4 23.8h32c37.2 0 58.3-36.2 51.7-65.3zm-156.5 28h18.6c6.9 0 12.4-4.4 14.3-10.9l6.2-23.6h-40C30 213.7 9 227.8 1.7 254.8-7 288.6 18.5 320 52 320h12.4l7.1-26.1c1.2-4.4-2.2-8.3-6.4-8.3H53.8c-24.7 0-24.9-37.4 0-37.4zm247.5-34.8h-77.9l-3.5 13.4c-2.4 9.6 4.5 18.5 14.2 18.5h57.5c4 0 2.4 4.3 2.1 5.3l-8.6 31.8c-.4 1.4-.9 5.3-5.5 5.3h-34.9c-5.3 0-5.3-7.9 0-7.9h21.6c6.8 0 12.3-4.6 14.2-10.8l3.5-13.2h-48.4c-39.2 0-43.6 63.8-.7 63.8l57.5.2c11.2 0 20.6-7.2 23.4-17.8l14-51.8c4.8-19.2-9.7-36.8-28.5-36.8zM633.1 179h-18.9c-4.9 0-9.2 3.2-10.4 7.9L568.2 320c20.7 0 39.8-13.8 44.9-34.5l26.5-98.2c1.2-4.3-2-8.3-6.5-8.3zm-236.3 34.7v.1h-48.3l-26.2 98c-1.2 4.4 2.2 8.3 6.4 8.3h18.9c4.8 0 9.2-3 10.4-7.8l17.2-64H395c12.5 0 21.4 11.8 18.1 23.4l-10.6 40c-1.2 4.3 1.9 8.3 6.4 8.3H428c4.6 0 9.1-2.9 10.3-7.8l8.8-33.1c9-33.1-15.9-65.4-50.3-65.4zm98.3 74.6c-3.6 0-6-3.4-5.1-6.7l8-30c.9-3.9 3.7-6 7.8-6h32.9c2.6 0 4.6 2.4 3.9 5.1l-.7 2.6c-.6 2-1.9 3-3.9 3h-21.6c-7 0-12.6 4.6-14.2 10.8l-3.5 13h53.4c10.5 0 20.3-6.6 23.2-17.6l3.2-12c4.9-19.1-9.3-36.8-28.3-36.8h-47.3c-17.9 0-33.8 12-38.6 29.6l-10.8 40c-5 17.7 8.3 36.7 28.3 36.7h66.7c6.8 0 12.3-4.5 14.2-10.7l5.7-21z"], - "goodreads-g": [384, 512, [], "f3a9", "M42.6 403.3h2.8c12.7 0 25.5 0 38.2.1 1.6 0 3.1-.4 3.6 2.1 7.1 34.9 30 54.6 62.9 63.9 26.9 7.6 54.1 7.8 81.3 1.8 33.8-7.4 56-28.3 68-60.4 8-21.5 10.7-43.8 11-66.5.1-5.8.3-47-.2-52.8l-.9-.3c-.8 1.5-1.7 2.9-2.5 4.4-22.1 43.1-61.3 67.4-105.4 69.1-103 4-169.4-57-172-176.2-.5-23.7 1.8-46.9 8.3-69.7C58.3 47.7 112.3.6 191.6 0c61.3-.4 101.5 38.7 116.2 70.3.5 1.1 1.3 2.3 2.4 1.9V10.6h44.3c0 280.3.1 332.2.1 332.2-.1 78.5-26.7 143.7-103 162.2-69.5 16.9-159 4.8-196-57.2-8-13.5-11.8-28.3-13-44.5zM188.9 36.5c-52.5-.5-108.5 40.7-115 133.8-4.1 59 14.8 122.2 71.5 148.6 27.6 12.9 74.3 15 108.3-8.7 47.6-33.2 62.7-97 54.8-154-9.7-71.1-47.8-120-119.6-119.7z"], - "square-git": [448, 512, ["git-square"], "f1d2", "M120.8 335.5c-5.9-.4-12.6-.8-20.2-1.3c-3.3 4.1-6.6 8.4-6.6 13.5c0 18.5 65.5 18.5 65.5-1.5c0-8.3-7.4-8.7-38.8-10.7zm7.8-117.9c-32.3 0-33.7 44.5-.7 44.5c32.5 0 31.7-44.5 .7-44.5zM384 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64zM243.9 172.2c-14.5 0-22.9-8.4-22.9-22.9c0-14.5 8.4-22.3 22.9-22.3c14.7 0 23.1 7.8 23.1 22.3s-8.4 22.9-23.1 22.9zM149.6 195h49.5l0 21.6-23.4 1.8c4.6 5.8 9.4 14 9.4 25.7c0 48.7-57.2 47.2-74.2 42.4l-8.4 13.4c5 .3 9.8 .6 14.3 .8c56.3 3.2 80.5 4.6 80.5 38.5c0 29.2-25.7 45.7-69.9 45.7c-46 0-63.5-11.6-63.5-31.7c0-11.4 5.1-17.5 14-25.9c-8.4-3.5-11.2-9.9-11.2-16.8c0-9.6 7.4-16.3 23-30.6l.2-.2c-12.4-6.1-21.8-19.3-21.8-38.1c0-51.6 56.6-53.3 81.6-46.8zM270.5 303.1l13 1.8 0 20.1H211.1V304.9c2.7-.4 5-.7 6.9-.9c9.9-1.2 10.1-1.3 10.1-6V223.3c0-4.4-.9-4.7-10.1-7.8c-1.9-.7-4.2-1.4-6.9-2.4l2.8-20.6h52.6V298c0 4.1 .2 4.6 4.1 5.1zm106.6-10.4L384 315c-10.9 5.4-26.9 10.2-41.4 10.2c-30.2 0-41.7-12.2-41.7-40.9V217.7c0-.8 0-1.4-.2-1.8c-.8-1.2-4.2-.7-19.6-.7V192.6c22.3-2.5 31.2-13.7 34-41.4h24.2c0 33.3-.6 38 .7 38.6c.3 .1 .7 0 1.3 0h35.8v25.4H339.3v60.7c0 .2 0 .5 0 .9c-.2 6.3-.9 30.4 37.9 15.9z"], - "square-tumblr": [448, 512, ["tumblr-square"], "f174", "M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM256.8 416c-75.5 0-91.9-55.5-91.9-87.9v-90H135.2c-3.4 0-6.2-2.8-6.2-6.2V189.4c0-4.5 2.8-8.5 7.1-10c38.8-13.7 50.9-47.5 52.7-73.2c.5-6.9 4.1-10.2 10-10.2h44.3c3.4 0 6.2 2.8 6.2 6.2v72h51.9c3.4 0 6.2 2.8 6.2 6.2v51.1c0 3.4-2.8 6.2-6.2 6.2H249.1V321c0 21.4 14.8 33.5 42.5 22.4c3-1.2 5.6-2 8-1.4c2.2 .5 3.6 2.1 4.6 4.9L318 387.1c1 3.2 2 6.7-.3 9.1c-8.5 9.1-31.2 19.8-60.9 19.8z"], - "trello": [448, 512, [], "f181", "M392.3 32H56.1C25.1 32 0 57.1 0 88c-.1 0 0-4 0 336 0 30.9 25.1 56 56 56h336.2c30.8-.2 55.7-25.2 55.7-56V88c.1-30.8-24.8-55.8-55.6-56zM197 371.3c-.2 14.7-12.1 26.6-26.9 26.6H87.4c-14.8.1-26.9-11.8-27-26.6V117.1c0-14.8 12-26.9 26.9-26.9h82.9c14.8 0 26.9 12 26.9 26.9v254.2zm193.1-112c0 14.8-12 26.9-26.9 26.9h-81c-14.8 0-26.9-12-26.9-26.9V117.2c0-14.8 12-26.9 26.8-26.9h81.1c14.8 0 26.9 12 26.9 26.9v142.1z"], - "creative-commons-nc-jp": [496, 512, [], "f4ea", "M247.7 8C103.6 8 0 124.8 0 256c0 136.4 111.8 248 247.7 248C377.9 504 496 403.2 496 256 496 117.2 388.5 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-21.1 3-41.2 9-60.3l127 56.5h-27.9v38.6h58.1l5.7 11.8v18.7h-63.8V360h63.8v56h61.7v-56h64.2v-35.7l81 36.1c-1.5 2.2-57.1 98.3-175.2 98.3zm87.6-137.3h-57.6v-18.7l2.9-5.6 54.7 24.3zm6.5-51.4v-17.8h-38.6l63-116H301l-43.4 96-23-10.2-39.6-85.7h-65.8l27.3 51-81.9-36.5c27.8-44.1 82.6-98.1 173.7-98.1 112.8 0 203 90 203 203.4 0 21-2.7 40.6-7.9 59l-101-45.1z"], - "get-pocket": [448, 512, [], "f265", "M407.6 64h-367C18.5 64 0 82.5 0 104.6v135.2C0 364.5 99.7 464 224.2 464c124 0 223.8-99.5 223.8-224.2V104.6c0-22.4-17.7-40.6-40.4-40.6zm-162 268.5c-12.4 11.8-31.4 11.1-42.4 0C89.5 223.6 88.3 227.4 88.3 209.3c0-16.9 13.8-30.7 30.7-30.7 17 0 16.1 3.8 105.2 89.3 90.6-86.9 88.6-89.3 105.5-89.3 16.9 0 30.7 13.8 30.7 30.7 0 17.8-2.9 15.7-114.8 123.2z"], - "perbyte": [448, 512, [], "e083", "M305.314,284.578H246.6V383.3h58.711q24.423,0,38.193-13.77t13.77-36.11q0-21.826-14.032-35.335T305.314,284.578ZM149.435,128.7H90.724v98.723h58.711q24.42,0,38.19-13.773t13.77-36.107q0-21.826-14.029-35.338T149.435,128.7ZM366.647,32H81.353A81.445,81.445,0,0,0,0,113.352V398.647A81.445,81.445,0,0,0,81.353,480H366.647A81.445,81.445,0,0,0,448,398.647V113.352A81.445,81.445,0,0,0,366.647,32Zm63.635,366.647a63.706,63.706,0,0,1-63.635,63.635H81.353a63.706,63.706,0,0,1-63.635-63.635V113.352A63.706,63.706,0,0,1,81.353,49.718H366.647a63.706,63.706,0,0,1,63.635,63.634ZM305.314,128.7H246.6v98.723h58.711q24.423,0,38.193-13.773t13.77-36.107q0-21.826-14.032-35.338T305.314,128.7Z"], - "grunt": [384, 512, [], "f3ad", "M61.3 189.3c-1.1 10 5.2 19.1 5.2 19.1.7-7.5 2.2-12.8 4-16.6.4 10.3 3.2 23.5 12.8 34.1 6.9 7.6 35.6 23.3 54.9 6.1 1 2.4 2.1 5.3 3 8.5 2.9 10.3-2.7 25.3-2.7 25.3s15.1-17.1 13.9-32.5c10.8-.5 21.4-8.4 21.1-19.5 0 0-18.9 10.4-35.5-8.8-9.7-11.2-40.9-42-83.1-31.8 4.3 1 8.9 2.4 13.5 4.1h-.1c-4.2 2-6.5 7.1-7 12zm28.3-1.8c19.5 11 37.4 25.7 44.9 37-5.7 3.3-21.7 10.4-38-1.7-10.3-7.6-9.8-26.2-6.9-35.3zm142.1 45.8c-1.2 15.5 13.9 32.5 13.9 32.5s-5.6-15-2.7-25.3c.9-3.2 2-6 3-8.5 19.3 17.3 48 1.5 54.8-6.1 9.6-10.6 12.3-23.8 12.8-34.1 1.8 3.8 3.4 9.1 4 16.6 0 0 6.4-9.1 5.2-19.1-.6-5-2.9-10-7-11.8h-.1c4.6-1.8 9.2-3.2 13.5-4.1-42.3-10.2-73.4 20.6-83.1 31.8-16.7 19.2-35.5 8.8-35.5 8.8-.2 10.9 10.4 18.9 21.2 19.3zm62.7-45.8c3 9.1 3.4 27.7-7 35.4-16.3 12.1-32.2 5-37.9 1.6 7.5-11.4 25.4-26 44.9-37zM160 418.5h-29.4c-5.5 0-8.2 1.6-9.5 2.9-1.9 2-2.2 4.7-.9 8.1 3.5 9.1 11.4 16.5 13.7 18.6 3.1 2.7 7.5 4.3 11.8 4.3 4.4 0 8.3-1.7 11-4.6 7.5-8.2 11.9-17.1 13-19.8.6-1.5 1.3-4.5-.9-6.8-1.8-1.8-4.7-2.7-8.8-2.7zm189.2-101.2c-2.4 17.9-13 33.8-24.6 43.7-3.1-22.7-3.7-55.5-3.7-62.4 0-14.7 9.5-24.5 12.2-26.1 2.5-1.5 5.4-3 8.3-4.6 18-9.6 40.4-21.6 40.4-43.7 0-16.2-9.3-23.2-15.4-27.8-.8-.6-1.5-1.1-2.2-1.7-2.1-1.7-3.7-3-4.3-4.4-4.4-9.8-3.6-34.2-1.7-37.6.6-.6 16.7-20.9 11.8-39.2-2-7.4-6.9-13.3-14.1-17-5.3-2.7-11.9-4.2-19.5-4.5-.1-2-.5-3.9-.9-5.9-.6-2.6-1.1-5.3-.9-8.1.4-4.7.8-9 2.2-11.3 8.4-13.3 28.8-17.6 29-17.6l12.3-2.4-8.1-9.5c-.1-.2-17.3-17.5-46.3-17.5-7.9 0-16 1.3-24.1 3.9-24.2 7.8-42.9 30.5-49.4 39.3-3.1-1-6.3-1.9-9.6-2.7-4.2-15.8 9-38.5 9-38.5s-13.6-3-33.7 15.2c-2.6-6.5-8.1-20.5-1.8-37.2C184.6 10.1 177.2 26 175 40.4c-7.6-5.4-6.7-23.1-7.2-27.6-7.5.9-29.2 21.9-28.2 48.3-2 .5-3.9 1.1-5.9 1.7-6.5-8.8-25.1-31.5-49.4-39.3-7.9-2.2-16-3.5-23.9-3.5-29 0-46.1 17.3-46.3 17.5L6 46.9l12.3 2.4c.2 0 20.6 4.3 29 17.6 1.4 2.2 1.8 6.6 2.2 11.3.2 2.8-.4 5.5-.9 8.1-.4 1.9-.8 3.9-.9 5.9-7.7.3-14.2 1.8-19.5 4.5-7.2 3.7-12.1 9.6-14.1 17-5 18.2 11.2 38.5 11.8 39.2 1.9 3.4 2.7 27.8-1.7 37.6-.6 1.4-2.2 2.7-4.3 4.4-.7.5-1.4 1.1-2.2 1.7-6.1 4.6-15.4 11.7-15.4 27.8 0 22.1 22.4 34.1 40.4 43.7 3 1.6 5.8 3.1 8.3 4.6 2.7 1.6 12.2 11.4 12.2 26.1 0 6.9-.6 39.7-3.7 62.4-11.6-9.9-22.2-25.9-24.6-43.8 0 0-29.2 22.6-20.6 70.8 5.2 29.5 23.2 46.1 47 54.7 8.8 19.1 29.4 45.7 67.3 49.6C143 504.3 163 512 192.2 512h.2c29.1 0 49.1-7.7 63.6-19.5 37.9-3.9 58.5-30.5 67.3-49.6 23.8-8.7 41.7-25.2 47-54.7 8.2-48.4-21.1-70.9-21.1-70.9zM305.7 37.7c5.6-1.8 11.6-2.7 17.7-2.7 11 0 19.9 3 24.7 5-3.1 1.4-6.4 3.2-9.7 5.3-2.4-.4-5.6-.8-9.2-.8-10.5 0-20.5 3.1-28.7 8.9-12.3 8.7-18 16.9-20.7 22.4-2.2-1.3-4.5-2.5-7.1-3.7-1.6-.8-3.1-1.5-4.7-2.2 6.1-9.1 19.9-26.5 37.7-32.2zm21 18.2c-.8 1-1.6 2.1-2.3 3.2-3.3 5.2-3.9 11.6-4.4 17.8-.5 6.4-1.1 12.5-4.4 17-4.2.8-8.1 1.7-11.5 2.7-2.3-3.1-5.6-7-10.5-11.2 1.4-4.8 5.5-16.1 13.5-22.5 5.6-4.3 12.2-6.7 19.6-7zM45.6 45.3c-3.3-2.2-6.6-4-9.7-5.3 4.8-2 13.7-5 24.7-5 6.1 0 12 .9 17.7 2.7 17.8 5.8 31.6 23.2 37.7 32.1-1.6.7-3.2 1.4-4.8 2.2-2.5 1.2-4.9 2.5-7.1 3.7-2.6-5.4-8.3-13.7-20.7-22.4-8.3-5.8-18.2-8.9-28.8-8.9-3.4.1-6.6.5-9 .9zm44.7 40.1c-4.9 4.2-8.3 8-10.5 11.2-3.4-.9-7.3-1.9-11.5-2.7C65 89.5 64.5 83.4 64 77c-.5-6.2-1.1-12.6-4.4-17.8-.7-1.1-1.5-2.2-2.3-3.2 7.4.3 14 2.6 19.5 7 8 6.3 12.1 17.6 13.5 22.4zM58.1 259.9c-2.7-1.6-5.6-3.1-8.4-4.6-14.9-8-30.2-16.3-30.2-30.5 0-11.1 4.3-14.6 8.9-18.2l.5-.4c.7-.6 1.4-1.2 2.2-1.8-.9 7.2-1.9 13.3-2.7 14.9 0 0 12.1-15 15.7-44.3 1.4-11.5-1.1-34.3-5.1-43 .2 4.9 0 9.8-.3 14.4-.4-.8-.8-1.6-1.3-2.2-3.2-4-11.8-17.5-9.4-26.6.9-3.5 3.1-6 6.7-7.8 3.8-1.9 8.8-2.9 15.1-2.9 12.3 0 25.9 3.7 32.9 6 25.1 8 55.4 30.9 64.1 37.7.2.2.4.3.4.3l5.6 3.9-3.5-5.8c-.2-.3-19.1-31.4-53.2-46.5 2-2.9 7.4-8.1 21.6-15.1 21.4-10.5 46.5-15.8 74.3-15.8 27.9 0 52.9 5.3 74.3 15.8 14.2 6.9 19.6 12.2 21.6 15.1-34 15.1-52.9 46.2-53.1 46.5l-3.5 5.8 5.6-3.9s.2-.1.4-.3c8.7-6.8 39-29.8 64.1-37.7 7-2.2 20.6-6 32.9-6 6.3 0 11.3 1 15.1 2.9 3.5 1.8 5.7 4.4 6.7 7.8 2.5 9.1-6.1 22.6-9.4 26.6-.5.6-.9 1.3-1.3 2.2-.3-4.6-.5-9.5-.3-14.4-4 8.8-6.5 31.5-5.1 43 3.6 29.3 15.7 44.3 15.7 44.3-.8-1.6-1.8-7.7-2.7-14.9.7.6 1.5 1.2 2.2 1.8l.5.4c4.6 3.7 8.9 7.1 8.9 18.2 0 14.2-15.4 22.5-30.2 30.5-2.9 1.5-5.7 3.1-8.4 4.6-8.7 5-18 16.7-19.1 34.2-.9 14.6.9 49.9 3.4 75.9-12.4 4.8-26.7 6.4-39.7 6.8-2-4.1-3.9-8.5-5.5-13.1-.7-2-19.6-51.1-26.4-62.2 5.5 39 17.5 73.7 23.5 89.6-3.5-.5-7.3-.7-11.7-.7h-117c-4.4 0-8.3.3-11.7.7 6-15.9 18.1-50.6 23.5-89.6-6.8 11.2-25.7 60.3-26.4 62.2-1.6 4.6-3.5 9-5.5 13.1-13-.4-27.2-2-39.7-6.8 2.5-26 4.3-61.2 3.4-75.9-.9-17.4-10.3-29.2-19-34.2zM34.8 404.6c-12.1-20-8.7-54.1-3.7-59.1 10.9 34.4 47.2 44.3 74.4 45.4-2.7 4.2-5.2 7.6-7 10l-1.4 1.4c-7.2 7.8-8.6 18.5-4.1 31.8-22.7-.1-46.3-9.8-58.2-29.5zm45.7 43.5c6 1.1 12.2 1.9 18.6 2.4 3.5 8 7.4 15.9 12.3 23.1-14.4-5.9-24.4-16-30.9-25.5zM192 498.2c-60.6-.1-78.3-45.8-84.9-64.7-3.7-10.5-3.4-18.2.9-23.1 2.9-3.3 9.5-7.2 24.6-7.2h118.8c15.1 0 21.8 3.9 24.6 7.2 4.2 4.8 4.5 12.6.9 23.1-6.6 18.8-24.3 64.6-84.9 64.7zm80.6-24.6c4.9-7.2 8.8-15.1 12.3-23.1 6.4-.5 12.6-1.3 18.6-2.4-6.5 9.5-16.5 19.6-30.9 25.5zm76.6-69c-12 19.7-35.6 29.3-58.1 29.7 4.5-13.3 3.1-24.1-4.1-31.8-.4-.5-.9-1-1.4-1.5-1.8-2.4-4.3-5.8-7-10 27.2-1.2 63.5-11 74.4-45.4 5 5 8.4 39.1-3.8 59zM191.9 187.7h.2c12.7-.1 27.2-17.8 27.2-17.8-9.9 6-18.8 8.1-27.3 8.3-8.5-.2-17.4-2.3-27.3-8.3 0 0 14.5 17.6 27.2 17.8zm61.7 230.7h-29.4c-4.2 0-7.2.9-8.9 2.7-2.2 2.3-1.5 5.2-.9 6.7 1 2.6 5.5 11.3 13 19.3 2.7 2.9 6.6 4.5 11 4.5s8.7-1.6 11.8-4.2c2.3-2 10.2-9.2 13.7-18.1 1.3-3.3 1-6-.9-7.9-1.3-1.3-4-2.9-9.4-3z"], - "weebly": [512, 512, [], "f5cc", "M425.09 65.83c-39.88 0-73.28 25.73-83.66 64.33-18.16-58.06-65.5-64.33-84.95-64.33-19.78 0-66.8 6.28-85.28 64.33-10.38-38.6-43.45-64.33-83.66-64.33C38.59 65.83 0 99.72 0 143.03c0 28.96 4.18 33.27 77.17 233.48 22.37 60.57 67.77 69.35 92.74 69.35 39.23 0 70.04-19.46 85.93-53.98 15.89 34.83 46.69 54.29 85.93 54.29 24.97 0 70.36-9.1 92.74-69.67 76.55-208.65 77.5-205.58 77.5-227.2.63-48.32-36.01-83.47-86.92-83.47zm26.34 114.81l-65.57 176.44c-7.92 21.49-21.22 37.22-46.24 37.22-23.44 0-37.38-12.41-44.03-33.9l-39.28-117.42h-.95L216.08 360.4c-6.96 21.5-20.9 33.6-44.02 33.6-25.02 0-38.33-15.74-46.24-37.22L60.88 181.55c-5.38-14.83-7.92-23.91-7.92-34.5 0-16.34 15.84-29.36 38.33-29.36 18.69 0 31.99 11.8 36.11 29.05l44.03 139.82h.95l44.66-136.79c6.02-19.67 16.47-32.08 38.96-32.08s32.94 12.11 38.96 32.08l44.66 136.79h.95l44.03-139.82c4.12-17.25 17.42-29.05 36.11-29.05 22.17 0 38.33 13.32 38.33 35.71-.32 7.87-4.12 16.04-7.61 27.24z"], - "connectdevelop": [576, 512, [], "f20e", "M550.5 241l-50.089-86.786c1.071-2.142 1.875-4.553 1.875-7.232 0-8.036-6.696-14.733-14.732-15.001l-55.447-95.893c.536-1.607 1.071-3.214 1.071-4.821 0-8.571-6.964-15.268-15.268-15.268-4.821 0-8.839 2.143-11.786 5.625H299.518C296.839 18.143 292.821 16 288 16s-8.839 2.143-11.518 5.625H170.411C167.464 18.143 163.447 16 158.625 16c-8.303 0-15.268 6.696-15.268 15.268 0 1.607.536 3.482 1.072 4.821l-55.983 97.233c-5.356 2.41-9.107 7.5-9.107 13.661 0 .535.268 1.071.268 1.607l-53.304 92.143c-7.232 1.339-12.59 7.5-12.59 15 0 7.232 5.089 13.393 12.054 15l55.179 95.358c-.536 1.607-.804 2.946-.804 4.821 0 7.232 5.089 13.393 12.054 14.732l51.697 89.732c-.536 1.607-1.071 3.482-1.071 5.357 0 8.571 6.964 15.268 15.268 15.268 4.821 0 8.839-2.143 11.518-5.357h106.875C279.161 493.857 283.447 496 288 496s8.839-2.143 11.518-5.357h107.143c2.678 2.946 6.696 4.821 10.982 4.821 8.571 0 15.268-6.964 15.268-15.268 0-1.607-.267-2.946-.803-4.285l51.697-90.268c6.964-1.339 12.054-7.5 12.054-14.732 0-1.607-.268-3.214-.804-4.821l54.911-95.358c6.964-1.339 12.322-7.5 12.322-15-.002-7.232-5.092-13.393-11.788-14.732zM153.535 450.732l-43.66-75.803h43.66v75.803zm0-83.839h-43.66c-.268-1.071-.804-2.142-1.339-3.214l44.999-47.41v50.624zm0-62.411l-50.357 53.304c-1.339-.536-2.679-1.34-4.018-1.607L43.447 259.75c.535-1.339.535-2.679.535-4.018s0-2.41-.268-3.482l51.965-90c2.679-.268 5.357-1.072 7.768-2.679l50.089 51.965v92.946zm0-102.322l-45.803-47.41c1.339-2.143 2.143-4.821 2.143-7.767 0-.268-.268-.804-.268-1.072l43.928-15.804v72.053zm0-80.625l-43.66 15.804 43.66-75.536v59.732zm326.519 39.108l.804 1.339L445.5 329.125l-63.75-67.232 98.036-101.518.268.268zM291.75 355.107l11.518 11.786H280.5l11.25-11.786zm-.268-11.25l-83.303-85.446 79.553-84.375 83.036 87.589-79.286 82.232zm5.357 5.893l79.286-82.232 67.5 71.25-5.892 28.125H313.714l-16.875-17.143zM410.411 44.393c1.071.536 2.142 1.072 3.482 1.34l57.857 100.714v.536c0 2.946.803 5.624 2.143 7.767L376.393 256l-83.035-87.589L410.411 44.393zm-9.107-2.143L287.732 162.518l-57.054-60.268 166.339-60h4.287zm-123.483 0c2.678 2.678 6.16 4.285 10.179 4.285s7.5-1.607 10.179-4.285h75L224.786 95.821 173.893 42.25h103.928zm-116.249 5.625l1.071-2.142a33.834 33.834 0 0 0 2.679-.804l51.161 53.84-54.911 19.821V47.875zm0 79.286l60.803-21.964 59.732 63.214-79.553 84.107-40.982-42.053v-83.304zm0 92.678L198 257.607l-36.428 38.304v-76.072zm0 87.858l42.053-44.464 82.768 85.982-17.143 17.678H161.572v-59.196zm6.964 162.053c-1.607-1.607-3.482-2.678-5.893-3.482l-1.071-1.607v-89.732h99.91l-91.607 94.821h-1.339zm129.911 0c-2.679-2.41-6.428-4.285-10.447-4.285s-7.767 1.875-10.447 4.285h-96.429l91.607-94.821h38.304l91.607 94.821H298.447zm120-11.786l-4.286 7.5c-1.339.268-2.41.803-3.482 1.339l-89.196-91.875h114.376l-17.412 83.036zm12.856-22.232l12.858-60.803h21.964l-34.822 60.803zm34.822-68.839h-20.357l4.553-21.16 17.143 18.214c-.535.803-1.071 1.874-1.339 2.946zm66.161-107.411l-55.447 96.697c-1.339.535-2.679 1.071-4.018 1.874l-20.625-21.964 34.554-163.928 45.803 79.286c-.267 1.339-.803 2.678-.803 4.285 0 1.339.268 2.411.536 3.75z"], - "leanpub": [576, 512, [], "f212", "M386.539 111.485l15.096 248.955-10.979-.275c-36.232-.824-71.64 8.783-102.657 27.997-31.016-19.214-66.424-27.997-102.657-27.997-45.564 0-82.07 10.705-123.516 27.723L93.117 129.6c28.546-11.803 61.484-18.115 92.226-18.115 41.173 0 73.836 13.175 102.657 42.544 27.723-28.271 59.013-41.721 98.539-42.544zM569.07 448c-25.526 0-47.485-5.215-70.542-15.645-34.31-15.645-69.993-24.978-107.871-24.978-38.977 0-74.934 12.901-102.657 40.623-27.723-27.723-63.68-40.623-102.657-40.623-37.878 0-73.561 9.333-107.871 24.978C55.239 442.236 32.731 448 8.303 448H6.93L49.475 98.859C88.726 76.626 136.486 64 181.775 64 218.83 64 256.984 71.685 288 93.095 319.016 71.685 357.17 64 394.225 64c45.289 0 93.049 12.626 132.3 34.859L569.07 448zm-43.368-44.741l-34.036-280.246c-30.742-13.999-67.248-21.41-101.009-21.41-38.428 0-74.385 12.077-102.657 38.702-28.272-26.625-64.228-38.702-102.657-38.702-33.761 0-70.267 7.411-101.009 21.41L50.298 403.259c47.211-19.487 82.894-33.486 135.045-33.486 37.604 0 70.817 9.606 102.657 29.644 31.84-20.038 65.052-29.644 102.657-29.644 52.151 0 87.834 13.999 135.045 33.486z"], - "black-tie": [448, 512, [], "f27e", "M0 32v448h448V32H0zm316.5 325.2L224 445.9l-92.5-88.7 64.5-184-64.5-86.6h184.9L252 173.2l64.5 184z"], - "themeco": [448, 512, [], "f5c6", "M202.9 8.43c9.9-5.73 26-5.82 35.95-.21L430 115.85c10 5.6 18 19.44 18 30.86V364c0 11.44-8.06 25.29-18 31L238.81 503.74c-9.93 5.66-26 5.57-35.85-.21L17.86 395.12C8 389.34 0 375.38 0 364V146.71c0-11.44 8-25.36 17.91-31.08zm-77.4 199.83c-15.94 0-31.89.14-47.83.14v101.45H96.8V280h28.7c49.71 0 49.56-71.74 0-71.74zm140.14 100.29l-30.73-34.64c37-7.51 34.8-65.23-10.87-65.51-16.09 0-32.17-.14-48.26-.14v101.59h19.13v-33.91h18.41l29.56 33.91h22.76zm-41.59-82.32c23.34 0 23.26 32.46 0 32.46h-29.13v-32.46zm-95.56-1.6c21.18 0 21.11 38.85 0 38.85H96.18v-38.84zm192.65-18.25c-68.46 0-71 105.8 0 105.8 69.48-.01 69.41-105.8 0-105.8zm0 17.39c44.12 0 44.8 70.86 0 70.86s-44.43-70.86 0-70.86z"], - "python": [448, 512, [], "f3e2", "M439.8 200.5c-7.7-30.9-22.3-54.2-53.4-54.2h-40.1v47.4c0 36.8-31.2 67.8-66.8 67.8H172.7c-29.2 0-53.4 25-53.4 54.3v101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3v-40.7H226.2v-13.6h160.2c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6zM286.2 404c11.1 0 20.1 9.1 20.1 20.3 0 11.3-9 20.4-20.1 20.4-11 0-20.1-9.2-20.1-20.4.1-11.3 9.1-20.3 20.1-20.3zM167.8 248.1h106.8c29.7 0 53.4-24.5 53.4-54.3V91.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8.1-45.2 8-53.4 24.7-53.4 55.6v40.7h106.9v13.6h-147c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2H101v-48.8c0-35.3 30.5-66.4 66.8-66.4zm-6.7-142.6c-11.1 0-20.1-9.1-20.1-20.3.1-11.3 9-20.4 20.1-20.4 11 0 20.1 9.2 20.1 20.4s-9 20.3-20.1 20.3z"], - "android": [576, 512, [], "f17b", "M420.55,301.93a24,24,0,1,1,24-24,24,24,0,0,1-24,24m-265.1,0a24,24,0,1,1,24-24,24,24,0,0,1-24,24m273.7-144.48,47.94-83a10,10,0,1,0-17.27-10h0l-48.54,84.07a301.25,301.25,0,0,0-246.56,0L116.18,64.45a10,10,0,1,0-17.27,10h0l47.94,83C64.53,202.22,8.24,285.55,0,384H576c-8.24-98.45-64.54-181.78-146.85-226.55"], - "bots": [640, 512, [], "e340", "M86.344,197.834a51.767,51.767,0,0,0-41.57,20.058V156.018a8.19,8.19,0,0,0-8.19-8.19H8.19A8.19,8.19,0,0,0,0,156.018V333.551a8.189,8.189,0,0,0,8.19,8.189H36.584a8.189,8.189,0,0,0,8.19-8.189v-8.088c11.628,13.373,25.874,19.769,41.573,19.769,34.6,0,61.922-26.164,61.922-73.843C148.266,225.452,121.229,197.834,86.344,197.834ZM71.516,305.691c-9.593,0-21.221-4.942-26.745-12.5V250.164c5.528-7.558,17.152-12.791,26.745-12.791,17.734,0,31.107,13.082,31.107,34.013C102.623,292.609,89.25,305.691,71.516,305.691Zm156.372-59.032a17.4,17.4,0,1,0,17.4,17.4A17.4,17.4,0,0,0,227.888,246.659ZM273.956,156.7V112.039a13.308,13.308,0,1,0-10.237,0V156.7a107.49,107.49,0,1,0,10.237,0Zm85.993,107.367c0,30.531-40.792,55.281-91.112,55.281s-91.111-24.75-91.111-55.281,40.792-55.281,91.111-55.281S359.949,233.532,359.949,264.062Zm-50.163,17.4a17.4,17.4,0,1,0-17.4-17.4h0A17.4,17.4,0,0,0,309.786,281.466ZM580.7,250.455c-14.828-2.617-22.387-3.78-22.387-9.885,0-5.523,7.268-9.884,17.735-9.884a65.56,65.56,0,0,1,34.484,10.1,8.171,8.171,0,0,0,11.288-2.468c.07-.11.138-.221.2-.333l8.611-14.886a8.2,8.2,0,0,0-2.867-11.123,99.863,99.863,0,0,0-52.014-14.138c-38.956,0-60.179,21.514-60.179,46.225,0,36.342,33.725,41.864,57.563,45.642,13.373,2.326,24.13,4.361,24.13,11.048,0,6.4-5.523,10.757-18.9,10.757-13.552,0-30.994-6.222-42.623-13.579a8.206,8.206,0,0,0-11.335,2.491c-.035.054-.069.108-.1.164l-10.2,16.891a8.222,8.222,0,0,0,2.491,11.066c15.224,10.3,37.663,16.692,59.441,16.692,40.409,0,63.957-19.769,63.957-46.515C640,260.63,604.537,254.816,580.7,250.455Zm-95.928,60.787a8.211,8.211,0,0,0-9.521-5.938,23.168,23.168,0,0,1-4.155.387c-7.849,0-12.5-6.106-12.5-14.245V240.28h20.349a8.143,8.143,0,0,0,8.141-8.143V209.466a8.143,8.143,0,0,0-8.141-8.143H458.594V171.091a8.143,8.143,0,0,0-8.143-8.143H422.257a8.143,8.143,0,0,0-8.143,8.143h0v30.232H399a8.143,8.143,0,0,0-8.143,8.143h0v22.671A8.143,8.143,0,0,0,399,240.28h15.115v63.667c0,27.037,15.408,41.282,43.9,41.282,12.183,0,21.383-2.2,27.6-5.446a8.161,8.161,0,0,0,4.145-9.278Z"], - "free-code-camp": [576, 512, [], "f2c5", "M97.22,96.21c10.36-10.65,16-17.12,16-21.9,0-2.76-1.92-5.51-3.83-7.42A14.81,14.81,0,0,0,101,64.05c-8.48,0-20.92,8.79-35.84,25.69C23.68,137,2.51,182.81,3.37,250.34s17.47,117,54.06,161.87C76.22,435.86,90.62,448,100.9,448a13.55,13.55,0,0,0,8.37-3.84c1.91-2.76,3.81-5.63,3.81-8.38,0-5.63-3.86-12.2-13.2-20.55-44.45-42.33-67.32-97-67.48-165C32.25,188.8,54,137.83,97.22,96.21ZM239.47,420.07c.58.37.91.55.91.55Zm93.79.55.17-.13C333.24,420.62,333.17,420.67,333.26,420.62Zm3.13-158.18c-16.24-4.15,50.41-82.89-68.05-177.17,0,0,15.54,49.38-62.83,159.57-74.27,104.35,23.46,168.73,34,175.23-6.73-4.35-47.4-35.7,9.55-128.64,11-18.3,25.53-34.87,43.5-72.16,0,0,15.91,22.45,7.6,71.13C287.7,364,354,342.91,355,343.94c22.75,26.78-17.72,73.51-21.58,76.55,5.49-3.65,117.71-78,33-188.1C360.43,238.4,352.62,266.59,336.39,262.44ZM510.88,89.69C496,72.79,483.52,64,475,64a14.81,14.81,0,0,0-8.39,2.84c-1.91,1.91-3.83,4.66-3.83,7.42,0,4.78,5.6,11.26,16,21.9,43.23,41.61,65,92.59,64.82,154.06-.16,68-23,122.63-67.48,165-9.34,8.35-13.18,14.92-13.2,20.55,0,2.75,1.9,5.62,3.81,8.38A13.61,13.61,0,0,0,475.1,448c10.28,0,24.68-12.13,43.47-35.79,36.59-44.85,53.14-94.38,54.06-161.87S552.32,137,510.88,89.69Z"], - "hornbill": [512, 512, [], "f592", "M76.38 370.3a37.8 37.8 0 1 1-32.07-32.42c-78.28-111.35 52-190.53 52-190.53-5.86 43-8.24 91.16-8.24 91.16-67.31 41.49.93 64.06 39.81 72.87a140.38 140.38 0 0 0 131.66 91.94c1.92 0 3.77-.21 5.67-.28l.11 18.86c-99.22 1.39-158.7-29.14-188.94-51.6zm108-327.7A37.57 37.57 0 0 0 181 21.45a37.95 37.95 0 1 0-31.17 54.22c-22.55 29.91-53.83 89.57-52.42 190l21.84-.15c0-.9-.14-1.77-.14-2.68A140.42 140.42 0 0 1 207 132.71c8-37.71 30.7-114.3 73.8-44.29 0 0 48.14 2.38 91.18 8.24 0 0-77.84-128-187.59-54.06zm304.19 134.17a37.94 37.94 0 1 0-53.84-28.7C403 126.13 344.89 99 251.28 100.33l.14 22.5c2.7-.15 5.39-.41 8.14-.41a140.37 140.37 0 0 1 130.49 88.76c39.1 9 105.06 31.58 38.46 72.54 0 0-2.34 48.13-8.21 91.16 0 0 133.45-81.16 49-194.61a37.45 37.45 0 0 0 19.31-3.5zM374.06 436.24c21.43-32.46 46.42-89.69 45.14-179.66l-19.52.14c.08 2.06.3 4.07.3 6.15a140.34 140.34 0 0 1-91.39 131.45c-8.85 38.95-31.44 106.66-72.77 39.49 0 0-48.12-2.34-91.19-8.22 0 0 79.92 131.34 191.9 51a37.5 37.5 0 0 0 3.64 14 37.93 37.93 0 1 0 33.89-54.29z"], - "js": [448, 512, [], "f3b8", "M0 32v448h448V32H0zm243.8 349.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5l34.3-20.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5V237.7h42.1v143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43l34.3-19.8c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z"], - "ideal": [576, 512, [], "e013", "M125.61,165.48a49.07,49.07,0,1,0,49.06,49.06A49.08,49.08,0,0,0,125.61,165.48ZM86.15,425.84h78.94V285.32H86.15Zm151.46-211.6c0-20-10-22.53-18.74-22.53H204.82V237.5h14.05C228.62,237.5,237.61,234.69,237.61,214.24Zm201.69,46V168.93h22.75V237.5h33.69C486.5,113.08,388.61,86.19,299.67,86.19H204.84V169h14c25.6,0,41.5,17.35,41.5,45.26,0,28.81-15.52,46-41.5,46h-14V425.88h94.83c144.61,0,194.94-67.16,196.72-165.64Zm-109.75,0H273.3V169h54.43v22.73H296v10.58h30V225H296V237.5h33.51Zm74.66,0-5.16-17.67H369.31l-5.18,17.67H340.47L368,168.92h32.35l27.53,91.34ZM299.65,32H32V480H299.65c161.85,0,251-79.73,251-224.52C550.62,172,518,32,299.65,32Zm0,426.92H53.07V53.07H299.65c142.1,0,229.9,64.61,229.9,202.41C529.55,389.57,448.55,458.92,299.65,458.92Zm83.86-264.85L376,219.88H392.4l-7.52-25.81Z"], - "git": [512, 512, [], "f1d3", "M216.29 158.39H137C97 147.9 6.51 150.63 6.51 233.18c0 30.09 15 51.23 35 61-25.1 23-37 33.85-37 49.21 0 11 4.47 21.14 17.89 26.81C8.13 383.61 0 393.35 0 411.65c0 32.11 28.05 50.82 101.63 50.82 70.75 0 111.79-26.42 111.79-73.18 0-58.66-45.16-56.5-151.63-63l13.43-21.55c27.27 7.58 118.7 10 118.7-67.89 0-18.7-7.73-31.71-15-41.07l37.41-2.84zm-63.42 241.9c0 32.06-104.89 32.1-104.89 2.43 0-8.14 5.27-15 10.57-21.54 77.71 5.3 94.32 3.37 94.32 19.11zm-50.81-134.58c-52.8 0-50.46-71.16 1.2-71.16 49.54 0 50.82 71.16-1.2 71.16zm133.3 100.51v-32.1c26.75-3.66 27.24-2 27.24-11V203.61c0-8.5-2.05-7.38-27.24-16.26l4.47-32.92H324v168.71c0 6.51.4 7.32 6.51 8.14l20.73 2.84v32.1zm52.45-244.31c-23.17 0-36.59-13.43-36.59-36.61s13.42-35.77 36.59-35.77c23.58 0 37 12.62 37 35.77s-13.42 36.61-37 36.61zM512 350.46c-17.49 8.53-43.1 16.26-66.28 16.26-48.38 0-66.67-19.5-66.67-65.46V194.75c0-5.42 1.05-4.06-31.71-4.06V154.5c35.78-4.07 50-22 54.47-66.27h38.63c0 65.83-1.34 61.81 3.26 61.81H501v40.65h-60.56v97.15c0 6.92-4.92 51.41 60.57 26.84z"], - "dev": [448, 512, [], "f6cc", "M120.12 208.29c-3.88-2.9-7.77-4.35-11.65-4.35H91.03v104.47h17.45c3.88 0 7.77-1.45 11.65-4.35 3.88-2.9 5.82-7.25 5.82-13.06v-69.65c-.01-5.8-1.96-10.16-5.83-13.06zM404.1 32H43.9C19.7 32 .06 51.59 0 75.8v360.4C.06 460.41 19.7 480 43.9 480h360.2c24.21 0 43.84-19.59 43.9-43.8V75.8c-.06-24.21-19.7-43.8-43.9-43.8zM154.2 291.19c0 18.81-11.61 47.31-48.36 47.25h-46.4V172.98h47.38c35.44 0 47.36 28.46 47.37 47.28l.01 70.93zm100.68-88.66H201.6v38.42h32.57v29.57H201.6v38.41h53.29v29.57h-62.18c-11.16.29-20.44-8.53-20.72-19.69V193.7c-.27-11.15 8.56-20.41 19.71-20.69h63.19l-.01 29.52zm103.64 115.29c-13.2 30.75-36.85 24.63-47.44 0l-38.53-144.8h32.57l29.71 113.72 29.57-113.72h32.58l-38.46 144.8z"], - "sketch": [512, 512, [], "f7c6", "M27.5 162.2L9 187.1h90.5l6.9-130.7-78.9 105.8zM396.3 45.7L267.7 32l135.7 147.2-7.1-133.5zM112.2 218.3l-11.2-22H9.9L234.8 458zm2-31.2h284l-81.5-88.5L256.3 33zm297.3 9.1L277.6 458l224.8-261.7h-90.9zM415.4 69L406 56.4l.9 17.3 6.1 113.4h90.3zM113.5 93.5l-4.6 85.6L244.7 32 116.1 45.7zm287.7 102.7h-290l42.4 82.9L256.3 480l144.9-283.8z"], - "yandex-international": [320, 512, [], "f414", "M129.5 512V345.9L18.5 48h55.8l81.8 229.7L250.2 0h51.3L180.8 347.8V512h-51.3z"], - "cc-amex": [576, 512, [], "f1f3", "M0 432c0 26.5 21.5 48 48 48H528c26.5 0 48-21.5 48-48v-1.1H514.3l-31.9-35.1-31.9 35.1H246.8V267.1H181L262.7 82.4h78.6l28.1 63.2V82.4h97.2L483.5 130l17-47.6H576V80c0-26.5-21.5-48-48-48H48C21.5 32 0 53.5 0 80V432zm440.4-21.7L482.6 364l42 46.3H576l-68-72.1 68-72.1H525.4l-42 46.7-41.5-46.7H390.5L458 338.6l-67.4 71.6V377.1h-83V354.9h80.9V322.6H307.6V300.2h83V267.1h-122V410.3H440.4zm96.3-72L576 380.2V296.9l-39.3 41.4zm-36.3-92l36.9-100.6V246.3H576V103H515.8l-32.2 89.3L451.7 103H390.5V246.1L327.3 103H276.1L213.7 246.3h43l11.9-28.7h65.9l12 28.7h82.7V146L466 246.3h34.4zM282 185.4l19.5-46.9 19.4 46.9H282z"], - "uber": [448, 512, [], "f402", "M414.1 32H33.9C15.2 32 0 47.2 0 65.9V446c0 18.8 15.2 34 33.9 34H414c18.7 0 33.9-15.2 33.9-33.9V65.9C448 47.2 432.8 32 414.1 32zM237.6 391.1C163 398.6 96.4 344.2 88.9 269.6h94.4V290c0 3.7 3 6.8 6.8 6.8H258c3.7 0 6.8-3 6.8-6.8v-67.9c0-3.7-3-6.8-6.8-6.8h-67.9c-3.7 0-6.8 3-6.8 6.8v20.4H88.9c7-69.4 65.4-122.2 135.1-122.2 69.7 0 128.1 52.8 135.1 122.2 7.5 74.5-46.9 141.1-121.5 148.6z"], - "github": [496, 512, [], "f09b", "M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"], - "php": [640, 512, [], "f457", "M320 104.5c171.4 0 303.2 72.2 303.2 151.5S491.3 407.5 320 407.5c-171.4 0-303.2-72.2-303.2-151.5S148.7 104.5 320 104.5m0-16.8C143.3 87.7 0 163 0 256s143.3 168.3 320 168.3S640 349 640 256 496.7 87.7 320 87.7zM218.2 242.5c-7.9 40.5-35.8 36.3-70.1 36.3l13.7-70.6c38 0 63.8-4.1 56.4 34.3zM97.4 350.3h36.7l8.7-44.8c41.1 0 66.6 3 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7h-70.7L97.4 350.3zm185.7-213.6h36.5l-8.7 44.8c31.5 0 60.7-2.3 74.8 10.7 14.8 13.6 7.7 31-8.3 113.1h-37c15.4-79.4 18.3-86 12.7-92-5.4-5.8-17.7-4.6-47.4-4.6l-18.8 96.6h-36.5l32.7-168.6zM505 242.5c-8 41.1-36.7 36.3-70.1 36.3l13.7-70.6c38.2 0 63.8-4.1 56.4 34.3zM384.2 350.3H421l8.7-44.8c43.2 0 67.1 2.5 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7H417l-32.8 168.7z"], - "alipay": [448, 512, [], "f642", "M377.74 32H70.26C31.41 32 0 63.41 0 102.26v307.48C0 448.59 31.41 480 70.26 480h307.48c38.52 0 69.76-31.08 70.26-69.6-45.96-25.62-110.59-60.34-171.6-88.44-32.07 43.97-84.14 81-148.62 81-70.59 0-93.73-45.3-97.04-76.37-3.97-39.01 14.88-81.5 99.52-81.5 35.38 0 79.35 10.25 127.13 24.96 16.53-30.09 26.45-60.34 26.45-60.34h-178.2v-16.7h92.08v-31.24H88.28v-19.01h109.44V92.34h50.92v50.42h109.44v19.01H248.63v31.24h88.77s-15.21 46.62-38.35 90.92c48.93 16.7 100.01 36.04 148.62 52.74V102.26C447.83 63.57 416.43 32 377.74 32zM47.28 322.95c.99 20.17 10.25 53.73 69.93 53.73 52.07 0 92.58-39.68 117.87-72.9-44.63-18.68-84.48-31.41-109.44-31.41-67.45 0-79.35 33.06-78.36 50.58z"], - "youtube": [576, 512, [61802], "f167", "M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"], - "skyatlas": [640, 512, [], "f216", "M640 329.3c0 65.9-52.5 114.4-117.5 114.4-165.9 0-196.6-249.7-359.7-249.7-146.9 0-147.1 212.2 5.6 212.2 42.5 0 90.9-17.8 125.3-42.5 5.6-4.1 16.9-16.3 22.8-16.3s10.9 5 10.9 10.9c0 7.8-13.1 19.1-18.7 24.1-40.9 35.6-100.3 61.2-154.7 61.2-83.4.1-154-59-154-144.9s67.5-149.1 152.8-149.1c185.3 0 222.5 245.9 361.9 245.9 99.9 0 94.8-139.7 3.4-139.7-17.5 0-35 11.6-46.9 11.6-8.4 0-15.9-7.2-15.9-15.6 0-11.6 5.3-23.7 5.3-36.3 0-66.6-50.9-114.7-116.9-114.7-53.1 0-80 36.9-88.8 36.9-6.2 0-11.2-5-11.2-11.2 0-5.6 4.1-10.3 7.8-14.4 25.3-28.8 64.7-43.7 102.8-43.7 79.4 0 139.1 58.4 139.1 137.8 0 6.9-.3 13.7-1.2 20.6 11.9-3.1 24.1-4.7 35.9-4.7 60.7 0 111.9 45.3 111.9 107.2z"], - "firefox-browser": [512, 512, [], "e007", "M130.22 127.548C130.38 127.558 130.3 127.558 130.22 127.548V127.548ZM481.64 172.898C471.03 147.398 449.56 119.898 432.7 111.168C446.42 138.058 454.37 165.048 457.4 185.168C457.405 185.306 457.422 185.443 457.45 185.578C429.87 116.828 383.098 89.1089 344.9 28.7479C329.908 5.05792 333.976 3.51792 331.82 4.08792L331.7 4.15792C284.99 30.1109 256.365 82.5289 249.12 126.898C232.503 127.771 216.219 131.895 201.19 139.035C199.838 139.649 198.736 140.706 198.066 142.031C197.396 143.356 197.199 144.87 197.506 146.323C197.7 147.162 198.068 147.951 198.586 148.639C199.103 149.327 199.76 149.899 200.512 150.318C201.264 150.737 202.096 150.993 202.954 151.071C203.811 151.148 204.676 151.045 205.491 150.768L206.011 150.558C221.511 143.255 238.408 139.393 255.541 139.238C318.369 138.669 352.698 183.262 363.161 201.528C350.161 192.378 326.811 183.338 304.341 187.248C392.081 231.108 368.541 381.784 246.951 376.448C187.487 373.838 149.881 325.467 146.421 285.648C146.421 285.648 157.671 243.698 227.041 243.698C234.541 243.698 255.971 222.778 256.371 216.698C256.281 214.698 213.836 197.822 197.281 181.518C188.434 172.805 184.229 168.611 180.511 165.458C178.499 163.75 176.392 162.158 174.201 160.688C168.638 141.231 168.399 120.638 173.51 101.058C148.45 112.468 128.96 130.508 114.8 146.428H114.68C105.01 134.178 105.68 93.7779 106.25 85.3479C106.13 84.8179 99.022 89.0159 98.1 89.6579C89.5342 95.7103 81.5528 102.55 74.26 110.088C57.969 126.688 30.128 160.242 18.76 211.318C14.224 231.701 12 255.739 12 263.618C12 398.318 121.21 507.508 255.92 507.508C376.56 507.508 478.939 420.281 496.35 304.888C507.922 228.192 481.64 173.82 481.64 172.898Z"], - "replyd": [448, 512, [], "f3e6", "M320 480H128C57.6 480 0 422.4 0 352V160C0 89.6 57.6 32 128 32h192c70.4 0 128 57.6 128 128v192c0 70.4-57.6 128-128 128zM193.4 273.2c-6.1-2-11.6-3.1-16.4-3.1-7.2 0-13.5 1.9-18.9 5.6-5.4 3.7-9.6 9-12.8 15.8h-1.1l-4.2-18.3h-28v138.9h36.1v-89.7c1.5-5.4 4.4-9.8 8.7-13.2 4.3-3.4 9.8-5.1 16.2-5.1 4.6 0 9.8 1 15.6 3.1l4.8-34zm115.2 103.4c-3.2 2.4-7.7 4.8-13.7 7.1-6 2.3-12.8 3.5-20.4 3.5-12.2 0-21.1-3-26.5-8.9-5.5-5.9-8.5-14.7-9-26.4h83.3c.9-4.8 1.6-9.4 2.1-13.9.5-4.4.7-8.6.7-12.5 0-10.7-1.6-19.7-4.7-26.9-3.2-7.2-7.3-13-12.5-17.2-5.2-4.3-11.1-7.3-17.8-9.2-6.7-1.8-13.5-2.8-20.6-2.8-21.1 0-37.5 6.1-49.2 18.3s-17.5 30.5-17.5 55c0 22.8 5.2 40.7 15.6 53.7 10.4 13.1 26.8 19.6 49.2 19.6 10.7 0 20.9-1.5 30.4-4.6 9.5-3.1 17.1-6.8 22.6-11.2l-12-23.6zm-21.8-70.3c3.8 5.4 5.3 13.1 4.6 23.1h-51.7c.9-9.4 3.7-17 8.2-22.6 4.5-5.6 11.5-8.5 21-8.5 8.2-.1 14.1 2.6 17.9 8zm79.9 2.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4s2 11.7 6.1 15.6zm0 100.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4 0 6.6 2 11.7 6.1 15.6z"], - "suse": [640, 512, [], "f7d6", "M593.1 192.6A10.4 10.4 0 1 1 604.5 210a10.4 10.4 0 1 1 -11.4-17.4zm-47.1 12.2a38.5 38.5 0 1 1 75-17.6 38.5 38.5 0 1 1 -75 17.6zM433.7 336.7c3.2 4.6 5.8 9 7.3 13.4c1 3.1 2.4 7.3 5.5 8.9c.2 .1 .3 .2 .5 .2c5.7 2.1 20.3 1.7 20.3 1.7h26.8c2.3 0 22.4 0 21.9-2.3c-2.4-10.8-14.9-12.7-24.4-18.3c-8.7-5.2-17-11.1-20.8-21.3c-2-5.2-.8-17.4 2.6-21.8c2.5-3.2 6.1-5.3 10-6.2c4.3-.9 8.8-.1 13.1 .3c5.3 .5 10.6 1.5 15.9 2.2c10.3 1.3 20.6 1.9 31 1.6c17.1-.5 34.2-3.2 50.4-8.7c11.3-3.8 22.4-8.9 32-16.1c10.9-8.1 8.1-7.4-3-6.2c-13.3 1.4-26.6 1.6-39.9 .8c-12.4-.7-24.7-2.2-35.9-7.9c-8.8-4.6-16.4-9.1-23.4-16.2c-1-1.1-1.7-4.2 .2-6.2c1.9-1.9 5.8-.8 7 .2c12.2 10.2 30.5 18.6 49.3 19.5c10.2 .5 20.1 .7 30.4 .3c5.1-.2 12.8-.2 17.9-.3c2.6 0 9.8 .7 11.2-2.1c.4-.8 .4-1.8 .3-2.7c-1.5-40.9-4.5-86.9-47.3-106.5c-31.9-14.6-79.7-37.2-99.9-46.6c-4.7-2.2-10.2 1.3-10.2 6.5c0 13.6 .7 33.3 .7 51.1c-9.7-9.9-26-16.1-38.4-21.8c-14.1-6.5-28.7-12-43.5-16.6c-29.8-9.2-60.7-14.9-91.7-18c-35.2-3.5-71-1.8-105.7 5.3C147 115.1 90.8 142.6 48.2 182.7C22.1 207.3 1.6 242.4 .2 277.9c-2 50.3 12.1 77.3 38 105.2c41.3 44.4 130.2 50.6 166.2-2c16.2-23.7 19.7-55.8 8-82c-11.8-26.2-38.8-45.1-67.4-46c-22.2-.7-45.9 10.6-54.5 31.1c-6.5 15.7-2.8 35.1 9 47.3c4.6 4.8 10.9 8.7 17.7 7.1c4-.9 7.4-3.9 8-8c.9-6-4.4-9.9-7.6-14.5c-5.8-8.3-4.7-20.9 2.7-27.9c6.2-6 15.3-7.8 23.9-7.7c8 0 16.2 1.4 23.1 5.5c9.7 5.7 16.2 16.2 18.4 27.2c6.7 33-20.2 59.9-56.6 62c-18.6 1.1-37.6-3.8-52.1-15.5C40.1 329.9 31.1 269.4 73.2 237c40-30.7 90.4-22.8 120.2-6.8c23.8 12.8 41.5 33.6 55 56.7c6.7 11.6 12.5 23.7 17.8 36.1c5.1 11.8 9.9 23.8 20.2 32.5c6.8 5.8 15.2 5.6 24.1 5.6h50.8c6.9 0 5.2-4.6 2.2-7.7c-6.7-6.9-16.4-8.4-25.4-10.9c-20.5-5.6-18.4-32.8-12.7-32.8c18.3 0 18.9 .6 34.9 .3c23.2-.3 30.2-1.7 48.3 5c9.7 3.6 19 13.1 25.1 21.7z"], - "jenkins": [512, 512, [], "f3b6", "M487.1 425c-1.4-11.2-19-23.1-28.2-31.9-5.1-5-29-23.1-30.4-29.9-1.4-6.6 9.7-21.5 13.3-28.9 5.1-10.7 8.8-23.7 11.3-32.6 18.8-66.1 20.7-156.9-6.2-211.2-10.2-20.6-38.6-49-56.4-62.5-42-31.7-119.6-35.3-170.1-16.6-14.1 5.2-27.8 9.8-40.1 17.1-33.1 19.4-68.3 32.5-78.1 71.6-24.2 10.8-31.5 41.8-30.3 77.8.2 7 4.1 15.8 2.7 22.4-.7 3.3-5.2 7.6-6.1 9.8-11.6 27.7-2.3 64 11.1 83.7 8.1 11.9 21.5 22.4 39.2 25.2.7 10.6 3.3 19.7 8.2 30.4 3.1 6.8 14.7 19 10.4 27.7-2.2 4.4-21 13.8-27.3 17.6C89 407.2 73.7 415 54.2 429c-12.6 9-32.3 10.2-29.2 31.1 2.1 14.1 10.1 31.6 14.7 45.8.7 2 1.4 4.1 2.1 6h422c4.9-15.3 9.7-30.9 14.6-47.2 3.4-11.4 10.2-27.8 8.7-39.7zM205.9 33.7c1.8-.5 3.4.7 4.9 2.4-.2 5.2-5.4 5.1-8.9 6.8-5.4 6.7-13.4 9.8-20 17.2-6.8 7.5-14.4 27.7-23.4 30-4.5 1.1-9.7-.8-13.6-.5-10.4.7-17.7 6-28.3 7.5 13.6-29.9 56.1-54 89.3-63.4zm-104.8 93.6c13.5-14.9 32.1-24.1 54.8-25.9 11.7 29.7-8.4 65-.9 97.6 2.3 9.9 10.2 25.4-2.4 25.7.3-28.3-34.8-46.3-61.3-29.6-1.8-21.5-4.9-51.7 9.8-67.8zm36.7 200.2c-1-4.1-2.7-12.9-2.3-15.1 1.6-8.7 17.1-12.5 11-24.7-11.3-.1-13.8 10.2-24.1 11.3-26.7 2.6-45.6-35.4-44.4-58.4 1-19.5 17.6-38.2 40.1-35.8 16 1.8 21.4 19.2 24.5 34.7 9.2.5 22.5-.4 26.9-7.6-.6-17.5-8.8-31.6-8.2-47.7 1-30.3 17.5-57.6 4.8-87.4 13.6-30.9 53.5-55.3 83.1-70 36.6-18.3 94.9-3.7 129.3 15.8 19.7 11.1 34.4 32.7 48.3 50.7-19.5-5.8-36.1 4.2-33.1 20.3 16.3-14.9 44.2-.2 52.5 16.4 7.9 15.8 7.8 39.3 9 62.8 2.9 57-10.4 115.9-39.1 157.1-7.7 11-14.1 23-24.9 30.6-26 18.2-65.4 34.7-99.2 23.4-44.7-15-65-44.8-89.5-78.8.7 18.7 13.8 34.1 26.8 48.4 11.3 12.5 25 26.6 39.7 32.4-12.3-2.9-31.1-3.8-36.2 7.2-28.6-1.9-55.1-4.8-68.7-24.2-10.6-15.4-21.4-41.4-26.3-61.4zm222 124.1c4.1-3 11.1-2.9 17.4-3.6-5.4-2.7-13-3.7-19.3-2.2-.1-4.2-2-6.8-3.2-10.2 10.6-3.8 35.5-28.5 49.6-20.3 6.7 3.9 9.5 26.2 10.1 37 .4 9-.8 18-4.5 22.8-18.8-.6-35.8-2.8-50.7-7 .9-6.1-1-12.1.6-16.5zm-17.2-20c-16.8.8-26-1.2-38.3-10.8.2-.8 1.4-.5 1.5-1.4 18 8 40.8-3.3 59-4.9-7.9 5.1-14.6 11.6-22.2 17.1zm-12.1 33.2c-1.6-9.4-3.5-12-2.8-20.2 25-16.6 29.7 28.6 2.8 20.2zM226 438.6c-11.6-.7-48.1-14-38.5-23.7 9.4 6.5 27.5 4.9 41.3 7.3.8 4.4-2.8 10.2-2.8 16.4zM57.7 497.1c-4.3-12.7-9.2-25.1-14.8-36.9 30.8-23.8 65.3-48.9 102.2-63.5 2.8-1.1 23.2 25.4 26.2 27.6 16.5 11.7 37 21 56.2 30.2 1.2 8.8 3.9 20.2 8.7 35.5.7 2.3 1.4 4.7 2.2 7.2H57.7zm240.6 5.7h-.8c.3-.2.5-.4.8-.5v.5zm7.5-5.7c2.1-1.4 4.3-2.8 6.4-4.3 1.1 1.4 2.2 2.8 3.2 4.3h-9.6zm15.1-24.7c-10.8 7.3-20.6 18.3-33.3 25.2-6 3.3-27 11.7-33.4 10.2-3.6-.8-3.9-5.3-5.4-9.5-3.1-9-10.1-23.4-10.8-37-.8-17.2-2.5-46 16-42.4 14.9 2.9 32.3 9.7 43.9 16.1 7.1 3.9 11.1 8.6 21.9 9.5-.1 1.4-.1 2.8-.2 4.3-5.9 3.9-15.3 3.8-21.8 7.1 9.5.4 17 2.7 23.5 5.9-.1 3.4-.3 7-.4 10.6zm53.4 24.7h-14c-.1-3.2-2.8-5.8-6.1-5.8s-5.9 2.6-6.1 5.8h-17.4c-2.8-4.4-5.7-8.6-8.9-12.5 2.1-2.2 4-4.7 6-6.9 9 3.7 14.8-4.9 21.7-4.2 7.9.8 14.2 11.7 25.4 11l-.6 12.6zm8.7 0c.2-4 .4-7.8.6-11.5 15.6-7.3 29 1.3 35.7 11.5H383zm83.4-37c-2.3 11.2-5.8 24-9.9 37.1-.2-.1-.4-.1-.6-.1H428c.6-1.1 1.2-2.2 1.9-3.3-2.6-6.1-9-8.7-10.9-15.5 12.1-22.7 6.5-93.4-24.2-78.5 4.3-6.3 15.6-11.5 20.8-19.3 13 10.4 20.8 20.3 33.2 31.4 6.8 6 20 13.3 21.4 23.1.8 5.5-2.6 18.9-3.8 25.1zM222.2 130.5c5.4-14.9 27.2-34.7 45-32 7.7 1.2 18 8.2 12.2 17.7-30.2-7-45.2 12.6-54.4 33.1-8.1-2-4.9-13.1-2.8-18.8zm184.1 63.1c8.2-3.6 22.4-.7 29.6-5.3-4.2-11.5-10.3-21.4-9.3-37.7.5 0 1 0 1.4.1 6.8 14.2 12.7 29.2 21.4 41.7-5.7 13.5-43.6 25.4-43.1 1.2zm20.4-43zm-117.2 45.7c-6.8-10.9-19-32.5-14.5-45.3 6.5 11.9 8.6 24.4 17.8 33.3 4.1 4 12.2 9 8.2 20.2-.9 2.7-7.8 8.6-11.7 9.7-14.4 4.3-47.9.9-36.6-17.1 11.9.7 27.9 7.8 36.8-.8zm27.3 70c3.8 6.6 1.4 18.7 12.1 20.6 20.2 3.4 43.6-12.3 58.1-17.8 9-15.2-.8-20.7-8.9-30.5-16.6-20-38.8-44.8-38-74.7 6.7-4.9 7.3 7.4 8.2 9.7 8.7 20.3 30.4 46.2 46.3 63.5 3.9 4.3 10.3 8.4 11 11.2 2.1 8.2-5.4 18-4.5 23.5-21.7 13.9-45.8 29.1-81.4 25.6-7.4-6.7-10.3-21.4-2.9-31.1zm-201.3-9.2c-6.8-3.9-8.4-21-16.4-21.4-11.4-.7-9.3 22.2-9.3 35.5-7.8-7.1-9.2-29.1-3.5-40.3-6.6-3.2-9.5 3.6-13.1 5.9 4.7-34.1 49.8-15.8 42.3 20.3zm299.6 28.8c-10.1 19.2-24.4 40.4-54 41-.6-6.2-1.1-15.6 0-19.4 22.7-2.2 36.6-13.7 54-21.6zm-141.9 12.4c18.9 9.9 53.6 11 79.3 10.2 1.4 5.6 1.3 12.6 1.4 19.4-33 1.8-72-6.4-80.7-29.6zm92.2 46.7c-1.7 4.3-5.3 9.3-9.8 11.1-12.1 4.9-45.6 8.7-62.4-.3-10.7-5.7-17.5-18.5-23.4-26-2.8-3.6-16.9-12.9-.2-12.9 13.1 32.7 58 29 95.8 28.1z"], - "twitter": [512, 512, [], "f099", "M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"], - "rockrms": [496, 512, [], "f3e9", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm157.4 419.5h-90l-112-131.3c-17.9-20.4-3.9-56.1 26.6-56.1h75.3l-84.6-99.3-84.3 98.9h-90L193.5 67.2c14.4-18.4 41.3-17.3 54.5 0l157.7 185.1c19 22.8 2 57.2-27.6 56.1-.6 0-74.2.2-74.2.2l101.5 118.9z"], - "pinterest": [496, 512, [], "f0d2", "M496 256c0 137-111 248-248 248-25.6 0-50.2-3.9-73.4-11.1 10.1-16.5 25.2-43.5 30.8-65 3-11.6 15.4-59 15.4-59 8.1 15.4 31.7 28.5 56.8 28.5 74.8 0 128.7-68.8 128.7-154.3 0-81.9-66.9-143.2-152.9-143.2-107 0-163.9 71.8-163.9 150.1 0 36.4 19.4 81.7 50.3 96.1 4.7 2.2 7.2 1.2 8.3-3.3.8-3.4 5-20.3 6.9-28.1.6-2.5.3-4.7-1.7-7.1-10.1-12.5-18.3-35.3-18.3-56.6 0-54.7 41.4-107.6 112-107.6 60.9 0 103.6 41.5 103.6 100.9 0 67.1-33.9 113.6-78 113.6-24.3 0-42.6-20.1-36.7-44.8 7-29.5 20.5-61.3 20.5-82.6 0-19-10.2-34.9-31.4-34.9-24.9 0-44.9 25.7-44.9 60.2 0 22 7.4 36.8 7.4 36.8s-24.5 103.8-29 123.2c-5 21.4-3 51.6-.9 71.2C65.4 450.9 0 361.1 0 256 0 119 111 8 248 8s248 111 248 248z"], - "buffer": [448, 512, [], "f837", "M427.84 380.67l-196.5 97.82a18.6 18.6 0 0 1-14.67 0L20.16 380.67c-4-2-4-5.28 0-7.29L67.22 350a18.65 18.65 0 0 1 14.69 0l134.76 67a18.51 18.51 0 0 0 14.67 0l134.76-67a18.62 18.62 0 0 1 14.68 0l47.06 23.43c4.05 1.96 4.05 5.24 0 7.24zm0-136.53l-47.06-23.43a18.62 18.62 0 0 0-14.68 0l-134.76 67.08a18.68 18.68 0 0 1-14.67 0L81.91 220.71a18.65 18.65 0 0 0-14.69 0l-47.06 23.43c-4 2-4 5.29 0 7.31l196.51 97.8a18.6 18.6 0 0 0 14.67 0l196.5-97.8c4.05-2.02 4.05-5.3 0-7.31zM20.16 130.42l196.5 90.29a20.08 20.08 0 0 0 14.67 0l196.51-90.29c4-1.86 4-4.89 0-6.74L231.33 33.4a19.88 19.88 0 0 0-14.67 0l-196.5 90.28c-4.05 1.85-4.05 4.88 0 6.74z"], - "npm": [576, 512, [], "f3d4", "M288 288h-32v-64h32v64zm288-128v192H288v32H160v-32H0V160h576zm-416 32H32v128h64v-96h32v96h32V192zm160 0H192v160h64v-32h64V192zm224 0H352v128h64v-96h32v96h32v-96h32v96h32V192z"], - "yammer": [512, 512, [], "f840", "M500.676,159.486a12.779,12.779,0,0,0-6.4-8.282,13.954,13.954,0,0,0-10.078-1.125L457.8,156.7l-.043-.2-22.3,5.785-1.243.333-.608-2.17A369.037,369.037,0,0,0,347.538,4.289a14.1,14.1,0,0,0-19.784-.463l-102.9,102.747H24.947A24.9,24.9,0,0,0,0,131.417V380.38a24.963,24.963,0,0,0,24.918,24.9H224.986L328.072,508a13.667,13.667,0,0,0,19.327,0c.126-.126.249-.255.37-.385a368.025,368.025,0,0,0,69.577-107.374,403.45,403.45,0,0,0,17.3-50.8v-.028l20.406,5.336.029-.073L483.345,362a20.253,20.253,0,0,0,2.619.5,13.359,13.359,0,0,0,4.139-.072,13.5,13.5,0,0,0,10.515-9.924,415.855,415.855,0,0,0,.058-193.013ZM337.125,24.65l.013.014h-.013Zm-110.2,165.161L174.311,281.1a11.338,11.338,0,0,0-1.489,5.655v46.189a22.04,22.04,0,0,1-22.041,22h-3.4A22.068,22.068,0,0,1,125.3,332.962V287.294a11.532,11.532,0,0,0-1.388-5.51l-51.6-92.2a21.988,21.988,0,0,1,19.264-32.726h3.268a22.059,22.059,0,0,1,19.611,11.916l36.357,70.281,37.515-70.512a22.066,22.066,0,0,1,38.556-.695,21.7,21.7,0,0,1,0,21.967ZM337.145,24.673a348.147,348.147,0,0,1,75.8,141.335l.564,1.952-114.134,29.6V131.417a25.006,25.006,0,0,0-24.947-24.9H255.067Zm60.5,367.305v-.043l-.014.014a347.19,347.19,0,0,1-60.177,95.227l-82.2-81.893h19.177a24.978,24.978,0,0,0,24.947-24.9v-66.2l114.6,29.862A385.191,385.191,0,0,1,397.648,391.978Zm84-52.45.015.014-50.618-13.131L299.379,292.1V219.572l119.746-30.99,4.468-1.157,39.54-10.253,18.511-4.816A393,393,0,0,1,481.644,339.528Z"], - "btc": [384, 512, [], "f15a", "M310.204 242.638c27.73-14.18 45.377-39.39 41.28-81.3-5.358-57.351-52.458-76.573-114.85-81.929V0h-48.528v77.203c-12.605 0-25.525.315-38.444.63V0h-48.528v79.409c-17.842.539-38.622.276-97.37 0v51.678c38.314-.678 58.417-3.14 63.023 21.427v217.429c-2.925 19.492-18.524 16.685-53.255 16.071L3.765 443.68c88.481 0 97.37.315 97.37.315V512h48.528v-67.06c13.234.315 26.154.315 38.444.315V512h48.528v-68.005c81.299-4.412 135.647-24.894 142.895-101.467 5.671-61.446-23.32-88.862-69.326-99.89zM150.608 134.553c27.415 0 113.126-8.507 113.126 48.528 0 54.515-85.71 48.212-113.126 48.212v-96.74zm0 251.776V279.821c32.772 0 133.127-9.138 133.127 53.255-.001 60.186-100.355 53.253-133.127 53.253z"], - "dribbble": [512, 512, [], "f17d", "M256 8C119.252 8 8 119.252 8 256s111.252 248 248 248 248-111.252 248-248S392.748 8 256 8zm163.97 114.366c29.503 36.046 47.369 81.957 47.835 131.955-6.984-1.477-77.018-15.682-147.502-6.818-5.752-14.041-11.181-26.393-18.617-41.614 78.321-31.977 113.818-77.482 118.284-83.523zM396.421 97.87c-3.81 5.427-35.697 48.286-111.021 76.519-34.712-63.776-73.185-116.168-79.04-124.008 67.176-16.193 137.966 1.27 190.061 47.489zm-230.48-33.25c5.585 7.659 43.438 60.116 78.537 122.509-99.087 26.313-186.36 25.934-195.834 25.809C62.38 147.205 106.678 92.573 165.941 64.62zM44.17 256.323c0-2.166.043-4.322.108-6.473 9.268.19 111.92 1.513 217.706-30.146 6.064 11.868 11.857 23.915 17.174 35.949-76.599 21.575-146.194 83.527-180.531 142.306C64.794 360.405 44.17 310.73 44.17 256.323zm81.807 167.113c22.127-45.233 82.178-103.622 167.579-132.756 29.74 77.283 42.039 142.053 45.189 160.638-68.112 29.013-150.015 21.053-212.768-27.882zm248.38 8.489c-2.171-12.886-13.446-74.897-41.152-151.033 66.38-10.626 124.7 6.768 131.947 9.055-9.442 58.941-43.273 109.844-90.795 141.978z"], - "stumbleupon-circle": [496, 512, [], "f1a3", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 177.5c-9.8 0-17.8 8-17.8 17.8v106.9c0 40.9-33.9 73.9-74.9 73.9-41.4 0-74.9-33.5-74.9-74.9v-46.5h57.3v45.8c0 10 8 17.8 17.8 17.8s17.8-7.9 17.8-17.8V200.1c0-40 34.2-72.1 74.7-72.1 40.7 0 74.7 32.3 74.7 72.6v23.7l-34.1 10.1-22.9-10.7v-20.6c.1-9.6-7.9-17.6-17.7-17.6zm167.6 123.6c0 41.4-33.5 74.9-74.9 74.9-41.2 0-74.9-33.2-74.9-74.2V263l22.9 10.7 34.1-10.1v47.1c0 9.8 8 17.6 17.8 17.6s17.8-7.9 17.8-17.6v-48h57.3c-.1 45.9-.1 46.4-.1 46.4z"], - "internet-explorer": [512, 512, [], "f26b", "M483.049 159.706c10.855-24.575 21.424-60.438 21.424-87.871 0-72.722-79.641-98.371-209.673-38.577-107.632-7.181-211.221 73.67-237.098 186.457 30.852-34.862 78.271-82.298 121.977-101.158C125.404 166.85 79.128 228.002 43.992 291.725 23.246 329.651 0 390.94 0 436.747c0 98.575 92.854 86.5 180.251 42.006 31.423 15.43 66.559 15.573 101.695 15.573 97.124 0 184.249-54.294 216.814-146.022H377.927c-52.509 88.593-196.819 52.996-196.819-47.436H509.9c6.407-43.581-1.655-95.715-26.851-141.162zM64.559 346.877c17.711 51.15 53.703 95.871 100.266 123.304-88.741 48.94-173.267 29.096-100.266-123.304zm115.977-108.873c2-55.151 50.276-94.871 103.98-94.871 53.418 0 101.981 39.72 103.981 94.871H180.536zm184.536-187.6c21.425-10.287 48.563-22.003 72.558-22.003 31.422 0 54.274 21.717 54.274 53.722 0 20.003-7.427 49.007-14.569 67.867-26.28-42.292-65.986-81.584-112.263-99.586z"], - "stubber": [448, 512, [], "e5c7", "M136.5 294.2l58.8 22.9c9.1-36.8 25.4-61.1 55-61.1c49.4 0 71.4 63.6 142.4 63.6c15.6 0 35.9-2.8 55.3-13.3V368c0 61.8-50.4 112-112.3 112H0l41.8-56L0 368l41.7-56L0 256.1l41.8-56L0 144.1 41.8 88 0 32H335.7C397.6 32 448 82.3 448 144.1v51.3c-9.2 36.3-25.9 60.6-55 60.6c-49.6 0-71.6-63.5-142.4-63.5c-35.9 0-95.2 14.6-114.1 101.6h0z"], - "telegram": [496, 512, [62462, "telegram-plane"], "f2c6", "M248,8C111.033,8,0,119.033,0,256S111.033,504,248,504,496,392.967,496,256,384.967,8,248,8ZM362.952,176.66c-3.732,39.215-19.881,134.378-28.1,178.3-3.476,18.584-10.322,24.816-16.948,25.425-14.4,1.326-25.338-9.517-39.287-18.661-21.827-14.308-34.158-23.215-55.346-37.177-24.485-16.135-8.612-25,5.342-39.5,3.652-3.793,67.107-61.51,68.335-66.746.153-.655.3-3.1-1.154-4.384s-3.59-.849-5.135-.5q-3.283.746-104.608,69.142-14.845,10.194-26.894,9.934c-8.855-.191-25.888-5.006-38.551-9.123-15.531-5.048-27.875-7.717-26.8-16.291q.84-6.7,18.45-13.7,108.446-47.248,144.628-62.3c68.872-28.647,83.183-33.623,92.511-33.789,2.052-.034,6.639.474,9.61,2.885a10.452,10.452,0,0,1,3.53,6.716A43.765,43.765,0,0,1,362.952,176.66Z"], - "old-republic": [496, 512, [], "f510", "M235.76 10.23c7.5-.31 15-.28 22.5-.09 3.61.14 7.2.4 10.79.73 4.92.27 9.79 1.03 14.67 1.62 2.93.43 5.83.98 8.75 1.46 7.9 1.33 15.67 3.28 23.39 5.4 12.24 3.47 24.19 7.92 35.76 13.21 26.56 12.24 50.94 29.21 71.63 49.88 20.03 20.09 36.72 43.55 48.89 69.19 1.13 2.59 2.44 5.1 3.47 7.74 2.81 6.43 5.39 12.97 7.58 19.63 4.14 12.33 7.34 24.99 9.42 37.83.57 3.14 1.04 6.3 1.4 9.47.55 3.83.94 7.69 1.18 11.56.83 8.34.84 16.73.77 25.1-.07 4.97-.26 9.94-.75 14.89-.24 3.38-.51 6.76-.98 10.12-.39 2.72-.63 5.46-1.11 8.17-.9 5.15-1.7 10.31-2.87 15.41-4.1 18.5-10.3 36.55-18.51 53.63-15.77 32.83-38.83 62.17-67.12 85.12a246.503 246.503 0 0 1-56.91 34.86c-6.21 2.68-12.46 5.25-18.87 7.41-3.51 1.16-7.01 2.38-10.57 3.39-6.62 1.88-13.29 3.64-20.04 5-4.66.91-9.34 1.73-14.03 2.48-5.25.66-10.5 1.44-15.79 1.74-6.69.66-13.41.84-20.12.81-6.82.03-13.65-.12-20.45-.79-3.29-.23-6.57-.5-9.83-.95-2.72-.39-5.46-.63-8.17-1.11-4.12-.72-8.25-1.37-12.35-2.22-4.25-.94-8.49-1.89-12.69-3.02-8.63-2.17-17.08-5.01-25.41-8.13-10.49-4.12-20.79-8.75-30.64-14.25-2.14-1.15-4.28-2.29-6.35-3.57-11.22-6.58-21.86-14.1-31.92-22.34-34.68-28.41-61.41-66.43-76.35-108.7-3.09-8.74-5.71-17.65-7.8-26.68-1.48-6.16-2.52-12.42-3.58-18.66-.4-2.35-.61-4.73-.95-7.09-.6-3.96-.75-7.96-1.17-11.94-.8-9.47-.71-18.99-.51-28.49.14-3.51.34-7.01.7-10.51.31-3.17.46-6.37.92-9.52.41-2.81.65-5.65 1.16-8.44.7-3.94 1.3-7.9 2.12-11.82 3.43-16.52 8.47-32.73 15.26-48.18 1.15-2.92 2.59-5.72 3.86-8.59 8.05-16.71 17.9-32.56 29.49-47.06 20-25.38 45.1-46.68 73.27-62.47 7.5-4.15 15.16-8.05 23.07-11.37 15.82-6.88 32.41-11.95 49.31-15.38 3.51-.67 7.04-1.24 10.56-1.85 2.62-.47 5.28-.7 7.91-1.08 3.53-.53 7.1-.68 10.65-1.04 2.46-.24 4.91-.36 7.36-.51m8.64 24.41c-9.23.1-18.43.99-27.57 2.23-7.3 1.08-14.53 2.6-21.71 4.3-13.91 3.5-27.48 8.34-40.46 14.42-10.46 4.99-20.59 10.7-30.18 17.22-4.18 2.92-8.4 5.8-12.34 9.03-5.08 3.97-9.98 8.17-14.68 12.59-2.51 2.24-4.81 4.7-7.22 7.06-28.22 28.79-48.44 65.39-57.5 104.69-2.04 8.44-3.54 17.02-4.44 25.65-1.1 8.89-1.44 17.85-1.41 26.8.11 7.14.38 14.28 1.22 21.37.62 7.12 1.87 14.16 3.2 21.18 1.07 4.65 2.03 9.32 3.33 13.91 6.29 23.38 16.5 45.7 30.07 65.75 8.64 12.98 18.78 24.93 29.98 35.77 16.28 15.82 35.05 29.04 55.34 39.22 7.28 3.52 14.66 6.87 22.27 9.63 5.04 1.76 10.06 3.57 15.22 4.98 11.26 3.23 22.77 5.6 34.39 7.06 2.91.29 5.81.61 8.72.9 13.82 1.08 27.74 1 41.54-.43 4.45-.6 8.92-.99 13.35-1.78 3.63-.67 7.28-1.25 10.87-2.1 4.13-.98 8.28-1.91 12.36-3.07 26.5-7.34 51.58-19.71 73.58-36.2 15.78-11.82 29.96-25.76 42.12-41.28 3.26-4.02 6.17-8.31 9.13-12.55 3.39-5.06 6.58-10.25 9.6-15.54 2.4-4.44 4.74-8.91 6.95-13.45 5.69-12.05 10.28-24.62 13.75-37.49 2.59-10.01 4.75-20.16 5.9-30.45 1.77-13.47 1.94-27.1 1.29-40.65-.29-3.89-.67-7.77-1-11.66-2.23-19.08-6.79-37.91-13.82-55.8-5.95-15.13-13.53-29.63-22.61-43.13-12.69-18.8-28.24-35.68-45.97-49.83-25.05-20-54.47-34.55-85.65-42.08-7.78-1.93-15.69-3.34-23.63-4.45-3.91-.59-7.85-.82-11.77-1.24-7.39-.57-14.81-.72-22.22-.58zM139.26 83.53c13.3-8.89 28.08-15.38 43.3-20.18-3.17 1.77-6.44 3.38-9.53 5.29-11.21 6.68-21.52 14.9-30.38 24.49-6.8 7.43-12.76 15.73-17.01 24.89-3.29 6.86-5.64 14.19-6.86 21.71-.93 4.85-1.3 9.81-1.17 14.75.13 13.66 4.44 27.08 11.29 38.82 5.92 10.22 13.63 19.33 22.36 27.26 4.85 4.36 10.24 8.09 14.95 12.6 2.26 2.19 4.49 4.42 6.43 6.91 2.62 3.31 4.89 6.99 5.99 11.1.9 3.02.66 6.2.69 9.31.02 4.1-.04 8.2.03 12.3.14 3.54-.02 7.09.11 10.63.08 2.38.02 4.76.05 7.14.16 5.77.06 11.53.15 17.3.11 2.91.02 5.82.13 8.74.03 1.63.13 3.28-.03 4.91-.91.12-1.82.18-2.73.16-10.99 0-21.88-2.63-31.95-6.93-6-2.7-11.81-5.89-17.09-9.83-5.75-4.19-11.09-8.96-15.79-14.31-6.53-7.24-11.98-15.39-16.62-23.95-1.07-2.03-2.24-4.02-3.18-6.12-1.16-2.64-2.62-5.14-3.67-7.82-4.05-9.68-6.57-19.94-8.08-30.31-.49-4.44-1.09-8.88-1.2-13.35-.7-15.73.84-31.55 4.67-46.82 2.12-8.15 4.77-16.18 8.31-23.83 6.32-14.2 15.34-27.18 26.3-38.19 6.28-6.2 13.13-11.84 20.53-16.67zm175.37-20.12c2.74.74 5.41 1.74 8.09 2.68 6.36 2.33 12.68 4.84 18.71 7.96 13.11 6.44 25.31 14.81 35.82 24.97 10.2 9.95 18.74 21.6 25.14 34.34 1.28 2.75 2.64 5.46 3.81 8.26 6.31 15.1 10 31.26 11.23 47.57.41 4.54.44 9.09.45 13.64.07 11.64-1.49 23.25-4.3 34.53-1.97 7.27-4.35 14.49-7.86 21.18-3.18 6.64-6.68 13.16-10.84 19.24-6.94 10.47-15.6 19.87-25.82 27.22-10.48 7.64-22.64 13.02-35.4 15.38-3.51.69-7.08 1.08-10.66 1.21-1.85.06-3.72.16-5.56-.1-.28-2.15 0-4.31-.01-6.46-.03-3.73.14-7.45.1-11.17.19-7.02.02-14.05.21-21.07.03-2.38-.03-4.76.03-7.14.17-5.07-.04-10.14.14-15.21.1-2.99-.24-6.04.51-8.96.66-2.5 1.78-4.86 3.09-7.08 4.46-7.31 11.06-12.96 17.68-18.26 5.38-4.18 10.47-8.77 15.02-13.84 7.68-8.37 14.17-17.88 18.78-28.27 2.5-5.93 4.52-12.1 5.55-18.46.86-4.37 1.06-8.83 1.01-13.27-.02-7.85-1.4-15.65-3.64-23.17-1.75-5.73-4.27-11.18-7.09-16.45-3.87-6.93-8.65-13.31-13.96-19.2-9.94-10.85-21.75-19.94-34.6-27.1-1.85-1.02-3.84-1.82-5.63-2.97zm-100.8 58.45c.98-1.18 1.99-2.33 3.12-3.38-.61.93-1.27 1.81-1.95 2.68-3.1 3.88-5.54 8.31-7.03 13.06-.87 3.27-1.68 6.6-1.73 10-.07 2.52-.08 5.07.32 7.57 1.13 7.63 4.33 14.85 8.77 21.12 2 2.7 4.25 5.27 6.92 7.33 1.62 1.27 3.53 2.09 5.34 3.05 3.11 1.68 6.32 3.23 9.07 5.48 2.67 2.09 4.55 5.33 4.4 8.79-.01 73.67 0 147.34-.01 221.02 0 1.35-.08 2.7.04 4.04.13 1.48.82 2.83 1.47 4.15.86 1.66 1.78 3.34 3.18 4.62.85.77 1.97 1.4 3.15 1.24 1.5-.2 2.66-1.35 3.45-2.57.96-1.51 1.68-3.16 2.28-4.85.76-2.13.44-4.42.54-6.63.14-4.03-.02-8.06.14-12.09.03-5.89.03-11.77.06-17.66.14-3.62.03-7.24.11-10.86.15-4.03-.02-8.06.14-12.09.03-5.99.03-11.98.07-17.97.14-3.62.02-7.24.11-10.86.14-3.93-.02-7.86.14-11.78.03-5.99.03-11.98.06-17.97.16-3.94-.01-7.88.19-11.82.29 1.44.13 2.92.22 4.38.19 3.61.42 7.23.76 10.84.32 3.44.44 6.89.86 10.32.37 3.1.51 6.22.95 9.31.57 4.09.87 8.21 1.54 12.29 1.46 9.04 2.83 18.11 5.09 26.99 1.13 4.82 2.4 9.61 4 14.3 2.54 7.9 5.72 15.67 10.31 22.62 1.73 2.64 3.87 4.98 6.1 7.21.27.25.55.51.88.71.6.25 1.31-.07 1.7-.57.71-.88 1.17-1.94 1.7-2.93 4.05-7.8 8.18-15.56 12.34-23.31.7-1.31 1.44-2.62 2.56-3.61 1.75-1.57 3.84-2.69 5.98-3.63 2.88-1.22 5.9-2.19 9.03-2.42 6.58-.62 13.11.75 19.56 1.85 3.69.58 7.4 1.17 11.13 1.41 3.74.1 7.48.05 11.21-.28 8.55-.92 16.99-2.96 24.94-6.25 5.3-2.24 10.46-4.83 15.31-7.93 11.46-7.21 21.46-16.57 30.04-27.01 1.17-1.42 2.25-2.9 3.46-4.28-1.2 3.24-2.67 6.37-4.16 9.48-1.25 2.9-2.84 5.61-4.27 8.42-5.16 9.63-11.02 18.91-17.75 27.52-4.03 5.21-8.53 10.05-13.33 14.57-6.64 6.05-14.07 11.37-22.43 14.76-8.21 3.37-17.31 4.63-26.09 3.29-3.56-.58-7.01-1.69-10.41-2.88-2.79-.97-5.39-2.38-8.03-3.69-3.43-1.71-6.64-3.81-9.71-6.08 2.71 3.06 5.69 5.86 8.7 8.61 4.27 3.76 8.74 7.31 13.63 10.23 3.98 2.45 8.29 4.4 12.84 5.51 1.46.37 2.96.46 4.45.6-1.25 1.1-2.63 2.04-3.99 2.98-9.61 6.54-20.01 11.86-30.69 16.43-20.86 8.7-43.17 13.97-65.74 15.34-4.66.24-9.32.36-13.98.36-4.98-.11-9.97-.13-14.92-.65-11.2-.76-22.29-2.73-33.17-5.43-10.35-2.71-20.55-6.12-30.3-10.55-8.71-3.86-17.12-8.42-24.99-13.79-1.83-1.31-3.74-2.53-5.37-4.08 6.6-1.19 13.03-3.39 18.99-6.48 5.74-2.86 10.99-6.66 15.63-11.07 2.24-2.19 4.29-4.59 6.19-7.09-3.43 2.13-6.93 4.15-10.62 5.78-4.41 2.16-9.07 3.77-13.81 5.02-5.73 1.52-11.74 1.73-17.61 1.14-8.13-.95-15.86-4.27-22.51-8.98-4.32-2.94-8.22-6.43-11.96-10.06-9.93-10.16-18.2-21.81-25.66-33.86-3.94-6.27-7.53-12.75-11.12-19.22-1.05-2.04-2.15-4.05-3.18-6.1 2.85 2.92 5.57 5.97 8.43 8.88 8.99 8.97 18.56 17.44 29.16 24.48 7.55 4.9 15.67 9.23 24.56 11.03 3.11.73 6.32.47 9.47.81 2.77.28 5.56.2 8.34.3 5.05.06 10.11.04 15.16-.16 3.65-.16 7.27-.66 10.89-1.09 2.07-.25 4.11-.71 6.14-1.2 3.88-.95 8.11-.96 11.83.61 4.76 1.85 8.44 5.64 11.38 9.71 2.16 3.02 4.06 6.22 5.66 9.58 1.16 2.43 2.46 4.79 3.55 7.26 1 2.24 2.15 4.42 3.42 6.52.67 1.02 1.4 2.15 2.62 2.55 1.06-.75 1.71-1.91 2.28-3.03 2.1-4.16 3.42-8.65 4.89-13.05 2.02-6.59 3.78-13.27 5.19-20.02 2.21-9.25 3.25-18.72 4.54-28.13.56-3.98.83-7.99 1.31-11.97.87-10.64 1.9-21.27 2.24-31.94.08-1.86.24-3.71.25-5.57.01-4.35.25-8.69.22-13.03-.01-2.38-.01-4.76 0-7.13.05-5.07-.2-10.14-.22-15.21-.2-6.61-.71-13.2-1.29-19.78-.73-5.88-1.55-11.78-3.12-17.51-2.05-7.75-5.59-15.03-9.8-21.82-3.16-5.07-6.79-9.88-11.09-14.03-3.88-3.86-8.58-7.08-13.94-8.45-1.5-.41-3.06-.45-4.59-.64.07-2.99.7-5.93 1.26-8.85 1.59-7.71 3.8-15.3 6.76-22.6 1.52-4.03 3.41-7.9 5.39-11.72 3.45-6.56 7.62-12.79 12.46-18.46zm31.27 1.7c.35-.06.71-.12 1.07-.19.19 1.79.09 3.58.1 5.37v38.13c-.01 1.74.13 3.49-.15 5.22-.36-.03-.71-.05-1.06-.05-.95-3.75-1.72-7.55-2.62-11.31-.38-1.53-.58-3.09-1.07-4.59-1.7-.24-3.43-.17-5.15-.2-5.06-.01-10.13 0-15.19-.01-1.66-.01-3.32.09-4.98-.03-.03-.39-.26-.91.16-1.18 1.28-.65 2.72-.88 4.06-1.35 3.43-1.14 6.88-2.16 10.31-3.31 1.39-.48 2.9-.72 4.16-1.54.04-.56.02-1.13-.05-1.68-1.23-.55-2.53-.87-3.81-1.28-3.13-1.03-6.29-1.96-9.41-3.02-1.79-.62-3.67-1-5.41-1.79-.03-.37-.07-.73-.11-1.09 5.09-.19 10.2.06 15.3-.12 3.36-.13 6.73.08 10.09-.07.12-.39.26-.77.37-1.16 1.08-4.94 2.33-9.83 3.39-14.75zm5.97-.2c.36.05.72.12 1.08.2.98 3.85 1.73 7.76 2.71 11.61.36 1.42.56 2.88 1.03 4.27 2.53.18 5.07-.01 7.61.05 5.16.12 10.33.12 15.49.07.76-.01 1.52.03 2.28.08-.04.36-.07.72-.1 1.08-1.82.83-3.78 1.25-5.67 1.89-3.73 1.23-7.48 2.39-11.22 3.57-.57.17-1.12.42-1.67.64-.15.55-.18 1.12-.12 1.69.87.48 1.82.81 2.77 1.09 4.88 1.52 9.73 3.14 14.63 4.6.38.13.78.27 1.13.49.4.27.23.79.15 1.18-1.66.13-3.31.03-4.97.04-5.17.01-10.33-.01-15.5.01-1.61.03-3.22-.02-4.82.21-.52 1.67-.72 3.42-1.17 5.11-.94 3.57-1.52 7.24-2.54 10.78-.36.01-.71.02-1.06.06-.29-1.73-.15-3.48-.15-5.22v-38.13c.02-1.78-.08-3.58.11-5.37zM65.05 168.33c1.12-2.15 2.08-4.4 3.37-6.46-1.82 7.56-2.91 15.27-3.62 23-.8 7.71-.85 15.49-.54 23.23 1.05 19.94 5.54 39.83 14.23 57.88 2.99 5.99 6.35 11.83 10.5 17.11 6.12 7.47 12.53 14.76 19.84 21.09 4.8 4.1 9.99 7.78 15.54 10.8 3.27 1.65 6.51 3.39 9.94 4.68 5.01 2.03 10.19 3.61 15.42 4.94 3.83.96 7.78 1.41 11.52 2.71 5 1.57 9.47 4.61 13.03 8.43 4.93 5.23 8.09 11.87 10.2 18.67.99 2.9 1.59 5.91 2.17 8.92.15.75.22 1.52.16 2.29-6.5 2.78-13.26 5.06-20.26 6.18-4.11.78-8.29.99-12.46 1.08-10.25.24-20.47-1.76-30.12-5.12-3.74-1.42-7.49-2.85-11.03-4.72-8.06-3.84-15.64-8.7-22.46-14.46-2.92-2.55-5.83-5.13-8.4-8.03-9.16-9.83-16.3-21.41-21.79-33.65-2.39-5.55-4.61-11.18-6.37-16.96-1.17-3.94-2.36-7.89-3.26-11.91-.75-2.94-1.22-5.95-1.87-8.92-.46-2.14-.69-4.32-1.03-6.48-.85-5.43-1.28-10.93-1.33-16.43.11-6.18.25-12.37 1.07-18.5.4-2.86.67-5.74 1.15-8.6.98-5.7 2.14-11.37 3.71-16.93 3.09-11.65 7.48-22.95 12.69-33.84zm363.73-6.44c1.1 1.66 1.91 3.48 2.78 5.26 2.1 4.45 4.24 8.9 6.02 13.49 7.61 18.76 12.3 38.79 13.04 59.05.02 1.76.07 3.52.11 5.29.13 9.57-1.27 19.09-3.18 28.45-.73 3.59-1.54 7.17-2.58 10.69-4.04 14.72-10 29-18.41 41.78-8.21 12.57-19.01 23.55-31.84 31.41-5.73 3.59-11.79 6.64-18.05 9.19-5.78 2.19-11.71 4.03-17.8 5.11-6.4 1.05-12.91 1.52-19.4 1.23-7.92-.48-15.78-2.07-23.21-4.85-1.94-.8-3.94-1.46-5.84-2.33-.21-1.51.25-2.99.53-4.46 1.16-5.74 3.03-11.36 5.7-16.58 2.37-4.51 5.52-8.65 9.46-11.9 2.43-2.05 5.24-3.61 8.16-4.83 3.58-1.5 7.47-1.97 11.24-2.83 7.23-1.71 14.37-3.93 21.15-7 10.35-4.65 19.71-11.38 27.65-19.46 1.59-1.61 3.23-3.18 4.74-4.87 3.37-3.76 6.71-7.57 9.85-11.53 7.48-10.07 12.82-21.59 16.71-33.48 1.58-5.3 3.21-10.6 4.21-16.05.63-2.87 1.04-5.78 1.52-8.68.87-6.09 1.59-12.22 1.68-18.38.12-6.65.14-13.32-.53-19.94-.73-7.99-1.87-15.96-3.71-23.78z"], - "odysee": [512, 512, [], "e5c6", "M406.7 463c-42.3 30.8-94.4 49-150.7 49C144.9 512 50.3 441.2 14.9 342.2c2.4 1.7 5.9 3.6 7.9 4.4c16.3 7.4 40.1-5.4 62.9-28.7c6.9-6.9 14.4-12.4 22.8-17.3c18.3-11.9 37.6-20.8 58.4-27.2c0 0 22.3 34.2 43.1 74.8s-22.3 54-27.2 54c-.3 0-.8 0-1.5-.1c-11-.5-70-3-56 51.1c14.9 57.4 97.5 36.6 139.6 8.9s31.7-118.3 31.7-118.3c41.1-6.4 54 37.1 57.9 59.4c.8 4.6 1.1 9.9 1.4 15.5c1.1 21.2 2.3 45.6 35.3 46.4c5.3 0 10.6-.8 15.5-2zm-95.3-23.7c-2-.5-3.5-2.5-3-5c1-2.5 3-3.5 5-3s3.5 3 3 5s-2.5 3.5-5 3zm-207-95.6c1.5-.5 3.5 1 4 3c0 2-1 4-3 4c-1.5 .5-3.5-1-4-3c-.5-1.5 1-3.5 3-4zM451.8 421C489.3 376.4 512 318.8 512 256c0-67.5-26.1-128.9-68.8-174.7c-.1 23.5-6.1 48.2-16.8 69.2c-11.9 20.3-49 58.9-69.8 78.7c-.7 .3-1.1 .9-1.5 1.4c-.2 .2-.3 .4-.5 .6c-5 6.9-4 16.8 3 21.8c21.3 15.8 56.4 45.6 59.4 72.8c3.5 34.9 27.9 75.6 34.2 86.2l0 0c.8 1.3 1.3 2.1 1.4 2.4c0 2.2-.4 4.3-.8 6.5zM390.7 251c-.5 3 1 5.9 4 6.4s5.9-1 6.4-4s-1-5.9-4-6.4c-3-1-5.9 1-6.4 4zm61.4-60.9l-11.4 5.4-3 12.9-5.4-11.4-12.9-3 11.4-5.4 3-12.9 5.4 11.4 12.9 3zM395.5 41.3c-16.2 8.2-22.1 32.8-29 61.4l0 0c-.3 1.4-.7 2.8-1 4.2c-9.5 38.5-30.6 37.6-41.7 37.2c-1.1 0-2-.1-2.9-.1c-5.1 0-6-4-8.9-17.1c-2.6-12.1-6.9-32-17.9-63.6C271.4-2.5 211.4 13.9 165.9 41.1C110.6 74.2 131.5 143 146.1 190.5c.7 2.2 1.4 4.4 2 6.6c-4 4-13.8 7.5-26 11.9c-12.1 4.3-26.6 9.5-40.3 16.9C47.9 243.9 11.5 274.9 2 288.5C.7 277.8 0 267 0 256C0 114.6 114.6 0 256 0c51.4 0 99.4 15.2 139.5 41.3zM58.9 189.6c-1.5-2-4.5-3-6.4-1.5s-3 4.5-1.5 6.4s4.5 3 6.4 1.5c2.5-1.5 3-4.5 1.5-6.4zM327.3 64.9c2-1.5 5-.5 6.4 1.5c1.5 2.5 1 5.4-1.5 6.4c-2 1.5-5 .5-6.4-1.5s-.5-5 1.5-6.4zM95.1 105c-.5 1.5 .5 3 2 3c1.5 .5 3-.5 3-2c.5-1.5-.5-3-2-3s-3 .5-3 2zm84.7-.5c-3.5-43.1 37.1-54 37.1-54c44.1-15.4 56 5.9 66.4 37.6s3 42.6-38.6 58.9s-61.9-4.5-64.9-42.6zm89.6 14.9h1c2.5 0 5-2 5-5c2-6.9 1-14.4-2-20.8c-1.5-2-4-3.5-6.4-2.5c-3 1-4.5 4-3.5 6.9c2 4.5 3 9.9 1.5 14.9c-.5 3 1.5 5.9 4.5 6.4zm-9.9-41.6c-2 0-4-1-5-3s-2-3.5-3-5c-2-2-2-5.4 0-7.4s5.4-2 7.4 0c2 2.5 3.5 5 5 7.4s.5 5.9-2.5 7.4c-.6 0-1 .2-1.3 .3c-.2 .1-.4 .2-.6 .2z"], - "square-whatsapp": [448, 512, ["whatsapp-square"], "f40c", "M92.1 254.6c0 24.9 7 49.2 20.2 70.1l3.1 5-13.3 48.6L152 365.2l4.8 2.9c20.2 12 43.4 18.4 67.1 18.4h.1c72.6 0 133.3-59.1 133.3-131.8c0-35.2-15.2-68.3-40.1-93.2c-25-25-58-38.7-93.2-38.7c-72.7 0-131.8 59.1-131.9 131.8zM274.8 330c-12.6 1.9-22.4 .9-47.5-9.9c-36.8-15.9-61.8-51.5-66.9-58.7c-.4-.6-.7-.9-.8-1.1c-2-2.6-16.2-21.5-16.2-41c0-18.4 9-27.9 13.2-32.3c.3-.3 .5-.5 .7-.8c3.6-4 7.9-5 10.6-5c2.6 0 5.3 0 7.6 .1c.3 0 .5 0 .8 0c2.3 0 5.2 0 8.1 6.8c1.2 2.9 3 7.3 4.9 11.8c3.3 8 6.7 16.3 7.3 17.6c1 2 1.7 4.3 .3 6.9c-3.4 6.8-6.9 10.4-9.3 13c-3.1 3.2-4.5 4.7-2.3 8.6c15.3 26.3 30.6 35.4 53.9 47.1c4 2 6.3 1.7 8.6-1c2.3-2.6 9.9-11.6 12.5-15.5c2.6-4 5.3-3.3 8.9-2s23.1 10.9 27.1 12.9c.8 .4 1.5 .7 2.1 1c2.8 1.4 4.7 2.3 5.5 3.6c.9 1.9 .9 9.9-2.4 19.1c-3.3 9.3-19.1 17.7-26.7 18.8zM448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM148.1 393.9L64 416l22.5-82.2c-13.9-24-21.2-51.3-21.2-79.3C65.4 167.1 136.5 96 223.9 96c42.4 0 82.2 16.5 112.2 46.5c29.9 30 47.9 69.8 47.9 112.2c0 87.4-72.7 158.5-160.1 158.5c-26.6 0-52.7-6.7-75.8-19.3z"], - "node-js": [448, 512, [], "f3d3", "M224 508c-6.7 0-13.5-1.8-19.4-5.2l-61.7-36.5c-9.2-5.2-4.7-7-1.7-8 12.3-4.3 14.8-5.2 27.9-12.7 1.4-.8 3.2-.5 4.6.4l47.4 28.1c1.7 1 4.1 1 5.7 0l184.7-106.6c1.7-1 2.8-3 2.8-5V149.3c0-2.1-1.1-4-2.9-5.1L226.8 37.7c-1.7-1-4-1-5.7 0L36.6 144.3c-1.8 1-2.9 3-2.9 5.1v213.1c0 2 1.1 4 2.9 4.9l50.6 29.2c27.5 13.7 44.3-2.4 44.3-18.7V167.5c0-3 2.4-5.3 5.4-5.3h23.4c2.9 0 5.4 2.3 5.4 5.3V378c0 36.6-20 57.6-54.7 57.6-10.7 0-19.1 0-42.5-11.6l-48.4-27.9C8.1 389.2.7 376.3.7 362.4V149.3c0-13.8 7.4-26.8 19.4-33.7L204.6 9c11.7-6.6 27.2-6.6 38.8 0l184.7 106.7c12 6.9 19.4 19.8 19.4 33.7v213.1c0 13.8-7.4 26.7-19.4 33.7L243.4 502.8c-5.9 3.4-12.6 5.2-19.4 5.2zm149.1-210.1c0-39.9-27-50.5-83.7-58-57.4-7.6-63.2-11.5-63.2-24.9 0-11.1 4.9-25.9 47.4-25.9 37.9 0 51.9 8.2 57.7 33.8.5 2.4 2.7 4.2 5.2 4.2h24c1.5 0 2.9-.6 3.9-1.7s1.5-2.6 1.4-4.1c-3.7-44.1-33-64.6-92.2-64.6-52.7 0-84.1 22.2-84.1 59.5 0 40.4 31.3 51.6 81.8 56.6 60.5 5.9 65.2 14.8 65.2 26.7 0 20.6-16.6 29.4-55.5 29.4-48.9 0-59.6-12.3-63.2-36.6-.4-2.6-2.6-4.5-5.3-4.5h-23.9c-3 0-5.3 2.4-5.3 5.3 0 31.1 16.9 68.2 97.8 68.2 58.4-.1 92-23.2 92-63.4z"], - "edge-legacy": [512, 512, [], "e078", "M25.71,228.16l.35-.48c0,.16,0,.32-.07.48Zm460.58,15.51c0-44-7.76-84.46-28.81-122.4C416.5,47.88,343.91,8,258.89,8,119,7.72,40.62,113.21,26.06,227.68c42.42-61.31,117.07-121.38,220.37-125,0,0,109.67,0,99.42,105H170c6.37-37.39,18.55-59,34.34-78.93-75.05,34.9-121.85,96.1-120.75,188.32.83,71.45,50.13,144.84,120.75,172,83.35,31.84,192.77,7.2,240.13-21.33V363.31C363.6,419.8,173.6,424.23,172.21,295.74H486.29V243.67Z"], - "slack": [448, 512, [62447, "slack-hash"], "f198", "M94.12 315.1c0 25.9-21.16 47.06-47.06 47.06S0 341 0 315.1c0-25.9 21.16-47.06 47.06-47.06h47.06v47.06zm23.72 0c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06v117.84c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06V315.1zm47.06-188.98c-25.9 0-47.06-21.16-47.06-47.06S139 32 164.9 32s47.06 21.16 47.06 47.06v47.06H164.9zm0 23.72c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06H47.06C21.16 243.96 0 222.8 0 196.9s21.16-47.06 47.06-47.06H164.9zm188.98 47.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06h-47.06V196.9zm-23.72 0c0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06V79.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06V196.9zM283.1 385.88c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06v-47.06h47.06zm0-23.72c-25.9 0-47.06-21.16-47.06-47.06 0-25.9 21.16-47.06 47.06-47.06h117.84c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06H283.1z"], - "medrt": [544, 512, [], "f3c8", "M113.7 256c0 121.8 83.9 222.8 193.5 241.1-18.7 4.5-38.2 6.9-58.2 6.9C111.4 504 0 393 0 256S111.4 8 248.9 8c20.1 0 39.6 2.4 58.2 6.9C197.5 33.2 113.7 134.2 113.7 256m297.4 100.3c-77.7 55.4-179.6 47.5-240.4-14.6 5.5 14.1 12.7 27.7 21.7 40.5 61.6 88.2 182.4 109.3 269.7 47 87.3-62.3 108.1-184.3 46.5-272.6-9-12.9-19.3-24.3-30.5-34.2 37.4 78.8 10.7 178.5-67 233.9m-218.8-244c-1.4 1-2.7 2.1-4 3.1 64.3-17.8 135.9 4 178.9 60.5 35.7 47 42.9 106.6 24.4 158 56.7-56.2 67.6-142.1 22.3-201.8-50-65.5-149.1-74.4-221.6-19.8M296 224c-4.4 0-8-3.6-8-8v-40c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v40c0 4.4-3.6 8-8 8h-40c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h40c4.4 0 8 3.6 8 8v40c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-40c0-4.4 3.6-8 8-8h40c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-40z"], - "usb": [640, 512, [], "f287", "M641.5 256c0 3.1-1.7 6.1-4.5 7.5L547.9 317c-1.4.8-2.8 1.4-4.5 1.4-1.4 0-3.1-.3-4.5-1.1-2.8-1.7-4.5-4.5-4.5-7.8v-35.6H295.7c25.3 39.6 40.5 106.9 69.6 106.9H392V354c0-5 3.9-8.9 8.9-8.9H490c5 0 8.9 3.9 8.9 8.9v89.1c0 5-3.9 8.9-8.9 8.9h-89.1c-5 0-8.9-3.9-8.9-8.9v-26.7h-26.7c-75.4 0-81.1-142.5-124.7-142.5H140.3c-8.1 30.6-35.9 53.5-69 53.5C32 327.3 0 295.3 0 256s32-71.3 71.3-71.3c33.1 0 61 22.8 69 53.5 39.1 0 43.9 9.5 74.6-60.4C255 88.7 273 95.7 323.8 95.7c7.5-20.9 27-35.6 50.4-35.6 29.5 0 53.5 23.9 53.5 53.5s-23.9 53.5-53.5 53.5c-23.4 0-42.9-14.8-50.4-35.6H294c-29.1 0-44.3 67.4-69.6 106.9h310.1v-35.6c0-3.3 1.7-6.1 4.5-7.8 2.8-1.7 6.4-1.4 8.9.3l89.1 53.5c2.8 1.1 4.5 4.1 4.5 7.2z"], - "tumblr": [320, 512, [], "f173", "M309.8 480.3c-13.6 14.5-50 31.7-97.4 31.7-120.8 0-147-88.8-147-140.6v-144H17.9c-5.5 0-10-4.5-10-10v-68c0-7.2 4.5-13.6 11.3-16 62-21.8 81.5-76 84.3-117.1.8-11 6.5-16.3 16.1-16.3h70.9c5.5 0 10 4.5 10 10v115.2h83c5.5 0 10 4.4 10 9.9v81.7c0 5.5-4.5 10-10 10h-83.4V360c0 34.2 23.7 53.6 68 35.8 4.8-1.9 9-3.2 12.7-2.2 3.5.9 5.8 3.4 7.4 7.9l22 64.3c1.8 5 3.3 10.6-.4 14.5z"], - "vaadin": [448, 512, [], "f408", "M224.5 140.7c1.5-17.6 4.9-52.7 49.8-52.7h98.6c20.7 0 32.1-7.8 32.1-21.6V54.1c0-12.2 9.3-22.1 21.5-22.1S448 41.9 448 54.1v36.5c0 42.9-21.5 62-66.8 62H280.7c-30.1 0-33 14.7-33 27.1 0 1.3-.1 2.5-.2 3.7-.7 12.3-10.9 22.2-23.4 22.2s-22.7-9.8-23.4-22.2c-.1-1.2-.2-2.4-.2-3.7 0-12.3-3-27.1-33-27.1H66.8c-45.3 0-66.8-19.1-66.8-62V54.1C0 41.9 9.4 32 21.6 32s21.5 9.9 21.5 22.1v12.3C43.1 80.2 54.5 88 75.2 88h98.6c44.8 0 48.3 35.1 49.8 52.7h.9zM224 456c11.5 0 21.4-7 25.7-16.3 1.1-1.8 97.1-169.6 98.2-171.4 11.9-19.6-3.2-44.3-27.2-44.3-13.9 0-23.3 6.4-29.8 20.3L224 362l-66.9-117.7c-6.4-13.9-15.9-20.3-29.8-20.3-24 0-39.1 24.6-27.2 44.3 1.1 1.9 97.1 169.6 98.2 171.4 4.3 9.3 14.2 16.3 25.7 16.3z"], - "quora": [448, 512, [], "f2c4", "M440.5 386.7h-29.3c-1.5 13.5-10.5 30.8-33 30.8-20.5 0-35.3-14.2-49.5-35.8 44.2-34.2 74.7-87.5 74.7-153C403.5 111.2 306.8 32 205 32 105.3 32 7.3 111.7 7.3 228.7c0 134.1 131.3 221.6 249 189C276 451.3 302 480 351.5 480c81.8 0 90.8-75.3 89-93.3zM297 329.2C277.5 300 253.3 277 205.5 277c-30.5 0-54.3 10-69 22.8l12.2 24.3c6.2-3 13-4 19.8-4 35.5 0 53.7 30.8 69.2 61.3-10 3-20.7 4.2-32.7 4.2-75 0-107.5-53-107.5-156.7C97.5 124.5 130 71 205 71c76.2 0 108.7 53.5 108.7 157.7.1 41.8-5.4 75.6-16.7 100.5z"], - "square-x-twitter": [448, 512, [], "e61a", "M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm297.1 84L257.3 234.6 379.4 396H283.8L209 298.1 123.3 396H75.8l111-126.9L69.7 116h98l67.7 89.5L313.6 116h47.5zM323.3 367.6L153.4 142.9H125.1L296.9 367.6h26.3z"], - "reacteurope": [576, 512, [], "f75d", "M250.6 211.74l5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1-2.3-6.8-2.3 6.8-7.2.1 5.7 4.3zm63.7 0l5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.2-.1-2.3-6.8-2.3 6.8-7.2.1 5.7 4.3zm-91.3 50.5h-3.4c-4.8 0-3.8 4-3.8 12.1 0 4.7-2.3 6.1-5.8 6.1s-5.8-1.4-5.8-6.1v-36.6c0-4.7 2.3-6.1 5.8-6.1s5.8 1.4 5.8 6.1c0 7.2-.7 10.5 3.8 10.5h3.4c4.7-.1 3.8-3.9 3.8-12.3 0-9.9-6.7-14.1-16.8-14.1h-.2c-10.1 0-16.8 4.2-16.8 14.1V276c0 10.4 6.7 14.1 16.8 14.1h.2c10.1 0 16.8-3.8 16.8-14.1 0-9.86 1.1-13.76-3.8-13.76zm-80.7 17.4h-14.7v-19.3H139c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-11.4v-18.3H142c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-21.7c-2.4-.1-3.7 1.3-3.7 3.8v59.1c0 2.5 1.3 3.8 3.8 3.8h21.9c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8zm-42-18.5c4.6-2 7.3-6 7.3-12.4v-11.9c0-10.1-6.7-14.1-16.8-14.1H77.4c-2.5 0-3.8 1.3-3.8 3.8v59.1c0 2.5 1.3 3.8 3.8 3.8h3.4c2.5 0 3.8-1.3 3.8-3.8v-22.9h5.6l7.4 23.5a4.1 4.1 0 0 0 4.3 3.2h3.3c2.8 0 4-1.8 3.2-4.4zm-3.8-14c0 4.8-2.5 6.1-6.1 6.1h-5.8v-20.9h5.8c3.6 0 6.1 1.3 6.1 6.1zM176 226a3.82 3.82 0 0 0-4.2-3.4h-6.9a3.68 3.68 0 0 0-4 3.4l-11 59.2c-.5 2.7.9 4.1 3.4 4.1h3a3.74 3.74 0 0 0 4.1-3.5l1.8-11.3h12.2l1.8 11.3a3.74 3.74 0 0 0 4.1 3.5h3.5c2.6 0 3.9-1.4 3.4-4.1zm-12.3 39.3l4.7-29.7 4.7 29.7zm89.3 20.2v-53.2h7.5c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-25.8c-2.5 0-3.8 1.3-3.8 3.8v2.1c0 2.5 1.3 3.8 3.8 3.8h7.3v53.2c0 2.5 1.3 3.8 3.8 3.8h3.4c2.5.04 3.8-1.3 3.8-3.76zm248-.8h-19.4V258h16.1a1.89 1.89 0 0 0 2-2v-.8a1.89 1.89 0 0 0-2-2h-16.1v-25.8h19.1a1.89 1.89 0 0 0 2-2v-.8a1.77 1.77 0 0 0-2-1.9h-22.2a1.62 1.62 0 0 0-2 1.8v63a1.81 1.81 0 0 0 2 1.9H501a1.81 1.81 0 0 0 2-1.9v-.8a1.84 1.84 0 0 0-2-1.96zm-93.1-62.9h-.8c-10.1 0-15.3 4.7-15.3 14.1V276c0 9.3 5.2 14.1 15.3 14.1h.8c10.1 0 15.3-4.8 15.3-14.1v-40.1c0-9.36-5.2-14.06-15.3-14.06zm10.2 52.4c-.1 8-3 11.1-10.5 11.1s-10.5-3.1-10.5-11.1v-36.6c0-7.9 3-11.1 10.5-11.1s10.5 3.2 10.5 11.1zm-46.5-14.5c6.1-1.6 9.2-6.1 9.2-13.3v-9.7c0-9.4-5.2-14.1-15.3-14.1h-13.7a1.81 1.81 0 0 0-2 1.9v63a1.81 1.81 0 0 0 2 1.9h1.2a1.74 1.74 0 0 0 1.9-1.9v-26.9h11.6l10.4 27.2a2.32 2.32 0 0 0 2.3 1.5h1.5c1.4 0 2-1 1.5-2.3zm-6.4-3.9H355v-28.5h10.2c7.5 0 10.5 3.1 10.5 11.1v6.4c0 7.84-3 11.04-10.5 11.04zm85.9-33.1h-13.7a1.62 1.62 0 0 0-2 1.8v63a1.81 1.81 0 0 0 2 1.9h1.2a1.74 1.74 0 0 0 1.9-1.9v-26.1h10.6c10.1 0 15.3-4.8 15.3-14.1v-10.5c0-9.4-5.2-14.1-15.3-14.1zm10.2 22.8c0 7.9-3 11.1-10.5 11.1h-10.2v-29.2h10.2c7.5-.1 10.5 3.1 10.5 11zM259.5 308l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm227.6-136.1a364.42 364.42 0 0 0-35.6-11.3c19.6-78 11.6-134.7-22.3-153.9C394.7-12.66 343.3 11 291 61.94q5.1 4.95 10.2 10.2c82.5-80 119.6-53.5 120.9-52.8 22.4 12.7 36 55.8 15.5 137.8a587.83 587.83 0 0 0-84.6-13C281.1 43.64 212.4 2 170.8 2 140 2 127 23 123.2 29.74c-18.1 32-13.3 84.2.1 133.8-70.5 20.3-120.7 54.1-120.3 95 .5 59.6 103.2 87.8 122.1 92.8-20.5 81.9-10.1 135.6 22.3 153.9 28 15.8 75.1 6 138.2-55.2q-5.1-4.95-10.2-10.2c-82.5 80-119.7 53.5-120.9 52.8-22.3-12.6-36-55.6-15.5-137.9 12.4 2.9 41.8 9.5 84.6 13 71.9 100.4 140.6 142 182.1 142 30.8 0 43.8-21 47.6-27.7 18-31.9 13.3-84.1-.1-133.8 152.3-43.8 156.2-130.2 33.9-176.3zM135.9 36.84c2.9-5.1 11.9-20.3 34.9-20.3 36.8 0 98.8 39.6 163.3 126.2a714 714 0 0 0-93.9.9 547.76 547.76 0 0 1 42.2-52.4Q277.3 86 272.2 81a598.25 598.25 0 0 0-50.7 64.2 569.69 569.69 0 0 0-84.4 14.6c-.2-1.4-24.3-82.2-1.2-123zm304.8 438.3c-2.9 5.1-11.8 20.3-34.9 20.3-36.7 0-98.7-39.4-163.3-126.2a695.38 695.38 0 0 0 93.9-.9 547.76 547.76 0 0 1-42.2 52.4q5.1 5.25 10.2 10.2a588.47 588.47 0 0 0 50.7-64.2c47.3-4.7 80.3-13.5 84.4-14.6 22.7 84.4 4.5 117 1.2 123zm9.1-138.6c-3.6-11.9-7.7-24.1-12.4-36.4a12.67 12.67 0 0 1-10.7-5.7l-.1.1a19.61 19.61 0 0 1-5.4 3.6c5.7 14.3 10.6 28.4 14.7 42.2a535.3 535.3 0 0 1-72 13c3.5-5.3 17.2-26.2 32.2-54.2a24.6 24.6 0 0 1-6-3.2c-1.1 1.2-3.6 4.2-10.9 4.2-6.2 11.2-17.4 30.9-33.9 55.2a711.91 711.91 0 0 1-112.4 1c-7.9-11.2-21.5-31.1-36.8-57.8a21 21 0 0 1-3-1.5c-1.9 1.6-3.9 3.2-12.6 3.2 6.3 11.2 17.5 30.7 33.8 54.6a548.81 548.81 0 0 1-72.2-11.7q5.85-21 14.1-42.9c-3.2 0-5.4.2-8.4-1a17.58 17.58 0 0 1-6.9 1c-4.9 13.4-9.1 26.5-12.7 39.4C-31.7 297-12.1 216 126.7 175.64c3.6 11.9 7.7 24.1 12.4 36.4 10.4 0 12.9 3.4 14.4 5.3a12 12 0 0 1 2.3-2.2c-5.8-14.7-10.9-29.2-15.2-43.3 7-1.8 32.4-8.4 72-13-15.9 24.3-26.7 43.9-32.8 55.3a14.22 14.22 0 0 1 6.4 8 23.42 23.42 0 0 1 10.2-8.4c6.5-11.7 17.9-31.9 34.8-56.9a711.72 711.72 0 0 1 112.4-1c31.5 44.6 28.9 48.1 42.5 64.5a21.42 21.42 0 0 1 10.4-7.4c-6.4-11.4-17.6-31-34.3-55.5 40.4 4.1 65 10 72.2 11.7-4 14.4-8.9 29.2-14.6 44.2a20.74 20.74 0 0 1 6.8 4.3l.1.1a12.72 12.72 0 0 1 8.9-5.6c4.9-13.4 9.2-26.6 12.8-39.5a359.71 359.71 0 0 1 34.5 11c106.1 39.9 74 87.9 72.6 90.4-19.8 35.1-80.1 55.2-105.7 62.5zm-114.4-114h-1.2a1.74 1.74 0 0 0-1.9 1.9v49.8c0 7.9-2.6 11.1-10.1 11.1s-10.1-3.1-10.1-11.1v-49.8a1.69 1.69 0 0 0-1.9-1.9H309a1.81 1.81 0 0 0-2 1.9v51.5c0 9.6 5 14.1 15.1 14.1h.4c10.1 0 15.1-4.6 15.1-14.1v-51.5a2 2 0 0 0-2.2-1.9zM321.7 308l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm-31.1 7.4l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm5.1-30.8h-19.4v-26.7h16.1a1.89 1.89 0 0 0 2-2v-.8a1.89 1.89 0 0 0-2-2h-16.1v-25.8h19.1a1.89 1.89 0 0 0 2-2v-.8a1.77 1.77 0 0 0-2-1.9h-22.2a1.81 1.81 0 0 0-2 1.9v63a1.81 1.81 0 0 0 2 1.9h22.5a1.77 1.77 0 0 0 2-1.9v-.8a1.83 1.83 0 0 0-2-2.06zm-7.4-99.4L286 192l-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1z"], - "medium": [640, 512, [62407, "medium-m"], "f23a", "M180.5,74.262C80.813,74.262,0,155.633,0,256S80.819,437.738,180.5,437.738,361,356.373,361,256,280.191,74.262,180.5,74.262Zm288.25,10.646c-49.845,0-90.245,76.619-90.245,171.095s40.406,171.1,90.251,171.1,90.251-76.619,90.251-171.1H559C559,161.5,518.6,84.908,468.752,84.908Zm139.506,17.821c-17.526,0-31.735,68.628-31.735,153.274s14.2,153.274,31.735,153.274S640,340.631,640,256C640,171.351,625.785,102.729,608.258,102.729Z"], - "amilia": [448, 512, [], "f36d", "M240.1 32c-61.9 0-131.5 16.9-184.2 55.4-5.1 3.1-9.1 9.2-7.2 19.4 1.1 5.1 5.1 27.4 10.2 39.6 4.1 10.2 14.2 10.2 20.3 6.1 32.5-22.3 96.5-47.7 152.3-47.7 57.9 0 58.9 28.4 58.9 73.1v38.5C203 227.7 78.2 251 46.7 264.2 11.2 280.5 16.3 357.7 16.3 376s15.2 104 124.9 104c47.8 0 113.7-20.7 153.3-42.1v25.4c0 3 2.1 8.2 6.1 9.1 3.1 1 50.7 2 59.9 2s62.5.3 66.5-.7c4.1-1 5.1-6.1 5.1-9.1V168c-.1-80.3-57.9-136-192-136zm50.2 348c-21.4 13.2-48.7 24.4-79.1 24.4-52.8 0-58.9-33.5-59-44.7 0-12.2-3-42.7 18.3-52.9 24.3-13.2 75.1-29.4 119.8-33.5z"], - "mixcloud": [640, 512, [], "f289", "M212.98 346.566H179.789V195.114L185.973 173.47H175.262L137.127 346.566H76.1069L37.7323 173.47H27.276L33.1913 195.114V346.566H0V165H65.6506L102.248 338.096H110.747L147.329 165H212.98L212.98 346.566ZM544.459 283.589L458.434 345.655V307.534L531.329 255.776L458.434 204.017V165.896L544.459 228.231H553.721L640 165.896V204.017L566.866 255.776L640 307.549V345.655L553.721 283.589H544.459ZM430.157 272.311H248.113V239.255H430.157V272.311Z"], - "flipboard": [448, 512, [], "f44d", "M0 32v448h448V32H0zm358.4 179.2h-89.6v89.6h-89.6v89.6H89.6V121.6h268.8v89.6z"], - "viacoin": [384, 512, [], "f237", "M384 32h-64l-80.7 192h-94.5L64 32H0l48 112H0v48h68.5l13.8 32H0v48h102.8L192 480l89.2-208H384v-48h-82.3l13.8-32H384v-48h-48l48-112zM192 336l-27-64h54l-27 64z"], - "critical-role": [448, 512, [], "f6c9", "M225.82 0c.26.15 216.57 124.51 217.12 124.72 3 1.18 3.7 3.46 3.7 6.56q-.11 125.17 0 250.36a5.88 5.88 0 0 1-3.38 5.78c-21.37 12-207.86 118.29-218.93 124.58h-3C142 466.34 3.08 386.56 2.93 386.48a3.29 3.29 0 0 1-1.88-3.24c0-.87 0-225.94-.05-253.1a5 5 0 0 1 2.93-4.93C27.19 112.11 213.2 6 224.07 0zM215.4 20.42l-.22-.16Q118.06 75.55 21 130.87c0 .12.08.23.13.35l30.86 11.64c-7.71 6-8.32 6-10.65 5.13-.1 0-24.17-9.28-26.8-10v230.43c.88-1.41 64.07-110.91 64.13-111 1.62-2.82 3-1.92 9.12-1.52 1.4.09 1.48.22.78 1.42-41.19 71.33-36.4 63-67.48 116.94-.81 1.4-.61 1.13 1.25 1.13h186.5c1.44 0 1.69-.23 1.7-1.64v-8.88c0-1.34 2.36-.81-18.37-1-7.46-.07-14.14-3.22-21.38-12.7-7.38-9.66-14.62-19.43-21.85-29.21-2.28-3.08-3.45-2.38-16.76-2.38-1.75 0-1.78 0-1.76 1.82.29 26.21.15 25.27 1 32.66.52 4.37 2.16 4.2 9.69 4.81 3.14.26 3.88 4.08.52 4.92-1.57.39-31.6.51-33.67-.1a2.42 2.42 0 0 1 .3-4.73c3.29-.76 6.16.81 6.66-4.44 1.3-13.66 1.17-9 1.1-79.42 0-10.82-.35-12.58-5.36-13.55-1.22-.24-3.54-.16-4.69-.55-2.88-1-2-4.84 1.77-4.85 33.67 0 46.08-1.07 56.06 4.86 7.74 4.61 12 11.48 12.51 20.4.88 14.59-6.51 22.35-15 32.59a1.46 1.46 0 0 0 0 2.22c2.6 3.25 5 6.63 7.71 9.83 27.56 33.23 24.11 30.54 41.28 33.06.89.13 1-.42 1-1.15v-11c0-1 .32-1.43 1.41-1.26a72.37 72.37 0 0 0 23.58-.3c1.08-.15 1.5.2 1.48 1.33 0 .11.88 26.69.87 26.8-.05 1.52.67 1.62 1.89 1.62h186.71Q386.51 304.6 346 234.33c2.26-.66-.4 0 6.69-1.39 2-.39 2.05-.41 3.11 1.44 7.31 12.64 77.31 134 77.37 134.06V138c-1.72.5-103.3 38.72-105.76 39.68-1.08.42-1.55.2-1.91-.88-.63-1.9-1.34-3.76-2.09-5.62-.32-.79-.09-1.13.65-1.39.1 0 95.53-35.85 103-38.77-65.42-37.57-130.56-75-196-112.6l86.82 150.39-.28.33c-9.57-.9-10.46-1.6-11.8-3.94-1-1.69-73.5-127.71-82-142.16-9.1 14.67-83.56 146.21-85.37 146.32-2.93.17-5.88.08-9.25.08q43.25-74.74 86.18-149zm51.93 129.92a37.68 37.68 0 0 0 5.54-.85c1.69-.3 2.53.2 2.6 1.92 0 .11.07 19.06-.86 20.45s-1.88 1.22-2.6-.19c-5-9.69 6.22-9.66-39.12-12-.7 0-1 .23-1 .93 0 .13 3.72 122 3.73 122.11 0 .89.52 1.2 1.21 1.51a83.92 83.92 0 0 1 8.7 4.05c7.31 4.33 11.38 10.84 12.41 19.31 1.44 11.8-2.77 35.77-32.21 37.14-2.75.13-28.26 1.08-34.14-23.25-4.66-19.26 8.26-32.7 19.89-36.4a2.45 2.45 0 0 0 2-2.66c.1-5.63 3-107.1 3.71-121.35.05-1.08-.62-1.16-1.35-1.15-32.35.52-36.75-.34-40.22 8.52-2.42 6.18-4.14 1.32-3.95.23q1.59-9 3.31-18c.4-2.11 1.43-2.61 3.43-1.86 5.59 2.11 6.72 1.7 37.25 1.92 1.73 0 1.78-.08 1.82-1.85.68-27.49.58-22.59 1-29.55a2.69 2.69 0 0 0-1.63-2.8c-5.6-2.91-8.75-7.55-8.9-13.87-.35-14.81 17.72-21.67 27.38-11.51 6.84 7.19 5.8 18.91-2.45 24.15a4.35 4.35 0 0 0-2.22 4.34c0 .59-.11-4.31 1 30.05 0 .9.43 1.12 1.24 1.11.1 0 23-.09 34.47-.37zM68.27 141.7c19.84-4.51 32.68-.56 52.49 1.69 2.76.31 3.74 1.22 3.62 4-.21 5-1.16 22.33-1.24 23.15a2.65 2.65 0 0 1-1.63 2.34c-4.06 1.7-3.61-4.45-4-7.29-3.13-22.43-73.87-32.7-74.63 25.4-.31 23.92 17 53.63 54.08 50.88 27.24-2 19-20.19 24.84-20.47a2.72 2.72 0 0 1 3 3.36c-1.83 10.85-3.42 18.95-3.45 19.15-1.54 9.17-86.7 22.09-93.35-42.06-2.71-25.85 10.44-53.37 40.27-60.15zm80 87.67h-19.49a2.57 2.57 0 0 1-2.66-1.79c2.38-3.75 5.89.92 5.86-6.14-.08-25.75.21-38 .23-40.1 0-3.42-.53-4.65-3.32-4.94-7-.72-3.11-3.37-1.11-3.38 11.84-.1 22.62-.18 30.05.72 8.77 1.07 16.71 12.63 7.93 22.62-2 2.25-4 4.42-6.14 6.73.95 1.15 6.9 8.82 17.28 19.68 2.66 2.78 6.15 3.51 9.88 3.13a2.21 2.21 0 0 0 2.23-2.12c.3-3.42.26 4.73.45-40.58 0-5.65-.34-6.58-3.23-6.83-3.95-.35-4-2.26-.69-3.37l19.09-.09c.32 0 4.49.53 1 3.38 0 .05-.16 0-.24 0-3.61.26-3.94 1-4 4.62-.27 43.93.07 40.23.41 42.82.11.84.27 2.23 5.1 2.14 2.49 0 3.86 3.37 0 3.4-10.37.08-20.74 0-31.11.07-10.67 0-13.47-6.2-24.21-20.82-1.6-2.18-8.31-2.36-8.2-.37.88 16.47 0 17.78 4 17.67 4.75-.1 4.73 3.57.83 3.55zm275-10.15c-1.21 7.13.17 10.38-5.3 10.34-61.55-.42-47.82-.22-50.72-.31a18.4 18.4 0 0 1-3.63-.73c-2.53-.6 1.48-1.23-.38-5.6-1.43-3.37-2.78-6.78-4.11-10.19a1.94 1.94 0 0 0-2-1.44 138 138 0 0 0-14.58.07 2.23 2.23 0 0 0-1.62 1.06c-1.58 3.62-3.07 7.29-4.51 11-1.27 3.23 7.86 1.32 12.19 2.16 3 .57 4.53 3.72.66 3.73H322.9c-2.92 0-3.09-3.15-.74-3.21a6.3 6.3 0 0 0 5.92-3.47c1.5-3 2.8-6 4.11-9.09 18.18-42.14 17.06-40.17 18.42-41.61a1.83 1.83 0 0 1 3 0c2.93 3.34 18.4 44.71 23.62 51.92 2 2.7 5.74 2 6.36 2 3.61.13 4-1.11 4.13-4.29.09-1.87.08 1.17.07-41.24 0-4.46-2.36-3.74-5.55-4.27-.26 0-2.56-.63-.08-3.06.21-.2-.89-.24 21.7-.15 2.32 0 5.32 2.75-1.21 3.45a2.56 2.56 0 0 0-2.66 2.83c-.07 1.63-.19 38.89.29 41.21a3.06 3.06 0 0 0 3.23 2.43c13.25.43 14.92.44 16-3.41 1.67-5.78 4.13-2.52 3.73-.19zm-104.72 64.37c-4.24 0-4.42-3.39-.61-3.41 35.91-.16 28.11.38 37.19-.65 1.68-.19 2.38.24 2.25 1.89-.26 3.39-.64 6.78-1 10.16-.25 2.16-3.2 2.61-3.4-.15-.38-5.31-2.15-4.45-15.63-5.08-1.58-.07-1.64 0-1.64 1.52V304c0 1.65 0 1.6 1.62 1.47 3.12-.25 10.31.34 15.69-1.52.47-.16 3.3-1.79 3.07 1.76 0 .21-.76 10.35-1.18 11.39-.53 1.29-1.88 1.51-2.58.32-1.17-2 0-5.08-3.71-5.3-15.42-.9-12.91-2.55-12.91 6 0 12.25-.76 16.11 3.89 16.24 16.64.48 14.4 0 16.43-5.71.84-2.37 3.5-1.77 3.18.58-.44 3.21-.85 6.43-1.23 9.64 0 .36-.16 2.4-4.66 2.39-37.16-.08-34.54-.19-35.21-.31-2.72-.51-2.2-3 .22-3.45 1.1-.19 4 .54 4.16-2.56 2.44-56.22-.07-51.34-3.91-51.33zm-.41-109.52c2.46.61 3.13 1.76 2.95 4.65-.33 5.3-.34 9-.55 9.69-.66 2.23-3.15 2.12-3.34-.27-.38-4.81-3.05-7.82-7.57-9.15-26.28-7.73-32.81 15.46-27.17 30.22 5.88 15.41 22 15.92 28.86 13.78 5.92-1.85 5.88-6.5 6.91-7.58 1.23-1.3 2.25-1.84 3.12 1.1 0 .1.57 11.89-6 12.75-1.6.21-19.38 3.69-32.68-3.39-21-11.19-16.74-35.47-6.88-45.33 14-14.06 39.91-7.06 42.32-6.47zM289.8 280.14c3.28 0 3.66 3 .16 3.43-2.61.32-5-.42-5 5.46 0 2-.19 29.05.4 41.45.11 2.29 1.15 3.52 3.44 3.65 22 1.21 14.95-1.65 18.79-6.34 1.83-2.24 2.76.84 2.76 1.08.35 13.62-4 12.39-5.19 12.4l-38.16-.19c-1.93-.23-2.06-3-.42-3.38 2-.48 4.94.4 5.13-2.8 1-15.87.57-44.65.34-47.81-.27-3.77-2.8-3.27-5.68-3.71-2.47-.38-2-3.22.34-3.22 1.45-.02 17.97-.03 23.09-.02zm-31.63-57.79c.07 4.08 2.86 3.46 6 3.58 2.61.1 2.53 3.41-.07 3.43-6.48 0-13.7 0-21.61-.06-3.84 0-3.38-3.35 0-3.37 4.49 0 3.24 1.61 3.41-45.54 0-5.08-3.27-3.54-4.72-4.23-2.58-1.23-1.36-3.09.41-3.15 1.29 0 20.19-.41 21.17.21s1.87 1.65-.42 2.86c-1 .52-3.86-.28-4.15 2.47 0 .21-.82 1.63-.07 43.8zm-36.91 274.27a2.93 2.93 0 0 0 3.26 0c17-9.79 182-103.57 197.42-112.51-.14-.43 11.26-.18-181.52-.27-1.22 0-1.57.37-1.53 1.56 0 .1 1.25 44.51 1.22 50.38a28.33 28.33 0 0 1-1.36 7.71c-.55 1.83.38-.5-13.5 32.23-.73 1.72-1 2.21-2-.08-4.19-10.34-8.28-20.72-12.57-31a23.6 23.6 0 0 1-2-10.79c.16-2.46.8-16.12 1.51-48 0-1.95 0-2-2-2h-183c2.58 1.63 178.32 102.57 196 112.76zm-90.9-188.75c0 2.4.36 2.79 2.76 3 11.54 1.17 21 3.74 25.64-7.32 6-14.46 2.66-34.41-12.48-38.84-2-.59-16-2.76-15.94 1.51.05 8.04.01 11.61.02 41.65zm105.75-15.05c0 2.13 1.07 38.68 1.09 39.13.34 9.94-25.58 5.77-25.23-2.59.08-2 1.37-37.42 1.1-39.43-14.1 7.44-14.42 40.21 6.44 48.8a17.9 17.9 0 0 0 22.39-7.07c4.91-7.76 6.84-29.47-5.43-39a2.53 2.53 0 0 1-.36.12zm-12.28-198c-9.83 0-9.73 14.75-.07 14.87s10.1-14.88.07-14.91zm-80.15 103.83c0 1.8.41 2.4 2.17 2.58 13.62 1.39 12.51-11 12.16-13.36-1.69-11.22-14.38-10.2-14.35-7.81.05 4.5-.03 13.68.02 18.59zm212.32 6.4l-6.1-15.84c-2.16 5.48-4.16 10.57-6.23 15.84z"], - "sitrox": [448, 512, [], "e44a", "M212.439 0.00846128V0H448V128H64C64 57.6008 141.755 0.475338 212.439 0.00846128ZM237.256 192V192.007C307.135 192.475 384 249.6 384 320H210.809V319.995C140.915 319.563 64 262.424 64 192H237.256ZM235.565 511.993C306.251 511.521 384 454.399 384 384H0V512H235.565V511.993Z"], - "discourse": [448, 512, [], "f393", "M225.9 32C103.3 32 0 130.5 0 252.1 0 256 .1 480 .1 480l225.8-.2c122.7 0 222.1-102.3 222.1-223.9C448 134.3 348.6 32 225.9 32zM224 384c-19.4 0-37.9-4.3-54.4-12.1L88.5 392l22.9-75c-9.8-18.1-15.4-38.9-15.4-61 0-70.7 57.3-128 128-128s128 57.3 128 128-57.3 128-128 128z"], - "joomla": [448, 512, [], "f1aa", "M.6 92.1C.6 58.8 27.4 32 60.4 32c30 0 54.5 21.9 59.2 50.2 32.6-7.6 67.1.6 96.5 30l-44.3 44.3c-20.5-20.5-42.6-16.3-55.4-3.5-14.3 14.3-14.3 37.9 0 52.2l99.5 99.5-44 44.3c-87.7-87.2-49.7-49.7-99.8-99.7-26.8-26.5-35-64.8-24.8-98.9C20.4 144.6.6 120.7.6 92.1zm129.5 116.4l44.3 44.3c10-10 89.7-89.7 99.7-99.8 14.3-14.3 37.6-14.3 51.9 0 12.8 12.8 17 35-3.5 55.4l44 44.3c31.2-31.2 38.5-67.6 28.9-101.2 29.2-4.1 51.9-29.2 51.9-59.5 0-33.2-26.8-60.1-59.8-60.1-30.3 0-55.4 22.5-59.5 51.6-33.8-9.9-71.7-1.5-98.3 25.1-18.3 19.1-71.1 71.5-99.6 99.9zm266.3 152.2c8.2-32.7-.9-68.5-26.3-93.9-11.8-12.2 5 4.7-99.5-99.7l-44.3 44.3 99.7 99.7c14.3 14.3 14.3 37.6 0 51.9-12.8 12.8-35 17-55.4-3.5l-44 44.3c27.6 30.2 68 38.8 102.7 28 5.5 27.4 29.7 48.1 58.9 48.1 33 0 59.8-26.8 59.8-60.1 0-30.2-22.5-55-51.6-59.1zm-84.3-53.1l-44-44.3c-87 86.4-50.4 50.4-99.7 99.8-14.3 14.3-37.6 14.3-51.9 0-13.1-13.4-16.9-35.3 3.2-55.4l-44-44.3c-30.2 30.2-38 65.2-29.5 98.3-26.7 6-46.2 29.9-46.2 58.2C0 453.2 26.8 480 59.8 480c28.6 0 52.5-19.8 58.6-46.7 32.7 8.2 68.5-.6 94.2-26 32.1-32 12.2-12.4 99.5-99.7z"], - "mastodon": [448, 512, [], "f4f6", "M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.54 102.54 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5zm-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z"], - "airbnb": [448, 512, [], "f834", "M224 373.12c-25.24-31.67-40.08-59.43-45-83.18-22.55-88 112.61-88 90.06 0-5.45 24.25-20.29 52-45 83.18zm138.15 73.23c-42.06 18.31-83.67-10.88-119.3-50.47 103.9-130.07 46.11-200-18.85-200-54.92 0-85.16 46.51-73.28 100.5 6.93 29.19 25.23 62.39 54.43 99.5-32.53 36.05-60.55 52.69-85.15 54.92-50 7.43-89.11-41.06-71.3-91.09 15.1-39.16 111.72-231.18 115.87-241.56 15.75-30.07 25.56-57.4 59.38-57.4 32.34 0 43.4 25.94 60.37 59.87 36 70.62 89.35 177.48 114.84 239.09 13.17 33.07-1.37 71.29-37.01 86.64zm47-136.12C280.27 35.93 273.13 32 224 32c-45.52 0-64.87 31.67-84.66 72.79C33.18 317.1 22.89 347.19 22 349.81-3.22 419.14 48.74 480 111.63 480c21.71 0 60.61-6.06 112.37-62.4 58.68 63.78 101.26 62.4 112.37 62.4 62.89.05 114.85-60.86 89.61-130.19.02-3.89-16.82-38.9-16.82-39.58z"], - "wolf-pack-battalion": [512, 512, [], "f514", "M267.73 471.53l10.56 15.84 5.28-12.32 5.28 7V512c21.06-7.92 21.11-66.86 25.51-97.21 4.62-31.89-.88-92.81 81.37-149.11-8.88-23.61-12-49.43-2.64-80.05C421 189 447 196.21 456.43 239.73l-30.35 8.36c11.15 23 17 46.76 13.2 72.14L412 313.18l-6.16 33.43-18.47-7-8.8 33.39-19.35-7 26.39 21.11 8.8-28.15L419 364.2l7-35.63 26.39 14.52c.25-20 7-58.06-8.8-84.45l26.39 5.28c4-22.07-2.38-39.21-7.92-56.74l22.43 9.68c-.44-25.07-29.94-56.79-61.58-58.5-20.22-1.09-56.74-25.17-54.1-51.9 2-19.87 17.45-42.62 43.11-49.7-44 36.51-9.68 67.3 5.28 73.46 4.4-11.44 17.54-69.08 0-130.2-40.39 22.87-89.65 65.1-93.2 147.79l-58 38.71-3.52 93.25L369.78 220l7 7-17.59 3.52-44 38.71-15.84-5.28-28.1 49.25-3.52 119.64 21.11 15.84-32.55 15.84-32.55-15.84 21.11-15.84-3.52-119.64-28.15-49.26-15.84 5.28-44-38.71-17.58-3.51 7-7 107.33 59.82-3.52-93.25-58.06-38.71C185 65.1 135.77 22.87 95.3 0c-17.54 61.12-4.4 118.76 0 130.2 15-6.16 49.26-36.95 5.28-73.46 25.66 7.08 41.15 29.83 43.11 49.7 2.63 26.74-33.88 50.81-54.1 51.9-31.65 1.72-61.15 33.44-61.59 58.51l22.43-9.68c-5.54 17.53-11.91 34.67-7.92 56.74l26.39-5.28c-15.76 26.39-9.05 64.43-8.8 84.45l26.39-14.52 7 35.63 24.63-5.28 8.8 28.15L153.35 366 134 373l-8.8-33.43-18.47 7-6.16-33.43-27.27 7c-3.82-25.38 2-49.1 13.2-72.14l-30.35-8.36c9.4-43.52 35.47-50.77 63.34-54.1 9.36 30.62 6.24 56.45-2.64 80.05 82.25 56.3 76.75 117.23 81.37 149.11 4.4 30.35 4.45 89.29 25.51 97.21v-29.83l5.28-7 5.28 12.32 10.56-15.84 11.44 21.11 11.43-21.1zm79.17-95L331.06 366c7.47-4.36 13.76-8.42 19.35-12.32-.6 7.22-.27 13.84-3.51 22.84zm28.15-49.26c-.4 10.94-.9 21.66-1.76 31.67-7.85-1.86-15.57-3.8-21.11-7 8.24-7.94 15.55-16.32 22.87-24.68zm24.63 5.28c0-13.43-2.05-24.21-5.28-33.43a235 235 0 0 1-18.47 27.27zm3.52-80.94c19.44 12.81 27.8 33.66 29.91 56.3-12.32-4.53-24.63-9.31-36.95-10.56 5.06-12 6.65-28.14 7-45.74zm-1.76-45.74c.81 14.3 1.84 28.82 1.76 42.23 19.22-8.11 29.78-9.72 44-14.08-10.61-18.96-27.2-25.53-45.76-28.16zM165.68 376.52L181.52 366c-7.47-4.36-13.76-8.42-19.35-12.32.6 7.26.27 13.88 3.51 22.88zm-28.15-49.26c.4 10.94.9 21.66 1.76 31.67 7.85-1.86 15.57-3.8 21.11-7-8.24-7.93-15.55-16.31-22.87-24.67zm-24.64 5.28c0-13.43 2-24.21 5.28-33.43a235 235 0 0 0 18.47 27.27zm-3.52-80.94c-19.44 12.81-27.8 33.66-29.91 56.3 12.32-4.53 24.63-9.31 37-10.56-5-12-6.65-28.14-7-45.74zm1.76-45.74c-.81 14.3-1.84 28.82-1.76 42.23-19.22-8.11-29.78-9.72-44-14.08 10.63-18.95 27.23-25.52 45.76-28.15z"], - "buy-n-large": [576, 512, [], "f8a6", "M288 32C133.27 32 7.79 132.32 7.79 256S133.27 480 288 480s280.21-100.32 280.21-224S442.73 32 288 32zm-85.39 357.19L64.1 390.55l77.25-290.74h133.44c63.15 0 84.93 28.65 78 72.84a60.24 60.24 0 0 1-1.5 6.85 77.39 77.39 0 0 0-17.21-1.93c-42.35 0-76.69 33.88-76.69 75.65 0 37.14 27.14 68 62.93 74.45-18.24 37.16-56.16 60.92-117.71 61.52zM358 207.11h32l-22.16 90.31h-35.41l-11.19-35.63-7.83 35.63h-37.83l26.63-90.31h31.34l15 36.75zm145.86 182.08H306.79L322.63 328a78.8 78.8 0 0 0 11.47.83c42.34 0 76.69-33.87 76.69-75.65 0-32.65-21-60.46-50.38-71.06l21.33-82.35h92.5l-53.05 205.36h103.87zM211.7 269.39H187l-13.8 56.47h24.7c16.14 0 32.11-3.18 37.94-26.65 5.56-22.31-7.99-29.82-24.14-29.82zM233 170h-21.34L200 217.71h21.37c18 0 35.38-14.64 39.21-30.14C265.23 168.71 251.07 170 233 170z"], - "gulp": [256, 512, [], "f3ae", "M209.8 391.1l-14.1 24.6-4.6 80.2c0 8.9-28.3 16.1-63.1 16.1s-63.1-7.2-63.1-16.1l-5.8-79.4-14.9-25.4c41.2 17.3 126 16.7 165.6 0zm-196-253.3l13.6 125.5c5.9-20 20.8-47 40-55.2 6.3-2.7 12.7-2.7 18.7.9 5.2 3 9.6 9.3 10.1 11.8 1.2 6.5-2 9.1-4.5 9.1-3 0-5.3-4.6-6.8-7.3-4.1-7.3-10.3-7.6-16.9-2.8-6.9 5-12.9 13.4-17.1 20.7-5.1 8.8-9.4 18.5-12 28.2-1.5 5.6-2.9 14.6-.6 19.9 1 2.2 2.5 3.6 4.9 3.6 5 0 12.3-6.6 15.8-10.1 4.5-4.5 10.3-11.5 12.5-16l5.2-15.5c2.6-6.8 9.9-5.6 9.9 0 0 10.2-3.7 13.6-10 34.7-5.8 19.5-7.6 25.8-7.6 25.8-.7 2.8-3.4 7.5-6.3 7.5-1.2 0-2.1-.4-2.6-1.2-1-1.4-.9-5.3-.8-6.3.2-3.2 6.3-22.2 7.3-25.2-2 2.2-4.1 4.4-6.4 6.6-5.4 5.1-14.1 11.8-21.5 11.8-3.4 0-5.6-.9-7.7-2.4l7.6 79.6c2 5 39.2 17.1 88.2 17.1 49.1 0 86.3-12.2 88.2-17.1l10.9-94.6c-5.7 5.2-12.3 11.6-19.6 14.8-5.4 2.3-17.4 3.8-17.4-5.7 0-5.2 9.1-14.8 14.4-21.5 1.4-1.7 4.7-5.9 4.7-8.1 0-2.9-6-2.2-11.7 2.5-3.2 2.7-6.2 6.3-8.7 9.7-4.3 6-6.6 11.2-8.5 15.5-6.2 14.2-4.1 8.6-9.1 22-5 13.3-4.2 11.8-5.2 14-.9 1.9-2.2 3.5-4 4.5-1.9 1-4.5.9-6.1-.3-.9-.6-1.3-1.9-1.3-3.7 0-.9.1-1.8.3-2.7 1.5-6.1 7.8-18.1 15-34.3 1.6-3.7 1-2.6.8-2.3-6.2 6-10.9 8.9-14.4 10.5-5.8 2.6-13 2.6-14.5-4.1-.1-.4-.1-.8-.2-1.2-11.8 9.2-24.3 11.7-20-8.1-4.6 8.2-12.6 14.9-22.4 14.9-4.1 0-7.1-1.4-8.6-5.1-2.3-5.5 1.3-14.9 4.6-23.8 1.7-4.5 4-9.9 7.1-16.2 1.6-3.4 4.2-5.4 7.6-4.5.6.2 1.1.4 1.6.7 2.6 1.8 1.6 4.5.3 7.2-3.8 7.5-7.1 13-9.3 20.8-.9 3.3-2 9 1.5 9 2.4 0 4.7-.8 6.9-2.4 4.6-3.4 8.3-8.5 11.1-13.5 2-3.6 4.4-8.3 5.6-12.3.5-1.7 1.1-3.3 1.8-4.8 1.1-2.5 2.6-5.1 5.2-5.1 1.3 0 2.4.5 3.2 1.5 1.7 2.2 1.3 4.5.4 6.9-2 5.6-4.7 10.6-6.9 16.7-1.3 3.5-2.7 8-2.7 11.7 0 3.4 3.7 2.6 6.8 1.2 2.4-1.1 4.8-2.8 6.8-4.5 1.2-4.9.9-3.8 26.4-68.2 1.3-3.3 3.7-4.7 6.1-4.7 1.2 0 2.2.4 3.2 1.1 1.7 1.3 1.7 4.1 1 6.2-.7 1.9-.6 1.3-4.5 10.5-5.2 12.1-8.6 20.8-13.2 31.9-1.9 4.6-7.7 18.9-8.7 22.3-.6 2.2-1.3 5.8 1 5.8 5.4 0 19.3-13.1 23.1-17 .2-.3.5-.4.9-.6.6-1.9 1.2-3.7 1.7-5.5 1.4-3.8 2.7-8.2 5.3-11.3.8-1 1.7-1.6 2.7-1.6 2.8 0 4.2 1.2 4.2 4 0 1.1-.7 5.1-1.1 6.2 1.4-1.5 2.9-3 4.5-4.5 15-13.9 25.7-6.8 25.7.2 0 7.4-8.9 17.7-13.8 23.4-1.6 1.9-4.9 5.4-5 6.4 0 1.3.9 1.8 2.2 1.8 2 0 6.4-3.5 8-4.7 5-3.9 11.8-9.9 16.6-14.1l14.8-136.8c-30.5 17.1-197.6 17.2-228.3.2zm229.7-8.5c0 21-231.2 21-231.2 0 0-8.8 51.8-15.9 115.6-15.9 9 0 17.8.1 26.3.4l12.6-48.7L228.1.6c1.4-1.4 5.8-.2 9.9 3.5s6.6 7.9 5.3 9.3l-.1.1L185.9 74l-10 40.7c39.9 2.6 67.6 8.1 67.6 14.6zm-69.4 4.6c0-.8-.9-1.5-2.5-2.1l-.2.8c0 1.3-5 2.4-11.1 2.4s-11.1-1.1-11.1-2.4c0-.1 0-.2.1-.3l.2-.7c-1.8.6-3 1.4-3 2.3 0 2.1 6.2 3.7 13.7 3.7 7.7.1 13.9-1.6 13.9-3.7z"], - "creative-commons-sampling-plus": [496, 512, [], "f4f1", "M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm107 205.6c-4.7 0-9 2.8-10.7 7.2l-4 9.5-11-92.8c-1.7-13.9-22-13.4-23.1.4l-4.3 51.4-5.2-68.8c-1.1-14.3-22.1-14.2-23.2 0l-3.5 44.9-5.9-94.3c-.9-14.5-22.3-14.4-23.2 0l-5.1 83.7-4.3-66.3c-.9-14.4-22.2-14.4-23.2 0l-5.3 80.2-4.1-57c-1.1-14.3-22-14.3-23.2-.2l-7.7 89.8-1.8-12.2c-1.7-11.4-17.1-13.6-22-3.3l-13.2 27.7H87.5v23.2h51.3c4.4 0 8.4-2.5 10.4-6.4l10.7 73.1c2 13.5 21.9 13 23.1-.7l3.8-43.6 5.7 78.3c1.1 14.4 22.3 14.2 23.2-.1l4.6-70.4 4.8 73.3c.9 14.4 22.3 14.4 23.2-.1l4.9-80.5 4.5 71.8c.9 14.3 22.1 14.5 23.2.2l4.6-58.6 4.9 64.4c1.1 14.3 22 14.2 23.1.1l6.8-83 2.7 22.3c1.4 11.8 17.7 14.1 22.3 3.1l18-43.4h50.5V258l-58.4.3zm-78 5.2h-21.9v21.9c0 4.1-3.3 7.5-7.5 7.5-4.1 0-7.5-3.3-7.5-7.5v-21.9h-21.9c-4.1 0-7.5-3.3-7.5-7.5 0-4.1 3.4-7.5 7.5-7.5h21.9v-21.9c0-4.1 3.4-7.5 7.5-7.5s7.5 3.3 7.5 7.5v21.9h21.9c4.1 0 7.5 3.3 7.5 7.5 0 4.1-3.4 7.5-7.5 7.5z"], - "strava": [384, 512, [], "f428", "M158.4 0L7 292h89.2l62.2-116.1L220.1 292h88.5zm150.2 292l-43.9 88.2-44.6-88.2h-67.6l112.2 220 111.5-220z"], - "ember": [640, 512, [], "f423", "M639.9 254.6c-1.1-10.7-10.7-6.8-10.7-6.8s-15.6 12.1-29.3 10.7c-13.7-1.3-9.4-32-9.4-32s3-28.1-5.1-30.4c-8.1-2.4-18 7.3-18 7.3s-12.4 13.7-18.3 31.2l-1.6.5s1.9-30.6-.3-37.6c-1.6-3.5-16.4-3.2-18.8 3s-14.2 49.2-15 67.2c0 0-23.1 19.6-43.3 22.8s-25-9.4-25-9.4 54.8-15.3 52.9-59.1-44.2-27.6-49-24c-4.6 3.5-29.4 18.4-36.6 59.7-.2 1.4-.7 7.5-.7 7.5s-21.2 14.2-33 18c0 0 33-55.6-7.3-80.9-11.4-6.8-21.3-.5-27.2 5.3 13.6-17.3 46.4-64.2 36.9-105.2-5.8-24.4-18-27.1-29.2-23.1-17 6.7-23.5 16.7-23.5 16.7s-22 32-27.1 79.5-12.6 105.1-12.6 105.1-10.5 10.2-20.2 10.7-5.4-28.7-5.4-28.7 7.5-44.6 7-52.1-1.1-11.6-9.9-14.2c-8.9-2.7-18.5 8.6-18.5 8.6s-25.5 38.7-27.7 44.6l-1.3 2.4-1.3-1.6s18-52.7.8-53.5-28.5 18.8-28.5 18.8-19.6 32.8-20.4 36.5l-1.3-1.6s8.1-38.2 6.4-47.6c-1.6-9.4-10.5-7.5-10.5-7.5s-11.3-1.3-14.2 5.9-13.7 55.3-15 70.7c0 0-28.2 20.2-46.8 20.4-18.5.3-16.7-11.8-16.7-11.8s68-23.3 49.4-69.2c-8.3-11.8-18-15.5-31.7-15.3-13.7.3-30.3 8.6-41.3 33.3-5.3 11.8-6.8 23-7.8 31.5 0 0-12.3 2.4-18.8-2.9s-10 0-10 0-11.2 14-.1 18.3 28.1 6.1 28.1 6.1c1.6 7.5 6.2 19.5 19.6 29.7 20.2 15.3 58.8-1.3 58.8-1.3l15.9-8.8s.5 14.6 12.1 16.7 16.4 1 36.5-47.9c11.8-25 12.6-23.6 12.6-23.6l1.3-.3s-9.1 46.8-5.6 59.7C187.7 319.4 203 318 203 318s8.3 2.4 15-21.2 19.6-49.9 19.6-49.9h1.6s-5.6 48.1 3 63.7 30.9 5.3 30.9 5.3 15.6-7.8 18-10.2c0 0 18.5 15.8 44.6 12.9 58.3-11.5 79.1-25.9 79.1-25.9s10 24.4 41.1 26.7c35.5 2.7 54.8-18.6 54.8-18.6s-.3 13.5 12.1 18.6 20.7-22.8 20.7-22.8l20.7-57.2h1.9s1.1 37.3 21.5 43.2 47-13.7 47-13.7 6.4-3.5 5.3-14.3zm-578 5.3c.8-32 21.8-45.9 29-39 7.3 7 4.6 22-9.1 31.4-13.7 9.5-19.9 7.6-19.9 7.6zm272.8-123.8s19.1-49.7 23.6-25.5-40 96.2-40 96.2c.5-16.2 16.4-70.7 16.4-70.7zm22.8 138.4c-12.6 33-43.3 19.6-43.3 19.6s-3.5-11.8 6.4-44.9 33.3-20.2 33.3-20.2 16.2 12.4 3.6 45.5zm84.6-14.6s-3-10.5 8.1-30.6c11-20.2 19.6-9.1 19.6-9.1s9.4 10.2-1.3 25.5-26.4 14.2-26.4 14.2z"], - "canadian-maple-leaf": [512, 512, [], "f785", "M383.8 351.7c2.5-2.5 105.2-92.4 105.2-92.4l-17.5-7.5c-10-4.9-7.4-11.5-5-17.4 2.4-7.6 20.1-67.3 20.1-67.3s-47.7 10-57.7 12.5c-7.5 2.4-10-2.5-12.5-7.5s-15-32.4-15-32.4-52.6 59.9-55.1 62.3c-10 7.5-20.1 0-17.6-10 0-10 27.6-129.6 27.6-129.6s-30.1 17.4-40.1 22.4c-7.5 5-12.6 5-17.6-5C293.5 72.3 255.9 0 255.9 0s-37.5 72.3-42.5 79.8c-5 10-10 10-17.6 5-10-5-40.1-22.4-40.1-22.4S183.3 182 183.3 192c2.5 10-7.5 17.5-17.6 10-2.5-2.5-55.1-62.3-55.1-62.3S98.1 167 95.6 172s-5 9.9-12.5 7.5C73 177 25.4 167 25.4 167s17.6 59.7 20.1 67.3c2.4 6 5 12.5-5 17.4L23 259.3s102.6 89.9 105.2 92.4c5.1 5 10 7.5 5.1 22.5-5.1 15-10.1 35.1-10.1 35.1s95.2-20.1 105.3-22.6c8.7-.9 18.3 2.5 18.3 12.5S241 512 241 512h30s-5.8-102.7-5.8-112.8 9.5-13.4 18.4-12.5c10 2.5 105.2 22.6 105.2 22.6s-5-20.1-10-35.1 0-17.5 5-22.5z"], - "teamspeak": [576, 512, [], "f4f9", "M152.8 37.2c-32.2 38.1-56.1 82.6-69.9 130.5c0 .2-.1 .3-.1 .5C43.5 184.4 16 223 16 268c0 59.6 48.4 108 108 108s108-48.4 108-108c0-53.5-38.9-97.9-90-106.5c15.7-41.8 40.4-79.6 72.3-110.7c1.8-1.6 4-2.6 6.3-3.1c37.2-11.5 76.7-13.3 114.8-5.2C454.7 67.6 534 180.7 517.1 301.3c-8.4 62.6-38.6 112.7-87.7 151.4c-50.1 39.7-107.5 54.3-170.2 52.2l-24-1c12.4 2.8 25 4.9 37.6 6.3c40.7 4.2 81.4 2.1 120.1-12.5c94-35.5 149.3-102.3 162.9-202.5c4.8-52.6-5.8-105.4-30.8-152C454.6 11.3 290.8-38.4 159 32c-2.4 1.4-4.5 3.1-6.3 5.2zM309.4 433.9c-2.1 11.5-4.2 21.9-14.6 31.3c53.2-1 123.2-29.2 161.8-97.1c39.7-69.9 37.6-139.9-6.3-207.8C413.8 105 360.5 77.9 293.7 73.7c1.5 2.3 3.2 4.4 5.2 6.3l5.2 6.3c25.1 31.3 37.6 67.9 42.8 107.5c2.1 15.7-1 30.3-13.6 41.8c-4.2 3.1-5.2 6.3-4.2 10.4l7.3 17.7L365.7 318c5.2 11.5 4.2 19.8-6.3 28.2c-3.2 2.5-6.7 4.6-10.4 6.3l-18.8 8.4 3.1 13.6c3.1 6.3 1 12.5-3.1 17.7c-2.5 2.4-3.8 5.9-3.1 9.4c2.1 11.5-2.1 19.8-12.5 25.1c-2.1 1-4.2 5.2-5.2 7.3zm-133.6-3.1c16.7 11.5 34.5 20.9 53.2 26.1c24 5.2 41.8-6.3 44.9-30.3c1-8.4 5.2-14.6 12.5-17.7c7.3-4.2 8.4-7.3 2.1-13.6l-9.4-8.4 13.6-4.2c6.3-2.1 7.3-5.2 5.2-11.5c-1.4-3-2.4-6.2-3.1-9.4c-3.1-14.6-2.1-15.7 11.5-18.8c8.4-3.1 15.7-6.3 21.9-12.5c3.1-2.1 3.1-4.2 1-8.4l-16.7-30.3c-1-1.9-2.1-3.8-3.1-5.7c-6.4-11.7-13-23.6-15.7-37.1c-2.1-9.4-1-17.7 8.4-24c5.2-4.2 8.4-9.4 8.4-16.7c-.4-10.1-1.5-20.3-3.1-30.3c-6.3-37.6-23-68.9-51.2-95c-5.2-4.2-9.4-6.3-16.7-4.2L203.9 91.5c2 1.2 4 2.4 6 3.6l0 0c6.3 3.7 12.2 7.3 17 12.1c30.3 26.1 41.8 61.6 45.9 100.2c1 8.4 0 16.7-7.3 21.9c-8.4 5.2-10.4 12.5-7.3 20.9c4.9 13.2 10.4 26 16.7 38.6L291.6 318c-6.3 8.4-13.6 11.5-21.9 14.6c-12.5 3.1-14.6 7.3-10.4 20.9c.6 1.5 1.4 2.8 2.1 4.2c2.1 5.2 1 8.4-4.2 10.4l-12.5 3.1 5.2 4.2 4.2 4.2c4.2 5.2 4.2 8.4-2.1 10.4c-7.3 4.2-11.5 9.4-11.5 17.7c0 12.5-7.3 19.8-18.8 24c-3.8 1-7.6 1.5-11.5 1l-34.5-2.1z"], - "pushed": [432, 512, [], "f3e1", "M407 111.9l-98.5-9 14-33.4c10.4-23.5-10.8-40.4-28.7-37L22.5 76.9c-15.1 2.7-26 18.3-21.4 36.6l105.1 348.3c6.5 21.3 36.7 24.2 47.7 7l35.3-80.8 235.2-231.3c16.4-16.8 4.3-42.9-17.4-44.8zM297.6 53.6c5.1-.7 7.5 2.5 5.2 7.4L286 100.9 108.6 84.6l189-31zM22.7 107.9c-3.1-5.1 1-10 6.1-9.1l248.7 22.7-96.9 230.7L22.7 107.9zM136 456.4c-2.6 4-7.9 3.1-9.4-1.2L43.5 179.7l127.7 197.6c-7 15-35.2 79.1-35.2 79.1zm272.8-314.5L210.1 337.3l89.7-213.7 106.4 9.7c4 1.1 5.7 5.3 2.6 8.6z"], - "wordpress-simple": [512, 512, [], "f411", "M256 8C119.3 8 8 119.2 8 256c0 136.7 111.3 248 248 248s248-111.3 248-248C504 119.2 392.7 8 256 8zM33 256c0-32.3 6.9-63 19.3-90.7l106.4 291.4C84.3 420.5 33 344.2 33 256zm223 223c-21.9 0-43-3.2-63-9.1l66.9-194.4 68.5 187.8c.5 1.1 1 2.1 1.6 3.1-23.1 8.1-48 12.6-74 12.6zm30.7-327.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-21.9 0-58.7-2.8-58.7-2.8-12-.7-13.4 17.7-1.4 18.4 0 0 11.4 1.4 23.4 2.1l34.7 95.2L200.6 393l-81.2-241.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-4.2 0-9.1-.1-14.4-.3C109.6 73 178.1 33 256 33c58 0 110.9 22.2 150.6 58.5-1-.1-1.9-.2-2.9-.2-21.9 0-37.4 19.1-37.4 39.6 0 18.4 10.6 33.9 21.9 52.3 8.5 14.8 18.4 33.9 18.4 61.5 0 19.1-7.3 41.2-17 72.1l-22.2 74.3-80.7-239.6zm81.4 297.2l68.1-196.9c12.7-31.8 17-57.2 17-79.9 0-8.2-.5-15.8-1.5-22.9 17.4 31.8 27.3 68.2 27.3 107 0 82.3-44.6 154.1-110.9 192.7z"], - "nutritionix": [400, 512, [], "f3d6", "M88 8.1S221.4-.1 209 112.5c0 0 19.1-74.9 103-40.6 0 0-17.7 74-88 56 0 0 14.6-54.6 66.1-56.6 0 0-39.9-10.3-82.1 48.8 0 0-19.8-94.5-93.6-99.7 0 0 75.2 19.4 77.6 107.5 0 .1-106.4 7-104-119.8zm312 315.6c0 48.5-9.7 95.3-32 132.3-42.2 30.9-105 48-168 48-62.9 0-125.8-17.1-168-48C9.7 419 0 372.2 0 323.7 0 275.3 17.7 229 40 192c42.2-30.9 97.1-48.6 160-48.6 63 0 117.8 17.6 160 48.6 22.3 37 40 83.3 40 131.7zM120 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM192 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM264 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM336 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm24-39.6c-4.8-22.3-7.4-36.9-16-56-38.8-19.9-90.5-32-144-32S94.8 180.1 56 200c-8.8 19.5-11.2 33.9-16 56 42.2-7.9 98.7-14.8 160-14.8s117.8 6.9 160 14.8z"], - "wodu": [640, 512, [], "e088", "M178.414 339.706H141.1L112.166 223.475h-.478L83.228 339.706H45.2L0 168.946H37.548L64.574 285.177h.478L94.707 168.946h35.157l29.178 117.667h.479L187.5 168.946h36.831zM271.4 212.713c38.984 0 64.1 25.828 64.1 65.291 0 39.222-25.111 65.05-64.1 65.05-38.743 0-63.855-25.828-63.855-65.05C207.547 238.541 232.659 212.713 271.4 212.713zm0 104.753c23.2 0 30.133-19.852 30.133-39.462 0-19.852-6.934-39.7-30.133-39.7-27.7 0-29.894 19.85-29.894 39.7C241.508 297.614 248.443 317.466 271.4 317.466zM435.084 323.922h-.478c-7.893 13.392-21.765 19.132-37.548 19.132-37.31 0-55.485-32.045-55.485-66.246 0-33.243 18.415-64.095 54.767-64.095 14.589 0 28.938 6.218 36.831 18.416h.24V168.946h33.96v170.76H435.084zM405.428 238.3c-22.24 0-29.894 19.134-29.894 39.463 0 19.371 8.848 39.7 29.894 39.7 22.482 0 29.178-19.613 29.178-39.94C434.606 257.436 427.432 238.3 405.428 238.3zM592.96 339.706H560.673V322.487h-.718c-8.609 13.87-23.436 20.567-37.786 20.567-36.113 0-45.2-20.328-45.2-50.941V216.061h33.959V285.9c0 20.329 5.979 30.372 21.765 30.372 18.415 0 26.306-10.283 26.306-35.393V216.061H592.96zM602.453 302.876H640v36.83H602.453z"], - "google-pay": [640, 512, [], "e079", "M105.72,215v41.25h57.1a49.66,49.66,0,0,1-21.14,32.6c-9.54,6.55-21.72,10.28-36,10.28-27.6,0-50.93-18.91-59.3-44.22a65.61,65.61,0,0,1,0-41l0,0c8.37-25.46,31.7-44.37,59.3-44.37a56.43,56.43,0,0,1,40.51,16.08L176.47,155a101.24,101.24,0,0,0-70.75-27.84,105.55,105.55,0,0,0-94.38,59.11,107.64,107.64,0,0,0,0,96.18v.15a105.41,105.41,0,0,0,94.38,59c28.47,0,52.55-9.53,70-25.91,20-18.61,31.41-46.15,31.41-78.91A133.76,133.76,0,0,0,205.38,215Zm389.41-4c-10.13-9.38-23.93-14.14-41.39-14.14-22.46,0-39.34,8.34-50.5,24.86l20.85,13.26q11.45-17,31.26-17a34.05,34.05,0,0,1,22.75,8.79A28.14,28.14,0,0,1,487.79,248v5.51c-9.1-5.07-20.55-7.75-34.64-7.75-16.44,0-29.65,3.88-39.49,11.77s-14.82,18.31-14.82,31.56a39.74,39.74,0,0,0,13.94,31.27c9.25,8.34,21,12.51,34.79,12.51,16.29,0,29.21-7.3,39-21.89h1v17.72h22.61V250C510.25,233.45,505.26,220.34,495.13,211ZM475.9,300.3a37.32,37.32,0,0,1-26.57,11.16A28.61,28.61,0,0,1,431,305.21a19.41,19.41,0,0,1-7.77-15.63c0-7,3.22-12.81,9.54-17.42s14.53-7,24.07-7C470,265,480.3,268,487.64,273.94,487.64,284.07,483.68,292.85,475.9,300.3Zm-93.65-142A55.71,55.71,0,0,0,341.74,142H279.07V328.74H302.7V253.1h39c16,0,29.5-5.36,40.51-15.93.88-.89,1.76-1.79,2.65-2.68A54.45,54.45,0,0,0,382.25,158.26Zm-16.58,62.23a30.65,30.65,0,0,1-23.34,9.68H302.7V165h39.63a32,32,0,0,1,22.6,9.23A33.18,33.18,0,0,1,365.67,220.49ZM614.31,201,577.77,292.7h-.45L539.9,201H514.21L566,320.55l-29.35,64.32H561L640,201Z"], - "intercom": [448, 512, [], "f7af", "M392 32H56C25.1 32 0 57.1 0 88v336c0 30.9 25.1 56 56 56h336c30.9 0 56-25.1 56-56V88c0-30.9-25.1-56-56-56zm-108.3 82.1c0-19.8 29.9-19.8 29.9 0v199.5c0 19.8-29.9 19.8-29.9 0V114.1zm-74.6-7.5c0-19.8 29.9-19.8 29.9 0v216.5c0 19.8-29.9 19.8-29.9 0V106.6zm-74.7 7.5c0-19.8 29.9-19.8 29.9 0v199.5c0 19.8-29.9 19.8-29.9 0V114.1zM59.7 144c0-19.8 29.9-19.8 29.9 0v134.3c0 19.8-29.9 19.8-29.9 0V144zm323.4 227.8c-72.8 63-241.7 65.4-318.1 0-15-12.8 4.4-35.5 19.4-22.7 65.9 55.3 216.1 53.9 279.3 0 14.9-12.9 34.3 9.8 19.4 22.7zm5.2-93.5c0 19.8-29.9 19.8-29.9 0V144c0-19.8 29.9-19.8 29.9 0v134.3z"], - "zhihu": [640, 512, [], "f63f", "M170.54 148.13v217.54l23.43.01 7.71 26.37 42.01-26.37h49.53V148.13H170.54zm97.75 193.93h-27.94l-27.9 17.51-5.08-17.47-11.9-.04V171.75h72.82v170.31zm-118.46-94.39H97.5c1.74-27.1 2.2-51.59 2.2-73.46h51.16s1.97-22.56-8.58-22.31h-88.5c3.49-13.12 7.87-26.66 13.12-40.67 0 0-24.07 0-32.27 21.57-3.39 8.9-13.21 43.14-30.7 78.12 5.89-.64 25.37-1.18 36.84-22.21 2.11-5.89 2.51-6.66 5.14-14.53h28.87c0 10.5-1.2 66.88-1.68 73.44H20.83c-11.74 0-15.56 23.62-15.56 23.62h65.58C66.45 321.1 42.83 363.12 0 396.34c20.49 5.85 40.91-.93 51-9.9 0 0 22.98-20.9 35.59-69.25l53.96 64.94s7.91-26.89-1.24-39.99c-7.58-8.92-28.06-33.06-36.79-41.81L87.9 311.95c4.36-13.98 6.99-27.55 7.87-40.67h61.65s-.09-23.62-7.59-23.62v.01zm412.02-1.6c20.83-25.64 44.98-58.57 44.98-58.57s-18.65-14.8-27.38-4.06c-6 8.15-36.83 48.2-36.83 48.2l19.23 14.43zm-150.09-59.09c-9.01-8.25-25.91 2.13-25.91 2.13s39.52 55.04 41.12 57.45l19.46-13.73s-25.67-37.61-34.66-45.86h-.01zM640 258.35c-19.78 0-130.91.93-131.06.93v-101c4.81 0 12.42-.4 22.85-1.2 40.88-2.41 70.13-4 87.77-4.81 0 0 12.22-27.19-.59-33.44-3.07-1.18-23.17 4.58-23.17 4.58s-165.22 16.49-232.36 18.05c1.6 8.82 7.62 17.08 15.78 19.55 13.31 3.48 22.69 1.7 49.15.89 24.83-1.6 43.68-2.43 56.51-2.43v99.81H351.41s2.82 22.31 25.51 22.85h107.94v70.92c0 13.97-11.19 21.99-24.48 21.12-14.08.11-26.08-1.15-41.69-1.81 1.99 3.97 6.33 14.39 19.31 21.84 9.88 4.81 16.17 6.57 26.02 6.57 29.56 0 45.67-17.28 44.89-45.31v-73.32h122.36c9.68 0 8.7-23.78 8.7-23.78l.03-.01z"], - "korvue": [446, 512, [], "f42f", "M386.5 34h-327C26.8 34 0 60.8 0 93.5v327.1C0 453.2 26.8 480 59.5 480h327.1c33 0 59.5-26.8 59.5-59.5v-327C446 60.8 419.2 34 386.5 34zM87.1 120.8h96v116l61.8-116h110.9l-81.2 132H87.1v-132zm161.8 272.1l-65.7-113.6v113.6h-96V262.1h191.5l88.6 130.8H248.9z"], - "pix": [512, 512, [], "e43a", "M242.4 292.5C247.8 287.1 257.1 287.1 262.5 292.5L339.5 369.5C353.7 383.7 372.6 391.5 392.6 391.5H407.7L310.6 488.6C280.3 518.1 231.1 518.1 200.8 488.6L103.3 391.2H112.6C132.6 391.2 151.5 383.4 165.7 369.2L242.4 292.5zM262.5 218.9C256.1 224.4 247.9 224.5 242.4 218.9L165.7 142.2C151.5 127.1 132.6 120.2 112.6 120.2H103.3L200.7 22.76C231.1-7.586 280.3-7.586 310.6 22.76L407.8 119.9H392.6C372.6 119.9 353.7 127.7 339.5 141.9L262.5 218.9zM112.6 142.7C126.4 142.7 139.1 148.3 149.7 158.1L226.4 234.8C233.6 241.1 243 245.6 252.5 245.6C261.9 245.6 271.3 241.1 278.5 234.8L355.5 157.8C365.3 148.1 378.8 142.5 392.6 142.5H430.3L488.6 200.8C518.9 231.1 518.9 280.3 488.6 310.6L430.3 368.9H392.6C378.8 368.9 365.3 363.3 355.5 353.5L278.5 276.5C264.6 262.6 240.3 262.6 226.4 276.6L149.7 353.2C139.1 363 126.4 368.6 112.6 368.6H80.78L22.76 310.6C-7.586 280.3-7.586 231.1 22.76 200.8L80.78 142.7H112.6z"], - "steam-symbol": [448, 512, [], "f3f6", "M395.5 177.5c0 33.8-27.5 61-61 61-33.8 0-61-27.3-61-61s27.3-61 61-61c33.5 0 61 27.2 61 61zm52.5.2c0 63-51 113.8-113.7 113.8L225 371.3c-4 43-40.5 76.8-84.5 76.8-40.5 0-74.7-28.8-83-67L0 358V250.7L97.2 290c15.1-9.2 32.2-13.3 52-11.5l71-101.7c.5-62.3 51.5-112.8 114-112.8C397 64 448 115 448 177.7zM203 363c0-34.7-27.8-62.5-62.5-62.5-4.5 0-9 .5-13.5 1.5l26 10.5c25.5 10.2 38 39 27.7 64.5-10.2 25.5-39.2 38-64.7 27.5-10.2-4-20.5-8.3-30.7-12.2 10.5 19.7 31.2 33.2 55.2 33.2 34.7 0 62.5-27.8 62.5-62.5zm207.5-185.3c0-42-34.3-76.2-76.2-76.2-42.3 0-76.5 34.2-76.5 76.2 0 42.2 34.3 76.2 76.5 76.2 41.9.1 76.2-33.9 76.2-76.2z"] - }; - - bunker(() => { - defineIcons('fab', icons); - defineIcons('fa-brands', icons); - }); - -}()); diff --git a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/js/brands.min.js b/XNSimHtml/node_modules/@fortawesome/fontawesome-free/js/brands.min.js deleted file mode 100644 index 992548f..0000000 --- a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/js/brands.min.js +++ /dev/null @@ -1,6 +0,0 @@ -/*! - * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - * Copyright 2024 Fonticons, Inc. - */ -(()=>{let c={},l={};try{"undefined"!=typeof window&&(c=window),"undefined"!=typeof document&&(l=document)}catch(c){}var{userAgent:z=""}=c.navigator||{},h=c,a=l;function m(c,l,z){var h;(l="symbol"==typeof(h=((c,l)=>{if("object"!=typeof c||!c)return c;var z=c[Symbol.toPrimitive];if(void 0===z)return("string"===l?String:Number)(c);if("object"!=typeof(z=z.call(c,l||"default")))return z;throw new TypeError("@@toPrimitive must return a primitive value.")})(l,"string"))?h:h+"")in c?Object.defineProperty(c,l,{value:z,enumerable:!0,configurable:!0,writable:!0}):c[l]=z}function s(l,c){var z,h=Object.keys(l);return Object.getOwnPropertySymbols&&(z=Object.getOwnPropertySymbols(l),c&&(z=z.filter(function(c){return Object.getOwnPropertyDescriptor(l,c).enumerable})),h.push.apply(h,z)),h}function C(l){for(var c=1;c{try{return!0}catch(c){return!1}})();function f(c){return new Proxy(c,{get(c,l){return l in c?c[l]:c[v]}})}var r=C({},a);r[v]=C(C(C(C({},{"fa-duotone":"duotone"}),a[v]),z),M),f(r),(a=C({},{classic:{solid:"fas",regular:"far",light:"fal",thin:"fat",brands:"fab"},duotone:{solid:"fad",regular:"fadr",light:"fadl",thin:"fadt"},sharp:{solid:"fass",regular:"fasr",light:"fasl",thin:"fast"},"sharp-duotone":{solid:"fasds",regular:"fasdr",light:"fasdl",thin:"fasdt"}}))[v]=C(C(C(C({},{duotone:"fad"}),a[v]),H),e),f(a),(z=C({},{classic:{fab:"fa-brands",fad:"fa-duotone",fal:"fa-light",far:"fa-regular",fas:"fa-solid",fat:"fa-thin"},duotone:{fadr:"fa-regular",fadl:"fa-light",fadt:"fa-thin"},sharp:{fass:"fa-solid",fasr:"fa-regular",fasl:"fa-light",fast:"fa-thin"},"sharp-duotone":{fasds:"fa-solid",fasdr:"fa-regular",fasdl:"fa-light",fasdt:"fa-thin"}}))[v]=C(C({},z[v]),{fak:"fa-kit"}),f(z),(M=C({},{classic:{"fa-brands":"fab","fa-duotone":"fad","fa-light":"fal","fa-regular":"far","fa-solid":"fas","fa-thin":"fat"},duotone:{"fa-regular":"fadr","fa-light":"fadl","fa-thin":"fadt"},sharp:{"fa-solid":"fass","fa-regular":"fasr","fa-light":"fasl","fa-thin":"fast"},"sharp-duotone":{"fa-solid":"fasds","fa-regular":"fasdr","fa-light":"fasdl","fa-thin":"fasdt"}}))[v]=C(C({},M[v]),{"fa-kit":"fak"}),f(M),f(C({},{classic:{900:"fas",400:"far",normal:"far",300:"fal",100:"fat"},duotone:{900:"fad",400:"fadr",300:"fadl",100:"fadt"},sharp:{900:"fass",400:"fasr",300:"fasl",100:"fast"},"sharp-duotone":{900:"fasds",400:"fasdr",300:"fasdl",100:"fasdt"}}));(r=h||{})[V]||(r[V]={}),r[V].styles||(r[V].styles={}),r[V].hooks||(r[V].hooks={}),r[V].shims||(r[V].shims=[]);var t=r[V];function o(h){return Object.keys(h).reduce((c,l)=>{var z=h[l];return!!z.icon?c[z.iconName]=z.icon:c[l]=z,c},{})}function i(c,l,z){var{skipHooks:h=!1}=2{i("fab",d),i("fa-brands",d)})})(); \ No newline at end of file diff --git a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/js/conflict-detection.js b/XNSimHtml/node_modules/@fortawesome/fontawesome-free/js/conflict-detection.js deleted file mode 100644 index 524741e..0000000 --- a/XNSimHtml/node_modules/@fortawesome/fontawesome-free/js/conflict-detection.js +++ /dev/null @@ -1,1108 +0,0 @@ -/*! - * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - * Copyright 2024 Fonticons, Inc. - */ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory() : - typeof define === 'function' && define.amd ? define(factory) : - (factory()); -}(this, (function () { 'use strict'; - - function _defineProperty(e, r, t) { - return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { - value: t, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[r] = t, e; - } - function ownKeys(e, r) { - var t = Object.keys(e); - if (Object.getOwnPropertySymbols) { - var o = Object.getOwnPropertySymbols(e); - r && (o = o.filter(function (r) { - return Object.getOwnPropertyDescriptor(e, r).enumerable; - })), t.push.apply(t, o); - } - return t; - } - function _objectSpread2(e) { - for (var r = 1; r < arguments.length; r++) { - var t = null != arguments[r] ? arguments[r] : {}; - r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { - _defineProperty(e, r, t[r]); - }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { - Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); - }); - } - return e; - } - function _toPrimitive(t, r) { - if ("object" != typeof t || !t) return t; - var e = t[Symbol.toPrimitive]; - if (void 0 !== e) { - var i = e.call(t, r || "default"); - if ("object" != typeof i) return i; - throw new TypeError("@@toPrimitive must return a primitive value."); - } - return ("string" === r ? String : Number)(t); - } - function _toPropertyKey(t) { - var i = _toPrimitive(t, "string"); - return "symbol" == typeof i ? i : i + ""; - } - - let _WINDOW = {}; - let _DOCUMENT = {}; - try { - if (typeof window !== 'undefined') _WINDOW = window; - if (typeof document !== 'undefined') _DOCUMENT = document; - } catch (e) {} - const { - userAgent = '' - } = _WINDOW.navigator || {}; - const WINDOW = _WINDOW; - const DOCUMENT = _DOCUMENT; - const IS_BROWSER = !!WINDOW.document; - const IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function'; - const IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/'); - - const functions = []; - const listener = function () { - DOCUMENT.removeEventListener('DOMContentLoaded', listener); - loaded = 1; - functions.map(fn => fn()); - }; - let loaded = false; - if (IS_DOM) { - loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState); - if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener); - } - function domready (fn) { - if (!IS_DOM) return; - loaded ? setTimeout(fn, 0) : functions.push(fn); - } - - function report (_ref) { - let { - nodesTested, - nodesFound - } = _ref; - const timedOutTests = {}; - for (let key in nodesFound) { - if (!(nodesTested.conflict[key] || nodesTested.noConflict[key])) { - timedOutTests[key] = nodesFound[key]; - } - } - const conflictsCount = Object.keys(nodesTested.conflict).length; - if (conflictsCount > 0) { - console.info("%cConflict".concat(conflictsCount > 1 ? 's' : '', " found:"), 'color: darkred; font-size: large'); - const data = {}; - for (let key in nodesTested.conflict) { - const item = nodesTested.conflict[key]; - data[key] = { - 'tagName': item.tagName, - 'src/href': item.src || item.href || 'n/a', - 'innerText excerpt': item.innerText && item.innerText !== '' ? item.innerText.slice(0, 200) + '...' : '(empty)' - }; - } - console.table(data); - } - const noConflictsCount = Object.keys(nodesTested.noConflict).length; - if (noConflictsCount > 0) { - console.info("%cNo conflict".concat(noConflictsCount > 1 ? 's' : '', " found with ").concat(noConflictsCount === 1 ? 'this' : 'these', ":"), 'color: green; font-size: large'); - const data = {}; - for (let key in nodesTested.noConflict) { - const item = nodesTested.noConflict[key]; - data[key] = { - 'tagName': item.tagName, - 'src/href': item.src || item.href || 'n/a', - 'innerText excerpt': item.innerText && item.innerText !== '' ? item.innerText.slice(0, 200) + '...' : '(empty)' - }; - } - console.table(data); - } - const timeOutCount = Object.keys(timedOutTests).length; - if (timeOutCount > 0) { - console.info("%cLeftovers--we timed out before collecting test results for ".concat(timeOutCount === 1 ? 'this' : 'these', ":"), 'color: blue; font-size: large'); - const data = {}; - for (let key in timedOutTests) { - const item = timedOutTests[key]; - data[key] = { - 'tagName': item.tagName, - 'src/href': item.src || item.href || 'n/a', - 'innerText excerpt': item.innerText && item.innerText !== '' ? item.innerText.slice(0, 200) + '...' : '(empty)' - }; - } - console.table(data); - } - } - - var commonjsGlobal = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; - - function createCommonjsModule(fn, module) { - return module = { exports: {} }, fn(module, module.exports), module.exports; - } - - var md5 = createCommonjsModule(function (module) { - (function ($) { - - /** - * Add integers, wrapping at 2^32. - * This uses 16-bit operations internally to work around bugs in interpreters. - * - * @param {number} x First integer - * @param {number} y Second integer - * @returns {number} Sum - */ - function safeAdd(x, y) { - var lsw = (x & 0xffff) + (y & 0xffff); - var msw = (x >> 16) + (y >> 16) + (lsw >> 16); - return msw << 16 | lsw & 0xffff; - } - - /** - * Bitwise rotate a 32-bit number to the left. - * - * @param {number} num 32-bit number - * @param {number} cnt Rotation count - * @returns {number} Rotated number - */ - function bitRotateLeft(num, cnt) { - return num << cnt | num >>> 32 - cnt; - } - - /** - * Basic operation the algorithm uses. - * - * @param {number} q q - * @param {number} a a - * @param {number} b b - * @param {number} x x - * @param {number} s s - * @param {number} t t - * @returns {number} Result - */ - function md5cmn(q, a, b, x, s, t) { - return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b); - } - /** - * Basic operation the algorithm uses. - * - * @param {number} a a - * @param {number} b b - * @param {number} c c - * @param {number} d d - * @param {number} x x - * @param {number} s s - * @param {number} t t - * @returns {number} Result - */ - function md5ff(a, b, c, d, x, s, t) { - return md5cmn(b & c | ~b & d, a, b, x, s, t); - } - /** - * Basic operation the algorithm uses. - * - * @param {number} a a - * @param {number} b b - * @param {number} c c - * @param {number} d d - * @param {number} x x - * @param {number} s s - * @param {number} t t - * @returns {number} Result - */ - function md5gg(a, b, c, d, x, s, t) { - return md5cmn(b & d | c & ~d, a, b, x, s, t); - } - /** - * Basic operation the algorithm uses. - * - * @param {number} a a - * @param {number} b b - * @param {number} c c - * @param {number} d d - * @param {number} x x - * @param {number} s s - * @param {number} t t - * @returns {number} Result - */ - function md5hh(a, b, c, d, x, s, t) { - return md5cmn(b ^ c ^ d, a, b, x, s, t); - } - /** - * Basic operation the algorithm uses. - * - * @param {number} a a - * @param {number} b b - * @param {number} c c - * @param {number} d d - * @param {number} x x - * @param {number} s s - * @param {number} t t - * @returns {number} Result - */ - function md5ii(a, b, c, d, x, s, t) { - return md5cmn(c ^ (b | ~d), a, b, x, s, t); - } - - /** - * Calculate the MD5 of an array of little-endian words, and a bit length. - * - * @param {Array} x Array of little-endian words - * @param {number} len Bit length - * @returns {Array} MD5 Array - */ - function binlMD5(x, len) { - /* append padding */ - x[len >> 5] |= 0x80 << len % 32; - x[(len + 64 >>> 9 << 4) + 14] = len; - var i; - var olda; - var oldb; - var oldc; - var oldd; - var a = 1732584193; - var b = -271733879; - var c = -1732584194; - var d = 271733878; - for (i = 0; i < x.length; i += 16) { - olda = a; - oldb = b; - oldc = c; - oldd = d; - a = md5ff(a, b, c, d, x[i], 7, -680876936); - d = md5ff(d, a, b, c, x[i + 1], 12, -389564586); - c = md5ff(c, d, a, b, x[i + 2], 17, 606105819); - b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330); - a = md5ff(a, b, c, d, x[i + 4], 7, -176418897); - d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426); - c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341); - b = md5ff(b, c, d, a, x[i + 7], 22, -45705983); - a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416); - d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417); - c = md5ff(c, d, a, b, x[i + 10], 17, -42063); - b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162); - a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682); - d = md5ff(d, a, b, c, x[i + 13], 12, -40341101); - c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290); - b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329); - a = md5gg(a, b, c, d, x[i + 1], 5, -165796510); - d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632); - c = md5gg(c, d, a, b, x[i + 11], 14, 643717713); - b = md5gg(b, c, d, a, x[i], 20, -373897302); - a = md5gg(a, b, c, d, x[i + 5], 5, -701558691); - d = md5gg(d, a, b, c, x[i + 10], 9, 38016083); - c = md5gg(c, d, a, b, x[i + 15], 14, -660478335); - b = md5gg(b, c, d, a, x[i + 4], 20, -405537848); - a = md5gg(a, b, c, d, x[i + 9], 5, 568446438); - d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690); - c = md5gg(c, d, a, b, x[i + 3], 14, -187363961); - b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501); - a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467); - d = md5gg(d, a, b, c, x[i + 2], 9, -51403784); - c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473); - b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734); - a = md5hh(a, b, c, d, x[i + 5], 4, -378558); - d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463); - c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562); - b = md5hh(b, c, d, a, x[i + 14], 23, -35309556); - a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060); - d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353); - c = md5hh(c, d, a, b, x[i + 7], 16, -155497632); - b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640); - a = md5hh(a, b, c, d, x[i + 13], 4, 681279174); - d = md5hh(d, a, b, c, x[i], 11, -358537222); - c = md5hh(c, d, a, b, x[i + 3], 16, -722521979); - b = md5hh(b, c, d, a, x[i + 6], 23, 76029189); - a = md5hh(a, b, c, d, x[i + 9], 4, -640364487); - d = md5hh(d, a, b, c, x[i + 12], 11, -421815835); - c = md5hh(c, d, a, b, x[i + 15], 16, 530742520); - b = md5hh(b, c, d, a, x[i + 2], 23, -995338651); - a = md5ii(a, b, c, d, x[i], 6, -198630844); - d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415); - c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905); - b = md5ii(b, c, d, a, x[i + 5], 21, -57434055); - a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571); - d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606); - c = md5ii(c, d, a, b, x[i + 10], 15, -1051523); - b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799); - a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359); - d = md5ii(d, a, b, c, x[i + 15], 10, -30611744); - c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380); - b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649); - a = md5ii(a, b, c, d, x[i + 4], 6, -145523070); - d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379); - c = md5ii(c, d, a, b, x[i + 2], 15, 718787259); - b = md5ii(b, c, d, a, x[i + 9], 21, -343485551); - a = safeAdd(a, olda); - b = safeAdd(b, oldb); - c = safeAdd(c, oldc); - d = safeAdd(d, oldd); - } - return [a, b, c, d]; - } - - /** - * Convert an array of little-endian words to a string - * - * @param {Array} input MD5 Array - * @returns {string} MD5 string - */ - function binl2rstr(input) { - var i; - var output = ''; - var length32 = input.length * 32; - for (i = 0; i < length32; i += 8) { - output += String.fromCharCode(input[i >> 5] >>> i % 32 & 0xff); - } - return output; - } - - /** - * Convert a raw string to an array of little-endian words - * Characters >255 have their high-byte silently ignored. - * - * @param {string} input Raw input string - * @returns {Array} Array of little-endian words - */ - function rstr2binl(input) { - var i; - var output = []; - output[(input.length >> 2) - 1] = undefined; - for (i = 0; i < output.length; i += 1) { - output[i] = 0; - } - var length8 = input.length * 8; - for (i = 0; i < length8; i += 8) { - output[i >> 5] |= (input.charCodeAt(i / 8) & 0xff) << i % 32; - } - return output; - } - - /** - * Calculate the MD5 of a raw string - * - * @param {string} s Input string - * @returns {string} Raw MD5 string - */ - function rstrMD5(s) { - return binl2rstr(binlMD5(rstr2binl(s), s.length * 8)); - } - - /** - * Calculates the HMAC-MD5 of a key and some data (raw strings) - * - * @param {string} key HMAC key - * @param {string} data Raw input string - * @returns {string} Raw MD5 string - */ - function rstrHMACMD5(key, data) { - var i; - var bkey = rstr2binl(key); - var ipad = []; - var opad = []; - var hash; - ipad[15] = opad[15] = undefined; - if (bkey.length > 16) { - bkey = binlMD5(bkey, key.length * 8); - } - for (i = 0; i < 16; i += 1) { - ipad[i] = bkey[i] ^ 0x36363636; - opad[i] = bkey[i] ^ 0x5c5c5c5c; - } - hash = binlMD5(ipad.concat(rstr2binl(data)), 512 + data.length * 8); - return binl2rstr(binlMD5(opad.concat(hash), 512 + 128)); - } - - /** - * Convert a raw string to a hex string - * - * @param {string} input Raw input string - * @returns {string} Hex encoded string - */ - function rstr2hex(input) { - var hexTab = '0123456789abcdef'; - var output = ''; - var x; - var i; - for (i = 0; i < input.length; i += 1) { - x = input.charCodeAt(i); - output += hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f); - } - return output; - } - - /** - * Encode a string as UTF-8 - * - * @param {string} input Input string - * @returns {string} UTF8 string - */ - function str2rstrUTF8(input) { - return unescape(encodeURIComponent(input)); - } - - /** - * Encodes input string as raw MD5 string - * - * @param {string} s Input string - * @returns {string} Raw MD5 string - */ - function rawMD5(s) { - return rstrMD5(str2rstrUTF8(s)); - } - /** - * Encodes input string as Hex encoded string - * - * @param {string} s Input string - * @returns {string} Hex encoded string - */ - function hexMD5(s) { - return rstr2hex(rawMD5(s)); - } - /** - * Calculates the raw HMAC-MD5 for the given key and data - * - * @param {string} k HMAC key - * @param {string} d Input string - * @returns {string} Raw MD5 string - */ - function rawHMACMD5(k, d) { - return rstrHMACMD5(str2rstrUTF8(k), str2rstrUTF8(d)); - } - /** - * Calculates the Hex encoded HMAC-MD5 for the given key and data - * - * @param {string} k HMAC key - * @param {string} d Input string - * @returns {string} Raw MD5 string - */ - function hexHMACMD5(k, d) { - return rstr2hex(rawHMACMD5(k, d)); - } - - /** - * Calculates MD5 value for a given string. - * If a key is provided, calculates the HMAC-MD5 value. - * Returns a Hex encoded string unless the raw argument is given. - * - * @param {string} string Input string - * @param {string} [key] HMAC key - * @param {boolean} [raw] Raw output switch - * @returns {string} MD5 output - */ - function md5(string, key, raw) { - if (!key) { - if (!raw) { - return hexMD5(string); - } - return rawMD5(string); - } - if (!raw) { - return hexHMACMD5(key, string); - } - return rawHMACMD5(key, string); - } - if (module.exports) { - module.exports = md5; - } else { - $.md5 = md5; - } - })(commonjsGlobal); - }); - - function md5ForNode(node) { - if (null === node || 'object' !== typeof node) return undefined; - if (node.src) { - return md5(node.src); - } else if (node.href) { - return md5(node.href); - } else if (node.innerText && '' !== node.innerText) { - // eslint-disable-line yoda - return md5(node.innerText); - } else { - return undefined; - } - } - - const diagScriptId = 'fa-kits-diag'; - const nodeUnderTestId = 'fa-kits-node-under-test'; - const md5Attr = 'data-md5'; - const detectionIgnoreAttr = 'data-fa-detection-ignore'; - const timeoutAttr = 'data-fa-detection-timeout'; - const resultsCollectionMaxWaitAttr = 'data-fa-detection-results-collection-max-wait'; - const silenceErrors = e => { - e.preventDefault(); - e.stopPropagation(); - }; - function pollUntil(_ref) { - let { - fn = () => true, - initialDuration = 1, - maxDuration = WINDOW.FontAwesomeDetection.timeout, - showProgress = false, - progressIndicator - } = _ref; - return new Promise(function (resolve, reject) { - // eslint-disable-line compat/compat - function poll(duration, cumulativeDuration) { - setTimeout(function () { - const result = fn(); - if (showProgress) { - console.info(progressIndicator); - } - if (!!result) { - // eslint-disable-line no-extra-boolean-cast - resolve(result); - } else { - const nextDuration = 250; - const nextCumulativeDuration = nextDuration + cumulativeDuration; - if (nextCumulativeDuration <= maxDuration) { - poll(nextDuration, nextCumulativeDuration); - } else { - reject('timeout'); // eslint-disable-line prefer-promise-reject-errors - } - } - }, duration); - } - poll(initialDuration, 0); - }); - } - function detectWebfontConflicts() { - const linkTags = Array.from(DOCUMENT.getElementsByTagName('link')).filter(t => !t.hasAttribute(detectionIgnoreAttr)); - const styleTags = Array.from(DOCUMENT.getElementsByTagName('style')).filter(t => { - if (t.hasAttribute(detectionIgnoreAttr)) { - return false; - } - - // If the browser has loaded the FA5 CSS, let's not test that - - -
-

Code coverage report for __root__/

-

- Statements: 100% (4 / 4)      - Branches: 100% (2 / 2)      - Functions: 100% (1 / 1)      - Lines: 100% (4 / 4)      - Ignored: none      -

-
All files » __root__/
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
index.js100%(4 / 4)100%(2 / 2)100%(1 / 1)100%(4 / 4)
-
-
- - - - - - diff --git a/XNSimHtml/node_modules/unique-filename/coverage/__root__/index.js.html b/XNSimHtml/node_modules/unique-filename/coverage/__root__/index.js.html deleted file mode 100644 index 02e5768..0000000 --- a/XNSimHtml/node_modules/unique-filename/coverage/__root__/index.js.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - Code coverage report for index.js - - - - - - -
-

Code coverage report for index.js

-

- Statements: 100% (4 / 4)      - Branches: 100% (2 / 2)      - Functions: 100% (1 / 1)      - Lines: 100% (4 / 4)      - Ignored: none      -

-
All files » __root__/ » index.js
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9  -1 -  -1 -  -1 -6 -  - 
'use strict'
-var path = require('path')
- 
-var uniqueSlug = require('unique-slug')
- 
-module.exports = function (filepath, prefix, uniq) {
-  return path.join(filepath, (prefix ? prefix + '-' : '') + uniqueSlug(uniq))
-}
- 
- -
- - - - - - diff --git a/XNSimHtml/node_modules/unique-filename/coverage/base.css b/XNSimHtml/node_modules/unique-filename/coverage/base.css deleted file mode 100644 index a6a2f32..0000000 --- a/XNSimHtml/node_modules/unique-filename/coverage/base.css +++ /dev/null @@ -1,182 +0,0 @@ -body, html { - margin:0; padding: 0; -} -body { - font-family: Helvetica Neue, Helvetica,Arial; - font-size: 10pt; -} -div.header, div.footer { - background: #eee; - padding: 1em; -} -div.header { - z-index: 100; - position: fixed; - top: 0; - border-bottom: 1px solid #666; - width: 100%; -} -div.footer { - border-top: 1px solid #666; -} -div.body { - margin-top: 10em; -} -div.meta { - font-size: 90%; - text-align: center; -} -h1, h2, h3 { - font-weight: normal; -} -h1 { - font-size: 12pt; -} -h2 { - font-size: 10pt; -} -pre { - font-family: Consolas, Menlo, Monaco, monospace; - margin: 0; - padding: 0; - line-height: 1.3; - font-size: 14px; - -moz-tab-size: 2; - -o-tab-size: 2; - tab-size: 2; -} - -div.path { font-size: 110%; } -div.path a:link, div.path a:visited { color: #000; } -table.coverage { border-collapse: collapse; margin:0; padding: 0 } - -table.coverage td { - margin: 0; - padding: 0; - color: #111; - vertical-align: top; -} -table.coverage td.line-count { - width: 50px; - text-align: right; - padding-right: 5px; -} -table.coverage td.line-coverage { - color: #777 !important; - text-align: right; - border-left: 1px solid #666; - border-right: 1px solid #666; -} - -table.coverage td.text { -} - -table.coverage td span.cline-any { - display: inline-block; - padding: 0 5px; - width: 40px; -} -table.coverage td span.cline-neutral { - background: #eee; -} -table.coverage td span.cline-yes { - background: #b5d592; - color: #999; -} -table.coverage td span.cline-no { - background: #fc8c84; -} - -.cstat-yes { color: #111; } -.cstat-no { background: #fc8c84; color: #111; } -.fstat-no { background: #ffc520; color: #111 !important; } -.cbranch-no { background: yellow !important; color: #111; } - -.cstat-skip { background: #ddd; color: #111; } -.fstat-skip { background: #ddd; color: #111 !important; } -.cbranch-skip { background: #ddd !important; color: #111; } - -.missing-if-branch { - display: inline-block; - margin-right: 10px; - position: relative; - padding: 0 4px; - background: black; - color: yellow; -} - -.skip-if-branch { - display: none; - margin-right: 10px; - position: relative; - padding: 0 4px; - background: #ccc; - color: white; -} - -.missing-if-branch .typ, .skip-if-branch .typ { - color: inherit !important; -} - -.entity, .metric { font-weight: bold; } -.metric { display: inline-block; border: 1px solid #333; padding: 0.3em; background: white; } -.metric small { font-size: 80%; font-weight: normal; color: #666; } - -div.coverage-summary table { border-collapse: collapse; margin: 3em; font-size: 110%; } -div.coverage-summary td, div.coverage-summary table th { margin: 0; padding: 0.25em 1em; border-top: 1px solid #666; border-bottom: 1px solid #666; } -div.coverage-summary th { text-align: left; border: 1px solid #666; background: #eee; font-weight: normal; } -div.coverage-summary th.file { border-right: none !important; } -div.coverage-summary th.pic { border-left: none !important; text-align: right; } -div.coverage-summary th.pct { border-right: none !important; } -div.coverage-summary th.abs { border-left: none !important; text-align: right; } -div.coverage-summary td.pct { text-align: right; border-left: 1px solid #666; } -div.coverage-summary td.abs { text-align: right; font-size: 90%; color: #444; border-right: 1px solid #666; } -div.coverage-summary td.file { border-left: 1px solid #666; white-space: nowrap; } -div.coverage-summary td.pic { min-width: 120px !important; } -div.coverage-summary a:link { text-decoration: none; color: #000; } -div.coverage-summary a:visited { text-decoration: none; color: #777; } -div.coverage-summary a:hover { text-decoration: underline; } -div.coverage-summary tfoot td { border-top: 1px solid #666; } - -div.coverage-summary .sorter { - height: 10px; - width: 7px; - display: inline-block; - margin-left: 0.5em; - background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent; -} -div.coverage-summary .sorted .sorter { - background-position: 0 -20px; -} -div.coverage-summary .sorted-desc .sorter { - background-position: 0 -10px; -} - -.high { background: #b5d592 !important; } -.medium { background: #ffe87c !important; } -.low { background: #fc8c84 !important; } - -span.cover-fill, span.cover-empty { - display:inline-block; - border:1px solid #444; - background: white; - height: 12px; -} -span.cover-fill { - background: #ccc; - border-right: 1px solid #444; -} -span.cover-empty { - background: white; - border-left: none; -} -span.cover-full { - border-right: none !important; -} -pre.prettyprint { - border: none !important; - padding: 0 !important; - margin: 0 !important; -} -.com { color: #999 !important; } -.ignore-none { color: #999; font-weight: normal; } diff --git a/XNSimHtml/node_modules/unique-filename/coverage/index.html b/XNSimHtml/node_modules/unique-filename/coverage/index.html deleted file mode 100644 index b10d186..0000000 --- a/XNSimHtml/node_modules/unique-filename/coverage/index.html +++ /dev/null @@ -1,73 +0,0 @@ - - - - Code coverage report for All files - - - - - - -
-

Code coverage report for All files

-

- Statements: 100% (4 / 4)      - Branches: 100% (2 / 2)      - Functions: 100% (1 / 1)      - Lines: 100% (4 / 4)      - Ignored: none      -

-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
__root__/100%(4 / 4)100%(2 / 2)100%(1 / 1)100%(4 / 4)
-
-
- - - - - - diff --git a/XNSimHtml/node_modules/unique-filename/coverage/prettify.css b/XNSimHtml/node_modules/unique-filename/coverage/prettify.css deleted file mode 100644 index b317a7c..0000000 --- a/XNSimHtml/node_modules/unique-filename/coverage/prettify.css +++ /dev/null @@ -1 +0,0 @@ -.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} diff --git a/XNSimHtml/node_modules/unique-filename/coverage/prettify.js b/XNSimHtml/node_modules/unique-filename/coverage/prettify.js deleted file mode 100644 index ef51e03..0000000 --- a/XNSimHtml/node_modules/unique-filename/coverage/prettify.js +++ /dev/null @@ -1 +0,0 @@ -window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;arat[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]); diff --git a/XNSimHtml/node_modules/unique-filename/coverage/sort-arrow-sprite.png b/XNSimHtml/node_modules/unique-filename/coverage/sort-arrow-sprite.png deleted file mode 100644 index 03f704a609c6fd0dbfdac63466a7d7c958b5cbf3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^>_9Bd!3HEZxJ@+%Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jii$m5978H@?Fn+^JD|Y9yzj{W`447Gxa{7*dM7nnnD-Lb z6^}Hx2)'; - } - } - return cols; - } - // attaches a data attribute to every tr element with an object - // of data values keyed by column name - function loadRowData(tableRow) { - var tableCols = tableRow.querySelectorAll('td'), - colNode, - col, - data = {}, - i, - val; - for (i = 0; i < tableCols.length; i += 1) { - colNode = tableCols[i]; - col = cols[i]; - val = colNode.getAttribute('data-value'); - if (col.type === 'number') { - val = Number(val); - } - data[col.key] = val; - } - return data; - } - // loads all row data - function loadData() { - var rows = getTableBody().querySelectorAll('tr'), - i; - - for (i = 0; i < rows.length; i += 1) { - rows[i].data = loadRowData(rows[i]); - } - } - // sorts the table using the data for the ith column - function sortByIndex(index, desc) { - var key = cols[index].key, - sorter = function (a, b) { - a = a.data[key]; - b = b.data[key]; - return a < b ? -1 : a > b ? 1 : 0; - }, - finalSorter = sorter, - tableBody = document.querySelector('.coverage-summary tbody'), - rowNodes = tableBody.querySelectorAll('tr'), - rows = [], - i; - - if (desc) { - finalSorter = function (a, b) { - return -1 * sorter(a, b); - }; - } - - for (i = 0; i < rowNodes.length; i += 1) { - rows.push(rowNodes[i]); - tableBody.removeChild(rowNodes[i]); - } - - rows.sort(finalSorter); - - for (i = 0; i < rows.length; i += 1) { - tableBody.appendChild(rows[i]); - } - } - // removes sort indicators for current column being sorted - function removeSortIndicators() { - var col = getNthColumn(currentSort.index), - cls = col.className; - - cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, ''); - col.className = cls; - } - // adds sort indicators for current column being sorted - function addSortIndicators() { - getNthColumn(currentSort.index).className += currentSort.desc ? ' sorted-desc' : ' sorted'; - } - // adds event listeners for all sorter widgets - function enableUI() { - var i, - el, - ithSorter = function ithSorter(i) { - var col = cols[i]; - - return function () { - var desc = col.defaultDescSort; - - if (currentSort.index === i) { - desc = !currentSort.desc; - } - sortByIndex(i, desc); - removeSortIndicators(); - currentSort.index = i; - currentSort.desc = desc; - addSortIndicators(); - }; - }; - for (i =0 ; i < cols.length; i += 1) { - if (cols[i].sortable) { - el = getNthColumn(i).querySelector('.sorter'); - if (el.addEventListener) { - el.addEventListener('click', ithSorter(i)); - } else { - el.attachEvent('onclick', ithSorter(i)); - } - } - } - } - // adds sorting functionality to the UI - return function () { - if (!getTable()) { - return; - } - cols = loadColumns(); - loadData(cols); - addSortIndicators(); - enableUI(); - }; -})(); - -window.addEventListener('load', addSorting); diff --git a/XNSimHtml/node_modules/unique-filename/index.js b/XNSimHtml/node_modules/unique-filename/index.js deleted file mode 100644 index 02bf1e2..0000000 --- a/XNSimHtml/node_modules/unique-filename/index.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict' -var path = require('path') - -var uniqueSlug = require('unique-slug') - -module.exports = function (filepath, prefix, uniq) { - return path.join(filepath, (prefix ? prefix + '-' : '') + uniqueSlug(uniq)) -} diff --git a/XNSimHtml/node_modules/unique-filename/package.json b/XNSimHtml/node_modules/unique-filename/package.json deleted file mode 100644 index bc429aa..0000000 --- a/XNSimHtml/node_modules/unique-filename/package.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "unique-filename", - "version": "1.1.1", - "description": "Generate a unique filename for use in temporary directories or caches.", - "main": "index.js", - "scripts": { - "test": "standard && tap test" - }, - "repository": { - "type": "git", - "url": "https://github.com/iarna/unique-filename.git" - }, - "keywords": [], - "author": "Rebecca Turner (http://re-becca.org/)", - "license": "ISC", - "bugs": { - "url": "https://github.com/iarna/unique-filename/issues" - }, - "homepage": "https://github.com/iarna/unique-filename", - "devDependencies": { - "standard": "^5.4.1", - "tap": "^2.3.1" - }, - "dependencies": { - "unique-slug": "^2.0.0" - } -} diff --git a/XNSimHtml/node_modules/unique-filename/test/index.js b/XNSimHtml/node_modules/unique-filename/test/index.js deleted file mode 100644 index 105b4e5..0000000 --- a/XNSimHtml/node_modules/unique-filename/test/index.js +++ /dev/null @@ -1,23 +0,0 @@ -'sue strict' -var t = require('tap') -var uniqueFilename = require('../index.js') - -t.plan(6) - -var randomTmpfile = uniqueFilename('tmp') -t.like(randomTmpfile, /^tmp.[a-f0-9]{8}$/, 'random tmp file') - -var randomAgain = uniqueFilename('tmp') -t.notEqual(randomAgain, randomTmpfile, 'random tmp files are not the same') - -var randomPrefixedTmpfile = uniqueFilename('tmp', 'my-test') -t.like(randomPrefixedTmpfile, /^tmp.my-test-[a-f0-9]{8}$/, 'random prefixed tmp file') - -var randomPrefixedAgain = uniqueFilename('tmp', 'my-test') -t.notEqual(randomPrefixedAgain, randomPrefixedTmpfile, 'random prefixed tmp files are not the same') - -var uniqueTmpfile = uniqueFilename('tmp', 'testing', '/my/thing/to/uniq/on') -t.like(uniqueTmpfile, /^tmp.testing-7ddd44c0$/, 'unique filename') - -var uniqueAgain = uniqueFilename('tmp', 'testing', '/my/thing/to/uniq/on') -t.is(uniqueTmpfile, uniqueAgain, 'same unique string component produces same filename') diff --git a/XNSimHtml/node_modules/unique-slug/.travis.yml b/XNSimHtml/node_modules/unique-slug/.travis.yml deleted file mode 100644 index 5651fce..0000000 --- a/XNSimHtml/node_modules/unique-slug/.travis.yml +++ /dev/null @@ -1,10 +0,0 @@ -language: node_js -sudo: false -before_install: - - "npm -g install npm" -node_js: - - "6" - - "8" - - "10" - - "lts/*" - - "node" diff --git a/XNSimHtml/node_modules/unique-slug/LICENSE b/XNSimHtml/node_modules/unique-slug/LICENSE deleted file mode 100644 index 7953647..0000000 --- a/XNSimHtml/node_modules/unique-slug/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright npm, Inc - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/XNSimHtml/node_modules/unique-slug/README.md b/XNSimHtml/node_modules/unique-slug/README.md deleted file mode 100644 index 87f92f1..0000000 --- a/XNSimHtml/node_modules/unique-slug/README.md +++ /dev/null @@ -1,19 +0,0 @@ -unique-slug -=========== - -Generate a unique character string suitible for use in files and URLs. - -``` -var uniqueSlug = require('unique-slug') - -var randomSlug = uniqueSlug() -var fileSlug = uniqueSlug('/etc/passwd') -``` - -### uniqueSlug(*str*) → String (8 chars) - -If *str* is passed in then the return value will be its murmur hash in -hex. - -If *str* is not passed in, it will be 4 randomly generated bytes -converted into 8 hexadecimal characters. diff --git a/XNSimHtml/node_modules/unique-slug/index.js b/XNSimHtml/node_modules/unique-slug/index.js deleted file mode 100644 index fa4761a..0000000 --- a/XNSimHtml/node_modules/unique-slug/index.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict' -var MurmurHash3 = require('imurmurhash') - -module.exports = function (uniq) { - if (uniq) { - var hash = new MurmurHash3(uniq) - return ('00000000' + hash.result().toString(16)).substr(-8) - } else { - return (Math.random().toString(16) + '0000000').substr(2, 8) - } -} diff --git a/XNSimHtml/node_modules/unique-slug/package.json b/XNSimHtml/node_modules/unique-slug/package.json deleted file mode 100644 index 2142e68..0000000 --- a/XNSimHtml/node_modules/unique-slug/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "unique-slug", - "version": "2.0.2", - "description": "Generate a unique character string suitible for use in files and URLs.", - "main": "index.js", - "scripts": { - "test": "standard && tap --coverage test" - }, - "keywords": [], - "author": "Rebecca Turner (http://re-becca.org)", - "license": "ISC", - "devDependencies": { - "standard": "^12.0.1", - "tap": "^12.7.0" - }, - "repository": { - "type": "git", - "url": "git://github.com/iarna/unique-slug.git" - }, - "dependencies": { - "imurmurhash": "^0.1.4" - } -} diff --git a/XNSimHtml/node_modules/unique-slug/test/index.js b/XNSimHtml/node_modules/unique-slug/test/index.js deleted file mode 100644 index 0f4ccad..0000000 --- a/XNSimHtml/node_modules/unique-slug/test/index.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict' -var t = require('tap') -var uniqueSlug = require('../index.js') - -t.plan(5) -var slugA = uniqueSlug() -t.is(slugA.length, 8, 'random slugs are 8 chars') -t.notEqual(slugA, uniqueSlug(), "two slugs aren't the same") -var base = '/path/to/thingy' -var slugB = uniqueSlug(base) -t.is(slugB.length, 8, 'string based slugs are 8 chars') -t.is(slugB, uniqueSlug(base), 'two string based slugs, from the same string are the same') -t.notEqual(slugB, uniqueSlug(slugA), 'two string based slongs, from diff strings are different') diff --git a/XNSimHtml/node_modules/which/CHANGELOG.md b/XNSimHtml/node_modules/which/CHANGELOG.md deleted file mode 100644 index 7fb1f20..0000000 --- a/XNSimHtml/node_modules/which/CHANGELOG.md +++ /dev/null @@ -1,166 +0,0 @@ -# Changes - - -## 2.0.2 - -* Rename bin to `node-which` - -## 2.0.1 - -* generate changelog and publish on version bump -* enforce 100% test coverage -* Promise interface - -## 2.0.0 - -* Parallel tests, modern JavaScript, and drop support for node < 8 - -## 1.3.1 - -* update deps -* update travis - -## v1.3.0 - -* Add nothrow option to which.sync -* update tap - -## v1.2.14 - -* appveyor: drop node 5 and 0.x -* travis-ci: add node 6, drop 0.x - -## v1.2.13 - -* test: Pass missing option to pass on windows -* update tap -* update isexe to 2.0.0 -* neveragain.tech pledge request - -## v1.2.12 - -* Removed unused require - -## v1.2.11 - -* Prevent changelog script from being included in package - -## v1.2.10 - -* Use env.PATH only, not env.Path - -## v1.2.9 - -* fix for paths starting with ../ -* Remove unused `is-absolute` module - -## v1.2.8 - -* bullet items in changelog that contain (but don't start with) # - -## v1.2.7 - -* strip 'update changelog' changelog entries out of changelog - -## v1.2.6 - -* make the changelog bulleted - -## v1.2.5 - -* make a changelog, and keep it up to date -* don't include tests in package -* Properly handle relative-path executables -* appveyor -* Attach error code to Not Found error -* Make tests pass on Windows - -## v1.2.4 - -* Fix typo - -## v1.2.3 - -* update isexe, fix regression in pathExt handling - -## v1.2.2 - -* update deps, use isexe module, test windows - -## v1.2.1 - -* Sometimes windows PATH entries are quoted -* Fixed a bug in the check for group and user mode bits. This bug was introduced during refactoring for supporting strict mode. -* doc cli - -## v1.2.0 - -* Add support for opt.all and -as cli flags -* test the bin -* update travis -* Allow checking for multiple programs in bin/which -* tap 2 - -## v1.1.2 - -* travis -* Refactored and fixed undefined error on Windows -* Support strict mode - -## v1.1.1 - -* test +g exes against secondary groups, if available -* Use windows exe semantics on cygwin & msys -* cwd should be first in path on win32, not last -* Handle lower-case 'env.Path' on Windows -* Update docs -* use single-quotes - -## v1.1.0 - -* Add tests, depend on is-absolute - -## v1.0.9 - -* which.js: root is allowed to execute files owned by anyone - -## v1.0.8 - -* don't use graceful-fs - -## v1.0.7 - -* add license to package.json - -## v1.0.6 - -* isc license - -## 1.0.5 - -* Awful typo - -## 1.0.4 - -* Test for path absoluteness properly -* win: Allow '' as a pathext if cmd has a . in it - -## 1.0.3 - -* Remove references to execPath -* Make `which.sync()` work on Windows by honoring the PATHEXT variable. -* Make `isExe()` always return true on Windows. -* MIT - -## 1.0.2 - -* Only files can be exes - -## 1.0.1 - -* Respect the PATHEXT env for win32 support -* should 0755 the bin -* binary -* guts -* package -* 1st diff --git a/XNSimHtml/node_modules/which/LICENSE b/XNSimHtml/node_modules/which/LICENSE deleted file mode 100644 index 19129e3..0000000 --- a/XNSimHtml/node_modules/which/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/XNSimHtml/node_modules/which/README.md b/XNSimHtml/node_modules/which/README.md deleted file mode 100644 index cd83350..0000000 --- a/XNSimHtml/node_modules/which/README.md +++ /dev/null @@ -1,54 +0,0 @@ -# which - -Like the unix `which` utility. - -Finds the first instance of a specified executable in the PATH -environment variable. Does not cache the results, so `hash -r` is not -needed when the PATH changes. - -## USAGE - -```javascript -var which = require('which') - -// async usage -which('node', function (er, resolvedPath) { - // er is returned if no "node" is found on the PATH - // if it is found, then the absolute path to the exec is returned -}) - -// or promise -which('node').then(resolvedPath => { ... }).catch(er => { ... not found ... }) - -// sync usage -// throws if not found -var resolved = which.sync('node') - -// if nothrow option is used, returns null if not found -resolved = which.sync('node', {nothrow: true}) - -// Pass options to override the PATH and PATHEXT environment vars. -which('node', { path: someOtherPath }, function (er, resolved) { - if (er) - throw er - console.log('found at %j', resolved) -}) -``` - -## CLI USAGE - -Same as the BSD `which(1)` binary. - -``` -usage: which [-as] program ... -``` - -## OPTIONS - -You may pass an options object as the second argument. - -- `path`: Use instead of the `PATH` environment variable. -- `pathExt`: Use instead of the `PATHEXT` environment variable. -- `all`: Return all matches, instead of just the first one. Note that - this means the function returns an array of strings instead of a - single string. diff --git a/XNSimHtml/node_modules/which/bin/node-which b/XNSimHtml/node_modules/which/bin/node-which deleted file mode 100755 index 7cee372..0000000 --- a/XNSimHtml/node_modules/which/bin/node-which +++ /dev/null @@ -1,52 +0,0 @@ -#!/usr/bin/env node -var which = require("../") -if (process.argv.length < 3) - usage() - -function usage () { - console.error('usage: which [-as] program ...') - process.exit(1) -} - -var all = false -var silent = false -var dashdash = false -var args = process.argv.slice(2).filter(function (arg) { - if (dashdash || !/^-/.test(arg)) - return true - - if (arg === '--') { - dashdash = true - return false - } - - var flags = arg.substr(1).split('') - for (var f = 0; f < flags.length; f++) { - var flag = flags[f] - switch (flag) { - case 's': - silent = true - break - case 'a': - all = true - break - default: - console.error('which: illegal option -- ' + flag) - usage() - } - } - return false -}) - -process.exit(args.reduce(function (pv, current) { - try { - var f = which.sync(current, { all: all }) - if (all) - f = f.join('\n') - if (!silent) - console.log(f) - return pv; - } catch (e) { - return 1; - } -}, 0)) diff --git a/XNSimHtml/node_modules/which/package.json b/XNSimHtml/node_modules/which/package.json deleted file mode 100644 index 97ad7fb..0000000 --- a/XNSimHtml/node_modules/which/package.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "author": "Isaac Z. Schlueter (http://blog.izs.me)", - "name": "which", - "description": "Like which(1) unix command. Find the first instance of an executable in the PATH.", - "version": "2.0.2", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/node-which.git" - }, - "main": "which.js", - "bin": { - "node-which": "./bin/node-which" - }, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "devDependencies": { - "mkdirp": "^0.5.0", - "rimraf": "^2.6.2", - "tap": "^14.6.9" - }, - "scripts": { - "test": "tap", - "preversion": "npm test", - "postversion": "npm publish", - "prepublish": "npm run changelog", - "prechangelog": "bash gen-changelog.sh", - "changelog": "git add CHANGELOG.md", - "postchangelog": "git commit -m 'update changelog - '${npm_package_version}", - "postpublish": "git push origin --follow-tags" - }, - "files": [ - "which.js", - "bin/node-which" - ], - "tap": { - "check-coverage": true - }, - "engines": { - "node": ">= 8" - } -} diff --git a/XNSimHtml/node_modules/which/which.js b/XNSimHtml/node_modules/which/which.js deleted file mode 100644 index 82afffd..0000000 --- a/XNSimHtml/node_modules/which/which.js +++ /dev/null @@ -1,125 +0,0 @@ -const isWindows = process.platform === 'win32' || - process.env.OSTYPE === 'cygwin' || - process.env.OSTYPE === 'msys' - -const path = require('path') -const COLON = isWindows ? ';' : ':' -const isexe = require('isexe') - -const getNotFoundError = (cmd) => - Object.assign(new Error(`not found: ${cmd}`), { code: 'ENOENT' }) - -const getPathInfo = (cmd, opt) => { - const colon = opt.colon || COLON - - // If it has a slash, then we don't bother searching the pathenv. - // just check the file itself, and that's it. - const pathEnv = cmd.match(/\//) || isWindows && cmd.match(/\\/) ? [''] - : ( - [ - // windows always checks the cwd first - ...(isWindows ? [process.cwd()] : []), - ...(opt.path || process.env.PATH || - /* istanbul ignore next: very unusual */ '').split(colon), - ] - ) - const pathExtExe = isWindows - ? opt.pathExt || process.env.PATHEXT || '.EXE;.CMD;.BAT;.COM' - : '' - const pathExt = isWindows ? pathExtExe.split(colon) : [''] - - if (isWindows) { - if (cmd.indexOf('.') !== -1 && pathExt[0] !== '') - pathExt.unshift('') - } - - return { - pathEnv, - pathExt, - pathExtExe, - } -} - -const which = (cmd, opt, cb) => { - if (typeof opt === 'function') { - cb = opt - opt = {} - } - if (!opt) - opt = {} - - const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt) - const found = [] - - const step = i => new Promise((resolve, reject) => { - if (i === pathEnv.length) - return opt.all && found.length ? resolve(found) - : reject(getNotFoundError(cmd)) - - const ppRaw = pathEnv[i] - const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw - - const pCmd = path.join(pathPart, cmd) - const p = !pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd - : pCmd - - resolve(subStep(p, i, 0)) - }) - - const subStep = (p, i, ii) => new Promise((resolve, reject) => { - if (ii === pathExt.length) - return resolve(step(i + 1)) - const ext = pathExt[ii] - isexe(p + ext, { pathExt: pathExtExe }, (er, is) => { - if (!er && is) { - if (opt.all) - found.push(p + ext) - else - return resolve(p + ext) - } - return resolve(subStep(p, i, ii + 1)) - }) - }) - - return cb ? step(0).then(res => cb(null, res), cb) : step(0) -} - -const whichSync = (cmd, opt) => { - opt = opt || {} - - const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt) - const found = [] - - for (let i = 0; i < pathEnv.length; i ++) { - const ppRaw = pathEnv[i] - const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw - - const pCmd = path.join(pathPart, cmd) - const p = !pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd - : pCmd - - for (let j = 0; j < pathExt.length; j ++) { - const cur = p + pathExt[j] - try { - const is = isexe.sync(cur, { pathExt: pathExtExe }) - if (is) { - if (opt.all) - found.push(cur) - else - return cur - } - } catch (ex) {} - } - } - - if (opt.all && found.length) - return found - - if (opt.nothrow) - return null - - throw getNotFoundError(cmd) -} - -module.exports = which -which.sync = whichSync diff --git a/XNSimHtml/node_modules/wide-align/LICENSE b/XNSimHtml/node_modules/wide-align/LICENSE deleted file mode 100755 index f4be44d..0000000 --- a/XNSimHtml/node_modules/wide-align/LICENSE +++ /dev/null @@ -1,14 +0,0 @@ -Copyright (c) 2015, Rebecca Turner - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - diff --git a/XNSimHtml/node_modules/wide-align/README.md b/XNSimHtml/node_modules/wide-align/README.md deleted file mode 100755 index 32f1be0..0000000 --- a/XNSimHtml/node_modules/wide-align/README.md +++ /dev/null @@ -1,47 +0,0 @@ -wide-align ----------- - -A wide-character aware text alignment function for use in terminals / on the -console. - -### Usage - -``` -var align = require('wide-align') - -// Note that if you view this on a unicode console, all of the slashes are -// aligned. This is because on a console, all narrow characters are -// an en wide and all wide characters are an em. In browsers, this isn't -// held to and wide characters like "古" can be less than two narrow -// characters even with a fixed width font. - -console.log(align.center('abc', 10)) // ' abc ' -console.log(align.center('古古古', 10)) // ' 古古古 ' -console.log(align.left('abc', 10)) // 'abc ' -console.log(align.left('古古古', 10)) // '古古古 ' -console.log(align.right('abc', 10)) // ' abc' -console.log(align.right('古古古', 10)) // ' 古古古' -``` - -### Functions - -#### `align.center(str, length)` → `str` - -Returns *str* with spaces added to both sides such that that it is *length* -chars long and centered in the spaces. - -#### `align.left(str, length)` → `str` - -Returns *str* with spaces to the right such that it is *length* chars long. - -### `align.right(str, length)` → `str` - -Returns *str* with spaces to the left such that it is *length* chars long. - -### Origins - -These functions were originally taken from -[cliui](https://npmjs.com/package/cliui). Changes include switching to the -MUCH faster pad generation function from -[lodash](https://npmjs.com/package/lodash), making center alignment pad -both sides and adding left alignment. diff --git a/XNSimHtml/node_modules/wide-align/align.js b/XNSimHtml/node_modules/wide-align/align.js deleted file mode 100755 index 4f94ca4..0000000 --- a/XNSimHtml/node_modules/wide-align/align.js +++ /dev/null @@ -1,65 +0,0 @@ -'use strict' -var stringWidth = require('string-width') - -exports.center = alignCenter -exports.left = alignLeft -exports.right = alignRight - -// lodash's way of generating pad characters. - -function createPadding (width) { - var result = '' - var string = ' ' - var n = width - do { - if (n % 2) { - result += string; - } - n = Math.floor(n / 2); - string += string; - } while (n); - - return result; -} - -function alignLeft (str, width) { - var trimmed = str.trimRight() - if (trimmed.length === 0 && str.length >= width) return str - var padding = '' - var strWidth = stringWidth(trimmed) - - if (strWidth < width) { - padding = createPadding(width - strWidth) - } - - return trimmed + padding -} - -function alignRight (str, width) { - var trimmed = str.trimLeft() - if (trimmed.length === 0 && str.length >= width) return str - var padding = '' - var strWidth = stringWidth(trimmed) - - if (strWidth < width) { - padding = createPadding(width - strWidth) - } - - return padding + trimmed -} - -function alignCenter (str, width) { - var trimmed = str.trim() - if (trimmed.length === 0 && str.length >= width) return str - var padLeft = '' - var padRight = '' - var strWidth = stringWidth(trimmed) - - if (strWidth < width) { - var padLeftBy = parseInt((width - strWidth) / 2, 10) - padLeft = createPadding(padLeftBy) - padRight = createPadding(width - (strWidth + padLeftBy)) - } - - return padLeft + trimmed + padRight -} diff --git a/XNSimHtml/node_modules/wide-align/package.json b/XNSimHtml/node_modules/wide-align/package.json deleted file mode 100755 index 2dd2707..0000000 --- a/XNSimHtml/node_modules/wide-align/package.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "name": "wide-align", - "version": "1.1.5", - "description": "A wide-character aware text alignment function for use on the console or with fixed width fonts.", - "main": "align.js", - "scripts": { - "test": "tap --coverage test/*.js" - }, - "keywords": [ - "wide", - "double", - "unicode", - "cjkv", - "pad", - "align" - ], - "author": "Rebecca Turner (http://re-becca.org/)", - "license": "ISC", - "repository": { - "type": "git", - "url": "https://github.com/iarna/wide-align" - }, - "//": "But not version 5 of string-width, as that's ESM only", - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - }, - "devDependencies": { - "tap": "*" - }, - "files": [ - "align.js" - ] -} diff --git a/XNSimHtml/node_modules/xml2js/LICENSE b/XNSimHtml/node_modules/xml2js/LICENSE deleted file mode 100644 index e3b4222..0000000 --- a/XNSimHtml/node_modules/xml2js/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright 2010, 2011, 2012, 2013. All rights reserved. - -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/XNSimHtml/node_modules/xml2js/README.md b/XNSimHtml/node_modules/xml2js/README.md deleted file mode 100644 index 67f2104..0000000 --- a/XNSimHtml/node_modules/xml2js/README.md +++ /dev/null @@ -1,507 +0,0 @@ -node-xml2js -=========== - -Ever had the urge to parse XML? And wanted to access the data in some sane, -easy way? Don't want to compile a C parser, for whatever reason? Then xml2js is -what you're looking for! - -Description -=========== - -Simple XML to JavaScript object converter. It supports bi-directional conversion. -Uses [sax-js](https://github.com/isaacs/sax-js/) and -[xmlbuilder-js](https://github.com/oozcitak/xmlbuilder-js/). - -Note: If you're looking for a full DOM parser, you probably want -[JSDom](https://github.com/tmpvar/jsdom). - -Installation -============ - -Simplest way to install `xml2js` is to use [npm](http://npmjs.org), just `npm -install xml2js` which will download xml2js and all dependencies. - -xml2js is also available via [Bower](http://bower.io/), just `bower install -xml2js` which will download xml2js and all dependencies. - -Usage -===== - -No extensive tutorials required because you are a smart developer! The task of -parsing XML should be an easy one, so let's make it so! Here's some examples. - -Shoot-and-forget usage ----------------------- - -You want to parse XML as simple and easy as possible? It's dangerous to go -alone, take this: - -```javascript -var parseString = require('xml2js').parseString; -var xml = "Hello xml2js!" -parseString(xml, function (err, result) { - console.dir(result); -}); -``` - -Can't get easier than this, right? This works starting with `xml2js` 0.2.3. -With CoffeeScript it looks like this: - -```coffeescript -{parseString} = require 'xml2js' -xml = "Hello xml2js!" -parseString xml, (err, result) -> - console.dir result -``` - -If you need some special options, fear not, `xml2js` supports a number of -options (see below), you can specify these as second argument: - -```javascript -parseString(xml, {trim: true}, function (err, result) { -}); -``` - -Simple as pie usage -------------------- - -That's right, if you have been using xml-simple or a home-grown -wrapper, this was added in 0.1.11 just for you: - -```javascript -var fs = require('fs'), - xml2js = require('xml2js'); - -var parser = new xml2js.Parser(); -fs.readFile(__dirname + '/foo.xml', function(err, data) { - parser.parseString(data, function (err, result) { - console.dir(result); - console.log('Done'); - }); -}); -``` - -Look ma, no event listeners! - -You can also use `xml2js` from -[CoffeeScript](https://github.com/jashkenas/coffeescript), further reducing -the clutter: - -```coffeescript -fs = require 'fs', -xml2js = require 'xml2js' - -parser = new xml2js.Parser() -fs.readFile __dirname + '/foo.xml', (err, data) -> - parser.parseString data, (err, result) -> - console.dir result - console.log 'Done.' -``` - -But what happens if you forget the `new` keyword to create a new `Parser`? In -the middle of a nightly coding session, it might get lost, after all. Worry -not, we got you covered! Starting with 0.2.8 you can also leave it out, in -which case `xml2js` will helpfully add it for you, no bad surprises and -inexplicable bugs! - -Promise usage -------------- - -```javascript -var xml2js = require('xml2js'); -var xml = ''; - -// With parser -var parser = new xml2js.Parser(/* options */); -parser.parseStringPromise(xml).then(function (result) { - console.dir(result); - console.log('Done'); -}) -.catch(function (err) { - // Failed -}); - -// Without parser -xml2js.parseStringPromise(xml /*, options */).then(function (result) { - console.dir(result); - console.log('Done'); -}) -.catch(function (err) { - // Failed -}); -``` - -Parsing multiple files ----------------------- - -If you want to parse multiple files, you have multiple possibilities: - - * You can create one `xml2js.Parser` per file. That's the recommended one - and is promised to always *just work*. - * You can call `reset()` on your parser object. - * You can hope everything goes well anyway. This behaviour is not - guaranteed work always, if ever. Use option #1 if possible. Thanks! - -So you wanna some JSON? ------------------------ - -Just wrap the `result` object in a call to `JSON.stringify` like this -`JSON.stringify(result)`. You get a string containing the JSON representation -of the parsed object that you can feed to JSON-hungry consumers. - -Displaying results ------------------- - -You might wonder why, using `console.dir` or `console.log` the output at some -level is only `[Object]`. Don't worry, this is not because `xml2js` got lazy. -That's because Node uses `util.inspect` to convert the object into strings and -that function stops after `depth=2` which is a bit low for most XML. - -To display the whole deal, you can use `console.log(util.inspect(result, false, -null))`, which displays the whole result. - -So much for that, but what if you use -[eyes](https://github.com/cloudhead/eyes.js) for nice colored output and it -truncates the output with `…`? Don't fear, there's also a solution for that, -you just need to increase the `maxLength` limit by creating a custom inspector -`var inspect = require('eyes').inspector({maxLength: false})` and then you can -easily `inspect(result)`. - -XML builder usage ------------------ - -Since 0.4.0, objects can be also be used to build XML: - -```javascript -var xml2js = require('xml2js'); - -var obj = {name: "Super", Surname: "Man", age: 23}; - -var builder = new xml2js.Builder(); -var xml = builder.buildObject(obj); -``` -will result in: - -```xml - - - Super - Man - 23 - -``` - -At the moment, a one to one bi-directional conversion is guaranteed only for -default configuration, except for `attrkey`, `charkey` and `explicitArray` options -you can redefine to your taste. Writing CDATA is supported via setting the `cdata` -option to `true`. - -To specify attributes: -```javascript -var xml2js = require('xml2js'); - -var obj = {root: {$: {id: "my id"}, _: "my inner text"}}; - -var builder = new xml2js.Builder(); -var xml = builder.buildObject(obj); -``` -will result in: -```xml - -my inner text -``` - -### Adding xmlns attributes - -You can generate XML that declares XML namespace prefix / URI pairs with xmlns attributes. - -Example declaring a default namespace on the root element: - -```javascript -let obj = { - Foo: { - $: { - "xmlns": "http://foo.com" - } - } -}; -``` -Result of `buildObject(obj)`: -```xml - -``` -Example declaring non-default namespaces on non-root elements: -```javascript -let obj = { - 'foo:Foo': { - $: { - 'xmlns:foo': 'http://foo.com' - }, - 'bar:Bar': { - $: { - 'xmlns:bar': 'http://bar.com' - } - } - } -} -``` -Result of `buildObject(obj)`: -```xml - - - -``` - - -Processing attribute, tag names and values ------------------------------------------- - -Since 0.4.1 you can optionally provide the parser with attribute name and tag name processors as well as element value processors (Since 0.4.14, you can also optionally provide the parser with attribute value processors): - -```javascript - -function nameToUpperCase(name){ - return name.toUpperCase(); -} - -//transform all attribute and tag names and values to uppercase -parseString(xml, { - tagNameProcessors: [nameToUpperCase], - attrNameProcessors: [nameToUpperCase], - valueProcessors: [nameToUpperCase], - attrValueProcessors: [nameToUpperCase]}, - function (err, result) { - // processed data -}); -``` - -The `tagNameProcessors` and `attrNameProcessors` options -accept an `Array` of functions with the following signature: - -```javascript -function (name){ - //do something with `name` - return name -} -``` - -The `attrValueProcessors` and `valueProcessors` options -accept an `Array` of functions with the following signature: - -```javascript -function (value, name) { - //`name` will be the node name or attribute name - //do something with `value`, (optionally) dependent on the node/attr name - return value -} -``` - -Some processors are provided out-of-the-box and can be found in `lib/processors.js`: - -- `normalize`: transforms the name to lowercase. -(Automatically used when `options.normalize` is set to `true`) - -- `firstCharLowerCase`: transforms the first character to lower case. -E.g. 'MyTagName' becomes 'myTagName' - -- `stripPrefix`: strips the xml namespace prefix. E.g `` will become 'Bar'. -(N.B.: the `xmlns` prefix is NOT stripped.) - -- `parseNumbers`: parses integer-like strings as integers and float-like strings as floats -E.g. "0" becomes 0 and "15.56" becomes 15.56 - -- `parseBooleans`: parses boolean-like strings to booleans -E.g. "true" becomes true and "False" becomes false - -Options -======= - -Apart from the default settings, there are a number of options that can be -specified for the parser. Options are specified by ``new Parser({optionName: -value})``. Possible options are: - - * `attrkey` (default: `$`): Prefix that is used to access the attributes. - Version 0.1 default was `@`. - * `charkey` (default: `_`): Prefix that is used to access the character - content. Version 0.1 default was `#`. - * `explicitCharkey` (default: `false`) Determines whether or not to use - a `charkey` prefix for elements with no attributes. - * `trim` (default: `false`): Trim the whitespace at the beginning and end of - text nodes. - * `normalizeTags` (default: `false`): Normalize all tag names to lowercase. - * `normalize` (default: `false`): Trim whitespaces inside text nodes. - * `explicitRoot` (default: `true`): Set this if you want to get the root - node in the resulting object. - * `emptyTag` (default: `''`): what will the value of empty nodes be. In case - you want to use an empty object as a default value, it is better to provide a factory - function `() => ({})` instead. Without this function a plain object would - become a shared reference across all occurrences with unwanted behavior. - * `explicitArray` (default: `true`): Always put child nodes in an array if - true; otherwise an array is created only if there is more than one. - * `ignoreAttrs` (default: `false`): Ignore all XML attributes and only create - text nodes. - * `mergeAttrs` (default: `false`): Merge attributes and child elements as - properties of the parent, instead of keying attributes off a child - attribute object. This option is ignored if `ignoreAttrs` is `true`. - * `validator` (default `null`): You can specify a callable that validates - the resulting structure somehow, however you want. See unit tests - for an example. - * `xmlns` (default `false`): Give each element a field usually called '$ns' - (the first character is the same as attrkey) that contains its local name - and namespace URI. - * `explicitChildren` (default `false`): Put child elements to separate - property. Doesn't work with `mergeAttrs = true`. If element has no children - then "children" won't be created. Added in 0.2.5. - * `childkey` (default `$$`): Prefix that is used to access child elements if - `explicitChildren` is set to `true`. Added in 0.2.5. - * `preserveChildrenOrder` (default `false`): Modifies the behavior of - `explicitChildren` so that the value of the "children" property becomes an - ordered array. When this is `true`, every node will also get a `#name` field - whose value will correspond to the XML nodeName, so that you may iterate - the "children" array and still be able to determine node names. The named - (and potentially unordered) properties are also retained in this - configuration at the same level as the ordered "children" array. Added in - 0.4.9. - * `charsAsChildren` (default `false`): Determines whether chars should be - considered children if `explicitChildren` is on. Added in 0.2.5. - * `includeWhiteChars` (default `false`): Determines whether whitespace-only - text nodes should be included. Added in 0.4.17. - * `async` (default `false`): Should the callbacks be async? This *might* be - an incompatible change if your code depends on sync execution of callbacks. - Future versions of `xml2js` might change this default, so the recommendation - is to not depend on sync execution anyway. Added in 0.2.6. - * `strict` (default `true`): Set sax-js to strict or non-strict parsing mode. - Defaults to `true` which is *highly* recommended, since parsing HTML which - is not well-formed XML might yield just about anything. Added in 0.2.7. - * `attrNameProcessors` (default: `null`): Allows the addition of attribute - name processing functions. Accepts an `Array` of functions with following - signature: - ```javascript - function (name){ - //do something with `name` - return name - } - ``` - Added in 0.4.14 - * `attrValueProcessors` (default: `null`): Allows the addition of attribute - value processing functions. Accepts an `Array` of functions with following - signature: - ```javascript - function (value, name){ - //do something with `name` - return name - } - ``` - Added in 0.4.1 - * `tagNameProcessors` (default: `null`): Allows the addition of tag name - processing functions. Accepts an `Array` of functions with following - signature: - ```javascript - function (name){ - //do something with `name` - return name - } - ``` - Added in 0.4.1 - * `valueProcessors` (default: `null`): Allows the addition of element value - processing functions. Accepts an `Array` of functions with following - signature: - ```javascript - function (value, name){ - //do something with `name` - return name - } - ``` - Added in 0.4.6 - -Options for the `Builder` class -------------------------------- -These options are specified by ``new Builder({optionName: value})``. -Possible options are: - - * `attrkey` (default: `$`): Prefix that is used to access the attributes. - Version 0.1 default was `@`. - * `charkey` (default: `_`): Prefix that is used to access the character - content. Version 0.1 default was `#`. - * `rootName` (default `root` or the root key name): root element name to be used in case - `explicitRoot` is `false` or to override the root element name. - * `renderOpts` (default `{ 'pretty': true, 'indent': ' ', 'newline': '\n' }`): - Rendering options for xmlbuilder-js. - * pretty: prettify generated XML - * indent: whitespace for indentation (only when pretty) - * newline: newline char (only when pretty) - * `xmldec` (default `{ 'version': '1.0', 'encoding': 'UTF-8', 'standalone': true }`: - XML declaration attributes. - * `xmldec.version` A version number string, e.g. 1.0 - * `xmldec.encoding` Encoding declaration, e.g. UTF-8 - * `xmldec.standalone` standalone document declaration: true or false - * `doctype` (default `null`): optional DTD. Eg. `{'ext': 'hello.dtd'}` - * `headless` (default: `false`): omit the XML header. Added in 0.4.3. - * `allowSurrogateChars` (default: `false`): allows using characters from the Unicode - surrogate blocks. - * `cdata` (default: `false`): wrap text nodes in `` instead of - escaping when necessary. Does not add `` if it is not required. - Added in 0.4.5. - -`renderOpts`, `xmldec`,`doctype` and `headless` pass through to -[xmlbuilder-js](https://github.com/oozcitak/xmlbuilder-js). - -Updating to new version -======================= - -Version 0.2 changed the default parsing settings, but version 0.1.14 introduced -the default settings for version 0.2, so these settings can be tried before the -migration. - -```javascript -var xml2js = require('xml2js'); -var parser = new xml2js.Parser(xml2js.defaults["0.2"]); -``` - -To get the 0.1 defaults in version 0.2 you can just use -`xml2js.defaults["0.1"]` in the same place. This provides you with enough time -to migrate to the saner way of parsing in `xml2js` 0.2. We try to make the -migration as simple and gentle as possible, but some breakage cannot be -avoided. - -So, what exactly did change and why? In 0.2 we changed some defaults to parse -the XML in a more universal and sane way. So we disabled `normalize` and `trim` -so `xml2js` does not cut out any text content. You can reenable this at will of -course. A more important change is that we return the root tag in the resulting -JavaScript structure via the `explicitRoot` setting, so you need to access the -first element. This is useful for anybody who wants to know what the root node -is and preserves more information. The last major change was to enable -`explicitArray`, so everytime it is possible that one might embed more than one -sub-tag into a tag, xml2js >= 0.2 returns an array even if the array just -includes one element. This is useful when dealing with APIs that return -variable amounts of subtags. - -Running tests, development -========================== - -[![Build Status](https://travis-ci.org/Leonidas-from-XIV/node-xml2js.svg?branch=master)](https://travis-ci.org/Leonidas-from-XIV/node-xml2js) -[![Coverage Status](https://coveralls.io/repos/Leonidas-from-XIV/node-xml2js/badge.svg?branch=)](https://coveralls.io/r/Leonidas-from-XIV/node-xml2js?branch=master) -[![Dependency Status](https://david-dm.org/Leonidas-from-XIV/node-xml2js.svg)](https://david-dm.org/Leonidas-from-XIV/node-xml2js) - -The development requirements are handled by npm, you just need to install them. -We also have a number of unit tests, they can be run using `npm test` directly -from the project root. This runs zap to discover all the tests and execute -them. - -If you like to contribute, keep in mind that `xml2js` is written in -CoffeeScript, so don't develop on the JavaScript files that are checked into -the repository for convenience reasons. Also, please write some unit test to -check your behaviour and if it is some user-facing thing, add some -documentation to this README, so people will know it exists. Thanks in advance! - -Getting support -=============== - -Please, if you have a problem with the library, first make sure you read this -README. If you read this far, thanks, you're good. Then, please make sure your -problem really is with `xml2js`. It is? Okay, then I'll look at it. Send me a -mail and we can talk. Please don't open issues, as I don't think that is the -proper forum for support problems. Some problems might as well really be bugs -in `xml2js`, if so I'll let you know to open an issue instead :) - -But if you know you really found a bug, feel free to open an issue instead. diff --git a/XNSimHtml/node_modules/xml2js/lib/bom.js b/XNSimHtml/node_modules/xml2js/lib/bom.js deleted file mode 100644 index 7b8fb27..0000000 --- a/XNSimHtml/node_modules/xml2js/lib/bom.js +++ /dev/null @@ -1,12 +0,0 @@ -// Generated by CoffeeScript 1.12.7 -(function() { - "use strict"; - exports.stripBOM = function(str) { - if (str[0] === '\uFEFF') { - return str.substring(1); - } else { - return str; - } - }; - -}).call(this); diff --git a/XNSimHtml/node_modules/xml2js/lib/builder.js b/XNSimHtml/node_modules/xml2js/lib/builder.js deleted file mode 100644 index 58f3638..0000000 --- a/XNSimHtml/node_modules/xml2js/lib/builder.js +++ /dev/null @@ -1,127 +0,0 @@ -// Generated by CoffeeScript 1.12.7 -(function() { - "use strict"; - var builder, defaults, escapeCDATA, requiresCDATA, wrapCDATA, - hasProp = {}.hasOwnProperty; - - builder = require('xmlbuilder'); - - defaults = require('./defaults').defaults; - - requiresCDATA = function(entry) { - return typeof entry === "string" && (entry.indexOf('&') >= 0 || entry.indexOf('>') >= 0 || entry.indexOf('<') >= 0); - }; - - wrapCDATA = function(entry) { - return ""; - }; - - escapeCDATA = function(entry) { - return entry.replace(']]>', ']]]]>'); - }; - - exports.Builder = (function() { - function Builder(opts) { - var key, ref, value; - this.options = {}; - ref = defaults["0.2"]; - for (key in ref) { - if (!hasProp.call(ref, key)) continue; - value = ref[key]; - this.options[key] = value; - } - for (key in opts) { - if (!hasProp.call(opts, key)) continue; - value = opts[key]; - this.options[key] = value; - } - } - - Builder.prototype.buildObject = function(rootObj) { - var attrkey, charkey, render, rootElement, rootName; - attrkey = this.options.attrkey; - charkey = this.options.charkey; - if ((Object.keys(rootObj).length === 1) && (this.options.rootName === defaults['0.2'].rootName)) { - rootName = Object.keys(rootObj)[0]; - rootObj = rootObj[rootName]; - } else { - rootName = this.options.rootName; - } - render = (function(_this) { - return function(element, obj) { - var attr, child, entry, index, key, value; - if (typeof obj !== 'object') { - if (_this.options.cdata && requiresCDATA(obj)) { - element.raw(wrapCDATA(obj)); - } else { - element.txt(obj); - } - } else if (Array.isArray(obj)) { - for (index in obj) { - if (!hasProp.call(obj, index)) continue; - child = obj[index]; - for (key in child) { - entry = child[key]; - element = render(element.ele(key), entry).up(); - } - } - } else { - for (key in obj) { - if (!hasProp.call(obj, key)) continue; - child = obj[key]; - if (key === attrkey) { - if (typeof child === "object") { - for (attr in child) { - value = child[attr]; - element = element.att(attr, value); - } - } - } else if (key === charkey) { - if (_this.options.cdata && requiresCDATA(child)) { - element = element.raw(wrapCDATA(child)); - } else { - element = element.txt(child); - } - } else if (Array.isArray(child)) { - for (index in child) { - if (!hasProp.call(child, index)) continue; - entry = child[index]; - if (typeof entry === 'string') { - if (_this.options.cdata && requiresCDATA(entry)) { - element = element.ele(key).raw(wrapCDATA(entry)).up(); - } else { - element = element.ele(key, entry).up(); - } - } else { - element = render(element.ele(key), entry).up(); - } - } - } else if (typeof child === "object") { - element = render(element.ele(key), child).up(); - } else { - if (typeof child === 'string' && _this.options.cdata && requiresCDATA(child)) { - element = element.ele(key).raw(wrapCDATA(child)).up(); - } else { - if (child == null) { - child = ''; - } - element = element.ele(key, child.toString()).up(); - } - } - } - } - return element; - }; - })(this); - rootElement = builder.create(rootName, this.options.xmldec, this.options.doctype, { - headless: this.options.headless, - allowSurrogateChars: this.options.allowSurrogateChars - }); - return render(rootElement, rootObj).end(this.options.renderOpts); - }; - - return Builder; - - })(); - -}).call(this); diff --git a/XNSimHtml/node_modules/xml2js/lib/defaults.js b/XNSimHtml/node_modules/xml2js/lib/defaults.js deleted file mode 100644 index 0a21da0..0000000 --- a/XNSimHtml/node_modules/xml2js/lib/defaults.js +++ /dev/null @@ -1,72 +0,0 @@ -// Generated by CoffeeScript 1.12.7 -(function() { - exports.defaults = { - "0.1": { - explicitCharkey: false, - trim: true, - normalize: true, - normalizeTags: false, - attrkey: "@", - charkey: "#", - explicitArray: false, - ignoreAttrs: false, - mergeAttrs: false, - explicitRoot: false, - validator: null, - xmlns: false, - explicitChildren: false, - childkey: '@@', - charsAsChildren: false, - includeWhiteChars: false, - async: false, - strict: true, - attrNameProcessors: null, - attrValueProcessors: null, - tagNameProcessors: null, - valueProcessors: null, - emptyTag: '' - }, - "0.2": { - explicitCharkey: false, - trim: false, - normalize: false, - normalizeTags: false, - attrkey: "$", - charkey: "_", - explicitArray: true, - ignoreAttrs: false, - mergeAttrs: false, - explicitRoot: true, - validator: null, - xmlns: false, - explicitChildren: false, - preserveChildrenOrder: false, - childkey: '$$', - charsAsChildren: false, - includeWhiteChars: false, - async: false, - strict: true, - attrNameProcessors: null, - attrValueProcessors: null, - tagNameProcessors: null, - valueProcessors: null, - rootName: 'root', - xmldec: { - 'version': '1.0', - 'encoding': 'UTF-8', - 'standalone': true - }, - doctype: null, - renderOpts: { - 'pretty': true, - 'indent': ' ', - 'newline': '\n' - }, - headless: false, - chunkSize: 10000, - emptyTag: '', - cdata: false - } - }; - -}).call(this); diff --git a/XNSimHtml/node_modules/xml2js/lib/parser.js b/XNSimHtml/node_modules/xml2js/lib/parser.js deleted file mode 100644 index 7fa2fc5..0000000 --- a/XNSimHtml/node_modules/xml2js/lib/parser.js +++ /dev/null @@ -1,395 +0,0 @@ -// Generated by CoffeeScript 1.12.7 -(function() { - "use strict"; - var bom, defaults, defineProperty, events, isEmpty, processItem, processors, sax, setImmediate, - bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }, - extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, - hasProp = {}.hasOwnProperty; - - sax = require('sax'); - - events = require('events'); - - bom = require('./bom'); - - processors = require('./processors'); - - setImmediate = require('timers').setImmediate; - - defaults = require('./defaults').defaults; - - isEmpty = function(thing) { - return typeof thing === "object" && (thing != null) && Object.keys(thing).length === 0; - }; - - processItem = function(processors, item, key) { - var i, len, process; - for (i = 0, len = processors.length; i < len; i++) { - process = processors[i]; - item = process(item, key); - } - return item; - }; - - defineProperty = function(obj, key, value) { - var descriptor; - descriptor = Object.create(null); - descriptor.value = value; - descriptor.writable = true; - descriptor.enumerable = true; - descriptor.configurable = true; - return Object.defineProperty(obj, key, descriptor); - }; - - exports.Parser = (function(superClass) { - extend(Parser, superClass); - - function Parser(opts) { - this.parseStringPromise = bind(this.parseStringPromise, this); - this.parseString = bind(this.parseString, this); - this.reset = bind(this.reset, this); - this.assignOrPush = bind(this.assignOrPush, this); - this.processAsync = bind(this.processAsync, this); - var key, ref, value; - if (!(this instanceof exports.Parser)) { - return new exports.Parser(opts); - } - this.options = {}; - ref = defaults["0.2"]; - for (key in ref) { - if (!hasProp.call(ref, key)) continue; - value = ref[key]; - this.options[key] = value; - } - for (key in opts) { - if (!hasProp.call(opts, key)) continue; - value = opts[key]; - this.options[key] = value; - } - if (this.options.xmlns) { - this.options.xmlnskey = this.options.attrkey + "ns"; - } - if (this.options.normalizeTags) { - if (!this.options.tagNameProcessors) { - this.options.tagNameProcessors = []; - } - this.options.tagNameProcessors.unshift(processors.normalize); - } - this.reset(); - } - - Parser.prototype.processAsync = function() { - var chunk, err; - try { - if (this.remaining.length <= this.options.chunkSize) { - chunk = this.remaining; - this.remaining = ''; - this.saxParser = this.saxParser.write(chunk); - return this.saxParser.close(); - } else { - chunk = this.remaining.substr(0, this.options.chunkSize); - this.remaining = this.remaining.substr(this.options.chunkSize, this.remaining.length); - this.saxParser = this.saxParser.write(chunk); - return setImmediate(this.processAsync); - } - } catch (error1) { - err = error1; - if (!this.saxParser.errThrown) { - this.saxParser.errThrown = true; - return this.emit(err); - } - } - }; - - Parser.prototype.assignOrPush = function(obj, key, newValue) { - if (!(key in obj)) { - if (!this.options.explicitArray) { - return defineProperty(obj, key, newValue); - } else { - return defineProperty(obj, key, [newValue]); - } - } else { - if (!(obj[key] instanceof Array)) { - defineProperty(obj, key, [obj[key]]); - } - return obj[key].push(newValue); - } - }; - - Parser.prototype.reset = function() { - var attrkey, charkey, ontext, stack; - this.removeAllListeners(); - this.saxParser = sax.parser(this.options.strict, { - trim: false, - normalize: false, - xmlns: this.options.xmlns - }); - this.saxParser.errThrown = false; - this.saxParser.onerror = (function(_this) { - return function(error) { - _this.saxParser.resume(); - if (!_this.saxParser.errThrown) { - _this.saxParser.errThrown = true; - return _this.emit("error", error); - } - }; - })(this); - this.saxParser.onend = (function(_this) { - return function() { - if (!_this.saxParser.ended) { - _this.saxParser.ended = true; - return _this.emit("end", _this.resultObject); - } - }; - })(this); - this.saxParser.ended = false; - this.EXPLICIT_CHARKEY = this.options.explicitCharkey; - this.resultObject = null; - stack = []; - attrkey = this.options.attrkey; - charkey = this.options.charkey; - this.saxParser.onopentag = (function(_this) { - return function(node) { - var key, newValue, obj, processedKey, ref; - obj = {}; - obj[charkey] = ""; - if (!_this.options.ignoreAttrs) { - ref = node.attributes; - for (key in ref) { - if (!hasProp.call(ref, key)) continue; - if (!(attrkey in obj) && !_this.options.mergeAttrs) { - obj[attrkey] = {}; - } - newValue = _this.options.attrValueProcessors ? processItem(_this.options.attrValueProcessors, node.attributes[key], key) : node.attributes[key]; - processedKey = _this.options.attrNameProcessors ? processItem(_this.options.attrNameProcessors, key) : key; - if (_this.options.mergeAttrs) { - _this.assignOrPush(obj, processedKey, newValue); - } else { - defineProperty(obj[attrkey], processedKey, newValue); - } - } - } - obj["#name"] = _this.options.tagNameProcessors ? processItem(_this.options.tagNameProcessors, node.name) : node.name; - if (_this.options.xmlns) { - obj[_this.options.xmlnskey] = { - uri: node.uri, - local: node.local - }; - } - return stack.push(obj); - }; - })(this); - this.saxParser.onclosetag = (function(_this) { - return function() { - var cdata, emptyStr, key, node, nodeName, obj, objClone, old, s, xpath; - obj = stack.pop(); - nodeName = obj["#name"]; - if (!_this.options.explicitChildren || !_this.options.preserveChildrenOrder) { - delete obj["#name"]; - } - if (obj.cdata === true) { - cdata = obj.cdata; - delete obj.cdata; - } - s = stack[stack.length - 1]; - if (obj[charkey].match(/^\s*$/) && !cdata) { - emptyStr = obj[charkey]; - delete obj[charkey]; - } else { - if (_this.options.trim) { - obj[charkey] = obj[charkey].trim(); - } - if (_this.options.normalize) { - obj[charkey] = obj[charkey].replace(/\s{2,}/g, " ").trim(); - } - obj[charkey] = _this.options.valueProcessors ? processItem(_this.options.valueProcessors, obj[charkey], nodeName) : obj[charkey]; - if (Object.keys(obj).length === 1 && charkey in obj && !_this.EXPLICIT_CHARKEY) { - obj = obj[charkey]; - } - } - if (isEmpty(obj)) { - if (typeof _this.options.emptyTag === 'function') { - obj = _this.options.emptyTag(); - } else { - obj = _this.options.emptyTag !== '' ? _this.options.emptyTag : emptyStr; - } - } - if (_this.options.validator != null) { - xpath = "/" + ((function() { - var i, len, results; - results = []; - for (i = 0, len = stack.length; i < len; i++) { - node = stack[i]; - results.push(node["#name"]); - } - return results; - })()).concat(nodeName).join("/"); - (function() { - var err; - try { - return obj = _this.options.validator(xpath, s && s[nodeName], obj); - } catch (error1) { - err = error1; - return _this.emit("error", err); - } - })(); - } - if (_this.options.explicitChildren && !_this.options.mergeAttrs && typeof obj === 'object') { - if (!_this.options.preserveChildrenOrder) { - node = {}; - if (_this.options.attrkey in obj) { - node[_this.options.attrkey] = obj[_this.options.attrkey]; - delete obj[_this.options.attrkey]; - } - if (!_this.options.charsAsChildren && _this.options.charkey in obj) { - node[_this.options.charkey] = obj[_this.options.charkey]; - delete obj[_this.options.charkey]; - } - if (Object.getOwnPropertyNames(obj).length > 0) { - node[_this.options.childkey] = obj; - } - obj = node; - } else if (s) { - s[_this.options.childkey] = s[_this.options.childkey] || []; - objClone = {}; - for (key in obj) { - if (!hasProp.call(obj, key)) continue; - defineProperty(objClone, key, obj[key]); - } - s[_this.options.childkey].push(objClone); - delete obj["#name"]; - if (Object.keys(obj).length === 1 && charkey in obj && !_this.EXPLICIT_CHARKEY) { - obj = obj[charkey]; - } - } - } - if (stack.length > 0) { - return _this.assignOrPush(s, nodeName, obj); - } else { - if (_this.options.explicitRoot) { - old = obj; - obj = {}; - defineProperty(obj, nodeName, old); - } - _this.resultObject = obj; - _this.saxParser.ended = true; - return _this.emit("end", _this.resultObject); - } - }; - })(this); - ontext = (function(_this) { - return function(text) { - var charChild, s; - s = stack[stack.length - 1]; - if (s) { - s[charkey] += text; - if (_this.options.explicitChildren && _this.options.preserveChildrenOrder && _this.options.charsAsChildren && (_this.options.includeWhiteChars || text.replace(/\\n/g, '').trim() !== '')) { - s[_this.options.childkey] = s[_this.options.childkey] || []; - charChild = { - '#name': '__text__' - }; - charChild[charkey] = text; - if (_this.options.normalize) { - charChild[charkey] = charChild[charkey].replace(/\s{2,}/g, " ").trim(); - } - s[_this.options.childkey].push(charChild); - } - return s; - } - }; - })(this); - this.saxParser.ontext = ontext; - return this.saxParser.oncdata = (function(_this) { - return function(text) { - var s; - s = ontext(text); - if (s) { - return s.cdata = true; - } - }; - })(this); - }; - - Parser.prototype.parseString = function(str, cb) { - var err; - if ((cb != null) && typeof cb === "function") { - this.on("end", function(result) { - this.reset(); - return cb(null, result); - }); - this.on("error", function(err) { - this.reset(); - return cb(err); - }); - } - try { - str = str.toString(); - if (str.trim() === '') { - this.emit("end", null); - return true; - } - str = bom.stripBOM(str); - if (this.options.async) { - this.remaining = str; - setImmediate(this.processAsync); - return this.saxParser; - } - return this.saxParser.write(str).close(); - } catch (error1) { - err = error1; - if (!(this.saxParser.errThrown || this.saxParser.ended)) { - this.emit('error', err); - return this.saxParser.errThrown = true; - } else if (this.saxParser.ended) { - throw err; - } - } - }; - - Parser.prototype.parseStringPromise = function(str) { - return new Promise((function(_this) { - return function(resolve, reject) { - return _this.parseString(str, function(err, value) { - if (err) { - return reject(err); - } else { - return resolve(value); - } - }); - }; - })(this)); - }; - - return Parser; - - })(events); - - exports.parseString = function(str, a, b) { - var cb, options, parser; - if (b != null) { - if (typeof b === 'function') { - cb = b; - } - if (typeof a === 'object') { - options = a; - } - } else { - if (typeof a === 'function') { - cb = a; - } - options = {}; - } - parser = new exports.Parser(options); - return parser.parseString(str, cb); - }; - - exports.parseStringPromise = function(str, a) { - var options, parser; - if (typeof a === 'object') { - options = a; - } - parser = new exports.Parser(options); - return parser.parseStringPromise(str); - }; - -}).call(this); diff --git a/XNSimHtml/node_modules/xml2js/lib/processors.js b/XNSimHtml/node_modules/xml2js/lib/processors.js deleted file mode 100644 index 89aa85f..0000000 --- a/XNSimHtml/node_modules/xml2js/lib/processors.js +++ /dev/null @@ -1,34 +0,0 @@ -// Generated by CoffeeScript 1.12.7 -(function() { - "use strict"; - var prefixMatch; - - prefixMatch = new RegExp(/(?!xmlns)^.*:/); - - exports.normalize = function(str) { - return str.toLowerCase(); - }; - - exports.firstCharLowerCase = function(str) { - return str.charAt(0).toLowerCase() + str.slice(1); - }; - - exports.stripPrefix = function(str) { - return str.replace(prefixMatch, ''); - }; - - exports.parseNumbers = function(str) { - if (!isNaN(str)) { - str = str % 1 === 0 ? parseInt(str, 10) : parseFloat(str); - } - return str; - }; - - exports.parseBooleans = function(str) { - if (/^(?:true|false)$/i.test(str)) { - str = str.toLowerCase() === 'true'; - } - return str; - }; - -}).call(this); diff --git a/XNSimHtml/node_modules/xml2js/lib/xml2js.bc.js b/XNSimHtml/node_modules/xml2js/lib/xml2js.bc.js deleted file mode 100644 index a6924ff..0000000 --- a/XNSimHtml/node_modules/xml2js/lib/xml2js.bc.js +++ /dev/null @@ -1,28337 +0,0 @@ -//# 1 ".xml2js.eobjs/jsoo/xml2js.bc.runtime.js" -// Generated by js_of_ocaml -//# buildInfo:effects=false, kind=unknown, use-js-string=true, version=5.2.0+git-0e29f0e-dirty -//# 3 ".xml2js.eobjs/jsoo/xml2js.bc.runtime.js" - -//# 7 ".xml2js.eobjs/jsoo/xml2js.bc.runtime.js" -(function - (Object){ - typeof globalThis !== "object" - && - (this - ? get() - : (Object.defineProperty - (Object.prototype, "_T_", {configurable: true, get: get}), - _T_)); - function get(){ - var global = this || self; - global.globalThis = global; - delete Object.prototype._T_; - } - } - (Object)); -(function(globalThis){ - "use strict"; - function caml_int64_is_zero(x){return + x.isZero();} - function caml_str_repeat(n, s){ - if(n == 0) return ""; - if(s.repeat) return s.repeat(n); - var r = "", l = 0; - for(;;){ - if(n & 1) r += s; - n >>= 1; - if(n == 0) return r; - s += s; - l++; - if(l == 9) s.slice(0, 1); - } - } - var caml_int64_offset = Math.pow(2, - 24); - function caml_raise_constant(tag){throw tag;} - var caml_global_data = [0]; - function caml_raise_zero_divide(){ - caml_raise_constant(caml_global_data.Division_by_zero); - } - function MlInt64(lo, mi, hi){ - this.lo = lo & 0xffffff; - this.mi = mi & 0xffffff; - this.hi = hi & 0xffff; - } - MlInt64.prototype.caml_custom = "_j"; - MlInt64.prototype.copy = - function(){return new MlInt64(this.lo, this.mi, this.hi);}; - MlInt64.prototype.ucompare = - function(x){ - if(this.hi > x.hi) return 1; - if(this.hi < x.hi) return - 1; - if(this.mi > x.mi) return 1; - if(this.mi < x.mi) return - 1; - if(this.lo > x.lo) return 1; - if(this.lo < x.lo) return - 1; - return 0; - }; - MlInt64.prototype.compare = - function(x){ - var hi = this.hi << 16, xhi = x.hi << 16; - if(hi > xhi) return 1; - if(hi < xhi) return - 1; - if(this.mi > x.mi) return 1; - if(this.mi < x.mi) return - 1; - if(this.lo > x.lo) return 1; - if(this.lo < x.lo) return - 1; - return 0; - }; - MlInt64.prototype.neg = - function(){ - var - lo = - this.lo, - mi = - this.mi + (lo >> 24), - hi = - this.hi + (mi >> 24); - return new MlInt64(lo, mi, hi); - }; - MlInt64.prototype.add = - function(x){ - var - lo = this.lo + x.lo, - mi = this.mi + x.mi + (lo >> 24), - hi = this.hi + x.hi + (mi >> 24); - return new MlInt64(lo, mi, hi); - }; - MlInt64.prototype.sub = - function(x){ - var - lo = this.lo - x.lo, - mi = this.mi - x.mi + (lo >> 24), - hi = this.hi - x.hi + (mi >> 24); - return new MlInt64(lo, mi, hi); - }; - MlInt64.prototype.mul = - function(x){ - var - lo = this.lo * x.lo, - mi = (lo * caml_int64_offset | 0) + this.mi * x.lo + this.lo * x.mi, - hi = - (mi * caml_int64_offset | 0) + this.hi * x.lo + this.mi * x.mi - + this.lo * x.hi; - return new MlInt64(lo, mi, hi); - }; - MlInt64.prototype.isZero = - function(){return (this.lo | this.mi | this.hi) == 0;}; - MlInt64.prototype.isNeg = function(){return this.hi << 16 < 0;}; - MlInt64.prototype.and = - function(x){ - return new MlInt64(this.lo & x.lo, this.mi & x.mi, this.hi & x.hi); - }; - MlInt64.prototype.or = - function(x){ - return new MlInt64(this.lo | x.lo, this.mi | x.mi, this.hi | x.hi); - }; - MlInt64.prototype.xor = - function(x){ - return new MlInt64(this.lo ^ x.lo, this.mi ^ x.mi, this.hi ^ x.hi); - }; - MlInt64.prototype.shift_left = - function(s){ - s = s & 63; - if(s == 0) return this; - if(s < 24) - return new - MlInt64 - (this.lo << s, - this.mi << s | this.lo >> 24 - s, - this.hi << s | this.mi >> 24 - s); - if(s < 48) - return new - MlInt64 - (0, this.lo << s - 24, this.mi << s - 24 | this.lo >> 48 - s); - return new MlInt64(0, 0, this.lo << s - 48); - }; - MlInt64.prototype.shift_right_unsigned = - function(s){ - s = s & 63; - if(s == 0) return this; - if(s < 24) - return new - MlInt64 - (this.lo >> s | this.mi << 24 - s, - this.mi >> s | this.hi << 24 - s, - this.hi >> s); - if(s < 48) - return new - MlInt64 - (this.mi >> s - 24 | this.hi << 48 - s, this.hi >> s - 24, 0); - return new MlInt64(this.hi >> s - 48, 0, 0); - }; - MlInt64.prototype.shift_right = - function(s){ - s = s & 63; - if(s == 0) return this; - var h = this.hi << 16 >> 16; - if(s < 24) - return new - MlInt64 - (this.lo >> s | this.mi << 24 - s, - this.mi >> s | h << 24 - s, - this.hi << 16 >> s >>> 16); - var sign = this.hi << 16 >> 31; - if(s < 48) - return new - MlInt64 - (this.mi >> s - 24 | this.hi << 48 - s, - this.hi << 16 >> s - 24 >> 16, - sign & 0xffff); - return new MlInt64(this.hi << 16 >> s - 32, sign, sign); - }; - MlInt64.prototype.lsl1 = - function(){ - this.hi = this.hi << 1 | this.mi >> 23; - this.mi = (this.mi << 1 | this.lo >> 23) & 0xffffff; - this.lo = this.lo << 1 & 0xffffff; - }; - MlInt64.prototype.lsr1 = - function(){ - this.lo = (this.lo >>> 1 | this.mi << 23) & 0xffffff; - this.mi = (this.mi >>> 1 | this.hi << 23) & 0xffffff; - this.hi = this.hi >>> 1; - }; - MlInt64.prototype.udivmod = - function(x){ - var - offset = 0, - modulus = this.copy(), - divisor = x.copy(), - quotient = new MlInt64(0, 0, 0); - while(modulus.ucompare(divisor) > 0){offset++; divisor.lsl1();} - while(offset >= 0){ - offset--; - quotient.lsl1(); - if(modulus.ucompare(divisor) >= 0){ - quotient.lo++; - modulus = modulus.sub(divisor); - } - divisor.lsr1(); - } - return {quotient: quotient, modulus: modulus}; - }; - MlInt64.prototype.div = - function(y){ - var x = this; - if(y.isZero()) caml_raise_zero_divide(); - var sign = x.hi ^ y.hi; - if(x.hi & 0x8000) x = x.neg(); - if(y.hi & 0x8000) y = y.neg(); - var q = x.udivmod(y).quotient; - if(sign & 0x8000) q = q.neg(); - return q; - }; - MlInt64.prototype.mod = - function(y){ - var x = this; - if(y.isZero()) caml_raise_zero_divide(); - var sign = x.hi; - if(x.hi & 0x8000) x = x.neg(); - if(y.hi & 0x8000) y = y.neg(); - var r = x.udivmod(y).modulus; - if(sign & 0x8000) r = r.neg(); - return r; - }; - MlInt64.prototype.toInt = function(){return this.lo | this.mi << 24;}; - MlInt64.prototype.toFloat = - function(){ - return (this.hi << 16) * Math.pow(2, 32) + this.mi * Math.pow(2, 24) - + this.lo; - }; - MlInt64.prototype.toArray = - function(){ - return [this.hi >> 8, - this.hi & 0xff, - this.mi >> 16, - this.mi >> 8 & 0xff, - this.mi & 0xff, - this.lo >> 16, - this.lo >> 8 & 0xff, - this.lo & 0xff]; - }; - MlInt64.prototype.lo32 = - function(){return this.lo | (this.mi & 0xff) << 24;}; - MlInt64.prototype.hi32 = - function(){return this.mi >>> 8 & 0xffff | this.hi << 16;}; - function caml_int64_of_int32(x){ - return new MlInt64(x & 0xffffff, x >> 24 & 0xffffff, x >> 31 & 0xffff); - } - function caml_int64_to_int32(x){return x.toInt();} - function caml_int64_is_negative(x){return + x.isNeg();} - function caml_int64_neg(x){return x.neg();} - function caml_jsbytes_of_string(x){return x;} - function jsoo_sys_getenv(n){ - var process = globalThis.process; - if(process && process.env && process.env[n] != undefined) - return process.env[n]; - if(globalThis.jsoo_static_env && globalThis.jsoo_static_env[n]) - return globalThis.jsoo_static_env[n]; - } - var caml_record_backtrace_flag = 0; - (function(){ - var r = jsoo_sys_getenv("OCAMLRUNPARAM"); - if(r !== undefined){ - var l = r.split(","); - for(var i = 0; i < l.length; i++) - if(l[i] == "b"){ - caml_record_backtrace_flag = 1; - break; - } - else if(l[i].startsWith("b=")) - caml_record_backtrace_flag = + l[i].slice(2); - else - continue; - } - } - ()); - function caml_exn_with_js_backtrace(exn, force){ - if(! exn.js_error || force || exn[0] == 248) - exn.js_error = new globalThis.Error("Js exception containing backtrace"); - return exn; - } - function caml_maybe_attach_backtrace(exn, force){ - return caml_record_backtrace_flag - ? caml_exn_with_js_backtrace(exn, force) - : exn; - } - function caml_raise_with_arg(tag, arg){ - throw caml_maybe_attach_backtrace([0, tag, arg]); - } - function caml_string_of_jsbytes(x){return x;} - function caml_raise_with_string(tag, msg){ - caml_raise_with_arg(tag, caml_string_of_jsbytes(msg)); - } - function caml_invalid_argument(msg){ - caml_raise_with_string(caml_global_data.Invalid_argument, msg); - } - function caml_parse_format(fmt){ - fmt = caml_jsbytes_of_string(fmt); - var len = fmt.length; - if(len > 31) caml_invalid_argument("format_int: format too long"); - var - f = - {justify: "+", - signstyle: "-", - filler: " ", - alternate: false, - base: 0, - signedconv: false, - width: 0, - uppercase: false, - sign: 1, - prec: - 1, - conv: "f"}; - for(var i = 0; i < len; i++){ - var c = fmt.charAt(i); - switch(c){ - case "-": - f.justify = "-"; break; - case "+": - case " ": - f.signstyle = c; break; - case "0": - f.filler = "0"; break; - case "#": - f.alternate = true; break; - case "1": - case "2": - case "3": - case "4": - case "5": - case "6": - case "7": - case "8": - case "9": - f.width = 0; - while(c = fmt.charCodeAt(i) - 48, c >= 0 && c <= 9){f.width = f.width * 10 + c; i++;} - i--; - break; - case ".": - f.prec = 0; - i++; - while(c = fmt.charCodeAt(i) - 48, c >= 0 && c <= 9){f.prec = f.prec * 10 + c; i++;} - i--; - case "d": - case "i": - f.signedconv = true; - case "u": - f.base = 10; break; - case "x": - f.base = 16; break; - case "X": - f.base = 16; f.uppercase = true; break; - case "o": - f.base = 8; break; - case "e": - case "f": - case "g": - f.signedconv = true; f.conv = c; break; - case "E": - case "F": - case "G": - f.signedconv = true; - f.uppercase = true; - f.conv = c.toLowerCase(); - break; - } - } - return f; - } - function caml_finish_formatting(f, rawbuffer){ - if(f.uppercase) rawbuffer = rawbuffer.toUpperCase(); - var len = rawbuffer.length; - if(f.signedconv && (f.sign < 0 || f.signstyle != "-")) len++; - if(f.alternate){if(f.base == 8) len += 1; if(f.base == 16) len += 2;} - var buffer = ""; - if(f.justify == "+" && f.filler == " ") - for(var i = len; i < f.width; i++) buffer += " "; - if(f.signedconv) - if(f.sign < 0) - buffer += "-"; - else if(f.signstyle != "-") buffer += f.signstyle; - if(f.alternate && f.base == 8) buffer += "0"; - if(f.alternate && f.base == 16) buffer += f.uppercase ? "0X" : "0x"; - if(f.justify == "+" && f.filler == "0") - for(var i = len; i < f.width; i++) buffer += "0"; - buffer += rawbuffer; - if(f.justify == "-") for(var i = len; i < f.width; i++) buffer += " "; - return caml_string_of_jsbytes(buffer); - } - function caml_int64_format(fmt, x){ - var f = caml_parse_format(fmt); - if(f.signedconv && caml_int64_is_negative(x)){f.sign = - 1; x = caml_int64_neg(x);} - var - buffer = "", - wbase = caml_int64_of_int32(f.base), - cvtbl = "0123456789abcdef"; - do{ - var p = x.udivmod(wbase); - x = p.quotient; - buffer = cvtbl.charAt(caml_int64_to_int32(p.modulus)) + buffer; - } - while - (! caml_int64_is_zero(x)); - if(f.prec >= 0){ - f.filler = " "; - var n = f.prec - buffer.length; - if(n > 0) buffer = caml_str_repeat(n, "0") + buffer; - } - return caml_finish_formatting(f, buffer); - } - function caml_expm1_float(x){return Math.expm1(x);} - function caml_ml_condition_broadcast(t){return 0;} - function jsoo_is_ascii(s){ - if(s.length < 24){ - for(var i = 0; i < s.length; i++) if(s.charCodeAt(i) > 127) return false; - return true; - } - else - return ! /[^\x00-\x7f]/.test(s); - } - function caml_utf16_of_utf8(s){ - for(var b = "", t = "", c, c1, c2, v, i = 0, l = s.length; i < l; i++){ - c1 = s.charCodeAt(i); - if(c1 < 0x80){ - for(var j = i + 1; j < l && (c1 = s.charCodeAt(j)) < 0x80; j++) ; - if(j - i > 512){ - t.substr(0, 1); - b += t; - t = ""; - b += s.slice(i, j); - } - else - t += s.slice(i, j); - if(j == l) break; - i = j; - } - v = 1; - if(++i < l && ((c2 = s.charCodeAt(i)) & - 64) == 128){ - c = c2 + (c1 << 6); - if(c1 < 0xe0){ - v = c - 0x3080; - if(v < 0x80) v = 1; - } - else{ - v = 2; - if(++i < l && ((c2 = s.charCodeAt(i)) & - 64) == 128){ - c = c2 + (c << 6); - if(c1 < 0xf0){ - v = c - 0xe2080; - if(v < 0x800 || v >= 0xd7ff && v < 0xe000) v = 2; - } - else{ - v = 3; - if(++i < l && ((c2 = s.charCodeAt(i)) & - 64) == 128 && c1 < 0xf5){ - v = c2 - 0x3c82080 + (c << 6); - if(v < 0x10000 || v > 0x10ffff) v = 3; - } - } - } - } - } - if(v < 4){ - i -= v; - t += "\ufffd"; - } - else if(v > 0xffff) - t += String.fromCharCode(0xd7c0 + (v >> 10), 0xdc00 + (v & 0x3FF)); - else - t += String.fromCharCode(v); - if(t.length > 1024){t.substr(0, 1); b += t; t = "";} - } - return b + t; - } - function caml_jsstring_of_string(s){ - if(jsoo_is_ascii(s)) return s; - return caml_utf16_of_utf8(s); - } - function fs_node_supported(){ - return typeof globalThis.process !== "undefined" - && typeof globalThis.process.versions !== "undefined" - && typeof globalThis.process.versions.node !== "undefined"; - } - function make_path_is_absolute(){ - function posix(path){ - if(path.charAt(0) === "/") return ["", path.substring(1)]; - return; - } - function win32(path){ - var - splitDeviceRe = - /^([a-zA-Z]:|[\\/]{2}[^\\/]+[\\/]+[^\\/]+)?([\\/])?([\s\S]*?)$/, - result = splitDeviceRe.exec(path), - device = result[1] || "", - isUnc = Boolean(device && device.charAt(1) !== ":"); - if(Boolean(result[2] || isUnc)){ - var root = result[1] || "", sep = result[2] || ""; - return [root, path.substring(root.length + sep.length)]; - } - return; - } - return fs_node_supported() && globalThis.process - && globalThis.process.platform - ? globalThis.process.platform === "win32" ? win32 : posix - : posix; - } - var path_is_absolute = make_path_is_absolute(); - function caml_trailing_slash(name){ - return name.slice(- 1) !== "/" ? name + "/" : name; - } - if(fs_node_supported() && globalThis.process && globalThis.process.cwd) - var caml_current_dir = globalThis.process.cwd().replace(/\\/g, "/"); - else - var caml_current_dir = "/static"; - caml_current_dir = caml_trailing_slash(caml_current_dir); - function caml_make_path(name){ - name = caml_jsstring_of_string(name); - if(! path_is_absolute(name)) name = caml_current_dir + name; - var - comp0 = path_is_absolute(name), - comp = comp0[1].split("/"), - ncomp = []; - for(var i = 0; i < comp.length; i++) - switch(comp[i]){ - case "..": - if(ncomp.length > 1) ncomp.pop(); break; - case ".": break; - case "": break; - default: ncomp.push(comp[i]); break; - } - ncomp.unshift(comp0[0]); - ncomp.orig = name; - return ncomp; - } - function caml_utf8_of_utf16(s){ - for(var b = "", t = b, c, d, i = 0, l = s.length; i < l; i++){ - c = s.charCodeAt(i); - if(c < 0x80){ - for(var j = i + 1; j < l && (c = s.charCodeAt(j)) < 0x80; j++) ; - if(j - i > 512){ - t.substr(0, 1); - b += t; - t = ""; - b += s.slice(i, j); - } - else - t += s.slice(i, j); - if(j == l) break; - i = j; - } - if(c < 0x800){ - t += String.fromCharCode(0xc0 | c >> 6); - t += String.fromCharCode(0x80 | c & 0x3f); - } - else if(c < 0xd800 || c >= 0xdfff) - t += - String.fromCharCode - (0xe0 | c >> 12, 0x80 | c >> 6 & 0x3f, 0x80 | c & 0x3f); - else if - (c >= 0xdbff || i + 1 == l || (d = s.charCodeAt(i + 1)) < 0xdc00 - || d > 0xdfff) - t += "\xef\xbf\xbd"; - else{ - i++; - c = (c << 10) + d - 0x35fdc00; - t += - String.fromCharCode - (0xf0 | c >> 18, - 0x80 | c >> 12 & 0x3f, - 0x80 | c >> 6 & 0x3f, - 0x80 | c & 0x3f); - } - if(t.length > 1024){t.substr(0, 1); b += t; t = "";} - } - return b + t; - } - function caml_string_of_jsstring(s){ - return jsoo_is_ascii(s) - ? caml_string_of_jsbytes(s) - : caml_string_of_jsbytes(caml_utf8_of_utf16(s)); - } - var - unix_error = - ["E2BIG", - "EACCES", - "EAGAIN", - "EBADF", - "EBUSY", - "ECHILD", - "EDEADLK", - "EDOM", - "EEXIST", - "EFAULT", - "EFBIG", - "EINTR", - "EINVAL", - "EIO", - "EISDIR", - "EMFILE", - "EMLINK", - "ENAMETOOLONG", - "ENFILE", - "ENODEV", - "ENOENT", - "ENOEXEC", - "ENOLCK", - "ENOMEM", - "ENOSPC", - "ENOSYS", - "ENOTDIR", - "ENOTEMPTY", - "ENOTTY", - "ENXIO", - "EPERM", - "EPIPE", - "ERANGE", - "EROFS", - "ESPIPE", - "ESRCH", - "EXDEV", - "EWOULDBLOCK", - "EINPROGRESS", - "EALREADY", - "ENOTSOCK", - "EDESTADDRREQ", - "EMSGSIZE", - "EPROTOTYPE", - "ENOPROTOOPT", - "EPROTONOSUPPORT", - "ESOCKTNOSUPPORT", - "EOPNOTSUPP", - "EPFNOSUPPORT", - "EAFNOSUPPORT", - "EADDRINUSE", - "EADDRNOTAVAIL", - "ENETDOWN", - "ENETUNREACH", - "ENETRESET", - "ECONNABORTED", - "ECONNRESET", - "ENOBUFS", - "EISCONN", - "ENOTCONN", - "ESHUTDOWN", - "ETOOMANYREFS", - "ETIMEDOUT", - "ECONNREFUSED", - "EHOSTDOWN", - "EHOSTUNREACH", - "ELOOP", - "EOVERFLOW"]; - function make_unix_err_args(code, syscall, path, errno){ - var variant = unix_error.indexOf(code); - if(variant < 0){if(errno == null) errno = - 9999; variant = [0, errno];} - var - args = - [variant, - caml_string_of_jsstring(syscall || ""), - caml_string_of_jsstring(path || "")]; - return args; - } - var caml_named_values = {}; - function caml_named_value(nm){return caml_named_values[nm];} - function caml_raise_with_args(tag, args){ - throw caml_maybe_attach_backtrace([0, tag].concat(args)); - } - function caml_subarray_to_jsbytes(a, i, len){ - var f = String.fromCharCode; - if(i == 0 && len <= 4096 && len == a.length) return f.apply(null, a); - var s = ""; - for(; 0 < len; i += 1024, len -= 1024) - s += f.apply(null, a.slice(i, i + Math.min(len, 1024))); - return s; - } - function caml_convert_string_to_bytes(s){ - if(s.t == 2) - s.c += caml_str_repeat(s.l - s.c.length, "\0"); - else - s.c = caml_subarray_to_jsbytes(s.c, 0, s.c.length); - s.t = 0; - } - function MlBytes(tag, contents, length){ - this.t = tag; - this.c = contents; - this.l = length; - } - MlBytes.prototype.toString = - function(){ - switch(this.t){ - case 9: - return this.c; - default: caml_convert_string_to_bytes(this); - case 0: - if(jsoo_is_ascii(this.c)){this.t = 9; return this.c;} this.t = 8; - case 8: - return this.c; - } - }; - MlBytes.prototype.toUtf16 = - function(){ - var r = this.toString(); - if(this.t == 9) return r; - return caml_utf16_of_utf8(r); - }; - MlBytes.prototype.slice = - function(){ - var content = this.t == 4 ? this.c.slice() : this.c; - return new MlBytes(this.t, content, this.l); - }; - function caml_is_ml_bytes(s){return s instanceof MlBytes;} - function caml_is_ml_string(s){ - return typeof s === "string" && ! /[^\x00-\xff]/.test(s); - } - function caml_bytes_of_array(a){ - if(! (a instanceof Uint8Array)) a = new Uint8Array(a); - return new MlBytes(4, a, a.length); - } - function caml_bytes_of_jsbytes(s){return new MlBytes(0, s, s.length);} - function caml_bytes_of_string(s){ - return caml_bytes_of_jsbytes(caml_jsbytes_of_string(s)); - } - function caml_raise_sys_error(msg){ - caml_raise_with_string(caml_global_data.Sys_error, msg); - } - function caml_raise_no_such_file(name){ - caml_raise_sys_error(name + ": No such file or directory"); - } - function caml_convert_bytes_to_array(s){ - var a = new Uint8Array(s.l), b = s.c, l = b.length, i = 0; - for(; i < l; i++) a[i] = b.charCodeAt(i); - for(l = s.l; i < l; i++) a[i] = 0; - s.c = a; - s.t = 4; - return a; - } - function caml_uint8_array_of_bytes(s){ - if(s.t != 4) caml_convert_bytes_to_array(s); - return s.c; - } - function caml_create_bytes(len){ - if(len < 0) caml_invalid_argument("Bytes.create"); - return new MlBytes(len ? 2 : 9, "", len); - } - function caml_ml_bytes_length(s){return s.l;} - function caml_blit_bytes(s1, i1, s2, i2, len){ - if(len == 0) return 0; - if(i2 == 0 && (len >= s2.l || s2.t == 2 && len >= s2.c.length)){ - s2.c = - s1.t == 4 - ? caml_subarray_to_jsbytes(s1.c, i1, len) - : i1 == 0 && s1.c.length == len ? s1.c : s1.c.substr(i1, len); - s2.t = s2.c.length == s2.l ? 0 : 2; - } - else if(s2.t == 2 && i2 == s2.c.length){ - s2.c += - s1.t == 4 - ? caml_subarray_to_jsbytes(s1.c, i1, len) - : i1 == 0 && s1.c.length == len ? s1.c : s1.c.substr(i1, len); - s2.t = s2.c.length == s2.l ? 0 : 2; - } - else{ - if(s2.t != 4) caml_convert_bytes_to_array(s2); - var c1 = s1.c, c2 = s2.c; - if(s1.t == 4) - if(i2 <= i1) - for(var i = 0; i < len; i++) c2[i2 + i] = c1[i1 + i]; - else - for(var i = len - 1; i >= 0; i--) c2[i2 + i] = c1[i1 + i]; - else{ - var l = Math.min(len, c1.length - i1); - for(var i = 0; i < l; i++) c2[i2 + i] = c1.charCodeAt(i1 + i); - for(; i < len; i++) c2[i2 + i] = 0; - } - } - return 0; - } - function MlFile(){} - function MlFakeFile(content){this.data = content;} - MlFakeFile.prototype = new MlFile(); - MlFakeFile.prototype.constructor = MlFakeFile; - MlFakeFile.prototype.truncate = - function(len){ - var old = this.data; - this.data = caml_create_bytes(len | 0); - caml_blit_bytes(old, 0, this.data, 0, len); - }; - MlFakeFile.prototype.length = - function(){return caml_ml_bytes_length(this.data);}; - MlFakeFile.prototype.write = - function(offset, buf, pos, len){ - var clen = this.length(); - if(offset + len >= clen){ - var new_str = caml_create_bytes(offset + len), old_data = this.data; - this.data = new_str; - caml_blit_bytes(old_data, 0, this.data, 0, clen); - } - caml_blit_bytes(caml_bytes_of_array(buf), pos, this.data, offset, len); - return 0; - }; - MlFakeFile.prototype.read = - function(offset, buf, pos, len){ - var clen = this.length(); - if(offset + len >= clen) len = clen - offset; - if(len){ - var data = caml_create_bytes(len | 0); - caml_blit_bytes(this.data, offset, data, 0, len); - buf.set(caml_uint8_array_of_bytes(data), pos); - } - return len; - }; - function MlFakeFd(name, file, flags){ - this.file = file; - this.name = name; - this.flags = flags; - } - MlFakeFd.prototype.err_closed = - function(){ - caml_raise_sys_error(this.name + ": file descriptor already closed"); - }; - MlFakeFd.prototype.length = - function(){if(this.file) return this.file.length(); this.err_closed();}; - MlFakeFd.prototype.write = - function(offset, buf, pos, len){ - if(this.file) return this.file.write(offset, buf, pos, len); - this.err_closed(); - }; - MlFakeFd.prototype.read = - function(offset, buf, pos, len){ - if(this.file) return this.file.read(offset, buf, pos, len); - this.err_closed(); - }; - MlFakeFd.prototype.close = function(){this.file = undefined;}; - function MlFakeDevice(root, f){ - this.content = {}; - this.root = root; - this.lookupFun = f; - } - MlFakeDevice.prototype.nm = function(name){return this.root + name;}; - MlFakeDevice.prototype.create_dir_if_needed = - function(name){ - var comp = name.split("/"), res = ""; - for(var i = 0; i < comp.length - 1; i++){ - res += comp[i] + "/"; - if(this.content[res]) continue; - this.content[res] = Symbol("directory"); - } - }; - MlFakeDevice.prototype.slash = - function(name){return /\/$/.test(name) ? name : name + "/";}; - MlFakeDevice.prototype.lookup = - function(name){ - if(! this.content[name] && this.lookupFun){ - var - res = - this.lookupFun - (caml_string_of_jsbytes(this.root), caml_string_of_jsbytes(name)); - if(res !== 0){ - this.create_dir_if_needed(name); - this.content[name] = new MlFakeFile(caml_bytes_of_string(res[1])); - } - } - }; - MlFakeDevice.prototype.exists = - function(name){ - if(name == "") return 1; - var name_slash = this.slash(name); - if(this.content[name_slash]) return 1; - this.lookup(name); - return this.content[name] ? 1 : 0; - }; - MlFakeDevice.prototype.isFile = - function(name){return this.exists(name) && ! this.is_dir(name) ? 1 : 0;}; - MlFakeDevice.prototype.mkdir = - function(name, mode, raise_unix){ - var unix_error = raise_unix && caml_named_value("Unix.Unix_error"); - if(this.exists(name)) - if(unix_error) - caml_raise_with_args - (unix_error, make_unix_err_args("EEXIST", "mkdir", this.nm(name))); - else - caml_raise_sys_error(name + ": File exists"); - var parent = /^(.*)\/[^/]+/.exec(name); - parent = parent && parent[1] || ""; - if(! this.exists(parent)) - if(unix_error) - caml_raise_with_args - (unix_error, make_unix_err_args("ENOENT", "mkdir", this.nm(parent))); - else - caml_raise_sys_error(parent + ": No such file or directory"); - if(! this.is_dir(parent)) - if(unix_error) - caml_raise_with_args - (unix_error, make_unix_err_args("ENOTDIR", "mkdir", this.nm(parent))); - else - caml_raise_sys_error(parent + ": Not a directory"); - this.create_dir_if_needed(this.slash(name)); - }; - MlFakeDevice.prototype.rmdir = - function(name, raise_unix){ - var - unix_error = raise_unix && caml_named_value("Unix.Unix_error"), - name_slash = name == "" ? "" : this.slash(name), - r = new RegExp("^" + name_slash + "([^/]+)"); - if(! this.exists(name)) - if(unix_error) - caml_raise_with_args - (unix_error, make_unix_err_args("ENOENT", "rmdir", this.nm(name))); - else - caml_raise_sys_error(name + ": No such file or directory"); - if(! this.is_dir(name)) - if(unix_error) - caml_raise_with_args - (unix_error, make_unix_err_args("ENOTDIR", "rmdir", this.nm(name))); - else - caml_raise_sys_error(name + ": Not a directory"); - for(var n in this.content) - if(n.match(r)) - if(unix_error) - caml_raise_with_args - (unix_error, make_unix_err_args("ENOTEMPTY", "rmdir", this.nm(name))); - else - caml_raise_sys_error(this.nm(name) + ": Directory not empty"); - delete this.content[name_slash]; - }; - MlFakeDevice.prototype.readdir = - function(name){ - var name_slash = name == "" ? "" : this.slash(name); - if(! this.exists(name)) - caml_raise_sys_error(name + ": No such file or directory"); - if(! this.is_dir(name)) caml_raise_sys_error(name + ": Not a directory"); - var r = new RegExp("^" + name_slash + "([^/]+)"), seen = {}, a = []; - for(var n in this.content){ - var m = n.match(r); - if(m && ! seen[m[1]]){seen[m[1]] = true; a.push(m[1]);} - } - return a; - }; - MlFakeDevice.prototype.opendir = - function(name, raise_unix){ - var - unix_error = raise_unix && caml_named_value("Unix.Unix_error"), - a = this.readdir(name), - c = false, - i = 0; - return {readSync: - function(){ - if(c) - if(unix_error) - caml_raise_with_args - (unix_error, - make_unix_err_args("EBADF", "closedir", this.nm(name))); - else - caml_raise_sys_error(name + ": closedir failed"); - if(i == a.length) return null; - var entry = a[i]; - i++; - return {name: entry}; - }, - closeSync: - function(){ - if(c) - if(unix_error) - caml_raise_with_args - (unix_error, - make_unix_err_args("EBADF", "closedir", this.nm(name))); - else - caml_raise_sys_error(name + ": closedir failed"); - c = true; - a = []; - }}; - }; - MlFakeDevice.prototype.is_dir = - function(name){ - if(name == "") return true; - var name_slash = this.slash(name); - return this.content[name_slash] ? 1 : 0; - }; - MlFakeDevice.prototype.unlink = - function(name){ - var ok = this.content[name] ? true : false; - delete this.content[name]; - return ok; - }; - MlFakeDevice.prototype.open = - function(name, f){ - var file; - if(f.rdonly && f.wronly) - caml_raise_sys_error - (this.nm(name) - + " : flags Open_rdonly and Open_wronly are not compatible"); - if(f.text && f.binary) - caml_raise_sys_error - (this.nm(name) - + " : flags Open_text and Open_binary are not compatible"); - this.lookup(name); - if(this.content[name]){ - if(this.is_dir(name)) - caml_raise_sys_error(this.nm(name) + " : is a directory"); - if(f.create && f.excl) - caml_raise_sys_error(this.nm(name) + " : file already exists"); - file = this.content[name]; - if(f.truncate) file.truncate(); - } - else if(f.create){ - this.create_dir_if_needed(name); - this.content[name] = new MlFakeFile(caml_create_bytes(0)); - file = this.content[name]; - } - else - caml_raise_no_such_file(this.nm(name)); - return new MlFakeFd(this.nm(name), file, f); - }; - MlFakeDevice.prototype.open = - function(name, f){ - var file; - if(f.rdonly && f.wronly) - caml_raise_sys_error - (this.nm(name) - + " : flags Open_rdonly and Open_wronly are not compatible"); - if(f.text && f.binary) - caml_raise_sys_error - (this.nm(name) - + " : flags Open_text and Open_binary are not compatible"); - this.lookup(name); - if(this.content[name]){ - if(this.is_dir(name)) - caml_raise_sys_error(this.nm(name) + " : is a directory"); - if(f.create && f.excl) - caml_raise_sys_error(this.nm(name) + " : file already exists"); - file = this.content[name]; - if(f.truncate) file.truncate(); - } - else if(f.create){ - this.create_dir_if_needed(name); - this.content[name] = new MlFakeFile(caml_create_bytes(0)); - file = this.content[name]; - } - else - caml_raise_no_such_file(this.nm(name)); - return new MlFakeFd(this.nm(name), file, f); - }; - MlFakeDevice.prototype.register = - function(name, content){ - var file; - if(this.content[name]) - caml_raise_sys_error(this.nm(name) + " : file already exists"); - if(caml_is_ml_bytes(content)) file = new MlFakeFile(content); - if(caml_is_ml_string(content)) - file = new MlFakeFile(caml_bytes_of_string(content)); - else if(content instanceof Array) - file = new MlFakeFile(caml_bytes_of_array(content)); - else if(typeof content === "string") - file = new MlFakeFile(caml_bytes_of_jsbytes(content)); - else if(content.toString){ - var - bytes = - caml_bytes_of_string(caml_string_of_jsstring(content.toString())); - file = new MlFakeFile(bytes); - } - if(file){ - this.create_dir_if_needed(name); - this.content[name] = file; - } - else - caml_raise_sys_error - (this.nm(name) + " : registering file with invalid content type"); - }; - MlFakeDevice.prototype.constructor = MlFakeDevice; - function caml_ml_string_length(s){return s.length;} - function caml_string_unsafe_get(s, i){return s.charCodeAt(i);} - function caml_uint8_array_of_string(s){ - var l = caml_ml_string_length(s), a = new Array(l), i = 0; - for(; i < l; i++) a[i] = caml_string_unsafe_get(s, i); - return a; - } - function caml_bytes_bound_error(){ - caml_invalid_argument("index out of bounds"); - } - function caml_bytes_unsafe_set(s, i, c){ - c &= 0xff; - if(s.t != 4){ - if(i == s.c.length){ - s.c += String.fromCharCode(c); - if(i + 1 == s.l) s.t = 0; - return 0; - } - caml_convert_bytes_to_array(s); - } - s.c[i] = c; - return 0; - } - function caml_bytes_set(s, i, c){ - if(i >>> 0 >= s.l) caml_bytes_bound_error(); - return caml_bytes_unsafe_set(s, i, c); - } - function MlNodeFd(fd, flags){ - this.fs = require("fs"); - this.fd = fd; - this.flags = flags; - } - MlNodeFd.prototype = new MlFile(); - MlNodeFd.prototype.constructor = MlNodeFd; - MlNodeFd.prototype.truncate = - function(len){ - try{this.fs.ftruncateSync(this.fd, len | 0);} - catch(err){caml_raise_sys_error(err.toString());} - }; - MlNodeFd.prototype.length = - function(){ - try{return this.fs.fstatSync(this.fd).size;} - catch(err){caml_raise_sys_error(err.toString());} - }; - MlNodeFd.prototype.write = - function(offset, buf, buf_offset, len){ - try{ - if(this.flags.isCharacterDevice) - this.fs.writeSync(this.fd, buf, buf_offset, len); - else - this.fs.writeSync(this.fd, buf, buf_offset, len, offset); - } - catch(err){caml_raise_sys_error(err.toString());} - return 0; - }; - MlNodeFd.prototype.read = - function(offset, a, buf_offset, len){ - try{ - if(this.flags.isCharacterDevice) - var read = this.fs.readSync(this.fd, a, buf_offset, len); - else - var read = this.fs.readSync(this.fd, a, buf_offset, len, offset); - return read; - } - catch(err){caml_raise_sys_error(err.toString());} - }; - MlNodeFd.prototype.close = - function(){ - try{this.fs.closeSync(this.fd); return 0;} - catch(err){caml_raise_sys_error(err.toString());} - }; - function MlNodeDevice(root){this.fs = require("fs"); this.root = root;} - MlNodeDevice.prototype.nm = function(name){return this.root + name;}; - MlNodeDevice.prototype.exists = - function(name){ - try{return this.fs.existsSync(this.nm(name)) ? 1 : 0;} - catch(err){return 0;} - }; - MlNodeDevice.prototype.isFile = - function(name){ - try{return this.fs.statSync(this.nm(name)).isFile() ? 1 : 0;} - catch(err){caml_raise_sys_error(err.toString());} - }; - MlNodeDevice.prototype.mkdir = - function(name, mode, raise_unix){ - try{this.fs.mkdirSync(this.nm(name), {mode: mode}); return 0;} - catch(err){this.raise_nodejs_error(err, raise_unix);} - }; - MlNodeDevice.prototype.rmdir = - function(name, raise_unix){ - try{this.fs.rmdirSync(this.nm(name)); return 0;} - catch(err){this.raise_nodejs_error(err, raise_unix);} - }; - MlNodeDevice.prototype.readdir = - function(name, raise_unix){ - try{return this.fs.readdirSync(this.nm(name));} - catch(err){this.raise_nodejs_error(err, raise_unix);} - }; - MlNodeDevice.prototype.is_dir = - function(name){ - try{return this.fs.statSync(this.nm(name)).isDirectory() ? 1 : 0;} - catch(err){caml_raise_sys_error(err.toString());} - }; - MlNodeDevice.prototype.unlink = - function(name, raise_unix){ - try{ - var b = this.fs.existsSync(this.nm(name)) ? 1 : 0; - this.fs.unlinkSync(this.nm(name)); - return b; - } - catch(err){this.raise_nodejs_error(err, raise_unix);} - }; - MlNodeDevice.prototype.open = - function(name, f, raise_unix){ - var consts = require("constants"), res = 0; - for(var key in f) - switch(key){ - case "rdonly": - res |= consts.O_RDONLY; break; - case "wronly": - res |= consts.O_WRONLY; break; - case "append": - res |= consts.O_WRONLY | consts.O_APPEND; break; - case "create": - res |= consts.O_CREAT; break; - case "truncate": - res |= consts.O_TRUNC; break; - case "excl": - res |= consts.O_EXCL; break; - case "binary": - res |= consts.O_BINARY; break; - case "text": - res |= consts.O_TEXT; break; - case "nonblock": - res |= consts.O_NONBLOCK; break; - } - try{ - var - fd = this.fs.openSync(this.nm(name), res), - isCharacterDevice = - this.fs.lstatSync(this.nm(name)).isCharacterDevice(); - f.isCharacterDevice = isCharacterDevice; - return new MlNodeFd(fd, f); - } - catch(err){this.raise_nodejs_error(err, raise_unix);} - }; - MlNodeDevice.prototype.rename = - function(o, n, raise_unix){ - try{this.fs.renameSync(this.nm(o), this.nm(n));} - catch(err){this.raise_nodejs_error(err, raise_unix);} - }; - MlNodeDevice.prototype.stat = - function(name, raise_unix){ - try{ - var js_stats = this.fs.statSync(this.nm(name)); - return this.stats_from_js(js_stats); - } - catch(err){this.raise_nodejs_error(err, raise_unix);} - }; - MlNodeDevice.prototype.lstat = - function(name, raise_unix){ - try{ - var js_stats = this.fs.lstatSync(this.nm(name)); - return this.stats_from_js(js_stats); - } - catch(err){this.raise_nodejs_error(err, raise_unix);} - }; - MlNodeDevice.prototype.symlink = - function(to_dir, target, path, raise_unix){ - try{ - this.fs.symlinkSync - (this.nm(target), this.nm(path), to_dir ? "dir" : "file"); - return 0; - } - catch(err){this.raise_nodejs_error(err, raise_unix);} - }; - MlNodeDevice.prototype.readlink = - function(name, raise_unix){ - try{ - var link = this.fs.readlinkSync(this.nm(name), "utf8"); - return caml_string_of_jsstring(link); - } - catch(err){this.raise_nodejs_error(err, raise_unix);} - }; - MlNodeDevice.prototype.opendir = - function(name, raise_unix){ - try{return this.fs.opendirSync(this.nm(name));} - catch(err){this.raise_nodejs_error(err, raise_unix);} - }; - MlNodeDevice.prototype.raise_nodejs_error = - function(err, raise_unix){ - var unix_error = caml_named_value("Unix.Unix_error"); - if(raise_unix && unix_error){ - var - args = make_unix_err_args(err.code, err.syscall, err.path, err.errno); - caml_raise_with_args(unix_error, args); - } - else - caml_raise_sys_error(err.toString()); - }; - MlNodeDevice.prototype.stats_from_js = - function(js_stats){ - var file_kind; - if(js_stats.isFile()) - file_kind = 0; - else if(js_stats.isDirectory()) - file_kind = 1; - else if(js_stats.isCharacterDevice()) - file_kind = 2; - else if(js_stats.isBlockDevice()) - file_kind = 3; - else if(js_stats.isSymbolicLink()) - file_kind = 4; - else if(js_stats.isFIFO()) - file_kind = 5; - else if(js_stats.isSocket()) file_kind = 6; - return [0, - js_stats.dev, - js_stats.ino, - file_kind, - js_stats.mode, - js_stats.nlink, - js_stats.uid, - js_stats.gid, - js_stats.rdev, - js_stats.size, - js_stats.atimeMs, - js_stats.mtimeMs, - js_stats.ctimeMs]; - }; - MlNodeDevice.prototype.constructor = MlNodeDevice; - function caml_get_root(path){ - var x = path_is_absolute(path); - if(! x) return; - return x[0] + "/"; - } - function caml_failwith(msg){ - if(! caml_global_data.Failure) - caml_global_data.Failure = [248, caml_string_of_jsbytes("Failure"), - 3]; - caml_raise_with_string(caml_global_data.Failure, msg); - } - var - caml_root = - caml_get_root(caml_current_dir) - || caml_failwith("unable to compute caml_root"), - jsoo_mount_point = []; - if(fs_node_supported()) - jsoo_mount_point.push - ({path: caml_root, device: new MlNodeDevice(caml_root)}); - else - jsoo_mount_point.push - ({path: caml_root, device: new MlFakeDevice(caml_root)}); - jsoo_mount_point.push - ({path: "/static/", device: new MlFakeDevice("/static/")}); - function resolve_fs_device(name){ - var - path = caml_make_path(name), - name = path.join("/"), - name_slash = caml_trailing_slash(name), - res; - for(var i = 0; i < jsoo_mount_point.length; i++){ - var m = jsoo_mount_point[i]; - if - (name_slash.search(m.path) == 0 - && (! res || res.path.length < m.path.length)) - res = - {path: m.path, - device: m.device, - rest: name.substring(m.path.length, name.length)}; - } - if(! res && fs_node_supported()){ - var root = caml_get_root(name); - if(root && root.match(/^[a-zA-Z]:\/$/)){ - var m = {path: root, device: new MlNodeDevice(root)}; - jsoo_mount_point.push(m); - res = - {path: m.path, - device: m.device, - rest: name.substring(m.path.length, name.length)}; - } - } - if(res) return res; - caml_raise_sys_error("no device found for " + name_slash); - } - function caml_sys_is_directory(name){ - var root = resolve_fs_device(name), a = root.device.is_dir(root.rest); - return a ? 1 : 0; - } - function caml_raise_not_found(){ - caml_raise_constant(caml_global_data.Not_found); - } - function caml_sys_getenv(name){ - var r = jsoo_sys_getenv(caml_jsstring_of_string(name)); - if(r === undefined) caml_raise_not_found(); - return caml_string_of_jsstring(r); - } - function shift_right_nat(nat1, ofs1, len1, nat2, ofs2, nbits){ - if(nbits == 0){nat2.data[ofs2] = 0; return 0;} - var wrap = 0; - for(var i = len1 - 1; i >= 0; i--){ - var a = nat1.data[ofs1 + i] >>> 0; - nat1.data[ofs1 + i] = a >>> nbits | wrap; - wrap = a << 32 - nbits; - } - nat2.data[ofs2] = wrap; - return 0; - } - var caml_gr_state; - function caml_gr_state_get(){ - if(caml_gr_state) return caml_gr_state; - throw caml_maybe_attach_backtrace - ([0, - caml_named_value("Graphics.Graphic_failure"), - caml_string_of_jsbytes("Not initialized")]); - } - function caml_gr_point_color(x, y){ - var - s = caml_gr_state_get(), - im = s.context.getImageData(x, s.height - y, 1, 1), - d = im.data; - return (d[0] << 16) + (d[1] << 8) + d[2]; - } - function caml_runtime_events_user_resolve(){return 0;} - var MlObjectTable; - if(typeof globalThis.Map === "undefined") - MlObjectTable = - function(){ - function NaiveLookup(objs){this.objs = objs;} - NaiveLookup.prototype.get = - function(v){ - for(var i = 0; i < this.objs.length; i++) - if(this.objs[i] === v) return i; - }; - NaiveLookup.prototype.set = function(){}; - return function(){ - this.objs = []; - this.lookup = new NaiveLookup(this.objs);}; - } - (); - else - MlObjectTable = - function(){this.objs = []; this.lookup = new globalThis.Map();}; - MlObjectTable.prototype.store = - function(v){this.lookup.set(v, this.objs.length); this.objs.push(v);}; - MlObjectTable.prototype.recall = - function(v){ - var i = this.lookup.get(v); - return i === undefined ? undefined : this.objs.length - i; - }; - function caml_sys_rename(o, n){ - var o_root = resolve_fs_device(o), n_root = resolve_fs_device(n); - if(o_root.device != n_root.device) - caml_failwith("caml_sys_rename: cannot move file between two filesystem"); - if(! o_root.device.rename) - caml_failwith("caml_sys_rename: no implemented"); - o_root.device.rename(o_root.rest, n_root.rest); - } - function caml_log10_float(x){return Math.log10(x);} - var caml_runtime_warnings = 0; - function caml_ml_enable_runtime_warnings(bool){caml_runtime_warnings = bool; return 0; - } - function caml_classify_float(x){ - if(isFinite(x)){ - if(Math.abs(x) >= 2.2250738585072014e-308) return 0; - if(x != 0) return 1; - return 2; - } - return isNaN(x) ? 4 : 3; - } - var caml_ml_channels = new Array(); - function caml_refill(chan){ - if(chan.refill != null){ - var str = chan.refill(), str_a = caml_uint8_array_of_string(str); - if(str_a.length == 0) - chan.refill = null; - else{ - if(chan.buffer.length < chan.buffer_max + str_a.length){ - var b = new Uint8Array(chan.buffer_max + str_a.length); - b.set(chan.buffer); - chan.buffer = b; - } - chan.buffer.set(str_a, chan.buffer_max); - chan.offset += str_a.length; - chan.buffer_max += str_a.length; - } - } - else{ - var - nread = - chan.file.read - (chan.offset, - chan.buffer, - chan.buffer_max, - chan.buffer.length - chan.buffer_max); - chan.offset += nread; - chan.buffer_max += nread; - } - } - function caml_array_bound_error(){ - caml_invalid_argument("index out of bounds"); - } - function caml_ml_input_scan_line(chanid){ - var chan = caml_ml_channels[chanid], p = chan.buffer_curr; - do - if(p >= chan.buffer_max){ - if(chan.buffer_curr > 0){ - chan.buffer.set(chan.buffer.subarray(chan.buffer_curr), 0); - p -= chan.buffer_curr; - chan.buffer_max -= chan.buffer_curr; - chan.buffer_curr = 0; - } - if(chan.buffer_max >= chan.buffer.length) return - chan.buffer_max | 0; - var prev_max = chan.buffer_max; - caml_refill(chan); - if(prev_max == chan.buffer_max) return - chan.buffer_max | 0; - } - while - (chan.buffer[p++] != 10); - return p - chan.buffer_curr | 0; - } - function caml_gc_minor(unit){ - if(typeof globalThis.gc == "function") globalThis.gc(true); - return 0; - } - function caml_ml_condition_new(unit){return {condition: 1};} - function caml_int64_of_bytes(a){ - return new - MlInt64 - (a[7] << 0 | a[6] << 8 | a[5] << 16, - a[4] << 0 | a[3] << 8 | a[2] << 16, - a[1] << 0 | a[0] << 8); - } - function caml_ba_uint8_get64(ba, i0){ - var ofs = ba.offset(i0); - if(ofs + 7 >= ba.data.length) caml_array_bound_error(); - var - b1 = ba.get(ofs + 0), - b2 = ba.get(ofs + 1), - b3 = ba.get(ofs + 2), - b4 = ba.get(ofs + 3), - b5 = ba.get(ofs + 4), - b6 = ba.get(ofs + 5), - b7 = ba.get(ofs + 6), - b8 = ba.get(ofs + 7); - return caml_int64_of_bytes([b8, b7, b6, b5, b4, b3, b2, b1]); - } - function caml_int64_to_bytes(x){return x.toArray();} - function caml_int64_marshal(writer, v, sizes){ - var b = caml_int64_to_bytes(v); - for(var i = 0; i < 8; i++) writer.write(8, b[i]); - sizes[0] = 8; - sizes[1] = 8; - } - function caml_ba_num_dims(ba){return ba.dims.length;} - function caml_wrap_exception(e){ - { - if(e instanceof Array) return e; - var exn; - if - (globalThis.RangeError && e instanceof globalThis.RangeError - && e.message - && e.message.match(/maximum call stack/i)) - exn = caml_global_data.Stack_overflow; - else if - (globalThis.InternalError && e instanceof globalThis.InternalError - && e.message - && e.message.match(/too much recursion/i)) - exn = caml_global_data.Stack_overflow; - else if(e instanceof globalThis.Error && caml_named_value("jsError")) - exn = [0, caml_named_value("jsError"), e]; - else - exn = [0, caml_global_data.Failure, caml_string_of_jsstring(String(e))]; - if(e instanceof globalThis.Error) exn.js_error = e; - return exn; - } - } - function caml_create_file(name, content){ - var root = resolve_fs_device(name); - if(! root.device.register) caml_failwith("cannot register file"); - root.device.register(root.rest, content); - return 0; - } - function jsoo_create_file(name, content){ - var - name = caml_string_of_jsbytes(name), - content = caml_string_of_jsbytes(content); - return caml_create_file(name, content); - } - function caml_fs_init(){ - var tmp = globalThis.caml_fs_tmp; - if(tmp) - for(var i = 0; i < tmp.length; i++) - jsoo_create_file(tmp[i].name, tmp[i].content); - globalThis.jsoo_create_file = jsoo_create_file; - globalThis.caml_fs_tmp = []; - return 0; - } - function caml_get_continuation_callstack(){return [0];} - var caml_parser_trace = 0; - function caml_set_parser_trace(bool){ - var oldflag = caml_parser_trace; - caml_parser_trace = bool; - return oldflag; - } - function caml_list_of_js_array(a){ - var l = 0; - for(var i = a.length - 1; i >= 0; i--){var e = a[i]; l = [0, e, l];} - return l; - } - function caml_mul(a, b){return Math.imul(a, b);} - function caml_hash_mix_int(h, d){ - d = caml_mul(d, 0xcc9e2d51 | 0); - d = d << 15 | d >>> 32 - 15; - d = caml_mul(d, 0x1b873593); - h ^= d; - h = h << 13 | h >>> 32 - 13; - return (h + (h << 2) | 0) + (0xe6546b64 | 0) | 0; - } - function num_digits_nat(nat, ofs, len){ - for(var i = len - 1; i >= 0; i--) if(nat.data[ofs + i] != 0) return i + 1; - return 1; - } - function caml_hash_nat(x){ - var len = num_digits_nat(x, 0, x.data.length), h = 0; - for(var i = 0; i < len; i++) h = caml_hash_mix_int(h, x.data[i]); - return h; - } - function caml_call_gen(f, args){ - var - n = f.l >= 0 ? f.l : f.l = f.length, - argsLen = args.length, - d = n - argsLen; - if(d == 0) - return f.apply(null, args); - else if(d < 0){ - var g = f.apply(null, args.slice(0, n)); - if(typeof g !== "function") return g; - return caml_call_gen(g, args.slice(n)); - } - else{ - switch(d){ - case 1: - { - var - g = - function(x){ - var nargs = new Array(argsLen + 1); - for(var i = 0; i < argsLen; i++) nargs[i] = args[i]; - nargs[argsLen] = x; - return f.apply(null, nargs); - }; - break; - } - case 2: - { - var - g = - function(x, y){ - var nargs = new Array(argsLen + 2); - for(var i = 0; i < argsLen; i++) nargs[i] = args[i]; - nargs[argsLen] = x; - nargs[argsLen + 1] = y; - return f.apply(null, nargs); - }; - break; - } - default: - var - g = - function(){ - var - extra_args = arguments.length == 0 ? 1 : arguments.length, - nargs = new Array(args.length + extra_args); - for(var i = 0; i < args.length; i++) nargs[i] = args[i]; - for(var i = 0; i < arguments.length; i++) - nargs[args.length + i] = arguments[i]; - return caml_call_gen(f, nargs); - }; - } - g.l = d; - return g; - } - } - var caml_callback = caml_call_gen; - function caml_js_wrap_callback_arguments(f){ - return function(){ - var len = arguments.length, args = new Array(len); - for(var i = 0; i < len; i++) args[i] = arguments[i]; - return caml_callback(f, [args]);}; - } - function caml_sys_chdir(dir){ - var root = resolve_fs_device(dir); - if(root.device.exists(root.rest)){ - if(root.rest) - caml_current_dir = caml_trailing_slash(root.path + root.rest); - else - caml_current_dir = root.path; - return 0; - } - else - caml_raise_no_such_file(caml_jsbytes_of_string(dir)); - } - function caml_obj_tag(x){ - if(x instanceof Array && x[0] == x[0] >>> 0) - return x[0]; - else if(caml_is_ml_bytes(x)) - return 252; - else if(caml_is_ml_string(x)) - return 252; - else if(x instanceof Function || typeof x == "function") - return 247; - else if(x && x.caml_custom) return 255; else return 1000; - } - function caml_obj_update_tag(b, o, n){ - if(b[0] == o){b[0] = n; return 1;} - return 0; - } - var caml_ml_domain_unique_token_ = [0]; - function caml_ml_domain_unique_token(unit){return caml_ml_domain_unique_token_; - } - function caml_lazy_update_to_forcing(o){ - var t = caml_obj_tag(o); - if(t != 246 && t != 250 && t != 244) return 4; - if(caml_obj_update_tag(o, 246, 244)) - return 0; - else{ - var field0 = o[1]; - t = o[0]; - if(t == 244) - return field0 == caml_ml_domain_unique_token(0) ? 1 : 2; - else if(t == 250) return 3; else return 2; - } - } - function caml_gc_counters(){return [254, 0, 0, 0];} - function caml_gr_synchronize(){ - caml_failwith("caml_gr_synchronize not Implemented"); - } - function caml_unix_closedir(dir_handle){ - try{dir_handle.pointer.closeSync();} - catch(e){ - var unix_error = caml_named_value("Unix.Unix_error"); - caml_raise_with_args - (unix_error, make_unix_err_args("EBADF", "closedir", dir_handle.path)); - } - } - function caml_unix_opendir(path){ - var root = resolve_fs_device(path); - if(! root.device.opendir) - caml_failwith("caml_unix_opendir: not implemented"); - var dir_handle = root.device.opendir(root.rest, true); - return {pointer: dir_handle, path: path}; - } - function caml_unix_rewinddir(dir_handle){ - caml_unix_closedir(dir_handle); - var new_dir_handle = caml_unix_opendir(dir_handle.path); - dir_handle.pointer = new_dir_handle.pointer; - return 0; - } - function caml_raise_end_of_file(){ - caml_raise_constant(caml_global_data.End_of_file); - } - function caml_unix_readdir(dir_handle){ - var entry; - try{entry = dir_handle.pointer.readSync();} - catch(e){ - var unix_error = caml_named_value("Unix.Unix_error"); - caml_raise_with_args - (unix_error, make_unix_err_args("EBADF", "readdir", dir_handle.path)); - } - if(entry === null) - caml_raise_end_of_file(); - else - return caml_string_of_jsstring(entry.name); - } - function caml_unix_findfirst(path){ - var path_js = caml_jsstring_of_string(path); - path_js = path_js.replace(/(^|[\\\/])\*\.\*$/, ""); - path = caml_string_of_jsstring(path_js); - var - dir_handle = caml_unix_opendir(path), - first_entry = caml_unix_readdir(dir_handle); - return [0, first_entry, dir_handle]; - } - function caml_is_continuation_tag(t){return 0;} - var log2_ok = Math.log2 && Math.log2(1.1235582092889474E+307) == 1020; - function jsoo_floor_log2(x){ - if(log2_ok) return Math.floor(Math.log2(x)); - var i = 0; - if(x == 0) return - Infinity; - if(x >= 1) while(x >= 2){x /= 2; i++;} else while(x < 1){x *= 2; i--;} - return i; - } - function caml_int32_bits_of_float(x){ - var float32a = new Float32Array(1); - float32a[0] = x; - var int32a = new Int32Array(float32a.buffer); - return int32a[0] | 0; - } - function caml_int64_create_lo_mi_hi(lo, mi, hi){return new MlInt64(lo, mi, hi); - } - function caml_int64_bits_of_float(x){ - if(! isFinite(x)){ - if(isNaN(x)) return caml_int64_create_lo_mi_hi(1, 0, 0x7ff0); - return x > 0 - ? caml_int64_create_lo_mi_hi(0, 0, 0x7ff0) - : caml_int64_create_lo_mi_hi(0, 0, 0xfff0); - } - var sign = x == 0 && 1 / x == - Infinity ? 0x8000 : x >= 0 ? 0 : 0x8000; - if(sign) x = - x; - var exp = jsoo_floor_log2(x) + 1023; - if(exp <= 0){ - exp = 0; - x /= Math.pow(2, - 1026); - } - else{ - x /= Math.pow(2, exp - 1027); - if(x < 16){x *= 2; exp -= 1;} - if(exp == 0) x /= 2; - } - var k = Math.pow(2, 24), r3 = x | 0; - x = (x - r3) * k; - var r2 = x | 0; - x = (x - r2) * k; - var r1 = x | 0; - r3 = r3 & 0xf | sign | exp << 4; - return caml_int64_create_lo_mi_hi(r1, r2, r3); - } - function caml_ba_serialize(writer, ba, sz){ - writer.write(32, ba.dims.length); - writer.write(32, ba.kind | ba.layout << 8); - if(ba.caml_custom == "_bigarr02") - for(var i = 0; i < ba.dims.length; i++) - if(ba.dims[i] < 0xffff) - writer.write(16, ba.dims[i]); - else{ - writer.write(16, 0xffff); - writer.write(32, 0); - writer.write(32, ba.dims[i]); - } - else - for(var i = 0; i < ba.dims.length; i++) writer.write(32, ba.dims[i]); - switch(ba.kind){ - case 2: - case 3: - case 12: - for(var i = 0; i < ba.data.length; i++) writer.write(8, ba.data[i]); - break; - case 4: - case 5: - for(var i = 0; i < ba.data.length; i++) writer.write(16, ba.data[i]); - break; - case 6: - for(var i = 0; i < ba.data.length; i++) writer.write(32, ba.data[i]); - break; - case 8: - case 9: - writer.write(8, 0); - for(var i = 0; i < ba.data.length; i++) writer.write(32, ba.data[i]); - break; - case 7: - for(var i = 0; i < ba.data.length / 2; i++){ - var b = caml_int64_to_bytes(ba.get(i)); - for(var j = 0; j < 8; j++) writer.write(8, b[j]); - } - break; - case 1: - for(var i = 0; i < ba.data.length; i++){ - var b = caml_int64_to_bytes(caml_int64_bits_of_float(ba.get(i))); - for(var j = 0; j < 8; j++) writer.write(8, b[j]); - } - break; - case 0: - for(var i = 0; i < ba.data.length; i++){ - var b = caml_int32_bits_of_float(ba.get(i)); - writer.write(32, b); - } - break; - case 10: - for(var i = 0; i < ba.data.length / 2; i++){ - var j = ba.get(i); - writer.write(32, caml_int32_bits_of_float(j[1])); - writer.write(32, caml_int32_bits_of_float(j[2])); - } - break; - case 11: - for(var i = 0; i < ba.data.length / 2; i++){ - var - complex = ba.get(i), - b = caml_int64_to_bytes(caml_int64_bits_of_float(complex[1])); - for(var j = 0; j < 8; j++) writer.write(8, b[j]); - var b = caml_int64_to_bytes(caml_int64_bits_of_float(complex[2])); - for(var j = 0; j < 8; j++) writer.write(8, b[j]); - } - break; - } - sz[0] = (4 + ba.dims.length) * 4; - sz[1] = (4 + ba.dims.length) * 8; - } - function caml_ba_get_size_per_element(kind){ - switch(kind){case 7:case 10:case 11: return 2;default: return 1; - } - } - function caml_ba_create_buffer(kind, size){ - var view; - switch(kind){ - case 0: - view = Float32Array; break; - case 1: - view = Float64Array; break; - case 2: - view = Int8Array; break; - case 3: - view = Uint8Array; break; - case 4: - view = Int16Array; break; - case 5: - view = Uint16Array; break; - case 6: - view = Int32Array; break; - case 7: - view = Int32Array; break; - case 8: - view = Int32Array; break; - case 9: - view = Int32Array; break; - case 10: - view = Float32Array; break; - case 11: - view = Float64Array; break; - case 12: - view = Uint8Array; break; - } - if(! view) caml_invalid_argument("Bigarray.create: unsupported kind"); - var data = new view(size * caml_ba_get_size_per_element(kind)); - return data; - } - function caml_int32_float_of_bits(x){ - var int32a = new Int32Array(1); - int32a[0] = x; - var float32a = new Float32Array(int32a.buffer); - return float32a[0]; - } - function caml_int64_float_of_bits(x){ - var lo = x.lo, mi = x.mi, hi = x.hi, exp = (hi & 0x7fff) >> 4; - if(exp == 2047) - return (lo | mi | hi & 0xf) == 0 - ? hi & 0x8000 ? - Infinity : Infinity - : NaN; - var k = Math.pow(2, - 24), res = (lo * k + mi) * k + (hi & 0xf); - if(exp > 0){ - res += 16; - res *= Math.pow(2, exp - 1027); - } - else - res *= Math.pow(2, - 1026); - if(hi & 0x8000) res = - res; - return res; - } - function caml_ba_get_size(dims){ - var n_dims = dims.length, size = 1; - for(var i = 0; i < n_dims; i++){ - if(dims[i] < 0) - caml_invalid_argument("Bigarray.create: negative dimension"); - size = size * dims[i]; - } - return size; - } - function caml_int64_create_lo_hi(lo, hi){ - return new - MlInt64 - (lo & 0xffffff, - lo >>> 24 & 0xff | (hi & 0xffff) << 8, - hi >>> 16 & 0xffff); - } - function caml_int64_hi32(v){return v.hi32();} - function caml_int64_lo32(v){return v.lo32();} - var caml_ba_custom_name = "_bigarr02"; - function Ml_Bigarray(kind, layout, dims, buffer){ - this.kind = kind; - this.layout = layout; - this.dims = dims; - this.data = buffer; - } - Ml_Bigarray.prototype.caml_custom = caml_ba_custom_name; - Ml_Bigarray.prototype.offset = - function(arg){ - var ofs = 0; - if(typeof arg === "number") arg = [arg]; - if(! (arg instanceof Array)) - caml_invalid_argument("bigarray.js: invalid offset"); - if(this.dims.length != arg.length) - caml_invalid_argument("Bigarray.get/set: bad number of dimensions"); - if(this.layout == 0) - for(var i = 0; i < this.dims.length; i++){ - if(arg[i] < 0 || arg[i] >= this.dims[i]) caml_array_bound_error(); - ofs = ofs * this.dims[i] + arg[i]; - } - else - for(var i = this.dims.length - 1; i >= 0; i--){ - if(arg[i] < 1 || arg[i] > this.dims[i]) caml_array_bound_error(); - ofs = ofs * this.dims[i] + (arg[i] - 1); - } - return ofs; - }; - Ml_Bigarray.prototype.get = - function(ofs){ - switch(this.kind){ - case 7: - var l = this.data[ofs * 2 + 0], h = this.data[ofs * 2 + 1]; - return caml_int64_create_lo_hi(l, h); - case 10: - case 11: - var r = this.data[ofs * 2 + 0], i = this.data[ofs * 2 + 1]; - return [254, r, i]; - default: return this.data[ofs]; - } - }; - Ml_Bigarray.prototype.set = - function(ofs, v){ - switch(this.kind){ - case 7: - this.data[ofs * 2 + 0] = caml_int64_lo32(v); - this.data[ofs * 2 + 1] = caml_int64_hi32(v); - break; - case 10: - case 11: - this.data[ofs * 2 + 0] = v[1]; this.data[ofs * 2 + 1] = v[2]; break; - default: this.data[ofs] = v; break; - } - return 0; - }; - Ml_Bigarray.prototype.fill = - function(v){ - switch(this.kind){ - case 7: - var a = caml_int64_lo32(v), b = caml_int64_hi32(v); - if(a == b) - this.data.fill(a); - else - for(var i = 0; i < this.data.length; i++) - this.data[i] = i % 2 == 0 ? a : b; - break; - case 10: - case 11: - var im = v[1], re = v[2]; - if(im == re) - this.data.fill(im); - else - for(var i = 0; i < this.data.length; i++) - this.data[i] = i % 2 == 0 ? im : re; - break; - default: this.data.fill(v); break; - } - }; - Ml_Bigarray.prototype.compare = - function(b, total){ - if(this.layout != b.layout || this.kind != b.kind){ - var k1 = this.kind | this.layout << 8, k2 = b.kind | b.layout << 8; - return k2 - k1; - } - if(this.dims.length != b.dims.length) - return b.dims.length - this.dims.length; - for(var i = 0; i < this.dims.length; i++) - if(this.dims[i] != b.dims[i]) return this.dims[i] < b.dims[i] ? - 1 : 1; - switch(this.kind){ - case 0: - case 1: - case 10: - case 11: - var x, y; - for(var i = 0; i < this.data.length; i++){ - x = this.data[i]; - y = b.data[i]; - if(x < y) return - 1; - if(x > y) return 1; - if(x != y){ - if(! total) return NaN; - if(x == x) return 1; - if(y == y) return - 1; - } - } - break; - case 7: - for(var i = 0; i < this.data.length; i += 2){ - if(this.data[i + 1] < b.data[i + 1]) return - 1; - if(this.data[i + 1] > b.data[i + 1]) return 1; - if(this.data[i] >>> 0 < b.data[i] >>> 0) return - 1; - if(this.data[i] >>> 0 > b.data[i] >>> 0) return 1; - } - break; - case 2: - case 3: - case 4: - case 5: - case 6: - case 8: - case 9: - case 12: - for(var i = 0; i < this.data.length; i++){ - if(this.data[i] < b.data[i]) return - 1; - if(this.data[i] > b.data[i]) return 1; - } - break; - } - return 0; - }; - function Ml_Bigarray_c_1_1(kind, layout, dims, buffer){ - this.kind = kind; - this.layout = layout; - this.dims = dims; - this.data = buffer; - } - Ml_Bigarray_c_1_1.prototype = new Ml_Bigarray(); - Ml_Bigarray_c_1_1.prototype.offset = - function(arg){ - if(typeof arg !== "number") - if(arg instanceof Array && arg.length == 1) - arg = arg[0]; - else - caml_invalid_argument("Ml_Bigarray_c_1_1.offset"); - if(arg < 0 || arg >= this.dims[0]) caml_array_bound_error(); - return arg; - }; - Ml_Bigarray_c_1_1.prototype.get = function(ofs){return this.data[ofs];}; - Ml_Bigarray_c_1_1.prototype.set = - function(ofs, v){this.data[ofs] = v; return 0;}; - Ml_Bigarray_c_1_1.prototype.fill = - function(v){this.data.fill(v); return 0;}; - function caml_ba_create_unsafe(kind, layout, dims, data){ - var size_per_element = caml_ba_get_size_per_element(kind); - if(caml_ba_get_size(dims) * size_per_element != data.length) - caml_invalid_argument("length doesn't match dims"); - if(layout == 0 && dims.length == 1 && size_per_element == 1) - return new Ml_Bigarray_c_1_1(kind, layout, dims, data); - return new Ml_Bigarray(kind, layout, dims, data); - } - function caml_ba_deserialize(reader, sz, name){ - var num_dims = reader.read32s(); - if(num_dims < 0 || num_dims > 16) - caml_failwith("input_value: wrong number of bigarray dimensions"); - var - tag = reader.read32s(), - kind = tag & 0xff, - layout = tag >> 8 & 1, - dims = []; - if(name == "_bigarr02") - for(var i = 0; i < num_dims; i++){ - var size_dim = reader.read16u(); - if(size_dim == 0xffff){ - var size_dim_hi = reader.read32u(), size_dim_lo = reader.read32u(); - if(size_dim_hi != 0) - caml_failwith("input_value: bigarray dimension overflow in 32bit"); - size_dim = size_dim_lo; - } - dims.push(size_dim); - } - else - for(var i = 0; i < num_dims; i++) dims.push(reader.read32u()); - var - size = caml_ba_get_size(dims), - data = caml_ba_create_buffer(kind, size), - ba = caml_ba_create_unsafe(kind, layout, dims, data); - switch(kind){ - case 2: - for(var i = 0; i < size; i++) data[i] = reader.read8s(); break; - case 3: - case 12: - for(var i = 0; i < size; i++) data[i] = reader.read8u(); break; - case 4: - for(var i = 0; i < size; i++) data[i] = reader.read16s(); break; - case 5: - for(var i = 0; i < size; i++) data[i] = reader.read16u(); break; - case 6: - for(var i = 0; i < size; i++) data[i] = reader.read32s(); break; - case 8: - case 9: - var sixty = reader.read8u(); - if(sixty) - caml_failwith - ("input_value: cannot read bigarray with 64-bit OCaml ints"); - for(var i = 0; i < size; i++) data[i] = reader.read32s(); - break; - case 7: - var t = new Array(8); - for(var i = 0; i < size; i++){ - for(var j = 0; j < 8; j++) t[j] = reader.read8u(); - var int64 = caml_int64_of_bytes(t); - ba.set(i, int64); - } - break; - case 1: - var t = new Array(8); - for(var i = 0; i < size; i++){ - for(var j = 0; j < 8; j++) t[j] = reader.read8u(); - var f = caml_int64_float_of_bits(caml_int64_of_bytes(t)); - ba.set(i, f); - } - break; - case 0: - for(var i = 0; i < size; i++){ - var f = caml_int32_float_of_bits(reader.read32s()); - ba.set(i, f); - } - break; - case 10: - for(var i = 0; i < size; i++){ - var - re = caml_int32_float_of_bits(reader.read32s()), - im = caml_int32_float_of_bits(reader.read32s()); - ba.set(i, [254, re, im]); - } - break; - case 11: - var t = new Array(8); - for(var i = 0; i < size; i++){ - for(var j = 0; j < 8; j++) t[j] = reader.read8u(); - var re = caml_int64_float_of_bits(caml_int64_of_bytes(t)); - for(var j = 0; j < 8; j++) t[j] = reader.read8u(); - var im = caml_int64_float_of_bits(caml_int64_of_bytes(t)); - ba.set(i, [254, re, im]); - } - break; - } - sz[0] = (4 + num_dims) * 4; - return caml_ba_create_unsafe(kind, layout, dims, data); - } - function caml_ba_compare(a, b, total){return a.compare(b, total);} - function caml_hash_mix_int64(h, v){ - h = caml_hash_mix_int(h, caml_int64_lo32(v)); - h = caml_hash_mix_int(h, caml_int64_hi32(v)); - return h; - } - function caml_hash_mix_float(h, v0){ - return caml_hash_mix_int64(h, caml_int64_bits_of_float(v0)); - } - function caml_ba_hash(ba){ - var num_elts = caml_ba_get_size(ba.dims), h = 0; - switch(ba.kind){ - case 2: - case 3: - case 12: - if(num_elts > 256) num_elts = 256; - var w = 0, i = 0; - for(i = 0; i + 4 <= ba.data.length; i += 4){ - w = - ba.data[i + 0] | ba.data[i + 1] << 8 | ba.data[i + 2] << 16 - | ba.data[i + 3] << 24; - h = caml_hash_mix_int(h, w); - } - w = 0; - switch(num_elts & 3){ - case 3: - w = ba.data[i + 2] << 16; - case 2: - w |= ba.data[i + 1] << 8; - case 1: - w |= ba.data[i + 0]; h = caml_hash_mix_int(h, w); - } - break; - case 4: - case 5: - if(num_elts > 128) num_elts = 128; - var w = 0, i = 0; - for(i = 0; i + 2 <= ba.data.length; i += 2){ - w = ba.data[i + 0] | ba.data[i + 1] << 16; - h = caml_hash_mix_int(h, w); - } - if((num_elts & 1) != 0) h = caml_hash_mix_int(h, ba.data[i]); - break; - case 6: - if(num_elts > 64) num_elts = 64; - for(var i = 0; i < num_elts; i++) h = caml_hash_mix_int(h, ba.data[i]); - break; - case 8: - case 9: - if(num_elts > 64) num_elts = 64; - for(var i = 0; i < num_elts; i++) h = caml_hash_mix_int(h, ba.data[i]); - break; - case 7: - if(num_elts > 32) num_elts = 32; - num_elts *= 2; - for(var i = 0; i < num_elts; i++) h = caml_hash_mix_int(h, ba.data[i]); - break; - case 10: - num_elts *= 2; - case 0: - if(num_elts > 64) num_elts = 64; - for(var i = 0; i < num_elts; i++) - h = caml_hash_mix_float(h, ba.data[i]); - break; - case 11: - num_elts *= 2; - case 1: - if(num_elts > 32) num_elts = 32; - for(var i = 0; i < num_elts; i++) - h = caml_hash_mix_float(h, ba.data[i]); - break; - } - return h; - } - function caml_int32_unmarshal(reader, size){size[0] = 4; return reader.read32s(); - } - function caml_nativeint_unmarshal(reader, size){ - switch(reader.read8u()){ - case 1: - size[0] = 4; return reader.read32s(); - case 2: - caml_failwith("input_value: native integer value too large"); - default: caml_failwith("input_value: ill-formed native integer"); - } - } - function caml_int64_unmarshal(reader, size){ - var t = new Array(8); - for(var j = 0; j < 8; j++) t[j] = reader.read8u(); - size[0] = 8; - return caml_int64_of_bytes(t); - } - function caml_int64_compare(x, y, total){return x.compare(y);} - function caml_int64_hash(v){return v.lo32() ^ v.hi32();} - var - caml_custom_ops = - {"_j": - {deserialize: caml_int64_unmarshal, - serialize: caml_int64_marshal, - fixed_length: 8, - compare: caml_int64_compare, - hash: caml_int64_hash}, - "_i": {deserialize: caml_int32_unmarshal, fixed_length: 4}, - "_n": {deserialize: caml_nativeint_unmarshal, fixed_length: 4}, - "_bigarray": - {deserialize: - function(reader, sz){ - return caml_ba_deserialize(reader, sz, "_bigarray"); - }, - serialize: caml_ba_serialize, - compare: caml_ba_compare, - hash: caml_ba_hash}, - "_bigarr02": - {deserialize: - function(reader, sz){ - return caml_ba_deserialize(reader, sz, "_bigarr02"); - }, - serialize: caml_ba_serialize, - compare: caml_ba_compare, - hash: caml_ba_hash}}; - function caml_compare_val_get_custom(a){ - return caml_custom_ops[a.caml_custom] - && caml_custom_ops[a.caml_custom].compare; - } - function caml_compare_val_number_custom(num, custom, swap, total){ - var comp = caml_compare_val_get_custom(custom); - if(comp){ - var x = swap > 0 ? comp(custom, num, total) : comp(num, custom, total); - if(total && x != x) return swap; - if(+ x != + x) return + x; - if((x | 0) != 0) return x | 0; - } - return swap; - } - function caml_compare_val_tag(a){ - if(typeof a === "number") - return 1000; - else if(caml_is_ml_bytes(a)) - return 252; - else if(caml_is_ml_string(a)) - return 1252; - else if(a instanceof Array && a[0] === a[0] >>> 0 && a[0] <= 255){var tag = a[0] | 0; return tag == 254 ? 0 : tag;} - else if(a instanceof String) - return 12520; - else if(typeof a == "string") - return 12520; - else if(a instanceof Number) - return 1000; - else if(a && a.caml_custom) - return 1255; - else if(a && a.compare) - return 1256; - else if(typeof a == "function") - return 1247; - else if(typeof a == "symbol") return 1251; - return 1001; - } - function caml_int_compare(a, b){ - if(a < b) return - 1; - if(a == b) return 0; - return 1; - } - function caml_string_compare(s1, s2){ - return s1 < s2 ? - 1 : s1 > s2 ? 1 : 0; - } - function caml_bytes_compare(s1, s2){ - s1.t & 6 && caml_convert_string_to_bytes(s1); - s2.t & 6 && caml_convert_string_to_bytes(s2); - return s1.c < s2.c ? - 1 : s1.c > s2.c ? 1 : 0; - } - function caml_compare_val(a, b, total){ - var stack = []; - for(;;){ - if(! (total && a === b)){ - var tag_a = caml_compare_val_tag(a); - if(tag_a == 250){a = a[1]; continue;} - var tag_b = caml_compare_val_tag(b); - if(tag_b == 250){b = b[1]; continue;} - if(tag_a !== tag_b){ - if(tag_a == 1000){ - if(tag_b == 1255) - return caml_compare_val_number_custom(a, b, - 1, total); - return - 1; - } - if(tag_b == 1000){ - if(tag_a == 1255) - return caml_compare_val_number_custom(b, a, 1, total); - return 1; - } - return tag_a < tag_b ? - 1 : 1; - } - switch(tag_a){ - case 247: - caml_invalid_argument("compare: functional value"); break; - case 248: - var x = caml_int_compare(a[2], b[2]); if(x != 0) return x | 0; break; - case 249: - caml_invalid_argument("compare: functional value"); break; - case 250: - caml_invalid_argument("equal: got Forward_tag, should not happen"); - break; - case 251: - caml_invalid_argument("equal: abstract value"); break; - case 252: - if(a !== b){ - var x = caml_bytes_compare(a, b); - if(x != 0) return x | 0; - } - break; - case 253: - caml_invalid_argument("equal: got Double_tag, should not happen"); - break; - case 254: - caml_invalid_argument - ("equal: got Double_array_tag, should not happen"); - break; - case 255: - caml_invalid_argument("equal: got Custom_tag, should not happen"); - break; - case 1247: - caml_invalid_argument("compare: functional value"); break; - case 1255: - var comp = caml_compare_val_get_custom(a); - if(comp != caml_compare_val_get_custom(b)) - return a.caml_custom < b.caml_custom ? - 1 : 1; - if(! comp) caml_invalid_argument("compare: abstract value"); - var x = comp(a, b, total); - if(x != x) return total ? - 1 : x; - if(x !== (x | 0)) return - 1; - if(x != 0) return x | 0; - break; - case 1256: - var x = a.compare(b, total); - if(x != x) return total ? - 1 : x; - if(x !== (x | 0)) return - 1; - if(x != 0) return x | 0; - break; - case 1000: - a = + a; - b = + b; - if(a < b) return - 1; - if(a > b) return 1; - if(a != b){ - if(! total) return NaN; - if(a == a) return 1; - if(b == b) return - 1; - } - break; - case 1001: - if(a < b) return - 1; - if(a > b) return 1; - if(a != b){ - if(! total) return NaN; - if(a == a) return 1; - if(b == b) return - 1; - } - break; - case 1251: - if(a !== b){if(! total) return NaN; return 1;} break; - case 1252: - var a = caml_jsbytes_of_string(a), b = caml_jsbytes_of_string(b); - if(a !== b){if(a < b) return - 1; if(a > b) return 1;} - break; - case 12520: - var a = a.toString(), b = b.toString(); - if(a !== b){if(a < b) return - 1; if(a > b) return 1;} - break; - case 246: - case 254: - default: - if(caml_is_continuation_tag(tag_a)){ - caml_invalid_argument("compare: continuation value"); - break; - } - if(a.length != b.length) return a.length < b.length ? - 1 : 1; - if(a.length > 1) stack.push(a, b, 1); - break; - } - } - if(stack.length == 0) return 0; - var i = stack.pop(); - b = stack.pop(); - a = stack.pop(); - if(i + 1 < a.length) stack.push(a, b, i + 1); - a = a[i]; - b = b[i]; - } - } - function caml_greaterthan(x, y){ - return + (caml_compare_val(x, y, false) > 0); - } - function div_helper(a, b, c){ - var - x = a * 65536 + (b >>> 16), - y = Math.floor(x / c) * 65536, - z = x % c * 65536, - w = z + (b & 0x0000FFFF); - return [y + Math.floor(w / c), w % c]; - } - function div_digit_nat(natq, ofsq, natr, ofsr, nat1, ofs1, len, nat2, ofs2){ - var rem = nat1.data[ofs1 + len - 1] >>> 0; - for(var i = len - 2; i >= 0; i--){ - var - x = div_helper(rem, nat1.data[ofs1 + i] >>> 0, nat2.data[ofs2] >>> 0); - natq.data[ofsq + i] = x[0]; - rem = x[1]; - } - natr.data[ofsr] = rem; - return 0; - } - function num_leading_zero_bits_in_digit(nat, ofs){ - var a = nat.data[ofs], b = 0; - if(a & 0xFFFF0000){b += 16; a >>>= 16;} - if(a & 0xFF00){b += 8; a >>>= 8;} - if(a & 0xF0){b += 4; a >>>= 4;} - if(a & 12){b += 2; a >>>= 2;} - if(a & 2){b += 1; a >>>= 1;} - if(a & 1) b += 1; - return 32 - b; - } - function shift_left_nat(nat1, ofs1, len1, nat2, ofs2, nbits){ - if(nbits == 0){nat2.data[ofs2] = 0; return 0;} - var wrap = 0; - for(var i = 0; i < len1; i++){ - var a = nat1.data[ofs1 + i] >>> 0; - nat1.data[ofs1 + i] = a << nbits | wrap; - wrap = a >>> 32 - nbits; - } - nat2.data[ofs2] = wrap; - return 0; - } - function MlNat(x){ - this.data = new Int32Array(x); - this.length = this.data.length + 2; - } - MlNat.prototype.caml_custom = "_nat"; - function create_nat(size){ - var arr = new MlNat(size); - for(var i = 0; i < size; i++) arr.data[i] = - 1; - return arr; - } - function set_to_zero_nat(nat, ofs, len){ - for(var i = 0; i < len; i++) nat.data[ofs + i] = 0; - return 0; - } - function incr_nat(nat, ofs, len, carry_in){ - var carry = carry_in; - for(var i = 0; i < len; i++){ - var x = (nat.data[ofs + i] >>> 0) + carry; - nat.data[ofs + i] = x | 0; - if(x == x >>> 0){carry = 0; break;} else carry = 1; - } - return carry; - } - function add_nat(nat1, ofs1, len1, nat2, ofs2, len2, carry_in){ - var carry = carry_in; - for(var i = 0; i < len2; i++){ - var - x = (nat1.data[ofs1 + i] >>> 0) + (nat2.data[ofs2 + i] >>> 0) + carry; - nat1.data[ofs1 + i] = x; - if(x == x >>> 0) carry = 0; else carry = 1; - } - return incr_nat(nat1, ofs1 + len2, len1 - len2, carry); - } - function nat_of_array(l){return new MlNat(l);} - function mult_digit_nat(nat1, ofs1, len1, nat2, ofs2, len2, nat3, ofs3){ - var carry = 0, a = nat3.data[ofs3] >>> 0; - for(var i = 0; i < len2; i++){ - var - x1 = - (nat1.data[ofs1 + i] >>> 0) - + (nat2.data[ofs2 + i] >>> 0) * (a & 0x0000FFFF) - + carry, - x2 = (nat2.data[ofs2 + i] >>> 0) * (a >>> 16); - carry = Math.floor(x2 / 65536); - var x3 = x1 + x2 % 65536 * 65536; - nat1.data[ofs1 + i] = x3; - carry += Math.floor(x3 / 4294967296); - } - return len2 < len1 && carry - ? add_nat - (nat1, ofs1 + len2, len1 - len2, nat_of_array([carry]), 0, 1, 0) - : carry; - } - function decr_nat(nat, ofs, len, carry_in){ - var borrow = carry_in == 1 ? 0 : 1; - for(var i = 0; i < len; i++){ - var x = (nat.data[ofs + i] >>> 0) - borrow; - nat.data[ofs + i] = x; - if(x >= 0){borrow = 0; break;} else borrow = 1; - } - return borrow == 1 ? 0 : 1; - } - function sub_nat(nat1, ofs1, len1, nat2, ofs2, len2, carry_in){ - var borrow = carry_in == 1 ? 0 : 1; - for(var i = 0; i < len2; i++){ - var - x = (nat1.data[ofs1 + i] >>> 0) - (nat2.data[ofs2 + i] >>> 0) - borrow; - nat1.data[ofs1 + i] = x; - if(x >= 0) borrow = 0; else borrow = 1; - } - return decr_nat(nat1, ofs1 + len2, len1 - len2, borrow == 1 ? 0 : 1); - } - function compare_nat(nat1, ofs1, len1, nat2, ofs2, len2){ - var - a = num_digits_nat(nat1, ofs1, len1), - b = num_digits_nat(nat2, ofs2, len2); - if(a > b) return 1; - if(a < b) return - 1; - for(var i = len1 - 1; i >= 0; i--){ - if(nat1.data[ofs1 + i] >>> 0 > nat2.data[ofs2 + i] >>> 0) return 1; - if(nat1.data[ofs1 + i] >>> 0 < nat2.data[ofs2 + i] >>> 0) return - 1; - } - return 0; - } - function div_nat(nat1, ofs1, len1, nat2, ofs2, len2){ - if(len2 == 1){ - div_digit_nat(nat1, ofs1 + 1, nat1, ofs1, nat1, ofs1, len1, nat2, ofs2); - return 0; - } - var s = num_leading_zero_bits_in_digit(nat2, ofs2 + len2 - 1); - shift_left_nat(nat2, ofs2, len2, nat_of_array([0]), 0, s); - shift_left_nat(nat1, ofs1, len1, nat_of_array([0]), 0, s); - var d = (nat2.data[ofs2 + len2 - 1] >>> 0) + 1, a = create_nat(len2 + 1); - for(var i = len1 - 1; i >= len2; i--){ - var - quo = - d == 4294967296 - ? nat1.data[ofs1 + i] >>> 0 - : div_helper - (nat1.data[ofs1 + i] >>> 0, nat1.data[ofs1 + i - 1] >>> 0, d) - [0]; - set_to_zero_nat(a, 0, len2 + 1); - mult_digit_nat(a, 0, len2 + 1, nat2, ofs2, len2, nat_of_array([quo]), 0); - sub_nat(nat1, ofs1 + i - len2, len2 + 1, a, 0, len2 + 1, 1); - while - (nat1.data[ofs1 + i] != 0 - || compare_nat(nat1, ofs1 + i - len2, len2, nat2, ofs2, len2) >= 0){ - quo = quo + 1; - sub_nat(nat1, ofs1 + i - len2, len2 + 1, nat2, ofs2, len2, 1); - } - nat1.data[ofs1 + i] = quo; - } - shift_right_nat(nat1, ofs1, len2, nat_of_array([0]), 0, s); - shift_right_nat(nat2, ofs2, len2, nat_of_array([0]), 0, s); - return 0; - } - function caml_ba_blit(src, dst){ - if(dst.dims.length != src.dims.length) - caml_invalid_argument("Bigarray.blit: dimension mismatch"); - for(var i = 0; i < dst.dims.length; i++) - if(dst.dims[i] != src.dims[i]) - caml_invalid_argument("Bigarray.blit: dimension mismatch"); - dst.data.set(src.data); - return 0; - } - function is_digit_int(nat, ofs){if(nat.data[ofs] >= 0) return 1; return 0;} - function caml_int64_div(x, y){return x.div(y);} - function caml_js_html_entities(s){ - var entity = /^&#?[0-9a-zA-Z]+;$/; - if(s.match(entity)){ - var str, temp = document.createElement("p"); - temp.innerHTML = s; - str = temp.textContent || temp.innerText; - temp = null; - return str; - } - else - caml_failwith("Invalid entity " + s); - } - function caml_string_unsafe_set(s, i, c){ - caml_failwith("caml_string_unsafe_set"); - } - function caml_int64_of_float(x){ - if(x < 0) x = Math.ceil(x); - return new - MlInt64 - (x & 0xffffff, - Math.floor(x * caml_int64_offset) & 0xffffff, - Math.floor(x * caml_int64_offset * caml_int64_offset) & 0xffff); - } - function caml_ml_channel_size_64(chanid){ - var chan = caml_ml_channels[chanid]; - return caml_int64_of_float(chan.file.length()); - } - function caml_ba_set_2(ba, i0, i1, v){ - ba.set(ba.offset([i0, i1]), v); - return 0; - } - var - caml_argv = - function(){ - var process = globalThis.process, main = "a.out", args = []; - if(process && process.argv && process.argv.length > 1){ - var argv = process.argv; - main = argv[1]; - args = argv.slice(2); - } - var p = caml_string_of_jsstring(main), args2 = [0, p]; - for(var i = 0; i < args.length; i++) - args2.push(caml_string_of_jsstring(args[i])); - return args2; - } - (), - caml_executable_name = caml_argv[1]; - function caml_js_eval_string(s){return eval(caml_jsstring_of_string(s));} - function serialize_nat(writer, nat, sz){ - var len = nat.data.length; - writer.write(32, len); - for(var i = 0; i < len; i++) writer.write(32, nat.data[i]); - sz[0] = len * 4; - sz[1] = len * 8; - } - function caml_memprof_set(_control){return 0;} - function caml_sys_exit(code){ - if(globalThis.quit) globalThis.quit(code); - if(globalThis.process && globalThis.process.exit) - globalThis.process.exit(code); - caml_invalid_argument("Function 'exit' not implemented"); - } - function caml_channel_descriptor(chanid){ - var chan = caml_ml_channels[chanid]; - return chan.fd; - } - function caml_js_from_array(a){return a.slice(1);} - function caml_ba_reshape(ba, vind){ - vind = caml_js_from_array(vind); - var new_dim = [], num_dims = vind.length; - if(num_dims < 0 || num_dims > 16) - caml_invalid_argument("Bigarray.reshape: bad number of dimensions"); - var num_elts = 1; - for(var i = 0; i < num_dims; i++){ - new_dim[i] = vind[i]; - if(new_dim[i] < 0) - caml_invalid_argument("Bigarray.reshape: negative dimension"); - num_elts = num_elts * new_dim[i]; - } - var size = caml_ba_get_size(ba.dims); - if(num_elts != size) - caml_invalid_argument("Bigarray.reshape: size mismatch"); - return caml_ba_create_unsafe(ba.kind, ba.layout, new_dim, ba.data); - } - var caml_oo_last_id = 0; - function caml_set_oo_id(b){b[2] = caml_oo_last_id++; return b;} - function caml_gr_fill_rect(x, y, w, h){ - var s = caml_gr_state_get(); - s.context.fillRect(x, s.height - y, w, - h); - return 0; - } - function caml_bigstring_blit_string_to_ba(str1, pos1, ba2, pos2, len){ - if(12 != ba2.kind) - caml_invalid_argument("caml_bigstring_blit_string_to_ba: kind mismatch"); - if(len == 0) return 0; - var ofs2 = ba2.offset(pos2); - if(pos1 + len > caml_ml_string_length(str1)) caml_array_bound_error(); - if(ofs2 + len > ba2.data.length) caml_array_bound_error(); - var slice = caml_uint8_array_of_string(str1).slice(pos1, pos1 + len); - ba2.data.set(slice, ofs2); - return 0; - } - function caml_gr_set_window_title(name){ - var s = caml_gr_state_get(); - s.title = name; - var jsname = caml_jsstring_of_string(name); - if(s.set_title) s.set_title(jsname); - return 0; - } - function caml_get_global_data(){return caml_global_data;} - function caml_int64_shift_right_unsigned(x, s){return x.shift_right_unsigned(s); - } - function caml_ba_uint8_get16(ba, i0){ - var ofs = ba.offset(i0); - if(ofs + 1 >= ba.data.length) caml_array_bound_error(); - var b1 = ba.get(ofs), b2 = ba.get(ofs + 1); - return b1 | b2 << 8; - } - function caml_compare(a, b){return caml_compare_val(a, b, true);} - var - caml_MD5Transform = - function(){ - function add(x, y){return x + y | 0;} - function xx(q, a, b, x, s, t){ - a = add(add(a, q), add(x, t)); - return add(a << s | a >>> 32 - s, b); - } - function ff(a, b, c, d, x, s, t){ - return xx(b & c | ~ b & d, a, b, x, s, t); - } - function gg(a, b, c, d, x, s, t){ - return xx(b & d | c & ~ d, a, b, x, s, t); - } - function hh(a, b, c, d, x, s, t){return xx(b ^ c ^ d, a, b, x, s, t);} - function ii(a, b, c, d, x, s, t){ - return xx(c ^ (b | ~ d), a, b, x, s, t); - } - return function(w, buffer){ - var a = w[0], b = w[1], c = w[2], d = w[3]; - a = ff(a, b, c, d, buffer[0], 7, 0xD76AA478); - d = ff(d, a, b, c, buffer[1], 12, 0xE8C7B756); - c = ff(c, d, a, b, buffer[2], 17, 0x242070DB); - b = ff(b, c, d, a, buffer[3], 22, 0xC1BDCEEE); - a = ff(a, b, c, d, buffer[4], 7, 0xF57C0FAF); - d = ff(d, a, b, c, buffer[5], 12, 0x4787C62A); - c = ff(c, d, a, b, buffer[6], 17, 0xA8304613); - b = ff(b, c, d, a, buffer[7], 22, 0xFD469501); - a = ff(a, b, c, d, buffer[8], 7, 0x698098D8); - d = ff(d, a, b, c, buffer[9], 12, 0x8B44F7AF); - c = ff(c, d, a, b, buffer[10], 17, 0xFFFF5BB1); - b = ff(b, c, d, a, buffer[11], 22, 0x895CD7BE); - a = ff(a, b, c, d, buffer[12], 7, 0x6B901122); - d = ff(d, a, b, c, buffer[13], 12, 0xFD987193); - c = ff(c, d, a, b, buffer[14], 17, 0xA679438E); - b = ff(b, c, d, a, buffer[15], 22, 0x49B40821); - a = gg(a, b, c, d, buffer[1], 5, 0xF61E2562); - d = gg(d, a, b, c, buffer[6], 9, 0xC040B340); - c = gg(c, d, a, b, buffer[11], 14, 0x265E5A51); - b = gg(b, c, d, a, buffer[0], 20, 0xE9B6C7AA); - a = gg(a, b, c, d, buffer[5], 5, 0xD62F105D); - d = gg(d, a, b, c, buffer[10], 9, 0x02441453); - c = gg(c, d, a, b, buffer[15], 14, 0xD8A1E681); - b = gg(b, c, d, a, buffer[4], 20, 0xE7D3FBC8); - a = gg(a, b, c, d, buffer[9], 5, 0x21E1CDE6); - d = gg(d, a, b, c, buffer[14], 9, 0xC33707D6); - c = gg(c, d, a, b, buffer[3], 14, 0xF4D50D87); - b = gg(b, c, d, a, buffer[8], 20, 0x455A14ED); - a = gg(a, b, c, d, buffer[13], 5, 0xA9E3E905); - d = gg(d, a, b, c, buffer[2], 9, 0xFCEFA3F8); - c = gg(c, d, a, b, buffer[7], 14, 0x676F02D9); - b = gg(b, c, d, a, buffer[12], 20, 0x8D2A4C8A); - a = hh(a, b, c, d, buffer[5], 4, 0xFFFA3942); - d = hh(d, a, b, c, buffer[8], 11, 0x8771F681); - c = hh(c, d, a, b, buffer[11], 16, 0x6D9D6122); - b = hh(b, c, d, a, buffer[14], 23, 0xFDE5380C); - a = hh(a, b, c, d, buffer[1], 4, 0xA4BEEA44); - d = hh(d, a, b, c, buffer[4], 11, 0x4BDECFA9); - c = hh(c, d, a, b, buffer[7], 16, 0xF6BB4B60); - b = hh(b, c, d, a, buffer[10], 23, 0xBEBFBC70); - a = hh(a, b, c, d, buffer[13], 4, 0x289B7EC6); - d = hh(d, a, b, c, buffer[0], 11, 0xEAA127FA); - c = hh(c, d, a, b, buffer[3], 16, 0xD4EF3085); - b = hh(b, c, d, a, buffer[6], 23, 0x04881D05); - a = hh(a, b, c, d, buffer[9], 4, 0xD9D4D039); - d = hh(d, a, b, c, buffer[12], 11, 0xE6DB99E5); - c = hh(c, d, a, b, buffer[15], 16, 0x1FA27CF8); - b = hh(b, c, d, a, buffer[2], 23, 0xC4AC5665); - a = ii(a, b, c, d, buffer[0], 6, 0xF4292244); - d = ii(d, a, b, c, buffer[7], 10, 0x432AFF97); - c = ii(c, d, a, b, buffer[14], 15, 0xAB9423A7); - b = ii(b, c, d, a, buffer[5], 21, 0xFC93A039); - a = ii(a, b, c, d, buffer[12], 6, 0x655B59C3); - d = ii(d, a, b, c, buffer[3], 10, 0x8F0CCC92); - c = ii(c, d, a, b, buffer[10], 15, 0xFFEFF47D); - b = ii(b, c, d, a, buffer[1], 21, 0x85845DD1); - a = ii(a, b, c, d, buffer[8], 6, 0x6FA87E4F); - d = ii(d, a, b, c, buffer[15], 10, 0xFE2CE6E0); - c = ii(c, d, a, b, buffer[6], 15, 0xA3014314); - b = ii(b, c, d, a, buffer[13], 21, 0x4E0811A1); - a = ii(a, b, c, d, buffer[4], 6, 0xF7537E82); - d = ii(d, a, b, c, buffer[11], 10, 0xBD3AF235); - c = ii(c, d, a, b, buffer[2], 15, 0x2AD7D2BB); - b = ii(b, c, d, a, buffer[9], 21, 0xEB86D391); - w[0] = add(a, w[0]); - w[1] = add(b, w[1]); - w[2] = add(c, w[2]); - w[3] = add(d, w[3]);}; - } - (); - function caml_MD5Update(ctx, input, input_len){ - var in_buf = ctx.len & 0x3f, input_pos = 0; - ctx.len += input_len; - if(in_buf){ - var missing = 64 - in_buf; - if(input_len < missing){ - ctx.b8.set(input.subarray(0, input_len), in_buf); - return; - } - ctx.b8.set(input.subarray(0, missing), in_buf); - caml_MD5Transform(ctx.w, ctx.b32); - input_len -= missing; - input_pos += missing; - } - while(input_len >= 64){ - ctx.b8.set(input.subarray(input_pos, input_pos + 64), 0); - caml_MD5Transform(ctx.w, ctx.b32); - input_len -= 64; - input_pos += 64; - } - if(input_len) - ctx.b8.set(input.subarray(input_pos, input_pos + input_len), 0); - } - function caml_runtime_events_read_poll(cursor, callbacks, num){return 0;} - function caml_fresh_oo_id(){return caml_oo_last_id++;} - function caml_int64_to_float(x){return x.toFloat();} - function caml_ba_get_1(ba, i0){return ba.get(ba.offset(i0));} - function caml_bigstring_memcmp(s1, pos1, s2, pos2, len){ - for(var i = 0; i < len; i++){ - var a = caml_ba_get_1(s1, pos1 + i), b = caml_ba_get_1(s2, pos2 + i); - if(a < b) return - 1; - if(a > b) return 1; - } - return 0; - } - function caml_new_string(s){return caml_string_of_jsbytes(s);} - function caml_erf_float(x){ - var - a1 = 0.254829592, - a2 = - 0.284496736, - a3 = 1.421413741, - a4 = - 1.453152027, - a5 = 1.061405429, - p = 0.3275911, - sign = 1; - if(x < 0) sign = - 1; - x = Math.abs(x); - var - t = 1.0 / (1.0 + p * x), - y = - 1.0 - - - ((((a5 * t + a4) * t + a3) * t + a2) * t + a1) * t - * Math.exp(- (x * x)); - return sign * y; - } - function caml_ba_uint8_get32(ba, i0){ - var ofs = ba.offset(i0); - if(ofs + 3 >= ba.data.length) caml_array_bound_error(); - var - b1 = ba.get(ofs + 0), - b2 = ba.get(ofs + 1), - b3 = ba.get(ofs + 2), - b4 = ba.get(ofs + 3); - return b1 << 0 | b2 << 8 | b3 << 16 | b4 << 24; - } - function caml_raw_backtrace_length(){return 0;} - function caml_str_initialize(unit){return 0;} - function caml_obj_block(tag, size){ - var o = new Array(size + 1); - o[0] = tag; - for(var i = 1; i <= size; i++) o[i] = 0; - return o; - } - function caml_gr_clear_graph(){ - var s = caml_gr_state_get(); - s.canvas.width = s.width; - s.canvas.height = s.height; - return 0; - } - function bigstring_to_array_buffer(bs){return bs.data.buffer;} - function caml_sys_const_naked_pointers_checked(_unit){return 0;} - function lxor_digit_nat(nat1, ofs1, nat2, ofs2){nat1.data[ofs1] ^= nat2.data[ofs2]; return 0; - } - function caml_obj_add_offset(v, offset){ - caml_failwith("Obj.add_offset is not supported"); - } - function caml_final_release(){return 0;} - var caml_marshal_header_size = 20; - function caml_js_to_array(a){ - var len = a.length, b = new Array(len + 1); - b[0] = 0; - for(var i = 0; i < len; i++) b[i + 1] = a[i]; - return b; - } - function caml_sys_is_regular_file(name){ - var root = resolve_fs_device(name); - return root.device.isFile(root.rest); - } - function caml_gr_plot(x, y){ - var - s = caml_gr_state_get(), - im = s.context.createImageData(1, 1), - d = im.data, - color = s.color; - d[0] = color >> 16 & 0xff; - d[1] = color >> 8 & 0xff, d[2] = color >> 0 & 0xff; - d[3] = 0xFF; - s.x = x; - s.y = y; - s.context.putImageData(im, x, s.height - y); - return 0; - } - function caml_bytes_set64(s, i, i64){ - if(i >>> 0 >= s.l - 7) caml_bytes_bound_error(); - var a = caml_int64_to_bytes(i64); - for(var j = 0; j < 8; j++) caml_bytes_unsafe_set(s, i + 7 - j, a[j]); - return 0; - } - function caml_string_set16(s, i, i16){caml_failwith("caml_string_set16");} - function caml_int64_bswap(x){ - var y = caml_int64_to_bytes(x); - return caml_int64_of_bytes - ([y[7], y[6], y[5], y[4], y[3], y[2], y[1], y[0]]); - } - function caml_gc_major(unit){ - if(typeof globalThis.gc == "function") globalThis.gc(); - return 0; - } - function caml_lex_array(s){ - s = caml_jsbytes_of_string(s); - var l = s.length / 2, a = new Array(l); - for(var i = 0; i < l; i++) - a[i] = (s.charCodeAt(2 * i) | s.charCodeAt(2 * i + 1) << 8) << 16 >> 16; - return a; - } - function caml_lex_engine(tbl, start_state, lexbuf){ - var - lex_buffer = 2, - lex_buffer_len = 3, - lex_start_pos = 5, - lex_curr_pos = 6, - lex_last_pos = 7, - lex_last_action = 8, - lex_eof_reached = 9, - lex_base = 1, - lex_backtrk = 2, - lex_default = 3, - lex_trans = 4, - lex_check = 5; - if(! tbl.lex_default){ - tbl.lex_base = caml_lex_array(tbl[lex_base]); - tbl.lex_backtrk = caml_lex_array(tbl[lex_backtrk]); - tbl.lex_check = caml_lex_array(tbl[lex_check]); - tbl.lex_trans = caml_lex_array(tbl[lex_trans]); - tbl.lex_default = caml_lex_array(tbl[lex_default]); - } - var - c, - state = start_state, - buffer = caml_uint8_array_of_bytes(lexbuf[lex_buffer]); - if(state >= 0){ - lexbuf[lex_last_pos] = lexbuf[lex_start_pos] = lexbuf[lex_curr_pos]; - lexbuf[lex_last_action] = - 1; - } - else - state = - state - 1; - for(;;){ - var base = tbl.lex_base[state]; - if(base < 0) return - base - 1; - var backtrk = tbl.lex_backtrk[state]; - if(backtrk >= 0){ - lexbuf[lex_last_pos] = lexbuf[lex_curr_pos]; - lexbuf[lex_last_action] = backtrk; - } - if(lexbuf[lex_curr_pos] >= lexbuf[lex_buffer_len]) - if(lexbuf[lex_eof_reached] == 0) return - state - 1; else c = 256; - else{c = buffer[lexbuf[lex_curr_pos]]; lexbuf[lex_curr_pos]++;} - if(tbl.lex_check[base + c] == state) - state = tbl.lex_trans[base + c]; - else - state = tbl.lex_default[state]; - if(state < 0){ - lexbuf[lex_curr_pos] = lexbuf[lex_last_pos]; - if(lexbuf[lex_last_action] == - 1) - caml_failwith("lexing: empty token"); - else - return lexbuf[lex_last_action]; - } - else if(c == 256) lexbuf[lex_eof_reached] = 0; - } - } - function caml_sys_file_exists(name){ - var root = resolve_fs_device(name); - return root.device.exists(root.rest); - } - function caml_convert_raw_backtrace_slot(){ - caml_failwith("caml_convert_raw_backtrace_slot"); - } - function caml_array_sub(a, i, len){ - var a2 = new Array(len + 1); - a2[0] = 0; - for(var i2 = 1, i1 = i + 1; i2 <= len; i2++, i1++) a2[i2] = a[i1]; - return a2; - } - function caml_bytes_equal(s1, s2){ - if(s1 === s2) return 1; - s1.t & 6 && caml_convert_string_to_bytes(s1); - s2.t & 6 && caml_convert_string_to_bytes(s2); - return s1.c == s2.c ? 1 : 0; - } - function caml_gr_size_x(){var s = caml_gr_state_get(); return s.width;} - function caml_ml_debug_info_status(){return 0;} - function caml_atomic_fetch_add(ref, i){ - var old = ref[1]; - ref[1] += i; - return old; - } - var - os_type = - globalThis.process && globalThis.process.platform - && globalThis.process.platform == "win32" - ? "Cygwin" - : "Unix"; - function caml_sys_const_ostype_cygwin(){return os_type == "Cygwin" ? 1 : 0; - } - function caml_cosh_float(x){return Math.cosh(x);} - function MlMutex(){this.locked = false;} - function caml_ml_mutex_new(unit){return new MlMutex();} - var caml_ephe_key_offset = 3; - function caml_ephe_check_key(x, i){ - var weak = x[caml_ephe_key_offset + i]; - if(globalThis.WeakRef && weak instanceof globalThis.WeakRef) - weak = weak.deref(); - return weak === undefined ? 0 : 1; - } - function caml_hash_mix_final(h){ - h ^= h >>> 16; - h = caml_mul(h, 0x85ebca6b | 0); - h ^= h >>> 13; - h = caml_mul(h, 0xc2b2ae35 | 0); - h ^= h >>> 16; - return h; - } - function caml_gr_text_size(txt){ - var - s = caml_gr_state_get(), - w = s.context.measureText(caml_jsstring_of_string(txt)).width; - return [0, w, s.text_size]; - } - function caml_lex_run_mem(s, i, mem, curr_pos){ - for(;;){ - var dst = s.charCodeAt(i); - i++; - if(dst == 0xff) return; - var src = s.charCodeAt(i); - i++; - if(src == 0xff) - mem[dst + 1] = curr_pos; - else - mem[dst + 1] = mem[src + 1]; - } - } - function caml_lex_run_tag(s, i, mem){ - for(;;){ - var dst = s.charCodeAt(i); - i++; - if(dst == 0xff) return; - var src = s.charCodeAt(i); - i++; - if(src == 0xff) mem[dst + 1] = - 1; else mem[dst + 1] = mem[src + 1]; - } - } - function caml_new_lex_engine(tbl, start_state, lexbuf){ - var - lex_buffer = 2, - lex_buffer_len = 3, - lex_start_pos = 5, - lex_curr_pos = 6, - lex_last_pos = 7, - lex_last_action = 8, - lex_eof_reached = 9, - lex_mem = 10, - lex_base = 1, - lex_backtrk = 2, - lex_default = 3, - lex_trans = 4, - lex_check = 5, - lex_base_code = 6, - lex_backtrk_code = 7, - lex_default_code = 8, - lex_trans_code = 9, - lex_check_code = 10, - lex_code = 11; - if(! tbl.lex_default){ - tbl.lex_base = caml_lex_array(tbl[lex_base]); - tbl.lex_backtrk = caml_lex_array(tbl[lex_backtrk]); - tbl.lex_check = caml_lex_array(tbl[lex_check]); - tbl.lex_trans = caml_lex_array(tbl[lex_trans]); - tbl.lex_default = caml_lex_array(tbl[lex_default]); - } - if(! tbl.lex_default_code){ - tbl.lex_base_code = caml_lex_array(tbl[lex_base_code]); - tbl.lex_backtrk_code = caml_lex_array(tbl[lex_backtrk_code]); - tbl.lex_check_code = caml_lex_array(tbl[lex_check_code]); - tbl.lex_trans_code = caml_lex_array(tbl[lex_trans_code]); - tbl.lex_default_code = caml_lex_array(tbl[lex_default_code]); - } - if(tbl.lex_code == null) - tbl.lex_code = caml_jsbytes_of_string(tbl[lex_code]); - var - c, - state = start_state, - buffer = caml_uint8_array_of_bytes(lexbuf[lex_buffer]); - if(state >= 0){ - lexbuf[lex_last_pos] = lexbuf[lex_start_pos] = lexbuf[lex_curr_pos]; - lexbuf[lex_last_action] = - 1; - } - else - state = - state - 1; - for(;;){ - var base = tbl.lex_base[state]; - if(base < 0){ - var pc_off = tbl.lex_base_code[state]; - caml_lex_run_tag(tbl.lex_code, pc_off, lexbuf[lex_mem]); - return - base - 1; - } - var backtrk = tbl.lex_backtrk[state]; - if(backtrk >= 0){ - var pc_off = tbl.lex_backtrk_code[state]; - caml_lex_run_tag(tbl.lex_code, pc_off, lexbuf[lex_mem]); - lexbuf[lex_last_pos] = lexbuf[lex_curr_pos]; - lexbuf[lex_last_action] = backtrk; - } - if(lexbuf[lex_curr_pos] >= lexbuf[lex_buffer_len]) - if(lexbuf[lex_eof_reached] == 0) return - state - 1; else c = 256; - else{c = buffer[lexbuf[lex_curr_pos]]; lexbuf[lex_curr_pos]++;} - var pstate = state; - if(tbl.lex_check[base + c] == state) - state = tbl.lex_trans[base + c]; - else - state = tbl.lex_default[state]; - if(state < 0){ - lexbuf[lex_curr_pos] = lexbuf[lex_last_pos]; - if(lexbuf[lex_last_action] == - 1) - caml_failwith("lexing: empty token"); - else - return lexbuf[lex_last_action]; - } - else{ - var base_code = tbl.lex_base_code[pstate], pc_off; - if(tbl.lex_check_code[base_code + c] == pstate) - pc_off = tbl.lex_trans_code[base_code + c]; - else - pc_off = tbl.lex_default_code[pstate]; - if(pc_off > 0) - caml_lex_run_mem - (tbl.lex_code, pc_off, lexbuf[lex_mem], lexbuf[lex_curr_pos]); - if(c == 256) lexbuf[lex_eof_reached] = 0; - } - } - } - function caml_ba_uint8_set64(ba, i0, v){ - var ofs = ba.offset(i0); - if(ofs + 7 >= ba.data.length) caml_array_bound_error(); - var v = caml_int64_to_bytes(v); - for(var i = 0; i < 8; i++) ba.set(ofs + i, v[7 - i]); - return 0; - } - function caml_sys_executable_name(a){return caml_executable_name;} - function caml_lessequal(x, y){ - return + (caml_compare_val(x, y, false) <= 0); - } - function caml_acosh_float(x){return Math.acosh(x);} - function caml_MD5Init(){ - var - buffer = new ArrayBuffer(64), - b32 = new Uint32Array(buffer), - b8 = new Uint8Array(buffer); - return {len: 0, - w: - new Uint32Array([0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476]), - b32: b32, - b8: b8}; - } - function caml_ml_flush(chanid){ - var chan = caml_ml_channels[chanid]; - if(! chan.opened) caml_raise_sys_error("Cannot flush a closed channel"); - if(! chan.buffer || chan.buffer_curr == 0) return 0; - if(chan.output) - chan.output(caml_subarray_to_jsbytes(chan.buffer, 0, chan.buffer_curr)); - else - chan.file.write(chan.offset, chan.buffer, 0, chan.buffer_curr); - chan.offset += chan.buffer_curr; - chan.buffer_curr = 0; - return 0; - } - function caml_seek_out(chanid, pos){ - caml_ml_flush(chanid); - var chan = caml_ml_channels[chanid]; - chan.offset = pos; - return 0; - } - function caml_ml_seek_out_64(chanid, pos){ - var pos = caml_int64_to_float(pos); - return caml_seek_out(chanid, pos); - } - function compare_nat_real(nat1, nat2){ - return compare_nat(nat1, 0, nat1.data.length, nat2, 0, nat2.data.length); - } - function caml_gc_set(_control){return 0;} - function caml_js_get(o, f){return o[f];} - function caml_unix_isatty(fileDescriptor){ - if(fs_node_supported()){ - var tty = require("tty"); - return tty.isatty(fileDescriptor) ? 1 : 0; - } - else - return 0; - } - function caml_ml_set_buffered(chanid, v){ - caml_ml_channels[chanid].buffered = v; - if(! v) caml_ml_flush(chanid); - return 0; - } - function caml_gc_compaction(){return 0;} - function caml_ephe_get_key(x, i){ - if(i < 0 || caml_ephe_key_offset + i >= x.length) - caml_invalid_argument("Weak.get_key"); - var weak = x[caml_ephe_key_offset + i]; - if(globalThis.WeakRef && weak instanceof globalThis.WeakRef) - weak = weak.deref(); - return weak === undefined ? 0 : [0, weak]; - } - function caml_unix_localtime(t){ - var - d = new Date(t * 1000), - d_num = d.getTime(), - januaryfirst = new Date(d.getFullYear(), 0, 1).getTime(), - doy = Math.floor((d_num - januaryfirst) / 86400000), - jan = new Date(d.getFullYear(), 0, 1), - jul = new Date(d.getFullYear(), 6, 1), - stdTimezoneOffset = - Math.max(jan.getTimezoneOffset(), jul.getTimezoneOffset()); - return [0, - d.getSeconds(), - d.getMinutes(), - d.getHours(), - d.getDate(), - d.getMonth(), - d.getFullYear() - 1900, - d.getDay(), - doy, - d.getTimezoneOffset() < stdTimezoneOffset | 0]; - } - function caml_unix_mktime(tm){ - var - d = new Date(tm[6] + 1900, tm[5], tm[4], tm[3], tm[2], tm[1]).getTime(), - t = Math.floor(d / 1000), - tm2 = caml_unix_localtime(t); - return [0, t, tm2]; - } - function caml_bigstring_blit_bytes_to_ba(str1, pos1, ba2, pos2, len){ - if(12 != ba2.kind) - caml_invalid_argument("caml_bigstring_blit_string_to_ba: kind mismatch"); - if(len == 0) return 0; - var ofs2 = ba2.offset(pos2); - if(pos1 + len > caml_ml_bytes_length(str1)) caml_array_bound_error(); - if(ofs2 + len > ba2.data.length) caml_array_bound_error(); - var slice = caml_uint8_array_of_bytes(str1).slice(pos1, pos1 + len); - ba2.data.set(slice, ofs2); - return 0; - } - var caml_sys_fds = new Array(3); - function caml_sys_close(fd){ - var file = caml_sys_fds[fd]; - if(file) file.close(); - delete caml_sys_fds[fd]; - return 0; - } - function caml_ml_close_channel(chanid){ - var chan = caml_ml_channels[chanid]; - chan.opened = false; - caml_sys_close(chan.fd); - return 0; - } - function caml_atomic_exchange(ref, v){ - var r = ref[1]; - ref[1] = v; - return r; - } - function caml_sys_isatty(_chan){return 0;} - function is_digit_zero(nat, ofs){ - if(nat.data[ofs] == 0) return 1; - return 0; - } - function caml_unix_lstat(name){ - var root = resolve_fs_device(name); - if(! root.device.lstat) caml_failwith("caml_unix_lstat: not implemented"); - return root.device.lstat(root.rest, true); - } - function caml_unix_lstat_64(name){ - var r = caml_unix_lstat(name); - r[9] = caml_int64_of_int32(r[9]); - } - function caml_js_set(o, f, v){o[f] = v; return 0;} - function caml_array_get(array, index){ - if(index < 0 || index >= array.length - 1) caml_array_bound_error(); - return array[index + 1]; - } - function caml_continuation_use_noexc(cont){ - var stack = cont[1]; - cont[1] = 0; - return stack; - } - function caml_unix_rmdir(name){ - var root = resolve_fs_device(name); - if(! root.device.rmdir) caml_failwith("caml_unix_rmdir: not implemented"); - return root.device.rmdir(root.rest, true); - } - function caml_log2_float(x){return Math.log2(x);} - function caml_gc_huge_fallback_count(unit){return 0;} - function caml_runtime_events_resume(){return 0;} - function caml_spacetime_only_works_for_native_code(){ - caml_failwith("Spacetime profiling only works for native code"); - } - function caml_int64_sub(x, y){return x.sub(y);} - function caml_seek_in(chanid, pos){ - var chan = caml_ml_channels[chanid]; - if(chan.refill != null) caml_raise_sys_error("Illegal seek"); - if - (pos >= chan.offset - chan.buffer_max && pos <= chan.offset - && chan.file.flags.binary) - chan.buffer_curr = chan.buffer_max - (chan.offset - pos); - else{chan.offset = pos; chan.buffer_curr = 0; chan.buffer_max = 0;} - return 0; - } - function caml_ml_seek_in_64(chanid, pos){ - var pos = caml_int64_to_float(pos); - return caml_seek_in(chanid, pos); - } - var caml_domain_id = 0; - function caml_ml_mutex_unlock(t){t.locked = false; return 0;} - var caml_domain_latest_idx = 1; - function caml_domain_spawn(f, mutex){ - var id = caml_domain_latest_idx++, old = caml_domain_id; - caml_domain_id = id; - caml_callback(f, [0]); - caml_domain_id = old; - caml_ml_mutex_unlock(mutex); - return id; - } - function caml_unix_mkdir(name, perm){ - var root = resolve_fs_device(name); - if(! root.device.mkdir) caml_failwith("caml_unix_mkdir: not implemented"); - return root.device.mkdir(root.rest, perm, true); - } - function caml_int64_shift_left(x, s){return x.shift_left(s);} - function caml_notequal(x, y){ - return + (caml_compare_val(x, y, false) != 0); - } - function caml_sys_const_int_size(){return 32;} - function caml_js_wrap_callback(f){ - return function(){ - var len = arguments.length; - if(len > 0){ - var args = new Array(len); - for(var i = 0; i < len; i++) args[i] = arguments[i]; - } - else - args = [undefined]; - var res = caml_callback(f, args); - return res instanceof Function ? caml_js_wrap_callback(res) : res;}; - } - function caml_js_wrap_meth_callback(f){ - return function(){ - var len = arguments.length, args = new Array(len + 1); - args[0] = this; - for(var i = 0; i < len; i++) args[i + 1] = arguments[i]; - var res = caml_callback(f, args); - return res instanceof Function ? caml_js_wrap_callback(res) : res;}; - } - function caml_is_js(){return 1;} - function caml_lazy_update_to_forward(o){ - caml_obj_update_tag(o, 244, 250); - return 0; - } - function caml_ba_dim(ba, i){ - if(i < 0 || i >= ba.dims.length) caml_invalid_argument("Bigarray.dim"); - return ba.dims[i]; - } - function caml_ba_dim_1(ba){return caml_ba_dim(ba, 0);} - function caml_js_meth_call(o, f, args){ - return o[caml_jsstring_of_string(f)].apply(o, caml_js_from_array(args)); - } - var caml_ephe_data_offset = 2; - function caml_weak_create(n){ - if(n < 0) caml_invalid_argument("Weak.create"); - var x = [251, "caml_ephe_list_head"]; - x.length = caml_ephe_key_offset + n; - return x; - } - function caml_ephe_create(n){var x = caml_weak_create(n); return x;} - function caml_js_to_byte_string(s){return caml_string_of_jsbytes(s);} - function caml_trampoline(res){ - var c = 1; - while(res && res.joo_tramp){ - res = res.joo_tramp.apply(null, res.joo_args); - c++; - } - return res; - } - function caml_maybe_print_stats(unit){return 0;} - function caml_bytes_unsafe_get(s, i){ - switch(s.t & 6){ - default: if(i >= s.c.length) return 0; - case 0: - return s.c.charCodeAt(i); - case 4: - return s.c[i]; - } - } - function caml_bytes_get64(s, i){ - if(i >>> 0 >= s.l - 7) caml_bytes_bound_error(); - var a = new Array(8); - for(var j = 0; j < 8; j++) a[7 - j] = caml_bytes_unsafe_get(s, i + j); - return caml_int64_of_bytes(a); - } - var caml_custom_event_index = 0; - function caml_runtime_events_user_register - (event_name, event_tag, event_type){ - caml_custom_event_index += 1; - return [0, caml_custom_event_index, event_name, event_type, event_tag]; - } - function caml_unix_has_symlink(unit){return fs_node_supported() ? 1 : 0;} - function caml_ephe_set_key(x, i, v){ - if(i < 0 || caml_ephe_key_offset + i >= x.length) - caml_invalid_argument("Weak.set"); - if(v instanceof Object && globalThis.WeakRef){ - if(x[1].register) x[1].register(v, undefined, v); - x[caml_ephe_key_offset + i] = new globalThis.WeakRef(v); - } - else - x[caml_ephe_key_offset + i] = v; - return 0; - } - function caml_ephe_unset_key(x, i){ - if(i < 0 || caml_ephe_key_offset + i >= x.length) - caml_invalid_argument("Weak.set"); - if - (globalThis.WeakRef - && x[caml_ephe_key_offset + i] instanceof globalThis.WeakRef - && x[1].unregister){ - var old = x[caml_ephe_key_offset + i].deref(); - if(old !== undefined){ - var count = 0; - for(var j = caml_ephe_key_offset; j < x.length; j++){ - var key = x[j]; - if(key instanceof globalThis.WeakRef){ - key = key.deref(); - if(key === old) count++; - } - } - if(count == 1) x[1].unregister(old); - } - } - x[caml_ephe_key_offset + i] = undefined; - return 0; - } - function caml_weak_set(x, i, v){ - if(v == 0) caml_ephe_unset_key(x, i); else caml_ephe_set_key(x, i, v[1]); - return 0; - } - function caml_sys_remove(name){ - var root = resolve_fs_device(name), ok = root.device.unlink(root.rest); - if(ok == 0) caml_raise_no_such_file(caml_jsbytes_of_string(name)); - return 0; - } - function caml_string_bound_error(){ - caml_invalid_argument("index out of bounds"); - } - function caml_string_get32(s, i){ - if(i >>> 0 >= caml_ml_string_length(s) - 3) caml_string_bound_error(); - var - b1 = caml_string_unsafe_get(s, i), - b2 = caml_string_unsafe_get(s, i + 1), - b3 = caml_string_unsafe_get(s, i + 2), - b4 = caml_string_unsafe_get(s, i + 3); - return b4 << 24 | b3 << 16 | b2 << 8 | b1; - } - function caml_bytes_get(s, i){ - if(i >>> 0 >= s.l) caml_bytes_bound_error(); - return caml_bytes_unsafe_get(s, i); - } - function caml_hypot_float(x, y){return Math.hypot(x, y);} - function caml_js_call(f, o, args){ - return f.apply(o, caml_js_from_array(args)); - } - function caml_sys_const_max_wosize(){return 0x7FFFFFFF / 4 | 0;} - function caml_unix_inet_addr_of_string(){return 0;} - function caml_hash_mix_bytes_arr(h, s){ - var len = s.length, i, w; - for(i = 0; i + 4 <= len; i += 4){ - w = s[i] | s[i + 1] << 8 | s[i + 2] << 16 | s[i + 3] << 24; - h = caml_hash_mix_int(h, w); - } - w = 0; - switch(len & 3){ - case 3: - w = s[i + 2] << 16; - case 2: - w |= s[i + 1] << 8; - case 1: - w |= s[i]; h = caml_hash_mix_int(h, w); - } - h ^= len; - return h; - } - function caml_hash_mix_jsbytes(h, s){ - var len = s.length, i, w; - for(i = 0; i + 4 <= len; i += 4){ - w = - s.charCodeAt(i) | s.charCodeAt(i + 1) << 8 | s.charCodeAt(i + 2) << 16 - | s.charCodeAt(i + 3) << 24; - h = caml_hash_mix_int(h, w); - } - w = 0; - switch(len & 3){ - case 3: - w = s.charCodeAt(i + 2) << 16; - case 2: - w |= s.charCodeAt(i + 1) << 8; - case 1: - w |= s.charCodeAt(i); h = caml_hash_mix_int(h, w); - } - h ^= len; - return h; - } - function caml_ml_bytes_content(s){ - switch(s.t & 6){ - default: caml_convert_string_to_bytes(s); - case 0: - return s.c; - case 4: - return s.c; - } - } - function caml_hash_mix_bytes(h, v){ - var content = caml_ml_bytes_content(v); - return typeof content === "string" - ? caml_hash_mix_jsbytes(h, content) - : caml_hash_mix_bytes_arr(h, content); - } - function caml_bytes_lessthan(s1, s2){ - s1.t & 6 && caml_convert_string_to_bytes(s1); - s2.t & 6 && caml_convert_string_to_bytes(s2); - return s1.c < s2.c ? 1 : 0; - } - function caml_erfc_float(x){return 1 - caml_erf_float(x);} - function caml_gr_fill_poly(ar){ - var s = caml_gr_state_get(); - s.context.beginPath(); - s.context.moveTo(ar[1][1], s.height - ar[1][2]); - for(var i = 2; i < ar.length; i++) - s.context.lineTo(ar[i][1], s.height - ar[i][2]); - s.context.lineTo(ar[1][1], s.height - ar[1][2]); - s.context.fill(); - return 0; - } - function caml_gc_quick_stat(){ - return [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; - } - function caml_ml_input_char(chanid){ - var chan = caml_ml_channels[chanid]; - if(chan.buffer_curr >= chan.buffer_max){ - chan.buffer_curr = 0; - chan.buffer_max = 0; - caml_refill(chan); - } - if(chan.buffer_curr >= chan.buffer_max) caml_raise_end_of_file(); - var res = chan.buffer[chan.buffer_curr]; - chan.buffer_curr++; - return res; - } - function caml_ml_input_int(chanid){ - var chan = caml_ml_channels[chanid], res = 0; - for(var i = 0; i < 4; i++) - res = (res << 8) + caml_ml_input_char(chanid) | 0; - return res | 0; - } - function caml_gr_display_mode(){ - caml_failwith("caml_gr_display_mode not Implemented"); - } - function caml_obj_reachable_words(o){return 0;} - function nth_digit_nat(nat, ofs){return nat.data[ofs];} - function caml_array_blit(a1, i1, a2, i2, len){ - if(i2 <= i1) - for(var j = 1; j <= len; j++) a2[i2 + j] = a1[i1 + j]; - else - for(var j = len; j >= 1; j--) a2[i2 + j] = a1[i1 + j]; - return 0; - } - function caml_float_of_string(s){ - var res; - s = caml_jsbytes_of_string(s); - res = + s; - if(s.length > 0 && res === res) return res; - s = s.replace(/_/g, ""); - res = + s; - if(s.length > 0 && res === res || /^[+-]?nan$/i.test(s)) return res; - var m = /^ *([+-]?)0x([0-9a-f]+)\.?([0-9a-f]*)(p([+-]?[0-9]+))?/i.exec(s); - if(m){ - var - m3 = m[3].replace(/0+$/, ""), - mantissa = parseInt(m[1] + m[2] + m3, 16), - exponent = (m[5] | 0) - 4 * m3.length; - res = mantissa * Math.pow(2, exponent); - return res; - } - if(/^\+?inf(inity)?$/i.test(s)) return Infinity; - if(/^-inf(inity)?$/i.test(s)) return - Infinity; - caml_failwith("float_of_string"); - } - function caml_sys_getcwd(){ - return caml_string_of_jsbytes(caml_current_dir); - } - function caml_int64_add(x, y){return x.add(y);} - function caml_int64_mul(x, y){return x.mul(y);} - function caml_int64_ult(x, y){return x.ucompare(y) < 0;} - function caml_parse_sign_and_base(s){ - var i = 0, len = caml_ml_string_length(s), base = 10, sign = 1; - if(len > 0) - switch(caml_string_unsafe_get(s, i)){ - case 45: - i++; sign = - 1; break; - case 43: - i++; sign = 1; break; - } - if(i + 1 < len && caml_string_unsafe_get(s, i) == 48) - switch(caml_string_unsafe_get(s, i + 1)){ - case 120: - case 88: - base = 16; i += 2; break; - case 111: - case 79: - base = 8; i += 2; break; - case 98: - case 66: - base = 2; i += 2; break; - case 117: - case 85: - i += 2; break; - } - return [i, sign, base]; - } - function caml_parse_digit(c){ - if(c >= 48 && c <= 57) return c - 48; - if(c >= 65 && c <= 90) return c - 55; - if(c >= 97 && c <= 122) return c - 87; - return - 1; - } - function caml_int64_of_string(s){ - var - r = caml_parse_sign_and_base(s), - i = r[0], - sign = r[1], - base = r[2], - base64 = caml_int64_of_int32(base), - threshold = - new MlInt64(0xffffff, 0xfffffff, 0xffff).udivmod(base64).quotient, - c = caml_string_unsafe_get(s, i), - d = caml_parse_digit(c); - if(d < 0 || d >= base) caml_failwith("int_of_string"); - var res = caml_int64_of_int32(d); - for(;;){ - i++; - c = caml_string_unsafe_get(s, i); - if(c == 95) continue; - d = caml_parse_digit(c); - if(d < 0 || d >= base) break; - if(caml_int64_ult(threshold, res)) caml_failwith("int_of_string"); - d = caml_int64_of_int32(d); - res = caml_int64_add(caml_int64_mul(base64, res), d); - if(caml_int64_ult(res, d)) caml_failwith("int_of_string"); - } - if(i != caml_ml_string_length(s)) caml_failwith("int_of_string"); - if(base == 10 && caml_int64_ult(new MlInt64(0, 0, 0x8000), res)) - caml_failwith("int_of_string"); - if(sign < 0) res = caml_int64_neg(res); - return res; - } - function caml_ba_set_1(ba, i0, v){ba.set(ba.offset(i0), v); return 0;} - function caml_int64_xor(x, y){return x.xor(y);} - function caml_int64_or(x, y){return x.or(y);} - function caml_lxm_next(v){ - function shift_l(x, k){return caml_int64_shift_left(x, k);} - function shift_r(x, k){return caml_int64_shift_right_unsigned(x, k);} - function or(a, b){return caml_int64_or(a, b);} - function xor(a, b){return caml_int64_xor(a, b);} - function add(a, b){return caml_int64_add(a, b);} - function mul(a, b){return caml_int64_mul(a, b);} - function rotl(x, k){return or(shift_l(x, k), shift_r(x, 64 - k));} - function get(a, i){return caml_ba_get_1(a, i);} - function set(a, i, x){return caml_ba_set_1(a, i, x);} - var - M = caml_int64_of_string(caml_new_string("0xd1342543de82ef95")), - daba = caml_int64_of_string(caml_new_string("0xdaba0b6eb09322e3")), - z, - q0, - q1, - st = v, - a = get(st, 0), - s = get(st, 1), - x0 = get(st, 2), - x1 = get(st, 3); - z = add(s, x0); - z = mul(xor(z, shift_r(z, 32)), daba); - z = mul(xor(z, shift_r(z, 32)), daba); - z = xor(z, shift_r(z, 32)); - set(st, 1, add(mul(s, M), a)); - var q0 = x0, q1 = x1; - q1 = xor(q1, q0); - q0 = rotl(q0, 24); - q0 = xor(xor(q0, q1), shift_l(q1, 16)); - q1 = rotl(q1, 37); - set(st, 2, q0); - set(st, 3, q1); - return z; - } - function caml_sys_const_big_endian(){return 0;} - function caml_list_to_js_array(l){ - var a = []; - for(; l !== 0; l = l[2]) a.push(l[1]); - return a; - } - var - caml_output_val = - function(){ - function Writer(){this.chunk = [];} - Writer.prototype = - {chunk_idx: 20, - block_len: 0, - obj_counter: 0, - size_32: 0, - size_64: 0, - write: - function(size, value){ - for(var i = size - 8; i >= 0; i -= 8) - this.chunk[this.chunk_idx++] = value >> i & 0xFF; - }, - write_at: - function(pos, size, value){ - var pos = pos; - for(var i = size - 8; i >= 0; i -= 8) - this.chunk[pos++] = value >> i & 0xFF; - }, - write_code: - function(size, code, value){ - this.chunk[this.chunk_idx++] = code; - for(var i = size - 8; i >= 0; i -= 8) - this.chunk[this.chunk_idx++] = value >> i & 0xFF; - }, - write_shared: - function(offset){ - if(offset < 1 << 8) - this.write_code(8, 0x04, offset); - else if(offset < 1 << 16) - this.write_code(16, 0x05, offset); - else - this.write_code(32, 0x06, offset); - }, - pos: function(){return this.chunk_idx;}, - finalize: - function(){ - this.block_len = this.chunk_idx - 20; - this.chunk_idx = 0; - this.write(32, 0x8495A6BE); - this.write(32, this.block_len); - this.write(32, this.obj_counter); - this.write(32, this.size_32); - this.write(32, this.size_64); - return this.chunk; - }}; - return function(v, flags){ - flags = caml_list_to_js_array(flags); - var - no_sharing = flags.indexOf(0) !== - 1, - closures = flags.indexOf(1) !== - 1; - if(closures) - console.warn - ("in caml_output_val: flag Marshal.Closures is not supported."); - var - writer = new Writer(), - stack = [], - intern_obj_table = no_sharing ? null : new MlObjectTable(); - function memo(v){ - if(no_sharing) return false; - var existing_offset = intern_obj_table.recall(v); - if(existing_offset){ - writer.write_shared(existing_offset); - return true; - } - else{intern_obj_table.store(v); return false;} - } - function extern_rec(v){ - if(v.caml_custom){ - if(memo(v)) return; - var - name = v.caml_custom, - ops = caml_custom_ops[name], - sz_32_64 = [0, 0]; - if(! ops.serialize) - caml_invalid_argument("output_value: abstract value (Custom)"); - if(ops.fixed_length == undefined){ - writer.write(8, 0x18); - for(var i = 0; i < name.length; i++) - writer.write(8, name.charCodeAt(i)); - writer.write(8, 0); - var header_pos = writer.pos(); - for(var i = 0; i < 12; i++) writer.write(8, 0); - ops.serialize(writer, v, sz_32_64); - writer.write_at(header_pos, 32, sz_32_64[0]); - writer.write_at(header_pos + 4, 32, 0); - writer.write_at(header_pos + 8, 32, sz_32_64[1]); - } - else{ - writer.write(8, 0x19); - for(var i = 0; i < name.length; i++) - writer.write(8, name.charCodeAt(i)); - writer.write(8, 0); - var old_pos = writer.pos(); - ops.serialize(writer, v, sz_32_64); - if(ops.fixed_length != writer.pos() - old_pos) - caml_failwith - ("output_value: incorrect fixed sizes specified by " + name); - } - writer.size_32 += 2 + (sz_32_64[0] + 3 >> 2); - writer.size_64 += 2 + (sz_32_64[1] + 7 >> 3); - } - else if(v instanceof Array && v[0] === (v[0] | 0)){ - if(v[0] == 251) - caml_failwith("output_value: abstract value (Abstract)"); - if(caml_is_continuation_tag(v[0])) - caml_invalid_argument("output_value: continuation value"); - if(v.length > 1 && memo(v)) return; - if(v[0] < 16 && v.length - 1 < 8) - writer.write(8, 0x80 + v[0] + (v.length - 1 << 4)); - else - writer.write_code(32, 0x08, v.length - 1 << 10 | v[0]); - writer.size_32 += v.length; - writer.size_64 += v.length; - if(v.length > 1) stack.push(v, 1); - } - else if(caml_is_ml_bytes(v)){ - if(! caml_is_ml_bytes(caml_string_of_jsbytes(""))) - caml_failwith - ("output_value: [Bytes.t] cannot safely be marshaled with [--enable use-js-string]"); - if(memo(v)) return; - var len = caml_ml_bytes_length(v); - if(len < 0x20) - writer.write(8, 0x20 + len); - else if(len < 0x100) - writer.write_code(8, 0x09, len); - else - writer.write_code(32, 0x0A, len); - for(var i = 0; i < len; i++) - writer.write(8, caml_bytes_unsafe_get(v, i)); - writer.size_32 += 1 + ((len + 4) / 4 | 0); - writer.size_64 += 1 + ((len + 8) / 8 | 0); - } - else if(caml_is_ml_string(v)){ - if(memo(v)) return; - var len = caml_ml_string_length(v); - if(len < 0x20) - writer.write(8, 0x20 + len); - else if(len < 0x100) - writer.write_code(8, 0x09, len); - else - writer.write_code(32, 0x0A, len); - for(var i = 0; i < len; i++) - writer.write(8, caml_string_unsafe_get(v, i)); - writer.size_32 += 1 + ((len + 4) / 4 | 0); - writer.size_64 += 1 + ((len + 8) / 8 | 0); - } - else if(v != (v | 0)){ - var type_of_v = typeof v; - caml_failwith("output_value: abstract value (" + type_of_v + ")"); - } - else if(v >= 0 && v < 0x40) - writer.write(8, 0X40 + v); - else if(v >= - (1 << 7) && v < 1 << 7) - writer.write_code(8, 0x00, v); - else if(v >= - (1 << 15) && v < 1 << 15) - writer.write_code(16, 0x01, v); - else - writer.write_code(32, 0x02, v); - } - extern_rec(v); - while(stack.length > 0){ - var i = stack.pop(), v = stack.pop(); - if(i + 1 < v.length) stack.push(v, i + 1); - extern_rec(v[i]); - } - if(intern_obj_table) - writer.obj_counter = intern_obj_table.objs.length; - writer.finalize(); - return writer.chunk;}; - } - (); - function caml_string_of_array(a){ - return caml_string_of_jsbytes(caml_subarray_to_jsbytes(a, 0, a.length)); - } - function caml_output_value_to_string(v, flags){ - return caml_string_of_array(caml_output_val(v, flags)); - } - function caml_raise_not_a_dir(name){ - caml_raise_sys_error(name + ": Not a directory"); - } - function caml_sys_system_command(cmd){ - var cmd = caml_jsstring_of_string(cmd); - if(typeof require != "undefined"){ - var child_process = require("child_process"); - if(child_process && child_process.execSync) - try{child_process.execSync(cmd, {stdio: "inherit"}); return 0;} - catch(e){return 1;} - } - else - return 127; - } - function caml_js_error_of_exception(exn){ - if(exn.js_error) return exn.js_error; - return null; - } - function caml_unix_getuid(unit){ - if(globalThis.process && globalThis.process.getuid) - return globalThis.process.getuid(); - caml_raise_not_found(); - } - function deserialize_nat(reader, sz){ - var len = reader.read32s(), nat = new MlNat(len); - for(var i = 0; i < len; i++) nat.data[i] = reader.read32s(); - sz[0] = len * 4; - return nat; - } - function initialize_nat(){ - caml_custom_ops["_nat"] = - {deserialize: deserialize_nat, - serialize: serialize_nat, - hash: caml_hash_nat}; - } - function caml_bytes_of_utf16_jsstring(s){ - var tag = 9; - if(! jsoo_is_ascii(s)) tag = 8, s = caml_utf8_of_utf16(s); - return new MlBytes(tag, s, s.length); - } - function caml_gr_open_subwindow(a, b, c, d){ - caml_failwith("caml_gr_open_subwindow not Implemented"); - } - function UInt8ArrayReader(s, i){this.s = s; this.i = i;} - UInt8ArrayReader.prototype = - {read8u: function(){return this.s[this.i++];}, - read8s: function(){return this.s[this.i++] << 24 >> 24;}, - read16u: - function(){ - var s = this.s, i = this.i; - this.i = i + 2; - return s[i] << 8 | s[i + 1]; - }, - read16s: - function(){ - var s = this.s, i = this.i; - this.i = i + 2; - return s[i] << 24 >> 16 | s[i + 1]; - }, - read32u: - function(){ - var s = this.s, i = this.i; - this.i = i + 4; - return (s[i] << 24 | s[i + 1] << 16 | s[i + 2] << 8 | s[i + 3]) >>> 0; - }, - read32s: - function(){ - var s = this.s, i = this.i; - this.i = i + 4; - return s[i] << 24 | s[i + 1] << 16 | s[i + 2] << 8 | s[i + 3]; - }, - readstr: - function(len){ - var i = this.i; - this.i = i + len; - return caml_string_of_array(this.s.subarray(i, i + len)); - }, - readuint8array: - function(len){ - var i = this.i; - this.i = i + len; - return this.s.subarray(i, i + len); - }}; - function caml_marshal_data_size(s, ofs){ - var r = new UInt8ArrayReader(caml_uint8_array_of_bytes(s), ofs); - function readvlq(overflow){ - var c = r.read8u(), n = c & 0x7F; - while((c & 0x80) != 0){ - c = r.read8u(); - var n7 = n << 7; - if(n != n7 >> 7) overflow[0] = true; - n = n7 | c & 0x7F; - } - return n; - } - switch(r.read32u()){ - case 0x8495A6BE: - var header_len = 20, data_len = r.read32u(); break; - case 0x8495A6BD: - var - header_len = r.read8u() & 0x3F, - overflow = [false], - data_len = readvlq(overflow); - if(overflow[0]) - caml_failwith - ("Marshal.data_size: object too large to be read back on this platform"); - break; - case 0x8495A6BF: - default: caml_failwith("Marshal.data_size: bad object"); break; - } - return header_len - caml_marshal_header_size + data_len; - } - function MlStringReader(s, i){ - this.s = caml_jsbytes_of_string(s); - this.i = i; - } - MlStringReader.prototype = - {read8u: function(){return this.s.charCodeAt(this.i++);}, - read8s: function(){return this.s.charCodeAt(this.i++) << 24 >> 24;}, - read16u: - function(){ - var s = this.s, i = this.i; - this.i = i + 2; - return s.charCodeAt(i) << 8 | s.charCodeAt(i + 1); - }, - read16s: - function(){ - var s = this.s, i = this.i; - this.i = i + 2; - return s.charCodeAt(i) << 24 >> 16 | s.charCodeAt(i + 1); - }, - read32u: - function(){ - var s = this.s, i = this.i; - this.i = i + 4; - return (s.charCodeAt(i) << 24 | s.charCodeAt(i + 1) << 16 - | s.charCodeAt(i + 2) << 8 - | s.charCodeAt(i + 3)) - >>> 0; - }, - read32s: - function(){ - var s = this.s, i = this.i; - this.i = i + 4; - return s.charCodeAt(i) << 24 | s.charCodeAt(i + 1) << 16 - | s.charCodeAt(i + 2) << 8 - | s.charCodeAt(i + 3); - }, - readstr: - function(len){ - var i = this.i; - this.i = i + len; - return caml_string_of_jsbytes(this.s.substring(i, i + len)); - }, - readuint8array: - function(len){ - var b = new Uint8Array(len), s = this.s, i = this.i; - for(var j = 0; j < len; j++) b[j] = s.charCodeAt(i + j); - this.i = i + len; - return b; - }}; - var - zstd_decompress = - function(){ - "use strict"; - var - ab = ArrayBuffer, - u8 = Uint8Array, - u16 = Uint16Array, - i16 = Int16Array, - u32 = Uint32Array, - i32 = Int32Array; - function slc(v, s, e){ - if(u8.prototype.slice) return u8.prototype.slice.call(v, s, e); - if(s == null || s < 0) s = 0; - if(e == null || e > v.length) e = v.length; - var n = new u8(e - s); - n.set(v.subarray(s, e)); - return n; - } - function fill(v, n, s, e){ - if(u8.prototype.fill) return u8.prototype.fill.call(v, n, s, e); - if(s == null || s < 0) s = 0; - if(e == null || e > v.length) e = v.length; - for(; s < e; ++s) v[s] = n; - return v; - } - function cpw(v, t, s, e){ - if(u8.prototype.copyWithin) - return u8.prototype.copyWithin.call(v, t, s, e); - if(s == null || s < 0) s = 0; - if(e == null || e > v.length) e = v.length; - while(s < e) v[t++] = v[s++]; - } - var - ec = - ["invalid zstd data", - "window size too large (>2046MB)", - "invalid block type", - "FSE accuracy too high", - "match distance too far back", - "unexpected EOF"]; - function err(ind, msg, nt){ - var e = new Error(msg || ec[ind]); - e.code = ind; - if(! nt) throw e; - return e; - } - function rb(d, b, n){ - var i = 0, o = 0; - for(; i < n; ++i) o |= d[b++] << (i << 3); - return o; - } - function b4(d, b){ - return (d[b] | d[b + 1] << 8 | d[b + 2] << 16 | d[b + 3] << 24) >>> 0; - } - function rzfh(dat, w){ - var n3 = dat[0] | dat[1] << 8 | dat[2] << 16; - if(n3 == 0x2FB528 && dat[3] == 253){ - var - flg = dat[4], - ss = flg >> 5 & 1, - cc = flg >> 2 & 1, - df = flg & 3, - fcf = flg >> 6; - if(flg & 8) err(0); - var bt = 6 - ss, db = df == 3 ? 4 : df, di = rb(dat, bt, db); - bt += db; - var - fsb = fcf ? 1 << fcf : ss, - fss = rb(dat, bt, fsb) + (fcf == 1 && 256), - ws = fss; - if(! ss){ - var wb = 1 << 10 + (dat[5] >> 3); - ws = wb + (wb >> 3) * (dat[5] & 7); - } - if(ws > 2145386496) err(1); - var buf = new u8((w == 1 ? fss || ws : w ? 0 : ws) + 12); - buf[0] = 1, buf[4] = 4, buf[8] = 8; - return {b: bt + fsb, - y: 0, - l: 0, - d: di, - w: w && w != 1 ? w : buf.subarray(12), - e: ws, - o: new i32(buf.buffer, 0, 3), - u: fss, - c: cc, - m: Math.min(131072, ws)}; - } - else if((n3 >> 4 | dat[3] << 20) == 0x184D2A5) return b4(dat, 4) + 8; - err(0); - } - function msb(val){ - var bits = 0; - for(; 1 << bits <= val; ++bits) ; - return bits - 1; - } - function rfse(dat, bt, mal){ - var tpos = (bt << 3) + 4, al = (dat[bt] & 15) + 5; - if(al > mal) err(3); - var - sz = 1 << al, - probs = sz, - sym = - 1, - re = - 1, - i = - 1, - ht = sz, - buf = new ab(512 + (sz << 2)), - freq = new i16(buf, 0, 256), - dstate = new u16(buf, 0, 256), - nstate = new u16(buf, 512, sz), - bb1 = 512 + (sz << 1), - syms = new u8(buf, bb1, sz), - nbits = new u8(buf, bb1 + sz); - while(sym < 255 && probs > 0){ - var - bits = msb(probs + 1), - cbt = tpos >> 3, - msk = (1 << bits + 1) - 1, - val = - (dat[cbt] | dat[cbt + 1] << 8 | dat[cbt + 2] << 16) >> (tpos & 7) - & msk, - msk1fb = (1 << bits) - 1, - msv = msk - probs - 1, - sval = val & msk1fb; - if(sval < msv) - tpos += bits, val = sval; - else{tpos += bits + 1; if(val > msk1fb) val -= msv;} - freq[++sym] = --val; - if(val == - 1){probs += val; syms[--ht] = sym;} else probs -= val; - if(! val) - do{ - var rbt = tpos >> 3; - re = (dat[rbt] | dat[rbt + 1] << 8) >> (tpos & 7) & 3; - tpos += 2; - sym += re; - } - while - (re == 3); - } - if(sym > 255 || probs) err(0); - var sympos = 0, sstep = (sz >> 1) + (sz >> 3) + 3, smask = sz - 1; - for(var s = 0; s <= sym; ++s){ - var sf = freq[s]; - if(sf < 1){dstate[s] = - sf; continue;} - for(i = 0; i < sf; ++i){ - syms[sympos] = s; - do sympos = sympos + sstep & smask;while(sympos >= ht); - } - } - if(sympos) err(0); - for(i = 0; i < sz; ++i){ - var ns = dstate[syms[i]]++, nb = nbits[i] = al - msb(ns); - nstate[i] = (ns << nb) - sz; - } - return [tpos + 7 >> 3, {b: al, s: syms, n: nbits, t: nstate}]; - } - function rhu(dat, bt){ - var - i = 0, - wc = - 1, - buf = new u8(292), - hb = dat[bt], - hw = buf.subarray(0, 256), - rc = buf.subarray(256, 268), - ri = new u16(buf.buffer, 268); - if(hb < 128){ - var _a = rfse(dat, bt + 1, 6), ebt = _a[0], fdt = _a[1]; - bt += hb; - var epos = ebt << 3, lb = dat[bt]; - if(! lb) err(0); - var - st1 = 0, - st2 = 0, - btr1 = fdt.b, - btr2 = btr1, - fpos = (++bt << 3) - 8 + msb(lb); - for(;;){ - fpos -= btr1; - if(fpos < epos) break; - var cbt = fpos >> 3; - st1 += - (dat[cbt] | dat[cbt + 1] << 8) >> (fpos & 7) & (1 << btr1) - 1; - hw[++wc] = fdt.s[st1]; - fpos -= btr2; - if(fpos < epos) break; - cbt = fpos >> 3; - st2 += - (dat[cbt] | dat[cbt + 1] << 8) >> (fpos & 7) & (1 << btr2) - 1; - hw[++wc] = fdt.s[st2]; - btr1 = fdt.n[st1]; - st1 = fdt.t[st1]; - btr2 = fdt.n[st2]; - st2 = fdt.t[st2]; - } - if(++wc > 255) err(0); - } - else{ - wc = hb - 127; - for(; i < wc; i += 2){ - var byte = dat[++bt]; - hw[i] = byte >> 4; - hw[i + 1] = byte & 15; - } - ++bt; - } - var wes = 0; - for(i = 0; i < wc; ++i){ - var wt = hw[i]; - if(wt > 11) err(0); - wes += wt && 1 << wt - 1; - } - var mb = msb(wes) + 1, ts = 1 << mb, rem = ts - wes; - if(rem & rem - 1) err(0); - hw[wc++] = msb(rem) + 1; - for(i = 0; i < wc; ++i){ - var wt = hw[i]; - ++rc[hw[i] = wt && mb + 1 - wt]; - } - var - hbuf = new u8(ts << 1), - syms = hbuf.subarray(0, ts), - nb = hbuf.subarray(ts); - ri[mb] = 0; - for(i = mb; i > 0; --i){ - var pv = ri[i]; - fill(nb, i, pv, ri[i - 1] = pv + rc[i] * (1 << mb - i)); - } - if(ri[0] != ts) err(0); - for(i = 0; i < wc; ++i){ - var bits = hw[i]; - if(bits){ - var code = ri[bits]; - fill(syms, i, code, ri[bits] = code + (1 << mb - bits)); - } - } - return [bt, {n: nb, b: mb, s: syms}]; - } - var - dllt = - rfse - (new - u8 - ([81, - 16, - 99, - 140, - 49, - 198, - 24, - 99, - 12, - 33, - 196, - 24, - 99, - 102, - 102, - 134, - 70, - 146, - 4]), - 0, - 6) - [1], - dmlt = - rfse - (new - u8 - ([33, - 20, - 196, - 24, - 99, - 140, - 33, - 132, - 16, - 66, - 8, - 33, - 132, - 16, - 66, - 8, - 33, - 68, - 68, - 68, - 68, - 68, - 68, - 68, - 68, - 36, - 9]), - 0, - 6) - [1], - doct = - rfse - (new u8([32, 132, 16, 66, 102, 70, 68, 68, 68, 68, 36, 73, 2]), - 0, - 5) - [1]; - function b2bl(b, s){ - var len = b.length, bl = new i32(len); - for(var i = 0; i < len; ++i){bl[i] = s; s += 1 << b[i];} - return bl; - } - var - llb = - new - u8 - (new - i32 - ([0, - 0, - 0, - 0, - 16843009, - 50528770, - 134678020, - 202050057, - 269422093]).buffer, - 0, - 36), - llbl = b2bl(llb, 0), - mlb = - new - u8 - (new - i32 - ([0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16843009, - 50528770, - 117769220, - 185207048, - 252579084, - 16]).buffer, - 0, - 53), - mlbl = b2bl(mlb, 3); - function dhu(dat, out, hu){ - var - len = dat.length, - ss = out.length, - lb = dat[len - 1], - msk = (1 << hu.b) - 1, - eb = - hu.b; - if(! lb) err(0); - var - st = 0, - btr = hu.b, - pos = (len << 3) - 8 + msb(lb) - btr, - i = - 1; - for(; pos > eb && i < ss;){ - var - cbt = pos >> 3, - val = - (dat[cbt] | dat[cbt + 1] << 8 | dat[cbt + 2] << 16) >> (pos & 7); - st = (st << btr | val) & msk; - out[++i] = hu.s[st]; - pos -= btr = hu.n[st]; - } - if(pos != eb || i + 1 != ss) err(0); - } - function dhu4(dat, out, hu){ - var - bt = 6, - ss = out.length, - sz1 = ss + 3 >> 2, - sz2 = sz1 << 1, - sz3 = sz1 + sz2; - dhu - (dat.subarray(bt, bt += dat[0] | dat[1] << 8), - out.subarray(0, sz1), - hu); - dhu - (dat.subarray(bt, bt += dat[2] | dat[3] << 8), - out.subarray(sz1, sz2), - hu); - dhu - (dat.subarray(bt, bt += dat[4] | dat[5] << 8), - out.subarray(sz2, sz3), - hu); - dhu(dat.subarray(bt), out.subarray(sz3), hu); - } - function rzb(dat, st, out){ - var _a, bt = st.b, b0 = dat[bt], btype = b0 >> 1 & 3; - st.l = b0 & 1; - var - sz = b0 >> 3 | dat[bt + 1] << 5 | dat[bt + 2] << 13, - ebt = (bt += 3) + sz; - if(btype == 1){ - if(bt >= dat.length) return; - st.b = bt + 1; - if(out){fill(out, dat[bt], st.y, st.y += sz); return out;} - return fill(new u8(sz), dat[bt]); - } - if(ebt > dat.length) return; - if(btype == 0){ - st.b = ebt; - if(out){ - out.set(dat.subarray(bt, ebt), st.y); - st.y += sz; - return out; - } - return slc(dat, bt, ebt); - } - if(btype == 2){ - var - b3 = dat[bt], - lbt = b3 & 3, - sf = b3 >> 2 & 3, - lss = b3 >> 4, - lcs = 0, - s4 = 0; - if(lbt < 2) - if(sf & 1) - lss |= dat[++bt] << 4 | (sf & 2 && dat[++bt] << 12); - else - lss = b3 >> 3; - else{ - s4 = sf; - if(sf < 2) - lss |= (dat[++bt] & 63) << 4, lcs = dat[bt] >> 6 | dat[++bt] << 2; - else if(sf == 2) - lss |= dat[++bt] << 4 | (dat[++bt] & 3) << 12, - lcs = dat[bt] >> 2 | dat[++bt] << 6; - else - lss |= dat[++bt] << 4 | (dat[++bt] & 63) << 12, - lcs = dat[bt] >> 6 | dat[++bt] << 2 | dat[++bt] << 10; - } - ++bt; - var - buf = out ? out.subarray(st.y, st.y + st.m) : new u8(st.m), - spl = buf.length - lss; - if(lbt == 0) - buf.set(dat.subarray(bt, bt += lss), spl); - else if(lbt == 1) - fill(buf, dat[bt++], spl); - else{ - var hu = st.h; - if(lbt == 2){ - var hud = rhu(dat, bt); - lcs += bt - (bt = hud[0]); - st.h = hu = hud[1]; - } - else if(! hu) err(0); - (s4 ? dhu4 : dhu) - (dat.subarray(bt, bt += lcs), buf.subarray(spl), hu); - } - var ns = dat[bt++]; - if(ns){ - if(ns == 255) - ns = (dat[bt++] | dat[bt++] << 8) + 0x7F00; - else if(ns > 127) ns = ns - 128 << 8 | dat[bt++]; - var scm = dat[bt++]; - if(scm & 3) err(0); - var dts = [dmlt, doct, dllt]; - for(var i = 2; i > - 1; --i){ - var md = scm >> (i << 1) + 2 & 3; - if(md == 1){ - var rbuf = new u8([0, 0, dat[bt++]]); - dts[i] = - {s: rbuf.subarray(2, 3), - n: rbuf.subarray(0, 1), - t: new u16(rbuf.buffer, 0, 1), - b: 0}; - } - else if(md == 2) - _a = rfse(dat, bt, 9 - (i & 1)), bt = _a[0], dts[i] = _a[1]; - else if(md == 3){if(! st.t) err(0); dts[i] = st.t[i];} - } - var - _b = st.t = dts, - mlt = _b[0], - oct = _b[1], - llt = _b[2], - lb = dat[ebt - 1]; - if(! lb) err(0); - var - spos = (ebt << 3) - 8 + msb(lb) - llt.b, - cbt = spos >> 3, - oubt = 0, - lst = - (dat[cbt] | dat[cbt + 1] << 8) >> (spos & 7) & (1 << llt.b) - 1; - cbt = (spos -= oct.b) >> 3; - var - ost = - (dat[cbt] | dat[cbt + 1] << 8) >> (spos & 7) & (1 << oct.b) - 1; - cbt = (spos -= mlt.b) >> 3; - var - mst = - (dat[cbt] | dat[cbt + 1] << 8) >> (spos & 7) & (1 << mlt.b) - 1; - for(++ns; --ns;){ - var - llc = llt.s[lst], - lbtr = llt.n[lst], - mlc = mlt.s[mst], - mbtr = mlt.n[mst], - ofc = oct.s[ost], - obtr = oct.n[ost]; - cbt = (spos -= ofc) >> 3; - var - ofp = 1 << ofc, - off = - ofp - + - ((dat[cbt] | dat[cbt + 1] << 8 | dat[cbt + 2] << 16 - | dat[cbt + 3] << 24) - >>> (spos & 7) - & ofp - 1); - cbt = (spos -= mlb[mlc]) >> 3; - var - ml = - mlbl[mlc] - + - ((dat[cbt] | dat[cbt + 1] << 8 | dat[cbt + 2] << 16) - >> (spos & 7) - & (1 << mlb[mlc]) - 1); - cbt = (spos -= llb[llc]) >> 3; - var - ll = - llbl[llc] - + - ((dat[cbt] | dat[cbt + 1] << 8 | dat[cbt + 2] << 16) - >> (spos & 7) - & (1 << llb[llc]) - 1); - cbt = (spos -= lbtr) >> 3; - lst = - llt.t[lst] - + - ((dat[cbt] | dat[cbt + 1] << 8) >> (spos & 7) & (1 << lbtr) - 1); - cbt = (spos -= mbtr) >> 3; - mst = - mlt.t[mst] - + - ((dat[cbt] | dat[cbt + 1] << 8) >> (spos & 7) & (1 << mbtr) - 1); - cbt = (spos -= obtr) >> 3; - ost = - oct.t[ost] - + - ((dat[cbt] | dat[cbt + 1] << 8) >> (spos & 7) & (1 << obtr) - 1); - if(off > 3){ - st.o[2] = st.o[1]; - st.o[1] = st.o[0]; - st.o[0] = off -= 3; - } - else{ - var idx = off - (ll != 0); - if(idx){ - off = idx == 3 ? st.o[0] - 1 : st.o[idx]; - if(idx > 1) st.o[2] = st.o[1]; - st.o[1] = st.o[0]; - st.o[0] = off; - } - else - off = st.o[0]; - } - for(var i = 0; i < ll; ++i) buf[oubt + i] = buf[spl + i]; - oubt += ll, spl += ll; - var stin = oubt - off; - if(stin < 0){ - var len = - stin, bs = st.e + stin; - if(len > ml) len = ml; - for(var i = 0; i < len; ++i) buf[oubt + i] = st.w[bs + i]; - oubt += len, ml -= len, stin = 0; - } - for(var i = 0; i < ml; ++i) buf[oubt + i] = buf[stin + i]; - oubt += ml; - } - if(oubt != spl) - while(spl < buf.length) buf[oubt++] = buf[spl++]; - else - oubt = buf.length; - if(out) st.y += oubt; else buf = slc(buf, 0, oubt); - } - else if(out){ - st.y += lss; - if(spl) for(var i = 0; i < lss; ++i) buf[i] = buf[spl + i]; - } - else if(spl) buf = slc(buf, spl); - st.b = ebt; - return buf; - } - err(2); - } - function cct(bufs, ol){ - if(bufs.length == 1) return bufs[0]; - var buf = new u8(ol); - for(var i = 0, b = 0; i < bufs.length; ++i){ - var chk = bufs[i]; - buf.set(chk, b); - b += chk.length; - } - return buf; - } - return function(dat, buf){ - var bt = 0, bufs = [], nb = + ! buf, ol = 0; - for(; dat.length;){ - var st = rzfh(dat, nb || buf); - if(typeof st == "object"){ - if(nb){ - buf = null; - if(st.w.length == st.u){bufs.push(buf = st.w); ol += st.u;} - } - else{bufs.push(buf); st.e = 0;} - for(; ! st.l;){ - var blk = rzb(dat, st, buf); - if(! blk) err(5); - if(buf) - st.e = st.y; - else{ - bufs.push(blk); - ol += blk.length; - cpw(st.w, 0, blk.length); - st.w.set(blk, st.w.length - blk.length); - } - } - bt = st.b + st.c * 4; - } - else - bt = st; - dat = dat.subarray(bt); - } - return cct(bufs, ol);}; - } - (); - function caml_float_of_bytes(a){ - return caml_int64_float_of_bits(caml_int64_of_bytes(a)); - } - function caml_input_value_from_reader(reader, ofs){ - function readvlq(overflow){ - var c = reader.read8u(), n = c & 0x7F; - while((c & 0x80) != 0){ - c = reader.read8u(); - var n7 = n << 7; - if(n != n7 >> 7) overflow[0] = true; - n = n7 | c & 0x7F; - } - return n; - } - var magic = reader.read32u(); - switch(magic){ - case 0x8495A6BE: - var - header_len = 20, - compressed = 0, - data_len = reader.read32u(), - uncompressed_data_len = data_len, - num_objects = reader.read32u(), - _size_32 = reader.read32u(), - _size_64 = reader.read32u(); - break; - case 0x8495A6BD: - var - header_len = reader.read8u() & 0x3F, - compressed = 1, - overflow = [false], - data_len = readvlq(overflow), - uncompressed_data_len = readvlq(overflow), - num_objects = readvlq(overflow), - _size_32 = readvlq(overflow), - _size_64 = readvlq(overflow); - if(overflow[0]) - caml_failwith - ("caml_input_value_from_reader: object too large to be read back on this platform"); - break; - case 0x8495A6BF: - caml_failwith - ("caml_input_value_from_reader: object too large to be read back on a 32-bit platform"); - break; - default: - caml_failwith("caml_input_value_from_reader: bad object"); break; - } - var - stack = [], - intern_obj_table = num_objects > 0 ? [] : null, - obj_counter = 0; - function intern_rec(reader){ - var code = reader.read8u(); - if(code >= 0x40) - if(code >= 0x80){ - var tag = code & 0xF, size = code >> 4 & 0x7, v = [tag]; - if(size == 0) return v; - if(intern_obj_table) intern_obj_table[obj_counter++] = v; - stack.push(v, size); - return v; - } - else - return code & 0x3F; - else if(code >= 0x20){ - var len = code & 0x1F, v = reader.readstr(len); - if(intern_obj_table) intern_obj_table[obj_counter++] = v; - return v; - } - else - switch(code){ - case 0x00: - return reader.read8s(); - case 0x01: - return reader.read16s(); - case 0x02: - return reader.read32s(); - case 0x03: - caml_failwith("input_value: integer too large"); break; - case 0x04: - var offset = reader.read8u(); - if(compressed == 0) offset = obj_counter - offset; - return intern_obj_table[offset]; - case 0x05: - var offset = reader.read16u(); - if(compressed == 0) offset = obj_counter - offset; - return intern_obj_table[offset]; - case 0x06: - var offset = reader.read32u(); - if(compressed == 0) offset = obj_counter - offset; - return intern_obj_table[offset]; - case 0x08: - var - header = reader.read32u(), - tag = header & 0xFF, - size = header >> 10, - v = [tag]; - if(size == 0) return v; - if(intern_obj_table) intern_obj_table[obj_counter++] = v; - stack.push(v, size); - return v; - case 0x13: - caml_failwith("input_value: data block too large"); break; - case 0x09: - var len = reader.read8u(), v = reader.readstr(len); - if(intern_obj_table) intern_obj_table[obj_counter++] = v; - return v; - case 0x0A: - var len = reader.read32u(), v = reader.readstr(len); - if(intern_obj_table) intern_obj_table[obj_counter++] = v; - return v; - case 0x0C: - var t = new Array(8); - for(var i = 0; i < 8; i++) t[7 - i] = reader.read8u(); - var v = caml_float_of_bytes(t); - if(intern_obj_table) intern_obj_table[obj_counter++] = v; - return v; - case 0x0B: - var t = new Array(8); - for(var i = 0; i < 8; i++) t[i] = reader.read8u(); - var v = caml_float_of_bytes(t); - if(intern_obj_table) intern_obj_table[obj_counter++] = v; - return v; - case 0x0E: - var len = reader.read8u(), v = new Array(len + 1); - v[0] = 254; - var t = new Array(8); - if(intern_obj_table) intern_obj_table[obj_counter++] = v; - for(var i = 1; i <= len; i++){ - for(var j = 0; j < 8; j++) t[7 - j] = reader.read8u(); - v[i] = caml_float_of_bytes(t); - } - return v; - case 0x0D: - var len = reader.read8u(), v = new Array(len + 1); - v[0] = 254; - var t = new Array(8); - if(intern_obj_table) intern_obj_table[obj_counter++] = v; - for(var i = 1; i <= len; i++){ - for(var j = 0; j < 8; j++) t[j] = reader.read8u(); - v[i] = caml_float_of_bytes(t); - } - return v; - case 0x07: - var len = reader.read32u(), v = new Array(len + 1); - v[0] = 254; - if(intern_obj_table) intern_obj_table[obj_counter++] = v; - var t = new Array(8); - for(var i = 1; i <= len; i++){ - for(var j = 0; j < 8; j++) t[7 - j] = reader.read8u(); - v[i] = caml_float_of_bytes(t); - } - return v; - case 0x0F: - var len = reader.read32u(), v = new Array(len + 1); - v[0] = 254; - var t = new Array(8); - for(var i = 1; i <= len; i++){ - for(var j = 0; j < 8; j++) t[j] = reader.read8u(); - v[i] = caml_float_of_bytes(t); - } - return v; - case 0x10: - case 0x11: - caml_failwith("input_value: code pointer"); break; - case 0x12: - case 0x18: - case 0x19: - var c, s = ""; - while((c = reader.read8u()) != 0) s += String.fromCharCode(c); - var ops = caml_custom_ops[s], expected_size; - if(! ops) - caml_failwith("input_value: unknown custom block identifier"); - switch(code){ - case 0x12: break; - case 0x19: - if(! ops.fixed_length) - caml_failwith("input_value: expected a fixed-size custom block"); - expected_size = ops.fixed_length; - break; - case 0x18: - expected_size = reader.read32u(); - reader.read32s(); - reader.read32s(); - break; - } - var - old_pos = reader.i, - size = [0], - v = ops.deserialize(reader, size); - if(expected_size != undefined) - if(expected_size != size[0]) - caml_failwith - ("input_value: incorrect length of serialized custom block"); - if(intern_obj_table) intern_obj_table[obj_counter++] = v; - return v; - default: caml_failwith("input_value: ill-formed message"); - } - } - if(compressed) - var - data = reader.readuint8array(data_len), - res = new Uint8Array(uncompressed_data_len), - res = zstd_decompress(data, res), - reader = new UInt8ArrayReader(res, 0); - var res = intern_rec(reader); - while(stack.length > 0){ - var size = stack.pop(), v = stack.pop(), d = v.length; - if(d < size) stack.push(v, size); - v[d] = intern_rec(reader); - } - if(typeof ofs != "number") ofs[0] = reader.i; - return res; - } - function caml_string_of_bytes(s){ - s.t & 6 && caml_convert_string_to_bytes(s); - return caml_string_of_jsbytes(s.c); - } - function caml_input_value_from_bytes(s, ofs){ - var - reader = - new - MlStringReader - (caml_string_of_bytes(s), typeof ofs == "number" ? ofs : ofs[0]); - return caml_input_value_from_reader(reader, ofs); - } - function caml_input_value(chanid){ - var - chan = caml_ml_channels[chanid], - header = new Uint8Array(caml_marshal_header_size); - function block(buffer, offset, n){ - var r = 0; - while(r < n){ - if(chan.buffer_curr >= chan.buffer_max){ - chan.buffer_curr = 0; - chan.buffer_max = 0; - caml_refill(chan); - } - if(chan.buffer_curr >= chan.buffer_max) break; - buffer[offset + r] = chan.buffer[chan.buffer_curr]; - chan.buffer_curr++; - r++; - } - return r; - } - var r = block(header, 0, caml_marshal_header_size); - if(r == 0) - caml_raise_end_of_file(); - else if(r < caml_marshal_header_size) - caml_failwith("input_value: truncated object"); - var - len = caml_marshal_data_size(caml_bytes_of_array(header), 0), - buf = new Uint8Array(len + caml_marshal_header_size); - buf.set(header, 0); - var r = block(buf, caml_marshal_header_size, len); - if(r < len) - caml_failwith("input_value: truncated object " + r + " " + len); - var - offset = [0], - res = caml_input_value_from_bytes(caml_bytes_of_array(buf), offset); - chan.offset = chan.offset + offset[0]; - return res; - } - function caml_input_value_to_outside_heap(c){return caml_input_value(c);} - function caml_atomic_cas(ref, o, n){ - if(ref[1] === o){ref[1] = n; return 1;} - return 0; - } - function caml_copysign_float(x, y){ - if(y == 0) y = 1 / y; - x = Math.abs(x); - return y < 0 ? - x : x; - } - function caml_gr_set_text_size(size){ - var s = caml_gr_state_get(); - s.text_size = size; - s.context.font = s.text_size + "px " + caml_jsstring_of_string(s.font); - return 0; - } - function caml_atomic_load(ref){return ref[1];} - function caml_MD5Final(ctx){ - var in_buf = ctx.len & 0x3f; - ctx.b8[in_buf] = 0x80; - in_buf++; - if(in_buf > 56){ - for(var j = in_buf; j < 64; j++) ctx.b8[j] = 0; - caml_MD5Transform(ctx.w, ctx.b32); - for(var j = 0; j < 56; j++) ctx.b8[j] = 0; - } - else - for(var j = in_buf; j < 56; j++) ctx.b8[j] = 0; - ctx.b32[14] = ctx.len << 3; - ctx.b32[15] = ctx.len >> 29 & 0x1FFFFFFF; - caml_MD5Transform(ctx.w, ctx.b32); - var t = new Uint8Array(16); - for(var i = 0; i < 4; i++) - for(var j = 0; j < 4; j++) t[i * 4 + j] = ctx.w[i] >> 8 * j & 0xFF; - return t; - } - function caml_md5_bytes(s, ofs, len){ - var ctx = caml_MD5Init(), a = caml_uint8_array_of_bytes(s); - caml_MD5Update(ctx, a.subarray(ofs, ofs + len), len); - return caml_string_of_array(caml_MD5Final(ctx)); - } - function caml_ba_set_generic(ba, i, v){ - ba.set(ba.offset(caml_js_from_array(i)), v); - return 0; - } - function caml_ml_condition_wait(t, mutext){return 0;} - function caml_string_lessequal(s1, s2){return s1 <= s2 ? 1 : 0;} - function caml_string_greaterequal(s1, s2){return caml_string_lessequal(s2, s1); - } - function caml_nextafter_float(x, y){ - if(isNaN(x) || isNaN(y)) return NaN; - if(x == y) return y; - if(x == 0) return y < 0 ? - Math.pow(2, - 1074) : Math.pow(2, - 1074); - var bits = caml_int64_bits_of_float(x), one = caml_int64_of_int32(1); - if(x < y == x > 0) - bits = caml_int64_add(bits, one); - else - bits = caml_int64_sub(bits, one); - return caml_int64_float_of_bits(bits); - } - function caml_gr_size_y(){var s = caml_gr_state_get(); return s.height;} - function caml_pos_in(chanid){ - var chan = caml_ml_channels[chanid]; - return chan.offset - (chan.buffer_max - chan.buffer_curr) | 0; - } - function caml_ml_pos_in(chanid){return caml_pos_in(chanid);} - function caml_int64_and(x, y){return x.and(y);} - function caml_sys_const_word_size(){return 32;} - function caml_runtime_events_pause(){return 0;} - function caml_unix_unlink(name){ - var root = resolve_fs_device(name); - if(! root.device.unlink) - caml_failwith("caml_unix_unlink: not implemented"); - return root.device.unlink(root.rest, true); - } - function caml_sys_open_for_node(fd, flags){ - if(flags.name) - try{ - var fs = require("fs"), fd2 = fs.openSync(flags.name, "rs"); - return new MlNodeFd(fd2, flags); - } - catch(e){} - return new MlNodeFd(fd, flags); - } - function MlFakeFd_out(fd, flags){ - MlFakeFile.call(this, caml_create_bytes(0)); - this.log = function(s){return 0;}; - if(fd == 1 && typeof console.log == "function") - this.log = console.log; - else if(fd == 2 && typeof console.error == "function") - this.log = console.error; - else if(typeof console.log == "function") this.log = console.log; - this.flags = flags; - } - MlFakeFd_out.prototype.length = function(){return 0;}; - MlFakeFd_out.prototype.write = - function(offset, buf, pos, len){ - if(this.log){ - if - (len > 0 && pos >= 0 && pos + len <= buf.length - && buf[pos + len - 1] == 10) - len--; - var src = caml_create_bytes(len); - caml_blit_bytes(caml_bytes_of_array(buf), pos, src, 0, len); - this.log(src.toUtf16()); - return 0; - } - caml_raise_sys_error(this.fd + ": file descriptor already closed"); - }; - MlFakeFd_out.prototype.read = - function(offset, buf, pos, len){ - caml_raise_sys_error(this.fd + ": file descriptor is write only"); - }; - MlFakeFd_out.prototype.close = function(){this.log = undefined;}; - function caml_sys_open_internal(file, idx){ - if(idx == undefined) idx = caml_sys_fds.length; - caml_sys_fds[idx] = file; - return idx | 0; - } - function caml_sys_open(name, flags, _perms){ - var f = {}; - while(flags){ - switch(flags[1]){ - case 0: - f.rdonly = 1; break; - case 1: - f.wronly = 1; break; - case 2: - f.append = 1; break; - case 3: - f.create = 1; break; - case 4: - f.truncate = 1; break; - case 5: - f.excl = 1; break; - case 6: - f.binary = 1; break; - case 7: - f.text = 1; break; - case 8: - f.nonblock = 1; break; - } - flags = flags[2]; - } - if(f.rdonly && f.wronly) - caml_raise_sys_error - (caml_jsbytes_of_string(name) - + " : flags Open_rdonly and Open_wronly are not compatible"); - if(f.text && f.binary) - caml_raise_sys_error - (caml_jsbytes_of_string(name) - + " : flags Open_text and Open_binary are not compatible"); - var root = resolve_fs_device(name), file = root.device.open(root.rest, f); - return caml_sys_open_internal(file, undefined); - } - (function(){ - function file(fd, flags){ - return fs_node_supported() - ? caml_sys_open_for_node(fd, flags) - : new MlFakeFd_out(fd, flags); - } - caml_sys_open_internal - (file(0, {rdonly: 1, altname: "/dev/stdin", isCharacterDevice: true}), - 0); - caml_sys_open_internal - (file(1, {buffered: 2, wronly: 1, isCharacterDevice: true}), 1); - caml_sys_open_internal - (file(2, {buffered: 2, wronly: 1, isCharacterDevice: true}), 2); - } - ()); - function caml_string_get(s, i){ - if(i >>> 0 >= caml_ml_string_length(s)) caml_string_bound_error(); - return caml_string_unsafe_get(s, i); - } - var - re_match = - function(){ - var - re_word_letters = - [0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0x03, - 0xFE, - 0xFF, - 0xFF, - 0x87, - 0xFE, - 0xFF, - 0xFF, - 0x07, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, - 0xFF, - 0x7F, - 0xFF, - 0xFF, - 0xFF, - 0x7F, - 0xFF], - opcodes = - {CHAR: 0, - CHARNORM: 1, - STRING: 2, - STRINGNORM: 3, - CHARCLASS: 4, - BOL: 5, - EOL: 6, - WORDBOUNDARY: 7, - BEGGROUP: 8, - ENDGROUP: 9, - REFGROUP: 10, - ACCEPT: 11, - SIMPLEOPT: 12, - SIMPLESTAR: 13, - SIMPLEPLUS: 14, - GOTO: 15, - PUSHBACK: 16, - SETMARK: 17, - CHECKPROGRESS: 18}; - function is_word_letter(c){ - return re_word_letters[c >> 3] >> (c & 7) & 1; - } - function in_bitset(s, i){ - return caml_string_get(s, i >> 3) >> (i & 7) & 1; - } - function re_match_impl(re, s, pos, partial){ - var - prog = caml_js_from_array(re[1]), - cpool = caml_js_from_array(re[2]), - normtable = caml_jsbytes_of_string(re[3]), - numgroups = re[4] | 0, - numregisters = re[5] | 0, - startchars = re[6] | 0, - s = caml_uint8_array_of_string(s), - pc = 0, - quit = false, - stack = [], - groups = new Array(numgroups), - re_register = new Array(numregisters); - for(var i = 0; i < groups.length; i++) - groups[i] = {start: - 1, end: - 1}; - groups[0].start = pos; - function backtrack(){ - while(stack.length){ - var item = stack.pop(); - if(item.undo) - item.undo.obj[item.undo.prop] = item.undo.value; - else if(item.pos){pc = item.pos.pc; pos = item.pos.txt; return;} - } - quit = true; - } - function push(item){stack.push(item);} - function accept(){ - groups[0].end = pos; - var result = new Array(1 + groups.length * 2); - result[0] = 0; - for(var i = 0; i < groups.length; i++){ - var g = groups[i]; - if(g.start < 0 || g.end < 0) g.start = g.end = - 1; - result[2 * i + 1] = g.start; - result[2 * i + 1 + 1] = g.end; - } - return result; - } - function prefix_match(){ - if(partial) return accept(); else backtrack(); - } - while(! quit){ - var - op = prog[pc] & 0xff, - sarg = prog[pc] >> 8, - uarg = sarg & 0xff, - c = s[pos], - group; - pc++; - switch(op){ - case opcodes.CHAR: - if(pos === s.length){prefix_match(); break;} - if(c === uarg) pos++; else backtrack(); - break; - case opcodes.CHARNORM: - if(pos === s.length){prefix_match(); break;} - if(normtable.charCodeAt(c) === uarg) pos++; else backtrack(); - break; - case opcodes.STRING: - for - (var arg = caml_jsbytes_of_string(cpool[uarg]), i = 0; - i < arg.length; - i++){ - if(pos === s.length){prefix_match(); break;} - if(c === arg.charCodeAt(i)) - c = s[++pos]; - else{backtrack(); break;} - } - break; - case opcodes.STRINGNORM: - for - (var arg = caml_jsbytes_of_string(cpool[uarg]), i = 0; - i < arg.length; - i++){ - if(pos === s.length){prefix_match(); break;} - if(normtable.charCodeAt(c) === arg.charCodeAt(i)) - c = s[++pos]; - else{backtrack(); break;} - } - break; - case opcodes.CHARCLASS: - if(pos === s.length){prefix_match(); break;} - if(in_bitset(cpool[uarg], c)) pos++; else backtrack(); - break; - case opcodes.BOL: - if(pos > 0 && s[pos - 1] != 10) backtrack(); break; - case opcodes.EOL: - if(pos < s.length && s[pos] != 10) backtrack(); break; - case opcodes.WORDBOUNDARY: - if(pos == 0){ - if(pos === s.length){prefix_match(); break;} - if(is_word_letter(s[0])) break; - backtrack(); - } - else if(pos === s.length){ - if(is_word_letter(s[pos - 1])) break; - backtrack(); - } - else{ - if(is_word_letter(s[pos - 1]) != is_word_letter(s[pos])) break; - backtrack(); - } - break; - case opcodes.BEGGROUP: - group = groups[uarg]; - push({undo: {obj: group, prop: "start", value: group.start}}); - group.start = pos; - break; - case opcodes.ENDGROUP: - group = groups[uarg]; - push({undo: {obj: group, prop: "end", value: group.end}}); - group.end = pos; - break; - case opcodes.REFGROUP: - group = groups[uarg]; - if(group.start < 0 || group.end < 0){backtrack(); break;} - for(var i = group.start; i < group.end; i++){ - if(pos === s.length){prefix_match(); break;} - if(s[i] != s[pos]){backtrack(); break;} - pos++; - } - break; - case opcodes.SIMPLEOPT: - if(in_bitset(cpool[uarg], c)) pos++; break; - case opcodes.SIMPLESTAR: - while(in_bitset(cpool[uarg], c)) c = s[++pos]; break; - case opcodes.SIMPLEPLUS: - if(pos === s.length){prefix_match(); break;} - if(in_bitset(cpool[uarg], c)) - do c = s[++pos];while(in_bitset(cpool[uarg], c)); - else - backtrack(); - break; - case opcodes.ACCEPT: return accept(); - case opcodes.GOTO: - pc = pc + sarg; break; - case opcodes.PUSHBACK: - push({pos: {pc: pc + sarg, txt: pos}}); break; - case opcodes.SETMARK: - push - ({undo: {obj: re_register, prop: uarg, value: re_register[uarg]}}); - re_register[uarg] = pos; - break; - case opcodes.CHECKPROGRESS: - if(re_register[uarg] === pos) backtrack(); break; - default: throw new Error("Invalid bytecode"); - } - } - return 0; - } - return re_match_impl; - } - (); - function re_search_backward(re, s, pos){ - if(pos < 0 || pos > caml_ml_string_length(s)) - caml_invalid_argument("Str.search_backward"); - while(pos >= 0){ - var res = re_match(re, s, pos, 0); - if(res) return res; - pos--; - } - return [0]; - } - function caml_js_from_string(s){return caml_jsstring_of_string(s);} - function caml_ba_sub(ba, ofs, len){ - var changed_dim, mul = 1; - if(ba.layout == 0){ - for(var i = 1; i < ba.dims.length; i++) mul = mul * ba.dims[i]; - changed_dim = 0; - } - else{ - for(var i = 0; i < ba.dims.length - 1; i++) mul = mul * ba.dims[i]; - changed_dim = ba.dims.length - 1; - ofs = ofs - 1; - } - if(ofs < 0 || len < 0 || ofs + len > ba.dims[changed_dim]) - caml_invalid_argument("Bigarray.sub: bad sub-array"); - var new_dims = []; - for(var i = 0; i < ba.dims.length; i++) new_dims[i] = ba.dims[i]; - new_dims[changed_dim] = len; - mul *= caml_ba_get_size_per_element(ba.kind); - var new_data = ba.data.subarray(ofs * mul, (ofs + len) * mul); - return caml_ba_create_unsafe(ba.kind, ba.layout, new_dims, new_data); - } - function caml_gc_full_major(unit){ - if(typeof globalThis.gc == "function") globalThis.gc(); - return 0; - } - function caml_ml_mutex_try_lock(t){ - if(! t.locked){t.locked = true; return 1;} - return 0; - } - function caml_bytes_set32(s, i, i32){ - if(i >>> 0 >= s.l - 3) caml_bytes_bound_error(); - var - b4 = 0xFF & i32 >> 24, - b3 = 0xFF & i32 >> 16, - b2 = 0xFF & i32 >> 8, - b1 = 0xFF & i32; - caml_bytes_unsafe_set(s, i + 0, b1); - caml_bytes_unsafe_set(s, i + 1, b2); - caml_bytes_unsafe_set(s, i + 2, b3); - caml_bytes_unsafe_set(s, i + 3, b4); - return 0; - } - function caml_gr_sigio_signal(){return 0;} - function caml_ba_uint8_set32(ba, i0, v){ - var ofs = ba.offset(i0); - if(ofs + 3 >= ba.data.length) caml_array_bound_error(); - ba.set(ofs + 0, v & 0xff); - ba.set(ofs + 1, v >>> 8 & 0xff); - ba.set(ofs + 2, v >>> 16 & 0xff); - ba.set(ofs + 3, v >>> 24 & 0xff); - return 0; - } - function caml_sys_const_ostype_unix(){return os_type == "Unix" ? 1 : 0;} - function caml_unix_gmtime(t){ - var - d = new Date(t * 1000), - d_num = d.getTime(), - januaryfirst = new Date(Date.UTC(d.getUTCFullYear(), 0, 1)).getTime(), - doy = Math.floor((d_num - januaryfirst) / 86400000); - return [0, - d.getUTCSeconds(), - d.getUTCMinutes(), - d.getUTCHours(), - d.getUTCDate(), - d.getUTCMonth(), - d.getUTCFullYear() - 1900, - d.getUTCDay(), - doy, - false | 0]; - } - function caml_signbit_float(x){if(x == 0) x = 1 / x; return x < 0 ? 1 : 0;} - function caml_gr_current_x(){var s = caml_gr_state_get(); return s.x;} - function caml_gr_set_line_width(w){ - var s = caml_gr_state_get(); - s.line_width = w; - s.context.lineWidth = w; - return 0; - } - function caml_gr_set_font(f){ - var s = caml_gr_state_get(); - s.font = f; - s.context.font = s.text_size + "px " + caml_jsstring_of_string(s.font); - return 0; - } - function caml_gr_set_color(color){ - var s = caml_gr_state_get(); - function convert(number){ - var str = "" + number.toString(16); - while(str.length < 2) str = "0" + str; - return str; - } - var r = color >> 16 & 0xff, g = color >> 8 & 0xff, b = color >> 0 & 0xff; - s.color = color; - var c_str = "#" + convert(r) + convert(g) + convert(b); - s.context.fillStyle = c_str; - s.context.strokeStyle = c_str; - return 0; - } - function caml_gr_moveto(x, y){ - var s = caml_gr_state_get(); - s.x = x; - s.y = y; - return 0; - } - function caml_gr_resize_window(w, h){ - var s = caml_gr_state_get(); - s.width = w; - s.height = h; - s.canvas.width = w; - s.canvas.height = h; - return 0; - } - function caml_gr_state_init(){ - caml_gr_moveto(caml_gr_state.x, caml_gr_state.y); - caml_gr_resize_window(caml_gr_state.width, caml_gr_state.height); - caml_gr_set_line_width(caml_gr_state.line_width); - caml_gr_set_text_size(caml_gr_state.text_size); - caml_gr_set_font(caml_gr_state.font); - caml_gr_set_color(caml_gr_state.color); - caml_gr_set_window_title(caml_gr_state.title); - caml_gr_state.context.textBaseline = "bottom"; - } - function caml_ba_kind_of_typed_array(ta){ - var kind; - if(ta instanceof Float32Array) - kind = 0; - else if(ta instanceof Float64Array) - kind = 1; - else if(ta instanceof Int8Array) - kind = 2; - else if(ta instanceof Uint8Array) - kind = 3; - else if(ta instanceof Int16Array) - kind = 4; - else if(ta instanceof Uint16Array) - kind = 5; - else if(ta instanceof Int32Array) - kind = 6; - else if(ta instanceof Uint32Array) - kind = 6; - else - caml_invalid_argument("caml_ba_kind_of_typed_array: unsupported kind"); - return kind; - } - function caml_ba_from_typed_array(ta){ - var kind = caml_ba_kind_of_typed_array(ta); - return caml_ba_create_unsafe(kind, 0, [ta.length], ta); - } - function caml_ml_seek_out(chanid, pos){return caml_seek_out(chanid, pos);} - function caml_js_typeof(o){return typeof o;} - function caml_hash_mix_string(h, v){ - return caml_hash_mix_jsbytes(h, caml_jsbytes_of_string(v)); - } - function caml_string_hash(h, v){ - var h = caml_hash_mix_string(h, v), h = caml_hash_mix_final(h); - return h & 0x3FFFFFFF; - } - function caml_restore_raw_backtrace(exn, bt){return 0;} - function caml_gr_lineto(x, y){ - var s = caml_gr_state_get(); - s.context.beginPath(); - s.context.moveTo(s.x, s.height - s.y); - s.context.lineTo(x, s.height - y); - s.context.stroke(); - s.x = x; - s.y = y; - return 0; - } - function caml_js_function_arity(f){return f.l >= 0 ? f.l : f.l = f.length;} - function caml_js_wrap_meth_callback_unsafe(f){ - return function(){ - var len = caml_js_function_arity(f) - 1, args = new Array(len + 1); - args[0] = this; - for(var i = 0; i < len; i++) args[i + 1] = arguments[i]; - return caml_callback(f, args);}; - } - function caml_ba_dim_3(ba){return caml_ba_dim(ba, 2);} - function caml_is_special_exception(exn){ - switch(exn[2]){case - 8:case - 11:case - 12: return 1;default: return 0; - } - } - function caml_format_exception(exn){ - var r = ""; - if(exn[0] == 0){ - r += exn[1][1]; - if - (exn.length == 3 && exn[2][0] == 0 && caml_is_special_exception(exn[1])) - var bucket = exn[2], start = 1; - else - var start = 2, bucket = exn; - r += "("; - for(var i = start; i < bucket.length; i++){ - if(i > start) r += ", "; - var v = bucket[i]; - if(typeof v == "number") - r += v.toString(); - else if(v instanceof MlBytes) - r += '"' + v.toString() + '"'; - else if(typeof v == "string") - r += '"' + v.toString() + '"'; - else - r += "_"; - } - r += ")"; - } - else if(exn[0] == 248) r += exn[1]; - return r; - } - function caml_fatal_uncaught_exception(err){ - if(err instanceof Array && (err[0] == 0 || err[0] == 248)){ - var handler = caml_named_value("Printexc.handle_uncaught_exception"); - if(handler) - caml_callback(handler, [err, false]); - else{ - var - msg = caml_format_exception(err), - at_exit = caml_named_value("Pervasives.do_at_exit"); - if(at_exit) caml_callback(at_exit, [0]); - console.error("Fatal error: exception " + msg + "\n"); - if(err.js_error) throw err.js_error; - } - } - else - throw err; - } - function caml_ephe_check_data(x){ - return x[caml_ephe_data_offset] === undefined ? 0 : 1; - } - function caml_bytes_get16(s, i){ - if(i >>> 0 >= s.l - 1) caml_bytes_bound_error(); - var - b1 = caml_bytes_unsafe_get(s, i), - b2 = caml_bytes_unsafe_get(s, i + 1); - return b2 << 8 | b1; - } - function caml_obj_make_forward(b, v){b[0] = 250; b[1] = v; return 0;} - function caml_js_from_bool(x){return ! ! x;} - function caml_ml_set_channel_name(chanid, name){ - var chan = caml_ml_channels[chanid]; - chan.name = name; - return 0; - } - function caml_exp2_float(x){return Math.pow(2, x);} - function caml_gr_close_graph(){ - var s = caml_gr_state_get(); - s.canvas.width = 0; - s.canvas.height = 0; - return 0; - } - function caml_ml_domain_cpu_relax(unit){return 0;} - function caml_create_string(len){caml_invalid_argument("String.create");} - function caml_ml_input_block(chanid, ba, i, l){ - var - chan = caml_ml_channels[chanid], - n = l, - avail = chan.buffer_max - chan.buffer_curr; - if(l <= avail){ - ba.set(chan.buffer.subarray(chan.buffer_curr, chan.buffer_curr + l), i); - chan.buffer_curr += l; - } - else if(avail > 0){ - ba.set - (chan.buffer.subarray(chan.buffer_curr, chan.buffer_curr + avail), i); - chan.buffer_curr += avail; - n = avail; - } - else{ - chan.buffer_curr = 0; - chan.buffer_max = 0; - caml_refill(chan); - var avail = chan.buffer_max - chan.buffer_curr; - if(n > avail) n = avail; - ba.set(chan.buffer.subarray(chan.buffer_curr, chan.buffer_curr + n), i); - chan.buffer_curr += n; - } - return n | 0; - } - function caml_md5_chan(chanid, toread){ - var ctx = caml_MD5Init(), buffer = new Uint8Array(4096); - if(toread < 0) - while(true){ - var read = caml_ml_input_block(chanid, buffer, 0, buffer.length); - if(read == 0) break; - caml_MD5Update(ctx, buffer.subarray(0, read), read); - } - else - while(toread > 0){ - var - read = - caml_ml_input_block - (chanid, buffer, 0, toread > buffer.length ? buffer.length : toread); - if(read == 0) caml_raise_end_of_file(); - caml_MD5Update(ctx, buffer.subarray(0, read), read); - toread -= read; - } - return caml_string_of_array(caml_MD5Final(ctx)); - } - function caml_atanh_float(x){return Math.atanh(x);} - function caml_ml_condition_signal(t){return 0;} - function caml_unix_findnext(dir_handle){return caml_unix_readdir(dir_handle); - } - function caml_ml_output_bytes(chanid, buffer, offset, len){ - var chan = caml_ml_channels[chanid]; - if(! chan.opened) - caml_raise_sys_error("Cannot output to a closed channel"); - var buffer = caml_uint8_array_of_bytes(buffer); - buffer = buffer.subarray(offset, offset + len); - if(chan.buffer_curr + buffer.length > chan.buffer.length){ - var b = new Uint8Array(chan.buffer_curr + buffer.length); - b.set(chan.buffer); - chan.buffer = b; - } - switch(chan.buffered){ - case 0: - chan.buffer.set(buffer, chan.buffer_curr); - chan.buffer_curr += buffer.length; - caml_ml_flush(chanid); - break; - case 1: - chan.buffer.set(buffer, chan.buffer_curr); - chan.buffer_curr += buffer.length; - if(chan.buffer_curr >= chan.buffer.length) caml_ml_flush(chanid); - break; - case 2: - var id = buffer.lastIndexOf(10); - if(id < 0){ - chan.buffer.set(buffer, chan.buffer_curr); - chan.buffer_curr += buffer.length; - if(chan.buffer_curr >= chan.buffer.length) caml_ml_flush(chanid); - } - else{ - chan.buffer.set(buffer.subarray(0, id + 1), chan.buffer_curr); - chan.buffer_curr += id + 1; - caml_ml_flush(chanid); - chan.buffer.set(buffer.subarray(id + 1), chan.buffer_curr); - chan.buffer_curr += buffer.length - id - 1; - } - break; - } - return 0; - } - function caml_ml_output(chanid, buffer, offset, len){ - return caml_ml_output_bytes - (chanid, caml_bytes_of_string(buffer), offset, len); - } - function caml_ml_domain_id(unit){return caml_domain_id;} - function caml_ephe_get_data(x){ - return x[caml_ephe_data_offset] === undefined - ? 0 - : [0, x[caml_ephe_data_offset]]; - } - function caml_xmlhttprequest_create(unit){ - if(typeof globalThis.XMLHttpRequest !== "undefined") - try{return new globalThis.XMLHttpRequest();}catch(e){} - if(typeof globalThis.activeXObject !== "undefined"){ - try{return new globalThis.activeXObject("Msxml2.XMLHTTP");}catch(e){} - try{return new globalThis.activeXObject("Msxml3.XMLHTTP");}catch(e){} - try{return new globalThis.activeXObject("Microsoft.XMLHTTP");}catch(e){} - } - caml_failwith("Cannot create a XMLHttpRequest"); - } - function caml_trampoline_return(f, args){return {joo_tramp: f, joo_args: args}; - } - function caml_ml_is_buffered(chanid){ - return caml_ml_channels[chanid].buffered ? 1 : 0; - } - function caml_array_append(a1, a2){ - var l1 = a1.length, l2 = a2.length, l = l1 + l2 - 1, a = new Array(l); - a[0] = 0; - var i = 1, j = 1; - for(; i < l1; i++) a[i] = a1[i]; - for(; i < l; i++, j++) a[i] = a2[j]; - return a; - } - function caml_unix_gettimeofday(){return new Date().getTime() / 1000;} - function caml_unix_time(){return Math.floor(caml_unix_gettimeofday());} - function caml_ml_set_channel_refill(chanid, f){ - caml_ml_channels[chanid].refill = f; - return 0; - } - function caml_runtime_events_create_cursor(target){return {};} - function caml_fill_bytes(s, i, l, c){ - if(l > 0) - if(i == 0 && (l >= s.l || s.t == 2 && l >= s.c.length)) - if(c == 0){ - s.c = ""; - s.t = 2; - } - else{ - s.c = caml_str_repeat(l, String.fromCharCode(c)); - s.t = l == s.l ? 0 : 2; - } - else{ - if(s.t != 4) caml_convert_bytes_to_array(s); - for(l += i; i < l; i++) s.c[i] = c; - } - return 0; - } - function caml_js_expr(s){ - console.error("caml_js_expr: fallback to runtime evaluation\n"); - return eval(caml_jsstring_of_string(s)); - } - function caml_ml_runtime_warnings_enabled(_unit){return caml_runtime_warnings; - } - function caml_output_value_to_bytes(v, flags){ - return caml_bytes_of_array(caml_output_val(v, flags)); - } - function caml_eventlog_resume(unit){return 0;} - function caml_md5_string(s, ofs, len){ - return caml_md5_bytes(caml_bytes_of_string(s), ofs, len); - } - function caml_array_of_string(x){return caml_uint8_array_of_string(x);} - function caml_string_equal(s1, s2){if(s1 === s2) return 1; return 0;} - function caml_jsoo_flags_use_js_string(unit){return 1;} - function caml_output_value_to_buffer(s, ofs, len, v, flags){ - var t = caml_output_val(v, flags); - if(t.length > len) caml_failwith("Marshal.to_buffer: buffer overflow"); - caml_blit_bytes(t, 0, s, ofs, t.length); - return 0; - } - function re_replacement_text(repl, groups, orig){ - var - repl = caml_jsbytes_of_string(repl), - len = repl.length, - orig = caml_jsbytes_of_string(orig), - res = "", - n = 0, - cur, - start, - end, - c; - while(n < len){ - cur = repl.charAt(n++); - if(cur != "\\") - res += cur; - else{ - if(n == len) caml_failwith("Str.replace: illegal backslash sequence"); - cur = repl.charAt(n++); - switch(cur){ - case "\\": - res += cur; break; - case "0": - case "1": - case "2": - case "3": - case "4": - case "5": - case "6": - case "7": - case "8": - case "9": - c = + cur; - if(c * 2 >= groups.length - 1) - caml_failwith("Str.replace: reference to unmatched group"); - start = caml_array_get(groups, c * 2); - end = caml_array_get(groups, c * 2 + 1); - if(start == - 1) - caml_failwith("Str.replace: reference to unmatched group"); - res += orig.slice(start, end); - break; - default: res += "\\" + cur; - } - } - } - return caml_string_of_jsbytes(res); - } - function caml_pure_js_expr(s){ - console.error("caml_pure_js_expr: fallback to runtime evaluation\n"); - return eval(caml_jsstring_of_string(s)); - } - function caml_blit_string(a, b, c, d, e){ - caml_blit_bytes(caml_bytes_of_string(a), b, c, d, e); - return 0; - } - function blit_nat(nat1, ofs1, nat2, ofs2, len){ - for(var i = 0; i < len; i++) nat1.data[ofs1 + i] = nat2.data[ofs2 + i]; - return 0; - } - function caml_bigstring_blit_ba_to_bytes(ba1, pos1, bytes2, pos2, len){ - if(12 != ba1.kind) - caml_invalid_argument("caml_bigstring_blit_string_to_ba: kind mismatch"); - if(len == 0) return 0; - var ofs1 = ba1.offset(pos1); - if(ofs1 + len > ba1.data.length) caml_array_bound_error(); - if(pos2 + len > caml_ml_bytes_length(bytes2)) caml_array_bound_error(); - var slice = ba1.data.slice(ofs1, ofs1 + len); - caml_blit_bytes(caml_bytes_of_array(slice), 0, bytes2, pos2, len); - return 0; - } - function caml_unix_stat(name){ - var root = resolve_fs_device(name); - if(! root.device.stat) caml_failwith("caml_unix_stat: not implemented"); - return root.device.stat(root.rest, true); - } - function caml_register_named_value(nm, v){ - caml_named_values[caml_jsbytes_of_string(nm)] = v; - return 0; - } - function jsoo_create_file_extern(name, content){ - if(globalThis.jsoo_create_file) - globalThis.jsoo_create_file(name, content); - else{ - if(! globalThis.caml_fs_tmp) globalThis.caml_fs_tmp = []; - globalThis.caml_fs_tmp.push({name: name, content: content}); - } - return 0; - } - function caml_unix_stat_64(name){ - var r = caml_unix_stat(name); - r[9] = caml_int64_of_int32(r[9]); - } - function caml_to_js_string(s){return caml_jsstring_of_string(s);} - function caml_ml_mutex_lock(t){ - if(t.locked) - caml_failwith("Mutex.lock: mutex already locked. Cannot wait."); - else - t.locked = true; - return 0; - } - function re_search_forward(re, s, pos){ - if(pos < 0 || pos > caml_ml_string_length(s)) - caml_invalid_argument("Str.search_forward"); - while(pos <= caml_ml_string_length(s)){ - var res = re_match(re, s, pos, 0); - if(res) return res; - pos++; - } - return [0]; - } - function caml_make_vect(len, init){ - if(len < 0) caml_array_bound_error(); - var len = len + 1 | 0, b = new Array(len); - b[0] = 0; - for(var i = 1; i < len; i++) b[i] = init; - return b; - } - function caml_ml_seek_in(chanid, pos){return caml_seek_in(chanid, pos);} - function caml_sys_read_directory(name){ - var - root = resolve_fs_device(name), - a = root.device.readdir(root.rest), - l = new Array(a.length + 1); - l[0] = 0; - for(var i = 0; i < a.length; i++) l[i + 1] = caml_string_of_jsbytes(a[i]); - return l; - } - function caml_ml_output_char(chanid, c){ - var s = caml_string_of_jsbytes(String.fromCharCode(c)); - caml_ml_output(chanid, s, 0, 1); - return 0; - } - function caml_sys_const_ostype_win32(){return os_type == "Win32" ? 1 : 0;} - function caml_obj_is_block(x){return + (x instanceof Array);} - function caml_obj_set_raw_field(o, i, v){return o[i + 1] = v;} - function caml_js_var(x){ - var x = caml_jsstring_of_string(x); - if(! x.match(/^[a-zA-Z_$][a-zA-Z_$0-9]*(\.[a-zA-Z_$][a-zA-Z_$0-9]*)*$/)) - console.error - ('caml_js_var: "' + x - + '" is not a valid JavaScript variable. continuing ..'); - return eval(x); - } - function caml_trunc_float(x){return Math.trunc(x);} - function caml_ephe_unset_data(x){ - if(globalThis.FinalizationRegistry && globalThis.WeakRef) - if(x[1] instanceof globalThis.FinalizationRegistry) - for(var j = caml_ephe_key_offset; j < x.length; j++){ - var key = x[j]; - if(key instanceof globalThis.WeakRef){ - key = key.deref(); - if(key) x[1].unregister(key); - } - } - x[caml_ephe_data_offset] = undefined; - return 0; - } - function caml_ephe_set_data(x, data){ - if(globalThis.FinalizationRegistry && globalThis.WeakRef) - if(! (x[1] instanceof globalThis.FinalizationRegistry)){ - x[1] = - new - globalThis.FinalizationRegistry - (function(){caml_ephe_unset_data(x);}); - for(var j = caml_ephe_key_offset; j < x.length; j++){ - var key = x[j]; - if(key instanceof globalThis.WeakRef){ - key = key.deref(); - if(key) x[1].register(key, undefined, key); - } - } - } - x[caml_ephe_data_offset] = data; - return 0; - } - function caml_ephe_blit_data(src, dst){ - var n = src[caml_ephe_data_offset]; - if(n === undefined) - caml_ephe_unset_data(dst); - else - caml_ephe_set_data(dst, n); - return 0; - } - function caml_is_printable(c){return + (c > 31 && c < 127);} - function caml_bytes_lessequal(s1, s2){ - s1.t & 6 && caml_convert_string_to_bytes(s1); - s2.t & 6 && caml_convert_string_to_bytes(s2); - return s1.c <= s2.c ? 1 : 0; - } - function caml_array_of_bytes(x){return caml_uint8_array_of_bytes(x);} - function caml_equal(x, y){return + (caml_compare_val(x, y, false) == 0);} - function re_partial_match(re, s, pos){ - if(pos < 0 || pos > caml_ml_string_length(s)) - caml_invalid_argument("Str.partial_match"); - var res = re_match(re, s, pos, 1); - return res ? res : [0]; - } - function caml_sys_random_seed(){ - if(globalThis.crypto) - if(typeof globalThis.crypto.getRandomValues === "function"){ - var a = new Uint32Array(1); - globalThis.crypto.getRandomValues(a); - return [0, a[0]]; - } - else if(globalThis.crypto.randomBytes === "function"){ - var buff = globalThis.crypto.randomBytes(4), a = new Uint32Array(buff); - return [0, a[0]]; - } - var now = new Date().getTime(), x = now ^ 0xffffffff * Math.random(); - return [0, x]; - } - var all_finalizers = new globalThis.Set(); - function caml_final_register_called_without_value(cb, a){ - if(globalThis.FinalizationRegistry && a instanceof Object){ - var - x = - new - globalThis.FinalizationRegistry - (function(x){all_finalizers.delete(x); cb(0); return;}); - x.register(a, x); - all_finalizers.add(x); - } - return 0; - } - function caml_ba_get_2(ba, i0, i1){return ba.get(ba.offset([i0, i1]));} - function caml_ba_uint8_set16(ba, i0, v){ - var ofs = ba.offset(i0); - if(ofs + 1 >= ba.data.length) caml_array_bound_error(); - ba.set(ofs + 0, v & 0xff); - ba.set(ofs + 1, v >>> 8 & 0xff); - return 0; - } - function caml_lazy_reset_to_lazy(o){ - caml_obj_update_tag(o, 244, 246); - return 0; - } - function caml_js_delete(o, f){delete o[f]; return 0;} - function caml_int_of_string(s){ - var - r = caml_parse_sign_and_base(s), - i = r[0], - sign = r[1], - base = r[2], - len = caml_ml_string_length(s), - threshold = - 1 >>> 0, - c = i < len ? caml_string_unsafe_get(s, i) : 0, - d = caml_parse_digit(c); - if(d < 0 || d >= base) caml_failwith("int_of_string"); - var res = d; - for(i++; i < len; i++){ - c = caml_string_unsafe_get(s, i); - if(c == 95) continue; - d = caml_parse_digit(c); - if(d < 0 || d >= base) break; - res = base * res + d; - if(res > threshold) caml_failwith("int_of_string"); - } - if(i != len) caml_failwith("int_of_string"); - res = sign * res; - if(base == 10 && (res | 0) != res) caml_failwith("int_of_string"); - return res | 0; - } - function caml_list_mount_point(){ - var prev = 0; - for(var i = 0; i < jsoo_mount_point.length; i++){ - var old = prev; - prev = [0, caml_string_of_jsbytes(jsoo_mount_point[i].path), old]; - } - return prev; - } - var - caml_marshal_constants = - {PREFIX_SMALL_BLOCK: 0x80, - PREFIX_SMALL_INT: 0x40, - PREFIX_SMALL_STRING: 0x20, - CODE_INT8: 0x00, - CODE_INT16: 0x01, - CODE_INT32: 0x02, - CODE_INT64: 0x03, - CODE_SHARED8: 0x04, - CODE_SHARED16: 0x05, - CODE_SHARED32: 0x06, - CODE_BLOCK32: 0x08, - CODE_BLOCK64: 0x13, - CODE_STRING8: 0x09, - CODE_STRING32: 0x0A, - CODE_DOUBLE_BIG: 0x0B, - CODE_DOUBLE_LITTLE: 0x0C, - CODE_DOUBLE_ARRAY8_BIG: 0x0D, - CODE_DOUBLE_ARRAY8_LITTLE: 0x0E, - CODE_DOUBLE_ARRAY32_BIG: 0x0F, - CODE_DOUBLE_ARRAY32_LITTLE: 0x07, - CODE_CODEPOINTER: 0x10, - CODE_INFIXPOINTER: 0x11, - CODE_CUSTOM: 0x12, - CODE_CUSTOM_LEN: 0x18, - CODE_CUSTOM_FIXED: 0x19}; - function caml_obj_raw_field(o, i){return o[i + 1];} - function caml_js_equals(x, y){return + (x == y);} - function caml_obj_compare_and_swap(x, i, old, n){ - if(x[i + 1] == old){x[i + 1] = n; return 1;} - return 0; - } - function bigstring_to_typed_array(bs){return bs.data;} - function caml_gr_arc_aux(ctx, cx, cy, ry, rx, a1, a2){ - while(a1 > a2) a2 += 360; - a1 /= 180; - a2 /= 180; - var - rot = 0, - xPos, - yPos, - xPos_prev, - yPos_prev, - space = 2, - num = (a2 - a1) * Math.PI * ((rx + ry) / 2) / space | 0, - delta = (a2 - a1) * Math.PI / num, - i = a1 * Math.PI; - for(var j = 0; j <= num; j++){ - xPos = - cx - rx * Math.sin(i) * Math.sin(rot * Math.PI) - + ry * Math.cos(i) * Math.cos(rot * Math.PI); - xPos = xPos.toFixed(2); - yPos = - cy + ry * Math.cos(i) * Math.sin(rot * Math.PI) - + rx * Math.sin(i) * Math.cos(rot * Math.PI); - yPos = yPos.toFixed(2); - if(j == 0) - ctx.moveTo(xPos, yPos); - else if(xPos_prev != xPos || yPos_prev != yPos) ctx.lineTo(xPos, yPos); - xPos_prev = xPos; - yPos_prev = yPos; - i -= delta; - } - return 0; - } - function caml_gr_fill_arc(x, y, rx, ry, a1, a2){ - var s = caml_gr_state_get(); - s.context.beginPath(); - caml_gr_arc_aux(s.context, x, s.height - y, rx, ry, a1, a2); - s.context.fill(); - return 0; - } - function caml_ba_slice(ba, vind){ - vind = caml_js_from_array(vind); - var num_inds = vind.length, index = [], sub_dims = [], ofs; - if(num_inds > ba.dims.length) - caml_invalid_argument("Bigarray.slice: too many indices"); - if(ba.layout == 0){ - for(var i = 0; i < num_inds; i++) index[i] = vind[i]; - for(; i < ba.dims.length; i++) index[i] = 0; - sub_dims = ba.dims.slice(num_inds); - } - else{ - for(var i = 0; i < num_inds; i++) - index[ba.dims.length - num_inds + i] = vind[i]; - for(var i = 0; i < ba.dims.length - num_inds; i++) index[i] = 1; - sub_dims = ba.dims.slice(0, ba.dims.length - num_inds); - } - ofs = ba.offset(index); - var - size = caml_ba_get_size(sub_dims), - size_per_element = caml_ba_get_size_per_element(ba.kind), - new_data = - ba.data.subarray - (ofs * size_per_element, (ofs + size) * size_per_element); - return caml_ba_create_unsafe(ba.kind, ba.layout, sub_dims, new_data); - } - function caml_js_wrap_callback_unsafe(f){ - return function(){ - var len = caml_js_function_arity(f), args = new Array(len); - for(var i = 0; i < len; i++) args[i] = arguments[i]; - return caml_callback(f, args);}; - } - function caml_ba_kind(ba){return ba.kind;} - function caml_alloc_dummy_infix(){ - return function f(x){return caml_call_gen(f.fun, [x]);}; - } - function caml_js_fun_call(f, a){ - switch(a.length){ - case 1: - return f(); - case 2: - return f(a[1]); - case 3: - return f(a[1], a[2]); - case 4: - return f(a[1], a[2], a[3]); - case 5: - return f(a[1], a[2], a[3], a[4]); - case 6: - return f(a[1], a[2], a[3], a[4], a[5]); - case 7: - return f(a[1], a[2], a[3], a[4], a[5], a[6]); - case 8: - return f(a[1], a[2], a[3], a[4], a[5], a[6], a[7]); - } - return f.apply(null, caml_js_from_array(a)); - } - function caml_gc_major_slice(work){return 0;} - function caml_js_pure_expr(f){return caml_callback(f, [0]);} - function compare_digits_nat(nat1, ofs1, nat2, ofs2){ - if(nat1.data[ofs1] > nat2.data[ofs2]) return 1; - if(nat1.data[ofs1] < nat2.data[ofs2]) return - 1; - return 0; - } - function caml_ml_input(chanid, b, i, l){ - var ba = caml_uint8_array_of_bytes(b); - return caml_ml_input_block(chanid, ba, i, l); - } - function caml_gr_wait_event(_evl){ - caml_failwith - ("caml_gr_wait_event not Implemented: use Graphics_js instead"); - } - function caml_gr_sigio_handler(){return 0;} - function caml_hash_mix_bigstring(h, bs){ - return caml_hash_mix_bytes_arr(h, bs.data); - } - function caml_record_backtrace(b){ - caml_record_backtrace_flag = b; - return 0; - } - function caml_unix_cleanup(){} - function caml_sys_get_config(){ - return [0, caml_string_of_jsbytes(os_type), 32, 0]; - } - function caml_sys_const_backend_type(){ - return [0, caml_string_of_jsbytes("js_of_ocaml")]; - } - function caml_obj_is_shared(x){return 1;} - function caml_ml_out_channels_list(){ - var l = 0; - for(var c = 0; c < caml_ml_channels.length; c++) - if - (caml_ml_channels[c] && caml_ml_channels[c].opened - && caml_ml_channels[c].out) - l = [0, caml_ml_channels[c].fd, l]; - return l; - } - function caml_asinh_float(x){return Math.asinh(x);} - function caml_pos_out(chanid){ - var chan = caml_ml_channels[chanid]; - return chan.offset + chan.buffer_curr; - } - function bigstring_of_array_buffer(ab){ - var ta = new Uint8Array(ab); - return caml_ba_create_unsafe(12, 0, [ta.length], ta); - } - function caml_mod(x, y){if(y == 0) caml_raise_zero_divide(); return x % y;} - function caml_ba_init(){return 0;} - function caml_unix_filedescr_of_fd(x){return x;} - function re_string_match(re, s, pos){ - if(pos < 0 || pos > caml_ml_string_length(s)) - caml_invalid_argument("Str.string_match"); - var res = re_match(re, s, pos, 0); - return res ? res : [0]; - } - function BigStringReader(bs, i){this.s = bs; this.i = i;} - BigStringReader.prototype = - {read8u: function(){return caml_ba_get_1(this.s, this.i++);}, - read8s: function(){return caml_ba_get_1(this.s, this.i++) << 24 >> 24;}, - read16u: - function(){ - var s = this.s, i = this.i; - this.i = i + 2; - return caml_ba_get_1(s, i) << 8 | caml_ba_get_1(s, i + 1); - }, - read16s: - function(){ - var s = this.s, i = this.i; - this.i = i + 2; - return caml_ba_get_1(s, i) << 24 >> 16 | caml_ba_get_1(s, i + 1); - }, - read32u: - function(){ - var s = this.s, i = this.i; - this.i = i + 4; - return (caml_ba_get_1(s, i) << 24 | caml_ba_get_1(s, i + 1) << 16 - | caml_ba_get_1(s, i + 2) << 8 - | caml_ba_get_1(s, i + 3)) - >>> 0; - }, - read32s: - function(){ - var s = this.s, i = this.i; - this.i = i + 4; - return caml_ba_get_1(s, i) << 24 | caml_ba_get_1(s, i + 1) << 16 - | caml_ba_get_1(s, i + 2) << 8 - | caml_ba_get_1(s, i + 3); - }, - readstr: - function(len){ - var i = this.i, arr = new Array(len); - for(var j = 0; j < len; j++) arr[j] = caml_ba_get_1(this.s, i + j); - this.i = i + len; - return caml_string_of_array(arr); - }, - readuint8array: - function(len){ - var i = this.i, offset = this.offset(i); - this.i = i + len; - return this.s.data.subarray(offset, offset + len); - }}; - function caml_gr_dump_image(im){ - var data = [0]; - for(var i = 0; i < im.height; i++){ - data[i + 1] = [0]; - for(var j = 0; j < im.width; j++){ - var - o = i * (im.width * 4) + j * 4, - r = im.data[o + 0], - g = im.data[o + 1], - b = im.data[o + 2]; - data[i + 1][j + 1] = (r << 16) + (g << 8) + b; - } - } - return data; - } - function caml_ba_get_generic(ba, i){ - var ofs = ba.offset(caml_js_from_array(i)); - return ba.get(ofs); - } - function caml_unix_startup(){} - function caml_get_exception_backtrace(){return 0;} - function caml_format_float(fmt, x){ - function toFixed(x, dp){ - if(Math.abs(x) < 1.0) - return x.toFixed(dp); - else{ - var e = parseInt(x.toString().split("+")[1]); - if(e > 20){ - e -= 20; - x /= Math.pow(10, e); - x += new Array(e + 1).join("0"); - if(dp > 0) x = x + "." + new Array(dp + 1).join("0"); - return x; - } - else - return x.toFixed(dp); - } - } - var s, f = caml_parse_format(fmt), prec = f.prec < 0 ? 6 : f.prec; - if(x < 0 || x == 0 && 1 / x == - Infinity){f.sign = - 1; x = - x;} - if(isNaN(x)){ - s = "nan"; - f.filler = " "; - } - else if(! isFinite(x)){ - s = "inf"; - f.filler = " "; - } - else - switch(f.conv){ - case "e": - var s = x.toExponential(prec), i = s.length; - if(s.charAt(i - 3) == "e") - s = s.slice(0, i - 1) + "0" + s.slice(i - 1); - break; - case "f": - s = toFixed(x, prec); break; - case "g": - prec = prec ? prec : 1; - s = x.toExponential(prec - 1); - var j = s.indexOf("e"), exp = + s.slice(j + 1); - if(exp < - 4 || x >= 1e21 || x.toFixed(0).length > prec){ - var i = j - 1; - while(s.charAt(i) == "0") i--; - if(s.charAt(i) == ".") i--; - s = s.slice(0, i + 1) + s.slice(j); - i = s.length; - if(s.charAt(i - 3) == "e") - s = s.slice(0, i - 1) + "0" + s.slice(i - 1); - break; - } - else{ - var p = prec; - if(exp < 0){ - p -= exp + 1; - s = x.toFixed(p); - } - else - while(s = x.toFixed(p), s.length > prec + 1) p--; - if(p){ - var i = s.length - 1; - while(s.charAt(i) == "0") i--; - if(s.charAt(i) == ".") i--; - s = s.slice(0, i + 1); - } - } - break; - } - return caml_finish_formatting(f, s); - } - function caml_mount_autoload(name, f){ - var - path = caml_make_path(name), - name = caml_trailing_slash(path.join("/")); - jsoo_mount_point.push({path: name, device: new MlFakeDevice(name, f)}); - return 0; - } - function caml_string_lessthan(s1, s2){return s1 < s2 ? 1 : 0;} - function caml_string_greaterthan(s1, s2){return caml_string_lessthan(s2, s1); - } - function caml_div(x, y){ - if(y == 0) caml_raise_zero_divide(); - return x / y | 0; - } - function caml_obj_dup(x){ - var l = x.length, a = new Array(l); - for(var i = 0; i < l; i++) a[i] = x[i]; - return a; - } - function caml_ephe_get_data_copy(x){ - return x[caml_ephe_data_offset] === undefined - ? 0 - : [0, caml_obj_dup(x[caml_ephe_data_offset])]; - } - function caml_memprof_start(rate, stack_size, tracker){return 0;} - function caml_sys_get_argv(a){return [0, caml_argv[1], caml_argv];} - function caml_ml_domain_set_name(_name){return 0;} - function caml_js_to_bool(x){return + x;} - function caml_gr_create_image(x, y){ - var s = caml_gr_state_get(); - return s.context.createImageData(x, y); - } - function caml_ephe_get_key_copy(x, i){ - if(i < 0 || caml_ephe_key_offset + i >= x.length) - caml_invalid_argument("Weak.get_copy"); - var y = caml_ephe_get_key(x, i); - if(y === 0) return y; - var z = y[1]; - if(z instanceof Array) return [0, caml_obj_dup(z)]; - return y; - } - function caml_lessthan(x, y){return + (caml_compare_val(x, y, false) < 0);} - function caml_raw_backtrace_next_slot(){return 0;} - function caml_build_symbols(toc){ - var symb; - while(toc) - if(caml_jsstring_of_string(toc[1][1]) == "SYJS"){symb = toc[1][2]; break;} - else - toc = toc[2]; - var r = {}; - if(symb) - for(var i = 1; i < symb.length; i++) - r[caml_jsstring_of_string(symb[i][1])] = symb[i][2]; - return r; - } - function caml_register_global(n, v, name_opt){ - if(name_opt){ - var name = name_opt; - if(globalThis.toplevelReloc) - n = caml_callback(globalThis.toplevelReloc, [name]); - else if(caml_global_data.toc){ - if(! caml_global_data.symbols) - caml_global_data.symbols = caml_build_symbols(caml_global_data.toc); - var nid = caml_global_data.symbols[name]; - if(nid >= 0) - n = nid; - else - caml_failwith("caml_register_global: cannot locate " + name); - } - } - caml_global_data[n + 1] = v; - if(name_opt) caml_global_data[name_opt] = v; - } - function mult_nat(nat1, ofs1, len1, nat2, ofs2, len2, nat3, ofs3, len3){ - var carry = 0; - for(var i = 0; i < len3; i++) - carry += - mult_digit_nat - (nat1, ofs1 + i, len1 - i, nat2, ofs2, len2, nat3, ofs3 + i); - return carry; - } - function square_nat(nat1, ofs1, len1, nat2, ofs2, len2){ - var carry = 0; - carry += add_nat(nat1, ofs1, len1, nat1, ofs1, len1, 0); - carry += mult_nat(nat1, ofs1, len1, nat2, ofs2, len2, nat2, ofs2, len2); - return carry; - } - function caml_js_from_float(x){return x;} - function caml_floatarray_create(len){ - if(len < 0) caml_array_bound_error(); - var len = len + 1 | 0, b = new Array(len); - b[0] = 254; - for(var i = 1; i < len; i++) b[i] = 0; - return b; - } - function caml_gc_stat(){ - return [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; - } - function caml_get_major_credit(n){return 0;} - function caml_sys_modify_argv(arg){caml_argv = arg; return 0;} - var caml_method_cache = []; - function caml_get_public_method(obj, tag, cacheid){ - var meths = obj[1], ofs = caml_method_cache[cacheid]; - if(ofs === undefined) - for(var i = caml_method_cache.length; i < cacheid; i++) - caml_method_cache[i] = 0; - else if(meths[ofs] === tag) return meths[ofs - 1]; - var li = 3, hi = meths[1] * 2 + 1, mi; - while(li < hi){ - mi = li + hi >> 1 | 1; - if(tag < meths[mi + 1]) hi = mi - 2; else li = mi; - } - caml_method_cache[cacheid] = li + 1; - return tag == meths[li + 1] ? meths[li] : 0; - } - function caml_js_get_console(){ - var - c = console, - m = - ["log", - "debug", - "info", - "warn", - "error", - "assert", - "dir", - "dirxml", - "trace", - "group", - "groupCollapsed", - "groupEnd", - "time", - "timeEnd"]; - function f(){} - for(var i = 0; i < m.length; i++) if(! c[m[i]]) c[m[i]] = f; - return c; - } - function caml_sys_unsafe_getenv(name){return caml_sys_getenv(name);} - function caml_ml_open_descriptor_in(fd){ - var file = caml_sys_fds[fd]; - if(file.flags.wronly) caml_raise_sys_error("fd " + fd + " is writeonly"); - var - refill = null, - channel = - {file: file, - offset: file.flags.append ? file.length() : 0, - fd: fd, - opened: true, - out: false, - buffer_curr: 0, - buffer_max: 0, - buffer: new Uint8Array(65536), - refill: refill}; - caml_ml_channels[channel.fd] = channel; - return channel.fd; - } - function bigstring_of_typed_array(ba){ - var - ta = - new - Uint8Array - (ba.buffer, ba.byteOffset, ba.length * ba.BYTES_PER_ELEMENT); - return caml_ba_create_unsafe(12, 0, [ta.length], ta); - } - function caml_round_float(x){return Math.round(x);} - function caml_ojs_new_arr(c, a){ - switch(a.length){ - case 0: - return new c(); - case 1: - return new c(a[0]); - case 2: - return new c(a[0], a[1]); - case 3: - return new c(a[0], a[1], a[2]); - case 4: - return new c(a[0], a[1], a[2], a[3]); - case 5: - return new c(a[0], a[1], a[2], a[3], a[4]); - case 6: - return new c(a[0], a[1], a[2], a[3], a[4], a[5]); - case 7: - return new c(a[0], a[1], a[2], a[3], a[4], a[5], a[6]); - } - function F(){return c.apply(this, a);} - F.prototype = c.prototype; - return new F(); - } - function complement_nat(nat, ofs, len){ - for(var i = 0; i < len; i++) - nat.data[ofs + i] = (- 1 >>> 0) - (nat.data[ofs + i] >>> 0); - } - var caml_domain_dls = [0]; - function caml_domain_dls_set(a){caml_domain_dls = a;} - function caml_lazy_read_result(o){ - return caml_obj_tag(o) == 250 ? o[1] : o; - } - var caml_js_regexps = {amp: /&/g, lt: / 1023){ - exp -= 1023; - x *= Math.pow(2, 1023); - if(exp > 1023){exp -= 1023; x *= Math.pow(2, 1023);} - } - if(exp < - 1023){exp += 1023; x *= Math.pow(2, - 1023);} - x *= Math.pow(2, exp); - return x; - } - function caml_gr_state_set(ctx){ - caml_gr_state = ctx; - caml_gr_state_init(); - return 0; - } - function caml_js_wrap_callback_strict(arity, f){ - return function(){ - var - n = arguments.length, - args = new Array(arity), - len = Math.min(arguments.length, arity); - for(var i = 0; i < len; i++) args[i] = arguments[i]; - return caml_callback(f, args);}; - } - function caml_gc_minor_words(unit){return 0;} - function caml_get_current_callstack(){return [0];} - function land_digit_nat(nat1, ofs1, nat2, ofs2){nat1.data[ofs1] &= nat2.data[ofs2]; return 0; - } - function caml_int64_mod(x, y){return x.mod(y);} - function caml_obj_set_tag(x, tag){x[0] = tag; return 0;} - function caml_int32_bswap(x){ - return (x & 0x000000FF) << 24 | (x & 0x0000FF00) << 8 - | (x & 0x00FF0000) >>> 8 - | (x & 0xFF000000) >>> 24; - } - function caml_ba_set_3(ba, i0, i1, i2, v){ - ba.set(ba.offset([i0, i1, i2]), v); - return 0; - } - function caml_js_instanceof(o, c){return o instanceof c ? 1 : 0;} - function caml_get_major_bucket(n){return 0;} - function nth_digit_nat_native(nat, ofs){return nat.data[ofs];} - function set_digit_nat_native(nat, ofs, digit){nat.data[ofs] = digit; return 0; - } - function caml_string_set64(s, i, i64){caml_failwith("caml_string_set64");} - function caml_gr_state_create(canvas, w, h){ - var context = canvas.getContext("2d"); - return {context: context, - canvas: canvas, - x: 0, - y: 0, - width: w, - height: h, - line_width: 1, - font: caml_string_of_jsbytes("fixed"), - text_size: 26, - color: 0x000000, - title: caml_string_of_jsbytes("")}; - } - function caml_gr_draw_arc(x, y, rx, ry, a1, a2){ - var s = caml_gr_state_get(); - s.context.beginPath(); - caml_gr_arc_aux(s.context, x, s.height - y, rx, ry, a1, a2); - s.context.stroke(); - return 0; - } - function caml_ba_map_file(vfd, kind, layout, shared, dims, pos){caml_failwith("caml_ba_map_file not implemented"); - } - function caml_ba_map_file_bytecode(argv, argn){ - return caml_ba_map_file - (argv[0], argv[1], argv[2], argv[3], argv[4], argv[5]); - } - function caml_ba_create_from(data1, data2, jstyp, kind, layout, dims){ - if(data2 || caml_ba_get_size_per_element(kind) == 2) - caml_invalid_argument - ("caml_ba_create_from: use return caml_ba_create_unsafe"); - return caml_ba_create_unsafe(kind, layout, dims, data1); - } - function caml_tanh_float(x){return Math.tanh(x);} - function caml_runtime_events_start(){return 0;} - function caml_gr_draw_str(str){ - var s = caml_gr_state_get(), m = s.context.measureText(str), dx = m.width; - s.context.fillText(str, s.x, s.height - s.y); - s.x += dx | 0; - return 0; - } - function caml_gr_draw_string(str){ - caml_gr_draw_str(caml_jsstring_of_string(str)); - return 0; - } - function caml_gr_draw_char(c){ - caml_gr_draw_str(String.fromCharCode(c)); - return 0; - } - function caml_unmount(name){ - var - path = caml_make_path(name), - name = caml_trailing_slash(path.join("/")), - idx = - 1; - for(var i = 0; i < jsoo_mount_point.length; i++) - if(jsoo_mount_point[i].path == name) idx = i; - if(idx > - 1) jsoo_mount_point.splice(idx, 1); - return 0; - } - function caml_bigstring_blit_ba_to_ba(ba1, pos1, ba2, pos2, len){ - if(12 != ba1.kind) - caml_invalid_argument("caml_bigstring_blit_ba_to_ba: kind mismatch"); - if(12 != ba2.kind) - caml_invalid_argument("caml_bigstring_blit_ba_to_ba: kind mismatch"); - if(len == 0) return 0; - var ofs1 = ba1.offset(pos1), ofs2 = ba2.offset(pos2); - if(ofs1 + len > ba1.data.length) caml_array_bound_error(); - if(ofs2 + len > ba2.data.length) caml_array_bound_error(); - var slice = ba1.data.subarray(ofs1, ofs1 + len); - ba2.data.set(slice, pos2); - return 0; - } - function caml_input_value_from_string(s, ofs){ - var reader = new MlStringReader(s, typeof ofs == "number" ? ofs : ofs[0]); - return caml_input_value_from_reader(reader, ofs); - } - function caml_ml_pos_in_64(chanid){ - return caml_int64_of_float(caml_pos_in(chanid)); - } - function caml_gr_draw_image(im, x, y){ - var s = caml_gr_state_get(); - if(! im.image){ - var canvas = document.createElement("canvas"); - canvas.width = s.width; - canvas.height = s.height; - canvas.getContext("2d").putImageData(im, 0, 0); - var image = new globalThis.Image(); - image.onload = - function(){ - s.context.drawImage(image, x, s.height - im.height - y); - im.image = image; - }; - image.src = canvas.toDataURL("image/png"); - } - else - s.context.drawImage(im.image, x, s.height - im.height - y); - return 0; - } - function caml_register_channel_for_spacetime(_channel){return 0;} - function caml_string_set(s, i, c){caml_failwith("caml_string_set");} - function caml_sys_rmdir(name){ - var root = resolve_fs_device(name); - root.device.rmdir(root.rest); - return 0; - } - function caml_unix_symlink(to_dir, src, dst){ - var src_root = resolve_fs_device(src), dst_root = resolve_fs_device(dst); - if(src_root.device != dst_root.device) - caml_failwith - ("caml_unix_symlink: cannot symlink between two filesystems"); - if(! src_root.device.symlink) - caml_failwith("caml_unix_symlink: not implemented"); - return src_root.device.symlink(to_dir, src_root.rest, dst_root.rest, true); - } - function caml_ml_pos_out(chanid){return caml_pos_out(chanid);} - function caml_spacetime_enabled(_unit){return 0;} - function caml_bytes_notequal(s1, s2){return 1 - caml_bytes_equal(s1, s2);} - function caml_runtime_parameters(_unit){return caml_string_of_jsbytes("");} - function caml_js_object(a){ - var o = {}; - for(var i = 1; i < a.length; i++){ - var p = a[i]; - o[caml_jsstring_of_string(p[1])] = p[2]; - } - return o; - } - function caml_ba_create(kind, layout, dims_ml){ - var - dims = caml_js_from_array(dims_ml), - data = caml_ba_create_buffer(kind, caml_ba_get_size(dims)); - return caml_ba_create_unsafe(kind, layout, dims, data); - } - function caml_gr_remember_mode(){ - caml_failwith("caml_gr_remember_mode not Implemented"); - } - function caml_fma_float(x, y, z){ - var - SPLIT = Math.pow(2, 27) + 1, - MIN_VALUE = Math.pow(2, - 1022), - EPSILON = Math.pow(2, - 52), - C = 416, - A = Math.pow(2, + C), - B = Math.pow(2, - C); - function multiply(a, b){ - var - at = SPLIT * a, - ahi = at - (at - a), - alo = a - ahi, - bt = SPLIT * b, - bhi = bt - (bt - b), - blo = b - bhi, - p = a * b, - e = ahi * bhi - p + ahi * blo + alo * bhi + alo * blo; - return {p: p, e: e}; - } - function add(a, b){ - var s = a + b, v = s - a, e = a - (s - v) + (b - v); - return {s: s, e: e}; - } - function adjust(x, y){ - return x !== 0 && y !== 0 && SPLIT * x - (SPLIT * x - x) === x - ? x * (1 + (x < 0 ? - 1 : + 1) * (y < 0 ? - 1 : + 1) * EPSILON) - : x; - } - if - (x === 0 || x !== x || x === + (1 / 0) || x === - (1 / 0) || y === 0 - || y !== y - || y === + (1 / 0) - || y === - (1 / 0)) - return x * y + z; - if(z === 0) return x * y; - if(z !== z || z === + (1 / 0) || z === - (1 / 0)) return z; - var scale = 1; - while(Math.abs(x) > A){scale *= A; x *= B;} - while(Math.abs(y) > A){scale *= A; y *= B;} - if(scale === 1 / 0) return x * y * scale; - while(Math.abs(x) < B){scale *= B; x *= A;} - while(Math.abs(y) < B){scale *= B; y *= A;} - if(scale === 0) return z; - var xs = x, ys = y, zs = z / scale; - if(Math.abs(zs) > Math.abs(xs * ys) * 4 / EPSILON) return z; - if(Math.abs(zs) < Math.abs(xs * ys) * EPSILON / 4 * EPSILON / 4) - zs = (z < 0 ? - 1 : + 1) * MIN_VALUE; - var - xy = multiply(xs, ys), - s = add(xy.p, zs), - u = add(xy.e, s.e), - i = add(s.s, u.s), - f = i.s + adjust(i.e, u.e); - if(f === 0) return f; - var fs = f * scale; - if(Math.abs(fs) > MIN_VALUE) return fs; - return fs + adjust(f - fs / scale, i.e) * scale; - } - function caml_recommended_domain_count(unit){return 1;} - function caml_bswap16(x){return (x & 0x00FF) << 8 | (x & 0xFF00) >> 8;} - function caml_ml_set_binary_mode(chanid, mode){ - var chan = caml_ml_channels[chanid]; - chan.file.flags.text = ! mode; - chan.file.flags.binary = mode; - return 0; - } - function caml_final_register(){return 0;} - function caml_gr_draw_rect(x, y, w, h){ - var s = caml_gr_state_get(); - s.context.strokeRect(x, s.height - y, w, - h); - return 0; - } - function caml_string_get16(s, i){ - if(i >>> 0 >= caml_ml_string_length(s) - 1) caml_string_bound_error(); - var - b1 = caml_string_unsafe_get(s, i), - b2 = caml_string_unsafe_get(s, i + 1); - return b2 << 8 | b1; - } - function caml_output_value(chanid, v, flags){ - var s = caml_output_value_to_string(v, flags); - caml_ml_output(chanid, s, 0, caml_ml_string_length(s)); - return 0; - } - function caml_ba_get_3(ba, i0, i1, i2){ - return ba.get(ba.offset([i0, i1, i2])); - } - function caml_ephe_blit_key(a1, i1, a2, i2, len){ - caml_array_blit - (a1, - caml_ephe_key_offset + i1 - 1, - a2, - caml_ephe_key_offset + i2 - 1, - len); - return 0; - } - var caml_initial_time = new Date().getTime() * 0.001; - function caml_sys_time(){ - var now = new Date().getTime(); - return now * 0.001 - caml_initial_time; - } - function caml_sys_time_include_children(b){return caml_sys_time();} - function caml_check_bound(array, index){ - if(index >>> 0 >= array.length - 1) caml_array_bound_error(); - return array; - } - function caml_unix_getpwuid(unit){caml_raise_not_found();} - function caml_hash(count, limit, seed, obj){ - var queue, rd, wr, sz, num, h, v, i, len; - sz = limit; - if(sz < 0 || sz > 256) sz = 256; - num = count; - h = seed; - queue = [obj]; - rd = 0; - wr = 1; - while(rd < wr && num > 0){ - v = queue[rd++]; - if(v && v.caml_custom){ - if - (caml_custom_ops[v.caml_custom] && caml_custom_ops[v.caml_custom].hash){ - var hh = caml_custom_ops[v.caml_custom].hash(v); - h = caml_hash_mix_int(h, hh); - num--; - } - } - else if(v instanceof Array && v[0] === (v[0] | 0)) - switch(v[0]){ - case 248: - h = caml_hash_mix_int(h, v[2]); num--; break; - case 250: - queue[--rd] = v[1]; break; - default: - if(caml_is_continuation_tag(v[0])) break; - var tag = v.length - 1 << 10 | v[0]; - h = caml_hash_mix_int(h, tag); - for(i = 1, len = v.length; i < len; i++){if(wr >= sz) break; queue[wr++] = v[i]; - } - break; - } - else if(caml_is_ml_bytes(v)){ - h = caml_hash_mix_bytes(h, v); - num--; - } - else if(caml_is_ml_string(v)){ - h = caml_hash_mix_string(h, v); - num--; - } - else if(typeof v === "string"){ - h = caml_hash_mix_jsbytes(h, v); - num--; - } - else if(v === (v | 0)){ - h = caml_hash_mix_int(h, v + v + 1); - num--; - } - else if(v === + v){h = caml_hash_mix_float(h, v); num--;} - } - h = caml_hash_mix_final(h); - return h & 0x3FFFFFFF; - } - function caml_ba_to_typed_array(ba){return ba.data;} - function caml_domain_dls_get(unit){return caml_domain_dls;} - function caml_bytes_get32(s, i){ - if(i >>> 0 >= s.l - 3) caml_bytes_bound_error(); - var - b1 = caml_bytes_unsafe_get(s, i), - b2 = caml_bytes_unsafe_get(s, i + 1), - b3 = caml_bytes_unsafe_get(s, i + 2), - b4 = caml_bytes_unsafe_get(s, i + 3); - return b4 << 24 | b3 << 16 | b2 << 8 | b1; - } - function caml_frexp_float(x){ - if(x == 0 || ! isFinite(x)) return [0, x, 0]; - var neg = x < 0; - if(neg) x = - x; - var exp = Math.max(- 1023, jsoo_floor_log2(x) + 1); - x *= Math.pow(2, - exp); - while(x < 0.5){x *= 2; exp--;} - while(x >= 1){x *= 0.5; exp++;} - if(neg) x = - x; - return [0, x, exp]; - } - function caml_string_get64(s, i){ - if(i >>> 0 >= caml_ml_string_length(s) - 7) caml_string_bound_error(); - var a = new Array(8); - for(var j = 0; j < 8; j++) a[7 - j] = caml_string_unsafe_get(s, i + j); - return caml_int64_of_bytes(a); - } - function caml_js_error_option_of_exception(exn){ - if(exn.js_error) return [0, exn.js_error]; - return 0; - } - function caml_ml_pos_out_64(chanid){ - return caml_int64_of_float(caml_pos_out(chanid)); - } - function caml_unix_findclose(dir_handle){return caml_unix_closedir(dir_handle); - } - function caml_gr_close_subwindow(a){ - caml_failwith("caml_gr_close_subwindow not Implemented"); - } - function caml_floatarray_blit(a1, i1, a2, i2, len){ - if(i2 <= i1) - for(var j = 1; j <= len; j++) a2[i2 + j] = a1[i1 + j]; - else - for(var j = len; j >= 1; j--) a2[i2 + j] = a1[i1 + j]; - return 0; - } - function caml_get_minor_free(unit){return 0;} - function caml_set_static_env(k, v){ - if(! globalThis.jsoo_static_env) globalThis.jsoo_static_env = {}; - globalThis.jsoo_static_env[k] = v; - return 0; - } - function caml_ba_change_layout(ba, layout){ - if(ba.layout == layout) return ba; - var new_dims = []; - for(var i = 0; i < ba.dims.length; i++) - new_dims[i] = ba.dims[ba.dims.length - i - 1]; - return caml_ba_create_unsafe(ba.kind, layout, new_dims, ba.data); - } - function caml_js_new(c, a){ - switch(a.length){ - case 1: - return new c(); - case 2: - return new c(a[1]); - case 3: - return new c(a[1], a[2]); - case 4: - return new c(a[1], a[2], a[3]); - case 5: - return new c(a[1], a[2], a[3], a[4]); - case 6: - return new c(a[1], a[2], a[3], a[4], a[5]); - case 7: - return new c(a[1], a[2], a[3], a[4], a[5], a[6]); - case 8: - return new c(a[1], a[2], a[3], a[4], a[5], a[6], a[7]); - } - function F(){return c.apply(this, caml_js_from_array(a));} - F.prototype = c.prototype; - return new F(); - } - function caml_gr_current_y(){var s = caml_gr_state_get(); return s.y;} - function caml_format_int(fmt, i){ - if(caml_jsbytes_of_string(fmt) == "%d") - return caml_string_of_jsbytes("" + i); - var f = caml_parse_format(fmt); - if(i < 0) if(f.signedconv){f.sign = - 1; i = - i;} else i >>>= 0; - var s = i.toString(f.base); - if(f.prec >= 0){ - f.filler = " "; - var n = f.prec - s.length; - if(n > 0) s = caml_str_repeat(n, "0") + s; - } - return caml_finish_formatting(f, s); - } - function jsoo_effect_not_supported(){ - caml_failwith("Effect handlers are not supported"); - } - function caml_continuation_use_and_update_handler_noexc - (cont, hval, hexn, heff){ - var stack = caml_continuation_use_noexc(cont); - stack[3] = [0, hval, hexn, heff]; - return stack; - } - function caml_obj_truncate(x, s){ - if(s <= 0 || s + 1 > x.length) caml_invalid_argument("Obj.truncate"); - if(x.length != s + 1) x.length = s + 1; - return 0; - } - function caml_js_to_string(s){return caml_string_of_jsstring(s);} - function is_digit_odd(nat, ofs){if(nat.data[ofs] & 1) return 1; return 0;} - function caml_runtime_variant(_unit){return caml_string_of_jsbytes("");} - function caml_ml_open_descriptor_out(fd){ - var file = caml_sys_fds[fd]; - if(file.flags.rdonly) caml_raise_sys_error("fd " + fd + " is readonly"); - var - buffered = file.flags.buffered !== undefined ? file.flags.buffered : 1, - channel = - {file: file, - offset: file.flags.append ? file.length() : 0, - fd: fd, - opened: true, - out: true, - buffer_curr: 0, - buffer: new Uint8Array(65536), - buffered: buffered}; - caml_ml_channels[channel.fd] = channel; - return channel.fd; - } - function caml_array_concat(l){ - var a = [0]; - while(l !== 0){ - var b = l[1]; - for(var i = 1; i < b.length; i++) a.push(b[i]); - l = l[2]; - } - return a; - } - function caml_gr_open_graph(info){ - var info = caml_jsstring_of_string(info); - function get(name){ - var res = info.match("(^|,) *" + name + " *= *([a-zA-Z0-9_]+) *(,|$)"); - if(res) return res[2]; - } - var specs = []; - if(! (info == "")) specs.push(info); - var target = get("target"); - if(! target) target = ""; - var status = get("status"); - if(! status) specs.push("status=1"); - var w = get("width"); - w = w ? parseInt(w) : 200; - specs.push("width=" + w); - var h = get("height"); - h = h ? parseInt(h) : 200; - specs.push("height=" + h); - var win = globalThis.open("about:blank", target, specs.join(",")); - if(! win) caml_failwith("Graphics.open_graph: cannot open the window"); - var doc = win.document, canvas = doc.createElement("canvas"); - canvas.width = w; - canvas.height = h; - var ctx = caml_gr_state_create(canvas, w, h); - ctx.set_title = function(title){doc.title = title;}; - caml_gr_state_set(ctx); - var body = doc.body; - body.style.margin = "0px"; - body.appendChild(canvas); - return 0; - } - function caml_make_float_vect(len){ - if(len < 0) caml_array_bound_error(); - var len = len + 1 | 0, b = new Array(len); - b[0] = 254; - for(var i = 1; i < len; i++) b[i] = 0; - return b; - } - function caml_cbrt_float(x){return Math.cbrt(x);} - function caml_eventlog_pause(unit){return 0;} - function caml_memprof_stop(unit){return 0;} - function caml_greaterequal(x, y){ - return + (caml_compare_val(x, y, false) >= 0); - } - function caml_get_exception_raw_backtrace(){return [0];} - function caml_log1p_float(x){return Math.log1p(x);} - function caml_runtime_events_free_cursor(cursor){return 0;} - function caml_lazy_make_forward(v){return [250, v];} - function lor_digit_nat(nat1, ofs1, nat2, ofs2){nat1.data[ofs1] |= nat2.data[ofs2]; return 0; - } - function caml_gr_blit_image(im, x, y){ - var - s = caml_gr_state_get(), - im2 = - s.context.getImageData - (x, s.height - im.height - y, im.width, im.height); - for(var i = 0; i < im2.data.length; i += 4){ - im.data[i] = im2.data[i]; - im.data[i + 1] = im2.data[i + 1]; - im.data[i + 2] = im2.data[i + 2]; - im.data[i + 3] = im2.data[i + 3]; - } - return 0; - } - function caml_gr_window_id(a){ - caml_failwith("caml_gr_window_id not Implemented"); - } - function caml_js_on_ie(){ - var ua = globalThis.navigator ? globalThis.navigator.userAgent : ""; - return ua.indexOf("MSIE") != - 1 && ua.indexOf("Opera") != 0; - } - function caml_int64_shift_right(x, s){return x.shift_right(s);} - function caml_ba_layout(ba){return ba.layout;} - function caml_convert_raw_backtrace(){return [0];} - function caml_array_set(array, index, newval){ - if(index < 0 || index >= array.length - 1) caml_array_bound_error(); - array[index + 1] = newval; - return 0; - } - function caml_alloc_stack(hv, hx, hf){return 0;} - function caml_bytes_greaterequal(s1, s2){return caml_bytes_lessequal(s2, s1); - } - function set_digit_nat(nat, ofs, digit){nat.data[ofs] = digit; return 0;} - function caml_bytes_set16(s, i, i16){ - if(i >>> 0 >= s.l - 1) caml_bytes_bound_error(); - var b2 = 0xFF & i16 >> 8, b1 = 0xFF & i16; - caml_bytes_unsafe_set(s, i + 0, b1); - caml_bytes_unsafe_set(s, i + 1, b2); - return 0; - } - function caml_gr_doc_of_state(state){ - if(state.canvas.ownerDocument) return state.canvas.ownerDocument; - } - function caml_ml_output_int(chanid, i){ - var - arr = [i >> 24 & 0xFF, i >> 16 & 0xFF, i >> 8 & 0xFF, i & 0xFF], - s = caml_string_of_array(arr); - caml_ml_output(chanid, s, 0, 4); - return 0; - } - function caml_obj_with_tag(tag, x){ - var l = x.length, a = new Array(l); - a[0] = tag; - for(var i = 1; i < l; i++) a[i] = x[i]; - return a; - } - function caml_ml_channel_size(chanid){ - var chan = caml_ml_channels[chanid]; - return chan.file.length(); - } - function caml_raw_backtrace_slot(){ - caml_invalid_argument - ("Printexc.get_raw_backtrace_slot: index out of bounds"); - } - function caml_hexstring_of_float(x, prec, style){ - if(! isFinite(x)){ - if(isNaN(x)) return caml_string_of_jsstring("nan"); - return caml_string_of_jsstring(x > 0 ? "infinity" : "-infinity"); - } - var sign = x == 0 && 1 / x == - Infinity ? 1 : x >= 0 ? 0 : 1; - if(sign) x = - x; - var exp = 0; - if(x == 0) - ; - else if(x < 1) - while(x < 1 && exp > - 1022){x *= 2; exp--;} - else - while(x >= 2){x /= 2; exp++;} - var exp_sign = exp < 0 ? "" : "+", sign_str = ""; - if(sign) - sign_str = "-"; - else - switch(style){ - case 43: - sign_str = "+"; break; - case 32: - sign_str = " "; break; - default: break; - } - if(prec >= 0 && prec < 13){ - var cst = Math.pow(2, prec * 4); - x = Math.round(x * cst) / cst; - } - var x_str = x.toString(16); - if(prec >= 0){ - var idx = x_str.indexOf("."); - if(idx < 0) - x_str += "." + caml_str_repeat(prec, "0"); - else{ - var size = idx + 1 + prec; - if(x_str.length < size) - x_str += caml_str_repeat(size - x_str.length, "0"); - else - x_str = x_str.substr(0, size); - } - } - return caml_string_of_jsstring - (sign_str + "0x" + x_str + "p" + exp_sign + exp.toString(10)); - } - function caml_runtime_events_user_write(event, event_content){return 0;} - function caml_js_wrap_meth_callback_strict(arity, f){ - return function(){ - var args = new Array(arity + 1), len = Math.min(arguments.length, arity); - args[0] = this; - for(var i = 0; i < len; i++) args[i + 1] = arguments[i]; - return caml_callback(f, args);}; - } - function caml_unix_readlink(name){ - var root = resolve_fs_device(name); - if(! root.device.readlink) - caml_failwith("caml_unix_readlink: not implemented"); - return root.device.readlink(root.rest, true); - } - function caml_backtrace_status(_unit){ - return caml_record_backtrace_flag ? 1 : 0; - } - function caml_install_signal_handler(){return 0;} - function caml_sys_argv(a){return caml_argv;} - function caml_ba_fill(ba, v){ba.fill(v); return 0;} - function caml_modf_float(x){ - if(isFinite(x)){ - var neg = 1 / x < 0; - x = Math.abs(x); - var i = Math.floor(x), f = x - i; - if(neg){i = - i; f = - f;} - return [0, f, i]; - } - if(isNaN(x)) return [0, NaN, NaN]; - return [0, 1 / x, x]; - } - function caml_gc_get(){return [0, 0, 0, 0, 0, 0, 0, 0, 0];} - function caml_float_compare(x, y){ - if(x === y) return 0; - if(x < y) return - 1; - if(x > y) return 1; - if(x === x) return 1; - if(y === y) return - 1; - return 0; - } - function caml_string_set32(s, i, i32){caml_failwith("caml_string_set32");} - function caml_parse_engine(tables, env, cmd, arg){ - var - ERRCODE = 256, - loop = 6, - testshift = 7, - shift = 8, - shift_recover = 9, - reduce = 10, - READ_TOKEN = 0, - RAISE_PARSE_ERROR = 1, - GROW_STACKS_1 = 2, - GROW_STACKS_2 = 3, - COMPUTE_SEMANTIC_ACTION = 4, - CALL_ERROR_FUNCTION = 5, - env_s_stack = 1, - env_v_stack = 2, - env_symb_start_stack = 3, - env_symb_end_stack = 4, - env_stacksize = 5, - env_stackbase = 6, - env_curr_char = 7, - env_lval = 8, - env_symb_start = 9, - env_symb_end = 10, - env_asp = 11, - env_rule_len = 12, - env_rule_number = 13, - env_sp = 14, - env_state = 15, - env_errflag = 16, - tbl_transl_const = 2, - tbl_transl_block = 3, - tbl_lhs = 4, - tbl_len = 5, - tbl_defred = 6, - tbl_dgoto = 7, - tbl_sindex = 8, - tbl_rindex = 9, - tbl_gindex = 10, - tbl_tablesize = 11, - tbl_table = 12, - tbl_check = 13, - tbl_names_const = 15, - tbl_names_block = 16; - function log(x){ - var s = caml_string_of_jsbytes(x + "\n"); - caml_ml_output(2, s, 0, caml_ml_string_length(s)); - } - function token_name(names, number){ - var str = caml_jsstring_of_string(names); - if(str[0] == "\x00") return ""; - return str.split("\x00")[number]; - } - function print_token(state, tok){ - var token, kind; - if(tok instanceof Array){ - token = token_name(tables[tbl_names_block], tok[0]); - if(typeof tok[1] == "number") - kind = "" + tok[1]; - else if(typeof tok[1] == "string") - kind = tok[1]; - else if(tok[1] instanceof MlBytes) - kind = caml_jsbytes_of_string(tok[1]); - else - kind = "_"; - log("State " + state + ": read token " + token + "(" + kind + ")"); - } - else{ - token = token_name(tables[tbl_names_const], tok); - log("State " + state + ": read token " + token); - } - } - if(! tables.dgoto){ - tables.defred = caml_lex_array(tables[tbl_defred]); - tables.sindex = caml_lex_array(tables[tbl_sindex]); - tables.check = caml_lex_array(tables[tbl_check]); - tables.rindex = caml_lex_array(tables[tbl_rindex]); - tables.table = caml_lex_array(tables[tbl_table]); - tables.len = caml_lex_array(tables[tbl_len]); - tables.lhs = caml_lex_array(tables[tbl_lhs]); - tables.gindex = caml_lex_array(tables[tbl_gindex]); - tables.dgoto = caml_lex_array(tables[tbl_dgoto]); - } - var - res = 0, - n, - n1, - n2, - state1, - sp = env[env_sp], - state = env[env_state], - errflag = env[env_errflag]; - exit: - for(;;) - next: - switch(cmd){ - case 0: - state = 0; errflag = 0; - case 6: - n = tables.defred[state]; - if(n != 0){cmd = reduce; break;} - if(env[env_curr_char] >= 0){cmd = testshift; break;} - res = READ_TOKEN; - break exit; - case 1: - if(arg instanceof Array){ - env[env_curr_char] = tables[tbl_transl_block][arg[0] + 1]; - env[env_lval] = arg[1]; - } - else{ - env[env_curr_char] = tables[tbl_transl_const][arg + 1]; - env[env_lval] = 0; - } - if(caml_parser_trace) print_token(state, arg); - case 7: - n1 = tables.sindex[state]; - n2 = n1 + env[env_curr_char]; - if - (n1 != 0 && n2 >= 0 && n2 <= tables[tbl_tablesize] - && tables.check[n2] == env[env_curr_char]){cmd = shift; break;} - n1 = tables.rindex[state]; - n2 = n1 + env[env_curr_char]; - if - (n1 != 0 && n2 >= 0 && n2 <= tables[tbl_tablesize] - && tables.check[n2] == env[env_curr_char]){ - n = tables.table[n2]; - cmd = reduce; - break; - } - if(errflag <= 0){res = CALL_ERROR_FUNCTION; break exit;} - case 5: - if(errflag < 3){ - errflag = 3; - for(;;){ - state1 = env[env_s_stack][sp + 1]; - n1 = tables.sindex[state1]; - n2 = n1 + ERRCODE; - if - (n1 != 0 && n2 >= 0 && n2 <= tables[tbl_tablesize] - && tables.check[n2] == ERRCODE){ - if(caml_parser_trace) log("Recovering in state " + state1); - cmd = shift_recover; - break next; - } - else{ - if(caml_parser_trace) log("Discarding state " + state1); - if(sp <= env[env_stackbase]){ - if(caml_parser_trace) log("No more states to discard"); - return RAISE_PARSE_ERROR; - } - sp--; - } - } - } - else{ - if(env[env_curr_char] == 0) return RAISE_PARSE_ERROR; - if(caml_parser_trace) log("Discarding last token read"); - env[env_curr_char] = - 1; - cmd = loop; - break; - } - case 8: - env[env_curr_char] = - 1; if(errflag > 0) errflag--; - case 9: - if(caml_parser_trace) - log("State " + state + ": shift to state " + tables.table[n2]); - state = tables.table[n2]; - sp++; - if(sp >= env[env_stacksize]){res = GROW_STACKS_1; break exit;} - case 2: - env[env_s_stack][sp + 1] = state; - env[env_v_stack][sp + 1] = env[env_lval]; - env[env_symb_start_stack][sp + 1] = env[env_symb_start]; - env[env_symb_end_stack][sp + 1] = env[env_symb_end]; - cmd = loop; - break; - case 10: - if(caml_parser_trace) log("State " + state + ": reduce by rule " + n); - var m = tables.len[n]; - env[env_asp] = sp; - env[env_rule_number] = n; - env[env_rule_len] = m; - sp = sp - m + 1; - m = tables.lhs[n]; - state1 = env[env_s_stack][sp]; - n1 = tables.gindex[m]; - n2 = n1 + state1; - if - (n1 != 0 && n2 >= 0 && n2 <= tables[tbl_tablesize] - && tables.check[n2] == state1) - state = tables.table[n2]; - else - state = tables.dgoto[m]; - if(sp >= env[env_stacksize]){res = GROW_STACKS_2; break exit;} - case 3: - res = COMPUTE_SEMANTIC_ACTION; break exit; - case 4: - env[env_s_stack][sp + 1] = state; - env[env_v_stack][sp + 1] = arg; - var asp = env[env_asp]; - env[env_symb_end_stack][sp + 1] = env[env_symb_end_stack][asp + 1]; - if(sp > asp) - env[env_symb_start_stack][sp + 1] = env[env_symb_end_stack][asp + 1]; - cmd = loop; - break; - default: return RAISE_PARSE_ERROR; - } - env[env_sp] = sp; - env[env_state] = state; - env[env_errflag] = errflag; - return res; - } - function caml_jsoo_flags_effects(unit){return 0;} - function caml_update_dummy(x, y){ - if(typeof y === "function"){x.fun = y; return 0;} - if(y.fun){x.fun = y.fun; return 0;} - var i = y.length; - while(i--) x[i] = y[i]; - return 0; - } - function caml_array_fill(array, ofs, len, v){ - for(var i = 0; i < len; i++) array[ofs + i + 1] = v; - return 0; - } - function caml_sys_mkdir(name, perm){ - var root = resolve_fs_device(name); - root.device.mkdir(root.rest, perm); - return 0; - } - function caml_string_notequal(s1, s2){ - return 1 - caml_string_equal(s1, s2); - } - function caml_bytes_greaterthan(s1, s2){return caml_bytes_lessthan(s2, s1); - } - function caml_gr_make_image(arr){ - var - s = caml_gr_state_get(), - h = arr.length - 1, - w = arr[1].length - 1, - im = s.context.createImageData(w, h); - for(var i = 0; i < h; i++) - for(var j = 0; j < w; j++){ - var c = arr[i + 1][j + 1], o = i * (w * 4) + j * 4; - if(c == - 1){ - im.data[o + 0] = 0; - im.data[o + 1] = 0; - im.data[o + 2] = 0; - im.data[o + 3] = 0; - } - else{ - im.data[o + 0] = c >> 16 & 0xff; - im.data[o + 1] = c >> 8 & 0xff; - im.data[o + 2] = c >> 0 & 0Xff; - im.data[o + 3] = 0xff; - } - } - return im; - } - function caml_ml_set_channel_output(chanid, f){ - var chan = caml_ml_channels[chanid]; - chan.output = function(s){f(s);}; - return 0; - } - function caml_read_file_content(name){ - var - name = typeof name == "string" ? caml_string_of_jsbytes(name) : name, - root = resolve_fs_device(name); - if(root.device.exists(root.rest)){ - var - file = root.device.open(root.rest, {rdonly: 1}), - len = file.length(), - buf = new Uint8Array(len); - file.read(0, buf, 0, len); - return caml_string_of_array(buf); - } - caml_raise_no_such_file(caml_jsbytes_of_string(name)); - } - function caml_js_to_float(x){return x;} - function caml_setup_uncaught_exception_handler(){ - var process = globalThis.process; - if(process && process.on) - process.on - ("uncaughtException", - function(err, origin){ - caml_fatal_uncaught_exception(err); - process.exit(2); - }); - else if(globalThis.addEventListener) - globalThis.addEventListener - ("error", - function(event){ - if(event.error) caml_fatal_uncaught_exception(event.error); - }); - } - caml_setup_uncaught_exception_handler(); - globalThis.jsoo_runtime = - {caml_runtime_events_read_poll: caml_runtime_events_read_poll, - caml_runtime_events_free_cursor: caml_runtime_events_free_cursor, - caml_runtime_events_create_cursor: caml_runtime_events_create_cursor, - caml_runtime_events_resume: caml_runtime_events_resume, - caml_runtime_events_pause: caml_runtime_events_pause, - caml_runtime_events_start: caml_runtime_events_start, - caml_runtime_events_user_resolve: caml_runtime_events_user_resolve, - caml_runtime_events_user_write: caml_runtime_events_user_write, - caml_runtime_events_user_register: caml_runtime_events_user_register, - caml_custom_event_index: caml_custom_event_index, - zstd_decompress: zstd_decompress, - jsoo_effect_not_supported: jsoo_effect_not_supported, - caml_ml_condition_signal: caml_ml_condition_signal, - caml_ml_condition_broadcast: caml_ml_condition_broadcast, - caml_ml_condition_wait: caml_ml_condition_wait, - caml_ml_condition_new: caml_ml_condition_new, - caml_get_continuation_callstack: caml_get_continuation_callstack, - caml_continuation_use_and_update_handler_noexc: - caml_continuation_use_and_update_handler_noexc, - caml_continuation_use_noexc: caml_continuation_use_noexc, - caml_alloc_stack: caml_alloc_stack, - caml_ml_mutex_unlock: caml_ml_mutex_unlock, - caml_ml_mutex_try_lock: caml_ml_mutex_try_lock, - caml_ml_mutex_lock: caml_ml_mutex_lock, - caml_ml_mutex_new: caml_ml_mutex_new, - MlMutex: MlMutex, - caml_lxm_next: caml_lxm_next, - caml_ml_domain_cpu_relax: caml_ml_domain_cpu_relax, - caml_ml_domain_id: caml_ml_domain_id, - caml_domain_spawn: caml_domain_spawn, - caml_domain_id: caml_domain_id, - caml_recommended_domain_count: caml_recommended_domain_count, - caml_ml_domain_set_name: caml_ml_domain_set_name, - caml_ml_domain_unique_token: caml_ml_domain_unique_token, - caml_atomic_exchange: caml_atomic_exchange, - caml_atomic_fetch_add: caml_atomic_fetch_add, - caml_atomic_cas: caml_atomic_cas, - caml_atomic_load: caml_atomic_load, - caml_domain_dls_get: caml_domain_dls_get, - caml_domain_dls_set: caml_domain_dls_set, - caml_domain_dls: caml_domain_dls, - caml_ephe_check_data: caml_ephe_check_data, - caml_ephe_unset_data: caml_ephe_unset_data, - caml_ephe_set_data: caml_ephe_set_data, - caml_ephe_get_data_copy: caml_ephe_get_data_copy, - caml_ephe_get_data: caml_ephe_get_data, - caml_ephe_blit_data: caml_ephe_blit_data, - caml_ephe_blit_key: caml_ephe_blit_key, - caml_ephe_check_key: caml_ephe_check_key, - caml_ephe_get_key_copy: caml_ephe_get_key_copy, - caml_ephe_get_key: caml_ephe_get_key, - caml_weak_set: caml_weak_set, - caml_weak_create: caml_weak_create, - caml_ephe_create: caml_ephe_create, - caml_ephe_unset_key: caml_ephe_unset_key, - caml_ephe_set_key: caml_ephe_set_key, - caml_ephe_data_offset: caml_ephe_data_offset, - caml_ephe_key_offset: caml_ephe_key_offset, - caml_unix_inet_addr_of_string: caml_unix_inet_addr_of_string, - caml_unix_findclose: caml_unix_findclose, - caml_unix_findnext: caml_unix_findnext, - caml_unix_findfirst: caml_unix_findfirst, - caml_unix_rewinddir: caml_unix_rewinddir, - caml_unix_closedir: caml_unix_closedir, - caml_unix_readdir: caml_unix_readdir, - caml_unix_opendir: caml_unix_opendir, - caml_unix_has_symlink: caml_unix_has_symlink, - caml_unix_getpwuid: caml_unix_getpwuid, - caml_unix_getuid: caml_unix_getuid, - caml_unix_unlink: caml_unix_unlink, - caml_unix_readlink: caml_unix_readlink, - caml_unix_symlink: caml_unix_symlink, - caml_unix_rmdir: caml_unix_rmdir, - caml_unix_mkdir: caml_unix_mkdir, - caml_unix_lstat_64: caml_unix_lstat_64, - caml_unix_lstat: caml_unix_lstat, - caml_unix_stat_64: caml_unix_stat_64, - caml_unix_stat: caml_unix_stat, - make_unix_err_args: make_unix_err_args, - caml_unix_isatty: caml_unix_isatty, - caml_unix_filedescr_of_fd: caml_unix_filedescr_of_fd, - caml_unix_cleanup: caml_unix_cleanup, - caml_unix_startup: caml_unix_startup, - caml_unix_mktime: caml_unix_mktime, - caml_unix_localtime: caml_unix_localtime, - caml_unix_gmtime: caml_unix_gmtime, - caml_unix_time: caml_unix_time, - caml_unix_gettimeofday: caml_unix_gettimeofday, - caml_str_initialize: caml_str_initialize, - re_replacement_text: re_replacement_text, - re_partial_match: re_partial_match, - re_string_match: re_string_match, - re_search_backward: re_search_backward, - re_search_forward: re_search_forward, - re_match: re_match, - caml_sys_is_regular_file: caml_sys_is_regular_file, - caml_spacetime_only_works_for_native_code: - caml_spacetime_only_works_for_native_code, - caml_register_channel_for_spacetime: caml_register_channel_for_spacetime, - caml_sys_const_naked_pointers_checked: - caml_sys_const_naked_pointers_checked, - caml_spacetime_enabled: caml_spacetime_enabled, - caml_ml_runtime_warnings_enabled: caml_ml_runtime_warnings_enabled, - caml_ml_enable_runtime_warnings: caml_ml_enable_runtime_warnings, - caml_runtime_warnings: caml_runtime_warnings, - caml_install_signal_handler: caml_install_signal_handler, - caml_runtime_parameters: caml_runtime_parameters, - caml_runtime_variant: caml_runtime_variant, - caml_sys_isatty: caml_sys_isatty, - caml_sys_get_config: caml_sys_get_config, - os_type: os_type, - caml_sys_const_backend_type: caml_sys_const_backend_type, - caml_sys_const_ostype_cygwin: caml_sys_const_ostype_cygwin, - caml_sys_const_ostype_win32: caml_sys_const_ostype_win32, - caml_sys_const_ostype_unix: caml_sys_const_ostype_unix, - caml_sys_const_max_wosize: caml_sys_const_max_wosize, - caml_sys_const_int_size: caml_sys_const_int_size, - caml_sys_const_word_size: caml_sys_const_word_size, - caml_sys_const_big_endian: caml_sys_const_big_endian, - caml_sys_random_seed: caml_sys_random_seed, - caml_sys_time_include_children: caml_sys_time_include_children, - caml_sys_time: caml_sys_time, - caml_sys_system_command: caml_sys_system_command, - caml_sys_executable_name: caml_sys_executable_name, - caml_sys_modify_argv: caml_sys_modify_argv, - caml_sys_argv: caml_sys_argv, - caml_sys_get_argv: caml_sys_get_argv, - caml_executable_name: caml_executable_name, - caml_argv: caml_argv, - caml_sys_unsafe_getenv: caml_sys_unsafe_getenv, - caml_sys_getenv: caml_sys_getenv, - jsoo_sys_getenv: jsoo_sys_getenv, - caml_set_static_env: caml_set_static_env, - caml_fatal_uncaught_exception: caml_fatal_uncaught_exception, - caml_format_exception: caml_format_exception, - caml_is_special_exception: caml_is_special_exception, - caml_sys_exit: caml_sys_exit, - caml_raise_sys_error: caml_raise_sys_error, - caml_maybe_print_stats: caml_maybe_print_stats, - caml_is_printable: caml_is_printable, - caml_get_global_data: caml_get_global_data, - caml_register_global: caml_register_global, - caml_build_symbols: caml_build_symbols, - caml_global_data: caml_global_data, - caml_named_value: caml_named_value, - caml_register_named_value: caml_register_named_value, - caml_named_values: caml_named_values, - caml_call_gen: caml_call_gen, - caml_set_parser_trace: caml_set_parser_trace, - caml_parse_engine: caml_parse_engine, - caml_parser_trace: caml_parser_trace, - caml_is_continuation_tag: caml_is_continuation_tag, - caml_lazy_read_result: caml_lazy_read_result, - caml_lazy_reset_to_lazy: caml_lazy_reset_to_lazy, - caml_lazy_update_to_forward: caml_lazy_update_to_forward, - caml_lazy_update_to_forcing: caml_lazy_update_to_forcing, - caml_obj_update_tag: caml_obj_update_tag, - caml_obj_add_offset: caml_obj_add_offset, - caml_obj_reachable_words: caml_obj_reachable_words, - caml_obj_set_raw_field: caml_obj_set_raw_field, - caml_obj_raw_field: caml_obj_raw_field, - caml_fresh_oo_id: caml_fresh_oo_id, - caml_set_oo_id: caml_set_oo_id, - caml_oo_last_id: caml_oo_last_id, - caml_get_public_method: caml_get_public_method, - caml_lazy_make_forward: caml_lazy_make_forward, - caml_obj_is_shared: caml_obj_is_shared, - caml_obj_compare_and_swap: caml_obj_compare_and_swap, - caml_obj_make_forward: caml_obj_make_forward, - caml_obj_truncate: caml_obj_truncate, - caml_obj_dup: caml_obj_dup, - caml_obj_with_tag: caml_obj_with_tag, - caml_obj_block: caml_obj_block, - caml_obj_set_tag: caml_obj_set_tag, - caml_obj_tag: caml_obj_tag, - caml_obj_is_block: caml_obj_is_block, - caml_alloc_dummy_infix: caml_alloc_dummy_infix, - caml_update_dummy: caml_update_dummy, - deserialize_nat: deserialize_nat, - serialize_nat: serialize_nat, - lxor_digit_nat: lxor_digit_nat, - lor_digit_nat: lor_digit_nat, - land_digit_nat: land_digit_nat, - compare_nat_real: compare_nat_real, - compare_nat: compare_nat, - compare_digits_nat: compare_digits_nat, - shift_right_nat: shift_right_nat, - div_nat: div_nat, - div_digit_nat: div_digit_nat, - div_helper: div_helper, - shift_left_nat: shift_left_nat, - square_nat: square_nat, - mult_nat: mult_nat, - mult_digit_nat: mult_digit_nat, - sub_nat: sub_nat, - decr_nat: decr_nat, - complement_nat: complement_nat, - add_nat: add_nat, - incr_nat: incr_nat, - is_digit_odd: is_digit_odd, - is_digit_zero: is_digit_zero, - is_digit_int: is_digit_int, - num_leading_zero_bits_in_digit: num_leading_zero_bits_in_digit, - num_digits_nat: num_digits_nat, - nth_digit_nat_native: nth_digit_nat_native, - set_digit_nat_native: set_digit_nat_native, - nth_digit_nat: nth_digit_nat, - set_digit_nat: set_digit_nat, - blit_nat: blit_nat, - set_to_zero_nat: set_to_zero_nat, - create_nat: create_nat, - nat_of_array: nat_of_array, - caml_hash_nat: caml_hash_nat, - MlNat: MlNat, - initialize_nat: initialize_nat, - caml_array_of_bytes: caml_array_of_bytes, - caml_array_of_string: caml_array_of_string, - caml_js_to_string: caml_js_to_string, - caml_to_js_string: caml_to_js_string, - caml_js_from_string: caml_js_from_string, - caml_new_string: caml_new_string, - caml_js_to_byte_string: caml_js_to_byte_string, - caml_is_ml_string: caml_is_ml_string, - caml_ml_bytes_content: caml_ml_bytes_content, - caml_is_ml_bytes: caml_is_ml_bytes, - caml_bytes_of_jsbytes: caml_bytes_of_jsbytes, - caml_string_of_jsstring: caml_string_of_jsstring, - caml_jsstring_of_string: caml_jsstring_of_string, - caml_jsbytes_of_string: caml_jsbytes_of_string, - caml_string_of_jsbytes: caml_string_of_jsbytes, - caml_bytes_of_string: caml_bytes_of_string, - caml_string_of_bytes: caml_string_of_bytes, - caml_string_lessthan: caml_string_lessthan, - caml_string_lessequal: caml_string_lessequal, - caml_string_equal: caml_string_equal, - caml_string_compare: caml_string_compare, - caml_ml_string_length: caml_ml_string_length, - caml_string_unsafe_set: caml_string_unsafe_set, - caml_string_unsafe_get: caml_string_unsafe_get, - caml_ml_bytes_length: caml_ml_bytes_length, - caml_blit_string: caml_blit_string, - caml_blit_bytes: caml_blit_bytes, - caml_fill_bytes: caml_fill_bytes, - caml_bytes_greaterthan: caml_bytes_greaterthan, - caml_string_greaterthan: caml_string_greaterthan, - caml_bytes_greaterequal: caml_bytes_greaterequal, - caml_string_greaterequal: caml_string_greaterequal, - caml_bytes_lessthan: caml_bytes_lessthan, - caml_bytes_lessequal: caml_bytes_lessequal, - caml_bytes_notequal: caml_bytes_notequal, - caml_string_notequal: caml_string_notequal, - caml_bytes_equal: caml_bytes_equal, - caml_bytes_compare: caml_bytes_compare, - caml_bytes_of_array: caml_bytes_of_array, - caml_string_of_array: caml_string_of_array, - caml_create_bytes: caml_create_bytes, - caml_create_string: caml_create_string, - caml_uint8_array_of_string: caml_uint8_array_of_string, - caml_uint8_array_of_bytes: caml_uint8_array_of_bytes, - caml_convert_bytes_to_array: caml_convert_bytes_to_array, - caml_convert_string_to_bytes: caml_convert_string_to_bytes, - MlBytes: MlBytes, - caml_bytes_of_utf16_jsstring: caml_bytes_of_utf16_jsstring, - caml_bytes_set: caml_bytes_set, - caml_string_set64: caml_string_set64, - caml_bytes_set64: caml_bytes_set64, - caml_string_set32: caml_string_set32, - caml_bytes_set32: caml_bytes_set32, - caml_string_set16: caml_string_set16, - caml_bytes_set16: caml_bytes_set16, - caml_string_set: caml_string_set, - caml_bytes_get: caml_bytes_get, - caml_bytes_get64: caml_bytes_get64, - caml_string_get64: caml_string_get64, - caml_bytes_get32: caml_bytes_get32, - caml_string_get32: caml_string_get32, - caml_bytes_get16: caml_bytes_get16, - caml_string_get16: caml_string_get16, - caml_string_get: caml_string_get, - caml_bytes_bound_error: caml_bytes_bound_error, - caml_string_bound_error: caml_string_bound_error, - caml_bytes_unsafe_set: caml_bytes_unsafe_set, - caml_bytes_unsafe_get: caml_bytes_unsafe_get, - jsoo_is_ascii: jsoo_is_ascii, - caml_utf16_of_utf8: caml_utf16_of_utf8, - caml_utf8_of_utf16: caml_utf8_of_utf16, - caml_subarray_to_jsbytes: caml_subarray_to_jsbytes, - caml_str_repeat: caml_str_repeat, - caml_md5_bytes: caml_md5_bytes, - caml_MD5Final: caml_MD5Final, - caml_MD5Update: caml_MD5Update, - caml_MD5Init: caml_MD5Init, - caml_MD5Transform: caml_MD5Transform, - caml_md5_string: caml_md5_string, - caml_md5_chan: caml_md5_chan, - caml_output_value_to_buffer: caml_output_value_to_buffer, - caml_output_value_to_bytes: caml_output_value_to_bytes, - caml_output_value_to_string: caml_output_value_to_string, - caml_output_val: caml_output_val, - MlObjectTable: MlObjectTable, - caml_marshal_data_size: caml_marshal_data_size, - caml_marshal_header_size: caml_marshal_header_size, - caml_input_value_from_reader: caml_input_value_from_reader, - caml_custom_ops: caml_custom_ops, - caml_nativeint_unmarshal: caml_nativeint_unmarshal, - caml_int32_unmarshal: caml_int32_unmarshal, - caml_int64_marshal: caml_int64_marshal, - caml_int64_unmarshal: caml_int64_unmarshal, - caml_input_value_from_bytes: caml_input_value_from_bytes, - caml_input_value_from_string: caml_input_value_from_string, - caml_float_of_bytes: caml_float_of_bytes, - BigStringReader: BigStringReader, - MlStringReader: MlStringReader, - UInt8ArrayReader: UInt8ArrayReader, - caml_marshal_constants: caml_marshal_constants, - caml_new_lex_engine: caml_new_lex_engine, - caml_lex_engine: caml_lex_engine, - caml_lex_array: caml_lex_array, - caml_js_error_of_exception: caml_js_error_of_exception, - caml_xmlhttprequest_create: caml_xmlhttprequest_create, - caml_js_get_console: caml_js_get_console, - caml_js_html_entities: caml_js_html_entities, - caml_js_html_escape: caml_js_html_escape, - caml_js_on_ie: caml_js_on_ie, - caml_js_object: caml_js_object, - caml_pure_js_expr: caml_pure_js_expr, - caml_js_expr: caml_js_expr, - caml_js_eval_string: caml_js_eval_string, - caml_js_equals: caml_js_equals, - caml_js_function_arity: caml_js_function_arity, - caml_js_wrap_meth_callback_unsafe: caml_js_wrap_meth_callback_unsafe, - caml_js_wrap_meth_callback_strict: caml_js_wrap_meth_callback_strict, - caml_js_wrap_meth_callback_arguments: - caml_js_wrap_meth_callback_arguments, - caml_js_wrap_meth_callback: caml_js_wrap_meth_callback, - caml_js_wrap_callback_unsafe: caml_js_wrap_callback_unsafe, - caml_js_wrap_callback_strict: caml_js_wrap_callback_strict, - caml_js_wrap_callback_arguments: caml_js_wrap_callback_arguments, - caml_js_wrap_callback: caml_js_wrap_callback, - caml_ojs_new_arr: caml_ojs_new_arr, - caml_js_new: caml_js_new, - caml_js_meth_call: caml_js_meth_call, - caml_js_fun_call: caml_js_fun_call, - caml_js_call: caml_js_call, - caml_js_var: caml_js_var, - caml_list_to_js_array: caml_list_to_js_array, - caml_list_of_js_array: caml_list_of_js_array, - caml_js_to_array: caml_js_to_array, - caml_js_from_array: caml_js_from_array, - caml_js_to_float: caml_js_to_float, - caml_js_from_float: caml_js_from_float, - caml_js_to_bool: caml_js_to_bool, - caml_js_from_bool: caml_js_from_bool, - caml_js_error_option_of_exception: caml_js_error_option_of_exception, - caml_exn_with_js_backtrace: caml_exn_with_js_backtrace, - caml_maybe_attach_backtrace: caml_maybe_attach_backtrace, - caml_wrap_exception: caml_wrap_exception, - caml_jsoo_flags_effects: caml_jsoo_flags_effects, - caml_jsoo_flags_use_js_string: caml_jsoo_flags_use_js_string, - caml_is_js: caml_is_js, - caml_callback: caml_callback, - caml_trampoline_return: caml_trampoline_return, - caml_trampoline: caml_trampoline, - caml_js_typeof: caml_js_typeof, - caml_js_instanceof: caml_js_instanceof, - caml_js_delete: caml_js_delete, - caml_js_get: caml_js_get, - caml_js_set: caml_js_set, - caml_js_pure_expr: caml_js_pure_expr, - caml_ml_set_buffered: caml_ml_set_buffered, - caml_ml_is_buffered: caml_ml_is_buffered, - caml_ml_output_int: caml_ml_output_int, - caml_ml_pos_out_64: caml_ml_pos_out_64, - caml_ml_pos_out: caml_ml_pos_out, - caml_pos_out: caml_pos_out, - caml_ml_seek_out_64: caml_ml_seek_out_64, - caml_ml_seek_out: caml_ml_seek_out, - caml_seek_out: caml_seek_out, - caml_output_value: caml_output_value, - caml_ml_output_char: caml_ml_output_char, - caml_ml_output: caml_ml_output, - caml_ml_output_bytes: caml_ml_output_bytes, - caml_ml_flush: caml_ml_flush, - caml_ml_input_scan_line: caml_ml_input_scan_line, - caml_ml_pos_in_64: caml_ml_pos_in_64, - caml_ml_pos_in: caml_ml_pos_in, - caml_pos_in: caml_pos_in, - caml_ml_seek_in_64: caml_ml_seek_in_64, - caml_ml_seek_in: caml_ml_seek_in, - caml_seek_in: caml_seek_in, - caml_ml_input_int: caml_ml_input_int, - caml_ml_input_char: caml_ml_input_char, - caml_input_value_to_outside_heap: caml_input_value_to_outside_heap, - caml_input_value: caml_input_value, - caml_ml_input_block: caml_ml_input_block, - caml_ml_input: caml_ml_input, - caml_refill: caml_refill, - caml_ml_set_channel_refill: caml_ml_set_channel_refill, - caml_ml_set_channel_output: caml_ml_set_channel_output, - caml_ml_channel_size_64: caml_ml_channel_size_64, - caml_ml_channel_size: caml_ml_channel_size, - caml_ml_close_channel: caml_ml_close_channel, - caml_ml_set_binary_mode: caml_ml_set_binary_mode, - caml_channel_descriptor: caml_channel_descriptor, - caml_ml_open_descriptor_in: caml_ml_open_descriptor_in, - caml_ml_open_descriptor_out: caml_ml_open_descriptor_out, - caml_ml_out_channels_list: caml_ml_out_channels_list, - caml_ml_channels: caml_ml_channels, - caml_ml_set_channel_name: caml_ml_set_channel_name, - caml_sys_open: caml_sys_open, - caml_sys_close: caml_sys_close, - caml_sys_fds: caml_sys_fds, - caml_int64_bswap: caml_int64_bswap, - caml_int32_bswap: caml_int32_bswap, - caml_bswap16: caml_bswap16, - caml_mod: caml_mod, - caml_div: caml_div, - caml_mul: caml_mul, - caml_int_of_string: caml_int_of_string, - caml_parse_digit: caml_parse_digit, - caml_parse_sign_and_base: caml_parse_sign_and_base, - caml_format_int: caml_format_int, - caml_int64_hash: caml_int64_hash, - caml_int64_to_bytes: caml_int64_to_bytes, - caml_int64_of_bytes: caml_int64_of_bytes, - caml_int64_hi32: caml_int64_hi32, - caml_int64_lo32: caml_int64_lo32, - caml_int64_create_lo_hi: caml_int64_create_lo_hi, - caml_int64_create_lo_mi_hi: caml_int64_create_lo_mi_hi, - caml_int64_of_string: caml_int64_of_string, - caml_int64_format: caml_int64_format, - caml_int64_of_float: caml_int64_of_float, - caml_int64_to_float: caml_int64_to_float, - caml_int64_to_int32: caml_int64_to_int32, - caml_int64_of_int32: caml_int64_of_int32, - caml_int64_mod: caml_int64_mod, - caml_int64_div: caml_int64_div, - caml_int64_shift_right: caml_int64_shift_right, - caml_int64_shift_right_unsigned: caml_int64_shift_right_unsigned, - caml_int64_shift_left: caml_int64_shift_left, - caml_int64_xor: caml_int64_xor, - caml_int64_or: caml_int64_or, - caml_int64_and: caml_int64_and, - caml_int64_is_negative: caml_int64_is_negative, - caml_int64_is_zero: caml_int64_is_zero, - caml_int64_mul: caml_int64_mul, - caml_int64_sub: caml_int64_sub, - caml_int64_add: caml_int64_add, - caml_int64_neg: caml_int64_neg, - caml_int64_compare: caml_int64_compare, - caml_int64_ult: caml_int64_ult, - MlInt64: MlInt64, - caml_int64_offset: caml_int64_offset, - caml_float_of_string: caml_float_of_string, - caml_format_float: caml_format_float, - caml_fma_float: caml_fma_float, - caml_erfc_float: caml_erfc_float, - caml_erf_float: caml_erf_float, - caml_cbrt_float: caml_cbrt_float, - caml_round_float: caml_round_float, - caml_atanh_float: caml_atanh_float, - caml_tanh_float: caml_tanh_float, - caml_asinh_float: caml_asinh_float, - caml_sinh_float: caml_sinh_float, - caml_acosh_float: caml_acosh_float, - caml_cosh_float: caml_cosh_float, - caml_log10_float: caml_log10_float, - caml_hypot_float: caml_hypot_float, - caml_log2_float: caml_log2_float, - caml_log1p_float: caml_log1p_float, - caml_exp2_float: caml_exp2_float, - caml_expm1_float: caml_expm1_float, - caml_signbit_float: caml_signbit_float, - caml_copysign_float: caml_copysign_float, - caml_float_compare: caml_float_compare, - caml_frexp_float: caml_frexp_float, - caml_ldexp_float: caml_ldexp_float, - caml_modf_float: caml_modf_float, - caml_classify_float: caml_classify_float, - caml_int32_float_of_bits: caml_int32_float_of_bits, - caml_trunc_float: caml_trunc_float, - caml_nextafter_float: caml_nextafter_float, - caml_int64_float_of_bits: caml_int64_float_of_bits, - caml_hexstring_of_float: caml_hexstring_of_float, - caml_int32_bits_of_float: caml_int32_bits_of_float, - caml_int64_bits_of_float: caml_int64_bits_of_float, - jsoo_floor_log2: jsoo_floor_log2, - caml_string_hash: caml_string_hash, - caml_hash: caml_hash, - caml_hash_mix_string: caml_hash_mix_string, - caml_hash_mix_bytes: caml_hash_mix_bytes, - caml_hash_mix_bytes_arr: caml_hash_mix_bytes_arr, - caml_hash_mix_jsbytes: caml_hash_mix_jsbytes, - caml_hash_mix_int64: caml_hash_mix_int64, - caml_hash_mix_float: caml_hash_mix_float, - caml_hash_mix_final: caml_hash_mix_final, - caml_hash_mix_int: caml_hash_mix_int, - caml_gr_close_subwindow: caml_gr_close_subwindow, - caml_gr_open_subwindow: caml_gr_open_subwindow, - caml_gr_window_id: caml_gr_window_id, - caml_gr_display_mode: caml_gr_display_mode, - caml_gr_remember_mode: caml_gr_remember_mode, - caml_gr_synchronize: caml_gr_synchronize, - caml_gr_wait_event: caml_gr_wait_event, - caml_gr_sigio_signal: caml_gr_sigio_signal, - caml_gr_sigio_handler: caml_gr_sigio_handler, - caml_gr_blit_image: caml_gr_blit_image, - caml_gr_create_image: caml_gr_create_image, - caml_gr_draw_image: caml_gr_draw_image, - caml_gr_dump_image: caml_gr_dump_image, - caml_gr_make_image: caml_gr_make_image, - caml_gr_text_size: caml_gr_text_size, - caml_gr_set_text_size: caml_gr_set_text_size, - caml_gr_set_font: caml_gr_set_font, - caml_gr_draw_string: caml_gr_draw_string, - caml_gr_draw_char: caml_gr_draw_char, - caml_gr_draw_str: caml_gr_draw_str, - caml_gr_fill_arc: caml_gr_fill_arc, - caml_gr_fill_poly: caml_gr_fill_poly, - caml_gr_fill_rect: caml_gr_fill_rect, - caml_gr_set_line_width: caml_gr_set_line_width, - caml_gr_draw_arc: caml_gr_draw_arc, - caml_gr_arc_aux: caml_gr_arc_aux, - caml_gr_draw_rect: caml_gr_draw_rect, - caml_gr_lineto: caml_gr_lineto, - caml_gr_current_y: caml_gr_current_y, - caml_gr_current_x: caml_gr_current_x, - caml_gr_moveto: caml_gr_moveto, - caml_gr_point_color: caml_gr_point_color, - caml_gr_plot: caml_gr_plot, - caml_gr_set_color: caml_gr_set_color, - caml_gr_size_y: caml_gr_size_y, - caml_gr_size_x: caml_gr_size_x, - caml_gr_clear_graph: caml_gr_clear_graph, - caml_gr_resize_window: caml_gr_resize_window, - caml_gr_set_window_title: caml_gr_set_window_title, - caml_gr_close_graph: caml_gr_close_graph, - caml_gr_doc_of_state: caml_gr_doc_of_state, - caml_gr_state_create: caml_gr_state_create, - caml_gr_state_init: caml_gr_state_init, - caml_gr_open_graph: caml_gr_open_graph, - caml_gr_state_set: caml_gr_state_set, - caml_gr_state_get: caml_gr_state_get, - caml_gr_state: caml_gr_state, - caml_get_major_credit: caml_get_major_credit, - caml_get_major_bucket: caml_get_major_bucket, - caml_get_minor_free: caml_get_minor_free, - caml_gc_minor_words: caml_gc_minor_words, - caml_gc_major_slice: caml_gc_major_slice, - caml_gc_huge_fallback_count: caml_gc_huge_fallback_count, - caml_eventlog_pause: caml_eventlog_pause, - caml_eventlog_resume: caml_eventlog_resume, - caml_memprof_stop: caml_memprof_stop, - caml_memprof_start: caml_memprof_start, - caml_final_release: caml_final_release, - caml_final_register_called_without_value: - caml_final_register_called_without_value, - caml_final_register: caml_final_register, - caml_memprof_set: caml_memprof_set, - caml_gc_get: caml_gc_get, - caml_gc_set: caml_gc_set, - caml_gc_stat: caml_gc_stat, - caml_gc_quick_stat: caml_gc_quick_stat, - caml_gc_counters: caml_gc_counters, - caml_gc_compaction: caml_gc_compaction, - caml_gc_full_major: caml_gc_full_major, - caml_gc_major: caml_gc_major, - caml_gc_minor: caml_gc_minor, - caml_sys_open_for_node: caml_sys_open_for_node, - MlNodeFd: MlNodeFd, - MlNodeDevice: MlNodeDevice, - fs_node_supported: fs_node_supported, - MlFakeFd: MlFakeFd, - MlFakeFd_out: MlFakeFd_out, - MlFakeFile: MlFakeFile, - MlFakeDevice: MlFakeDevice, - caml_read_file_content: caml_read_file_content, - jsoo_create_file: jsoo_create_file, - caml_create_file: caml_create_file, - caml_fs_init: caml_fs_init, - jsoo_create_file_extern: jsoo_create_file_extern, - caml_ba_map_file_bytecode: caml_ba_map_file_bytecode, - caml_ba_map_file: caml_ba_map_file, - caml_sys_rmdir: caml_sys_rmdir, - caml_sys_mkdir: caml_sys_mkdir, - caml_sys_rename: caml_sys_rename, - caml_sys_is_directory: caml_sys_is_directory, - caml_sys_remove: caml_sys_remove, - caml_sys_read_directory: caml_sys_read_directory, - caml_sys_file_exists: caml_sys_file_exists, - caml_raise_not_a_dir: caml_raise_not_a_dir, - caml_raise_no_such_file: caml_raise_no_such_file, - caml_sys_chdir: caml_sys_chdir, - caml_sys_getcwd: caml_sys_getcwd, - caml_unmount: caml_unmount, - caml_mount_autoload: caml_mount_autoload, - resolve_fs_device: resolve_fs_device, - caml_list_mount_point: caml_list_mount_point, - jsoo_mount_point: jsoo_mount_point, - caml_make_path: caml_make_path, - path_is_absolute: path_is_absolute, - MlFile: MlFile, - caml_root: caml_root, - caml_get_root: caml_get_root, - caml_current_dir: caml_current_dir, - caml_trailing_slash: caml_trailing_slash, - caml_finish_formatting: caml_finish_formatting, - caml_parse_format: caml_parse_format, - caml_array_bound_error: caml_array_bound_error, - caml_raise_not_found: caml_raise_not_found, - caml_raise_zero_divide: caml_raise_zero_divide, - caml_raise_end_of_file: caml_raise_end_of_file, - caml_invalid_argument: caml_invalid_argument, - caml_failwith: caml_failwith, - caml_raise_with_string: caml_raise_with_string, - caml_raise_with_args: caml_raise_with_args, - caml_raise_with_arg: caml_raise_with_arg, - caml_raise_constant: caml_raise_constant, - caml_lessthan: caml_lessthan, - caml_lessequal: caml_lessequal, - caml_greaterthan: caml_greaterthan, - caml_greaterequal: caml_greaterequal, - caml_notequal: caml_notequal, - caml_equal: caml_equal, - caml_int_compare: caml_int_compare, - caml_compare: caml_compare, - caml_compare_val: caml_compare_val, - caml_compare_val_number_custom: caml_compare_val_number_custom, - caml_compare_val_get_custom: caml_compare_val_get_custom, - caml_compare_val_tag: caml_compare_val_tag, - caml_bigstring_blit_ba_to_bytes: caml_bigstring_blit_ba_to_bytes, - caml_bigstring_blit_bytes_to_ba: caml_bigstring_blit_bytes_to_ba, - caml_bigstring_blit_string_to_ba: caml_bigstring_blit_string_to_ba, - caml_bigstring_blit_ba_to_ba: caml_bigstring_blit_ba_to_ba, - caml_bigstring_memcmp: caml_bigstring_memcmp, - bigstring_of_typed_array: bigstring_of_typed_array, - bigstring_of_array_buffer: bigstring_of_array_buffer, - bigstring_to_typed_array: bigstring_to_typed_array, - bigstring_to_array_buffer: bigstring_to_array_buffer, - caml_hash_mix_bigstring: caml_hash_mix_bigstring, - caml_ba_from_typed_array: caml_ba_from_typed_array, - caml_ba_kind_of_typed_array: caml_ba_kind_of_typed_array, - caml_ba_to_typed_array: caml_ba_to_typed_array, - caml_ba_hash: caml_ba_hash, - caml_ba_create_from: caml_ba_create_from, - caml_ba_deserialize: caml_ba_deserialize, - caml_ba_serialize: caml_ba_serialize, - caml_ba_reshape: caml_ba_reshape, - caml_ba_slice: caml_ba_slice, - caml_ba_sub: caml_ba_sub, - caml_ba_blit: caml_ba_blit, - caml_ba_fill: caml_ba_fill, - caml_ba_set_3: caml_ba_set_3, - caml_ba_set_2: caml_ba_set_2, - caml_ba_set_1: caml_ba_set_1, - caml_ba_uint8_set64: caml_ba_uint8_set64, - caml_ba_uint8_set32: caml_ba_uint8_set32, - caml_ba_uint8_set16: caml_ba_uint8_set16, - caml_ba_set_generic: caml_ba_set_generic, - caml_ba_get_3: caml_ba_get_3, - caml_ba_get_2: caml_ba_get_2, - caml_ba_get_1: caml_ba_get_1, - caml_ba_uint8_get64: caml_ba_uint8_get64, - caml_ba_uint8_get32: caml_ba_uint8_get32, - caml_ba_uint8_get16: caml_ba_uint8_get16, - caml_ba_get_generic: caml_ba_get_generic, - caml_ba_dim_3: caml_ba_dim_3, - caml_ba_dim_2: caml_ba_dim_2, - caml_ba_dim_1: caml_ba_dim_1, - caml_ba_dim: caml_ba_dim, - caml_ba_num_dims: caml_ba_num_dims, - caml_ba_layout: caml_ba_layout, - caml_ba_kind: caml_ba_kind, - caml_ba_change_layout: caml_ba_change_layout, - caml_ba_create: caml_ba_create, - caml_ba_create_unsafe: caml_ba_create_unsafe, - caml_ba_compare: caml_ba_compare, - Ml_Bigarray_c_1_1: Ml_Bigarray_c_1_1, - Ml_Bigarray: Ml_Bigarray, - caml_ba_custom_name: caml_ba_custom_name, - caml_ba_create_buffer: caml_ba_create_buffer, - caml_ba_get_size_per_element: caml_ba_get_size_per_element, - caml_ba_get_size: caml_ba_get_size, - caml_ba_init: caml_ba_init, - caml_convert_raw_backtrace_slot: caml_convert_raw_backtrace_slot, - caml_get_current_callstack: caml_get_current_callstack, - caml_restore_raw_backtrace: caml_restore_raw_backtrace, - caml_raw_backtrace_slot: caml_raw_backtrace_slot, - caml_raw_backtrace_next_slot: caml_raw_backtrace_next_slot, - caml_raw_backtrace_length: caml_raw_backtrace_length, - caml_convert_raw_backtrace: caml_convert_raw_backtrace, - caml_record_backtrace: caml_record_backtrace, - caml_get_exception_raw_backtrace: caml_get_exception_raw_backtrace, - caml_get_exception_backtrace: caml_get_exception_backtrace, - caml_backtrace_status: caml_backtrace_status, - caml_ml_debug_info_status: caml_ml_debug_info_status, - caml_record_backtrace_flag: caml_record_backtrace_flag, - caml_floatarray_create: caml_floatarray_create, - caml_make_float_vect: caml_make_float_vect, - caml_make_vect: caml_make_vect, - caml_check_bound: caml_check_bound, - caml_array_fill: caml_array_fill, - caml_array_get: caml_array_get, - caml_array_set: caml_array_set, - caml_floatarray_blit: caml_floatarray_blit, - caml_array_blit: caml_array_blit, - caml_array_concat: caml_array_concat, - caml_array_append: caml_array_append, - caml_array_sub: caml_array_sub}; - var - cst_Assert_failure = "Assert_failure", - cst_Division_by_zero = "Division_by_zero", - cst_End_of_file = "End_of_file", - cst_Failure = "Failure", - cst_Invalid_argument = "Invalid_argument", - cst_Match_failure = "Match_failure", - cst_Not_found = "Not_found", - cst_Out_of_memory = "Out_of_memory", - cst_Stack_overflow = "Stack_overflow", - cst_Sys_blocked_io = "Sys_blocked_io", - cst_Sys_error = "Sys_error", - cst_Undefined_recursive_module = "Undefined_recursive_module"; - caml_fs_init(); - caml_register_global(0, [248, cst_Out_of_memory, -1], cst_Out_of_memory); - caml_register_global(1, [248, cst_Sys_error, -2], cst_Sys_error); - caml_register_global(2, [248, cst_Failure, -3], cst_Failure); - caml_register_global - (3, [248, cst_Invalid_argument, -4], cst_Invalid_argument); - caml_register_global(4, [248, cst_End_of_file, -5], cst_End_of_file); - caml_register_global - (5, [248, cst_Division_by_zero, -6], cst_Division_by_zero); - caml_register_global(6, [248, cst_Not_found, -7], cst_Not_found); - caml_register_global(7, [248, cst_Match_failure, -8], cst_Match_failure); - caml_register_global(8, [248, cst_Stack_overflow, -9], cst_Stack_overflow); - caml_register_global(9, [248, cst_Sys_blocked_io, -10], cst_Sys_blocked_io); - caml_register_global - (10, [248, cst_Assert_failure, -11], cst_Assert_failure); - caml_register_global - (11, - [248, cst_Undefined_recursive_module, -12], - cst_Undefined_recursive_module); - return; - } - (globalThis)); - - -(function(a){"use strict";var -ai="Js_of_ocaml__Dom_events",bl="Js_of_ocaml__EventSource",ah="Sys_blocked_io",ag="Js_of_ocaml__Worker",bk="Js_of_ocaml__File",bj="Stdlib__Fun",ad=110,ae="Stdlib__MoreLabels",af="Std_exit",bi="Stdlib__Seq",bg="Stdlib__Weak",bh="Js_of_ocaml__Url",ac="Dune__exe",ab="Stdlib__Queue",aa="Stdlib__Parsing",bf="Stdlib__BytesLabels",$="Stdlib__Obj",be="Stdlib__ArrayLabels",_=112,bd="Stdlib__Buffer",Z="Js_of_ocaml__Json",bc="Js_of_ocaml__ResizeObserver",Y="Js_of_ocaml",W="Jsoo_runtime__",X="CamlinternalMod",a$="Stdlib__Printf",ba="Stdlib__Out_channel",bb=105,a8=102,a9="CamlinternalLazy",a_="Js_of_ocaml__Dom_svg",V="Js_of_ocaml__Js",a7="Stdlib__String",a6="Stdlib__Result",T="Stdlib__Bigarray",U=104,a5="Stdlib__Either",S="CamlinternalAtomic",R="Invalid_argument",a4="Js_of_ocaml__Import",P=113,Q=106,a2="Stdlib__Sys",a3="Stdlib__Random",N="Stdlib__Format",O="Match_failure",M="Stdlib__Scanf",a0="Stdlib__Oo",a1="Failure",L="Js_of_ocaml__Dom_html",aZ="Stdlib__Pervasives",K="Js_of_ocaml__",aY="CamlinternalOO",aX="Stdlib__Array",G="Stdlib__Bool",H="Jsoo_runtime",I=101,J="Division_by_zero",aW="Stdlib__Genlex",aU="Js_of_ocaml__Dom",aV=111,F="Js_of_ocaml__Firebug",aT="Not_found",E="Stdlib__Arg",aR="Stdlib__Lazy",aS="Js_of_ocaml__PerformanceObserver",D=107,aP="Stdlib__Map",aQ="Stdlib__Char",B="Stdlib__StringLabels",C="CamlinternalFormatBasics",aO="Stdlib__Digest",A="Js_of_ocaml__XmlHttpRequest",aM="Stdlib__Ephemeron",aN="Stdlib__Callback",z="Jsoo_runtime__Runtime_version",aL="Js_of_ocaml__Form",y="Stdlib__Uchar",x="Stdlib__List",aK="Stdlib__In_channel",w="Stdlib__Atomic",aJ="Stdlib",v=100,aI="Stdlib__Printexc",t="Stdlib__Int64",u=109,s="Sys_error",aG="Js_of_ocaml__CSS",aH="Js_of_ocaml__Geolocation",q="Stdlib__Lexing",r="CamlinternalFormat",p="Stdlib__Gc",aC="Stdlib__Bytes",aD="Js_of_ocaml__Typed_array",aE="Js_of_ocaml__Lib_version",aF=103,o="Stdlib__Int",l="Stdlib__Hashtbl",m="Stdlib__ListLabels",n="Js_of_ocaml__Jstable",ay="Stdlib__Unit",az="Stdlib__Option",aA="Js_of_ocaml__IntersectionObserver",aB="Dune__exe__Xml2js",j="Stdlib__Int32",k="End_of_file",ax="Out_of_memory",aw="Js_of_ocaml__Intl",i="Stdlib__Stack",av="Js_of_ocaml__Sys_js",h="Stack_overflow",aq="Stdlib__Stream",ar="Stdlib__Float",as="Stdlib__Complex",at="Dune__exe__Parser",au="Stdlib__StdLabels",g="Stdlib__Nativeint",ao="Js_of_ocaml__WebGL",ap="Stdlib__Filename",e="Js_of_ocaml__WebSockets",f=108,al="Stdlib__Marshal",am="Assert_failure",an="Js_of_ocaml__MutationObserver",d="Undefined_recursive_module",ak="Js_of_ocaml__Regexp",c="Xmlm",aj="Stdlib__Set",bm=a.jsoo_runtime,b=bm.caml_get_global_data();b.prim_count=845;var -bn=[2,X],bo=[2,aB],bp=[2,Y],bq=[2,ai],br=[0,0,[2,bl],U,0,1],bs=[2,a_],bt=[2,F],bu=[2,aH],bv=[0,0,[2,aw],f,0,1],bw=[2,aA],bx=[2,n],by=[0,0,[2,Z],v,0,1],bz=[2,an],bA=[2,bh],bB=[2,af],bC=[2,bf],bD=[2,ap],bE=[2,aW],bF=[2,aK],bG=[2,m],bH=[2,ae],bI=[2,au];b.toc=[0,[0,"SYMB",[0,114,[0,[0,[0,[0,[0,[0,0,[2,am],0,0,1],[2,S],13,[0,0,[2,r],46,0,1],2],[2,C],12,[0,[0,0,[2,a9],19,[0,[0,0,bn,62,0,1],[2,aY],60,0,2],3],[2,J],1,[0,[0,0,[2,ac],ad,0,1],[2,at],aV,[0,[0,0,bo,_,0,1],[2,k],2,0,2],3],4],5],[2,a1],3,[0,[0,[0,[0,0,[2,R],4,[0,0,bp,u,0,1],2],[2,K],80,[0,0,[2,aG],I,0,1],3],[2,aU],83,[0,[0,[0,0,bq,a8,0,1],[2,L],86,[0,0,bs,aF,br,2],3],[2,bk],85,[0,[0,0,bt,bb,0,1],[2,aL],87,[0,0,bu,Q,0,1],2],4],5],[2,a4],81,[0,[0,[0,[0,0,bw,D,bv,2],[2,V],82,[0,by,bx,99,0,2],3],[2,aE],94,[0,[0,0,bz,98,0,1],[2,aS],97,0,2],4],[2,ak],92,[0,[0,0,[2,bc],96,0,1],[2,av],95,0,2],5],6],7],[2,aD],84,[0,[0,[0,[0,[0,[0,0,bA,93,0,1],[2,ao],91,0,2],[2,e],90,0,3],[2,ag],89,[0,0,[2,A],88,0,1],4],[2,H],79,[0,[0,0,[2,W],77,[0,0,[2,z],78,0,1],2],[2,O],5,[0,[0,0,[2,aT],6,0,1],[2,ax],7,[0,0,[2,h],8,[0,0,bB,P,0,1],2],3],4],5],[2,aJ],14,[0,[0,[0,0,[2,E],48,0,1],[2,aX],33,[0,[0,0,[2,be],67,0,1],[2,w],49,[0,0,[2,T],73,0,1],2],3],[2,G],24,[0,[0,[0,0,[2,bd],45,0,1],[2,aC],29,[0,[0,0,bC,69,0,1],[2,aN],59,0,2],3],[2,aQ],25,[0,[0,0,[2,as],66,0,1],[2,aO],53,0,2],4],5],6],8],[2,a5],16,[0,[0,[0,[0,[0,[0,0,[2,aM],64,[0,0,bD,65,0,1],2],[2,ar],34,[0,0,[2,N],57,0,1],3],[2,bj],51,[0,0,[2,p],52,[0,[0,0,bE,63,0,1],[2,l],55,[0,0,bF,74,0,1],2],3],4],[2,o],28,[0,0,[2,j],35,[0,0,[2,t],36,0,1],2],5],[2,aR],20,[0,[0,[0,0,[2,q],38,0,1],[2,x],27,[0,[0,[0,0,bG,68,0,1],[2,aP],41,0,2],[2,al],32,[0,[0,0,bH,71,0,1],[2,g],37,0,2],3],4],[2,$],18,[0,[0,0,[2,a0],61,0,1],[2,az],22,[0,[0,0,[2,ba],75,0,1],[2,aa],39,0,2],3],5],6],[2,aZ],15,[0,[0,[0,[0,[0,0,[2,aI],50,0,1],[2,a$],47,0,2],[2,ab],43,[0,[0,0,[2,a3],54,0,1],[2,a6],23,[0,0,[2,M],58,0,1],2],3],[2,bi],21,[0,[0,0,[2,aj],40,0,1],[2,i],42,[0,[0,[0,0,bI,72,0,1],[2,aq],44,0,2],[2,a7],30,[0,0,[2,B],70,0,1],3],4],5],[2,a2],17,[0,[0,0,[2,y],26,[0,0,[2,ay],31,[0,0,[2,bg],56,0,1],2],3],[2,ah],9,[0,0,[2,s],10,[0,0,[2,d],11,[0,0,[2,c],76,0,1],2],3],4],6],7],9]]],[0,[0,"SYJS",[0,[0,c,76],[0,d,11],[0,s,10],[0,ah,9],[0,bg,56],[0,ay,31],[0,y,26],[0,a2,17],[0,B,70],[0,a7,30],[0,aq,44],[0,au,72],[0,i,42],[0,aj,40],[0,bi,21],[0,M,58],[0,a6,23],[0,a3,54],[0,ab,43],[0,a$,47],[0,aI,50],[0,aZ,15],[0,aa,39],[0,ba,75],[0,az,22],[0,a0,61],[0,$,18],[0,g,37],[0,ae,71],[0,al,32],[0,aP,41],[0,m,68],[0,x,27],[0,q,38],[0,aR,20],[0,t,36],[0,j,35],[0,o,28],[0,aK,74],[0,l,55],[0,aW,63],[0,p,52],[0,bj,51],[0,N,57],[0,ar,34],[0,ap,65],[0,aM,64],[0,a5,16],[0,aO,53],[0,as,66],[0,aQ,25],[0,aN,59],[0,bf,69],[0,aC,29],[0,bd,45],[0,G,24],[0,T,73],[0,w,49],[0,be,67],[0,aX,33],[0,E,48],[0,aJ,14],[0,af,P],[0,h,8],[0,ax,7],[0,aT,6],[0,O,5],[0,z,78],[0,W,77],[0,H,79],[0,A,88],[0,ag,89],[0,e,90],[0,ao,91],[0,bh,93],[0,aD,84],[0,av,95],[0,bc,96],[0,ak,92],[0,aS,97],[0,an,98],[0,aE,94],[0,n,99],[0,Z,v],[0,V,82],[0,aw,f],[0,aA,D],[0,a4,81],[0,aH,Q],[0,aL,87],[0,F,bb],[0,bk,85],[0,bl,U],[0,a_,aF],[0,L,86],[0,ai,a8],[0,aU,83],[0,aG,I],[0,K,80],[0,Y,u],[0,R,4],[0,a1,3],[0,k,2],[0,aB,_],[0,at,aV],[0,ac,ad],[0,J,1],[0,aY,60],[0,X,62],[0,a9,19],[0,C,12],[0,r,46],[0,S,13],[0,am,0]]],[0,[0,"CRCS",0],[0,[0,"PRIM","%caml_format_int_special\0%direct_int_div\0%direct_int_mod\0%direct_int_mul\0%identity\0%int_add\0%int_and\0%int_asr\0%int_div\0%int_lsl\0%int_lsr\0%int_mod\0%int_mul\0%int_neg\0%int_or\0%int_sub\0%int_xor\0BigStringReader\0MlBytes\0MlFakeDevice\0MlFakeFd\0MlFakeFd_out\0MlFakeFile\0MlFile\0MlInt64\0MlMutex\0MlNat\0MlNodeDevice\0MlNodeFd\0MlObjectTable\0MlStringReader\0Ml_Bigarray\0Ml_Bigarray_c_1_1\0UInt8ArrayReader\0add_nat\0bigstring_of_array_buffer\0bigstring_of_typed_array\0bigstring_to_array_buffer\0bigstring_to_typed_array\0blit_nat\0caml_MD5Final\0caml_MD5Init\0caml_MD5Transform\0caml_MD5Update\0caml_abs_float\0caml_acos_float\0caml_acosh_float\0caml_add_float\0caml_alloc_dummy\0caml_alloc_dummy_float\0caml_alloc_dummy_infix\0caml_alloc_stack\0caml_argv\0caml_array_append\0caml_array_blit\0caml_array_bound_error\0caml_array_concat\0caml_array_fill\0caml_array_get\0caml_array_get_addr\0caml_array_get_float\0caml_array_of_bytes\0caml_array_of_string\0caml_array_set\0caml_array_set_addr\0caml_array_set_float\0caml_array_sub\0caml_array_unsafe_get\0caml_array_unsafe_get_float\0caml_array_unsafe_set\0caml_array_unsafe_set_float\0caml_asin_float\0caml_asinh_float\0caml_atan2_float\0caml_atan_float\0caml_atanh_float\0caml_atomic_cas\0caml_atomic_exchange\0caml_atomic_fetch_add\0caml_atomic_load\0caml_ba_blit\0caml_ba_change_layout\0caml_ba_compare\0caml_ba_create\0caml_ba_create_buffer\0caml_ba_create_from\0caml_ba_create_unsafe\0caml_ba_custom_name\0caml_ba_deserialize\0caml_ba_dim\0caml_ba_dim_1\0caml_ba_dim_2\0caml_ba_dim_3\0caml_ba_fill\0caml_ba_from_typed_array\0caml_ba_get_1\0caml_ba_get_2\0caml_ba_get_3\0caml_ba_get_generic\0caml_ba_get_size\0caml_ba_get_size_per_element\0caml_ba_hash\0caml_ba_init\0caml_ba_kind\0caml_ba_kind_of_typed_array\0caml_ba_layout\0caml_ba_map_file\0caml_ba_map_file_bytecode\0caml_ba_num_dims\0caml_ba_reshape\0caml_ba_serialize\0caml_ba_set_1\0caml_ba_set_2\0caml_ba_set_3\0caml_ba_set_generic\0caml_ba_slice\0caml_ba_sub\0caml_ba_to_typed_array\0caml_ba_uint8_get16\0caml_ba_uint8_get32\0caml_ba_uint8_get64\0caml_ba_uint8_set16\0caml_ba_uint8_set32\0caml_ba_uint8_set64\0caml_backtrace_status\0caml_bigstring_blit_ba_to_ba\0caml_bigstring_blit_ba_to_bytes\0caml_bigstring_blit_bytes_to_ba\0caml_bigstring_blit_string_to_ba\0caml_bigstring_memcmp\0caml_blit_bytes\0caml_blit_string\0caml_bswap16\0caml_build_symbols\0caml_bytes_bound_error\0caml_bytes_compare\0caml_bytes_equal\0caml_bytes_get\0caml_bytes_get16\0caml_bytes_get32\0caml_bytes_get64\0caml_bytes_greaterequal\0caml_bytes_greaterthan\0caml_bytes_lessequal\0caml_bytes_lessthan\0caml_bytes_notequal\0caml_bytes_of_array\0caml_bytes_of_jsbytes\0caml_bytes_of_string\0caml_bytes_of_utf16_jsstring\0caml_bytes_set\0caml_bytes_set16\0caml_bytes_set32\0caml_bytes_set64\0caml_bytes_unsafe_get\0caml_bytes_unsafe_set\0caml_call_gen\0caml_callback\0caml_cbrt_float\0caml_ceil_float\0caml_channel_descriptor\0caml_check_bound\0caml_classify_float\0caml_compare\0caml_compare_val\0caml_compare_val_get_custom\0caml_compare_val_number_custom\0caml_compare_val_tag\0caml_continuation_use_and_update_handler_noexc\0caml_continuation_use_noexc\0caml_convert_bytes_to_array\0caml_convert_raw_backtrace\0caml_convert_raw_backtrace_slot\0caml_convert_string_to_bytes\0caml_copysign_float\0caml_cos_float\0caml_cosh_float\0caml_create_bytes\0caml_create_file\0caml_create_string\0caml_current_dir\0caml_custom_event_index\0caml_custom_ops\0caml_div\0caml_div_float\0caml_domain_dls\0caml_domain_dls_get\0caml_domain_dls_set\0caml_domain_id\0caml_domain_spawn\0caml_ensure_stack_capacity\0caml_ephe_blit_data\0caml_ephe_blit_key\0caml_ephe_check_data\0caml_ephe_check_key\0caml_ephe_create\0caml_ephe_data_offset\0caml_ephe_get_data\0caml_ephe_get_data_copy\0caml_ephe_get_key\0caml_ephe_get_key_copy\0caml_ephe_key_offset\0caml_ephe_set_data\0caml_ephe_set_key\0caml_ephe_unset_data\0caml_ephe_unset_key\0caml_eq_float\0caml_equal\0caml_erf_float\0caml_erfc_float\0caml_eventlog_pause\0caml_eventlog_resume\0caml_executable_name\0caml_exn_with_js_backtrace\0caml_exp2_float\0caml_exp_float\0caml_expm1_float\0caml_failwith\0caml_fatal_uncaught_exception\0caml_fill_bytes\0caml_fill_string\0caml_final_register\0caml_final_register_called_without_value\0caml_final_release\0caml_finish_formatting\0caml_float_compare\0caml_float_of_bytes\0caml_float_of_int\0caml_float_of_string\0caml_floatarray_blit\0caml_floatarray_create\0caml_floatarray_get\0caml_floatarray_set\0caml_floatarray_unsafe_get\0caml_floatarray_unsafe_set\0caml_floor_float\0caml_fma_float\0caml_fmod_float\0caml_format_exception\0caml_format_float\0caml_format_int\0caml_fresh_oo_id\0caml_frexp_float\0caml_fs_init\0caml_gc_compaction\0caml_gc_counters\0caml_gc_full_major\0caml_gc_get\0caml_gc_huge_fallback_count\0caml_gc_major\0caml_gc_major_slice\0caml_gc_minor\0caml_gc_minor_words\0caml_gc_quick_stat\0caml_gc_set\0caml_gc_stat\0caml_ge_float\0caml_get_continuation_callstack\0caml_get_current_callstack\0caml_get_exception_backtrace\0caml_get_exception_raw_backtrace\0caml_get_global_data\0caml_get_major_bucket\0caml_get_major_credit\0caml_get_minor_free\0caml_get_public_method\0caml_get_root\0caml_global_data\0caml_gr_arc_aux\0caml_gr_blit_image\0caml_gr_clear_graph\0caml_gr_close_graph\0caml_gr_close_subwindow\0caml_gr_create_image\0caml_gr_current_x\0caml_gr_current_y\0caml_gr_display_mode\0caml_gr_doc_of_state\0caml_gr_draw_arc\0caml_gr_draw_char\0caml_gr_draw_image\0caml_gr_draw_rect\0caml_gr_draw_str\0caml_gr_draw_string\0caml_gr_dump_image\0caml_gr_fill_arc\0caml_gr_fill_poly\0caml_gr_fill_rect\0caml_gr_lineto\0caml_gr_make_image\0caml_gr_moveto\0caml_gr_open_graph\0caml_gr_open_subwindow\0caml_gr_plot\0caml_gr_point_color\0caml_gr_remember_mode\0caml_gr_resize_window\0caml_gr_set_color\0caml_gr_set_font\0caml_gr_set_line_width\0caml_gr_set_text_size\0caml_gr_set_window_title\0caml_gr_sigio_handler\0caml_gr_sigio_signal\0caml_gr_size_x\0caml_gr_size_y\0caml_gr_state\0caml_gr_state_create\0caml_gr_state_get\0caml_gr_state_init\0caml_gr_state_set\0caml_gr_synchronize\0caml_gr_text_size\0caml_gr_wait_event\0caml_gr_window_id\0caml_greaterequal\0caml_greaterthan\0caml_gt_float\0caml_hash\0caml_hash_mix_bigstring\0caml_hash_mix_bytes\0caml_hash_mix_bytes_arr\0caml_hash_mix_final\0caml_hash_mix_float\0caml_hash_mix_int\0caml_hash_mix_int64\0caml_hash_mix_jsbytes\0caml_hash_mix_string\0caml_hash_nat\0caml_hexstring_of_float\0caml_hypot_float\0caml_input_value\0caml_input_value_from_bytes\0caml_input_value_from_reader\0caml_input_value_from_string\0caml_input_value_to_outside_heap\0caml_install_signal_handler\0caml_int32_add\0caml_int32_and\0caml_int32_bits_of_float\0caml_int32_bswap\0caml_int32_compare\0caml_int32_div\0caml_int32_float_of_bits\0caml_int32_format\0caml_int32_mod\0caml_int32_mul\0caml_int32_neg\0caml_int32_of_float\0caml_int32_of_int\0caml_int32_of_string\0caml_int32_or\0caml_int32_shift_left\0caml_int32_shift_right\0caml_int32_shift_right_unsigned\0caml_int32_sub\0caml_int32_to_float\0caml_int32_to_int\0caml_int32_unmarshal\0caml_int32_xor\0caml_int64_add\0caml_int64_and\0caml_int64_bits_of_float\0caml_int64_bswap\0caml_int64_compare\0caml_int64_create_lo_hi\0caml_int64_create_lo_mi_hi\0caml_int64_div\0caml_int64_float_of_bits\0caml_int64_format\0caml_int64_hash\0caml_int64_hi32\0caml_int64_is_negative\0caml_int64_is_zero\0caml_int64_lo32\0caml_int64_marshal\0caml_int64_mod\0caml_int64_mul\0caml_int64_neg\0caml_int64_of_bytes\0caml_int64_of_float\0caml_int64_of_int\0caml_int64_of_int32\0caml_int64_of_nativeint\0caml_int64_of_string\0caml_int64_offset\0caml_int64_or\0caml_int64_shift_left\0caml_int64_shift_right\0caml_int64_shift_right_unsigned\0caml_int64_sub\0caml_int64_to_bytes\0caml_int64_to_float\0caml_int64_to_int\0caml_int64_to_int32\0caml_int64_to_nativeint\0caml_int64_ult\0caml_int64_unmarshal\0caml_int64_xor\0caml_int_compare\0caml_int_of_float\0caml_int_of_string\0caml_invalid_argument\0caml_is_continuation_tag\0caml_is_js\0caml_is_ml_bytes\0caml_is_ml_string\0caml_is_printable\0caml_is_special_exception\0caml_js_call\0caml_js_delete\0caml_js_equals\0caml_js_error_of_exception\0caml_js_error_option_of_exception\0caml_js_eval_string\0caml_js_expr\0caml_js_from_array\0caml_js_from_bool\0caml_js_from_float\0caml_js_from_string\0caml_js_fun_call\0caml_js_function_arity\0caml_js_get\0caml_js_get_console\0caml_js_html_entities\0caml_js_html_escape\0caml_js_instanceof\0caml_js_meth_call\0caml_js_new\0caml_js_object\0caml_js_on_ie\0caml_js_pure_expr\0caml_js_set\0caml_js_to_array\0caml_js_to_bool\0caml_js_to_byte_string\0caml_js_to_float\0caml_js_to_string\0caml_js_typeof\0caml_js_var\0caml_js_wrap_callback\0caml_js_wrap_callback_arguments\0caml_js_wrap_callback_strict\0caml_js_wrap_callback_unsafe\0caml_js_wrap_meth_callback\0caml_js_wrap_meth_callback_arguments\0caml_js_wrap_meth_callback_strict\0caml_js_wrap_meth_callback_unsafe\0caml_jsbytes_of_string\0caml_jsoo_flags_effects\0caml_jsoo_flags_use_js_string\0caml_jsstring_of_string\0caml_lazy_make_forward\0caml_lazy_read_result\0caml_lazy_reset_to_lazy\0caml_lazy_update_to_forcing\0caml_lazy_update_to_forward\0caml_ldexp_float\0caml_le_float\0caml_lessequal\0caml_lessthan\0caml_lex_array\0caml_lex_engine\0caml_list_mount_point\0caml_list_of_js_array\0caml_list_to_js_array\0caml_log10_float\0caml_log1p_float\0caml_log2_float\0caml_log_float\0caml_lt_float\0caml_lxm_next\0caml_make_array\0caml_make_float_vect\0caml_make_path\0caml_make_vect\0caml_marshal_constants\0caml_marshal_data_size\0caml_marshal_header_size\0caml_maybe_attach_backtrace\0caml_maybe_print_stats\0caml_md5_bytes\0caml_md5_chan\0caml_md5_string\0caml_memprof_set\0caml_memprof_start\0caml_memprof_stop\0caml_ml_bytes_content\0caml_ml_bytes_length\0caml_ml_channel_size\0caml_ml_channel_size_64\0caml_ml_channels\0caml_ml_close_channel\0caml_ml_condition_broadcast\0caml_ml_condition_new\0caml_ml_condition_signal\0caml_ml_condition_wait\0caml_ml_debug_info_status\0caml_ml_domain_cpu_relax\0caml_ml_domain_id\0caml_ml_domain_set_name\0caml_ml_domain_unique_token\0caml_ml_enable_runtime_warnings\0caml_ml_flush\0caml_ml_input\0caml_ml_input_block\0caml_ml_input_char\0caml_ml_input_int\0caml_ml_input_scan_line\0caml_ml_is_buffered\0caml_ml_mutex_lock\0caml_ml_mutex_new\0caml_ml_mutex_try_lock\0caml_ml_mutex_unlock\0caml_ml_open_descriptor_in\0caml_ml_open_descriptor_out\0caml_ml_out_channels_list\0caml_ml_output\0caml_ml_output_bytes\0caml_ml_output_char\0caml_ml_output_int\0caml_ml_pos_in\0caml_ml_pos_in_64\0caml_ml_pos_out\0caml_ml_pos_out_64\0caml_ml_runtime_warnings_enabled\0caml_ml_seek_in\0caml_ml_seek_in_64\0caml_ml_seek_out\0caml_ml_seek_out_64\0caml_ml_set_binary_mode\0caml_ml_set_buffered\0caml_ml_set_channel_name\0caml_ml_set_channel_output\0caml_ml_set_channel_refill\0caml_ml_string_length\0caml_mod\0caml_modf_float\0caml_mount_autoload\0caml_mul\0caml_mul_float\0caml_named_value\0caml_named_values\0caml_nativeint_add\0caml_nativeint_and\0caml_nativeint_bswap\0caml_nativeint_compare\0caml_nativeint_div\0caml_nativeint_format\0caml_nativeint_mod\0caml_nativeint_mul\0caml_nativeint_neg\0caml_nativeint_of_float\0caml_nativeint_of_int\0caml_nativeint_of_int32\0caml_nativeint_of_string\0caml_nativeint_or\0caml_nativeint_shift_left\0caml_nativeint_shift_right\0caml_nativeint_shift_right_unsigned\0caml_nativeint_sub\0caml_nativeint_to_float\0caml_nativeint_to_int\0caml_nativeint_to_int32\0caml_nativeint_unmarshal\0caml_nativeint_xor\0caml_neg_float\0caml_neq_float\0caml_new_lex_engine\0caml_new_string\0caml_nextafter_float\0caml_notequal\0caml_obj_add_offset\0caml_obj_block\0caml_obj_compare_and_swap\0caml_obj_dup\0caml_obj_is_block\0caml_obj_is_shared\0caml_obj_make_forward\0caml_obj_raw_field\0caml_obj_reachable_words\0caml_obj_set_raw_field\0caml_obj_set_tag\0caml_obj_tag\0caml_obj_truncate\0caml_obj_update_tag\0caml_obj_with_tag\0caml_ojs_new_arr\0caml_oo_last_id\0caml_output_val\0caml_output_value\0caml_output_value_to_buffer\0caml_output_value_to_bytes\0caml_output_value_to_string\0caml_parse_digit\0caml_parse_engine\0caml_parse_format\0caml_parse_sign_and_base\0caml_parser_trace\0caml_pos_in\0caml_pos_out\0caml_power_float\0caml_pure_js_expr\0caml_raise_constant\0caml_raise_end_of_file\0caml_raise_no_such_file\0caml_raise_not_a_dir\0caml_raise_not_found\0caml_raise_sys_error\0caml_raise_with_arg\0caml_raise_with_args\0caml_raise_with_string\0caml_raise_zero_divide\0caml_raw_backtrace_length\0caml_raw_backtrace_next_slot\0caml_raw_backtrace_slot\0caml_read_file_content\0caml_recommended_domain_count\0caml_record_backtrace\0caml_record_backtrace_flag\0caml_refill\0caml_register_channel_for_spacetime\0caml_register_global\0caml_register_named_value\0caml_restore_raw_backtrace\0caml_root\0caml_round_float\0caml_runtime_events_create_cursor\0caml_runtime_events_free_cursor\0caml_runtime_events_pause\0caml_runtime_events_read_poll\0caml_runtime_events_resume\0caml_runtime_events_start\0caml_runtime_events_user_register\0caml_runtime_events_user_resolve\0caml_runtime_events_user_write\0caml_runtime_parameters\0caml_runtime_variant\0caml_runtime_warnings\0caml_seek_in\0caml_seek_out\0caml_set_oo_id\0caml_set_parser_trace\0caml_set_static_env\0caml_signbit_float\0caml_sin_float\0caml_sinh_float\0caml_spacetime_enabled\0caml_spacetime_only_works_for_native_code\0caml_sqrt_float\0caml_str_initialize\0caml_str_repeat\0caml_string_bound_error\0caml_string_compare\0caml_string_equal\0caml_string_get\0caml_string_get16\0caml_string_get32\0caml_string_get64\0caml_string_greaterequal\0caml_string_greaterthan\0caml_string_hash\0caml_string_lessequal\0caml_string_lessthan\0caml_string_notequal\0caml_string_of_array\0caml_string_of_bytes\0caml_string_of_jsbytes\0caml_string_of_jsstring\0caml_string_set\0caml_string_set16\0caml_string_set32\0caml_string_set64\0caml_string_unsafe_get\0caml_string_unsafe_set\0caml_sub_float\0caml_subarray_to_jsbytes\0caml_sys_argv\0caml_sys_chdir\0caml_sys_close\0caml_sys_const_backend_type\0caml_sys_const_big_endian\0caml_sys_const_int_size\0caml_sys_const_max_wosize\0caml_sys_const_naked_pointers_checked\0caml_sys_const_ostype_cygwin\0caml_sys_const_ostype_unix\0caml_sys_const_ostype_win32\0caml_sys_const_word_size\0caml_sys_executable_name\0caml_sys_exit\0caml_sys_fds\0caml_sys_file_exists\0caml_sys_get_argv\0caml_sys_get_config\0caml_sys_getcwd\0caml_sys_getenv\0caml_sys_is_directory\0caml_sys_is_regular_file\0caml_sys_isatty\0caml_sys_mkdir\0caml_sys_modify_argv\0caml_sys_open\0caml_sys_open_for_node\0caml_sys_random_seed\0caml_sys_read_directory\0caml_sys_remove\0caml_sys_rename\0caml_sys_rmdir\0caml_sys_system_command\0caml_sys_time\0caml_sys_time_include_children\0caml_sys_unsafe_getenv\0caml_tan_float\0caml_tanh_float\0caml_to_js_string\0caml_trailing_slash\0caml_trampoline\0caml_trampoline_return\0caml_trunc_float\0caml_uint8_array_of_bytes\0caml_uint8_array_of_string\0caml_unix_cleanup\0caml_unix_closedir\0caml_unix_filedescr_of_fd\0caml_unix_findclose\0caml_unix_findfirst\0caml_unix_findnext\0caml_unix_getpwuid\0caml_unix_gettimeofday\0caml_unix_getuid\0caml_unix_gmtime\0caml_unix_has_symlink\0caml_unix_inet_addr_of_string\0caml_unix_isatty\0caml_unix_localtime\0caml_unix_lstat\0caml_unix_lstat_64\0caml_unix_mkdir\0caml_unix_mktime\0caml_unix_opendir\0caml_unix_readdir\0caml_unix_readlink\0caml_unix_rewinddir\0caml_unix_rmdir\0caml_unix_startup\0caml_unix_stat\0caml_unix_stat_64\0caml_unix_symlink\0caml_unix_time\0caml_unix_unlink\0caml_unmount\0caml_update_dummy\0caml_utf16_of_utf8\0caml_utf8_of_utf16\0caml_weak_blit\0caml_weak_check\0caml_weak_create\0caml_weak_get\0caml_weak_get_copy\0caml_weak_set\0caml_wrap_exception\0caml_xmlhttprequest_create\0compare_digits_nat\0compare_nat\0compare_nat_real\0complement_nat\0create_nat\0decr_nat\0deserialize_nat\0div_digit_nat\0div_helper\0div_nat\0fs_node_supported\0incr_nat\0initialize_nat\0is_digit_int\0is_digit_odd\0is_digit_zero\0jsoo_create_file\0jsoo_create_file_extern\0jsoo_effect_not_supported\0jsoo_floor_log2\0jsoo_is_ascii\0jsoo_mount_point\0jsoo_sys_getenv\0land_digit_nat\0lor_digit_nat\0lxor_digit_nat\0make_unix_err_args\0mult_digit_nat\0mult_nat\0nat_of_array\0nth_digit_nat\0nth_digit_nat_native\0num_digits_nat\0num_leading_zero_bits_in_digit\0os_type\0path_is_absolute\0re_match\0re_partial_match\0re_replacement_text\0re_search_backward\0re_search_forward\0re_string_match\0resolve_fs_device\0serialize_nat\0set_digit_nat\0set_digit_nat_native\0set_to_zero_nat\0shift_left_nat\0shift_right_nat\0square_nat\0sub_nat\0unix_closedir\0unix_getpwuid\0unix_gettimeofday\0unix_getuid\0unix_gmtime\0unix_has_symlink\0unix_inet_addr_of_string\0unix_isatty\0unix_localtime\0unix_lstat\0unix_lstat_64\0unix_mkdir\0unix_mktime\0unix_opendir\0unix_readdir\0unix_readlink\0unix_rewinddir\0unix_rmdir\0unix_stat\0unix_stat_64\0unix_symlink\0unix_time\0unix_unlink\0win_cleanup\0win_filedescr_of_channel\0win_findclose\0win_findfirst\0win_findnext\0win_handle_fd\0win_startup\0zstd_decompress\0"],0]]]];return}(globalThis)); -//# 1 "../.js/default/stdlib/stdlib.cma.js" -// Generated by js_of_ocaml -//# 3 "../.js/default/stdlib/stdlib.cma.js" - -//# 5 "../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var runtime = globalThis.jsoo_runtime; - function erase_rel(param){ - if(typeof param === "number") return 0; - switch(param[0]){ - case 0: - var rest = param[1]; return [0, erase_rel(rest)]; - case 1: - var rest$0 = param[1]; return [1, erase_rel(rest$0)]; - case 2: - var rest$1 = param[1]; return [2, erase_rel(rest$1)]; - case 3: - var rest$2 = param[1]; return [3, erase_rel(rest$2)]; - case 4: - var rest$3 = param[1]; return [4, erase_rel(rest$3)]; - case 5: - var rest$4 = param[1]; return [5, erase_rel(rest$4)]; - case 6: - var rest$5 = param[1]; return [6, erase_rel(rest$5)]; - case 7: - var rest$6 = param[1]; return [7, erase_rel(rest$6)]; - case 8: - var rest$7 = param[2], ty = param[1]; - return [8, ty, erase_rel(rest$7)]; - case 9: - var rest$8 = param[3], ty1 = param[1]; - return [9, ty1, ty1, erase_rel(rest$8)]; - case 10: - var rest$9 = param[1]; return [10, erase_rel(rest$9)]; - case 11: - var rest$10 = param[1]; return [11, erase_rel(rest$10)]; - case 12: - var rest$11 = param[1]; return [12, erase_rel(rest$11)]; - case 13: - var rest$12 = param[1]; return [13, erase_rel(rest$12)]; - default: var rest$13 = param[1]; return [14, erase_rel(rest$13)]; - } - } - function concat_fmtty(fmtty1, fmtty2){ - if(typeof fmtty1 === "number") return fmtty2; - switch(fmtty1[0]){ - case 0: - var rest = fmtty1[1]; return [0, concat_fmtty(rest, fmtty2)]; - case 1: - var rest$0 = fmtty1[1]; return [1, concat_fmtty(rest$0, fmtty2)]; - case 2: - var rest$1 = fmtty1[1]; return [2, concat_fmtty(rest$1, fmtty2)]; - case 3: - var rest$2 = fmtty1[1]; return [3, concat_fmtty(rest$2, fmtty2)]; - case 4: - var rest$3 = fmtty1[1]; return [4, concat_fmtty(rest$3, fmtty2)]; - case 5: - var rest$4 = fmtty1[1]; return [5, concat_fmtty(rest$4, fmtty2)]; - case 6: - var rest$5 = fmtty1[1]; return [6, concat_fmtty(rest$5, fmtty2)]; - case 7: - var rest$6 = fmtty1[1]; return [7, concat_fmtty(rest$6, fmtty2)]; - case 8: - var rest$7 = fmtty1[2], ty = fmtty1[1]; - return [8, ty, concat_fmtty(rest$7, fmtty2)]; - case 9: - var rest$8 = fmtty1[3], ty2 = fmtty1[2], ty1 = fmtty1[1]; - return [9, ty1, ty2, concat_fmtty(rest$8, fmtty2)]; - case 10: - var rest$9 = fmtty1[1]; return [10, concat_fmtty(rest$9, fmtty2)]; - case 11: - var rest$10 = fmtty1[1]; return [11, concat_fmtty(rest$10, fmtty2)]; - case 12: - var rest$11 = fmtty1[1]; return [12, concat_fmtty(rest$11, fmtty2)]; - case 13: - var rest$12 = fmtty1[1]; return [13, concat_fmtty(rest$12, fmtty2)]; - default: - var rest$13 = fmtty1[1]; return [14, concat_fmtty(rest$13, fmtty2)]; - } - } - function concat_fmt(fmt1, fmt2){ - if(typeof fmt1 === "number") return fmt2; - switch(fmt1[0]){ - case 0: - var rest = fmt1[1]; return [0, concat_fmt(rest, fmt2)]; - case 1: - var rest$0 = fmt1[1]; return [1, concat_fmt(rest$0, fmt2)]; - case 2: - var rest$1 = fmt1[2], pad = fmt1[1]; - return [2, pad, concat_fmt(rest$1, fmt2)]; - case 3: - var rest$2 = fmt1[2], pad$0 = fmt1[1]; - return [3, pad$0, concat_fmt(rest$2, fmt2)]; - case 4: - var rest$3 = fmt1[4], prec = fmt1[3], pad$1 = fmt1[2], iconv = fmt1[1]; - return [4, iconv, pad$1, prec, concat_fmt(rest$3, fmt2)]; - case 5: - var - rest$4 = fmt1[4], - prec$0 = fmt1[3], - pad$2 = fmt1[2], - iconv$0 = fmt1[1]; - return [5, iconv$0, pad$2, prec$0, concat_fmt(rest$4, fmt2)]; - case 6: - var - rest$5 = fmt1[4], - prec$1 = fmt1[3], - pad$3 = fmt1[2], - iconv$1 = fmt1[1]; - return [6, iconv$1, pad$3, prec$1, concat_fmt(rest$5, fmt2)]; - case 7: - var - rest$6 = fmt1[4], - prec$2 = fmt1[3], - pad$4 = fmt1[2], - iconv$2 = fmt1[1]; - return [7, iconv$2, pad$4, prec$2, concat_fmt(rest$6, fmt2)]; - case 8: - var - rest$7 = fmt1[4], - prec$3 = fmt1[3], - pad$5 = fmt1[2], - fconv = fmt1[1]; - return [8, fconv, pad$5, prec$3, concat_fmt(rest$7, fmt2)]; - case 9: - var rest$8 = fmt1[2], pad$6 = fmt1[1]; - return [9, pad$6, concat_fmt(rest$8, fmt2)]; - case 10: - var rest$9 = fmt1[1]; return [10, concat_fmt(rest$9, fmt2)]; - case 11: - var rest$10 = fmt1[2], str = fmt1[1]; - return [11, str, concat_fmt(rest$10, fmt2)]; - case 12: - var rest$11 = fmt1[2], chr = fmt1[1]; - return [12, chr, concat_fmt(rest$11, fmt2)]; - case 13: - var rest$12 = fmt1[3], fmtty = fmt1[2], pad$7 = fmt1[1]; - return [13, pad$7, fmtty, concat_fmt(rest$12, fmt2)]; - case 14: - var rest$13 = fmt1[3], fmtty$0 = fmt1[2], pad$8 = fmt1[1]; - return [14, pad$8, fmtty$0, concat_fmt(rest$13, fmt2)]; - case 15: - var rest$14 = fmt1[1]; return [15, concat_fmt(rest$14, fmt2)]; - case 16: - var rest$15 = fmt1[1]; return [16, concat_fmt(rest$15, fmt2)]; - case 17: - var rest$16 = fmt1[2], fmting_lit = fmt1[1]; - return [17, fmting_lit, concat_fmt(rest$16, fmt2)]; - case 18: - var rest$17 = fmt1[2], fmting_gen = fmt1[1]; - return [18, fmting_gen, concat_fmt(rest$17, fmt2)]; - case 19: - var rest$18 = fmt1[1]; return [19, concat_fmt(rest$18, fmt2)]; - case 20: - var rest$19 = fmt1[3], char_set = fmt1[2], width_opt = fmt1[1]; - return [20, width_opt, char_set, concat_fmt(rest$19, fmt2)]; - case 21: - var rest$20 = fmt1[2], counter = fmt1[1]; - return [21, counter, concat_fmt(rest$20, fmt2)]; - case 22: - var rest$21 = fmt1[1]; return [22, concat_fmt(rest$21, fmt2)]; - case 23: - var rest$22 = fmt1[2], ign = fmt1[1]; - return [23, ign, concat_fmt(rest$22, fmt2)]; - default: - var rest$23 = fmt1[3], f = fmt1[2], arity = fmt1[1]; - return [24, arity, f, concat_fmt(rest$23, fmt2)]; - } - } - var CamlinternalFormatBasics = [0, concat_fmtty, erase_rel, concat_fmt]; - runtime.caml_register_global - (0, CamlinternalFormatBasics, "CamlinternalFormatBasics"); - return; - } - (globalThis)); - -//# 179 "../.js/default/stdlib/stdlib.cma.js" -(function(globalThis){ - "use strict"; - var runtime = globalThis.jsoo_runtime; - function make(v){return [0, v];} - function get(r){return r[1];} - function set(r, v){r[1] = v; return 0;} - function exchange(r, v){var cur = r[1]; r[1] = v; return cur;} - function compare_and_set(r, seen, v){ - var cur = r[1]; - return cur === seen ? (r[1] = v, 1) : 0; - } - function fetch_and_add(r, n){ - var cur = r[1]; - r[1] = cur + n | 0; - return cur; - } - function incr(r){fetch_and_add(r, 1); return 0;} - function decr(r){fetch_and_add(r, -1); return 0;} - var - CamlinternalAtomic = - [0, - make, - get, - set, - exchange, - compare_and_set, - fetch_and_add, - incr, - decr]; - runtime.caml_register_global(0, CamlinternalAtomic, "CamlinternalAtomic"); - return; - } - (globalThis)); - -//# 215 "../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - cst_false$0 = "false", - cst_true$0 = "true", - caml_blit_string = runtime.caml_blit_string, - caml_create_bytes = runtime.caml_create_bytes, - caml_float_of_string = runtime.caml_float_of_string, - caml_int64_float_of_bits = runtime.caml_int64_float_of_bits, - caml_int_of_string = runtime.caml_int_of_string, - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, - caml_ml_bytes_length = runtime.caml_ml_bytes_length, - caml_ml_channel_size = runtime.caml_ml_channel_size, - caml_ml_channel_size_64 = runtime.caml_ml_channel_size_64, - caml_ml_close_channel = runtime.caml_ml_close_channel, - caml_ml_flush = runtime.caml_ml_flush, - caml_ml_input = runtime.caml_ml_input, - caml_ml_input_char = runtime.caml_ml_input_char, - caml_ml_open_descriptor_in = runtime.caml_ml_open_descriptor_in, - caml_ml_open_descriptor_out = runtime.caml_ml_open_descriptor_out, - caml_ml_output = runtime.caml_ml_output, - caml_ml_output_bytes = runtime.caml_ml_output_bytes, - caml_ml_output_char = runtime.caml_ml_output_char, - caml_ml_set_binary_mode = runtime.caml_ml_set_binary_mode, - caml_ml_set_channel_name = runtime.caml_ml_set_channel_name, - caml_ml_string_length = runtime.caml_ml_string_length, - caml_string_notequal = runtime.caml_string_notequal, - caml_string_of_bytes = runtime.caml_string_of_bytes, - caml_sys_open = runtime.caml_sys_open, - caml_wrap_exception = runtime.caml_wrap_exception; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - function caml_call3(f, a0, a1, a2){ - return (f.l >= 0 ? f.l : f.l = f.length) == 3 - ? f(a0, a1, a2) - : runtime.caml_call_gen(f, [a0, a1, a2]); - } - var - global_data = runtime.caml_get_global_data(), - cst$0 = "%,", - cst = ".", - CamlinternalAtomic = global_data.CamlinternalAtomic, - CamlinternalFormatBasics = global_data.CamlinternalFormatBasics, - Invalid_argument = global_data.Invalid_argument, - Failure = global_data.Failure, - Match_failure = global_data.Match_failure, - Assert_failure = global_data.Assert_failure, - Not_found = global_data.Not_found, - Out_of_memory = global_data.Out_of_memory, - Stack_overflow = global_data.Stack_overflow, - Sys_error = global_data.Sys_error, - End_of_file = global_data.End_of_file, - Division_by_zero = global_data.Division_by_zero, - Sys_blocked_io = global_data.Sys_blocked_io, - Undefined_recursive_module = global_data.Undefined_recursive_module, - cst_really_input = "really_input", - cst_input = "input", - _l_ = [0, 0, [0, 6, 0]], - _k_ = [0, 0, [0, 7, 0]], - cst_output_substring = "output_substring", - cst_output = "output", - _j_ = [0, 1, [0, 3, [0, 4, [0, 6, 0]]]], - _i_ = [0, 1, [0, 3, [0, 4, [0, 7, 0]]]], - _g_ = [0, 1], - _h_ = [0, 0], - cst_bool_of_string = "bool_of_string", - cst_true = cst_true$0, - cst_false = cst_false$0, - cst_char_of_int = "char_of_int", - cst_Stdlib_Exit = "Stdlib.Exit", - _a_ = runtime.caml_int64_create_lo_mi_hi(0, 0, 32752), - _b_ = runtime.caml_int64_create_lo_mi_hi(0, 0, 65520), - _c_ = runtime.caml_int64_create_lo_mi_hi(1, 0, 32752), - _d_ = runtime.caml_int64_create_lo_mi_hi(16777215, 16777215, 32751), - _e_ = runtime.caml_int64_create_lo_mi_hi(0, 0, 16), - _f_ = runtime.caml_int64_create_lo_mi_hi(0, 0, 15536); - function failwith(s){ - throw caml_maybe_attach_backtrace([0, Failure, s], 1); - } - function invalid_arg(s){ - throw caml_maybe_attach_backtrace([0, Invalid_argument, s], 1); - } - var Exit = [248, cst_Stdlib_Exit, runtime.caml_fresh_oo_id(0)]; - function min(x, y){return runtime.caml_lessequal(x, y) ? x : y;} - function max(x, y){return runtime.caml_greaterequal(x, y) ? x : y;} - function abs(x){return 0 <= x ? x : - x | 0;} - function lnot(x){return x ^ -1;} - var - infinity = caml_int64_float_of_bits(_a_), - neg_infinity = caml_int64_float_of_bits(_b_), - nan = caml_int64_float_of_bits(_c_), - max_float = caml_int64_float_of_bits(_d_), - min_float = caml_int64_float_of_bits(_e_), - epsilon_float = caml_int64_float_of_bits(_f_), - max_int = 2147483647, - min_int = -2147483648; - function symbol(s1, s2){ - var - l1 = caml_ml_string_length(s1), - l2 = caml_ml_string_length(s2), - s = caml_create_bytes(l1 + l2 | 0); - caml_blit_string(s1, 0, s, 0, l1); - caml_blit_string(s2, 0, s, l1, l2); - return caml_string_of_bytes(s); - } - function char_of_int(n){ - if(0 <= n && 255 >= n) return n; - return invalid_arg(cst_char_of_int); - } - function string_of_bool(b){return b ? cst_true : cst_false;} - function bool_of_string(param){ - return caml_string_notequal(param, cst_false$0) - ? caml_string_notequal - (param, cst_true$0) - ? invalid_arg(cst_bool_of_string) - : 1 - : 0; - } - function bool_of_string_opt(param){ - return caml_string_notequal(param, cst_false$0) - ? caml_string_notequal(param, cst_true$0) ? 0 : _g_ - : _h_; - } - function string_of_int(n){return "" + n;} - function int_of_string_opt(s){ - try{var _B_ = [0, caml_int_of_string(s)]; return _B_;} - catch(_C_){ - var _A_ = caml_wrap_exception(_C_); - if(_A_[1] === Failure) return 0; - throw caml_maybe_attach_backtrace(_A_, 0); - } - } - function valid_float_lexem(s){ - var l = caml_ml_string_length(s), i = 0; - for(;;){ - if(l <= i) return symbol(s, cst); - var match = runtime.caml_string_get(s, i), switch$0 = 0; - if(48 <= match){ - if(58 > match) switch$0 = 1; - } - else if(45 === match) switch$0 = 1; - if(! switch$0) return s; - var i$0 = i + 1 | 0, i = i$0; - } - } - function string_of_float(f){ - return valid_float_lexem(runtime.caml_format_float("%.12g", f)); - } - function float_of_string_opt(s){ - try{var _y_ = [0, caml_float_of_string(s)]; return _y_;} - catch(_z_){ - var _x_ = caml_wrap_exception(_z_); - if(_x_[1] === Failure) return 0; - throw caml_maybe_attach_backtrace(_x_, 0); - } - } - function symbol$0(l1, l2){ - if(! l1) return l2; - var tl = l1[2], hd = l1[1]; - return [0, hd, symbol$0(tl, l2)]; - } - var - stdin = caml_ml_open_descriptor_in(0), - stdout = caml_ml_open_descriptor_out(1), - stderr = caml_ml_open_descriptor_out(2); - function open_out_gen(mode, perm, name){ - var c = caml_ml_open_descriptor_out(caml_sys_open(name, mode, perm)); - caml_ml_set_channel_name(c, name); - return c; - } - function open_out(name){return open_out_gen(_i_, 438, name);} - function open_out_bin(name){return open_out_gen(_j_, 438, name);} - function flush_all(param){ - var param$0 = runtime.caml_ml_out_channels_list(0); - for(;;){ - if(! param$0) return 0; - var l = param$0[2], a = param$0[1]; - try{caml_ml_flush(a);} - catch(_w_){ - var _v_ = caml_wrap_exception(_w_); - if(_v_[1] !== Sys_error) throw caml_maybe_attach_backtrace(_v_, 0); - } - var param$0 = l; - } - } - function output_bytes(oc, s){ - return caml_ml_output_bytes(oc, s, 0, caml_ml_bytes_length(s)); - } - function output_string(oc, s){ - return caml_ml_output(oc, s, 0, caml_ml_string_length(s)); - } - function output(oc, s, ofs, len){ - if(0 <= ofs && 0 <= len && (caml_ml_bytes_length(s) - len | 0) >= ofs) - return caml_ml_output_bytes(oc, s, ofs, len); - return invalid_arg(cst_output); - } - function output_substring(oc, s, ofs, len){ - if(0 <= ofs && 0 <= len && (caml_ml_string_length(s) - len | 0) >= ofs) - return caml_ml_output(oc, s, ofs, len); - return invalid_arg(cst_output_substring); - } - function output_value(chan, v){ - return runtime.caml_output_value(chan, v, 0); - } - function close_out(oc){ - caml_ml_flush(oc); - return caml_ml_close_channel(oc); - } - function close_out_noerr(oc){ - try{caml_ml_flush(oc);}catch(_u_){} - try{var _s_ = caml_ml_close_channel(oc); return _s_;}catch(_t_){return 0;} - } - function open_in_gen(mode, perm, name){ - var c = caml_ml_open_descriptor_in(caml_sys_open(name, mode, perm)); - caml_ml_set_channel_name(c, name); - return c; - } - function open_in(name){return open_in_gen(_k_, 0, name);} - function open_in_bin(name){return open_in_gen(_l_, 0, name);} - function input(ic, s, ofs, len){ - if(0 <= ofs && 0 <= len && (caml_ml_bytes_length(s) - len | 0) >= ofs) - return caml_ml_input(ic, s, ofs, len); - return invalid_arg(cst_input); - } - function unsafe_really_input(ic, s, ofs, len){ - var ofs$0 = ofs, len$0 = len; - for(;;){ - if(0 >= len$0) return 0; - var r = caml_ml_input(ic, s, ofs$0, len$0); - if(0 === r) throw caml_maybe_attach_backtrace(End_of_file, 1); - var - len$1 = len$0 - r | 0, - ofs$1 = ofs$0 + r | 0, - ofs$0 = ofs$1, - len$0 = len$1; - } - } - function really_input(ic, s, ofs, len){ - if(0 <= ofs && 0 <= len && (caml_ml_bytes_length(s) - len | 0) >= ofs) - return unsafe_really_input(ic, s, ofs, len); - return invalid_arg(cst_really_input); - } - function really_input_string(ic, len){ - var s = caml_create_bytes(len); - really_input(ic, s, 0, len); - return caml_string_of_bytes(s); - } - function input_line(chan){ - function build_result(buf, pos, param){ - var pos$0 = pos, param$0 = param; - for(;;){ - if(! param$0) return buf; - var tl = param$0[2], hd = param$0[1], len = caml_ml_bytes_length(hd); - runtime.caml_blit_bytes(hd, 0, buf, pos$0 - len | 0, len); - var pos$1 = pos$0 - len | 0, pos$0 = pos$1, param$0 = tl; - } - } - var accu = 0, len = 0; - for(;;){ - var n = runtime.caml_ml_input_scan_line(chan); - if(0 === n){ - if(! accu) throw caml_maybe_attach_backtrace(End_of_file, 1); - var _r_ = build_result(caml_create_bytes(len), len, accu); - } - else{ - if(0 >= n){ - var beg = caml_create_bytes(- n | 0); - caml_ml_input(chan, beg, 0, - n | 0); - var - len$1 = len - n | 0, - accu$0 = [0, beg, accu], - accu = accu$0, - len = len$1; - continue; - } - var res = caml_create_bytes(n - 1 | 0); - caml_ml_input(chan, res, 0, n - 1 | 0); - caml_ml_input_char(chan); - if(accu) - var - len$0 = (len + n | 0) - 1 | 0, - _r_ = build_result(caml_create_bytes(len$0), len$0, [0, res, accu]); - else - var _r_ = res; - } - return caml_string_of_bytes(_r_); - } - } - function close_in_noerr(ic){ - try{var _p_ = caml_ml_close_channel(ic); return _p_;}catch(_q_){return 0;} - } - function print_char(c){return caml_ml_output_char(stdout, c);} - function print_string(s){return output_string(stdout, s);} - function print_bytes(s){return output_bytes(stdout, s);} - function print_int(i){return output_string(stdout, "" + i);} - function print_float(f){return output_string(stdout, string_of_float(f));} - function print_endline(s){ - output_string(stdout, s); - caml_ml_output_char(stdout, 10); - return caml_ml_flush(stdout); - } - function print_newline(param){ - caml_ml_output_char(stdout, 10); - return caml_ml_flush(stdout); - } - function prerr_char(c){return caml_ml_output_char(stderr, c);} - function prerr_string(s){return output_string(stderr, s);} - function prerr_bytes(s){return output_bytes(stderr, s);} - function prerr_int(i){return output_string(stderr, "" + i);} - function prerr_float(f){return output_string(stderr, string_of_float(f));} - function prerr_endline(s){ - output_string(stderr, s); - caml_ml_output_char(stderr, 10); - return caml_ml_flush(stderr); - } - function prerr_newline(param){ - caml_ml_output_char(stderr, 10); - return caml_ml_flush(stderr); - } - function read_line(param){caml_ml_flush(stdout); return input_line(stdin);} - function read_int(param){return caml_int_of_string(read_line(0));} - function read_int_opt(param){return int_of_string_opt(read_line(0));} - function read_float(param){return caml_float_of_string(read_line(0));} - function read_float_opt(param){return float_of_string_opt(read_line(0));} - function string_of_format(param){var str = param[2]; return str;} - function symbol$1(param, _n_){ - var - str2 = _n_[2], - fmt2 = _n_[1], - str1 = param[2], - fmt1 = param[1], - _o_ = symbol(str1, symbol(cst$0, str2)); - return [0, caml_call2(CamlinternalFormatBasics[3], fmt1, fmt2), _o_]; - } - var exit_function = caml_call1(CamlinternalAtomic[1], flush_all); - function at_exit(f){ - for(;;){ - var - f_yet_to_run = caml_call1(CamlinternalAtomic[1], 1), - old_exit = caml_call1(CamlinternalAtomic[2], exit_function), - new_exit$0 = - function(f_yet_to_run, old_exit){ - function new_exit(param){ - if(caml_call3(CamlinternalAtomic[5], f_yet_to_run, 1, 0)) - caml_call1(f, 0); - return caml_call1(old_exit, 0); - } - return new_exit; - }, - new_exit = new_exit$0(f_yet_to_run, old_exit), - success = - caml_call3(CamlinternalAtomic[5], exit_function, old_exit, new_exit), - _m_ = 1 - success; - if(_m_) continue; - return _m_; - } - } - function do_at_exit(param){ - return caml_call1(caml_call1(CamlinternalAtomic[2], exit_function), 0); - } - function exit(retcode){ - do_at_exit(0); - return runtime.caml_sys_exit(retcode); - } - runtime.caml_register_named_value("Pervasives.do_at_exit", do_at_exit); - var - Stdlib = - [0, - invalid_arg, - failwith, - Exit, - Match_failure, - Assert_failure, - Invalid_argument, - Failure, - Not_found, - Out_of_memory, - Stack_overflow, - Sys_error, - End_of_file, - Division_by_zero, - Sys_blocked_io, - Undefined_recursive_module, - min, - max, - abs, - max_int, - min_int, - lnot, - infinity, - neg_infinity, - nan, - max_float, - min_float, - epsilon_float, - symbol, - char_of_int, - string_of_bool, - bool_of_string_opt, - bool_of_string, - string_of_int, - int_of_string_opt, - string_of_float, - float_of_string_opt, - symbol$0, - stdin, - stdout, - stderr, - print_char, - print_string, - print_bytes, - print_int, - print_float, - print_endline, - print_newline, - prerr_char, - prerr_string, - prerr_bytes, - prerr_int, - prerr_float, - prerr_endline, - prerr_newline, - read_line, - read_int_opt, - read_int, - read_float_opt, - read_float, - open_out, - open_out_bin, - open_out_gen, - caml_ml_flush, - flush_all, - caml_ml_output_char, - output_string, - output_bytes, - output, - output_substring, - caml_ml_output_char, - runtime.caml_ml_output_int, - output_value, - runtime.caml_ml_seek_out, - runtime.caml_ml_pos_out, - caml_ml_channel_size, - close_out, - close_out_noerr, - caml_ml_set_binary_mode, - open_in, - open_in_bin, - open_in_gen, - caml_ml_input_char, - input_line, - input, - really_input, - really_input_string, - caml_ml_input_char, - runtime.caml_ml_input_int, - runtime.caml_input_value, - runtime.caml_ml_seek_in, - runtime.caml_ml_pos_in, - caml_ml_channel_size, - caml_ml_close_channel, - close_in_noerr, - caml_ml_set_binary_mode, - [0, - runtime.caml_ml_seek_out_64, - runtime.caml_ml_pos_out_64, - caml_ml_channel_size_64, - runtime.caml_ml_seek_in_64, - runtime.caml_ml_pos_in_64, - caml_ml_channel_size_64], - string_of_format, - symbol$1, - exit, - at_exit, - valid_float_lexem, - unsafe_really_input, - do_at_exit]; - runtime.caml_register_global(46, Stdlib, "Stdlib"); - return; - } - (globalThis)); - -//# 996 "../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, - caml_wrap_exception = runtime.caml_wrap_exception, - global_data = runtime.caml_get_global_data(), - ocaml_version = "4.14.1", - ocaml_release = [0, 4, 14, 1, 0], - Stdlib = global_data.Stdlib, - executable_name = runtime.caml_sys_executable_name(0), - os_type = runtime.caml_sys_get_config(0)[1], - backend_type = [0, "js_of_ocaml"], - unix = runtime.caml_sys_const_ostype_unix(0), - win32 = runtime.caml_sys_const_ostype_win32(0), - cygwin = runtime.caml_sys_const_ostype_cygwin(0), - max_array_length = runtime.caml_sys_const_max_wosize(0), - max_floatarray_length = max_array_length / 2 | 0, - max_string_length = (4 * max_array_length | 0) - 1 | 0, - cst_Stdlib_Sys_Break = "Stdlib.Sys.Break", - big_endian = 0, - word_size = 32, - int_size = 32; - function getenv_opt(s){ - try{var _d_ = [0, runtime.caml_sys_getenv(s)]; return _d_;} - catch(_e_){ - var _c_ = caml_wrap_exception(_e_); - if(_c_ === Stdlib[8]) return 0; - throw caml_maybe_attach_backtrace(_c_, 0); - } - } - var interactive = [0, 0]; - function set_signal(sig_num, sig_beh){return 0;} - var - Break = [248, cst_Stdlib_Sys_Break, runtime.caml_fresh_oo_id(0)], - sigabrt = -1, - sigalrm = -2, - sigfpe = -3, - sighup = -4, - sigill = -5, - sigint = -6, - sigkill = -7, - sigpipe = -8, - sigquit = -9, - sigsegv = -10, - sigterm = -11, - sigusr1 = -12, - sigusr2 = -13, - sigchld = -14, - sigcont = -15, - sigstop = -16, - sigtstp = -17, - sigttin = -18, - sigttou = -19, - sigvtalrm = -20, - sigprof = -21, - sigbus = -22, - sigpoll = -23, - sigsys = -24, - sigtrap = -25, - sigurg = -26, - sigxcpu = -27, - sigxfsz = -28; - function catch_break(on){return on ? 0 : 0;} - var development_version = 0; - function Make(_b_, _a_){return [0, 1];} - var - Immediate64 = [0, Make], - Stdlib_Sys = - [0, - executable_name, - getenv_opt, - interactive, - os_type, - backend_type, - unix, - win32, - cygwin, - word_size, - int_size, - big_endian, - max_string_length, - max_array_length, - max_floatarray_length, - set_signal, - sigabrt, - sigalrm, - sigfpe, - sighup, - sigill, - sigint, - sigkill, - sigpipe, - sigquit, - sigsegv, - sigterm, - sigusr1, - sigusr2, - sigchld, - sigcont, - sigstop, - sigtstp, - sigttin, - sigttou, - sigvtalrm, - sigprof, - sigbus, - sigpoll, - sigsys, - sigtrap, - sigurg, - sigxcpu, - sigxfsz, - Break, - catch_break, - ocaml_version, - development_version, - ocaml_release, - runtime.caml_ml_enable_runtime_warnings, - runtime.caml_ml_runtime_warnings_enabled, - Immediate64]; - runtime.caml_register_global(4, Stdlib_Sys, "Stdlib__Sys"); - return; - } - (globalThis)); - -//# 1125 "../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - cst_Obj_extension_constructor$1 = "Obj.extension_constructor", - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, - caml_obj_tag = runtime.caml_obj_tag; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - var - global_data = runtime.caml_get_global_data(), - Stdlib = global_data.Stdlib, - Assert_failure = global_data.Assert_failure, - Stdlib_Sys = global_data.Stdlib__Sys, - cst_Obj_Ephemeron_blit_key = "Obj.Ephemeron.blit_key", - cst_Obj_Ephemeron_check_key = "Obj.Ephemeron.check_key", - cst_Obj_Ephemeron_unset_key = "Obj.Ephemeron.unset_key", - cst_Obj_Ephemeron_set_key = "Obj.Ephemeron.set_key", - cst_Obj_Ephemeron_get_key_copy = "Obj.Ephemeron.get_key_copy", - cst_Obj_Ephemeron_get_key = "Obj.Ephemeron.get_key", - cst_Obj_Ephemeron_create = "Obj.Ephemeron.create", - cst_Obj_extension_constructor$0 = cst_Obj_extension_constructor$1, - cst_Obj_extension_constructor = cst_Obj_extension_constructor$1, - _a_ = [0, "obj.ml", 95, 4]; - function is_block(a){return 1 - (typeof a === "number" ? 1 : 0);} - var - double_field = runtime.caml_array_get, - set_double_field = runtime.caml_array_set, - first_non_constant_constructor = 0, - last_non_constant_constructor_ = 245, - lazy_tag = 246, - closure_tag = 247, - object_tag = 248, - infix_tag = 249, - forward_tag = 250, - no_scan_tag = 251, - abstract_tag = 251, - string_tag = 252, - double_tag = 253, - double_array_tag = 254, - custom_tag = 255, - int_tag = 1000, - out_of_heap_tag = 1001, - unaligned_tag = 1002; - function info(obj){ - if(caml_obj_tag(obj) !== 247) - throw caml_maybe_attach_backtrace([0, Assert_failure, _a_], 1); - var - info = runtime.caml_obj_raw_field(obj, 1), - arity = 64 === Stdlib_Sys[9] ? info >> 56 : info >> 24, - start_env = info << 8 >>> 9 | 0; - return [0, arity, start_env]; - } - function of_val(x){ - var switch$0 = 0; - if(is_block(x) && caml_obj_tag(x) !== 248 && 1 <= x.length - 1){var slot = x[1]; switch$0 = 1;} - if(! switch$0) var slot = x; - var switch$1 = 0; - if(is_block(slot) && caml_obj_tag(slot) === 248){var name = slot[1]; switch$1 = 1;} - if(! switch$1) - var name = caml_call1(Stdlib[1], cst_Obj_extension_constructor$0); - return caml_obj_tag(name) === 252 - ? slot - : caml_call1(Stdlib[1], cst_Obj_extension_constructor); - } - function name(slot){return slot[1];} - function id(slot){return slot[2];} - var - Extension_constructor = [0, of_val, name, id], - extension_constructor = Extension_constructor[1], - extension_name = Extension_constructor[2], - extension_id = Extension_constructor[3], - max_ephe_length = Stdlib_Sys[13] - 2 | 0; - function create(l){ - var _g_ = 0 <= l ? 1 : 0, _h_ = _g_ ? l <= max_ephe_length ? 1 : 0 : _g_; - if(1 - _h_) caml_call1(Stdlib[1], cst_Obj_Ephemeron_create); - return runtime.caml_ephe_create(l); - } - function length(x){return x.length - 1 - 2 | 0;} - function raise_if_invalid_offset(e, o, msg){ - var - _d_ = 0 <= o ? 1 : 0, - _e_ = _d_ ? o < length(e) ? 1 : 0 : _d_, - _f_ = 1 - _e_; - return _f_ ? caml_call1(Stdlib[1], msg) : _f_; - } - function get_key(e, o){ - raise_if_invalid_offset(e, o, cst_Obj_Ephemeron_get_key); - return runtime.caml_ephe_get_key(e, o); - } - function get_key_copy(e, o){ - raise_if_invalid_offset(e, o, cst_Obj_Ephemeron_get_key_copy); - return runtime.caml_ephe_get_key_copy(e, o); - } - function set_key(e, o, x){ - raise_if_invalid_offset(e, o, cst_Obj_Ephemeron_set_key); - return runtime.caml_ephe_set_key(e, o, x); - } - function unset_key(e, o){ - raise_if_invalid_offset(e, o, cst_Obj_Ephemeron_unset_key); - return runtime.caml_ephe_unset_key(e, o); - } - function check_key(e, o){ - raise_if_invalid_offset(e, o, cst_Obj_Ephemeron_check_key); - return runtime.caml_ephe_check_key(e, o); - } - function blit_key(e1, o1, e2, o2, l){ - if - (0 <= l - && - 0 <= o1 - && (length(e1) - l | 0) >= o1 && 0 <= o2 && (length(e2) - l | 0) >= o2){ - var - _b_ = 0 !== l ? 1 : 0, - _c_ = _b_ ? runtime.caml_ephe_blit_key(e1, o1, e2, o2, l) : _b_; - return _c_; - } - return caml_call1(Stdlib[1], cst_Obj_Ephemeron_blit_key); - } - var - Stdlib_Obj = - [0, - is_block, - double_field, - set_double_field, - first_non_constant_constructor, - last_non_constant_constructor_, - lazy_tag, - closure_tag, - object_tag, - infix_tag, - forward_tag, - no_scan_tag, - abstract_tag, - string_tag, - double_tag, - double_array_tag, - custom_tag, - custom_tag, - int_tag, - out_of_heap_tag, - unaligned_tag, - [0, info], - Extension_constructor, - extension_constructor, - extension_name, - extension_id, - [0, - create, - length, - get_key, - get_key_copy, - set_key, - unset_key, - check_key, - blit_key, - runtime.caml_ephe_get_data, - runtime.caml_ephe_get_data_copy, - runtime.caml_ephe_set_data, - runtime.caml_ephe_unset_data, - runtime.caml_ephe_check_data, - runtime.caml_ephe_blit_data, - max_ephe_length]]; - runtime.caml_register_global(13, Stdlib_Obj, "Stdlib__Obj"); - return; - } - (globalThis)); - -//# 1299 "../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, - caml_obj_make_forward = runtime.caml_obj_make_forward, - caml_obj_tag = runtime.caml_obj_tag, - caml_wrap_exception = runtime.caml_wrap_exception; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - var - global_data = runtime.caml_get_global_data(), - Stdlib_Obj = global_data.Stdlib__Obj, - Undefined = - [248, "CamlinternalLazy.Undefined", runtime.caml_fresh_oo_id(0)]; - function raise_undefined(param){ - throw caml_maybe_attach_backtrace(Undefined, 1); - } - function force_lazy_block(blk){ - var closure = blk[1]; - blk[1] = raise_undefined; - try{ - var result = caml_call1(closure, 0); - caml_obj_make_forward(blk, result); - return result; - } - catch(e$0){ - var e = caml_wrap_exception(e$0); - blk[1] = function(param){throw caml_maybe_attach_backtrace(e, 0);}; - throw caml_maybe_attach_backtrace(e, 0); - } - } - function force_val_lazy_block(blk){ - var closure = blk[1]; - blk[1] = raise_undefined; - var result = caml_call1(closure, 0); - caml_obj_make_forward(blk, result); - return result; - } - function force(lzv){ - var t = caml_obj_tag(lzv); - return t === Stdlib_Obj[10] - ? lzv[1] - : t !== Stdlib_Obj[6] ? lzv : force_lazy_block(lzv); - } - function force_val(lzv){ - var t = caml_obj_tag(lzv); - return t === Stdlib_Obj[10] - ? lzv[1] - : t !== Stdlib_Obj[6] ? lzv : force_val_lazy_block(lzv); - } - var - CamlinternalLazy = - [0, Undefined, force_lazy_block, force_val_lazy_block, force, force_val]; - runtime.caml_register_global(2, CamlinternalLazy, "CamlinternalLazy"); - return; - } - (globalThis)); - -//# 1364 "../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var runtime = globalThis.jsoo_runtime, caml_obj_tag = runtime.caml_obj_tag; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - var - global_data = runtime.caml_get_global_data(), - CamlinternalLazy = global_data.CamlinternalLazy, - Stdlib_Obj = global_data.Stdlib__Obj, - Undefined = CamlinternalLazy[1], - force_val = CamlinternalLazy[5]; - function from_fun(f){ - var x = runtime.caml_obj_block(Stdlib_Obj[6], 1); - x[1] = f; - return x; - } - function from_val(v){ - var t = caml_obj_tag(v); - if(t !== Stdlib_Obj[10] && t !== Stdlib_Obj[6] && t !== Stdlib_Obj[14]) - return v; - return runtime.caml_lazy_make_forward(v); - } - function is_val(l){ - var _i_ = Stdlib_Obj[6]; - return caml_obj_tag(l) !== _i_ ? 1 : 0; - } - function map(f, x){ - return [246, - function(_f_){ - var - _g_ = caml_obj_tag(x), - _h_ = - 250 === _g_ - ? x[1] - : 246 === _g_ ? caml_call1(CamlinternalLazy[2], x) : x; - return caml_call1(f, _h_); - }]; - } - function map_val(f, x){ - if(! is_val(x)) - return [246, - function(_c_){ - var - _d_ = caml_obj_tag(x), - _e_ = - 250 === _d_ - ? x[1] - : 246 === _d_ ? caml_call1(CamlinternalLazy[2], x) : x; - return caml_call1(f, _e_); - }]; - var - _a_ = caml_obj_tag(x), - _b_ = - 250 === _a_ - ? x[1] - : 246 === _a_ ? caml_call1(CamlinternalLazy[2], x) : x; - return from_val(caml_call1(f, _b_)); - } - var - Stdlib_Lazy = - [0, - Undefined, - map, - is_val, - from_val, - map_val, - from_fun, - force_val, - from_fun, - from_val, - is_val]; - runtime.caml_register_global(2, Stdlib_Lazy, "Stdlib__Lazy"); - return; - } - (globalThis)); - -//# 1446 "../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - function caml_call3(f, a0, a1, a2){ - return (f.l >= 0 ? f.l : f.l = f.length) == 3 - ? f(a0, a1, a2) - : runtime.caml_call_gen(f, [a0, a1, a2]); - } - var - global_data = runtime.caml_get_global_data(), - Assert_failure = global_data.Assert_failure, - CamlinternalAtomic = global_data.CamlinternalAtomic, - CamlinternalLazy = global_data.CamlinternalLazy, - Stdlib = global_data.Stdlib, - Stdlib_Lazy = global_data.Stdlib__Lazy, - _a_ = [0, "seq.ml", 596, 4], - cst_Seq_drop = "Seq.drop", - cst_Seq_take = "Seq.take", - cst_Seq_init = "Seq.init", - cst_Stdlib_Seq_Forced_twice = "Stdlib.Seq.Forced_twice"; - function empty(param){return 0;} - function return$0(x, param){return [0, x, empty];} - function cons(x, next, param){return [0, x, next];} - function append(seq1, seq2, param){ - var match = caml_call1(seq1, 0); - if(! match) return caml_call1(seq2, 0); - var next = match[2], x = match[1]; - return [0, x, function(_aM_){return append(next, seq2, _aM_);}]; - } - function map(f, seq, param){ - var match = caml_call1(seq, 0); - if(! match) return 0; - var next = match[2], x = match[1]; - function _aK_(_aL_){return map(f, next, _aL_);} - return [0, caml_call1(f, x), _aK_]; - } - function filter_map(f, seq, param){ - var seq$0 = seq; - for(;;){ - var match = caml_call1(seq$0, 0); - if(! match) return 0; - var next = match[2], x = match[1], match$0 = caml_call1(f, x); - if(match$0){ - var y = match$0[1]; - return [0, y, function(_aJ_){return filter_map(f, next, _aJ_);}]; - } - var seq$0 = next; - } - } - function filter(f, seq, param){ - var seq$0 = seq; - for(;;){ - var match = caml_call1(seq$0, 0); - if(! match) return 0; - var next = match[2], x = match[1]; - if(caml_call1(f, x)) - return [0, x, function(_aI_){return filter(f, next, _aI_);}]; - var seq$0 = next; - } - } - function concat(seq, param){ - var match = caml_call1(seq, 0); - if(! match) return 0; - var next = match[2], x = match[1], _aG_ = 0; - return append(x, function(_aH_){return concat(next, _aH_);}, _aG_); - } - function flat_map(f, seq, param){ - var match = caml_call1(seq, 0); - if(! match) return 0; - var next = match[2], x = match[1], _aD_ = 0; - function _aE_(_aF_){return flat_map(f, next, _aF_);} - return append(caml_call1(f, x), _aE_, _aD_); - } - function fold_left(f, acc, seq){ - var acc$0 = acc, seq$0 = seq; - for(;;){ - var match = caml_call1(seq$0, 0); - if(! match) return acc$0; - var - next = match[2], - x = match[1], - acc$1 = caml_call2(f, acc$0, x), - acc$0 = acc$1, - seq$0 = next; - } - } - function iter(f, seq){ - var seq$0 = seq; - for(;;){ - var match = caml_call1(seq$0, 0); - if(! match) return 0; - var next = match[2], x = match[1]; - caml_call1(f, x); - var seq$0 = next; - } - } - function unfold(f, u, param){ - var match = caml_call1(f, u); - if(! match) return 0; - var match$0 = match[1], u$0 = match$0[2], x = match$0[1]; - return [0, x, function(_aC_){return unfold(f, u$0, _aC_);}]; - } - function is_empty(xs){return caml_call1(xs, 0) ? 0 : 1;} - function uncons(xs){ - var match = caml_call1(xs, 0); - if(! match) return 0; - var xs$0 = match[2], x = match[1]; - return [0, [0, x, xs$0]]; - } - function length(xs$1){ - var accu = 0, xs = xs$1; - for(;;){ - var match = caml_call1(xs, 0); - if(! match) return accu; - var xs$0 = match[2], accu$0 = accu + 1 | 0, accu = accu$0, xs = xs$0; - } - } - function iteri(f, xs$1){ - var i = 0, xs = xs$1; - for(;;){ - var match = caml_call1(xs, 0); - if(! match) return 0; - var xs$0 = match[2], x = match[1]; - caml_call2(f, i, x); - var i$0 = i + 1 | 0, i = i$0, xs = xs$0; - } - } - function fold_lefti(f, accu$1, xs$1){ - var accu = accu$1, i = 0, xs = xs$1; - for(;;){ - var match = caml_call1(xs, 0); - if(! match) return accu; - var - xs$0 = match[2], - x = match[1], - accu$0 = caml_call3(f, accu, i, x), - i$0 = i + 1 | 0, - accu = accu$0, - i = i$0, - xs = xs$0; - } - } - function for_all(p, xs){ - var xs$0 = xs; - for(;;){ - var match = caml_call1(xs$0, 0); - if(! match) return 1; - var xs$1 = match[2], x = match[1], _aB_ = caml_call1(p, x); - if(! _aB_) return _aB_; - var xs$0 = xs$1; - } - } - function exists(p, xs){ - var xs$0 = xs; - for(;;){ - var match = caml_call1(xs$0, 0); - if(! match) return 0; - var xs$1 = match[2], x = match[1], _aA_ = caml_call1(p, x); - if(_aA_) return _aA_; - var xs$0 = xs$1; - } - } - function find(p, xs){ - var xs$0 = xs; - for(;;){ - var match = caml_call1(xs$0, 0); - if(! match) return 0; - var xs$1 = match[2], x = match[1]; - if(caml_call1(p, x)) return [0, x]; - var xs$0 = xs$1; - } - } - function find_map(f, xs){ - var xs$0 = xs; - for(;;){ - var match = caml_call1(xs$0, 0); - if(! match) return 0; - var xs$1 = match[2], x = match[1], result = caml_call1(f, x); - if(result) return result; - var xs$0 = xs$1; - } - } - function iter2(f, xs, ys){ - var xs$0 = xs, ys$0 = ys; - for(;;){ - var match = caml_call1(xs$0, 0); - if(! match) return 0; - var xs$1 = match[2], x = match[1], match$0 = caml_call1(ys$0, 0); - if(! match$0) return 0; - var ys$1 = match$0[2], y = match$0[1]; - caml_call2(f, x, y); - var xs$0 = xs$1, ys$0 = ys$1; - } - } - function fold_left2(f, accu, xs, ys){ - var accu$0 = accu, xs$0 = xs, ys$0 = ys; - for(;;){ - var match = caml_call1(xs$0, 0); - if(! match) return accu$0; - var xs$1 = match[2], x = match[1], match$0 = caml_call1(ys$0, 0); - if(! match$0) return accu$0; - var - ys$1 = match$0[2], - y = match$0[1], - accu$1 = caml_call3(f, accu$0, x, y), - accu$0 = accu$1, - xs$0 = xs$1, - ys$0 = ys$1; - } - } - function for_all2(f, xs, ys){ - var xs$0 = xs, ys$0 = ys; - for(;;){ - var match = caml_call1(xs$0, 0); - if(! match) return 1; - var xs$1 = match[2], x = match[1], match$0 = caml_call1(ys$0, 0); - if(! match$0) return 1; - var ys$1 = match$0[2], y = match$0[1], _az_ = caml_call2(f, x, y); - if(! _az_) return _az_; - var xs$0 = xs$1, ys$0 = ys$1; - } - } - function exists2(f, xs, ys){ - var xs$0 = xs, ys$0 = ys; - for(;;){ - var match = caml_call1(xs$0, 0); - if(! match) return 0; - var xs$1 = match[2], x = match[1], match$0 = caml_call1(ys$0, 0); - if(! match$0) return 0; - var ys$1 = match$0[2], y = match$0[1], _ay_ = caml_call2(f, x, y); - if(_ay_) return _ay_; - var xs$0 = xs$1, ys$0 = ys$1; - } - } - function equal(eq, xs, ys){ - var xs$0 = xs, ys$0 = ys; - for(;;){ - var match = caml_call1(xs$0, 0), match$0 = caml_call1(ys$0, 0); - if(match){ - if(match$0){ - var - ys$1 = match$0[2], - y = match$0[1], - xs$1 = match[2], - x = match[1], - _ax_ = caml_call2(eq, x, y); - if(! _ax_) return _ax_; - var xs$0 = xs$1, ys$0 = ys$1; - continue; - } - } - else if(! match$0) return 1; - return 0; - } - } - function compare(cmp, xs, ys){ - var xs$0 = xs, ys$0 = ys; - for(;;){ - var match = caml_call1(xs$0, 0), match$0 = caml_call1(ys$0, 0); - if(! match) return match$0 ? -1 : 0; - var xs$1 = match[2], x = match[1]; - if(! match$0) return 1; - var ys$1 = match$0[2], y = match$0[1], c = caml_call2(cmp, x, y); - if(0 !== c) return c; - var xs$0 = xs$1, ys$0 = ys$1; - } - } - function init_aux(f, i, j, param){ - if(i >= j) return 0; - var _au_ = i + 1 | 0; - function _av_(_aw_){return init_aux(f, _au_, j, _aw_);} - return [0, caml_call1(f, i), _av_]; - } - function init(n, f){ - if(0 > n) return caml_call1(Stdlib[1], cst_Seq_init); - var _as_ = 0; - return function(_at_){return init_aux(f, _as_, n, _at_);}; - } - function repeat(x, param){ - return [0, x, function(_ar_){return repeat(x, _ar_);}]; - } - function forever(f, param){ - function _ap_(_aq_){return forever(f, _aq_);} - return [0, caml_call1(f, 0), _ap_]; - } - function cycle_nonempty(xs, param){ - var _an_ = 0; - return append(xs, function(_ao_){return cycle_nonempty(xs, _ao_);}, _an_); - } - function cycle(xs, param){ - var match = caml_call1(xs, 0); - if(! match) return 0; - var xs$0 = match[2], x = match[1]; - function _ak_(_am_){return cycle_nonempty(xs, _am_);} - return [0, x, function(_al_){return append(xs$0, _ak_, _al_);}]; - } - function iterate1(f, x, param){ - var y = caml_call1(f, x); - return [0, y, function(_aj_){return iterate1(f, y, _aj_);}]; - } - function iterate(f, x){ - function _ag_(_ai_){return iterate1(f, x, _ai_);} - return function(_ah_){return [0, x, _ag_];}; - } - function mapi_aux(f, i, xs, param){ - var match = caml_call1(xs, 0); - if(! match) return 0; - var xs$0 = match[2], x = match[1], _ad_ = i + 1 | 0; - function _ae_(_af_){return mapi_aux(f, _ad_, xs$0, _af_);} - return [0, caml_call2(f, i, x), _ae_]; - } - function mapi(f, xs){ - var _ab_ = 0; - return function(_ac_){return mapi_aux(f, _ab_, xs, _ac_);}; - } - function tail_scan(f, s, xs, param){ - var match = caml_call1(xs, 0); - if(! match) return 0; - var xs$0 = match[2], x = match[1], s$0 = caml_call2(f, s, x); - return [0, s$0, function(_aa_){return tail_scan(f, s$0, xs$0, _aa_);}]; - } - function scan(f, s, xs){ - function _Z_(_$_){return tail_scan(f, s, xs, _$_);} - return function(___){return [0, s, _Z_];}; - } - function take_aux(n, xs){ - return 0 === n - ? empty - : function - (param){ - var match = caml_call1(xs, 0); - if(! match) return 0; - var xs$0 = match[2], x = match[1]; - return [0, x, take_aux(n - 1 | 0, xs$0)]; - }; - } - function take(n, xs){ - if(n < 0) caml_call1(Stdlib[1], cst_Seq_take); - return take_aux(n, xs); - } - function drop(n, xs){ - return 0 <= n - ? 0 - === n - ? xs - : function - (param){ - var n$0 = n, xs$0 = xs; - for(;;){ - var match = caml_call1(xs$0, 0); - if(! match) return 0; - var xs$1 = match[2], n$1 = n$0 - 1 | 0; - if(0 === n$1) return caml_call1(xs$1, 0); - var n$0 = n$1, xs$0 = xs$1; - } - } - : caml_call1(Stdlib[1], cst_Seq_drop); - } - function take_while(p, xs, param){ - var match = caml_call1(xs, 0); - if(! match) return 0; - var xs$0 = match[2], x = match[1]; - return caml_call1(p, x) - ? [0, x, function(_Y_){return take_while(p, xs$0, _Y_);}] - : 0; - } - function drop_while(p, xs, param){ - var xs$0 = xs; - for(;;){ - var node = caml_call1(xs$0, 0); - if(! node) return 0; - var xs$1 = node[2], x = node[1]; - if(! caml_call1(p, x)) return node; - var xs$0 = xs$1; - } - } - function group(eq, xs, param){ - var match = caml_call1(xs, 0); - if(! match) return 0; - var xs$0 = match[2], x = match[1], _P_ = caml_call1(eq, x); - function _Q_(_X_){return drop_while(_P_, xs$0, _X_);} - function _R_(_W_){return group(eq, _Q_, _W_);} - var _S_ = caml_call1(eq, x); - function _T_(_V_){return take_while(_S_, xs$0, _V_);} - return [0, function(_U_){return [0, x, _T_];}, _R_]; - } - var - Forced_twice = - [248, cst_Stdlib_Seq_Forced_twice, runtime.caml_fresh_oo_id(0)], - to_lazy = Stdlib_Lazy[6]; - function failure(param){ - throw caml_maybe_attach_backtrace(Forced_twice, 1); - } - function memoize(xs){ - function s$0(param){ - var match = caml_call1(xs, 0); - if(! match) return 0; - var xs$0 = match[2], x = match[1]; - return [0, x, memoize(xs$0)]; - } - var s = caml_call1(to_lazy, s$0); - return function(_O_){ - var _N_ = runtime.caml_obj_tag(s); - return 250 === _N_ - ? s[1] - : 246 === _N_ ? caml_call1(CamlinternalLazy[2], s) : s;}; - } - function once(xs){ - function f(param){ - var match = caml_call1(xs, 0); - if(! match) return 0; - var xs$0 = match[2], x = match[1]; - return [0, x, once(xs$0)]; - } - var action = caml_call1(CamlinternalAtomic[1], f); - return function(param){ - var f = caml_call2(CamlinternalAtomic[4], action, failure); - return caml_call1(f, 0);}; - } - function zip(xs, ys, param){ - var match = caml_call1(xs, 0); - if(! match) return 0; - var xs$0 = match[2], x = match[1], match$0 = caml_call1(ys, 0); - if(! match$0) return 0; - var ys$0 = match$0[2], y = match$0[1]; - return [0, [0, x, y], function(_M_){return zip(xs$0, ys$0, _M_);}]; - } - function map2(f, xs, ys, param){ - var match = caml_call1(xs, 0); - if(! match) return 0; - var xs$0 = match[2], x = match[1], match$0 = caml_call1(ys, 0); - if(! match$0) return 0; - var ys$0 = match$0[2], y = match$0[1]; - function _K_(_L_){return map2(f, xs$0, ys$0, _L_);} - return [0, caml_call2(f, x, y), _K_]; - } - function interleave(xs, ys, param){ - var match = caml_call1(xs, 0); - if(! match) return caml_call1(ys, 0); - var xs$0 = match[2], x = match[1]; - return [0, x, function(_J_){return interleave(ys, xs$0, _J_);}]; - } - function sorted_merge1(cmp, x, xs, y, ys){ - return 0 < caml_call2(cmp, x, y) - ? [0, - y, - function(_H_){ - var match = caml_call1(ys, 0); - if(! match) return [0, x, xs]; - var ys$0 = match[2], y = match[1]; - return sorted_merge1(cmp, x, xs, y, ys$0); - }] - : [0, - x, - function(_I_){ - var match = caml_call1(xs, 0); - if(! match) return [0, y, ys]; - var xs$0 = match[2], x = match[1]; - return sorted_merge1(cmp, x, xs$0, y, ys); - }]; - } - function sorted_merge(cmp, xs, ys, param){ - var match = caml_call1(xs, 0), match$0 = caml_call1(ys, 0); - if(match){ - if(match$0){ - var ys$0 = match$0[2], y = match$0[1], xs$0 = match[2], x = match[1]; - return sorted_merge1(cmp, x, xs$0, y, ys$0); - } - var c = match; - } - else{if(! match$0) return 0; var c = match$0;} - return c; - } - function map_fst(xys, param){ - var match = caml_call1(xys, 0); - if(! match) return 0; - var xys$0 = match[2], x = match[1][1]; - return [0, x, function(_G_){return map_fst(xys$0, _G_);}]; - } - function map_snd(xys, param){ - var match = caml_call1(xys, 0); - if(! match) return 0; - var xys$0 = match[2], y = match[1][2]; - return [0, y, function(_F_){return map_snd(xys$0, _F_);}]; - } - function unzip(xys){ - function _C_(_E_){return map_snd(xys, _E_);} - return [0, function(_D_){return map_fst(xys, _D_);}, _C_]; - } - function filter_map_find_left_map(f, xs, param){ - var xs$0 = xs; - for(;;){ - var match = caml_call1(xs$0, 0); - if(! match) return 0; - var xs$1 = match[2], x = match[1], match$0 = caml_call1(f, x); - if(0 === match$0[0]){ - var y = match$0[1]; - return [0, - y, - function(_B_){return filter_map_find_left_map(f, xs$1, _B_);}]; - } - var xs$0 = xs$1; - } - } - function filter_map_find_right_map(f, xs, param){ - var xs$0 = xs; - for(;;){ - var match = caml_call1(xs$0, 0); - if(! match) return 0; - var xs$1 = match[2], x = match[1], match$0 = caml_call1(f, x); - if(0 === match$0[0]){var xs$0 = xs$1; continue;} - var z = match$0[1]; - return [0, - z, - function(_A_){return filter_map_find_right_map(f, xs$1, _A_);}]; - } - } - function partition_map(f, xs){ - function _x_(_z_){return filter_map_find_right_map(f, xs, _z_);} - return [0, - function(_y_){return filter_map_find_left_map(f, xs, _y_);}, - _x_]; - } - function partition(p, xs){ - function _t_(x){return 1 - caml_call1(p, x);} - function _u_(_w_){return filter(_t_, xs, _w_);} - return [0, function(_v_){return filter(p, xs, _v_);}, _u_]; - } - function peel(xss){ - return unzip(function(_s_){return filter_map(uncons, xss, _s_);}); - } - function transpose(xss, param){ - var match = peel(xss), tails = match[2], heads = match[1]; - if(! is_empty(heads)) - return [0, heads, function(_r_){return transpose(tails, _r_);}]; - if(is_empty(tails)) return 0; - throw caml_maybe_attach_backtrace([0, Assert_failure, _a_], 1); - } - function _b_(remainders, xss, param){ - var match = caml_call1(xss, 0); - if(! match) return transpose(remainders, 0); - var xss$0 = match[2], xs = match[1], match$0 = caml_call1(xs, 0); - if(match$0){ - var - xs$0 = match$0[2], - x = match$0[1], - match$1 = peel(remainders), - tails = match$1[2], - heads = match$1[1], - _l_ = function(_q_){return [0, xs$0, tails];}, - _m_ = function(_p_){return _b_(_l_, xss$0, _p_);}; - return [0, function(_o_){return [0, x, heads];}, _m_]; - } - var - match$2 = peel(remainders), - tails$0 = match$2[2], - heads$0 = match$2[1]; - return [0, heads$0, function(_n_){return _b_(tails$0, xss$0, _n_);}]; - } - function map_product(f, xs, ys){ - function _f_(x){ - function _j_(y){return caml_call2(f, x, y);} - return function(_k_){return map(_j_, ys, _k_);}; - } - function xss(_i_){return map(_f_, xs, _i_);} - function _e_(_h_){return _b_(empty, xss, _h_);} - return function(_g_){return concat(_e_, _g_);}; - } - function product(xs, ys){ - return map_product(function(x, y){return [0, x, y];}, xs, ys); - } - function of_dispenser(it){ - function c(param){ - var match = caml_call1(it, 0); - if(! match) return 0; - var x = match[1]; - return [0, x, c]; - } - return c; - } - function to_dispenser(xs){ - var s = [0, xs]; - return function(param){ - var match = caml_call1(s[1], 0); - if(! match) return 0; - var xs = match[2], x = match[1]; - s[1] = xs; - return [0, x];}; - } - function ints(i, param){ - var _c_ = i + 1 | 0; - return [0, i, function(_d_){return ints(_c_, _d_);}]; - } - var - Stdlib_Seq = - [0, - is_empty, - uncons, - length, - iter, - fold_left, - iteri, - fold_lefti, - for_all, - exists, - find, - find_map, - iter2, - fold_left2, - for_all2, - exists2, - equal, - compare, - empty, - return$0, - cons, - init, - unfold, - repeat, - forever, - cycle, - iterate, - map, - mapi, - filter, - filter_map, - scan, - take, - drop, - take_while, - drop_while, - group, - memoize, - Forced_twice, - once, - transpose, - append, - concat, - flat_map, - flat_map, - zip, - map2, - interleave, - sorted_merge, - product, - map_product, - unzip, - unzip, - partition_map, - partition, - of_dispenser, - to_dispenser, - ints]; - runtime.caml_register_global(10, Stdlib_Seq, "Stdlib__Seq"); - return; - } - (globalThis)); - -//# 2119 "../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var runtime = globalThis.jsoo_runtime; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - var - global_data = runtime.caml_get_global_data(), - Stdlib_Seq = global_data.Stdlib__Seq, - Stdlib = global_data.Stdlib, - cst_option_is_None = "option is None", - none = 0; - function some(v){return [0, v];} - function value(o, default$0){ - if(! o) return default$0; - var v = o[1]; - return v; - } - function get(param){ - if(! param) return caml_call1(Stdlib[1], cst_option_is_None); - var v = param[1]; - return v; - } - function bind(o, f){ - if(! o) return 0; - var v = o[1]; - return caml_call1(f, v); - } - function join(param){if(! param) return 0; var o = param[1]; return o;} - function map(f, o){ - if(! o) return 0; - var v = o[1]; - return [0, caml_call1(f, v)]; - } - function fold(none, some, param){ - if(! param) return none; - var v = param[1]; - return caml_call1(some, v); - } - function iter(f, param){ - if(! param) return 0; - var v = param[1]; - return caml_call1(f, v); - } - function is_none(param){return param ? 0 : 1;} - function is_some(param){return param ? 1 : 0;} - function equal(eq, o0, o1){ - if(o0){ - if(o1){var v1 = o1[1], v0 = o0[1]; return caml_call2(eq, v0, v1);} - } - else if(! o1) return 1; - return 0; - } - function compare(cmp, o0, o1){ - if(! o0) return o1 ? -1 : 0; - var v0 = o0[1]; - if(! o1) return 1; - var v1 = o1[1]; - return caml_call2(cmp, v0, v1); - } - function to_result(none, param){ - if(! param) return [1, none]; - var v = param[1]; - return [0, v]; - } - function to_list(param){ - if(! param) return 0; - var v = param[1]; - return [0, v, 0]; - } - function to_seq(param){ - if(! param) return Stdlib_Seq[18]; - var v = param[1]; - return caml_call1(Stdlib_Seq[19], v); - } - var - Stdlib_Option = - [0, - none, - some, - value, - get, - bind, - join, - map, - fold, - iter, - is_none, - is_some, - equal, - compare, - to_result, - to_list, - to_seq]; - runtime.caml_register_global(3, Stdlib_Option, "Stdlib__Option"); - return; - } - (globalThis)); - -//# 2391 "../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - caml_bytes_unsafe_set = runtime.caml_bytes_unsafe_set, - caml_create_bytes = runtime.caml_create_bytes, - caml_string_of_bytes = runtime.caml_string_of_bytes; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - var - global_data = runtime.caml_get_global_data(), - cst = "\\\\", - cst$0 = "\\'", - Stdlib = global_data.Stdlib, - cst_b = "\\b", - cst_t = "\\t", - cst_n = "\\n", - cst_r = "\\r", - cst_Char_chr = "Char.chr"; - function chr(n){ - if(0 <= n && 255 >= n) return n; - return caml_call1(Stdlib[1], cst_Char_chr); - } - function escaped(c){ - var switch$0 = 0; - if(40 <= c){ - if(92 === c) return cst; - if(127 > c) switch$0 = 1; - } - else if(32 <= c){ - if(39 <= c) return cst$0; - switch$0 = 1; - } - else if(14 > c) - switch(c){ - case 8: - return cst_b; - case 9: - return cst_t; - case 10: - return cst_n; - case 13: - return cst_r; - } - if(switch$0){ - var s$0 = caml_create_bytes(1); - caml_bytes_unsafe_set(s$0, 0, c); - return caml_string_of_bytes(s$0); - } - var s = caml_create_bytes(4); - caml_bytes_unsafe_set(s, 0, 92); - caml_bytes_unsafe_set(s, 1, 48 + (c / 100 | 0) | 0); - caml_bytes_unsafe_set(s, 2, 48 + ((c / 10 | 0) % 10 | 0) | 0); - caml_bytes_unsafe_set(s, 3, 48 + (c % 10 | 0) | 0); - return caml_string_of_bytes(s); - } - function lowercase(c){ - var _b_ = c - 192 | 0, switch$0 = 0; - if(30 < _b_ >>> 0){ - if(25 >= _b_ + 127 >>> 0) switch$0 = 1; - } - else if(23 !== _b_) switch$0 = 1; - return switch$0 ? c + 32 | 0 : c; - } - function uppercase(c){ - var _a_ = c - 224 | 0, switch$0 = 0; - if(30 < _a_ >>> 0){ - if(25 >= _a_ + 127 >>> 0) switch$0 = 1; - } - else if(23 !== _a_) switch$0 = 1; - return switch$0 ? c - 32 | 0 : c; - } - function lowercase_ascii(c){return 25 < c - 65 >>> 0 ? c : c + 32 | 0;} - function uppercase_ascii(c){return 25 < c - 97 >>> 0 ? c : c - 32 | 0;} - function compare(c1, c2){return c1 - c2 | 0;} - function equal(c1, c2){return 0 === (c1 - c2 | 0) ? 1 : 0;} - var - Stdlib_Char = - [0, - chr, - escaped, - lowercase, - uppercase, - lowercase_ascii, - uppercase_ascii, - compare, - equal]; - runtime.caml_register_global(8, Stdlib_Char, "Stdlib__Char"); - return; - } - (globalThis)); - -//# 2489 "../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - cst_uchar_ml = "uchar.ml", - caml_format_int = runtime.caml_format_int, - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - var - global_data = runtime.caml_get_global_data(), - err_no_pred = "U+0000 has no predecessor", - err_no_succ = "U+10FFFF has no successor", - Assert_failure = global_data.Assert_failure, - Stdlib = global_data.Stdlib, - _d_ = [0, cst_uchar_ml, 88, 18], - _c_ = [0, cst_uchar_ml, 91, 7], - _b_ = [0, cst_uchar_ml, 80, 18], - _a_ = [0, cst_uchar_ml, 85, 7], - cst_is_not_a_latin1_character = " is not a latin1 character", - cst_U = "U+", - cst_is_not_an_Unicode_scalar_v = " is not an Unicode scalar value", - min = 0, - max = 1114111, - lo_bound = 55295, - hi_bound = 57344, - bom = 65279, - rep = 65533; - function succ(u){ - return u === 55295 - ? hi_bound - : u === 1114111 ? caml_call1(Stdlib[1], err_no_succ) : u + 1 | 0; - } - function pred(u){ - return u === 57344 - ? lo_bound - : u === 0 ? caml_call1(Stdlib[1], err_no_pred) : u - 1 | 0; - } - function is_valid(i){ - var _o_ = 0 <= i ? 1 : 0, _p_ = _o_ ? i <= 55295 ? 1 : 0 : _o_; - if(_p_) - var _q_ = _p_; - else - var _r_ = 57344 <= i ? 1 : 0, _q_ = _r_ ? i <= 1114111 ? 1 : 0 : _r_; - return _q_; - } - function of_int(i){ - if(is_valid(i)) return i; - var - _n_ = - caml_call2 - (Stdlib[28], caml_format_int("%X", i), cst_is_not_an_Unicode_scalar_v); - return caml_call1(Stdlib[1], _n_); - } - function is_char(u){return u < 256 ? 1 : 0;} - function of_char(c){return c;} - function to_char(u){ - if(255 >= u) return u; - var - _l_ = - caml_call2 - (Stdlib[28], - caml_format_int("%04X", u), - cst_is_not_a_latin1_character), - _m_ = caml_call2(Stdlib[28], cst_U, _l_); - return caml_call1(Stdlib[1], _m_); - } - function unsafe_to_char(_k_){return _k_;} - function equal(_j_, _i_){return _j_ === _i_ ? 1 : 0;} - var compare = runtime.caml_int_compare; - function hash(_h_){return _h_;} - function utf_decode_is_valid(d){return 1 === (d >>> 27 | 0) ? 1 : 0;} - function utf_decode_length(d){return (d >>> 24 | 0) & 7;} - function utf_decode_uchar(d){return d & 16777215;} - function utf_decode(n, u){return (8 | n) << 24 | u;} - function utf_decode_invalid(n){return n << 24 | 65533;} - function utf_8_byte_length(u){ - if(0 > u) throw caml_maybe_attach_backtrace([0, Assert_failure, _b_], 1); - if(127 >= u) return 1; - if(2047 >= u) return 2; - if(65535 >= u) return 3; - if(1114111 < u) - throw caml_maybe_attach_backtrace([0, Assert_failure, _a_], 1); - return 4; - } - function utf_16_byte_length(u){ - if(0 > u) throw caml_maybe_attach_backtrace([0, Assert_failure, _d_], 1); - if(65535 >= u) return 2; - if(1114111 < u) - throw caml_maybe_attach_backtrace([0, Assert_failure, _c_], 1); - return 4; - } - function _e_(_g_){return _g_;} - var - Stdlib_Uchar = - [0, - min, - max, - bom, - rep, - succ, - pred, - is_valid, - of_int, - function(_f_){return _f_;}, - _e_, - is_char, - of_char, - to_char, - unsafe_to_char, - equal, - compare, - hash, - utf_decode_is_valid, - utf_decode_uchar, - utf_decode_length, - utf_decode, - utf_decode_invalid, - utf_8_byte_length, - utf_16_byte_length]; - runtime.caml_register_global(13, Stdlib_Uchar, "Stdlib__Uchar"); - return; - } - (globalThis)); - -//# 2625 "../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - cst_List_nth$1 = "List.nth", - caml_compare = runtime.caml_compare, - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - function caml_call3(f, a0, a1, a2){ - return (f.l >= 0 ? f.l : f.l = f.length) == 3 - ? f(a0, a1, a2) - : runtime.caml_call_gen(f, [a0, a1, a2]); - } - var - global_data = runtime.caml_get_global_data(), - Stdlib = global_data.Stdlib, - Stdlib_Seq = global_data.Stdlib__Seq, - Stdlib_Sys = global_data.Stdlib__Sys, - cst_List_map2 = "List.map2", - cst_List_iter2 = "List.iter2", - cst_List_fold_left2 = "List.fold_left2", - cst_List_fold_right2 = "List.fold_right2", - cst_List_for_all2 = "List.for_all2", - cst_List_exists2 = "List.exists2", - _b_ = [0, 0, 0], - cst_List_combine = "List.combine", - cst_List_rev_map2 = "List.rev_map2", - cst_List_init = "List.init", - cst_List_nth$0 = cst_List_nth$1, - cst_nth = "nth", - cst_List_nth = cst_List_nth$1, - cst_tl = "tl", - cst_hd = "hd"; - function length(l$0){ - var len = 0, param = l$0; - for(;;){ - if(! param) return len; - var l = param[2], len$0 = len + 1 | 0, len = len$0, param = l; - } - } - function cons(a, l){return [0, a, l];} - function hd(param){ - if(! param) return caml_call1(Stdlib[2], cst_hd); - var a = param[1]; - return a; - } - function tl(param){ - if(! param) return caml_call1(Stdlib[2], cst_tl); - var l = param[2]; - return l; - } - function nth(l, n){ - if(0 > n) return caml_call1(Stdlib[1], cst_List_nth); - var l$0 = l, n$0 = n; - for(;;){ - if(! l$0) return caml_call1(Stdlib[2], cst_nth); - var l$1 = l$0[2], a = l$0[1]; - if(0 === n$0) return a; - var n$1 = n$0 - 1 | 0, l$0 = l$1, n$0 = n$1; - } - } - function nth_opt(l, n){ - if(0 > n) return caml_call1(Stdlib[1], cst_List_nth$0); - var l$0 = l, n$0 = n; - for(;;){ - if(! l$0) return 0; - var l$1 = l$0[2], a = l$0[1]; - if(0 === n$0) return [0, a]; - var n$1 = n$0 - 1 | 0, l$0 = l$1, n$0 = n$1; - } - } - var append = Stdlib[37]; - function rev_append(l1, l2){ - var l1$0 = l1, l2$0 = l2; - for(;;){ - if(! l1$0) return l2$0; - var - l1$1 = l1$0[2], - a = l1$0[1], - l2$1 = [0, a, l2$0], - l1$0 = l1$1, - l2$0 = l2$1; - } - } - function rev(l){return rev_append(l, 0);} - function init_aux(i, n, f){ - if(n <= i) return 0; - var r = caml_call1(f, i); - return [0, r, init_aux(i + 1 | 0, n, f)]; - } - var rev_init_threshold = typeof Stdlib_Sys[5] === "number" ? 10000 : 50; - function init(len, f){ - if(0 > len) return caml_call1(Stdlib[1], cst_List_init); - if(rev_init_threshold >= len) return init_aux(0, len, f); - var acc = 0, i = 0; - for(;;){ - if(len <= i) return rev(acc); - var - i$0 = i + 1 | 0, - acc$0 = [0, caml_call1(f, i), acc], - acc = acc$0, - i = i$0; - } - } - function flatten(param){ - if(! param) return 0; - var r = param[2], l = param[1], _J_ = flatten(r); - return caml_call2(Stdlib[37], l, _J_); - } - function map(f, param){ - if(! param) return 0; - var l = param[2], a = param[1], r = caml_call1(f, a); - return [0, r, map(f, l)]; - } - function _a_(i, f, param){ - if(! param) return 0; - var l = param[2], a = param[1], r = caml_call2(f, i, a); - return [0, r, _a_(i + 1 | 0, f, l)]; - } - function mapi(f, l){return _a_(0, f, l);} - function rev_map(f, l){ - var accu = 0, param = l; - for(;;){ - if(! param) return accu; - var - l$0 = param[2], - a = param[1], - accu$0 = [0, caml_call1(f, a), accu], - accu = accu$0, - param = l$0; - } - } - function iter(f, param){ - var param$0 = param; - for(;;){ - if(! param$0) return 0; - var l = param$0[2], a = param$0[1]; - caml_call1(f, a); - var param$0 = l; - } - } - function iteri(f, l$0){ - var i = 0, param = l$0; - for(;;){ - if(! param) return 0; - var l = param[2], a = param[1]; - caml_call2(f, i, a); - var i$0 = i + 1 | 0, i = i$0, param = l; - } - } - function fold_left(f, accu, l){ - var accu$0 = accu, l$0 = l; - for(;;){ - if(! l$0) return accu$0; - var - l$1 = l$0[2], - a = l$0[1], - accu$1 = caml_call2(f, accu$0, a), - accu$0 = accu$1, - l$0 = l$1; - } - } - function fold_right(f, l, accu){ - if(! l) return accu; - var l$0 = l[2], a = l[1]; - return caml_call2(f, a, fold_right(f, l$0, accu)); - } - function map2(f, l1, l2){ - if(l1){ - if(l2){ - var - l2$0 = l2[2], - a2 = l2[1], - l1$0 = l1[2], - a1 = l1[1], - r = caml_call2(f, a1, a2); - return [0, r, map2(f, l1$0, l2$0)]; - } - } - else if(! l2) return 0; - return caml_call1(Stdlib[1], cst_List_map2); - } - function rev_map2(f, l1, l2){ - var accu = 0, l1$0 = l1, l2$0 = l2; - for(;;){ - if(l1$0){ - if(l2$0){ - var - l2$1 = l2$0[2], - a2 = l2$0[1], - l1$1 = l1$0[2], - a1 = l1$0[1], - accu$0 = [0, caml_call2(f, a1, a2), accu], - accu = accu$0, - l1$0 = l1$1, - l2$0 = l2$1; - continue; - } - } - else if(! l2$0) return accu; - return caml_call1(Stdlib[1], cst_List_rev_map2); - } - } - function iter2(f, l1, l2){ - var l1$0 = l1, l2$0 = l2; - for(;;){ - if(l1$0){ - if(l2$0){ - var l2$1 = l2$0[2], a2 = l2$0[1], l1$1 = l1$0[2], a1 = l1$0[1]; - caml_call2(f, a1, a2); - var l1$0 = l1$1, l2$0 = l2$1; - continue; - } - } - else if(! l2$0) return 0; - return caml_call1(Stdlib[1], cst_List_iter2); - } - } - function fold_left2(f, accu, l1, l2){ - var accu$0 = accu, l1$0 = l1, l2$0 = l2; - for(;;){ - if(l1$0){ - if(l2$0){ - var - l2$1 = l2$0[2], - a2 = l2$0[1], - l1$1 = l1$0[2], - a1 = l1$0[1], - accu$1 = caml_call3(f, accu$0, a1, a2), - accu$0 = accu$1, - l1$0 = l1$1, - l2$0 = l2$1; - continue; - } - } - else if(! l2$0) return accu$0; - return caml_call1(Stdlib[1], cst_List_fold_left2); - } - } - function fold_right2(f, l1, l2, accu){ - if(l1){ - if(l2){ - var l2$0 = l2[2], a2 = l2[1], l1$0 = l1[2], a1 = l1[1]; - return caml_call3(f, a1, a2, fold_right2(f, l1$0, l2$0, accu)); - } - } - else if(! l2) return accu; - return caml_call1(Stdlib[1], cst_List_fold_right2); - } - function for_all(p, param){ - var param$0 = param; - for(;;){ - if(! param$0) return 1; - var l = param$0[2], a = param$0[1], _I_ = caml_call1(p, a); - if(! _I_) return _I_; - var param$0 = l; - } - } - function exists(p, param){ - var param$0 = param; - for(;;){ - if(! param$0) return 0; - var l = param$0[2], a = param$0[1], _H_ = caml_call1(p, a); - if(_H_) return _H_; - var param$0 = l; - } - } - function for_all2(p, l1, l2){ - var l1$0 = l1, l2$0 = l2; - for(;;){ - if(l1$0){ - if(l2$0){ - var - l2$1 = l2$0[2], - a2 = l2$0[1], - l1$1 = l1$0[2], - a1 = l1$0[1], - _G_ = caml_call2(p, a1, a2); - if(! _G_) return _G_; - var l1$0 = l1$1, l2$0 = l2$1; - continue; - } - } - else if(! l2$0) return 1; - return caml_call1(Stdlib[1], cst_List_for_all2); - } - } - function exists2(p, l1, l2){ - var l1$0 = l1, l2$0 = l2; - for(;;){ - if(l1$0){ - if(l2$0){ - var - l2$1 = l2$0[2], - a2 = l2$0[1], - l1$1 = l1$0[2], - a1 = l1$0[1], - _F_ = caml_call2(p, a1, a2); - if(_F_) return _F_; - var l1$0 = l1$1, l2$0 = l2$1; - continue; - } - } - else if(! l2$0) return 0; - return caml_call1(Stdlib[1], cst_List_exists2); - } - } - function mem(x, param){ - var param$0 = param; - for(;;){ - if(! param$0) return 0; - var - l = param$0[2], - a = param$0[1], - _E_ = 0 === caml_compare(a, x) ? 1 : 0; - if(_E_) return _E_; - var param$0 = l; - } - } - function memq(x, param){ - var param$0 = param; - for(;;){ - if(! param$0) return 0; - var l = param$0[2], a = param$0[1], _D_ = a === x ? 1 : 0; - if(_D_) return _D_; - var param$0 = l; - } - } - function assoc(x, param){ - var param$0 = param; - for(;;){ - if(! param$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var l = param$0[2], match = param$0[1], b = match[2], a = match[1]; - if(0 === caml_compare(a, x)) return b; - var param$0 = l; - } - } - function assoc_opt(x, param){ - var param$0 = param; - for(;;){ - if(! param$0) return 0; - var l = param$0[2], match = param$0[1], b = match[2], a = match[1]; - if(0 === caml_compare(a, x)) return [0, b]; - var param$0 = l; - } - } - function assq(x, param){ - var param$0 = param; - for(;;){ - if(! param$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var l = param$0[2], match = param$0[1], b = match[2], a = match[1]; - if(a === x) return b; - var param$0 = l; - } - } - function assq_opt(x, param){ - var param$0 = param; - for(;;){ - if(! param$0) return 0; - var l = param$0[2], match = param$0[1], b = match[2], a = match[1]; - if(a === x) return [0, b]; - var param$0 = l; - } - } - function mem_assoc(x, param){ - var param$0 = param; - for(;;){ - if(! param$0) return 0; - var - l = param$0[2], - a = param$0[1][1], - _C_ = 0 === caml_compare(a, x) ? 1 : 0; - if(_C_) return _C_; - var param$0 = l; - } - } - function mem_assq(x, param){ - var param$0 = param; - for(;;){ - if(! param$0) return 0; - var l = param$0[2], a = param$0[1][1], _B_ = a === x ? 1 : 0; - if(_B_) return _B_; - var param$0 = l; - } - } - function remove_assoc(x, param){ - if(! param) return 0; - var l = param[2], pair = param[1], a = pair[1]; - return 0 === caml_compare(a, x) ? l : [0, pair, remove_assoc(x, l)]; - } - function remove_assq(x, param){ - if(! param) return 0; - var l = param[2], pair = param[1], a = pair[1]; - return a === x ? l : [0, pair, remove_assq(x, l)]; - } - function find(p, param){ - var param$0 = param; - for(;;){ - if(! param$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var l = param$0[2], x = param$0[1]; - if(caml_call1(p, x)) return x; - var param$0 = l; - } - } - function find_opt(p, param){ - var param$0 = param; - for(;;){ - if(! param$0) return 0; - var l = param$0[2], x = param$0[1]; - if(caml_call1(p, x)) return [0, x]; - var param$0 = l; - } - } - function find_map(f, param){ - var param$0 = param; - for(;;){ - if(! param$0) return 0; - var l = param$0[2], x = param$0[1], result = caml_call1(f, x); - if(result) return result; - var param$0 = l; - } - } - function find_all(p){ - var accu = 0; - return function(param$0){ - var accu$0 = accu, param = param$0; - for(;;){ - if(! param) return rev(accu$0); - var l = param[2], x = param[1]; - if(caml_call1(p, x)){ - var accu$1 = [0, x, accu$0], accu$0 = accu$1, param = l; - continue; - } - var param = l; - }}; - } - function filteri(p, l){ - var i = 0, acc = 0, param = l; - for(;;){ - if(! param) return rev(acc); - var - l$0 = param[2], - x = param[1], - acc$0 = caml_call2(p, i, x) ? [0, x, acc] : acc, - i$0 = i + 1 | 0, - i = i$0, - acc = acc$0, - param = l$0; - } - } - function filter_map(f){ - var accu = 0; - return function(param$0){ - var accu$0 = accu, param = param$0; - for(;;){ - if(! param) return rev(accu$0); - var l = param[2], x = param[1], match = caml_call1(f, x); - if(match){ - var v = match[1], accu$1 = [0, v, accu$0], accu$0 = accu$1, param = l; - continue; - } - var param = l; - }}; - } - function concat_map(f, l){ - var acc = 0, param = l; - for(;;){ - if(! param) return rev(acc); - var - l$0 = param[2], - x = param[1], - xs = caml_call1(f, x), - acc$0 = rev_append(xs, acc), - acc = acc$0, - param = l$0; - } - } - function fold_left_map(f, accu, l){ - var accu$0 = accu, l_accu = 0, param = l; - for(;;){ - if(! param) return [0, accu$0, rev(l_accu)]; - var - l$0 = param[2], - x = param[1], - match = caml_call2(f, accu$0, x), - x$0 = match[2], - accu$1 = match[1], - l_accu$0 = [0, x$0, l_accu], - accu$0 = accu$1, - l_accu = l_accu$0, - param = l$0; - } - } - function partition(p, l){ - var yes = 0, no = 0, param = l; - for(;;){ - if(! param){var _A_ = rev(no); return [0, rev(yes), _A_];} - var l$0 = param[2], x = param[1]; - if(caml_call1(p, x)){ - var yes$0 = [0, x, yes], yes = yes$0, param = l$0; - continue; - } - var no$0 = [0, x, no], no = no$0, param = l$0; - } - } - function partition_map(p, l){ - var left = 0, right = 0, param = l; - for(;;){ - if(! param){var _z_ = rev(right); return [0, rev(left), _z_];} - var l$0 = param[2], x = param[1], match = caml_call1(p, x); - if(0 === match[0]){ - var v = match[1], left$0 = [0, v, left], left = left$0, param = l$0; - continue; - } - var - v$0 = match[1], - right$0 = [0, v$0, right], - right = right$0, - param = l$0; - } - } - function split(param){ - if(! param) return _b_; - var - l = param[2], - match = param[1], - y = match[2], - x = match[1], - match$0 = split(l), - ry = match$0[2], - rx = match$0[1]; - return [0, [0, x, rx], [0, y, ry]]; - } - function combine(l1, l2){ - if(l1){ - if(l2){ - var l2$0 = l2[2], a2 = l2[1], l1$0 = l1[2], a1 = l1[1]; - return [0, [0, a1, a2], combine(l1$0, l2$0)]; - } - } - else if(! l2) return 0; - return caml_call1(Stdlib[1], cst_List_combine); - } - function merge(cmp, l1, l2){ - if(! l1) return l2; - if(! l2) return l1; - var t2 = l2[2], h2 = l2[1], t1 = l1[2], h1 = l1[1]; - return 0 < caml_call2(cmp, h1, h2) - ? [0, h2, merge(cmp, l1, t2)] - : [0, h1, merge(cmp, t1, l2)]; - } - function stable_sort(cmp, l){ - function sort(n, l){ - if(2 === n){ - if(l){ - var match = l[2]; - if(match){ - var - tl = match[2], - x2 = match[1], - x1 = l[1], - s = - 0 < caml_call2(cmp, x1, x2) - ? [0, x2, [0, x1, 0]] - : [0, x1, [0, x2, 0]]; - return [0, s, tl]; - } - } - } - else if(3 === n && l){ - var _y_ = l[2]; - if(_y_){ - var match$2 = _y_[2]; - if(match$2){ - var - tl$1 = match$2[2], - x3 = match$2[1], - x2$0 = _y_[1], - x1$0 = l[1], - s$0 = - 0 < caml_call2(cmp, x1$0, x2$0) - ? 0 - < caml_call2(cmp, x1$0, x3) - ? 0 - < caml_call2(cmp, x2$0, x3) - ? [0, x3, [0, x2$0, [0, x1$0, 0]]] - : [0, x2$0, [0, x3, [0, x1$0, 0]]] - : [0, x2$0, [0, x1$0, [0, x3, 0]]] - : 0 - < caml_call2(cmp, x2$0, x3) - ? 0 - < caml_call2(cmp, x1$0, x3) - ? [0, x3, [0, x1$0, [0, x2$0, 0]]] - : [0, x1$0, [0, x3, [0, x2$0, 0]]] - : [0, x1$0, [0, x2$0, [0, x3, 0]]]; - return [0, s$0, tl$1]; - } - } - } - var - n1 = n >> 1, - n2 = n - n1 | 0, - match$0 = rev_sort(n1, l), - l2$0 = match$0[2], - s1 = match$0[1], - match$1 = rev_sort(n2, l2$0), - tl$0 = match$1[2], - s2 = match$1[1], - l1 = s1, - l2 = s2, - accu = 0; - for(;;){ - if(l1){ - if(l2){ - var t2 = l2[2], h2 = l2[1], t1 = l1[2], h1 = l1[1]; - if(0 < caml_call2(cmp, h1, h2)){ - var accu$0 = [0, h1, accu], l1 = t1, accu = accu$0; - continue; - } - var accu$1 = [0, h2, accu], l2 = t2, accu = accu$1; - continue; - } - var _x_ = rev_append(l1, accu); - } - else - var _x_ = rev_append(l2, accu); - return [0, _x_, tl$0]; - } - } - function rev_sort(n, l){ - if(2 === n){ - if(l){ - var match = l[2]; - if(match){ - var - tl = match[2], - x2 = match[1], - x1 = l[1], - s = - 0 < caml_call2(cmp, x1, x2) - ? [0, x1, [0, x2, 0]] - : [0, x2, [0, x1, 0]]; - return [0, s, tl]; - } - } - } - else if(3 === n && l){ - var _w_ = l[2]; - if(_w_){ - var match$2 = _w_[2]; - if(match$2){ - var - tl$1 = match$2[2], - x3 = match$2[1], - x2$0 = _w_[1], - x1$0 = l[1], - s$0 = - 0 < caml_call2(cmp, x1$0, x2$0) - ? 0 - < caml_call2(cmp, x2$0, x3) - ? [0, x1$0, [0, x2$0, [0, x3, 0]]] - : 0 - < caml_call2(cmp, x1$0, x3) - ? [0, x1$0, [0, x3, [0, x2$0, 0]]] - : [0, x3, [0, x1$0, [0, x2$0, 0]]] - : 0 - < caml_call2(cmp, x1$0, x3) - ? [0, x2$0, [0, x1$0, [0, x3, 0]]] - : 0 - < caml_call2(cmp, x2$0, x3) - ? [0, x2$0, [0, x3, [0, x1$0, 0]]] - : [0, x3, [0, x2$0, [0, x1$0, 0]]]; - return [0, s$0, tl$1]; - } - } - } - var - n1 = n >> 1, - n2 = n - n1 | 0, - match$0 = sort(n1, l), - l2$0 = match$0[2], - s1 = match$0[1], - match$1 = sort(n2, l2$0), - tl$0 = match$1[2], - s2 = match$1[1], - l1 = s1, - l2 = s2, - accu = 0; - for(;;){ - if(l1){ - if(l2){ - var t2 = l2[2], h2 = l2[1], t1 = l1[2], h1 = l1[1]; - if(0 < caml_call2(cmp, h1, h2)){ - var accu$0 = [0, h2, accu], l2 = t2, accu = accu$0; - continue; - } - var accu$1 = [0, h1, accu], l1 = t1, accu = accu$1; - continue; - } - var _v_ = rev_append(l1, accu); - } - else - var _v_ = rev_append(l2, accu); - return [0, _v_, tl$0]; - } - } - var len = length(l); - return 2 <= len ? sort(len, l)[1] : l; - } - function sort_uniq(cmp, l){ - function sort(n, l){ - if(2 === n){ - if(l){ - var match = l[2]; - if(match){ - var - tl = match[2], - x2 = match[1], - x1 = l[1], - c$0 = caml_call2(cmp, x1, x2), - s = - 0 === c$0 - ? [0, x1, 0] - : 0 <= c$0 ? [0, x2, [0, x1, 0]] : [0, x1, [0, x2, 0]]; - return [0, s, tl]; - } - } - } - else if(3 === n && l){ - var _p_ = l[2]; - if(_p_){ - var match$2 = _p_[2]; - if(match$2){ - var - tl$1 = match$2[2], - x3 = match$2[1], - x2$0 = _p_[1], - x1$0 = l[1], - c$1 = caml_call2(cmp, x1$0, x2$0); - if(0 === c$1) - var - c$2 = caml_call2(cmp, x2$0, x3), - _q_ = - 0 === c$2 - ? [0, x2$0, 0] - : 0 <= c$2 ? [0, x3, [0, x2$0, 0]] : [0, x2$0, [0, x3, 0]], - s$0 = _q_; - else if(0 <= c$1){ - var c$3 = caml_call2(cmp, x1$0, x3); - if(0 === c$3) - var _r_ = [0, x2$0, [0, x1$0, 0]]; - else if(0 <= c$3) - var - c$4 = caml_call2(cmp, x2$0, x3), - _s_ = - 0 === c$4 - ? [0, x2$0, [0, x1$0, 0]] - : 0 - <= c$4 - ? [0, x3, [0, x2$0, [0, x1$0, 0]]] - : [0, x2$0, [0, x3, [0, x1$0, 0]]], - _r_ = _s_; - else - var _r_ = [0, x2$0, [0, x1$0, [0, x3, 0]]]; - var s$0 = _r_; - } - else{ - var c$5 = caml_call2(cmp, x2$0, x3); - if(0 === c$5) - var _t_ = [0, x1$0, [0, x2$0, 0]]; - else if(0 <= c$5) - var - c$6 = caml_call2(cmp, x1$0, x3), - _u_ = - 0 === c$6 - ? [0, x1$0, [0, x2$0, 0]] - : 0 - <= c$6 - ? [0, x3, [0, x1$0, [0, x2$0, 0]]] - : [0, x1$0, [0, x3, [0, x2$0, 0]]], - _t_ = _u_; - else - var _t_ = [0, x1$0, [0, x2$0, [0, x3, 0]]]; - var s$0 = _t_; - } - return [0, s$0, tl$1]; - } - } - } - var - n1 = n >> 1, - n2 = n - n1 | 0, - match$0 = rev_sort(n1, l), - l2$0 = match$0[2], - s1 = match$0[1], - match$1 = rev_sort(n2, l2$0), - tl$0 = match$1[2], - s2 = match$1[1], - l1 = s1, - l2 = s2, - accu = 0; - for(;;){ - if(l1){ - if(l2){ - var - t2 = l2[2], - h2 = l2[1], - t1 = l1[2], - h1 = l1[1], - c = caml_call2(cmp, h1, h2); - if(0 === c){ - var accu$0 = [0, h1, accu], l1 = t1, l2 = t2, accu = accu$0; - continue; - } - if(0 < c){ - var accu$1 = [0, h1, accu], l1 = t1, accu = accu$1; - continue; - } - var accu$2 = [0, h2, accu], l2 = t2, accu = accu$2; - continue; - } - var _o_ = rev_append(l1, accu); - } - else - var _o_ = rev_append(l2, accu); - return [0, _o_, tl$0]; - } - } - function rev_sort(n, l){ - if(2 === n){ - if(l){ - var match = l[2]; - if(match){ - var - tl = match[2], - x2 = match[1], - x1 = l[1], - c$0 = caml_call2(cmp, x1, x2), - s = - 0 === c$0 - ? [0, x1, 0] - : 0 < c$0 ? [0, x1, [0, x2, 0]] : [0, x2, [0, x1, 0]]; - return [0, s, tl]; - } - } - } - else if(3 === n && l){ - var _i_ = l[2]; - if(_i_){ - var match$2 = _i_[2]; - if(match$2){ - var - tl$1 = match$2[2], - x3 = match$2[1], - x2$0 = _i_[1], - x1$0 = l[1], - c$1 = caml_call2(cmp, x1$0, x2$0); - if(0 === c$1) - var - c$2 = caml_call2(cmp, x2$0, x3), - _j_ = - 0 === c$2 - ? [0, x2$0, 0] - : 0 < c$2 ? [0, x2$0, [0, x3, 0]] : [0, x3, [0, x2$0, 0]], - s$0 = _j_; - else if(0 < c$1){ - var c$3 = caml_call2(cmp, x2$0, x3); - if(0 === c$3) - var _k_ = [0, x1$0, [0, x2$0, 0]]; - else if(0 < c$3) - var _k_ = [0, x1$0, [0, x2$0, [0, x3, 0]]]; - else - var - c$4 = caml_call2(cmp, x1$0, x3), - _l_ = - 0 === c$4 - ? [0, x1$0, [0, x2$0, 0]] - : 0 - < c$4 - ? [0, x1$0, [0, x3, [0, x2$0, 0]]] - : [0, x3, [0, x1$0, [0, x2$0, 0]]], - _k_ = _l_; - var s$0 = _k_; - } - else{ - var c$5 = caml_call2(cmp, x1$0, x3); - if(0 === c$5) - var _m_ = [0, x2$0, [0, x1$0, 0]]; - else if(0 < c$5) - var _m_ = [0, x2$0, [0, x1$0, [0, x3, 0]]]; - else - var - c$6 = caml_call2(cmp, x2$0, x3), - _n_ = - 0 === c$6 - ? [0, x2$0, [0, x1$0, 0]] - : 0 - < c$6 - ? [0, x2$0, [0, x3, [0, x1$0, 0]]] - : [0, x3, [0, x2$0, [0, x1$0, 0]]], - _m_ = _n_; - var s$0 = _m_; - } - return [0, s$0, tl$1]; - } - } - } - var - n1 = n >> 1, - n2 = n - n1 | 0, - match$0 = sort(n1, l), - l2$0 = match$0[2], - s1 = match$0[1], - match$1 = sort(n2, l2$0), - tl$0 = match$1[2], - s2 = match$1[1], - l1 = s1, - l2 = s2, - accu = 0; - for(;;){ - if(l1){ - if(l2){ - var - t2 = l2[2], - h2 = l2[1], - t1 = l1[2], - h1 = l1[1], - c = caml_call2(cmp, h1, h2); - if(0 === c){ - var accu$0 = [0, h1, accu], l1 = t1, l2 = t2, accu = accu$0; - continue; - } - if(0 <= c){ - var accu$1 = [0, h2, accu], l2 = t2, accu = accu$1; - continue; - } - var accu$2 = [0, h1, accu], l1 = t1, accu = accu$2; - continue; - } - var _h_ = rev_append(l1, accu); - } - else - var _h_ = rev_append(l2, accu); - return [0, _h_, tl$0]; - } - } - var len = length(l); - return 2 <= len ? sort(len, l)[1] : l; - } - function compare_lengths(l1, l2){ - var l1$0 = l1, l2$0 = l2; - for(;;){ - if(! l1$0) return l2$0 ? -1 : 0; - if(! l2$0) return 1; - var l2$1 = l2$0[2], l1$1 = l1$0[2], l1$0 = l1$1, l2$0 = l2$1; - } - } - function compare_length_with(l, n){ - var l$0 = l, n$0 = n; - for(;;){ - if(! l$0) return 0 === n$0 ? 0 : 0 < n$0 ? -1 : 1; - var l$1 = l$0[2]; - if(0 >= n$0) return 1; - var n$1 = n$0 - 1 | 0, l$0 = l$1, n$0 = n$1; - } - } - function equal(eq, l1, l2){ - var l1$0 = l1, l2$0 = l2; - for(;;){ - if(l1$0){ - if(l2$0){ - var - l2$1 = l2$0[2], - a2 = l2$0[1], - l1$1 = l1$0[2], - a1 = l1$0[1], - _g_ = caml_call2(eq, a1, a2); - if(! _g_) return _g_; - var l1$0 = l1$1, l2$0 = l2$1; - continue; - } - } - else if(! l2$0) return 1; - return 0; - } - } - function compare(cmp, l1, l2){ - var l1$0 = l1, l2$0 = l2; - for(;;){ - if(! l1$0) return l2$0 ? -1 : 0; - var l1$1 = l1$0[2], a1 = l1$0[1]; - if(! l2$0) return 1; - var l2$1 = l2$0[2], a2 = l2$0[1], c = caml_call2(cmp, a1, a2); - if(0 !== c) return c; - var l1$0 = l1$1, l2$0 = l2$1; - } - } - function to_seq(l){ - function aux(l, param){ - if(! l) return 0; - var tail = l[2], x = l[1]; - return [0, x, function(_f_){return aux(tail, _f_);}]; - } - return function(_e_){return aux(l, _e_);}; - } - function of_seq(seq){ - function direct(depth, seq){ - if(0 === depth){ - var _c_ = 0, _d_ = function(acc, x){return [0, x, acc];}; - return rev(caml_call3(Stdlib_Seq[5], _d_, _c_, seq)); - } - var match = caml_call1(seq, 0); - if(! match) return 0; - var next = match[2], x = match[1]; - return [0, x, direct(depth - 1 | 0, next)]; - } - return direct(500, seq); - } - var - Stdlib_List = - [0, - length, - compare_lengths, - compare_length_with, - cons, - hd, - tl, - nth, - nth_opt, - rev, - init, - append, - rev_append, - flatten, - flatten, - equal, - compare, - iter, - iteri, - map, - mapi, - rev_map, - filter_map, - concat_map, - fold_left_map, - fold_left, - fold_right, - iter2, - map2, - rev_map2, - fold_left2, - fold_right2, - for_all, - exists, - for_all2, - exists2, - mem, - memq, - find, - find_opt, - find_map, - find_all, - find_all, - filteri, - partition, - partition_map, - assoc, - assoc_opt, - assq, - assq_opt, - mem_assoc, - mem_assq, - remove_assoc, - remove_assq, - split, - combine, - stable_sort, - stable_sort, - stable_sort, - sort_uniq, - merge, - to_seq, - of_seq]; - runtime.caml_register_global(18, Stdlib_List, "Stdlib__List"); - return; - } - (globalThis)); - -//# 3724 "../.js/default/stdlib/stdlib.cma.js" -(function(globalThis){ - "use strict"; - var runtime = globalThis.jsoo_runtime, zero = 0, one = 1, minus_one = -1; - function abs(x){return 0 <= x ? x : - x | 0;} - var max_int = 2147483647, min_int = -2147483648; - function lognot(x){return x ^ -1;} - function equal(_b_, _a_){return _b_ === _a_ ? 1 : 0;} - var compare = runtime.caml_int_compare; - function min(x, y){return x <= y ? x : y;} - function max(x, y){return y <= x ? x : y;} - function to_string(x){return "" + x;} - var - Stdlib_Int = - [0, - zero, - one, - minus_one, - abs, - max_int, - min_int, - lognot, - equal, - compare, - min, - max, - to_string]; - runtime.caml_register_global(1, Stdlib_Int, "Stdlib__Int"); - return; - } - (globalThis)); - -//# 3757 "../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - cst_bytes_ml = "bytes.ml", - cst_index_out_of_bounds$3 = "index out of bounds", - caml_blit_bytes = runtime.caml_blit_bytes, - caml_bswap16 = runtime.caml_bswap16, - caml_bytes_get = runtime.caml_bytes_get, - caml_bytes_get16 = runtime.caml_bytes_get16, - caml_bytes_get32 = runtime.caml_bytes_get32, - caml_bytes_get64 = runtime.caml_bytes_get64, - caml_bytes_of_string = runtime.caml_bytes_of_string, - caml_bytes_set = runtime.caml_bytes_set, - caml_bytes_set16 = runtime.caml_bytes_set16, - caml_bytes_set32 = runtime.caml_bytes_set32, - caml_bytes_set64 = runtime.caml_bytes_set64, - caml_bytes_unsafe_get = runtime.caml_bytes_unsafe_get, - caml_bytes_unsafe_set = runtime.caml_bytes_unsafe_set, - caml_create_bytes = runtime.caml_create_bytes, - caml_fill_bytes = runtime.caml_fill_bytes, - caml_int32_bswap = runtime.caml_int32_bswap, - caml_int64_bswap = runtime.caml_int64_bswap, - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, - caml_ml_bytes_length = runtime.caml_ml_bytes_length, - caml_string_of_bytes = runtime.caml_string_of_bytes, - caml_wrap_exception = runtime.caml_wrap_exception; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - var - global_data = runtime.caml_get_global_data(), - Stdlib = global_data.Stdlib, - Stdlib_Uchar = global_data.Stdlib__Uchar, - Assert_failure = global_data.Assert_failure, - Stdlib_Sys = global_data.Stdlib__Sys, - Stdlib_Int = global_data.Stdlib__Int, - Stdlib_Seq = global_data.Stdlib__Seq, - Stdlib_Char = global_data.Stdlib__Char, - cst_index_out_of_bounds$2 = cst_index_out_of_bounds$3, - _f_ = [0, cst_bytes_ml, 808, 20], - _e_ = [0, cst_bytes_ml, 819, 9], - cst_index_out_of_bounds$1 = cst_index_out_of_bounds$3, - cst_index_out_of_bounds$0 = cst_index_out_of_bounds$3, - _d_ = [0, cst_bytes_ml, 754, 20], - _c_ = [0, cst_bytes_ml, 765, 9], - cst_index_out_of_bounds = cst_index_out_of_bounds$3, - _b_ = [0, cst_bytes_ml, 642, 20], - _a_ = [0, cst_bytes_ml, 667, 9], - cst_Bytes_of_seq_cannot_grow_b = "Bytes.of_seq: cannot grow bytes", - cst_String_rcontains_from_Byte = - "String.rcontains_from / Bytes.rcontains_from", - cst_String_contains_from_Bytes = - "String.contains_from / Bytes.contains_from", - cst_String_rindex_from_opt_Byt = - "String.rindex_from_opt / Bytes.rindex_from_opt", - cst_String_rindex_from_Bytes_r = "String.rindex_from / Bytes.rindex_from", - cst_String_index_from_opt_Byte = - "String.index_from_opt / Bytes.index_from_opt", - cst_String_index_from_Bytes_in = "String.index_from / Bytes.index_from", - cst_Bytes_concat = "Bytes.concat", - cst_String_blit_Bytes_blit_str = "String.blit / Bytes.blit_string", - cst_Bytes_blit = "Bytes.blit", - cst_String_fill_Bytes_fill = "String.fill / Bytes.fill", - cst_Bytes_extend = "Bytes.extend", - cst_String_sub_Bytes_sub = "String.sub / Bytes.sub"; - function make(n, c){ - var s = caml_create_bytes(n); - caml_fill_bytes(s, 0, n, c); - return s; - } - function init(n, f){ - var s = caml_create_bytes(n), _aq_ = n - 1 | 0, _ap_ = 0; - if(_aq_ >= 0){ - var i = _ap_; - for(;;){ - caml_bytes_unsafe_set(s, i, caml_call1(f, i)); - var _ar_ = i + 1 | 0; - if(_aq_ !== i){var i = _ar_; continue;} - break; - } - } - return s; - } - var empty = caml_create_bytes(0); - function copy(s){ - var len = caml_ml_bytes_length(s), r = caml_create_bytes(len); - caml_blit_bytes(s, 0, r, 0, len); - return r; - } - function to_string(b){return caml_string_of_bytes(copy(b));} - function of_string(s){return copy(caml_bytes_of_string(s));} - function sub(s, ofs, len){ - if(0 <= ofs && 0 <= len && (caml_ml_bytes_length(s) - len | 0) >= ofs){ - var r = caml_create_bytes(len); - caml_blit_bytes(s, ofs, r, 0, len); - return r; - } - return caml_call1(Stdlib[1], cst_String_sub_Bytes_sub); - } - function sub_string(b, ofs, len){ - return caml_string_of_bytes(sub(b, ofs, len)); - } - function symbol(a, b){ - var - c = a + b | 0, - _ao_ = b < 0 ? 1 : 0, - match = c < 0 ? 1 : 0, - switch$0 = 0; - if(a < 0){ - if(_ao_ && ! match) switch$0 = 1; - } - else if(! _ao_ && match) switch$0 = 1; - return switch$0 ? caml_call1(Stdlib[1], cst_Bytes_extend) : c; - } - function extend(s, left, right){ - var - len = symbol(symbol(caml_ml_bytes_length(s), left), right), - r = caml_create_bytes(len); - if(0 <= left) - var dstoff = left, srcoff = 0; - else - var dstoff = 0, srcoff = - left | 0; - var - cpylen = - caml_call2 - (Stdlib_Int[10], - caml_ml_bytes_length(s) - srcoff | 0, - len - dstoff | 0); - if(0 < cpylen) caml_blit_bytes(s, srcoff, r, dstoff, cpylen); - return r; - } - function fill(s, ofs, len, c){ - if(0 <= ofs && 0 <= len && (caml_ml_bytes_length(s) - len | 0) >= ofs) - return caml_fill_bytes(s, ofs, len, c); - return caml_call1(Stdlib[1], cst_String_fill_Bytes_fill); - } - function blit(s1, ofs1, s2, ofs2, len){ - if - (0 <= len - && - 0 <= ofs1 - && - (caml_ml_bytes_length(s1) - len | 0) >= ofs1 - && 0 <= ofs2 && (caml_ml_bytes_length(s2) - len | 0) >= ofs2) - return caml_blit_bytes(s1, ofs1, s2, ofs2, len); - return caml_call1(Stdlib[1], cst_Bytes_blit); - } - function blit_string(s1, ofs1, s2, ofs2, len){ - if - (0 <= len - && - 0 <= ofs1 - && - (runtime.caml_ml_string_length(s1) - len | 0) >= ofs1 - && 0 <= ofs2 && (caml_ml_bytes_length(s2) - len | 0) >= ofs2) - return runtime.caml_blit_string(s1, ofs1, s2, ofs2, len); - return caml_call1(Stdlib[1], cst_String_blit_Bytes_blit_str); - } - function iter(f, a){ - var _am_ = caml_ml_bytes_length(a) - 1 | 0, _al_ = 0; - if(_am_ >= 0){ - var i = _al_; - for(;;){ - caml_call1(f, caml_bytes_unsafe_get(a, i)); - var _an_ = i + 1 | 0; - if(_am_ !== i){var i = _an_; continue;} - break; - } - } - return 0; - } - function iteri(f, a){ - var _aj_ = caml_ml_bytes_length(a) - 1 | 0, _ai_ = 0; - if(_aj_ >= 0){ - var i = _ai_; - for(;;){ - caml_call2(f, i, caml_bytes_unsafe_get(a, i)); - var _ak_ = i + 1 | 0; - if(_aj_ !== i){var i = _ak_; continue;} - break; - } - } - return 0; - } - function concat(sep, l){ - if(! l) return empty; - var seplen = caml_ml_bytes_length(sep), acc = 0, param = l, pos$1 = 0; - for(;;){ - if(param){ - var hd = param[1]; - if(param[2]){ - var - tl = param[2], - x = (caml_ml_bytes_length(hd) + seplen | 0) + acc | 0, - acc$0 = acc <= x ? x : caml_call1(Stdlib[1], cst_Bytes_concat), - acc = acc$0, - param = tl; - continue; - } - var _ah_ = caml_ml_bytes_length(hd) + acc | 0; - } - else - var _ah_ = acc; - var dst = caml_create_bytes(_ah_), pos = pos$1, param$0 = l; - for(;;){ - if(! param$0) return dst; - var hd$0 = param$0[1]; - if(param$0[2]){ - var tl$0 = param$0[2]; - caml_blit_bytes(hd$0, 0, dst, pos, caml_ml_bytes_length(hd$0)); - caml_blit_bytes - (sep, 0, dst, pos + caml_ml_bytes_length(hd$0) | 0, seplen); - var - pos$0 = (pos + caml_ml_bytes_length(hd$0) | 0) + seplen | 0, - pos = pos$0, - param$0 = tl$0; - continue; - } - caml_blit_bytes(hd$0, 0, dst, pos, caml_ml_bytes_length(hd$0)); - return dst; - } - } - } - function cat(s1, s2){ - var - l1 = caml_ml_bytes_length(s1), - l2 = caml_ml_bytes_length(s2), - r = caml_create_bytes(l1 + l2 | 0); - caml_blit_bytes(s1, 0, r, 0, l1); - caml_blit_bytes(s2, 0, r, l1, l2); - return r; - } - function is_space(param){ - var _ag_ = param - 9 | 0, switch$0 = 0; - if(4 < _ag_ >>> 0){ - if(23 === _ag_) switch$0 = 1; - } - else if(2 !== _ag_) switch$0 = 1; - return switch$0 ? 1 : 0; - } - function trim(s){ - var len = caml_ml_bytes_length(s), i = [0, 0]; - for(;;){ - if(i[1] < len && is_space(caml_bytes_unsafe_get(s, i[1]))){i[1]++; continue;} - var j = [0, len - 1 | 0]; - for(;;){ - if(i[1] <= j[1] && is_space(caml_bytes_unsafe_get(s, j[1]))){j[1] += -1; continue;} - return i[1] <= j[1] ? sub(s, i[1], (j[1] - i[1] | 0) + 1 | 0) : empty; - } - } - } - function escaped(s){ - var n = [0, 0], _$_ = caml_ml_bytes_length(s) - 1 | 0, ___ = 0; - if(_$_ >= 0){ - var i$0 = ___; - for(;;){ - var match = caml_bytes_unsafe_get(s, i$0), switch$0 = 0; - if(32 <= match){ - var _ad_ = match - 34 | 0, switch$1 = 0; - if(58 < _ad_ >>> 0){ - if(93 > _ad_) switch$1 = 1; - } - else if(56 < _ad_ - 1 >>> 0) switch$0 = 1; else switch$1 = 1; - if(switch$1){var _ae_ = 1; switch$0 = 2;} - } - else - if(11 <= match){ - if(13 === match) switch$0 = 1; - } - else if(8 <= match) switch$0 = 1; - switch(switch$0){ - case 0: - var _ae_ = 4; break; - case 1: - var _ae_ = 2; break; - } - n[1] = n[1] + _ae_ | 0; - var _af_ = i$0 + 1 | 0; - if(_$_ !== i$0){var i$0 = _af_; continue;} - break; - } - } - if(n[1] === caml_ml_bytes_length(s)) return copy(s); - var s$0 = caml_create_bytes(n[1]); - n[1] = 0; - var _ab_ = caml_ml_bytes_length(s) - 1 | 0, _aa_ = 0; - if(_ab_ >= 0){ - var i = _aa_; - for(;;){ - var c = caml_bytes_unsafe_get(s, i), switch$2 = 0; - if(35 <= c) - if(92 === c) - switch$2 = 2; - else if(127 <= c) switch$2 = 1; else switch$2 = 3; - else if(32 <= c) - if(34 <= c) switch$2 = 2; else switch$2 = 3; - else if(14 <= c) - switch$2 = 1; - else - switch(c){ - case 8: - caml_bytes_unsafe_set(s$0, n[1], 92); - n[1]++; - caml_bytes_unsafe_set(s$0, n[1], 98); - break; - case 9: - caml_bytes_unsafe_set(s$0, n[1], 92); - n[1]++; - caml_bytes_unsafe_set(s$0, n[1], 116); - break; - case 10: - caml_bytes_unsafe_set(s$0, n[1], 92); - n[1]++; - caml_bytes_unsafe_set(s$0, n[1], 110); - break; - case 13: - caml_bytes_unsafe_set(s$0, n[1], 92); - n[1]++; - caml_bytes_unsafe_set(s$0, n[1], 114); - break; - default: switch$2 = 1; - } - switch(switch$2){ - case 1: - caml_bytes_unsafe_set(s$0, n[1], 92); - n[1]++; - caml_bytes_unsafe_set(s$0, n[1], 48 + (c / 100 | 0) | 0); - n[1]++; - caml_bytes_unsafe_set(s$0, n[1], 48 + ((c / 10 | 0) % 10 | 0) | 0); - n[1]++; - caml_bytes_unsafe_set(s$0, n[1], 48 + (c % 10 | 0) | 0); - break; - case 2: - caml_bytes_unsafe_set(s$0, n[1], 92); - n[1]++; - caml_bytes_unsafe_set(s$0, n[1], c); - break; - case 3: - caml_bytes_unsafe_set(s$0, n[1], c); break; - } - n[1]++; - var _ac_ = i + 1 | 0; - if(_ab_ !== i){var i = _ac_; continue;} - break; - } - } - return s$0; - } - function map(f, s){ - var l = caml_ml_bytes_length(s); - if(0 === l) return s; - var r = caml_create_bytes(l), _Y_ = l - 1 | 0, _X_ = 0; - if(_Y_ >= 0){ - var i = _X_; - for(;;){ - caml_bytes_unsafe_set(r, i, caml_call1(f, caml_bytes_unsafe_get(s, i))); - var _Z_ = i + 1 | 0; - if(_Y_ !== i){var i = _Z_; continue;} - break; - } - } - return r; - } - function mapi(f, s){ - var l = caml_ml_bytes_length(s); - if(0 === l) return s; - var r = caml_create_bytes(l), _V_ = l - 1 | 0, _U_ = 0; - if(_V_ >= 0){ - var i = _U_; - for(;;){ - caml_bytes_unsafe_set - (r, i, caml_call2(f, i, caml_bytes_unsafe_get(s, i))); - var _W_ = i + 1 | 0; - if(_V_ !== i){var i = _W_; continue;} - break; - } - } - return r; - } - function fold_left(f, x, a){ - var r = [0, x], _S_ = caml_ml_bytes_length(a) - 1 | 0, _R_ = 0; - if(_S_ >= 0){ - var i = _R_; - for(;;){ - r[1] = caml_call2(f, r[1], caml_bytes_unsafe_get(a, i)); - var _T_ = i + 1 | 0; - if(_S_ !== i){var i = _T_; continue;} - break; - } - } - return r[1]; - } - function fold_right(f, a, x){ - var r = [0, x], _P_ = caml_ml_bytes_length(a) - 1 | 0; - if(_P_ >= 0){ - var i = _P_; - for(;;){ - r[1] = caml_call2(f, caml_bytes_unsafe_get(a, i), r[1]); - var _Q_ = i - 1 | 0; - if(0 !== i){var i = _Q_; continue;} - break; - } - } - return r[1]; - } - function exists(p, s){ - var n = caml_ml_bytes_length(s), i = 0; - for(;;){ - if(i === n) return 0; - if(caml_call1(p, caml_bytes_unsafe_get(s, i))) return 1; - var i$0 = i + 1 | 0, i = i$0; - } - } - function for_all(p, s){ - var n = caml_ml_bytes_length(s), i = 0; - for(;;){ - if(i === n) return 1; - if(! caml_call1(p, caml_bytes_unsafe_get(s, i))) return 0; - var i$0 = i + 1 | 0, i = i$0; - } - } - function uppercase_ascii(s){return map(Stdlib_Char[6], s);} - function lowercase_ascii(s){return map(Stdlib_Char[5], s);} - function apply1(f, s){ - if(0 === caml_ml_bytes_length(s)) return s; - var r = copy(s); - caml_bytes_unsafe_set(r, 0, caml_call1(f, caml_bytes_unsafe_get(s, 0))); - return r; - } - function capitalize_ascii(s){return apply1(Stdlib_Char[6], s);} - function uncapitalize_ascii(s){return apply1(Stdlib_Char[5], s);} - function starts_with(prefix, s){ - var - len_s = caml_ml_bytes_length(s), - len_pre = caml_ml_bytes_length(prefix), - _O_ = len_pre <= len_s ? 1 : 0; - if(! _O_) return _O_; - var i = 0; - for(;;){ - if(i === len_pre) return 1; - if(caml_bytes_unsafe_get(s, i) !== caml_bytes_unsafe_get(prefix, i)) - return 0; - var i$0 = i + 1 | 0, i = i$0; - } - } - function ends_with(suffix, s){ - var - len_s = caml_ml_bytes_length(s), - len_suf = caml_ml_bytes_length(suffix), - diff = len_s - len_suf | 0, - _N_ = 0 <= diff ? 1 : 0; - if(! _N_) return _N_; - var i = 0; - for(;;){ - if(i === len_suf) return 1; - if - (caml_bytes_unsafe_get(s, diff + i | 0) - !== caml_bytes_unsafe_get(suffix, i)) - return 0; - var i$0 = i + 1 | 0, i = i$0; - } - } - function index_rec(s, lim, i, c){ - var i$0 = i; - for(;;){ - if(lim <= i$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - if(caml_bytes_unsafe_get(s, i$0) === c) return i$0; - var i$1 = i$0 + 1 | 0, i$0 = i$1; - } - } - function index(s, c){return index_rec(s, caml_ml_bytes_length(s), 0, c);} - function index_rec_opt(s, lim, i, c){ - var i$0 = i; - for(;;){ - if(lim <= i$0) return 0; - if(caml_bytes_unsafe_get(s, i$0) === c) return [0, i$0]; - var i$1 = i$0 + 1 | 0, i$0 = i$1; - } - } - function index_opt(s, c){ - return index_rec_opt(s, caml_ml_bytes_length(s), 0, c); - } - function index_from(s, i, c){ - var l = caml_ml_bytes_length(s); - if(0 <= i && l >= i) return index_rec(s, l, i, c); - return caml_call1(Stdlib[1], cst_String_index_from_Bytes_in); - } - function index_from_opt(s, i, c){ - var l = caml_ml_bytes_length(s); - if(0 <= i && l >= i) return index_rec_opt(s, l, i, c); - return caml_call1(Stdlib[1], cst_String_index_from_opt_Byte); - } - function rindex_rec(s, i, c){ - var i$0 = i; - for(;;){ - if(0 > i$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - if(caml_bytes_unsafe_get(s, i$0) === c) return i$0; - var i$1 = i$0 - 1 | 0, i$0 = i$1; - } - } - function rindex(s, c){ - return rindex_rec(s, caml_ml_bytes_length(s) - 1 | 0, c); - } - function rindex_from(s, i, c){ - if(-1 <= i && caml_ml_bytes_length(s) > i) return rindex_rec(s, i, c); - return caml_call1(Stdlib[1], cst_String_rindex_from_Bytes_r); - } - function rindex_rec_opt(s, i, c){ - var i$0 = i; - for(;;){ - if(0 > i$0) return 0; - if(caml_bytes_unsafe_get(s, i$0) === c) return [0, i$0]; - var i$1 = i$0 - 1 | 0, i$0 = i$1; - } - } - function rindex_opt(s, c){ - return rindex_rec_opt(s, caml_ml_bytes_length(s) - 1 | 0, c); - } - function rindex_from_opt(s, i, c){ - if(-1 <= i && caml_ml_bytes_length(s) > i) return rindex_rec_opt(s, i, c); - return caml_call1(Stdlib[1], cst_String_rindex_from_opt_Byt); - } - function contains_from(s, i, c){ - var l = caml_ml_bytes_length(s); - if(0 <= i && l >= i) - try{index_rec(s, l, i, c); var _L_ = 1; return _L_;} - catch(_M_){ - var _K_ = caml_wrap_exception(_M_); - if(_K_ === Stdlib[8]) return 0; - throw caml_maybe_attach_backtrace(_K_, 0); - } - return caml_call1(Stdlib[1], cst_String_contains_from_Bytes); - } - function contains(s, c){return contains_from(s, 0, c);} - function rcontains_from(s, i, c){ - if(0 <= i && caml_ml_bytes_length(s) > i) - try{rindex_rec(s, i, c); var _I_ = 1; return _I_;} - catch(_J_){ - var _H_ = caml_wrap_exception(_J_); - if(_H_ === Stdlib[8]) return 0; - throw caml_maybe_attach_backtrace(_H_, 0); - } - return caml_call1(Stdlib[1], cst_String_rcontains_from_Byte); - } - var compare = runtime.caml_bytes_compare; - function split_on_char(sep, s){ - var - r = [0, 0], - j = [0, caml_ml_bytes_length(s)], - _D_ = caml_ml_bytes_length(s) - 1 | 0; - if(_D_ >= 0){ - var i = _D_; - for(;;){ - if(caml_bytes_unsafe_get(s, i) === sep){ - var _F_ = r[1]; - r[1] = [0, sub(s, i + 1 | 0, (j[1] - i | 0) - 1 | 0), _F_]; - j[1] = i; - } - var _G_ = i - 1 | 0; - if(0 !== i){var i = _G_; continue;} - break; - } - } - var _E_ = r[1]; - return [0, sub(s, 0, j[1]), _E_]; - } - function uppercase(s){return map(Stdlib_Char[4], s);} - function lowercase(s){return map(Stdlib_Char[3], s);} - function capitalize(s){return apply1(Stdlib_Char[4], s);} - function uncapitalize(s){return apply1(Stdlib_Char[3], s);} - function to_seq(s){ - function aux(i, param){ - if(i === caml_ml_bytes_length(s)) return 0; - var x = caml_bytes_get(s, i), _B_ = i + 1 | 0; - return [0, x, function(_C_){return aux(_B_, _C_);}]; - } - var _z_ = 0; - return function(_A_){return aux(_z_, _A_);}; - } - function to_seqi(s){ - function aux(i, param){ - if(i === caml_ml_bytes_length(s)) return 0; - var x = caml_bytes_get(s, i), _x_ = i + 1 | 0; - return [0, [0, i, x], function(_y_){return aux(_x_, _y_);}]; - } - var _v_ = 0; - return function(_w_){return aux(_v_, _w_);}; - } - function of_seq(i){ - var n = [0, 0], buf = [0, make(256, 0)]; - function _u_(c){ - if(n[1] === caml_ml_bytes_length(buf[1])){ - var - new_len = - caml_call2 - (Stdlib_Int[10], - 2 * caml_ml_bytes_length(buf[1]) | 0, - Stdlib_Sys[12]); - if(caml_ml_bytes_length(buf[1]) === new_len) - caml_call1(Stdlib[2], cst_Bytes_of_seq_cannot_grow_b); - var new_buf = make(new_len, 0); - blit(buf[1], 0, new_buf, 0, n[1]); - buf[1] = new_buf; - } - caml_bytes_set(buf[1], n[1], c); - n[1]++; - return 0; - } - caml_call2(Stdlib_Seq[4], _u_, i); - return sub(buf[1], 0, n[1]); - } - function unsafe_get_uint16_le(b, i){ - return Stdlib_Sys[11] - ? caml_bswap16(caml_bytes_get16(b, i)) - : caml_bytes_get16(b, i); - } - function unsafe_get_uint16_be(b, i){ - return Stdlib_Sys[11] - ? caml_bytes_get16(b, i) - : caml_bswap16(caml_bytes_get16(b, i)); - } - function get_int8(b, i){ - var _s_ = Stdlib_Sys[10] - 8 | 0, _t_ = Stdlib_Sys[10] - 8 | 0; - return caml_bytes_get(b, i) << _t_ >> _s_; - } - function get_uint16_le(b, i){ - return Stdlib_Sys[11] - ? caml_bswap16(caml_bytes_get16(b, i)) - : caml_bytes_get16(b, i); - } - function get_uint16_be(b, i){ - return Stdlib_Sys[11] - ? caml_bytes_get16(b, i) - : caml_bswap16(caml_bytes_get16(b, i)); - } - function get_int16_ne(b, i){ - var _q_ = Stdlib_Sys[10] - 16 | 0, _r_ = Stdlib_Sys[10] - 16 | 0; - return caml_bytes_get16(b, i) << _r_ >> _q_; - } - function get_int16_le(b, i){ - var _o_ = Stdlib_Sys[10] - 16 | 0, _p_ = Stdlib_Sys[10] - 16 | 0; - return get_uint16_le(b, i) << _p_ >> _o_; - } - function get_int16_be(b, i){ - var _m_ = Stdlib_Sys[10] - 16 | 0, _n_ = Stdlib_Sys[10] - 16 | 0; - return get_uint16_be(b, i) << _n_ >> _m_; - } - function get_int32_le(b, i){ - return Stdlib_Sys[11] - ? caml_int32_bswap(caml_bytes_get32(b, i)) - : caml_bytes_get32(b, i); - } - function get_int32_be(b, i){ - return Stdlib_Sys[11] - ? caml_bytes_get32(b, i) - : caml_int32_bswap(caml_bytes_get32(b, i)); - } - function get_int64_le(b, i){ - return Stdlib_Sys[11] - ? caml_int64_bswap(caml_bytes_get64(b, i)) - : caml_bytes_get64(b, i); - } - function get_int64_be(b, i){ - return Stdlib_Sys[11] - ? caml_bytes_get64(b, i) - : caml_int64_bswap(caml_bytes_get64(b, i)); - } - function unsafe_set_uint16_le(b, i, x){ - return Stdlib_Sys[11] - ? caml_bytes_set16(b, i, caml_bswap16(x)) - : caml_bytes_set16(b, i, x); - } - function unsafe_set_uint16_be(b, i, x){ - return Stdlib_Sys[11] - ? caml_bytes_set16(b, i, x) - : caml_bytes_set16(b, i, caml_bswap16(x)); - } - function set_int16_le(b, i, x){ - return Stdlib_Sys[11] - ? caml_bytes_set16(b, i, caml_bswap16(x)) - : caml_bytes_set16(b, i, x); - } - function set_int16_be(b, i, x){ - return Stdlib_Sys[11] - ? caml_bytes_set16(b, i, x) - : caml_bytes_set16(b, i, caml_bswap16(x)); - } - function set_int32_le(b, i, x){ - return Stdlib_Sys[11] - ? caml_bytes_set32(b, i, caml_int32_bswap(x)) - : caml_bytes_set32(b, i, x); - } - function set_int32_be(b, i, x){ - return Stdlib_Sys[11] - ? caml_bytes_set32(b, i, x) - : caml_bytes_set32(b, i, caml_int32_bswap(x)); - } - function set_int64_le(b, i, x){ - return Stdlib_Sys[11] - ? caml_bytes_set64(b, i, caml_int64_bswap(x)) - : caml_bytes_set64(b, i, x); - } - function set_int64_be(b, i, x){ - return Stdlib_Sys[11] - ? caml_bytes_set64(b, i, x) - : caml_bytes_set64(b, i, caml_int64_bswap(x)); - } - var - set_uint8 = caml_bytes_set, - set_uint16_ne = caml_bytes_set16, - dec_invalid = Stdlib_Uchar[22]; - function dec_ret(n, u){ - var _l_ = caml_call1(Stdlib_Uchar[9], u); - return caml_call2(Stdlib_Uchar[21], n, _l_); - } - function not_in_x80_to_xBF(b){return 2 !== (b >>> 6 | 0) ? 1 : 0;} - function not_in_xA0_to_xBF(b){return 5 !== (b >>> 5 | 0) ? 1 : 0;} - function not_in_x80_to_x9F(b){return 4 !== (b >>> 5 | 0) ? 1 : 0;} - function not_in_x90_to_xBF(b){ - var _j_ = b < 144 ? 1 : 0, _k_ = _j_ || (191 < b ? 1 : 0); - return _k_; - } - function not_in_x80_to_x8F(b){return 8 !== (b >>> 4 | 0) ? 1 : 0;} - function utf_8_uchar_3(b0, b1, b2){ - return (b0 & 15) << 12 | (b1 & 63) << 6 | b2 & 63; - } - function utf_8_uchar_4(b0, b1, b2, b3){ - return (b0 & 7) << 18 | (b1 & 63) << 12 | (b2 & 63) << 6 | b3 & 63; - } - function get_utf_8_uchar(b, i){ - var b0 = caml_bytes_get(b, i), max = caml_ml_bytes_length(b) - 1 | 0; - if(224 <= b0){ - var switch$0 = 0; - if(237 <= b0){ - if(245 > b0) - switch(b0 - 237 | 0){ - case 0: - var i$0 = i + 1 | 0; - if(max < i$0) return caml_call1(dec_invalid, 1); - var b1 = caml_bytes_unsafe_get(b, i$0); - if(not_in_x80_to_x9F(b1)) return caml_call1(dec_invalid, 1); - var i$1 = i$0 + 1 | 0; - if(max < i$1) return caml_call1(dec_invalid, 2); - var b2 = caml_bytes_unsafe_get(b, i$1); - return not_in_x80_to_xBF(b2) - ? caml_call1(dec_invalid, 2) - : dec_ret(3, utf_8_uchar_3(b0, b1, b2)); - case 3: - var i$4 = i + 1 | 0; - if(max < i$4) return caml_call1(dec_invalid, 1); - var b1$1 = caml_bytes_unsafe_get(b, i$4); - if(not_in_x90_to_xBF(b1$1)) return caml_call1(dec_invalid, 1); - var i$5 = i$4 + 1 | 0; - if(max < i$5) return caml_call1(dec_invalid, 2); - var b2$1 = caml_bytes_unsafe_get(b, i$5); - if(not_in_x80_to_xBF(b2$1)) return caml_call1(dec_invalid, 2); - var i$6 = i$5 + 1 | 0; - if(max < i$6) return caml_call1(dec_invalid, 3); - var b3 = caml_bytes_unsafe_get(b, i$6); - return not_in_x80_to_xBF(b3) - ? caml_call1(dec_invalid, 3) - : dec_ret(4, utf_8_uchar_4(b0, b1$1, b2$1, b3)); - case 7: - var i$10 = i + 1 | 0; - if(max < i$10) return caml_call1(dec_invalid, 1); - var b1$3 = caml_bytes_unsafe_get(b, i$10); - if(not_in_x80_to_x8F(b1$3)) return caml_call1(dec_invalid, 1); - var i$11 = i$10 + 1 | 0; - if(max < i$11) return caml_call1(dec_invalid, 2); - var b2$3 = caml_bytes_unsafe_get(b, i$11); - if(not_in_x80_to_xBF(b2$3)) return caml_call1(dec_invalid, 2); - var i$12 = i$11 + 1 | 0; - if(max < i$12) return caml_call1(dec_invalid, 3); - var b3$1 = caml_bytes_unsafe_get(b, i$12); - return not_in_x80_to_xBF(b3$1) - ? caml_call1(dec_invalid, 3) - : dec_ret(4, utf_8_uchar_4(b0, b1$3, b2$3, b3$1)); - case 1: - case 2: - switch$0 = 1; break; - default: - var i$7 = i + 1 | 0; - if(max < i$7) return caml_call1(dec_invalid, 1); - var b1$2 = caml_bytes_unsafe_get(b, i$7); - if(not_in_x80_to_xBF(b1$2)) return caml_call1(dec_invalid, 1); - var i$8 = i$7 + 1 | 0; - if(max < i$8) return caml_call1(dec_invalid, 2); - var b2$2 = caml_bytes_unsafe_get(b, i$8); - if(not_in_x80_to_xBF(b2$2)) return caml_call1(dec_invalid, 2); - var i$9 = i$8 + 1 | 0; - if(max < i$9) return caml_call1(dec_invalid, 3); - var b3$0 = caml_bytes_unsafe_get(b, i$9); - return not_in_x80_to_xBF(b3$0) - ? caml_call1(dec_invalid, 3) - : dec_ret(4, utf_8_uchar_4(b0, b1$2, b2$2, b3$0)); - } - } - else{ - if(225 > b0){ - var i$13 = i + 1 | 0; - if(max < i$13) return caml_call1(dec_invalid, 1); - var b1$4 = caml_bytes_unsafe_get(b, i$13); - if(not_in_xA0_to_xBF(b1$4)) return caml_call1(dec_invalid, 1); - var i$14 = i$13 + 1 | 0; - if(max < i$14) return caml_call1(dec_invalid, 2); - var b2$4 = caml_bytes_unsafe_get(b, i$14); - return not_in_x80_to_xBF(b2$4) - ? caml_call1(dec_invalid, 2) - : dec_ret(3, utf_8_uchar_3(b0, b1$4, b2$4)); - } - switch$0 = 1; - } - if(switch$0){ - var i$2 = i + 1 | 0; - if(max < i$2) return caml_call1(dec_invalid, 1); - var b1$0 = caml_bytes_unsafe_get(b, i$2); - if(not_in_x80_to_xBF(b1$0)) return caml_call1(dec_invalid, 1); - var i$3 = i$2 + 1 | 0; - if(max < i$3) return caml_call1(dec_invalid, 2); - var b2$0 = caml_bytes_unsafe_get(b, i$3); - return not_in_x80_to_xBF(b2$0) - ? caml_call1(dec_invalid, 2) - : dec_ret(3, utf_8_uchar_3(b0, b1$0, b2$0)); - } - } - else{ - if(128 > b0) return dec_ret(1, b0); - if(194 <= b0){ - var i$15 = i + 1 | 0; - if(max < i$15) return caml_call1(dec_invalid, 1); - var b1$5 = caml_bytes_unsafe_get(b, i$15); - return not_in_x80_to_xBF(b1$5) - ? caml_call1(dec_invalid, 1) - : dec_ret(2, (b0 & 31) << 6 | b1$5 & 63); - } - } - return caml_call1(dec_invalid, 1); - } - function set_utf_8_uchar(b, i, u){ - function set(_i_, _h_, _g_){ - caml_bytes_unsafe_set(_i_, _h_, _g_); - return 0; - } - var - max = caml_ml_bytes_length(b) - 1 | 0, - u$0 = caml_call1(Stdlib_Uchar[10], u); - if(0 > u$0) - throw caml_maybe_attach_backtrace([0, Assert_failure, _b_], 1); - if(127 >= u$0){caml_bytes_set(b, i, u$0); return 1;} - if(2047 >= u$0){ - var last$1 = i + 1 | 0; - return max < last$1 - ? 0 - : (caml_bytes_set - (b, i, 192 | u$0 >>> 6 | 0), - set(b, last$1, 128 | u$0 & 63), - 2); - } - if(65535 >= u$0){ - var last$0 = i + 2 | 0; - return max < last$0 - ? 0 - : (caml_bytes_set - (b, i, 224 | u$0 >>> 12 | 0), - set(b, i + 1 | 0, 128 | (u$0 >>> 6 | 0) & 63), - set(b, last$0, 128 | u$0 & 63), - 3); - } - if(1114111 < u$0) - throw caml_maybe_attach_backtrace([0, Assert_failure, _a_], 1); - var last = i + 3 | 0; - return max < last - ? 0 - : (caml_bytes_set - (b, i, 240 | u$0 >>> 18 | 0), - set(b, i + 1 | 0, 128 | (u$0 >>> 12 | 0) & 63), - set(b, i + 2 | 0, 128 | (u$0 >>> 6 | 0) & 63), - set(b, last, 128 | u$0 & 63), - 4); - } - function is_valid_utf_8(b){ - var max = caml_ml_bytes_length(b) - 1 | 0, i = 0; - for(;;){ - if(max < i) return 1; - var match = caml_bytes_unsafe_get(b, i); - if(224 <= match){ - var switch$0 = 0; - if(237 <= match){ - if(245 > match) - switch(match - 237 | 0){ - case 0: - var last = i + 2 | 0; - if - (max >= last - && - ! - not_in_x80_to_x9F(caml_bytes_unsafe_get(b, i + 1 | 0)) - && ! not_in_x80_to_xBF(caml_bytes_unsafe_get(b, last))){var i$0 = last + 1 | 0, i = i$0; continue;} - return 0; - case 3: - var last$1 = i + 3 | 0; - if - (max >= last$1 - && - ! - not_in_x90_to_xBF(caml_bytes_unsafe_get(b, i + 1 | 0)) - && - ! - not_in_x80_to_xBF(caml_bytes_unsafe_get(b, i + 2 | 0)) - && ! not_in_x80_to_xBF(caml_bytes_unsafe_get(b, last$1))){var i$2 = last$1 + 1 | 0, i = i$2; continue;} - return 0; - case 7: - var last$3 = i + 3 | 0; - if - (max >= last$3 - && - ! - not_in_x80_to_x8F(caml_bytes_unsafe_get(b, i + 1 | 0)) - && - ! - not_in_x80_to_xBF(caml_bytes_unsafe_get(b, i + 2 | 0)) - && ! not_in_x80_to_xBF(caml_bytes_unsafe_get(b, last$3))){var i$4 = last$3 + 1 | 0, i = i$4; continue;} - return 0; - case 1: - case 2: - switch$0 = 1; break; - default: - var last$2 = i + 3 | 0; - if - (max >= last$2 - && - ! - not_in_x80_to_xBF(caml_bytes_unsafe_get(b, i + 1 | 0)) - && - ! - not_in_x80_to_xBF(caml_bytes_unsafe_get(b, i + 2 | 0)) - && ! not_in_x80_to_xBF(caml_bytes_unsafe_get(b, last$2))){var i$3 = last$2 + 1 | 0, i = i$3; continue;} - return 0; - } - } - else{ - if(225 > match){ - var last$4 = i + 2 | 0; - if - (max >= last$4 - && - ! - not_in_xA0_to_xBF(caml_bytes_unsafe_get(b, i + 1 | 0)) - && ! not_in_x80_to_xBF(caml_bytes_unsafe_get(b, last$4))){var i$5 = last$4 + 1 | 0, i = i$5; continue;} - return 0; - } - switch$0 = 1; - } - if(switch$0){ - var last$0 = i + 2 | 0; - if - (max >= last$0 - && - ! - not_in_x80_to_xBF(caml_bytes_unsafe_get(b, i + 1 | 0)) - && ! not_in_x80_to_xBF(caml_bytes_unsafe_get(b, last$0))){var i$1 = last$0 + 1 | 0, i = i$1; continue;} - return 0; - } - } - else{ - if(128 > match){var i$7 = i + 1 | 0, i = i$7; continue;} - if(194 <= match){ - var last$5 = i + 1 | 0; - if - (max >= last$5 - && ! not_in_x80_to_xBF(caml_bytes_unsafe_get(b, last$5))){var i$6 = last$5 + 1 | 0, i = i$6; continue;} - return 0; - } - } - return 0; - } - } - function get_utf_16be_uchar(b, i){ - var max = caml_ml_bytes_length(b) - 1 | 0; - if(0 <= i && max >= i){ - if(i === max) return caml_call1(dec_invalid, 1); - var hi = unsafe_get_uint16_be(b, i); - if(55296 <= hi && 57343 >= hi){ - if(56319 < hi) return caml_call1(dec_invalid, 2); - var last = i + 3 | 0; - if(max < last) return caml_call1(dec_invalid, (max - i | 0) + 1 | 0); - var lo = unsafe_get_uint16_be(b, i + 2 | 0); - if(56320 <= lo && 57343 >= lo){ - var u = ((hi & 1023) << 10 | lo & 1023) + 65536 | 0; - return dec_ret(4, u); - } - return caml_call1(dec_invalid, 2); - } - return dec_ret(2, hi); - } - return caml_call1(Stdlib[1], cst_index_out_of_bounds); - } - function set_utf_16be_uchar(b, i, u){ - var max = caml_ml_bytes_length(b) - 1 | 0; - if(0 <= i && max >= i){ - var u$0 = caml_call1(Stdlib_Uchar[10], u); - if(0 > u$0) - throw caml_maybe_attach_backtrace([0, Assert_failure, _d_], 1); - if(65535 >= u$0){ - var last$0 = i + 1 | 0; - return max < last$0 ? 0 : (unsafe_set_uint16_be(b, i, u$0), 2); - } - if(1114111 < u$0) - throw caml_maybe_attach_backtrace([0, Assert_failure, _c_], 1); - var last = i + 3 | 0; - if(max < last) return 0; - var - u$1 = u$0 - 65536 | 0, - hi = 55296 | u$1 >>> 10 | 0, - lo = 56320 | u$1 & 1023; - unsafe_set_uint16_be(b, i, hi); - unsafe_set_uint16_be(b, i + 2 | 0, lo); - return 4; - } - return caml_call1(Stdlib[1], cst_index_out_of_bounds$0); - } - function is_valid_utf_16be(b){ - var max = caml_ml_bytes_length(b) - 1 | 0, i = 0; - for(;;){ - if(max < i) return 1; - if(i === max) return 0; - var u = unsafe_get_uint16_be(b, i); - if(55296 <= u && 57343 >= u){ - if(56319 < u) return 0; - var last = i + 3 | 0; - if(max < last) return 0; - var u$0 = unsafe_get_uint16_be(b, i + 2 | 0); - if(56320 <= u$0 && 57343 >= u$0){ - var i$1 = i + 4 | 0, i = i$1; - continue; - } - return 0; - } - var i$0 = i + 2 | 0, i = i$0; - } - } - function get_utf_16le_uchar(b, i){ - var max = caml_ml_bytes_length(b) - 1 | 0; - if(0 <= i && max >= i){ - if(i === max) return caml_call1(dec_invalid, 1); - var hi = unsafe_get_uint16_le(b, i); - if(55296 <= hi && 57343 >= hi){ - if(56319 < hi) return caml_call1(dec_invalid, 2); - var last = i + 3 | 0; - if(max < last) return caml_call1(dec_invalid, (max - i | 0) + 1 | 0); - var lo = unsafe_get_uint16_le(b, i + 2 | 0); - if(56320 <= lo && 57343 >= lo){ - var u = ((hi & 1023) << 10 | lo & 1023) + 65536 | 0; - return dec_ret(4, u); - } - return caml_call1(dec_invalid, 2); - } - return dec_ret(2, hi); - } - return caml_call1(Stdlib[1], cst_index_out_of_bounds$1); - } - function set_utf_16le_uchar(b, i, u){ - var max = caml_ml_bytes_length(b) - 1 | 0; - if(0 <= i && max >= i){ - var u$0 = caml_call1(Stdlib_Uchar[10], u); - if(0 > u$0) - throw caml_maybe_attach_backtrace([0, Assert_failure, _f_], 1); - if(65535 >= u$0){ - var last$0 = i + 1 | 0; - return max < last$0 ? 0 : (unsafe_set_uint16_le(b, i, u$0), 2); - } - if(1114111 < u$0) - throw caml_maybe_attach_backtrace([0, Assert_failure, _e_], 1); - var last = i + 3 | 0; - if(max < last) return 0; - var - u$1 = u$0 - 65536 | 0, - hi = 55296 | u$1 >>> 10 | 0, - lo = 56320 | u$1 & 1023; - unsafe_set_uint16_le(b, i, hi); - unsafe_set_uint16_le(b, i + 2 | 0, lo); - return 4; - } - return caml_call1(Stdlib[1], cst_index_out_of_bounds$2); - } - function is_valid_utf_16le(b){ - var max = caml_ml_bytes_length(b) - 1 | 0, i = 0; - for(;;){ - if(max < i) return 1; - if(i === max) return 0; - var u = unsafe_get_uint16_le(b, i); - if(55296 <= u && 57343 >= u){ - if(56319 < u) return 0; - var last = i + 3 | 0; - if(max < last) return 0; - var u$0 = unsafe_get_uint16_le(b, i + 2 | 0); - if(56320 <= u$0 && 57343 >= u$0){ - var i$1 = i + 4 | 0, i = i$1; - continue; - } - return 0; - } - var i$0 = i + 2 | 0, i = i$0; - } - } - var - Stdlib_Bytes = - [0, - make, - init, - empty, - copy, - of_string, - to_string, - sub, - sub_string, - extend, - fill, - blit, - blit_string, - concat, - cat, - iter, - iteri, - map, - mapi, - fold_left, - fold_right, - for_all, - exists, - trim, - escaped, - index, - index_opt, - rindex, - rindex_opt, - index_from, - index_from_opt, - rindex_from, - rindex_from_opt, - contains, - contains_from, - rcontains_from, - uppercase, - lowercase, - capitalize, - uncapitalize, - uppercase_ascii, - lowercase_ascii, - capitalize_ascii, - uncapitalize_ascii, - compare, - runtime.caml_bytes_equal, - starts_with, - ends_with, - caml_string_of_bytes, - caml_bytes_of_string, - split_on_char, - to_seq, - to_seqi, - of_seq, - get_utf_8_uchar, - set_utf_8_uchar, - is_valid_utf_8, - get_utf_16be_uchar, - set_utf_16be_uchar, - is_valid_utf_16be, - get_utf_16le_uchar, - set_utf_16le_uchar, - is_valid_utf_16le, - caml_bytes_get, - get_int8, - caml_bytes_get16, - get_uint16_be, - get_uint16_le, - get_int16_ne, - get_int16_be, - get_int16_le, - caml_bytes_get32, - get_int32_be, - get_int32_le, - caml_bytes_get64, - get_int64_be, - get_int64_le, - set_uint8, - caml_bytes_set, - set_uint16_ne, - set_int16_be, - set_int16_le, - caml_bytes_set16, - set_int16_be, - set_int16_le, - caml_bytes_set32, - set_int32_be, - set_int32_le, - caml_bytes_set64, - set_int64_be, - set_int64_le]; - runtime.caml_register_global(30, Stdlib_Bytes, "Stdlib__Bytes"); - return; - } - (globalThis)); - -//# 4971 "../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - cst$0 = "", - caml_blit_string = runtime.caml_blit_string, - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, - caml_ml_string_length = runtime.caml_ml_string_length, - caml_string_equal = runtime.caml_string_equal, - caml_string_unsafe_get = runtime.caml_string_unsafe_get, - caml_wrap_exception = runtime.caml_wrap_exception; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - function caml_call3(f, a0, a1, a2){ - return (f.l >= 0 ? f.l : f.l = f.length) == 3 - ? f(a0, a1, a2) - : runtime.caml_call_gen(f, [a0, a1, a2]); - } - var - global_data = runtime.caml_get_global_data(), - cst = cst$0, - empty = cst$0, - Stdlib = global_data.Stdlib, - Stdlib_Bytes = global_data.Stdlib__Bytes, - bts = Stdlib_Bytes[48], - bos = Stdlib_Bytes[49], - cst_String_rcontains_from_Byte = - "String.rcontains_from / Bytes.rcontains_from", - cst_String_contains_from_Bytes = - "String.contains_from / Bytes.contains_from", - cst_String_rindex_from_opt_Byt = - "String.rindex_from_opt / Bytes.rindex_from_opt", - cst_String_rindex_from_Bytes_r = "String.rindex_from / Bytes.rindex_from", - cst_String_index_from_opt_Byte = - "String.index_from_opt / Bytes.index_from_opt", - cst_String_index_from_Bytes_in = "String.index_from / Bytes.index_from", - cst_String_concat = "String.concat"; - function make(n, c){ - return caml_call1(bts, caml_call2(Stdlib_Bytes[1], n, c)); - } - function init(n, f){ - return caml_call1(bts, caml_call2(Stdlib_Bytes[2], n, f)); - } - function copy(s){ - var _ac_ = caml_call1(bos, s); - return caml_call1(bts, caml_call1(Stdlib_Bytes[4], _ac_)); - } - var of_bytes = Stdlib_Bytes[6], to_bytes = Stdlib_Bytes[5]; - function sub(s, ofs, len){ - var _ab_ = caml_call1(bos, s); - return caml_call1(bts, caml_call3(Stdlib_Bytes[7], _ab_, ofs, len)); - } - var fill = Stdlib_Bytes[10], blit = Stdlib_Bytes[12]; - function concat(sep, l){ - if(! l) return cst; - var seplen = caml_ml_string_length(sep), acc = 0, param = l, pos$1 = 0; - for(;;){ - if(param){ - var hd = param[1]; - if(param[2]){ - var - tl = param[2], - x = (caml_ml_string_length(hd) + seplen | 0) + acc | 0, - acc$0 = acc <= x ? x : caml_call1(Stdlib[1], cst_String_concat), - acc = acc$0, - param = tl; - continue; - } - var _aa_ = caml_ml_string_length(hd) + acc | 0; - } - else - var _aa_ = acc; - var dst = runtime.caml_create_bytes(_aa_), pos = pos$1, param$0 = l; - for(;;){ - if(param$0){ - var hd$0 = param$0[1]; - if(param$0[2]){ - var tl$0 = param$0[2]; - caml_blit_string(hd$0, 0, dst, pos, caml_ml_string_length(hd$0)); - caml_blit_string - (sep, 0, dst, pos + caml_ml_string_length(hd$0) | 0, seplen); - var - pos$0 = (pos + caml_ml_string_length(hd$0) | 0) + seplen | 0, - pos = pos$0, - param$0 = tl$0; - continue; - } - caml_blit_string(hd$0, 0, dst, pos, caml_ml_string_length(hd$0)); - } - return caml_call1(bts, dst); - } - } - } - var cat = Stdlib[28]; - function iter(f, s){ - var ___ = caml_ml_string_length(s) - 1 | 0, _Z_ = 0; - if(___ >= 0){ - var i = _Z_; - for(;;){ - caml_call1(f, caml_string_unsafe_get(s, i)); - var _$_ = i + 1 | 0; - if(___ !== i){var i = _$_; continue;} - break; - } - } - return 0; - } - function iteri(f, s){ - var _X_ = caml_ml_string_length(s) - 1 | 0, _W_ = 0; - if(_X_ >= 0){ - var i = _W_; - for(;;){ - caml_call2(f, i, caml_string_unsafe_get(s, i)); - var _Y_ = i + 1 | 0; - if(_X_ !== i){var i = _Y_; continue;} - break; - } - } - return 0; - } - function map(f, s){ - var _V_ = caml_call1(bos, s); - return caml_call1(bts, caml_call2(Stdlib_Bytes[17], f, _V_)); - } - function mapi(f, s){ - var _U_ = caml_call1(bos, s); - return caml_call1(bts, caml_call2(Stdlib_Bytes[18], f, _U_)); - } - function fold_right(f, x, a){ - var _T_ = caml_call1(bos, x); - return caml_call3(Stdlib_Bytes[20], f, _T_, a); - } - function fold_left(f, a, x){ - var _S_ = caml_call1(bos, x); - return caml_call3(Stdlib_Bytes[19], f, a, _S_); - } - function exists(f, s){ - var _R_ = caml_call1(bos, s); - return caml_call2(Stdlib_Bytes[22], f, _R_); - } - function for_all(f, s){ - var _Q_ = caml_call1(bos, s); - return caml_call2(Stdlib_Bytes[21], f, _Q_); - } - function is_space(param){ - var _P_ = param - 9 | 0, switch$0 = 0; - if(4 < _P_ >>> 0){ - if(23 === _P_) switch$0 = 1; - } - else if(2 !== _P_) switch$0 = 1; - return switch$0 ? 1 : 0; - } - function trim(s){ - if(caml_string_equal(s, cst$0)) return s; - if - (! - is_space(caml_string_unsafe_get(s, 0)) - && - ! - is_space(caml_string_unsafe_get(s, caml_ml_string_length(s) - 1 | 0))) - return s; - var _O_ = caml_call1(bos, s); - return caml_call1(bts, caml_call1(Stdlib_Bytes[23], _O_)); - } - function escaped(s){ - var n = caml_ml_string_length(s), i = 0; - for(;;){ - if(n <= i) return s; - var _M_ = caml_string_unsafe_get(s, i) - 32 | 0, switch$0 = 0; - if(59 < _M_ >>> 0){ - if(33 < _M_ - 61 >>> 0) switch$0 = 1; - } - else if(2 === _M_) switch$0 = 1; - if(switch$0){ - var _N_ = caml_call1(bos, s); - return caml_call1(bts, caml_call1(Stdlib_Bytes[24], _N_)); - } - var i$0 = i + 1 | 0, i = i$0; - } - } - function index_rec(s, lim, i, c){ - var i$0 = i; - for(;;){ - if(lim <= i$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - if(caml_string_unsafe_get(s, i$0) === c) return i$0; - var i$1 = i$0 + 1 | 0, i$0 = i$1; - } - } - function index(s, c){return index_rec(s, caml_ml_string_length(s), 0, c);} - function index_rec_opt(s, lim, i, c){ - var i$0 = i; - for(;;){ - if(lim <= i$0) return 0; - if(caml_string_unsafe_get(s, i$0) === c) return [0, i$0]; - var i$1 = i$0 + 1 | 0, i$0 = i$1; - } - } - function index_opt(s, c){ - return index_rec_opt(s, caml_ml_string_length(s), 0, c); - } - function index_from(s, i, c){ - var l = caml_ml_string_length(s); - if(0 <= i && l >= i) return index_rec(s, l, i, c); - return caml_call1(Stdlib[1], cst_String_index_from_Bytes_in); - } - function index_from_opt(s, i, c){ - var l = caml_ml_string_length(s); - if(0 <= i && l >= i) return index_rec_opt(s, l, i, c); - return caml_call1(Stdlib[1], cst_String_index_from_opt_Byte); - } - function rindex_rec(s, i, c){ - var i$0 = i; - for(;;){ - if(0 > i$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - if(caml_string_unsafe_get(s, i$0) === c) return i$0; - var i$1 = i$0 - 1 | 0, i$0 = i$1; - } - } - function rindex(s, c){ - return rindex_rec(s, caml_ml_string_length(s) - 1 | 0, c); - } - function rindex_from(s, i, c){ - if(-1 <= i && caml_ml_string_length(s) > i) return rindex_rec(s, i, c); - return caml_call1(Stdlib[1], cst_String_rindex_from_Bytes_r); - } - function rindex_rec_opt(s, i, c){ - var i$0 = i; - for(;;){ - if(0 > i$0) return 0; - if(caml_string_unsafe_get(s, i$0) === c) return [0, i$0]; - var i$1 = i$0 - 1 | 0, i$0 = i$1; - } - } - function rindex_opt(s, c){ - return rindex_rec_opt(s, caml_ml_string_length(s) - 1 | 0, c); - } - function rindex_from_opt(s, i, c){ - if(-1 <= i && caml_ml_string_length(s) > i) - return rindex_rec_opt(s, i, c); - return caml_call1(Stdlib[1], cst_String_rindex_from_opt_Byt); - } - function contains_from(s, i, c){ - var l = caml_ml_string_length(s); - if(0 <= i && l >= i) - try{index_rec(s, l, i, c); var _K_ = 1; return _K_;} - catch(_L_){ - var _J_ = caml_wrap_exception(_L_); - if(_J_ === Stdlib[8]) return 0; - throw caml_maybe_attach_backtrace(_J_, 0); - } - return caml_call1(Stdlib[1], cst_String_contains_from_Bytes); - } - function contains(s, c){return contains_from(s, 0, c);} - function rcontains_from(s, i, c){ - if(0 <= i && caml_ml_string_length(s) > i) - try{rindex_rec(s, i, c); var _H_ = 1; return _H_;} - catch(_I_){ - var _G_ = caml_wrap_exception(_I_); - if(_G_ === Stdlib[8]) return 0; - throw caml_maybe_attach_backtrace(_G_, 0); - } - return caml_call1(Stdlib[1], cst_String_rcontains_from_Byte); - } - function uppercase_ascii(s){ - var _F_ = caml_call1(bos, s); - return caml_call1(bts, caml_call1(Stdlib_Bytes[40], _F_)); - } - function lowercase_ascii(s){ - var _E_ = caml_call1(bos, s); - return caml_call1(bts, caml_call1(Stdlib_Bytes[41], _E_)); - } - function capitalize_ascii(s){ - var _D_ = caml_call1(bos, s); - return caml_call1(bts, caml_call1(Stdlib_Bytes[42], _D_)); - } - function uncapitalize_ascii(s){ - var _C_ = caml_call1(bos, s); - return caml_call1(bts, caml_call1(Stdlib_Bytes[43], _C_)); - } - function starts_with(prefix, s){ - var - len_s = caml_ml_string_length(s), - len_pre = caml_ml_string_length(prefix), - _B_ = len_pre <= len_s ? 1 : 0; - if(! _B_) return _B_; - var i = 0; - for(;;){ - if(i === len_pre) return 1; - if(caml_string_unsafe_get(s, i) !== caml_string_unsafe_get(prefix, i)) - return 0; - var i$0 = i + 1 | 0, i = i$0; - } - } - function ends_with(suffix, s){ - var - len_s = caml_ml_string_length(s), - len_suf = caml_ml_string_length(suffix), - diff = len_s - len_suf | 0, - _A_ = 0 <= diff ? 1 : 0; - if(! _A_) return _A_; - var i = 0; - for(;;){ - if(i === len_suf) return 1; - if - (caml_string_unsafe_get(s, diff + i | 0) - !== caml_string_unsafe_get(suffix, i)) - return 0; - var i$0 = i + 1 | 0, i = i$0; - } - } - function split_on_char(sep, s){ - var - r = [0, 0], - j = [0, caml_ml_string_length(s)], - _w_ = caml_ml_string_length(s) - 1 | 0; - if(_w_ >= 0){ - var i = _w_; - for(;;){ - if(caml_string_unsafe_get(s, i) === sep){ - var _y_ = r[1]; - r[1] = [0, sub(s, i + 1 | 0, (j[1] - i | 0) - 1 | 0), _y_]; - j[1] = i; - } - var _z_ = i - 1 | 0; - if(0 !== i){var i = _z_; continue;} - break; - } - } - var _x_ = r[1]; - return [0, sub(s, 0, j[1]), _x_]; - } - function uppercase(s){ - var _v_ = caml_call1(bos, s); - return caml_call1(bts, caml_call1(Stdlib_Bytes[36], _v_)); - } - function lowercase(s){ - var _u_ = caml_call1(bos, s); - return caml_call1(bts, caml_call1(Stdlib_Bytes[37], _u_)); - } - function capitalize(s){ - var _t_ = caml_call1(bos, s); - return caml_call1(bts, caml_call1(Stdlib_Bytes[38], _t_)); - } - function uncapitalize(s){ - var _s_ = caml_call1(bos, s); - return caml_call1(bts, caml_call1(Stdlib_Bytes[39], _s_)); - } - var compare = runtime.caml_string_compare; - function to_seq(s){ - var _r_ = caml_call1(bos, s); - return caml_call1(Stdlib_Bytes[51], _r_); - } - function to_seqi(s){ - var _q_ = caml_call1(bos, s); - return caml_call1(Stdlib_Bytes[52], _q_); - } - function of_seq(g){ - return caml_call1(bts, caml_call1(Stdlib_Bytes[53], g)); - } - function get_utf_8_uchar(s, i){ - var _p_ = caml_call1(bos, s); - return caml_call2(Stdlib_Bytes[54], _p_, i); - } - function is_valid_utf_8(s){ - var _o_ = caml_call1(bos, s); - return caml_call1(Stdlib_Bytes[56], _o_); - } - function get_utf_16be_uchar(s, i){ - var _n_ = caml_call1(bos, s); - return caml_call2(Stdlib_Bytes[57], _n_, i); - } - function is_valid_utf_16be(s){ - var _m_ = caml_call1(bos, s); - return caml_call1(Stdlib_Bytes[59], _m_); - } - function get_utf_16le_uchar(s, i){ - var _l_ = caml_call1(bos, s); - return caml_call2(Stdlib_Bytes[60], _l_, i); - } - function is_valid_utf_16le(s){ - var _k_ = caml_call1(bos, s); - return caml_call1(Stdlib_Bytes[62], _k_); - } - function get_int8(s, i){ - var _j_ = caml_call1(bos, s); - return caml_call2(Stdlib_Bytes[64], _j_, i); - } - function get_uint16_le(s, i){ - var _i_ = caml_call1(bos, s); - return caml_call2(Stdlib_Bytes[67], _i_, i); - } - function get_uint16_be(s, i){ - var _h_ = caml_call1(bos, s); - return caml_call2(Stdlib_Bytes[66], _h_, i); - } - function get_int16_ne(s, i){ - var _g_ = caml_call1(bos, s); - return caml_call2(Stdlib_Bytes[68], _g_, i); - } - function get_int16_le(s, i){ - var _f_ = caml_call1(bos, s); - return caml_call2(Stdlib_Bytes[70], _f_, i); - } - function get_int16_be(s, i){ - var _e_ = caml_call1(bos, s); - return caml_call2(Stdlib_Bytes[69], _e_, i); - } - function get_int32_le(s, i){ - var _d_ = caml_call1(bos, s); - return caml_call2(Stdlib_Bytes[73], _d_, i); - } - function get_int32_be(s, i){ - var _c_ = caml_call1(bos, s); - return caml_call2(Stdlib_Bytes[72], _c_, i); - } - function get_int64_le(s, i){ - var _b_ = caml_call1(bos, s); - return caml_call2(Stdlib_Bytes[76], _b_, i); - } - function get_int64_be(s, i){ - var _a_ = caml_call1(bos, s); - return caml_call2(Stdlib_Bytes[75], _a_, i); - } - var - Stdlib_String = - [0, - make, - init, - empty, - of_bytes, - to_bytes, - concat, - cat, - caml_string_equal, - compare, - starts_with, - ends_with, - contains_from, - rcontains_from, - contains, - sub, - split_on_char, - map, - mapi, - fold_left, - fold_right, - for_all, - exists, - trim, - escaped, - uppercase_ascii, - lowercase_ascii, - capitalize_ascii, - uncapitalize_ascii, - iter, - iteri, - index_from, - index_from_opt, - rindex_from, - rindex_from_opt, - index, - index_opt, - rindex, - rindex_opt, - to_seq, - to_seqi, - of_seq, - get_utf_8_uchar, - is_valid_utf_8, - get_utf_16be_uchar, - is_valid_utf_16be, - get_utf_16le_uchar, - is_valid_utf_16le, - blit, - copy, - fill, - uppercase, - lowercase, - capitalize, - uncapitalize, - runtime.caml_string_get, - get_int8, - runtime.caml_string_get16, - get_uint16_be, - get_uint16_le, - get_int16_ne, - get_int16_be, - get_int16_le, - runtime.caml_string_get32, - get_int32_be, - get_int32_le, - runtime.caml_string_get64, - get_int64_be, - get_int64_le]; - runtime.caml_register_global(12, Stdlib_String, "Stdlib__String"); - return; - } - (globalThis)); - -//# 5558 "../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - caml_array_sub = runtime.caml_array_sub, - caml_check_bound = runtime.caml_check_bound, - caml_make_vect = runtime.caml_make_vect, - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, - caml_wrap_exception = runtime.caml_wrap_exception; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - function caml_call3(f, a0, a1, a2){ - return (f.l >= 0 ? f.l : f.l = f.length) == 3 - ? f(a0, a1, a2) - : runtime.caml_call_gen(f, [a0, a1, a2]); - } - var - global_data = runtime.caml_get_global_data(), - Stdlib_Seq = global_data.Stdlib__Seq, - Assert_failure = global_data.Assert_failure, - Stdlib = global_data.Stdlib, - make_float = runtime.caml_make_float_vect, - Floatarray = [0], - _a_ = [0, "array.ml", 322, 4], - cst_Array_combine = "Array.combine", - cst_Array_exists2 = "Array.exists2", - cst_Array_for_all2 = "Array.for_all2", - cst_Array_map2_arrays_must_hav = - "Array.map2: arrays must have the same length", - cst_Array_iter2_arrays_must_ha = - "Array.iter2: arrays must have the same length", - cst_Array_blit = "Array.blit", - cst_Array_fill = "Array.fill", - cst_Array_sub = "Array.sub", - cst_Array_init = "Array.init", - cst_Stdlib_Array_Bottom = "Stdlib.Array.Bottom"; - function init(l, f){ - if(0 === l) return [0]; - if(0 > l) return caml_call1(Stdlib[1], cst_Array_init); - var res = caml_make_vect(l, caml_call1(f, 0)), _as_ = l - 1 | 0, _ar_ = 1; - if(_as_ >= 1){ - var i = _ar_; - for(;;){ - res[1 + i] = caml_call1(f, i); - var _at_ = i + 1 | 0; - if(_as_ !== i){var i = _at_; continue;} - break; - } - } - return res; - } - function make_matrix(sx, sy, init){ - var res = caml_make_vect(sx, [0]), _ap_ = sx - 1 | 0, _ao_ = 0; - if(_ap_ >= 0){ - var x = _ao_; - for(;;){ - res[1 + x] = caml_make_vect(sy, init); - var _aq_ = x + 1 | 0; - if(_ap_ !== x){var x = _aq_; continue;} - break; - } - } - return res; - } - function copy(a){ - var l = a.length - 1; - return 0 === l ? [0] : caml_array_sub(a, 0, l); - } - function append(a1, a2){ - var l1 = a1.length - 1; - return 0 === l1 - ? copy(a2) - : 0 - === a2.length - 1 - ? caml_array_sub(a1, 0, l1) - : runtime.caml_array_append(a1, a2); - } - function sub(a, ofs, len){ - if(0 <= ofs && 0 <= len && (a.length - 1 - len | 0) >= ofs) - return caml_array_sub(a, ofs, len); - return caml_call1(Stdlib[1], cst_Array_sub); - } - function fill(a, ofs, len, v){ - if(0 <= ofs && 0 <= len && (a.length - 1 - len | 0) >= ofs) - return runtime.caml_array_fill(a, ofs, len, v); - return caml_call1(Stdlib[1], cst_Array_fill); - } - function blit(a1, ofs1, a2, ofs2, len){ - if - (0 <= len - && - 0 <= ofs1 - && - (a1.length - 1 - len | 0) >= ofs1 - && 0 <= ofs2 && (a2.length - 1 - len | 0) >= ofs2) - return runtime.caml_array_blit(a1, ofs1, a2, ofs2, len); - return caml_call1(Stdlib[1], cst_Array_blit); - } - function iter(f, a){ - var _am_ = a.length - 1 - 1 | 0, _al_ = 0; - if(_am_ >= 0){ - var i = _al_; - for(;;){ - caml_call1(f, a[1 + i]); - var _an_ = i + 1 | 0; - if(_am_ !== i){var i = _an_; continue;} - break; - } - } - return 0; - } - function iter2(f, a, b){ - if(a.length - 1 !== b.length - 1) - return caml_call1(Stdlib[1], cst_Array_iter2_arrays_must_ha); - var _aj_ = a.length - 1 - 1 | 0, _ai_ = 0; - if(_aj_ >= 0){ - var i = _ai_; - for(;;){ - caml_call2(f, a[1 + i], b[1 + i]); - var _ak_ = i + 1 | 0; - if(_aj_ !== i){var i = _ak_; continue;} - break; - } - } - return 0; - } - function map(f, a){ - var l = a.length - 1; - if(0 === l) return [0]; - var - r = caml_make_vect(l, caml_call1(f, a[1])), - _ag_ = l - 1 | 0, - _af_ = 1; - if(_ag_ >= 1){ - var i = _af_; - for(;;){ - r[1 + i] = caml_call1(f, a[1 + i]); - var _ah_ = i + 1 | 0; - if(_ag_ !== i){var i = _ah_; continue;} - break; - } - } - return r; - } - function map2(f, a, b){ - var la = a.length - 1, lb = b.length - 1; - if(la !== lb) - return caml_call1(Stdlib[1], cst_Array_map2_arrays_must_hav); - if(0 === la) return [0]; - var - r = caml_make_vect(la, caml_call2(f, a[1], b[1])), - _ad_ = la - 1 | 0, - _ac_ = 1; - if(_ad_ >= 1){ - var i = _ac_; - for(;;){ - r[1 + i] = caml_call2(f, a[1 + i], b[1 + i]); - var _ae_ = i + 1 | 0; - if(_ad_ !== i){var i = _ae_; continue;} - break; - } - } - return r; - } - function iteri(f, a){ - var _aa_ = a.length - 1 - 1 | 0, _$_ = 0; - if(_aa_ >= 0){ - var i = _$_; - for(;;){ - caml_call2(f, i, a[1 + i]); - var _ab_ = i + 1 | 0; - if(_aa_ !== i){var i = _ab_; continue;} - break; - } - } - return 0; - } - function mapi(f, a){ - var l = a.length - 1; - if(0 === l) return [0]; - var - r = caml_make_vect(l, caml_call2(f, 0, a[1])), - _Z_ = l - 1 | 0, - _Y_ = 1; - if(_Z_ >= 1){ - var i = _Y_; - for(;;){ - r[1 + i] = caml_call2(f, i, a[1 + i]); - var ___ = i + 1 | 0; - if(_Z_ !== i){var i = ___; continue;} - break; - } - } - return r; - } - function to_list(a){ - var i$1 = a.length - 1 - 1 | 0, i = i$1, res = 0; - for(;;){ - if(0 > i) return res; - var res$0 = [0, a[1 + i], res], i$0 = i - 1 | 0, i = i$0, res = res$0; - } - } - function list_length(accu, param){ - var accu$0 = accu, param$0 = param; - for(;;){ - if(! param$0) return accu$0; - var - t = param$0[2], - accu$1 = accu$0 + 1 | 0, - accu$0 = accu$1, - param$0 = t; - } - } - function of_list(l){ - if(! l) return [0]; - var - tl = l[2], - hd = l[1], - a = caml_make_vect(list_length(0, l), hd), - i = 1, - param = tl; - for(;;){ - if(! param) return a; - var tl$0 = param[2], hd$0 = param[1]; - a[1 + i] = hd$0; - var i$0 = i + 1 | 0, i = i$0, param = tl$0; - } - } - function fold_left(f, x, a){ - var r = [0, x], _W_ = a.length - 1 - 1 | 0, _V_ = 0; - if(_W_ >= 0){ - var i = _V_; - for(;;){ - r[1] = caml_call2(f, r[1], a[1 + i]); - var _X_ = i + 1 | 0; - if(_W_ !== i){var i = _X_; continue;} - break; - } - } - return r[1]; - } - function fold_left_map(f, acc, input_array){ - var len = input_array.length - 1; - if(0 === len) return [0, acc, [0]]; - var - match = caml_call2(f, acc, input_array[1]), - elt = match[2], - acc$0 = match[1], - output_array = caml_make_vect(len, elt), - acc$1 = [0, acc$0], - _T_ = len - 1 | 0, - _S_ = 1; - if(_T_ >= 1){ - var i = _S_; - for(;;){ - var - match$0 = caml_call2(f, acc$1[1], input_array[1 + i]), - elt$0 = match$0[2], - acc$2 = match$0[1]; - acc$1[1] = acc$2; - output_array[1 + i] = elt$0; - var _U_ = i + 1 | 0; - if(_T_ !== i){var i = _U_; continue;} - break; - } - } - return [0, acc$1[1], output_array]; - } - function fold_right(f, a, x){ - var r = [0, x], _Q_ = a.length - 1 - 1 | 0; - if(_Q_ >= 0){ - var i = _Q_; - for(;;){ - r[1] = caml_call2(f, a[1 + i], r[1]); - var _R_ = i - 1 | 0; - if(0 !== i){var i = _R_; continue;} - break; - } - } - return r[1]; - } - function exists(p, a){ - var n = a.length - 1, i = 0; - for(;;){ - if(i === n) return 0; - if(caml_call1(p, a[1 + i])) return 1; - var i$0 = i + 1 | 0, i = i$0; - } - } - function for_all(p, a){ - var n = a.length - 1, i = 0; - for(;;){ - if(i === n) return 1; - if(! caml_call1(p, a[1 + i])) return 0; - var i$0 = i + 1 | 0, i = i$0; - } - } - function for_all2(p, l1, l2){ - var n1 = l1.length - 1, n2 = l2.length - 1; - if(n1 !== n2) return caml_call1(Stdlib[1], cst_Array_for_all2); - var i = 0; - for(;;){ - if(i === n1) return 1; - if(! caml_call2(p, l1[1 + i], l2[1 + i])) return 0; - var i$0 = i + 1 | 0, i = i$0; - } - } - function exists2(p, l1, l2){ - var n1 = l1.length - 1, n2 = l2.length - 1; - if(n1 !== n2) return caml_call1(Stdlib[1], cst_Array_exists2); - var i = 0; - for(;;){ - if(i === n1) return 0; - if(caml_call2(p, l1[1 + i], l2[1 + i])) return 1; - var i$0 = i + 1 | 0, i = i$0; - } - } - function mem(x, a){ - var n = a.length - 1, i = 0; - for(;;){ - if(i === n) return 0; - if(0 === runtime.caml_compare(a[1 + i], x)) return 1; - var i$0 = i + 1 | 0, i = i$0; - } - } - function memq(x, a){ - var n = a.length - 1, i = 0; - for(;;){ - if(i === n) return 0; - if(x === a[1 + i]) return 1; - var i$0 = i + 1 | 0, i = i$0; - } - } - function find_opt(p, a){ - var n = a.length - 1, i = 0; - for(;;){ - if(i === n) return 0; - var x = a[1 + i]; - if(caml_call1(p, x)) return [0, x]; - var i$0 = i + 1 | 0, i = i$0; - } - } - function find_map(f, a){ - var n = a.length - 1, i = 0; - for(;;){ - if(i === n) return 0; - var r = caml_call1(f, a[1 + i]); - if(r) return r; - var i$0 = i + 1 | 0, i = i$0; - } - } - function split(x){ - if(runtime.caml_equal(x, [0])) return [0, [0], [0]]; - var - match = x[1], - b0 = match[2], - a0 = match[1], - n = x.length - 1, - a = caml_make_vect(n, a0), - b = caml_make_vect(n, b0), - _O_ = n - 1 | 0, - _N_ = 1; - if(_O_ >= 1){ - var i = _N_; - for(;;){ - var match$0 = x[1 + i], bi = match$0[2], ai = match$0[1]; - a[1 + i] = ai; - b[1 + i] = bi; - var _P_ = i + 1 | 0; - if(_O_ !== i){var i = _P_; continue;} - break; - } - } - return [0, a, b]; - } - function combine(a, b){ - var na = a.length - 1, nb = b.length - 1; - if(na !== nb) caml_call1(Stdlib[1], cst_Array_combine); - if(0 === na) return [0]; - var x = caml_make_vect(na, [0, a[1], b[1]]), _L_ = na - 1 | 0, _K_ = 1; - if(_L_ >= 1){ - var i = _K_; - for(;;){ - x[1 + i] = [0, a[1 + i], b[1 + i]]; - var _M_ = i + 1 | 0; - if(_L_ !== i){var i = _M_; continue;} - break; - } - } - return x; - } - var Bottom = [248, cst_Stdlib_Array_Bottom, runtime.caml_fresh_oo_id(0)]; - function sort(cmp, a){ - function maxson(l, i){ - var i31 = ((i + i | 0) + i | 0) + 1 | 0, x = [0, i31]; - if((i31 + 2 | 0) < l){ - var _D_ = i31 + 1 | 0, _E_ = caml_check_bound(a, _D_)[1 + _D_]; - if(caml_call2(cmp, caml_check_bound(a, i31)[1 + i31], _E_) < 0) - x[1] = i31 + 1 | 0; - var - _F_ = i31 + 2 | 0, - _G_ = caml_check_bound(a, _F_)[1 + _F_], - _H_ = x[1]; - if(caml_call2(cmp, caml_check_bound(a, _H_)[1 + _H_], _G_) < 0) - x[1] = i31 + 2 | 0; - return x[1]; - } - if((i31 + 1 | 0) < l){ - var _I_ = i31 + 1 | 0, _J_ = caml_check_bound(a, _I_)[1 + _I_]; - if(0 > caml_call2(cmp, caml_check_bound(a, i31)[1 + i31], _J_)) - return i31 + 1 | 0; - } - if(i31 < l) return i31; - throw caml_maybe_attach_backtrace([0, Bottom, i], 1); - } - var l = a.length - 1, _x_ = ((l + 1 | 0) / 3 | 0) - 1 | 0; - if(_x_ >= 0){ - var i$6 = _x_; - for(;;){ - var e$1 = caml_check_bound(a, i$6)[1 + i$6]; - try{ - var i = i$6; - for(;;){ - var j = maxson(l, i); - if(0 < caml_call2(cmp, caml_check_bound(a, j)[1 + j], e$1)){ - var _u_ = caml_check_bound(a, j)[1 + j]; - caml_check_bound(a, i)[1 + i] = _u_; - var i = j; - continue; - } - caml_check_bound(a, i)[1 + i] = e$1; - break; - } - } - catch(exn$0){ - var exn = caml_wrap_exception(exn$0); - if(exn[1] !== Bottom) throw caml_maybe_attach_backtrace(exn, 0); - var i$0 = exn[2]; - caml_check_bound(a, i$0)[1 + i$0] = e$1; - } - var _C_ = i$6 - 1 | 0; - if(0 !== i$6){var i$6 = _C_; continue;} - break; - } - } - var _y_ = l - 1 | 0; - if(_y_ >= 2){ - var i$4 = _y_; - a: - for(;;){ - var e$0 = caml_check_bound(a, i$4)[1 + i$4]; - a[1 + i$4] = caml_check_bound(a, 0)[1]; - var i$5 = 0; - try{ - var i$1 = i$5; - for(;;){ - var j$0 = maxson(i$4, i$1), _v_ = caml_check_bound(a, j$0)[1 + j$0]; - caml_check_bound(a, i$1)[1 + i$1] = _v_; - var i$1 = j$0; - } - } - catch(exn){ - var exn$0 = caml_wrap_exception(exn); - if(exn$0[1] !== Bottom) throw caml_maybe_attach_backtrace(exn$0, 0); - var i$2 = exn$0[2], i$3 = i$2; - for(;;){ - var father = (i$3 - 1 | 0) / 3 | 0; - if(i$3 === father) - throw caml_maybe_attach_backtrace([0, Assert_failure, _a_], 1); - if(0 <= caml_call2(cmp, caml_check_bound(a, father)[1 + father], e$0)) - caml_check_bound(a, i$3)[1 + i$3] = e$0; - else{ - var _w_ = caml_check_bound(a, father)[1 + father]; - caml_check_bound(a, i$3)[1 + i$3] = _w_; - if(0 < father){var i$3 = father; continue;} - caml_check_bound(a, 0)[1] = e$0; - } - var _B_ = i$4 - 1 | 0; - if(2 !== i$4){var i$4 = _B_; continue a;} - break; - } - } - break; - } - } - var _z_ = 1 < l ? 1 : 0; - if(_z_){ - var e = caml_check_bound(a, 1)[2]; - a[2] = caml_check_bound(a, 0)[1]; - a[1] = e; - var _A_ = 0; - } - else - var _A_ = _z_; - return _A_; - } - function stable_sort(cmp, a){ - function merge(src1ofs, src1len, src2, src2ofs, src2len, dst, dstofs){ - var - src1r = src1ofs + src1len | 0, - src2r = src2ofs + src2len | 0, - s2$1 = caml_check_bound(src2, src2ofs)[1 + src2ofs], - s1$1 = caml_check_bound(a, src1ofs)[1 + src1ofs], - i1 = src1ofs, - s1 = s1$1, - i2 = src2ofs, - s2 = s2$1, - d = dstofs; - for(;;){ - if(0 < caml_call2(cmp, s1, s2)){ - caml_check_bound(dst, d)[1 + d] = s2; - var i2$0 = i2 + 1 | 0; - if(i2$0 >= src2r) return blit(a, i1, dst, d + 1 | 0, src1r - i1 | 0); - var - d$0 = d + 1 | 0, - s2$0 = caml_check_bound(src2, i2$0)[1 + i2$0], - i2 = i2$0, - s2 = s2$0, - d = d$0; - continue; - } - caml_check_bound(dst, d)[1 + d] = s1; - var i1$0 = i1 + 1 | 0; - if(i1$0 >= src1r) return blit(src2, i2, dst, d + 1 | 0, src2r - i2 | 0); - var - d$1 = d + 1 | 0, - s1$0 = caml_check_bound(a, i1$0)[1 + i1$0], - i1 = i1$0, - s1 = s1$0, - d = d$1; - } - } - function isortto(srcofs, dst, dstofs, len){ - var _m_ = len - 1 | 0, _l_ = 0; - if(_m_ >= 0){ - var i = _l_; - a: - for(;;){ - var - _n_ = srcofs + i | 0, - e = caml_check_bound(a, _n_)[1 + _n_], - j = [0, (dstofs + i | 0) - 1 | 0]; - for(;;){ - if(dstofs <= j[1]){ - var _o_ = j[1]; - if(0 < caml_call2(cmp, caml_check_bound(dst, _o_)[1 + _o_], e)){ - var - _p_ = j[1], - _q_ = caml_check_bound(dst, _p_)[1 + _p_], - _r_ = j[1] + 1 | 0; - caml_check_bound(dst, _r_)[1 + _r_] = _q_; - j[1] += -1; - continue; - } - } - var _s_ = j[1] + 1 | 0; - caml_check_bound(dst, _s_)[1 + _s_] = e; - var _t_ = i + 1 | 0; - if(_m_ !== i){var i = _t_; continue a;} - break; - } - break; - } - } - return 0; - } - function sortto(srcofs, dst, dstofs, len){ - if(len <= 5) return isortto(srcofs, dst, dstofs, len); - var l1 = len / 2 | 0, l2 = len - l1 | 0; - sortto(srcofs + l1 | 0, dst, dstofs + l1 | 0, l2); - sortto(srcofs, a, srcofs + l2 | 0, l1); - return merge(srcofs + l2 | 0, l1, dst, dstofs + l1 | 0, l2, dst, dstofs); - } - var l = a.length - 1; - if(l <= 5) return isortto(0, a, 0, l); - var - l1 = l / 2 | 0, - l2 = l - l1 | 0, - t = caml_make_vect(l2, caml_check_bound(a, 0)[1]); - sortto(l1, t, 0, l2); - sortto(0, a, l2, l1); - return merge(l2, l1, t, 0, l2, a, 0); - } - function to_seq(a){ - function aux(i, param){ - if(i >= a.length - 1) return 0; - var x = a[1 + i], _j_ = i + 1 | 0; - return [0, x, function(_k_){return aux(_j_, _k_);}]; - } - var _h_ = 0; - return function(_i_){return aux(_h_, _i_);}; - } - function to_seqi(a){ - function aux(i, param){ - if(i >= a.length - 1) return 0; - var x = a[1 + i], _f_ = i + 1 | 0; - return [0, [0, i, x], function(_g_){return aux(_f_, _g_);}]; - } - var _d_ = 0; - return function(_e_){return aux(_d_, _e_);}; - } - function of_seq(i$2){ - var _b_ = 0; - function _c_(acc, x){return [0, x, acc];} - var l = caml_call3(Stdlib_Seq[5], _c_, _b_, i$2); - if(! l) return [0]; - var - tl = l[2], - hd = l[1], - len = list_length(0, l), - a = caml_make_vect(len, hd), - i$1 = len - 2 | 0, - i = i$1, - param = tl; - for(;;){ - if(! param) return a; - var tl$0 = param[2], hd$0 = param[1]; - a[1 + i] = hd$0; - var i$0 = i - 1 | 0, i = i$0, param = tl$0; - } - } - var - Stdlib_Array = - [0, - make_float, - init, - make_matrix, - make_matrix, - append, - runtime.caml_array_concat, - sub, - copy, - fill, - blit, - to_list, - of_list, - iter, - iteri, - map, - mapi, - fold_left, - fold_left_map, - fold_right, - iter2, - map2, - for_all, - exists, - for_all2, - exists2, - mem, - memq, - find_opt, - find_map, - split, - combine, - sort, - stable_sort, - stable_sort, - to_seq, - to_seqi, - of_seq, - Floatarray]; - runtime.caml_register_global(14, Stdlib_Array, "Stdlib__Array"); - return; - } - (globalThis)); - -//# 6998 "../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - caml_greaterequal = runtime.caml_greaterequal, - caml_int_compare = runtime.caml_int_compare, - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, - caml_mul = runtime.caml_mul, - caml_wrap_exception = runtime.caml_wrap_exception, - global_data = runtime.caml_get_global_data(), - Stdlib = global_data.Stdlib, - Stdlib_Sys = global_data.Stdlib__Sys, - Assert_failure = global_data.Assert_failure, - _b_ = [0, "int32.ml", 69, 6], - zero = 0, - one = 1, - minus_one = -1; - function succ(n){return n + 1 | 0;} - function pred(n){return n - 1 | 0;} - function abs(n){return caml_greaterequal(n, 0) ? n : - n | 0;} - var min_int = -2147483648, max_int = 2147483647; - function lognot(n){return n ^ -1;} - var _a_ = Stdlib_Sys[9]; - if(32 === _a_) - var - max_int$0 = Stdlib[19], - unsigned_to_int = - function(n){ - if(0 >= caml_int_compare(0, n) && 0 >= caml_int_compare(n, max_int$0)) - return [0, n]; - return 0; - }; - else{ - if(64 !== _a_) - throw caml_maybe_attach_backtrace([0, Assert_failure, _b_], 1); - var unsigned_to_int = function(n){return [0, n & -1];}; - } - function to_string(n){return runtime.caml_format_int("%d", n);} - function of_string_opt(s){ - try{var _d_ = [0, runtime.caml_int_of_string(s)]; return _d_;} - catch(_e_){ - var _c_ = caml_wrap_exception(_e_); - if(_c_[1] === Stdlib[7]) return 0; - throw caml_maybe_attach_backtrace(_c_, 0); - } - } - var compare = caml_int_compare; - function equal(x, y){return 0 === caml_int_compare(x, y) ? 1 : 0;} - function unsigned_compare(n, m){ - return caml_int_compare(n + 2147483648 | 0, m + 2147483648 | 0); - } - function min(x, y){return runtime.caml_lessequal(x, y) ? x : y;} - function max(x, y){return caml_greaterequal(x, y) ? x : y;} - function unsigned_div(n, d){ - if(runtime.caml_lessthan(d, 0)) - return 0 <= unsigned_compare(n, d) ? one : zero; - var q = runtime.caml_div(n >>> 1 | 0, d) << 1, r = n - caml_mul(q, d) | 0; - return 0 <= unsigned_compare(r, d) ? q + 1 | 0 : q; - } - function unsigned_rem(n, d){ - return n - caml_mul(unsigned_div(n, d), d) | 0; - } - var - Stdlib_Int32 = - [0, - zero, - one, - minus_one, - unsigned_div, - unsigned_rem, - succ, - pred, - abs, - max_int, - min_int, - lognot, - unsigned_to_int, - of_string_opt, - to_string, - compare, - unsigned_compare, - equal, - min, - max]; - runtime.caml_register_global(14, Stdlib_Int32, "Stdlib__Int32"); - return; - } - (globalThis)); - -//# 7090 "../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - caml_greaterequal = runtime.caml_greaterequal, - caml_int64_compare = runtime.caml_int64_compare, - caml_int64_mul = runtime.caml_int64_mul, - caml_int64_sub = runtime.caml_int64_sub, - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, - caml_wrap_exception = runtime.caml_wrap_exception, - global_data = runtime.caml_get_global_data(), - zero = runtime.caml_int64_create_lo_mi_hi(0, 0, 0), - one = runtime.caml_int64_create_lo_mi_hi(1, 0, 0), - minus_one = runtime.caml_int64_create_lo_mi_hi(16777215, 16777215, 65535), - min_int = runtime.caml_int64_create_lo_mi_hi(0, 0, 32768), - max_int = runtime.caml_int64_create_lo_mi_hi(16777215, 16777215, 32767), - Stdlib = global_data.Stdlib, - _d_ = runtime.caml_int64_create_lo_mi_hi(16777215, 16777215, 65535), - _c_ = runtime.caml_int64_create_lo_mi_hi(0, 0, 0), - _b_ = runtime.caml_int64_create_lo_mi_hi(1, 0, 0), - _a_ = runtime.caml_int64_create_lo_mi_hi(1, 0, 0); - function succ(n){return runtime.caml_int64_add(n, _a_);} - function pred(n){return caml_int64_sub(n, _b_);} - function abs(n){ - return caml_greaterequal(n, _c_) ? n : runtime.caml_int64_neg(n); - } - function lognot(n){return runtime.caml_int64_xor(n, _d_);} - var max_int$0 = runtime.caml_int64_of_int32(Stdlib[19]); - function unsigned_to_int(n){ - if - (0 >= caml_int64_compare(zero, n) - && 0 >= caml_int64_compare(n, max_int$0)) - return [0, runtime.caml_int64_to_int32(n)]; - return 0; - } - function to_string(n){return runtime.caml_int64_format("%d", n);} - function of_string_opt(s){ - try{var _f_ = [0, runtime.caml_int64_of_string(s)]; return _f_;} - catch(_g_){ - var _e_ = caml_wrap_exception(_g_); - if(_e_[1] === Stdlib[7]) return 0; - throw caml_maybe_attach_backtrace(_e_, 0); - } - } - function compare(x, y){return caml_int64_compare(x, y);} - function equal(x, y){return 0 === caml_int64_compare(x, y) ? 1 : 0;} - function unsigned_compare(n, m){ - return caml_int64_compare - (caml_int64_sub(n, min_int), caml_int64_sub(m, min_int)); - } - function min(x, y){return runtime.caml_lessequal(x, y) ? x : y;} - function max(x, y){return caml_greaterequal(x, y) ? x : y;} - function unsigned_div(n, d){ - if(runtime.caml_lessthan(d, zero)) - return 0 <= unsigned_compare(n, d) ? one : zero; - var - q = - runtime.caml_int64_shift_left - (runtime.caml_int64_div - (runtime.caml_int64_shift_right_unsigned(n, 1), d), - 1), - r = caml_int64_sub(n, caml_int64_mul(q, d)); - return 0 <= unsigned_compare(r, d) ? succ(q) : q; - } - function unsigned_rem(n, d){ - return caml_int64_sub(n, caml_int64_mul(unsigned_div(n, d), d)); - } - var - Stdlib_Int64 = - [0, - zero, - one, - minus_one, - unsigned_div, - unsigned_rem, - succ, - pred, - abs, - max_int, - min_int, - lognot, - unsigned_to_int, - of_string_opt, - to_string, - compare, - unsigned_compare, - equal, - min, - max]; - runtime.caml_register_global(11, Stdlib_Int64, "Stdlib__Int64"); - return; - } - (globalThis)); - -//# 7187 "../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - caml_greaterequal = runtime.caml_greaterequal, - caml_int_compare = runtime.caml_int_compare, - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, - caml_mul = runtime.caml_mul, - caml_wrap_exception = runtime.caml_wrap_exception, - global_data = runtime.caml_get_global_data(), - Stdlib = global_data.Stdlib, - Stdlib_Sys = global_data.Stdlib__Sys, - zero = 0, - one = 1, - minus_one = -1; - function succ(n){return n + 1 | 0;} - function pred(n){return n - 1 | 0;} - function abs(n){return caml_greaterequal(n, 0) ? n : - n | 0;} - var - size = Stdlib_Sys[9], - min_int = 1 << (size - 1 | 0), - max_int = min_int - 1 | 0; - function lognot(n){return n ^ -1;} - var max_int$0 = Stdlib[19]; - function unsigned_to_int(n){ - if(0 >= caml_int_compare(0, n) && 0 >= caml_int_compare(n, max_int$0)) - return [0, n]; - return 0; - } - function to_string(n){return runtime.caml_format_int("%d", n);} - function of_string_opt(s){ - try{var _b_ = [0, runtime.caml_int_of_string(s)]; return _b_;} - catch(_c_){ - var _a_ = caml_wrap_exception(_c_); - if(_a_[1] === Stdlib[7]) return 0; - throw caml_maybe_attach_backtrace(_a_, 0); - } - } - var compare = caml_int_compare; - function equal(x, y){return 0 === caml_int_compare(x, y) ? 1 : 0;} - function unsigned_compare(n, m){ - return caml_int_compare(n - min_int | 0, m - min_int | 0); - } - function min(x, y){return runtime.caml_lessequal(x, y) ? x : y;} - function max(x, y){return caml_greaterequal(x, y) ? x : y;} - function unsigned_div(n, d){ - if(runtime.caml_lessthan(d, 0)) - return 0 <= unsigned_compare(n, d) ? one : zero; - var q = runtime.caml_div(n >>> 1 | 0, d) << 1, r = n - caml_mul(q, d) | 0; - return 0 <= unsigned_compare(r, d) ? q + 1 | 0 : q; - } - function unsigned_rem(n, d){ - return n - caml_mul(unsigned_div(n, d), d) | 0; - } - var - Stdlib_Nativeint = - [0, - zero, - one, - minus_one, - unsigned_div, - unsigned_rem, - succ, - pred, - abs, - size, - max_int, - min_int, - lognot, - unsigned_to_int, - of_string_opt, - to_string, - compare, - unsigned_compare, - equal, - min, - max]; - runtime.caml_register_global(12, Stdlib_Nativeint, "Stdlib__Nativeint"); - return; - } - (globalThis)); - -//# 8572 "../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - cst_Map_bal$3 = "Map.bal", - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - function caml_call3(f, a0, a1, a2){ - return (f.l >= 0 ? f.l : f.l = f.length) == 3 - ? f(a0, a1, a2) - : runtime.caml_call_gen(f, [a0, a1, a2]); - } - var - global_data = runtime.caml_get_global_data(), - Stdlib = global_data.Stdlib, - Assert_failure = global_data.Assert_failure, - Stdlib_Seq = global_data.Stdlib__Seq, - cst_Map_remove_min_elt = "Map.remove_min_elt", - _a_ = [0, 0, 0, 0], - _b_ = [0, "map.ml", 400, 10], - _c_ = [0, 0, 0], - cst_Map_bal = cst_Map_bal$3, - cst_Map_bal$0 = cst_Map_bal$3, - cst_Map_bal$1 = cst_Map_bal$3, - cst_Map_bal$2 = cst_Map_bal$3, - Stdlib_Map = - [0, - function(Ord){ - function height(param){ - if(! param) return 0; - var h = param[5]; - return h; - } - function create(l, x, d, r){ - var - hl = height(l), - hr = height(r), - _L_ = hr <= hl ? hl + 1 | 0 : hr + 1 | 0; - return [0, l, x, d, r, _L_]; - } - function singleton(x, d){return [0, 0, x, d, 0, 1];} - function bal(l, x, d, r){ - if(l) var h = l[5], hl = h; else var hl = 0; - if(r) var h$0 = r[5], hr = h$0; else var hr = 0; - if((hr + 2 | 0) < hl){ - if(! l) return caml_call1(Stdlib[1], cst_Map_bal$0); - var lr = l[4], ld = l[3], lv = l[2], ll = l[1], _G_ = height(lr); - if(_G_ <= height(ll)) - return create(ll, lv, ld, create(lr, x, d, r)); - if(! lr) return caml_call1(Stdlib[1], cst_Map_bal); - var - lrr = lr[4], - lrd = lr[3], - lrv = lr[2], - lrl = lr[1], - _H_ = create(lrr, x, d, r); - return create(create(ll, lv, ld, lrl), lrv, lrd, _H_); - } - if((hl + 2 | 0) >= hr){ - var _K_ = hr <= hl ? hl + 1 | 0 : hr + 1 | 0; - return [0, l, x, d, r, _K_]; - } - if(! r) return caml_call1(Stdlib[1], cst_Map_bal$2); - var rr = r[4], rd = r[3], rv = r[2], rl = r[1], _I_ = height(rl); - if(_I_ <= height(rr)) return create(create(l, x, d, rl), rv, rd, rr); - if(! rl) return caml_call1(Stdlib[1], cst_Map_bal$1); - var - rlr = rl[4], - rld = rl[3], - rlv = rl[2], - rll = rl[1], - _J_ = create(rlr, rv, rd, rr); - return create(create(l, x, d, rll), rlv, rld, _J_); - } - var empty = 0; - function is_empty(param){return param ? 0 : 1;} - function add(x, data, m){ - if(! m) return [0, 0, x, data, 0, 1]; - var - h = m[5], - r = m[4], - d = m[3], - v = m[2], - l = m[1], - c = caml_call2(Ord[1], x, v); - if(0 === c) return d === data ? m : [0, l, x, data, r, h]; - if(0 <= c){ - var rr = add(x, data, r); - return r === rr ? m : bal(l, v, d, rr); - } - var ll = add(x, data, l); - return l === ll ? m : bal(ll, v, d, r); - } - function find(x, param){ - var param$0 = param; - for(;;){ - if(! param$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var - r = param$0[4], - d = param$0[3], - v = param$0[2], - l = param$0[1], - c = caml_call2(Ord[1], x, v); - if(0 === c) return d; - var r$0 = 0 <= c ? r : l, param$0 = r$0; - } - } - function find_first(f, param$0){ - var param$1 = param$0; - for(;;){ - if(! param$1) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var - r$0 = param$1[4], - d0$1 = param$1[3], - v0$1 = param$1[2], - l$0 = param$1[1]; - if(! caml_call1(f, v0$1)){var param$1 = r$0; continue;} - var v0 = v0$1, d0 = d0$1, param = l$0; - for(;;){ - if(! param) return [0, v0, d0]; - var r = param[4], d0$0 = param[3], v0$0 = param[2], l = param[1]; - if(caml_call1(f, v0$0)){ - var v0 = v0$0, d0 = d0$0, param = l; - continue; - } - var param = r; - } - } - } - function find_first_opt(f, param$0){ - var param$1 = param$0; - for(;;){ - if(! param$1) return 0; - var - r$0 = param$1[4], - d0$1 = param$1[3], - v0$1 = param$1[2], - l$0 = param$1[1]; - if(! caml_call1(f, v0$1)){var param$1 = r$0; continue;} - var v0 = v0$1, d0 = d0$1, param = l$0; - for(;;){ - if(! param) return [0, [0, v0, d0]]; - var r = param[4], d0$0 = param[3], v0$0 = param[2], l = param[1]; - if(caml_call1(f, v0$0)){ - var v0 = v0$0, d0 = d0$0, param = l; - continue; - } - var param = r; - } - } - } - function find_last(f, param$0){ - var param$1 = param$0; - for(;;){ - if(! param$1) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var - r$0 = param$1[4], - d0$1 = param$1[3], - v0$1 = param$1[2], - l$0 = param$1[1]; - if(! caml_call1(f, v0$1)){var param$1 = l$0; continue;} - var v0 = v0$1, d0 = d0$1, param = r$0; - for(;;){ - if(! param) return [0, v0, d0]; - var r = param[4], d0$0 = param[3], v0$0 = param[2], l = param[1]; - if(caml_call1(f, v0$0)){ - var v0 = v0$0, d0 = d0$0, param = r; - continue; - } - var param = l; - } - } - } - function find_last_opt(f, param$0){ - var param$1 = param$0; - for(;;){ - if(! param$1) return 0; - var - r$0 = param$1[4], - d0$1 = param$1[3], - v0$1 = param$1[2], - l$0 = param$1[1]; - if(! caml_call1(f, v0$1)){var param$1 = l$0; continue;} - var v0 = v0$1, d0 = d0$1, param = r$0; - for(;;){ - if(! param) return [0, [0, v0, d0]]; - var r = param[4], d0$0 = param[3], v0$0 = param[2], l = param[1]; - if(caml_call1(f, v0$0)){ - var v0 = v0$0, d0 = d0$0, param = r; - continue; - } - var param = l; - } - } - } - function find_opt(x, param){ - var param$0 = param; - for(;;){ - if(! param$0) return 0; - var - r = param$0[4], - d = param$0[3], - v = param$0[2], - l = param$0[1], - c = caml_call2(Ord[1], x, v); - if(0 === c) return [0, d]; - var r$0 = 0 <= c ? r : l, param$0 = r$0; - } - } - function mem(x, param){ - var param$0 = param; - for(;;){ - if(! param$0) return 0; - var - r = param$0[4], - v = param$0[2], - l = param$0[1], - c = caml_call2(Ord[1], x, v), - _F_ = 0 === c ? 1 : 0; - if(_F_) return _F_; - var r$0 = 0 <= c ? r : l, param$0 = r$0; - } - } - function min_binding(param){ - var param$0 = param; - for(;;){ - if(! param$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var l = param$0[1]; - if(l){var param$0 = l; continue;} - var d = param$0[3], v = param$0[2]; - return [0, v, d]; - } - } - function min_binding_opt(param){ - var param$0 = param; - for(;;){ - if(! param$0) return 0; - var l = param$0[1]; - if(l){var param$0 = l; continue;} - var d = param$0[3], v = param$0[2]; - return [0, [0, v, d]]; - } - } - function max_binding(param){ - var param$0 = param; - for(;;){ - if(! param$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - if(param$0[4]){var r = param$0[4], param$0 = r; continue;} - var d = param$0[3], v = param$0[2]; - return [0, v, d]; - } - } - function max_binding_opt(param){ - var param$0 = param; - for(;;){ - if(! param$0) return 0; - if(param$0[4]){var r = param$0[4], param$0 = r; continue;} - var d = param$0[3], v = param$0[2]; - return [0, [0, v, d]]; - } - } - function remove_min_binding(param){ - if(! param) return caml_call1(Stdlib[1], cst_Map_remove_min_elt); - var l = param[1]; - if(l){ - var r = param[4], d = param[3], v = param[2]; - return bal(remove_min_binding(l), v, d, r); - } - var r$0 = param[4]; - return r$0; - } - function _d_(t1, t2){ - if(! t1) return t2; - if(! t2) return t1; - var match = min_binding(t2), d = match[2], x = match[1]; - return bal(t1, x, d, remove_min_binding(t2)); - } - function remove(x, m){ - if(! m) return 0; - var - r = m[4], - d = m[3], - v = m[2], - l = m[1], - c = caml_call2(Ord[1], x, v); - if(0 === c) return _d_(l, r); - if(0 <= c){ - var rr = remove(x, r); - return r === rr ? m : bal(l, v, d, rr); - } - var ll = remove(x, l); - return l === ll ? m : bal(ll, v, d, r); - } - function update(x, f, m){ - if(! m){ - var match$0 = caml_call1(f, 0); - if(! match$0) return 0; - var data$0 = match$0[1]; - return [0, 0, x, data$0, 0, 1]; - } - var - h = m[5], - r = m[4], - d = m[3], - v = m[2], - l = m[1], - c = caml_call2(Ord[1], x, v); - if(0 === c){ - var match = caml_call1(f, [0, d]); - if(! match) return _d_(l, r); - var data = match[1]; - return d === data ? m : [0, l, x, data, r, h]; - } - if(0 <= c){ - var rr = update(x, f, r); - return r === rr ? m : bal(l, v, d, rr); - } - var ll = update(x, f, l); - return l === ll ? m : bal(ll, v, d, r); - } - function iter(f, param){ - var param$0 = param; - for(;;){ - if(! param$0) return 0; - var r = param$0[4], d = param$0[3], v = param$0[2], l = param$0[1]; - iter(f, l); - caml_call2(f, v, d); - var param$0 = r; - } - } - function map(f, param){ - if(! param) return 0; - var - h = param[5], - r = param[4], - d = param[3], - v = param[2], - l = param[1], - l$0 = map(f, l), - d$0 = caml_call1(f, d), - r$0 = map(f, r); - return [0, l$0, v, d$0, r$0, h]; - } - function mapi(f, param){ - if(! param) return 0; - var - h = param[5], - r = param[4], - d = param[3], - v = param[2], - l = param[1], - l$0 = mapi(f, l), - d$0 = caml_call2(f, v, d), - r$0 = mapi(f, r); - return [0, l$0, v, d$0, r$0, h]; - } - function fold(f, m, accu){ - var m$0 = m, accu$0 = accu; - for(;;){ - if(! m$0) return accu$0; - var - r = m$0[4], - d = m$0[3], - v = m$0[2], - l = m$0[1], - accu$1 = caml_call3(f, v, d, fold(f, l, accu$0)), - m$0 = r, - accu$0 = accu$1; - } - } - function for_all(p, param){ - var param$0 = param; - for(;;){ - if(! param$0) return 1; - var - r = param$0[4], - d = param$0[3], - v = param$0[2], - l = param$0[1], - _C_ = caml_call2(p, v, d); - if(_C_){ - var _D_ = for_all(p, l); - if(_D_){var param$0 = r; continue;} - var _E_ = _D_; - } - else - var _E_ = _C_; - return _E_; - } - } - function exists(p, param){ - var param$0 = param; - for(;;){ - if(! param$0) return 0; - var - r = param$0[4], - d = param$0[3], - v = param$0[2], - l = param$0[1], - _z_ = caml_call2(p, v, d); - if(_z_) - var _A_ = _z_; - else{ - var _B_ = exists(p, l); - if(! _B_){var param$0 = r; continue;} - var _A_ = _B_; - } - return _A_; - } - } - function add_min_binding(k, x, param){ - if(! param) return singleton(k, x); - var r = param[4], d = param[3], v = param[2], l = param[1]; - return bal(add_min_binding(k, x, l), v, d, r); - } - function add_max_binding(k, x, param){ - if(! param) return singleton(k, x); - var r = param[4], d = param[3], v = param[2], l = param[1]; - return bal(l, v, d, add_max_binding(k, x, r)); - } - function join(l, v, d, r){ - if(! l) return add_min_binding(v, d, r); - if(! r) return add_max_binding(v, d, l); - var - rh = r[5], - rr = r[4], - rd = r[3], - rv = r[2], - rl = r[1], - lh = l[5], - lr = l[4], - ld = l[3], - lv = l[2], - ll = l[1]; - return (rh + 2 | 0) < lh - ? bal(ll, lv, ld, join(lr, v, d, r)) - : (lh - + 2 - | 0) - < rh - ? bal(join(l, v, d, rl), rv, rd, rr) - : create(l, v, d, r); - } - function concat(t1, t2){ - if(! t1) return t2; - if(! t2) return t1; - var match = min_binding(t2), d = match[2], x = match[1]; - return join(t1, x, d, remove_min_binding(t2)); - } - function concat_or_join(t1, v, d, t2){ - if(! d) return concat(t1, t2); - var d$0 = d[1]; - return join(t1, v, d$0, t2); - } - function split(x, param){ - if(! param) return _a_; - var - r = param[4], - d = param[3], - v = param[2], - l = param[1], - c = caml_call2(Ord[1], x, v); - if(0 === c) return [0, l, [0, d], r]; - if(0 <= c){ - var - match = split(x, r), - rr = match[3], - pres = match[2], - lr = match[1]; - return [0, join(l, v, d, lr), pres, rr]; - } - var - match$0 = split(x, l), - rl = match$0[3], - pres$0 = match$0[2], - ll = match$0[1]; - return [0, ll, pres$0, join(rl, v, d, r)]; - } - function merge(f, s1, s2){ - if(s1){ - var h1 = s1[5], r1 = s1[4], d1 = s1[3], v1 = s1[2], l1 = s1[1]; - if(height(s2) <= h1){ - var - match = split(v1, s2), - r2 = match[3], - d2 = match[2], - l2 = match[1], - _v_ = merge(f, r1, r2), - _w_ = caml_call3(f, v1, [0, d1], d2); - return concat_or_join(merge(f, l1, l2), v1, _w_, _v_); - } - } - else if(! s2) return 0; - if(! s2) - throw caml_maybe_attach_backtrace([0, Assert_failure, _b_], 1); - var - r2$0 = s2[4], - d2$0 = s2[3], - v2 = s2[2], - l2$0 = s2[1], - match$0 = split(v2, s1), - r1$0 = match$0[3], - d1$0 = match$0[2], - l1$0 = match$0[1], - _x_ = merge(f, r1$0, r2$0), - _y_ = caml_call3(f, v2, d1$0, [0, d2$0]); - return concat_or_join(merge(f, l1$0, l2$0), v2, _y_, _x_); - } - function union(f, s1, s2){ - if(s1){ - if(s2){ - var - h2 = s2[5], - r2 = s2[4], - d2 = s2[3], - v2 = s2[2], - l2 = s2[1], - h1 = s1[5], - r1 = s1[4], - d1 = s1[3], - v1 = s1[2], - l1 = s1[1]; - if(h2 <= h1){ - var - match = split(v1, s2), - r2$0 = match[3], - d2$0 = match[2], - l2$0 = match[1], - l = union(f, l1, l2$0), - r = union(f, r1, r2$0); - if(! d2$0) return join(l, v1, d1, r); - var d2$1 = d2$0[1]; - return concat_or_join(l, v1, caml_call3(f, v1, d1, d2$1), r); - } - var - match$0 = split(v2, s1), - r1$0 = match$0[3], - d1$0 = match$0[2], - l1$0 = match$0[1], - l$0 = union(f, l1$0, l2), - r$0 = union(f, r1$0, r2); - if(! d1$0) return join(l$0, v2, d2, r$0); - var d1$1 = d1$0[1]; - return concat_or_join(l$0, v2, caml_call3(f, v2, d1$1, d2), r$0); - } - var s = s1; - } - else - var s = s2; - return s; - } - function filter(p, m){ - if(! m) return 0; - var - r = m[4], - d = m[3], - v = m[2], - l = m[1], - l$0 = filter(p, l), - pvd = caml_call2(p, v, d), - r$0 = filter(p, r); - if(! pvd) return concat(l$0, r$0); - if(l === l$0 && r === r$0) return m; - return join(l$0, v, d, r$0); - } - function filter_map(f, param){ - if(! param) return 0; - var - r = param[4], - d = param[3], - v = param[2], - l = param[1], - l$0 = filter_map(f, l), - fvd = caml_call2(f, v, d), - r$0 = filter_map(f, r); - if(! fvd) return concat(l$0, r$0); - var d$0 = fvd[1]; - return join(l$0, v, d$0, r$0); - } - function partition(p, param){ - if(! param) return _c_; - var - r = param[4], - d = param[3], - v = param[2], - l = param[1], - match = partition(p, l), - lf = match[2], - lt = match[1], - pvd = caml_call2(p, v, d), - match$0 = partition(p, r), - rf = match$0[2], - rt = match$0[1]; - if(pvd){ - var _t_ = concat(lf, rf); - return [0, join(lt, v, d, rt), _t_]; - } - var _u_ = join(lf, v, d, rf); - return [0, concat(lt, rt), _u_]; - } - function cons_enum(m, e){ - var m$0 = m, e$0 = e; - for(;;){ - if(! m$0) return e$0; - var - r = m$0[4], - d = m$0[3], - v = m$0[2], - l = m$0[1], - e$1 = [0, v, d, r, e$0], - m$0 = l, - e$0 = e$1; - } - } - function compare(cmp, m1, m2){ - var - e2$2 = cons_enum(m2, 0), - e1$2 = cons_enum(m1, 0), - e1 = e1$2, - e2 = e2$2; - for(;;){ - if(! e1) return e2 ? -1 : 0; - if(! e2) return 1; - var - e2$0 = e2[4], - r2 = e2[3], - d2 = e2[2], - v2 = e2[1], - e1$0 = e1[4], - r1 = e1[3], - d1 = e1[2], - v1 = e1[1], - c = caml_call2(Ord[1], v1, v2); - if(0 !== c) return c; - var c$0 = caml_call2(cmp, d1, d2); - if(0 !== c$0) return c$0; - var - e2$1 = cons_enum(r2, e2$0), - e1$1 = cons_enum(r1, e1$0), - e1 = e1$1, - e2 = e2$1; - } - } - function equal(cmp, m1, m2){ - var - e2$2 = cons_enum(m2, 0), - e1$2 = cons_enum(m1, 0), - e1 = e1$2, - e2 = e2$2; - for(;;){ - if(! e1) return e2 ? 0 : 1; - if(! e2) return 0; - var - e2$0 = e2[4], - r2 = e2[3], - d2 = e2[2], - v2 = e2[1], - e1$0 = e1[4], - r1 = e1[3], - d1 = e1[2], - v1 = e1[1], - _q_ = 0 === caml_call2(Ord[1], v1, v2) ? 1 : 0; - if(_q_){ - var _r_ = caml_call2(cmp, d1, d2); - if(_r_){ - var - e2$1 = cons_enum(r2, e2$0), - e1$1 = cons_enum(r1, e1$0), - e1 = e1$1, - e2 = e2$1; - continue; - } - var _s_ = _r_; - } - else - var _s_ = _q_; - return _s_; - } - } - function cardinal(param){ - if(! param) return 0; - var r = param[4], l = param[1], _p_ = cardinal(r); - return (cardinal(l) + 1 | 0) + _p_ | 0; - } - function bindings_aux(accu, param){ - var accu$0 = accu, param$0 = param; - for(;;){ - if(! param$0) return accu$0; - var - r = param$0[4], - d = param$0[3], - v = param$0[2], - l = param$0[1], - accu$1 = [0, [0, v, d], bindings_aux(accu$0, r)], - accu$0 = accu$1, - param$0 = l; - } - } - function bindings(s){return bindings_aux(0, s);} - function add_seq(i, m){ - function _o_(m, param){ - var v = param[2], k = param[1]; - return add(k, v, m); - } - return caml_call3(Stdlib_Seq[5], _o_, m, i); - } - function of_seq(i){return add_seq(i, empty);} - function seq_of_enum(c, param){ - if(! c) return 0; - var - rest = c[4], - t = c[3], - v = c[2], - k = c[1], - _m_ = cons_enum(t, rest); - return [0, [0, k, v], function(_n_){return seq_of_enum(_m_, _n_);}]; - } - function to_seq(m){ - var _k_ = cons_enum(m, 0); - return function(_l_){return seq_of_enum(_k_, _l_);}; - } - function snoc_enum(s, e){ - var s$0 = s, e$0 = e; - for(;;){ - if(! s$0) return e$0; - var - r = s$0[4], - d = s$0[3], - v = s$0[2], - l = s$0[1], - e$1 = [0, v, d, l, e$0], - s$0 = r, - e$0 = e$1; - } - } - function rev_seq_of_enum(c, param){ - if(! c) return 0; - var - rest = c[4], - t = c[3], - v = c[2], - k = c[1], - _i_ = snoc_enum(t, rest); - return [0, - [0, k, v], - function(_j_){return rev_seq_of_enum(_i_, _j_);}]; - } - function to_rev_seq(c){ - var _g_ = snoc_enum(c, 0); - return function(_h_){return rev_seq_of_enum(_g_, _h_);}; - } - function to_seq_from(low, m){ - var m$0 = m, c = 0; - for(;;){ - if(m$0){ - var - r = m$0[4], - d = m$0[3], - v = m$0[2], - l = m$0[1], - n = caml_call2(Ord[1], v, low); - if(0 !== n){ - if(0 <= n){var c$0 = [0, v, d, r, c], m$0 = l, c = c$0; continue;} - var m$0 = r; - continue; - } - var _e_ = [0, v, d, r, c]; - } - else - var _e_ = c; - return function(_f_){return seq_of_enum(_e_, _f_);}; - } - } - return [0, - empty, - is_empty, - mem, - add, - update, - singleton, - remove, - merge, - union, - compare, - equal, - iter, - fold, - for_all, - exists, - filter, - filter_map, - partition, - cardinal, - bindings, - min_binding, - min_binding_opt, - max_binding, - max_binding_opt, - min_binding, - min_binding_opt, - split, - find, - find_opt, - find_first, - find_first_opt, - find_last, - find_last_opt, - map, - mapi, - to_seq, - to_rev_seq, - to_seq_from, - add_seq, - of_seq]; - }]; - runtime.caml_register_global(11, Stdlib_Map, "Stdlib__Map"); - return; - } - (globalThis)); - -//# 9404 "../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - function caml_call3(f, a0, a1, a2){ - return (f.l >= 0 ? f.l : f.l = f.length) == 3 - ? f(a0, a1, a2) - : runtime.caml_call_gen(f, [a0, a1, a2]); - } - var - global_data = runtime.caml_get_global_data(), - Stdlib_Seq = global_data.Stdlib__Seq, - Stdlib_List = global_data.Stdlib__List, - Empty = [248, "Stdlib.Stack.Empty", runtime.caml_fresh_oo_id(0)]; - function create(param){return [0, 0, 0];} - function clear(s){s[1] = 0; s[2] = 0; return 0;} - function copy(s){return [0, s[1], s[2]];} - function push(x, s){s[1] = [0, x, s[1]]; s[2] = s[2] + 1 | 0; return 0;} - function pop(s){ - var match = s[1]; - if(! match) throw caml_maybe_attach_backtrace(Empty, 1); - var tl = match[2], hd = match[1]; - s[1] = tl; - s[2] = s[2] - 1 | 0; - return hd; - } - function pop_opt(s){ - var match = s[1]; - if(! match) return 0; - var tl = match[2], hd = match[1]; - s[1] = tl; - s[2] = s[2] - 1 | 0; - return [0, hd]; - } - function top(s){ - var match = s[1]; - if(! match) throw caml_maybe_attach_backtrace(Empty, 1); - var hd = match[1]; - return hd; - } - function top_opt(s){ - var match = s[1]; - if(! match) return 0; - var hd = match[1]; - return [0, hd]; - } - function is_empty(s){return 0 === s[1] ? 1 : 0;} - function length(s){return s[2];} - function iter(f, s){return caml_call2(Stdlib_List[17], f, s[1]);} - function fold(f, acc, s){return caml_call3(Stdlib_List[25], f, acc, s[1]);} - function to_seq(s){return caml_call1(Stdlib_List[61], s[1]);} - function add_seq(q, i){ - function _a_(x){return push(x, q);} - return caml_call2(Stdlib_Seq[4], _a_, i); - } - function of_seq(g){var s = create(0); add_seq(s, g); return s;} - var - Stdlib_Stack = - [0, - Empty, - create, - push, - pop, - pop_opt, - top, - top_opt, - clear, - copy, - is_empty, - length, - iter, - fold, - to_seq, - add_seq, - of_seq]; - runtime.caml_register_global(3, Stdlib_Stack, "Stdlib__Stack"); - return; - } - (globalThis)); - -//# 9498 "../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - var - global_data = runtime.caml_get_global_data(), - Stdlib_Seq = global_data.Stdlib__Seq, - Empty = [248, "Stdlib.Queue.Empty", runtime.caml_fresh_oo_id(0)]; - function create(param){return [0, 0, 0, 0];} - function clear(q){q[1] = 0; q[2] = 0; q[3] = 0; return 0;} - function add(x, q){ - var cell = [0, x, 0], match = q[3]; - return match - ? (q[1] = q[1] + 1 | 0, match[2] = cell, q[3] = cell, 0) - : (q[1] = 1, q[2] = cell, q[3] = cell, 0); - } - function peek(q){ - var match = q[2]; - if(! match) throw caml_maybe_attach_backtrace(Empty, 1); - var content = match[1]; - return content; - } - function peek_opt(q){ - var match = q[2]; - if(! match) return 0; - var content = match[1]; - return [0, content]; - } - function take(q){ - var _g_ = q[2]; - if(! _g_) throw caml_maybe_attach_backtrace(Empty, 1); - var content = _g_[1]; - if(_g_[2]){ - var next = _g_[2]; - q[1] = q[1] - 1 | 0; - q[2] = next; - return content; - } - clear(q); - return content; - } - function take_opt(q){ - var _f_ = q[2]; - if(! _f_) return 0; - var content = _f_[1]; - if(_f_[2]){ - var next = _f_[2]; - q[1] = q[1] - 1 | 0; - q[2] = next; - return [0, content]; - } - clear(q); - return [0, content]; - } - function copy(q){ - var cell$0 = q[2], q_res = [0, q[1], 0, 0], prev = 0, cell = cell$0; - for(;;){ - if(! cell){q_res[3] = prev; return q_res;} - var content = cell[1], next = cell[2], prev$0 = [0, content, 0]; - if(prev) prev[2] = prev$0; else q_res[2] = prev$0; - var prev = prev$0, cell = next; - } - } - function is_empty(q){return 0 === q[1] ? 1 : 0;} - function length(q){return q[1];} - function iter(f, q){ - var cell$0 = q[2], cell = cell$0; - for(;;){ - if(! cell) return 0; - var content = cell[1], next = cell[2]; - caml_call1(f, content); - var cell = next; - } - } - function fold(f, accu$1, q){ - var cell$0 = q[2], accu = accu$1, cell = cell$0; - for(;;){ - if(! cell) return accu; - var - content = cell[1], - next = cell[2], - accu$0 = caml_call2(f, accu, content), - accu = accu$0, - cell = next; - } - } - function transfer(q1, q2){ - var _e_ = 0 < q1[1] ? 1 : 0; - if(! _e_) return _e_; - var match = q2[3]; - return match - ? (q2 - [1] - = q2[1] + q1[1] | 0, - match[2] = q1[2], - q2[3] = q1[3], - clear(q1)) - : (q2[1] = q1[1], q2[2] = q1[2], q2[3] = q1[3], clear(q1)); - } - function to_seq(q){ - function aux(c, param){ - if(! c) return 0; - var x = c[1], next = c[2]; - return [0, x, function(_d_){return aux(next, _d_);}]; - } - var _b_ = q[2]; - return function(_c_){return aux(_b_, _c_);}; - } - function add_seq(q, i){ - function _a_(x){return add(x, q);} - return caml_call2(Stdlib_Seq[4], _a_, i); - } - function of_seq(g){var q = create(0); add_seq(q, g); return q;} - var - Stdlib_Queue = - [0, - Empty, - create, - add, - add, - take, - take_opt, - take, - peek, - peek_opt, - peek, - clear, - copy, - is_empty, - length, - iter, - fold, - transfer, - to_seq, - add_seq, - of_seq]; - runtime.caml_register_global(2, Stdlib_Queue, "Stdlib__Queue"); - return; - } - (globalThis)); - -//# 10019 "../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - cst_buffer_ml = "buffer.ml", - caml_blit_string = runtime.caml_blit_string, - caml_bswap16 = runtime.caml_bswap16, - caml_bytes_unsafe_get = runtime.caml_bytes_unsafe_get, - caml_bytes_unsafe_set = runtime.caml_bytes_unsafe_set, - caml_create_bytes = runtime.caml_create_bytes, - caml_int32_bswap = runtime.caml_int32_bswap, - caml_int64_bswap = runtime.caml_int64_bswap, - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, - caml_ml_bytes_length = runtime.caml_ml_bytes_length, - caml_ml_string_length = runtime.caml_ml_string_length, - caml_string_get = runtime.caml_string_get; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - function caml_call3(f, a0, a1, a2){ - return (f.l >= 0 ? f.l : f.l = f.length) == 3 - ? f(a0, a1, a2) - : runtime.caml_call_gen(f, [a0, a1, a2]); - } - function caml_call4(f, a0, a1, a2, a3){ - return (f.l >= 0 ? f.l : f.l = f.length) == 4 - ? f(a0, a1, a2, a3) - : runtime.caml_call_gen(f, [a0, a1, a2, a3]); - } - function caml_call5(f, a0, a1, a2, a3, a4){ - return (f.l >= 0 ? f.l : f.l = f.length) == 5 - ? f(a0, a1, a2, a3, a4) - : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4]); - } - var - global_data = runtime.caml_get_global_data(), - Stdlib_Bytes = global_data.Stdlib__Bytes, - Stdlib_Sys = global_data.Stdlib__Sys, - Stdlib_Seq = global_data.Stdlib__Seq, - Stdlib = global_data.Stdlib, - Stdlib_String = global_data.Stdlib__String, - Assert_failure = global_data.Assert_failure, - cst_Buffer_truncate = "Buffer.truncate", - _d_ = [0, cst_buffer_ml, 231, 9], - cst_Buffer_add_channel = "Buffer.add_channel", - _c_ = [0, cst_buffer_ml, 212, 2], - cst_Buffer_add_substring_add_s = "Buffer.add_substring/add_subbytes", - cst_Buffer_add_cannot_grow_buf = "Buffer.add: cannot grow buffer", - _b_ = [0, cst_buffer_ml, 93, 2], - _a_ = [0, cst_buffer_ml, 94, 2], - cst_Buffer_nth = "Buffer.nth", - cst_Buffer_blit = "Buffer.blit", - cst_Buffer_sub = "Buffer.sub"; - function create(n){ - var - n$0 = 1 <= n ? n : 1, - n$1 = Stdlib_Sys[12] < n$0 ? Stdlib_Sys[12] : n$0, - s = caml_create_bytes(n$1); - return [0, s, 0, n$1, s]; - } - function contents(b){return caml_call3(Stdlib_Bytes[8], b[1], 0, b[2]);} - function to_bytes(b){return caml_call3(Stdlib_Bytes[7], b[1], 0, b[2]);} - function sub(b, ofs, len){ - if(0 <= ofs && 0 <= len && (b[2] - len | 0) >= ofs) - return caml_call3(Stdlib_Bytes[8], b[1], ofs, len); - return caml_call1(Stdlib[1], cst_Buffer_sub); - } - function blit(src, srcoff, dst, dstoff, len){ - if - (0 <= len - && - 0 <= srcoff - && - (src[2] - len | 0) >= srcoff - && 0 <= dstoff && (caml_ml_bytes_length(dst) - len | 0) >= dstoff) - return runtime.caml_blit_bytes(src[1], srcoff, dst, dstoff, len); - return caml_call1(Stdlib[1], cst_Buffer_blit); - } - function nth(b, ofs){ - if(0 <= ofs && b[2] > ofs) return caml_bytes_unsafe_get(b[1], ofs); - return caml_call1(Stdlib[1], cst_Buffer_nth); - } - function length(b){return b[2];} - function clear(b){b[2] = 0; return 0;} - function reset(b){ - b[2] = 0; - b[1] = b[4]; - b[3] = caml_ml_bytes_length(b[1]); - return 0; - } - function resize(b, more){ - var old_pos = b[2], old_len = b[3], new_len = [0, old_len]; - for(;;){ - if(new_len[1] < (old_pos + more | 0)){ - new_len[1] = 2 * new_len[1] | 0; - continue; - } - if(Stdlib_Sys[12] < new_len[1]) - if((old_pos + more | 0) <= Stdlib_Sys[12]) - new_len[1] = Stdlib_Sys[12]; - else - caml_call1(Stdlib[2], cst_Buffer_add_cannot_grow_buf); - var new_buffer = caml_create_bytes(new_len[1]); - caml_call5(Stdlib_Bytes[11], b[1], 0, new_buffer, 0, b[2]); - b[1] = new_buffer; - b[3] = new_len[1]; - if((b[2] + more | 0) > b[3]) - throw caml_maybe_attach_backtrace([0, Assert_failure, _b_], 1); - if((old_pos + more | 0) <= b[3]) return 0; - throw caml_maybe_attach_backtrace([0, Assert_failure, _a_], 1); - } - } - function add_char(b, c){ - var pos = b[2]; - if(b[3] <= pos) resize(b, 1); - caml_bytes_unsafe_set(b[1], pos, c); - b[2] = pos + 1 | 0; - return 0; - } - var uchar_utf_8_byte_length_max = 4, uchar_utf_16_byte_length_max = 4; - function add_utf_8_uchar(b, u){ - for(;;){ - var pos = b[2]; - if(b[3] <= pos) resize(b, uchar_utf_8_byte_length_max); - var n = caml_call3(Stdlib_Bytes[55], b[1], pos, u); - if(0 === n){resize(b, uchar_utf_8_byte_length_max); continue;} - b[2] = pos + n | 0; - return 0; - } - } - function add_utf_16be_uchar(b, u){ - for(;;){ - var pos = b[2]; - if(b[3] <= pos) resize(b, uchar_utf_16_byte_length_max); - var n = caml_call3(Stdlib_Bytes[58], b[1], pos, u); - if(0 === n){resize(b, uchar_utf_16_byte_length_max); continue;} - b[2] = pos + n | 0; - return 0; - } - } - function add_utf_16le_uchar(b, u){ - for(;;){ - var pos = b[2]; - if(b[3] <= pos) resize(b, uchar_utf_16_byte_length_max); - var n = caml_call3(Stdlib_Bytes[61], b[1], pos, u); - if(0 === n){resize(b, uchar_utf_16_byte_length_max); continue;} - b[2] = pos + n | 0; - return 0; - } - } - function add_substring(b, s, offset, len){ - var _u_ = offset < 0 ? 1 : 0; - if(_u_) - var _v_ = _u_; - else - var - _w_ = len < 0 ? 1 : 0, - _v_ = _w_ || ((caml_ml_string_length(s) - len | 0) < offset ? 1 : 0); - if(_v_) caml_call1(Stdlib[1], cst_Buffer_add_substring_add_s); - var new_position = b[2] + len | 0; - if(b[3] < new_position) resize(b, len); - caml_blit_string(s, offset, b[1], b[2], len); - b[2] = new_position; - return 0; - } - function add_subbytes(b, s, offset, len){ - return add_substring(b, caml_call1(Stdlib_Bytes[48], s), offset, len); - } - function add_string(b, s){ - var len = caml_ml_string_length(s), new_position = b[2] + len | 0; - if(b[3] < new_position) resize(b, len); - caml_blit_string(s, 0, b[1], b[2], len); - b[2] = new_position; - return 0; - } - function add_bytes(b, s){ - return add_string(b, caml_call1(Stdlib_Bytes[48], s)); - } - function add_buffer(b, bs){return add_subbytes(b, bs[1], 0, bs[2]);} - function add_channel(b, ic, to_read$1){ - var - _s_ = to_read$1 < 0 ? 1 : 0, - _t_ = _s_ || (Stdlib_Sys[12] < to_read$1 ? 1 : 0); - if(_t_) caml_call1(Stdlib[1], cst_Buffer_add_channel); - if(b[3] < (b[2] + to_read$1 | 0)) resize(b, to_read$1); - var - ofs$1 = b[2], - buf = b[1], - already_read = 0, - ofs = ofs$1, - to_read = to_read$1; - for(;;){ - if(0 !== to_read){ - var r = caml_call4(Stdlib[84], ic, buf, ofs, to_read); - if(0 !== r){ - var - already_read$0 = already_read + r | 0, - ofs$0 = ofs + r | 0, - to_read$0 = to_read - r | 0, - already_read = already_read$0, - ofs = ofs$0, - to_read = to_read$0; - continue; - } - } - if((b[2] + already_read | 0) > b[3]) - throw caml_maybe_attach_backtrace([0, Assert_failure, _c_], 1); - b[2] = b[2] + already_read | 0; - if(already_read < to_read$1) - throw caml_maybe_attach_backtrace(Stdlib[12], 1); - return 0; - } - } - function output_buffer(oc, b){ - return caml_call4(Stdlib[68], oc, b[1], 0, b[2]); - } - function add_substitute(b, f, s){ - var lim$1 = caml_ml_string_length(s), previous = 32, i$4 = 0; - for(;;){ - if(i$4 >= lim$1){ - var _r_ = 92 === previous ? 1 : 0; - return _r_ ? add_char(b, previous) : _r_; - } - var previous$0 = caml_string_get(s, i$4); - if(36 !== previous$0){ - if(92 === previous){ - add_char(b, 92); - add_char(b, previous$0); - var i$6 = i$4 + 1 | 0, previous = 32, i$4 = i$6; - continue; - } - if(92 === previous$0){ - var i$7 = i$4 + 1 | 0, previous = previous$0, i$4 = i$7; - continue; - } - add_char(b, previous$0); - var i$8 = i$4 + 1 | 0, previous = previous$0, i$4 = i$8; - continue; - } - if(92 === previous){ - add_char(b, previous$0); - var i$5 = i$4 + 1 | 0, previous = 32, i$4 = i$5; - continue; - } - var start$0 = i$4 + 1 | 0; - if(lim$1 <= start$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var opening = caml_string_get(s, start$0), switch$0 = 0; - if(40 !== opening && 123 !== opening){ - var - start = start$0 + 1 | 0, - lim$0 = caml_ml_string_length(s), - i$2 = start; - for(;;){ - if(lim$0 <= i$2) - var stop$0 = lim$0; - else{ - var match = caml_string_get(s, i$2), switch$1 = 0; - if(91 <= match){ - if(97 <= match){ - if(123 > match) switch$1 = 1; - } - else if(95 === match) switch$1 = 1; - } - else - if(58 <= match){ - if(65 <= match) switch$1 = 1; - } - else if(48 <= match) switch$1 = 1; - if(switch$1){var i$3 = i$2 + 1 | 0, i$2 = i$3; continue;} - var stop$0 = i$2; - } - var - match$0 = - [0, - caml_call3(Stdlib_String[15], s, start$0, stop$0 - start$0 | 0), - stop$0]; - switch$0 = 1; - break; - } - } - if(! switch$0){ - var new_start = start$0 + 1 | 0, k$2 = 0; - if(40 === opening) - var closing = 41; - else{ - if(123 !== opening) - throw caml_maybe_attach_backtrace([0, Assert_failure, _d_], 1); - var closing = 125; - } - var lim = caml_ml_string_length(s), k = k$2, stop = new_start; - for(;;){ - if(lim <= stop) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - if(caml_string_get(s, stop) === opening){ - var i = stop + 1 | 0, k$0 = k + 1 | 0, k = k$0, stop = i; - continue; - } - if(caml_string_get(s, stop) !== closing){ - var i$1 = stop + 1 | 0, stop = i$1; - continue; - } - if(0 !== k){ - var i$0 = stop + 1 | 0, k$1 = k - 1 | 0, k = k$1, stop = i$0; - continue; - } - var - match$0 = - [0, - caml_call3 - (Stdlib_String[15], s, new_start, (stop - start$0 | 0) - 1 | 0), - stop + 1 | 0]; - break; - } - } - var next_i = match$0[2], ident = match$0[1]; - add_string(b, caml_call1(f, ident)); - var previous = 32, i$4 = next_i; - } - } - function truncate(b, len){ - if(0 <= len && b[2] >= len){b[2] = len; return 0;} - return caml_call1(Stdlib[1], cst_Buffer_truncate); - } - function to_seq(b){ - function aux(i, param){ - if(b[2] <= i) return 0; - var x = caml_bytes_unsafe_get(b[1], i), _p_ = i + 1 | 0; - return [0, x, function(_q_){return aux(_p_, _q_);}]; - } - var _n_ = 0; - return function(_o_){return aux(_n_, _o_);}; - } - function to_seqi(b){ - function aux(i, param){ - if(b[2] <= i) return 0; - var x = caml_bytes_unsafe_get(b[1], i), _l_ = i + 1 | 0; - return [0, [0, i, x], function(_m_){return aux(_l_, _m_);}]; - } - var _j_ = 0; - return function(_k_){return aux(_j_, _k_);}; - } - function add_seq(b, seq){ - function _h_(_i_){return add_char(b, _i_);} - return caml_call2(Stdlib_Seq[4], _h_, seq); - } - function of_seq(i){var b = create(32); add_seq(b, i); return b;} - function add_int8(b, x){ - var new_position = b[2] + 1 | 0; - if(b[3] < new_position) resize(b, 1); - caml_bytes_unsafe_set(b[1], b[2], x); - b[2] = new_position; - return 0; - } - function add_int16_ne(b, x){ - var new_position = b[2] + 2 | 0; - if(b[3] < new_position) resize(b, 2); - runtime.caml_bytes_set16(b[1], b[2], x); - b[2] = new_position; - return 0; - } - function add_int32_ne(b, x){ - var new_position = b[2] + 4 | 0; - if(b[3] < new_position) resize(b, 4); - runtime.caml_bytes_set32(b[1], b[2], x); - b[2] = new_position; - return 0; - } - function add_int64_ne(b, x){ - var new_position = b[2] + 8 | 0; - if(b[3] < new_position) resize(b, 8); - runtime.caml_bytes_set64(b[1], b[2], x); - b[2] = new_position; - return 0; - } - function add_int16_le(b, x){ - var _g_ = Stdlib_Sys[11] ? caml_bswap16(x) : x; - return add_int16_ne(b, _g_); - } - function add_int16_be(b, x){ - var x$0 = Stdlib_Sys[11] ? x : caml_bswap16(x); - return add_int16_ne(b, x$0); - } - function add_int32_le(b, x){ - var _f_ = Stdlib_Sys[11] ? caml_int32_bswap(x) : x; - return add_int32_ne(b, _f_); - } - function add_int32_be(b, x){ - var x$0 = Stdlib_Sys[11] ? x : caml_int32_bswap(x); - return add_int32_ne(b, x$0); - } - function add_int64_le(b, x){ - var _e_ = Stdlib_Sys[11] ? caml_int64_bswap(x) : x; - return add_int64_ne(b, _e_); - } - function add_int64_be(b, x){ - var x$0 = Stdlib_Sys[11] ? x : caml_int64_bswap(x); - return add_int64_ne(b, x$0); - } - var - Stdlib_Buffer = - [0, - create, - contents, - to_bytes, - sub, - blit, - nth, - length, - clear, - reset, - output_buffer, - truncate, - add_char, - add_utf_8_uchar, - add_utf_16le_uchar, - add_utf_16be_uchar, - add_string, - add_bytes, - add_substring, - add_subbytes, - add_substitute, - add_buffer, - add_channel, - to_seq, - to_seqi, - add_seq, - of_seq, - add_int8, - add_int8, - add_int16_ne, - add_int16_be, - add_int16_le, - add_int16_ne, - add_int16_be, - add_int16_le, - add_int32_ne, - add_int32_be, - add_int32_le, - add_int64_ne, - add_int64_be, - add_int64_le]; - runtime.caml_register_global(17, Stdlib_Buffer, "Stdlib__Buffer"); - return; - } - (globalThis)); - -//# 10474 "../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - cst$43 = "", - cst_and = " and ", - cst_Li$3 = "%Li", - cst_i$3 = "%i", - cst_li$3 = "%li", - cst_ni$3 = "%ni", - cst_u$0 = "%u", - cst$42 = "' '", - cst$41 = "'#'", - cst$39 = "'*'", - cst$40 = "'+'", - cst$44 = ", ", - cst_0$3 = "0", - cst_at_character_number = ": at character number ", - cst$38 = "@[", - cst$37 = "@{", - cst_bad_input_format_type_mism = - "bad input: format type mismatch between ", - cst_bad_input_format_type_mism$0 = - "bad input: format type mismatch between %S and %S", - cst_camlinternalFormat_ml = "camlinternalFormat.ml", - cst_invalid_format = "invalid format ", - cst_precision$3 = "precision", - caml_blit_string = runtime.caml_blit_string, - caml_bytes_set = runtime.caml_bytes_set, - caml_create_bytes = runtime.caml_create_bytes, - caml_format_float = runtime.caml_format_float, - caml_format_int = runtime.caml_format_int, - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, - caml_ml_string_length = runtime.caml_ml_string_length, - caml_notequal = runtime.caml_notequal, - caml_string_get = runtime.caml_string_get, - caml_string_notequal = runtime.caml_string_notequal, - caml_string_unsafe_get = runtime.caml_string_unsafe_get, - caml_trampoline = runtime.caml_trampoline, - caml_trampoline_return = runtime.caml_trampoline_return, - caml_wrap_exception = runtime.caml_wrap_exception; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - function caml_call3(f, a0, a1, a2){ - return (f.l >= 0 ? f.l : f.l = f.length) == 3 - ? f(a0, a1, a2) - : runtime.caml_call_gen(f, [a0, a1, a2]); - } - function caml_call4(f, a0, a1, a2, a3){ - return (f.l >= 0 ? f.l : f.l = f.length) == 4 - ? f(a0, a1, a2, a3) - : runtime.caml_call_gen(f, [a0, a1, a2, a3]); - } - function caml_call5(f, a0, a1, a2, a3, a4){ - return (f.l >= 0 ? f.l : f.l = f.length) == 5 - ? f(a0, a1, a2, a3, a4) - : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4]); - } - var - global_data = runtime.caml_get_global_data(), - cst$9 = "%{", - cst$10 = "%}", - cst$11 = "%(", - cst$12 = "%)", - cst$13 = "%?", - cst$18 = cst$37, - cst$19 = cst$38, - cst$20 = cst$37, - cst$21 = cst$38, - cst$22 = cst$37, - cst$23 = cst$38, - cst$26 = cst$39, - cst$24 = "'-'", - cst$25 = cst$39, - cst$27 = cst$40, - cst$28 = cst$41, - cst$29 = cst$42, - cst$30 = cst$40, - cst$31 = "'_'", - sub_format = [0, 0, cst$43], - formatting_lit = [0, "@;", 1, 0], - cst$35 = cst$41, - cst$32 = cst$40, - cst$33 = cst$40, - cst$34 = cst$42, - cst$36 = cst$40, - cst$17 = ".", - cst$14 = "%!", - cst$15 = cst$37, - cst$16 = cst$38, - cst$8 = "%%", - cst$0 = "@]", - cst$1 = "@}", - cst$2 = "@?", - cst$3 = "@\n", - cst$4 = "@.", - cst$5 = "@@", - cst$6 = "@%", - cst$7 = "@", - cst = ".*", - Assert_failure = global_data.Assert_failure, - CamlinternalFormatBasics = global_data.CamlinternalFormatBasics, - Stdlib = global_data.Stdlib, - Stdlib_Buffer = global_data.Stdlib__Buffer, - Stdlib_String = global_data.Stdlib__String, - Stdlib_Sys = global_data.Stdlib__Sys, - Stdlib_Char = global_data.Stdlib__Char, - Stdlib_Bytes = global_data.Stdlib__Bytes, - Stdlib_Int = global_data.Stdlib__Int, - cst_c = "%c", - cst_s = "%s", - cst_i = cst_i$3, - cst_li = cst_li$3, - cst_ni = cst_ni$3, - cst_Li = cst_Li$3, - cst_f = "%f", - cst_B = "%B", - cst_a = "%a", - cst_t = "%t", - cst_r = "%r", - cst_r$0 = "%_r", - _b_ = [0, cst_camlinternalFormat_ml, 850, 23], - _m_ = [0, cst_camlinternalFormat_ml, 814, 21], - _e_ = [0, cst_camlinternalFormat_ml, 815, 21], - _n_ = [0, cst_camlinternalFormat_ml, 818, 21], - _f_ = [0, cst_camlinternalFormat_ml, 819, 21], - _o_ = [0, cst_camlinternalFormat_ml, 822, 19], - _g_ = [0, cst_camlinternalFormat_ml, 823, 19], - _p_ = [0, cst_camlinternalFormat_ml, 826, 22], - _h_ = [0, cst_camlinternalFormat_ml, 827, 22], - _q_ = [0, cst_camlinternalFormat_ml, 831, 30], - _i_ = [0, cst_camlinternalFormat_ml, 832, 30], - _k_ = [0, cst_camlinternalFormat_ml, 836, 26], - _c_ = [0, cst_camlinternalFormat_ml, 837, 26], - _l_ = [0, cst_camlinternalFormat_ml, 846, 28], - _d_ = [0, cst_camlinternalFormat_ml, 847, 28], - _j_ = [0, cst_camlinternalFormat_ml, 851, 23], - _s_ = [0, cst_camlinternalFormat_ml, 1558, 4], - cst_Printf_bad_conversion = "Printf: bad conversion %[", - _t_ = [0, cst_camlinternalFormat_ml, 1626, 39], - _u_ = [0, cst_camlinternalFormat_ml, 1649, 31], - _v_ = [0, cst_camlinternalFormat_ml, 1650, 31], - cst_Printf_bad_conversion$0 = "Printf: bad conversion %_", - _w_ = [0, cst_camlinternalFormat_ml, 1830, 8], - ___ = - [0, - [11, cst_bad_input_format_type_mism, [3, 0, [11, cst_and, [3, 0, 0]]]], - cst_bad_input_format_type_mism$0], - _Z_ = - [0, - [11, cst_bad_input_format_type_mism, [3, 0, [11, cst_and, [3, 0, 0]]]], - cst_bad_input_format_type_mism$0], - _C_ = - [0, - [11, - cst_invalid_format, - [3, - 0, - [11, - cst_at_character_number, - [4, 0, 0, 0, [11, ", duplicate flag ", [1, 0]]]]]], - "invalid format %S: at character number %d, duplicate flag %C"], - cst_0 = cst_0$3, - cst_padding = "padding", - _D_ = [0, 1, 0], - _E_ = [0, 0], - cst_precision = cst_precision$3, - _F_ = [1, 0], - _G_ = [1, 1], - cst_0$2 = "'0'", - cst_0$0 = cst_0$3, - _I_ = [1, 1], - cst_0$1 = cst_0$3, - cst_precision$0 = cst_precision$3, - _H_ = [1, 1], - cst_precision$1 = cst_precision$3, - _M_ = - [0, - [11, - cst_invalid_format, - [3, - 0, - [11, - cst_at_character_number, - [4, - 0, - 0, - 0, - [11, - ", flag ", - [1, - [11, - " is only allowed after the '", - [12, 37, [11, "', before padding and precision", 0]]]]]]]]], - "invalid format %S: at character number %d, flag %C is only allowed after the '%%', before padding and precision"], - _J_ = - [0, - [11, - cst_invalid_format, - [3, - 0, - [11, - cst_at_character_number, - [4, - 0, - 0, - 0, - [11, ', invalid conversion "', [12, 37, [0, [12, 34, 0]]]]]]]], - 'invalid format %S: at character number %d, invalid conversion "%%%c"'], - _K_ = [0, 0], - cst_padding$0 = "`padding'", - _L_ = [0, 0], - cst_precision$2 = "`precision'", - _N_ = [0, [12, 64, 0]], - _O_ = [0, "@ ", 1, 0], - _P_ = [0, "@,", 0, 0], - _Q_ = [2, 60], - _R_ = - [0, - [11, - cst_invalid_format, - [3, - 0, - [11, - ": '", - [12, - 37, - [11, - "' alone is not accepted in character sets, use ", - [12, - 37, - [12, - 37, - [11, " instead at position ", [4, 0, 0, 0, [12, 46, 0]]]]]]]]]], - "invalid format %S: '%%' alone is not accepted in character sets, use %%%% instead at position %d."], - _S_ = - [0, - [11, - cst_invalid_format, - [3, - 0, - [11, - ": integer ", - [4, 0, 0, 0, [11, " is greater than the limit ", [4, 0, 0, 0, 0]]]]]], - "invalid format %S: integer %d is greater than the limit %d"], - cst_digit = "digit", - _T_ = [0, cst_camlinternalFormat_ml, 2837, 11], - _U_ = - [0, - [11, - cst_invalid_format, - [3, - 0, - [11, - ': unclosed sub-format, expected "', - [12, 37, [0, [11, '" at character number ', [4, 0, 0, 0, 0]]]]]]], - 'invalid format %S: unclosed sub-format, expected "%%%c" at character number %d'], - cst_character = "character ')'", - cst_character$0 = "character '}'", - _V_ = [0, cst_camlinternalFormat_ml, 2899, 34], - _W_ = [0, cst_camlinternalFormat_ml, 2935, 28], - _X_ = [0, cst_camlinternalFormat_ml, 2957, 11], - _Y_ = - [0, - [11, - cst_invalid_format, - [3, - 0, - [11, - cst_at_character_number, - [4, - 0, - 0, - 0, - [11, - cst$44, - [2, - 0, - [11, - " is incompatible with '", - [0, [11, "' in sub-format ", [3, 0, 0]]]]]]]]]], - "invalid format %S: at character number %d, %s is incompatible with '%c' in sub-format %S"], - _B_ = - [0, - [11, - cst_invalid_format, - [3, - 0, - [11, - cst_at_character_number, - [4, 0, 0, 0, [11, cst$44, [2, 0, [11, " expected, read ", [1, 0]]]]]]]], - "invalid format %S: at character number %d, %s expected, read %C"], - _A_ = - [0, - [11, - cst_invalid_format, - [3, - 0, - [11, - cst_at_character_number, - [4, 0, 0, 0, [11, ", '", [0, [11, "' without ", [2, 0, 0]]]]]]]], - "invalid format %S: at character number %d, '%c' without %s"], - cst_non_zero_widths_are_unsupp = - "non-zero widths are unsupported for %c conversions", - cst_unexpected_end_of_format = "unexpected end of format", - _z_ = - [0, - [11, - cst_invalid_format, - [3, - 0, - [11, cst_at_character_number, [4, 0, 0, 0, [11, cst$44, [2, 0, 0]]]]]], - "invalid format %S: at character number %d, %s"], - _y_ = - [0, - [11, "invalid box description ", [3, 0, 0]], - "invalid box description %S"], - _x_ = [0, 0, 4], - cst_nan = "nan", - cst_neg_infinity = "neg_infinity", - cst_infinity = "infinity", - _r_ = [0, 103], - cst_nd$0 = "%+nd", - cst_nd$1 = "% nd", - cst_ni$1 = "%+ni", - cst_ni$2 = "% ni", - cst_nx = "%nx", - cst_nx$0 = "%#nx", - cst_nX = "%nX", - cst_nX$0 = "%#nX", - cst_no = "%no", - cst_no$0 = "%#no", - cst_nd = "%nd", - cst_ni$0 = cst_ni$3, - cst_nu = "%nu", - cst_ld$0 = "%+ld", - cst_ld$1 = "% ld", - cst_li$1 = "%+li", - cst_li$2 = "% li", - cst_lx = "%lx", - cst_lx$0 = "%#lx", - cst_lX = "%lX", - cst_lX$0 = "%#lX", - cst_lo = "%lo", - cst_lo$0 = "%#lo", - cst_ld = "%ld", - cst_li$0 = cst_li$3, - cst_lu = "%lu", - cst_Ld$0 = "%+Ld", - cst_Ld$1 = "% Ld", - cst_Li$1 = "%+Li", - cst_Li$2 = "% Li", - cst_Lx = "%Lx", - cst_Lx$0 = "%#Lx", - cst_LX = "%LX", - cst_LX$0 = "%#LX", - cst_Lo = "%Lo", - cst_Lo$0 = "%#Lo", - cst_Ld = "%Ld", - cst_Li$0 = cst_Li$3, - cst_Lu = "%Lu", - cst_d$0 = "%+d", - cst_d$1 = "% d", - cst_i$1 = "%+i", - cst_i$2 = "% i", - cst_x = "%x", - cst_x$0 = "%#x", - cst_X = "%X", - cst_X$0 = "%#X", - cst_o = "%o", - cst_o$0 = "%#o", - cst_d = "%d", - cst_i$0 = cst_i$3, - cst_u = cst_u$0, - cst_0c = "0c", - _a_ = [0, 0, 0], - cst_CamlinternalFormat_Type_mi = "CamlinternalFormat.Type_mismatch"; - function create_char_set(param){return caml_call2(Stdlib_Bytes[1], 32, 0);} - function add_in_char_set(char_set, c){ - var - str_ind = c >>> 3 | 0, - mask = 1 << (c & 7), - _dU_ = runtime.caml_bytes_get(char_set, str_ind) | mask; - return caml_bytes_set(char_set, str_ind, caml_call1(Stdlib[29], _dU_)); - } - function freeze_char_set(char_set){ - return caml_call1(Stdlib_Bytes[6], char_set); - } - function rev_char_set(char_set){ - var char_set$0 = create_char_set(0), i = 0; - for(;;){ - var _dS_ = caml_string_get(char_set, i) ^ 255; - caml_bytes_set(char_set$0, i, caml_call1(Stdlib[29], _dS_)); - var _dT_ = i + 1 | 0; - if(31 === i) return caml_call1(Stdlib_Bytes[48], char_set$0); - var i = _dT_; - } - } - function is_in_char_set(char_set, c){ - var str_ind = c >>> 3 | 0, mask = 1 << (c & 7); - return 0 !== (caml_string_get(char_set, str_ind) & mask) ? 1 : 0; - } - function pad_of_pad_opt(pad_opt){ - if(! pad_opt) return 0; - var width = pad_opt[1]; - return [0, 1, width]; - } - function param_format_of_ignored_format(ign, fmt){ - if(typeof ign === "number") - switch(ign){ - case 0: - return [0, [0, fmt]]; - case 1: - return [0, [1, fmt]]; - case 2: - return [0, [19, fmt]]; - default: return [0, [22, fmt]]; - } - switch(ign[0]){ - case 0: - var pad_opt = ign[1]; return [0, [2, pad_of_pad_opt(pad_opt), fmt]]; - case 1: - var pad_opt$0 = ign[1]; - return [0, [3, pad_of_pad_opt(pad_opt$0), fmt]]; - case 2: - var pad_opt$1 = ign[2], iconv = ign[1]; - return [0, [4, iconv, pad_of_pad_opt(pad_opt$1), 0, fmt]]; - case 3: - var pad_opt$2 = ign[2], iconv$0 = ign[1]; - return [0, [5, iconv$0, pad_of_pad_opt(pad_opt$2), 0, fmt]]; - case 4: - var pad_opt$3 = ign[2], iconv$1 = ign[1]; - return [0, [6, iconv$1, pad_of_pad_opt(pad_opt$3), 0, fmt]]; - case 5: - var pad_opt$4 = ign[2], iconv$2 = ign[1]; - return [0, [7, iconv$2, pad_of_pad_opt(pad_opt$4), 0, fmt]]; - case 6: - var prec_opt = ign[2], pad_opt$5 = ign[1]; - if(prec_opt) - var ndec = prec_opt[1], _dR_ = [0, ndec]; - else - var _dR_ = 0; - return [0, [8, _a_, pad_of_pad_opt(pad_opt$5), _dR_, fmt]]; - case 7: - var pad_opt$6 = ign[1]; - return [0, [9, pad_of_pad_opt(pad_opt$6), fmt]]; - case 8: - var fmtty = ign[2], pad_opt$7 = ign[1]; - return [0, [13, pad_opt$7, fmtty, fmt]]; - case 9: - var fmtty$0 = ign[2], pad_opt$8 = ign[1]; - return [0, [14, pad_opt$8, fmtty$0, fmt]]; - case 10: - var char_set = ign[2], width_opt = ign[1]; - return [0, [20, width_opt, char_set, fmt]]; - default: var counter = ign[1]; return [0, [21, counter, fmt]]; - } - } - function default_float_precision(fconv){return 5 === fconv[2] ? 12 : -6;} - function buffer_create(init_size){ - return [0, 0, caml_create_bytes(init_size)]; - } - function buffer_check_size(buf, overhead){ - var - len = runtime.caml_ml_bytes_length(buf[2]), - min_len = buf[1] + overhead | 0, - _dP_ = len < min_len ? 1 : 0; - if(_dP_){ - var - new_len = caml_call2(Stdlib_Int[11], len * 2 | 0, min_len), - new_str = caml_create_bytes(new_len); - caml_call5(Stdlib_Bytes[11], buf[2], 0, new_str, 0, len); - buf[2] = new_str; - var _dQ_ = 0; - } - else - var _dQ_ = _dP_; - return _dQ_; - } - function buffer_add_char(buf, c){ - buffer_check_size(buf, 1); - caml_bytes_set(buf[2], buf[1], c); - buf[1] = buf[1] + 1 | 0; - return 0; - } - function buffer_add_string(buf, s){ - var str_len = caml_ml_string_length(s); - buffer_check_size(buf, str_len); - caml_call5(Stdlib_String[48], s, 0, buf[2], buf[1], str_len); - buf[1] = buf[1] + str_len | 0; - return 0; - } - function buffer_contents(buf){ - return caml_call3(Stdlib_Bytes[8], buf[2], 0, buf[1]); - } - function char_of_iconv(iconv){ - switch(iconv){ - case 6: - case 7: - return 120; - case 8: - case 9: - return 88; - case 10: - case 11: - return 111; - case 12: - case 15: - return 117; - case 0: - case 1: - case 2: - case 13: - return 100; - default: return 105; - } - } - function char_of_fconv(opt, fconv){ - if(opt) var sth = opt[1], cF = sth; else var cF = 70; - switch(fconv[2]){ - case 0: - return 102; - case 1: - return 101; - case 2: - return 69; - case 3: - return 103; - case 4: - return 71; - case 5: - return cF; - case 6: - return 104; - case 7: - return 72; - default: return 70; - } - } - function bprint_padty(buf, padty){ - switch(padty){ - case 0: - return buffer_add_char(buf, 45); - case 1: - return 0; - default: return buffer_add_char(buf, 48); - } - } - function bprint_ignored_flag(buf, ign_flag){ - return ign_flag ? buffer_add_char(buf, 95) : ign_flag; - } - function bprint_pad_opt(buf, pad_opt){ - if(! pad_opt) return 0; - var width = pad_opt[1]; - return buffer_add_string(buf, caml_call1(Stdlib_Int[12], width)); - } - function bprint_padding(buf, pad){ - if(typeof pad === "number") return 0; - if(0 === pad[0]){ - var n = pad[2], padty = pad[1]; - bprint_padty(buf, padty); - return buffer_add_string(buf, caml_call1(Stdlib_Int[12], n)); - } - var padty$0 = pad[1]; - bprint_padty(buf, padty$0); - return buffer_add_char(buf, 42); - } - function bprint_precision(buf, prec){ - if(typeof prec === "number") - return prec ? buffer_add_string(buf, cst) : 0; - var n = prec[1]; - buffer_add_char(buf, 46); - return buffer_add_string(buf, caml_call1(Stdlib_Int[12], n)); - } - function bprint_iconv_flag(buf, iconv){ - switch(iconv){ - case 1: - case 4: - return buffer_add_char(buf, 43); - case 2: - case 5: - return buffer_add_char(buf, 32); - case 7: - case 9: - case 11: - case 13: - case 14: - case 15: - return buffer_add_char(buf, 35); - default: return 0; - } - } - function bprint_altint_fmt(buf, ign_flag, iconv, pad, prec, c){ - buffer_add_char(buf, 37); - bprint_ignored_flag(buf, ign_flag); - bprint_iconv_flag(buf, iconv); - bprint_padding(buf, pad); - bprint_precision(buf, prec); - buffer_add_char(buf, c); - return buffer_add_char(buf, char_of_iconv(iconv)); - } - function bprint_fconv_flag(buf, fconv){ - switch(fconv[1]){ - case 0: break; - case 1: - buffer_add_char(buf, 43); break; - default: buffer_add_char(buf, 32); - } - return 8 <= fconv[2] ? buffer_add_char(buf, 35) : 0; - } - function string_of_formatting_lit(formatting_lit){ - if(typeof formatting_lit === "number") - switch(formatting_lit){ - case 0: - return cst$0; - case 1: - return cst$1; - case 2: - return cst$2; - case 3: - return cst$3; - case 4: - return cst$4; - case 5: - return cst$5; - default: return cst$6; - } - switch(formatting_lit[0]){ - case 0: - var str = formatting_lit[1]; return str; - case 1: - var str$0 = formatting_lit[1]; return str$0; - default: - var c = formatting_lit[1], _dO_ = caml_call2(Stdlib_String[1], 1, c); - return caml_call2(Stdlib[28], cst$7, _dO_); - } - } - function bprint_char_literal(buf, chr){ - return 37 === chr - ? buffer_add_string(buf, cst$8) - : buffer_add_char(buf, chr); - } - function bprint_string_literal(buf, str){ - var _dM_ = caml_ml_string_length(str) - 1 | 0, _dL_ = 0; - if(_dM_ >= 0){ - var i = _dL_; - for(;;){ - bprint_char_literal(buf, caml_string_get(str, i)); - var _dN_ = i + 1 | 0; - if(_dM_ !== i){var i = _dN_; continue;} - break; - } - } - return 0; - } - function bprint_fmtty(buf, fmtty){ - var fmtty$0 = fmtty; - for(;;){ - if(typeof fmtty$0 === "number") return 0; - switch(fmtty$0[0]){ - case 0: - var fmtty$1 = fmtty$0[1]; - buffer_add_string(buf, cst_c); - var fmtty$0 = fmtty$1; - continue; - case 1: - var fmtty$2 = fmtty$0[1]; - buffer_add_string(buf, cst_s); - var fmtty$0 = fmtty$2; - continue; - case 2: - var fmtty$3 = fmtty$0[1]; - buffer_add_string(buf, cst_i); - var fmtty$0 = fmtty$3; - continue; - case 3: - var fmtty$4 = fmtty$0[1]; - buffer_add_string(buf, cst_li); - var fmtty$0 = fmtty$4; - continue; - case 4: - var fmtty$5 = fmtty$0[1]; - buffer_add_string(buf, cst_ni); - var fmtty$0 = fmtty$5; - continue; - case 5: - var fmtty$6 = fmtty$0[1]; - buffer_add_string(buf, cst_Li); - var fmtty$0 = fmtty$6; - continue; - case 6: - var fmtty$7 = fmtty$0[1]; - buffer_add_string(buf, cst_f); - var fmtty$0 = fmtty$7; - continue; - case 7: - var fmtty$8 = fmtty$0[1]; - buffer_add_string(buf, cst_B); - var fmtty$0 = fmtty$8; - continue; - case 8: - var fmtty$9 = fmtty$0[2], sub_fmtty = fmtty$0[1]; - buffer_add_string(buf, cst$9); - bprint_fmtty(buf, sub_fmtty); - buffer_add_string(buf, cst$10); - var fmtty$0 = fmtty$9; - continue; - case 9: - var fmtty$10 = fmtty$0[3], sub_fmtty$0 = fmtty$0[1]; - buffer_add_string(buf, cst$11); - bprint_fmtty(buf, sub_fmtty$0); - buffer_add_string(buf, cst$12); - var fmtty$0 = fmtty$10; - continue; - case 10: - var fmtty$11 = fmtty$0[1]; - buffer_add_string(buf, cst_a); - var fmtty$0 = fmtty$11; - continue; - case 11: - var fmtty$12 = fmtty$0[1]; - buffer_add_string(buf, cst_t); - var fmtty$0 = fmtty$12; - continue; - case 12: - var fmtty$13 = fmtty$0[1]; - buffer_add_string(buf, cst$13); - var fmtty$0 = fmtty$13; - continue; - case 13: - var fmtty$14 = fmtty$0[1]; - buffer_add_string(buf, cst_r); - var fmtty$0 = fmtty$14; - continue; - default: - var fmtty$15 = fmtty$0[1]; - buffer_add_string(buf, cst_r$0); - var fmtty$0 = fmtty$15; - continue; - } - } - } - function int_of_custom_arity(param){ - if(! param) return 0; - var x = param[1]; - return 1 + int_of_custom_arity(x) | 0; - } - function string_of_fmt(fmt){ - var buf = buffer_create(16); - function fmtiter(fmt, ign_flag){ - var fmt$0 = fmt, ign_flag$0 = ign_flag; - a: - for(;;){ - if(typeof fmt$0 === "number") return 0; - switch(fmt$0[0]){ - case 0: - var rest = fmt$0[1]; - buffer_add_char(buf, 37); - bprint_ignored_flag(buf, ign_flag$0); - buffer_add_char(buf, 99); - var fmt$0 = rest, ign_flag$0 = 0; - continue; - case 1: - var rest$0 = fmt$0[1]; - buffer_add_char(buf, 37); - bprint_ignored_flag(buf, ign_flag$0); - buffer_add_char(buf, 67); - var fmt$0 = rest$0, ign_flag$0 = 0; - continue; - case 2: - var rest$1 = fmt$0[2], pad = fmt$0[1]; - buffer_add_char(buf, 37); - bprint_ignored_flag(buf, ign_flag$0); - bprint_padding(buf, pad); - buffer_add_char(buf, 115); - var fmt$0 = rest$1, ign_flag$0 = 0; - continue; - case 3: - var rest$2 = fmt$0[2], pad$0 = fmt$0[1]; - buffer_add_char(buf, 37); - bprint_ignored_flag(buf, ign_flag$0); - bprint_padding(buf, pad$0); - buffer_add_char(buf, 83); - var fmt$0 = rest$2, ign_flag$0 = 0; - continue; - case 4: - var - rest$3 = fmt$0[4], - prec = fmt$0[3], - pad$1 = fmt$0[2], - iconv = fmt$0[1]; - buffer_add_char(buf, 37); - bprint_ignored_flag(buf, ign_flag$0); - bprint_iconv_flag(buf, iconv); - bprint_padding(buf, pad$1); - bprint_precision(buf, prec); - buffer_add_char(buf, char_of_iconv(iconv)); - var fmt$0 = rest$3, ign_flag$0 = 0; - continue; - case 5: - var - rest$4 = fmt$0[4], - prec$0 = fmt$0[3], - pad$2 = fmt$0[2], - iconv$0 = fmt$0[1]; - bprint_altint_fmt(buf, ign_flag$0, iconv$0, pad$2, prec$0, 108); - var fmt$0 = rest$4, ign_flag$0 = 0; - continue; - case 6: - var - rest$5 = fmt$0[4], - prec$1 = fmt$0[3], - pad$3 = fmt$0[2], - iconv$1 = fmt$0[1]; - bprint_altint_fmt(buf, ign_flag$0, iconv$1, pad$3, prec$1, 110); - var fmt$0 = rest$5, ign_flag$0 = 0; - continue; - case 7: - var - rest$6 = fmt$0[4], - prec$2 = fmt$0[3], - pad$4 = fmt$0[2], - iconv$2 = fmt$0[1]; - bprint_altint_fmt(buf, ign_flag$0, iconv$2, pad$4, prec$2, 76); - var fmt$0 = rest$6, ign_flag$0 = 0; - continue; - case 8: - var - rest$7 = fmt$0[4], - prec$3 = fmt$0[3], - pad$5 = fmt$0[2], - fconv = fmt$0[1]; - buffer_add_char(buf, 37); - bprint_ignored_flag(buf, ign_flag$0); - bprint_fconv_flag(buf, fconv); - bprint_padding(buf, pad$5); - bprint_precision(buf, prec$3); - buffer_add_char(buf, char_of_fconv(0, fconv)); - var fmt$0 = rest$7, ign_flag$0 = 0; - continue; - case 9: - var rest$8 = fmt$0[2], pad$6 = fmt$0[1]; - buffer_add_char(buf, 37); - bprint_ignored_flag(buf, ign_flag$0); - bprint_padding(buf, pad$6); - buffer_add_char(buf, 66); - var fmt$0 = rest$8, ign_flag$0 = 0; - continue; - case 10: - var rest$9 = fmt$0[1]; - buffer_add_string(buf, cst$14); - var fmt$0 = rest$9; - continue; - case 11: - var rest$10 = fmt$0[2], str = fmt$0[1]; - bprint_string_literal(buf, str); - var fmt$0 = rest$10; - continue; - case 12: - var rest$11 = fmt$0[2], chr = fmt$0[1]; - bprint_char_literal(buf, chr); - var fmt$0 = rest$11; - continue; - case 13: - var rest$12 = fmt$0[3], fmtty = fmt$0[2], pad_opt = fmt$0[1]; - buffer_add_char(buf, 37); - bprint_ignored_flag(buf, ign_flag$0); - bprint_pad_opt(buf, pad_opt); - buffer_add_char(buf, 123); - bprint_fmtty(buf, fmtty); - buffer_add_char(buf, 37); - buffer_add_char(buf, 125); - var fmt$0 = rest$12, ign_flag$0 = 0; - continue; - case 14: - var rest$13 = fmt$0[3], fmtty$0 = fmt$0[2], pad_opt$0 = fmt$0[1]; - buffer_add_char(buf, 37); - bprint_ignored_flag(buf, ign_flag$0); - bprint_pad_opt(buf, pad_opt$0); - buffer_add_char(buf, 40); - bprint_fmtty(buf, fmtty$0); - buffer_add_char(buf, 37); - buffer_add_char(buf, 41); - var fmt$0 = rest$13, ign_flag$0 = 0; - continue; - case 15: - var rest$14 = fmt$0[1]; - buffer_add_char(buf, 37); - bprint_ignored_flag(buf, ign_flag$0); - buffer_add_char(buf, 97); - var fmt$0 = rest$14, ign_flag$0 = 0; - continue; - case 16: - var rest$15 = fmt$0[1]; - buffer_add_char(buf, 37); - bprint_ignored_flag(buf, ign_flag$0); - buffer_add_char(buf, 116); - var fmt$0 = rest$15, ign_flag$0 = 0; - continue; - case 17: - var rest$16 = fmt$0[2], fmting_lit = fmt$0[1]; - bprint_string_literal(buf, string_of_formatting_lit(fmting_lit)); - var fmt$0 = rest$16; - continue; - case 18: - var rest$17 = fmt$0[2], fmting_gen = fmt$0[1]; - if(0 === fmting_gen[0]){ - var str$0 = fmting_gen[1][2]; - buffer_add_string(buf, cst$15); - buffer_add_string(buf, str$0); - } - else{ - var str$1 = fmting_gen[1][2]; - buffer_add_string(buf, cst$16); - buffer_add_string(buf, str$1); - } - var fmt$0 = rest$17; - continue; - case 19: - var rest$18 = fmt$0[1]; - buffer_add_char(buf, 37); - bprint_ignored_flag(buf, ign_flag$0); - buffer_add_char(buf, 114); - var fmt$0 = rest$18, ign_flag$0 = 0; - continue; - case 20: - var rest$19 = fmt$0[3], char_set = fmt$0[2], width_opt = fmt$0[1]; - buffer_add_char(buf, 37); - bprint_ignored_flag(buf, ign_flag$0); - bprint_pad_opt(buf, width_opt); - var - print_char = - function(buf, i){ - var c = caml_call1(Stdlib[29], i); - return 37 === c - ? (buffer_add_char(buf, 37), buffer_add_char(buf, 37)) - : 64 - === c - ? (buffer_add_char(buf, 37), buffer_add_char(buf, 64)) - : buffer_add_char(buf, c); - }; - buffer_add_char(buf, 91); - var - set = - is_in_char_set(char_set, 0) - ? (buffer_add_char(buf, 94), rev_char_set(char_set)) - : char_set, - is_alone$0 = - function(set){ - function is_alone(c){ - var - after = caml_call1(Stdlib_Char[1], c + 1 | 0), - before = caml_call1(Stdlib_Char[1], c - 1 | 0), - _dH_ = is_in_char_set(set, c); - if(_dH_) - var - _dI_ = is_in_char_set(set, before), - _dJ_ = _dI_ ? is_in_char_set(set, after) : _dI_, - _dK_ = 1 - _dJ_; - else - var _dK_ = _dH_; - return _dK_; - } - return is_alone; - }, - is_alone = is_alone$0(set); - if(is_alone(93)) buffer_add_char(buf, 93); - var i = 1; - b: - for(;;){ - if(i < 256){ - if(! is_in_char_set(set, caml_call1(Stdlib[29], i))){var i$0 = i + 1 | 0, i = i$0; continue;} - var switcher = caml_call1(Stdlib[29], i) - 45 | 0, switch$0 = 0; - if(48 < switcher >>> 0) - if(210 <= switcher) print_char(buf, 255); else switch$0 = 1; - else{ - if(46 < switcher - 1 >>> 0){ - var i$2 = i + 1 | 0, i = i$2; - continue; - } - switch$0 = 1; - } - if(switch$0){ - var i$1 = i + 1 | 0; - if(! is_in_char_set(set, caml_call1(Stdlib[29], i$1))){ - print_char(buf, i$1 - 1 | 0); - var i$6 = i$1 + 1 | 0, i = i$6; - continue; - } - var - switcher$0 = caml_call1(Stdlib[29], i$1) - 45 | 0, - switch$1 = 0; - if(48 < switcher$0 >>> 0){ - if(210 <= switcher$0){ - print_char(buf, 254); - print_char(buf, 255); - switch$1 = 1; - } - } - else if - (46 < switcher$0 - 1 >>> 0 - && ! is_in_char_set(set, caml_call1(Stdlib[29], i$1 + 1 | 0))){ - print_char(buf, i$1 - 1 | 0); - var i$5 = i$1 + 1 | 0, i = i$5; - continue; - } - if(! switch$1){ - if(! is_in_char_set(set, caml_call1(Stdlib[29], i$1 + 1 | 0))){ - print_char(buf, i$1 - 1 | 0); - print_char(buf, i$1); - var i$4 = i$1 + 2 | 0, i = i$4; - continue; - } - var j = i$1 + 2 | 0, i$3 = i$1 - 1 | 0, j$0 = j; - for(;;){ - if - (256 !== j$0 - && is_in_char_set(set, caml_call1(Stdlib[29], j$0))){var j$1 = j$0 + 1 | 0, j$0 = j$1; continue;} - print_char(buf, i$3); - print_char(buf, 45); - print_char(buf, j$0 - 1 | 0); - if(j$0 < 256){var i$7 = j$0 + 1 | 0, i = i$7; continue b;} - break; - } - } - } - } - if(is_alone(45)) buffer_add_char(buf, 45); - buffer_add_char(buf, 93); - var fmt$0 = rest$19, ign_flag$0 = 0; - continue a; - } - case 21: - var rest$20 = fmt$0[2], counter = fmt$0[1]; - buffer_add_char(buf, 37); - bprint_ignored_flag(buf, ign_flag$0); - switch(counter){ - case 0: - var _dD_ = 108; break; - case 1: - var _dD_ = 110; break; - default: var _dD_ = 78; - } - buffer_add_char(buf, _dD_); - var fmt$0 = rest$20, ign_flag$0 = 0; - continue; - case 22: - var rest$21 = fmt$0[1]; - buffer_add_char(buf, 37); - bprint_ignored_flag(buf, ign_flag$0); - bprint_string_literal(buf, cst_0c); - var fmt$0 = rest$21, ign_flag$0 = 0; - continue; - case 23: - var - rest$22 = fmt$0[2], - ign = fmt$0[1], - fmt$1 = param_format_of_ignored_format(ign, rest$22)[1], - fmt$0 = fmt$1, - ign_flag$0 = 1; - continue; - default: - var - rest$23 = fmt$0[3], - arity = fmt$0[1], - _dF_ = int_of_custom_arity(arity), - _dE_ = 1; - if(_dF_ >= 1){ - var i$8 = _dE_; - for(;;){ - buffer_add_char(buf, 37); - bprint_ignored_flag(buf, ign_flag$0); - buffer_add_char(buf, 63); - var _dG_ = i$8 + 1 | 0; - if(_dF_ !== i$8){var i$8 = _dG_; continue;} - break; - } - } - var fmt$0 = rest$23, ign_flag$0 = 0; - continue; - } - } - } - fmtiter(fmt, 0); - return buffer_contents(buf); - } - function symm(param){ - if(typeof param === "number") return 0; - switch(param[0]){ - case 0: - var rest = param[1]; return [0, symm(rest)]; - case 1: - var rest$0 = param[1]; return [1, symm(rest$0)]; - case 2: - var rest$1 = param[1]; return [2, symm(rest$1)]; - case 3: - var rest$2 = param[1]; return [3, symm(rest$2)]; - case 4: - var rest$3 = param[1]; return [4, symm(rest$3)]; - case 5: - var rest$4 = param[1]; return [5, symm(rest$4)]; - case 6: - var rest$5 = param[1]; return [6, symm(rest$5)]; - case 7: - var rest$6 = param[1]; return [7, symm(rest$6)]; - case 8: - var rest$7 = param[2], ty = param[1]; return [8, ty, symm(rest$7)]; - case 9: - var rest$8 = param[3], ty2 = param[2], ty1 = param[1]; - return [9, ty2, ty1, symm(rest$8)]; - case 10: - var rest$9 = param[1]; return [10, symm(rest$9)]; - case 11: - var rest$10 = param[1]; return [11, symm(rest$10)]; - case 12: - var rest$11 = param[1]; return [12, symm(rest$11)]; - case 13: - var rest$12 = param[1]; return [13, symm(rest$12)]; - default: var rest$13 = param[1]; return [14, symm(rest$13)]; - } - } - function fmtty_rel_det(param){ - if(typeof param !== "number") - switch(param[0]){ - case 0: - var - rest = param[1], - match = fmtty_rel_det(rest), - de = match[4], - ed = match[3], - af = match[2], - fa = match[1], - _di_ = function(param){af(0); return 0;}; - return [0, function(param){fa(0); return 0;}, _di_, ed, de]; - case 1: - var - rest$0 = param[1], - match$0 = fmtty_rel_det(rest$0), - de$0 = match$0[4], - ed$0 = match$0[3], - af$0 = match$0[2], - fa$0 = match$0[1], - _dj_ = function(param){af$0(0); return 0;}; - return [0, function(param){fa$0(0); return 0;}, _dj_, ed$0, de$0]; - case 2: - var - rest$1 = param[1], - match$1 = fmtty_rel_det(rest$1), - de$1 = match$1[4], - ed$1 = match$1[3], - af$1 = match$1[2], - fa$1 = match$1[1], - _dk_ = function(param){af$1(0); return 0;}; - return [0, function(param){fa$1(0); return 0;}, _dk_, ed$1, de$1]; - case 3: - var - rest$2 = param[1], - match$2 = fmtty_rel_det(rest$2), - de$2 = match$2[4], - ed$2 = match$2[3], - af$2 = match$2[2], - fa$2 = match$2[1], - _dl_ = function(param){af$2(0); return 0;}; - return [0, function(param){fa$2(0); return 0;}, _dl_, ed$2, de$2]; - case 4: - var - rest$3 = param[1], - match$3 = fmtty_rel_det(rest$3), - de$3 = match$3[4], - ed$3 = match$3[3], - af$3 = match$3[2], - fa$3 = match$3[1], - _dm_ = function(param){af$3(0); return 0;}; - return [0, function(param){fa$3(0); return 0;}, _dm_, ed$3, de$3]; - case 5: - var - rest$4 = param[1], - match$4 = fmtty_rel_det(rest$4), - de$4 = match$4[4], - ed$4 = match$4[3], - af$4 = match$4[2], - fa$4 = match$4[1], - _dn_ = function(param){af$4(0); return 0;}; - return [0, function(param){fa$4(0); return 0;}, _dn_, ed$4, de$4]; - case 6: - var - rest$5 = param[1], - match$5 = fmtty_rel_det(rest$5), - de$5 = match$5[4], - ed$5 = match$5[3], - af$5 = match$5[2], - fa$5 = match$5[1], - _do_ = function(param){af$5(0); return 0;}; - return [0, function(param){fa$5(0); return 0;}, _do_, ed$5, de$5]; - case 7: - var - rest$6 = param[1], - match$6 = fmtty_rel_det(rest$6), - de$6 = match$6[4], - ed$6 = match$6[3], - af$6 = match$6[2], - fa$6 = match$6[1], - _dp_ = function(param){af$6(0); return 0;}; - return [0, function(param){fa$6(0); return 0;}, _dp_, ed$6, de$6]; - case 8: - var - rest$7 = param[2], - match$7 = fmtty_rel_det(rest$7), - de$7 = match$7[4], - ed$7 = match$7[3], - af$7 = match$7[2], - fa$7 = match$7[1], - _dq_ = function(param){af$7(0); return 0;}; - return [0, function(param){fa$7(0); return 0;}, _dq_, ed$7, de$7]; - case 9: - var - rest$8 = param[3], - ty2 = param[2], - ty1 = param[1], - match$8 = fmtty_rel_det(rest$8), - de$8 = match$8[4], - ed$8 = match$8[3], - af$8 = match$8[2], - fa$8 = match$8[1], - ty = trans(symm(ty1), ty2), - match$9 = fmtty_rel_det(ty), - jd = match$9[4], - dj = match$9[3], - ga = match$9[2], - ag = match$9[1], - _dr_ = function(param){jd(0); de$8(0); return 0;}, - _ds_ = function(param){ed$8(0); dj(0); return 0;}, - _dt_ = function(param){ga(0); af$8(0); return 0;}; - return [0, - function(param){fa$8(0); ag(0); return 0;}, - _dt_, - _ds_, - _dr_]; - case 10: - var - rest$9 = param[1], - match$10 = fmtty_rel_det(rest$9), - de$9 = match$10[4], - ed$9 = match$10[3], - af$9 = match$10[2], - fa$9 = match$10[1], - _du_ = function(param){af$9(0); return 0;}; - return [0, function(param){fa$9(0); return 0;}, _du_, ed$9, de$9]; - case 11: - var - rest$10 = param[1], - match$11 = fmtty_rel_det(rest$10), - de$10 = match$11[4], - ed$10 = match$11[3], - af$10 = match$11[2], - fa$10 = match$11[1], - _dv_ = function(param){af$10(0); return 0;}; - return [0, function(param){fa$10(0); return 0;}, _dv_, ed$10, de$10]; - case 12: - var - rest$11 = param[1], - match$12 = fmtty_rel_det(rest$11), - de$11 = match$12[4], - ed$11 = match$12[3], - af$11 = match$12[2], - fa$11 = match$12[1], - _dw_ = function(param){af$11(0); return 0;}; - return [0, function(param){fa$11(0); return 0;}, _dw_, ed$11, de$11]; - case 13: - var - rest$12 = param[1], - match$13 = fmtty_rel_det(rest$12), - de$12 = match$13[4], - ed$12 = match$13[3], - af$12 = match$13[2], - fa$12 = match$13[1], - _dx_ = function(param){de$12(0); return 0;}, - _dy_ = function(param){ed$12(0); return 0;}, - _dz_ = function(param){af$12(0); return 0;}; - return [0, function(param){fa$12(0); return 0;}, _dz_, _dy_, _dx_]; - default: - var - rest$13 = param[1], - match$14 = fmtty_rel_det(rest$13), - de$13 = match$14[4], - ed$13 = match$14[3], - af$13 = match$14[2], - fa$13 = match$14[1], - _dA_ = function(param){de$13(0); return 0;}, - _dB_ = function(param){ed$13(0); return 0;}, - _dC_ = function(param){af$13(0); return 0;}; - return [0, function(param){fa$13(0); return 0;}, _dC_, _dB_, _dA_]; - } - function _df_(param){return 0;} - function _dg_(param){return 0;} - function _dh_(param){return 0;} - return [0, function(param){return 0;}, _dh_, _dg_, _df_]; - } - function trans(ty1, ty2){ - var switch$0 = 0; - if(typeof ty1 === "number"){ - if(typeof ty2 === "number") return 0; - switch(ty2[0]){ - case 10: break; - case 11: - switch$0 = 1; break; - case 12: - switch$0 = 2; break; - case 13: - switch$0 = 3; break; - case 14: - switch$0 = 4; break; - case 8: - switch$0 = 5; break; - case 9: - switch$0 = 6; break; - default: - throw caml_maybe_attach_backtrace([0, Assert_failure, _b_], 1); - } - } - else - switch(ty1[0]){ - case 0: - var rest1 = ty1[1], switch$1 = 0; - if(typeof ty2 === "number") - switch$1 = 1; - else - switch(ty2[0]){ - case 0: - var rest2 = ty2[1]; return [0, trans(rest1, rest2)]; - case 8: - switch$0 = 5; break; - case 9: - switch$0 = 6; break; - case 10: break; - case 11: - switch$0 = 1; break; - case 12: - switch$0 = 2; break; - case 13: - switch$0 = 3; break; - case 14: - switch$0 = 4; break; - default: switch$1 = 1; - } - if(switch$1) switch$0 = 7; - break; - case 1: - var rest1$0 = ty1[1], switch$2 = 0; - if(typeof ty2 === "number") - switch$2 = 1; - else - switch(ty2[0]){ - case 1: - var rest2$0 = ty2[1]; return [1, trans(rest1$0, rest2$0)]; - case 8: - switch$0 = 5; break; - case 9: - switch$0 = 6; break; - case 10: break; - case 11: - switch$0 = 1; break; - case 12: - switch$0 = 2; break; - case 13: - switch$0 = 3; break; - case 14: - switch$0 = 4; break; - default: switch$2 = 1; - } - if(switch$2) switch$0 = 7; - break; - case 2: - var rest1$1 = ty1[1], switch$3 = 0; - if(typeof ty2 === "number") - switch$3 = 1; - else - switch(ty2[0]){ - case 2: - var rest2$1 = ty2[1]; return [2, trans(rest1$1, rest2$1)]; - case 8: - switch$0 = 5; break; - case 9: - switch$0 = 6; break; - case 10: break; - case 11: - switch$0 = 1; break; - case 12: - switch$0 = 2; break; - case 13: - switch$0 = 3; break; - case 14: - switch$0 = 4; break; - default: switch$3 = 1; - } - if(switch$3) switch$0 = 7; - break; - case 3: - var rest1$2 = ty1[1], switch$4 = 0; - if(typeof ty2 === "number") - switch$4 = 1; - else - switch(ty2[0]){ - case 3: - var rest2$2 = ty2[1]; return [3, trans(rest1$2, rest2$2)]; - case 8: - switch$0 = 5; break; - case 9: - switch$0 = 6; break; - case 10: break; - case 11: - switch$0 = 1; break; - case 12: - switch$0 = 2; break; - case 13: - switch$0 = 3; break; - case 14: - switch$0 = 4; break; - default: switch$4 = 1; - } - if(switch$4) switch$0 = 7; - break; - case 4: - var rest1$3 = ty1[1], switch$5 = 0; - if(typeof ty2 === "number") - switch$5 = 1; - else - switch(ty2[0]){ - case 4: - var rest2$3 = ty2[1]; return [4, trans(rest1$3, rest2$3)]; - case 8: - switch$0 = 5; break; - case 9: - switch$0 = 6; break; - case 10: break; - case 11: - switch$0 = 1; break; - case 12: - switch$0 = 2; break; - case 13: - switch$0 = 3; break; - case 14: - switch$0 = 4; break; - default: switch$5 = 1; - } - if(switch$5) switch$0 = 7; - break; - case 5: - var rest1$4 = ty1[1], switch$6 = 0; - if(typeof ty2 === "number") - switch$6 = 1; - else - switch(ty2[0]){ - case 5: - var rest2$4 = ty2[1]; return [5, trans(rest1$4, rest2$4)]; - case 8: - switch$0 = 5; break; - case 9: - switch$0 = 6; break; - case 10: break; - case 11: - switch$0 = 1; break; - case 12: - switch$0 = 2; break; - case 13: - switch$0 = 3; break; - case 14: - switch$0 = 4; break; - default: switch$6 = 1; - } - if(switch$6) switch$0 = 7; - break; - case 6: - var rest1$5 = ty1[1], switch$7 = 0; - if(typeof ty2 === "number") - switch$7 = 1; - else - switch(ty2[0]){ - case 6: - var rest2$5 = ty2[1]; return [6, trans(rest1$5, rest2$5)]; - case 8: - switch$0 = 5; break; - case 9: - switch$0 = 6; break; - case 10: break; - case 11: - switch$0 = 1; break; - case 12: - switch$0 = 2; break; - case 13: - switch$0 = 3; break; - case 14: - switch$0 = 4; break; - default: switch$7 = 1; - } - if(switch$7) switch$0 = 7; - break; - case 7: - var rest1$6 = ty1[1], switch$8 = 0; - if(typeof ty2 === "number") - switch$8 = 1; - else - switch(ty2[0]){ - case 7: - var rest2$6 = ty2[1]; return [7, trans(rest1$6, rest2$6)]; - case 8: - switch$0 = 5; break; - case 9: - switch$0 = 6; break; - case 10: break; - case 11: - switch$0 = 1; break; - case 12: - switch$0 = 2; break; - case 13: - switch$0 = 3; break; - case 14: - switch$0 = 4; break; - default: switch$8 = 1; - } - if(switch$8) switch$0 = 7; - break; - case 8: - var rest1$7 = ty1[2], ty1$0 = ty1[1], switch$9 = 0; - if(typeof ty2 === "number") - switch$9 = 1; - else - switch(ty2[0]){ - case 8: - var - rest2$7 = ty2[2], - ty2$0 = ty2[1], - _de_ = trans(rest1$7, rest2$7); - return [8, trans(ty1$0, ty2$0), _de_]; - case 10: break; - case 11: - switch$0 = 1; break; - case 12: - switch$0 = 2; break; - case 13: - switch$0 = 3; break; - case 14: - switch$0 = 4; break; - default: switch$9 = 1; - } - if(switch$9) - throw caml_maybe_attach_backtrace([0, Assert_failure, _k_], 1); - break; - case 9: - var rest1$8 = ty1[3], ty12 = ty1[2], ty11 = ty1[1], switch$10 = 0; - if(typeof ty2 === "number") - switch$10 = 1; - else - switch(ty2[0]){ - case 8: - switch$0 = 5; break; - case 9: - var - rest2$8 = ty2[3], - ty22 = ty2[2], - ty21 = ty2[1], - ty = trans(symm(ty12), ty21), - match = fmtty_rel_det(ty), - f4 = match[4], - f2 = match[2]; - f2(0); - f4(0); - return [9, ty11, ty22, trans(rest1$8, rest2$8)]; - case 10: break; - case 11: - switch$0 = 1; break; - case 12: - switch$0 = 2; break; - case 13: - switch$0 = 3; break; - case 14: - switch$0 = 4; break; - default: switch$10 = 1; - } - if(switch$10) - throw caml_maybe_attach_backtrace([0, Assert_failure, _l_], 1); - break; - case 10: - var rest1$9 = ty1[1]; - if(typeof ty2 !== "number" && 10 === ty2[0]){ - var rest2$9 = ty2[1]; - return [10, trans(rest1$9, rest2$9)]; - } - throw caml_maybe_attach_backtrace([0, Assert_failure, _m_], 1); - case 11: - var rest1$10 = ty1[1], switch$11 = 0; - if(typeof ty2 === "number") - switch$11 = 1; - else - switch(ty2[0]){ - case 10: break; - case 11: - var rest2$10 = ty2[1]; return [11, trans(rest1$10, rest2$10)]; - default: switch$11 = 1; - } - if(switch$11) - throw caml_maybe_attach_backtrace([0, Assert_failure, _n_], 1); - break; - case 12: - var rest1$11 = ty1[1], switch$12 = 0; - if(typeof ty2 === "number") - switch$12 = 1; - else - switch(ty2[0]){ - case 10: break; - case 11: - switch$0 = 1; break; - case 12: - var rest2$11 = ty2[1]; return [12, trans(rest1$11, rest2$11)]; - default: switch$12 = 1; - } - if(switch$12) - throw caml_maybe_attach_backtrace([0, Assert_failure, _o_], 1); - break; - case 13: - var rest1$12 = ty1[1], switch$13 = 0; - if(typeof ty2 === "number") - switch$13 = 1; - else - switch(ty2[0]){ - case 10: break; - case 11: - switch$0 = 1; break; - case 12: - switch$0 = 2; break; - case 13: - var rest2$12 = ty2[1]; return [13, trans(rest1$12, rest2$12)]; - default: switch$13 = 1; - } - if(switch$13) - throw caml_maybe_attach_backtrace([0, Assert_failure, _p_], 1); - break; - default: - var rest1$13 = ty1[1], switch$14 = 0; - if(typeof ty2 === "number") - switch$14 = 1; - else - switch(ty2[0]){ - case 10: break; - case 11: - switch$0 = 1; break; - case 12: - switch$0 = 2; break; - case 13: - switch$0 = 3; break; - case 14: - var rest2$13 = ty2[1]; return [14, trans(rest1$13, rest2$13)]; - default: switch$14 = 1; - } - if(switch$14) - throw caml_maybe_attach_backtrace([0, Assert_failure, _q_], 1); - } - switch(switch$0){ - case 0: - throw caml_maybe_attach_backtrace([0, Assert_failure, _e_], 1); - case 1: - throw caml_maybe_attach_backtrace([0, Assert_failure, _f_], 1); - case 2: - throw caml_maybe_attach_backtrace([0, Assert_failure, _g_], 1); - case 3: - throw caml_maybe_attach_backtrace([0, Assert_failure, _h_], 1); - case 4: - throw caml_maybe_attach_backtrace([0, Assert_failure, _i_], 1); - case 5: - throw caml_maybe_attach_backtrace([0, Assert_failure, _c_], 1); - case 6: - throw caml_maybe_attach_backtrace([0, Assert_failure, _d_], 1); - default: throw caml_maybe_attach_backtrace([0, Assert_failure, _j_], 1); - } - } - function fmtty_of_padding_fmtty(pad, fmtty){ - return typeof pad === "number" ? fmtty : 0 === pad[0] ? fmtty : [2, fmtty]; - } - function fmtty_of_custom(arity, fmtty){ - if(! arity) return fmtty; - var arity$0 = arity[1]; - return [12, fmtty_of_custom(arity$0, fmtty)]; - } - function fmtty_of_fmt(fmtty){ - var fmtty$0 = fmtty; - for(;;){ - if(typeof fmtty$0 === "number") return 0; - switch(fmtty$0[0]){ - case 0: - var rest = fmtty$0[1]; return [0, fmtty_of_fmt(rest)]; - case 1: - var rest$0 = fmtty$0[1]; return [0, fmtty_of_fmt(rest$0)]; - case 2: - var rest$1 = fmtty$0[2], pad = fmtty$0[1]; - return fmtty_of_padding_fmtty(pad, [1, fmtty_of_fmt(rest$1)]); - case 3: - var rest$2 = fmtty$0[2], pad$0 = fmtty$0[1]; - return fmtty_of_padding_fmtty(pad$0, [1, fmtty_of_fmt(rest$2)]); - case 4: - var - rest$3 = fmtty$0[4], - prec = fmtty$0[3], - pad$1 = fmtty$0[2], - ty_rest = fmtty_of_fmt(rest$3), - prec_ty = fmtty_of_precision_fmtty(prec, [2, ty_rest]); - return fmtty_of_padding_fmtty(pad$1, prec_ty); - case 5: - var - rest$4 = fmtty$0[4], - prec$0 = fmtty$0[3], - pad$2 = fmtty$0[2], - ty_rest$0 = fmtty_of_fmt(rest$4), - prec_ty$0 = fmtty_of_precision_fmtty(prec$0, [3, ty_rest$0]); - return fmtty_of_padding_fmtty(pad$2, prec_ty$0); - case 6: - var - rest$5 = fmtty$0[4], - prec$1 = fmtty$0[3], - pad$3 = fmtty$0[2], - ty_rest$1 = fmtty_of_fmt(rest$5), - prec_ty$1 = fmtty_of_precision_fmtty(prec$1, [4, ty_rest$1]); - return fmtty_of_padding_fmtty(pad$3, prec_ty$1); - case 7: - var - rest$6 = fmtty$0[4], - prec$2 = fmtty$0[3], - pad$4 = fmtty$0[2], - ty_rest$2 = fmtty_of_fmt(rest$6), - prec_ty$2 = fmtty_of_precision_fmtty(prec$2, [5, ty_rest$2]); - return fmtty_of_padding_fmtty(pad$4, prec_ty$2); - case 8: - var - rest$7 = fmtty$0[4], - prec$3 = fmtty$0[3], - pad$5 = fmtty$0[2], - ty_rest$3 = fmtty_of_fmt(rest$7), - prec_ty$3 = fmtty_of_precision_fmtty(prec$3, [6, ty_rest$3]); - return fmtty_of_padding_fmtty(pad$5, prec_ty$3); - case 9: - var rest$8 = fmtty$0[2], pad$6 = fmtty$0[1]; - return fmtty_of_padding_fmtty(pad$6, [7, fmtty_of_fmt(rest$8)]); - case 10: - var fmtty$1 = fmtty$0[1], fmtty$0 = fmtty$1; continue; - case 11: - var fmtty$2 = fmtty$0[2], fmtty$0 = fmtty$2; continue; - case 12: - var fmtty$3 = fmtty$0[2], fmtty$0 = fmtty$3; continue; - case 13: - var rest$9 = fmtty$0[3], ty = fmtty$0[2]; - return [8, ty, fmtty_of_fmt(rest$9)]; - case 14: - var rest$10 = fmtty$0[3], ty$0 = fmtty$0[2]; - return [9, ty$0, ty$0, fmtty_of_fmt(rest$10)]; - case 15: - var rest$11 = fmtty$0[1]; return [10, fmtty_of_fmt(rest$11)]; - case 16: - var rest$12 = fmtty$0[1]; return [11, fmtty_of_fmt(rest$12)]; - case 17: - var fmtty$4 = fmtty$0[2], fmtty$0 = fmtty$4; continue; - case 18: - var - rest$13 = fmtty$0[2], - formatting_gen = fmtty$0[1], - _db_ = fmtty_of_fmt(rest$13); - if(0 === formatting_gen[0]) - var fmt = formatting_gen[1][1], _dc_ = fmtty_of_fmt(fmt); - else - var fmt$0 = formatting_gen[1][1], _dc_ = fmtty_of_fmt(fmt$0); - return caml_call2(CamlinternalFormatBasics[1], _dc_, _db_); - case 19: - var rest$14 = fmtty$0[1]; return [13, fmtty_of_fmt(rest$14)]; - case 20: - var rest$15 = fmtty$0[3]; return [1, fmtty_of_fmt(rest$15)]; - case 21: - var rest$16 = fmtty$0[2]; return [2, fmtty_of_fmt(rest$16)]; - case 22: - var rest$17 = fmtty$0[1]; return [0, fmtty_of_fmt(rest$17)]; - case 23: - var fmtty$5 = fmtty$0[2], ign = fmtty$0[1]; - if(typeof ign === "number") - switch(ign){ - case 0: - var fmtty$0 = fmtty$5; continue; - case 1: - var fmtty$0 = fmtty$5; continue; - case 2: - return [14, fmtty_of_fmt(fmtty$5)]; - default: var fmtty$0 = fmtty$5; continue; - } - switch(ign[0]){ - case 0: - var fmtty$0 = fmtty$5; continue; - case 1: - var fmtty$0 = fmtty$5; continue; - case 2: - var fmtty$0 = fmtty$5; continue; - case 3: - var fmtty$0 = fmtty$5; continue; - case 4: - var fmtty$0 = fmtty$5; continue; - case 5: - var fmtty$0 = fmtty$5; continue; - case 6: - var fmtty$0 = fmtty$5; continue; - case 7: - var fmtty$0 = fmtty$5; continue; - case 8: - var fmtty$0 = fmtty$5; continue; - case 9: - var fmtty$6 = ign[2], _dd_ = fmtty_of_fmt(fmtty$5); - return caml_call2(CamlinternalFormatBasics[1], fmtty$6, _dd_); - case 10: - var fmtty$0 = fmtty$5; continue; - default: var fmtty$0 = fmtty$5; continue; - } - default: - var rest$18 = fmtty$0[3], arity = fmtty$0[1]; - return fmtty_of_custom(arity, fmtty_of_fmt(rest$18)); - } - } - } - function fmtty_of_precision_fmtty(prec, fmtty){ - return typeof prec === "number" ? prec ? [2, fmtty] : fmtty : fmtty; - } - var - Type_mismatch = - [248, cst_CamlinternalFormat_Type_mi, runtime.caml_fresh_oo_id(0)]; - function type_padding(pad, fmtty){ - if(typeof pad === "number") return [0, 0, fmtty]; - if(0 === pad[0]){ - var w = pad[2], padty = pad[1]; - return [0, [0, padty, w], fmtty]; - } - if(typeof fmtty !== "number" && 2 === fmtty[0]){ - var rest = fmtty[1], padty$0 = pad[1]; - return [0, [1, padty$0], rest]; - } - throw caml_maybe_attach_backtrace(Type_mismatch, 1); - } - function type_padprec(pad, prec, fmtty){ - var match = type_padding(pad, fmtty); - if(typeof prec !== "number"){ - var rest$1 = match[2], pad$2 = match[1], p = prec[1]; - return [0, pad$2, [0, p], rest$1]; - } - if(! prec){ - var rest$0 = match[2], pad$1 = match[1]; - return [0, pad$1, 0, rest$0]; - } - var match$0 = match[2]; - if(typeof match$0 !== "number" && 2 === match$0[0]){ - var rest = match$0[1], pad$0 = match[1]; - return [0, pad$0, 1, rest]; - } - throw caml_maybe_attach_backtrace(Type_mismatch, 1); - } - function type_format(fmt, fmtty){ - var _da_ = type_format_gen(fmt, fmtty); - if(typeof _da_[2] !== "number") - throw caml_maybe_attach_backtrace(Type_mismatch, 1); - var fmt$0 = _da_[1]; - return fmt$0; - } - function type_ignored_param_one(ign, fmt, fmtty){ - var - match = type_format_gen(fmt, fmtty), - fmtty$0 = match[2], - fmt$0 = match[1]; - return [0, [23, ign, fmt$0], fmtty$0]; - } - function type_format_gen(fmt, fmtty0){ - if(typeof fmt === "number") return [0, 0, fmtty0]; - switch(fmt[0]){ - case 0: - if(typeof fmtty0 !== "number" && 0 === fmtty0[0]){ - var - fmtty_rest = fmtty0[1], - fmt_rest = fmt[1], - match = type_format_gen(fmt_rest, fmtty_rest), - fmtty = match[2], - fmt$0 = match[1]; - return [0, [0, fmt$0], fmtty]; - } - break; - case 1: - if(typeof fmtty0 !== "number" && 0 === fmtty0[0]){ - var - fmtty_rest$0 = fmtty0[1], - fmt_rest$0 = fmt[1], - match$0 = type_format_gen(fmt_rest$0, fmtty_rest$0), - fmtty$0 = match$0[2], - fmt$1 = match$0[1]; - return [0, [1, fmt$1], fmtty$0]; - } - break; - case 2: - var - fmt_rest$1 = fmt[2], - pad = fmt[1], - match$1 = type_padding(pad, fmtty0), - pad$0 = match$1[1], - match$2 = match$1[2]; - if(typeof match$2 !== "number" && 1 === match$2[0]){ - var - fmtty_rest$1 = match$2[1], - match$3 = type_format_gen(fmt_rest$1, fmtty_rest$1), - fmtty$1 = match$3[2], - fmt$2 = match$3[1]; - return [0, [2, pad$0, fmt$2], fmtty$1]; - } - throw caml_maybe_attach_backtrace(Type_mismatch, 1); - case 3: - var - fmt_rest$2 = fmt[2], - pad$1 = fmt[1], - match$4 = type_padding(pad$1, fmtty0), - pad$2 = match$4[1], - match$5 = match$4[2]; - if(typeof match$5 !== "number" && 1 === match$5[0]){ - var - fmtty_rest$2 = match$5[1], - match$6 = type_format_gen(fmt_rest$2, fmtty_rest$2), - fmtty$2 = match$6[2], - fmt$3 = match$6[1]; - return [0, [3, pad$2, fmt$3], fmtty$2]; - } - throw caml_maybe_attach_backtrace(Type_mismatch, 1); - case 4: - var - fmt_rest$3 = fmt[4], - prec = fmt[3], - pad$3 = fmt[2], - iconv = fmt[1], - match$7 = type_padprec(pad$3, prec, fmtty0), - pad$4 = match$7[1], - match$8 = match$7[3]; - if(typeof match$8 !== "number" && 2 === match$8[0]){ - var - fmtty_rest$3 = match$8[1], - prec$0 = match$7[2], - match$9 = type_format_gen(fmt_rest$3, fmtty_rest$3), - fmtty$3 = match$9[2], - fmt$4 = match$9[1]; - return [0, [4, iconv, pad$4, prec$0, fmt$4], fmtty$3]; - } - throw caml_maybe_attach_backtrace(Type_mismatch, 1); - case 5: - var - fmt_rest$4 = fmt[4], - prec$1 = fmt[3], - pad$5 = fmt[2], - iconv$0 = fmt[1], - match$10 = type_padprec(pad$5, prec$1, fmtty0), - pad$6 = match$10[1], - match$11 = match$10[3]; - if(typeof match$11 !== "number" && 3 === match$11[0]){ - var - fmtty_rest$4 = match$11[1], - prec$2 = match$10[2], - match$12 = type_format_gen(fmt_rest$4, fmtty_rest$4), - fmtty$4 = match$12[2], - fmt$5 = match$12[1]; - return [0, [5, iconv$0, pad$6, prec$2, fmt$5], fmtty$4]; - } - throw caml_maybe_attach_backtrace(Type_mismatch, 1); - case 6: - var - fmt_rest$5 = fmt[4], - prec$3 = fmt[3], - pad$7 = fmt[2], - iconv$1 = fmt[1], - match$13 = type_padprec(pad$7, prec$3, fmtty0), - pad$8 = match$13[1], - match$14 = match$13[3]; - if(typeof match$14 !== "number" && 4 === match$14[0]){ - var - fmtty_rest$5 = match$14[1], - prec$4 = match$13[2], - match$15 = type_format_gen(fmt_rest$5, fmtty_rest$5), - fmtty$5 = match$15[2], - fmt$6 = match$15[1]; - return [0, [6, iconv$1, pad$8, prec$4, fmt$6], fmtty$5]; - } - throw caml_maybe_attach_backtrace(Type_mismatch, 1); - case 7: - var - fmt_rest$6 = fmt[4], - prec$5 = fmt[3], - pad$9 = fmt[2], - iconv$2 = fmt[1], - match$16 = type_padprec(pad$9, prec$5, fmtty0), - pad$10 = match$16[1], - match$17 = match$16[3]; - if(typeof match$17 !== "number" && 5 === match$17[0]){ - var - fmtty_rest$6 = match$17[1], - prec$6 = match$16[2], - match$18 = type_format_gen(fmt_rest$6, fmtty_rest$6), - fmtty$6 = match$18[2], - fmt$7 = match$18[1]; - return [0, [7, iconv$2, pad$10, prec$6, fmt$7], fmtty$6]; - } - throw caml_maybe_attach_backtrace(Type_mismatch, 1); - case 8: - var - fmt_rest$7 = fmt[4], - prec$7 = fmt[3], - pad$11 = fmt[2], - fconv = fmt[1], - match$19 = type_padprec(pad$11, prec$7, fmtty0), - pad$12 = match$19[1], - match$20 = match$19[3]; - if(typeof match$20 !== "number" && 6 === match$20[0]){ - var - fmtty_rest$7 = match$20[1], - prec$8 = match$19[2], - match$21 = type_format_gen(fmt_rest$7, fmtty_rest$7), - fmtty$7 = match$21[2], - fmt$8 = match$21[1]; - return [0, [8, fconv, pad$12, prec$8, fmt$8], fmtty$7]; - } - throw caml_maybe_attach_backtrace(Type_mismatch, 1); - case 9: - var - fmt_rest$8 = fmt[2], - pad$13 = fmt[1], - match$22 = type_padding(pad$13, fmtty0), - pad$14 = match$22[1], - match$23 = match$22[2]; - if(typeof match$23 !== "number" && 7 === match$23[0]){ - var - fmtty_rest$8 = match$23[1], - match$24 = type_format_gen(fmt_rest$8, fmtty_rest$8), - fmtty$8 = match$24[2], - fmt$9 = match$24[1]; - return [0, [9, pad$14, fmt$9], fmtty$8]; - } - throw caml_maybe_attach_backtrace(Type_mismatch, 1); - case 10: - var - fmt_rest$9 = fmt[1], - match$25 = type_format_gen(fmt_rest$9, fmtty0), - fmtty$9 = match$25[2], - fmt$10 = match$25[1]; - return [0, [10, fmt$10], fmtty$9]; - case 11: - var - fmt_rest$10 = fmt[2], - str = fmt[1], - match$26 = type_format_gen(fmt_rest$10, fmtty0), - fmtty$10 = match$26[2], - fmt$11 = match$26[1]; - return [0, [11, str, fmt$11], fmtty$10]; - case 12: - var - fmt_rest$11 = fmt[2], - chr = fmt[1], - match$27 = type_format_gen(fmt_rest$11, fmtty0), - fmtty$11 = match$27[2], - fmt$12 = match$27[1]; - return [0, [12, chr, fmt$12], fmtty$11]; - case 13: - if(typeof fmtty0 !== "number" && 8 === fmtty0[0]){ - var - fmtty_rest$9 = fmtty0[2], - sub_fmtty = fmtty0[1], - fmt_rest$12 = fmt[3], - sub_fmtty$0 = fmt[2], - pad_opt = fmt[1]; - if(caml_notequal([0, sub_fmtty$0], [0, sub_fmtty])) - throw caml_maybe_attach_backtrace(Type_mismatch, 1); - var - match$28 = type_format_gen(fmt_rest$12, fmtty_rest$9), - fmtty$12 = match$28[2], - fmt$13 = match$28[1]; - return [0, [13, pad_opt, sub_fmtty, fmt$13], fmtty$12]; - } - break; - case 14: - if(typeof fmtty0 !== "number" && 9 === fmtty0[0]){ - var - fmtty_rest$10 = fmtty0[3], - sub_fmtty1 = fmtty0[1], - fmt_rest$13 = fmt[3], - sub_fmtty$1 = fmt[2], - pad_opt$0 = fmt[1], - _c__ = [0, caml_call1(CamlinternalFormatBasics[2], sub_fmtty1)]; - if - (caml_notequal - ([0, caml_call1(CamlinternalFormatBasics[2], sub_fmtty$1)], _c__)) - throw caml_maybe_attach_backtrace(Type_mismatch, 1); - var - match$29 = - type_format_gen - (fmt_rest$13, - caml_call1(CamlinternalFormatBasics[2], fmtty_rest$10)), - fmtty$13 = match$29[2], - fmt$14 = match$29[1]; - return [0, [14, pad_opt$0, sub_fmtty1, fmt$14], fmtty$13]; - } - break; - case 15: - if(typeof fmtty0 !== "number" && 10 === fmtty0[0]){ - var - fmtty_rest$11 = fmtty0[1], - fmt_rest$14 = fmt[1], - match$30 = type_format_gen(fmt_rest$14, fmtty_rest$11), - fmtty$14 = match$30[2], - fmt$15 = match$30[1]; - return [0, [15, fmt$15], fmtty$14]; - } - break; - case 16: - if(typeof fmtty0 !== "number" && 11 === fmtty0[0]){ - var - fmtty_rest$12 = fmtty0[1], - fmt_rest$15 = fmt[1], - match$31 = type_format_gen(fmt_rest$15, fmtty_rest$12), - fmtty$15 = match$31[2], - fmt$16 = match$31[1]; - return [0, [16, fmt$16], fmtty$15]; - } - break; - case 17: - var - fmt_rest$16 = fmt[2], - formatting_lit = fmt[1], - match$32 = type_format_gen(fmt_rest$16, fmtty0), - fmtty$16 = match$32[2], - fmt$17 = match$32[1]; - return [0, [17, formatting_lit, fmt$17], fmtty$16]; - case 18: - var fmt_rest$17 = fmt[2], formatting_gen = fmt[1]; - if(0 === formatting_gen[0]){ - var - match$36 = formatting_gen[1], - str$0 = match$36[2], - fmt1 = match$36[1], - match$37 = type_format_gen(fmt1, fmtty0), - fmtty2 = match$37[2], - fmt2 = match$37[1], - match$38 = type_format_gen(fmt_rest$17, fmtty2), - fmtty3 = match$38[2], - fmt3 = match$38[1]; - return [0, [18, [0, [0, fmt2, str$0]], fmt3], fmtty3]; - } - var - match$39 = formatting_gen[1], - str$1 = match$39[2], - fmt1$0 = match$39[1], - match$40 = type_format_gen(fmt1$0, fmtty0), - fmtty2$0 = match$40[2], - fmt2$0 = match$40[1], - match$41 = type_format_gen(fmt_rest$17, fmtty2$0), - fmtty3$0 = match$41[2], - fmt3$0 = match$41[1]; - return [0, [18, [1, [0, fmt2$0, str$1]], fmt3$0], fmtty3$0]; - case 19: - if(typeof fmtty0 !== "number" && 13 === fmtty0[0]){ - var - fmtty_rest$13 = fmtty0[1], - fmt_rest$18 = fmt[1], - match$33 = type_format_gen(fmt_rest$18, fmtty_rest$13), - fmtty$17 = match$33[2], - fmt$18 = match$33[1]; - return [0, [19, fmt$18], fmtty$17]; - } - break; - case 20: - if(typeof fmtty0 !== "number" && 1 === fmtty0[0]){ - var - fmtty_rest$14 = fmtty0[1], - fmt_rest$19 = fmt[3], - char_set = fmt[2], - width_opt = fmt[1], - match$34 = type_format_gen(fmt_rest$19, fmtty_rest$14), - fmtty$18 = match$34[2], - fmt$19 = match$34[1]; - return [0, [20, width_opt, char_set, fmt$19], fmtty$18]; - } - break; - case 21: - if(typeof fmtty0 !== "number" && 2 === fmtty0[0]){ - var - fmtty_rest$15 = fmtty0[1], - fmt_rest$20 = fmt[2], - counter = fmt[1], - match$35 = type_format_gen(fmt_rest$20, fmtty_rest$15), - fmtty$19 = match$35[2], - fmt$20 = match$35[1]; - return [0, [21, counter, fmt$20], fmtty$19]; - } - break; - case 23: - var rest = fmt[2], ign = fmt[1]; - if(typeof ign !== "number") - switch(ign[0]){ - case 0: - return type_ignored_param_one(ign, rest, fmtty0); - case 1: - return type_ignored_param_one(ign, rest, fmtty0); - case 2: - return type_ignored_param_one(ign, rest, fmtty0); - case 3: - return type_ignored_param_one(ign, rest, fmtty0); - case 4: - return type_ignored_param_one(ign, rest, fmtty0); - case 5: - return type_ignored_param_one(ign, rest, fmtty0); - case 6: - return type_ignored_param_one(ign, rest, fmtty0); - case 7: - return type_ignored_param_one(ign, rest, fmtty0); - case 8: - var sub_fmtty$2 = ign[2], pad_opt$1 = ign[1]; - return type_ignored_param_one - ([8, pad_opt$1, sub_fmtty$2], rest, fmtty0); - case 9: - var - sub_fmtty$3 = ign[2], - pad_opt$2 = ign[1], - _c$_ = type_ignored_format_substituti(sub_fmtty$3, rest, fmtty0), - match$43 = _c$_[2], - fmtty$21 = match$43[2], - fmt$22 = match$43[1], - sub_fmtty$4 = _c$_[1]; - return [0, [23, [9, pad_opt$2, sub_fmtty$4], fmt$22], fmtty$21]; - case 10: - return type_ignored_param_one(ign, rest, fmtty0); - default: return type_ignored_param_one(ign, rest, fmtty0); - } - switch(ign){ - case 0: - return type_ignored_param_one(ign, rest, fmtty0); - case 1: - return type_ignored_param_one(ign, rest, fmtty0); - case 2: - if(typeof fmtty0 !== "number" && 14 === fmtty0[0]){ - var - fmtty_rest$16 = fmtty0[1], - match$42 = type_format_gen(rest, fmtty_rest$16), - fmtty$20 = match$42[2], - fmt$21 = match$42[1]; - return [0, [23, 2, fmt$21], fmtty$20]; - } - throw caml_maybe_attach_backtrace(Type_mismatch, 1); - default: return type_ignored_param_one(ign, rest, fmtty0); - } - } - throw caml_maybe_attach_backtrace(Type_mismatch, 1); - } - function type_ignored_format_substituti(sub_fmtty, fmt, fmtty){ - if(typeof sub_fmtty === "number") - return [0, 0, type_format_gen(fmt, fmtty)]; - switch(sub_fmtty[0]){ - case 0: - if(typeof fmtty !== "number" && 0 === fmtty[0]){ - var - fmtty_rest = fmtty[1], - sub_fmtty_rest = sub_fmtty[1], - match = - type_ignored_format_substituti(sub_fmtty_rest, fmt, fmtty_rest), - fmt$0 = match[2], - sub_fmtty_rest$0 = match[1]; - return [0, [0, sub_fmtty_rest$0], fmt$0]; - } - break; - case 1: - if(typeof fmtty !== "number" && 1 === fmtty[0]){ - var - fmtty_rest$0 = fmtty[1], - sub_fmtty_rest$1 = sub_fmtty[1], - match$0 = - type_ignored_format_substituti(sub_fmtty_rest$1, fmt, fmtty_rest$0), - fmt$1 = match$0[2], - sub_fmtty_rest$2 = match$0[1]; - return [0, [1, sub_fmtty_rest$2], fmt$1]; - } - break; - case 2: - if(typeof fmtty !== "number" && 2 === fmtty[0]){ - var - fmtty_rest$1 = fmtty[1], - sub_fmtty_rest$3 = sub_fmtty[1], - match$1 = - type_ignored_format_substituti(sub_fmtty_rest$3, fmt, fmtty_rest$1), - fmt$2 = match$1[2], - sub_fmtty_rest$4 = match$1[1]; - return [0, [2, sub_fmtty_rest$4], fmt$2]; - } - break; - case 3: - if(typeof fmtty !== "number" && 3 === fmtty[0]){ - var - fmtty_rest$2 = fmtty[1], - sub_fmtty_rest$5 = sub_fmtty[1], - match$2 = - type_ignored_format_substituti(sub_fmtty_rest$5, fmt, fmtty_rest$2), - fmt$3 = match$2[2], - sub_fmtty_rest$6 = match$2[1]; - return [0, [3, sub_fmtty_rest$6], fmt$3]; - } - break; - case 4: - if(typeof fmtty !== "number" && 4 === fmtty[0]){ - var - fmtty_rest$3 = fmtty[1], - sub_fmtty_rest$7 = sub_fmtty[1], - match$3 = - type_ignored_format_substituti(sub_fmtty_rest$7, fmt, fmtty_rest$3), - fmt$4 = match$3[2], - sub_fmtty_rest$8 = match$3[1]; - return [0, [4, sub_fmtty_rest$8], fmt$4]; - } - break; - case 5: - if(typeof fmtty !== "number" && 5 === fmtty[0]){ - var - fmtty_rest$4 = fmtty[1], - sub_fmtty_rest$9 = sub_fmtty[1], - match$4 = - type_ignored_format_substituti(sub_fmtty_rest$9, fmt, fmtty_rest$4), - fmt$5 = match$4[2], - sub_fmtty_rest$10 = match$4[1]; - return [0, [5, sub_fmtty_rest$10], fmt$5]; - } - break; - case 6: - if(typeof fmtty !== "number" && 6 === fmtty[0]){ - var - fmtty_rest$5 = fmtty[1], - sub_fmtty_rest$11 = sub_fmtty[1], - match$5 = - type_ignored_format_substituti - (sub_fmtty_rest$11, fmt, fmtty_rest$5), - fmt$6 = match$5[2], - sub_fmtty_rest$12 = match$5[1]; - return [0, [6, sub_fmtty_rest$12], fmt$6]; - } - break; - case 7: - if(typeof fmtty !== "number" && 7 === fmtty[0]){ - var - fmtty_rest$6 = fmtty[1], - sub_fmtty_rest$13 = sub_fmtty[1], - match$6 = - type_ignored_format_substituti - (sub_fmtty_rest$13, fmt, fmtty_rest$6), - fmt$7 = match$6[2], - sub_fmtty_rest$14 = match$6[1]; - return [0, [7, sub_fmtty_rest$14], fmt$7]; - } - break; - case 8: - if(typeof fmtty !== "number" && 8 === fmtty[0]){ - var - fmtty_rest$7 = fmtty[2], - sub2_fmtty = fmtty[1], - sub_fmtty_rest$15 = sub_fmtty[2], - sub2_fmtty$0 = sub_fmtty[1]; - if(caml_notequal([0, sub2_fmtty$0], [0, sub2_fmtty])) - throw caml_maybe_attach_backtrace(Type_mismatch, 1); - var - match$7 = - type_ignored_format_substituti - (sub_fmtty_rest$15, fmt, fmtty_rest$7), - fmt$8 = match$7[2], - sub_fmtty_rest$16 = match$7[1]; - return [0, [8, sub2_fmtty, sub_fmtty_rest$16], fmt$8]; - } - break; - case 9: - if(typeof fmtty !== "number" && 9 === fmtty[0]){ - var - fmtty_rest$8 = fmtty[3], - sub2_fmtty$1 = fmtty[2], - sub1_fmtty = fmtty[1], - sub_fmtty_rest$17 = sub_fmtty[3], - sub2_fmtty$2 = sub_fmtty[2], - sub1_fmtty$0 = sub_fmtty[1], - _c8_ = [0, caml_call1(CamlinternalFormatBasics[2], sub1_fmtty)]; - if - (caml_notequal - ([0, caml_call1(CamlinternalFormatBasics[2], sub1_fmtty$0)], _c8_)) - throw caml_maybe_attach_backtrace(Type_mismatch, 1); - var _c9_ = [0, caml_call1(CamlinternalFormatBasics[2], sub2_fmtty$1)]; - if - (caml_notequal - ([0, caml_call1(CamlinternalFormatBasics[2], sub2_fmtty$2)], _c9_)) - throw caml_maybe_attach_backtrace(Type_mismatch, 1); - var - sub_fmtty$0 = trans(symm(sub1_fmtty), sub2_fmtty$1), - match$8 = fmtty_rel_det(sub_fmtty$0), - f4 = match$8[4], - f2 = match$8[2]; - f2(0); - f4(0); - var - match$9 = - type_ignored_format_substituti - (caml_call1(CamlinternalFormatBasics[2], sub_fmtty_rest$17), - fmt, - fmtty_rest$8), - fmt$9 = match$9[2], - sub_fmtty_rest$18 = match$9[1]; - return [0, - [9, sub1_fmtty, sub2_fmtty$1, symm(sub_fmtty_rest$18)], - fmt$9]; - } - break; - case 10: - if(typeof fmtty !== "number" && 10 === fmtty[0]){ - var - fmtty_rest$9 = fmtty[1], - sub_fmtty_rest$19 = sub_fmtty[1], - match$10 = - type_ignored_format_substituti - (sub_fmtty_rest$19, fmt, fmtty_rest$9), - fmt$10 = match$10[2], - sub_fmtty_rest$20 = match$10[1]; - return [0, [10, sub_fmtty_rest$20], fmt$10]; - } - break; - case 11: - if(typeof fmtty !== "number" && 11 === fmtty[0]){ - var - fmtty_rest$10 = fmtty[1], - sub_fmtty_rest$21 = sub_fmtty[1], - match$11 = - type_ignored_format_substituti - (sub_fmtty_rest$21, fmt, fmtty_rest$10), - fmt$11 = match$11[2], - sub_fmtty_rest$22 = match$11[1]; - return [0, [11, sub_fmtty_rest$22], fmt$11]; - } - break; - case 13: - if(typeof fmtty !== "number" && 13 === fmtty[0]){ - var - fmtty_rest$11 = fmtty[1], - sub_fmtty_rest$23 = sub_fmtty[1], - match$12 = - type_ignored_format_substituti - (sub_fmtty_rest$23, fmt, fmtty_rest$11), - fmt$12 = match$12[2], - sub_fmtty_rest$24 = match$12[1]; - return [0, [13, sub_fmtty_rest$24], fmt$12]; - } - break; - case 14: - if(typeof fmtty !== "number" && 14 === fmtty[0]){ - var - fmtty_rest$12 = fmtty[1], - sub_fmtty_rest$25 = sub_fmtty[1], - match$13 = - type_ignored_format_substituti - (sub_fmtty_rest$25, fmt, fmtty_rest$12), - fmt$13 = match$13[2], - sub_fmtty_rest$26 = match$13[1]; - return [0, [14, sub_fmtty_rest$26], fmt$13]; - } - break; - } - throw caml_maybe_attach_backtrace(Type_mismatch, 1); - } - function recast(fmt, fmtty){ - var _c7_ = symm(fmtty); - return type_format(fmt, caml_call1(CamlinternalFormatBasics[2], _c7_)); - } - function fix_padding(padty, width, str){ - var - len = caml_ml_string_length(str), - padty$0 = 0 <= width ? padty : 0, - width$0 = caml_call1(Stdlib[18], width); - if(width$0 <= len) return str; - var - _c6_ = 2 === padty$0 ? 48 : 32, - res = caml_call2(Stdlib_Bytes[1], width$0, _c6_); - switch(padty$0){ - case 0: - caml_call5(Stdlib_String[48], str, 0, res, 0, len); break; - case 1: - caml_call5(Stdlib_String[48], str, 0, res, width$0 - len | 0, len); - break; - default: - var switch$0 = 0; - if(0 < len){ - var switch$1 = 0; - if - (43 !== caml_string_get(str, 0) - && 45 !== caml_string_get(str, 0) && 32 !== caml_string_get(str, 0)){switch$0 = 1; switch$1 = 1;} - if(! switch$1){ - caml_bytes_set(res, 0, caml_string_get(str, 0)); - caml_call5 - (Stdlib_String[48], - str, - 1, - res, - (width$0 - len | 0) + 1 | 0, - len - 1 | 0); - } - } - else - switch$0 = 1; - if(switch$0){ - var switch$2 = 0; - if(1 < len && 48 === caml_string_get(str, 0)){ - var switch$3 = 0; - if(120 === caml_string_get(str, 1) || 88 === caml_string_get(str, 1)) - switch$3 = 1; - if(switch$3){ - caml_bytes_set(res, 1, caml_string_get(str, 1)); - caml_call5 - (Stdlib_String[48], - str, - 2, - res, - (width$0 - len | 0) + 2 | 0, - len - 2 | 0); - switch$2 = 1; - } - } - if(! switch$2) - caml_call5(Stdlib_String[48], str, 0, res, width$0 - len | 0, len); - } - } - return caml_call1(Stdlib_Bytes[48], res); - } - function fix_int_precision(prec, str){ - var - prec$0 = caml_call1(Stdlib[18], prec), - len = caml_ml_string_length(str), - c = caml_string_get(str, 0), - switch$0 = 0; - if(58 <= c){ - if(71 <= c){ - if(5 >= c - 97 >>> 0) switch$0 = 1; - } - else if(65 <= c) switch$0 = 1; - } - else{ - var switch$1 = 0; - if(32 === c) - switch$1 = 1; - else if(43 <= c) - switch(c - 43 | 0){ - case 5: - if(len < (prec$0 + 2 | 0) && 1 < len){ - var switch$2 = 0; - if - (120 !== caml_string_get(str, 1) && 88 !== caml_string_get(str, 1)) - switch$2 = 1; - if(! switch$2){ - var res$1 = caml_call2(Stdlib_Bytes[1], prec$0 + 2 | 0, 48); - caml_bytes_set(res$1, 1, caml_string_get(str, 1)); - caml_call5 - (Stdlib_String[48], - str, - 2, - res$1, - (prec$0 - len | 0) + 4 | 0, - len - 2 | 0); - return caml_call1(Stdlib_Bytes[48], res$1); - } - } - switch$0 = 1; - break; - case 0: - case 2: - switch$1 = 1; break; - case 1: - case 3: - case 4: break; - default: switch$0 = 1; - } - if(switch$1 && len < (prec$0 + 1 | 0)){ - var res$0 = caml_call2(Stdlib_Bytes[1], prec$0 + 1 | 0, 48); - caml_bytes_set(res$0, 0, c); - caml_call5 - (Stdlib_String[48], - str, - 1, - res$0, - (prec$0 - len | 0) + 2 | 0, - len - 1 | 0); - return caml_call1(Stdlib_Bytes[48], res$0); - } - } - if(switch$0 && len < prec$0){ - var res = caml_call2(Stdlib_Bytes[1], prec$0, 48); - caml_call5(Stdlib_String[48], str, 0, res, prec$0 - len | 0, len); - return caml_call1(Stdlib_Bytes[48], res); - } - return str; - } - function string_to_caml_string(str){ - var - str$0 = caml_call1(Stdlib_String[24], str), - l = caml_ml_string_length(str$0), - res = caml_call2(Stdlib_Bytes[1], l + 2 | 0, 34); - caml_blit_string(str$0, 0, res, 1, l); - return caml_call1(Stdlib_Bytes[48], res); - } - function format_of_fconv(fconv, prec){ - var - prec$0 = caml_call1(Stdlib[18], prec), - symb = char_of_fconv(_r_, fconv), - buf = buffer_create(16); - buffer_add_char(buf, 37); - bprint_fconv_flag(buf, fconv); - buffer_add_char(buf, 46); - buffer_add_string(buf, caml_call1(Stdlib_Int[12], prec$0)); - buffer_add_char(buf, symb); - return buffer_contents(buf); - } - function transform_int_alt(iconv, s){ - if(13 > iconv) return s; - var n = [0, 0], _c1_ = caml_ml_string_length(s) - 1 | 0, _c0_ = 0; - if(_c1_ >= 0){ - var i$0 = _c0_; - for(;;){ - if(9 >= caml_string_unsafe_get(s, i$0) - 48 >>> 0) n[1]++; - var _c5_ = i$0 + 1 | 0; - if(_c1_ !== i$0){var i$0 = _c5_; continue;} - break; - } - } - var - digits = n[1], - buf = - caml_create_bytes - (caml_ml_string_length(s) + ((digits - 1 | 0) / 3 | 0) | 0), - pos = [0, 0]; - function put(c){caml_bytes_set(buf, pos[1], c); pos[1]++; return 0;} - var - left = [0, ((digits - 1 | 0) % 3 | 0) + 1 | 0], - _c3_ = caml_ml_string_length(s) - 1 | 0, - _c2_ = 0; - if(_c3_ >= 0){ - var i = _c2_; - for(;;){ - var c = caml_string_unsafe_get(s, i); - if(9 < c - 48 >>> 0) - put(c); - else{if(0 === left[1]){put(95); left[1] = 3;} left[1] += -1; put(c);} - var _c4_ = i + 1 | 0; - if(_c3_ !== i){var i = _c4_; continue;} - break; - } - } - return caml_call1(Stdlib_Bytes[48], buf); - } - function convert_int(iconv, n){ - switch(iconv){ - case 1: - var _cZ_ = cst_d$0; break; - case 2: - var _cZ_ = cst_d$1; break; - case 4: - var _cZ_ = cst_i$1; break; - case 5: - var _cZ_ = cst_i$2; break; - case 6: - var _cZ_ = cst_x; break; - case 7: - var _cZ_ = cst_x$0; break; - case 8: - var _cZ_ = cst_X; break; - case 9: - var _cZ_ = cst_X$0; break; - case 10: - var _cZ_ = cst_o; break; - case 11: - var _cZ_ = cst_o$0; break; - case 0: - case 13: - var _cZ_ = cst_d; break; - case 3: - case 14: - var _cZ_ = cst_i$0; break; - default: var _cZ_ = cst_u; - } - return transform_int_alt(iconv, caml_format_int(_cZ_, n)); - } - function convert_int32(iconv, n){ - switch(iconv){ - case 1: - var _cY_ = cst_ld$0; break; - case 2: - var _cY_ = cst_ld$1; break; - case 4: - var _cY_ = cst_li$1; break; - case 5: - var _cY_ = cst_li$2; break; - case 6: - var _cY_ = cst_lx; break; - case 7: - var _cY_ = cst_lx$0; break; - case 8: - var _cY_ = cst_lX; break; - case 9: - var _cY_ = cst_lX$0; break; - case 10: - var _cY_ = cst_lo; break; - case 11: - var _cY_ = cst_lo$0; break; - case 0: - case 13: - var _cY_ = cst_ld; break; - case 3: - case 14: - var _cY_ = cst_li$0; break; - default: var _cY_ = cst_lu; - } - return transform_int_alt(iconv, caml_format_int(_cY_, n)); - } - function convert_nativeint(iconv, n){ - switch(iconv){ - case 1: - var _cX_ = cst_nd$0; break; - case 2: - var _cX_ = cst_nd$1; break; - case 4: - var _cX_ = cst_ni$1; break; - case 5: - var _cX_ = cst_ni$2; break; - case 6: - var _cX_ = cst_nx; break; - case 7: - var _cX_ = cst_nx$0; break; - case 8: - var _cX_ = cst_nX; break; - case 9: - var _cX_ = cst_nX$0; break; - case 10: - var _cX_ = cst_no; break; - case 11: - var _cX_ = cst_no$0; break; - case 0: - case 13: - var _cX_ = cst_nd; break; - case 3: - case 14: - var _cX_ = cst_ni$0; break; - default: var _cX_ = cst_nu; - } - return transform_int_alt(iconv, caml_format_int(_cX_, n)); - } - function convert_int64(iconv, n){ - switch(iconv){ - case 1: - var _cW_ = cst_Ld$0; break; - case 2: - var _cW_ = cst_Ld$1; break; - case 4: - var _cW_ = cst_Li$1; break; - case 5: - var _cW_ = cst_Li$2; break; - case 6: - var _cW_ = cst_Lx; break; - case 7: - var _cW_ = cst_Lx$0; break; - case 8: - var _cW_ = cst_LX; break; - case 9: - var _cW_ = cst_LX$0; break; - case 10: - var _cW_ = cst_Lo; break; - case 11: - var _cW_ = cst_Lo$0; break; - case 0: - case 13: - var _cW_ = cst_Ld; break; - case 3: - case 14: - var _cW_ = cst_Li$0; break; - default: var _cW_ = cst_Lu; - } - return transform_int_alt(iconv, runtime.caml_int64_format(_cW_, n)); - } - function convert_float(fconv, prec, x){ - function hex(param){ - switch(fconv[1]){ - case 0: - var sign = 45; break; - case 1: - var sign = 43; break; - default: var sign = 32; - } - return runtime.caml_hexstring_of_float(x, prec, sign); - } - function caml_special_val(str){ - var match = runtime.caml_classify_float(x); - return 3 === match - ? x < 0. ? cst_neg_infinity : cst_infinity - : 4 <= match ? cst_nan : str; - } - switch(fconv[2]){ - case 5: - var - str = caml_format_float(format_of_fconv(fconv, prec), x), - len = caml_ml_string_length(str), - i = 0; - for(;;){ - if(i === len) - var _cT_ = 0; - else{ - var _cS_ = caml_string_get(str, i) - 46 | 0, switch$0 = 0; - if(23 < _cS_ >>> 0){ - if(55 === _cS_) switch$0 = 1; - } - else if(21 < _cS_ - 1 >>> 0) switch$0 = 1; - if(! switch$0){var i$0 = i + 1 | 0, i = i$0; continue;} - var _cT_ = 1; - } - var _cU_ = _cT_ ? str : caml_call2(Stdlib[28], str, cst$17); - return caml_special_val(_cU_); - } - case 6: - return hex(0); - case 7: - var _cV_ = hex(0); return caml_call1(Stdlib_String[25], _cV_); - case 8: - return caml_special_val(hex(0)); - default: return caml_format_float(format_of_fconv(fconv, prec), x); - } - } - function string_of_fmtty(fmtty){ - var buf = buffer_create(16); - bprint_fmtty(buf, fmtty); - return buffer_contents(buf); - } - function make_int_padding_precision(k, acc, fmt, pad, prec, trans, iconv){ - if(typeof pad === "number"){ - if(typeof prec === "number") - return prec - ? function - (p, x){ - var str = fix_int_precision(p, caml_call2(trans, iconv, x)); - return make_printf(k, [4, acc, str], fmt); - } - : function - (x){ - var str = caml_call2(trans, iconv, x); - return make_printf(k, [4, acc, str], fmt); - }; - var p = prec[1]; - return function(x){ - var str = fix_int_precision(p, caml_call2(trans, iconv, x)); - return make_printf(k, [4, acc, str], fmt);}; - } - if(0 === pad[0]){ - var w = pad[2], padty = pad[1]; - if(typeof prec === "number") - return prec - ? function - (p, x){ - var - str = - fix_padding - (padty, - w, - fix_int_precision(p, caml_call2(trans, iconv, x))); - return make_printf(k, [4, acc, str], fmt); - } - : function - (x){ - var str = fix_padding(padty, w, caml_call2(trans, iconv, x)); - return make_printf(k, [4, acc, str], fmt); - }; - var p$0 = prec[1]; - return function(x){ - var - str = - fix_padding - (padty, w, fix_int_precision(p$0, caml_call2(trans, iconv, x))); - return make_printf(k, [4, acc, str], fmt);}; - } - var padty$0 = pad[1]; - if(typeof prec === "number") - return prec - ? function - (w, p, x){ - var - str = - fix_padding - (padty$0, - w, - fix_int_precision(p, caml_call2(trans, iconv, x))); - return make_printf(k, [4, acc, str], fmt); - } - : function - (w, x){ - var str = fix_padding(padty$0, w, caml_call2(trans, iconv, x)); - return make_printf(k, [4, acc, str], fmt); - }; - var p$1 = prec[1]; - return function(w, x){ - var - str = - fix_padding - (padty$0, w, fix_int_precision(p$1, caml_call2(trans, iconv, x))); - return make_printf(k, [4, acc, str], fmt);}; - } - function make_padding(k, acc, fmt, pad, trans){ - if(typeof pad === "number") - return function(x){ - var new_acc = [4, acc, caml_call1(trans, x)]; - return make_printf(k, new_acc, fmt);}; - if(0 === pad[0]){ - var width = pad[2], padty = pad[1]; - return function(x){ - var new_acc = [4, acc, fix_padding(padty, width, caml_call1(trans, x))]; - return make_printf(k, new_acc, fmt);}; - } - var padty$0 = pad[1]; - return function(w, x){ - var new_acc = [4, acc, fix_padding(padty$0, w, caml_call1(trans, x))]; - return make_printf(k, new_acc, fmt);}; - } - function make_printf$0(counter, k, acc, fmt){ - var k$0 = k, acc$0 = acc, fmt$0 = fmt; - for(;;){ - if(typeof fmt$0 === "number") return caml_call1(k$0, acc$0); - switch(fmt$0[0]){ - case 0: - var rest = fmt$0[1]; - return function(c){ - var new_acc = [5, acc$0, c]; - return make_printf(k$0, new_acc, rest);}; - case 1: - var rest$0 = fmt$0[1]; - return function(c){ - var - str = caml_call1(Stdlib_Char[2], c), - l = caml_ml_string_length(str), - res = caml_call2(Stdlib_Bytes[1], l + 2 | 0, 39); - caml_blit_string(str, 0, res, 1, l); - var new_acc = [4, acc$0, caml_call1(Stdlib_Bytes[48], res)]; - return make_printf(k$0, new_acc, rest$0);}; - case 2: - var rest$1 = fmt$0[2], pad = fmt$0[1]; - return make_padding - (k$0, acc$0, rest$1, pad, function(str){return str;}); - case 3: - var rest$2 = fmt$0[2], pad$0 = fmt$0[1]; - return make_padding(k$0, acc$0, rest$2, pad$0, string_to_caml_string); - case 4: - var - rest$3 = fmt$0[4], - prec = fmt$0[3], - pad$1 = fmt$0[2], - iconv = fmt$0[1]; - return make_int_padding_precision - (k$0, acc$0, rest$3, pad$1, prec, convert_int, iconv); - case 5: - var - rest$4 = fmt$0[4], - prec$0 = fmt$0[3], - pad$2 = fmt$0[2], - iconv$0 = fmt$0[1]; - return make_int_padding_precision - (k$0, acc$0, rest$4, pad$2, prec$0, convert_int32, iconv$0); - case 6: - var - rest$5 = fmt$0[4], - prec$1 = fmt$0[3], - pad$3 = fmt$0[2], - iconv$1 = fmt$0[1]; - return make_int_padding_precision - (k$0, - acc$0, - rest$5, - pad$3, - prec$1, - convert_nativeint, - iconv$1); - case 7: - var - rest$6 = fmt$0[4], - prec$2 = fmt$0[3], - pad$4 = fmt$0[2], - iconv$2 = fmt$0[1]; - return make_int_padding_precision - (k$0, acc$0, rest$6, pad$4, prec$2, convert_int64, iconv$2); - case 8: - var - rest$7 = fmt$0[4], - prec$3 = fmt$0[3], - pad$5 = fmt$0[2], - fconv = fmt$0[1]; - if(typeof pad$5 === "number"){ - if(typeof prec$3 === "number") - return prec$3 - ? function - (p, x){ - var str = convert_float(fconv, p, x); - return make_printf(k$0, [4, acc$0, str], rest$7); - } - : function - (x){ - var - str = - convert_float(fconv, default_float_precision(fconv), x); - return make_printf(k$0, [4, acc$0, str], rest$7); - }; - var p = prec$3[1]; - return function(x){ - var str = convert_float(fconv, p, x); - return make_printf(k$0, [4, acc$0, str], rest$7);}; - } - if(0 === pad$5[0]){ - var w = pad$5[2], padty = pad$5[1]; - if(typeof prec$3 === "number") - return prec$3 - ? function - (p, x){ - var str = fix_padding(padty, w, convert_float(fconv, p, x)); - return make_printf(k$0, [4, acc$0, str], rest$7); - } - : function - (x){ - var - str = - convert_float(fconv, default_float_precision(fconv), x), - str$0 = fix_padding(padty, w, str); - return make_printf(k$0, [4, acc$0, str$0], rest$7); - }; - var p$0 = prec$3[1]; - return function(x){ - var str = fix_padding(padty, w, convert_float(fconv, p$0, x)); - return make_printf(k$0, [4, acc$0, str], rest$7);}; - } - var padty$0 = pad$5[1]; - if(typeof prec$3 === "number") - return prec$3 - ? function - (w, p, x){ - var - str = fix_padding(padty$0, w, convert_float(fconv, p, x)); - return make_printf(k$0, [4, acc$0, str], rest$7); - } - : function - (w, x){ - var - str = - convert_float(fconv, default_float_precision(fconv), x), - str$0 = fix_padding(padty$0, w, str); - return make_printf(k$0, [4, acc$0, str$0], rest$7); - }; - var p$1 = prec$3[1]; - return function(w, x){ - var str = fix_padding(padty$0, w, convert_float(fconv, p$1, x)); - return make_printf(k$0, [4, acc$0, str], rest$7);}; - case 9: - var rest$8 = fmt$0[2], pad$6 = fmt$0[1]; - return make_padding(k$0, acc$0, rest$8, pad$6, Stdlib[30]); - case 10: - var - rest$9 = fmt$0[1], - acc$1 = [7, acc$0], - acc$0 = acc$1, - fmt$0 = rest$9; - continue; - case 11: - var - rest$10 = fmt$0[2], - str = fmt$0[1], - acc$2 = [2, acc$0, str], - acc$0 = acc$2, - fmt$0 = rest$10; - continue; - case 12: - var - rest$11 = fmt$0[2], - chr = fmt$0[1], - acc$3 = [3, acc$0, chr], - acc$0 = acc$3, - fmt$0 = rest$11; - continue; - case 13: - var - rest$12 = fmt$0[3], - sub_fmtty = fmt$0[2], - ty = string_of_fmtty(sub_fmtty); - return function(str){ - return make_printf(k$0, [4, acc$0, ty], rest$12);}; - case 14: - var rest$13 = fmt$0[3], fmtty = fmt$0[2]; - return function(param){ - var fmt = param[1], _cR_ = recast(fmt, fmtty); - return make_printf - (k$0, - acc$0, - caml_call2(CamlinternalFormatBasics[3], _cR_, rest$13));}; - case 15: - var rest$14 = fmt$0[1]; - return function(f, x){ - return make_printf - (k$0, - [6, acc$0, function(o){return caml_call2(f, o, x);}], - rest$14);}; - case 16: - var rest$15 = fmt$0[1]; - return function(f){return make_printf(k$0, [6, acc$0, f], rest$15);}; - case 17: - var - rest$16 = fmt$0[2], - fmting_lit = fmt$0[1], - acc$4 = [0, acc$0, fmting_lit], - acc$0 = acc$4, - fmt$0 = rest$16; - continue; - case 18: - var _cP_ = fmt$0[1]; - if(0 === _cP_[0]){ - var - rest$17 = fmt$0[2], - fmt$1 = _cP_[1][1], - k$3 = - function(acc, k, rest){ - function k$0(kacc){ - return make_printf(k, [1, acc, [0, kacc]], rest); - } - return k$0; - }, - k$1 = k$3(acc$0, k$0, rest$17), - k$0 = k$1, - acc$0 = 0, - fmt$0 = fmt$1; - continue; - } - var - rest$18 = fmt$0[2], - fmt$2 = _cP_[1][1], - k$4 = - function(acc, k, rest){ - function k$0(kacc){ - return make_printf(k, [1, acc, [1, kacc]], rest); - } - return k$0; - }, - k$2 = k$4(acc$0, k$0, rest$18), - k$0 = k$2, - acc$0 = 0, - fmt$0 = fmt$2; - continue; - case 19: - throw caml_maybe_attach_backtrace([0, Assert_failure, _s_], 1); - case 20: - var - rest$19 = fmt$0[3], - new_acc = [8, acc$0, cst_Printf_bad_conversion]; - return function(param){return make_printf(k$0, new_acc, rest$19);}; - case 21: - var rest$20 = fmt$0[2]; - return function(n){ - var new_acc = [4, acc$0, caml_format_int(cst_u$0, n)]; - return make_printf(k$0, new_acc, rest$20);}; - case 22: - var rest$21 = fmt$0[1]; - return function(c){ - var new_acc = [5, acc$0, c]; - return make_printf(k$0, new_acc, rest$21);}; - case 23: - var rest$22 = fmt$0[2], ign = fmt$0[1]; - if(counter >= 50) - return caml_trampoline_return - (make_ignored_param$0, [0, k$0, acc$0, ign, rest$22]); - var counter$1 = counter + 1 | 0; - return make_ignored_param$0(counter$1, k$0, acc$0, ign, rest$22); - default: - var - rest$23 = fmt$0[3], - f = fmt$0[2], - arity = fmt$0[1], - _cQ_ = caml_call1(f, 0); - if(counter >= 50) - return caml_trampoline_return - (make_custom$0, [0, k$0, acc$0, rest$23, arity, _cQ_]); - var counter$0 = counter + 1 | 0; - return make_custom$0(counter$0, k$0, acc$0, rest$23, arity, _cQ_); - } - } - } - function make_ignored_param$0(counter, k, acc, ign, fmt){ - if(typeof ign === "number") - switch(ign){ - case 0: - if(counter >= 50) - return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); - var counter$0 = counter + 1 | 0; - return make_invalid_arg(counter$0, k, acc, fmt); - case 1: - if(counter >= 50) - return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); - var counter$1 = counter + 1 | 0; - return make_invalid_arg(counter$1, k, acc, fmt); - case 2: - throw caml_maybe_attach_backtrace([0, Assert_failure, _t_], 1); - default: - if(counter >= 50) - return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); - var counter$2 = counter + 1 | 0; - return make_invalid_arg(counter$2, k, acc, fmt); - } - switch(ign[0]){ - case 0: - if(counter >= 50) - return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); - var counter$3 = counter + 1 | 0; - return make_invalid_arg(counter$3, k, acc, fmt); - case 1: - if(counter >= 50) - return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); - var counter$4 = counter + 1 | 0; - return make_invalid_arg(counter$4, k, acc, fmt); - case 2: - if(counter >= 50) - return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); - var counter$5 = counter + 1 | 0; - return make_invalid_arg(counter$5, k, acc, fmt); - case 3: - if(counter >= 50) - return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); - var counter$6 = counter + 1 | 0; - return make_invalid_arg(counter$6, k, acc, fmt); - case 4: - if(counter >= 50) - return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); - var counter$7 = counter + 1 | 0; - return make_invalid_arg(counter$7, k, acc, fmt); - case 5: - if(counter >= 50) - return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); - var counter$8 = counter + 1 | 0; - return make_invalid_arg(counter$8, k, acc, fmt); - case 6: - if(counter >= 50) - return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); - var counter$9 = counter + 1 | 0; - return make_invalid_arg(counter$9, k, acc, fmt); - case 7: - if(counter >= 50) - return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); - var counter$10 = counter + 1 | 0; - return make_invalid_arg(counter$10, k, acc, fmt); - case 8: - if(counter >= 50) - return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); - var counter$11 = counter + 1 | 0; - return make_invalid_arg(counter$11, k, acc, fmt); - case 9: - var fmtty = ign[2]; - if(counter >= 50) - return caml_trampoline_return - (make_from_fmtty$0, [0, k, acc, fmtty, fmt]); - var counter$14 = counter + 1 | 0; - return make_from_fmtty$0(counter$14, k, acc, fmtty, fmt); - case 10: - if(counter >= 50) - return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); - var counter$12 = counter + 1 | 0; - return make_invalid_arg(counter$12, k, acc, fmt); - default: - if(counter >= 50) - return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); - var counter$13 = counter + 1 | 0; - return make_invalid_arg(counter$13, k, acc, fmt); - } - } - function make_from_fmtty$0(counter, k, acc, fmtty, fmt){ - if(typeof fmtty !== "number") - switch(fmtty[0]){ - case 0: - var rest = fmtty[1]; - return function(param){return make_from_fmtty(k, acc, rest, fmt);}; - case 1: - var rest$0 = fmtty[1]; - return function(param){return make_from_fmtty(k, acc, rest$0, fmt);}; - case 2: - var rest$1 = fmtty[1]; - return function(param){return make_from_fmtty(k, acc, rest$1, fmt);}; - case 3: - var rest$2 = fmtty[1]; - return function(param){return make_from_fmtty(k, acc, rest$2, fmt);}; - case 4: - var rest$3 = fmtty[1]; - return function(param){return make_from_fmtty(k, acc, rest$3, fmt);}; - case 5: - var rest$4 = fmtty[1]; - return function(param){return make_from_fmtty(k, acc, rest$4, fmt);}; - case 6: - var rest$5 = fmtty[1]; - return function(param){return make_from_fmtty(k, acc, rest$5, fmt);}; - case 7: - var rest$6 = fmtty[1]; - return function(param){return make_from_fmtty(k, acc, rest$6, fmt);}; - case 8: - var rest$7 = fmtty[2]; - return function(param){return make_from_fmtty(k, acc, rest$7, fmt);}; - case 9: - var - rest$8 = fmtty[3], - ty2 = fmtty[2], - ty1 = fmtty[1], - ty = trans(symm(ty1), ty2); - return function(param){ - return make_from_fmtty - (k, - acc, - caml_call2(CamlinternalFormatBasics[1], ty, rest$8), - fmt);}; - case 10: - var rest$9 = fmtty[1]; - return function(param, _cO_){ - return make_from_fmtty(k, acc, rest$9, fmt);}; - case 11: - var rest$10 = fmtty[1]; - return function(param){return make_from_fmtty(k, acc, rest$10, fmt);}; - case 12: - var rest$11 = fmtty[1]; - return function(param){return make_from_fmtty(k, acc, rest$11, fmt);}; - case 13: - throw caml_maybe_attach_backtrace([0, Assert_failure, _u_], 1); - default: - throw caml_maybe_attach_backtrace([0, Assert_failure, _v_], 1); - } - if(counter >= 50) - return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); - var counter$0 = counter + 1 | 0; - return make_invalid_arg(counter$0, k, acc, fmt); - } - function make_invalid_arg(counter, k, acc, fmt){ - var _cN_ = [8, acc, cst_Printf_bad_conversion$0]; - if(counter >= 50) - return caml_trampoline_return(make_printf$0, [0, k, _cN_, fmt]); - var counter$0 = counter + 1 | 0; - return make_printf$0(counter$0, k, _cN_, fmt); - } - function make_custom$0(counter, k, acc, rest, arity, f){ - if(arity){ - var arity$0 = arity[1]; - return function(x){ - return make_custom(k, acc, rest, arity$0, caml_call1(f, x));}; - } - var _cM_ = [4, acc, f]; - if(counter >= 50) - return caml_trampoline_return(make_printf$0, [0, k, _cM_, rest]); - var counter$0 = counter + 1 | 0; - return make_printf$0(counter$0, k, _cM_, rest); - } - function make_printf(k, acc, fmt){ - return caml_trampoline(make_printf$0(0, k, acc, fmt)); - } - function make_ignored_param(k, acc, ign, fmt){ - return caml_trampoline(make_ignored_param$0(0, k, acc, ign, fmt)); - } - function make_from_fmtty(k, acc, fmtty, fmt){ - return caml_trampoline(make_from_fmtty$0(0, k, acc, fmtty, fmt)); - } - function make_custom(k, acc, rest, arity, f){ - return caml_trampoline(make_custom$0(0, k, acc, rest, arity, f)); - } - function fn_of_padding_precision(k, o, fmt, pad, prec){ - if(typeof pad === "number"){ - if(typeof prec !== "number"){ - var _cl_ = make_iprintf(k, o, fmt); - return function(_cL_){return _cl_;}; - } - if(prec){ - var _ci_ = make_iprintf(k, o, fmt), _cj_ = function(_cK_){return _ci_;}; - return function(_cJ_){return _cj_;}; - } - var _ck_ = make_iprintf(k, o, fmt); - return function(_cI_){return _ck_;}; - } - if(0 === pad[0]){ - if(typeof prec !== "number"){ - var _cp_ = make_iprintf(k, o, fmt); - return function(_cH_){return _cp_;}; - } - if(prec){ - var _cm_ = make_iprintf(k, o, fmt), _cn_ = function(_cG_){return _cm_;}; - return function(_cF_){return _cn_;}; - } - var _co_ = make_iprintf(k, o, fmt); - return function(_cE_){return _co_;}; - } - if(typeof prec !== "number"){ - var _cv_ = make_iprintf(k, o, fmt), _cw_ = function(_cD_){return _cv_;}; - return function(_cC_){return _cw_;}; - } - if(prec){ - var - _cq_ = make_iprintf(k, o, fmt), - _cr_ = function(_cB_){return _cq_;}, - _cs_ = function(_cA_){return _cr_;}; - return function(_cz_){return _cs_;}; - } - var _ct_ = make_iprintf(k, o, fmt); - function _cu_(_cy_){return _ct_;} - return function(_cx_){return _cu_;}; - } - function make_iprintf$0(counter, k, o, fmt){ - var k$0 = k, fmt$0 = fmt; - for(;;){ - if(typeof fmt$0 === "number") return caml_call1(k$0, o); - switch(fmt$0[0]){ - case 0: - var rest = fmt$0[1], _by_ = make_iprintf(k$0, o, rest); - return function(_ch_){return _by_;}; - case 1: - var rest$0 = fmt$0[1], _bz_ = make_iprintf(k$0, o, rest$0); - return function(_cg_){return _bz_;}; - case 2: - var _bA_ = fmt$0[1]; - if(typeof _bA_ === "number"){ - var rest$1 = fmt$0[2], _bB_ = make_iprintf(k$0, o, rest$1); - return function(_cf_){return _bB_;}; - } - if(0 === _bA_[0]){ - var rest$2 = fmt$0[2], _bC_ = make_iprintf(k$0, o, rest$2); - return function(_ce_){return _bC_;}; - } - var - rest$3 = fmt$0[2], - _bD_ = make_iprintf(k$0, o, rest$3), - _bE_ = function(_cd_){return _bD_;}; - return function(_cc_){return _bE_;}; - case 3: - var _bF_ = fmt$0[1]; - if(typeof _bF_ === "number"){ - var rest$4 = fmt$0[2], _bG_ = make_iprintf(k$0, o, rest$4); - return function(_cb_){return _bG_;}; - } - if(0 === _bF_[0]){ - var rest$5 = fmt$0[2], _bH_ = make_iprintf(k$0, o, rest$5); - return function(_ca_){return _bH_;}; - } - var - rest$6 = fmt$0[2], - _bI_ = make_iprintf(k$0, o, rest$6), - _bJ_ = function(_b$_){return _bI_;}; - return function(_b__){return _bJ_;}; - case 4: - var rest$7 = fmt$0[4], prec = fmt$0[3], pad = fmt$0[2]; - return fn_of_padding_precision(k$0, o, rest$7, pad, prec); - case 5: - var rest$8 = fmt$0[4], prec$0 = fmt$0[3], pad$0 = fmt$0[2]; - return fn_of_padding_precision(k$0, o, rest$8, pad$0, prec$0); - case 6: - var rest$9 = fmt$0[4], prec$1 = fmt$0[3], pad$1 = fmt$0[2]; - return fn_of_padding_precision(k$0, o, rest$9, pad$1, prec$1); - case 7: - var rest$10 = fmt$0[4], prec$2 = fmt$0[3], pad$2 = fmt$0[2]; - return fn_of_padding_precision(k$0, o, rest$10, pad$2, prec$2); - case 8: - var rest$11 = fmt$0[4], prec$3 = fmt$0[3], pad$3 = fmt$0[2]; - return fn_of_padding_precision(k$0, o, rest$11, pad$3, prec$3); - case 9: - var _bK_ = fmt$0[1]; - if(typeof _bK_ === "number"){ - var rest$12 = fmt$0[2], _bL_ = make_iprintf(k$0, o, rest$12); - return function(_b9_){return _bL_;}; - } - if(0 === _bK_[0]){ - var rest$13 = fmt$0[2], _bM_ = make_iprintf(k$0, o, rest$13); - return function(_b8_){return _bM_;}; - } - var - rest$14 = fmt$0[2], - _bN_ = make_iprintf(k$0, o, rest$14), - _bO_ = function(_b7_){return _bN_;}; - return function(_b6_){return _bO_;}; - case 10: - var rest$15 = fmt$0[1], fmt$0 = rest$15; continue; - case 11: - var rest$16 = fmt$0[2], fmt$0 = rest$16; continue; - case 12: - var rest$17 = fmt$0[2], fmt$0 = rest$17; continue; - case 13: - var rest$18 = fmt$0[3], _bP_ = make_iprintf(k$0, o, rest$18); - return function(_b5_){return _bP_;}; - case 14: - var rest$19 = fmt$0[3], fmtty = fmt$0[2]; - return function(param){ - var fmt = param[1], _b4_ = recast(fmt, fmtty); - return make_iprintf - (k$0, - o, - caml_call2(CamlinternalFormatBasics[3], _b4_, rest$19));}; - case 15: - var - rest$20 = fmt$0[1], - _bQ_ = make_iprintf(k$0, o, rest$20), - _bR_ = function(_b3_){return _bQ_;}; - return function(_b2_){return _bR_;}; - case 16: - var rest$21 = fmt$0[1], _bS_ = make_iprintf(k$0, o, rest$21); - return function(_b1_){return _bS_;}; - case 17: - var rest$22 = fmt$0[2], fmt$0 = rest$22; continue; - case 18: - var _bT_ = fmt$0[1]; - if(0 === _bT_[0]){ - var - rest$23 = fmt$0[2], - fmt$1 = _bT_[1][1], - k$3 = - function(k, rest){ - function k$0(koc){return make_iprintf(k, koc, rest);} - return k$0; - }, - k$1 = k$3(k$0, rest$23), - k$0 = k$1, - fmt$0 = fmt$1; - continue; - } - var - rest$24 = fmt$0[2], - fmt$2 = _bT_[1][1], - k$4 = - function(k, rest){ - function k$0(koc){return make_iprintf(k, koc, rest);} - return k$0; - }, - k$2 = k$4(k$0, rest$24), - k$0 = k$2, - fmt$0 = fmt$2; - continue; - case 19: - throw caml_maybe_attach_backtrace([0, Assert_failure, _w_], 1); - case 20: - var rest$25 = fmt$0[3], _bU_ = make_iprintf(k$0, o, rest$25); - return function(_b0_){return _bU_;}; - case 21: - var rest$26 = fmt$0[2], _bV_ = make_iprintf(k$0, o, rest$26); - return function(_bZ_){return _bV_;}; - case 22: - var rest$27 = fmt$0[1], _bW_ = make_iprintf(k$0, o, rest$27); - return function(_bY_){return _bW_;}; - case 23: - var rest$28 = fmt$0[2], ign = fmt$0[1], _bX_ = 0; - return make_ignored_param - (function(param){return caml_call1(k$0, o);}, - _bX_, - ign, - rest$28); - default: - var rest$29 = fmt$0[3], arity = fmt$0[1]; - if(counter >= 50) - return caml_trampoline_return - (fn_of_custom_arity$0, [0, k$0, o, rest$29, arity]); - var counter$0 = counter + 1 | 0; - return fn_of_custom_arity$0(counter$0, k$0, o, rest$29, arity); - } - } - } - function fn_of_custom_arity$0(counter, k, o, fmt, param){ - if(param){ - var arity = param[1], _bw_ = fn_of_custom_arity(k, o, fmt, arity); - return function(_bx_){return _bw_;}; - } - if(counter >= 50) - return caml_trampoline_return(make_iprintf$0, [0, k, o, fmt]); - var counter$0 = counter + 1 | 0; - return make_iprintf$0(counter$0, k, o, fmt); - } - function make_iprintf(k, o, fmt){ - return caml_trampoline(make_iprintf$0(0, k, o, fmt)); - } - function fn_of_custom_arity(k, o, fmt, param){ - return caml_trampoline(fn_of_custom_arity$0(0, k, o, fmt, param)); - } - function output_acc(o, acc){ - var acc$0 = acc; - for(;;){ - if(typeof acc$0 === "number") return 0; - switch(acc$0[0]){ - case 0: - var - fmting_lit = acc$0[2], - p = acc$0[1], - s = string_of_formatting_lit(fmting_lit); - output_acc(o, p); - return caml_call2(Stdlib[66], o, s); - case 1: - var match = acc$0[2], p$0 = acc$0[1]; - if(0 === match[0]){ - var acc$1 = match[1]; - output_acc(o, p$0); - caml_call2(Stdlib[66], o, cst$18); - var acc$0 = acc$1; - continue; - } - var acc$2 = match[1]; - output_acc(o, p$0); - caml_call2(Stdlib[66], o, cst$19); - var acc$0 = acc$2; - continue; - case 6: - var f = acc$0[2], p$3 = acc$0[1]; - output_acc(o, p$3); - return caml_call1(f, o); - case 7: - var p$4 = acc$0[1]; - output_acc(o, p$4); - return caml_call1(Stdlib[63], o); - case 8: - var msg = acc$0[2], p$5 = acc$0[1]; - output_acc(o, p$5); - return caml_call1(Stdlib[1], msg); - case 2: - case 4: - var s$0 = acc$0[2], p$1 = acc$0[1]; - output_acc(o, p$1); - return caml_call2(Stdlib[66], o, s$0); - default: - var c = acc$0[2], p$2 = acc$0[1]; - output_acc(o, p$2); - return caml_call2(Stdlib[65], o, c); - } - } - } - function bufput_acc(b, acc){ - var acc$0 = acc; - for(;;){ - if(typeof acc$0 === "number") return 0; - switch(acc$0[0]){ - case 0: - var - fmting_lit = acc$0[2], - p = acc$0[1], - s = string_of_formatting_lit(fmting_lit); - bufput_acc(b, p); - return caml_call2(Stdlib_Buffer[16], b, s); - case 1: - var match = acc$0[2], p$0 = acc$0[1]; - if(0 === match[0]){ - var acc$1 = match[1]; - bufput_acc(b, p$0); - caml_call2(Stdlib_Buffer[16], b, cst$20); - var acc$0 = acc$1; - continue; - } - var acc$2 = match[1]; - bufput_acc(b, p$0); - caml_call2(Stdlib_Buffer[16], b, cst$21); - var acc$0 = acc$2; - continue; - case 6: - var f = acc$0[2], p$3 = acc$0[1]; - bufput_acc(b, p$3); - return caml_call1(f, b); - case 7: - var acc$3 = acc$0[1], acc$0 = acc$3; continue; - case 8: - var msg = acc$0[2], p$4 = acc$0[1]; - bufput_acc(b, p$4); - return caml_call1(Stdlib[1], msg); - case 2: - case 4: - var s$0 = acc$0[2], p$1 = acc$0[1]; - bufput_acc(b, p$1); - return caml_call2(Stdlib_Buffer[16], b, s$0); - default: - var c = acc$0[2], p$2 = acc$0[1]; - bufput_acc(b, p$2); - return caml_call2(Stdlib_Buffer[12], b, c); - } - } - } - function strput_acc(b, acc){ - var acc$0 = acc; - for(;;){ - if(typeof acc$0 === "number") return 0; - switch(acc$0[0]){ - case 0: - var - fmting_lit = acc$0[2], - p = acc$0[1], - s = string_of_formatting_lit(fmting_lit); - strput_acc(b, p); - return caml_call2(Stdlib_Buffer[16], b, s); - case 1: - var match = acc$0[2], p$0 = acc$0[1]; - if(0 === match[0]){ - var acc$1 = match[1]; - strput_acc(b, p$0); - caml_call2(Stdlib_Buffer[16], b, cst$22); - var acc$0 = acc$1; - continue; - } - var acc$2 = match[1]; - strput_acc(b, p$0); - caml_call2(Stdlib_Buffer[16], b, cst$23); - var acc$0 = acc$2; - continue; - case 6: - var f = acc$0[2], p$3 = acc$0[1]; - strput_acc(b, p$3); - var _bv_ = caml_call1(f, 0); - return caml_call2(Stdlib_Buffer[16], b, _bv_); - case 7: - var acc$3 = acc$0[1], acc$0 = acc$3; continue; - case 8: - var msg = acc$0[2], p$4 = acc$0[1]; - strput_acc(b, p$4); - return caml_call1(Stdlib[1], msg); - case 2: - case 4: - var s$0 = acc$0[2], p$1 = acc$0[1]; - strput_acc(b, p$1); - return caml_call2(Stdlib_Buffer[16], b, s$0); - default: - var c = acc$0[2], p$2 = acc$0[1]; - strput_acc(b, p$2); - return caml_call2(Stdlib_Buffer[12], b, c); - } - } - } - function failwith_message(param){ - var fmt = param[1], buf = caml_call1(Stdlib_Buffer[1], 256); - function k(acc){ - strput_acc(buf, acc); - var _bu_ = caml_call1(Stdlib_Buffer[2], buf); - return caml_call1(Stdlib[2], _bu_); - } - return make_printf(k, 0, fmt); - } - function open_box_of_string(str){ - if(runtime.caml_string_equal(str, cst$43)) return _x_; - var len = caml_ml_string_length(str); - function invalid_box(param){ - return caml_call1(failwith_message(_y_), str); - } - function parse_spaces(i){ - var i$0 = i; - for(;;){ - if(i$0 === len) return i$0; - var match = caml_string_get(str, i$0); - if(9 !== match && 32 !== match) return i$0; - var i$1 = i$0 + 1 | 0, i$0 = i$1; - } - } - var wstart = parse_spaces(0), wend = wstart; - for(;;){ - if(wend !== len && 25 >= caml_string_get(str, wend) - 97 >>> 0){var j = wend + 1 | 0, wend = j; continue;} - var - box_name = caml_call3(Stdlib_String[15], str, wstart, wend - wstart | 0), - nstart = parse_spaces(wend), - nend = nstart; - for(;;){ - if(nend !== len){ - var match = caml_string_get(str, nend), switch$0 = 0; - if(48 <= match){ - if(58 > match) switch$0 = 1; - } - else if(45 === match) switch$0 = 1; - if(switch$0){var j$0 = nend + 1 | 0, nend = j$0; continue;} - } - if(nstart === nend) - var indent = 0; - else - try{ - var - _bs_ = - runtime.caml_int_of_string - (caml_call3(Stdlib_String[15], str, nstart, nend - nstart | 0)), - indent = _bs_; - } - catch(_bt_){ - var _br_ = caml_wrap_exception(_bt_); - if(_br_[1] !== Stdlib[7]) throw caml_maybe_attach_backtrace(_br_, 0); - var indent = invalid_box(0); - } - var exp_end = parse_spaces(nend); - if(exp_end !== len) invalid_box(0); - var switch$1 = 0; - if - (caml_string_notequal(box_name, cst$43) - && caml_string_notequal(box_name, "b")) - var - box_type = - caml_string_notequal(box_name, "h") - ? caml_string_notequal - (box_name, "hov") - ? caml_string_notequal - (box_name, "hv") - ? caml_string_notequal(box_name, "v") ? invalid_box(0) : 1 - : 2 - : 3 - : 0; - else - switch$1 = 1; - if(switch$1) var box_type = 4; - return [0, indent, box_type]; - } - } - } - function make_padding_fmt_ebb(pad, fmt){ - if(typeof pad === "number") return [0, 0, fmt]; - if(0 === pad[0]){var w = pad[2], s = pad[1]; return [0, [0, s, w], fmt];} - var s$0 = pad[1]; - return [0, [1, s$0], fmt]; - } - function make_padprec_fmt_ebb(pad, prec, fmt){ - if(typeof prec === "number") - var match = prec ? [0, 1, fmt] : [0, 0, fmt]; - else - var p = prec[1], match = [0, [0, p], fmt]; - var prec$0 = match[1]; - if(typeof pad === "number") return [0, 0, prec$0, fmt]; - if(0 === pad[0]){ - var w = pad[2], s = pad[1]; - return [0, [0, s, w], prec$0, fmt]; - } - var s$0 = pad[1]; - return [0, [1, s$0], prec$0, fmt]; - } - function fmt_ebb_of_string(legacy_behavior, str){ - if(legacy_behavior) - var flag = legacy_behavior[1], legacy_behavior$0 = flag; - else - var legacy_behavior$0 = 1; - function invalid_format_message(str_ind, msg){ - return caml_call3(failwith_message(_z_), str, str_ind, msg); - } - function unexpected_end_of_format(end_ind){ - return invalid_format_message(end_ind, cst_unexpected_end_of_format); - } - function invalid_format_without(str_ind, c, s){ - return caml_call4(failwith_message(_A_), str, str_ind, c, s); - } - function expected_character(str_ind, expected, read){ - return caml_call4(failwith_message(_B_), str, str_ind, expected, read); - } - function add_literal(lit_start, str_ind, fmt){ - var size = str_ind - lit_start | 0; - return 0 === size - ? [0, fmt] - : 1 - === size - ? [0, [12, caml_string_get(str, lit_start), fmt]] - : [0, - [11, - caml_call3(Stdlib_String[15], str, lit_start, size), - fmt]]; - } - function parse(lit_start, end_ind){ - var str_ind = lit_start; - for(;;){ - if(str_ind === end_ind) return add_literal(lit_start, str_ind, 0); - var match = caml_string_get(str, str_ind); - if(37 === match){ - var str_ind$2 = str_ind + 1 | 0; - if(str_ind$2 === end_ind) unexpected_end_of_format(end_ind); - var - match$1 = - 95 === caml_string_get(str, str_ind$2) - ? parse_flags(str_ind, str_ind$2 + 1 | 0, end_ind, 1) - : parse_flags(str_ind, str_ind$2, end_ind, 0), - fmt_rest = match$1[1]; - return add_literal(lit_start, str_ind, fmt_rest); - } - if(64 !== match){ - var str_ind$1 = str_ind + 1 | 0, str_ind = str_ind$1; - continue; - } - var str_ind$0 = str_ind + 1 | 0; - if(str_ind$0 === end_ind) - var match$0 = _N_; - else{ - var c = caml_string_get(str, str_ind$0), switch$0 = 0; - if(65 <= c) - if(94 <= c){ - var switcher = c - 123 | 0; - if(2 < switcher >>> 0) - switch$0 = 1; - else - switch(switcher){ - case 0: - var match$0 = parse_tag(1, str_ind$0 + 1 | 0, end_ind); break; - case 1: - switch$0 = 1; break; - default: - var - fmt_rest$2 = parse(str_ind$0 + 1 | 0, end_ind)[1], - match$0 = [0, [17, 1, fmt_rest$2]]; - } - } - else if(91 <= c) - switch(c - 91 | 0){ - case 0: - var match$0 = parse_tag(0, str_ind$0 + 1 | 0, end_ind); break; - case 1: - switch$0 = 1; break; - default: - var - fmt_rest$3 = parse(str_ind$0 + 1 | 0, end_ind)[1], - match$0 = [0, [17, 0, fmt_rest$3]]; - } - else - switch$0 = 1; - else if(10 === c) - var - fmt_rest$4 = parse(str_ind$0 + 1 | 0, end_ind)[1], - match$0 = [0, [17, 3, fmt_rest$4]]; - else if(32 <= c) - switch(c - 32 | 0){ - case 0: - var - fmt_rest$5 = parse(str_ind$0 + 1 | 0, end_ind)[1], - match$0 = [0, [17, _O_, fmt_rest$5]]; - break; - case 5: - var switch$1 = 0; - if - ((str_ind$0 + 1 | 0) < end_ind - && 37 === caml_string_get(str, str_ind$0 + 1 | 0)) - var - fmt_rest$6 = parse(str_ind$0 + 2 | 0, end_ind)[1], - match$0 = [0, [17, 6, fmt_rest$6]]; - else - switch$1 = 1; - if(switch$1) - var - fmt_rest$7 = parse(str_ind$0, end_ind)[1], - match$0 = [0, [12, 64, fmt_rest$7]]; - break; - case 12: - var - fmt_rest$8 = parse(str_ind$0 + 1 | 0, end_ind)[1], - match$0 = [0, [17, _P_, fmt_rest$8]]; - break; - case 14: - var - fmt_rest$9 = parse(str_ind$0 + 1 | 0, end_ind)[1], - match$0 = [0, [17, 4, fmt_rest$9]]; - break; - case 27: - var str_ind$3 = str_ind$0 + 1 | 0; - try{ - var - _bg_ = str_ind$3 === end_ind ? 1 : 0, - _bh_ = _bg_ || (60 !== caml_string_get(str, str_ind$3) ? 1 : 0); - if(_bh_) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var - str_ind_1 = parse_spaces(str_ind$3 + 1 | 0, end_ind), - match$2 = caml_string_get(str, str_ind_1), - switch$2 = 0; - if(48 <= match$2){ - if(58 > match$2) switch$2 = 1; - } - else if(45 === match$2) switch$2 = 1; - if(! switch$2) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var - match$3 = parse_integer(str_ind_1, end_ind), - width = match$3[2], - str_ind_2 = match$3[1], - str_ind_3 = parse_spaces(str_ind_2, end_ind), - switcher$0 = caml_string_get(str, str_ind_3) - 45 | 0, - switch$3 = 0; - if(12 < switcher$0 >>> 0) - if(17 === switcher$0) - var - s = - caml_call3 - (Stdlib_String[15], - str, - str_ind$3 - 2 | 0, - (str_ind_3 - str_ind$3 | 0) + 3 | 0), - _bi_ = [0, s, width, 0], - _bj_ = str_ind_3 + 1 | 0, - formatting_lit$0 = _bi_, - next_ind = _bj_; - else - switch$3 = 1; - else if(1 < switcher$0 - 1 >>> 0){ - var - match$4 = parse_integer(str_ind_3, end_ind), - offset = match$4[2], - str_ind_4 = match$4[1], - str_ind_5 = parse_spaces(str_ind_4, end_ind); - if(62 !== caml_string_get(str, str_ind_5)) - throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var - s$0 = - caml_call3 - (Stdlib_String[15], - str, - str_ind$3 - 2 | 0, - (str_ind_5 - str_ind$3 | 0) + 3 | 0), - _bk_ = [0, s$0, width, offset], - _bl_ = str_ind_5 + 1 | 0, - formatting_lit$0 = _bk_, - next_ind = _bl_; - } - else - switch$3 = 1; - if(switch$3) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - } - catch(_bq_){ - var _bf_ = caml_wrap_exception(_bq_); - if(_bf_ !== Stdlib[8] && _bf_[1] !== Stdlib[7]) - throw caml_maybe_attach_backtrace(_bf_, 0); - var formatting_lit$0 = formatting_lit, next_ind = str_ind$3; - } - var - fmt_rest$12 = parse(next_ind, end_ind)[1], - match$0 = [0, [17, formatting_lit$0, fmt_rest$12]]; - break; - case 28: - var str_ind$4 = str_ind$0 + 1 | 0; - try{ - var - str_ind_1$0 = parse_spaces(str_ind$4, end_ind), - match$6 = caml_string_get(str, str_ind_1$0), - switch$4 = 0; - if(48 <= match$6){ - if(58 > match$6) switch$4 = 1; - } - else if(45 === match$6) switch$4 = 1; - if(switch$4){ - var - match$7 = parse_integer(str_ind_1$0, end_ind), - size = match$7[2], - str_ind_2$0 = match$7[1], - str_ind_3$0 = parse_spaces(str_ind_2$0, end_ind); - if(62 !== caml_string_get(str, str_ind_3$0)) - throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var - s$1 = - caml_call3 - (Stdlib_String[15], - str, - str_ind$4 - 2 | 0, - (str_ind_3$0 - str_ind$4 | 0) + 3 | 0), - _bo_ = [0, [0, str_ind_3$0 + 1 | 0, [1, s$1, size]]]; - } - else - var _bo_ = 0; - var _bn_ = _bo_; - } - catch(_bp_){ - var _bm_ = caml_wrap_exception(_bp_); - if(_bm_ !== Stdlib[8] && _bm_[1] !== Stdlib[7]) - throw caml_maybe_attach_backtrace(_bm_, 0); - var _bn_ = 0; - } - if(_bn_) - var - match$5 = _bn_[1], - formatting_lit$1 = match$5[2], - next_ind$0 = match$5[1], - fmt_rest$13 = parse(next_ind$0, end_ind)[1], - _be_ = [0, [17, formatting_lit$1, fmt_rest$13]]; - else - var - fmt_rest$14 = parse(str_ind$4, end_ind)[1], - _be_ = [0, [17, _Q_, fmt_rest$14]]; - var match$0 = _be_; - break; - case 31: - var - fmt_rest$10 = parse(str_ind$0 + 1 | 0, end_ind)[1], - match$0 = [0, [17, 2, fmt_rest$10]]; - break; - case 32: - var - fmt_rest$11 = parse(str_ind$0 + 1 | 0, end_ind)[1], - match$0 = [0, [17, 5, fmt_rest$11]]; - break; - default: switch$0 = 1; - } - else - switch$0 = 1; - if(switch$0) - var - fmt_rest$1 = parse(str_ind$0 + 1 | 0, end_ind)[1], - match$0 = [0, [17, [2, c], fmt_rest$1]]; - } - var fmt_rest$0 = match$0[1]; - return add_literal(lit_start, str_ind, fmt_rest$0); - } - } - function parse_conversion - (pct_ind, - str_ind, - end_ind, - plus, - hash, - space, - ign, - pad, - prec, - padprec, - symb){ - var - plus_used = [0, 0], - hash_used = [0, 0], - space_used = [0, 0], - ign_used = [0, 0], - pad_used = [0, 0], - prec_used = [0, 0]; - function get_plus(param){plus_used[1] = 1; return plus;} - function get_hash(param){hash_used[1] = 1; return hash;} - function get_space(param){space_used[1] = 1; return space;} - function get_ign(param){ign_used[1] = 1; return ign;} - function get_pad(param){pad_used[1] = 1; return pad;} - function get_prec(param){prec_used[1] = 1; return prec;} - function get_padprec(param){pad_used[1] = 1; return padprec;} - function get_int_pad(param){ - var pad = get_pad(0), match = get_prec(0); - if(typeof match === "number" && ! match) return pad; - if(typeof pad === "number") return 0; - if(0 !== pad[0]) - return 2 <= pad[1] - ? legacy_behavior$0 - ? _H_ - : incompatible_flag(pct_ind, str_ind, 48, cst_precision$1) - : pad; - if(2 > pad[1]) return pad; - var n = pad[2]; - return legacy_behavior$0 - ? [0, 1, n] - : incompatible_flag(pct_ind, str_ind, 48, cst_precision$0); - } - function check_no_0(symb, pad){ - if(typeof pad === "number") return pad; - if(0 !== pad[0]) - return 2 <= pad[1] - ? legacy_behavior$0 - ? _I_ - : incompatible_flag(pct_ind, str_ind, symb, cst_0$1) - : pad; - if(2 > pad[1]) return pad; - var width = pad[2]; - return legacy_behavior$0 - ? [0, 1, width] - : incompatible_flag(pct_ind, str_ind, symb, cst_0$0); - } - function opt_of_pad(c, pad){ - if(typeof pad === "number") return 0; - if(0 === pad[0]) - switch(pad[1]){ - case 0: - var width = pad[2]; - return legacy_behavior$0 - ? [0, width] - : incompatible_flag(pct_ind, str_ind, c, cst$24); - case 1: - var width$0 = pad[2]; return [0, width$0]; - default: - var width$1 = pad[2]; - return legacy_behavior$0 - ? [0, width$1] - : incompatible_flag(pct_ind, str_ind, c, cst_0$2); - } - return incompatible_flag(pct_ind, str_ind, c, cst$25); - } - function get_pad_opt(c){return opt_of_pad(c, get_pad(0));} - function get_padprec_opt(c){return opt_of_pad(c, get_padprec(0));} - var switch$0 = 0; - if(124 <= symb) - switch$0 = 1; - else - switch(symb){ - case 33: - var - fmt_rest$5 = parse(str_ind, end_ind)[1], - fmt_result = [0, [10, fmt_rest$5]]; - break; - case 40: - var - sub_end = search_subformat_end(str_ind, end_ind, 41), - fmt_rest$7 = parse(sub_end + 2 | 0, end_ind)[1], - sub_fmt = parse(str_ind, sub_end)[1], - sub_fmtty = fmtty_of_fmt(sub_fmt); - if(get_ign(0)) - var - ignored$2 = [9, get_pad_opt(95), sub_fmtty], - _aN_ = [0, [23, ignored$2, fmt_rest$7]]; - else - var _aN_ = [0, [14, get_pad_opt(40), sub_fmtty, fmt_rest$7]]; - var fmt_result = _aN_; - break; - case 44: - var fmt_result = parse(str_ind, end_ind); break; - case 67: - var - fmt_rest$10 = parse(str_ind, end_ind)[1], - _aP_ = - get_ign(0) ? [0, [23, 1, fmt_rest$10]] : [0, [1, fmt_rest$10]], - fmt_result = _aP_; - break; - case 78: - var fmt_rest$14 = parse(str_ind, end_ind)[1], counter$0 = 2; - if(get_ign(0)) - var - ignored$6 = [11, counter$0], - _aV_ = [0, [23, ignored$6, fmt_rest$14]]; - else - var _aV_ = [0, [21, counter$0, fmt_rest$14]]; - var fmt_result = _aV_; - break; - case 83: - var - pad$6 = check_no_0(symb, get_padprec(0)), - fmt_rest$15 = parse(str_ind, end_ind)[1]; - if(get_ign(0)) - var - ignored$7 = [1, get_padprec_opt(95)], - _aW_ = [0, [23, ignored$7, fmt_rest$15]]; - else - var - match$5 = make_padding_fmt_ebb(pad$6, fmt_rest$15), - fmt_rest$16 = match$5[2], - pad$7 = match$5[1], - _aW_ = [0, [3, pad$7, fmt_rest$16]]; - var fmt_result = _aW_; - break; - case 91: - if(str_ind === end_ind) unexpected_end_of_format(end_ind); - var - char_set = create_char_set(0), - add_char = function(c){return add_in_char_set(char_set, c);}, - add_range = - function(c$0, c){ - if(c >= c$0){ - var i = c$0; - for(;;){ - add_in_char_set(char_set, caml_call1(Stdlib[29], i)); - var _bd_ = i + 1 | 0; - if(c !== i){var i = _bd_; continue;} - break; - } - } - return 0; - }, - fail_single_percent = - function(str_ind){ - return caml_call2(failwith_message(_R_), str, str_ind); - }, - parse_char_set_content = - function(counter, str_ind, end_ind){ - var str_ind$0 = str_ind; - for(;;){ - if(str_ind$0 === end_ind) unexpected_end_of_format(end_ind); - var c = caml_string_get(str, str_ind$0); - if(45 === c){ - add_char(45); - var str_ind$1 = str_ind$0 + 1 | 0, str_ind$0 = str_ind$1; - continue; - } - if(93 === c) return str_ind$0 + 1 | 0; - var _bc_ = str_ind$0 + 1 | 0; - if(counter >= 50) - return caml_trampoline_return - (parse_char_set_after_char$0, [0, _bc_, end_ind, c]); - var counter$0 = counter + 1 | 0; - return parse_char_set_after_char$0(counter$0, _bc_, end_ind, c); - } - }, - parse_char_set_after_char$0 = - function(counter, str_ind, end_ind, c){ - var str_ind$0 = str_ind, c$0 = c; - for(;;){ - if(str_ind$0 === end_ind) unexpected_end_of_format(end_ind); - var c$1 = caml_string_get(str, str_ind$0), switch$0 = 0; - if(46 <= c$1){ - if(64 === c$1) - switch$0 = 1; - else if(93 === c$1){add_char(c$0); return str_ind$0 + 1 | 0;} - } - else if(37 === c$1) - switch$0 = 1; - else if(45 <= c$1){ - var str_ind$2 = str_ind$0 + 1 | 0; - if(str_ind$2 === end_ind) unexpected_end_of_format(end_ind); - var c$2 = caml_string_get(str, str_ind$2); - if(37 === c$2){ - if((str_ind$2 + 1 | 0) === end_ind) - unexpected_end_of_format(end_ind); - var c$3 = caml_string_get(str, str_ind$2 + 1 | 0); - if(37 !== c$3 && 64 !== c$3) - return fail_single_percent(str_ind$2); - add_range(c$0, c$3); - var _ba_ = str_ind$2 + 2 | 0; - if(counter >= 50) - return caml_trampoline_return - (parse_char_set_content, [0, _ba_, end_ind]); - var counter$2 = counter + 1 | 0; - return parse_char_set_content(counter$2, _ba_, end_ind); - } - if(93 === c$2){ - add_char(c$0); - add_char(45); - return str_ind$2 + 1 | 0; - } - add_range(c$0, c$2); - var _bb_ = str_ind$2 + 1 | 0; - if(counter >= 50) - return caml_trampoline_return - (parse_char_set_content, [0, _bb_, end_ind]); - var counter$1 = counter + 1 | 0; - return parse_char_set_content(counter$1, _bb_, end_ind); - } - if(switch$0 && 37 === c$0){ - add_char(c$1); - var _a$_ = str_ind$0 + 1 | 0; - if(counter >= 50) - return caml_trampoline_return - (parse_char_set_content, [0, _a$_, end_ind]); - var counter$0 = counter + 1 | 0; - return parse_char_set_content(counter$0, _a$_, end_ind); - } - if(37 === c$0) fail_single_percent(str_ind$0); - add_char(c$0); - var - str_ind$1 = str_ind$0 + 1 | 0, - str_ind$0 = str_ind$1, - c$0 = c$1; - } - }, - parse_char_set_after_char = - function(str_ind, end_ind, c){ - return caml_trampoline - (parse_char_set_after_char$0(0, str_ind, end_ind, c)); - }; - if(str_ind === end_ind) unexpected_end_of_format(end_ind); - if(94 === caml_string_get(str, str_ind)) - var str_ind$0 = str_ind + 1 | 0, reverse = 1, str_ind$1 = str_ind$0; - else - var reverse = 0, str_ind$1 = str_ind; - if(str_ind$1 === end_ind) unexpected_end_of_format(end_ind); - var - c = caml_string_get(str, str_ind$1), - next_ind = parse_char_set_after_char(str_ind$1 + 1 | 0, end_ind, c), - char_set$0 = freeze_char_set(char_set), - char_set$1 = reverse ? rev_char_set(char_set$0) : char_set$0, - fmt_rest$19 = parse(next_ind, end_ind)[1]; - if(get_ign(0)) - var - ignored$9 = [10, get_pad_opt(95), char_set$1], - _a1_ = [0, [23, ignored$9, fmt_rest$19]]; - else - var _a1_ = [0, [20, get_pad_opt(91), char_set$1, fmt_rest$19]]; - var fmt_result = _a1_; - break; - case 97: - var - fmt_rest$20 = parse(str_ind, end_ind)[1], - fmt_result = [0, [15, fmt_rest$20]]; - break; - case 99: - var - char_format = - function(fmt_rest){ - return get_ign(0) ? [0, [23, 0, fmt_rest]] : [0, [0, fmt_rest]]; - }, - fmt_rest$21 = parse(str_ind, end_ind)[1], - match$7 = get_pad_opt(99); - if(match$7){ - if(0 === match$7[1]) - var - _a2_ = - get_ign(0) ? [0, [23, 3, fmt_rest$21]] : [0, [22, fmt_rest$21]], - _a3_ = _a2_; - else - var - _a3_ = - legacy_behavior$0 - ? char_format(fmt_rest$21) - : invalid_format_message - (str_ind, cst_non_zero_widths_are_unsupp); - var _a4_ = _a3_; - } - else - var _a4_ = char_format(fmt_rest$21); - var fmt_result = _a4_; - break; - case 114: - var - fmt_rest$22 = parse(str_ind, end_ind)[1], - _a5_ = - get_ign(0) ? [0, [23, 2, fmt_rest$22]] : [0, [19, fmt_rest$22]], - fmt_result = _a5_; - break; - case 115: - var - pad$9 = check_no_0(symb, get_padprec(0)), - fmt_rest$23 = parse(str_ind, end_ind)[1]; - if(get_ign(0)) - var - ignored$10 = [0, get_padprec_opt(95)], - _a6_ = [0, [23, ignored$10, fmt_rest$23]]; - else - var - match$8 = make_padding_fmt_ebb(pad$9, fmt_rest$23), - fmt_rest$24 = match$8[2], - pad$10 = match$8[1], - _a6_ = [0, [2, pad$10, fmt_rest$24]]; - var fmt_result = _a6_; - break; - case 116: - var - fmt_rest$25 = parse(str_ind, end_ind)[1], - fmt_result = [0, [16, fmt_rest$25]]; - break; - case 123: - var - sub_end$0 = search_subformat_end(str_ind, end_ind, 125), - sub_fmt$0 = parse(str_ind, sub_end$0)[1], - fmt_rest$26 = parse(sub_end$0 + 2 | 0, end_ind)[1], - sub_fmtty$0 = fmtty_of_fmt(sub_fmt$0); - if(get_ign(0)) - var - ignored$11 = [8, get_pad_opt(95), sub_fmtty$0], - _a7_ = [0, [23, ignored$11, fmt_rest$26]]; - else - var _a7_ = [0, [13, get_pad_opt(123), sub_fmtty$0, fmt_rest$26]]; - var fmt_result = _a7_; - break; - case 66: - case 98: - var - pad$3 = check_no_0(symb, get_padprec(0)), - fmt_rest$8 = parse(str_ind, end_ind)[1]; - if(get_ign(0)) - var - ignored$3 = [7, get_padprec_opt(95)], - _aO_ = [0, [23, ignored$3, fmt_rest$8]]; - else - var - match$3 = make_padding_fmt_ebb(pad$3, fmt_rest$8), - fmt_rest$9 = match$3[2], - pad$4 = match$3[1], - _aO_ = [0, [9, pad$4, fmt_rest$9]]; - var fmt_result = _aO_; - break; - case 37: - case 64: - var - fmt_rest$6 = parse(str_ind, end_ind)[1], - fmt_result = [0, [12, symb, fmt_rest$6]]; - break; - case 76: - case 108: - case 110: - var switch$1 = 0; - if(str_ind === end_ind) - switch$1 = 1; - else{ - var - symb$0 = caml_string_get(str, str_ind), - _a8_ = symb$0 - 88 | 0, - switch$2 = 0; - if(32 >= _a8_ >>> 0) - switch(_a8_){ - case 0: - case 12: - case 17: - case 23: - case 29: - case 32: - var _aU_ = 1; switch$2 = 1; break; - } - if(! switch$2) var _aU_ = 0; - if(_aU_) switch$0 = 1; else switch$1 = 1; - } - if(switch$1){ - var fmt_rest$13 = parse(str_ind, end_ind)[1], switch$3 = 0; - if(108 <= symb){ - if(111 > symb) - switch(symb - 108 | 0){ - case 0: - var counter = 0; switch$3 = 1; break; - case 1: break; - default: var counter = 1; switch$3 = 1; - } - } - else if(76 === symb){var counter = 2; switch$3 = 1;} - if(! switch$3) - throw caml_maybe_attach_backtrace([0, Assert_failure, _V_], 1); - if(get_ign(0)) - var - ignored$5 = [11, counter], - _aT_ = [0, [23, ignored$5, fmt_rest$13]]; - else - var _aT_ = [0, [21, counter, fmt_rest$13]]; - var fmt_result = _aT_; - } - break; - case 32: - case 35: - case 43: - case 45: - case 95: - var - fmt_result = caml_call3(failwith_message(_M_), str, pct_ind, symb); - break; - case 88: - case 100: - case 105: - case 111: - case 117: - case 120: - var - _aX_ = get_space(0), - _aY_ = get_hash(0), - iconv$2 = - compute_int_conv(pct_ind, str_ind, get_plus(0), _aY_, _aX_, symb), - fmt_rest$17 = parse(str_ind, end_ind)[1]; - if(get_ign(0)) - var - ignored$8 = [2, iconv$2, get_pad_opt(95)], - _aZ_ = [0, [23, ignored$8, fmt_rest$17]]; - else - var - _a0_ = get_prec(0), - match$6 = make_padprec_fmt_ebb(get_int_pad(0), _a0_, fmt_rest$17), - fmt_rest$18 = match$6[3], - prec$4 = match$6[2], - pad$8 = match$6[1], - _aZ_ = [0, [4, iconv$2, pad$8, prec$4, fmt_rest$18]]; - var fmt_result = _aZ_; - break; - case 69: - case 70: - case 71: - case 72: - case 101: - case 102: - case 103: - case 104: - var - space$1 = get_space(0), - hash$1 = get_hash(0), - plus$2 = get_plus(0), - flag = - plus$2 - ? space$1 - ? legacy_behavior$0 - ? 1 - : incompatible_flag(pct_ind, str_ind, 32, cst$36) - : 1 - : space$1 ? 2 : 0, - switch$4 = 0; - if(73 <= symb){ - var switcher = symb - 101 | 0; - if(3 < switcher >>> 0) - switch$4 = 1; - else{ - switch(switcher){ - case 0: - var _a9_ = 1; break; - case 1: - var _a9_ = 0; break; - case 2: - var _a9_ = 3; break; - default: var _a9_ = 6; - } - var kind = _a9_; - } - } - else if(69 <= symb){ - var switch$5 = 0; - switch(symb - 69 | 0){ - case 0: - var _a__ = 2; break; - case 1: - switch$4 = 1; switch$5 = 1; break; - case 2: - var _a__ = 4; break; - default: var _a__ = 7; - } - if(! switch$5) var kind = _a__; - } - else - switch$4 = 1; - if(switch$4){ - var switch$6 = 0; - if(hash$1){ - if(70 === symb){var kind = 8; switch$6 = 1;} - } - else if(70 === symb){var kind = 5; switch$6 = 1;} - if(! switch$6) - throw caml_maybe_attach_backtrace([0, Assert_failure, _X_], 1); - } - var - fconv = [0, flag, kind], - fmt_rest$11 = parse(str_ind, end_ind)[1]; - if(get_ign(0)){ - var match = get_prec(0); - if(typeof match === "number") - var - _aQ_ = match ? incompatible_flag(pct_ind, str_ind, 95, cst$26) : 0; - else - var ndec = match[1], _aQ_ = [0, ndec]; - var - ignored$4 = [6, get_pad_opt(95), _aQ_], - _aR_ = [0, [23, ignored$4, fmt_rest$11]]; - } - else - var - _aS_ = get_prec(0), - match$4 = make_padprec_fmt_ebb(get_pad(0), _aS_, fmt_rest$11), - fmt_rest$12 = match$4[3], - prec$3 = match$4[2], - pad$5 = match$4[1], - _aR_ = [0, [8, fconv, pad$5, prec$3, fmt_rest$12]]; - var fmt_result = _aR_; - break; - default: switch$0 = 1; - } - if(switch$0){ - var switch$7 = 0; - if(108 <= symb){ - if(111 > symb){ - var switch$8 = 0; - switch(symb - 108 | 0){ - case 0: - var - _ax_ = caml_string_get(str, str_ind), - _ay_ = get_space(0), - _az_ = get_hash(0), - iconv = - compute_int_conv - (pct_ind, str_ind + 1 | 0, get_plus(0), _az_, _ay_, _ax_), - fmt_rest = parse(str_ind + 1 | 0, end_ind)[1]; - if(get_ign(0)) - var - ignored = [3, iconv, get_pad_opt(95)], - _aA_ = [0, [23, ignored, fmt_rest]]; - else - var - _aC_ = get_prec(0), - match$0 = make_padprec_fmt_ebb(get_int_pad(0), _aC_, fmt_rest), - fmt_rest$0 = match$0[3], - prec$0 = match$0[2], - pad$0 = match$0[1], - _aA_ = [0, [5, iconv, pad$0, prec$0, fmt_rest$0]]; - var _aB_ = _aA_; - switch$8 = 1; - break; - case 1: break; - default: - var - _aD_ = caml_string_get(str, str_ind), - _aE_ = get_space(0), - _aF_ = get_hash(0), - iconv$0 = - compute_int_conv - (pct_ind, str_ind + 1 | 0, get_plus(0), _aF_, _aE_, _aD_), - fmt_rest$1 = parse(str_ind + 1 | 0, end_ind)[1]; - if(get_ign(0)) - var - ignored$0 = [4, iconv$0, get_pad_opt(95)], - _aG_ = [0, [23, ignored$0, fmt_rest$1]]; - else - var - _aH_ = get_prec(0), - match$1 = make_padprec_fmt_ebb(get_int_pad(0), _aH_, fmt_rest$1), - fmt_rest$2 = match$1[3], - prec$1 = match$1[2], - pad$1 = match$1[1], - _aG_ = [0, [6, iconv$0, pad$1, prec$1, fmt_rest$2]]; - var _aB_ = _aG_; - switch$8 = 1; - } - if(switch$8){var fmt_result = _aB_; switch$7 = 1;} - } - } - else if(76 === symb){ - var - _aI_ = caml_string_get(str, str_ind), - _aJ_ = get_space(0), - _aK_ = get_hash(0), - iconv$1 = - compute_int_conv - (pct_ind, str_ind + 1 | 0, get_plus(0), _aK_, _aJ_, _aI_), - fmt_rest$3 = parse(str_ind + 1 | 0, end_ind)[1]; - if(get_ign(0)) - var - ignored$1 = [5, iconv$1, get_pad_opt(95)], - _aL_ = [0, [23, ignored$1, fmt_rest$3]]; - else - var - _aM_ = get_prec(0), - match$2 = make_padprec_fmt_ebb(get_int_pad(0), _aM_, fmt_rest$3), - fmt_rest$4 = match$2[3], - prec$2 = match$2[2], - pad$2 = match$2[1], - _aL_ = [0, [7, iconv$1, pad$2, prec$2, fmt_rest$4]]; - var fmt_result = _aL_; - switch$7 = 1; - } - if(! switch$7) - var - fmt_result = - caml_call3(failwith_message(_J_), str, str_ind - 1 | 0, symb); - } - if(1 - legacy_behavior$0){ - var _ao_ = 1 - plus_used[1], plus$0 = _ao_ ? plus : _ao_; - if(plus$0) incompatible_flag(pct_ind, str_ind, symb, cst$27); - var _ap_ = 1 - hash_used[1], hash$0 = _ap_ ? hash : _ap_; - if(hash$0) incompatible_flag(pct_ind, str_ind, symb, cst$28); - var _aq_ = 1 - space_used[1], space$0 = _aq_ ? space : _aq_; - if(space$0) incompatible_flag(pct_ind, str_ind, symb, cst$29); - var - _ar_ = 1 - pad_used[1], - _as_ = _ar_ ? caml_notequal([0, pad], _K_) : _ar_; - if(_as_) incompatible_flag(pct_ind, str_ind, symb, cst_padding$0); - var - _at_ = 1 - prec_used[1], - _au_ = _at_ ? caml_notequal([0, prec], _L_) : _at_; - if(_au_){ - var _av_ = ign ? 95 : symb; - incompatible_flag(pct_ind, str_ind, _av_, cst_precision$2); - } - var plus$1 = ign ? plus : ign; - if(plus$1) incompatible_flag(pct_ind, str_ind, 95, cst$30); - } - var _aw_ = 1 - ign_used[1], ign$0 = _aw_ ? ign : _aw_; - if(ign$0){ - var switch$9 = 0; - if(38 <= symb){ - if(44 !== symb && 64 !== symb) switch$9 = 1; - } - else if(33 !== symb && 37 > symb) switch$9 = 1; - var switch$10 = 0; - if(switch$9 || ! legacy_behavior$0) switch$10 = 1; - if(switch$10) incompatible_flag(pct_ind, str_ind, symb, cst$31); - } - return fmt_result; - } - function parse_after_precision - (pct_ind, str_ind, end_ind, minus, plus, hash, space, ign, pad, prec){ - if(str_ind === end_ind) unexpected_end_of_format(end_ind); - function parse_conv(padprec){ - return parse_conversion - (pct_ind, - str_ind + 1 | 0, - end_ind, - plus, - hash, - space, - ign, - pad, - prec, - padprec, - caml_string_get(str, str_ind)); - } - if(typeof pad !== "number") return parse_conv(pad); - if(typeof prec === "number" && ! prec) return parse_conv(0); - if(minus){ - if(typeof prec === "number") return parse_conv(_F_); - var n = prec[1]; - return parse_conv([0, 0, n]); - } - if(typeof prec === "number") return parse_conv(_G_); - var n$0 = prec[1]; - return parse_conv([0, 1, n$0]); - } - function parse_after_padding - (pct_ind, str_ind, end_ind, minus, plus, hash, space, ign, pad){ - if(str_ind === end_ind) unexpected_end_of_format(end_ind); - var symb = caml_string_get(str, str_ind); - if(46 !== symb) - return parse_conversion - (pct_ind, - str_ind + 1 | 0, - end_ind, - plus, - hash, - space, - ign, - pad, - 0, - pad, - symb); - var str_ind$0 = str_ind + 1 | 0; - if(str_ind$0 === end_ind) unexpected_end_of_format(end_ind); - function parse_literal(minus, str_ind){ - var - match = parse_positive(str_ind, end_ind, 0), - prec = match[2], - new_ind = match[1]; - return parse_after_precision - (pct_ind, - new_ind, - end_ind, - minus, - plus, - hash, - space, - ign, - pad, - [0, prec]); - } - var symb$0 = caml_string_get(str, str_ind$0); - if(48 <= symb$0){ - if(58 > symb$0) return parse_literal(minus, str_ind$0); - } - else if(42 <= symb$0) - switch(symb$0 - 42 | 0){ - case 0: - return parse_after_precision - (pct_ind, - str_ind$0 + 1 | 0, - end_ind, - minus, - plus, - hash, - space, - ign, - pad, - 1); - case 1: - case 3: - if(legacy_behavior$0){ - var - _an_ = str_ind$0 + 1 | 0, - minus$0 = minus || (45 === symb$0 ? 1 : 0); - return parse_literal(minus$0, _an_); - } - break; - } - return legacy_behavior$0 - ? parse_after_precision - (pct_ind, - str_ind$0, - end_ind, - minus, - plus, - hash, - space, - ign, - pad, - _E_) - : invalid_format_without(str_ind$0 - 1 | 0, 46, cst_precision); - } - function parse_flags(pct_ind, str_ind, end_ind, ign){ - var - zero = [0, 0], - minus = [0, 0], - plus = [0, 0], - space = [0, 0], - hash = [0, 0]; - function set_flag(str_ind, flag){ - var _ak_ = flag[1], _al_ = _ak_ ? 1 - legacy_behavior$0 : _ak_; - if(_al_){ - var _am_ = caml_string_get(str, str_ind); - caml_call3(failwith_message(_C_), str, str_ind, _am_); - } - flag[1] = 1; - return 0; - } - var str_ind$0 = str_ind; - for(;;){ - if(str_ind$0 === end_ind) unexpected_end_of_format(end_ind); - var switcher = caml_string_get(str, str_ind$0) - 32 | 0; - if(16 >= switcher >>> 0) - switch(switcher){ - case 0: - set_flag(str_ind$0, space); - var str_ind$1 = str_ind$0 + 1 | 0, str_ind$0 = str_ind$1; - continue; - case 3: - set_flag(str_ind$0, hash); - var str_ind$2 = str_ind$0 + 1 | 0, str_ind$0 = str_ind$2; - continue; - case 11: - set_flag(str_ind$0, plus); - var str_ind$3 = str_ind$0 + 1 | 0, str_ind$0 = str_ind$3; - continue; - case 13: - set_flag(str_ind$0, minus); - var str_ind$4 = str_ind$0 + 1 | 0, str_ind$0 = str_ind$4; - continue; - case 16: - set_flag(str_ind$0, zero); - var str_ind$5 = str_ind$0 + 1 | 0, str_ind$0 = str_ind$5; - continue; - } - var - space$0 = space[1], - hash$0 = hash[1], - plus$0 = plus[1], - minus$0 = minus[1], - zero$0 = zero[1]; - if(str_ind$0 === end_ind) unexpected_end_of_format(end_ind); - var - padty = - zero$0 - ? minus$0 - ? legacy_behavior$0 - ? 0 - : incompatible_flag(pct_ind, str_ind$0, 45, cst_0) - : 2 - : minus$0 ? 0 : 1, - match = caml_string_get(str, str_ind$0); - if(48 <= match){ - if(58 > match){ - var - match$0 = parse_positive(str_ind$0, end_ind, 0), - width = match$0[2], - new_ind = match$0[1]; - return parse_after_padding - (pct_ind, - new_ind, - end_ind, - minus$0, - plus$0, - hash$0, - space$0, - ign, - [0, padty, width]); - } - } - else if(42 === match) - return parse_after_padding - (pct_ind, - str_ind$0 + 1 | 0, - end_ind, - minus$0, - plus$0, - hash$0, - space$0, - ign, - [1, padty]); - switch(padty){ - case 0: - if(1 - legacy_behavior$0) - invalid_format_without(str_ind$0 - 1 | 0, 45, cst_padding); - return parse_after_padding - (pct_ind, - str_ind$0, - end_ind, - minus$0, - plus$0, - hash$0, - space$0, - ign, - 0); - case 1: - return parse_after_padding - (pct_ind, - str_ind$0, - end_ind, - minus$0, - plus$0, - hash$0, - space$0, - ign, - 0); - default: - return parse_after_padding - (pct_ind, - str_ind$0, - end_ind, - minus$0, - plus$0, - hash$0, - space$0, - ign, - _D_); - } - } - } - function parse_tag(is_open_tag, str_ind, end_ind){ - try{ - if(str_ind === end_ind) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - if(60 !== caml_string_get(str, str_ind)) - throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var ind = caml_call3(Stdlib_String[31], str, str_ind + 1 | 0, 62); - if(end_ind <= ind) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var - sub_str = - caml_call3 - (Stdlib_String[15], str, str_ind, (ind - str_ind | 0) + 1 | 0), - fmt_rest$0 = parse(ind + 1 | 0, end_ind)[1], - sub_fmt = parse(str_ind, ind + 1 | 0)[1], - sub_format$0 = [0, sub_fmt, sub_str], - formatting$0 = is_open_tag ? [0, sub_format$0] : [1, sub_format$0], - _ai_ = [0, [18, formatting$0, fmt_rest$0]]; - return _ai_; - } - catch(_aj_){ - var _ah_ = caml_wrap_exception(_aj_); - if(_ah_ !== Stdlib[8]) throw caml_maybe_attach_backtrace(_ah_, 0); - var - fmt_rest = parse(str_ind, end_ind)[1], - formatting = is_open_tag ? [0, sub_format] : [1, sub_format]; - return [0, [18, formatting, fmt_rest]]; - } - } - function parse_spaces(str_ind, end_ind){ - var str_ind$0 = str_ind; - for(;;){ - if(str_ind$0 === end_ind) unexpected_end_of_format(end_ind); - if(32 !== caml_string_get(str, str_ind$0)) return str_ind$0; - var str_ind$1 = str_ind$0 + 1 | 0, str_ind$0 = str_ind$1; - } - } - function parse_positive(str_ind, end_ind, acc){ - var str_ind$0 = str_ind, acc$0 = acc; - for(;;){ - if(str_ind$0 === end_ind) unexpected_end_of_format(end_ind); - var c = caml_string_get(str, str_ind$0); - if(9 < c - 48 >>> 0) return [0, str_ind$0, acc$0]; - var new_acc = (acc$0 * 10 | 0) + (c - 48 | 0) | 0; - if(Stdlib_Sys[12] < new_acc){ - var _ag_ = Stdlib_Sys[12]; - return caml_call3(failwith_message(_S_), str, new_acc, _ag_); - } - var - str_ind$1 = str_ind$0 + 1 | 0, - str_ind$0 = str_ind$1, - acc$0 = new_acc; - } - } - function parse_integer(str_ind, end_ind){ - if(str_ind === end_ind) unexpected_end_of_format(end_ind); - var match = caml_string_get(str, str_ind); - if(48 <= match){ - if(58 > match) return parse_positive(str_ind, end_ind, 0); - } - else if(45 === match){ - if((str_ind + 1 | 0) === end_ind) unexpected_end_of_format(end_ind); - var c = caml_string_get(str, str_ind + 1 | 0); - if(9 < c - 48 >>> 0) - return expected_character(str_ind + 1 | 0, cst_digit, c); - var - match$0 = parse_positive(str_ind + 1 | 0, end_ind, 0), - n = match$0[2], - next_ind = match$0[1]; - return [0, next_ind, - n | 0]; - } - throw caml_maybe_attach_backtrace([0, Assert_failure, _T_], 1); - } - function search_subformat_end(str_ind, end_ind, c){ - var str_ind$0 = str_ind; - for(;;){ - if(str_ind$0 === end_ind) - caml_call3(failwith_message(_U_), str, c, end_ind); - if(37 !== caml_string_get(str, str_ind$0)){ - var str_ind$7 = str_ind$0 + 1 | 0, str_ind$0 = str_ind$7; - continue; - } - if((str_ind$0 + 1 | 0) === end_ind) unexpected_end_of_format(end_ind); - if(caml_string_get(str, str_ind$0 + 1 | 0) === c) return str_ind$0; - var match = caml_string_get(str, str_ind$0 + 1 | 0); - if(95 <= match){ - if(123 <= match){ - if(126 > match) - switch(match - 123 | 0){ - case 0: - var - sub_end = search_subformat_end(str_ind$0 + 2 | 0, end_ind, 125), - str_ind$2 = sub_end + 2 | 0, - str_ind$0 = str_ind$2; - continue; - case 1: break; - default: - return expected_character(str_ind$0 + 1 | 0, cst_character, 125); - } - } - else if(96 > match){ - if((str_ind$0 + 2 | 0) === end_ind) unexpected_end_of_format(end_ind); - var match$0 = caml_string_get(str, str_ind$0 + 2 | 0); - if(40 === match$0){ - var - sub_end$0 = search_subformat_end(str_ind$0 + 3 | 0, end_ind, 41), - str_ind$3 = sub_end$0 + 2 | 0, - str_ind$0 = str_ind$3; - continue; - } - if(123 === match$0){ - var - sub_end$1 = search_subformat_end(str_ind$0 + 3 | 0, end_ind, 125), - str_ind$4 = sub_end$1 + 2 | 0, - str_ind$0 = str_ind$4; - continue; - } - var str_ind$5 = str_ind$0 + 3 | 0, str_ind$0 = str_ind$5; - continue; - } - } - else{ - if(40 === match){ - var - sub_end$2 = search_subformat_end(str_ind$0 + 2 | 0, end_ind, 41), - str_ind$6 = sub_end$2 + 2 | 0, - str_ind$0 = str_ind$6; - continue; - } - if(41 === match) - return expected_character(str_ind$0 + 1 | 0, cst_character$0, 41); - } - var str_ind$1 = str_ind$0 + 2 | 0, str_ind$0 = str_ind$1; - } - } - function incompatible_flag(pct_ind, str_ind, symb, option){ - var - subfmt = - caml_call3(Stdlib_String[15], str, pct_ind, str_ind - pct_ind | 0); - return caml_call5 - (failwith_message(_Y_), str, pct_ind, option, symb, subfmt); - } - function compute_int_conv(pct_ind, str_ind, plus, hash, space, symb){ - var plus$0 = plus, hash$0 = hash, space$0 = space; - for(;;){ - var switch$0 = 0; - if(plus$0){ - if(hash$0) - switch$0 = 1; - else if(! space$0){ - if(100 === symb) return 1; - if(105 === symb) return 4; - } - } - else if(hash$0) - if(space$0) - switch$0 = 1; - else{ - var switcher$0 = symb - 88 | 0; - if(32 < switcher$0 >>> 0) - switch$0 = 1; - else - switch(switcher$0){ - case 0: - return 9; - case 12: - return 13; - case 17: - return 14; - case 23: - return 11; - case 29: - return 15; - case 32: - return 7; - default: switch$0 = 1; - } - } - else if(space$0){ - if(100 === symb) return 2; - if(105 === symb) return 5; - } - else{ - var switcher$1 = symb - 88 | 0; - if(32 >= switcher$1 >>> 0) - switch(switcher$1){ - case 0: - return 8; - case 12: - return 0; - case 17: - return 3; - case 23: - return 10; - case 29: - return 12; - case 32: - return 6; - } - } - if(switch$0){ - var switcher = symb - 88 | 0; - if(32 >= switcher >>> 0) - switch(switcher){ - case 0: - if(legacy_behavior$0) return 9; break; - case 23: - if(legacy_behavior$0) return 11; break; - case 32: - if(legacy_behavior$0) return 7; break; - case 12: - case 17: - case 29: - if(! legacy_behavior$0) - return incompatible_flag(pct_ind, str_ind, symb, cst$35); - var hash$0 = 0; - continue; - } - } - if(! plus$0){ - if(! space$0) - throw caml_maybe_attach_backtrace([0, Assert_failure, _W_], 1); - if(! legacy_behavior$0) - return incompatible_flag(pct_ind, str_ind, symb, cst$34); - var space$0 = 0; - continue; - } - if(space$0){ - if(! legacy_behavior$0) - return incompatible_flag(pct_ind, str_ind, 32, cst$32); - var space$0 = 0; - continue; - } - if(! legacy_behavior$0) - return incompatible_flag(pct_ind, str_ind, symb, cst$33); - var plus$0 = 0; - } - } - return parse(0, caml_ml_string_length(str)); - } - function format_of_string_fmtty(str, fmtty){ - var fmt = fmt_ebb_of_string(0, str)[1]; - try{var _ae_ = [0, type_format(fmt, fmtty), str]; return _ae_;} - catch(_af_){ - var _ac_ = caml_wrap_exception(_af_); - if(_ac_ !== Type_mismatch) throw caml_maybe_attach_backtrace(_ac_, 0); - var _ad_ = string_of_fmtty(fmtty); - return caml_call2(failwith_message(_Z_), str, _ad_); - } - } - function format_of_string_format(str, param){ - var - str$0 = param[2], - fmt = param[1], - fmt$0 = fmt_ebb_of_string(0, str)[1]; - try{ - var _aa_ = [0, type_format(fmt$0, fmtty_of_fmt(fmt)), str]; - return _aa_; - } - catch(_ab_){ - var _$_ = caml_wrap_exception(_ab_); - if(_$_ === Type_mismatch) - return caml_call2(failwith_message(___), str, str$0); - throw caml_maybe_attach_backtrace(_$_, 0); - } - } - var - CamlinternalFormat = - [0, - is_in_char_set, - rev_char_set, - create_char_set, - add_in_char_set, - freeze_char_set, - param_format_of_ignored_format, - make_printf, - make_iprintf, - output_acc, - bufput_acc, - strput_acc, - type_format, - fmt_ebb_of_string, - format_of_string_fmtty, - format_of_string_format, - char_of_iconv, - string_of_formatting_lit, - string_of_fmtty, - string_of_fmt, - open_box_of_string, - symm, - trans, - recast]; - runtime.caml_register_global(197, CamlinternalFormat, "CamlinternalFormat"); - return; - } - (globalThis)); - -//# 15752 "../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var runtime = globalThis.jsoo_runtime; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - function caml_call3(f, a0, a1, a2){ - return (f.l >= 0 ? f.l : f.l = f.length) == 3 - ? f(a0, a1, a2) - : runtime.caml_call_gen(f, [a0, a1, a2]); - } - var - global_data = runtime.caml_get_global_data(), - Stdlib_Buffer = global_data.Stdlib__Buffer, - CamlinternalFormat = global_data.CamlinternalFormat, - Stdlib = global_data.Stdlib; - function kfprintf(k, o, param){ - var fmt = param[1], _g_ = 0; - function _h_(acc){ - caml_call2(CamlinternalFormat[9], o, acc); - return caml_call1(k, o); - } - return caml_call3(CamlinternalFormat[7], _h_, _g_, fmt); - } - function kbprintf(k, b, param){ - var fmt = param[1], _e_ = 0; - function _f_(acc){ - caml_call2(CamlinternalFormat[10], b, acc); - return caml_call1(k, b); - } - return caml_call3(CamlinternalFormat[7], _f_, _e_, fmt); - } - function ikfprintf(k, oc, param){ - var fmt = param[1]; - return caml_call3(CamlinternalFormat[8], k, oc, fmt); - } - function fprintf(oc, fmt){ - return kfprintf(function(_d_){return 0;}, oc, fmt); - } - function bprintf(b, fmt){ - return kbprintf(function(_c_){return 0;}, b, fmt); - } - function ifprintf(oc, fmt){ - return ikfprintf(function(_b_){return 0;}, oc, fmt); - } - function ibprintf(b, fmt){ - return ikfprintf(function(_a_){return 0;}, b, fmt); - } - function printf(fmt){return fprintf(Stdlib[39], fmt);} - function eprintf(fmt){return fprintf(Stdlib[40], fmt);} - function ksprintf(k, param){ - var fmt = param[1]; - function k$0(acc){ - var buf = caml_call1(Stdlib_Buffer[1], 64); - caml_call2(CamlinternalFormat[11], buf, acc); - return caml_call1(k, caml_call1(Stdlib_Buffer[2], buf)); - } - return caml_call3(CamlinternalFormat[7], k$0, 0, fmt); - } - function sprintf(fmt){return ksprintf(function(s){return s;}, fmt);} - var - Stdlib_Printf = - [0, - fprintf, - printf, - eprintf, - sprintf, - bprintf, - ifprintf, - ibprintf, - kfprintf, - ikfprintf, - ksprintf, - kbprintf, - ikfprintf, - ksprintf]; - runtime.caml_register_global(3, Stdlib_Printf, "Stdlib__Printf"); - return; - } - (globalThis)); - -//# 16542 "../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - global_data = runtime.caml_get_global_data(), - CamlinternalAtomic = global_data.CamlinternalAtomic, - make = CamlinternalAtomic[1], - get = CamlinternalAtomic[2], - set = CamlinternalAtomic[3], - exchange = CamlinternalAtomic[4], - compare_and_set = CamlinternalAtomic[5], - fetch_and_add = CamlinternalAtomic[6], - incr = CamlinternalAtomic[7], - decr = CamlinternalAtomic[8], - Stdlib_Atomic = - [0, - make, - get, - set, - exchange, - compare_and_set, - fetch_and_add, - incr, - decr]; - runtime.caml_register_global(1, Stdlib_Atomic, "Stdlib__Atomic"); - return; - } - (globalThis)); - -//# 16574 "../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - cst$4 = "", - cst_s = "%s\n", - cst_Program_not_linked_with_g_$0 = - "(Program not linked with -g, cannot print stack backtrace)\n", - cst_characters = ", characters ", - cst_Fatal_error_exception = "Fatal error: exception ", - cst_Fatal_error_exception_s = "Fatal error: exception %s\n", - cst_Uncaught_exception = "Uncaught exception: ", - cst_Uncaught_exception_s = "Uncaught exception: %s\n", - caml_check_bound = runtime.caml_check_bound, - caml_get_exception_raw_backtra = runtime.caml_get_exception_raw_backtrace, - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, - caml_obj_tag = runtime.caml_obj_tag, - caml_wrap_exception = runtime.caml_wrap_exception; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - function caml_call3(f, a0, a1, a2){ - return (f.l >= 0 ? f.l : f.l = f.length) == 3 - ? f(a0, a1, a2) - : runtime.caml_call_gen(f, [a0, a1, a2]); - } - function caml_call6(f, a0, a1, a2, a3, a4, a5){ - return (f.l >= 0 ? f.l : f.l = f.length) == 6 - ? f(a0, a1, a2, a3, a4, a5) - : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4, a5]); - } - function caml_call8(f, a0, a1, a2, a3, a4, a5, a6, a7){ - return (f.l >= 0 ? f.l : f.l = f.length) == 8 - ? f(a0, a1, a2, a3, a4, a5, a6, a7) - : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4, a5, a6, a7]); - } - var - global_data = runtime.caml_get_global_data(), - cst$0 = cst$4, - cst$3 = cst$4, - partial = [4, 0, 0, 0, [12, 45, [4, 0, 0, 0, 0]]], - cst$1 = cst$4, - cst$2 = cst$4, - cst = "_", - locfmt = - [0, - [11, - 'File "', - [2, - 0, - [11, - '", line ', - [4, - 0, - 0, - 0, - [11, - cst_characters, - [4, 0, 0, 0, [12, 45, [4, 0, 0, 0, [11, ": ", [2, 0, 0]]]]]]]]]], - 'File "%s", line %d, characters %d-%d: %s'], - Stdlib_Printf = global_data.Stdlib__Printf, - Stdlib_Atomic = global_data.Stdlib__Atomic, - Stdlib = global_data.Stdlib, - Stdlib_Buffer = global_data.Stdlib__Buffer, - Stdlib_Obj = global_data.Stdlib__Obj, - printers = caml_call1(Stdlib_Atomic[1], 0), - _c_ = [0, [11, ", ", [2, 0, [2, 0, 0]]], ", %s%s"], - _o_ = - [0, - [11, cst_Fatal_error_exception, [2, 0, [12, 10, 0]]], - cst_Fatal_error_exception_s], - _p_ = - [0, - [11, - "Fatal error in uncaught exception handler: exception ", - [2, 0, [12, 10, 0]]], - "Fatal error in uncaught exception handler: exception %s\n"], - cst_Fatal_error_out_of_memory_ = - "Fatal error: out of memory in uncaught exception handler", - _n_ = - [0, - [11, cst_Fatal_error_exception, [2, 0, [12, 10, 0]]], - cst_Fatal_error_exception_s], - _l_ = [0, [2, 0, [12, 10, 0]], cst_s], - cst_Program_not_linked_with_g_ = cst_Program_not_linked_with_g_$0, - _j_ = [0, [2, 0, [12, 10, 0]], cst_s], - _k_ = - [0, - [11, cst_Program_not_linked_with_g_$0, 0], - cst_Program_not_linked_with_g_$0], - cst_Raised_at = "Raised at", - cst_Re_raised_at = "Re-raised at", - cst_Raised_by_primitive_operat = "Raised by primitive operation at", - cst_Called_from = "Called from", - cst_inlined = " (inlined)", - _h_ = - [0, - [2, - 0, - [12, - 32, - [2, - 0, - [11, - ' in file "', - [2, - 0, - [12, - 34, - [2, - 0, - [11, ", line ", [4, 0, 0, 0, [11, cst_characters, partial]]]]]]]]]], - '%s %s in file "%s"%s, line %d, characters %d-%d'], - _i_ = [0, [2, 0, [11, " unknown location", 0]], "%s unknown location"], - _g_ = - [0, - [11, cst_Uncaught_exception, [2, 0, [12, 10, 0]]], - cst_Uncaught_exception_s], - _f_ = - [0, - [11, cst_Uncaught_exception, [2, 0, [12, 10, 0]]], - cst_Uncaught_exception_s], - cst_Out_of_memory = "Out of memory", - cst_Stack_overflow = "Stack overflow", - cst_Pattern_matching_failed = "Pattern matching failed", - cst_Assertion_failed = "Assertion failed", - cst_Undefined_recursive_module = "Undefined recursive module", - _d_ = [0, [12, 40, [2, 0, [2, 0, [12, 41, 0]]]], "(%s%s)"], - _e_ = [0, [12, 40, [2, 0, [12, 41, 0]]], "(%s)"], - _b_ = [0, [4, 0, 0, 0, 0], "%d"], - _a_ = [0, [3, 0, 0], "%S"], - _m_ = - [0, - cst$4, - "(Cannot print locations:\n bytecode executable program file not found)", - "(Cannot print locations:\n bytecode executable program file appears to be corrupt)", - "(Cannot print locations:\n bytecode executable program file has wrong magic number)", - "(Cannot print locations:\n bytecode executable program file cannot be opened;\n -- too many open files. Try running with OCAMLRUNPARAM=b=2)"]; - function field(x, i){ - var f = x[1 + i]; - if(! caml_call1(Stdlib_Obj[1], f)) - return caml_call2(Stdlib_Printf[4], _b_, f); - var _al_ = Stdlib_Obj[13]; - if(caml_obj_tag(f) === _al_) return caml_call2(Stdlib_Printf[4], _a_, f); - var _am_ = Stdlib_Obj[14]; - return caml_obj_tag(f) === _am_ ? caml_call1(Stdlib[35], f) : cst; - } - function other_fields(x, i){ - if(x.length - 1 <= i) return cst$0; - var _aj_ = other_fields(x, i + 1 | 0), _ak_ = field(x, i); - return caml_call3(Stdlib_Printf[4], _c_, _ak_, _aj_); - } - function use_printers(x){ - var param = caml_call1(Stdlib_Atomic[2], printers); - for(;;){ - if(! param) return 0; - var tl = param[2], hd = param[1], switch$0 = 0; - try{var val = caml_call1(hd, x);}catch(_ai_){switch$0 = 1;} - if(! switch$0 && val){var s = val[1]; return [0, s];} - var param = tl; - } - } - function to_string_default(x){ - if(x === Stdlib[9]) return cst_Out_of_memory; - if(x === Stdlib[10]) return cst_Stack_overflow; - if(x[1] === Stdlib[4]){ - var - match$0 = x[2], - char$0 = match$0[3], - line = match$0[2], - file = match$0[1]; - return caml_call6 - (Stdlib_Printf[4], - locfmt, - file, - line, - char$0, - char$0 + 5 | 0, - cst_Pattern_matching_failed); - } - if(x[1] === Stdlib[5]){ - var - match$1 = x[2], - char$1 = match$1[3], - line$0 = match$1[2], - file$0 = match$1[1]; - return caml_call6 - (Stdlib_Printf[4], - locfmt, - file$0, - line$0, - char$1, - char$1 + 6 | 0, - cst_Assertion_failed); - } - if(x[1] === Stdlib[15]){ - var - match$2 = x[2], - char$2 = match$2[3], - line$1 = match$2[2], - file$1 = match$2[1]; - return caml_call6 - (Stdlib_Printf[4], - locfmt, - file$1, - line$1, - char$2, - char$2 + 6 | 0, - cst_Undefined_recursive_module); - } - if(0 !== caml_obj_tag(x)) return x[1]; - var constructor = x[1][1], match = x.length - 1; - if(2 < match >>> 0) - var - _ae_ = other_fields(x, 2), - _af_ = field(x, 1), - _ah_ = caml_call3(Stdlib_Printf[4], _d_, _af_, _ae_); - else - switch(match){ - case 0: - var _ah_ = cst$1; break; - case 1: - var _ah_ = cst$2; break; - default: - var - _ag_ = field(x, 1), - _ah_ = caml_call2(Stdlib_Printf[4], _e_, _ag_); - } - return caml_call2(Stdlib[28], constructor, _ah_); - } - function to_string(e){ - var match = use_printers(e); - if(! match) return to_string_default(e); - var s = match[1]; - return s; - } - function print(fct, arg){ - try{var _ad_ = caml_call1(fct, arg); return _ad_;} - catch(x$0){ - var x = caml_wrap_exception(x$0), _ac_ = to_string(x); - caml_call2(Stdlib_Printf[3], _f_, _ac_); - caml_call1(Stdlib[63], Stdlib[40]); - throw caml_maybe_attach_backtrace(x, 0); - } - } - function catch$0(fct, arg){ - try{var _ab_ = caml_call1(fct, arg); return _ab_;} - catch(x$0){ - var x = caml_wrap_exception(x$0); - caml_call1(Stdlib[63], Stdlib[39]); - var _aa_ = to_string(x); - caml_call2(Stdlib_Printf[3], _g_, _aa_); - return caml_call1(Stdlib[99], 2); - } - } - function raw_backtrace_entries(bt){return bt;} - function convert_raw_backtrace(bt){ - return [0, runtime.caml_convert_raw_backtrace(bt)]; - } - function format_backtrace_slot(pos, slot){ - function info(is_raise){ - return is_raise - ? 0 === pos ? cst_Raised_at : cst_Re_raised_at - : 0 === pos ? cst_Raised_by_primitive_operat : cst_Called_from; - } - if(0 === slot[0]){ - var - _U_ = slot[5], - _V_ = slot[4], - _W_ = slot[3], - _X_ = slot[6] ? cst_inlined : cst$3, - _Y_ = slot[2], - _Z_ = slot[7], - ___ = info(slot[1]); - return [0, - caml_call8 - (Stdlib_Printf[4], _h_, ___, _Z_, _Y_, _X_, _W_, _V_, _U_)]; - } - if(slot[1]) return 0; - var _$_ = info(0); - return [0, caml_call2(Stdlib_Printf[4], _i_, _$_)]; - } - function print_raw_backtrace(outchan, raw_backtrace){ - var backtrace = convert_raw_backtrace(raw_backtrace); - if(! backtrace) return caml_call2(Stdlib_Printf[1], outchan, _k_); - var a = backtrace[1], _S_ = a.length - 1 - 1 | 0, _R_ = 0; - if(_S_ >= 0){ - var i = _R_; - for(;;){ - var match = format_backtrace_slot(i, caml_check_bound(a, i)[1 + i]); - if(match){ - var str = match[1]; - caml_call3(Stdlib_Printf[1], outchan, _j_, str); - } - var _T_ = i + 1 | 0; - if(_S_ !== i){var i = _T_; continue;} - break; - } - } - return 0; - } - function print_backtrace(outchan){ - return print_raw_backtrace(outchan, caml_get_exception_raw_backtra(0)); - } - function raw_backtrace_to_string(raw_backtrace){ - var backtrace = convert_raw_backtrace(raw_backtrace); - if(! backtrace) return cst_Program_not_linked_with_g_; - var - a = backtrace[1], - b = caml_call1(Stdlib_Buffer[1], 1024), - _P_ = a.length - 1 - 1 | 0, - _O_ = 0; - if(_P_ >= 0){ - var i = _O_; - for(;;){ - var match = format_backtrace_slot(i, caml_check_bound(a, i)[1 + i]); - if(match){ - var str = match[1]; - caml_call3(Stdlib_Printf[5], b, _l_, str); - } - var _Q_ = i + 1 | 0; - if(_P_ !== i){var i = _Q_; continue;} - break; - } - } - return caml_call1(Stdlib_Buffer[2], b); - } - function backtrace_slot_is_raise(param){ - return 0 === param[0] ? param[1] : param[1]; - } - function backtrace_slot_is_inline(param){return 0 === param[0] ? param[6] : 0; - } - function backtrace_slot_location(param){ - return 0 === param[0] - ? [0, [0, param[2], param[3], param[4], param[5]]] - : 0; - } - function backtrace_slot_defname(param){ - if(0 === param[0] && runtime.caml_string_notequal(param[7], cst$4)) - return [0, param[7]]; - return 0; - } - function backtrace_slots(raw_backtrace){ - var match = convert_raw_backtrace(raw_backtrace); - if(! match) return 0; - var backtrace = match[1], i$1 = backtrace.length - 1 - 1 | 0, i = i$1; - for(;;){ - if(-1 === i) - var _N_ = 0; - else{ - var _M_ = 0 === caml_check_bound(backtrace, i)[1 + i][0] ? 1 : 0; - if(! _M_){var i$0 = i - 1 | 0, i = i$0; continue;} - var _N_ = _M_; - } - return _N_ ? [0, backtrace] : 0; - } - } - function backtrace_slots_of_raw_entry(entry){return backtrace_slots([0, entry]); - } - function raw_backtrace_length(bt){return bt.length - 1;} - function get_backtrace(param){ - return raw_backtrace_to_string(caml_get_exception_raw_backtra(0)); - } - function register_printer(fn){ - for(;;){ - var - old_printers = caml_call1(Stdlib_Atomic[2], printers), - new_printers = [0, fn, old_printers], - success = - caml_call3(Stdlib_Atomic[5], printers, old_printers, new_printers), - _L_ = 1 - success; - if(_L_) continue; - return _L_; - } - } - function exn_slot(x){return 0 === caml_obj_tag(x) ? x[1] : x;} - function exn_slot_id(x){var slot = exn_slot(x); return slot[2];} - function exn_slot_name(x){var slot = exn_slot(x); return slot[1];} - var errors = _m_.slice(); - function default_uncaught_exception_han(exn, raw_backtrace){ - var _I_ = to_string(exn); - caml_call2(Stdlib_Printf[3], _n_, _I_); - print_raw_backtrace(Stdlib[40], raw_backtrace); - var status = runtime.caml_ml_debug_info_status(0); - if(status < 0){ - var - _J_ = caml_call1(Stdlib[18], status), - _K_ = caml_check_bound(errors, _J_)[1 + _J_]; - caml_call1(Stdlib[53], _K_); - } - return caml_call1(Stdlib[63], Stdlib[40]); - } - var uncaught_exception_handler = [0, default_uncaught_exception_han]; - function set_uncaught_exception_handler(fn){ - uncaught_exception_handler[1] = fn; - return 0; - } - var empty_backtrace = [0]; - function handle_uncaught_exception(exn$0, debugger_in_use){ - try{ - try{ - var - raw_backtrace = - debugger_in_use ? empty_backtrace : caml_get_exception_raw_backtra(0); - try{caml_call1(Stdlib[103], 0);}catch(_H_){} - try{ - var - _D_ = caml_call2(uncaught_exception_handler[1], exn$0, raw_backtrace), - _C_ = _D_; - } - catch(exn$1){ - var - exn = caml_wrap_exception(exn$1), - raw_backtrace$0 = caml_get_exception_raw_backtra(0), - _A_ = to_string(exn$0); - caml_call2(Stdlib_Printf[3], _o_, _A_); - print_raw_backtrace(Stdlib[40], raw_backtrace); - var _B_ = to_string(exn); - caml_call2(Stdlib_Printf[3], _p_, _B_); - print_raw_backtrace(Stdlib[40], raw_backtrace$0); - var _C_ = caml_call1(Stdlib[63], Stdlib[40]); - } - var _E_ = _C_; - } - catch(_G_){ - var _z_ = caml_wrap_exception(_G_); - if(_z_ !== Stdlib[9]) throw caml_maybe_attach_backtrace(_z_, 0); - var _E_ = caml_call1(Stdlib[53], cst_Fatal_error_out_of_memory_); - } - return _E_; - } - catch(_F_){return 0;} - } - runtime.caml_register_named_value - ("Printexc.handle_uncaught_exception", handle_uncaught_exception); - function _q_(_y_){return runtime.caml_raw_backtrace_next_slot(_y_);} - function _r_(_x_){return runtime.caml_convert_raw_backtrace_slot(_x_);} - function _s_(_w_, _v_){return runtime.caml_raw_backtrace_slot(_w_, _v_);} - var - _t_ = - [0, - backtrace_slot_is_raise, - backtrace_slot_is_inline, - backtrace_slot_location, - backtrace_slot_defname, - format_backtrace_slot], - Stdlib_Printexc = - [0, - to_string, - to_string_default, - print, - catch$0, - print_backtrace, - get_backtrace, - runtime.caml_record_backtrace, - runtime.caml_backtrace_status, - register_printer, - use_printers, - raw_backtrace_entries, - function(_u_){return caml_get_exception_raw_backtra(_u_);}, - print_raw_backtrace, - raw_backtrace_to_string, - default_uncaught_exception_han, - set_uncaught_exception_handler, - backtrace_slots, - backtrace_slots_of_raw_entry, - _t_, - raw_backtrace_length, - _s_, - _r_, - _q_, - exn_slot_id, - exn_slot_name]; - runtime.caml_register_global(42, Stdlib_Printexc, "Stdlib__Printexc"); - return; - } - (globalThis)); - -//# 17293 "../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - cst_Digest_from_hex$1 = "Digest.from_hex", - caml_bytes_unsafe_set = runtime.caml_bytes_unsafe_set, - caml_create_bytes = runtime.caml_create_bytes, - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, - caml_md5_string = runtime.caml_md5_string, - caml_ml_string_length = runtime.caml_ml_string_length, - caml_string_get = runtime.caml_string_get, - caml_wrap_exception = runtime.caml_wrap_exception; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - var - global_data = runtime.caml_get_global_data(), - Stdlib = global_data.Stdlib, - Stdlib_Char = global_data.Stdlib__Char, - Stdlib_Bytes = global_data.Stdlib__Bytes, - Stdlib_String = global_data.Stdlib__String, - compare = Stdlib_String[9], - equal = Stdlib_String[8], - cst_Digest_from_hex$0 = cst_Digest_from_hex$1, - cst_Digest_from_hex = cst_Digest_from_hex$1, - cst_Digest_to_hex = "Digest.to_hex", - cst_Digest_substring = "Digest.substring"; - function string(str){ - return caml_md5_string(str, 0, caml_ml_string_length(str)); - } - function bytes(b){return string(caml_call1(Stdlib_Bytes[48], b));} - function substring(str, ofs, len){ - if(0 <= ofs && 0 <= len && (caml_ml_string_length(str) - len | 0) >= ofs) - return caml_md5_string(str, ofs, len); - return caml_call1(Stdlib[1], cst_Digest_substring); - } - function subbytes(b, ofs, len){ - return substring(caml_call1(Stdlib_Bytes[48], b), ofs, len); - } - function file(filename){ - var ic = caml_call1(Stdlib[80], filename); - try{var d = runtime.caml_md5_chan(ic, -1);} - catch(e$0){ - var e = caml_wrap_exception(e$0); - caml_call1(Stdlib[93], ic); - throw caml_maybe_attach_backtrace(e, 0); - } - caml_call1(Stdlib[93], ic); - return d; - } - function output(chan, digest){return caml_call2(Stdlib[66], chan, digest);} - function input(chan){return caml_call2(Stdlib[86], chan, 16);} - function char_hex(n){var _e_ = 10 <= n ? 87 : 48; return n + _e_ | 0;} - function to_hex(d){ - if(16 !== caml_ml_string_length(d)) - caml_call1(Stdlib[1], cst_Digest_to_hex); - var result = caml_create_bytes(32), i = 0; - for(;;){ - var x = caml_string_get(d, i); - caml_bytes_unsafe_set(result, i * 2 | 0, char_hex(x >>> 4 | 0)); - caml_bytes_unsafe_set(result, (i * 2 | 0) + 1 | 0, char_hex(x & 15)); - var _d_ = i + 1 | 0; - if(15 === i) return caml_call1(Stdlib_Bytes[48], result); - var i = _d_; - } - } - function from_hex(s){ - if(32 !== caml_ml_string_length(s)) - caml_call1(Stdlib[1], cst_Digest_from_hex); - function digit(c){ - if(65 <= c){ - if(97 <= c){ - if(103 > c) return (c - 97 | 0) + 10 | 0; - } - else if(71 > c) return (c - 65 | 0) + 10 | 0; - } - else if(9 >= c - 48 >>> 0) return c - 48 | 0; - throw caml_maybe_attach_backtrace - ([0, Stdlib[6], cst_Digest_from_hex$0], 1); - } - var result = caml_create_bytes(16), i = 0; - for(;;){ - var - i$0 = 2 * i | 0, - _a_ = digit(caml_string_get(s, i$0 + 1 | 0)), - _b_ = (digit(caml_string_get(s, i$0)) << 4) + _a_ | 0; - runtime.caml_bytes_set(result, i, caml_call1(Stdlib_Char[1], _b_)); - var _c_ = i + 1 | 0; - if(15 === i) return caml_call1(Stdlib_Bytes[48], result); - var i = _c_; - } - } - var - Stdlib_Digest = - [0, - compare, - equal, - string, - bytes, - substring, - subbytes, - file, - output, - input, - to_hex, - from_hex]; - runtime.caml_register_global(8, Stdlib_Digest, "Stdlib__Digest"); - return; - } - (globalThis)); - -//# 17414 "../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - caml_check_bound = runtime.caml_check_bound, - caml_greaterthan = runtime.caml_greaterthan, - caml_int64_of_int32 = runtime.caml_int64_of_int32, - caml_int64_or = runtime.caml_int64_or, - caml_int64_shift_left = runtime.caml_int64_shift_left, - caml_int64_shift_right_unsigne = runtime.caml_int64_shift_right_unsigned, - caml_int64_sub = runtime.caml_int64_sub, - caml_int64_to_int32 = runtime.caml_int64_to_int32, - caml_lessequal = runtime.caml_lessequal, - caml_mod = runtime.caml_mod, - caml_string_get = runtime.caml_string_get, - caml_sys_random_seed = runtime.caml_sys_random_seed; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - function caml_call5(f, a0, a1, a2, a3, a4){ - return (f.l >= 0 ? f.l : f.l = f.length) == 5 - ? f(a0, a1, a2, a3, a4) - : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4]); - } - var - global_data = runtime.caml_get_global_data(), - Stdlib = global_data.Stdlib, - Stdlib_Int32 = global_data.Stdlib__Int32, - Stdlib_Int64 = global_data.Stdlib__Int64, - Stdlib_Int = global_data.Stdlib__Int, - Stdlib_Digest = global_data.Stdlib__Digest, - Stdlib_Array = global_data.Stdlib__Array, - Stdlib_Nativeint = global_data.Stdlib__Nativeint, - _a_ = runtime.caml_int64_create_lo_mi_hi(1, 0, 0), - _b_ = runtime.caml_int64_create_lo_mi_hi(0, 0, 0), - cst_Random_int64 = "Random.int64", - cst_Random_int32 = "Random.int32", - cst_Random_full_int = "Random.full_int", - cst_Random_int = "Random.int", - cst_x = "x", - _c_ = - [0, - 987910699, - 495797812, - 364182224, - 414272206, - 318284740, - 990407751, - 383018966, - 270373319, - 840823159, - 24560019, - 536292337, - 512266505, - 189156120, - 730249596, - 143776328, - 51606627, - 140166561, - 366354223, - 1003410265, - 700563762, - 981890670, - 913149062, - 526082594, - 1021425055, - 784300257, - 667753350, - 630144451, - 949649812, - 48546892, - 415514493, - 258888527, - 511570777, - 89983870, - 283659902, - 308386020, - 242688715, - 482270760, - 865188196, - 1027664170, - 207196989, - 193777847, - 619708188, - 671350186, - 149669678, - 257044018, - 87658204, - 558145612, - 183450813, - 28133145, - 901332182, - 710253903, - 510646120, - 652377910, - 409934019, - 801085050]; - function new_state(param){return [0, runtime.caml_make_vect(55, 0), 0];} - function assign(st1, st2){ - caml_call5(Stdlib_Array[10], st2[1], 0, st1[1], 0, 55); - st1[2] = st2[2]; - return 0; - } - function full_init(s, seed){ - var - seed$0 = 0 === seed.length - 1 ? [0, 0] : seed, - l = seed$0.length - 1, - i$0 = 0; - for(;;){ - caml_check_bound(s[1], i$0)[1 + i$0] = i$0; - var _q_ = i$0 + 1 | 0; - if(54 !== i$0){var i$0 = _q_; continue;} - var - accu = [0, cst_x], - _n_ = 54 + caml_call2(Stdlib_Int[11], 55, l) | 0, - _m_ = 0; - if(_n_ >= 0){ - var i = _m_; - for(;;){ - var - j = i % 55 | 0, - k = caml_mod(i, l), - x = caml_check_bound(seed$0, k)[1 + k], - accu$0 = accu[1], - _g_ = caml_call1(Stdlib_Int[12], x), - _h_ = caml_call2(Stdlib[28], accu$0, _g_); - accu[1] = caml_call1(Stdlib_Digest[3], _h_); - var - d = accu[1], - _i_ = caml_string_get(d, 3) << 24, - _j_ = caml_string_get(d, 2) << 16, - _k_ = caml_string_get(d, 1) << 8, - _l_ = ((caml_string_get(d, 0) + _k_ | 0) + _j_ | 0) + _i_ | 0, - _o_ = (caml_check_bound(s[1], j)[1 + j] ^ _l_) & 1073741823; - caml_check_bound(s[1], j)[1 + j] = _o_; - var _p_ = i + 1 | 0; - if(_n_ !== i){var i = _p_; continue;} - break; - } - } - s[2] = 0; - return 0; - } - } - function make(seed){ - var result = new_state(0); - full_init(result, seed); - return result; - } - function make_self_init(param){return make(caml_sys_random_seed(0));} - function copy(s){ - var result = new_state(0); - assign(result, s); - return result; - } - function bits(s){ - s[2] = (s[2] + 1 | 0) % 55 | 0; - var - _d_ = s[2], - curval = caml_check_bound(s[1], _d_)[1 + _d_], - _e_ = (s[2] + 24 | 0) % 55 | 0, - newval = - caml_check_bound(s[1], _e_)[1 + _e_] - + (curval ^ (curval >>> 25 | 0) & 31) - | 0, - newval30 = newval & 1073741823, - _f_ = s[2]; - caml_check_bound(s[1], _f_)[1 + _f_] = newval30; - return newval30; - } - function intaux(s, n){ - for(;;){ - var r = bits(s), v = caml_mod(r, n); - if(((1073741823 - n | 0) + 1 | 0) < (r - v | 0)) continue; - return v; - } - } - function int$0(s, bound){ - if(1073741823 >= bound && 0 < bound) return intaux(s, bound); - return caml_call1(Stdlib[1], cst_Random_int); - } - function full_int(s, bound){ - if(0 >= bound) return caml_call1(Stdlib[1], cst_Random_full_int); - if(1073741823 >= bound) return intaux(s, bound); - for(;;){ - var b1 = bits(s), b2 = bits(s), max_int_32 = 2147483647; - if(bound <= 2147483647) - var - bpos = (b2 & 1073725440) << 1 | b1 >>> 15 | 0, - max_int = max_int_32, - r = bpos; - else - var - b3 = bits(s), - r$0 = ((b3 & 1073741312) << 12 | b2 >>> 9 | 0) << 20 | b1 >>> 10 | 0, - max_int$0 = Stdlib[19], - max_int = max_int$0, - r = r$0; - var v = caml_mod(r, bound); - if(((max_int - bound | 0) + 1 | 0) < (r - v | 0)) continue; - return v; - } - } - function int32(s, bound){ - if(caml_lessequal(bound, 0)) - return caml_call1(Stdlib[1], cst_Random_int32); - for(;;){ - var - b1 = bits(s), - b2 = (bits(s) & 1) << 30, - r = b1 | b2, - v = caml_mod(r, bound); - if(caml_greaterthan(r - v | 0, (Stdlib_Int32[9] - bound | 0) + 1 | 0)) - continue; - return v; - } - } - function int64(s, bound){ - if(caml_lessequal(bound, _b_)) - return caml_call1(Stdlib[1], cst_Random_int64); - for(;;){ - var - b1 = caml_int64_of_int32(bits(s)), - b2 = caml_int64_shift_left(caml_int64_of_int32(bits(s)), 30), - b3 = caml_int64_shift_left(caml_int64_of_int32(bits(s) & 7), 60), - r = caml_int64_or(b1, caml_int64_or(b2, b3)), - v = runtime.caml_int64_mod(r, bound); - if - (caml_greaterthan - (caml_int64_sub(r, v), - runtime.caml_int64_add(caml_int64_sub(Stdlib_Int64[9], bound), _a_))) - continue; - return v; - } - } - var - nativeint = - 32 === Stdlib_Nativeint[9] - ? function(s, bound){return int32(s, bound);} - : function - (s, bound){ - return caml_int64_to_int32(int64(s, caml_int64_of_int32(bound))); - }; - function float$0(s, bound){ - var r1 = bits(s), r2 = bits(s); - return (r1 / 1073741824. + r2) / 1073741824. * bound; - } - function bool(s){return 0 === (bits(s) & 1) ? 1 : 0;} - function bits32(s){ - var b1 = bits(s) >>> 14 | 0, b2 = bits(s) >>> 14 | 0; - return b1 | b2 << 16; - } - function bits64(s){ - var - b1 = caml_int64_shift_right_unsigne(caml_int64_of_int32(bits(s)), 9), - b2 = caml_int64_shift_right_unsigne(caml_int64_of_int32(bits(s)), 9), - b3 = caml_int64_shift_right_unsigne(caml_int64_of_int32(bits(s)), 8); - return caml_int64_or - (b1, - caml_int64_or - (caml_int64_shift_left(b2, 21), caml_int64_shift_left(b3, 42))); - } - var - nativebits = - 32 === Stdlib_Nativeint[9] - ? function(s){return bits32(s);} - : function(s){return caml_int64_to_int32(bits64(s));}, - default$0 = [0, _c_.slice(), 0]; - function bits$0(param){return bits(default$0);} - function int$1(bound){return int$0(default$0, bound);} - function full_int$0(bound){return full_int(default$0, bound);} - function int32$0(bound){return int32(default$0, bound);} - function nativeint$0(bound){return nativeint(default$0, bound);} - function int64$0(bound){return int64(default$0, bound);} - function float$1(scale){return float$0(default$0, scale);} - function bool$0(param){return bool(default$0);} - function bits32$0(param){return bits32(default$0);} - function bits64$0(param){return bits64(default$0);} - function nativebits$0(param){return nativebits(default$0);} - function full_init$0(seed){return full_init(default$0, seed);} - function init(seed){return full_init(default$0, [0, seed]);} - function self_init(param){return full_init$0(caml_sys_random_seed(0));} - function get_state(param){return copy(default$0);} - function set_state(s){return assign(default$0, s);} - var - Stdlib_Random = - [0, - init, - full_init$0, - self_init, - bits$0, - int$1, - full_int$0, - int32$0, - nativeint$0, - int64$0, - float$1, - bool$0, - bits32$0, - bits64$0, - nativebits$0, - [0, - make, - make_self_init, - copy, - bits, - int$0, - full_int, - int32, - nativeint, - int64, - float$0, - bool, - bits32, - bits64, - nativebits], - get_state, - set_state]; - runtime.caml_register_global(18, Stdlib_Random, "Stdlib__Random"); - return; - } - (globalThis)); - -//# 17747 "../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - caml_check_bound = runtime.caml_check_bound, - caml_compare = runtime.caml_compare, - caml_hash = runtime.caml_hash, - caml_make_vect = runtime.caml_make_vect, - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, - caml_obj_tag = runtime.caml_obj_tag, - caml_sys_getenv = runtime.caml_sys_getenv, - caml_wrap_exception = runtime.caml_wrap_exception; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - function caml_call3(f, a0, a1, a2){ - return (f.l >= 0 ? f.l : f.l = f.length) == 3 - ? f(a0, a1, a2) - : runtime.caml_call_gen(f, [a0, a1, a2]); - } - function caml_call4(f, a0, a1, a2, a3){ - return (f.l >= 0 ? f.l : f.l = f.length) == 4 - ? f(a0, a1, a2, a3) - : runtime.caml_call_gen(f, [a0, a1, a2, a3]); - } - var - global_data = runtime.caml_get_global_data(), - cst = "", - Stdlib_Sys = global_data.Stdlib__Sys, - Stdlib = global_data.Stdlib, - CamlinternalLazy = global_data.CamlinternalLazy, - Stdlib_Random = global_data.Stdlib__Random, - Stdlib_Seq = global_data.Stdlib__Seq, - Stdlib_Int = global_data.Stdlib__Int, - Stdlib_Array = global_data.Stdlib__Array; - global_data.Assert_failure; - var - Stdlib_String = global_data.Stdlib__String, - cst_Hashtbl_unsupported_hash_t = "Hashtbl: unsupported hash table format", - _d_ = [0, 0]; - function ongoing_traversal(h){ - var _aE_ = h.length - 1 < 4 ? 1 : 0, _aF_ = _aE_ || (h[4] < 0 ? 1 : 0); - return _aF_; - } - function flip_ongoing_traversal(h){h[4] = - h[4] | 0; return 0;} - try{var _f_ = caml_sys_getenv("OCAMLRUNPARAM"), params = _f_;} - catch(_aC_){ - var _a_ = caml_wrap_exception(_aC_); - if(_a_ !== Stdlib[8]) throw caml_maybe_attach_backtrace(_a_, 0); - try{var _e_ = caml_sys_getenv("CAMLRUNPARAM"), _c_ = _e_;} - catch(_aD_){ - var _b_ = caml_wrap_exception(_aD_); - if(_b_ !== Stdlib[8]) throw caml_maybe_attach_backtrace(_b_, 0); - var _c_ = cst; - } - var params = _c_; - } - var - randomized_default = caml_call2(Stdlib_String[14], params, 82), - randomized = [0, randomized_default]; - function randomize(param){randomized[1] = 1; return 0;} - function is_randomized(param){return randomized[1];} - var - prng = [246, function(_aB_){return caml_call1(Stdlib_Random[15][2], 0);}]; - function power_2_above(x, n){ - var x$0 = x; - for(;;){ - if(n <= x$0) return x$0; - if(Stdlib_Sys[13] < (x$0 * 2 | 0)) return x$0; - var x$1 = x$0 * 2 | 0, x$0 = x$1; - } - } - function create(opt, initial_size){ - if(opt) var sth = opt[1], random = sth; else var random = randomized[1]; - var s = power_2_above(16, initial_size); - if(random) - var - _az_ = caml_obj_tag(prng), - _aA_ = - 250 === _az_ - ? prng[1] - : 246 === _az_ ? caml_call1(CamlinternalLazy[2], prng) : prng, - seed = caml_call1(Stdlib_Random[15][4], _aA_); - else - var seed = 0; - return [0, 0, caml_make_vect(s, 0), seed, s]; - } - function clear(h){ - var _ay_ = 0 < h[1] ? 1 : 0; - return _ay_ - ? (h - [1] - = 0, - caml_call4(Stdlib_Array[9], h[2], 0, h[2].length - 1, 0)) - : _ay_; - } - function reset(h){ - var len = h[2].length - 1; - if(4 <= h.length - 1 && len !== caml_call1(Stdlib[18], h[4])){ - h[1] = 0; - h[2] = caml_make_vect(caml_call1(Stdlib[18], h[4]), 0); - return 0; - } - return clear(h); - } - function copy_bucketlist(param){ - if(! param) return 0; - var - key = param[1], - data = param[2], - next = param[3], - prec$1 = [0, key, data, next], - prec = prec$1, - param$0 = next; - for(;;){ - if(! param$0) return prec$1; - var - key$0 = param$0[1], - data$0 = param$0[2], - next$0 = param$0[3], - prec$0 = [0, key$0, data$0, next$0]; - prec[3] = prec$0; - var prec = prec$0, param$0 = next$0; - } - } - function copy(h){ - var - _av_ = h[4], - _aw_ = h[3], - _ax_ = caml_call2(Stdlib_Array[15], copy_bucketlist, h[2]); - return [0, h[1], _ax_, _aw_, _av_]; - } - function length(h){return h[1];} - function insert_all_buckets(indexfun, inplace, odata, ndata){ - var - nsize = ndata.length - 1, - ndata_tail = caml_make_vect(nsize, 0), - _ap_ = odata.length - 1 - 1 | 0, - _ao_ = 0; - if(_ap_ >= 0){ - var i$0 = _ao_; - a: - for(;;){ - var cell$1 = caml_check_bound(odata, i$0)[1 + i$0], cell = cell$1; - for(;;){ - if(cell){ - var - key = cell[1], - data = cell[2], - next = cell[3], - cell$0 = inplace ? cell : [0, key, data, 0], - nidx = caml_call1(indexfun, key), - match = caml_check_bound(ndata_tail, nidx)[1 + nidx]; - if(match) - match[3] = cell$0; - else - caml_check_bound(ndata, nidx)[1 + nidx] = cell$0; - caml_check_bound(ndata_tail, nidx)[1 + nidx] = cell$0; - var cell = next; - continue; - } - var _au_ = i$0 + 1 | 0; - if(_ap_ !== i$0){var i$0 = _au_; continue a;} - break; - } - break; - } - } - if(inplace){ - var _ar_ = nsize - 1 | 0, _aq_ = 0; - if(_ar_ >= 0){ - var i = _aq_; - for(;;){ - var match$0 = caml_check_bound(ndata_tail, i)[1 + i]; - if(match$0) match$0[3] = 0; - var _at_ = i + 1 | 0; - if(_ar_ !== i){var i = _at_; continue;} - break; - } - } - var _as_ = 0; - } - else - var _as_ = inplace; - return _as_; - } - function resize(indexfun, h){ - var - odata = h[2], - osize = odata.length - 1, - nsize = osize * 2 | 0, - _an_ = nsize < Stdlib_Sys[13] ? 1 : 0; - if(! _an_) return _an_; - var ndata = caml_make_vect(nsize, 0), inplace = 1 - ongoing_traversal(h); - h[2] = ndata; - return insert_all_buckets(caml_call1(indexfun, h), inplace, odata, ndata); - } - function iter(f, h){ - var old_trav = ongoing_traversal(h); - if(1 - old_trav) flip_ongoing_traversal(h); - try{ - var d = h[2], _aj_ = d.length - 1 - 1 | 0, _ai_ = 0; - if(_aj_ >= 0){ - var i = _ai_; - a: - for(;;){ - var param = caml_check_bound(d, i)[1 + i]; - for(;;){ - if(param){ - var key = param[1], data = param[2], next = param[3]; - caml_call2(f, key, data); - var param = next; - continue; - } - var _am_ = i + 1 | 0; - if(_aj_ !== i){var i = _am_; continue a;} - break; - } - break; - } - } - var _ak_ = 1 - old_trav, _al_ = _ak_ ? flip_ongoing_traversal(h) : _ak_; - return _al_; - } - catch(exn$0){ - var exn = caml_wrap_exception(exn$0); - if(old_trav) throw caml_maybe_attach_backtrace(exn, 0); - flip_ongoing_traversal(h); - throw caml_maybe_attach_backtrace(exn, 0); - } - } - function filter_map_inplace(f, h){ - var d = h[2], old_trav = ongoing_traversal(h); - if(1 - old_trav) flip_ongoing_traversal(h); - try{ - var _ae_ = d.length - 1 - 1 | 0, _ad_ = 0; - if(_ae_ >= 0){ - var i = _ad_; - a: - for(;;){ - var slot$0 = caml_check_bound(h[2], i)[1 + i], prec = 0, slot = slot$0; - for(;;){ - if(slot){ - var - key = slot[1], - data = slot[2], - next = slot[3], - match = caml_call2(f, key, data); - if(! match){h[1] = h[1] - 1 | 0; var slot = next; continue;} - var data$0 = match[1]; - if(prec) - prec[3] = slot; - else - caml_check_bound(h[2], i)[1 + i] = slot; - slot[2] = data$0; - var prec = slot, slot = next; - continue; - } - if(prec) prec[3] = 0; else caml_check_bound(h[2], i)[1 + i] = 0; - var _ah_ = i + 1 | 0; - if(_ae_ !== i){var i = _ah_; continue a;} - break; - } - break; - } - } - var _af_ = 1 - old_trav, _ag_ = _af_ ? flip_ongoing_traversal(h) : _af_; - return _ag_; - } - catch(exn$0){ - var exn = caml_wrap_exception(exn$0); - if(old_trav) throw caml_maybe_attach_backtrace(exn, 0); - flip_ongoing_traversal(h); - throw caml_maybe_attach_backtrace(exn, 0); - } - } - function fold(f, h, init){ - var old_trav = ongoing_traversal(h); - if(1 - old_trav) flip_ongoing_traversal(h); - try{ - var d = h[2], accu$1 = [0, init], _aa_ = d.length - 1 - 1 | 0, _$_ = 0; - if(_aa_ >= 0){ - var i = _$_; - a: - for(;;){ - var - accu$2 = accu$1[1], - b$0 = caml_check_bound(d, i)[1 + i], - b = b$0, - accu = accu$2; - for(;;){ - if(b){ - var - key = b[1], - data = b[2], - next = b[3], - accu$0 = caml_call3(f, key, data, accu), - b = next, - accu = accu$0; - continue; - } - accu$1[1] = accu; - var _ac_ = i + 1 | 0; - if(_aa_ !== i){var i = _ac_; continue a;} - break; - } - break; - } - } - if(1 - old_trav) flip_ongoing_traversal(h); - var _ab_ = accu$1[1]; - return _ab_; - } - catch(exn$0){ - var exn = caml_wrap_exception(exn$0); - if(old_trav) throw caml_maybe_attach_backtrace(exn, 0); - flip_ongoing_traversal(h); - throw caml_maybe_attach_backtrace(exn, 0); - } - } - function bucket_length(accu, param){ - var accu$0 = accu, param$0 = param; - for(;;){ - if(! param$0) return accu$0; - var - next = param$0[3], - accu$1 = accu$0 + 1 | 0, - accu$0 = accu$1, - param$0 = next; - } - } - function stats(h){ - var _V_ = h[2], _W_ = 0; - function _X_(m, b){ - var ___ = bucket_length(0, b); - return caml_call2(Stdlib_Int[11], m, ___); - } - var - mbl = caml_call3(Stdlib_Array[17], _X_, _W_, _V_), - histo = caml_make_vect(mbl + 1 | 0, 0), - _Y_ = h[2]; - function _Z_(b){ - var l = bucket_length(0, b); - histo[1 + l] = caml_check_bound(histo, l)[1 + l] + 1 | 0; - return 0; - } - caml_call2(Stdlib_Array[13], _Z_, _Y_); - return [0, h[1], h[2].length - 1, mbl, histo]; - } - function to_seq(tbl){ - var tbl_data = tbl[2]; - function aux(i, buck, param){ - var i$0 = i, buck$0 = buck; - for(;;){ - if(buck$0){ - var key = buck$0[1], data = buck$0[2], next = buck$0[3]; - return [0, [0, key, data], function(_U_){return aux(i$0, next, _U_);}]; - } - if(i$0 === tbl_data.length - 1) return 0; - var - buck$1 = caml_check_bound(tbl_data, i$0)[1 + i$0], - i$1 = i$0 + 1 | 0, - i$0 = i$1, - buck$0 = buck$1; - } - } - var _R_ = 0, _S_ = 0; - return function(_T_){return aux(_S_, _R_, _T_);}; - } - function to_seq_keys(m){ - var _O_ = to_seq(m); - function _P_(_Q_){return _Q_[1];} - return caml_call2(Stdlib_Seq[27], _P_, _O_); - } - function to_seq_values(m){ - var _L_ = to_seq(m); - function _M_(_N_){return _N_[2];} - return caml_call2(Stdlib_Seq[27], _M_, _L_); - } - function MakeSeeded(H){ - function key_index(h, key){ - var _K_ = h[2].length - 1 - 1 | 0; - return caml_call2(H[2], h[3], key) & _K_; - } - function add(h, key, data){ - var - i = key_index(h, key), - bucket = [0, key, data, caml_check_bound(h[2], i)[1 + i]]; - caml_check_bound(h[2], i)[1 + i] = bucket; - h[1] = h[1] + 1 | 0; - var _J_ = h[2].length - 1 << 1 < h[1] ? 1 : 0; - return _J_ ? resize(key_index, h) : _J_; - } - function remove(h, key){ - var - i = key_index(h, key), - c = caml_check_bound(h[2], i)[1 + i], - prec$0 = 0, - prec = c; - for(;;){ - if(! prec) return 0; - var k = prec[1], next = prec[3]; - if(caml_call2(H[1], k, key)){ - h[1] = h[1] - 1 | 0; - return prec$0 - ? (prec$0[3] = next, 0) - : (caml_check_bound(h[2], i)[1 + i] = next, 0); - } - var prec$0 = prec, prec = next; - } - } - function find(h, key){ - var - _I_ = key_index(h, key), - match = caml_check_bound(h[2], _I_)[1 + _I_]; - if(! match) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var k1 = match[1], d1 = match[2], next1 = match[3]; - if(caml_call2(H[1], key, k1)) return d1; - if(! next1) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var k2 = next1[1], d2 = next1[2], next2 = next1[3]; - if(caml_call2(H[1], key, k2)) return d2; - if(! next2) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var k3 = next2[1], d3 = next2[2], next3 = next2[3]; - if(caml_call2(H[1], key, k3)) return d3; - var param = next3; - for(;;){ - if(! param) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var k = param[1], data = param[2], next = param[3]; - if(caml_call2(H[1], key, k)) return data; - var param = next; - } - } - function find_opt(h, key){ - var - _H_ = key_index(h, key), - match = caml_check_bound(h[2], _H_)[1 + _H_]; - if(! match) return 0; - var k1 = match[1], d1 = match[2], next1 = match[3]; - if(caml_call2(H[1], key, k1)) return [0, d1]; - if(! next1) return 0; - var k2 = next1[1], d2 = next1[2], next2 = next1[3]; - if(caml_call2(H[1], key, k2)) return [0, d2]; - if(! next2) return 0; - var k3 = next2[1], d3 = next2[2], next3 = next2[3]; - if(caml_call2(H[1], key, k3)) return [0, d3]; - var param = next3; - for(;;){ - if(! param) return 0; - var k = param[1], data = param[2], next = param[3]; - if(caml_call2(H[1], key, k)) return [0, data]; - var param = next; - } - } - function find_all(h, key){ - function find_in_bucket(param){ - var param$0 = param; - for(;;){ - if(! param$0) return 0; - var k = param$0[1], d = param$0[2], next = param$0[3]; - if(caml_call2(H[1], k, key)) return [0, d, find_in_bucket(next)]; - var param$0 = next; - } - } - var _G_ = key_index(h, key); - return find_in_bucket(caml_check_bound(h[2], _G_)[1 + _G_]); - } - function replace(h, key, data){ - var - i = key_index(h, key), - l = caml_check_bound(h[2], i)[1 + i], - slot = l; - for(;;){ - if(slot){ - var k = slot[1], next = slot[3]; - if(! caml_call2(H[1], k, key)){var slot = next; continue;} - slot[1] = key; - slot[2] = data; - var _D_ = 0; - } - else - var _D_ = 1; - if(_D_){ - caml_check_bound(h[2], i)[1 + i] = [0, key, data, l]; - h[1] = h[1] + 1 | 0; - var _E_ = h[2].length - 1 << 1 < h[1] ? 1 : 0; - if(_E_) return resize(key_index, h); - var _F_ = _E_; - } - else - var _F_ = _D_; - return _F_; - } - } - function mem(h, key){ - var - _C_ = key_index(h, key), - param = caml_check_bound(h[2], _C_)[1 + _C_]; - for(;;){ - if(! param) return 0; - var k = param[1], next = param[3], _B_ = caml_call2(H[1], k, key); - if(_B_) return _B_; - var param = next; - } - } - function add_seq(tbl, i){ - function _A_(param){ - var v = param[2], k = param[1]; - return add(tbl, k, v); - } - return caml_call2(Stdlib_Seq[4], _A_, i); - } - function replace_seq(tbl, i){ - function _z_(param){ - var v = param[2], k = param[1]; - return replace(tbl, k, v); - } - return caml_call2(Stdlib_Seq[4], _z_, i); - } - function of_seq(i){ - var tbl = create(0, 16); - replace_seq(tbl, i); - return tbl; - } - return [0, - create, - clear, - reset, - copy, - add, - remove, - find, - find_opt, - find_all, - replace, - mem, - iter, - filter_map_inplace, - fold, - length, - stats, - to_seq, - to_seq_keys, - to_seq_values, - add_seq, - replace_seq, - of_seq]; - } - function Make(H){ - var equal = H[1]; - function hash(seed, x){return caml_call1(H[2], x);} - var - include = MakeSeeded([0, equal, hash]), - clear = include[2], - reset = include[3], - copy = include[4], - add = include[5], - remove = include[6], - find = include[7], - find_opt = include[8], - find_all = include[9], - replace = include[10], - mem = include[11], - iter = include[12], - filter_map_inplace = include[13], - fold = include[14], - length = include[15], - stats = include[16], - to_seq = include[17], - to_seq_keys = include[18], - to_seq_values = include[19], - add_seq = include[20], - replace_seq = include[21], - _y_ = include[1]; - function create(sz){return caml_call2(_y_, _d_, sz);} - function of_seq(i){ - var tbl = create(16); - caml_call2(replace_seq, tbl, i); - return tbl; - } - return [0, - create, - clear, - reset, - copy, - add, - remove, - find, - find_opt, - find_all, - replace, - mem, - iter, - filter_map_inplace, - fold, - length, - stats, - to_seq, - to_seq_keys, - to_seq_values, - add_seq, - replace_seq, - of_seq]; - } - function hash(x){return caml_hash(10, 100, 0, x);} - function hash_param(n1, n2, x){return caml_hash(n1, n2, 0, x);} - function seeded_hash(seed, x){return caml_hash(10, 100, seed, x);} - function key_index(h, key){ - return 4 <= h.length - 1 - ? caml_hash(10, 100, h[3], key) & (h[2].length - 1 - 1 | 0) - : caml_call1(Stdlib[1], cst_Hashtbl_unsupported_hash_t); - } - function add(h, key, data){ - var - i = key_index(h, key), - bucket = [0, key, data, caml_check_bound(h[2], i)[1 + i]]; - caml_check_bound(h[2], i)[1 + i] = bucket; - h[1] = h[1] + 1 | 0; - var _x_ = h[2].length - 1 << 1 < h[1] ? 1 : 0; - return _x_ ? resize(key_index, h) : _x_; - } - function remove(h, key){ - var - i = key_index(h, key), - c = caml_check_bound(h[2], i)[1 + i], - prec$0 = 0, - prec = c; - for(;;){ - if(! prec) return 0; - var k = prec[1], next = prec[3]; - if(0 === caml_compare(k, key)){ - h[1] = h[1] - 1 | 0; - return prec$0 - ? (prec$0[3] = next, 0) - : (caml_check_bound(h[2], i)[1 + i] = next, 0); - } - var prec$0 = prec, prec = next; - } - } - function find(h, key){ - var _w_ = key_index(h, key), match = caml_check_bound(h[2], _w_)[1 + _w_]; - if(! match) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var k1 = match[1], d1 = match[2], next1 = match[3]; - if(0 === caml_compare(key, k1)) return d1; - if(! next1) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var k2 = next1[1], d2 = next1[2], next2 = next1[3]; - if(0 === caml_compare(key, k2)) return d2; - if(! next2) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var k3 = next2[1], d3 = next2[2], next3 = next2[3]; - if(0 === caml_compare(key, k3)) return d3; - var param = next3; - for(;;){ - if(! param) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var k = param[1], data = param[2], next = param[3]; - if(0 === caml_compare(key, k)) return data; - var param = next; - } - } - function find_opt(h, key){ - var _v_ = key_index(h, key), match = caml_check_bound(h[2], _v_)[1 + _v_]; - if(! match) return 0; - var k1 = match[1], d1 = match[2], next1 = match[3]; - if(0 === caml_compare(key, k1)) return [0, d1]; - if(! next1) return 0; - var k2 = next1[1], d2 = next1[2], next2 = next1[3]; - if(0 === caml_compare(key, k2)) return [0, d2]; - if(! next2) return 0; - var k3 = next2[1], d3 = next2[2], next3 = next2[3]; - if(0 === caml_compare(key, k3)) return [0, d3]; - var param = next3; - for(;;){ - if(! param) return 0; - var k = param[1], data = param[2], next = param[3]; - if(0 === caml_compare(key, k)) return [0, data]; - var param = next; - } - } - function find_all(h, key){ - function find_in_bucket(param){ - var param$0 = param; - for(;;){ - if(! param$0) return 0; - var k = param$0[1], data = param$0[2], next = param$0[3]; - if(0 === caml_compare(k, key)) return [0, data, find_in_bucket(next)]; - var param$0 = next; - } - } - var _u_ = key_index(h, key); - return find_in_bucket(caml_check_bound(h[2], _u_)[1 + _u_]); - } - function replace(h, key, data){ - var i = key_index(h, key), l = caml_check_bound(h[2], i)[1 + i], slot = l; - for(;;){ - if(slot){ - var k = slot[1], next = slot[3]; - if(0 !== caml_compare(k, key)){var slot = next; continue;} - slot[1] = key; - slot[2] = data; - var _r_ = 0; - } - else - var _r_ = 1; - if(_r_){ - caml_check_bound(h[2], i)[1 + i] = [0, key, data, l]; - h[1] = h[1] + 1 | 0; - var _s_ = h[2].length - 1 << 1 < h[1] ? 1 : 0; - if(_s_) return resize(key_index, h); - var _t_ = _s_; - } - else - var _t_ = _r_; - return _t_; - } - } - function mem(h, key){ - var _q_ = key_index(h, key), param = caml_check_bound(h[2], _q_)[1 + _q_]; - for(;;){ - if(! param) return 0; - var - k = param[1], - next = param[3], - _p_ = 0 === caml_compare(k, key) ? 1 : 0; - if(_p_) return _p_; - var param = next; - } - } - function add_seq(tbl, i){ - function _o_(param){ - var v = param[2], k = param[1]; - return add(tbl, k, v); - } - return caml_call2(Stdlib_Seq[4], _o_, i); - } - function replace_seq(tbl, i){ - function _n_(param){ - var v = param[2], k = param[1]; - return replace(tbl, k, v); - } - return caml_call2(Stdlib_Seq[4], _n_, i); - } - function of_seq(i){ - var tbl = create(0, 16); - replace_seq(tbl, i); - return tbl; - } - function rebuild(opt, h){ - if(opt) var sth = opt[1], random = sth; else var random = randomized[1]; - var s = power_2_above(16, h[2].length - 1); - if(random) - var - _g_ = caml_obj_tag(prng), - _h_ = - 250 === _g_ - ? prng[1] - : 246 === _g_ ? caml_call1(CamlinternalLazy[2], prng) : prng, - seed = caml_call1(Stdlib_Random[15][4], _h_); - else - var seed = 4 <= h.length - 1 ? h[3] : 0; - var - _i_ = 4 <= h.length - 1 ? h[4] : s, - h$0 = [0, h[1], caml_make_vect(s, 0), seed, _i_], - _j_ = h$0[2], - _k_ = h[2], - _l_ = 0; - insert_all_buckets - (function(_m_){return key_index(h$0, _m_);}, _l_, _k_, _j_); - return h$0; - } - var - Stdlib_Hashtbl = - [0, - create, - clear, - reset, - copy, - add, - find, - find_opt, - find_all, - mem, - remove, - replace, - iter, - filter_map_inplace, - fold, - length, - randomize, - is_randomized, - rebuild, - stats, - to_seq, - to_seq_keys, - to_seq_values, - add_seq, - replace_seq, - of_seq, - Make, - MakeSeeded, - hash, - seeded_hash, - hash_param, - caml_hash]; - runtime.caml_register_global(15, Stdlib_Hashtbl, "Stdlib__Hashtbl"); - return; - } - (globalThis)); - -//# 19058 "../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - cst$17 = "", - cst$18 = ">", - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, - caml_ml_string_length = runtime.caml_ml_string_length; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - function caml_call3(f, a0, a1, a2){ - return (f.l >= 0 ? f.l : f.l = f.length) == 3 - ? f(a0, a1, a2) - : runtime.caml_call_gen(f, [a0, a1, a2]); - } - var - global_data = runtime.caml_get_global_data(), - cst$15 = cst$17, - cst$16 = cst$17, - cst$14 = ".", - cst$11 = cst$18, - cst$12 = "<\/", - cst$13 = cst$17, - cst$8 = cst$18, - cst$9 = "<", - cst$10 = cst$17, - cst$7 = "\n", - cst$3 = cst$17, - cst$4 = cst$17, - cst$5 = cst$17, - cst$6 = cst$17, - cst = cst$17, - cst$0 = cst$17, - cst$1 = cst$17, - cst$2 = cst$17, - Stdlib_Queue = global_data.Stdlib__Queue, - CamlinternalFormat = global_data.CamlinternalFormat, - Stdlib = global_data.Stdlib, - Stdlib_String = global_data.Stdlib__String, - Stdlib_Buffer = global_data.Stdlib__Buffer, - Stdlib_List = global_data.Stdlib__List, - Stdlib_Stack = global_data.Stdlib__Stack, - Stdlib_Int = global_data.Stdlib__Int, - Stdlib_Bytes = global_data.Stdlib__Bytes, - _f_ = [3, 0, 3], - cst_Format_pp_set_geometry = "Format.pp_set_geometry: ", - _e_ = [1, "max_indent < 2"], - _c_ = [1, "margin <= max_indent"], - _d_ = [0, 0], - _b_ = [0, cst$17], - _a_ = [0, cst$17, 0, cst$17], - cst_Stdlib_Format_String_tag = "Stdlib.Format.String_tag"; - function id(x){return x;} - var - String_tag = - [248, cst_Stdlib_Format_String_tag, runtime.caml_fresh_oo_id(0)], - zero = 0, - unknown = -1; - function pp_enqueue(state, token){ - state[13] = state[13] + token[3] | 0; - return caml_call2(Stdlib_Queue[3], token, state[28]); - } - var pp_infinity = 1000000010; - function pp_output_string(state, s){ - return caml_call3(state[17], s, 0, caml_ml_string_length(s)); - } - function pp_output_newline(state){return caml_call1(state[19], 0);} - function format_pp_text(state, size, text){ - state[9] = state[9] - size | 0; - pp_output_string(state, text); - state[11] = 0; - return 0; - } - function format_string(state, s){ - var _bX_ = runtime.caml_string_notequal(s, cst$17); - return _bX_ ? format_pp_text(state, caml_ml_string_length(s), s) : _bX_; - } - function break_new_line(state, param, width){ - var after = param[3], offset = param[2], before = param[1]; - format_string(state, before); - pp_output_newline(state); - state[11] = 1; - var - indent = (state[6] - width | 0) + offset | 0, - real_indent = caml_call2(Stdlib_Int[10], state[8], indent); - state[10] = real_indent; - state[9] = state[6] - state[10] | 0; - var n = state[10]; - caml_call1(state[21], n); - return format_string(state, after); - } - function break_line(state, width){ - return break_new_line(state, _a_, width); - } - function break_same_line(state, param){ - var after = param[3], width = param[2], before = param[1]; - format_string(state, before); - state[9] = state[9] - width | 0; - caml_call1(state[20], width); - return format_string(state, after); - } - function format_pp_token(state, size$0, param){ - if(typeof param === "number") - switch(param){ - case 0: - var match$3 = caml_call1(Stdlib_Stack[7], state[3]); - if(! match$3) return 0; - var - tabs = match$3[1][1], - add_tab = - function(n, ls){ - if(! ls) return [0, n, 0]; - var l = ls[2], x = ls[1]; - return runtime.caml_lessthan(n, x) - ? [0, n, ls] - : [0, x, add_tab(n, l)]; - }; - tabs[1] = add_tab(state[6] - state[9] | 0, tabs[1]); - return 0; - case 1: - caml_call1(Stdlib_Stack[5], state[2]); return 0; - case 2: - caml_call1(Stdlib_Stack[5], state[3]); return 0; - case 3: - var match$4 = caml_call1(Stdlib_Stack[7], state[2]); - if(! match$4) return pp_output_newline(state); - var width$0 = match$4[1][2]; - return break_line(state, width$0); - case 4: - var _bV_ = state[10] !== (state[6] - state[9] | 0) ? 1 : 0; - if(! _bV_) return _bV_; - var match$1 = caml_call1(Stdlib_Queue[6], state[28]); - if(! match$1) return 0; - var match$2 = match$1[1], size = match$2[1], length = match$2[3]; - state[12] = state[12] - length | 0; - state[9] = state[9] + size | 0; - return 0; - default: - var match$5 = caml_call1(Stdlib_Stack[5], state[5]); - if(! match$5) return 0; - var tag_name = match$5[1], marker = caml_call1(state[25], tag_name); - return pp_output_string(state, marker); - } - switch(param[0]){ - case 0: - var s = param[1]; return format_pp_text(state, size$0, s); - case 1: - var - breaks = param[2], - fits = param[1], - off = breaks[2], - before = breaks[1], - match$6 = caml_call1(Stdlib_Stack[7], state[2]); - if(! match$6) return 0; - var - match$7 = match$6[1], - width$1 = match$7[2], - box_type$0 = match$7[1]; - switch(box_type$0){ - case 0: - return break_same_line(state, fits); - case 1: - return break_new_line(state, breaks, width$1); - case 2: - return break_new_line(state, breaks, width$1); - case 3: - return state[9] < (size$0 + caml_ml_string_length(before) | 0) - ? break_new_line(state, breaks, width$1) - : break_same_line(state, fits); - case 4: - return state[11] - ? break_same_line(state, fits) - : state - [9] - < (size$0 + caml_ml_string_length(before) | 0) - ? break_new_line(state, breaks, width$1) - : ((state - [6] - - width$1 - | 0) - + off - | 0) - < state[10] - ? break_new_line(state, breaks, width$1) - : break_same_line(state, fits); - default: return break_same_line(state, fits); - } - case 2: - var - off$0 = param[2], - n = param[1], - insertion_point = state[6] - state[9] | 0, - match$8 = caml_call1(Stdlib_Stack[7], state[3]); - if(! match$8) return 0; - var tabs$0 = match$8[1][1], match$9 = tabs$0[1]; - if(match$9){ - var first = match$9[1], param$0 = tabs$0[1]; - for(;;){ - if(param$0){ - var tail = param$0[2], head = param$0[1]; - if(insertion_point > head){var param$0 = tail; continue;} - var _bW_ = head; - } - else - var _bW_ = first; - var tab = _bW_; - break; - } - } - else - var tab = insertion_point; - var offset = tab - insertion_point | 0; - return 0 <= offset - ? break_same_line(state, [0, cst$0, offset + n | 0, cst]) - : break_new_line - (state, [0, cst$2, tab + off$0 | 0, cst$1], state[6]); - case 3: - var - ty = param[2], - off$1 = param[1], - insertion_point$0 = state[6] - state[9] | 0; - if(state[8] < insertion_point$0){ - var match = caml_call1(Stdlib_Stack[7], state[2]); - if(match){ - var match$0 = match[1], width = match$0[2], box_type = match$0[1]; - if(state[9] < width && 3 >= box_type - 1 >>> 0) - break_line(state, width); - } - else - pp_output_newline(state); - } - var - width$2 = state[9] - off$1 | 0, - box_type$1 = 1 === ty ? 1 : state[9] < size$0 ? ty : 5; - return caml_call2(Stdlib_Stack[3], [0, box_type$1, width$2], state[2]); - case 4: - var tbox = param[1]; - return caml_call2(Stdlib_Stack[3], tbox, state[3]); - default: - var - tag_name$0 = param[1], - marker$0 = caml_call1(state[24], tag_name$0); - pp_output_string(state, marker$0); - return caml_call2(Stdlib_Stack[3], tag_name$0, state[5]); - } - } - function advance_left(state){ - for(;;){ - var match = caml_call1(Stdlib_Queue[9], state[28]); - if(! match) return 0; - var - match$0 = match[1], - size = match$0[1], - length = match$0[3], - token = match$0[2], - pending_count = state[13] - state[12] | 0, - _bT_ = 0 <= size ? 1 : 0, - _bU_ = _bT_ || (state[9] <= pending_count ? 1 : 0); - if(! _bU_) return _bU_; - caml_call1(Stdlib_Queue[5], state[28]); - var size$0 = 0 <= size ? size : pp_infinity; - format_pp_token(state, size$0, token); - state[12] = length + state[12] | 0; - } - } - function enqueue_advance(state, tok){ - pp_enqueue(state, tok); - return advance_left(state); - } - function enqueue_string_as(state, size, s){ - return enqueue_advance(state, [0, size, [0, s], size]); - } - function initialize_scan_stack(stack){ - caml_call1(Stdlib_Stack[8], stack); - var queue_elem = [0, unknown, _b_, 0]; - return caml_call2(Stdlib_Stack[3], [0, -1, queue_elem], stack); - } - function set_size(state, ty){ - var match = caml_call1(Stdlib_Stack[7], state[1]); - if(! match) return 0; - var - match$0 = match[1], - queue_elem = match$0[2], - left_total = match$0[1], - size = queue_elem[1]; - if(left_total < state[12]) return initialize_scan_stack(state[1]); - var _bP_ = queue_elem[2]; - if(typeof _bP_ !== "number") - switch(_bP_[0]){ - case 3: - var - _bR_ = 1 - ty, - _bS_ = - _bR_ - ? (queue_elem - [1] - = state[13] + size | 0, - caml_call1(Stdlib_Stack[5], state[1]), - 0) - : _bR_; - return _bS_; - case 1: - case 2: - var - _bQ_ = - ty - ? (queue_elem - [1] - = state[13] + size | 0, - caml_call1(Stdlib_Stack[5], state[1]), - 0) - : ty; - return _bQ_; - } - return 0; - } - function scan_push(state, b, token){ - pp_enqueue(state, token); - if(b) set_size(state, 1); - var elem = [0, state[13], token]; - return caml_call2(Stdlib_Stack[3], elem, state[1]); - } - function pp_open_box_gen(state, indent, br_ty){ - state[14] = state[14] + 1 | 0; - if(state[14] < state[15]){ - var size = - state[13] | 0, elem = [0, size, [3, indent, br_ty], 0]; - return scan_push(state, 0, elem); - } - var _bO_ = state[14] === state[15] ? 1 : 0; - if(! _bO_) return _bO_; - var s = state[16]; - return enqueue_string_as(state, caml_ml_string_length(s), s); - } - function pp_close_box(state, param){ - var _bM_ = 1 < state[14] ? 1 : 0; - if(_bM_){ - if(state[14] < state[15]){ - pp_enqueue(state, [0, zero, 1, 0]); - set_size(state, 1); - set_size(state, 0); - } - state[14] = state[14] - 1 | 0; - var _bN_ = 0; - } - else - var _bN_ = _bM_; - return _bN_; - } - function pp_open_stag(state, tag_name){ - if(state[22]){ - caml_call2(Stdlib_Stack[3], tag_name, state[4]); - caml_call1(state[26], tag_name); - } - var _bL_ = state[23]; - if(! _bL_) return _bL_; - var token = [5, tag_name]; - return pp_enqueue(state, [0, zero, token, 0]); - } - function pp_close_stag(state, param){ - if(state[23]) pp_enqueue(state, [0, zero, 5, 0]); - var _bJ_ = state[22]; - if(_bJ_){ - var match = caml_call1(Stdlib_Stack[5], state[4]); - if(match){ - var tag_name = match[1]; - return caml_call1(state[27], tag_name); - } - var _bK_ = 0; - } - else - var _bK_ = _bJ_; - return _bK_; - } - function pp_open_tag(state, s){ - return pp_open_stag(state, [0, String_tag, s]); - } - function pp_close_tag(state, param){return pp_close_stag(state, 0);} - function pp_set_print_tags(state, b){state[22] = b; return 0;} - function pp_set_mark_tags(state, b){state[23] = b; return 0;} - function pp_get_print_tags(state, param){return state[22];} - function pp_get_mark_tags(state, param){return state[23];} - function pp_set_tags(state, b){ - pp_set_print_tags(state, b); - return pp_set_mark_tags(state, b); - } - function pp_get_formatter_stag_function(state, param){ - return [0, state[24], state[25], state[26], state[27]]; - } - function pp_set_formatter_stag_function(state, param){ - var pct = param[4], pot = param[3], mct = param[2], mot = param[1]; - state[24] = mot; - state[25] = mct; - state[26] = pot; - state[27] = pct; - return 0; - } - function pp_rinit(state){ - state[12] = 1; - state[13] = 1; - caml_call1(Stdlib_Queue[11], state[28]); - initialize_scan_stack(state[1]); - caml_call1(Stdlib_Stack[8], state[2]); - caml_call1(Stdlib_Stack[8], state[3]); - caml_call1(Stdlib_Stack[8], state[4]); - caml_call1(Stdlib_Stack[8], state[5]); - state[10] = 0; - state[14] = 0; - state[9] = state[6]; - return pp_open_box_gen(state, 0, 3); - } - function pp_flush_queue(state, b){ - var _bH_ = state[4]; - function _bI_(param){return pp_close_tag(state, 0);} - caml_call2(Stdlib_Stack[12], _bI_, _bH_); - for(;;){ - if(1 < state[14]){pp_close_box(state, 0); continue;} - state[13] = pp_infinity; - advance_left(state); - if(b) pp_output_newline(state); - return pp_rinit(state); - } - } - function pp_print_as_size(state, size, s){ - var _bG_ = state[14] < state[15] ? 1 : 0; - return _bG_ ? enqueue_string_as(state, size, s) : _bG_; - } - function pp_print_as(state, isize, s){ - return pp_print_as_size(state, isize, s); - } - function pp_print_string(state, s){ - return pp_print_as(state, caml_ml_string_length(s), s); - } - function pp_print_bytes(state, s){ - return pp_print_as - (state, - runtime.caml_ml_bytes_length(s), - caml_call1(Stdlib_Bytes[6], s)); - } - function pp_print_int(state, i){ - return pp_print_string(state, caml_call1(Stdlib_Int[12], i)); - } - function pp_print_float(state, f){ - return pp_print_string(state, caml_call1(Stdlib[35], f)); - } - function pp_print_bool(state, b){ - return pp_print_string(state, caml_call1(Stdlib[30], b)); - } - function pp_print_char(state, c){ - return pp_print_as(state, 1, caml_call2(Stdlib_String[1], 1, c)); - } - function pp_open_hbox(state, param){return pp_open_box_gen(state, 0, 0);} - function pp_open_vbox(state, indent){ - return pp_open_box_gen(state, indent, 1); - } - function pp_open_hvbox(state, indent){ - return pp_open_box_gen(state, indent, 2); - } - function pp_open_hovbox(state, indent){ - return pp_open_box_gen(state, indent, 3); - } - function pp_open_box(state, indent){ - return pp_open_box_gen(state, indent, 4); - } - function pp_print_newline(state, param){ - pp_flush_queue(state, 1); - return caml_call1(state[18], 0); - } - function pp_print_flush(state, param){ - pp_flush_queue(state, 0); - return caml_call1(state[18], 0); - } - function pp_force_newline(state, param){ - var _bF_ = state[14] < state[15] ? 1 : 0; - return _bF_ ? enqueue_advance(state, [0, zero, 3, 0]) : _bF_; - } - function pp_print_if_newline(state, param){ - var _bE_ = state[14] < state[15] ? 1 : 0; - return _bE_ ? enqueue_advance(state, [0, zero, 4, 0]) : _bE_; - } - function pp_print_custom_break(state, fits, breaks){ - var - after = fits[3], - width = fits[2], - before = fits[1], - _bD_ = state[14] < state[15] ? 1 : 0; - if(! _bD_) return _bD_; - var - size = - state[13] | 0, - token = [1, fits, breaks], - length = - (caml_ml_string_length(before) + width | 0) - + caml_ml_string_length(after) - | 0, - elem = [0, size, token, length]; - return scan_push(state, 1, elem); - } - function pp_print_break(state, width, offset){ - return pp_print_custom_break - (state, [0, cst$6, width, cst$5], [0, cst$4, offset, cst$3]); - } - function pp_print_space(state, param){return pp_print_break(state, 1, 0);} - function pp_print_cut(state, param){return pp_print_break(state, 0, 0);} - function pp_open_tbox(state, param){ - state[14] = state[14] + 1 | 0; - var _bC_ = state[14] < state[15] ? 1 : 0; - if(! _bC_) return _bC_; - var elem = [0, zero, [4, [0, [0, 0]]], 0]; - return enqueue_advance(state, elem); - } - function pp_close_tbox(state, param){ - var _bz_ = 1 < state[14] ? 1 : 0; - if(_bz_){ - var _bA_ = state[14] < state[15] ? 1 : 0; - if(_bA_){ - var elem = [0, zero, 2, 0]; - enqueue_advance(state, elem); - state[14] = state[14] - 1 | 0; - var _bB_ = 0; - } - else - var _bB_ = _bA_; - } - else - var _bB_ = _bz_; - return _bB_; - } - function pp_print_tbreak(state, width, offset){ - var _by_ = state[14] < state[15] ? 1 : 0; - if(! _by_) return _by_; - var size = - state[13] | 0, elem = [0, size, [2, width, offset], width]; - return scan_push(state, 1, elem); - } - function pp_print_tab(state, param){return pp_print_tbreak(state, 0, 0);} - function pp_set_tab(state, param){ - var _bx_ = state[14] < state[15] ? 1 : 0; - if(! _bx_) return _bx_; - var elem = [0, zero, 0, 0]; - return enqueue_advance(state, elem); - } - function pp_set_max_boxes(state, n){ - var _bv_ = 1 < n ? 1 : 0, _bw_ = _bv_ ? (state[15] = n, 0) : _bv_; - return _bw_; - } - function pp_get_max_boxes(state, param){return state[15];} - function pp_over_max_boxes(state, param){return state[14] === state[15] ? 1 : 0; - } - function pp_set_ellipsis_text(state, s){state[16] = s; return 0;} - function pp_get_ellipsis_text(state, param){return state[16];} - function pp_limit(n){return n < 1000000010 ? n : 1000000009;} - function pp_set_max_indent(state, n$0){ - var _bu_ = 1 < n$0 ? 1 : 0; - if(! _bu_) return _bu_; - var n$1 = state[6] - n$0 | 0, _bt_ = 1 <= n$1 ? 1 : 0; - if(! _bt_) return _bt_; - var n = pp_limit(n$1); - state[7] = n; - state[8] = state[6] - state[7] | 0; - return pp_rinit(state); - } - function pp_get_max_indent(state, param){return state[8];} - function pp_set_margin(state, n){ - var _br_ = 1 <= n ? 1 : 0; - if(! _br_) return _br_; - var n$0 = pp_limit(n); - state[6] = n$0; - if(state[8] <= state[6]) - var new_max_indent = state[8]; - else - var - _bs_ = - caml_call2(Stdlib_Int[11], state[6] - state[7] | 0, state[6] / 2 | 0), - new_max_indent = caml_call2(Stdlib_Int[11], _bs_, 1); - return pp_set_max_indent(state, new_max_indent); - } - function validate_geometry(param){ - var margin = param[2], max_indent = param[1]; - return 2 <= max_indent ? margin <= max_indent ? _c_ : _d_ : _e_; - } - function check_geometry(geometry){ - return 0 === validate_geometry(geometry)[0] ? 1 : 0; - } - function pp_get_margin(state, param){return state[6];} - function pp_set_full_geometry(state, param){ - var margin = param[2], max_indent = param[1]; - pp_set_margin(state, margin); - pp_set_max_indent(state, max_indent); - return 0; - } - function pp_set_geometry(state, max_indent, margin){ - var - geometry = [0, max_indent, margin], - match = validate_geometry(geometry); - if(0 === match[0]) return pp_set_full_geometry(state, geometry); - var - msg = match[1], - _bq_ = caml_call2(Stdlib[28], cst_Format_pp_set_geometry, msg); - throw caml_maybe_attach_backtrace([0, Stdlib[6], _bq_], 1); - } - function pp_safe_set_geometry(state, max_indent, margin){ - var geometry = [0, max_indent, margin]; - return 0 === validate_geometry(geometry)[0] - ? pp_set_full_geometry(state, geometry) - : 0; - } - function pp_get_geometry(state, param){return [0, state[8], state[6]];} - function pp_update_geometry(state, update){ - var geometry = pp_get_geometry(state, 0); - return pp_set_full_geometry(state, caml_call1(update, geometry)); - } - function pp_set_formatter_out_functions(state, param){ - var j = param[5], i = param[4], h = param[3], g = param[2], f = param[1]; - state[17] = f; - state[18] = g; - state[19] = h; - state[20] = i; - state[21] = j; - return 0; - } - function pp_get_formatter_out_functions(state, param){ - return [0, state[17], state[18], state[19], state[20], state[21]]; - } - function pp_set_formatter_output_functi(state, f, g){state[17] = f; state[18] = g; return 0; - } - function pp_get_formatter_output_functi(state, param){return [0, state[17], state[18]]; - } - function display_newline(state, param){ - return caml_call3(state[17], cst$7, 0, 1); - } - var blank_line = caml_call2(Stdlib_String[1], 80, 32); - function display_blanks(state, n){ - var n$0 = n; - for(;;){ - var _bp_ = 0 < n$0 ? 1 : 0; - if(! _bp_) return _bp_; - if(80 >= n$0) return caml_call3(state[17], blank_line, 0, n$0); - caml_call3(state[17], blank_line, 0, 80); - var n$1 = n$0 - 80 | 0, n$0 = n$1; - } - } - function pp_set_formatter_out_channel(state, oc){ - state[17] = caml_call1(Stdlib[69], oc); - state[18] = function(param){return caml_call1(Stdlib[63], oc);}; - state[19] = function(_bo_){return display_newline(state, _bo_);}; - state[20] = function(_bn_){return display_blanks(state, _bn_);}; - state[21] = function(_bm_){return display_blanks(state, _bm_);}; - return 0; - } - function default_pp_mark_open_tag(param){ - if(param[1] !== String_tag) return cst$10; - var s = param[2], _bl_ = caml_call2(Stdlib[28], s, cst$8); - return caml_call2(Stdlib[28], cst$9, _bl_); - } - function default_pp_mark_close_tag(param){ - if(param[1] !== String_tag) return cst$13; - var s = param[2], _bk_ = caml_call2(Stdlib[28], s, cst$11); - return caml_call2(Stdlib[28], cst$12, _bk_); - } - function default_pp_print_open_tag(_bj_){return 0;} - function default_pp_print_close_tag(_bi_){return 0;} - function pp_make_formatter(f, g, h, i, j){ - var - pp_queue = caml_call1(Stdlib_Queue[2], 0), - sys_tok = [0, unknown, _f_, 0]; - caml_call2(Stdlib_Queue[3], sys_tok, pp_queue); - var scan_stack = caml_call1(Stdlib_Stack[2], 0); - initialize_scan_stack(scan_stack); - caml_call2(Stdlib_Stack[3], [0, 1, sys_tok], scan_stack); - var - _be_ = Stdlib[19], - _bf_ = caml_call1(Stdlib_Stack[2], 0), - _bg_ = caml_call1(Stdlib_Stack[2], 0), - _bh_ = caml_call1(Stdlib_Stack[2], 0); - return [0, - scan_stack, - caml_call1(Stdlib_Stack[2], 0), - _bh_, - _bg_, - _bf_, - 78, - 10, - 68, - 78, - 0, - 1, - 1, - 1, - 1, - _be_, - cst$14, - f, - g, - h, - i, - j, - 0, - 0, - default_pp_mark_open_tag, - default_pp_mark_close_tag, - default_pp_print_open_tag, - default_pp_print_close_tag, - pp_queue]; - } - function formatter_of_out_functions(out_funs){ - return pp_make_formatter - (out_funs[1], out_funs[2], out_funs[3], out_funs[4], out_funs[5]); - } - function make_formatter(output, flush){ - function _a8_(_bd_){return 0;} - function _a9_(_bc_){return 0;} - var - ppf = - pp_make_formatter(output, flush, function(_bb_){return 0;}, _a9_, _a8_); - ppf[19] = function(_ba_){return display_newline(ppf, _ba_);}; - ppf[20] = function(_a$_){return display_blanks(ppf, _a$_);}; - ppf[21] = function(_a__){return display_blanks(ppf, _a__);}; - return ppf; - } - function formatter_of_out_channel(oc){ - function _a7_(param){return caml_call1(Stdlib[63], oc);} - return make_formatter(caml_call1(Stdlib[69], oc), _a7_); - } - function formatter_of_buffer(b){ - function _a5_(_a6_){return 0;} - return make_formatter(caml_call1(Stdlib_Buffer[18], b), _a5_); - } - var pp_buffer_size = 512; - function pp_make_buffer(param){ - return caml_call1(Stdlib_Buffer[1], pp_buffer_size); - } - var - stdbuf = pp_make_buffer(0), - std_formatter = formatter_of_out_channel(Stdlib[39]), - err_formatter = formatter_of_out_channel(Stdlib[40]), - str_formatter = formatter_of_buffer(stdbuf); - function flush_buffer_formatter(buf, ppf){ - pp_flush_queue(ppf, 0); - var s = caml_call1(Stdlib_Buffer[2], buf); - caml_call1(Stdlib_Buffer[9], buf); - return s; - } - function flush_str_formatter(param){ - return flush_buffer_formatter(stdbuf, str_formatter); - } - function make_symbolic_output_buffer(param){return [0, 0];} - function clear_symbolic_output_buffer(sob){sob[1] = 0; return 0;} - function get_symbolic_output_buffer(sob){ - return caml_call1(Stdlib_List[9], sob[1]); - } - function flush_symbolic_output_buffer(sob){ - var items = get_symbolic_output_buffer(sob); - clear_symbolic_output_buffer(sob); - return items; - } - function add_symbolic_output_item(sob, item){sob[1] = [0, item, sob[1]]; return 0; - } - function formatter_of_symbolic_output_b(sob){ - function f(s, i, n){ - return add_symbolic_output_item - (sob, [0, caml_call3(Stdlib_String[15], s, i, n)]); - } - function g(_a4_){return add_symbolic_output_item(sob, 0);} - function h(_a3_){return add_symbolic_output_item(sob, 1);} - function i(n){return add_symbolic_output_item(sob, [1, n]);} - function j(n){return add_symbolic_output_item(sob, [2, n]);} - return pp_make_formatter(f, g, h, i, j); - } - function open_hbox(_a2_){return pp_open_hbox(std_formatter, _a2_);} - function open_vbox(_a1_){return pp_open_vbox(std_formatter, _a1_);} - function open_hvbox(_a0_){return pp_open_hvbox(std_formatter, _a0_);} - function open_hovbox(_aZ_){return pp_open_hovbox(std_formatter, _aZ_);} - function open_box(_aY_){return pp_open_box(std_formatter, _aY_);} - function close_box(_aX_){return pp_close_box(std_formatter, _aX_);} - function open_tag(_aW_){return pp_open_tag(std_formatter, _aW_);} - function close_tag(_aV_){return pp_close_tag(std_formatter, _aV_);} - function open_stag(_aU_){return pp_open_stag(std_formatter, _aU_);} - function close_stag(_aT_){return pp_close_stag(std_formatter, _aT_);} - function print_as(_aR_, _aS_){ - return pp_print_as(std_formatter, _aR_, _aS_); - } - function print_string(_aQ_){return pp_print_string(std_formatter, _aQ_);} - function print_bytes(_aP_){return pp_print_bytes(std_formatter, _aP_);} - function print_int(_aO_){return pp_print_int(std_formatter, _aO_);} - function print_float(_aN_){return pp_print_float(std_formatter, _aN_);} - function print_char(_aM_){return pp_print_char(std_formatter, _aM_);} - function print_bool(_aL_){return pp_print_bool(std_formatter, _aL_);} - function print_break(_aJ_, _aK_){ - return pp_print_break(std_formatter, _aJ_, _aK_); - } - function print_cut(_aI_){return pp_print_cut(std_formatter, _aI_);} - function print_space(_aH_){return pp_print_space(std_formatter, _aH_);} - function force_newline(_aG_){return pp_force_newline(std_formatter, _aG_);} - function print_flush(_aF_){return pp_print_flush(std_formatter, _aF_);} - function print_newline(_aE_){return pp_print_newline(std_formatter, _aE_);} - function print_if_newline(_aD_){ - return pp_print_if_newline(std_formatter, _aD_); - } - function open_tbox(_aC_){return pp_open_tbox(std_formatter, _aC_);} - function close_tbox(_aB_){return pp_close_tbox(std_formatter, _aB_);} - function print_tbreak(_az_, _aA_){ - return pp_print_tbreak(std_formatter, _az_, _aA_); - } - function set_tab(_ay_){return pp_set_tab(std_formatter, _ay_);} - function print_tab(_ax_){return pp_print_tab(std_formatter, _ax_);} - function set_margin(_aw_){return pp_set_margin(std_formatter, _aw_);} - function get_margin(_av_){return std_formatter[6];} - function set_max_indent(_au_){ - return pp_set_max_indent(std_formatter, _au_); - } - function get_max_indent(_at_){return std_formatter[8];} - function set_geometry(_ar_, _as_){ - return pp_set_geometry(std_formatter, _ar_, _as_); - } - function safe_set_geometry(_ap_, _aq_){ - return pp_safe_set_geometry(std_formatter, _ap_, _aq_); - } - function get_geometry(_ao_){return pp_get_geometry(std_formatter, _ao_);} - function update_geometry(_an_){ - return pp_update_geometry(std_formatter, _an_); - } - function set_max_boxes(_am_){return pp_set_max_boxes(std_formatter, _am_);} - function get_max_boxes(_al_){return std_formatter[15];} - function over_max_boxes(_ak_){ - return pp_over_max_boxes(std_formatter, _ak_); - } - function set_ellipsis_text(_aj_){ - return pp_set_ellipsis_text(std_formatter, _aj_); - } - function get_ellipsis_text(_ai_){return std_formatter[16];} - function set_formatter_out_channel(_ah_){ - return pp_set_formatter_out_channel(std_formatter, _ah_); - } - function set_formatter_out_functions(_ag_){ - return pp_set_formatter_out_functions(std_formatter, _ag_); - } - function get_formatter_out_functions(_af_){ - return pp_get_formatter_out_functions(std_formatter, _af_); - } - function set_formatter_output_functions(_ad_, _ae_){ - return pp_set_formatter_output_functi(std_formatter, _ad_, _ae_); - } - function get_formatter_output_functions(_ac_){ - return pp_get_formatter_output_functi(std_formatter, _ac_); - } - function set_formatter_stag_functions(_ab_){ - return pp_set_formatter_stag_function(std_formatter, _ab_); - } - function get_formatter_stag_functions(_aa_){ - return pp_get_formatter_stag_function(std_formatter, _aa_); - } - function set_print_tags(_$_){return pp_set_print_tags(std_formatter, _$_);} - function get_print_tags(___){return std_formatter[22];} - function set_mark_tags(_Z_){return pp_set_mark_tags(std_formatter, _Z_);} - function get_mark_tags(_Y_){return std_formatter[23];} - function set_tags(_X_){return pp_set_tags(std_formatter, _X_);} - function pp_print_list(opt, pp_v, ppf, param){ - var opt$0 = opt, param$0 = param; - for(;;){ - if(opt$0) - var sth = opt$0[1], pp_sep = sth; - else - var pp_sep = pp_print_cut; - if(! param$0) return 0; - var v = param$0[1]; - if(! param$0[2]) return caml_call2(pp_v, ppf, v); - var vs = param$0[2]; - caml_call2(pp_v, ppf, v); - caml_call2(pp_sep, ppf, 0); - var opt$1 = [0, pp_sep], opt$0 = opt$1, param$0 = vs; - } - } - function pp_print_seq(opt, pp_v, ppf, seq$1){ - if(opt) var sth = opt[1], pp_sep = sth; else var pp_sep = pp_print_cut; - var match$0 = caml_call1(seq$1, 0); - if(! match$0) return 0; - var seq$2 = match$0[2], v$0 = match$0[1]; - caml_call2(pp_v, ppf, v$0); - var seq = seq$2; - for(;;){ - var match = caml_call1(seq, 0); - if(! match) return 0; - var seq$0 = match[2], v = match[1]; - caml_call2(pp_sep, ppf, 0); - caml_call2(pp_v, ppf, v); - var seq = seq$0; - } - } - function pp_print_text(ppf, s){ - var len = caml_ml_string_length(s), left = [0, 0], right = [0, 0]; - function flush(param){ - pp_print_string - (ppf, caml_call3(Stdlib_String[15], s, left[1], right[1] - left[1] | 0)); - right[1]++; - left[1] = right[1]; - return 0; - } - for(;;){ - if(right[1] === len){ - var _W_ = left[1] !== len ? 1 : 0; - return _W_ ? flush(0) : _W_; - } - var match = runtime.caml_string_get(s, right[1]); - if(10 === match){ - flush(0); - pp_force_newline(ppf, 0); - } - else if(32 === match){flush(0); pp_print_space(ppf, 0);} else right[1]++; - } - } - function pp_print_option(opt, pp_v, ppf, param){ - if(opt) - var sth = opt[1], none = sth; - else - var none = function(param, _V_){return 0;}; - if(! param) return caml_call2(none, ppf, 0); - var v = param[1]; - return caml_call2(pp_v, ppf, v); - } - function pp_print_result(ok, error, ppf, param){ - if(0 === param[0]){var v = param[1]; return caml_call2(ok, ppf, v);} - var e = param[1]; - return caml_call2(error, ppf, e); - } - function pp_print_either(left, right, ppf, param){ - if(0 === param[0]){var l = param[1]; return caml_call2(left, ppf, l);} - var r = param[1]; - return caml_call2(right, ppf, r); - } - function compute_tag(output, tag_acc){ - var - buf = caml_call1(Stdlib_Buffer[1], 16), - ppf = formatter_of_buffer(buf); - caml_call2(output, ppf, tag_acc); - pp_print_flush(ppf, 0); - var len = caml_call1(Stdlib_Buffer[7], buf); - return 2 <= len - ? caml_call3(Stdlib_Buffer[4], buf, 1, len - 2 | 0) - : caml_call1(Stdlib_Buffer[2], buf); - } - function output_formatting_lit(ppf, fmting_lit){ - if(typeof fmting_lit === "number") - switch(fmting_lit){ - case 0: - return pp_close_box(ppf, 0); - case 1: - return pp_close_tag(ppf, 0); - case 2: - return pp_print_flush(ppf, 0); - case 3: - return pp_force_newline(ppf, 0); - case 4: - return pp_print_newline(ppf, 0); - case 5: - return pp_print_char(ppf, 64); - default: return pp_print_char(ppf, 37); - } - switch(fmting_lit[0]){ - case 0: - var offset = fmting_lit[3], width = fmting_lit[2]; - return pp_print_break(ppf, width, offset); - case 1: - return 0; - default: - var c = fmting_lit[1]; - pp_print_char(ppf, 64); - return pp_print_char(ppf, c); - } - } - function output_acc(ppf, acc){ - var switch$0 = 0; - if(typeof acc === "number") return 0; - switch(acc[0]){ - case 0: - var f = acc[2], p = acc[1]; - output_acc(ppf, p); - return output_formatting_lit(ppf, f); - case 1: - var match = acc[2], p$0 = acc[1]; - if(0 === match[0]){ - var acc$0 = match[1]; - output_acc(ppf, p$0); - return pp_open_stag - (ppf, [0, String_tag, compute_tag(output_acc, acc$0)]); - } - var acc$1 = match[1]; - output_acc(ppf, p$0); - var - _M_ = compute_tag(output_acc, acc$1), - match$0 = caml_call1(CamlinternalFormat[20], _M_), - bty = match$0[2], - indent = match$0[1]; - return pp_open_box_gen(ppf, indent, bty); - case 2: - var _N_ = acc[1], switch$1 = 0; - if(typeof _N_ === "number" || ! (0 === _N_[0])) - switch$1 = 1; - else{ - var _O_ = _N_[2], switch$2 = 0; - if(typeof _O_ === "number" || ! (1 === _O_[0])) - switch$2 = 1; - else - var s$0 = acc[2], size = _O_[2], p$2 = _N_[1]; - if(switch$2) switch$1 = 1; - } - if(switch$1){var s = acc[2], p$1 = _N_; switch$0 = 2;} - break; - case 3: - var _P_ = acc[1], switch$3 = 0; - if(typeof _P_ === "number" || ! (0 === _P_[0])) - switch$3 = 1; - else{ - var _Q_ = _P_[2], switch$4 = 0; - if(typeof _Q_ === "number" || ! (1 === _Q_[0])) - switch$4 = 1; - else{var c$0 = acc[2], size$0 = _Q_[2], p$4 = _P_[1]; switch$0 = 1;} - if(switch$4) switch$3 = 1; - } - if(switch$3){var c = acc[2], p$3 = _P_; switch$0 = 3;} - break; - case 4: - var _R_ = acc[1], switch$5 = 0; - if(typeof _R_ === "number" || ! (0 === _R_[0])) - switch$5 = 1; - else{ - var _S_ = _R_[2], switch$6 = 0; - if(typeof _S_ === "number" || ! (1 === _S_[0])) - switch$6 = 1; - else - var s$0 = acc[2], size = _S_[2], p$2 = _R_[1]; - if(switch$6) switch$5 = 1; - } - if(switch$5){var s = acc[2], p$1 = _R_; switch$0 = 2;} - break; - case 5: - var _T_ = acc[1], switch$7 = 0; - if(typeof _T_ === "number" || ! (0 === _T_[0])) - switch$7 = 1; - else{ - var _U_ = _T_[2], switch$8 = 0; - if(typeof _U_ === "number" || ! (1 === _U_[0])) - switch$8 = 1; - else{var c$0 = acc[2], size$0 = _U_[2], p$4 = _T_[1]; switch$0 = 1;} - if(switch$8) switch$7 = 1; - } - if(switch$7){var c = acc[2], p$3 = _T_; switch$0 = 3;} - break; - case 6: - var f$0 = acc[2], p$5 = acc[1]; - output_acc(ppf, p$5); - return caml_call1(f$0, ppf); - case 7: - var p$6 = acc[1]; output_acc(ppf, p$6); return pp_print_flush(ppf, 0); - default: - var msg = acc[2], p$7 = acc[1]; - output_acc(ppf, p$7); - return caml_call1(Stdlib[1], msg); - } - switch(switch$0){ - case 0: - output_acc(ppf, p$2); return pp_print_as_size(ppf, size, s$0); - case 1: - output_acc(ppf, p$4); - return pp_print_as_size - (ppf, size$0, caml_call2(Stdlib_String[1], 1, c$0)); - case 2: - output_acc(ppf, p$1); return pp_print_string(ppf, s); - default: output_acc(ppf, p$3); return pp_print_char(ppf, c); - } - } - function strput_acc(ppf, acc){ - var switch$0 = 0; - if(typeof acc === "number") return 0; - switch(acc[0]){ - case 0: - var f = acc[2], p = acc[1]; - strput_acc(ppf, p); - return output_formatting_lit(ppf, f); - case 1: - var match = acc[2], p$0 = acc[1]; - if(0 === match[0]){ - var acc$0 = match[1]; - strput_acc(ppf, p$0); - return pp_open_stag - (ppf, [0, String_tag, compute_tag(strput_acc, acc$0)]); - } - var acc$1 = match[1]; - strput_acc(ppf, p$0); - var - _D_ = compute_tag(strput_acc, acc$1), - match$0 = caml_call1(CamlinternalFormat[20], _D_), - bty = match$0[2], - indent = match$0[1]; - return pp_open_box_gen(ppf, indent, bty); - case 2: - var _E_ = acc[1], switch$1 = 0; - if(typeof _E_ === "number" || ! (0 === _E_[0])) - switch$1 = 1; - else{ - var _F_ = _E_[2], switch$2 = 0; - if(typeof _F_ === "number" || ! (1 === _F_[0])) - switch$2 = 1; - else - var s$0 = acc[2], size = _F_[2], p$2 = _E_[1]; - if(switch$2) switch$1 = 1; - } - if(switch$1){var s = acc[2], p$1 = _E_; switch$0 = 2;} - break; - case 3: - var _G_ = acc[1], switch$3 = 0; - if(typeof _G_ === "number" || ! (0 === _G_[0])) - switch$3 = 1; - else{ - var _H_ = _G_[2], switch$4 = 0; - if(typeof _H_ === "number" || ! (1 === _H_[0])) - switch$4 = 1; - else{var c$0 = acc[2], size$0 = _H_[2], p$4 = _G_[1]; switch$0 = 1;} - if(switch$4) switch$3 = 1; - } - if(switch$3){var c = acc[2], p$3 = _G_; switch$0 = 3;} - break; - case 4: - var _I_ = acc[1], switch$5 = 0; - if(typeof _I_ === "number" || ! (0 === _I_[0])) - switch$5 = 1; - else{ - var _J_ = _I_[2], switch$6 = 0; - if(typeof _J_ === "number" || ! (1 === _J_[0])) - switch$6 = 1; - else - var s$0 = acc[2], size = _J_[2], p$2 = _I_[1]; - if(switch$6) switch$5 = 1; - } - if(switch$5){var s = acc[2], p$1 = _I_; switch$0 = 2;} - break; - case 5: - var _K_ = acc[1], switch$7 = 0; - if(typeof _K_ === "number" || ! (0 === _K_[0])) - switch$7 = 1; - else{ - var _L_ = _K_[2], switch$8 = 0; - if(typeof _L_ === "number" || ! (1 === _L_[0])) - switch$8 = 1; - else{var c$0 = acc[2], size$0 = _L_[2], p$4 = _K_[1]; switch$0 = 1;} - if(switch$8) switch$7 = 1; - } - if(switch$7){var c = acc[2], p$3 = _K_; switch$0 = 3;} - break; - case 6: - var p$5 = acc[1]; - if(typeof p$5 !== "number" && 0 === p$5[0]){ - var match$1 = p$5[2]; - if(typeof match$1 !== "number" && 1 === match$1[0]){ - var f$1 = acc[2], size$1 = match$1[2], p$6 = p$5[1]; - strput_acc(ppf, p$6); - return pp_print_as_size(ppf, size$1, caml_call1(f$1, 0)); - } - } - var f$0 = acc[2]; - strput_acc(ppf, p$5); - return pp_print_string(ppf, caml_call1(f$0, 0)); - case 7: - var p$7 = acc[1]; strput_acc(ppf, p$7); return pp_print_flush(ppf, 0); - default: - var msg = acc[2], p$8 = acc[1]; - strput_acc(ppf, p$8); - return caml_call1(Stdlib[1], msg); - } - switch(switch$0){ - case 0: - strput_acc(ppf, p$2); return pp_print_as_size(ppf, size, s$0); - case 1: - strput_acc(ppf, p$4); - return pp_print_as_size - (ppf, size$0, caml_call2(Stdlib_String[1], 1, c$0)); - case 2: - strput_acc(ppf, p$1); return pp_print_string(ppf, s); - default: strput_acc(ppf, p$3); return pp_print_char(ppf, c); - } - } - function kfprintf(k, ppf, param){ - var fmt = param[1], _B_ = 0; - function _C_(acc){output_acc(ppf, acc); return caml_call1(k, ppf);} - return caml_call3(CamlinternalFormat[7], _C_, _B_, fmt); - } - function ikfprintf(k, ppf, param){ - var fmt = param[1]; - return caml_call3(CamlinternalFormat[8], k, ppf, fmt); - } - function ifprintf(ppf, param){ - var fmt = param[1], _y_ = 0; - function _z_(_A_){return 0;} - return caml_call3(CamlinternalFormat[8], _z_, _y_, fmt); - } - function fprintf(ppf){ - function _v_(_x_){return 0;} - return function(_w_){return kfprintf(_v_, ppf, _w_);}; - } - function printf(fmt){return fprintf(std_formatter)(fmt);} - function eprintf(fmt){return fprintf(err_formatter)(fmt);} - function kdprintf(k, param){ - var fmt = param[1], _t_ = 0; - function _u_(acc){ - return caml_call1(k, function(ppf){return output_acc(ppf, acc);}); - } - return caml_call3(CamlinternalFormat[7], _u_, _t_, fmt); - } - function dprintf(fmt){return kdprintf(function(i){return i;}, fmt);} - function ksprintf(k, param){ - var fmt = param[1], b = pp_make_buffer(0), ppf = formatter_of_buffer(b); - function k$0(acc){ - strput_acc(ppf, acc); - return caml_call1(k, flush_buffer_formatter(b, ppf)); - } - return caml_call3(CamlinternalFormat[7], k$0, 0, fmt); - } - function sprintf(fmt){return ksprintf(id, fmt);} - function kasprintf(k, param){ - var fmt = param[1], b = pp_make_buffer(0), ppf = formatter_of_buffer(b); - function k$0(acc){ - output_acc(ppf, acc); - return caml_call1(k, flush_buffer_formatter(b, ppf)); - } - return caml_call3(CamlinternalFormat[7], k$0, 0, fmt); - } - function asprintf(fmt){return kasprintf(id, fmt);} - function flush_standard_formatters(param){ - pp_print_flush(std_formatter, 0); - return pp_print_flush(err_formatter, 0); - } - caml_call1(Stdlib[100], flush_standard_formatters); - function pp_set_all_formatter_output_fu(state, f, g, h, i){ - pp_set_formatter_output_functi(state, f, g); - state[19] = h; - state[20] = i; - return 0; - } - function pp_get_all_formatter_output_fu(state, param){ - return [0, state[17], state[18], state[19], state[20]]; - } - function set_all_formatter_output_funct(_p_, _q_, _r_, _s_){ - return pp_set_all_formatter_output_fu(std_formatter, _p_, _q_, _r_, _s_); - } - function get_all_formatter_output_funct(_o_){ - return pp_get_all_formatter_output_fu(std_formatter, _o_); - } - function bprintf(b, param){ - var fmt = param[1], ppf = formatter_of_buffer(b); - function k(acc){output_acc(ppf, acc); return pp_flush_queue(ppf, 0);} - return caml_call3(CamlinternalFormat[7], k, 0, fmt); - } - function pp_set_formatter_tag_functions(state, param){ - var pct = param[4], pot = param[3], mct = param[2], mot = param[1]; - function stringify(f, e, param){ - if(param[1] !== String_tag) return e; - var s = param[2]; - return caml_call1(f, s); - } - state[24] = function(_n_){return stringify(mot, cst$15, _n_);}; - state[25] = function(_m_){return stringify(mct, cst$16, _m_);}; - var _i_ = 0; - state[26] = function(_l_){return stringify(pot, _i_, _l_);}; - var _j_ = 0; - state[27] = function(_k_){return stringify(pct, _j_, _k_);}; - return 0; - } - function pp_get_formatter_tag_functions(fmt, param){ - var funs = pp_get_formatter_stag_function(fmt, 0); - function mark_open_tag(s){return caml_call1(funs[1], [0, String_tag, s]);} - function mark_close_tag(s){ - return caml_call1(funs[2], [0, String_tag, s]); - } - function print_open_tag(s){ - return caml_call1(funs[3], [0, String_tag, s]); - } - function print_close_tag(s){ - return caml_call1(funs[4], [0, String_tag, s]); - } - return [0, mark_open_tag, mark_close_tag, print_open_tag, print_close_tag]; - } - function set_formatter_tag_functions(_h_){ - return pp_set_formatter_tag_functions(std_formatter, _h_); - } - function get_formatter_tag_functions(_g_){ - return pp_get_formatter_tag_functions(std_formatter, _g_); - } - var - Stdlib_Format = - [0, - pp_open_box, - open_box, - pp_close_box, - close_box, - pp_open_hbox, - open_hbox, - pp_open_vbox, - open_vbox, - pp_open_hvbox, - open_hvbox, - pp_open_hovbox, - open_hovbox, - pp_print_string, - print_string, - pp_print_bytes, - print_bytes, - pp_print_as, - print_as, - pp_print_int, - print_int, - pp_print_float, - print_float, - pp_print_char, - print_char, - pp_print_bool, - print_bool, - pp_print_space, - print_space, - pp_print_cut, - print_cut, - pp_print_break, - print_break, - pp_print_custom_break, - pp_force_newline, - force_newline, - pp_print_if_newline, - print_if_newline, - pp_print_flush, - print_flush, - pp_print_newline, - print_newline, - pp_set_margin, - set_margin, - pp_get_margin, - get_margin, - pp_set_max_indent, - set_max_indent, - pp_get_max_indent, - get_max_indent, - check_geometry, - pp_set_geometry, - set_geometry, - pp_safe_set_geometry, - safe_set_geometry, - pp_update_geometry, - update_geometry, - pp_get_geometry, - get_geometry, - pp_set_max_boxes, - set_max_boxes, - pp_get_max_boxes, - get_max_boxes, - pp_over_max_boxes, - over_max_boxes, - pp_open_tbox, - open_tbox, - pp_close_tbox, - close_tbox, - pp_set_tab, - set_tab, - pp_print_tab, - print_tab, - pp_print_tbreak, - print_tbreak, - pp_set_ellipsis_text, - set_ellipsis_text, - pp_get_ellipsis_text, - get_ellipsis_text, - String_tag, - pp_open_stag, - open_stag, - pp_close_stag, - close_stag, - pp_set_tags, - set_tags, - pp_set_print_tags, - set_print_tags, - pp_set_mark_tags, - set_mark_tags, - pp_get_print_tags, - get_print_tags, - pp_get_mark_tags, - get_mark_tags, - pp_set_formatter_out_channel, - set_formatter_out_channel, - pp_set_formatter_output_functi, - set_formatter_output_functions, - pp_get_formatter_output_functi, - get_formatter_output_functions, - pp_set_formatter_out_functions, - set_formatter_out_functions, - pp_get_formatter_out_functions, - get_formatter_out_functions, - pp_set_formatter_stag_function, - set_formatter_stag_functions, - pp_get_formatter_stag_function, - get_formatter_stag_functions, - formatter_of_out_channel, - std_formatter, - err_formatter, - formatter_of_buffer, - stdbuf, - str_formatter, - flush_str_formatter, - make_formatter, - formatter_of_out_functions, - make_symbolic_output_buffer, - clear_symbolic_output_buffer, - get_symbolic_output_buffer, - flush_symbolic_output_buffer, - add_symbolic_output_item, - formatter_of_symbolic_output_b, - pp_print_list, - pp_print_seq, - pp_print_text, - pp_print_option, - pp_print_result, - pp_print_either, - fprintf, - printf, - eprintf, - sprintf, - asprintf, - dprintf, - ifprintf, - kfprintf, - kdprintf, - ikfprintf, - ksprintf, - kasprintf, - bprintf, - ksprintf, - set_all_formatter_output_funct, - get_all_formatter_output_funct, - pp_set_all_formatter_output_fu, - pp_get_all_formatter_output_fu, - pp_open_tag, - open_tag, - pp_close_tag, - close_tag, - pp_set_formatter_tag_functions, - set_formatter_tag_functions, - pp_get_formatter_tag_functions, - get_formatter_tag_functions]; - runtime.caml_register_global(36, Stdlib_Format, "Stdlib__Format"); - return; - } - (globalThis)); - -//# 22228 "../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - caml_register_named_value = runtime.caml_register_named_value, - global_data = runtime.caml_get_global_data(), - Stdlib_Obj = global_data.Stdlib__Obj, - register = caml_register_named_value; - function register_exception(name, exn){ - var - _a_ = Stdlib_Obj[8], - slot = runtime.caml_obj_tag(exn) === _a_ ? exn : exn[1]; - return caml_register_named_value(name, slot); - } - var Stdlib_Callback = [0, register, register_exception]; - runtime.caml_register_global(1, Stdlib_Callback, "Stdlib__Callback"); - return; - } - (globalThis)); - -//# 22251 "../.js/default/stdlib/stdlib.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - cst_camlinternalOO_ml = "camlinternalOO.ml", - caml_check_bound = runtime.caml_check_bound, - caml_div = runtime.caml_div, - caml_get_public_method = runtime.caml_get_public_method, - caml_make_vect = runtime.caml_make_vect, - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, - caml_obj_block = runtime.caml_obj_block, - caml_set_oo_id = runtime.caml_set_oo_id, - caml_string_compare = runtime.caml_string_compare, - caml_wrap_exception = runtime.caml_wrap_exception; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - function caml_call3(f, a0, a1, a2){ - return (f.l >= 0 ? f.l : f.l = f.length) == 3 - ? f(a0, a1, a2) - : runtime.caml_call_gen(f, [a0, a1, a2]); - } - function caml_call5(f, a0, a1, a2, a3, a4){ - return (f.l >= 0 ? f.l : f.l = f.length) == 5 - ? f(a0, a1, a2, a3, a4) - : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4]); - } - var - global_data = runtime.caml_get_global_data(), - Assert_failure = global_data.Assert_failure, - Stdlib_Sys = global_data.Stdlib__Sys, - Stdlib_Obj = global_data.Stdlib__Obj, - Stdlib = global_data.Stdlib, - Stdlib_Array = global_data.Stdlib__Array, - Stdlib_List = global_data.Stdlib__List, - Stdlib_Map = global_data.Stdlib__Map, - _g_ = [0, cst_camlinternalOO_ml, 439, 17], - _f_ = [0, cst_camlinternalOO_ml, 421, 13], - _e_ = [0, cst_camlinternalOO_ml, 418, 13], - _d_ = [0, cst_camlinternalOO_ml, 415, 13], - _c_ = [0, cst_camlinternalOO_ml, 412, 13], - _b_ = [0, cst_camlinternalOO_ml, 409, 13], - _a_ = [0, cst_camlinternalOO_ml, 281, 50]; - function copy(o){var o$0 = o.slice(); return caml_set_oo_id(o$0);} - var params = [0, 1, 1, 1, 3, 16], initial_object_size = 2, dummy_item = 0; - function public_method_label(s){ - var - accu = [0, 0], - _aE_ = runtime.caml_ml_string_length(s) - 1 | 0, - _aD_ = 0; - if(_aE_ >= 0){ - var i = _aD_; - for(;;){ - var _aF_ = runtime.caml_string_get(s, i); - accu[1] = (223 * accu[1] | 0) + _aF_ | 0; - var _aG_ = i + 1 | 0; - if(_aE_ !== i){var i = _aG_; continue;} - break; - } - } - accu[1] = accu[1] & 2147483647; - var tag = 1073741823 < accu[1] ? accu[1] + 2147483648 | 0 : accu[1]; - return tag; - } - var - compare = caml_string_compare, - Vars = caml_call1(Stdlib_Map[1], [0, compare]), - compare$0 = caml_string_compare, - Meths = caml_call1(Stdlib_Map[1], [0, compare$0]), - compare$1 = runtime.caml_int_compare, - Labs = caml_call1(Stdlib_Map[1], [0, compare$1]), - dummy_table = [0, 0, [0, dummy_item], Meths[1], Labs[1], 0, 0, Vars[1], 0], - table_count = [0, 0], - dummy_met = caml_obj_block(0, 0); - function fit_size(n){ - return 2 < n ? fit_size((n + 1 | 0) / 2 | 0) * 2 | 0 : n; - } - function new_table(pub_labels){ - table_count[1]++; - var - len = pub_labels.length - 1, - methods = caml_make_vect((len * 2 | 0) + 2 | 0, dummy_met); - caml_check_bound(methods, 0)[1] = len; - var - _aw_ = Stdlib_Sys[9], - _ax_ = (runtime.caml_mul(fit_size(len), _aw_) / 8 | 0) - 1 | 0; - caml_check_bound(methods, 1)[2] = _ax_; - var _az_ = len - 1 | 0, _ay_ = 0; - if(_az_ >= 0){ - var i = _ay_; - for(;;){ - var - _aB_ = (i * 2 | 0) + 3 | 0, - _aA_ = caml_check_bound(pub_labels, i)[1 + i]; - caml_check_bound(methods, _aB_)[1 + _aB_] = _aA_; - var _aC_ = i + 1 | 0; - if(_az_ !== i){var i = _aC_; continue;} - break; - } - } - return [0, - initial_object_size, - methods, - Meths[1], - Labs[1], - 0, - 0, - Vars[1], - 0]; - } - function resize(array, new_size){ - var old_size = array[2].length - 1, _au_ = old_size < new_size ? 1 : 0; - if(_au_){ - var new_buck = caml_make_vect(new_size, dummy_met); - caml_call5(Stdlib_Array[10], array[2], 0, new_buck, 0, old_size); - array[2] = new_buck; - var _av_ = 0; - } - else - var _av_ = _au_; - return _av_; - } - var method_count = [0, 0], inst_var_count = [0, 0]; - function new_method(table){ - var index = table[2].length - 1; - resize(table, index + 1 | 0); - return index; - } - function get_method_label(table, name){ - try{var _as_ = caml_call2(Meths[28], name, table[3]); return _as_;} - catch(_at_){ - var _ar_ = caml_wrap_exception(_at_); - if(_ar_ !== Stdlib[8]) throw caml_maybe_attach_backtrace(_ar_, 0); - var label = new_method(table); - table[3] = caml_call3(Meths[4], name, label, table[3]); - table[4] = caml_call3(Labs[4], label, 1, table[4]); - return label; - } - } - function get_method_labels(table, names){ - function _ap_(_aq_){return get_method_label(table, _aq_);} - return caml_call2(Stdlib_Array[15], _ap_, names); - } - function set_method(table, label, element){ - method_count[1]++; - return caml_call2(Labs[28], label, table[4]) - ? (resize - (table, label + 1 | 0), - caml_check_bound(table[2], label)[1 + label] = element, - 0) - : (table[6] = [0, [0, label, element], table[6]], 0); - } - function get_method(table, label){ - try{var _an_ = caml_call2(Stdlib_List[46], label, table[6]); return _an_;} - catch(_ao_){ - var _am_ = caml_wrap_exception(_ao_); - if(_am_ === Stdlib[8]) - return caml_check_bound(table[2], label)[1 + label]; - throw caml_maybe_attach_backtrace(_am_, 0); - } - } - function to_list(arr){ - return 0 === arr ? 0 : caml_call1(Stdlib_Array[11], arr); - } - function narrow(table, vars, virt_meths, concr_meths){ - var - vars$0 = to_list(vars), - virt_meths$0 = to_list(virt_meths), - concr_meths$0 = to_list(concr_meths); - function _X_(_al_){return get_method_label(table, _al_);} - var virt_meth_labs = caml_call2(Stdlib_List[19], _X_, virt_meths$0); - function _Y_(_ak_){return get_method_label(table, _ak_);} - var concr_meth_labs = caml_call2(Stdlib_List[19], _Y_, concr_meths$0); - table[5] = - [0, - [0, table[3], table[4], table[6], table[7], virt_meth_labs, vars$0], - table[5]]; - var _Z_ = Vars[1], ___ = table[7]; - function _$_(lab, info, tvars){ - return caml_call2(Stdlib_List[36], lab, vars$0) - ? caml_call3(Vars[4], lab, info, tvars) - : tvars; - } - table[7] = caml_call3(Vars[13], _$_, ___, _Z_); - var by_name = [0, Meths[1]], by_label = [0, Labs[1]]; - function _aa_(met, label){ - by_name[1] = caml_call3(Meths[4], met, label, by_name[1]); - var _af_ = by_label[1]; - try{var _ai_ = caml_call2(Labs[28], label, table[4]), _ah_ = _ai_;} - catch(_aj_){ - var _ag_ = caml_wrap_exception(_aj_); - if(_ag_ !== Stdlib[8]) throw caml_maybe_attach_backtrace(_ag_, 0); - var _ah_ = 1; - } - by_label[1] = caml_call3(Labs[4], label, _ah_, _af_); - return 0; - } - caml_call3(Stdlib_List[27], _aa_, concr_meths$0, concr_meth_labs); - function _ab_(met, label){ - by_name[1] = caml_call3(Meths[4], met, label, by_name[1]); - by_label[1] = caml_call3(Labs[4], label, 0, by_label[1]); - return 0; - } - caml_call3(Stdlib_List[27], _ab_, virt_meths$0, virt_meth_labs); - table[3] = by_name[1]; - table[4] = by_label[1]; - var _ac_ = 0, _ad_ = table[6]; - function _ae_(met, hm){ - var lab = met[1]; - return caml_call2(Stdlib_List[36], lab, virt_meth_labs) - ? hm - : [0, met, hm]; - } - table[6] = caml_call3(Stdlib_List[26], _ae_, _ad_, _ac_); - return 0; - } - function widen(table){ - var - match = caml_call1(Stdlib_List[5], table[5]), - vars = match[6], - virt_meths = match[5], - saved_vars = match[4], - saved_hidden_meths = match[3], - by_label = match[2], - by_name = match[1]; - table[5] = caml_call1(Stdlib_List[6], table[5]); - function _T_(s, v){ - var _W_ = caml_call2(Vars[28], v, table[7]); - return caml_call3(Vars[4], v, _W_, s); - } - table[7] = caml_call3(Stdlib_List[25], _T_, saved_vars, vars); - table[3] = by_name; - table[4] = by_label; - var _U_ = table[6]; - function _V_(met, hm){ - var lab = met[1]; - return caml_call2(Stdlib_List[36], lab, virt_meths) ? hm : [0, met, hm]; - } - table[6] = caml_call3(Stdlib_List[26], _V_, _U_, saved_hidden_meths); - return 0; - } - function new_variable(table, name){ - try{var _R_ = caml_call2(Vars[28], name, table[7]); return _R_;} - catch(_S_){ - var _Q_ = caml_wrap_exception(_S_); - if(_Q_ !== Stdlib[8]) throw caml_maybe_attach_backtrace(_Q_, 0); - var index = table[1]; - table[1] = index + 1 | 0; - if(runtime.caml_string_notequal(name, "")) - table[7] = caml_call3(Vars[4], name, index, table[7]); - return index; - } - } - function to_array(arr){return runtime.caml_equal(arr, 0) ? [0] : arr;} - function new_methods_variables(table, meths, vals){ - var - meths$0 = to_array(meths), - nmeths = meths$0.length - 1, - nvals = vals.length - 1, - res = caml_make_vect(nmeths + nvals | 0, 0), - _I_ = nmeths - 1 | 0, - _H_ = 0; - if(_I_ >= 0){ - var i$0 = _H_; - for(;;){ - var - _O_ = get_method_label(table, caml_check_bound(meths$0, i$0)[1 + i$0]); - caml_check_bound(res, i$0)[1 + i$0] = _O_; - var _P_ = i$0 + 1 | 0; - if(_I_ !== i$0){var i$0 = _P_; continue;} - break; - } - } - var _K_ = nvals - 1 | 0, _J_ = 0; - if(_K_ >= 0){ - var i = _J_; - for(;;){ - var - _M_ = i + nmeths | 0, - _L_ = new_variable(table, caml_check_bound(vals, i)[1 + i]); - caml_check_bound(res, _M_)[1 + _M_] = _L_; - var _N_ = i + 1 | 0; - if(_K_ !== i){var i = _N_; continue;} - break; - } - } - return res; - } - function get_variable(table, name){ - try{var _F_ = caml_call2(Vars[28], name, table[7]); return _F_;} - catch(_G_){ - var _E_ = caml_wrap_exception(_G_); - if(_E_ === Stdlib[8]) - throw caml_maybe_attach_backtrace([0, Assert_failure, _a_], 1); - throw caml_maybe_attach_backtrace(_E_, 0); - } - } - function get_variables(table, names){ - function _C_(_D_){return get_variable(table, _D_);} - return caml_call2(Stdlib_Array[15], _C_, names); - } - function add_initializer(table, f){table[8] = [0, f, table[8]]; return 0;} - function create_table(public_methods){ - if(0 === public_methods) return new_table([0]); - var - tags = caml_call2(Stdlib_Array[15], public_method_label, public_methods), - table = new_table(tags); - function _B_(i, met){ - var lab = (i * 2 | 0) + 2 | 0; - table[3] = caml_call3(Meths[4], met, lab, table[3]); - table[4] = caml_call3(Labs[4], lab, 1, table[4]); - return 0; - } - caml_call2(Stdlib_Array[14], _B_, public_methods); - return table; - } - function init_class(table){ - inst_var_count[1] = (inst_var_count[1] + table[1] | 0) - 1 | 0; - table[8] = caml_call1(Stdlib_List[9], table[8]); - var _A_ = Stdlib_Sys[9]; - return resize - (table, - 3 + caml_div(caml_check_bound(table[2], 1)[2] * 16 | 0, _A_) | 0); - } - function inherits(cla, vals, virt_meths, concr_meths, param, top){ - var env = param[4], super$0 = param[2]; - narrow(cla, vals, virt_meths, concr_meths); - var init = top ? caml_call2(super$0, cla, env) : caml_call1(super$0, cla); - widen(cla); - var _s_ = 0, _t_ = to_array(concr_meths); - function _u_(nm){return get_method(cla, get_method_label(cla, nm));} - var - _v_ = [0, caml_call2(Stdlib_Array[15], _u_, _t_), _s_], - _w_ = to_array(vals); - function _x_(_z_){return get_variable(cla, _z_);} - var - _y_ = [0, [0, init], [0, caml_call2(Stdlib_Array[15], _x_, _w_), _v_]]; - return caml_call1(Stdlib_Array[6], _y_); - } - function make_class(pub_meths, class_init){ - var - table = create_table(pub_meths), - env_init = caml_call1(class_init, table); - init_class(table); - return [0, caml_call1(env_init, 0), class_init, env_init, 0]; - } - function make_class_store(pub_meths, class_init, init_table){ - var - table = create_table(pub_meths), - env_init = caml_call1(class_init, table); - init_class(table); - init_table[2] = class_init; - init_table[1] = env_init; - return 0; - } - function dummy_class(loc){ - function undef(param){ - throw caml_maybe_attach_backtrace([0, Stdlib[15], loc], 1); - } - return [0, undef, undef, undef, 0]; - } - function create_object(table){ - var obj = caml_obj_block(Stdlib_Obj[8], table[1]); - obj[1] = table[2]; - return caml_set_oo_id(obj); - } - function create_object_opt(obj_0, table){ - if(obj_0) return obj_0; - var obj = caml_obj_block(Stdlib_Obj[8], table[1]); - obj[1] = table[2]; - return caml_set_oo_id(obj); - } - function iter_f(obj, param){ - var param$0 = param; - for(;;){ - if(! param$0) return 0; - var l = param$0[2], f = param$0[1]; - caml_call1(f, obj); - var param$0 = l; - } - } - function run_initializers(obj, table){ - var inits = table[8], _r_ = 0 !== inits ? 1 : 0; - return _r_ ? iter_f(obj, inits) : _r_; - } - function run_initializers_opt(obj_0, obj, table){ - if(obj_0) return obj; - var inits = table[8]; - if(0 !== inits) iter_f(obj, inits); - return obj; - } - function create_object_and_run_initiali(obj_0, table){ - if(obj_0) return obj_0; - var obj = create_object(table); - run_initializers(obj, table); - return obj; - } - function get_data(param){ - if(param) return param[2]; - throw caml_maybe_attach_backtrace([0, Assert_failure, _e_], 1); - } - function build_path(n, keys, tables){ - var res = [0, 0, 0, 0], r = [0, res], _o_ = 0; - if(n >= 0){ - var i = _o_; - for(;;){ - var _p_ = r[1]; - r[1] = [0, caml_check_bound(keys, i)[1 + i], _p_, 0]; - var _q_ = i + 1 | 0; - if(n !== i){var i = _q_; continue;} - break; - } - } - var v = r[1]; - if(! tables) - throw caml_maybe_attach_backtrace([0, Assert_failure, _b_], 1); - tables[2] = v; - return res; - } - function lookup_tables(root, keys){ - var root_data = get_data(root); - if(! root_data) return build_path(keys.length - 1 - 1 | 0, keys, root); - var i$1 = keys.length - 1 - 1 | 0, i = i$1, tables$0 = root_data; - a: - for(;;){ - if(0 > i) return tables$0; - var key = caml_check_bound(keys, i)[1 + i], tables$1 = tables$0; - for(;;){ - if(! tables$1) - throw caml_maybe_attach_backtrace([0, Assert_failure, _d_], 1); - if(tables$1[1] === key){ - var tables_data = get_data(tables$1); - if(! tables_data) - throw caml_maybe_attach_backtrace([0, Assert_failure, _g_], 1); - var i$0 = i - 1 | 0, i = i$0, tables$0 = tables_data; - continue a; - } - if(! tables$1) - throw caml_maybe_attach_backtrace([0, Assert_failure, _f_], 1); - var tables = tables$1[3]; - if(tables){var tables$1 = tables; continue;} - var next = [0, key, 0, 0]; - if(! tables$1) - throw caml_maybe_attach_backtrace([0, Assert_failure, _c_], 1); - tables$1[3] = next; - return build_path(i - 1 | 0, keys, next); - } - } - } - function new_cache(table){ - var n = new_method(table), switch$0 = 0; - if(0 !== (n % 2 | 0)){ - var _n_ = Stdlib_Sys[9]; - if - ((2 + caml_div(caml_check_bound(table[2], 1)[2] * 16 | 0, _n_) | 0) >= n){var n$0 = new_method(table); switch$0 = 1;} - } - if(! switch$0) var n$0 = n; - caml_check_bound(table[2], n$0)[1 + n$0] = 0; - return n$0; - } - function set_methods(table, methods){ - var len = methods.length - 1, i = [0, 0]; - for(;;){ - if(i[1] >= len) return 0; - var - _h_ = i[1], - label = caml_check_bound(methods, _h_)[1 + _h_], - next = - function(param){ - i[1]++; - var _m_ = i[1]; - return caml_check_bound(methods, _m_)[1 + _m_]; - }, - clo = next(0); - if(typeof clo === "number") - switch(clo){ - case 0: - var - x = next(0), - clo$0 = function(x){return function(obj){return x;};}(x); - break; - case 1: - var - n = next(0), - clo$0 = function(n){return function(obj){return obj[1 + n];};}(n); - break; - case 2: - var - e = next(0), - n$0 = next(0), - clo$0 = - function(e, n){return function(obj){return obj[1 + e][1 + n];};} - (e, n$0); - break; - case 3: - var - n$1 = next(0), - clo$0 = - function(n){ - return function(obj){return caml_call1(obj[1][1 + n], obj);}; - } - (n$1); - break; - case 4: - var - n$2 = next(0), - clo$0 = - function(n){return function(obj, x){obj[1 + n] = x; return 0;};} - (n$2); - break; - case 5: - var - f = next(0), - x$0 = next(0), - clo$0 = - function(f, x){return function(obj){return caml_call1(f, x);};} - (f, x$0); - break; - case 6: - var - f$0 = next(0), - n$3 = next(0), - clo$0 = - function(f, n){ - return function(obj){return caml_call1(f, obj[1 + n]);}; - } - (f$0, n$3); - break; - case 7: - var - f$1 = next(0), - e$0 = next(0), - n$4 = next(0), - clo$0 = - function(f, e, n){ - return function(obj){return caml_call1(f, obj[1 + e][1 + n]);}; - } - (f$1, e$0, n$4); - break; - case 8: - var - f$2 = next(0), - n$5 = next(0), - clo$0 = - function(f, n){ - return function(obj){ - return caml_call1(f, caml_call1(obj[1][1 + n], obj));}; - } - (f$2, n$5); - break; - case 9: - var - f$3 = next(0), - x$1 = next(0), - y = next(0), - clo$0 = - function(f, x, y){ - return function(obj){return caml_call2(f, x, y);}; - } - (f$3, x$1, y); - break; - case 10: - var - f$4 = next(0), - x$2 = next(0), - n$6 = next(0), - clo$0 = - function(f, x, n){ - return function(obj){return caml_call2(f, x, obj[1 + n]);}; - } - (f$4, x$2, n$6); - break; - case 11: - var - f$5 = next(0), - x$3 = next(0), - e$1 = next(0), - n$7 = next(0), - clo$0 = - function(f, x, e, n){ - return function(obj){ - return caml_call2(f, x, obj[1 + e][1 + n]);}; - } - (f$5, x$3, e$1, n$7); - break; - case 12: - var - f$6 = next(0), - x$4 = next(0), - n$8 = next(0), - clo$0 = - function(f, x, n){ - return function(obj){ - return caml_call2(f, x, caml_call1(obj[1][1 + n], obj));}; - } - (f$6, x$4, n$8); - break; - case 13: - var - f$7 = next(0), - n$9 = next(0), - x$5 = next(0), - clo$0 = - function(f, n, x){ - return function(obj){return caml_call2(f, obj[1 + n], x);}; - } - (f$7, n$9, x$5); - break; - case 14: - var - f$8 = next(0), - e$2 = next(0), - n$10 = next(0), - x$6 = next(0), - clo$0 = - function(f, e, n, x){ - return function(obj){ - return caml_call2(f, obj[1 + e][1 + n], x);}; - } - (f$8, e$2, n$10, x$6); - break; - case 15: - var - f$9 = next(0), - n$11 = next(0), - x$7 = next(0), - clo$0 = - function(f, n, x){ - return function(obj){ - return caml_call2(f, caml_call1(obj[1][1 + n], obj), x);}; - } - (f$9, n$11, x$7); - break; - case 16: - var - n$12 = next(0), - x$8 = next(0), - clo$0 = - function(n, x){ - return function(obj){return caml_call2(obj[1][1 + n], obj, x);}; - } - (n$12, x$8); - break; - case 17: - var - n$13 = next(0), - m = next(0), - clo$0 = - function(n, m){ - return function(obj){ - return caml_call2(obj[1][1 + n], obj, obj[1 + m]);}; - } - (n$13, m); - break; - case 18: - var - n$14 = next(0), - e$3 = next(0), - m$0 = next(0), - clo$0 = - function(n, e, m){ - return function(obj){ - return caml_call2(obj[1][1 + n], obj, obj[1 + e][1 + m]);}; - } - (n$14, e$3, m$0); - break; - case 19: - var - n$15 = next(0), - m$1 = next(0), - clo$0 = - function(n, m){ - return function(obj){ - var _k_ = caml_call1(obj[1][1 + m], obj); - return caml_call2(obj[1][1 + n], obj, _k_);}; - } - (n$15, m$1); - break; - case 20: - var m$2 = next(0), x$9 = next(0); - new_cache(table); - var - clo$0 = - function(m, x){ - return function(obj){ - return caml_call1(caml_get_public_method(x, m, 0), x);}; - } - (m$2, x$9); - break; - case 21: - var m$3 = next(0), n$16 = next(0); - new_cache(table); - var - clo$0 = - function(m, n){ - return function(obj){ - var _j_ = obj[1 + n]; - return caml_call1(caml_get_public_method(_j_, m, 0), _j_);}; - } - (m$3, n$16); - break; - case 22: - var m$4 = next(0), e$4 = next(0), n$17 = next(0); - new_cache(table); - var - clo$0 = - function(m, e, n){ - return function(obj){ - var _i_ = obj[1 + e][1 + n]; - return caml_call1(caml_get_public_method(_i_, m, 0), _i_);}; - } - (m$4, e$4, n$17); - break; - default: - var m$5 = next(0), n$18 = next(0); - new_cache(table); - var - clo$0 = - function(m, n){ - return function(obj){ - var _l_ = caml_call1(obj[1][1 + n], obj); - return caml_call1(caml_get_public_method(_l_, m, 0), _l_);}; - } - (m$5, n$18); - } - else - var clo$0 = clo; - set_method(table, label, clo$0); - i[1]++; - } - } - function stats(param){ - return [0, table_count[1], method_count[1], inst_var_count[1]]; - } - var - CamlinternalOO = - [0, - public_method_label, - new_method, - new_variable, - new_methods_variables, - get_variable, - get_variables, - get_method_label, - get_method_labels, - get_method, - set_method, - set_methods, - narrow, - widen, - add_initializer, - dummy_table, - create_table, - init_class, - inherits, - make_class, - make_class_store, - dummy_class, - copy, - create_object, - create_object_opt, - run_initializers, - run_initializers_opt, - create_object_and_run_initiali, - lookup_tables, - params, - stats]; - runtime.caml_register_global(17, CamlinternalOO, "CamlinternalOO"); - return; - } - (globalThis)); - - -//# 1 "../.js/default/xmlm/xmlm.cma.js" -// Generated by js_of_ocaml -//# 3 "../.js/default/xmlm/xmlm.cma.js" - -//# 6 "../.js/default/xmlm/xmlm.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - cst$25 = "", - cst$31 = '"', - cst$29 = ")", - cst_D$1 = "", - cst$28 = ">", - cst$30 = "?>", - cst$26 = "@ ", - cst$27 = "@,", - cst_None = "None", - cst_El_end = "`El_end", - cst_src_xmlm_ml = "src/xmlm.ml", - caml_compare = runtime.caml_compare, - caml_fresh_oo_id = runtime.caml_fresh_oo_id, - caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, - caml_ml_string_length = runtime.caml_ml_string_length, - caml_string_get = runtime.caml_string_get, - caml_wrap_exception = runtime.caml_wrap_exception; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - function caml_call3(f, a0, a1, a2){ - return (f.l >= 0 ? f.l : f.l = f.length) == 3 - ? f(a0, a1, a2) - : runtime.caml_call_gen(f, [a0, a1, a2]); - } - function caml_call4(f, a0, a1, a2, a3){ - return (f.l >= 0 ? f.l : f.l = f.length) == 4 - ? f(a0, a1, a2, a3) - : runtime.caml_call_gen(f, [a0, a1, a2, a3]); - } - function caml_call5(f, a0, a1, a2, a3, a4){ - return (f.l >= 0 ? f.l : f.l = f.length) == 5 - ? f(a0, a1, a2, a3, a4) - : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4]); - } - function caml_call6(f, a0, a1, a2, a3, a4, a5){ - return (f.l >= 0 ? f.l : f.l = f.length) == 6 - ? f(a0, a1, a2, a3, a4, a5) - : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4, a5]); - } - var - global_data = runtime.caml_get_global_data(), - partial = [12, 41, [17, 0, 0]], - cst$21 = "/>", - cst$22 = "<\/", - cst$23 = cst$28, - cst$24 = cst$28, - cst$20 = '="', - cst$19 = "\xef\xbf\xbd", - cst$18 = cst$25, - cst$17 = cst$29, - context = [0, 0, 0], - cst$15 = cst$30, - cst$16 = cst$30, - cst$14 = "]]>", - cst$13 = "(Some@ %S)@]"], - _n_ = [0, [11, cst_None, 0], cst_None], - _k_ = [0, [12, 59, [17, [0, cst$26, 1, 0], 0]], ";@ "], - _l_ = - [0, - [18, - [1, [0, [11, cst_1, 0], cst_1]], - [12, - 40, - [15, - [12, - 44, - [17, - [0, cst$27, 0, 0], - [18, - [1, [0, [11, cst_1, 0], cst_1]], - [12, 91, [15, [12, 93, [17, 0, partial]]]]]]]]]], - "@[<1>(%a,@,@[<1>[%a]@])@]"], - _j_ = - [0, - [18, - [1, [0, [11, cst_1, 0], cst_1]], - [12, - 40, - [15, [12, 44, [17, [0, cst$27, 0, 0], [3, 0, [12, 41, [17, 0, 0]]]]]]]], - "@[<1>(%a,@,%S)@]"], - _h_ = [0, [2, 0, [12, 58, [2, 0, 0]]], "%s:%s"], - _i_ = [0, [2, 0, 0], "%s"], - _g_ = [0, cst_src_xmlm_ml, 1110, 12], - cst_xml_version_1_0_encoding_U = - '\n', - cst_lt$0 = "<", - cst_gt$0 = ">", - cst_quot$0 = """, - cst_amp$0 = "&", - cst_unbound_namespace = "unbound namespace (", - _e_ = [0, cst_src_xmlm_ml, 916, 17], - _f_ = [0, cst_src_xmlm_ml, 923, 18], - cst_D$0 = cst_D$1, - _d_ = [0, cst_src_xmlm_ml, 848, 45], - _c_ = [0, cst_src_xmlm_ml, 822, 9], - cst_D = cst_D$1, - _b_ = [0, 3407540, 0], - cst_maximal_buffer_size_exceed = "maximal buffer size exceeded", - cst_unexpected_end_of_input = "unexpected end of input", - cst_malformed_character_stream = "malformed character stream", - cst_expected_root_element = "expected root element", - cst_character_sequence_illegal = 'character sequence illegal here ("', - cst_illegal_character_referenc = "illegal character reference (#", - cst_unknown_encoding = "unknown encoding (", - cst_unknown_namespace_prefix = "unknown namespace prefix (", - cst_found = 'found "', - cst_expected_one_of_these_char = - "expected one of these character sequence: ", - cst_unknown_entity_reference = "unknown entity reference (", - cst_CDATA = "CDATA[", - cst_http_www_w3_org_XML_1998_n = "http://www.w3.org/XML/1998/namespace", - cst_http_www_w3_org_2000_xmlns = "http://www.w3.org/2000/xmlns/", - cst_xml = "xml", - cst_xmlns = "xmlns", - cst_space = "space", - cst_version = "version", - cst_encoding = "encoding", - cst_standalone = "standalone", - cst_yes = "yes", - cst_no = "no", - cst_preserve = "preserve", - cst_default = "default", - cst_1_0 = "1.0", - cst_1_1 = "1.1", - cst_utf_8 = "utf-8", - cst_utf_16 = "utf-16", - cst_utf_16be = "utf-16be", - cst_utf_16le = "utf-16le", - cst_iso_8859_1 = "iso-8859-1", - cst_us_ascii = "us-ascii", - cst_ascii = "ascii", - cst_Xmlm_Make_String_Buffer_Er = "Xmlm.Make(String)(Buffer).Error", - cst_lt = "lt", - cst_gt = "gt", - cst_amp = "amp", - cst_apos = "apos", - cst_quot = "quot", - _a_ = [0, cst_src_xmlm_ml, 150, 9], - cst_Xmlm_Buffer_Full = "Xmlm.Buffer.Full"; - function uchar_utf8(i){ - var - b0 = caml_call1(i, 0), - match = runtime.caml_check_bound(utf8_len, b0)[1 + b0]; - if(4 < match >>> 0) - throw caml_maybe_attach_backtrace([0, Assert_failure, _a_], 1); - switch(match){ - case 0: - throw caml_maybe_attach_backtrace(Malformed, 1); - case 1: - return b0; - case 2: - var b1 = caml_call1(i, 0); - if(2 === (b1 >>> 6 | 0)) return (b0 & 31) << 6 | b1 & 63; - throw caml_maybe_attach_backtrace(Malformed, 1); - case 3: - var b1$0 = caml_call1(i, 0), b2 = caml_call1(i, 0); - if(2 !== (b2 >>> 6 | 0)) - throw caml_maybe_attach_backtrace(Malformed, 1); - if(224 === b0){ - var switch$0 = 0; - if(160 > b1$0 || 191 < b1$0) switch$0 = 1; - if(switch$0) throw caml_maybe_attach_backtrace(Malformed, 1); - } - else if(237 === b0){ - var switch$1 = 0; - if(128 <= b1$0 && 159 >= b1$0) switch$1 = 1; - if(! switch$1) throw caml_maybe_attach_backtrace(Malformed, 1); - } - else if(2 !== (b1$0 >>> 6 | 0)) - throw caml_maybe_attach_backtrace(Malformed, 1); - return (b0 & 15) << 12 | (b1$0 & 63) << 6 | b2 & 63; - default: - var - b1$1 = caml_call1(i, 0), - b2$0 = caml_call1(i, 0), - b3 = caml_call1(i, 0); - if(2 === (b3 >>> 6 | 0) && 2 === (b2$0 >>> 6 | 0)){ - if(240 === b0){ - var switch$2 = 0; - if(144 > b1$1 || 191 < b1$1) switch$2 = 1; - if(switch$2) throw caml_maybe_attach_backtrace(Malformed, 1); - } - else if(244 === b0){ - var switch$3 = 0; - if(128 <= b1$1 && 143 >= b1$1) switch$3 = 1; - if(! switch$3) throw caml_maybe_attach_backtrace(Malformed, 1); - } - else if(2 !== (b1$1 >>> 6 | 0)) - throw caml_maybe_attach_backtrace(Malformed, 1); - return (b0 & 7) << 18 | (b1$1 & 63) << 12 | (b2$0 & 63) << 6 | b3 & 63; - } - throw caml_maybe_attach_backtrace(Malformed, 1); - } - } - function int16_be(i){ - var b0 = caml_call1(i, 0), b1 = caml_call1(i, 0); - return b0 << 8 | b1; - } - function int16_le(i){ - var b0 = caml_call1(i, 0), b1 = caml_call1(i, 0); - return b1 << 8 | b0; - } - function uchar_utf16(int16, i){ - var c0 = caml_call1(int16, i); - if(55296 <= c0 && 57343 >= c0){ - if(56319 < c0) throw caml_maybe_attach_backtrace(Malformed, 1); - var c1 = caml_call1(int16, i); - return ((c0 & 1023) << 10 | c1 & 1023) + 65536 | 0; - } - return c0; - } - function uchar_utf16be(_bo_){return uchar_utf16(int16_be, _bo_);} - function uchar_utf16le(_bn_){return uchar_utf16(int16_le, _bn_);} - function uchar_byte(i){return caml_call1(i, 0);} - function uchar_iso_8859_1(i){return caml_call1(i, 0);} - function uchar_ascii(i){ - var b = caml_call1(i, 0); - if(127 < b) throw caml_maybe_attach_backtrace(Malformed, 1); - return b; - } - function Make(String, Buffer){ - var str = String[6]; - function str_eq(s$0, s){return 0 === caml_compare(s$0, s) ? 1 : 0;} - function str_empty(s){return 0 === caml_compare(s, String[1]) ? 1 : 0;} - var cat = String[3]; - function str_of_char(u){ - var b = caml_call1(Buffer[2], 4); - caml_call2(Buffer[3], b, u); - return caml_call1(Buffer[5], b); - } - var - hash = Stdlib_Hashtbl[28], - Ht = caml_call1(Stdlib_Hashtbl[26], [0, str_eq, hash]), - s_cdata = caml_call1(str, cst_CDATA), - ns_xml = caml_call1(str, cst_http_www_w3_org_XML_1998_n), - ns_xmlns = caml_call1(str, cst_http_www_w3_org_2000_xmlns), - n_xml = caml_call1(str, cst_xml), - n_xmlns = caml_call1(str, cst_xmlns), - n_space = caml_call1(str, cst_space), - n_version = caml_call1(str, cst_version), - n_encoding = caml_call1(str, cst_encoding), - n_standalone = caml_call1(str, cst_standalone), - v_yes = caml_call1(str, cst_yes), - v_no = caml_call1(str, cst_no), - v_preserve = caml_call1(str, cst_preserve), - v_default = caml_call1(str, cst_default), - v_version_1_0 = caml_call1(str, cst_1_0), - v_version_1_1 = caml_call1(str, cst_1_1), - v_utf_8 = caml_call1(str, cst_utf_8), - v_utf_16 = caml_call1(str, cst_utf_16), - v_utf_16be = caml_call1(str, cst_utf_16be), - v_utf_16le = caml_call1(str, cst_utf_16le), - v_iso_8859_1 = caml_call1(str, cst_iso_8859_1), - v_us_ascii = caml_call1(str, cst_us_ascii), - v_ascii = caml_call1(str, cst_ascii), - u_nl = 10, - u_cr = 13, - u_space = 32, - u_quot = 34, - u_sharp = 35, - u_amp = 38, - u_apos = 39, - u_minus = 45, - u_slash = 47, - u_colon = 58, - u_scolon = 59, - u_lt = 60, - u_eq = 61, - u_gt = 62, - u_qmark = 63, - u_emark = 33, - u_lbrack = 91, - u_rbrack = 93, - u_x = 120, - u_bom = 65279, - u_9 = 57, - u_F = 70, - u_D = 68; - function name_str(param){ - var l = param[2], p = param[1]; - return str_empty(p) - ? l - : caml_call2(cat, p, caml_call2(cat, caml_call1(str, cst), l)); - } - var Error = [248, cst_Xmlm_Make_String_Buffer_Er, caml_fresh_oo_id(0)]; - function error_message(e){ - function bracket(l, v, r){ - var _bm_ = caml_call2(cat, v, caml_call1(str, r)); - return caml_call2(cat, caml_call1(str, l), _bm_); - } - if(typeof e === "number") - return -95440847 <= e - ? 891487781 - <= e - ? caml_call1(str, cst_maximal_buffer_size_exceed) - : caml_call1(str, cst_unexpected_end_of_input) - : -372779099 - <= e - ? caml_call1(str, cst_malformed_character_stream) - : caml_call1(str, cst_expected_root_element); - var _bk_ = e[1]; - if(-108708553 > _bk_){ - if(-261531242 <= _bk_){ - var - match = e[2], - fnd = match[2], - exps = match[1], - exp = - function(acc, v){ - return caml_call2(cat, acc, bracket(cst$5, v, cst$4)); - }, - exps$0 = caml_call3(Stdlib_List[25], exp, String[1], exps), - _bl_ = caml_call2(cat, exps$0, bracket(cst_found, fnd, cst$6)); - return caml_call2 - (cat, caml_call1(str, cst_expected_one_of_these_char), _bl_); - } - var e$2 = e[2]; - return bracket(cst_unknown_entity_reference, e$2, cst$7); - } - if(719894387 <= _bk_){ - if(719944127 <= _bk_){ - var s = e[2]; - return bracket(cst_character_sequence_illegal, s, cst$0); - } - var s$0 = e[2]; - return bracket(cst_illegal_character_referenc, s$0, cst$1); - } - if(-6915192 <= _bk_){ - var e$0 = e[2]; - return bracket(cst_unknown_encoding, e$0, cst$2); - } - var e$1 = e[2]; - return bracket(cst_unknown_namespace_prefix, e$1, cst$3); - } - function err(i, e){ - throw caml_maybe_attach_backtrace([0, Error, [0, i[9], i[10]], e], 1); - } - function err_illegal_char(i, u){ - return err(i, [0, 719944127, str_of_char(u)]); - } - function err_expected_seqs(i, exps, s){ - return err(i, [0, -261531242, [0, exps, s]]); - } - function err_expected_chars(i, exps){ - var _bj_ = str_of_char(i[7]); - return err - (i, - [0, - -261531242, - [0, caml_call2(Stdlib_List[19], str_of_char, exps), _bj_]]); - } - var - u_eoi = Stdlib[19], - u_start_doc = u_eoi - 1 | 0, - u_end_doc = u_start_doc - 1 | 0, - signal_start_stream = [0, 758940234, String[1]]; - function make_input(opt, _bg_, _bf_, _be_, src){ - if(opt) var sth = opt[1], enc = sth; else var enc = 0; - if(_bg_) var sth$0 = _bg_[1], strip = sth$0; else var strip = 0; - if(_bf_) - var sth$1 = _bf_[1], ns = sth$1; - else - var ns = function(param){return 0;}; - if(_be_) - var sth$2 = _be_[1], entity = sth$2; - else - var entity = function(param){return 0;}; - var _bh_ = src[1]; - if(3507231 === _bh_) - var f = src[2], i = f; - else if(438511779 <= _bh_) - var - ic = src[2], - i = function(param){return caml_call1(Stdlib[87], ic);}; - else - var - match = src[2], - s = match[2], - pos = match[1], - len = caml_ml_string_length(s), - pos$0 = [0, pos - 1 | 0], - i = - function(param){ - pos$0[1]++; - if(pos$0[1] === len) - throw caml_maybe_attach_backtrace(Stdlib[12], 1); - return caml_string_get(s, pos$0[1]); - }; - var bindings = caml_call1(Ht[1], 15); - caml_call3(Ht[5], bindings, String[1], String[1]); - caml_call3(Ht[5], bindings, n_xml, ns_xml); - caml_call3(Ht[5], bindings, n_xmlns, ns_xmlns); - var _bi_ = caml_call1(Buffer[2], 1024); - return [0, - enc, - strip, - ns, - entity, - i, - uchar_byte, - u_start_doc, - 0, - 1, - 0, - 3, - signal_start_stream, - strip, - 1, - 0, - bindings, - caml_call1(Buffer[2], 64), - _bi_]; - } - function r(u, a, b){ - var _bc_ = a <= u ? 1 : 0, _bd_ = _bc_ ? u <= b ? 1 : 0 : _bc_; - return _bd_; - } - function is_white(param){ - var _bb_ = param - 9 | 0, switch$0 = 0; - if(4 < _bb_ >>> 0){ - if(23 === _bb_) switch$0 = 1; - } - else if(1 < _bb_ - 2 >>> 0) switch$0 = 1; - return switch$0 ? 1 : 0; - } - function is_char(u){ - if(r(u, 32, 55295)) return 1; - var switch$0 = 0; - if(11 <= u){if(13 === u) switch$0 = 1;} else if(9 <= u) switch$0 = 1; - if(switch$0) return 1; - if(! r(u, 57344, 65533) && ! r(u, 65536, 1114111)) return 0; - return 1; - } - function is_digit(u){return r(u, 48, 57);} - function is_hex_digit(u){ - var _a__ = r(u, 48, 57); - if(_a__) - var _a$_ = _a__; - else{ - var _ba_ = r(u, 65, 70); - if(! _ba_) return r(u, 97, 102); - var _a$_ = _ba_; - } - return _a$_; - } - function comm_range(u){ - var _aY_ = r(u, 192, 214); - if(_aY_) - var _aZ_ = _aY_; - else{ - var _a0_ = r(u, 216, 246); - if(_a0_) - var _aZ_ = _a0_; - else{ - var _a1_ = r(u, 248, 767); - if(_a1_) - var _aZ_ = _a1_; - else{ - var _a2_ = r(u, 880, 893); - if(_a2_) - var _aZ_ = _a2_; - else{ - var _a3_ = r(u, 895, 8191); - if(_a3_) - var _aZ_ = _a3_; - else{ - var _a4_ = r(u, 8204, 8205); - if(_a4_) - var _aZ_ = _a4_; - else{ - var _a5_ = r(u, 8304, 8591); - if(_a5_) - var _aZ_ = _a5_; - else{ - var _a6_ = r(u, 11264, 12271); - if(_a6_) - var _aZ_ = _a6_; - else{ - var _a7_ = r(u, 12289, 55295); - if(_a7_) - var _aZ_ = _a7_; - else{ - var _a8_ = r(u, 63744, 64975); - if(_a8_) - var _aZ_ = _a8_; - else{ - var _a9_ = r(u, 65008, 65533); - if(! _a9_) return r(u, 65536, 983039); - var _aZ_ = _a9_; - } - } - } - } - } - } - } - } - } - } - return _aZ_; - } - function is_name_start_char(u){ - if(! r(u, 97, 122) && ! r(u, 65, 90)) - return is_white(u) ? 0 : 95 === u ? 1 : comm_range(u) ? 1 : 0; - return 1; - } - function is_name_char(u){ - if(! r(u, 97, 122) && ! r(u, 65, 90)){ - if(is_white(u)) return 0; - if(r(u, 48, 57)) return 1; - var _aX_ = u - 45 | 0, switch$0 = 0; - if(50 < _aX_ >>> 0){ - if(138 === _aX_) switch$0 = 1; - } - else if(47 < _aX_ - 2 >>> 0) switch$0 = 1; - if(switch$0) return 1; - if(! comm_range(u) && ! r(u, 768, 879) && ! r(u, 8255, 8256)) return 0; - return 1; - } - return 1; - } - function nextc(i){ - if(i[7] === u_eoi) err(i, -95440847); - if(i[7] === 10){ - i[9] = i[9] + 1 | 0; - i[10] = 1; - } - else - i[10] = i[10] + 1 | 0; - i[7] = caml_call1(i[6], i[5]); - if(1 - is_char(i[7])) throw caml_maybe_attach_backtrace(Malformed, 1); - var _aV_ = i[8], _aW_ = _aV_ ? i[7] === 10 ? 1 : 0 : _aV_; - if(_aW_) i[7] = caml_call1(i[6], i[5]); - return i[7] === 13 ? (i[8] = 1, i[7] = u_nl, 0) : (i[8] = 0, 0); - } - function nextc_eof(i){ - try{var _aT_ = nextc(i); return _aT_;} - catch(_aU_){ - var _aS_ = caml_wrap_exception(_aU_); - if(_aS_ !== Stdlib[12]) throw caml_maybe_attach_backtrace(_aS_, 0); - i[7] = u_eoi; - return 0; - } - } - function skip_white(i){for(;;){if(! is_white(i[7])) return 0; nextc(i);}} - function skip_white_eof(i){ - for(;;){if(! is_white(i[7])) return 0; nextc_eof(i);} - } - function accept(i, c){ - return i[7] === c ? nextc(i) : err_expected_chars(i, [0, c, 0]); - } - function clear_ident(i){return caml_call1(Buffer[4], i[17]);} - function clear_data(i){return caml_call1(Buffer[4], i[18]);} - function addc_ident(i, c){return caml_call2(Buffer[3], i[17], c);} - function addc_data(i, c){return caml_call2(Buffer[3], i[18], c);} - function addc_data_strip(i, c){ - if(is_white(c)){i[14] = 1; return 0;} - var - _aQ_ = i[14], - _aR_ = _aQ_ ? 0 !== caml_call1(Buffer[6], i[18]) ? 1 : 0 : _aQ_; - if(_aR_) addc_data(i, u_space); - i[14] = 0; - return addc_data(i, c); - } - function expand_name(i, param){ - var local = param[2], prefix = param[1]; - function external(prefix){ - var match = caml_call1(i[3], prefix); - if(! match) return err(i, [0, -108708553, prefix]); - var uri = match[1]; - return uri; - } - try{ - var - uri = caml_call2(Ht[7], i[16], prefix), - _aO_ = - str_empty(uri) - ? str_empty - (prefix) - ? [0, String[1], local] - : [0, external(prefix), local] - : [0, uri, local]; - return _aO_; - } - catch(_aP_){ - var _aN_ = caml_wrap_exception(_aP_); - if(_aN_ === Stdlib[8]) return [0, external(prefix), local]; - throw caml_maybe_attach_backtrace(_aN_, 0); - } - } - function find_encoding(i){ - function reset(uchar, i){i[6] = uchar; i[10] = 0; return nextc(i);} - var match = i[1]; - if(! match){ - nextc(i); - var _aM_ = i[7]; - if(240 <= _aM_){ - if(254 === _aM_){ - nextc(i); - if(255 !== i[7]) err(i, -372779099); - reset(uchar_utf16be, i); - return 1; - } - if(255 === _aM_){ - nextc(i); - if(254 !== i[7]) err(i, -372779099); - reset(uchar_utf16le, i); - return 1; - } - } - else if(60 !== _aM_ && 239 <= _aM_){ - nextc(i); - if(187 !== i[7]) err(i, -372779099); - nextc(i); - if(191 !== i[7]) err(i, -372779099); - reset(uchar_utf8, i); - return 1; - } - i[6] = uchar_utf8; - return 0; - } - var e = match[1]; - if(143365725 <= e) - if(423112016 <= e) - if(684370880 <= e){ - reset(uchar_utf8, i); - if(i[7] === 65279){i[10] = 0; nextc(i);} - } - else - reset(uchar_ascii, i); - else if(338302576 <= e) - reset(uchar_iso_8859_1, i); - else{ - nextc(i); - var b0 = i[7]; - nextc(i); - var b1 = i[7], switch$0 = 0; - if(254 === b0){ - if(255 === b1){reset(uchar_utf16be, i); switch$0 = 1;} - } - else if(255 === b0 && 254 === b1){ - reset(uchar_utf16le, i); - switch$0 = 1; - } - if(! switch$0) err(i, -372779099); - } - else if(-211555818 <= e){ - reset(uchar_utf16le, i); - if(i[7] === 65279){i[10] = 0; nextc(i);} - } - else{reset(uchar_utf16be, i); if(i[7] === 65279){i[10] = 0; nextc(i);}} - return 1; - } - function p_ncname(i){ - clear_ident(i); - if(! is_name_start_char(i[7])) return err_illegal_char(i, i[7]); - addc_ident(i, i[7]); - nextc(i); - for(;;){ - if(! is_name_char(i[7])) return caml_call1(Buffer[5], i[17]); - addc_ident(i, i[7]); - nextc(i); - } - } - function p_qname(i){ - var n = p_ncname(i); - return i[7] !== 58 ? [0, String[1], n] : (nextc(i), [0, n, p_ncname(i)]); - } - function p_charref(i){ - var c = [0, 0]; - clear_ident(i); - nextc(i); - if(i[7] === 59) - err(i, [0, 719894387, String[1]]); - else - try{ - if(i[7] === 120){ - addc_ident(i, i[7]); - nextc(i); - for(;;){ - if(i[7] !== 59){ - addc_ident(i, i[7]); - if(! is_hex_digit(i[7])) - throw caml_maybe_attach_backtrace(Stdlib[3], 1); - var - _aK_ = - i[7] <= 57 - ? i[7] - 48 | 0 - : i[7] <= 70 ? i[7] - 55 | 0 : i[7] - 87 | 0; - c[1] = (c[1] * 16 | 0) + _aK_ | 0; - nextc(i); - continue; - } - break; - } - } - else - for(;;){ - if(i[7] !== 59){ - addc_ident(i, i[7]); - if(! is_digit(i[7])) - throw caml_maybe_attach_backtrace(Stdlib[3], 1); - c[1] = (c[1] * 10 | 0) + (i[7] - 48 | 0) | 0; - nextc(i); - continue; - } - break; - } - } - catch(_aL_){ - var _aJ_ = caml_wrap_exception(_aL_); - if(_aJ_ !== Stdlib[3]) throw caml_maybe_attach_backtrace(_aJ_, 0); - c[1] = -1; - for(;;){ - if(i[7] !== 59){addc_ident(i, i[7]); nextc(i); continue;} - break; - } - } - nextc(i); - return is_char(c[1]) - ? (clear_ident - (i), - addc_ident(i, c[1]), - caml_call1(Buffer[5], i[17])) - : err(i, [0, 719894387, caml_call1(Buffer[5], i[17])]); - } - var predefined_entities = caml_call1(Ht[1], 5); - function e(k, v){ - var _aH_ = caml_call1(str, v), _aI_ = caml_call1(str, k); - return caml_call3(Ht[5], predefined_entities, _aI_, _aH_); - } - e(cst_lt, cst$8); - e(cst_gt, cst$9); - e(cst_amp, cst$10); - e(cst_apos, cst$11); - e(cst_quot, cst$12); - function p_entity_ref(i){ - var ent = p_ncname(i); - accept(i, u_scolon); - try{var _aF_ = caml_call2(Ht[7], predefined_entities, ent); return _aF_;} - catch(_aG_){ - var _aE_ = caml_wrap_exception(_aG_); - if(_aE_ !== Stdlib[8]) throw caml_maybe_attach_backtrace(_aE_, 0); - var match = caml_call1(i[4], ent); - if(! match) return err(i, [0, -739719956, ent]); - var s = match[1]; - return s; - } - } - function p_reference(i){ - nextc(i); - return i[7] === 35 ? p_charref(i) : p_entity_ref(i); - } - function p_attr_value(i){ - skip_white(i); - var switch$0 = 0; - if(i[7] !== 34 && i[7] !== 39){ - var delim = err_expected_chars(i, [0, u_quot, [0, u_apos, 0]]); - switch$0 = 1; - } - if(! switch$0) var delim = i[7]; - nextc(i); - skip_white(i); - clear_data(i); - i[14] = 1; - for(;;){ - if(i[7] === delim){nextc(i); return caml_call1(Buffer[5], i[18]);} - if(i[7] === 60){err_illegal_char(i, u_lt); continue;} - if(i[7] === 38){ - var - _aB_ = p_reference(i), - _aC_ = function(_aD_){return addc_data_strip(i, _aD_);}; - caml_call2(String[5], _aC_, _aB_); - continue; - } - addc_data_strip(i, i[7]); - nextc(i); - } - } - function p_attributes(i){ - var pre_acc = 0, acc = 0; - for(;;){ - if(! is_white(i[7])) return [0, pre_acc, acc]; - skip_white(i); - if(i[7] !== 47 && i[7] !== 62){ - var n = p_qname(i), local = n[2], prefix = n[1]; - skip_white(i); - accept(i, u_eq); - var v = p_attr_value(i), att = [0, n, v]; - if(str_empty(prefix) && str_eq(local, n_xmlns)){ - caml_call3(Ht[5], i[16], String[1], v); - var - acc$0 = [0, att, acc], - pre_acc$0 = [0, String[1], pre_acc], - pre_acc = pre_acc$0, - acc = acc$0; - continue; - } - if(str_eq(prefix, n_xmlns)){ - caml_call3(Ht[5], i[16], local, v); - var - acc$1 = [0, att, acc], - pre_acc$1 = [0, local, pre_acc], - pre_acc = pre_acc$1, - acc = acc$1; - continue; - } - if(str_eq(prefix, n_xml) && str_eq(local, n_space)){ - if(str_eq(v, v_preserve)) - i[13] = 0; - else if(str_eq(v, v_default)) i[13] = i[2]; - var acc$2 = [0, att, acc], acc = acc$2; - continue; - } - var acc$3 = [0, att, acc], acc = acc$3; - continue; - } - return [0, pre_acc, acc]; - } - } - function p_limit(i){ - if(i[7] === u_eoi) - var _ax_ = 4; - else if(i[7] !== 60) - var _ax_ = 3; - else{ - nextc(i); - if(i[7] === 63){ - nextc(i); - var _ax_ = [2, p_qname(i)]; - } - else if(i[7] === 47){ - nextc(i); - var n = p_qname(i); - skip_white(i); - var _ax_ = [1, n]; - } - else if(i[7] === 33){ - nextc(i); - if(i[7] === 45){ - nextc(i); - accept(i, u_minus); - var _ax_ = 0; - } - else if(i[7] === 68) - var _ax_ = 2; - else if(i[7] === 91){ - nextc(i); - clear_ident(i); - var k = 1; - for(;;){ - addc_ident(i, i[7]); - nextc(i); - var _az_ = k + 1 | 0; - if(6 !== k){var k = _az_; continue;} - var - cdata = caml_call1(Buffer[5], i[17]), - _ay_ = - str_eq(cdata, s_cdata) - ? 1 - : err_expected_seqs(i, [0, s_cdata, 0], cdata), - _ax_ = _ay_; - break; - } - } - else - var - _aA_ = str_of_char(i[7]), - _ax_ = - err - (i, - [0, 719944127, caml_call2(cat, caml_call1(str, cst$13), _aA_)]); - } - else - var _ax_ = [0, p_qname(i)]; - } - i[11] = _ax_; - return 0; - } - function skip_comment(i){ - a: - for(;;) - for(;;){ - if(i[7] !== 45){nextc(i); continue;} - nextc(i); - if(i[7] !== 45) continue a; - nextc(i); - if(i[7] !== 62) err_expected_chars(i, [0, u_gt, 0]); - return nextc_eof(i); - } - } - function skip_pi(i){ - a: - for(;;) - for(;;){ - if(i[7] !== 63){nextc(i); continue;} - nextc(i); - if(i[7] !== 62) continue a; - return nextc_eof(i); - } - } - function skip_misc(i, allow_xmlpi){ - for(;;){ - var _aw_ = i[11]; - if(typeof _aw_ === "number") - switch(_aw_){ - case 0: - skip_comment(i); p_limit(i); continue; - case 3: - if(is_white(i[7])){skip_white_eof(i); p_limit(i); continue;} break; - } - else if(2 === _aw_[0]){ - var match = _aw_[1], l = match[2], p = match[1]; - if(str_empty(p) && str_eq(n_xml, caml_call1(String[4], l))) - return allow_xmlpi ? 0 : err(i, [0, 719944127, l]); - skip_pi(i); - p_limit(i); - continue; - } - return 0; - } - } - function p_chardata(addc, i){ - a: - for(;;){ - if(i[7] === 60) return 0; - if(i[7] === 38){ - var _au_ = p_reference(i), _av_ = caml_call1(addc, i); - caml_call2(String[5], _av_, _au_); - continue; - } - if(i[7] !== 93){caml_call2(addc, i, i[7]); nextc(i); continue;} - caml_call2(addc, i, i[7]); - nextc(i); - if(i[7] !== 93) continue; - caml_call2(addc, i, i[7]); - nextc(i); - for(;;){ - if(i[7] === 93){caml_call2(addc, i, i[7]); nextc(i); continue;} - if(i[7] !== 62) continue a; - err(i, [0, 719944127, caml_call1(str, cst$14)]); - continue a; - } - } - } - function p_cdata(addc, i){ - try{ - for(;;){ - if(i[7] === 93){ - nextc(i); - for(;;){ - if(i[7] === 93){ - nextc(i); - if(i[7] === 62){ - nextc(i); - throw caml_maybe_attach_backtrace(Stdlib[3], 1); - } - caml_call2(addc, i, u_rbrack); - continue; - } - caml_call2(addc, i, u_rbrack); - break; - } - } - caml_call2(addc, i, i[7]); - nextc(i); - } - } - catch(_at_){ - var _as_ = caml_wrap_exception(_at_); - if(_as_ === Stdlib[3]) return 0; - throw caml_maybe_attach_backtrace(_as_, 0); - } - } - function p_xml_decl(i, ignore_enc, ignore_utf16){ - var yes_no = [0, v_yes, [0, v_no, 0]]; - function p_val(i){ - skip_white(i); - accept(i, u_eq); - skip_white(i); - return p_attr_value(i); - } - function p_val_exp(i, exp){ - var v = p_val(i); - function _ap_(_ar_){return str_eq(v, _ar_);} - var _aq_ = 1 - caml_call2(Stdlib_List[33], _ap_, exp); - return _aq_ ? err_expected_seqs(i, exp, v) : _aq_; - } - var _an_ = i[11]; - if(typeof _an_ !== "number" && 2 === _an_[0]){ - var match = _an_[1], l = match[2], p = match[1]; - if(str_empty(p) && str_eq(l, n_xml)){ - skip_white(i); - var v = p_ncname(i); - if(1 - str_eq(v, n_version)) - err_expected_seqs(i, [0, n_version, 0], v); - p_val_exp(i, [0, v_version_1_0, [0, v_version_1_1, 0]]); - skip_white(i); - if(i[7] !== 63){ - var n = p_ncname(i); - if(str_eq(n, n_encoding)){ - var _ao_ = p_val(i), enc = caml_call1(String[4], _ao_); - if(1 - ignore_enc) - if(str_eq(enc, v_utf_8)) - i[6] = uchar_utf8; - else if(str_eq(enc, v_utf_16be)) - i[6] = uchar_utf16be; - else if(str_eq(enc, v_utf_16le)) - i[6] = uchar_utf16le; - else if(str_eq(enc, v_iso_8859_1)) - i[6] = uchar_iso_8859_1; - else if(str_eq(enc, v_us_ascii) || str_eq(enc, v_ascii)) - i[6] = uchar_ascii; - else - if(str_eq(enc, v_utf_16)){ - if(! ignore_utf16) err(i, -372779099); - } - else - err(i, [0, -6915192, enc]); - skip_white(i); - if(i[7] !== 63){ - var n$0 = p_ncname(i); - if(str_eq(n$0, n_standalone)) - p_val_exp(i, yes_no); - else - err_expected_seqs - (i, [0, n_standalone, [0, caml_call1(str, cst$15), 0]], n$0); - } - } - else if(str_eq(n, n_standalone)) - p_val_exp(i, yes_no); - else - err_expected_seqs - (i, - [0, n_encoding, [0, n_standalone, [0, caml_call1(str, cst$16), 0]]], - n); - } - skip_white(i); - accept(i, u_qmark); - accept(i, u_gt); - return p_limit(i); - } - } - return 0; - } - function p_dtd_signal(i){ - skip_misc(i, 0); - if(2 !== i[11]) return _b_; - function buf(_am_){return addc_data(i, _am_);} - var nest = [0, 1]; - clear_data(i); - buf(u_lt); - buf(u_emark); - a: - for(;;){ - if(0 >= nest[1]){ - var dtd = caml_call1(Buffer[5], i[18]); - p_limit(i); - skip_misc(i, 0); - return [0, 3407540, [0, dtd]]; - } - if(i[7] === 60){ - nextc(i); - if(i[7] !== 33){buf(u_lt); nest[1]++; continue;} - nextc(i); - if(i[7] !== 45){buf(u_lt); buf(u_emark); nest[1]++; continue;} - nextc(i); - if(i[7] !== 45){ - buf(u_lt); - buf(u_emark); - buf(u_minus); - nest[1]++; - continue; - } - nextc(i); - skip_comment(i); - continue; - } - if(i[7] !== 34 && i[7] !== 39){ - if(i[7] === 62){buf(u_gt); nextc(i); nest[1] += -1; continue;} - buf(i[7]); - nextc(i); - continue; - } - var c = i[7]; - buf(c); - nextc(i); - for(;;){ - if(i[7] !== c){buf(i[7]); nextc(i); continue;} - buf(c); - nextc(i); - continue a; - } - } - } - function p_data(i){ - clear_data(i); - i[14] = 1; - var addc_data_strip$0 = i[13] ? addc_data_strip : addc_data; - for(;;){ - var _al_ = i[11]; - if(typeof _al_ === "number") - switch(_al_){ - case 0: - skip_comment(i); p_limit(i); continue; - case 1: - p_cdata(addc_data_strip$0, i); p_limit(i); continue; - case 2: - err(i, [0, 719944127, caml_call1(str, cst_D)]); break; - case 3: - p_chardata(addc_data_strip$0, i); p_limit(i); continue; - default: err(i, -95440847); - } - else if(2 === _al_[0]){skip_pi(i); p_limit(i); continue;} - var d = caml_call1(Buffer[5], i[18]); - return d; - } - } - function p_el_start_signal(i, n){ - function expand_att(att){ - var v = att[2], n = att[1], local = n[2], prefix = n[1]; - return str_eq(prefix, String[1]) - ? str_eq(local, n_xmlns) ? [0, [0, ns_xmlns, n_xmlns], v] : att - : [0, expand_name(i, n), v]; - } - var - strip = i[13], - match = p_attributes(i), - atts = match[2], - prefixes = match[1]; - i[15] = [0, [0, n, prefixes, strip], i[15]]; - var _ak_ = caml_call2(Stdlib_List[21], expand_att, atts); - return [0, -174483606, [0, expand_name(i, n), _ak_]]; - } - function p_el_end_signal(i, n){ - var _ah_ = i[15]; - if(! _ah_) - throw caml_maybe_attach_backtrace([0, Assert_failure, _c_], 1); - var - scopes = _ah_[2], - match = _ah_[1], - strip = match[3], - prefixes = match[2], - n$0 = match[1]; - if(i[7] !== 62) err_expected_chars(i, [0, u_gt, 0]); - if(1 - str_eq(n, n$0)){ - var _ai_ = name_str(n); - err_expected_seqs(i, [0, name_str(n$0), 0], _ai_); - } - i[15] = scopes; - i[13] = strip; - var _aj_ = caml_call1(Ht[6], i[16]); - caml_call2(Stdlib_List[17], _aj_, prefixes); - if(0 === scopes) i[7] = u_end_doc; else{nextc(i); p_limit(i);} - return 83809507; - } - function p_signal(i){ - if(0 === i[15]){ - var match = i[11]; - if(typeof match !== "number" && 0 === match[0]){ - var n = match[1]; - return p_el_start_signal(i, n); - } - return err(i, -764030554); - } - var _af_ = i[12], switch$0 = 0; - if(typeof _af_ !== "number" && -174483606 === _af_[1]){ - skip_white(i); - if(i[7] === 62){ - accept(i, u_gt); - p_limit(i); - } - else if(i[7] === 47){ - var _ag_ = i[15]; - if(! _ag_) - throw caml_maybe_attach_backtrace([0, Assert_failure, _d_], 1); - var tag = _ag_[1][1]; - nextc(i); - i[11] = [1, tag]; - } - else - err_expected_chars(i, [0, u_slash, [0, u_gt, 0]]); - switch$0 = 1; - } - for(;;){ - var match$0 = i[11]; - if(typeof match$0 !== "number") - switch(match$0[0]){ - case 0: - var n$0 = match$0[1]; return p_el_start_signal(i, n$0); - case 1: - var n$1 = match$0[1]; return p_el_end_signal(i, n$1); - default: skip_pi(i); p_limit(i); continue; - } - switch(match$0){ - case 0: - skip_comment(i); p_limit(i); continue; - case 2: - return err(i, [0, 719944127, caml_call1(str, cst_D$0)]); - case 4: - return err(i, -95440847); - default: - var d = p_data(i); - if(str_empty(d)) continue; - return [0, 758940234, d]; - } - } - } - function eoi(i){ - try{ - if(i[7] === u_eoi) - var _ad_ = 1; - else if(i[7] !== u_start_doc) - var _ad_ = 0; - else if(83809507 === i[12]){ - nextc_eof(i); - p_limit(i); - var - _ad_ = - i[7] === u_eoi - ? 1 - : (skip_misc - (i, 1), - i[7] === u_eoi - ? 1 - : (p_xml_decl(i, 0, 1), i[12] = p_dtd_signal(i), 0)); - } - else{ - var ignore_enc = find_encoding(i); - p_limit(i); - p_xml_decl(i, ignore_enc, 0); - i[12] = p_dtd_signal(i); - var _ad_ = 0; - } - return _ad_; - } - catch(_ae_){ - var _ac_ = caml_wrap_exception(_ae_); - if(_ac_ === Buffer[1]) return err(i, 891487781); - if(_ac_ === Malformed) return err(i, -372779099); - if(_ac_ === Stdlib[12]) return err(i, -95440847); - throw caml_maybe_attach_backtrace(_ac_, 0); - } - } - function peek(i){return eoi(i) ? err(i, -95440847) : i[12];} - function input(i){ - try{ - if(i[7] === u_end_doc){ - i[7] = u_start_doc; - var _aa_ = i[12]; - } - else{var s = peek(i); i[12] = p_signal(i); var _aa_ = s;} - return _aa_; - } - catch(_ab_){ - var _$_ = caml_wrap_exception(_ab_); - if(_$_ === Buffer[1]) return err(i, 891487781); - if(_$_ === Malformed) return err(i, -372779099); - if(_$_ === Stdlib[12]) return err(i, -95440847); - throw caml_maybe_attach_backtrace(_$_, 0); - } - } - function input_tree(el, data, i){ - var match = input(i); - if(typeof match !== "number"){ - var _Z_ = match[1]; - if(-174483606 === _Z_){ - var - tag = match[2], - tags$2 = [0, tag, 0], - tags = tags$2, - context$0 = context; - for(;;){ - var match$0 = input(i); - if(typeof match$0 === "number"){ - if(! tags) - throw caml_maybe_attach_backtrace([0, Assert_failure, _e_], 1); - var - context$1 = context$0[2], - childs = context$0[1], - tags$0 = tags[2], - tag$0 = tags[1], - el$0 = caml_call2(el, tag$0, caml_call1(Stdlib_List[9], childs)); - if(! context$1) return el$0; - var - context$2 = context$1[2], - parent = context$1[1], - context$3 = [0, [0, el$0, parent], context$2], - tags = tags$0, - context$0 = context$3; - continue; - } - var ___ = match$0[1]; - if(3407540 === ___) - throw caml_maybe_attach_backtrace([0, Assert_failure, _f_], 1); - if(758940234 <= ___){ - var - d = match$0[2], - context$4 = context$0[2], - childs$0 = context$0[1], - context$5 = [0, [0, caml_call1(data, d), childs$0], context$4], - context$0 = context$5; - continue; - } - var - tag$1 = match$0[2], - context$6 = [0, 0, context$0], - tags$1 = [0, tag$1, tags], - tags = tags$1, - context$0 = context$6; - } - } - if(758940234 === _Z_){var d$0 = match[2]; return caml_call1(data, d$0);} - } - return caml_call1(Stdlib[1], err_input_tree); - } - function input_doc_tree(el, data, i){ - var match = input(i); - if(typeof match !== "number" && 3407540 === match[1]){ - var d = match[2]; - return [0, d, input_tree(el, data, i)]; - } - return caml_call1(Stdlib[1], err_input_doc_tree); - } - function pos(i){return [0, i[9], i[10]];} - function err_prefix(uri){ - var _Y_ = caml_call2(Stdlib[28], uri, cst$17); - return caml_call2(Stdlib[28], cst_unbound_namespace, _Y_); - } - function make_output(opt, _U_, _T_, _S_, d){ - if(opt) var sth = opt[1], decl = sth; else var decl = 1; - if(_U_) var sth$0 = _U_[1], nl = sth$0; else var nl = 0; - if(_T_) var sth$1 = _T_[1], indent = sth$1; else var indent = 0; - if(_S_) - var sth$2 = _S_[1], ns_prefix = sth$2; - else - var ns_prefix = function(param){return 0;}; - var _V_ = d[1]; - if(86585632 === _V_) - var - b = d[2], - outc = caml_call1(Stdlib_Buffer[12], b), - outs = caml_call1(Stdlib_Buffer[18], b), - outc$0 = outc, - outs$0 = outs; - else if(438511779 <= _V_) - var - c = d[2], - outc$1 = caml_call1(Stdlib[65], c), - outc$0 = outc$1, - outs$0 = caml_call1(Stdlib[69], c); - else - var - f = d[2], - os = - function(s, p, l){ - var _W_ = (p + l | 0) - 1 | 0; - if(_W_ >= p){ - var i = p; - for(;;){ - caml_call1(f, caml_string_get(s, i)); - var _X_ = i + 1 | 0; - if(_W_ !== i){var i = _X_; continue;} - break; - } - } - return 0; - }, - oc = function(c){return caml_call1(f, c);}, - outc$0 = oc, - outs$0 = os; - var prefixes = caml_call1(Ht[1], 10); - caml_call3(Ht[5], prefixes, String[1], String[1]); - caml_call3(Ht[5], prefixes, ns_xml, n_xml); - caml_call3(Ht[5], prefixes, ns_xmlns, n_xmlns); - return [0, - decl, - nl, - indent, - ns_prefix, - prefixes, - outs$0, - outc$0, - 0, - 0, - -1]; - } - function output_depth(o){return o[10];} - function outs(o, s){ - return caml_call3(o[6], s, 0, caml_ml_string_length(s)); - } - function str_utf_8(s){ - function _R_(param, s){return s;} - return caml_call3(String[7], _R_, cst$18, s); - } - function out_utf_8(o, s){ - function _Q_(o, s){outs(o, s); return o;} - caml_call3(String[7], _Q_, o, s); - return 0; - } - function prefix_name(o, param){ - var local = param[2], ns = param[1]; - try{ - var switch$0 = 0; - if(str_eq(ns, ns_xmlns) && str_eq(local, n_xmlns)){var _O_ = [0, String[1], n_xmlns]; switch$0 = 1;} - if(! switch$0) var _O_ = [0, caml_call2(Ht[7], o[5], ns), local]; - return _O_; - } - catch(_P_){ - var _M_ = caml_wrap_exception(_P_); - if(_M_ !== Stdlib[8]) throw caml_maybe_attach_backtrace(_M_, 0); - var match = caml_call1(o[4], ns); - if(match){var prefix = match[1]; return [0, prefix, local];} - var _N_ = err_prefix(str_utf_8(ns)); - return caml_call1(Stdlib[1], _N_); - } - } - function bind_prefixes(o, atts){ - function add(acc, param){ - var uri = param[2], match = param[1], local = match[2], ns = match[1]; - if(! str_eq(ns, ns_xmlns)) return acc; - var prefix = str_eq(local, n_xmlns) ? String[1] : local; - caml_call3(Ht[5], o[5], uri, prefix); - return [0, uri, acc]; - } - return caml_call3(Stdlib_List[25], add, 0, atts); - } - function out_data(o, s){ - function out(param, s){ - var len = caml_ml_string_length(s), start = [0, 0], last = [0, 0]; - function escape(e){ - caml_call3(o[6], s, start[1], last[1] - start[1] | 0); - outs(o, e); - last[1]++; - start[1] = last[1]; - return 0; - } - for(;;){ - if(last[1] >= len) - return caml_call3(o[6], s, start[1], last[1] - start[1] | 0); - var c = caml_string_get(s, last[1]), switch$0 = 0; - if(34 <= c) - if(38 === c) - escape(cst_amp$0); - else if(60 <= c) - if(63 <= c) - switch$0 = 1; - else{ - var switch$1 = 0; - switch(c - 60 | 0){ - case 0: - escape(cst_lt$0); switch$1 = 1; break; - case 1: - switch$0 = 1; break; - default: escape(cst_gt$0); switch$1 = 1; - } - } - else if(35 <= c) switch$0 = 1; else escape(cst_quot$0); - else{ - var switch$2 = 0; - if(11 <= c) - if(13 === c) switch$2 = 1; else switch$0 = 1; - else if(9 <= c) switch$2 = 1; else switch$0 = 1; - if(switch$2) last[1]++; - } - if(switch$0) if(32 <= c) last[1]++; else escape(cst$19); - } - } - return caml_call3(String[7], out, 0, s); - } - function out_qname(o, param){ - var l = param[2], p = param[1]; - if(1 - str_empty(p)){out_utf_8(o, p); caml_call1(o[7], 58);} - return out_utf_8(o, l); - } - function out_attribute(o, param){ - var v = param[2], n = param[1]; - caml_call1(o[7], 32); - out_qname(o, prefix_name(o, n)); - outs(o, cst$20); - out_data(o, v); - return caml_call1(o[7], 34); - } - function output(o, s){ - function indent(o){ - var match = o[3]; - if(! match) return 0; - var c = match[1], _K_ = runtime.caml_mul(o[10], c), _J_ = 1; - if(_K_ >= 1){ - var i = _J_; - for(;;){ - caml_call1(o[7], 32); - var _L_ = i + 1 | 0; - if(_K_ !== i){var i = _L_; continue;} - break; - } - } - return 0; - } - function unindent(o){return o[3] ? caml_call1(o[7], 10) : 0;} - if(-1 === o[10]){ - if(typeof s === "number") return caml_call1(Stdlib[1], err_el_end); - var _D_ = s[1]; - if(3407540 !== _D_) - return 758940234 <= _D_ - ? caml_call1(Stdlib[1], err_data) - : caml_call1(Stdlib[1], err_el_start); - var d = s[2]; - if(o[1]) outs(o, cst_xml_version_1_0_encoding_U); - if(d){var dtd = d[1]; out_utf_8(o, dtd); caml_call1(o[7], 10);} - o[10] = 0; - return 0; - } - if(typeof s === "number"){ - var _E_ = o[9]; - if(! _E_) return caml_call1(Stdlib[1], err_el_end); - var scopes = _E_[2], match = _E_[1], uris = match[2], n = match[1]; - o[10] = o[10] - 1 | 0; - if(o[8]) - outs(o, cst$21); - else{indent(o); outs(o, cst$22); out_qname(o, n); caml_call1(o[7], 62);} - o[9] = scopes; - var _F_ = caml_call1(Ht[6], o[5]); - caml_call2(Stdlib_List[17], _F_, uris); - o[8] = 0; - if(0 !== o[10]) return unindent(o); - if(o[2]) caml_call1(o[7], 10); - o[10] = -1; - return 0; - } - var _G_ = s[1]; - if(3407540 === _G_) return caml_call1(Stdlib[2], err_dtd); - if(758940234 <= _G_){ - var d$0 = s[2]; - if(o[8]){outs(o, cst$23); unindent(o);} - indent(o); - out_data(o, d$0); - unindent(o); - o[8] = 0; - return 0; - } - var match$0 = s[2], atts = match$0[2], n$0 = match$0[1]; - if(o[8]){outs(o, cst$24); unindent(o);} - indent(o); - var uris$0 = bind_prefixes(o, atts), qn = prefix_name(o, n$0); - caml_call1(o[7], 60); - out_qname(o, qn); - function _H_(_I_){return out_attribute(o, _I_);} - caml_call2(Stdlib_List[17], _H_, atts); - o[9] = [0, [0, qn, uris$0], o[9]]; - o[10] = o[10] + 1 | 0; - o[8] = 1; - return 0; - } - function output_tree(frag, o, v){ - var param = [0, [0, v, 0], 0]; - for(;;){ - if(! param) - throw caml_maybe_attach_backtrace([0, Assert_failure, _g_], 1); - var match = param[1]; - if(! match){ - var context$0 = param[2]; - if(! context$0) return 0; - output(o, 83809507); - var param = context$0; - continue; - } - var - context = param[2], - rest = match[2], - v$0 = match[1], - signal = caml_call1(frag, v$0); - if(758940234 <= signal[1]){ - output(o, signal); - var param = [0, rest, context]; - continue; - } - var match$0 = signal[2], childs = match$0[2], tag = match$0[1]; - output(o, [0, -174483606, tag]); - var param = [0, childs, [0, rest, context]]; - } - } - function output_doc_tree(frag, o, param){ - var v = param[2], dtd = param[1]; - output(o, [0, 3407540, dtd]); - return output_tree(frag, o, v); - } - return [0, - str, - str_eq, - str_empty, - cat, - str_of_char, - Ht, - u_nl, - u_cr, - u_space, - u_quot, - u_sharp, - u_amp, - u_apos, - u_minus, - u_slash, - u_colon, - u_scolon, - u_lt, - u_eq, - u_gt, - u_qmark, - u_emark, - u_lbrack, - u_rbrack, - u_x, - u_bom, - u_9, - u_F, - u_D, - s_cdata, - ns_xml, - ns_xmlns, - n_xml, - n_xmlns, - n_space, - n_version, - n_encoding, - n_standalone, - v_yes, - v_no, - v_preserve, - v_default, - v_version_1_0, - v_version_1_1, - v_utf_8, - v_utf_16, - v_utf_16be, - v_utf_16le, - v_iso_8859_1, - v_us_ascii, - v_ascii, - name_str, - Error, - error_message, - err_input_tree, - err_input_doc_tree, - err, - err_illegal_char, - err_expected_seqs, - err_expected_chars, - u_eoi, - u_start_doc, - u_end_doc, - signal_start_stream, - make_input, - r, - is_white, - is_char, - is_digit, - is_hex_digit, - comm_range, - is_name_start_char, - is_name_char, - nextc, - nextc_eof, - skip_white, - skip_white_eof, - accept, - clear_ident, - clear_data, - addc_ident, - addc_data, - addc_data_strip, - expand_name, - find_encoding, - p_ncname, - p_qname, - p_charref, - predefined_entities, - p_entity_ref, - p_reference, - p_attr_value, - p_attributes, - p_limit, - skip_comment, - skip_pi, - skip_misc, - p_chardata, - p_cdata, - p_xml_decl, - p_dtd_signal, - p_data, - p_el_start_signal, - p_el_end_signal, - p_signal, - eoi, - peek, - input, - input_tree, - input_doc_tree, - pos, - err_prefix, - err_dtd, - err_el_start, - err_el_end, - err_data, - make_output, - output_depth, - outs, - str_utf_8, - out_utf_8, - prefix_name, - bind_prefixes, - out_data, - out_qname, - out_attribute, - output, - output_tree, - output_doc_tree]; - } - var - length = caml_ml_string_length, - append = Stdlib[28], - lowercase = Stdlib_String[26]; - function iter(f, s){ - var len = caml_ml_string_length(s), pos = [0, -1]; - function i(param){ - pos[1]++; - if(pos[1] === len) throw caml_maybe_attach_backtrace(Stdlib[3], 1); - return caml_string_get(s, pos[1]); - } - try{for(;;) caml_call1(f, uchar_utf8(i));} - catch(_C_){ - var _B_ = caml_wrap_exception(_C_); - if(_B_ === Stdlib[3]) return 0; - throw caml_maybe_attach_backtrace(_B_, 0); - } - } - function of_string(s){return s;} - function to_utf_8(f, v, x){return caml_call2(f, v, x);} - var - compare = Stdlib_String[9], - String = - [0, - empty, - length, - append, - lowercase, - iter, - of_string, - to_utf_8, - compare], - Full = [248, cst_Xmlm_Buffer_Full, caml_fresh_oo_id(0)], - create = Stdlib_Buffer[1]; - function add_uchar(b, u){ - try{ - var - buf = - function(c){ - var _A_ = caml_call1(Stdlib_Char[1], c); - return caml_call2(Stdlib_Buffer[12], b, _A_); - }, - _y_ = - 127 < u - ? 2047 - < u - ? 65535 - < u - ? (buf - (240 | u >>> 18 | 0), - buf(128 | (u >>> 12 | 0) & 63), - buf(128 | (u >>> 6 | 0) & 63), - buf(128 | u & 63)) - : (buf - (224 | u >>> 12 | 0), - buf(128 | (u >>> 6 | 0) & 63), - buf(128 | u & 63)) - : (buf(192 | u >>> 6 | 0), buf(128 | u & 63)) - : buf(u); - return _y_; - } - catch(_z_){ - var _x_ = caml_wrap_exception(_z_); - if(_x_[1] === Stdlib[7]) throw caml_maybe_attach_backtrace(Full, 1); - throw caml_maybe_attach_backtrace(_x_, 0); - } - } - function clear(b){return caml_call1(Stdlib_Buffer[8], b);} - var - contents = Stdlib_Buffer[2], - length$0 = Stdlib_Buffer[7], - Buffer = [0, Full, create, add_uchar, clear, contents, length$0], - include = Make(String, Buffer), - ns_xml = include[31], - ns_xmlns = include[32], - Error = include[53], - error_message = include[54], - make_input = include[65], - eoi = include[106], - peek = include[107], - input = include[108], - input_tree = include[109], - input_doc_tree = include[110], - pos = include[111], - make_output = include[117], - output_depth = include[118], - output = include[127], - output_tree = include[128], - output_doc_tree = include[129], - pp = Stdlib_Format[129]; - function pp_name(ppf, param){ - var l = param[2], p = param[1]; - return runtime.caml_string_notequal(p, cst$25) - ? caml_call4(pp, ppf, _h_, p, l) - : caml_call3(pp, ppf, _i_, l); - } - function pp_attribute(ppf, param){ - var v = param[2], n = param[1]; - return caml_call5(pp, ppf, _j_, pp_name, n, v); - } - function pp_tag(ppf, param){ - var atts = param[2], name = param[1]; - return caml_call6 - (pp, - ppf, - _l_, - pp_name, - name, - function(ppf, param$0){ - var param = param$0; - for(;;){ - if(! param) return 0; - var vs = param[2], v = param[1]; - pp_attribute(ppf, v); - var _w_ = 0 !== vs ? 1 : 0; - if(! _w_) return _w_; - caml_call2(pp, ppf, _k_); - var param = vs; - } - }, - atts); - } - function pp_dtd(ppf, param){ - if(! param) return caml_call2(pp, ppf, _n_); - var dtd = param[1]; - return caml_call3(pp, ppf, _m_, dtd); - } - function pp_signal(ppf, param){ - if(typeof param === "number") return caml_call2(pp, ppf, _o_); - var _v_ = param[1]; - if(3407540 === _v_){ - var dtd = param[2]; - return caml_call4(pp, ppf, _p_, pp_dtd, dtd); - } - if(758940234 <= _v_){ - var s = param[2]; - return caml_call3(pp, ppf, _q_, s); - } - var tag = param[2]; - return caml_call4(pp, ppf, _r_, pp_tag, tag); - } - var - Xmlm = - [0, - ns_xml, - ns_xmlns, - pp_dtd, - pp_name, - pp_attribute, - pp_tag, - pp_signal, - error_message, - Error, - make_input, - input, - input_tree, - input_doc_tree, - peek, - eoi, - pos, - make_output, - output, - output_depth, - output_tree, - output_doc_tree, - function(_t_, _s_){ - var _u_ = Make(_t_, _s_); - return [0, - _u_[31], - _u_[32], - _u_[53], - _u_[54], - _u_[65], - _u_[108], - _u_[109], - _u_[110], - _u_[107], - _u_[106], - _u_[111], - _u_[117], - _u_[118], - _u_[127], - _u_[128], - _u_[129]]; - }]; - runtime.caml_register_global(112, Xmlm, "Xmlm"); - return; - } - (globalThis)); - - -//# 1 "../.js/default/js_of_ocaml-compiler.runtime/jsoo_runtime.cma.js" -// Generated by js_of_ocaml -//# 3 "../.js/default/js_of_ocaml-compiler.runtime/jsoo_runtime.cma.js" - -//# 18 "../.js/default/js_of_ocaml-compiler.runtime/jsoo_runtime.cma.js" -(function(globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - s = "5.2.0", - git_version = "0e29f0e-dirty", - Jsoo_runtime_Runtime_version = [0, s, git_version]; - runtime.caml_register_global - (2, Jsoo_runtime_Runtime_version, "Jsoo_runtime__Runtime_version"); - return; - } - (globalThis)); - -//# 33 "../.js/default/js_of_ocaml-compiler.runtime/jsoo_runtime.cma.js" -(function - (globalThis){ - "use strict"; - var runtime = globalThis.jsoo_runtime; - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - var - global_data = runtime.caml_get_global_data(), - Jsoo_runtime_Runtime_version = global_data.Jsoo_runtime__Runtime_version, - Stdlib_Callback = global_data.Stdlib__Callback, - Js = [0], - Config = [0], - version = Jsoo_runtime_Runtime_version[1], - git_version = Jsoo_runtime_Runtime_version[2], - Sys = [0, Config, version, git_version], - Exn = [248, "Jsoo_runtime.Error.Exn", runtime.caml_fresh_oo_id(0)]; - caml_call2(Stdlib_Callback[2], "jsError", [0, Exn, [0]]); - function raise(exn){throw exn;} - var - Error = - [0, - raise, - runtime.caml_exn_with_js_backtrace, - runtime.caml_js_error_option_of_exception, - Exn], - For_compatibility_only = [0], - Bigstring = [0], - Typed_array = [0, Bigstring], - Int64 = [0], - Jsoo_runtime = - [0, Js, Sys, Error, For_compatibility_only, Typed_array, Int64]; - runtime.caml_register_global(5, Jsoo_runtime, "Jsoo_runtime"); - return; - } - (globalThis)); - - -//# 1 "../.js/default/js_of_ocaml/js_of_ocaml.cma.js" -// Generated by js_of_ocaml -//# 3 "../.js/default/js_of_ocaml/js_of_ocaml.cma.js" - -//# 19 "../.js/default/js_of_ocaml/js_of_ocaml.cma.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - global_data = runtime.caml_get_global_data(), - Stdlib_String = global_data.Stdlib__String, - Stdlib_Char = global_data.Stdlib__Char, - Poly = [0]; - function max(x, y){return y <= x ? x : y;} - function min(x, y){return x <= y ? x : y;} - var - Int_replace_polymorphic_compar = [0, max, min], - make = Stdlib_String[1], - init = Stdlib_String[2], - empty = Stdlib_String[3], - of_bytes = Stdlib_String[4], - to_bytes = Stdlib_String[5], - concat = Stdlib_String[6], - cat = Stdlib_String[7], - compare = Stdlib_String[9], - starts_with = Stdlib_String[10], - ends_with = Stdlib_String[11], - contains_from = Stdlib_String[12], - rcontains_from = Stdlib_String[13], - contains = Stdlib_String[14], - sub = Stdlib_String[15], - split_on_char = Stdlib_String[16], - map = Stdlib_String[17], - mapi = Stdlib_String[18], - fold_left = Stdlib_String[19], - fold_right = Stdlib_String[20], - for_all = Stdlib_String[21], - exists = Stdlib_String[22], - trim = Stdlib_String[23], - escaped = Stdlib_String[24], - uppercase_ascii = Stdlib_String[25], - lowercase_ascii = Stdlib_String[26], - capitalize_ascii = Stdlib_String[27], - uncapitalize_ascii = Stdlib_String[28], - iter = Stdlib_String[29], - iteri = Stdlib_String[30], - index_from = Stdlib_String[31], - index_from_opt = Stdlib_String[32], - rindex_from = Stdlib_String[33], - rindex_from_opt = Stdlib_String[34], - index = Stdlib_String[35], - index_opt = Stdlib_String[36], - rindex = Stdlib_String[37], - rindex_opt = Stdlib_String[38], - to_seq = Stdlib_String[39], - to_seqi = Stdlib_String[40], - of_seq = Stdlib_String[41], - get_utf_8_uchar = Stdlib_String[42], - is_valid_utf_8 = Stdlib_String[43], - get_utf_16be_uchar = Stdlib_String[44], - is_valid_utf_16be = Stdlib_String[45], - get_utf_16le_uchar = Stdlib_String[46], - is_valid_utf_16le = Stdlib_String[47], - blit = Stdlib_String[48], - copy = Stdlib_String[49], - fill = Stdlib_String[50], - uppercase = Stdlib_String[51], - lowercase = Stdlib_String[52], - capitalize = Stdlib_String[53], - uncapitalize = Stdlib_String[54], - get_uint8 = Stdlib_String[55], - get_int8 = Stdlib_String[56], - get_uint16_ne = Stdlib_String[57], - get_uint16_be = Stdlib_String[58], - get_uint16_le = Stdlib_String[59], - get_int16_ne = Stdlib_String[60], - get_int16_be = Stdlib_String[61], - get_int16_le = Stdlib_String[62], - get_int32_ne = Stdlib_String[63], - get_int32_be = Stdlib_String[64], - get_int32_le = Stdlib_String[65], - get_int64_ne = Stdlib_String[66], - get_int64_be = Stdlib_String[67], - get_int64_le = Stdlib_String[68], - equal = runtime.caml_string_equal, - String = - [0, - make, - init, - empty, - of_bytes, - to_bytes, - concat, - cat, - compare, - starts_with, - ends_with, - contains_from, - rcontains_from, - contains, - sub, - split_on_char, - map, - mapi, - fold_left, - fold_right, - for_all, - exists, - trim, - escaped, - uppercase_ascii, - lowercase_ascii, - capitalize_ascii, - uncapitalize_ascii, - iter, - iteri, - index_from, - index_from_opt, - rindex_from, - rindex_from_opt, - index, - index_opt, - rindex, - rindex_opt, - to_seq, - to_seqi, - of_seq, - get_utf_8_uchar, - is_valid_utf_8, - get_utf_16be_uchar, - is_valid_utf_16be, - get_utf_16le_uchar, - is_valid_utf_16le, - blit, - copy, - fill, - uppercase, - lowercase, - capitalize, - uncapitalize, - get_uint8, - get_int8, - get_uint16_ne, - get_uint16_be, - get_uint16_le, - get_int16_ne, - get_int16_be, - get_int16_le, - get_int32_ne, - get_int32_be, - get_int32_le, - get_int64_ne, - get_int64_be, - get_int64_le, - equal], - chr = Stdlib_Char[1], - escaped$0 = Stdlib_Char[2], - lowercase$0 = Stdlib_Char[3], - uppercase$0 = Stdlib_Char[4], - lowercase_ascii$0 = Stdlib_Char[5], - uppercase_ascii$0 = Stdlib_Char[6], - compare$0 = Stdlib_Char[7]; - function equal$0(x, y){return x === y ? 1 : 0;} - var - Char = - [0, - chr, - escaped$0, - lowercase$0, - uppercase$0, - lowercase_ascii$0, - uppercase_ascii$0, - compare$0, - equal$0], - max$0 = Int_replace_polymorphic_compar[1], - min$0 = Int_replace_polymorphic_compar[2], - Js_of_ocaml_Import = - [0, Poly, Int_replace_polymorphic_compar, String, Char, max$0, min$0]; - runtime.caml_register_global(2, Js_of_ocaml_Import, "Js_of_ocaml__Import"); - return; - } - (globalThis)); - -//# 200 "../.js/default/js_of_ocaml/js_of_ocaml.cma.js" -(function - (globalThis){ - "use strict"; - var - jsoo_exports = typeof module === "object" && module.exports || globalThis, - runtime = globalThis.jsoo_runtime, - cst_parseFloat$0 = "parseFloat", - cst_parseInt$0 = "parseInt", - caml_js_get = runtime.caml_js_get, - caml_js_set = runtime.caml_js_set, - caml_js_wrap_callback = runtime.caml_js_wrap_callback, - caml_string_of_jsstring = runtime.caml_string_of_jsstring; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - var - global_data = runtime.caml_get_global_data(), - Js_of_ocaml_Import = global_data.Js_of_ocaml__Import, - Stdlib = global_data.Stdlib, - Jsoo_runtime = global_data.Jsoo_runtime, - Stdlib_Printexc = global_data.Stdlib__Printexc, - global = globalThis, - Unsafe = [0, global], - null$0 = null, - undefined$0 = undefined, - cst_function = "function", - cst_parseFloat = cst_parseFloat$0, - cst_parseInt = cst_parseInt$0; - function return$0(_z_){return _z_;} - function map(x, f){return x == null$0 ? null$0 : caml_call1(f, x);} - function bind(x, f){return x == null$0 ? null$0 : caml_call1(f, x);} - function test(x){return 1 - (x == null$0 ? 1 : 0);} - function iter(x, f){ - var _y_ = 1 - (x == null$0 ? 1 : 0); - return _y_ ? caml_call1(f, x) : _y_; - } - function case$0(x, f, g){ - return x == null$0 ? caml_call1(f, 0) : caml_call1(g, x); - } - function get(x, f){return x == null$0 ? caml_call1(f, 0) : x;} - function option(x){if(! x) return null$0; var x$0 = x[1]; return x$0;} - function to_option(x){ - function _x_(x){return [0, x];} - return case$0(x, function(param){return 0;}, _x_); - } - var - Opt = - [0, - null$0, - return$0, - map, - bind, - test, - iter, - case$0, - get, - option, - to_option]; - function return$1(_w_){return _w_;} - function map$0(x, f){ - return x === undefined$0 ? undefined$0 : caml_call1(f, x); - } - function bind$0(x, f){ - return x === undefined$0 ? undefined$0 : caml_call1(f, x); - } - function test$0(x){return x !== undefined$0 ? 1 : 0;} - function iter$0(x, f){ - var _v_ = x !== undefined$0 ? 1 : 0; - return _v_ ? caml_call1(f, x) : _v_; - } - function case$1(x, f, g){ - return x === undefined$0 ? caml_call1(f, 0) : caml_call1(g, x); - } - function get$0(x, f){return x === undefined$0 ? caml_call1(f, 0) : x;} - function option$0(x){ - if(! x) return undefined$0; - var x$0 = x[1]; - return x$0; - } - function to_option$0(x){ - function _u_(x){return [0, x];} - return case$1(x, function(param){return 0;}, _u_); - } - var - Optdef = - [0, - undefined$0, - return$1, - map$0, - bind$0, - test$0, - iter$0, - case$1, - get$0, - option$0, - to_option$0]; - function coerce(x, f, g){ - function _s_(param){return caml_call1(g, x);} - var _t_ = caml_call1(f, x); - return caml_call2(Opt[8], _t_, _s_); - } - function coerce_opt(x, f, g){ - function _q_(param){return caml_call1(g, x);} - var _r_ = caml_call2(Opt[4], x, f); - return caml_call2(Opt[8], _r_, _q_); - } - var - true$0 = true, - false$0 = false, - nfc = "NFC", - nfd = "NFD", - nfkc = "NFKC", - nfkd = "NFKD", - t0 = Unsafe[1], - string_constr = t0.String, - t1 = Unsafe[1], - regExp = t1.RegExp, - t2 = Unsafe[1], - object_constructor = t2.Object; - function object_keys(o){return object_constructor.keys(o);} - var - t5 = Unsafe[1], - array_constructor = t5.Array, - array_get = caml_js_get, - array_set = caml_js_set; - function array_map(f, a){ - return a.map - (caml_js_wrap_callback - (function(x, idx, param){return caml_call1(f, x);})); - } - function array_mapi(f, a){ - return a.map - (caml_js_wrap_callback - (function(x, idx, param){return caml_call2(f, idx, x);})); - } - function str_array(_p_){return _p_;} - function match_result(_o_){return _o_;} - var - t8 = Unsafe[1], - date_constr = t8.Date, - t9 = Unsafe[1], - math = t9.Math, - t10 = Unsafe[1], - error_constr = t10.Error, - include = Jsoo_runtime[3], - raise = include[1], - exn_with_js_backtrace = include[2], - of_exn = include[3], - Error = include[4]; - function name(t11){return caml_string_of_jsstring(t11.name);} - function message(t12){return caml_string_of_jsstring(t12.message);} - function stack(t13){ - var _n_ = caml_call2(Opt[3], t13.stack, caml_string_of_jsstring); - return caml_call1(Opt[10], _n_); - } - function to_string(e){return caml_string_of_jsstring(e.toString());} - function raise_js_error(e){return caml_call1(raise, e);} - function string_of_error(e){return to_string(e);} - var t15 = Unsafe[1], JSON = t15.JSON; - function decodeURI(s){var t16 = Unsafe[1]; return t16.decodeURI(s);} - function decodeURIComponent(s){ - var t17 = Unsafe[1]; - return t17.decodeURIComponent(s); - } - function encodeURI(s){var t18 = Unsafe[1]; return t18.encodeURI(s);} - function encodeURIComponent(s){ - var t19 = Unsafe[1]; - return t19.encodeURIComponent(s); - } - function escape(s){var t20 = Unsafe[1]; return t20.escape(s);} - function unescape(s){var t21 = Unsafe[1]; return t21.unescape(s);} - function isNaN(i){var t22 = Unsafe[1]; return t22.isNaN(i) | 0;} - function parseInt(s){ - var t23 = Unsafe[1], s$0 = t23.parseInt(s); - return isNaN(s$0) ? caml_call1(Stdlib[2], cst_parseInt) : s$0; - } - function parseFloat(s){ - var t24 = Unsafe[1], s$0 = t24.parseFloat(s); - return isNaN(s$0) ? caml_call1(Stdlib[2], cst_parseFloat) : s$0; - } - function _a_(param){ - if(param[1] !== Error) return 0; - var e = param[2]; - return [0, to_string(e)]; - } - caml_call1(Stdlib_Printexc[9], _a_); - function _b_(e){ - return e instanceof array_constructor - ? 0 - : [0, caml_string_of_jsstring(e.toString())]; - } - caml_call1(Stdlib_Printexc[9], _b_); - function export_js(field, x){ - var _l_ = caml_string_of_jsstring(typeof x), switch$0 = 0; - if - (caml_call2(Js_of_ocaml_Import[3][68], _l_, cst_function) && 0 < x.length){var _m_ = caml_js_wrap_callback(x); switch$0 = 1;} - if(! switch$0) var _m_ = x; - return jsoo_exports[field] = _m_; - } - function export$0(field, x){ - return export_js(runtime.caml_jsstring_of_string(field), x); - } - function export_all(obj){ - var keys = object_keys(obj); - return keys.forEach - (caml_js_wrap_callback - (function(key, param, _k_){return export_js(key, obj[key]);})); - } - var _c_ = runtime.caml_js_error_of_exception; - function _d_(_j_){return _j_;} - var - _e_ = - [0, - to_string, - name, - message, - stack, - raise, - exn_with_js_backtrace, - of_exn, - Error, - function(_i_){return _i_;}, - _d_]; - function _f_(_h_){return _h_;} - var - Js_of_ocaml_Js = - [0, - null$0, - function(_g_){return _g_;}, - undefined$0, - _f_, - Opt, - Optdef, - true$0, - false$0, - nfd, - nfc, - nfkd, - nfkc, - string_constr, - regExp, - regExp, - regExp, - object_keys, - array_constructor, - array_constructor, - array_get, - array_set, - array_map, - array_mapi, - str_array, - match_result, - date_constr, - date_constr, - date_constr, - date_constr, - date_constr, - date_constr, - date_constr, - date_constr, - date_constr, - math, - error_constr, - _e_, - JSON, - decodeURI, - decodeURIComponent, - encodeURI, - encodeURIComponent, - escape, - unescape, - isNaN, - parseInt, - parseFloat, - coerce, - coerce_opt, - export$0, - export_all, - Unsafe, - string_of_error, - raise_js_error, - exn_with_js_backtrace, - _c_, - Error]; - runtime.caml_register_global(43, Js_of_ocaml_Js, "Js_of_ocaml__Js"); - return; - } - (globalThis)); - - -//# 1 ".xml2js.eobjs/jsoo/dune__exe.cmo.js" -// Generated by js_of_ocaml -//# 3 ".xml2js.eobjs/jsoo/dune__exe.cmo.js" - -//# 5 ".xml2js.eobjs/jsoo/dune__exe.cmo.js" -(function - (globalThis){ - "use strict"; - var runtime = globalThis.jsoo_runtime, Dune_exe = [0]; - runtime.caml_register_global(0, Dune_exe, "Dune__exe"); - return; - } - (globalThis)); - - -//# 1 ".xml2js.eobjs/jsoo/dune__exe__Parser.cmo.js" -// Generated by js_of_ocaml -//# 3 ".xml2js.eobjs/jsoo/dune__exe__Parser.cmo.js" - -//# 6 ".xml2js.eobjs/jsoo/dune__exe__Parser.cmo.js" -(function - (globalThis){ - "use strict"; - var runtime = globalThis.jsoo_runtime; - function caml_call3(f, a0, a1, a2){ - return (f.l >= 0 ? f.l : f.l = f.length) == 3 - ? f(a0, a1, a2) - : runtime.caml_call_gen(f, [a0, a1, a2]); - } - function caml_call5(f, a0, a1, a2, a3, a4){ - return (f.l >= 0 ? f.l : f.l = f.length) == 5 - ? f(a0, a1, a2, a3, a4) - : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4]); - } - var global_data = runtime.caml_get_global_data(), Xmlm = global_data.Xmlm; - function parse(data){ - var - input = caml_call5(Xmlm[10], 0, 0, 0, 0, [0, -976970511, [0, 0, data]]); - function el(tag, subtrees){return [0, tag, subtrees];} - function data$0(text){return [1, text];} - var doc_tree = caml_call3(Xmlm[13], el, data$0, input)[2]; - return doc_tree; - } - var Dune_exe_Parser = [0, parse]; - runtime.caml_register_global(1, Dune_exe_Parser, "Dune__exe__Parser"); - return; - } - (globalThis)); - - -//# 1 ".xml2js.eobjs/jsoo/dune__exe__Xml2js.cmo.js" -// Generated by js_of_ocaml -//# 3 ".xml2js.eobjs/jsoo/dune__exe__Xml2js.cmo.js" - -//# 6 ".xml2js.eobjs/jsoo/dune__exe__Xml2js.cmo.js" -(function - (globalThis){ - "use strict"; - var - runtime = globalThis.jsoo_runtime, - cst$2 = "", - cst_foo = "foo", - caml_js_wrap_meth_callback = runtime.caml_js_wrap_meth_callback, - caml_string_notequal = runtime.caml_string_notequal; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - function caml_call2(f, a0, a1){ - return (f.l >= 0 ? f.l : f.l = f.length) == 2 - ? f(a0, a1) - : runtime.caml_call_gen(f, [a0, a1]); - } - var - global_data = runtime.caml_get_global_data(), - cst$0 = ":", - cst$1 = "$", - cst = "_", - Stdlib_List = global_data.Stdlib__List, - Stdlib_Array = global_data.Stdlib__Array, - Dune_exe_Parser = global_data.Dune__exe__Parser, - Js_of_ocaml_Js = global_data.Js_of_ocaml__Js; - global_data.CamlinternalOO; - var - Stdlib = global_data.Stdlib, - Stdlib_Option = global_data.Stdlib__Option, - Stdlib_String = global_data.Stdlib__String, - _f_ = [0, cst_foo], - _e_ = [1, 42], - _d_ = [2, 23.], - _c_ = [4, [0, [1, 42], 0]], - _b_ = [3, [0, [0, cst_foo, [0, "bar"]], 0]], - cst_TODO_parsing_error = "TODO parsing error", - _a_ = [0, "TODO, unclear semantics"]; - function js_of_json(param){ - switch(param[0]){ - case 0: - var s = param[1]; return runtime.caml_jsstring_of_string(s); - case 1: - var i = param[1]; return i; - case 2: - var f = param[1]; return f; - case 3: - var - content = param[1], - _q_ = - function(param){ - var v = param[2], key = param[1], v$0 = js_of_json(v); - return [0, key, v$0]; - }, - _r_ = caml_call1(caml_call1(Stdlib_List[19], _q_), content), - content$0 = caml_call1(Stdlib_Array[12], _r_); - return runtime.caml_js_object(content$0); - default: - var - content$1 = param[1], - _s_ = caml_call1(caml_call1(Stdlib_List[19], js_of_json), content$1), - content$2 = - runtime.caml_js_from_array(caml_call1(Stdlib_Array[12], _s_)); - return content$2; - } - } - function t7(param, str, cb){ - try{var tree$0 = caml_call1(Dune_exe_Parser[1], str);} - catch(_p_){ - var _g_ = Js_of_ocaml_Js[1]; - return cb(caml_call1(Js_of_ocaml_Js[2], cst_TODO_parsing_error), _g_); - } - function convert(param$0){ - if(0 !== param$0[0]){ - var - s = param$0[1], - match$0 = - caml_string_notequal(caml_call1(Stdlib_String[23], s), cst$2) ? 0 : 1; - return match$0 ? 0 : [0, [0, s]]; - } - var - subtrees = param$0[2], - tag = param$0[1], - attrs = tag[2], - tag_name = tag[1], - tag_name_local = tag_name[2], - tag_name_uri = tag_name[1]; - if(caml_string_notequal(tag_name_uri, cst$2)) - var - _k_ = caml_call2(Stdlib[28], cst$0, tag_name_local), - out_name = caml_call2(Stdlib[28], tag_name_uri, _k_); - else - var out_name = tag_name_local; - if(attrs) - var - _l_ = - function(param){ - var value = param[2], local = param[1][2]; - return [0, local, [0, value]]; - }, - _m_ = caml_call1(caml_call1(Stdlib_List[19], _l_), attrs), - attributes = caml_call1(Stdlib_Option[2], _m_); - else - var attributes = 0; - var subtrees$0 = caml_call2(Stdlib_List[22], convert, subtrees); - if(attributes) - var - attributes$0 = attributes[1], - temp = [3, [0, [0, cst$1, [3, attributes$0]], 0]], - subtrees$1 = [0, temp, subtrees$0]; - else - var subtrees$1 = subtrees$0; - function _i_(param){ - switch(param[0]){ - case 3: - var _o_ = param[1]; - if(_o_ && ! _o_[2]){ - var match = _o_[1], v = match[2], k = match[1]; - return [0, [0, k, v]]; - } - break; - case 4: break; - default: return [0, [0, cst, param]]; - } - return 0; - } - var names = caml_call2(Stdlib_List[19], _i_, subtrees$1); - if(caml_call2(Stdlib_List[32], Stdlib_Option[11], names)){ - var - _j_ = function(_n_){return _n_;}, - kvs = caml_call2(Stdlib_List[22], _j_, names), - opt = 0, - param = kvs; - for(;;){ - if(opt) var sth = opt[1], acc = sth; else var acc = 0; - if(param){ - var xs = param[2], k = param[1][1]; - if(! caml_call2(Stdlib_List[36], k, acc)){ - var opt$0 = [0, [0, k, acc]], opt = opt$0, param = xs; - continue; - } - var match = 0; - } - else - var match = 1; - var subtrees$2 = match ? [3, kvs] : [4, subtrees$1]; - break; - } - } - else - var subtrees$2 = [4, subtrees$1]; - return [0, [3, [0, [0, out_name, subtrees$2], 0]]]; - } - var match = convert(tree$0); - if(match) var json = match[1], json$0 = json; else var json$0 = _a_; - var tree = js_of_json(json$0), _h_ = caml_call1(Js_of_ocaml_Js[2], tree); - return cb(Js_of_ocaml_Js[1], _h_); - } - function t6(param){return js_of_json(_b_);} - function t5(param){return js_of_json(_c_);} - function t4(param){return js_of_json(_d_);} - function t3(param){return js_of_json(_e_);} - function t2(param){return js_of_json(_f_);} - caml_call1 - (Js_of_ocaml_Js[51], - {test1: caml_js_wrap_meth_callback(t2), - test2: caml_js_wrap_meth_callback(t3), - test3: caml_js_wrap_meth_callback(t4), - test4: caml_js_wrap_meth_callback(t5), - test5: caml_js_wrap_meth_callback(t6), - parseString: caml_js_wrap_meth_callback(t7)}); - var Dune_exe_Xml2js = [0]; - runtime.caml_register_global(29, Dune_exe_Xml2js, "Dune__exe__Xml2js"); - return; - } - (globalThis)); - - -//# 1 "../.js/default/stdlib/std_exit.cmo.js" -// Generated by js_of_ocaml -//# 3 "../.js/default/stdlib/std_exit.cmo.js" - -//# 6 "../.js/default/stdlib/std_exit.cmo.js" -(function - (globalThis){ - "use strict"; - var runtime = globalThis.jsoo_runtime; - function caml_call1(f, a0){ - return (f.l >= 0 ? f.l : f.l = f.length) == 1 - ? f(a0) - : runtime.caml_call_gen(f, [a0]); - } - var - global_data = runtime.caml_get_global_data(), - Stdlib = global_data.Stdlib; - caml_call1(Stdlib[103], 0); - var Std_exit = [0]; - runtime.caml_register_global(1, Std_exit, "Std_exit"); - return; - } - (globalThis)); - - -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLjAsImZpbGUiOiJ4bWwyanMuYmMuanMiLCJzb3VyY2VSb290IjoiIiwibmFtZXMiOlsiY2FtbF9pbnQ2NF9pc196ZXJvIiwieCIsImNhbWxfc3RyX3JlcGVhdCIsIm4iLCJzIiwiciIsImwiLCJjYW1sX2ludDY0X29mZnNldCIsIk1hdGgiLCJjYW1sX3JhaXNlX2NvbnN0YW50IiwidGFnIiwiY2FtbF9nbG9iYWxfZGF0YSIsImNhbWxfcmFpc2VfemVyb19kaXZpZGUiLCJNbEludDY0IiwibG8iLCJtaSIsImhpIiwidGhpcyIsInhoaSIsImgiLCJzaWduIiwib2Zmc2V0IiwibW9kdWx1cyIsImRpdmlzb3IiLCJxdW90aWVudCIsInkiLCJxIiwiY2FtbF9pbnQ2NF9vZl9pbnQzMiIsImNhbWxfaW50NjRfdG9faW50MzIiLCJjYW1sX2ludDY0X2lzX25lZ2F0aXZlIiwiY2FtbF9pbnQ2NF9uZWciLCJjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nIiwianNvb19zeXNfZ2V0ZW52IiwicHJvY2VzcyIsImdsb2JhbFRoaXMiLCJ1bmRlZmluZWQiLCJjYW1sX3JlY29yZF9iYWNrdHJhY2VfZmxhZyIsImkiLCJjYW1sX2V4bl93aXRoX2pzX2JhY2t0cmFjZSIsImV4biIsImZvcmNlIiwiY2FtbF9tYXliZV9hdHRhY2hfYmFja3RyYWNlIiwiY2FtbF9yYWlzZV93aXRoX2FyZyIsImFyZyIsImNhbWxfc3RyaW5nX29mX2pzYnl0ZXMiLCJjYW1sX3JhaXNlX3dpdGhfc3RyaW5nIiwibXNnIiwiY2FtbF9pbnZhbGlkX2FyZ3VtZW50IiwiY2FtbF9wYXJzZV9mb3JtYXQiLCJmbXQiLCJsZW4iLCJmIiwiYyIsImNhbWxfZmluaXNoX2Zvcm1hdHRpbmciLCJyYXdidWZmZXIiLCJidWZmZXIiLCJjYW1sX2ludDY0X2Zvcm1hdCIsIndiYXNlIiwiY3Z0YmwiLCJwIiwiY2FtbF9leHBtMV9mbG9hdCIsImNhbWxfbWxfY29uZGl0aW9uX2Jyb2FkY2FzdCIsInQiLCJqc29vX2lzX2FzY2lpIiwiY2FtbF91dGYxNl9vZl91dGY4IiwiYiIsImMxIiwiYzIiLCJ2IiwiaiIsIlN0cmluZyIsImNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nIiwiZnNfbm9kZV9zdXBwb3J0ZWQiLCJtYWtlX3BhdGhfaXNfYWJzb2x1dGUiLCJwb3NpeCIsInBhdGgiLCJ3aW4zMiIsInNwbGl0RGV2aWNlUmUiLCJyZXN1bHQiLCJkZXZpY2UiLCJpc1VuYyIsIkJvb2xlYW4iLCJyb290Iiwic2VwIiwicGF0aF9pc19hYnNvbHV0ZSIsImNhbWxfdHJhaWxpbmdfc2xhc2giLCJuYW1lIiwiY2FtbF9jdXJyZW50X2RpciIsImNhbWxfbWFrZV9wYXRoIiwiY29tcDAiLCJjb21wIiwibmNvbXAiLCJjYW1sX3V0Zjhfb2ZfdXRmMTYiLCJkIiwiY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmciLCJ1bml4X2Vycm9yIiwibWFrZV91bml4X2Vycl9hcmdzIiwiY29kZSIsInN5c2NhbGwiLCJlcnJubyIsInZhcmlhbnQiLCJudWxsIiwiYXJncyIsImNhbWxfbmFtZWRfdmFsdWVzIiwiY2FtbF9uYW1lZF92YWx1ZSIsIm5tIiwiY2FtbF9yYWlzZV93aXRoX2FyZ3MiLCJjYW1sX3N1YmFycmF5X3RvX2pzYnl0ZXMiLCJhIiwiY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlcyIsIk1sQnl0ZXMiLCJjb250ZW50cyIsImxlbmd0aCIsImNvbnRlbnQiLCJjYW1sX2lzX21sX2J5dGVzIiwiY2FtbF9pc19tbF9zdHJpbmciLCJjYW1sX2J5dGVzX29mX2FycmF5IiwiVWludDhBcnJheSIsImNhbWxfYnl0ZXNfb2ZfanNieXRlcyIsImNhbWxfYnl0ZXNfb2Zfc3RyaW5nIiwiY2FtbF9yYWlzZV9zeXNfZXJyb3IiLCJjYW1sX3JhaXNlX25vX3N1Y2hfZmlsZSIsImNhbWxfY29udmVydF9ieXRlc190b19hcnJheSIsImNhbWxfdWludDhfYXJyYXlfb2ZfYnl0ZXMiLCJjYW1sX2NyZWF0ZV9ieXRlcyIsImNhbWxfbWxfYnl0ZXNfbGVuZ3RoIiwiY2FtbF9ibGl0X2J5dGVzIiwiczEiLCJpMSIsInMyIiwiaTIiLCJNbEZpbGUiLCJNbEZha2VGaWxlIiwib2xkIiwiYnVmIiwicG9zIiwiY2xlbiIsIm5ld19zdHIiLCJvbGRfZGF0YSIsImRhdGEiLCJNbEZha2VGZCIsImZpbGUiLCJmbGFncyIsIk1sRmFrZURldmljZSIsInJlcyIsIlN5bWJvbCIsIm5hbWVfc2xhc2giLCJtb2RlIiwicmFpc2VfdW5peCIsInBhcmVudCIsIlJlZ0V4cCIsInNlZW4iLCJtIiwiZW50cnkiLCJvayIsIkFycmF5IiwiYnl0ZXMiLCJjYW1sX21sX3N0cmluZ19sZW5ndGgiLCJjYW1sX3N0cmluZ191bnNhZmVfZ2V0IiwiY2FtbF91aW50OF9hcnJheV9vZl9zdHJpbmciLCJjYW1sX2J5dGVzX2JvdW5kX2Vycm9yIiwiY2FtbF9ieXRlc191bnNhZmVfc2V0IiwiY2FtbF9ieXRlc19zZXQiLCJNbE5vZGVGZCIsImZkIiwicmVxdWlyZSIsImVyciIsImJ1Zl9vZmZzZXQiLCJyZWFkIiwiTWxOb2RlRGV2aWNlIiwiY29uc3RzIiwia2V5IiwiaXNDaGFyYWN0ZXJEZXZpY2UiLCJvIiwianNfc3RhdHMiLCJ0b19kaXIiLCJ0YXJnZXQiLCJsaW5rIiwiZmlsZV9raW5kIiwiY2FtbF9nZXRfcm9vdCIsImNhbWxfZmFpbHdpdGgiLCJjYW1sX3Jvb3QiLCJqc29vX21vdW50X3BvaW50IiwicmVzb2x2ZV9mc19kZXZpY2UiLCJjYW1sX3N5c19pc19kaXJlY3RvcnkiLCJjYW1sX3JhaXNlX25vdF9mb3VuZCIsImNhbWxfc3lzX2dldGVudiIsInNoaWZ0X3JpZ2h0X25hdCIsIm5hdDEiLCJvZnMxIiwibGVuMSIsIm5hdDIiLCJvZnMyIiwibmJpdHMiLCJ3cmFwIiwiY2FtbF9ncl9zdGF0ZSIsImNhbWxfZ3Jfc3RhdGVfZ2V0IiwiY2FtbF9ncl9wb2ludF9jb2xvciIsImltIiwiY2FtbF9ydW50aW1lX2V2ZW50c191c2VyX3Jlc29sdmUiLCJNbE9iamVjdFRhYmxlIiwiTmFpdmVMb29rdXAiLCJvYmpzIiwiY2FtbF9zeXNfcmVuYW1lIiwib19yb290Iiwibl9yb290IiwiY2FtbF9sb2cxMF9mbG9hdCIsImNhbWxfcnVudGltZV93YXJuaW5ncyIsImNhbWxfbWxfZW5hYmxlX3J1bnRpbWVfd2FybmluZ3MiLCJib29sIiwiY2FtbF9jbGFzc2lmeV9mbG9hdCIsImlzRmluaXRlIiwiaXNOYU4iLCJjYW1sX21sX2NoYW5uZWxzIiwiY2FtbF9yZWZpbGwiLCJjaGFuIiwic3RyIiwic3RyX2EiLCJucmVhZCIsImNhbWxfYXJyYXlfYm91bmRfZXJyb3IiLCJjYW1sX21sX2lucHV0X3NjYW5fbGluZSIsImNoYW5pZCIsInByZXZfbWF4IiwiY2FtbF9nY19taW5vciIsInVuaXQiLCJjYW1sX21sX2NvbmRpdGlvbl9uZXciLCJjYW1sX2ludDY0X29mX2J5dGVzIiwiY2FtbF9iYV91aW50OF9nZXQ2NCIsImJhIiwiaTAiLCJvZnMiLCJiMSIsImIyIiwiYjMiLCJiNCIsImI1IiwiYjYiLCJiNyIsImI4IiwiY2FtbF9pbnQ2NF90b19ieXRlcyIsImNhbWxfaW50NjRfbWFyc2hhbCIsIndyaXRlciIsInNpemVzIiwiY2FtbF9iYV9udW1fZGltcyIsImNhbWxfd3JhcF9leGNlcHRpb24iLCJlIiwiY2FtbF9jcmVhdGVfZmlsZSIsImpzb29fY3JlYXRlX2ZpbGUiLCJjYW1sX2ZzX2luaXQiLCJ0bXAiLCJjYW1sX2dldF9jb250aW51YXRpb25fY2FsbHN0YWNrIiwiY2FtbF9wYXJzZXJfdHJhY2UiLCJjYW1sX3NldF9wYXJzZXJfdHJhY2UiLCJvbGRmbGFnIiwiY2FtbF9saXN0X29mX2pzX2FycmF5IiwiY2FtbF9tdWwiLCJjYW1sX2hhc2hfbWl4X2ludCIsIm51bV9kaWdpdHNfbmF0IiwibmF0IiwiY2FtbF9oYXNoX25hdCIsImNhbWxfY2FsbF9nZW4iLCJhcmdzTGVuIiwiZyIsIm5hcmdzIiwiZXh0cmFfYXJncyIsImFyZ3VtZW50cyIsImNhbWxfY2FsbGJhY2siLCJjYW1sX2pzX3dyYXBfY2FsbGJhY2tfYXJndW1lbnRzIiwiY2FtbF9zeXNfY2hkaXIiLCJkaXIiLCJjYW1sX29ial90YWciLCJGdW5jdGlvbiIsImNhbWxfb2JqX3VwZGF0ZV90YWciLCJjYW1sX21sX2RvbWFpbl91bmlxdWVfdG9rZW5fIiwiY2FtbF9tbF9kb21haW5fdW5pcXVlX3Rva2VuIiwiY2FtbF9sYXp5X3VwZGF0ZV90b19mb3JjaW5nIiwiZmllbGQwIiwiY2FtbF9nY19jb3VudGVycyIsImNhbWxfZ3Jfc3luY2hyb25pemUiLCJjYW1sX3VuaXhfY2xvc2VkaXIiLCJkaXJfaGFuZGxlIiwiY2FtbF91bml4X29wZW5kaXIiLCJjYW1sX3VuaXhfcmV3aW5kZGlyIiwibmV3X2Rpcl9oYW5kbGUiLCJjYW1sX3JhaXNlX2VuZF9vZl9maWxlIiwiY2FtbF91bml4X3JlYWRkaXIiLCJjYW1sX3VuaXhfZmluZGZpcnN0IiwicGF0aF9qcyIsImZpcnN0X2VudHJ5IiwiY2FtbF9pc19jb250aW51YXRpb25fdGFnIiwibG9nMl9vayIsImpzb29fZmxvb3JfbG9nMiIsIkluZmluaXR5IiwiY2FtbF9pbnQzMl9iaXRzX29mX2Zsb2F0IiwiZmxvYXQzMmEiLCJGbG9hdDMyQXJyYXkiLCJpbnQzMmEiLCJJbnQzMkFycmF5IiwiY2FtbF9pbnQ2NF9jcmVhdGVfbG9fbWlfaGkiLCJjYW1sX2ludDY0X2JpdHNfb2ZfZmxvYXQiLCJleHAiLCJrIiwicjMiLCJyMiIsInIxIiwiY2FtbF9iYV9zZXJpYWxpemUiLCJzeiIsImNvbXBsZXgiLCJjYW1sX2JhX2dldF9zaXplX3Blcl9lbGVtZW50Iiwia2luZCIsImNhbWxfYmFfY3JlYXRlX2J1ZmZlciIsInNpemUiLCJ2aWV3IiwiRmxvYXQ2NEFycmF5IiwiSW50OEFycmF5IiwiSW50MTZBcnJheSIsIlVpbnQxNkFycmF5IiwiY2FtbF9pbnQzMl9mbG9hdF9vZl9iaXRzIiwiY2FtbF9pbnQ2NF9mbG9hdF9vZl9iaXRzIiwiTmFOIiwiY2FtbF9iYV9nZXRfc2l6ZSIsImRpbXMiLCJuX2RpbXMiLCJjYW1sX2ludDY0X2NyZWF0ZV9sb19oaSIsImNhbWxfaW50NjRfaGkzMiIsImNhbWxfaW50NjRfbG8zMiIsImNhbWxfYmFfY3VzdG9tX25hbWUiLCJNbF9CaWdhcnJheSIsImxheW91dCIsInJlIiwidG90YWwiLCJrMSIsImsyIiwiTWxfQmlnYXJyYXlfY18xXzEiLCJjYW1sX2JhX2NyZWF0ZV91bnNhZmUiLCJzaXplX3Blcl9lbGVtZW50IiwiY2FtbF9iYV9kZXNlcmlhbGl6ZSIsInJlYWRlciIsIm51bV9kaW1zIiwic2l6ZV9kaW0iLCJzaXplX2RpbV9oaSIsInNpemVfZGltX2xvIiwic2l4dHkiLCJpbnQ2NCIsImNhbWxfYmFfY29tcGFyZSIsImNhbWxfaGFzaF9taXhfaW50NjQiLCJjYW1sX2hhc2hfbWl4X2Zsb2F0IiwidjAiLCJjYW1sX2JhX2hhc2giLCJudW1fZWx0cyIsInciLCJjYW1sX2ludDMyX3VubWFyc2hhbCIsImNhbWxfbmF0aXZlaW50X3VubWFyc2hhbCIsImNhbWxfaW50NjRfdW5tYXJzaGFsIiwiY2FtbF9pbnQ2NF9jb21wYXJlIiwiY2FtbF9pbnQ2NF9oYXNoIiwiY2FtbF9jdXN0b21fb3BzIiwiY2FtbF9jb21wYXJlX3ZhbF9nZXRfY3VzdG9tIiwiY2FtbF9jb21wYXJlX3ZhbF9udW1iZXJfY3VzdG9tIiwibnVtIiwiY3VzdG9tIiwic3dhcCIsImNhbWxfY29tcGFyZV92YWxfdGFnIiwiTnVtYmVyIiwiY2FtbF9pbnRfY29tcGFyZSIsImNhbWxfc3RyaW5nX2NvbXBhcmUiLCJjYW1sX2J5dGVzX2NvbXBhcmUiLCJjYW1sX2NvbXBhcmVfdmFsIiwic3RhY2siLCJ0YWdfYSIsInRhZ19iIiwiY2FtbF9ncmVhdGVydGhhbiIsImRpdl9oZWxwZXIiLCJ6IiwiZGl2X2RpZ2l0X25hdCIsIm5hdHEiLCJvZnNxIiwibmF0ciIsIm9mc3IiLCJyZW0iLCJudW1fbGVhZGluZ196ZXJvX2JpdHNfaW5fZGlnaXQiLCJzaGlmdF9sZWZ0X25hdCIsIk1sTmF0IiwiY3JlYXRlX25hdCIsImFyciIsInNldF90b196ZXJvX25hdCIsImluY3JfbmF0IiwiY2FycnlfaW4iLCJjYXJyeSIsImFkZF9uYXQiLCJsZW4yIiwibmF0X29mX2FycmF5IiwibXVsdF9kaWdpdF9uYXQiLCJuYXQzIiwib2ZzMyIsIngxIiwieDIiLCJ4MyIsImRlY3JfbmF0IiwiYm9ycm93Iiwic3ViX25hdCIsImNvbXBhcmVfbmF0IiwiZGl2X25hdCIsInF1byIsImNhbWxfYmFfYmxpdCIsInNyYyIsImRzdCIsImlzX2RpZ2l0X2ludCIsImNhbWxfaW50NjRfZGl2IiwiY2FtbF9qc19odG1sX2VudGl0aWVzIiwiZW50aXR5IiwidGVtcCIsImRvY3VtZW50IiwiY2FtbF9zdHJpbmdfdW5zYWZlX3NldCIsImNhbWxfaW50NjRfb2ZfZmxvYXQiLCJjYW1sX21sX2NoYW5uZWxfc2l6ZV82NCIsImNhbWxfYmFfc2V0XzIiLCJjYW1sX2FyZ3YiLCJtYWluIiwiYXJndiIsImFyZ3MyIiwiY2FtbF9leGVjdXRhYmxlX25hbWUiLCJjYW1sX2pzX2V2YWxfc3RyaW5nIiwiZXZhbCIsInNlcmlhbGl6ZV9uYXQiLCJjYW1sX21lbXByb2Zfc2V0IiwiX2NvbnRyb2wiLCJjYW1sX3N5c19leGl0IiwiY2FtbF9jaGFubmVsX2Rlc2NyaXB0b3IiLCJjYW1sX2pzX2Zyb21fYXJyYXkiLCJjYW1sX2JhX3Jlc2hhcGUiLCJ2aW5kIiwibmV3X2RpbSIsImNhbWxfb29fbGFzdF9pZCIsImNhbWxfc2V0X29vX2lkIiwiY2FtbF9ncl9maWxsX3JlY3QiLCJjYW1sX2JpZ3N0cmluZ19ibGl0X3N0cmluZ190b19iYSIsInN0cjEiLCJwb3MxIiwiYmEyIiwicG9zMiIsInNsaWNlIiwiY2FtbF9ncl9zZXRfd2luZG93X3RpdGxlIiwianNuYW1lIiwiY2FtbF9nZXRfZ2xvYmFsX2RhdGEiLCJjYW1sX2ludDY0X3NoaWZ0X3JpZ2h0X3Vuc2lnbmVkIiwiY2FtbF9iYV91aW50OF9nZXQxNiIsImNhbWxfY29tcGFyZSIsImNhbWxfTUQ1VHJhbnNmb3JtIiwiYWRkIiwieHgiLCJmZiIsImdnIiwiaGgiLCJpaSIsImNhbWxfTUQ1VXBkYXRlIiwiY3R4IiwiaW5wdXQiLCJpbnB1dF9sZW4iLCJpbl9idWYiLCJpbnB1dF9wb3MiLCJtaXNzaW5nIiwiY2FtbF9ydW50aW1lX2V2ZW50c19yZWFkX3BvbGwiLCJjdXJzb3IiLCJjYWxsYmFja3MiLCJjYW1sX2ZyZXNoX29vX2lkIiwiY2FtbF9pbnQ2NF90b19mbG9hdCIsImNhbWxfYmFfZ2V0XzEiLCJjYW1sX2JpZ3N0cmluZ19tZW1jbXAiLCJjYW1sX25ld19zdHJpbmciLCJjYW1sX2VyZl9mbG9hdCIsImExIiwiYTIiLCJhMyIsImE0IiwiYTUiLCJjYW1sX2JhX3VpbnQ4X2dldDMyIiwiY2FtbF9yYXdfYmFja3RyYWNlX2xlbmd0aCIsImNhbWxfc3RyX2luaXRpYWxpemUiLCJjYW1sX29ial9ibG9jayIsImNhbWxfZ3JfY2xlYXJfZ3JhcGgiLCJiaWdzdHJpbmdfdG9fYXJyYXlfYnVmZmVyIiwiYnMiLCJjYW1sX3N5c19jb25zdF9uYWtlZF9wb2ludGVyc19jaGVja2VkIiwiX3VuaXQiLCJseG9yX2RpZ2l0X25hdCIsImNhbWxfb2JqX2FkZF9vZmZzZXQiLCJjYW1sX2ZpbmFsX3JlbGVhc2UiLCJjYW1sX21hcnNoYWxfaGVhZGVyX3NpemUiLCJjYW1sX2pzX3RvX2FycmF5IiwiY2FtbF9zeXNfaXNfcmVndWxhcl9maWxlIiwiY2FtbF9ncl9wbG90IiwiY29sb3IiLCJjYW1sX2J5dGVzX3NldDY0IiwiaTY0IiwiY2FtbF9zdHJpbmdfc2V0MTYiLCJpMTYiLCJjYW1sX2ludDY0X2Jzd2FwIiwiY2FtbF9nY19tYWpvciIsImNhbWxfbGV4X2FycmF5IiwiY2FtbF9sZXhfZW5naW5lIiwidGJsIiwic3RhcnRfc3RhdGUiLCJsZXhidWYiLCJsZXhfYnVmZmVyIiwibGV4X2J1ZmZlcl9sZW4iLCJsZXhfc3RhcnRfcG9zIiwibGV4X2N1cnJfcG9zIiwibGV4X2xhc3RfcG9zIiwibGV4X2xhc3RfYWN0aW9uIiwibGV4X2VvZl9yZWFjaGVkIiwibGV4X2Jhc2UiLCJsZXhfYmFja3RyayIsImxleF9kZWZhdWx0IiwibGV4X3RyYW5zIiwibGV4X2NoZWNrIiwic3RhdGUiLCJiYXNlIiwiYmFja3RyayIsImNhbWxfc3lzX2ZpbGVfZXhpc3RzIiwiY2FtbF9jb252ZXJ0X3Jhd19iYWNrdHJhY2Vfc2xvdCIsImNhbWxfYXJyYXlfc3ViIiwiY2FtbF9ieXRlc19lcXVhbCIsImNhbWxfZ3Jfc2l6ZV94IiwiY2FtbF9tbF9kZWJ1Z19pbmZvX3N0YXR1cyIsImNhbWxfYXRvbWljX2ZldGNoX2FkZCIsInJlZiIsIm9zX3R5cGUiLCJjYW1sX3N5c19jb25zdF9vc3R5cGVfY3lnd2luIiwiY2FtbF9jb3NoX2Zsb2F0IiwiTWxNdXRleCIsImNhbWxfbWxfbXV0ZXhfbmV3IiwiY2FtbF9lcGhlX2tleV9vZmZzZXQiLCJjYW1sX2VwaGVfY2hlY2tfa2V5Iiwid2VhayIsImNhbWxfaGFzaF9taXhfZmluYWwiLCJjYW1sX2dyX3RleHRfc2l6ZSIsInR4dCIsImNhbWxfbGV4X3J1bl9tZW0iLCJtZW0iLCJjdXJyX3BvcyIsImNhbWxfbGV4X3J1bl90YWciLCJjYW1sX25ld19sZXhfZW5naW5lIiwibGV4X21lbSIsImxleF9iYXNlX2NvZGUiLCJsZXhfYmFja3Rya19jb2RlIiwibGV4X2RlZmF1bHRfY29kZSIsImxleF90cmFuc19jb2RlIiwibGV4X2NoZWNrX2NvZGUiLCJsZXhfY29kZSIsInBjX29mZiIsInBzdGF0ZSIsImJhc2VfY29kZSIsImNhbWxfYmFfdWludDhfc2V0NjQiLCJjYW1sX3N5c19leGVjdXRhYmxlX25hbWUiLCJjYW1sX2xlc3NlcXVhbCIsImNhbWxfYWNvc2hfZmxvYXQiLCJjYW1sX01ENUluaXQiLCJBcnJheUJ1ZmZlciIsImIzMiIsIlVpbnQzMkFycmF5IiwiY2FtbF9tbF9mbHVzaCIsImNhbWxfc2Vla19vdXQiLCJjYW1sX21sX3NlZWtfb3V0XzY0IiwiY29tcGFyZV9uYXRfcmVhbCIsImNhbWxfZ2Nfc2V0IiwiY2FtbF9qc19nZXQiLCJjYW1sX3VuaXhfaXNhdHR5IiwiZmlsZURlc2NyaXB0b3IiLCJ0dHkiLCJjYW1sX21sX3NldF9idWZmZXJlZCIsImNhbWxfZ2NfY29tcGFjdGlvbiIsImNhbWxfZXBoZV9nZXRfa2V5IiwiY2FtbF91bml4X2xvY2FsdGltZSIsIkRhdGUiLCJkX251bSIsImphbnVhcnlmaXJzdCIsImRveSIsImphbiIsImp1bCIsInN0ZFRpbWV6b25lT2Zmc2V0IiwiY2FtbF91bml4X21rdGltZSIsInRtIiwidG0yIiwiY2FtbF9iaWdzdHJpbmdfYmxpdF9ieXRlc190b19iYSIsImNhbWxfc3lzX2ZkcyIsImNhbWxfc3lzX2Nsb3NlIiwiY2FtbF9tbF9jbG9zZV9jaGFubmVsIiwiY2FtbF9hdG9taWNfZXhjaGFuZ2UiLCJjYW1sX3N5c19pc2F0dHkiLCJfY2hhbiIsImlzX2RpZ2l0X3plcm8iLCJjYW1sX3VuaXhfbHN0YXQiLCJjYW1sX3VuaXhfbHN0YXRfNjQiLCJjYW1sX2pzX3NldCIsImNhbWxfYXJyYXlfZ2V0IiwiYXJyYXkiLCJpbmRleCIsImNhbWxfY29udGludWF0aW9uX3VzZV9ub2V4YyIsImNvbnQiLCJjYW1sX3VuaXhfcm1kaXIiLCJjYW1sX2xvZzJfZmxvYXQiLCJjYW1sX2djX2h1Z2VfZmFsbGJhY2tfY291bnQiLCJjYW1sX3J1bnRpbWVfZXZlbnRzX3Jlc3VtZSIsImNhbWxfc3BhY2V0aW1lX29ubHlfd29ya3NfZm9yX25hdGl2ZV9jb2RlIiwiY2FtbF9pbnQ2NF9zdWIiLCJjYW1sX3NlZWtfaW4iLCJjYW1sX21sX3NlZWtfaW5fNjQiLCJjYW1sX2RvbWFpbl9pZCIsImNhbWxfbWxfbXV0ZXhfdW5sb2NrIiwiY2FtbF9kb21haW5fbGF0ZXN0X2lkeCIsImNhbWxfZG9tYWluX3NwYXduIiwibXV0ZXgiLCJpZCIsImNhbWxfdW5peF9ta2RpciIsInBlcm0iLCJjYW1sX2ludDY0X3NoaWZ0X2xlZnQiLCJjYW1sX25vdGVxdWFsIiwiY2FtbF9zeXNfY29uc3RfaW50X3NpemUiLCJjYW1sX2pzX3dyYXBfY2FsbGJhY2siLCJjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFjayIsImNhbWxfaXNfanMiLCJjYW1sX2xhenlfdXBkYXRlX3RvX2ZvcndhcmQiLCJjYW1sX2JhX2RpbSIsImNhbWxfYmFfZGltXzEiLCJjYW1sX2pzX21ldGhfY2FsbCIsImNhbWxfZXBoZV9kYXRhX29mZnNldCIsImNhbWxfd2Vha19jcmVhdGUiLCJjYW1sX2VwaGVfY3JlYXRlIiwiY2FtbF9qc190b19ieXRlX3N0cmluZyIsImNhbWxfdHJhbXBvbGluZSIsImNhbWxfbWF5YmVfcHJpbnRfc3RhdHMiLCJjYW1sX2J5dGVzX3Vuc2FmZV9nZXQiLCJjYW1sX2J5dGVzX2dldDY0IiwiY2FtbF9jdXN0b21fZXZlbnRfaW5kZXgiLCJjYW1sX3J1bnRpbWVfZXZlbnRzX3VzZXJfcmVnaXN0ZXIiLCJldmVudF9uYW1lIiwiZXZlbnRfdGFnIiwiZXZlbnRfdHlwZSIsImNhbWxfdW5peF9oYXNfc3ltbGluayIsImNhbWxfZXBoZV9zZXRfa2V5IiwiT2JqZWN0IiwiY2FtbF9lcGhlX3Vuc2V0X2tleSIsImNvdW50IiwiY2FtbF93ZWFrX3NldCIsImNhbWxfc3lzX3JlbW92ZSIsImNhbWxfc3RyaW5nX2JvdW5kX2Vycm9yIiwiY2FtbF9zdHJpbmdfZ2V0MzIiLCJjYW1sX2J5dGVzX2dldCIsImNhbWxfaHlwb3RfZmxvYXQiLCJjYW1sX2pzX2NhbGwiLCJjYW1sX3N5c19jb25zdF9tYXhfd29zaXplIiwiY2FtbF91bml4X2luZXRfYWRkcl9vZl9zdHJpbmciLCJjYW1sX2hhc2hfbWl4X2J5dGVzX2FyciIsImNhbWxfaGFzaF9taXhfanNieXRlcyIsImNhbWxfbWxfYnl0ZXNfY29udGVudCIsImNhbWxfaGFzaF9taXhfYnl0ZXMiLCJjYW1sX2J5dGVzX2xlc3N0aGFuIiwiY2FtbF9lcmZjX2Zsb2F0IiwiY2FtbF9ncl9maWxsX3BvbHkiLCJhciIsImNhbWxfZ2NfcXVpY2tfc3RhdCIsImNhbWxfbWxfaW5wdXRfY2hhciIsImNhbWxfbWxfaW5wdXRfaW50IiwiY2FtbF9ncl9kaXNwbGF5X21vZGUiLCJjYW1sX29ial9yZWFjaGFibGVfd29yZHMiLCJudGhfZGlnaXRfbmF0IiwiY2FtbF9hcnJheV9ibGl0IiwiY2FtbF9mbG9hdF9vZl9zdHJpbmciLCJtMyIsIm1hbnRpc3NhIiwicGFyc2VJbnQiLCJleHBvbmVudCIsImNhbWxfc3lzX2dldGN3ZCIsImNhbWxfaW50NjRfYWRkIiwiY2FtbF9pbnQ2NF9tdWwiLCJjYW1sX2ludDY0X3VsdCIsImNhbWxfcGFyc2Vfc2lnbl9hbmRfYmFzZSIsImNhbWxfcGFyc2VfZGlnaXQiLCJjYW1sX2ludDY0X29mX3N0cmluZyIsImJhc2U2NCIsInRocmVzaG9sZCIsImNhbWxfYmFfc2V0XzEiLCJjYW1sX2ludDY0X3hvciIsImNhbWxfaW50NjRfb3IiLCJjYW1sX2x4bV9uZXh0Iiwic2hpZnRfbCIsInNoaWZ0X3IiLCJvciIsInhvciIsIm11bCIsInJvdGwiLCJnZXQiLCJzZXQiLCJNIiwiZGFiYSIsInEwIiwicTEiLCJzdCIsIngwIiwiY2FtbF9zeXNfY29uc3RfYmlnX2VuZGlhbiIsImNhbWxfbGlzdF90b19qc19hcnJheSIsImNhbWxfb3V0cHV0X3ZhbCIsIldyaXRlciIsInZhbHVlIiwibm9fc2hhcmluZyIsImNsb3N1cmVzIiwiY29uc29sZSIsImludGVybl9vYmpfdGFibGUiLCJtZW1vIiwiZXhpc3Rpbmdfb2Zmc2V0IiwiZXh0ZXJuX3JlYyIsIm9wcyIsInN6XzMyXzY0IiwiaGVhZGVyX3BvcyIsIm9sZF9wb3MiLCJ0eXBlX29mX3YiLCJjYW1sX3N0cmluZ19vZl9hcnJheSIsImNhbWxfb3V0cHV0X3ZhbHVlX3RvX3N0cmluZyIsImNhbWxfcmFpc2Vfbm90X2FfZGlyIiwiY2FtbF9zeXNfc3lzdGVtX2NvbW1hbmQiLCJjbWQiLCJjaGlsZF9wcm9jZXNzIiwiY2FtbF9qc19lcnJvcl9vZl9leGNlcHRpb24iLCJjYW1sX3VuaXhfZ2V0dWlkIiwiZGVzZXJpYWxpemVfbmF0IiwiaW5pdGlhbGl6ZV9uYXQiLCJjYW1sX2J5dGVzX29mX3V0ZjE2X2pzc3RyaW5nIiwiY2FtbF9ncl9vcGVuX3N1YndpbmRvdyIsIlVJbnQ4QXJyYXlSZWFkZXIiLCJjYW1sX21hcnNoYWxfZGF0YV9zaXplIiwicmVhZHZscSIsIm92ZXJmbG93IiwibjciLCJoZWFkZXJfbGVuIiwiZGF0YV9sZW4iLCJNbFN0cmluZ1JlYWRlciIsInpzdGRfZGVjb21wcmVzcyIsImFiIiwidTgiLCJ1MTYiLCJ1MzIiLCJpMzIiLCJzbGMiLCJmaWxsIiwiY3B3IiwiZWMiLCJpbmQiLCJudCIsIkVycm9yIiwicmIiLCJyemZoIiwiZGF0IiwibjMiLCJmbGciLCJzcyIsImNjIiwiZGYiLCJmY2YiLCJidCIsImRiIiwiZGkiLCJmc2IiLCJmc3MiLCJ3cyIsIndiIiwibXNiIiwidmFsIiwiYml0cyIsInJmc2UiLCJtYWwiLCJ0cG9zIiwiYWwiLCJwcm9icyIsInN5bSIsImh0IiwiZnJlcSIsImRzdGF0ZSIsIm5zdGF0ZSIsImJiMSIsInN5bXMiLCJjYnQiLCJtc2siLCJtc2sxZmIiLCJtc3YiLCJzdmFsIiwicmJ0Iiwic3ltcG9zIiwic3N0ZXAiLCJzbWFzayIsInNmIiwibnMiLCJuYiIsInJodSIsIndjIiwiaGIiLCJodyIsInJjIiwicmkiLCJfYSIsImVidCIsImZkdCIsImVwb3MiLCJsYiIsInN0MSIsInN0MiIsImJ0cjEiLCJidHIyIiwiZnBvcyIsImJ5dGUiLCJ3ZXMiLCJ3dCIsIm1iIiwidHMiLCJoYnVmIiwicHYiLCJkbGx0IiwiZG1sdCIsImRvY3QiLCJiMmJsIiwiYmwiLCJsbGIiLCJsbGJsIiwibWxiIiwibWxibCIsImRodSIsIm91dCIsImh1IiwiZWIiLCJidHIiLCJkaHU0Iiwic3oxIiwic3oyIiwic3ozIiwicnpiIiwiYjAiLCJidHlwZSIsImxidCIsImxzcyIsImxjcyIsInM0Iiwic3BsIiwiaHVkIiwic2NtIiwiZHRzIiwibWQiLCJyYnVmIiwiX2IiLCJtbHQiLCJvY3QiLCJsbHQiLCJzcG9zIiwib3VidCIsImxzdCIsIm9zdCIsIm1zdCIsImxsYyIsImxidHIiLCJtbGMiLCJtYnRyIiwib2ZjIiwib2J0ciIsIm9mcCIsIm9mZiIsIm1sIiwibGwiLCJpZHgiLCJzdGluIiwiY2N0IiwiYnVmcyIsIm9sIiwiY2hrIiwiYmxrIiwiY2FtbF9mbG9hdF9vZl9ieXRlcyIsImNhbWxfaW5wdXRfdmFsdWVfZnJvbV9yZWFkZXIiLCJtYWdpYyIsImNvbXByZXNzZWQiLCJ1bmNvbXByZXNzZWRfZGF0YV9sZW4iLCJudW1fb2JqZWN0cyIsIl9zaXplXzMyIiwiX3NpemVfNjQiLCJvYmpfY291bnRlciIsImludGVybl9yZWMiLCJoZWFkZXIiLCJleHBlY3RlZF9zaXplIiwiY2FtbF9zdHJpbmdfb2ZfYnl0ZXMiLCJjYW1sX2lucHV0X3ZhbHVlX2Zyb21fYnl0ZXMiLCJjYW1sX2lucHV0X3ZhbHVlIiwiYmxvY2siLCJjYW1sX2lucHV0X3ZhbHVlX3RvX291dHNpZGVfaGVhcCIsImNhbWxfYXRvbWljX2NhcyIsImNhbWxfY29weXNpZ25fZmxvYXQiLCJjYW1sX2dyX3NldF90ZXh0X3NpemUiLCJjYW1sX2F0b21pY19sb2FkIiwiY2FtbF9NRDVGaW5hbCIsImNhbWxfbWQ1X2J5dGVzIiwiY2FtbF9iYV9zZXRfZ2VuZXJpYyIsImNhbWxfbWxfY29uZGl0aW9uX3dhaXQiLCJtdXRleHQiLCJjYW1sX3N0cmluZ19sZXNzZXF1YWwiLCJjYW1sX3N0cmluZ19ncmVhdGVyZXF1YWwiLCJjYW1sX25leHRhZnRlcl9mbG9hdCIsIm9uZSIsImNhbWxfZ3Jfc2l6ZV95IiwiY2FtbF9wb3NfaW4iLCJjYW1sX21sX3Bvc19pbiIsImNhbWxfaW50NjRfYW5kIiwiY2FtbF9zeXNfY29uc3Rfd29yZF9zaXplIiwiY2FtbF9ydW50aW1lX2V2ZW50c19wYXVzZSIsImNhbWxfdW5peF91bmxpbmsiLCJjYW1sX3N5c19vcGVuX2Zvcl9ub2RlIiwiZnMiLCJmZDIiLCJNbEZha2VGZF9vdXQiLCJjYW1sX3N5c19vcGVuX2ludGVybmFsIiwiY2FtbF9zeXNfb3BlbiIsIl9wZXJtcyIsImNhbWxfc3RyaW5nX2dldCIsInJlX21hdGNoIiwicmVfd29yZF9sZXR0ZXJzIiwib3Bjb2RlcyIsImlzX3dvcmRfbGV0dGVyIiwiaW5fYml0c2V0IiwicmVfbWF0Y2hfaW1wbCIsInBhcnRpYWwiLCJwcm9nIiwiY3Bvb2wiLCJub3JtdGFibGUiLCJudW1ncm91cHMiLCJudW1yZWdpc3RlcnMiLCJzdGFydGNoYXJzIiwicGMiLCJxdWl0IiwiZ3JvdXBzIiwicmVfcmVnaXN0ZXIiLCJiYWNrdHJhY2siLCJpdGVtIiwicHVzaCIsImFjY2VwdCIsInByZWZpeF9tYXRjaCIsIm9wIiwic2FyZyIsInVhcmciLCJncm91cCIsInJlX3NlYXJjaF9iYWNrd2FyZCIsImNhbWxfanNfZnJvbV9zdHJpbmciLCJjYW1sX2JhX3N1YiIsImNoYW5nZWRfZGltIiwibmV3X2RpbXMiLCJuZXdfZGF0YSIsImNhbWxfZ2NfZnVsbF9tYWpvciIsImNhbWxfbWxfbXV0ZXhfdHJ5X2xvY2siLCJjYW1sX2J5dGVzX3NldDMyIiwiY2FtbF9ncl9zaWdpb19zaWduYWwiLCJjYW1sX2JhX3VpbnQ4X3NldDMyIiwiY2FtbF9zeXNfY29uc3Rfb3N0eXBlX3VuaXgiLCJjYW1sX3VuaXhfZ210aW1lIiwiY2FtbF9zaWduYml0X2Zsb2F0IiwiY2FtbF9ncl9jdXJyZW50X3giLCJjYW1sX2dyX3NldF9saW5lX3dpZHRoIiwiY2FtbF9ncl9zZXRfZm9udCIsImNhbWxfZ3Jfc2V0X2NvbG9yIiwiY29udmVydCIsIm51bWJlciIsImNfc3RyIiwiY2FtbF9ncl9tb3ZldG8iLCJjYW1sX2dyX3Jlc2l6ZV93aW5kb3ciLCJjYW1sX2dyX3N0YXRlX2luaXQiLCJjYW1sX2JhX2tpbmRfb2ZfdHlwZWRfYXJyYXkiLCJ0YSIsImNhbWxfYmFfZnJvbV90eXBlZF9hcnJheSIsImNhbWxfbWxfc2Vla19vdXQiLCJjYW1sX2pzX3R5cGVvZiIsImNhbWxfaGFzaF9taXhfc3RyaW5nIiwiY2FtbF9zdHJpbmdfaGFzaCIsImNhbWxfcmVzdG9yZV9yYXdfYmFja3RyYWNlIiwiY2FtbF9ncl9saW5ldG8iLCJjYW1sX2pzX2Z1bmN0aW9uX2FyaXR5IiwiY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2tfdW5zYWZlIiwiY2FtbF9iYV9kaW1fMyIsImNhbWxfaXNfc3BlY2lhbF9leGNlcHRpb24iLCJjYW1sX2Zvcm1hdF9leGNlcHRpb24iLCJidWNrZXQiLCJzdGFydCIsImNhbWxfZmF0YWxfdW5jYXVnaHRfZXhjZXB0aW9uIiwiaGFuZGxlciIsImF0X2V4aXQiLCJjYW1sX2VwaGVfY2hlY2tfZGF0YSIsImNhbWxfYnl0ZXNfZ2V0MTYiLCJjYW1sX29ial9tYWtlX2ZvcndhcmQiLCJjYW1sX2pzX2Zyb21fYm9vbCIsImNhbWxfbWxfc2V0X2NoYW5uZWxfbmFtZSIsImNhbWxfZXhwMl9mbG9hdCIsImNhbWxfZ3JfY2xvc2VfZ3JhcGgiLCJjYW1sX21sX2RvbWFpbl9jcHVfcmVsYXgiLCJjYW1sX2NyZWF0ZV9zdHJpbmciLCJjYW1sX21sX2lucHV0X2Jsb2NrIiwiYXZhaWwiLCJjYW1sX21kNV9jaGFuIiwidG9yZWFkIiwiY2FtbF9hdGFuaF9mbG9hdCIsImNhbWxfbWxfY29uZGl0aW9uX3NpZ25hbCIsImNhbWxfdW5peF9maW5kbmV4dCIsImNhbWxfbWxfb3V0cHV0X2J5dGVzIiwiY2FtbF9tbF9vdXRwdXQiLCJjYW1sX21sX2RvbWFpbl9pZCIsImNhbWxfZXBoZV9nZXRfZGF0YSIsImNhbWxfeG1saHR0cHJlcXVlc3RfY3JlYXRlIiwiY2FtbF90cmFtcG9saW5lX3JldHVybiIsImNhbWxfbWxfaXNfYnVmZmVyZWQiLCJjYW1sX2FycmF5X2FwcGVuZCIsImwxIiwibDIiLCJjYW1sX3VuaXhfZ2V0dGltZW9mZGF5IiwiY2FtbF91bml4X3RpbWUiLCJjYW1sX21sX3NldF9jaGFubmVsX3JlZmlsbCIsImNhbWxfcnVudGltZV9ldmVudHNfY3JlYXRlX2N1cnNvciIsImNhbWxfZmlsbF9ieXRlcyIsImNhbWxfanNfZXhwciIsImNhbWxfbWxfcnVudGltZV93YXJuaW5nc19lbmFibGVkIiwiY2FtbF9vdXRwdXRfdmFsdWVfdG9fYnl0ZXMiLCJjYW1sX2V2ZW50bG9nX3Jlc3VtZSIsImNhbWxfbWQ1X3N0cmluZyIsImNhbWxfYXJyYXlfb2Zfc3RyaW5nIiwiY2FtbF9zdHJpbmdfZXF1YWwiLCJjYW1sX2pzb29fZmxhZ3NfdXNlX2pzX3N0cmluZyIsImNhbWxfb3V0cHV0X3ZhbHVlX3RvX2J1ZmZlciIsInJlX3JlcGxhY2VtZW50X3RleHQiLCJyZXBsIiwib3JpZyIsImN1ciIsImVuZCIsImNhbWxfcHVyZV9qc19leHByIiwiY2FtbF9ibGl0X3N0cmluZyIsImJsaXRfbmF0IiwiY2FtbF9iaWdzdHJpbmdfYmxpdF9iYV90b19ieXRlcyIsImJhMSIsImJ5dGVzMiIsImNhbWxfdW5peF9zdGF0IiwiY2FtbF9yZWdpc3Rlcl9uYW1lZF92YWx1ZSIsImpzb29fY3JlYXRlX2ZpbGVfZXh0ZXJuIiwiY2FtbF91bml4X3N0YXRfNjQiLCJjYW1sX3RvX2pzX3N0cmluZyIsImNhbWxfbWxfbXV0ZXhfbG9jayIsInJlX3NlYXJjaF9mb3J3YXJkIiwiY2FtbF9tYWtlX3ZlY3QiLCJpbml0IiwiY2FtbF9tbF9zZWVrX2luIiwiY2FtbF9zeXNfcmVhZF9kaXJlY3RvcnkiLCJjYW1sX21sX291dHB1dF9jaGFyIiwiY2FtbF9zeXNfY29uc3Rfb3N0eXBlX3dpbjMyIiwiY2FtbF9vYmpfaXNfYmxvY2siLCJjYW1sX29ial9zZXRfcmF3X2ZpZWxkIiwiY2FtbF9qc192YXIiLCJjYW1sX3RydW5jX2Zsb2F0IiwiY2FtbF9lcGhlX3Vuc2V0X2RhdGEiLCJjYW1sX2VwaGVfc2V0X2RhdGEiLCJjYW1sX2VwaGVfYmxpdF9kYXRhIiwiY2FtbF9pc19wcmludGFibGUiLCJjYW1sX2J5dGVzX2xlc3NlcXVhbCIsImNhbWxfYXJyYXlfb2ZfYnl0ZXMiLCJjYW1sX2VxdWFsIiwicmVfcGFydGlhbF9tYXRjaCIsImNhbWxfc3lzX3JhbmRvbV9zZWVkIiwiYnVmZiIsIm5vdyIsImFsbF9maW5hbGl6ZXJzIiwiY2FtbF9maW5hbF9yZWdpc3Rlcl9jYWxsZWRfd2l0aG91dF92YWx1ZSIsImNiIiwiY2FtbF9iYV9nZXRfMiIsImNhbWxfYmFfdWludDhfc2V0MTYiLCJjYW1sX2xhenlfcmVzZXRfdG9fbGF6eSIsImNhbWxfanNfZGVsZXRlIiwiY2FtbF9pbnRfb2Zfc3RyaW5nIiwiY2FtbF9saXN0X21vdW50X3BvaW50IiwicHJldiIsImNhbWxfbWFyc2hhbF9jb25zdGFudHMiLCJjYW1sX29ial9yYXdfZmllbGQiLCJjYW1sX2pzX2VxdWFscyIsImNhbWxfb2JqX2NvbXBhcmVfYW5kX3N3YXAiLCJiaWdzdHJpbmdfdG9fdHlwZWRfYXJyYXkiLCJjYW1sX2dyX2FyY19hdXgiLCJjeCIsImN5IiwicnkiLCJyeCIsInJvdCIsInhQb3MiLCJ5UG9zIiwieFBvc19wcmV2IiwieVBvc19wcmV2Iiwic3BhY2UiLCJkZWx0YSIsImNhbWxfZ3JfZmlsbF9hcmMiLCJjYW1sX2JhX3NsaWNlIiwibnVtX2luZHMiLCJzdWJfZGltcyIsImNhbWxfanNfd3JhcF9jYWxsYmFja191bnNhZmUiLCJjYW1sX2JhX2tpbmQiLCJjYW1sX2FsbG9jX2R1bW15X2luZml4IiwiY2FtbF9qc19mdW5fY2FsbCIsImNhbWxfZ2NfbWFqb3Jfc2xpY2UiLCJ3b3JrIiwiY2FtbF9qc19wdXJlX2V4cHIiLCJjb21wYXJlX2RpZ2l0c19uYXQiLCJjYW1sX21sX2lucHV0IiwiY2FtbF9ncl93YWl0X2V2ZW50IiwiX2V2bCIsImNhbWxfZ3Jfc2lnaW9faGFuZGxlciIsImNhbWxfaGFzaF9taXhfYmlnc3RyaW5nIiwiY2FtbF9yZWNvcmRfYmFja3RyYWNlIiwiY2FtbF91bml4X2NsZWFudXAiLCJjYW1sX3N5c19nZXRfY29uZmlnIiwiY2FtbF9zeXNfY29uc3RfYmFja2VuZF90eXBlIiwiY2FtbF9vYmpfaXNfc2hhcmVkIiwiY2FtbF9tbF9vdXRfY2hhbm5lbHNfbGlzdCIsImNhbWxfYXNpbmhfZmxvYXQiLCJjYW1sX3Bvc19vdXQiLCJiaWdzdHJpbmdfb2ZfYXJyYXlfYnVmZmVyIiwiY2FtbF9tb2QiLCJjYW1sX2JhX2luaXQiLCJjYW1sX3VuaXhfZmlsZWRlc2NyX29mX2ZkIiwicmVfc3RyaW5nX21hdGNoIiwiQmlnU3RyaW5nUmVhZGVyIiwiY2FtbF9ncl9kdW1wX2ltYWdlIiwiY2FtbF9iYV9nZXRfZ2VuZXJpYyIsImNhbWxfdW5peF9zdGFydHVwIiwiY2FtbF9nZXRfZXhjZXB0aW9uX2JhY2t0cmFjZSIsImNhbWxfZm9ybWF0X2Zsb2F0IiwidG9GaXhlZCIsImRwIiwicHJlYyIsImNhbWxfbW91bnRfYXV0b2xvYWQiLCJjYW1sX3N0cmluZ19sZXNzdGhhbiIsImNhbWxfc3RyaW5nX2dyZWF0ZXJ0aGFuIiwiY2FtbF9kaXYiLCJjYW1sX29ial9kdXAiLCJjYW1sX2VwaGVfZ2V0X2RhdGFfY29weSIsImNhbWxfbWVtcHJvZl9zdGFydCIsInJhdGUiLCJzdGFja19zaXplIiwidHJhY2tlciIsImNhbWxfc3lzX2dldF9hcmd2IiwiY2FtbF9tbF9kb21haW5fc2V0X25hbWUiLCJfbmFtZSIsImNhbWxfanNfdG9fYm9vbCIsImNhbWxfZ3JfY3JlYXRlX2ltYWdlIiwiY2FtbF9lcGhlX2dldF9rZXlfY29weSIsImNhbWxfbGVzc3RoYW4iLCJjYW1sX3Jhd19iYWNrdHJhY2VfbmV4dF9zbG90IiwiY2FtbF9idWlsZF9zeW1ib2xzIiwidG9jIiwic3ltYiIsImNhbWxfcmVnaXN0ZXJfZ2xvYmFsIiwibmFtZV9vcHQiLCJuaWQiLCJtdWx0X25hdCIsImxlbjMiLCJzcXVhcmVfbmF0IiwiY2FtbF9qc19mcm9tX2Zsb2F0IiwiY2FtbF9mbG9hdGFycmF5X2NyZWF0ZSIsImNhbWxfZ2Nfc3RhdCIsImNhbWxfZ2V0X21ham9yX2NyZWRpdCIsImNhbWxfc3lzX21vZGlmeV9hcmd2IiwiY2FtbF9tZXRob2RfY2FjaGUiLCJjYW1sX2dldF9wdWJsaWNfbWV0aG9kIiwib2JqIiwiY2FjaGVpZCIsIm1ldGhzIiwibGkiLCJjYW1sX2pzX2dldF9jb25zb2xlIiwiY2FtbF9zeXNfdW5zYWZlX2dldGVudiIsImNhbWxfbWxfb3Blbl9kZXNjcmlwdG9yX2luIiwicmVmaWxsIiwiY2hhbm5lbCIsImJpZ3N0cmluZ19vZl90eXBlZF9hcnJheSIsImNhbWxfcm91bmRfZmxvYXQiLCJjYW1sX29qc19uZXdfYXJyIiwiRiIsImNvbXBsZW1lbnRfbmF0IiwiY2FtbF9kb21haW5fZGxzIiwiY2FtbF9kb21haW5fZGxzX3NldCIsImNhbWxfbGF6eV9yZWFkX3Jlc3VsdCIsImNhbWxfanNfcmVnZXhwcyIsImNhbWxfanNfaHRtbF9lc2NhcGUiLCJjYW1sX2JhX2RpbV8yIiwiY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2tfYXJndW1lbnRzIiwiY2FtbF9zaW5oX2Zsb2F0IiwiY2FtbF9sZGV4cF9mbG9hdCIsImNhbWxfZ3Jfc3RhdGVfc2V0IiwiY2FtbF9qc193cmFwX2NhbGxiYWNrX3N0cmljdCIsImFyaXR5IiwiY2FtbF9nY19taW5vcl93b3JkcyIsImNhbWxfZ2V0X2N1cnJlbnRfY2FsbHN0YWNrIiwibGFuZF9kaWdpdF9uYXQiLCJjYW1sX2ludDY0X21vZCIsImNhbWxfb2JqX3NldF90YWciLCJjYW1sX2ludDMyX2Jzd2FwIiwiY2FtbF9iYV9zZXRfMyIsImNhbWxfanNfaW5zdGFuY2VvZiIsImNhbWxfZ2V0X21ham9yX2J1Y2tldCIsIm50aF9kaWdpdF9uYXRfbmF0aXZlIiwic2V0X2RpZ2l0X25hdF9uYXRpdmUiLCJkaWdpdCIsImNhbWxfc3RyaW5nX3NldDY0IiwiY2FtbF9ncl9zdGF0ZV9jcmVhdGUiLCJjYW52YXMiLCJjb250ZXh0IiwiY2FtbF9ncl9kcmF3X2FyYyIsImNhbWxfYmFfbWFwX2ZpbGUiLCJ2ZmQiLCJzaGFyZWQiLCJjYW1sX2JhX21hcF9maWxlX2J5dGVjb2RlIiwiYXJnbiIsImNhbWxfYmFfY3JlYXRlX2Zyb20iLCJkYXRhMSIsImRhdGEyIiwianN0eXAiLCJjYW1sX3RhbmhfZmxvYXQiLCJjYW1sX3J1bnRpbWVfZXZlbnRzX3N0YXJ0IiwiY2FtbF9ncl9kcmF3X3N0ciIsImR4IiwiY2FtbF9ncl9kcmF3X3N0cmluZyIsImNhbWxfZ3JfZHJhd19jaGFyIiwiY2FtbF91bm1vdW50IiwiY2FtbF9iaWdzdHJpbmdfYmxpdF9iYV90b19iYSIsImNhbWxfaW5wdXRfdmFsdWVfZnJvbV9zdHJpbmciLCJjYW1sX21sX3Bvc19pbl82NCIsImNhbWxfZ3JfZHJhd19pbWFnZSIsImltYWdlIiwiY2FtbF9yZWdpc3Rlcl9jaGFubmVsX2Zvcl9zcGFjZXRpbWUiLCJfY2hhbm5lbCIsImNhbWxfc3RyaW5nX3NldCIsImNhbWxfc3lzX3JtZGlyIiwiY2FtbF91bml4X3N5bWxpbmsiLCJzcmNfcm9vdCIsImRzdF9yb290IiwiY2FtbF9tbF9wb3Nfb3V0IiwiY2FtbF9zcGFjZXRpbWVfZW5hYmxlZCIsImNhbWxfYnl0ZXNfbm90ZXF1YWwiLCJjYW1sX3J1bnRpbWVfcGFyYW1ldGVycyIsImNhbWxfanNfb2JqZWN0IiwiY2FtbF9iYV9jcmVhdGUiLCJkaW1zX21sIiwiY2FtbF9ncl9yZW1lbWJlcl9tb2RlIiwiY2FtbF9mbWFfZmxvYXQiLCJTUExJVCIsIk1JTl9WQUxVRSIsIkVQU0lMT04iLCJDIiwiQSIsIkIiLCJtdWx0aXBseSIsImF0IiwiYWhpIiwiYWxvIiwiYmhpIiwiYmxvIiwiYWRqdXN0Iiwic2NhbGUiLCJ4cyIsInlzIiwienMiLCJ4eSIsInUiLCJjYW1sX3JlY29tbWVuZGVkX2RvbWFpbl9jb3VudCIsImNhbWxfYnN3YXAxNiIsImNhbWxfbWxfc2V0X2JpbmFyeV9tb2RlIiwiY2FtbF9maW5hbF9yZWdpc3RlciIsImNhbWxfZ3JfZHJhd19yZWN0IiwiY2FtbF9zdHJpbmdfZ2V0MTYiLCJjYW1sX291dHB1dF92YWx1ZSIsImNhbWxfYmFfZ2V0XzMiLCJjYW1sX2VwaGVfYmxpdF9rZXkiLCJjYW1sX2luaXRpYWxfdGltZSIsImNhbWxfc3lzX3RpbWUiLCJjYW1sX3N5c190aW1lX2luY2x1ZGVfY2hpbGRyZW4iLCJjYW1sX2NoZWNrX2JvdW5kIiwiY2FtbF91bml4X2dldHB3dWlkIiwiY2FtbF9oYXNoIiwibGltaXQiLCJzZWVkIiwicXVldWUiLCJyZCIsIndyIiwiY2FtbF9iYV90b190eXBlZF9hcnJheSIsImNhbWxfZG9tYWluX2Rsc19nZXQiLCJjYW1sX2J5dGVzX2dldDMyIiwiY2FtbF9mcmV4cF9mbG9hdCIsIm5lZyIsImNhbWxfc3RyaW5nX2dldDY0IiwiY2FtbF9qc19lcnJvcl9vcHRpb25fb2ZfZXhjZXB0aW9uIiwiY2FtbF9tbF9wb3Nfb3V0XzY0IiwiY2FtbF91bml4X2ZpbmRjbG9zZSIsImNhbWxfZ3JfY2xvc2Vfc3Vid2luZG93IiwiY2FtbF9mbG9hdGFycmF5X2JsaXQiLCJjYW1sX2dldF9taW5vcl9mcmVlIiwiY2FtbF9zZXRfc3RhdGljX2VudiIsImNhbWxfYmFfY2hhbmdlX2xheW91dCIsImNhbWxfanNfbmV3IiwiY2FtbF9ncl9jdXJyZW50X3kiLCJjYW1sX2Zvcm1hdF9pbnQiLCJqc29vX2VmZmVjdF9ub3Rfc3VwcG9ydGVkIiwiY2FtbF9jb250aW51YXRpb25fdXNlX2FuZF91cGRhdGVfaGFuZGxlcl9ub2V4YyIsImh2YWwiLCJoZXhuIiwiaGVmZiIsImNhbWxfb2JqX3RydW5jYXRlIiwiY2FtbF9qc190b19zdHJpbmciLCJpc19kaWdpdF9vZGQiLCJjYW1sX3J1bnRpbWVfdmFyaWFudCIsImNhbWxfbWxfb3Blbl9kZXNjcmlwdG9yX291dCIsImJ1ZmZlcmVkIiwiY2FtbF9hcnJheV9jb25jYXQiLCJjYW1sX2dyX29wZW5fZ3JhcGgiLCJpbmZvIiwic3BlY3MiLCJzdGF0dXMiLCJ3aW4iLCJkb2MiLCJ0aXRsZSIsImJvZHkiLCJjYW1sX21ha2VfZmxvYXRfdmVjdCIsImNhbWxfY2JydF9mbG9hdCIsImNhbWxfZXZlbnRsb2dfcGF1c2UiLCJjYW1sX21lbXByb2Zfc3RvcCIsImNhbWxfZ3JlYXRlcmVxdWFsIiwiY2FtbF9nZXRfZXhjZXB0aW9uX3Jhd19iYWNrdHJhY2UiLCJjYW1sX2xvZzFwX2Zsb2F0IiwiY2FtbF9ydW50aW1lX2V2ZW50c19mcmVlX2N1cnNvciIsImNhbWxfbGF6eV9tYWtlX2ZvcndhcmQiLCJsb3JfZGlnaXRfbmF0IiwiY2FtbF9ncl9ibGl0X2ltYWdlIiwiaW0yIiwiY2FtbF9ncl93aW5kb3dfaWQiLCJjYW1sX2pzX29uX2llIiwidWEiLCJjYW1sX2ludDY0X3NoaWZ0X3JpZ2h0IiwiY2FtbF9iYV9sYXlvdXQiLCJjYW1sX2NvbnZlcnRfcmF3X2JhY2t0cmFjZSIsImNhbWxfYXJyYXlfc2V0IiwibmV3dmFsIiwiY2FtbF9hbGxvY19zdGFjayIsImh2IiwiaHgiLCJoZiIsImNhbWxfYnl0ZXNfZ3JlYXRlcmVxdWFsIiwic2V0X2RpZ2l0X25hdCIsImNhbWxfYnl0ZXNfc2V0MTYiLCJjYW1sX2dyX2RvY19vZl9zdGF0ZSIsImNhbWxfbWxfb3V0cHV0X2ludCIsImNhbWxfb2JqX3dpdGhfdGFnIiwiY2FtbF9tbF9jaGFubmVsX3NpemUiLCJjYW1sX3Jhd19iYWNrdHJhY2Vfc2xvdCIsImNhbWxfaGV4c3RyaW5nX29mX2Zsb2F0Iiwic3R5bGUiLCJleHBfc2lnbiIsInNpZ25fc3RyIiwiY3N0IiwieF9zdHIiLCJjYW1sX3J1bnRpbWVfZXZlbnRzX3VzZXJfd3JpdGUiLCJldmVudCIsImV2ZW50X2NvbnRlbnQiLCJjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFja19zdHJpY3QiLCJjYW1sX3VuaXhfcmVhZGxpbmsiLCJjYW1sX2JhY2t0cmFjZV9zdGF0dXMiLCJjYW1sX2luc3RhbGxfc2lnbmFsX2hhbmRsZXIiLCJjYW1sX3N5c19hcmd2IiwiY2FtbF9iYV9maWxsIiwiY2FtbF9tb2RmX2Zsb2F0IiwiY2FtbF9nY19nZXQiLCJjYW1sX2Zsb2F0X2NvbXBhcmUiLCJjYW1sX3N0cmluZ19zZXQzMiIsImNhbWxfcGFyc2VfZW5naW5lIiwidGFibGVzIiwiZW52IiwiRVJSQ09ERSIsImxvb3AiLCJ0ZXN0c2hpZnQiLCJzaGlmdCIsInNoaWZ0X3JlY292ZXIiLCJyZWR1Y2UiLCJSRUFEX1RPS0VOIiwiUkFJU0VfUEFSU0VfRVJST1IiLCJHUk9XX1NUQUNLU18xIiwiR1JPV19TVEFDS1NfMiIsIkNPTVBVVEVfU0VNQU5USUNfQUNUSU9OIiwiQ0FMTF9FUlJPUl9GVU5DVElPTiIsImVudl9zX3N0YWNrIiwiZW52X3Zfc3RhY2siLCJlbnZfc3ltYl9zdGFydF9zdGFjayIsImVudl9zeW1iX2VuZF9zdGFjayIsImVudl9zdGFja3NpemUiLCJlbnZfc3RhY2tiYXNlIiwiZW52X2N1cnJfY2hhciIsImVudl9sdmFsIiwiZW52X3N5bWJfc3RhcnQiLCJlbnZfc3ltYl9lbmQiLCJlbnZfYXNwIiwiZW52X3J1bGVfbGVuIiwiZW52X3J1bGVfbnVtYmVyIiwiZW52X3NwIiwiZW52X3N0YXRlIiwiZW52X2VycmZsYWciLCJ0YmxfdHJhbnNsX2NvbnN0IiwidGJsX3RyYW5zbF9ibG9jayIsInRibF9saHMiLCJ0YmxfbGVuIiwidGJsX2RlZnJlZCIsInRibF9kZ290byIsInRibF9zaW5kZXgiLCJ0YmxfcmluZGV4IiwidGJsX2dpbmRleCIsInRibF90YWJsZXNpemUiLCJ0YmxfdGFibGUiLCJ0YmxfY2hlY2siLCJ0YmxfbmFtZXNfY29uc3QiLCJ0YmxfbmFtZXNfYmxvY2siLCJsb2ciLCJ0b2tlbl9uYW1lIiwibmFtZXMiLCJwcmludF90b2tlbiIsInRvayIsInRva2VuIiwibjEiLCJuMiIsInN0YXRlMSIsInNwIiwiZXJyZmxhZyIsImFzcCIsImNhbWxfanNvb19mbGFnc19lZmZlY3RzIiwiY2FtbF91cGRhdGVfZHVtbXkiLCJjYW1sX2FycmF5X2ZpbGwiLCJjYW1sX3N5c19ta2RpciIsImNhbWxfc3RyaW5nX25vdGVxdWFsIiwiY2FtbF9ieXRlc19ncmVhdGVydGhhbiIsImNhbWxfZ3JfbWFrZV9pbWFnZSIsImNhbWxfbWxfc2V0X2NoYW5uZWxfb3V0cHV0IiwiY2FtbF9yZWFkX2ZpbGVfY29udGVudCIsImNhbWxfanNfdG9fZmxvYXQiLCJjYW1sX3NldHVwX3VuY2F1Z2h0X2V4Y2VwdGlvbl9oYW5kbGVyIiwib3JpZ2luIiwiZXJhc2VfcmVsIiwicmVzdCIsInJlc3QkMCIsInJlc3QkMSIsInJlc3QkMiIsInJlc3QkMyIsInJlc3QkNCIsInJlc3QkNSIsInJlc3QkNiIsInJlc3QkNyIsInR5IiwicmVzdCQ4IiwidHkxIiwicmVzdCQ5IiwicmVzdCQxMCIsInJlc3QkMTEiLCJyZXN0JDEyIiwicmVzdCQxMyIsImNvbmNhdF9mbXR0eSIsImZtdHR5MSIsImZtdHR5MiIsInR5MiIsImNvbmNhdF9mbXQiLCJmbXQxIiwiZm10MiIsInBhZCIsInBhZCQwIiwicHJlYyIsInBhZCQxIiwiaWNvbnYiLCJwcmVjJDAiLCJwYWQkMiIsImljb252JDAiLCJwcmVjJDEiLCJwYWQkMyIsImljb252JDEiLCJwcmVjJDIiLCJwYWQkNCIsImljb252JDIiLCJwcmVjJDMiLCJwYWQkNSIsImZjb252IiwicGFkJDYiLCJzdHIiLCJjaHIiLCJmbXR0eSIsInBhZCQ3IiwiZm10dHkkMCIsInBhZCQ4IiwicmVzdCQxNCIsInJlc3QkMTUiLCJyZXN0JDE2IiwiZm10aW5nX2xpdCIsInJlc3QkMTciLCJmbXRpbmdfZ2VuIiwicmVzdCQxOCIsInJlc3QkMTkiLCJjaGFyX3NldCIsIndpZHRoX29wdCIsInJlc3QkMjAiLCJjb3VudGVyIiwicmVzdCQyMSIsInJlc3QkMjIiLCJpZ24iLCJyZXN0JDIzIiwiZiIsImFyaXR5IiwibWFrZSIsInYiLCJnZXQiLCJyIiwic2V0IiwiZXhjaGFuZ2UiLCJjdXIiLCJjb21wYXJlX2FuZF9zZXQiLCJzZWVuIiwiZmV0Y2hfYW5kX2FkZCIsIm4iLCJpbmNyIiwiZGVjciIsImZhaWx3aXRoIiwicyIsImludmFsaWRfYXJnIiwibWluIiwieCIsInkiLCJtYXgiLCJhYnMiLCJsbm90IiwiaW5maW5pdHkiLCJuZWdfaW5maW5pdHkiLCJuYW4iLCJtYXhfZmxvYXQiLCJtaW5fZmxvYXQiLCJlcHNpbG9uX2Zsb2F0IiwibWF4X2ludCIsIm1pbl9pbnQiLCJzeW1ib2wiLCJzMSIsInMyIiwibDEiLCJsMiIsImNoYXJfb2ZfaW50Iiwic3RyaW5nX29mX2Jvb2wiLCJiIiwiYm9vbF9vZl9zdHJpbmciLCJib29sX29mX3N0cmluZ19vcHQiLCJzdHJpbmdfb2ZfaW50IiwiaW50X29mX3N0cmluZ19vcHQiLCJ2YWxpZF9mbG9hdF9sZXhlbSIsImwiLCJpIiwiaSQwIiwic3RyaW5nX29mX2Zsb2F0IiwiZmxvYXRfb2Zfc3RyaW5nX29wdCIsInN5bWJvbCQwIiwidGwiLCJoZCIsInN0ZGluIiwic3Rkb3V0Iiwic3RkZXJyIiwib3Blbl9vdXRfZ2VuIiwibW9kZSIsInBlcm0iLCJuYW1lIiwiYyIsIm9wZW5fb3V0Iiwib3Blbl9vdXRfYmluIiwiZmx1c2hfYWxsIiwiYSIsIm91dHB1dF9ieXRlcyIsIm9jIiwib3V0cHV0X3N0cmluZyIsIm91dHB1dCIsIm9mcyIsImxlbiIsIm91dHB1dF9zdWJzdHJpbmciLCJvdXRwdXRfdmFsdWUiLCJjaGFuIiwiY2xvc2Vfb3V0IiwiY2xvc2Vfb3V0X25vZXJyIiwib3Blbl9pbl9nZW4iLCJvcGVuX2luIiwib3Blbl9pbl9iaW4iLCJpbnB1dCIsImljIiwidW5zYWZlX3JlYWxseV9pbnB1dCIsIm9mcyQwIiwibGVuJDAiLCJsZW4kMSIsIm9mcyQxIiwicmVhbGx5X2lucHV0IiwicmVhbGx5X2lucHV0X3N0cmluZyIsImlucHV0X2xpbmUiLCJidWlsZF9yZXN1bHQiLCJidWYiLCJwb3MkMCIsImFjY3UiLCJiZWciLCJhY2N1JDAiLCJyZXMiLCJjbG9zZV9pbl9ub2VyciIsInByaW50X2NoYXIiLCJwcmludF9zdHJpbmciLCJwcmludF9ieXRlcyIsInByaW50X2ludCIsInByaW50X2Zsb2F0IiwicHJpbnRfZW5kbGluZSIsInByaW50X25ld2xpbmUiLCJwcmVycl9jaGFyIiwicHJlcnJfc3RyaW5nIiwicHJlcnJfYnl0ZXMiLCJwcmVycl9pbnQiLCJwcmVycl9mbG9hdCIsInByZXJyX2VuZGxpbmUiLCJwcmVycl9uZXdsaW5lIiwicmVhZF9saW5lIiwicmVhZF9pbnQiLCJyZWFkX2ludF9vcHQiLCJyZWFkX2Zsb2F0IiwicmVhZF9mbG9hdF9vcHQiLCJzdHJpbmdfb2ZfZm9ybWF0Iiwic3ltYm9sJDEiLCJzdHIyIiwic3RyMSIsImV4aXRfZnVuY3Rpb24iLCJhdF9leGl0IiwiZl95ZXRfdG9fcnVuIiwib2xkX2V4aXQiLCJuZXdfZXhpdCQwIiwibmV3X2V4aXQiLCJzdWNjZXNzIiwiZG9fYXRfZXhpdCIsImV4aXQiLCJyZXRjb2RlIiwiZmx1c2giLCJvdXRwdXRfY2hhciIsIm91dHB1dF9ieXRlIiwib3V0cHV0X2JpbmFyeV9pbnQiLCJzZWVrX291dCIsInBvc19vdXQiLCJvdXRfY2hhbm5lbF9sZW5ndGgiLCJzZXRfYmluYXJ5X21vZGVfb3V0IiwiaW5wdXRfY2hhciIsImlucHV0X2J5dGUiLCJpbnB1dF9iaW5hcnlfaW50IiwiaW5wdXRfdmFsdWUiLCJzZWVrX2luIiwicG9zX2luIiwiaW5fY2hhbm5lbF9sZW5ndGgiLCJjbG9zZV9pbiIsInNldF9iaW5hcnlfbW9kZV9pbiIsImxlZnQiLCJyaWdodCIsImlzX2xlZnQiLCJpc19yaWdodCIsImZpbmRfbGVmdCIsImZpbmRfcmlnaHQiLCJtYXBfbGVmdCIsImUiLCJtYXBfcmlnaHQiLCJtYXAiLCJ2JDAiLCJmb2xkIiwiZXF1YWwiLCJlMSIsImUyIiwidjEiLCJ2MiIsInYxJDAiLCJ2MiQwIiwiY29tcGFyZSIsImlzX2Jsb2NrIiwiZG91YmxlX2ZpZWxkIiwic2V0X2RvdWJsZV9maWVsZCIsImZpcnN0X25vbl9jb25zdGFudF9jb25zdHJ1Y3RvciIsImxhc3Rfbm9uX2NvbnN0YW50X2NvbnN0cnVjdG9yXyIsImxhenlfdGFnIiwiY2xvc3VyZV90YWciLCJvYmplY3RfdGFnIiwiaW5maXhfdGFnIiwiZm9yd2FyZF90YWciLCJub19zY2FuX3RhZyIsImFic3RyYWN0X3RhZyIsInN0cmluZ190YWciLCJkb3VibGVfdGFnIiwiZG91YmxlX2FycmF5X3RhZyIsImN1c3RvbV90YWciLCJpbnRfdGFnIiwib3V0X29mX2hlYXBfdGFnIiwidW5hbGlnbmVkX3RhZyIsImluZm8iLCJvYmoiLCJzdGFydF9lbnYiLCJvZl92YWwiLCJzbG90IiwiaWQiLCJleHRlbnNpb25fY29uc3RydWN0b3IiLCJleHRlbnNpb25fbmFtZSIsImV4dGVuc2lvbl9pZCIsIm1heF9lcGhlX2xlbmd0aCIsImNyZWF0ZSIsImxlbmd0aCIsInJhaXNlX2lmX2ludmFsaWRfb2Zmc2V0IiwibyIsIm1zZyIsImdldF9rZXkiLCJnZXRfa2V5X2NvcHkiLCJzZXRfa2V5IiwidW5zZXRfa2V5IiwiY2hlY2tfa2V5IiwiYmxpdF9rZXkiLCJvMSIsIm8yIiwicmFpc2VfdW5kZWZpbmVkIiwiZm9yY2VfbGF6eV9ibG9jayIsImJsayIsImNsb3N1cmUiLCJyZXN1bHQiLCJlJDAiLCJmb3JjZV92YWxfbGF6eV9ibG9jayIsImZvcmNlIiwibHp2IiwidCIsImZvcmNlX3ZhbCIsImZyb21fZnVuIiwiZnJvbV92YWwiLCJpc192YWwiLCJtYXBfdmFsIiwiZW1wdHkiLCJyZXR1cm4kMCIsImNvbnMiLCJuZXh0IiwiYXBwZW5kIiwic2VxMSIsInNlcTIiLCJzZXEiLCJmaWx0ZXJfbWFwIiwic2VxJDAiLCJmaWx0ZXIiLCJjb25jYXQiLCJmbGF0X21hcCIsImZvbGRfbGVmdCIsImFjYyIsImFjYyQwIiwiYWNjJDEiLCJpdGVyIiwidW5mb2xkIiwidSIsInUkMCIsImlzX2VtcHR5IiwieHMiLCJ1bmNvbnMiLCJ4cyQwIiwieHMkMSIsIml0ZXJpIiwiZm9sZF9sZWZ0aSIsImFjY3UkMSIsImZvcl9hbGwiLCJwIiwiZXhpc3RzIiwiZmluZCIsImZpbmRfbWFwIiwiaXRlcjIiLCJ5cyIsInlzJDAiLCJ5cyQxIiwiZm9sZF9sZWZ0MiIsImZvcl9hbGwyIiwiZXhpc3RzMiIsImVxIiwiY21wIiwiaW5pdF9hdXgiLCJqIiwiaW5pdCIsInJlcGVhdCIsImZvcmV2ZXIiLCJjeWNsZV9ub25lbXB0eSIsImN5Y2xlIiwiaXRlcmF0ZTEiLCJpdGVyYXRlIiwibWFwaV9hdXgiLCJtYXBpIiwidGFpbF9zY2FuIiwicyQwIiwic2NhbiIsInRha2VfYXV4IiwidGFrZSIsImRyb3AiLCJuJDAiLCJuJDEiLCJ0YWtlX3doaWxlIiwiZHJvcF93aGlsZSIsIm5vZGUiLCJncm91cCIsInRvX2xhenkiLCJmYWlsdXJlIiwibWVtb2l6ZSIsIm9uY2UiLCJhY3Rpb24iLCJ6aXAiLCJtYXAyIiwiaW50ZXJsZWF2ZSIsInNvcnRlZF9tZXJnZTEiLCJzb3J0ZWRfbWVyZ2UiLCJtYXBfZnN0IiwieHlzIiwieHlzJDAiLCJtYXBfc25kIiwidW56aXAiLCJmaWx0ZXJfbWFwX2ZpbmRfbGVmdF9tYXAiLCJmaWx0ZXJfbWFwX2ZpbmRfcmlnaHRfbWFwIiwieiIsInBhcnRpdGlvbl9tYXAiLCJwYXJ0aXRpb24iLCJwZWVsIiwieHNzIiwidHJhbnNwb3NlIiwidGFpbHMiLCJoZWFkcyIsInJlbWFpbmRlcnMiLCJ4c3MkMCIsInRhaWxzJDAiLCJoZWFkcyQwIiwibWFwX3Byb2R1Y3QiLCJwcm9kdWN0Iiwib2ZfZGlzcGVuc2VyIiwiaXQiLCJ0b19kaXNwZW5zZXIiLCJpbnRzIiwibm9uZSIsInNvbWUiLCJ2YWx1ZSIsImRlZmF1bHQkMCIsImJpbmQiLCJqb2luIiwiaXNfbm9uZSIsImlzX3NvbWUiLCJvMCIsInYwIiwidG9fcmVzdWx0IiwidG9fbGlzdCIsInRvX3NlcSIsIm9rIiwiZXJyb3IiLCJnZXRfb2siLCJnZXRfZXJyb3IiLCJtYXBfZXJyb3IiLCJpdGVyX2Vycm9yIiwiaXNfb2siLCJpc19lcnJvciIsInIwIiwicjEiLCJlMCIsInRvX29wdGlvbiIsInRvX2Zsb2F0IiwidG9fc3RyaW5nIiwiZXNjYXBlZCIsImxvd2VyY2FzZSIsInVwcGVyY2FzZSIsImxvd2VyY2FzZV9hc2NpaSIsInVwcGVyY2FzZV9hc2NpaSIsImMxIiwiYzIiLCJlcnJfbm9fcHJlZCIsImVycl9ub19zdWNjIiwibG9fYm91bmQiLCJoaV9ib3VuZCIsImJvbSIsInJlcCIsInN1Y2MiLCJwcmVkIiwiaXNfdmFsaWQiLCJvZl9pbnQiLCJpc19jaGFyIiwib2ZfY2hhciIsInRvX2NoYXIiLCJ1bnNhZmVfdG9fY2hhciIsImhhc2giLCJ1dGZfZGVjb2RlX2lzX3ZhbGlkIiwiZCIsInV0Zl9kZWNvZGVfbGVuZ3RoIiwidXRmX2RlY29kZV91Y2hhciIsInV0Zl9kZWNvZGUiLCJ1dGZfZGVjb2RlX2ludmFsaWQiLCJ1dGZfOF9ieXRlX2xlbmd0aCIsInV0Zl8xNl9ieXRlX2xlbmd0aCIsImwkMCIsIm50aCIsImwkMSIsIm50aF9vcHQiLCJyZXZfYXBwZW5kIiwibDEkMCIsImwyJDAiLCJsMSQxIiwibDIkMSIsInJldiIsInJldl9pbml0X3RocmVzaG9sZCIsImZsYXR0ZW4iLCJyZXZfbWFwIiwiZm9sZF9yaWdodCIsImEyIiwiYTEiLCJyZXZfbWFwMiIsImZvbGRfcmlnaHQyIiwibWVtIiwibWVtcSIsImFzc29jIiwiYXNzb2Nfb3B0IiwiYXNzcSIsImFzc3Ffb3B0IiwibWVtX2Fzc29jIiwibWVtX2Fzc3EiLCJyZW1vdmVfYXNzb2MiLCJwYWlyIiwicmVtb3ZlX2Fzc3EiLCJmaW5kX29wdCIsImZpbmRfYWxsIiwiZmlsdGVyaSIsImNvbmNhdF9tYXAiLCJmb2xkX2xlZnRfbWFwIiwibF9hY2N1IiwieCQwIiwieWVzIiwibm8iLCJzcGxpdCIsInJ5IiwicngiLCJjb21iaW5lIiwibWVyZ2UiLCJ0MiIsImgyIiwidDEiLCJoMSIsInN0YWJsZV9zb3J0Iiwic29ydCIsIngyIiwieDEiLCJ0bCQxIiwieDMiLCJ4MiQwIiwieDEkMCIsIm4xIiwibjIiLCJyZXZfc29ydCIsInRsJDAiLCJzb3J0X3VuaXEiLCJjJDAiLCJjJDEiLCJjJDIiLCJjJDMiLCJjJDQiLCJjJDUiLCJjJDYiLCJhY2N1JDIiLCJjb21wYXJlX2xlbmd0aHMiLCJjb21wYXJlX2xlbmd0aF93aXRoIiwiYXV4IiwidGFpbCIsIm9mX3NlcSIsImRpcmVjdCIsImRlcHRoIiwiemVybyIsIm9uZSIsIm1pbnVzX29uZSIsImxvZ25vdCIsImNvcHkiLCJvZl9zdHJpbmciLCJzdWIiLCJzdWJfc3RyaW5nIiwiZXh0ZW5kIiwiZHN0b2ZmIiwic3Jjb2ZmIiwiY3B5bGVuIiwiZmlsbCIsImJsaXQiLCJvZnMxIiwib2ZzMiIsImJsaXRfc3RyaW5nIiwic2VwIiwic2VwbGVuIiwiZHN0IiwicG9zIiwiaGQkMCIsImNhdCIsImlzX3NwYWNlIiwidHJpbSIsImFwcGx5MSIsImNhcGl0YWxpemVfYXNjaWkiLCJ1bmNhcGl0YWxpemVfYXNjaWkiLCJzdGFydHNfd2l0aCIsInByZWZpeCIsImxlbl9zIiwibGVuX3ByZSIsImVuZHNfd2l0aCIsInN1ZmZpeCIsImxlbl9zdWYiLCJkaWZmIiwiaW5kZXhfcmVjIiwibGltIiwiaSQxIiwiaW5kZXgiLCJpbmRleF9yZWNfb3B0IiwiaW5kZXhfb3B0IiwiaW5kZXhfZnJvbSIsImluZGV4X2Zyb21fb3B0IiwicmluZGV4X3JlYyIsInJpbmRleCIsInJpbmRleF9mcm9tIiwicmluZGV4X3JlY19vcHQiLCJyaW5kZXhfb3B0IiwicmluZGV4X2Zyb21fb3B0IiwiY29udGFpbnNfZnJvbSIsImNvbnRhaW5zIiwicmNvbnRhaW5zX2Zyb20iLCJzcGxpdF9vbl9jaGFyIiwiY2FwaXRhbGl6ZSIsInVuY2FwaXRhbGl6ZSIsInRvX3NlcWkiLCJuZXdfbGVuIiwibmV3X2J1ZiIsInVuc2FmZV9nZXRfdWludDE2X2xlIiwidW5zYWZlX2dldF91aW50MTZfYmUiLCJnZXRfaW50OCIsImdldF91aW50MTZfbGUiLCJnZXRfdWludDE2X2JlIiwiZ2V0X2ludDE2X25lIiwiZ2V0X2ludDE2X2xlIiwiZ2V0X2ludDE2X2JlIiwiZ2V0X2ludDMyX2xlIiwiZ2V0X2ludDMyX2JlIiwiZ2V0X2ludDY0X2xlIiwiZ2V0X2ludDY0X2JlIiwidW5zYWZlX3NldF91aW50MTZfbGUiLCJ1bnNhZmVfc2V0X3VpbnQxNl9iZSIsInNldF9pbnQxNl9sZSIsInNldF9pbnQxNl9iZSIsInNldF9pbnQzMl9sZSIsInNldF9pbnQzMl9iZSIsInNldF9pbnQ2NF9sZSIsInNldF9pbnQ2NF9iZSIsInNldF91aW50OCIsInNldF91aW50MTZfbmUiLCJkZWNfaW52YWxpZCIsImRlY19yZXQiLCJub3RfaW5feDgwX3RvX3hCRiIsIm5vdF9pbl94QTBfdG9feEJGIiwibm90X2luX3g4MF90b194OUYiLCJub3RfaW5feDkwX3RvX3hCRiIsIm5vdF9pbl94ODBfdG9feDhGIiwidXRmXzhfdWNoYXJfMyIsImIwIiwiYjEiLCJiMiIsInV0Zl84X3VjaGFyXzQiLCJiMyIsImdldF91dGZfOF91Y2hhciIsImkkNCIsImIxJDEiLCJpJDUiLCJiMiQxIiwiaSQ2IiwiaSQxMCIsImIxJDMiLCJpJDExIiwiYjIkMyIsImkkMTIiLCJiMyQxIiwiaSQ3IiwiYjEkMiIsImkkOCIsImIyJDIiLCJpJDkiLCJiMyQwIiwiaSQxMyIsImIxJDQiLCJpJDE0IiwiYjIkNCIsImkkMiIsImIxJDAiLCJpJDMiLCJiMiQwIiwiaSQxNSIsImIxJDUiLCJzZXRfdXRmXzhfdWNoYXIiLCJsYXN0JDEiLCJsYXN0JDAiLCJsYXN0IiwiaXNfdmFsaWRfdXRmXzgiLCJsYXN0JDMiLCJsYXN0JDIiLCJsYXN0JDQiLCJsYXN0JDUiLCJnZXRfdXRmXzE2YmVfdWNoYXIiLCJoaSIsImxvIiwic2V0X3V0Zl8xNmJlX3VjaGFyIiwidSQxIiwiaXNfdmFsaWRfdXRmXzE2YmUiLCJnZXRfdXRmXzE2bGVfdWNoYXIiLCJzZXRfdXRmXzE2bGVfdWNoYXIiLCJpc192YWxpZF91dGZfMTZsZSIsImJ0cyIsImJvcyIsIm9mX2J5dGVzIiwidG9fYnl0ZXMiLCJnIiwidG9fYnVmZmVyIiwiYnVmZiIsImZsYWdzIiwiaGVhZGVyX3NpemUiLCJkYXRhX3NpemUiLCJ0b3RhbF9zaXplIiwiZnJvbV9ieXRlcyIsImZyb21fc3RyaW5nIiwibWFrZV9mbG9hdCIsIm1ha2VfbWF0cml4Iiwic3giLCJzeSIsImxhIiwibGIiLCJyZXMkMCIsImxpc3RfbGVuZ3RoIiwib2ZfbGlzdCIsImlucHV0X2FycmF5IiwiZWx0Iiwib3V0cHV0X2FycmF5IiwiZWx0JDAiLCJhY2MkMiIsImEwIiwiYmkiLCJhaSIsIm5hIiwibmIiLCJtYXhzb24iLCJpMzEiLCJlJDEiLCJqJDAiLCJmYXRoZXIiLCJzcmMxb2ZzIiwic3JjMWxlbiIsInNyYzIiLCJzcmMyb2ZzIiwic3JjMmxlbiIsImRzdG9mcyIsInNyYzFyIiwic3JjMnIiLCJzMiQxIiwiczEkMSIsImkxIiwiaTIiLCJpMiQwIiwiZCQwIiwiczIkMCIsImkxJDAiLCJkJDEiLCJzMSQwIiwiaXNvcnR0byIsInNyY29mcyIsInNvcnR0byIsImlzX2Zpbml0ZSIsImlzX2luZmluaXRlIiwiaXNfbmFuIiwiZXBzaWxvbiIsIm9mX3N0cmluZ19vcHQiLCJwaSIsImlzX2ludGVnZXIiLCJtaW5fbWF4IiwibWluX251bSIsIm1heF9udW0iLCJtaW5fbWF4X251bSIsInVuc2FmZV9maWxsIiwiY2hlY2siLCJobGVuIiwic3JjIiwic29mcyIsImRvZnMiLCJoIiwibWVtX2llZWUiLCJtYXBfdG9fYXJyYXkiLCJtYXBfZnJvbV9hcnJheSIsIm1heF9pbnQkMCIsInVuc2lnbmVkX3RvX2ludCIsInVuc2lnbmVkX2NvbXBhcmUiLCJtIiwidW5zaWduZWRfZGl2IiwicSIsInVuc2lnbmVkX3JlbSIsInNpemUiLCJkdW1teV9wb3MiLCJ6ZXJvX3BvcyIsImVuZ2luZSIsInRibCIsInN0YXRlIiwibmV3X2VuZ2luZSIsImZyb21fZnVuY3Rpb24iLCJvcHQiLCJyZWFkX2Z1biIsInN0aCIsIndpdGhfcG9zaXRpb25zIiwiYXV4X2J1ZmZlciIsImxleGJ1ZiIsInJlYWQiLCJuZXdsZW4iLCJuZXdidWYiLCJmcm9tX2NoYW5uZWwiLCJzZXRfcG9zaXRpb24iLCJwb3NpdGlvbiIsInNldF9maWxlbmFtZSIsImZuYW1lIiwibGV4ZW1lIiwic3ViX2xleGVtZSIsInN1Yl9sZXhlbWVfb3B0Iiwic3ViX2xleGVtZV9jaGFyIiwic3ViX2xleGVtZV9jaGFyX29wdCIsImxleGVtZV9jaGFyIiwibGV4ZW1lX3N0YXJ0IiwibGV4ZW1lX2VuZCIsImxleGVtZV9zdGFydF9wIiwibGV4ZW1lX2VuZF9wIiwibmV3X2xpbmUiLCJsY3AiLCJmbHVzaF9pbnB1dCIsImVudiIsImdyb3dfc3RhY2tzIiwib2xkc2l6ZSIsIm5ld3NpemUiLCJuZXdfcyIsIm5ld192IiwibmV3X3N0YXJ0IiwibmV3X2VuZCIsImNsZWFyX3BhcnNlciIsImN1cnJlbnRfbG9va2FoZWFkX2Z1biIsInl5cGFyc2UiLCJ0YWJsZXMiLCJzdGFydCIsImxleGVyIiwiaW5pdF9hc3AiLCJpbml0X3NwIiwiaW5pdF9zdGFja2Jhc2UiLCJpbml0X3N0YXRlIiwiaW5pdF9jdXJyX2NoYXIiLCJpbml0X2x2YWwiLCJpbml0X2VycmZsYWciLCJjbWQiLCJhcmciLCJhcmckMCIsImV4biQwIiwiZXhuIiwiY3Vycl9jaGFyIiwidG9rIiwicGVla192YWwiLCJzeW1ib2xfc3RhcnRfcG9zIiwic3QiLCJlbiIsInN5bWJvbF9lbmRfcG9zIiwicmhzX3N0YXJ0X3BvcyIsInJoc19lbmRfcG9zIiwic3ltYm9sX3N0YXJ0Iiwic3ltYm9sX2VuZCIsInJoc19zdGFydCIsInJoc19lbmQiLCJpc19jdXJyZW50X2xvb2thaGVhZCIsInBhcnNlX2Vycm9yIiwiaGVpZ2h0IiwiaGwiLCJoJDAiLCJociIsImJhbCIsImxyIiwibHYiLCJsbCIsImxyciIsImxydiIsImxybCIsInJyIiwicnYiLCJybCIsInJsciIsInJsdiIsInJsbCIsImFkZCIsInNpbmdsZXRvbiIsImFkZF9taW5fZWxlbWVudCIsImFkZF9tYXhfZWxlbWVudCIsInJoIiwibGgiLCJtaW5fZWx0IiwibWluX2VsdF9vcHQiLCJtYXhfZWx0IiwibWF4X2VsdF9vcHQiLCJyZW1vdmVfbWluX2VsdCIsInIkMCIsInByZXMiLCJwcmVzJDAiLCJyZW1vdmUiLCJ1bmlvbiIsInIyIiwicjIkMCIsInIxJDAiLCJpbnRlciIsInNwbGl0X2JpcyIsImRpc2pvaW50IiwiY29uc19lbnVtIiwiZTIkMiIsImUxJDIiLCJlMiQwIiwiZTEkMCIsImUyJDEiLCJlMSQxIiwic3Vic2V0IiwicHYiLCJsZiIsImx0IiwicmYiLCJydCIsImNhcmRpbmFsIiwiZWxlbWVudHNfYXV4IiwiZWxlbWVudHMiLCJmaW5kX2ZpcnN0IiwidjAkMSIsInYwJDAiLCJmaW5kX2ZpcnN0X29wdCIsImZpbmRfbGFzdCIsImZpbmRfbGFzdF9vcHQiLCJ0cnlfam9pbiIsInYkMSIsIngwIiwibCQzIiwibCQ0IiwieDAkMCIsImwkNSIsIngwJDEiLCJubCIsIm1pZCIsImwkMiIsIng0IiwiYWRkX3NlcSIsInNlcV9vZl9lbnVtIiwic25vY19lbnVtIiwicmV2X3NlcV9vZl9lbnVtIiwidG9fcmV2X3NlcSIsInRvX3NlcV9mcm9tIiwibG93IiwibGQiLCJscmQiLCJyZCIsInJsZCIsImRhdGEiLCJkMCQxIiwiZDAiLCJkMCQwIiwibWluX2JpbmRpbmciLCJtaW5fYmluZGluZ19vcHQiLCJtYXhfYmluZGluZyIsIm1heF9iaW5kaW5nX29wdCIsInJlbW92ZV9taW5fYmluZGluZyIsInVwZGF0ZSIsImRhdGEkMCIsIm0kMCIsImFkZF9taW5fYmluZGluZyIsImsiLCJhZGRfbWF4X2JpbmRpbmciLCJjb25jYXRfb3Jfam9pbiIsImQxIiwiZDIiLCJkMiQwIiwiZDEkMCIsImQyJDEiLCJkMSQxIiwicHZkIiwiZnZkIiwibTEiLCJtMiIsImJpbmRpbmdzX2F1eCIsImJpbmRpbmdzIiwiY2xlYXIiLCJwdXNoIiwicG9wIiwicG9wX29wdCIsInRvcCIsInRvcF9vcHQiLCJjZWxsIiwibWF0Y2giLCJwZWVrIiwiY29udGVudCIsInBlZWtfb3B0IiwidGFrZV9vcHQiLCJjZWxsJDAiLCJxX3JlcyIsInByZXYiLCJwcmV2JDAiLCJ0cmFuc2ZlciIsInExIiwicTIiLCJjb3VudCIsImZpbGxfYnVmZiIsImdldF9kYXRhIiwiZDExIiwiYSQwIiwiYSQxIiwicGVla19kYXRhIiwianVua19kYXRhIiwianVuayIsIm5nZXRfZGF0YSIsImFsIiwibnBlZWsiLCJzdHJtIiwiZnJvbSIsIm9mX2NoYW5uZWwiLCJpYXBwIiwiaWNvbnMiLCJpc2luZyIsImxhcHAiLCJsY29ucyIsImxzaW5nIiwic2VtcHR5Iiwic2xhenkiLCJkdW1wIiwiZHVtcF9kYXRhIiwiY29udGVudHMiLCJyZXNldCIsInJlc2l6ZSIsIm1vcmUiLCJvbGRfcG9zIiwib2xkX2xlbiIsIm5ld19idWZmZXIiLCJhZGRfY2hhciIsInVjaGFyX3V0Zl84X2J5dGVfbGVuZ3RoX21heCIsInVjaGFyX3V0Zl8xNl9ieXRlX2xlbmd0aF9tYXgiLCJhZGRfdXRmXzhfdWNoYXIiLCJhZGRfdXRmXzE2YmVfdWNoYXIiLCJhZGRfdXRmXzE2bGVfdWNoYXIiLCJhZGRfc3Vic3RyaW5nIiwib2Zmc2V0IiwibmV3X3Bvc2l0aW9uIiwiYWRkX3N1YmJ5dGVzIiwiYWRkX3N0cmluZyIsImFkZF9ieXRlcyIsImFkZF9idWZmZXIiLCJicyIsImFkZF9jaGFubmVsIiwidG9fcmVhZCQxIiwiYWxyZWFkeV9yZWFkIiwidG9fcmVhZCIsImFscmVhZHlfcmVhZCQwIiwidG9fcmVhZCQwIiwib3V0cHV0X2J1ZmZlciIsImFkZF9zdWJzdGl0dXRlIiwibGltJDEiLCJwcmV2aW91cyIsInByZXZpb3VzJDAiLCJzdGFydCQwIiwib3BlbmluZyIsImxpbSQwIiwic3RvcCQwIiwiayQyIiwiY2xvc2luZyIsInN0b3AiLCJrJDAiLCJrJDEiLCJuZXh0X2kiLCJpZGVudCIsInRydW5jYXRlIiwiYWRkX2ludDgiLCJhZGRfaW50MTZfbmUiLCJhZGRfaW50MzJfbmUiLCJhZGRfaW50NjRfbmUiLCJhZGRfaW50MTZfbGUiLCJhZGRfaW50MTZfYmUiLCJhZGRfaW50MzJfbGUiLCJhZGRfaW50MzJfYmUiLCJhZGRfaW50NjRfbGUiLCJhZGRfaW50NjRfYmUiLCJzdWJfZm9ybWF0IiwiZm9ybWF0dGluZ19saXQiLCJjcmVhdGVfY2hhcl9zZXQiLCJhZGRfaW5fY2hhcl9zZXQiLCJzdHJfaW5kIiwibWFzayIsImZyZWV6ZV9jaGFyX3NldCIsInJldl9jaGFyX3NldCIsImNoYXJfc2V0JDAiLCJpc19pbl9jaGFyX3NldCIsInBhZF9vZl9wYWRfb3B0IiwicGFkX29wdCIsIndpZHRoIiwicGFyYW1fZm9ybWF0X29mX2lnbm9yZWRfZm9ybWF0IiwiZm10IiwicGFkX29wdCQwIiwicGFkX29wdCQxIiwicGFkX29wdCQyIiwicGFkX29wdCQzIiwicGFkX29wdCQ0IiwicHJlY19vcHQiLCJwYWRfb3B0JDUiLCJuZGVjIiwicGFkX29wdCQ2IiwicGFkX29wdCQ3IiwicGFkX29wdCQ4IiwiZGVmYXVsdF9mbG9hdF9wcmVjaXNpb24iLCJidWZmZXJfY3JlYXRlIiwiaW5pdF9zaXplIiwiYnVmZmVyX2NoZWNrX3NpemUiLCJvdmVyaGVhZCIsIm1pbl9sZW4iLCJuZXdfc3RyIiwiYnVmZmVyX2FkZF9jaGFyIiwiYnVmZmVyX2FkZF9zdHJpbmciLCJzdHJfbGVuIiwiYnVmZmVyX2NvbnRlbnRzIiwiY2hhcl9vZl9pY29udiIsImNoYXJfb2ZfZmNvbnYiLCJjRiIsImJwcmludF9wYWR0eSIsInBhZHR5IiwiYnByaW50X2lnbm9yZWRfZmxhZyIsImlnbl9mbGFnIiwiYnByaW50X3BhZF9vcHQiLCJicHJpbnRfcGFkZGluZyIsInBhZHR5JDAiLCJicHJpbnRfcHJlY2lzaW9uIiwiYnByaW50X2ljb252X2ZsYWciLCJicHJpbnRfYWx0aW50X2ZtdCIsImJwcmludF9mY29udl9mbGFnIiwic3RyaW5nX29mX2Zvcm1hdHRpbmdfbGl0Iiwic3RyJDAiLCJicHJpbnRfY2hhcl9saXRlcmFsIiwiYnByaW50X3N0cmluZ19saXRlcmFsIiwiYnByaW50X2ZtdHR5IiwiZm10dHkkMSIsImZtdHR5JDIiLCJmbXR0eSQzIiwiZm10dHkkNCIsImZtdHR5JDUiLCJmbXR0eSQ2IiwiZm10dHkkNyIsImZtdHR5JDgiLCJmbXR0eSQ5Iiwic3ViX2ZtdHR5IiwiZm10dHkkMTAiLCJzdWJfZm10dHkkMCIsImZtdHR5JDExIiwiZm10dHkkMTIiLCJmbXR0eSQxMyIsImZtdHR5JDE0IiwiZm10dHkkMTUiLCJpbnRfb2ZfY3VzdG9tX2FyaXR5Iiwic3RyaW5nX29mX2ZtdCIsImZtdGl0ZXIiLCJmbXQkMCIsImlnbl9mbGFnJDAiLCJzdHIkMSIsImlzX2Fsb25lJDAiLCJpc19hbG9uZSIsImFmdGVyIiwiYmVmb3JlIiwiaiQxIiwiZm10JDEiLCJzeW1tIiwiZm10dHlfcmVsX2RldCIsImRlIiwiZWQiLCJhZiIsImZhIiwiZGUkMCIsImVkJDAiLCJhZiQwIiwiZmEkMCIsImRlJDEiLCJlZCQxIiwiYWYkMSIsImZhJDEiLCJkZSQyIiwiZWQkMiIsImFmJDIiLCJmYSQyIiwiZGUkMyIsImVkJDMiLCJhZiQzIiwiZmEkMyIsImRlJDQiLCJlZCQ0IiwiYWYkNCIsImZhJDQiLCJkZSQ1IiwiZWQkNSIsImFmJDUiLCJmYSQ1IiwiZGUkNiIsImVkJDYiLCJhZiQ2IiwiZmEkNiIsImRlJDciLCJlZCQ3IiwiYWYkNyIsImZhJDciLCJkZSQ4IiwiZWQkOCIsImFmJDgiLCJmYSQ4IiwidHJhbnMiLCJqZCIsImRqIiwiZ2EiLCJhZyIsImRlJDkiLCJlZCQ5IiwiYWYkOSIsImZhJDkiLCJkZSQxMCIsImVkJDEwIiwiYWYkMTAiLCJmYSQxMCIsImRlJDExIiwiZWQkMTEiLCJhZiQxMSIsImZhJDExIiwiZGUkMTIiLCJlZCQxMiIsImFmJDEyIiwiZmEkMTIiLCJkZSQxMyIsImVkJDEzIiwiYWYkMTMiLCJmYSQxMyIsInJlc3QxIiwicmVzdDIiLCJyZXN0MSQwIiwicmVzdDIkMCIsInJlc3QxJDEiLCJyZXN0MiQxIiwicmVzdDEkMiIsInJlc3QyJDIiLCJyZXN0MSQzIiwicmVzdDIkMyIsInJlc3QxJDQiLCJyZXN0MiQ0IiwicmVzdDEkNSIsInJlc3QyJDUiLCJyZXN0MSQ2IiwicmVzdDIkNiIsInJlc3QxJDciLCJ0eTEkMCIsInJlc3QyJDciLCJ0eTIkMCIsInJlc3QxJDgiLCJ0eTEyIiwidHkxMSIsInJlc3QyJDgiLCJ0eTIyIiwidHkyMSIsImY0IiwiZjIiLCJyZXN0MSQ5IiwicmVzdDIkOSIsInJlc3QxJDEwIiwicmVzdDIkMTAiLCJyZXN0MSQxMSIsInJlc3QyJDExIiwicmVzdDEkMTIiLCJyZXN0MiQxMiIsInJlc3QxJDEzIiwicmVzdDIkMTMiLCJmbXR0eV9vZl9wYWRkaW5nX2ZtdHR5IiwiZm10dHlfb2ZfY3VzdG9tIiwiYXJpdHkkMCIsImZtdHR5X29mX2ZtdCIsInR5X3Jlc3QiLCJwcmVjX3R5IiwiZm10dHlfb2ZfcHJlY2lzaW9uX2ZtdHR5IiwidHlfcmVzdCQwIiwicHJlY190eSQwIiwidHlfcmVzdCQxIiwicHJlY190eSQxIiwidHlfcmVzdCQyIiwicHJlY190eSQyIiwidHlfcmVzdCQzIiwicHJlY190eSQzIiwidHkkMCIsImZvcm1hdHRpbmdfZ2VuIiwidHlwZV9wYWRkaW5nIiwidyIsInR5cGVfcGFkcHJlYyIsInR5cGVfZm9ybWF0IiwidHlwZV9mb3JtYXRfZ2VuIiwidHlwZV9pZ25vcmVkX3BhcmFtX29uZSIsImZtdHR5MCIsImZtdHR5X3Jlc3QiLCJmbXRfcmVzdCIsImZtdHR5X3Jlc3QkMCIsImZtdF9yZXN0JDAiLCJmbXRfcmVzdCQxIiwiZm10dHlfcmVzdCQxIiwiZm10JDIiLCJmbXRfcmVzdCQyIiwiZm10dHlfcmVzdCQyIiwiZm10JDMiLCJmbXRfcmVzdCQzIiwiZm10dHlfcmVzdCQzIiwiZm10JDQiLCJmbXRfcmVzdCQ0IiwiZm10dHlfcmVzdCQ0IiwiZm10JDUiLCJmbXRfcmVzdCQ1IiwiZm10dHlfcmVzdCQ1IiwicHJlYyQ0IiwiZm10JDYiLCJmbXRfcmVzdCQ2IiwicHJlYyQ1IiwicGFkJDkiLCJwYWQkMTAiLCJmbXR0eV9yZXN0JDYiLCJwcmVjJDYiLCJmbXQkNyIsImZtdF9yZXN0JDciLCJwcmVjJDciLCJwYWQkMTEiLCJwYWQkMTIiLCJmbXR0eV9yZXN0JDciLCJwcmVjJDgiLCJmbXQkOCIsImZtdF9yZXN0JDgiLCJwYWQkMTMiLCJwYWQkMTQiLCJmbXR0eV9yZXN0JDgiLCJmbXQkOSIsImZtdF9yZXN0JDkiLCJmbXQkMTAiLCJmbXRfcmVzdCQxMCIsImZtdCQxMSIsImZtdF9yZXN0JDExIiwiZm10JDEyIiwiZm10dHlfcmVzdCQ5IiwiZm10X3Jlc3QkMTIiLCJmbXQkMTMiLCJmbXR0eV9yZXN0JDEwIiwic3ViX2ZtdHR5MSIsImZtdF9yZXN0JDEzIiwic3ViX2ZtdHR5JDEiLCJmbXQkMTQiLCJmbXR0eV9yZXN0JDExIiwiZm10X3Jlc3QkMTQiLCJmbXQkMTUiLCJmbXR0eV9yZXN0JDEyIiwiZm10X3Jlc3QkMTUiLCJmbXQkMTYiLCJmbXRfcmVzdCQxNiIsImZtdHR5JDE2IiwiZm10JDE3IiwiZm10X3Jlc3QkMTciLCJmbXR0eTMiLCJmbXQzIiwiZm10MSQwIiwiZm10dHkyJDAiLCJmbXQyJDAiLCJmbXR0eTMkMCIsImZtdDMkMCIsImZtdHR5X3Jlc3QkMTMiLCJmbXRfcmVzdCQxOCIsImZtdHR5JDE3IiwiZm10JDE4IiwiZm10dHlfcmVzdCQxNCIsImZtdF9yZXN0JDE5IiwiZm10dHkkMTgiLCJmbXQkMTkiLCJmbXR0eV9yZXN0JDE1IiwiZm10X3Jlc3QkMjAiLCJmbXR0eSQxOSIsImZtdCQyMCIsInN1Yl9mbXR0eSQyIiwic3ViX2ZtdHR5JDMiLCJ0eXBlX2lnbm9yZWRfZm9ybWF0X3N1YnN0aXR1dGkiLCJmbXR0eSQyMSIsImZtdCQyMiIsInN1Yl9mbXR0eSQ0IiwiZm10dHlfcmVzdCQxNiIsImZtdHR5JDIwIiwiZm10JDIxIiwic3ViX2ZtdHR5X3Jlc3QiLCJzdWJfZm10dHlfcmVzdCQwIiwic3ViX2ZtdHR5X3Jlc3QkMSIsInN1Yl9mbXR0eV9yZXN0JDIiLCJzdWJfZm10dHlfcmVzdCQzIiwic3ViX2ZtdHR5X3Jlc3QkNCIsInN1Yl9mbXR0eV9yZXN0JDUiLCJzdWJfZm10dHlfcmVzdCQ2Iiwic3ViX2ZtdHR5X3Jlc3QkNyIsInN1Yl9mbXR0eV9yZXN0JDgiLCJzdWJfZm10dHlfcmVzdCQ5Iiwic3ViX2ZtdHR5X3Jlc3QkMTAiLCJzdWJfZm10dHlfcmVzdCQxMSIsInN1Yl9mbXR0eV9yZXN0JDEyIiwic3ViX2ZtdHR5X3Jlc3QkMTMiLCJzdWJfZm10dHlfcmVzdCQxNCIsInN1YjJfZm10dHkiLCJzdWJfZm10dHlfcmVzdCQxNSIsInN1YjJfZm10dHkkMCIsInN1Yl9mbXR0eV9yZXN0JDE2Iiwic3ViMl9mbXR0eSQxIiwic3ViMV9mbXR0eSIsInN1Yl9mbXR0eV9yZXN0JDE3Iiwic3ViMl9mbXR0eSQyIiwic3ViMV9mbXR0eSQwIiwic3ViX2ZtdHR5X3Jlc3QkMTgiLCJzdWJfZm10dHlfcmVzdCQxOSIsInN1Yl9mbXR0eV9yZXN0JDIwIiwic3ViX2ZtdHR5X3Jlc3QkMjEiLCJzdWJfZm10dHlfcmVzdCQyMiIsInN1Yl9mbXR0eV9yZXN0JDIzIiwic3ViX2ZtdHR5X3Jlc3QkMjQiLCJzdWJfZm10dHlfcmVzdCQyNSIsInN1Yl9mbXR0eV9yZXN0JDI2IiwicmVjYXN0IiwiZml4X3BhZGRpbmciLCJ3aWR0aCQwIiwiZml4X2ludF9wcmVjaXNpb24iLCJyZXMkMSIsInN0cmluZ190b19jYW1sX3N0cmluZyIsImZvcm1hdF9vZl9mY29udiIsInN5bWIiLCJ0cmFuc2Zvcm1faW50X2FsdCIsImRpZ2l0cyIsInB1dCIsImNvbnZlcnRfaW50IiwiY29udmVydF9pbnQzMiIsImNvbnZlcnRfbmF0aXZlaW50IiwiY29udmVydF9pbnQ2NCIsImNvbnZlcnRfZmxvYXQiLCJoZXgiLCJzaWduIiwiY2FtbF9zcGVjaWFsX3ZhbCIsInN0cmluZ19vZl9mbXR0eSIsIm1ha2VfaW50X3BhZGRpbmdfcHJlY2lzaW9uIiwibWFrZV9wcmludGYiLCJwJDAiLCJwJDEiLCJtYWtlX3BhZGRpbmciLCJuZXdfYWNjIiwibWFrZV9wcmludGYkMCIsImFjYyQzIiwiYWNjJDQiLCJrJDMiLCJrYWNjIiwiayQ0IiwibWFrZV9pZ25vcmVkX3BhcmFtJDAiLCJtYWtlX2N1c3RvbSQwIiwibWFrZV9pbnZhbGlkX2FyZyIsIm1ha2VfZnJvbV9mbXR0eSQwIiwibWFrZV9mcm9tX2ZtdHR5IiwibWFrZV9jdXN0b20iLCJtYWtlX2lnbm9yZWRfcGFyYW0iLCJmbl9vZl9wYWRkaW5nX3ByZWNpc2lvbiIsIm1ha2VfaXByaW50ZiIsIm1ha2VfaXByaW50ZiQwIiwia29jIiwicmVzdCQyNCIsInJlc3QkMjUiLCJyZXN0JDI2IiwicmVzdCQyNyIsInJlc3QkMjgiLCJyZXN0JDI5IiwiZm5fb2ZfY3VzdG9tX2FyaXR5JDAiLCJmbl9vZl9jdXN0b21fYXJpdHkiLCJvdXRwdXRfYWNjIiwicCQzIiwicCQ0IiwicCQ1IiwicCQyIiwiYnVmcHV0X2FjYyIsInN0cnB1dF9hY2MiLCJmYWlsd2l0aF9tZXNzYWdlIiwib3Blbl9ib3hfb2Zfc3RyaW5nIiwiaW52YWxpZF9ib3giLCJwYXJzZV9zcGFjZXMiLCJ3c3RhcnQiLCJ3ZW5kIiwiYm94X25hbWUiLCJuc3RhcnQiLCJuZW5kIiwiaW5kZW50IiwiZXhwX2VuZCIsImJveF90eXBlIiwibWFrZV9wYWRkaW5nX2ZtdF9lYmIiLCJtYWtlX3BhZHByZWNfZm10X2ViYiIsImZtdF9lYmJfb2Zfc3RyaW5nIiwibGVnYWN5X2JlaGF2aW9yIiwiZmxhZyIsImxlZ2FjeV9iZWhhdmlvciQwIiwiaW52YWxpZF9mb3JtYXRfbWVzc2FnZSIsInVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCIsImVuZF9pbmQiLCJpbnZhbGlkX2Zvcm1hdF93aXRob3V0IiwiZXhwZWN0ZWRfY2hhcmFjdGVyIiwiZXhwZWN0ZWQiLCJhZGRfbGl0ZXJhbCIsImxpdF9zdGFydCIsInBhcnNlIiwic3RyX2luZCQyIiwicGFyc2VfZmxhZ3MiLCJzdHJfaW5kJDEiLCJzdHJfaW5kJDAiLCJwYXJzZV90YWciLCJzdHJfaW5kJDMiLCJzdHJfaW5kXzEiLCJwYXJzZV9pbnRlZ2VyIiwic3RyX2luZF8yIiwic3RyX2luZF8zIiwiZm9ybWF0dGluZ19saXQkMCIsIm5leHRfaW5kIiwic3RyX2luZF80Iiwic3RyX2luZF81Iiwic3RyX2luZCQ0Iiwic3RyX2luZF8xJDAiLCJzdHJfaW5kXzIkMCIsInN0cl9pbmRfMyQwIiwicyQxIiwiZm9ybWF0dGluZ19saXQkMSIsIm5leHRfaW5kJDAiLCJwYXJzZV9jb252ZXJzaW9uIiwicGN0X2luZCIsInBsdXMiLCJzcGFjZSIsInBhZHByZWMiLCJwbHVzX3VzZWQiLCJoYXNoX3VzZWQiLCJzcGFjZV91c2VkIiwiaWduX3VzZWQiLCJwYWRfdXNlZCIsInByZWNfdXNlZCIsImdldF9wbHVzIiwiZ2V0X2hhc2giLCJnZXRfc3BhY2UiLCJnZXRfaWduIiwiZ2V0X3BhZCIsImdldF9wcmVjIiwiZ2V0X3BhZHByZWMiLCJnZXRfaW50X3BhZCIsImluY29tcGF0aWJsZV9mbGFnIiwiY2hlY2tfbm9fMCIsIm9wdF9vZl9wYWQiLCJ3aWR0aCQxIiwiZ2V0X3BhZF9vcHQiLCJnZXRfcGFkcHJlY19vcHQiLCJmbXRfcmVzdWx0Iiwic3ViX2VuZCIsInNlYXJjaF9zdWJmb3JtYXRfZW5kIiwic3ViX2ZtdCIsImlnbm9yZWQkMiIsImNvdW50ZXIkMCIsImlnbm9yZWQkNiIsImlnbm9yZWQkNyIsImFkZF9yYW5nZSIsImZhaWxfc2luZ2xlX3BlcmNlbnQiLCJwYXJzZV9jaGFyX3NldF9jb250ZW50IiwicGFyc2VfY2hhcl9zZXRfYWZ0ZXJfY2hhciQwIiwicGFyc2VfY2hhcl9zZXRfYWZ0ZXJfY2hhciIsInJldmVyc2UiLCJjaGFyX3NldCQxIiwiaWdub3JlZCQ5IiwiY2hhcl9mb3JtYXQiLCJmbXRfcmVzdCQyMSIsImZtdF9yZXN0JDIyIiwiZm10X3Jlc3QkMjMiLCJpZ25vcmVkJDEwIiwiZm10X3Jlc3QkMjQiLCJmbXRfcmVzdCQyNSIsInN1Yl9lbmQkMCIsInN1Yl9mbXQkMCIsImZtdF9yZXN0JDI2IiwiaWdub3JlZCQxMSIsImlnbm9yZWQkMyIsInN5bWIkMCIsImlnbm9yZWQkNSIsImNvbXB1dGVfaW50X2NvbnYiLCJpZ25vcmVkJDgiLCJzcGFjZSQxIiwiaGFzaCQxIiwicGx1cyQyIiwia2luZCIsImlnbm9yZWQkNCIsImlnbm9yZWQiLCJpZ25vcmVkJDAiLCJpZ25vcmVkJDEiLCJwbHVzJDAiLCJoYXNoJDAiLCJzcGFjZSQwIiwicGx1cyQxIiwiaWduJDAiLCJwYXJzZV9hZnRlcl9wcmVjaXNpb24iLCJtaW51cyIsInBhcnNlX2NvbnYiLCJwYXJzZV9hZnRlcl9wYWRkaW5nIiwicGFyc2VfbGl0ZXJhbCIsInBhcnNlX3Bvc2l0aXZlIiwibmV3X2luZCIsIm1pbnVzJDAiLCJzZXRfZmxhZyIsInN0cl9pbmQkNSIsInplcm8kMCIsImlzX29wZW5fdGFnIiwiaW5kIiwic3ViX3N0ciIsInN1Yl9mb3JtYXQkMCIsImZvcm1hdHRpbmckMCIsImZvcm1hdHRpbmciLCJzdHJfaW5kJDciLCJzdWJfZW5kJDEiLCJzdWJfZW5kJDIiLCJzdHJfaW5kJDYiLCJvcHRpb24iLCJzdWJmbXQiLCJmb3JtYXRfb2Zfc3RyaW5nX2ZtdHR5IiwiZm9ybWF0X29mX3N0cmluZ19mb3JtYXQiLCJrZnByaW50ZiIsImticHJpbnRmIiwiaWtmcHJpbnRmIiwiZnByaW50ZiIsImJwcmludGYiLCJpZnByaW50ZiIsImlicHJpbnRmIiwicHJpbnRmIiwiZXByaW50ZiIsImtzcHJpbnRmIiwic3ByaW50ZiIsImFzc29jMyIsInkyIiwieTEiLCJtYWtlX3N5bWxpc3QiLCJoZWxwX2FjdGlvbiIsImFkZF9oZWxwIiwic3BlY2xpc3QiLCJhZGQxIiwiYWRkMiIsInVzYWdlX2IiLCJlcnJtc2ciLCJkb2MiLCJzcGVjIiwia2V5IiwidXNhZ2Vfc3RyaW5nIiwidXNhZ2UiLCJjdXJyZW50IiwicGFyc2VfYW5kX2V4cGFuZF9hcmd2X2R5bmFtaWNfIiwiYWxsb3dfZXhwYW5kIiwiYXJndiIsImFub25mdW4iLCJpbml0cG9zIiwiY29udmVydF9lcnJvciIsInByb2duYW1lIiwiZm9sbG93JDAiLCJrZXl3b3JkIiwibm9fYXJnJDAiLCJmb2xsb3ciLCJub19hcmciLCJnZXRfYXJnJDAiLCJnZXRfYXJnIiwiY29uc3VtZV9hcmckMCIsImNvbnN1bWVfYXJnIiwidHJlYXRfYWN0aW9uJDAiLCJ0cmVhdF9hY3Rpb24iLCJmJDAiLCJmJDEiLCJyJDEiLCJmJDIiLCJhcmckMSIsInIkMiIsImFyZyQyIiwiZiQzIiwiYXJnJDMiLCJ4JDEiLCJyJDMiLCJhcmckNCIsIngkMiIsInNwZWNzIiwiZiQ0IiwiYXJnJDUiLCJmJDUiLCJmJDYiLCJmJDciLCJhcmckNiIsIm5ld2FyZyIsInBhcnNlX2FuZF9leHBhbmRfYXJndl9keW5hbWljIiwicGFyc2VfYXJndl9keW5hbWljIiwiY3VycmVudCQwIiwicGFyc2VfYXJndiIsIm1zZyQwIiwibXNnJDEiLCJwYXJzZV9keW5hbWljIiwicGFyc2VfZXhwYW5kIiwic2Vjb25kX3dvcmQiLCJsb29wIiwibWF4X2FyZ19sZW4iLCJrd2QiLCJyZXBsYWNlX2xlYWRpbmdfdGFiIiwiYWxpZ24iLCJsaW1pdCIsImNvbXBsZXRlZCIsImtzZCIsImN1dGNvbCQwIiwic3BhY2VzJDAiLCJzcGVjJDAiLCJjdXRjb2wiLCJrd2RfbGVuIiwic3BhY2VzIiwicmVhZF9hdXgiLCJmaWxlIiwid29yZHMiLCJzdGFzaCIsIndvcmQiLCJ3b3JkJDAiLCJyZWFkX2FyZyIsInJlYWRfYXJnMCIsIndyaXRlX2F1eCIsImFyZ3MiLCJ3cml0ZV9hcmciLCJ3cml0ZV9hcmcwIiwibG9jZm10IiwicHJpbnRlcnMiLCJmaWVsZCIsIm90aGVyX2ZpZWxkcyIsInVzZV9wcmludGVycyIsInRvX3N0cmluZ19kZWZhdWx0IiwiY2hhciQwIiwibGluZSIsImNoYXIkMSIsImxpbmUkMCIsImZpbGUkMCIsImNoYXIkMiIsImxpbmUkMSIsImZpbGUkMSIsImNvbnN0cnVjdG9yIiwicHJpbnQiLCJmY3QiLCJjYXRjaCQwIiwicmF3X2JhY2t0cmFjZV9lbnRyaWVzIiwiYnQiLCJjb252ZXJ0X3Jhd19iYWNrdHJhY2UiLCJmb3JtYXRfYmFja3RyYWNlX3Nsb3QiLCJpc19yYWlzZSIsInByaW50X3Jhd19iYWNrdHJhY2UiLCJvdXRjaGFuIiwicmF3X2JhY2t0cmFjZSIsImJhY2t0cmFjZSIsInByaW50X2JhY2t0cmFjZSIsInJhd19iYWNrdHJhY2VfdG9fc3RyaW5nIiwiYmFja3RyYWNlX3Nsb3RfaXNfcmFpc2UiLCJwYXJhbSIsImJhY2t0cmFjZV9zbG90X2lzX2lubGluZSIsImJhY2t0cmFjZV9zbG90X2xvY2F0aW9uIiwiYmFja3RyYWNlX3Nsb3RfZGVmbmFtZSIsImJhY2t0cmFjZV9zbG90cyIsImJhY2t0cmFjZV9zbG90c19vZl9yYXdfZW50cnkiLCJlbnRyeSIsInJhd19iYWNrdHJhY2VfbGVuZ3RoIiwiZ2V0X2JhY2t0cmFjZSIsInJlZ2lzdGVyX3ByaW50ZXIiLCJmbiIsIm9sZF9wcmludGVycyIsIm5ld19wcmludGVycyIsImV4bl9zbG90IiwiZXhuX3Nsb3RfaWQiLCJleG5fc2xvdF9uYW1lIiwiZXJyb3JzIiwiZGVmYXVsdF91bmNhdWdodF9leGNlcHRpb25faGFuIiwic3RhdHVzIiwidW5jYXVnaHRfZXhjZXB0aW9uX2hhbmRsZXIiLCJzZXRfdW5jYXVnaHRfZXhjZXB0aW9uX2hhbmRsZXIiLCJlbXB0eV9iYWNrdHJhY2UiLCJoYW5kbGVfdW5jYXVnaHRfZXhjZXB0aW9uIiwiZGVidWdnZXJfaW5fdXNlIiwiZXhuJDEiLCJyYXdfYmFja3RyYWNlJDAiLCJjb25zdCQwIiwiZmxpcCIsIm5lZ2F0ZSIsInByb3RlY3QiLCJmaW5hbGx5JDAiLCJ3b3JrIiwiZmluYWxseV9ub19leG4iLCJ3b3JrX2V4biQwIiwid29ya19leG4iLCJ3b3JrX2J0IiwicHJpbnRfc3RhdCIsImFsbG9jYXRlZF9ieXRlcyIsIm1hIiwicHJvIiwibWkiLCJjcmVhdGVfYWxhcm0iLCJkZWxldGVfYWxhcm0iLCJudWxsX3RyYWNrZXIiLCJzYW1wbGluZ19yYXRlIiwidHJhY2tlciIsImNhbGxzdGFja19zaXplIiwic3RyaW5nIiwiYnl0ZXMiLCJzdWJzdHJpbmciLCJzdWJieXRlcyIsImZpbGVuYW1lIiwiZGlnZXN0IiwiY2hhcl9oZXgiLCJ0b19oZXgiLCJmcm9tX2hleCIsImRpZ2l0IiwibmV3X3N0YXRlIiwiYXNzaWduIiwic3QxIiwic3QyIiwiZnVsbF9pbml0Iiwic2VlZCIsInNlZWQkMCIsIm1ha2Vfc2VsZl9pbml0IiwiYml0cyIsImN1cnZhbCIsIm5ld3ZhbCIsIm5ld3ZhbDMwIiwiaW50YXV4IiwiaW50JDAiLCJib3VuZCIsImZ1bGxfaW50IiwibWF4X2ludF8zMiIsImJwb3MiLCJpbnQzMiIsImludDY0IiwibmF0aXZlaW50IiwiZmxvYXQkMCIsImJvb2wiLCJiaXRzMzIiLCJiaXRzNjQiLCJuYXRpdmViaXRzIiwiYml0cyQwIiwiaW50JDEiLCJmdWxsX2ludCQwIiwiaW50MzIkMCIsIm5hdGl2ZWludCQwIiwiaW50NjQkMCIsImZsb2F0JDEiLCJzY2FsZSIsImJvb2wkMCIsImJpdHMzMiQwIiwiYml0czY0JDAiLCJuYXRpdmViaXRzJDAiLCJmdWxsX2luaXQkMCIsInNlbGZfaW5pdCIsImdldF9zdGF0ZSIsInNldF9zdGF0ZSIsIm9uZ29pbmdfdHJhdmVyc2FsIiwiZmxpcF9vbmdvaW5nX3RyYXZlcnNhbCIsInBhcmFtcyIsInJhbmRvbWl6ZWRfZGVmYXVsdCIsInJhbmRvbWl6ZWQiLCJyYW5kb21pemUiLCJpc19yYW5kb21pemVkIiwicHJuZyIsInBvd2VyXzJfYWJvdmUiLCJpbml0aWFsX3NpemUiLCJyYW5kb20iLCJjb3B5X2J1Y2tldGxpc3QiLCJrZXkkMCIsIm5leHQkMCIsImluc2VydF9hbGxfYnVja2V0cyIsImluZGV4ZnVuIiwiaW5wbGFjZSIsIm9kYXRhIiwibmRhdGEiLCJuc2l6ZSIsIm5kYXRhX3RhaWwiLCJuaWR4IiwibWF0Y2gkMCIsIm9zaXplIiwib2xkX3RyYXYiLCJmaWx0ZXJfbWFwX2lucGxhY2UiLCJiJDAiLCJidWNrZXRfbGVuZ3RoIiwic3RhdHMiLCJtYmwiLCJoaXN0byIsInRibF9kYXRhIiwiYnVjayIsImJ1Y2skMCIsImJ1Y2skMSIsInRvX3NlcV9rZXlzIiwidG9fc2VxX3ZhbHVlcyIsImtleV9pbmRleCIsImJ1Y2tldCIsImsxIiwibmV4dDEiLCJrMiIsIm5leHQyIiwiazMiLCJkMyIsIm5leHQzIiwiZmluZF9pbl9idWNrZXQiLCJyZXBsYWNlIiwicmVwbGFjZV9zZXEiLCJzeiIsImhhc2hfcGFyYW0iLCJzZWVkZWRfaGFzaCIsInJlYnVpbGQiLCJnZXRfY29weSIsImFyIiwiZW1wdHlidWNrZXQiLCJnZXRfaW5kZXgiLCJjcmVhdGUkMCIsInN6JDAiLCJzeiQxIiwiY291bnRfYnVja2V0IiwiYWRkX2F1eCIsInNldHRlciIsImJ1Y2tldCQwIiwiaGFzaGVzIiwibmV3c3oiLCJuZXdidWNrZXQkMCIsIm5ld2hhc2hlcyIsImhidWNrZXQiLCJwcmV2X2xlbiIsImxpdmUiLCJqJDIiLCJuZXdidWNrZXQiLCJvbGRsZW4iLCJuZXd0Iiwib2IiLCJvaSIsIm9oIiwic2V0dGVyJDAiLCJuaSIsImZpbmRfb3IiLCJpZm5vdGZvdW5kIiwiZmluZF9zaGFkb3ciLCJpZmZvdW5kIiwibGVucyIsInRvdGxlbiIsInVua25vd24iLCJwcF9lbnF1ZXVlIiwidG9rZW4iLCJwcF9pbmZpbml0eSIsInBwX291dHB1dF9zdHJpbmciLCJwcF9vdXRwdXRfbmV3bGluZSIsImZvcm1hdF9wcF90ZXh0IiwidGV4dCIsImZvcm1hdF9zdHJpbmciLCJicmVha19uZXdfbGluZSIsInJlYWxfaW5kZW50IiwiYnJlYWtfbGluZSIsImJyZWFrX3NhbWVfbGluZSIsImZvcm1hdF9wcF90b2tlbiIsInNpemUkMCIsInRhYnMiLCJhZGRfdGFiIiwibHMiLCJ0YWdfbmFtZSIsIm1hcmtlciIsImJyZWFrcyIsImZpdHMiLCJvZmYiLCJib3hfdHlwZSQwIiwib2ZmJDAiLCJpbnNlcnRpb25fcG9pbnQiLCJ0YWJzJDAiLCJmaXJzdCIsImhlYWQiLCJ0YWIiLCJvZmYkMSIsImluc2VydGlvbl9wb2ludCQwIiwid2lkdGgkMiIsImJveF90eXBlJDEiLCJ0Ym94IiwidGFnX25hbWUkMCIsIm1hcmtlciQwIiwiYWR2YW5jZV9sZWZ0IiwicGVuZGluZ19jb3VudCIsImVucXVldWVfYWR2YW5jZSIsImVucXVldWVfc3RyaW5nX2FzIiwiaW5pdGlhbGl6ZV9zY2FuX3N0YWNrIiwic3RhY2siLCJxdWV1ZV9lbGVtIiwic2V0X3NpemUiLCJsZWZ0X3RvdGFsIiwic2Nhbl9wdXNoIiwiZWxlbSIsInBwX29wZW5fYm94X2dlbiIsImJyX3R5IiwicHBfY2xvc2VfYm94IiwicHBfb3Blbl9zdGFnIiwicHBfY2xvc2Vfc3RhZyIsInBwX29wZW5fdGFnIiwicHBfY2xvc2VfdGFnIiwicHBfc2V0X3ByaW50X3RhZ3MiLCJwcF9zZXRfbWFya190YWdzIiwicHBfZ2V0X3ByaW50X3RhZ3MiLCJwcF9nZXRfbWFya190YWdzIiwicHBfc2V0X3RhZ3MiLCJwcF9nZXRfZm9ybWF0dGVyX3N0YWdfZnVuY3Rpb24iLCJwcF9zZXRfZm9ybWF0dGVyX3N0YWdfZnVuY3Rpb24iLCJwY3QiLCJwb3QiLCJtY3QiLCJtb3QiLCJwcF9yaW5pdCIsInBwX2ZsdXNoX3F1ZXVlIiwicHBfcHJpbnRfYXNfc2l6ZSIsInBwX3ByaW50X2FzIiwiaXNpemUiLCJwcF9wcmludF9zdHJpbmciLCJwcF9wcmludF9ieXRlcyIsInBwX3ByaW50X2ludCIsInBwX3ByaW50X2Zsb2F0IiwicHBfcHJpbnRfYm9vbCIsInBwX3ByaW50X2NoYXIiLCJwcF9vcGVuX2hib3giLCJwcF9vcGVuX3Zib3giLCJwcF9vcGVuX2h2Ym94IiwicHBfb3Blbl9ob3Zib3giLCJwcF9vcGVuX2JveCIsInBwX3ByaW50X25ld2xpbmUiLCJwcF9wcmludF9mbHVzaCIsInBwX2ZvcmNlX25ld2xpbmUiLCJwcF9wcmludF9pZl9uZXdsaW5lIiwicHBfcHJpbnRfY3VzdG9tX2JyZWFrIiwicHBfcHJpbnRfYnJlYWsiLCJwcF9wcmludF9zcGFjZSIsInBwX3ByaW50X2N1dCIsInBwX29wZW5fdGJveCIsInBwX2Nsb3NlX3Rib3giLCJwcF9wcmludF90YnJlYWsiLCJwcF9wcmludF90YWIiLCJwcF9zZXRfdGFiIiwicHBfc2V0X21heF9ib3hlcyIsInBwX2dldF9tYXhfYm94ZXMiLCJwcF9vdmVyX21heF9ib3hlcyIsInBwX3NldF9lbGxpcHNpc190ZXh0IiwicHBfZ2V0X2VsbGlwc2lzX3RleHQiLCJwcF9saW1pdCIsInBwX3NldF9tYXhfaW5kZW50IiwicHBfZ2V0X21heF9pbmRlbnQiLCJwcF9zZXRfbWFyZ2luIiwibmV3X21heF9pbmRlbnQiLCJ2YWxpZGF0ZV9nZW9tZXRyeSIsIm1hcmdpbiIsIm1heF9pbmRlbnQiLCJjaGVja19nZW9tZXRyeSIsImdlb21ldHJ5IiwicHBfZ2V0X21hcmdpbiIsInBwX3NldF9mdWxsX2dlb21ldHJ5IiwicHBfc2V0X2dlb21ldHJ5IiwicHBfc2FmZV9zZXRfZ2VvbWV0cnkiLCJwcF9nZXRfZ2VvbWV0cnkiLCJwcF91cGRhdGVfZ2VvbWV0cnkiLCJwcF9zZXRfZm9ybWF0dGVyX291dF9mdW5jdGlvbnMiLCJwcF9nZXRfZm9ybWF0dGVyX291dF9mdW5jdGlvbnMiLCJwcF9zZXRfZm9ybWF0dGVyX291dHB1dF9mdW5jdGkiLCJwcF9nZXRfZm9ybWF0dGVyX291dHB1dF9mdW5jdGkiLCJkaXNwbGF5X25ld2xpbmUiLCJibGFua19saW5lIiwiZGlzcGxheV9ibGFua3MiLCJwcF9zZXRfZm9ybWF0dGVyX291dF9jaGFubmVsIiwiZGVmYXVsdF9wcF9tYXJrX29wZW5fdGFnIiwiZGVmYXVsdF9wcF9tYXJrX2Nsb3NlX3RhZyIsImRlZmF1bHRfcHBfcHJpbnRfb3Blbl90YWciLCJkZWZhdWx0X3BwX3ByaW50X2Nsb3NlX3RhZyIsInBwX21ha2VfZm9ybWF0dGVyIiwicHBfcXVldWUiLCJzeXNfdG9rIiwic2Nhbl9zdGFjayIsImZvcm1hdHRlcl9vZl9vdXRfZnVuY3Rpb25zIiwib3V0X2Z1bnMiLCJtYWtlX2Zvcm1hdHRlciIsInBwZiIsImZvcm1hdHRlcl9vZl9vdXRfY2hhbm5lbCIsImZvcm1hdHRlcl9vZl9idWZmZXIiLCJwcF9idWZmZXJfc2l6ZSIsInBwX21ha2VfYnVmZmVyIiwic3RkYnVmIiwic3RkX2Zvcm1hdHRlciIsImVycl9mb3JtYXR0ZXIiLCJzdHJfZm9ybWF0dGVyIiwiZmx1c2hfYnVmZmVyX2Zvcm1hdHRlciIsImZsdXNoX3N0cl9mb3JtYXR0ZXIiLCJtYWtlX3N5bWJvbGljX291dHB1dF9idWZmZXIiLCJjbGVhcl9zeW1ib2xpY19vdXRwdXRfYnVmZmVyIiwic29iIiwiZ2V0X3N5bWJvbGljX291dHB1dF9idWZmZXIiLCJmbHVzaF9zeW1ib2xpY19vdXRwdXRfYnVmZmVyIiwiaXRlbXMiLCJhZGRfc3ltYm9saWNfb3V0cHV0X2l0ZW0iLCJpdGVtIiwiZm9ybWF0dGVyX29mX3N5bWJvbGljX291dHB1dF9iIiwib3Blbl9oYm94Iiwib3Blbl92Ym94Iiwib3Blbl9odmJveCIsIm9wZW5faG92Ym94Iiwib3Blbl9ib3giLCJjbG9zZV9ib3giLCJvcGVuX3RhZyIsImNsb3NlX3RhZyIsIm9wZW5fc3RhZyIsImNsb3NlX3N0YWciLCJwcmludF9hcyIsInByaW50X2Jvb2wiLCJwcmludF9icmVhayIsInByaW50X2N1dCIsInByaW50X3NwYWNlIiwiZm9yY2VfbmV3bGluZSIsInByaW50X2ZsdXNoIiwicHJpbnRfaWZfbmV3bGluZSIsIm9wZW5fdGJveCIsImNsb3NlX3Rib3giLCJwcmludF90YnJlYWsiLCJzZXRfdGFiIiwicHJpbnRfdGFiIiwic2V0X21hcmdpbiIsImdldF9tYXJnaW4iLCJzZXRfbWF4X2luZGVudCIsImdldF9tYXhfaW5kZW50Iiwic2V0X2dlb21ldHJ5Iiwic2FmZV9zZXRfZ2VvbWV0cnkiLCJnZXRfZ2VvbWV0cnkiLCJ1cGRhdGVfZ2VvbWV0cnkiLCJzZXRfbWF4X2JveGVzIiwiZ2V0X21heF9ib3hlcyIsIm92ZXJfbWF4X2JveGVzIiwic2V0X2VsbGlwc2lzX3RleHQiLCJnZXRfZWxsaXBzaXNfdGV4dCIsInNldF9mb3JtYXR0ZXJfb3V0X2NoYW5uZWwiLCJzZXRfZm9ybWF0dGVyX291dF9mdW5jdGlvbnMiLCJnZXRfZm9ybWF0dGVyX291dF9mdW5jdGlvbnMiLCJzZXRfZm9ybWF0dGVyX291dHB1dF9mdW5jdGlvbnMiLCJnZXRfZm9ybWF0dGVyX291dHB1dF9mdW5jdGlvbnMiLCJzZXRfZm9ybWF0dGVyX3N0YWdfZnVuY3Rpb25zIiwiZ2V0X2Zvcm1hdHRlcl9zdGFnX2Z1bmN0aW9ucyIsInNldF9wcmludF90YWdzIiwiZ2V0X3ByaW50X3RhZ3MiLCJzZXRfbWFya190YWdzIiwiZ2V0X21hcmtfdGFncyIsInNldF90YWdzIiwicHBfcHJpbnRfbGlzdCIsInBwX3YiLCJvcHQkMCIsInBwX3NlcCIsIm9wdCQxIiwicHBfcHJpbnRfc2VxIiwic2VxJDEiLCJzZXEkMiIsInBwX3ByaW50X3RleHQiLCJwcF9wcmludF9vcHRpb24iLCJwcF9wcmludF9yZXN1bHQiLCJwcF9wcmludF9laXRoZXIiLCJjb21wdXRlX3RhZyIsInRhZ19hY2MiLCJvdXRwdXRfZm9ybWF0dGluZ19saXQiLCJidHkiLCJwJDYiLCJwJDciLCJzaXplJDEiLCJwJDgiLCJrZHByaW50ZiIsImRwcmludGYiLCJrYXNwcmludGYiLCJhc3ByaW50ZiIsImZsdXNoX3N0YW5kYXJkX2Zvcm1hdHRlcnMiLCJwcF9zZXRfYWxsX2Zvcm1hdHRlcl9vdXRwdXRfZnUiLCJwcF9nZXRfYWxsX2Zvcm1hdHRlcl9vdXRwdXRfZnUiLCJzZXRfYWxsX2Zvcm1hdHRlcl9vdXRwdXRfZnVuY3QiLCJnZXRfYWxsX2Zvcm1hdHRlcl9vdXRwdXRfZnVuY3QiLCJwcF9zZXRfZm9ybWF0dGVyX3RhZ19mdW5jdGlvbnMiLCJzdHJpbmdpZnkiLCJwcF9nZXRfZm9ybWF0dGVyX3RhZ19mdW5jdGlvbnMiLCJmdW5zIiwibWFya19vcGVuX3RhZyIsIm1hcmtfY2xvc2VfdGFnIiwicHJpbnRfb3Blbl90YWciLCJwcmludF9jbG9zZV90YWciLCJzZXRfZm9ybWF0dGVyX3RhZ19mdW5jdGlvbnMiLCJnZXRfZm9ybWF0dGVyX3RhZ19mdW5jdGlvbnMiLCJudWxsX2NoYXIiLCJuZXh0X2NoYXIiLCJpYiIsInBlZWtfY2hhciIsImNoZWNrZWRfcGVla19jaGFyIiwiZW5kX29mX2lucHV0IiwiYmVnaW5uaW5nX29mX2lucHV0IiwibmFtZV9vZl9pbnB1dCIsImNoYXJfY291bnQiLCJpbnZhbGlkYXRlX2N1cnJlbnRfY2hhciIsInRva2VuX3N0cmluZyIsInRva2VuX2J1ZmZlciIsInNraXBfY2hhciIsImlnbm9yZV9jaGFyIiwic3RvcmVfY2hhciIsImRlZmF1bHRfdG9rZW5fYnVmZmVyX3NpemUiLCJpbmFtZSIsInNjYW5fY2xvc2VfYXRfZW5kIiwic2Nhbl9yYWlzZV9hdF9lbmQiLCJmcm9tX2ljIiwic2Nhbl9jbG9zZV9pYyIsImVvZiIsIm9wZW5faW5fZmlsZSIsImljJDAiLCJtZW1vIiwibWVtb19mcm9tX2NoYW5uZWwiLCJiYWRfaW5wdXQiLCJiYWRfaW5wdXRfZXNjYXBlIiwiYmFkX3Rva2VuX2xlbmd0aCIsIm1lc3NhZ2UiLCJiYWRfZmxvYXQiLCJiYWRfaGV4X2Zsb2F0IiwiY2hhcmFjdGVyX21pc21hdGNoIiwiY2kiLCJjaGVja190aGlzX2NoYXIiLCJjaGVja19jaGFyIiwidG9rZW5fY2hhciIsInRva2VuX2Jvb2wiLCJpbnRlZ2VyX2NvbnZlcnNpb25fb2ZfY2hhciIsInRva2VuX2ludF9saXRlcmFsIiwiY29udiIsInRva2VuX2Zsb2F0Iiwic2Nhbl9kZWNpbWFsX2RpZ2l0X3N0YXIiLCJzY2FuX2RlY2ltYWxfZGlnaXRfcGx1cyIsInNjYW5fZGlnaXRfcGx1cyIsImJhc2lzIiwiZGlnaXRwIiwid2lkdGgkMyIsImlzX2JpbmFyeV9kaWdpdCIsInNjYW5fYmluYXJ5X2ludCIsImlzX29jdGFsX2RpZ2l0Iiwic2Nhbl9vY3RhbF9pbnQiLCJpc19oZXhhX2RpZ2l0Iiwic2Nhbl9oZXhhZGVjaW1hbF9pbnQiLCJzY2FuX3NpZ24iLCJzY2FuX29wdGlvbmFsbHlfc2lnbmVkX2RlY2ltYWwiLCJzY2FuX2ludF9jb252ZXJzaW9uIiwic2Nhbl9mcmFjdGlvbmFsX3BhcnQiLCJzY2FuX2V4cG9uZW50X3BhcnQiLCJzY2FuX2Zsb2F0IiwicHJlY2lzaW9uIiwicHJlY2lzaW9uJDAiLCJjaGVja19jYXNlX2luc2Vuc2l0aXZlX3N0cmluZyIsInNjYW5faGV4X2Zsb2F0Iiwid2lkdGgkNCIsIndpZHRoJDUiLCJ3aWR0aCQ2Iiwid2lkdGgkMTAiLCJ3aWR0aCQ3Iiwid2lkdGgkOCIsIndpZHRoJDkiLCJzY2FuX2NhbWxfZmxvYXRfcmVzdCIsIndpZHRoX3ByZWNpc2lvbiIsImZyYWNfd2lkdGgiLCJzY2FuX2NhbWxfZmxvYXQiLCJzY2FuX3N0cmluZyIsInN0cCIsImhleGFkZWNpbWFsX3ZhbHVlX29mX2NoYXIiLCJjaGVja19uZXh0X2NoYXIiLCJjaGVja19uZXh0X2NoYXJfZm9yX2NoYXIiLCJjaGVja19uZXh0X2NoYXJfZm9yX3N0cmluZyIsInNjYW5fYmFja3NsYXNoX2NoYXIiLCJjMCIsImdldF9kaWdpdCIsImdldF9kaWdpdCQwIiwiYzEkMCIsImMyJDAiLCJzY2FuX2NhbWxfc3RyaW5nIiwiZmluZF9zdG9wJDAiLCJza2lwX3NwYWNlcyIsImZpbmRfc3RvcCIsInNjYW5fY2hhcnNfaW5fY2hhcl9zZXQiLCJzY2FuX2luZGljIiwic2Nhbl9jaGFycyIsInNjYW5mX2JhZF9pbnB1dCIsIndpZHRoX29mX3BhZF9vcHQiLCJzdG9wcGVyX29mX2Zvcm1hdHRpbmdfbGl0IiwiZm10aW5nIiwidGFrZV9mb3JtYXRfcmVhZGVycyQwIiwidGFrZV9mbXR0eV9mb3JtYXRfcmVhZGVycyQwIiwicmVhZGVyIiwibmV3X2siLCJyZWFkZXJzX3Jlc3QiLCJ0YWtlX2Zvcm1hdF9yZWFkZXJzIiwidGFrZV9mbXR0eV9mb3JtYXRfcmVhZGVycyIsInBhZF9wcmVjX3NjYW5mIiwicmVhZGVycyIsIm1ha2Vfc2NhbmYiLCJzY2FuJDAiLCJzdHJfcmVzdCIsInNjYW4kMSIsInNjYW4kMiIsInNjYW4kMyIsInNjYW4kNCIsImNvbnYkMCIsInNjYW4kNSIsImNvbnYkMSIsInNjYW4kNiIsImNvbnYkMiIsInNjYW4kNyIsInNjYW4kOCIsImZtdGluZ19saXQkMCIsInN0cCQwIiwicyQyIiwic3RyX3Jlc3QkMCIsImFyZ19yZXN0Iiwia3NjYW5mIiwiZWYiLCJleGMkMCIsImV4YyIsImFyZ3MkMSIsImFyZ3MkMCIsImJzY2FuZiIsImtzc2NhbmYiLCJzc2NhbmYiLCJzY2FuZiIsImJzY2FuZl9mb3JtYXQiLCJmb3JtYXQiLCJzc2NhbmZfZm9ybWF0IiwiZm9ybWF0X2Zyb21fc3RyaW5nIiwidW5lc2NhcGVkIiwia2ZzY2FuZiIsImZzY2FuZiIsInJlZ2lzdGVyIiwicmVnaXN0ZXJfZXhjZXB0aW9uIiwibyQwIiwiaW5pdGlhbF9vYmplY3Rfc2l6ZSIsImR1bW15X2l0ZW0iLCJwdWJsaWNfbWV0aG9kX2xhYmVsIiwidGFnIiwiY29tcGFyZSQwIiwiY29tcGFyZSQxIiwiZHVtbXlfdGFibGUiLCJ0YWJsZV9jb3VudCIsImR1bW15X21ldCIsImZpdF9zaXplIiwibmV3X3RhYmxlIiwicHViX2xhYmVscyIsIm1ldGhvZHMiLCJhcnJheSIsIm5ld19zaXplIiwib2xkX3NpemUiLCJuZXdfYnVjayIsIm1ldGhvZF9jb3VudCIsImluc3RfdmFyX2NvdW50IiwibmV3X21ldGhvZCIsInRhYmxlIiwiZ2V0X21ldGhvZF9sYWJlbCIsImxhYmVsIiwiZ2V0X21ldGhvZF9sYWJlbHMiLCJuYW1lcyIsInNldF9tZXRob2QiLCJlbGVtZW50IiwiZ2V0X21ldGhvZCIsImFyciIsIm5hcnJvdyIsInZhcnMiLCJ2aXJ0X21ldGhzIiwiY29uY3JfbWV0aHMiLCJ2YXJzJDAiLCJ2aXJ0X21ldGhzJDAiLCJjb25jcl9tZXRocyQwIiwidmlydF9tZXRoX2xhYnMiLCJjb25jcl9tZXRoX2xhYnMiLCJsYWIiLCJ0dmFycyIsImJ5X25hbWUiLCJieV9sYWJlbCIsIm1ldCIsImhtIiwid2lkZW4iLCJzYXZlZF92YXJzIiwic2F2ZWRfaGlkZGVuX21ldGhzIiwibmV3X3ZhcmlhYmxlIiwidG9fYXJyYXkiLCJuZXdfbWV0aG9kc192YXJpYWJsZXMiLCJtZXRocyIsInZhbHMiLCJtZXRocyQwIiwibm1ldGhzIiwibnZhbHMiLCJnZXRfdmFyaWFibGUiLCJnZXRfdmFyaWFibGVzIiwiYWRkX2luaXRpYWxpemVyIiwiY3JlYXRlX3RhYmxlIiwicHVibGljX21ldGhvZHMiLCJ0YWdzIiwiaW5pdF9jbGFzcyIsImluaGVyaXRzIiwiY2xhIiwic3VwZXIkMCIsIm5tIiwibWFrZV9jbGFzcyIsInB1Yl9tZXRocyIsImNsYXNzX2luaXQiLCJlbnZfaW5pdCIsIm1ha2VfY2xhc3Nfc3RvcmUiLCJpbml0X3RhYmxlIiwiZHVtbXlfY2xhc3MiLCJsb2MiLCJ1bmRlZiIsImNyZWF0ZV9vYmplY3QiLCJjcmVhdGVfb2JqZWN0X29wdCIsIm9ial8wIiwiaXRlcl9mIiwicnVuX2luaXRpYWxpemVycyIsImluaXRzIiwicnVuX2luaXRpYWxpemVyc19vcHQiLCJjcmVhdGVfb2JqZWN0X2FuZF9ydW5faW5pdGlhbGkiLCJidWlsZF9wYXRoIiwia2V5cyIsImxvb2t1cF90YWJsZXMiLCJyb290Iiwicm9vdF9kYXRhIiwidGFibGVzJDAiLCJ0YWJsZXMkMSIsInRhYmxlc19kYXRhIiwibmV3X2NhY2hlIiwic2V0X21ldGhvZHMiLCJjbG8iLCJjbG8kMCIsIm4kMiIsIm4kMyIsIm4kNCIsIm4kNSIsIm4kNiIsIngkMyIsIm4kNyIsIngkNCIsIm4kOCIsIm4kOSIsIngkNSIsImYkOCIsImUkMiIsIm4kMTAiLCJ4JDYiLCJmJDkiLCJuJDExIiwieCQ3IiwibiQxMiIsIngkOCIsIm4kMTMiLCJuJDE0IiwiZSQzIiwibiQxNSIsIm0kMSIsIm0kMiIsIngkOSIsIm0kMyIsIm4kMTYiLCJtJDQiLCJlJDQiLCJuJDE3IiwibSQ1IiwibiQxOCIsImluaXRfbW9kX2Jsb2NrIiwiY29tcHMkMCIsIm1vZHUiLCJzaGFwZSIsImZuJDAiLCJjb21wcyIsImluaXRfbW9kIiwidXBkYXRlX21vZF9ibG9jayIsImNsIiwidXBkYXRlX21vZCIsImluaXRpYWxfYnVmZmVyIiwiYnVmZmVyIiwiYnVmcG9zIiwicmVzZXRfYnVmZmVyIiwic3RvcmUiLCJuZXdidWZmZXIiLCJnZXRfc3RyaW5nIiwibWFrZV9sZXhlciIsImtleXdvcmRzIiwia3dkX3RhYmxlIiwiaWRlbnRfb3Jfa2V5d29yZCIsImtleXdvcmRfb3JfZXJyb3IiLCJlbmRfZXhwb25lbnRfcGFydCIsImV4cG9uZW50X3BhcnQiLCJudW1iZXIiLCJpZGVudDIiLCJuZXh0X3Rva2VuIiwiZXNjYXBlIiwiY29tbWVudCIsImMzIiwiaGtleSIsImNsZWFuIiwiZG9fYnVja2V0IiwiaW5zZXJ0X2J1Y2tldCIsImNvbnRhaW5lciIsInJlbW92ZV9idWNrZXQiLCJoayIsIm5ld19kIiwiYnVja2V0X2xlbmd0aF9hbGl2ZSIsInN0YXRzX2FsaXZlIiwiZ2V0X2RhdGFfY29weSIsInNldF9kYXRhIiwidW5zZXRfZGF0YSIsImNoZWNrX2RhdGEiLCJibGl0X2RhdGEiLCJlcGgiLCJxdWVyeSIsInNldF9rZXlfZGF0YSIsIm1ha2UkMCIsInRlc3Rfa2V5IiwidCQwIiwiZ2V0X2tleTEiLCJnZXRfa2V5MV9jb3B5Iiwic2V0X2tleTEiLCJ1bnNldF9rZXkxIiwiY2hlY2tfa2V5MSIsImdldF9rZXkyIiwiZ2V0X2tleTJfY29weSIsInNldF9rZXkyIiwidW5zZXRfa2V5MiIsImNoZWNrX2tleTIiLCJibGl0X2tleTEiLCJibGl0X2tleTIiLCJibGl0X2tleTEyIiwiZ2V0X2RhdGEkMCIsImdldF9kYXRhX2NvcHkkMCIsInNldF9kYXRhJDAiLCJ1bnNldF9kYXRhJDAiLCJjaGVja19kYXRhJDAiLCJibGl0X2RhdGEkMCIsIm1ha2UkMSIsImtleTEiLCJrZXkyIiwicXVlcnkkMCIsImsyJDAiLCJrMSQwIiwiZXF1YWwkMCIsIm1ha2UkMiIsImFkZCQwIiwidGVzdF9rZXlzIiwicmVtb3ZlJDAiLCJmaW5kJDAiLCJsZW5ndGgkMCIsImNsZWFyJDAiLCJjcmVhdGUkMSIsImxlbmd0aCQxIiwiZ2V0X2tleSQwIiwiZ2V0X2tleV9jb3B5JDAiLCJzZXRfa2V5JDAiLCJ1bnNldF9rZXkkMCIsImNoZWNrX2tleSQwIiwiYmxpdF9rZXkkMCIsImdldF9kYXRhJDEiLCJnZXRfZGF0YV9jb3B5JDEiLCJzZXRfZGF0YSQxIiwidW5zZXRfZGF0YSQxIiwiY2hlY2tfZGF0YSQxIiwiYmxpdF9kYXRhJDEiLCJtYWtlJDMiLCJxdWVyeSQxIiwia2kiLCJrMCIsIm1ha2UkNCIsImFkZCQxIiwidGVzdF9rZXlzJDAiLCJyZW1vdmUkMSIsImZpbmQkMSIsImxlbmd0aCQyIiwiY2xlYXIkMSIsIm51bGwkMCIsImN1cnJlbnRfZGlyX25hbWUiLCJwYXJlbnRfZGlyX25hbWUiLCJkaXJfc2VwIiwicXVvdGVxdW90ZSIsIm51bGwkMSIsImN1cnJlbnRfZGlyX25hbWUkMCIsInBhcmVudF9kaXJfbmFtZSQwIiwiZGlyX3NlcCQwIiwibnVsbCQyIiwiY3VycmVudF9kaXJfbmFtZSQxIiwicGFyZW50X2Rpcl9uYW1lJDEiLCJkaXJfc2VwJDEiLCJnZW5lcmljX2Jhc2VuYW1lIiwiaXNfZGlyX3NlcCIsImdlbmVyaWNfZGlybmFtZSIsImlzX3JlbGF0aXZlIiwiaXNfaW1wbGljaXQiLCJjaGVja19zdWZmaXgiLCJzdWZmIiwiY2hvcF9zdWZmaXhfb3B0IiwibGVuX2YiLCJ0ZW1wX2Rpcl9uYW1lIiwicXVvdGUiLCJxdW90ZV9jb21tYW5kIiwiYmFzZW5hbWUiLCJkaXJuYW1lIiwiaXNfZGlyX3NlcCQwIiwiaXNfcmVsYXRpdmUkMCIsImlzX2ltcGxpY2l0JDAiLCJjaGVja19zdWZmaXgkMCIsImNob3Bfc3VmZml4X29wdCQwIiwidGVtcF9kaXJfbmFtZSQwIiwicXVvdGUkMCIsImFkZF9icyIsImxvb3AkMCIsImxvb3BfYnMiLCJxdW90ZV9jbWRfZmlsZW5hbWUiLCJxdW90ZV9jb21tYW5kJDAiLCJkcml2ZV9hbmRfcGF0aCIsImRpcm5hbWUkMCIsInBhdGgiLCJkcml2ZSIsImRpciIsImJhc2VuYW1lJDAiLCJiYXNlbmFtZSQxIiwiZGlybmFtZSQxIiwibnVsbCQzIiwiY3VycmVudF9kaXJfbmFtZSQyIiwicGFyZW50X2Rpcl9uYW1lJDIiLCJkaXJfc2VwJDIiLCJpc19kaXJfc2VwJDEiLCJpc19yZWxhdGl2ZSQxIiwiaXNfaW1wbGljaXQkMSIsImNoZWNrX3N1ZmZpeCQxIiwiY2hvcF9zdWZmaXhfb3B0JDEiLCJ0ZW1wX2Rpcl9uYW1lJDEiLCJxdW90ZSQxIiwicXVvdGVfY29tbWFuZCQxIiwiYmFzZW5hbWUkMiIsImRpcm5hbWUkMiIsImNob3Bfc3VmZml4IiwiZXh0ZW5zaW9uX2xlbiIsImkwIiwiZXh0ZW5zaW9uIiwiY2hvcF9leHRlbnNpb24iLCJyZW1vdmVfZXh0ZW5zaW9uIiwidGVtcF9maWxlX25hbWUiLCJ0ZW1wX2RpciIsInJuZCIsImN1cnJlbnRfdGVtcF9kaXJfbmFtZSIsInNldF90ZW1wX2Rpcl9uYW1lIiwiZ2V0X3RlbXBfZGlyX25hbWUiLCJ0ZW1wX2ZpbGUiLCJvcGVuX3RlbXBfZmlsZSIsInN0aCQwIiwicGVybXMiLCJzdGgkMSIsIm5lZyIsImNvbmoiLCJtdWwiLCJkaXYiLCJpbnYiLCJub3JtMiIsIm5vcm0iLCJxJDAiLCJwb2xhciIsInNxcnQiLCJ3JDAiLCJleHAiLCJsb2ciLCJwb3ciLCJmbG9hdDMyIiwiZmxvYXQ2NCIsImludDhfc2lnbmVkIiwiaW50OF91bnNpZ25lZCIsImludDE2X3NpZ25lZCIsImludDE2X3Vuc2lnbmVkIiwiY29tcGxleDMyIiwiY29tcGxleDY0Iiwia2luZF9zaXplX2luX2J5dGVzIiwiY19sYXlvdXQiLCJmb3J0cmFuX2xheW91dCIsImNsb29wIiwiaWR4IiwiY29sIiwiZmxvb3AiLCJsYXlvdXQiLCJkaW1zIiwic2l6ZV9pbl9ieXRlcyIsInNpemVfaW5fYnl0ZXMkMCIsIm9mX3ZhbHVlIiwiZGltIiwic2l6ZV9pbl9ieXRlcyQxIiwic2xpY2UiLCJpbml0JDAiLCJvZl9hcnJheSIsImJhIiwiZGltMSIsImRpbTIiLCJzaXplX2luX2J5dGVzJDIiLCJzbGljZV9sZWZ0Iiwic2xpY2VfcmlnaHQiLCJpbml0JDEiLCJvZl9hcnJheSQwIiwicm93IiwiY3JlYXRlJDIiLCJkaW0zIiwic2l6ZV9pbl9ieXRlcyQzIiwic2xpY2VfbGVmdF8xIiwic2xpY2VfcmlnaHRfMSIsInNsaWNlX2xlZnRfMiIsInNsaWNlX3JpZ2h0XzIiLCJpbml0JDIiLCJvZl9hcnJheSQxIiwiYXJyYXkwX29mX2dlbmFycmF5IiwiYXJyYXkxX29mX2dlbmFycmF5IiwiYXJyYXkyX29mX2dlbmFycmF5IiwiYXJyYXkzX29mX2dlbmFycmF5IiwicmVzaGFwZV8wIiwicmVzaGFwZV8xIiwicmVzaGFwZV8yIiwicmVzaGFwZV8zIiwib3Blbl9iaW4iLCJvcGVuX3RleHQiLCJvcGVuX2dlbiIsIndpdGhfb3BlbiIsIm9wZW5mdW4iLCJ3aXRoX29wZW5fYmluIiwid2l0aF9vcGVuX3RleHQiLCJ3aXRoX29wZW5fZ2VuIiwic2VlayIsImNsb3NlIiwiY2xvc2Vfbm9lcnIiLCJyZWFkX3VwdG8iLCJlbnN1cmUiLCJuZXdfbGVuJDAiLCJuZXdfbGVuJDEiLCJpbnB1dF9hbGwiLCJjaHVua19zaXplIiwiaW5pdGlhbF9zaXplJDAiLCJpbml0aWFsX3NpemUkMSIsIm5yZWFkIiwiYnVmJDIiLCJidWYkMCIsImJ1ZiQxIiwicmVtIiwic2V0X2JpbmFyeV9tb2RlIiwidmVyc2lvbiIsImdpdF92ZXJzaW9uIiwicmFpc2UiLCJtYXgiLCJ4IiwieSIsIm1pbiIsImVxdWFsIiwiZXF1YWwkMCIsIm1heCQwIiwibWluJDAiLCJnbG9iYWwiLCJudWxsJDAiLCJ1bmRlZmluZWQkMCIsInJldHVybiQwIiwibWFwIiwiZiIsImJpbmQiLCJ0ZXN0IiwiaXRlciIsImNhc2UkMCIsImciLCJnZXQiLCJvcHRpb24iLCJ4JDAiLCJ0b19vcHRpb24iLCJyZXR1cm4kMSIsIm1hcCQwIiwiYmluZCQwIiwidGVzdCQwIiwiaXRlciQwIiwiY2FzZSQxIiwiZ2V0JDAiLCJvcHRpb24kMCIsInRvX29wdGlvbiQwIiwiY29lcmNlIiwiY29lcmNlX29wdCIsInRydWUkMCIsImZhbHNlJDAiLCJuZmMiLCJuZmQiLCJuZmtjIiwibmZrZCIsInN0cmluZ19jb25zdHIiLCJyZWdFeHAiLCJvYmplY3RfY29uc3RydWN0b3IiLCJvYmplY3Rfa2V5cyIsIm8iLCJhcnJheV9jb25zdHJ1Y3RvciIsImFycmF5X2dldCIsImFycmF5X3NldCIsImFycmF5X21hcCIsImEiLCJpZHgiLCJhcnJheV9tYXBpIiwic3RyX2FycmF5IiwibWF0Y2hfcmVzdWx0IiwiZGF0ZV9jb25zdHIiLCJtYXRoIiwiZXJyb3JfY29uc3RyIiwiZXhuX3dpdGhfanNfYmFja3RyYWNlIiwibmFtZSIsIm1lc3NhZ2UiLCJzdGFjayIsInRvX3N0cmluZyIsImUiLCJyYWlzZV9qc19lcnJvciIsInN0cmluZ19vZl9lcnJvciIsIkpTT04iLCJkZWNvZGVVUkkiLCJzIiwiZGVjb2RlVVJJQ29tcG9uZW50IiwiZW5jb2RlVVJJIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwiZXNjYXBlIiwidW5lc2NhcGUiLCJpc05hTiIsImkiLCJwYXJzZUludCIsInMkMCIsInBhcnNlRmxvYXQiLCJleHBvcnRfanMiLCJmaWVsZCIsImV4cG9ydCQwIiwiZXhwb3J0X2FsbCIsIm9iaiIsImtleXMiLCJrZXkiLCJsaXN0X29mX25vZGVMaXN0IiwibGVuZ3RoIiwiYWNjIiwiaSQwIiwiYWNjJDAiLCJpJDEiLCJkaXNjb25uZWN0ZWQiLCJwcmVjZWRpbmciLCJmb2xsb3dpbmciLCJjb250YWlucyIsImNvbnRhaW5lZF9ieSIsImltcGxlbWVudGF0aW9uX3NwZWNpZmljIiwiaGFzIiwidCIsIm1hc2siLCJhZGQiLCJhcHBlbmRDaGlsZCIsInAiLCJuIiwicmVtb3ZlQ2hpbGQiLCJyZXBsYWNlQ2hpbGQiLCJpbnNlcnRCZWZvcmUiLCJub2RlVHlwZSIsInQxMyIsImNhc3QiLCJ0MTQiLCJlbGVtZW50IiwidGV4dCIsImF0dHIiLCJub19oYW5kbGVyIiwiaGFuZGxlciIsInJlcyIsImZ1bGxfaGFuZGxlciIsInRoaXMkMCIsImludm9rZV9oYW5kbGVyIiwiZXZlbnQiLCJldmVudFRhcmdldCIsIm1ha2UiLCJhZGRFdmVudExpc3RlbmVyV2l0aE9wdGlvbnMiLCJ0MjgiLCJ0eXAiLCJjYXB0dXJlIiwib25jZSIsInBhc3NpdmUiLCJoIiwiZXYiLCJjYWxsYmFjayIsImIiLCJhZGRFdmVudExpc3RlbmVyIiwiY2FwdCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJpZCIsInByZXZlbnREZWZhdWx0IiwiY3JlYXRlQ3VzdG9tRXZlbnQiLCJidWJibGVzIiwiY2FuY2VsYWJsZSIsImRldGFpbCIsIm9wdF9pdGVyIiwiY29uc3RyIiwiYXJyYXlCdWZmZXIiLCJpbnQ4QXJyYXkiLCJ1aW50OEFycmF5IiwiaW50MTZBcnJheSIsInVpbnQxNkFycmF5IiwiaW50MzJBcnJheSIsInVpbnQzMkFycmF5IiwiZmxvYXQzMkFycmF5IiwiZmxvYXQ2NEFycmF5Iiwic2V0IiwidiIsInVuc2FmZV9nZXQiLCJkYXRhVmlldyIsIm9mX2FycmF5QnVmZmVyIiwiYWIiLCJ1aW50OCIsImJsb2JfY29uc3RyIiwiZmlsdGVyX21hcCIsInEiLCJ2JDAiLCJibG9iX3JhdyIsImNvbnRlbnRUeXBlIiwiZW5kaW5ncyIsIm9wdGlvbnMiLCJvcHRpb25zJDAiLCJibG9iX2Zyb21fc3RyaW5nIiwiYmxvYl9mcm9tX2FueSIsImwiLCJhJDAiLCJsJDAiLCJmaWxlbmFtZSIsIm5hbWUkMCIsImRvY19jb25zdHIiLCJkb2N1bWVudCIsImJsb2IiLCJzdHJpbmciLCJsb2Fkc3RhcnQiLCJwcm9ncmVzcyIsImFib3J0IiwiZXJyb3IiLCJsb2FkIiwibG9hZGVuZCIsImZpbGVSZWFkZXIiLCJvbklFIiwiY2xpY2siLCJjb3B5IiwiY3V0IiwicGFzdGUiLCJkYmxjbGljayIsIm1vdXNlZG93biIsIm1vdXNldXAiLCJtb3VzZW92ZXIiLCJtb3VzZW1vdmUiLCJtb3VzZW91dCIsImtleXByZXNzIiwia2V5ZG93biIsImtleXVwIiwibW91c2V3aGVlbCIsIndoZWVsIiwiRE9NTW91c2VTY3JvbGwiLCJ0b3VjaHN0YXJ0IiwidG91Y2htb3ZlIiwidG91Y2hlbmQiLCJ0b3VjaGNhbmNlbCIsImRyYWdzdGFydCIsImRyYWdlbmQiLCJkcmFnZW50ZXIiLCJkcmFnb3ZlciIsImRyYWdsZWF2ZSIsImRyYWciLCJkcm9wIiwiaGFzaGNoYW5nZSIsImNoYW5nZSIsImlucHV0IiwidGltZXVwZGF0ZSIsInN1Ym1pdCIsInNjcm9sbCIsImZvY3VzIiwiYmx1ciIsInVubG9hZCIsImJlZm9yZXVubG9hZCIsInJlc2l6ZSIsIm9yaWVudGF0aW9uY2hhbmdlIiwicG9wc3RhdGUiLCJzZWxlY3QiLCJvbmxpbmUiLCJvZmZsaW5lIiwiY2hlY2tpbmciLCJub3VwZGF0ZSIsImRvd25sb2FkaW5nIiwidXBkYXRlcmVhZHkiLCJjYWNoZWQiLCJvYnNvbGV0ZSIsImRvbUNvbnRlbnRMb2FkZWQiLCJhbmltYXRpb25zdGFydCIsImFuaW1hdGlvbmVuZCIsImFuaW1hdGlvbml0ZXJhdGlvbiIsImFuaW1hdGlvbmNhbmNlbCIsInRyYW5zaXRpb25ydW4iLCJ0cmFuc2l0aW9uc3RhcnQiLCJ0cmFuc2l0aW9uZW5kIiwidHJhbnNpdGlvbmNhbmNlbCIsImNhbnBsYXkiLCJjYW5wbGF5dGhyb3VnaCIsImR1cmF0aW9uY2hhbmdlIiwiZW1wdGllZCIsImVuZGVkIiwiZ290cG9pbnRlcmNhcHR1cmUiLCJsb2FkZWRkYXRhIiwibG9hZGVkbWV0YWRhdGEiLCJsb3N0cG9pbnRlcmNhcHR1cmUiLCJwYXVzZSIsInBsYXkiLCJwbGF5aW5nIiwicG9pbnRlcmVudGVyIiwicG9pbnRlcmNhbmNlbCIsInBvaW50ZXJkb3duIiwicG9pbnRlcmxlYXZlIiwicG9pbnRlcm1vdmUiLCJwb2ludGVyb3V0IiwicG9pbnRlcm92ZXIiLCJwb2ludGVydXAiLCJyYXRlY2hhbmdlIiwic2Vla2VkIiwic2Vla2luZyIsInN0YWxsZWQiLCJzdXNwZW5kIiwidm9sdW1lY2hhbmdlIiwid2FpdGluZyIsImQiLCJsb2NhdGlvbl9vcmlnaW4iLCJvcmlnaW4iLCJ3aW5kb3ciLCJnZXRFbGVtZW50QnlJZCIsInBub2RlIiwiZ2V0RWxlbWVudEJ5SWRfZXhuIiwiZ2V0RWxlbWVudEJ5SWRfb3B0IiwiZ2V0RWxlbWVudEJ5SWRfY29lcmNlIiwiY3JlYXRlRWxlbWVudCIsImRvYyIsInVuc2FmZUNyZWF0ZUVsZW1lbnQiLCJjcmVhdGVFbGVtZW50U3ludGF4IiwidW5zYWZlQ3JlYXRlRWxlbWVudEV4IiwidHlwZSIsImVsdCIsImNyZWF0ZUh0bWwiLCJjcmVhdGVIZWFkIiwiY3JlYXRlTGluayIsImNyZWF0ZVRpdGxlIiwiY3JlYXRlTWV0YSIsImNyZWF0ZUJhc2UiLCJjcmVhdGVTdHlsZSIsImNyZWF0ZUJvZHkiLCJjcmVhdGVGb3JtIiwiY3JlYXRlT3B0Z3JvdXAiLCJjcmVhdGVPcHRpb24iLCJjcmVhdGVTZWxlY3QiLCJjcmVhdGVJbnB1dCIsImNyZWF0ZVRleHRhcmVhIiwiY3JlYXRlQnV0dG9uIiwiY3JlYXRlTGFiZWwiLCJjcmVhdGVGaWVsZHNldCIsImNyZWF0ZUxlZ2VuZCIsImNyZWF0ZVVsIiwiY3JlYXRlT2wiLCJjcmVhdGVEbCIsImNyZWF0ZUxpIiwiY3JlYXRlRGl2IiwiY3JlYXRlRW1iZWQiLCJjcmVhdGVQIiwiY3JlYXRlSDEiLCJjcmVhdGVIMiIsImNyZWF0ZUgzIiwiY3JlYXRlSDQiLCJjcmVhdGVINSIsImNyZWF0ZUg2IiwiY3JlYXRlUSIsImNyZWF0ZUJsb2NrcXVvdGUiLCJjcmVhdGVQcmUiLCJjcmVhdGVCciIsImNyZWF0ZUhyIiwiY3JlYXRlSW5zIiwiY3JlYXRlRGVsIiwiY3JlYXRlQSIsImNyZWF0ZUltZyIsImNyZWF0ZU9iamVjdCIsImNyZWF0ZVBhcmFtIiwiY3JlYXRlTWFwIiwiY3JlYXRlQXJlYSIsImNyZWF0ZVNjcmlwdCIsImNyZWF0ZVRhYmxlIiwiY3JlYXRlQ2FwdGlvbiIsImNyZWF0ZUNvbCIsImNyZWF0ZUNvbGdyb3VwIiwiY3JlYXRlVGhlYWQiLCJjcmVhdGVUZm9vdCIsImNyZWF0ZVRib2R5IiwiY3JlYXRlVHIiLCJjcmVhdGVUaCIsImNyZWF0ZVRkIiwiY3JlYXRlU3ViIiwiY3JlYXRlU3VwIiwiY3JlYXRlU3BhbiIsImNyZWF0ZVR0IiwiY3JlYXRlSSIsImNyZWF0ZUIiLCJjcmVhdGVCaWciLCJjcmVhdGVTbWFsbCIsImNyZWF0ZUVtIiwiY3JlYXRlU3Ryb25nIiwiY3JlYXRlQ2l0ZSIsImNyZWF0ZURmbiIsImNyZWF0ZUNvZGUiLCJjcmVhdGVTYW1wIiwiY3JlYXRlS2JkIiwiY3JlYXRlVmFyIiwiY3JlYXRlQWJiciIsImNyZWF0ZURkIiwiY3JlYXRlRHQiLCJjcmVhdGVOb3NjcmlwdCIsImNyZWF0ZUFkZHJlc3MiLCJjcmVhdGVGcmFtZXNldCIsImNyZWF0ZUZyYW1lIiwiY3JlYXRlSWZyYW1lIiwiY3JlYXRlQXVkaW8iLCJjcmVhdGVWaWRlbyIsImNyZWF0ZUNhbnZhcyIsImh0bWxfZWxlbWVudCIsInQ1NCIsInVuc2FmZUNvZXJjZSIsInRhZyIsInQ1NSIsImFyZWEiLCJiYXNlIiwiYmxvY2txdW90ZSIsImJvZHkiLCJiciIsImJ1dHRvbiIsImNhbnZhcyIsImNhcHRpb24iLCJjb2wiLCJjb2xncm91cCIsImRlbCIsImRpdiIsImRsIiwiZmllbGRzZXQiLCJlbWJlZCIsImZvcm0iLCJmcmFtZXNldCIsImZyYW1lIiwiaDEiLCJoMiIsImgzIiwiaDQiLCJoNSIsImg2IiwiaGVhZCIsImhyIiwiaHRtbCIsImlmcmFtZSIsImltZyIsImlucHV0JDAiLCJpbnMiLCJsYWJlbCIsImxlZ2VuZCIsImxpIiwibGluayIsIm1ldGEiLCJvYmplY3QiLCJvbCIsIm9wdGdyb3VwIiwicGFyYW0iLCJwcmUiLCJzY3JpcHQiLCJzZWxlY3QkMCIsInN0eWxlIiwidGFibGUiLCJ0Ym9keSIsInRkIiwidGV4dGFyZWEiLCJ0Zm9vdCIsInRoIiwidGhlYWQiLCJ0aXRsZSIsInRyIiwidWwiLCJhdWRpbyIsInZpZGVvIiwidW5zYWZlQ29lcmNlRXZlbnQiLCJtb3VzZUV2ZW50Iiwia2V5Ym9hcmRFdmVudCIsIndoZWVsRXZlbnQiLCJtb3VzZVNjcm9sbEV2ZW50IiwicG9wU3RhdGVFdmVudCIsIm1lc3NhZ2VFdmVudCIsImV2ZW50UmVsYXRlZFRhcmdldCIsImV2ZW50QWJzb2x1dGVQb3NpdGlvbiIsImV2ZW50QWJzb2x1dGVQb3NpdGlvbiQwIiwiZWxlbWVudENsaWVudFBvc2l0aW9uIiwiZ2V0RG9jdW1lbnRTY3JvbGwiLCJidXR0b25QcmVzc2VkIiwiYWRkTW91c2V3aGVlbEV2ZW50TGlzdGVuZXJXaXRoIiwiZHgiLCJkeSIsImFkZE1vdXNld2hlZWxFdmVudExpc3RlbmVyIiwidHJ5X2NvZGUiLCJ0cnlfa2V5X2NvZGVfbGVmdCIsInRyeV9rZXlfY29kZV9yaWdodCIsInRyeV9rZXlfY29kZV9udW1wYWQiLCJ0cnlfa2V5X2NvZGVfbm9ybWFsIiwibWFrZV91bmlkZW50aWZpZWQiLCJydW5fbmV4dCIsInZhbHVlIiwic3ltYm9sIiwib2ZfZXZlbnQiLCJjaGFyX29mX2ludCIsImVtcHR5X3N0cmluZyIsIm5vbmUiLCJvZl9ldmVudCQwIiwiZWxlbWVudCQwIiwidGFnZ2VkIiwidDEwNSIsIm9wdF90YWdnZWQiLCJ0YWdnZWRFdmVudCIsIm9wdF90YWdnZWRFdmVudCIsInN0b3BQcm9wYWdhdGlvbiIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsImMiLCJyZXEiLCJub3ciLCJsYXN0IiwiZHQiLCJkdCQwIiwiaGFzUHVzaFN0YXRlIiwiaGFzUGxhY2Vob2xkZXIiLCJoYXNSZXF1aXJlZCIsIm92ZXJmbG93X2xpbWl0Iiwic2V0VGltZW91dCIsImxvb3AiLCJyZW1haW4iLCJzdGVwIiwiY2IiLCJjbGVhclRpbWVvdXQiLCJqc19hcnJheV9vZl9jb2xsZWN0aW9uIiwiZm9ybURhdGEiLCJmb3JtRGF0YV9mb3JtIiwiaGF2ZV9jb250ZW50IiwiZm9ybV9lbGVtZW50cyIsImkkMiIsInN0aCIsIm5hbWUkMSIsImxpc3QiLCJmaWxlIiwiYXBwZW5kIiwiZm9ybV9jb250ZW50cyIsImZvcm1fZWx0IiwiZW1wdHlfZm9ybV9jb250ZW50cyIsInBvc3RfZm9ybV9jb250ZW50cyIsImNvbnRlbnRzIiwiZ2V0X2Zvcm1fY29udGVudHMiLCJyZWFkeXN0YXRlY2hhbmdlIiwidGltZW91dCIsIndvcmtlciIsImNyZWF0ZSIsImltcG9ydF9zY3JpcHRzIiwic2NyaXB0cyIsInNldF9vbm1lc3NhZ2UiLCJqc19oYW5kbGVyIiwicG9zdF9tZXNzYWdlIiwibXNnIiwid2ViU29ja2V0IiwiaXNfc3VwcG9ydGVkIiwiZGVmYXVsdENvbnRleHRBdHRyaWJ1dGVzIiwid2ViZ2xjb250ZXh0bG9zdCIsIndlYmdsY29udGV4dHJlc3RvcmVkIiwid2ViZ2xjb250ZXh0Y3JlYXRpb25lcnJvciIsImdldENvbnRleHQiLCJjdHgiLCJnZXRDb250ZXh0V2l0aEF0dHJpYnV0ZXMiLCJhdHRyaWJzIiwicmVnZXhwIiwicmVnZXhwX2Nhc2VfZm9sZCIsInJlZ2V4cF93aXRoX2ZsYWciLCJibHVudF9zdHJfYXJyYXlfZ2V0Iiwic3RyaW5nX21hdGNoIiwic2VhcmNoIiwicmVzX3ByZSIsIm1hdGNoZWRfc3RyaW5nIiwiciIsIm1hdGNoZWRfZ3JvdXAiLCJxdW90ZV9yZXBsX3JlIiwicXVvdGVfcmVwbCIsImdsb2JhbF9yZXBsYWNlIiwic19ieSIsInJlcGxhY2VfZmlyc3QiLCJ0MjkiLCJmbGFncyIsImxpc3Rfb2ZfanNfYXJyYXkiLCJpZHgkMSIsImFjY3UiLCJpZHgkMCIsImFjY3UkMCIsInNwbGl0IiwiYm91bmRlZF9zcGxpdCIsInF1b3RlX3JlIiwicXVvdGUiLCJyZWdleHBfc3RyaW5nIiwicmVnZXhwX3N0cmluZ19jYXNlX2ZvbGQiLCJpbnRlcnJ1cHQiLCJwbHVzX3JlIiwidXJsZGVjb2RlX2pzX3N0cmluZ19zdHJpbmciLCJ1cmxkZWNvZGUiLCJ1cmxlbmNvZGUiLCJvcHQiLCJ3aXRoX3BsdXMiLCJkZWZhdWx0X2h0dHBfcG9ydCIsImRlZmF1bHRfaHR0cHNfcG9ydCIsInBhdGhfb2ZfcGF0aF9zdHJpbmciLCJhdXgiLCJqIiwid29yZCIsImVuY29kZV9hcmd1bWVudHMiLCJkZWNvZGVfYXJndW1lbnRzX2pzX3N0cmluZyIsImxlbiIsImluZGV4IiwiZGVjb2RlX2FyZ3VtZW50cyIsInVybF9yZSIsImZpbGVfcmUiLCJ1cmxfb2ZfanNfc3RyaW5nIiwiaGFuZGxlIiwicHJvdF9zdHJpbmciLCJzc2wiLCJwYXRoX3N0ciIsInVybCIsInVybF9vZl9zdHJpbmciLCJzdHJpbmdfb2ZfdXJsIiwiZnJhZyIsImFyZ3MiLCJwYXRoIiwicG9ydCIsImhvc3QiLCJmcmFnJDAiLCJhcmdzJDAiLCJwYXRoJDAiLCJwb3J0JDAiLCJob3N0JDAiLCJmcmFnJDEiLCJhcmdzJDEiLCJwYXRoJDEiLCJwcm90b2NvbCIsInBhdGhfc3RyaW5nIiwiYXJndW1lbnRzJDAiLCJnZXRfZnJhZ21lbnQiLCJyZXMkMCIsInNldF9mcmFnbWVudCIsInUiLCJhc19zdHJpbmciLCJ1cGRhdGVfZmlsZSIsImNvbnRlbnQiLCJvYyIsInNldF9jaGFubmVsX2ZsdXNoZXIiLCJvdXRfY2hhbm5lbCIsImYkMCIsInNldF9jaGFubmVsX2ZpbGxlciIsImluX2NoYW5uZWwiLCJtb3VudCIsInByZWZpeCIsInVubW91bnQiLCJqc19vZl9vY2FtbF92ZXJzaW9uIiwiZW1wdHlfcmVzaXplX29ic2VydmVyX29wdGlvbnMiLCJyZXNpemVPYnNlcnZlciIsIm9ic2VydmUiLCJub2RlIiwiYm94Iiwib2JzIiwicGVyZm9ybWFuY2VPYnNlcnZlciIsImVudHJ5X3R5cGVzIiwiZW1wdHlfbXV0YXRpb25fb2JzZXJ2ZXJfaW5pdCIsIm11dGF0aW9uT2JzZXJ2ZXIiLCJjaGlsZF9saXN0IiwiYXR0cmlidXRlcyIsImNoYXJhY3Rlcl9kYXRhIiwic3VidHJlZSIsImF0dHJpYnV0ZV9vbGRfdmFsdWUiLCJjaGFyYWN0ZXJfZGF0YV9vbGRfdmFsdWUiLCJhdHRyaWJ1dGVfZmlsdGVyIiwiayIsInJlbW92ZSIsImZpbmQiLCJqc29uIiwicmV2aXZlciIsImlucHV0X3Jldml2ZXIiLCJ1bnNhZmVfaW5wdXQiLCJtbEludDY0X2NvbnN0ciIsIm91dHB1dF9yZXZpdmVyIiwib3V0cHV0Iiwic3RyaW5nX29mX25hbWUiLCJuYW1lX29mX3N0cmluZyIsInJnYl9vZl9uYW1lIiwicmdiIiwiaHNsIiwic3RyaW5nX29mX3QiLCJiJDAiLCJnJDAiLCJyJDAiLCJiJDEiLCJnJDEiLCJyJDEiLCJiJDIiLCJnJDIiLCJyJDIiLCJhJDEiLCJoJDAiLCJoZXhfb2ZfcmdiIiwiYmx1ZSIsImdyZWVuIiwicmVkIiwiaW5fcmFuZ2UiLCJqc190X29mX2pzX3N0cmluZyIsInJnYl9yZSIsInJnYl9wY3RfcmUiLCJyZ2JhX3JlIiwicmdiYV9wY3RfcmUiLCJoc2xfcmUiLCJoc2xhX3JlIiwianMiLCJjbiIsIm1sIiwiZmFpbCIsInJlX3JnYiIsInJlX3JnYl9wY3QiLCJyZV9oc2wiLCJpX29mX3NfbyIsImZfb2ZfcyIsImFscGhhIiwicmVkJDAiLCJncmVlbiQwIiwiYmx1ZSQwIiwiYWxwaGEkMCIsInJlZCQxIiwiZ3JlZW4kMSIsImJsdWUkMSIsImFscGhhJDEiLCJzdHJpbmdfb2ZfdCQwIiwiZiQxIiwiZiQyIiwiZiQzIiwiZiQ0IiwiZiQ1IiwiZiQ2IiwiZiQ3IiwiZiQ4IiwiZiQ5IiwiZiQxMCIsImYkMTEiLCJmJDEyIiwianMkMCIsIm1sJDAiLCJyZSIsInN0cmluZ19vZl90JDEiLCJqcyQxIiwibWwkMSIsImxpc3RlbiIsInRhcmdldCIsInN0b3BfbGlzdGVuIiwieG1sbnMiLCJjcmVhdGVBbHRHbHlwaCIsImNyZWF0ZUFsdEdseXBoRGVmIiwiY3JlYXRlQWx0R2x5cGhJdGVtIiwiY3JlYXRlQW5pbWF0ZSIsImNyZWF0ZUFuaW1hdGVDb2xvciIsImNyZWF0ZUFuaW1hdGVNb3Rpb24iLCJjcmVhdGVBbmltYXRlVHJhbnNmb3JtIiwiY3JlYXRlQ2lyY2xlIiwiY3JlYXRlQ2xpcFBhdGgiLCJjcmVhdGVDdXJzb3IiLCJjcmVhdGVEZWZzIiwiY3JlYXRlRGVzYyIsImNyZWF0ZUVsbGlwc2UiLCJjcmVhdGVGaWx0ZXIiLCJjcmVhdGVGb250IiwiY3JlYXRlRm9udEZhY2UiLCJjcmVhdGVGb250RmFjZUZvcm1hdCIsImNyZWF0ZUZvbnRGYWNlTmFtZSIsImNyZWF0ZUZvbnRGYWNlU3JjIiwiY3JlYXRlRm9udEZhY2VVcmkiLCJjcmVhdGVGb3JlaWduT2JqZWN0IiwiY3JlYXRlRyIsImNyZWF0ZUdseXBoIiwiY3JlYXRlR2x5cGhSZWYiLCJjcmVhdGVoa2VybiIsImNyZWF0ZUltYWdlIiwiY3JlYXRlTGluZUVsZW1lbnQiLCJjcmVhdGVMaW5lYXJFbGVtZW50IiwiY3JlYXRlTWFzayIsImNyZWF0ZU1ldGFEYXRhIiwiY3JlYXRlTWlzc2luZ0dseXBoIiwiY3JlYXRlTVBhdGgiLCJjcmVhdGVQYXRoIiwiY3JlYXRlUGF0dGVybiIsImNyZWF0ZVBvbHlnb24iLCJjcmVhdGVQb2x5bGluZSIsImNyZWF0ZVJhZGlhbGdyYWRpZW50IiwiY3JlYXRlUmVjdCIsImNyZWF0ZVNldCIsImNyZWF0ZVN0b3AiLCJjcmVhdGVTdmciLCJjcmVhdGVTd2l0Y2giLCJjcmVhdGVTeW1ib2wiLCJjcmVhdGVUZXh0RWxlbWVudCIsImNyZWF0ZVRleHRwYXRoIiwiY3JlYXRlVHJlZiIsImNyZWF0ZVRzcGFuIiwiY3JlYXRlVXNlIiwiY3JlYXRlVmlldyIsImNyZWF0ZXZrZXJuIiwic3ZnX2VsZW1lbnQiLCJ0OCIsImFsdEdseXBoIiwiYWx0R2x5cGhEZWYiLCJhbHRHbHlwaEl0ZW0iLCJhbmltYXRlIiwiYW5pbWF0ZUNvbG9yIiwiYW5pbWF0ZU1vdGlvbiIsImFuaW1hdGVUcmFuc2Zvcm0iLCJjaXJjbGUiLCJjbGlwUGF0aCIsImN1cnNvciIsImRlZnMiLCJkZXNjIiwiZWxsaXBzZSIsImZpbHRlciIsImZvbnQiLCJmb250RmFjZSIsImZvbnRGYWNlRm9ybWF0IiwiZm9udEZhY2VOYW1lIiwiZm9udEZhY2VTcmMiLCJmb250RmFjZVVyaSIsImZvcmVpZ25PYmplY3QiLCJnbHlwaCIsImdseXBoUmVmIiwiaGtlcm4iLCJpbWFnZSIsImxpbmVFbGVtZW50IiwibGluZWFyRWxlbWVudCIsIm1ldGFEYXRhIiwibWlzc2luZ0dseXBoIiwibVBhdGgiLCJwYXR0ZXJuIiwicG9seWdvbiIsInBvbHlsaW5lIiwicmFkaWFsZ3JhZGllbnQiLCJyZWN0Iiwic3RvcCIsInN2ZyIsInN3aXRjaCQwIiwidGV4dEVsZW1lbnQiLCJ0ZXh0cGF0aCIsInRyZWYiLCJ0c3BhbiIsInVzZSIsInZpZXciLCJ2a2VybiIsIndpdGhDcmVkZW50aWFscyIsImV2ZW50U291cmNlIiwiZXZlbnRTb3VyY2Vfb3B0aW9ucyIsImNvbnNvbGUiLCJlbXB0eV9wb3NpdGlvbl9vcHRpb25zIiwiZ2VvbG9jYXRpb24iLCJlbXB0eV9pbnRlcnNlY3Rpb25fb2JzZXJ2ZXJfb3AiLCJpbnRlcnNlY3Rpb25PYnNlcnZlcl91bnNhZmUiLCJvYmplY3Rfb3B0aW9ucyIsIm9wdGlvbnMkMSIsIm9wdGlvbnMkMiIsImludGwiLCJjb2xsYXRvcl9jb25zdHIiLCJkYXRlVGltZUZvcm1hdF9jb25zdHIiLCJudW1iZXJGb3JtYXRfY29uc3RyIiwicGx1cmFsUnVsZXNfY29uc3RyIiwicGFyc2UiLCJkYXRhIiwiaW5wdXQiLCJlbCIsInRhZyIsInN1YnRyZWVzIiwiZGF0YSQwIiwidGV4dCIsImRvY190cmVlIiwianNfb2ZfanNvbiIsInMiLCJpIiwiZiIsImNvbnRlbnQiLCJ2Iiwia2V5IiwidiQwIiwiY29udGVudCQwIiwiY29udGVudCQxIiwiY29udGVudCQyIiwic3RyIiwiY2IiLCJ0cmVlJDAiLCJjb252ZXJ0Iiwic3VidHJlZXMiLCJ0YWciLCJhdHRycyIsInRhZ19uYW1lIiwidGFnX25hbWVfbG9jYWwiLCJ0YWdfbmFtZV91cmkiLCJvdXRfbmFtZSIsInZhbHVlIiwibG9jYWwiLCJhdHRyaWJ1dGVzIiwic3VidHJlZXMkMCIsImF0dHJpYnV0ZXMkMCIsInRlbXAiLCJzdWJ0cmVlcyQxIiwicGFyYW0iLCJrIiwibmFtZXMiLCJvcHQiLCJzdGgiLCJhY2MiLCJvcHQkMCIsInN1YnRyZWVzJDIiLCJqc29uIiwianNvbiQwIiwidHJlZSJdLCJzb3VyY2VzIjpbIi9idWlsdGluLytpbnQ2NC5qcyIsIi9idWlsdGluLyttbEJ5dGVzLmpzIiwiL2J1aWx0aW4vK2ZhaWwuanMiLCIvYnVpbHRpbi8rc3RkbGliLmpzIiwiL2J1aWx0aW4vK3N5cy5qcyIsIi9idWlsdGluLytiYWNrdHJhY2UuanMiLCIvYnVpbHRpbi8ranNsaWIuanMiLCIvYnVpbHRpbi8rZm9ybWF0LmpzIiwiL2J1aWx0aW4vK2llZWVfNzU0LmpzIiwiL2J1aWx0aW4vK2VmZmVjdC5qcyIsIi9idWlsdGluLytmc19ub2RlLmpzIiwiL2J1aWx0aW4vK2ZzLmpzIiwiL2J1aWx0aW4vK3VuaXguanMiLCIvYnVpbHRpbi8rZnNfZmFrZS5qcyIsIi9idWlsdGluLytuYXQuanMiLCIvYnVpbHRpbi8rZ3JhcGhpY3MuanMiLCIvYnVpbHRpbi8rcnVudGltZV9ldmVudHMuanMiLCIvYnVpbHRpbi8rbWFyc2hhbC5qcyIsIi9idWlsdGluLytpby5qcyIsIi9idWlsdGluLytnYy5qcyIsIi9idWlsdGluLytiaWdhcnJheS5qcyIsIi9idWlsdGluLytwYXJzaW5nLmpzIiwiL2J1aWx0aW4vK2ludHMuanMiLCIvYnVpbHRpbi8raGFzaC5qcyIsIi9idWlsdGluLytvYmouanMiLCIvYnVpbHRpbi8rZG9tYWluLmpzIiwiL2J1aWx0aW4vK2NvbXBhcmUuanMiLCIvYnVpbHRpbi8ranNsaWJfanNfb2Zfb2NhbWwuanMiLCIvYnVpbHRpbi8rYmlnc3RyaW5nLmpzIiwiL2J1aWx0aW4vK21kNS5qcyIsIi9idWlsdGluLytzdHIuanMiLCIvYnVpbHRpbi8rbGV4aW5nLmpzIiwiL2J1aWx0aW4vK2FycmF5LmpzIiwiL2J1aWx0aW4vK3N5bmMuanMiLCIvYnVpbHRpbi8rd2Vhay5qcyIsIi9idWlsdGluLytwcm5nLmpzIiwiL2J1aWx0aW4vK3pzdGQuanMiLCIvaG9tZS9tYXJlay9ub2RlLXhtbDJqcy9fb3BhbS9saWIvb2NhbWwvY2FtbGludGVybmFsRm9ybWF0QmFzaWNzLm1sIiwiL2hvbWUvbWFyZWsvbm9kZS14bWwyanMvX29wYW0vbGliL29jYW1sL2NhbWxpbnRlcm5hbEF0b21pYy5tbCIsIi9ob21lL21hcmVrL25vZGUteG1sMmpzL19vcGFtL2xpYi9vY2FtbC9zdGRsaWIubWwiLCIvaG9tZS9tYXJlay9ub2RlLXhtbDJqcy9fb3BhbS9saWIvb2NhbWwvcGVydmFzaXZlcy5tbCIsIi9ob21lL21hcmVrL25vZGUteG1sMmpzL19vcGFtL2xpYi9vY2FtbC9laXRoZXIubWwiLCIvaG9tZS9tYXJlay9ub2RlLXhtbDJqcy9fb3BhbS9saWIvb2NhbWwvb2JqLm1sIiwiL2hvbWUvbWFyZWsvbm9kZS14bWwyanMvX29wYW0vbGliL29jYW1sL2NhbWxpbnRlcm5hbExhenkubWwiLCIvaG9tZS9tYXJlay9ub2RlLXhtbDJqcy9fb3BhbS9saWIvb2NhbWwvbGF6eS5tbCIsIi9ob21lL21hcmVrL25vZGUteG1sMmpzL19vcGFtL2xpYi9vY2FtbC9zZXEubWwiLCIvaG9tZS9tYXJlay9ub2RlLXhtbDJqcy9fb3BhbS9saWIvb2NhbWwvb3B0aW9uLm1sIiwiL2hvbWUvbWFyZWsvbm9kZS14bWwyanMvX29wYW0vbGliL29jYW1sL3Jlc3VsdC5tbCIsIi9ob21lL21hcmVrL25vZGUteG1sMmpzL19vcGFtL2xpYi9vY2FtbC9ib29sLm1sIiwiL2hvbWUvbWFyZWsvbm9kZS14bWwyanMvX29wYW0vbGliL29jYW1sL2NoYXIubWwiLCIvaG9tZS9tYXJlay9ub2RlLXhtbDJqcy9fb3BhbS9saWIvb2NhbWwvdWNoYXIubWwiLCIvaG9tZS9tYXJlay9ub2RlLXhtbDJqcy9fb3BhbS9saWIvb2NhbWwvbGlzdC5tbCIsIi9ob21lL21hcmVrL25vZGUteG1sMmpzL19vcGFtL2xpYi9vY2FtbC9pbnQubWwiLCIvaG9tZS9tYXJlay9ub2RlLXhtbDJqcy9fb3BhbS9saWIvb2NhbWwvYnl0ZXMubWwiLCIvaG9tZS9tYXJlay9ub2RlLXhtbDJqcy9fb3BhbS9saWIvb2NhbWwvc3RyaW5nLm1sIiwiL2hvbWUvbWFyZWsvbm9kZS14bWwyanMvX29wYW0vbGliL29jYW1sL3VuaXQubWwiLCIvaG9tZS9tYXJlay9ub2RlLXhtbDJqcy9fb3BhbS9saWIvb2NhbWwvbWFyc2hhbC5tbCIsIi9ob21lL21hcmVrL25vZGUteG1sMmpzL19vcGFtL2xpYi9vY2FtbC9hcnJheS5tbCIsIi9ob21lL21hcmVrL25vZGUteG1sMmpzL19vcGFtL2xpYi9vY2FtbC9mbG9hdC5tbCIsIi9ob21lL21hcmVrL25vZGUteG1sMmpzL19vcGFtL2xpYi9vY2FtbC9pbnQzMi5tbCIsIi9ob21lL21hcmVrL25vZGUteG1sMmpzL19vcGFtL2xpYi9vY2FtbC9pbnQ2NC5tbCIsIi9ob21lL21hcmVrL25vZGUteG1sMmpzL19vcGFtL2xpYi9vY2FtbC9uYXRpdmVpbnQubWwiLCIvaG9tZS9tYXJlay9ub2RlLXhtbDJqcy9fb3BhbS9saWIvb2NhbWwvbGV4aW5nLm1sIiwiL2hvbWUvbWFyZWsvbm9kZS14bWwyanMvX29wYW0vbGliL29jYW1sL3BhcnNpbmcubWwiLCIvaG9tZS9tYXJlay9ub2RlLXhtbDJqcy9fb3BhbS9saWIvb2NhbWwvc2V0Lm1sIiwiL2hvbWUvbWFyZWsvbm9kZS14bWwyanMvX29wYW0vbGliL29jYW1sL21hcC5tbCIsIi9ob21lL21hcmVrL25vZGUteG1sMmpzL19vcGFtL2xpYi9vY2FtbC9zdGFjay5tbCIsIi9ob21lL21hcmVrL25vZGUteG1sMmpzL19vcGFtL2xpYi9vY2FtbC9xdWV1ZS5tbCIsIi9ob21lL21hcmVrL25vZGUteG1sMmpzL19vcGFtL2xpYi9vY2FtbC9zdHJlYW0ubWwiLCIvaG9tZS9tYXJlay9ub2RlLXhtbDJqcy9fb3BhbS9saWIvb2NhbWwvYnVmZmVyLm1sIiwiL2hvbWUvbWFyZWsvbm9kZS14bWwyanMvX29wYW0vbGliL29jYW1sL2NhbWxpbnRlcm5hbEZvcm1hdC5tbCIsIi9ob21lL21hcmVrL25vZGUteG1sMmpzL19vcGFtL2xpYi9vY2FtbC9wcmludGYubWwiLCIvaG9tZS9tYXJlay9ub2RlLXhtbDJqcy9fb3BhbS9saWIvb2NhbWwvYXJnLm1sIiwiL2hvbWUvbWFyZWsvbm9kZS14bWwyanMvX29wYW0vbGliL29jYW1sL3ByaW50ZXhjLm1sIiwiL2hvbWUvbWFyZWsvbm9kZS14bWwyanMvX29wYW0vbGliL29jYW1sL2Z1bi5tbCIsIi9ob21lL21hcmVrL25vZGUteG1sMmpzL19vcGFtL2xpYi9vY2FtbC9nYy5tbCIsIi9ob21lL21hcmVrL25vZGUteG1sMmpzL19vcGFtL2xpYi9vY2FtbC9kaWdlc3QubWwiLCIvaG9tZS9tYXJlay9ub2RlLXhtbDJqcy9fb3BhbS9saWIvb2NhbWwvcmFuZG9tLm1sIiwiL2hvbWUvbWFyZWsvbm9kZS14bWwyanMvX29wYW0vbGliL29jYW1sL2hhc2h0YmwubWwiLCIvaG9tZS9tYXJlay9ub2RlLXhtbDJqcy9fb3BhbS9saWIvb2NhbWwvd2Vhay5tbCIsIi9ob21lL21hcmVrL25vZGUteG1sMmpzL19vcGFtL2xpYi9vY2FtbC9mb3JtYXQubWwiLCIvaG9tZS9tYXJlay9ub2RlLXhtbDJqcy9fb3BhbS9saWIvb2NhbWwvc2NhbmYubWwiLCIvaG9tZS9tYXJlay9ub2RlLXhtbDJqcy9fb3BhbS9saWIvb2NhbWwvY2FsbGJhY2subWwiLCIvaG9tZS9tYXJlay9ub2RlLXhtbDJqcy9fb3BhbS9saWIvb2NhbWwvY2FtbGludGVybmFsT08ubWwiLCIvaG9tZS9tYXJlay9ub2RlLXhtbDJqcy9fb3BhbS9saWIvb2NhbWwvY2FtbGludGVybmFsTW9kLm1sIiwiL2hvbWUvbWFyZWsvbm9kZS14bWwyanMvX29wYW0vbGliL29jYW1sL2dlbmxleC5tbCIsIi9ob21lL21hcmVrL25vZGUteG1sMmpzL19vcGFtL2xpYi9vY2FtbC9lcGhlbWVyb24ubWwiLCIvaG9tZS9tYXJlay9ub2RlLXhtbDJqcy9fb3BhbS9saWIvb2NhbWwvZmlsZW5hbWUubWwiLCIvaG9tZS9tYXJlay9ub2RlLXhtbDJqcy9fb3BhbS9saWIvb2NhbWwvY29tcGxleC5tbCIsIi9ob21lL21hcmVrL25vZGUteG1sMmpzL19vcGFtL2xpYi9vY2FtbC9iaWdhcnJheS5tbCIsIi9ob21lL21hcmVrL25vZGUteG1sMmpzL19vcGFtL2xpYi9vY2FtbC9pbl9jaGFubmVsLm1sIiwiL2hvbWUvbWFyZWsvbm9kZS14bWwyanMvX29wYW0vbGliL29jYW1sL291dF9jaGFubmVsLm1sIiwiL2hvbWUvbWFyZWsvbm9kZS14bWwyanMvX29wYW0vbGliL2pzX29mX29jYW1sLWNvbXBpbGVyL3J1bnRpbWUvanNvb19ydW50aW1lX18ubWwiLCIvaG9tZS9tYXJlay9ub2RlLXhtbDJqcy9fb3BhbS9saWIvanNfb2Zfb2NhbWwtY29tcGlsZXIvcnVudGltZS9qc29vX3J1bnRpbWUubWwiLCIvaG9tZS9tYXJlay9ub2RlLXhtbDJqcy9fb3BhbS9saWIvanNfb2Zfb2NhbWwvanNfb2Zfb2NhbWxfXy5tbCIsIi9ob21lL21hcmVrL25vZGUteG1sMmpzL19vcGFtL2xpYi9qc19vZl9vY2FtbC9pbXBvcnQubWwiLCIvaG9tZS9tYXJlay9ub2RlLXhtbDJqcy9fb3BhbS9saWIvanNfb2Zfb2NhbWwvanMubWwiLCIvaG9tZS9tYXJlay9ub2RlLXhtbDJqcy9fb3BhbS9saWIvanNfb2Zfb2NhbWwvZG9tLm1sIiwiL2hvbWUvbWFyZWsvbm9kZS14bWwyanMvX29wYW0vbGliL2pzX29mX29jYW1sL3R5cGVkX2FycmF5Lm1sIiwiL2hvbWUvbWFyZWsvbm9kZS14bWwyanMvX29wYW0vbGliL2pzX29mX29jYW1sL2ZpbGUubWwiLCIvaG9tZS9tYXJlay9ub2RlLXhtbDJqcy9fb3BhbS9saWIvanNfb2Zfb2NhbWwvZG9tX2h0bWwubWwiLCIvaG9tZS9tYXJlay9ub2RlLXhtbDJqcy9fb3BhbS9saWIvanNfb2Zfb2NhbWwvZm9ybS5tbCIsIi9ob21lL21hcmVrL25vZGUteG1sMmpzL19vcGFtL2xpYi9qc19vZl9vY2FtbC94bWxIdHRwUmVxdWVzdC5tbCIsIi9ob21lL21hcmVrL25vZGUteG1sMmpzL19vcGFtL2xpYi9qc19vZl9vY2FtbC93b3JrZXIubWwiLCIvaG9tZS9tYXJlay9ub2RlLXhtbDJqcy9fb3BhbS9saWIvanNfb2Zfb2NhbWwvd2ViU29ja2V0cy5tbCIsIi9ob21lL21hcmVrL25vZGUteG1sMmpzL19vcGFtL2xpYi9qc19vZl9vY2FtbC93ZWJHTC5tbCIsIi9ob21lL21hcmVrL25vZGUteG1sMmpzL19vcGFtL2xpYi9qc19vZl9vY2FtbC9yZWdleHAubWwiLCIvaG9tZS9tYXJlay9ub2RlLXhtbDJqcy9fb3BhbS9saWIvanNfb2Zfb2NhbWwvdXJsLm1sIiwiL2hvbWUvbWFyZWsvbm9kZS14bWwyanMvX29wYW0vbGliL2pzX29mX29jYW1sL3N5c19qcy5tbCIsIi9ob21lL21hcmVrL25vZGUteG1sMmpzL19vcGFtL2xpYi9qc19vZl9vY2FtbC9yZXNpemVPYnNlcnZlci5tbCIsIi9ob21lL21hcmVrL25vZGUteG1sMmpzL19vcGFtL2xpYi9qc19vZl9vY2FtbC9wZXJmb3JtYW5jZU9ic2VydmVyLm1sIiwiL2hvbWUvbWFyZWsvbm9kZS14bWwyanMvX29wYW0vbGliL2pzX29mX29jYW1sL211dGF0aW9uT2JzZXJ2ZXIubWwiLCIvaG9tZS9tYXJlay9ub2RlLXhtbDJqcy9fb3BhbS9saWIvanNfb2Zfb2NhbWwvanN0YWJsZS5tbCIsIi9ob21lL21hcmVrL25vZGUteG1sMmpzL19vcGFtL2xpYi9qc19vZl9vY2FtbC9qc29uLm1sIiwiL2hvbWUvbWFyZWsvbm9kZS14bWwyanMvX29wYW0vbGliL2pzX29mX29jYW1sL2NTUy5tbCIsIi9ob21lL21hcmVrL25vZGUteG1sMmpzL19vcGFtL2xpYi9qc19vZl9vY2FtbC9kb21fZXZlbnRzLm1sIiwiL2hvbWUvbWFyZWsvbm9kZS14bWwyanMvX29wYW0vbGliL2pzX29mX29jYW1sL2RvbV9zdmcubWwiLCIvaG9tZS9tYXJlay9ub2RlLXhtbDJqcy9fb3BhbS9saWIvanNfb2Zfb2NhbWwvZXZlbnRTb3VyY2UubWwiLCIvaG9tZS9tYXJlay9ub2RlLXhtbDJqcy9fb3BhbS9saWIvanNfb2Zfb2NhbWwvZmlyZWJ1Zy5tbCIsIi9ob21lL21hcmVrL25vZGUteG1sMmpzL19vcGFtL2xpYi9qc19vZl9vY2FtbC9nZW9sb2NhdGlvbi5tbCIsIi9ob21lL21hcmVrL25vZGUteG1sMmpzL19vcGFtL2xpYi9qc19vZl9vY2FtbC9pbnRlcnNlY3Rpb25PYnNlcnZlci5tbCIsIi9ob21lL21hcmVrL25vZGUteG1sMmpzL19vcGFtL2xpYi9qc19vZl9vY2FtbC9pbnRsLm1sIiwiL3dvcmtzcGFjZV9yb290L3NyYy9wYXJzZXIubWwiLCIvd29ya3NwYWNlX3Jvb3Qvc3JjL3htbDJqcy5tbCIsIi9ob21lL21hcmVrL25vZGUteG1sMmpzL19vcGFtL2xpYi9vY2FtbC9zdGRfZXhpdC5tbCJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0EsQzs7Rzs7O1E7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RDtPQU9BQztPQWNBRztPQUtBRTtPQU9BQztPQW1FQUc7T0E5WkE3aUI7T0E4akJBMEI7OztFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHOzs7OztHOzs7OztHOzs7OztHOzs7OztHOzs7OztHOzs7OztHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7STs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJO0ssSztLOztLLE07OztPLE07O087O08sUzs7TyxNOztPLEksTyxrQixLOztRLE07Ozs7cUIsTTs7Ozs7dUIsTTs7O1EsTTs7O087USxPO1EsTztRLEs7Ozs7O3NCLE07Ozs7O3dCLE07OztTLE07OztPLE07O0c7O0ksSSxLLGtCLEs7O0c7O0ksSSxLLGtCLEs7O0c7O0ksUzs7b0IsTTtLLFM7OztJO0c7Ryw2QjtHLDZCOzBCLE8saUI7Z0MsTyxpQjs7SSxRO0ksWSxNO0k7Rzs7OzRCLGEsNkI7MEIsYSxtQzs7O0ssUTtLO0ssTztJO0k7OztLLFU7SyxTO0ssVztLLFE7SyxVO0ssVTtLLFk7SyxhO0ssZTtLLFE7SyxPO0ssYTtLLFk7SyxnQjtLLGdCO0ssVTtLLFc7SyxhO0ssYTtLLGU7SyxhO0ssVTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Szs7ZSxtQixnQjs7STs7O00sVyxtQjtNLE8sZ0I7Szs7Ozs7a0I7a0I7OztrQjtrQjs7OztPOzs7Ozs7VyxPO1U7USxTO1EsTztPLE87cUI7OztNOzs7OztPOzs7TTs7OztNOzs7SztJOztLLE07STs7SztJOztLO0k7O0s7Szs7OzttQjtJO0k7Ozs7Szs7SztLO0s7OzsrQixTO0s7OzttQyxTO0s7Ozs7OzsyQixPLDJCOztNOzs7O08sTTtPOzs7VTs7VyxNO1UsTztTO0ssZTtLO0s7SztLLFc7Szs7Ozs7Ozs7Ozs7Ozs7Ozs7YTs7STs7Szs7STs7SyxJOzs7Ozs7STs7SyxvQjs7O2tCO0ssbUQ7SztJO3lCLG9COztLO0s7OztNO007OztLO0k7O0s7Szs7O007TTs7O087Tzs7O1E7UTs7O1M7Uzs7O1U7VTs7O1c7Vzs7O1k7WTs7O2E7YTs7O2M7Yzs7O2U7ZTs7Ozs7Ozs7Ozs7O0s7STs7SztNO0s7STs7SztNLGdCO00saUI7Ozs7OzttQjtNLDhEO007O0s7STs7SyxtQjs7Ozs7OztZOzJCLE07O3FCOztJOztLLEkscUI7Ozs7Ozs7STsyQixRLCtCLFU7O0ssUSwrQjtJOztLO0k7NEIsb0M7MkIsb0M7OEIsTyxnQzs2QixPLGdDOztLOzs7MEI7Yzs7SztJOzs7O00sWTtrQjs7TTtLO0s7TTtPLE07Tzs7Ozs7OztNOzs7OzZCOzs7Ozs4Qix5QixnQjtLOztNOzs7O1E7eUI7UTtROzs7UTt5QjtRO1E7Ozs7Tzt3QjtPO3dCO087Tzs7O007OztLOzs7UTtzQzs7O1E7O087O087O087O087dUI7OztROzs7c0I7OztNO29DOztVLHVEO0s7STs7SztLO0s7SztLO007TTtNOztJOztLOztJOztLO0s7Szs7TTs7TTs7UTtRO1E7O1U7VTtXLE07Ozs7Ozs7VTs7Ozs7OztROztVO1U7VyxNOztVOzs7Ozs7Ozs7O087d0IscUI7Ozs7SztLOzs7OztxQztJO0ksMEI7O0ssSSxPLG9CLE87SyxPO0k7STtJO0k7STtJOztLO0s7SyxJLFcsNkM7Ozs7TSxZO2tCOztNOztJOztLOztJOztLOzs7Ozs7O0s7SztLOztLO3lCO3NCOztPO1E7USxzQjtPOzs7TTtNOztJOztLO0s7TSxxQjtNOztPLEk7TztPO08sSSxxQjtPO1E7UTtTO1M7Ozs7O087UTtRO1M7Uzs7Ozs7TztROzs7USxJOzs7TyxJOzs7TTs7STs7Szs7Ozs7TTs7Tzs7OztPO087Tzs7OztPOztRO1E7Ozs7OztRO1E7OztTO1M7Uzs7UztVLFE7VTs7Ozs7Ozs7O1E7Uzs7Ozs0QixnQjs7Ozs7OztJOztLO0s7TTt1QjtPOztPO3VCO087O0k7O0s7SztNO3VCO087O087O0k7O0s7Ozs7O1UsaUI7O1UsbUIsbUI7Ozs7TyxpQzs7TztPOzs7TTs7STs7SztLOzs7TyxJLHVCLE87Tzs7O3NCLDJCO007TTs7TTtNO007dUIsMkI7O08sc0I7Ozs7STs7SztNOztRO1E7O1U7O1c7VyxNOztVOzs7Uzs7OztPO087Ozs7OzZCOzs7STs7Szs7TTtNO007TTtLOztNO00sb0I7TSxlOztLO0s7OztNO087Tzs7UTtPO087O1E7UTtTLEksaUIsTTs7VTs7Ozs7Ozs7Ozs7VzsrQjs7O1k7Uzs7VTtVO1c7O1c7c0M7Ozs7Uzs7Uzs7aUQ7OztPO087TztPOzs7SztJOztLO3FCO0ssbUI7SztLO0s7Szs7Szs7TyxVO087TztPOzs7Tzt1QjtPO3VCLFc7Tzs7UTtRO1E7Ozs7TztPOzs7O3VCLFc7TztPOzs7O007TTtNO3NCLFc7TztPOzs7O0k7O0s7OztLOzs7OztVLGlCOztVLCtCOztVLHNCOztVLGtDO2tCOzs2QixZO00sUTtNOztJOzs7O007Ozs7SztNO007Ozs7SyxXO0s7STs7Szs7TSxNOzs7Ozs7O3FCOztNO007Ozs7SyxXO0s7NkMsVTtLO0k7O0s7Ozs7Tzs7TTs7OztNOztPO087Ozs7O1EsTTs7Tzs7OztPOzs7Szs7Ozs7Z0M7O2dDO2tCLFk7Ozs7UyxpQjs7Uyw2Qjs7Uzs7UztTO1M7OztJOztLOzs7Ozs7TztPOzs7Ozs7Ozs7Ozs7TztPO087Ozs7TTs7Ozs2Qjs2Qjs4Qjs7O0k7cUIsMEM7O0s7Ozs7O1c7Ozs7OzRCOzRCOzZCOzs7STs7Szs7OztPOztROzs7TztROzs7VSxNO1M7Ozs7O1UsTyxzQjtTLGdCO1M7OztVOzs7Ozs7O1MsTTs7Uzs7OztVLG9COzs7O1E7O1M7Uzs7Ozs7Z0QsTzs7O0k7O0s7OztNOzs7STtvQix3Qjs7SyxVO0ssTztJOztLO0s7SztLOzs7c0MsUzs7O007O08sTztPLE87Ozs7TTs7TyxTOztnQjs7TTs7Tzs7VTs7OztZLGM7WTs7Ozs7O1M7TyxpQixPLGlCOzs7SyxlO0s7SztLO0s7Ozs7Ozs7Ozs7O0k7NkIsYTs7SztJOzs0QixTO0ssTztJOzt3QixZLFM7SztLO0k7OztLOztNO21DO007Ozs7O00sWTt1QztNO00sTzs7Ozs7O00sMkI7TTtNO007O0ssTztJOzs7TSxvQyxnQjs7TztPOzs7O007Ozs7TyxJLEk7OztTOzs7Ozs7OzthOzs7cUI7Ozs0Qzs7Ozs7Ozs7Z0Q7O0s7SyxPO0k7OzswQixpQjtLOzs7O0s7SztLO0s7SyxPOzs7SztNO2tCOzs7OztRO1E7Ozs7OztLO0sscUIsYyx5Qjs7Ozs7Ozs7O2U7NEIsbUI7Ozs7Ozs7Ozs7TztXLFcsaUIsaUI7O00sVTtNOztzQjtlOzs7Ozs7OztlLGlCO007TTtNOzs7OztjLGlCO0s7SyxJLGlDO0s7SztLLGtCO0s7Ozs7O0k7O0s7OztPLE07Ozs7dUI7Tzs7OztNOzs7O08sUzs7Tzs7Ozs7TTs7O0k7OztLO0s7O0k7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0c7O0k7OztJLG9DOztLO3dCLE07SyxPO0k7SSxJLFE7OzsyQjs7O0c7eUIsUzs4QixPLG9CO0c7O0k7Ozs7Ozs7Ozs7STtJOztJO0s7OztTLFU7UyxPO1E7TTs7Ozs7Ozs7Ozs7Ozs7Ozs7Szs7Ozs4QixNOzs7RztxQixPLGdDO0c7OztJOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SSxPO2M7Yzs7OztJLE87Ozs7SSxPOzs7Ozs7Ozs7ZSxZOztlOzs7ZTs7Ozs7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Q0osT0FKaUIzQjtHQVdiO3NCQWJLLE9BNUZkWixnQkE0RjJEO3NCQUQ3QyxPQTNGZEEsZ0JBMkY4QztzQkFEaEMsT0ExRmRBLGdCQTBGb0M7c0JBRHRCLE9BekZkQSxnQkF5RnFDO3NCQUR2QixPQXhGZEEsZ0JBd0Z1QztHQUY3Qzs7Ozs7Ozs7Ozs7RTs7Ozs7Ozs7Ozs7OztHOzs7Ozs7OztHQy9FTTtHQUFBOzs7RSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vIENvcHlyaWdodCAoQykgMjAxMCBKw6lyw7RtZSBWb3VpbGxvblxuLy8gTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X29mZnNldFxudmFyIGNhbWxfaW50NjRfb2Zmc2V0ID0gTWF0aC5wb3coMiwgLTI0KTtcblxuLy9Qcm92aWRlczogTWxJbnQ2NFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9vZmZzZXQsIGNhbWxfcmFpc2VfemVyb19kaXZpZGVcbmZ1bmN0aW9uIE1sSW50NjQgKGxvLG1pLGhpKSB7XG4gIHRoaXMubG8gPSBsbyAmIDB4ZmZmZmZmO1xuICB0aGlzLm1pID0gbWkgJiAweGZmZmZmZjtcbiAgdGhpcy5oaSA9IGhpICYgMHhmZmZmO1xufVxuTWxJbnQ2NC5wcm90b3R5cGUuY2FtbF9jdXN0b20gPSBcIl9qXCJcbk1sSW50NjQucHJvdG90eXBlLmNvcHkgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBuZXcgTWxJbnQ2NCh0aGlzLmxvLHRoaXMubWksdGhpcy5oaSk7XG59XG5cbk1sSW50NjQucHJvdG90eXBlLnVjb21wYXJlID0gZnVuY3Rpb24gKHgpIHtcbiAgaWYgKHRoaXMuaGkgPiB4LmhpKSByZXR1cm4gMTtcbiAgaWYgKHRoaXMuaGkgPCB4LmhpKSByZXR1cm4gLTE7XG4gIGlmICh0aGlzLm1pID4geC5taSkgcmV0dXJuIDE7XG4gIGlmICh0aGlzLm1pIDwgeC5taSkgcmV0dXJuIC0xO1xuICBpZiAodGhpcy5sbyA+IHgubG8pIHJldHVybiAxO1xuICBpZiAodGhpcy5sbyA8IHgubG8pIHJldHVybiAtMTtcbiAgcmV0dXJuIDA7XG59XG5NbEludDY0LnByb3RvdHlwZS5jb21wYXJlID0gZnVuY3Rpb24gKHgpIHtcbiAgdmFyIGhpID0gdGhpcy5oaSA8PCAxNjtcbiAgdmFyIHhoaSA9IHguaGkgPDwgMTY7XG4gIGlmIChoaSA+IHhoaSkgcmV0dXJuIDE7XG4gIGlmIChoaSA8IHhoaSkgcmV0dXJuIC0xO1xuICBpZiAodGhpcy5taSA+IHgubWkpIHJldHVybiAxO1xuICBpZiAodGhpcy5taSA8IHgubWkpIHJldHVybiAtMTtcbiAgaWYgKHRoaXMubG8gPiB4LmxvKSByZXR1cm4gMTtcbiAgaWYgKHRoaXMubG8gPCB4LmxvKSByZXR1cm4gLTE7XG4gIHJldHVybiAwO1xufVxuTWxJbnQ2NC5wcm90b3R5cGUubmVnID0gZnVuY3Rpb24gKCkge1xuICB2YXIgbG8gPSAtIHRoaXMubG87XG4gIHZhciBtaSA9IC0gdGhpcy5taSArIChsbyA+PiAyNCk7XG4gIHZhciBoaSA9IC0gdGhpcy5oaSArIChtaSA+PiAyNCk7XG4gIHJldHVybiBuZXcgTWxJbnQ2NChsbywgbWksIGhpKTtcbn1cbk1sSW50NjQucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh4KSB7XG4gIHZhciBsbyA9IHRoaXMubG8gKyB4LmxvO1xuICB2YXIgbWkgPSB0aGlzLm1pICsgeC5taSArIChsbyA+PiAyNCk7XG4gIHZhciBoaSA9IHRoaXMuaGkgKyB4LmhpICsgKG1pID4+IDI0KTtcbiAgcmV0dXJuIG5ldyBNbEludDY0KGxvLCBtaSwgaGkpO1xufVxuTWxJbnQ2NC5wcm90b3R5cGUuc3ViID0gZnVuY3Rpb24gKHgpIHtcbiAgdmFyIGxvID0gdGhpcy5sbyAtIHgubG87XG4gIHZhciBtaSA9IHRoaXMubWkgLSB4Lm1pICsgKGxvID4+IDI0KTtcbiAgdmFyIGhpID0gdGhpcy5oaSAtIHguaGkgKyAobWkgPj4gMjQpO1xuICByZXR1cm4gbmV3IE1sSW50NjQobG8sIG1pLCBoaSk7XG59XG5NbEludDY0LnByb3RvdHlwZS5tdWwgPSBmdW5jdGlvbiAoeCkge1xuICB2YXIgbG8gPSB0aGlzLmxvICogeC5sbztcbiAgdmFyIG1pID0gKChsbyAqIGNhbWxfaW50NjRfb2Zmc2V0KSB8IDApICsgdGhpcy5taSAqIHgubG8gKyB0aGlzLmxvICogeC5taTtcbiAgdmFyIGhpID0gKChtaSAqIGNhbWxfaW50NjRfb2Zmc2V0KSB8IDApICsgdGhpcy5oaSAqIHgubG8gKyB0aGlzLm1pICogeC5taSArIHRoaXMubG8gKiB4LmhpO1xuICByZXR1cm4gbmV3IE1sSW50NjQobG8sIG1pLCBoaSk7XG59XG5NbEludDY0LnByb3RvdHlwZS5pc1plcm8gPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiAodGhpcy5sb3x0aGlzLm1pfHRoaXMuaGkpID09IDA7XG59XG5NbEludDY0LnByb3RvdHlwZS5pc05lZyA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuICh0aGlzLmhpIDw8IDE2KSA8IDA7XG59XG5NbEludDY0LnByb3RvdHlwZS5hbmQgPSBmdW5jdGlvbiAoeCkge1xuICByZXR1cm4gbmV3IE1sSW50NjQodGhpcy5sbyAmIHgubG8sIHRoaXMubWkgJiB4Lm1pLCB0aGlzLmhpICYgeC5oaSk7XG59XG5NbEludDY0LnByb3RvdHlwZS5vciA9IGZ1bmN0aW9uICh4KSB7XG4gIHJldHVybiBuZXcgTWxJbnQ2NCh0aGlzLmxvfHgubG8sIHRoaXMubWl8eC5taSwgdGhpcy5oaXx4LmhpKTtcbn1cbk1sSW50NjQucHJvdG90eXBlLnhvciA9IGZ1bmN0aW9uICh4KSB7XG4gIHJldHVybiBuZXcgTWxJbnQ2NCh0aGlzLmxvXngubG8sIHRoaXMubWleeC5taSwgdGhpcy5oaV54LmhpKTtcbn1cbk1sSW50NjQucHJvdG90eXBlLnNoaWZ0X2xlZnQgPSBmdW5jdGlvbiAocykge1xuICBzID0gcyAmIDYzO1xuICBpZiAocyA9PSAwKSByZXR1cm4gdGhpcztcbiAgaWYgKHMgPCAyNCkge1xuICAgIHJldHVybiBuZXcgTWxJbnQ2NCAodGhpcy5sbyA8PCBzLFxuICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMubWkgPDwgcykgfCAodGhpcy5sbyA+PiAoMjQgLSBzKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5oaSA8PCBzKSB8ICh0aGlzLm1pID4+ICgyNCAtIHMpKSk7XG4gIH1cbiAgaWYgKHMgPCA0OClcbiAgICByZXR1cm4gbmV3IE1sSW50NjQgKDAsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvIDw8IChzIC0gMjQpLFxuICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMubWkgPDwgKHMgLSAyNCkpIHwgKHRoaXMubG8gPj4gKDQ4IC0gcykpKTtcbiAgcmV0dXJuIG5ldyBNbEludDY0KDAsIDAsIHRoaXMubG8gPDwgKHMgLSA0OCkpXG59XG5NbEludDY0LnByb3RvdHlwZS5zaGlmdF9yaWdodF91bnNpZ25lZCA9IGZ1bmN0aW9uIChzKSB7XG4gIHMgPSBzICYgNjM7XG4gIGlmIChzID09IDApIHJldHVybiB0aGlzO1xuICBpZiAocyA8IDI0KVxuICAgIHJldHVybiBuZXcgTWxJbnQ2NCAoXG4gICAgICAodGhpcy5sbyA+PiBzKSB8ICh0aGlzLm1pIDw8ICgyNCAtIHMpKSxcbiAgICAgICh0aGlzLm1pID4+IHMpIHwgKHRoaXMuaGkgPDwgKDI0IC0gcykpLFxuICAgICAgKHRoaXMuaGkgPj4gcykpO1xuICBpZiAocyA8IDQ4KVxuICAgIHJldHVybiBuZXcgTWxJbnQ2NCAoXG4gICAgICAodGhpcy5taSA+PiAocyAtIDI0KSkgfCAodGhpcy5oaSA8PCAoNDggLSBzKSksXG4gICAgICAodGhpcy5oaSA+PiAocyAtIDI0KSksXG4gICAgICAwKTtcbiAgcmV0dXJuIG5ldyBNbEludDY0ICh0aGlzLmhpID4+IChzIC0gNDgpLCAwLCAwKTtcbn1cbk1sSW50NjQucHJvdG90eXBlLnNoaWZ0X3JpZ2h0ID0gZnVuY3Rpb24gKHMpIHtcbiAgcyA9IHMgJiA2MztcbiAgaWYgKHMgPT0gMCkgcmV0dXJuIHRoaXM7XG4gIHZhciBoID0gKHRoaXMuaGkgPDwgMTYpID4+IDE2O1xuICBpZiAocyA8IDI0KVxuICAgIHJldHVybiBuZXcgTWxJbnQ2NCAoXG4gICAgICAodGhpcy5sbyA+PiBzKSB8ICh0aGlzLm1pIDw8ICgyNCAtIHMpKSxcbiAgICAgICh0aGlzLm1pID4+IHMpIHwgKGggPDwgKDI0IC0gcykpLFxuICAgICAgKCh0aGlzLmhpIDw8IDE2KSA+PiBzKSA+Pj4gMTYpO1xuICB2YXIgc2lnbiA9ICh0aGlzLmhpIDw8IDE2KSA+PiAzMTtcbiAgaWYgKHMgPCA0OClcbiAgICByZXR1cm4gbmV3IE1sSW50NjQgKFxuICAgICAgKHRoaXMubWkgPj4gKHMgLSAyNCkpIHwgKHRoaXMuaGkgPDwgKDQ4IC0gcykpLFxuICAgICAgKHRoaXMuaGkgPDwgMTYpID4+IChzIC0gMjQpID4+IDE2LFxuICAgICAgc2lnbiAmIDB4ZmZmZik7XG4gIHJldHVybiBuZXcgTWxJbnQ2NCAoKHRoaXMuaGkgPDwgMTYpID4+IChzIC0gMzIpLCBzaWduLCBzaWduKTtcbn1cbk1sSW50NjQucHJvdG90eXBlLmxzbDEgPSBmdW5jdGlvbiAoKSB7XG4gIHRoaXMuaGkgPSAodGhpcy5oaSA8PCAxKSB8ICh0aGlzLm1pID4+IDIzKTtcbiAgdGhpcy5taSA9ICgodGhpcy5taSA8PCAxKSB8ICh0aGlzLmxvID4+IDIzKSkgJiAweGZmZmZmZjtcbiAgdGhpcy5sbyA9ICh0aGlzLmxvIDw8IDEpICYgMHhmZmZmZmY7XG59XG5NbEludDY0LnByb3RvdHlwZS5sc3IxID0gZnVuY3Rpb24gKCkge1xuICB0aGlzLmxvID0gKCh0aGlzLmxvID4+PiAxKSB8ICh0aGlzLm1pIDw8IDIzKSkgJiAweGZmZmZmZjtcbiAgdGhpcy5taSA9ICgodGhpcy5taSA+Pj4gMSkgfCAodGhpcy5oaSA8PCAyMykpICYgMHhmZmZmZmY7XG4gIHRoaXMuaGkgPSB0aGlzLmhpID4+PiAxO1xufVxuTWxJbnQ2NC5wcm90b3R5cGUudWRpdm1vZCA9IGZ1bmN0aW9uICh4KSB7XG4gIHZhciBvZmZzZXQgPSAwO1xuICB2YXIgbW9kdWx1cyA9IHRoaXMuY29weSgpO1xuICB2YXIgZGl2aXNvciA9IHguY29weSgpO1xuICB2YXIgcXVvdGllbnQgPSBuZXcgTWxJbnQ2NCgwLDAsMCk7XG4gIHdoaWxlIChtb2R1bHVzLnVjb21wYXJlKGRpdmlzb3IpID4gMCkge1xuICAgIG9mZnNldCsrO1xuICAgIGRpdmlzb3IubHNsMSgpO1xuICB9XG4gIHdoaWxlIChvZmZzZXQgPj0gMCkge1xuICAgIG9mZnNldCAtLTtcbiAgICBxdW90aWVudC5sc2wxKCk7XG4gICAgaWYgKG1vZHVsdXMudWNvbXBhcmUoZGl2aXNvcikgPj0gMCkge1xuICAgICAgcXVvdGllbnQubG8gKys7XG4gICAgICBtb2R1bHVzID0gbW9kdWx1cy5zdWIoZGl2aXNvcik7XG4gICAgfVxuICAgIGRpdmlzb3IubHNyMSgpO1xuICB9XG4gIHJldHVybiB7IHF1b3RpZW50IDogcXVvdGllbnQsIG1vZHVsdXMgOiBtb2R1bHVzIH07XG59XG5NbEludDY0LnByb3RvdHlwZS5kaXYgPSBmdW5jdGlvbiAoeSlcbntcbiAgdmFyIHggPSB0aGlzO1xuICBpZiAoeS5pc1plcm8oKSkgY2FtbF9yYWlzZV96ZXJvX2RpdmlkZSAoKTtcbiAgdmFyIHNpZ24gPSB4LmhpIF4geS5oaTtcbiAgaWYgKHguaGkgJiAweDgwMDApIHggPSB4Lm5lZygpO1xuICBpZiAoeS5oaSAmIDB4ODAwMCkgeSA9IHkubmVnKCk7XG4gIHZhciBxID0geC51ZGl2bW9kKHkpLnF1b3RpZW50O1xuICBpZiAoc2lnbiAmIDB4ODAwMCkgcSA9IHEubmVnKCk7XG4gIHJldHVybiBxO1xufVxuTWxJbnQ2NC5wcm90b3R5cGUubW9kID0gZnVuY3Rpb24gKHkpXG57XG4gIHZhciB4ID0gdGhpcztcbiAgaWYgKHkuaXNaZXJvKCkpIGNhbWxfcmFpc2VfemVyb19kaXZpZGUgKCk7XG4gIHZhciBzaWduID0geC5oaTtcbiAgaWYgKHguaGkgJiAweDgwMDApIHggPSB4Lm5lZygpO1xuICBpZiAoeS5oaSAmIDB4ODAwMCkgeSA9IHkubmVnKCk7XG4gIHZhciByID0geC51ZGl2bW9kKHkpLm1vZHVsdXM7XG4gIGlmIChzaWduICYgMHg4MDAwKSByID0gci5uZWcoKTtcbiAgcmV0dXJuIHI7XG59XG5NbEludDY0LnByb3RvdHlwZS50b0ludCA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRoaXMubG8gfCAodGhpcy5taSA8PCAyNCk7XG59XG5NbEludDY0LnByb3RvdHlwZS50b0Zsb2F0ID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gKCh0aGlzLmhpIDw8IDE2KSAqIE1hdGgucG93KDIsIDMyKSArIHRoaXMubWkgKiBNYXRoLnBvdygyLCAyNCkpICsgdGhpcy5sbztcbn1cbk1sSW50NjQucHJvdG90eXBlLnRvQXJyYXkgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBbdGhpcy5oaSA+PiA4LFxuICAgICAgICAgIHRoaXMuaGkgJiAweGZmLFxuICAgICAgICAgIHRoaXMubWkgPj4gMTYsXG4gICAgICAgICAgKHRoaXMubWkgPj4gOCkgJiAweGZmLFxuICAgICAgICAgIHRoaXMubWkgJiAweGZmLFxuICAgICAgICAgIHRoaXMubG8gPj4gMTYsXG4gICAgICAgICAgKHRoaXMubG8gPj4gOCkgJiAweGZmLFxuICAgICAgICAgIHRoaXMubG8gJiAweGZmXTtcbn1cbk1sSW50NjQucHJvdG90eXBlLmxvMzIgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLmxvIHwgKCh0aGlzLm1pICYgMHhmZikgPDwgMjQpO1xufVxuTWxJbnQ2NC5wcm90b3R5cGUuaGkzMiA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuICgodGhpcy5taSA+Pj4gOCkgJiAweGZmZmYpIHwgKHRoaXMuaGkgPDwgMTYpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X3VsdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF91bHQoeCx5KSB7IHJldHVybiB4LnVjb21wYXJlKHkpIDwgMDsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X2NvbXBhcmUgY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW50NjRfY29tcGFyZSh4LHksIHRvdGFsKSB7IHJldHVybiB4LmNvbXBhcmUoeSkgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X25lZyBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9uZWcgKHgpIHsgcmV0dXJuIHgubmVnKCkgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X2FkZCBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9hZGQgKHgsIHkpIHsgcmV0dXJuIHguYWRkKHkpIH1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9zdWIgY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW50NjRfc3ViICh4LCB5KSB7IHJldHVybiB4LnN1Yih5KSB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfbXVsIGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X29mZnNldFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9tdWwoeCx5KSB7IHJldHVybiB4Lm11bCh5KSB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfaXNfemVybyBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9pc196ZXJvKHgpIHsgcmV0dXJuICt4LmlzWmVybygpOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfaXNfbmVnYXRpdmUgY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW50NjRfaXNfbmVnYXRpdmUoeCkgeyByZXR1cm4gK3guaXNOZWcoKTsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X2FuZCBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9hbmQgKHgsIHkpIHsgcmV0dXJuIHguYW5kKHkpOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfb3IgY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW50NjRfb3IgKHgsIHkpIHsgcmV0dXJuIHgub3IoeSk7IH1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF94b3IgY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW50NjRfeG9yICh4LCB5KSB7IHJldHVybiB4Lnhvcih5KSB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfc2hpZnRfbGVmdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9zaGlmdF9sZWZ0ICh4LCBzKSB7IHJldHVybiB4LnNoaWZ0X2xlZnQocykgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X3NoaWZ0X3JpZ2h0X3Vuc2lnbmVkIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ludDY0X3NoaWZ0X3JpZ2h0X3Vuc2lnbmVkICh4LCBzKSB7IHJldHVybiB4LnNoaWZ0X3JpZ2h0X3Vuc2lnbmVkKHMpIH1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9zaGlmdF9yaWdodCBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9zaGlmdF9yaWdodCAoeCwgcykgeyByZXR1cm4geC5zaGlmdF9yaWdodChzKSB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfZGl2IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ludDY0X2RpdiAoeCwgeSkgeyByZXR1cm4geC5kaXYoeSkgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X21vZCBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9tb2QgKHgsIHkpIHsgcmV0dXJuIHgubW9kKHkpIH1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9vZl9pbnQzMiBjb25zdFxuLy9SZXF1aXJlczogTWxJbnQ2NFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9vZl9pbnQzMiAoeCkge1xuICByZXR1cm4gbmV3IE1sSW50NjQoeCAmIDB4ZmZmZmZmLCAoeCA+PiAyNCkgJiAweGZmZmZmZiwgKHggPj4gMzEpICYgMHhmZmZmKVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X3RvX2ludDMyIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ludDY0X3RvX2ludDMyICh4KSB7IHJldHVybiB4LnRvSW50KCkgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X3RvX2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ludDY0X3RvX2Zsb2F0ICh4KSB7IHJldHVybiB4LnRvRmxvYXQgKCkgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X29mX2Zsb2F0IGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X29mZnNldCwgTWxJbnQ2NFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9vZl9mbG9hdCAoeCkge1xuICBpZiAoeCA8IDApIHggPSBNYXRoLmNlaWwoeCk7XG4gIHJldHVybiBuZXcgTWxJbnQ2NChcbiAgICB4ICYgMHhmZmZmZmYsXG4gICAgTWF0aC5mbG9vcih4ICogY2FtbF9pbnQ2NF9vZmZzZXQpICYgMHhmZmZmZmYsXG4gICAgTWF0aC5mbG9vcih4ICogY2FtbF9pbnQ2NF9vZmZzZXQgKiBjYW1sX2ludDY0X29mZnNldCkgJiAweGZmZmYpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X2Zvcm1hdCBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9wYXJzZV9mb3JtYXQsIGNhbWxfZmluaXNoX2Zvcm1hdHRpbmdcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfaXNfbmVnYXRpdmUsIGNhbWxfaW50NjRfbmVnXG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X29mX2ludDMyLCBjYW1sX2ludDY0X3RvX2ludDMyXG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X2lzX3plcm8sIGNhbWxfc3RyX3JlcGVhdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9mb3JtYXQgKGZtdCwgeCkge1xuICB2YXIgZiA9IGNhbWxfcGFyc2VfZm9ybWF0KGZtdCk7XG4gIGlmIChmLnNpZ25lZGNvbnYgJiYgY2FtbF9pbnQ2NF9pc19uZWdhdGl2ZSh4KSkge1xuICAgIGYuc2lnbiA9IC0xOyB4ID0gY2FtbF9pbnQ2NF9uZWcoeCk7XG4gIH1cbiAgdmFyIGJ1ZmZlciA9IFwiXCI7XG4gIHZhciB3YmFzZSA9IGNhbWxfaW50NjRfb2ZfaW50MzIoZi5iYXNlKTtcbiAgdmFyIGN2dGJsID0gXCIwMTIzNDU2Nzg5YWJjZGVmXCI7XG4gIGRvIHtcbiAgICB2YXIgcCA9IHgudWRpdm1vZCh3YmFzZSk7XG4gICAgeCA9IHAucXVvdGllbnQ7XG4gICAgYnVmZmVyID0gY3Z0YmwuY2hhckF0KGNhbWxfaW50NjRfdG9faW50MzIocC5tb2R1bHVzKSkgKyBidWZmZXI7XG4gIH0gd2hpbGUgKCEgY2FtbF9pbnQ2NF9pc196ZXJvKHgpKTtcbiAgaWYgKGYucHJlYyA+PSAwKSB7XG4gICAgZi5maWxsZXIgPSAnICc7XG4gICAgdmFyIG4gPSBmLnByZWMgLSBidWZmZXIubGVuZ3RoO1xuICAgIGlmIChuID4gMCkgYnVmZmVyID0gY2FtbF9zdHJfcmVwZWF0IChuLCAnMCcpICsgYnVmZmVyO1xuICB9XG4gIHJldHVybiBjYW1sX2ZpbmlzaF9mb3JtYXR0aW5nKGYsIGJ1ZmZlcik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfb2Zfc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX3BhcnNlX3NpZ25fYW5kX2Jhc2UsIGNhbWxfZmFpbHdpdGgsIGNhbWxfcGFyc2VfZGlnaXRcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfb2ZfaW50MzIsIGNhbWxfaW50NjRfdWx0XG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X2FkZCwgY2FtbF9pbnQ2NF9tdWwsIGNhbWxfaW50NjRfbmVnXG4vL1JlcXVpcmVzOiBjYW1sX21sX3N0cmluZ19sZW5ndGgsY2FtbF9zdHJpbmdfdW5zYWZlX2dldCwgTWxJbnQ2NFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9vZl9zdHJpbmcocykge1xuICB2YXIgciA9IGNhbWxfcGFyc2Vfc2lnbl9hbmRfYmFzZSAocyk7XG4gIHZhciBpID0gclswXSwgc2lnbiA9IHJbMV0sIGJhc2UgPSByWzJdO1xuICB2YXIgYmFzZTY0ID0gY2FtbF9pbnQ2NF9vZl9pbnQzMihiYXNlKTtcbiAgdmFyIHRocmVzaG9sZCA9XG4gICAgICBuZXcgTWxJbnQ2NCgweGZmZmZmZiwgMHhmZmZmZmZmLCAweGZmZmYpLnVkaXZtb2QoYmFzZTY0KS5xdW90aWVudDtcbiAgdmFyIGMgPSBjYW1sX3N0cmluZ191bnNhZmVfZ2V0KHMsIGkpO1xuICB2YXIgZCA9IGNhbWxfcGFyc2VfZGlnaXQoYyk7XG4gIGlmIChkIDwgMCB8fCBkID49IGJhc2UpIGNhbWxfZmFpbHdpdGgoXCJpbnRfb2Zfc3RyaW5nXCIpO1xuICB2YXIgcmVzID0gY2FtbF9pbnQ2NF9vZl9pbnQzMihkKTtcbiAgZm9yICg7Oykge1xuICAgIGkrKztcbiAgICBjID0gY2FtbF9zdHJpbmdfdW5zYWZlX2dldChzLCBpKTtcbiAgICBpZiAoYyA9PSA5NSkgY29udGludWU7XG4gICAgZCA9IGNhbWxfcGFyc2VfZGlnaXQoYyk7XG4gICAgaWYgKGQgPCAwIHx8IGQgPj0gYmFzZSkgYnJlYWs7XG4gICAgLyogRGV0ZWN0IG92ZXJmbG93IGluIG11bHRpcGxpY2F0aW9uIGJhc2UgKiByZXMgKi9cbiAgICBpZiAoY2FtbF9pbnQ2NF91bHQodGhyZXNob2xkLCByZXMpKSBjYW1sX2ZhaWx3aXRoKFwiaW50X29mX3N0cmluZ1wiKTtcbiAgICBkID0gY2FtbF9pbnQ2NF9vZl9pbnQzMihkKTtcbiAgICByZXMgPSBjYW1sX2ludDY0X2FkZChjYW1sX2ludDY0X211bChiYXNlNjQsIHJlcyksIGQpO1xuICAgIC8qIERldGVjdCBvdmVyZmxvdyBpbiBhZGRpdGlvbiAoYmFzZSAqIHJlcykgKyBkICovXG4gICAgaWYgKGNhbWxfaW50NjRfdWx0KHJlcywgZCkpIGNhbWxfZmFpbHdpdGgoXCJpbnRfb2Zfc3RyaW5nXCIpO1xuICB9XG4gIGlmIChpICE9IGNhbWxfbWxfc3RyaW5nX2xlbmd0aChzKSkgY2FtbF9mYWlsd2l0aChcImludF9vZl9zdHJpbmdcIik7XG4gIGlmIChiYXNlID09IDEwICYmIGNhbWxfaW50NjRfdWx0KG5ldyBNbEludDY0KDAsIDAsIDB4ODAwMCksIHJlcykpXG4gICAgY2FtbF9mYWlsd2l0aChcImludF9vZl9zdHJpbmdcIik7XG4gIGlmIChzaWduIDwgMCkgcmVzID0gY2FtbF9pbnQ2NF9uZWcocmVzKTtcbiAgcmV0dXJuIHJlcztcbn1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9jcmVhdGVfbG9fbWlfaGkgY29uc3Rcbi8vUmVxdWlyZXM6IE1sSW50NjRcbmZ1bmN0aW9uIGNhbWxfaW50NjRfY3JlYXRlX2xvX21pX2hpKGxvLCBtaSwgaGkpe1xuICByZXR1cm4gbmV3IE1sSW50NjQobG8sIG1pLCBoaSlcbn1cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfY3JlYXRlX2xvX2hpIGNvbnN0XG4vL1JlcXVpcmVzOiBNbEludDY0XG5mdW5jdGlvbiBjYW1sX2ludDY0X2NyZWF0ZV9sb19oaShsbywgaGkpe1xuICByZXR1cm4gbmV3IE1sSW50NjQgKFxuICAgIGxvICYgMHhmZmZmZmYsXG4gICAgKChsbyA+Pj4gMjQpICYgMHhmZikgfCAoKGhpICYgMHhmZmZmKSA8PCA4KSxcbiAgICAoaGkgPj4+IDE2KSAmIDB4ZmZmZik7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X2xvMzIgY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW50NjRfbG8zMih2KXsgcmV0dXJuIHYubG8zMigpIH1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9oaTMyIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ludDY0X2hpMzIodil7IHJldHVybiB2LmhpMzIoKSB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfb2ZfYnl0ZXMgY29uc3Rcbi8vUmVxdWlyZXM6IE1sSW50NjRcbmZ1bmN0aW9uIGNhbWxfaW50NjRfb2ZfYnl0ZXMoYSkge1xuICByZXR1cm4gbmV3IE1sSW50NjQoYVs3XSA8PCAwIHwgKGFbNl0gPDwgOCkgfCAoYVs1XSA8PCAxNiksXG4gICAgICAgICAgICAgICAgICAgICBhWzRdIDw8IDAgfCAoYVszXSA8PCA4KSB8IChhWzJdIDw8IDE2KSxcbiAgICAgICAgICAgICAgICAgICAgIGFbMV0gPDwgMCB8IChhWzBdIDw8IDgpKTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfdG9fYnl0ZXMgY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW50NjRfdG9fYnl0ZXMoeCkgeyByZXR1cm4geC50b0FycmF5KCkgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X2hhc2ggY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW50NjRfaGFzaCh2KXtcbiAgcmV0dXJuICh2LmxvMzIoKSkgXiAodi5oaTMyKCkpXG59XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vLyBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxNCBKw6lyw7RtZSBWb3VpbGxvblxuLy8gTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vLyBBbiBPQ2FtbCBzdHJpbmcgaXMgYW4gb2JqZWN0IHdpdGggdGhyZWUgZmllbGRzOlxuLy8gLSB0YWcgJ3QnXG4vLyAtIGxlbmd0aCAnbCdcbi8vIC0gY29udGVudHMgJ2MnXG4vL1xuLy8gVGhlIGNvbnRlbnRzIG9mIHRoZSBzdHJpbmcgY2FuIGJlIGVpdGhlciBhIEphdmFTY3JpcHQgYXJyYXkgb3Jcbi8vIGEgSmF2YVNjcmlwdCBzdHJpbmcuIFRoZSBsZW5ndGggb2YgdGhpcyBzdHJpbmcgY2FuIGJlIGxlc3MgdGhhbiB0aGVcbi8vIGxlbmd0aCBvZiB0aGUgT0NhbWwgc3RyaW5nLiBJbiB0aGlzIGNhc2UsIHJlbWFpbmluZyBieXRlcyBhcmVcbi8vIGFzc3VtZWQgdG8gYmUgemVyb2VzLiBBcnJheXMgYXJlIG11dGFibGUgYnV0IGNvbnN1bWVzIG1vcmUgbWVtb3J5XG4vLyB0aGFuIHN0cmluZ3MuIEEgY29tbW9uIHBhdHRlcm4gaXMgdG8gc3RhcnQgZnJvbSBhbiBlbXB0eSBzdHJpbmcgYW5kXG4vLyBwcm9ncmVzc2l2ZWx5IGZpbGwgaXQgZnJvbSB0aGUgc3RhcnQuIFBhcnRpYWwgc3RyaW5ncyBtYWtlcyBpdFxuLy8gcG9zc2libGUgdG8gaW1wbGVtZW50IHRoaXMgZWZmaWNpZW50bHkuXG4vL1xuLy8gV2hlbiBjb252ZXJ0aW5nIHRvIGFuZCBmcm9tIFVURi0xNiwgd2Uga2VlcCB0cmFjayBvZiB3aGV0aGVyIHRoZVxuLy8gc3RyaW5nIGlzIGNvbXBvc2VkIG9ubHkgb2YgQVNDSUkgY2hhcmFjdGVycyAoaW4gd2hpY2ggY2FzZSwgbm9cbi8vIGNvbnZlcnNpb24gbmVlZHMgdG8gYmUgcGVyZm9ybWVkKSBvciBub3QuXG4vL1xuLy8gVGhlIHN0cmluZyB0YWcgY2FuIHRodXMgdGFrZSB0aGUgZm9sbG93aW5nIHZhbHVlczpcbi8vICAgZnVsbCBzdHJpbmcgICAgIEJZVEUgfCBVTktOT1dOOiAgICAgIDBcbi8vICAgICAgICAgICAgICAgICAgIEJZVEUgfCBBU0NJSTogICAgICAgIDlcbi8vICAgICAgICAgICAgICAgICAgIEJZVEUgfCBOT1RfQVNDSUk6ICAgIDhcbi8vICAgc3RyaW5nIHByZWZpeCAgIFBBUlRJQUw6ICAgICAgICAgICAgIDJcbi8vICAgYXJyYXkgICAgICAgICAgIEFSUkFZOiAgICAgICAgICAgICAgIDRcbi8vXG4vLyBPbmUgY2FuIHVzZSBiaXQgbWFza2luZyB0byBkaXNjcmltaW5hdGUgdGhlc2UgZGlmZmVyZW50IGNhc2VzOlxuLy8gICBrbm93bl9lbmNvZGluZyh4KSA9IHgmOFxuLy8gICBpc19hc2NpaSh4KSA9ICAgICAgIHgmMVxuLy8gICBraW5kKHgpID0gICAgICAgICAgIHgmNlxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cl9yZXBlYXRcbmZ1bmN0aW9uIGNhbWxfc3RyX3JlcGVhdChuLCBzKSB7XG4gIGlmKG4gPT0gMCkgcmV0dXJuIFwiXCI7XG4gIGlmIChzLnJlcGVhdCkge3JldHVybiBzLnJlcGVhdChuKTt9IC8vIEVDTUFzY3JpcHQgNiBhbmQgRmlyZWZveCAyNCtcbiAgdmFyIHIgPSBcIlwiLCBsID0gMDtcbiAgZm9yKDs7KSB7XG4gICAgaWYgKG4gJiAxKSByICs9IHM7XG4gICAgbiA+Pj0gMTtcbiAgICBpZiAobiA9PSAwKSByZXR1cm4gcjtcbiAgICBzICs9IHM7XG4gICAgbCsrO1xuICAgIGlmIChsID09IDkpIHtcbiAgICAgIHMuc2xpY2UoMCwxKTsgLy8gZmxhdHRlbiB0aGUgc3RyaW5nXG4gICAgICAvLyB0aGVuLCB0aGUgZmxhdHRlbmluZyBvZiB0aGUgd2hvbGUgc3RyaW5nIHdpbGwgYmUgZmFzdGVyLFxuICAgICAgLy8gYXMgaXQgd2lsbCBiZSBjb21wb3NlZCBvZiBsYXJnZXIgcGllY2VzXG4gICAgfVxuICB9XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3ViYXJyYXlfdG9fanNieXRlc1xuLy9XZWFrZGVmXG4vLyBQcmUgRUNNQVNjcmlwdCA1LCBbYXBwbHldIHdvdWxkIG5vdCBzdXBwb3J0IGFycmF5LWxpa2Ugb2JqZWN0LlxuLy8gSW4gc3VjaCBzZXR1cCwgVHlwZWRfYXJyYXkgd291bGQgYmUgaW1wbGVtZW50ZWQgYXMgcG9seWZpbGwsIGFuZCBbZi5hcHBseV0gd291bGRcbi8vIGZhaWwgaGVyZS4gTWFyayB0aGUgcHJpbWl0aXZlIGFzIFdlYWtkZWYsIHNvIHRoYXQgcGVvcGxlIGNhbiBvdmVycmlkZSBpdCBlYXNpbHkuXG5mdW5jdGlvbiBjYW1sX3N1YmFycmF5X3RvX2pzYnl0ZXMgKGEsIGksIGxlbikge1xuICB2YXIgZiA9IFN0cmluZy5mcm9tQ2hhckNvZGU7XG4gIGlmIChpID09IDAgJiYgbGVuIDw9IDQwOTYgJiYgbGVuID09IGEubGVuZ3RoKSByZXR1cm4gZi5hcHBseSAobnVsbCwgYSk7XG4gIHZhciBzID0gXCJcIjtcbiAgZm9yICg7IDAgPCBsZW47IGkgKz0gMTAyNCxsZW4tPTEwMjQpXG4gICAgcyArPSBmLmFwcGx5IChudWxsLCBhLnNsaWNlKGksaSArIE1hdGgubWluKGxlbiwgMTAyNCkpKTtcbiAgcmV0dXJuIHM7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfdXRmOF9vZl91dGYxNlxuZnVuY3Rpb24gY2FtbF91dGY4X29mX3V0ZjE2KHMpIHtcbiAgZm9yICh2YXIgYiA9IFwiXCIsIHQgPSBiLCBjLCBkLCBpID0gMCwgbCA9IHMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgYyA9IHMuY2hhckNvZGVBdChpKTtcbiAgICBpZiAoYyA8IDB4ODApIHtcbiAgICAgIGZvciAodmFyIGogPSBpICsgMTsgKGogPCBsKSAmJiAoYyA9IHMuY2hhckNvZGVBdChqKSkgPCAweDgwOyBqKyspO1xuICAgICAgaWYgKGogLSBpID4gNTEyKSB7IHQuc3Vic3RyKDAsIDEpOyBiICs9IHQ7IHQgPSBcIlwiOyBiICs9IHMuc2xpY2UoaSwgaikgfVxuICAgICAgZWxzZSB0ICs9IHMuc2xpY2UoaSwgaik7XG4gICAgICBpZiAoaiA9PSBsKSBicmVhaztcbiAgICAgIGkgPSBqO1xuICAgIH1cbiAgICBpZiAoYyA8IDB4ODAwKSB7XG4gICAgICB0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoMHhjMCB8IChjID4+IDYpKTtcbiAgICAgIHQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSgweDgwIHwgKGMgJiAweDNmKSk7XG4gICAgfSBlbHNlIGlmIChjIDwgMHhkODAwIHx8IGMgPj0gMHhkZmZmKSB7XG4gICAgICB0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoMHhlMCB8IChjID4+IDEyKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwIHwgKChjID4+IDYpICYgMHgzZiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCB8IChjICYgMHgzZikpO1xuICAgIH0gZWxzZSBpZiAoYyA+PSAweGRiZmYgfHwgaSArIDEgPT0gbCB8fFxuICAgICAgICAgICAgICAgKGQgPSBzLmNoYXJDb2RlQXQoaSArIDEpKSA8IDB4ZGMwMCB8fCBkID4gMHhkZmZmKSB7XG4gICAgICAvLyBVbm1hdGNoZWQgc3Vycm9nYXRlIHBhaXIsIHJlcGxhY2VkIGJ5IFxcdWZmZmQgKHJlcGxhY2VtZW50IGNoYXJhY3RlcilcbiAgICAgIHQgKz0gXCJcXHhlZlxceGJmXFx4YmRcIjtcbiAgICB9IGVsc2Uge1xuICAgICAgaSsrO1xuICAgICAgYyA9IChjIDw8IDEwKSArIGQgLSAweDM1ZmRjMDA7XG4gICAgICB0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoMHhmMCB8IChjID4+IDE4KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwIHwgKChjID4+IDEyKSAmIDB4M2YpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAgfCAoKGMgPj4gNikgJiAweDNmKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwIHwgKGMgJiAweDNmKSk7XG4gICAgfVxuICAgIGlmICh0Lmxlbmd0aCA+IDEwMjQpIHt0LnN1YnN0cigwLCAxKTsgYiArPSB0OyB0ID0gXCJcIjt9XG4gIH1cbiAgcmV0dXJuIGIrdDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF91dGYxNl9vZl91dGY4XG5mdW5jdGlvbiBjYW1sX3V0ZjE2X29mX3V0Zjgocykge1xuICBmb3IgKHZhciBiID0gXCJcIiwgdCA9IFwiXCIsIGMsIGMxLCBjMiwgdiwgaSA9IDAsIGwgPSBzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgIGMxID0gcy5jaGFyQ29kZUF0KGkpO1xuICAgIGlmIChjMSA8IDB4ODApIHtcbiAgICAgIGZvciAodmFyIGogPSBpICsgMTsgKGogPCBsKSAmJiAoYzEgPSBzLmNoYXJDb2RlQXQoaikpIDwgMHg4MDsgaisrKTtcbiAgICAgIGlmIChqIC0gaSA+IDUxMikgeyB0LnN1YnN0cigwLCAxKTsgYiArPSB0OyB0ID0gXCJcIjsgYiArPSBzLnNsaWNlKGksIGopIH1cbiAgICAgIGVsc2UgdCArPSBzLnNsaWNlKGksIGopO1xuICAgICAgaWYgKGogPT0gbCkgYnJlYWs7XG4gICAgICBpID0gajtcbiAgICB9XG4gICAgdiA9IDE7XG4gICAgaWYgKCgrK2kgPCBsKSAmJiAoKChjMiA9IHMuY2hhckNvZGVBdChpKSkgJiAtNjQpID09IDEyOCkpIHtcbiAgICAgIGMgPSBjMiArIChjMSA8PCA2KTtcbiAgICAgIGlmIChjMSA8IDB4ZTApIHtcbiAgICAgICAgdiA9IGMgLSAweDMwODA7XG4gICAgICAgIGlmICh2IDwgMHg4MCkgdiA9IDE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2ID0gMjtcbiAgICAgICAgaWYgKCgrK2kgPCBsKSAmJiAoKChjMiA9IHMuY2hhckNvZGVBdChpKSkgJiAtNjQpID09IDEyOCkpIHtcbiAgICAgICAgICBjID0gYzIgKyAoYyA8PCA2KTtcbiAgICAgICAgICBpZiAoYzEgPCAweGYwKSB7XG4gICAgICAgICAgICB2ID0gYyAtIDB4ZTIwODA7XG4gICAgICAgICAgICBpZiAoKHYgPCAweDgwMCkgfHwgKCh2ID49IDB4ZDdmZikgJiYgKHYgPCAweGUwMDApKSkgdiA9IDI7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHYgPSAzO1xuICAgICAgICAgICAgaWYgKCgrK2kgPCBsKSAmJiAoKChjMiA9IHMuY2hhckNvZGVBdChpKSkgJiAtNjQpID09IDEyOCkgJiZcbiAgICAgICAgICAgICAgICAoYzEgPCAweGY1KSkge1xuICAgICAgICAgICAgICB2ID0gYzIgLSAweDNjODIwODAgKyAoYyA8PCA2KTtcbiAgICAgICAgICAgICAgaWYgKHYgPCAweDEwMDAwIHx8IHYgPiAweDEwZmZmZikgdiA9IDM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh2IDwgNCkgeyAvLyBJbnZhbGlkIHNlcXVlbmNlXG4gICAgICBpIC09IHY7XG4gICAgICB0ICs9IFwiXFx1ZmZmZFwiO1xuICAgIH0gZWxzZSBpZiAodiA+IDB4ZmZmZilcbiAgICAgIHQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSgweGQ3YzAgKyAodiA+PiAxMCksIDB4ZGMwMCArICh2ICYgMHgzRkYpKVxuICAgIGVsc2VcbiAgICAgIHQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSh2KTtcbiAgICBpZiAodC5sZW5ndGggPiAxMDI0KSB7dC5zdWJzdHIoMCwgMSk7IGIgKz0gdDsgdCA9IFwiXCI7fVxuICB9XG4gIHJldHVybiBiK3Q7XG59XG5cbi8vUHJvdmlkZXM6IGpzb29faXNfYXNjaWlcbmZ1bmN0aW9uIGpzb29faXNfYXNjaWkgKHMpIHtcbiAgLy8gVGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBnZXRzIGJldHRlciBhdCBhcm91bmQgdGhpcyBwb2ludCBmb3IgYWxsIGJyb3dzZXJzXG4gIGlmIChzLmxlbmd0aCA8IDI0KSB7XG4gICAgLy8gU3BpZGVybW9ua2V5IGdldHMgbXVjaCBzbG93ZXIgd2hlbiBzLmxlbmd0aCA+PSAyNCAob24gNjQgYml0IGFyY2hzKVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcy5sZW5ndGg7IGkrKykgaWYgKHMuY2hhckNvZGVBdChpKSA+IDEyNykgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGVsc2VcbiAgICByZXR1cm4gIS9bXlxceDAwLVxceDdmXS8udGVzdChzKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ieXRlc191bnNhZmVfZ2V0IG11dGFibGVcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfdW5zYWZlX2dldCAocywgaSkge1xuICBzd2l0Y2ggKHMudCAmIDYpIHtcbiAgZGVmYXVsdDogLyogUEFSVElBTCAqL1xuICAgIGlmIChpID49IHMuYy5sZW5ndGgpIHJldHVybiAwO1xuICBjYXNlIDA6IC8qIEJZVEVTICovXG4gICAgcmV0dXJuIHMuYy5jaGFyQ29kZUF0KGkpO1xuICBjYXNlIDQ6IC8qIEFSUkFZICovXG4gICAgcmV0dXJuIHMuY1tpXVxuICB9XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfdW5zYWZlX3NldFxuLy9SZXF1aXJlczogY2FtbF9jb252ZXJ0X2J5dGVzX3RvX2FycmF5XG5mdW5jdGlvbiBjYW1sX2J5dGVzX3Vuc2FmZV9zZXQgKHMsIGksIGMpIHtcbiAgLy8gVGhlIE9DYW1sIGNvbXBpbGVyIHVzZXMgQ2hhci51bnNhZmVfY2hyIG9uIGludGVnZXJzIGxhcmdlciB0aGFuIDI1NSFcbiAgYyAmPSAweGZmO1xuICBpZiAocy50ICE9IDQgLyogQVJSQVkgKi8pIHtcbiAgICBpZiAoaSA9PSBzLmMubGVuZ3RoKSB7XG4gICAgICBzLmMgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSAoYyk7XG4gICAgICBpZiAoaSArIDEgPT0gcy5sKSBzLnQgPSAwOyAvKkJZVEVTIHwgVU5LT1dOKi9cbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICBjYW1sX2NvbnZlcnRfYnl0ZXNfdG9fYXJyYXkgKHMpO1xuICB9XG4gIHMuY1tpXSA9IGM7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19ib3VuZF9lcnJvclxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBjYW1sX3N0cmluZ19ib3VuZF9lcnJvciAoKSB7XG4gIGNhbWxfaW52YWxpZF9hcmd1bWVudCAoXCJpbmRleCBvdXQgb2YgYm91bmRzXCIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX2JvdW5kX2Vycm9yXG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfYm91bmRfZXJyb3IgKCkge1xuICBjYW1sX2ludmFsaWRfYXJndW1lbnQgKFwiaW5kZXggb3V0IG9mIGJvdW5kc1wiKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfZ2V0XG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19ib3VuZF9lcnJvciwgY2FtbF9zdHJpbmdfdW5zYWZlX2dldFxuLy9SZXF1aXJlczogY2FtbF9tbF9zdHJpbmdfbGVuZ3RoXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19nZXQgKHMsIGkpIHtcbiAgaWYgKGkgPj4+IDAgPj0gY2FtbF9tbF9zdHJpbmdfbGVuZ3RoKHMpKSBjYW1sX3N0cmluZ19ib3VuZF9lcnJvcigpO1xuICByZXR1cm4gY2FtbF9zdHJpbmdfdW5zYWZlX2dldCAocywgaSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX2dldDE2XG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ191bnNhZmVfZ2V0LCBjYW1sX3N0cmluZ19ib3VuZF9lcnJvclxuLy9SZXF1aXJlczogY2FtbF9tbF9zdHJpbmdfbGVuZ3RoXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19nZXQxNihzLGkpIHtcbiAgaWYgKGkgPj4+IDAgPj0gY2FtbF9tbF9zdHJpbmdfbGVuZ3RoKHMpIC0gMSkgY2FtbF9zdHJpbmdfYm91bmRfZXJyb3IoKTtcbiAgdmFyIGIxID0gY2FtbF9zdHJpbmdfdW5zYWZlX2dldCAocywgaSksXG4gICAgICBiMiA9IGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQgKHMsIGkgKyAxKTtcbiAgcmV0dXJuIChiMiA8PCA4IHwgYjEpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX2dldDE2XG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX3Vuc2FmZV9nZXQsIGNhbWxfYnl0ZXNfYm91bmRfZXJyb3JcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfZ2V0MTYocyxpKSB7XG4gIGlmIChpID4+PiAwID49IHMubCAtIDEpIGNhbWxfYnl0ZXNfYm91bmRfZXJyb3IoKTtcbiAgdmFyIGIxID0gY2FtbF9ieXRlc191bnNhZmVfZ2V0IChzLCBpKSxcbiAgICAgIGIyID0gY2FtbF9ieXRlc191bnNhZmVfZ2V0IChzLCBpICsgMSk7XG4gIHJldHVybiAoYjIgPDwgOCB8IGIxKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfZ2V0MzJcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQsIGNhbWxfc3RyaW5nX2JvdW5kX2Vycm9yXG4vL1JlcXVpcmVzOiBjYW1sX21sX3N0cmluZ19sZW5ndGhcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX2dldDMyKHMsaSkge1xuICBpZiAoaSA+Pj4gMCA+PSBjYW1sX21sX3N0cmluZ19sZW5ndGgocykgLSAzKSBjYW1sX3N0cmluZ19ib3VuZF9lcnJvcigpO1xuICB2YXIgYjEgPSBjYW1sX3N0cmluZ191bnNhZmVfZ2V0IChzLCBpKSxcbiAgICAgIGIyID0gY2FtbF9zdHJpbmdfdW5zYWZlX2dldCAocywgaSArIDEpLFxuICAgICAgYjMgPSBjYW1sX3N0cmluZ191bnNhZmVfZ2V0IChzLCBpICsgMiksXG4gICAgICBiNCA9IGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQgKHMsIGkgKyAzKTtcbiAgcmV0dXJuIChiNCA8PCAyNCB8IGIzIDw8IDE2IHwgYjIgPDwgOCB8IGIxKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ieXRlc19nZXQzMlxuLy9SZXF1aXJlczogY2FtbF9ieXRlc191bnNhZmVfZ2V0LCBjYW1sX2J5dGVzX2JvdW5kX2Vycm9yXG5mdW5jdGlvbiBjYW1sX2J5dGVzX2dldDMyKHMsaSkge1xuICBpZiAoaSA+Pj4gMCA+PSBzLmwgLSAzKSBjYW1sX2J5dGVzX2JvdW5kX2Vycm9yKCk7XG4gIHZhciBiMSA9IGNhbWxfYnl0ZXNfdW5zYWZlX2dldCAocywgaSksXG4gICAgICBiMiA9IGNhbWxfYnl0ZXNfdW5zYWZlX2dldCAocywgaSArIDEpLFxuICAgICAgYjMgPSBjYW1sX2J5dGVzX3Vuc2FmZV9nZXQgKHMsIGkgKyAyKSxcbiAgICAgIGI0ID0gY2FtbF9ieXRlc191bnNhZmVfZ2V0IChzLCBpICsgMyk7XG4gIHJldHVybiAoYjQgPDwgMjQgfCBiMyA8PCAxNiB8IGIyIDw8IDggfCBiMSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX2dldDY0XG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ191bnNhZmVfZ2V0LCBjYW1sX3N0cmluZ19ib3VuZF9lcnJvclxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9vZl9ieXRlc1xuLy9SZXF1aXJlczogY2FtbF9tbF9zdHJpbmdfbGVuZ3RoXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19nZXQ2NChzLGkpIHtcbiAgaWYgKGkgPj4+IDAgPj0gY2FtbF9tbF9zdHJpbmdfbGVuZ3RoKHMpIC0gNykgY2FtbF9zdHJpbmdfYm91bmRfZXJyb3IoKTtcbiAgdmFyIGEgPSBuZXcgQXJyYXkoOCk7XG4gIGZvcih2YXIgaiA9IDA7IGogPCA4OyBqKyspe1xuICAgIGFbNyAtIGpdID0gY2FtbF9zdHJpbmdfdW5zYWZlX2dldCAocywgaSArIGopO1xuICB9XG4gIHJldHVybiBjYW1sX2ludDY0X29mX2J5dGVzKGEpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX2dldDY0XG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX3Vuc2FmZV9nZXQsIGNhbWxfYnl0ZXNfYm91bmRfZXJyb3Jcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfb2ZfYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfZ2V0NjQocyxpKSB7XG4gIGlmIChpID4+PiAwID49IHMubCAtIDcpIGNhbWxfYnl0ZXNfYm91bmRfZXJyb3IoKTtcbiAgdmFyIGEgPSBuZXcgQXJyYXkoOCk7XG4gIGZvcih2YXIgaiA9IDA7IGogPCA4OyBqKyspe1xuICAgIGFbNyAtIGpdID0gY2FtbF9ieXRlc191bnNhZmVfZ2V0IChzLCBpICsgaik7XG4gIH1cbiAgcmV0dXJuIGNhbWxfaW50NjRfb2ZfYnl0ZXMoYSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfZ2V0XG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX2JvdW5kX2Vycm9yLCBjYW1sX2J5dGVzX3Vuc2FmZV9nZXRcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfZ2V0IChzLCBpKSB7XG4gIGlmIChpID4+PiAwID49IHMubCkgY2FtbF9ieXRlc19ib3VuZF9lcnJvcigpO1xuICByZXR1cm4gY2FtbF9ieXRlc191bnNhZmVfZ2V0IChzLCBpKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfc2V0XG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG4vL0lmOiBqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX3NldCAocywgaSwgYykge1xuICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF9zdHJpbmdfc2V0XCIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19zZXRcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX3Vuc2FmZV9zZXQsIGNhbWxfc3RyaW5nX2JvdW5kX2Vycm9yXG4vL0lmOiAhanMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19zZXQgKHMsIGksIGMpIHtcbiAgaWYgKGkgPj4+IDAgPj0gcy5sKSBjYW1sX3N0cmluZ19ib3VuZF9lcnJvcigpO1xuICByZXR1cm4gY2FtbF9zdHJpbmdfdW5zYWZlX3NldCAocywgaSwgYyk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfc2V0MTZcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfYm91bmRfZXJyb3IsIGNhbWxfYnl0ZXNfdW5zYWZlX3NldFxuZnVuY3Rpb24gY2FtbF9ieXRlc19zZXQxNihzLGksaTE2KXtcbiAgaWYgKGkgPj4+IDAgPj0gcy5sIC0gMSkgY2FtbF9ieXRlc19ib3VuZF9lcnJvcigpO1xuICB2YXIgYjIgPSAweEZGICYgaTE2ID4+IDgsXG4gICAgICBiMSA9IDB4RkYgJiBpMTY7XG4gIGNhbWxfYnl0ZXNfdW5zYWZlX3NldCAocywgaSArIDAsIGIxKTtcbiAgY2FtbF9ieXRlc191bnNhZmVfc2V0IChzLCBpICsgMSwgYjIpO1xuICByZXR1cm4gMFxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19zZXQxNlxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuLy9JZjoganMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19zZXQxNihzLGksaTE2KXtcbiAgY2FtbF9mYWlsd2l0aChcImNhbWxfc3RyaW5nX3NldDE2XCIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19zZXQxNlxuLy9SZXF1aXJlczogY2FtbF9ieXRlc19zZXQxNlxuLy9JZjogIWpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfc2V0MTYocyxpLGkxNil7XG4gIHJldHVybiBjYW1sX2J5dGVzX3NldDE2KHMsaSxpMTYpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX3NldDMyXG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX2JvdW5kX2Vycm9yLCBjYW1sX2J5dGVzX3Vuc2FmZV9zZXRcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfc2V0MzIocyxpLGkzMil7XG4gIGlmIChpID4+PiAwID49IHMubCAtIDMpIGNhbWxfYnl0ZXNfYm91bmRfZXJyb3IoKTtcbiAgdmFyIGI0ID0gMHhGRiAmIGkzMiA+PiAyNCxcbiAgICAgIGIzID0gMHhGRiAmIGkzMiA+PiAxNixcbiAgICAgIGIyID0gMHhGRiAmIGkzMiA+PiA4LFxuICAgICAgYjEgPSAweEZGICYgaTMyO1xuICBjYW1sX2J5dGVzX3Vuc2FmZV9zZXQgKHMsIGkgKyAwLCBiMSk7XG4gIGNhbWxfYnl0ZXNfdW5zYWZlX3NldCAocywgaSArIDEsIGIyKTtcbiAgY2FtbF9ieXRlc191bnNhZmVfc2V0IChzLCBpICsgMiwgYjMpO1xuICBjYW1sX2J5dGVzX3Vuc2FmZV9zZXQgKHMsIGkgKyAzLCBiNCk7XG4gIHJldHVybiAwXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX3NldDMyXG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG4vL0lmOiBqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX3NldDMyKHMsaSxpMzIpe1xuICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF9zdHJpbmdfc2V0MzJcIik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX3NldDMyXG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX3NldDMyXG4vL0lmOiAhanMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19zZXQzMihzLGksaTMyKXtcbiAgcmV0dXJuIGNhbWxfYnl0ZXNfc2V0MzIocyxpLGkzMik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfc2V0NjRcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfYm91bmRfZXJyb3IsIGNhbWxfYnl0ZXNfdW5zYWZlX3NldFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF90b19ieXRlc1xuZnVuY3Rpb24gY2FtbF9ieXRlc19zZXQ2NChzLGksaTY0KXtcbiAgaWYgKGkgPj4+IDAgPj0gcy5sIC0gNykgY2FtbF9ieXRlc19ib3VuZF9lcnJvcigpO1xuICB2YXIgYSA9IGNhbWxfaW50NjRfdG9fYnl0ZXMoaTY0KTtcbiAgZm9yKHZhciBqID0gMDsgaiA8IDg7IGorKykge1xuICAgIGNhbWxfYnl0ZXNfdW5zYWZlX3NldCAocywgaSArIDcgLSBqLCBhW2pdKTtcbiAgfVxuICByZXR1cm4gMFxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19zZXQ2NFxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuLy9JZjoganMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19zZXQ2NChzLGksaTY0KXtcbiAgY2FtbF9mYWlsd2l0aChcImNhbWxfc3RyaW5nX3NldDY0XCIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19zZXQ2NFxuLy9SZXF1aXJlczogY2FtbF9ieXRlc19zZXQ2NFxuLy9JZjogIWpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfc2V0NjQocyxpLGk2NCl7XG4gIHJldHVybiBjYW1sX2J5dGVzX3NldDY0KHMsaSxpNjQpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX3NldFxuLy9SZXF1aXJlczogY2FtbF9ieXRlc19ib3VuZF9lcnJvciwgY2FtbF9ieXRlc191bnNhZmVfc2V0XG5mdW5jdGlvbiBjYW1sX2J5dGVzX3NldCAocywgaSwgYykge1xuICBpZiAoaSA+Pj4gMCA+PSBzLmwpIGNhbWxfYnl0ZXNfYm91bmRfZXJyb3IoKTtcbiAgcmV0dXJuIGNhbWxfYnl0ZXNfdW5zYWZlX3NldCAocywgaSwgYyk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfb2ZfdXRmMTZfanNzdHJpbmdcbi8vUmVxdWlyZXM6IGpzb29faXNfYXNjaWksIGNhbWxfdXRmOF9vZl91dGYxNiwgTWxCeXRlc1xuZnVuY3Rpb24gY2FtbF9ieXRlc19vZl91dGYxNl9qc3N0cmluZyAocykge1xuICB2YXIgdGFnID0gOSAvKiBCWVRFUyB8IEFTQ0lJICovO1xuICBpZiAoIWpzb29faXNfYXNjaWkocykpXG4gICAgdGFnID0gOCAvKiBCWVRFUyB8IE5PVF9BU0NJSSAqLywgcyA9IGNhbWxfdXRmOF9vZl91dGYxNihzKTtcbiAgcmV0dXJuIG5ldyBNbEJ5dGVzKHRhZywgcywgcy5sZW5ndGgpO1xufVxuXG5cbi8vUHJvdmlkZXM6IE1sQnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXMsIGpzb29faXNfYXNjaWksIGNhbWxfdXRmMTZfb2ZfdXRmOFxuZnVuY3Rpb24gTWxCeXRlcyAodGFnLCBjb250ZW50cywgbGVuZ3RoKSB7XG4gIHRoaXMudD10YWc7IHRoaXMuYz1jb250ZW50czsgdGhpcy5sPWxlbmd0aDtcbn1cbk1sQnl0ZXMucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24oKXtcbiAgc3dpdGNoICh0aGlzLnQpIHtcbiAgY2FzZSA5OiAvKkJZVEVTIHwgQVNDSUkqL1xuICAgIHJldHVybiB0aGlzLmM7XG4gIGRlZmF1bHQ6XG4gICAgY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlcyh0aGlzKTtcbiAgY2FzZSAwOiAvKkJZVEVTIHwgVU5LT1dOKi9cbiAgICBpZiAoanNvb19pc19hc2NpaSh0aGlzLmMpKSB7XG4gICAgICB0aGlzLnQgPSA5OyAvKkJZVEVTIHwgQVNDSUkqL1xuICAgICAgcmV0dXJuIHRoaXMuYztcbiAgICB9XG4gICAgdGhpcy50ID0gODsgLypCWVRFUyB8IE5PVF9BU0NJSSovXG4gIGNhc2UgODogLypCWVRFUyB8IE5PVF9BU0NJSSovXG4gICAgcmV0dXJuIHRoaXMuYztcbiAgfVxufTtcbk1sQnl0ZXMucHJvdG90eXBlLnRvVXRmMTYgPSBmdW5jdGlvbiAoKXtcbiAgdmFyIHIgPSB0aGlzLnRvU3RyaW5nKCk7XG4gIGlmKHRoaXMudCA9PSA5KSByZXR1cm4gclxuICByZXR1cm4gY2FtbF91dGYxNl9vZl91dGY4KHIpO1xufVxuTWxCeXRlcy5wcm90b3R5cGUuc2xpY2UgPSBmdW5jdGlvbiAoKXtcbiAgdmFyIGNvbnRlbnQgPSB0aGlzLnQgPT0gNCA/IHRoaXMuYy5zbGljZSgpIDogdGhpcy5jO1xuICByZXR1cm4gbmV3IE1sQnl0ZXModGhpcy50LGNvbnRlbnQsdGhpcy5sKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlc1xuLy9SZXF1aXJlczogY2FtbF9zdHJfcmVwZWF0LCBjYW1sX3N1YmFycmF5X3RvX2pzYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXMgKHMpIHtcbiAgLyogQXNzdW1lcyBub3QgQllURVMgKi9cbiAgaWYgKHMudCA9PSAyIC8qIFBBUlRJQUwgKi8pXG4gICAgcy5jICs9IGNhbWxfc3RyX3JlcGVhdChzLmwgLSBzLmMubGVuZ3RoLCAnXFwwJylcbiAgZWxzZVxuICAgIHMuYyA9IGNhbWxfc3ViYXJyYXlfdG9fanNieXRlcyAocy5jLCAwLCBzLmMubGVuZ3RoKTtcbiAgcy50ID0gMDsgLypCWVRFUyB8IFVOS09XTiovXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfY29udmVydF9ieXRlc190b19hcnJheVxuZnVuY3Rpb24gY2FtbF9jb252ZXJ0X2J5dGVzX3RvX2FycmF5IChzKSB7XG4gIC8qIEFzc3VtZXMgbm90IEFSUkFZICovXG4gIHZhciBhID0gbmV3IFVpbnQ4QXJyYXkocy5sKTtcbiAgdmFyIGIgPSBzLmMsIGwgPSBiLmxlbmd0aCwgaSA9IDA7XG4gIGZvciAoOyBpIDwgbDsgaSsrKSBhW2ldID0gYi5jaGFyQ29kZUF0KGkpO1xuICBmb3IgKGwgPSBzLmw7IGkgPCBsOyBpKyspIGFbaV0gPSAwO1xuICBzLmMgPSBhO1xuICBzLnQgPSA0OyAvKiBBUlJBWSAqL1xuICByZXR1cm4gYTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF91aW50OF9hcnJheV9vZl9ieXRlcyBtdXRhYmxlXG4vL1JlcXVpcmVzOiBjYW1sX2NvbnZlcnRfYnl0ZXNfdG9fYXJyYXlcbmZ1bmN0aW9uIGNhbWxfdWludDhfYXJyYXlfb2ZfYnl0ZXMgKHMpIHtcbiAgaWYgKHMudCAhPSA0IC8qIEFSUkFZICovKSBjYW1sX2NvbnZlcnRfYnl0ZXNfdG9fYXJyYXkocyk7XG4gIHJldHVybiBzLmM7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfdWludDhfYXJyYXlfb2Zfc3RyaW5nIG11dGFibGVcbi8vUmVxdWlyZXM6IGNhbWxfY29udmVydF9ieXRlc190b19hcnJheVxuLy9SZXF1aXJlczogY2FtbF9tbF9zdHJpbmdfbGVuZ3RoLCBjYW1sX3N0cmluZ191bnNhZmVfZ2V0XG5mdW5jdGlvbiBjYW1sX3VpbnQ4X2FycmF5X29mX3N0cmluZyAocykge1xuICB2YXIgbCA9IGNhbWxfbWxfc3RyaW5nX2xlbmd0aChzKTtcbiAgdmFyIGEgPSBuZXcgQXJyYXkobCk7XG4gIHZhciBpID0gMDtcbiAgZm9yICg7IGkgPCBsOyBpKyspIGFbaV0gPSBjYW1sX3N0cmluZ191bnNhZmVfZ2V0KHMsaSk7XG4gIHJldHVybiBhO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2NyZWF0ZV9zdHJpbmcgY29uc3Rcbi8vUmVxdWlyZXM6IE1sQnl0ZXMsIGNhbWxfaW52YWxpZF9hcmd1bWVudFxuLy9JZjogIWpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9jcmVhdGVfc3RyaW5nKGxlbikge1xuICBpZihsZW4gPCAwKSBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJTdHJpbmcuY3JlYXRlXCIpO1xuICByZXR1cm4gbmV3IE1sQnl0ZXMobGVuPzI6OSxcIlwiLGxlbik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfY3JlYXRlX3N0cmluZyBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG4vL0lmOiBqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfY3JlYXRlX3N0cmluZyhsZW4pIHtcbiAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiU3RyaW5nLmNyZWF0ZVwiKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9jcmVhdGVfYnl0ZXMgY29uc3Rcbi8vUmVxdWlyZXM6IE1sQnl0ZXMsY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBjYW1sX2NyZWF0ZV9ieXRlcyhsZW4pIHtcbiAgaWYgKGxlbiA8IDApIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIkJ5dGVzLmNyZWF0ZVwiKTtcbiAgcmV0dXJuIG5ldyBNbEJ5dGVzKGxlbj8yOjksXCJcIixsZW4pO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19vZl9hcnJheVxuLy9SZXF1aXJlczogY2FtbF9zdWJhcnJheV90b19qc2J5dGVzLCBjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19vZl9hcnJheSAoYSkge1xuICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhjYW1sX3N1YmFycmF5X3RvX2pzYnl0ZXMoYSwwLGEubGVuZ3RoKSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfb2ZfYXJyYXlcbi8vUmVxdWlyZXM6IE1sQnl0ZXNcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfb2ZfYXJyYXkgKGEpIHtcbiAgaWYoISAoYSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpKSB7XG4gICAgYSA9IG5ldyBVaW50OEFycmF5KGEpO1xuICB9XG4gIHJldHVybiBuZXcgTWxCeXRlcyg0LGEsYS5sZW5ndGgpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX2NvbXBhcmUgbXV0YWJsZVxuLy9SZXF1aXJlczogY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlc1xuZnVuY3Rpb24gY2FtbF9ieXRlc19jb21wYXJlKHMxLCBzMikge1xuICAoczEudCAmIDYpICYmIGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXMoczEpO1xuICAoczIudCAmIDYpICYmIGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXMoczIpO1xuICByZXR1cm4gKHMxLmMgPCBzMi5jKT8tMTooczEuYyA+IHMyLmMpPzE6MDtcbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX2VxdWFsIG11dGFibGUgKGNvbnN0LCBjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfZXF1YWwoczEsIHMyKSB7XG4gIGlmKHMxID09PSBzMikgcmV0dXJuIDE7XG4gIChzMS50ICYgNikgJiYgY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlcyhzMSk7XG4gIChzMi50ICYgNikgJiYgY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlcyhzMik7XG4gIHJldHVybiAoczEuYyA9PSBzMi5jKT8xOjA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX25vdGVxdWFsIG11dGFibGUgKGNvbnN0LCBjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX2VxdWFsXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19ub3RlcXVhbChzMSwgczIpIHsgcmV0dXJuIDEtY2FtbF9zdHJpbmdfZXF1YWwoczEsIHMyKTsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX25vdGVxdWFsIG11dGFibGUgKGNvbnN0LCBjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfZXF1YWxcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfbm90ZXF1YWwoczEsIHMyKSB7IHJldHVybiAxLWNhbWxfYnl0ZXNfZXF1YWwoczEsIHMyKTsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX2xlc3NlcXVhbCBtdXRhYmxlXG4vL1JlcXVpcmVzOiBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzXG5mdW5jdGlvbiBjYW1sX2J5dGVzX2xlc3NlcXVhbChzMSwgczIpIHtcbiAgKHMxLnQgJiA2KSAmJiBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzKHMxKTtcbiAgKHMyLnQgJiA2KSAmJiBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzKHMyKTtcbiAgcmV0dXJuIChzMS5jIDw9IHMyLmMpPzE6MDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ieXRlc19sZXNzdGhhbiBtdXRhYmxlXG4vL1JlcXVpcmVzOiBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzXG5mdW5jdGlvbiBjYW1sX2J5dGVzX2xlc3N0aGFuKHMxLCBzMikge1xuICAoczEudCAmIDYpICYmIGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXMoczEpO1xuICAoczIudCAmIDYpICYmIGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXMoczIpO1xuICByZXR1cm4gKHMxLmMgPCBzMi5jKT8xOjA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX2dyZWF0ZXJlcXVhbFxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfbGVzc2VxdWFsXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19ncmVhdGVyZXF1YWwoczEsIHMyKSB7XG4gIHJldHVybiBjYW1sX3N0cmluZ19sZXNzZXF1YWwoczIsczEpO1xufVxuLy9Qcm92aWRlczogY2FtbF9ieXRlc19ncmVhdGVyZXF1YWxcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfbGVzc2VxdWFsXG5mdW5jdGlvbiBjYW1sX2J5dGVzX2dyZWF0ZXJlcXVhbChzMSwgczIpIHtcbiAgcmV0dXJuIGNhbWxfYnl0ZXNfbGVzc2VxdWFsKHMyLHMxKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfZ3JlYXRlcnRoYW5cbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX2xlc3N0aGFuXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19ncmVhdGVydGhhbihzMSwgczIpIHtcbiAgcmV0dXJuIGNhbWxfc3RyaW5nX2xlc3N0aGFuKHMyLCBzMSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfZ3JlYXRlcnRoYW5cbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfbGVzc3RoYW5cbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfZ3JlYXRlcnRoYW4oczEsIHMyKSB7XG4gIHJldHVybiBjYW1sX2J5dGVzX2xlc3N0aGFuKHMyLCBzMSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZmlsbF9ieXRlc1xuLy9SZXF1aXJlczogY2FtbF9zdHJfcmVwZWF0LCBjYW1sX2NvbnZlcnRfYnl0ZXNfdG9fYXJyYXlcbi8vQWxpYXM6IGNhbWxfZmlsbF9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfZmlsbF9ieXRlcyhzLCBpLCBsLCBjKSB7XG4gIGlmIChsID4gMCkge1xuICAgIGlmIChpID09IDAgJiYgKGwgPj0gcy5sIHx8IChzLnQgPT0gMiAvKiBQQVJUSUFMICovICYmIGwgPj0gcy5jLmxlbmd0aCkpKSB7XG4gICAgICBpZiAoYyA9PSAwKSB7XG4gICAgICAgIHMuYyA9IFwiXCI7XG4gICAgICAgIHMudCA9IDI7IC8qIFBBUlRJQUwgKi9cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHMuYyA9IGNhbWxfc3RyX3JlcGVhdCAobCwgU3RyaW5nLmZyb21DaGFyQ29kZShjKSk7XG4gICAgICAgIHMudCA9IChsID09IHMubCk/MCAvKiBCWVRFUyB8IFVOS09XTiAqLyA6MjsgLyogUEFSVElBTCAqL1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAocy50ICE9IDQgLyogQVJSQVkgKi8pIGNhbWxfY29udmVydF9ieXRlc190b19hcnJheShzKTtcbiAgICAgIGZvciAobCArPSBpOyBpIDwgbDsgaSsrKSBzLmNbaV0gPSBjO1xuICAgIH1cbiAgfVxuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ibGl0X2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX3N1YmFycmF5X3RvX2pzYnl0ZXMsIGNhbWxfY29udmVydF9ieXRlc190b19hcnJheVxuZnVuY3Rpb24gY2FtbF9ibGl0X2J5dGVzKHMxLCBpMSwgczIsIGkyLCBsZW4pIHtcbiAgaWYgKGxlbiA9PSAwKSByZXR1cm4gMDtcbiAgaWYgKChpMiA9PSAwKSAmJlxuICAgICAgKGxlbiA+PSBzMi5sIHx8IChzMi50ID09IDIgLyogUEFSVElBTCAqLyAmJiBsZW4gPj0gczIuYy5sZW5ndGgpKSkge1xuICAgIHMyLmMgPSAoczEudCA9PSA0IC8qIEFSUkFZICovKT9cbiAgICAgIGNhbWxfc3ViYXJyYXlfdG9fanNieXRlcyhzMS5jLCBpMSwgbGVuKTpcbiAgICAgIChpMSA9PSAwICYmIHMxLmMubGVuZ3RoID09IGxlbik/czEuYzpzMS5jLnN1YnN0cihpMSwgbGVuKTtcbiAgICBzMi50ID0gKHMyLmMubGVuZ3RoID09IHMyLmwpPzAgLyogQllURVMgfCBVTktPV04gKi8gOjI7IC8qIFBBUlRJQUwgKi9cbiAgfSBlbHNlIGlmIChzMi50ID09IDIgLyogUEFSVElBTCAqLyAmJiBpMiA9PSBzMi5jLmxlbmd0aCkge1xuICAgIHMyLmMgKz0gKHMxLnQgPT0gNCAvKiBBUlJBWSAqLyk/XG4gICAgICBjYW1sX3N1YmFycmF5X3RvX2pzYnl0ZXMoczEuYywgaTEsIGxlbik6XG4gICAgICAoaTEgPT0gMCAmJiBzMS5jLmxlbmd0aCA9PSBsZW4pP3MxLmM6czEuYy5zdWJzdHIoaTEsIGxlbik7XG4gICAgczIudCA9IChzMi5jLmxlbmd0aCA9PSBzMi5sKT8wIC8qIEJZVEVTIHwgVU5LT1dOICovIDoyOyAvKiBQQVJUSUFMICovXG4gIH0gZWxzZSB7XG4gICAgaWYgKHMyLnQgIT0gNCAvKiBBUlJBWSAqLykgY2FtbF9jb252ZXJ0X2J5dGVzX3RvX2FycmF5KHMyKTtcbiAgICB2YXIgYzEgPSBzMS5jLCBjMiA9IHMyLmM7XG4gICAgaWYgKHMxLnQgPT0gNCAvKiBBUlJBWSAqLykge1xuICAgICAgaWYgKGkyIDw9IGkxKSB7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIGMyIFtpMiArIGldID0gYzEgW2kxICsgaV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmb3IgKHZhciBpID0gbGVuIC0gMTsgaSA+PSAwOyBpLS0pIGMyIFtpMiArIGldID0gYzEgW2kxICsgaV07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBsID0gTWF0aC5taW4gKGxlbiwgYzEubGVuZ3RoIC0gaTEpO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsOyBpKyspIGMyIFtpMiArIGldID0gYzEuY2hhckNvZGVBdChpMSArIGkpO1xuICAgICAgZm9yICg7IGkgPCBsZW47IGkrKykgYzIgW2kyICsgaV0gPSAwO1xuICAgIH1cbiAgfVxuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ibGl0X3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9ibGl0X2J5dGVzLCBjYW1sX2J5dGVzX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9ibGl0X3N0cmluZyhhLGIsYyxkLGUpIHtcbiAgY2FtbF9ibGl0X2J5dGVzKGNhbWxfYnl0ZXNfb2Zfc3RyaW5nKGEpLGIsYyxkLGUpO1xuICByZXR1cm4gMFxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX2J5dGVzX2xlbmd0aCBjb25zdFxuZnVuY3Rpb24gY2FtbF9tbF9ieXRlc19sZW5ndGgocykgeyByZXR1cm4gcy5sIH1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfdW5zYWZlX2dldCBjb25zdFxuLy9JZjoganMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ191bnNhZmVfZ2V0IChzLCBpKSB7XG4gIHJldHVybiBzLmNoYXJDb2RlQXQoaSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX3Vuc2FmZV9zZXRcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbi8vSWY6IGpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfdW5zYWZlX3NldCAocywgaSwgYykge1xuICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF9zdHJpbmdfdW5zYWZlX3NldFwiKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9zdHJpbmdfbGVuZ3RoIGNvbnN0XG4vL0lmOiBqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfbWxfc3RyaW5nX2xlbmd0aChzKSB7XG4gIHJldHVybiBzLmxlbmd0aFxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19jb21wYXJlIGNvbnN0XG4vL0lmOiBqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX2NvbXBhcmUoczEsIHMyKSB7XG4gIHJldHVybiAoczEgPCBzMik/LTE6KHMxID4gczIpPzE6MDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfZXF1YWwgY29uc3Rcbi8vSWY6IGpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfZXF1YWwoczEsIHMyKSB7XG4gIGlmKHMxID09PSBzMikgcmV0dXJuIDE7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19sZXNzZXF1YWwgY29uc3Rcbi8vSWY6IGpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfbGVzc2VxdWFsKHMxLCBzMikge1xuICByZXR1cm4gKHMxIDw9IHMyKT8xOjA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX2xlc3N0aGFuIGNvbnN0XG4vL0lmOiBqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX2xlc3N0aGFuKHMxLCBzMikge1xuICByZXR1cm4gKHMxIDwgczIpPzE6MDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfb2ZfYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXMsIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbi8vSWY6IGpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfb2ZfYnl0ZXMocykge1xuICAocy50ICYgNikgJiYgY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlcyhzKTtcbiAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMocy5jKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ieXRlc19vZl9zdHJpbmcgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfb2ZfanNieXRlcywgY2FtbF9qc2J5dGVzX29mX3N0cmluZ1xuLy9JZjoganMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2J5dGVzX29mX3N0cmluZyhzKSB7XG4gIHJldHVybiBjYW1sX2J5dGVzX29mX2pzYnl0ZXMoY2FtbF9qc2J5dGVzX29mX3N0cmluZyhzKSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMgY29uc3Rcbi8vSWY6IGpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfb2ZfanNieXRlcyh4KSB7IHJldHVybiB4IH1cblxuLy9Qcm92aWRlczogY2FtbF9qc2J5dGVzX29mX3N0cmluZyBjb25zdFxuLy9JZjoganMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKHgpIHsgcmV0dXJuIHggfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZyBjb25zdFxuLy9SZXF1aXJlczoganNvb19pc19hc2NpaSwgY2FtbF91dGYxNl9vZl91dGY4XG4vL0lmOiBqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKHMpIHtcbiAgaWYoanNvb19pc19hc2NpaShzKSlcbiAgICByZXR1cm4gcztcbiAgcmV0dXJuIGNhbWxfdXRmMTZfb2ZfdXRmOChzKTsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19vZl9qc3N0cmluZyBjb25zdFxuLy9SZXF1aXJlczoganNvb19pc19hc2NpaSwgY2FtbF91dGY4X29mX3V0ZjE2LCBjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG4vL0lmOiBqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nIChzKSB7XG4gIGlmIChqc29vX2lzX2FzY2lpKHMpKVxuICAgIHJldHVybiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKHMpXG4gIGVsc2UgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMoY2FtbF91dGY4X29mX3V0ZjE2KHMpKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ieXRlc19vZl9qc2J5dGVzIGNvbnN0XG4vL1JlcXVpcmVzOiBNbEJ5dGVzXG5mdW5jdGlvbiBjYW1sX2J5dGVzX29mX2pzYnl0ZXMocykgeyByZXR1cm4gbmV3IE1sQnl0ZXMoMCxzLHMubGVuZ3RoKTsgfVxuXG5cbi8vIFRoZSBzZWN0aW9uIGJlbG93IHNob3VsZCBiZSB1c2VkIHdoZW4gdXNlLWpzLXN0cmluZz1mYWxzZVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ191bnNhZmVfZ2V0IGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX3Vuc2FmZV9nZXRcbi8vSWY6ICFqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQgKHMsIGkpIHtcbiAgcmV0dXJuIGNhbWxfYnl0ZXNfdW5zYWZlX2dldChzLGkpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ191bnNhZmVfc2V0XG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX3Vuc2FmZV9zZXRcbi8vSWY6ICFqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX3Vuc2FmZV9zZXQgKHMsIGksIGMpIHtcbiAgcmV0dXJuIGNhbWxfYnl0ZXNfdW5zYWZlX3NldChzLGksYyk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfc3RyaW5nX2xlbmd0aCBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9tbF9ieXRlc19sZW5ndGhcbi8vSWY6ICFqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfbWxfc3RyaW5nX2xlbmd0aChzKSB7XG4gIHJldHVybiBjYW1sX21sX2J5dGVzX2xlbmd0aChzKVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19jb21wYXJlXG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX2NvbXBhcmVcbi8vSWY6ICFqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX2NvbXBhcmUoczEsIHMyKSB7XG4gIHJldHVybiBjYW1sX2J5dGVzX2NvbXBhcmUoczEsczIpXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX2VxdWFsXG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX2VxdWFsXG4vL0lmOiAhanMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19lcXVhbChzMSwgczIpIHtcbiAgcmV0dXJuIGNhbWxfYnl0ZXNfZXF1YWwoczEsczIpXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX2xlc3NlcXVhbFxuLy9SZXF1aXJlczogY2FtbF9ieXRlc19sZXNzZXF1YWxcbi8vSWY6ICFqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX2xlc3NlcXVhbChzMSwgczIpIHtcbiAgcmV0dXJuIGNhbWxfYnl0ZXNfbGVzc2VxdWFsKHMxLHMyKVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19sZXNzdGhhblxuLy9SZXF1aXJlczogY2FtbF9ieXRlc19sZXNzdGhhblxuLy9JZjogIWpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfbGVzc3RoYW4oczEsIHMyKSB7XG4gIHJldHVybiBjYW1sX2J5dGVzX2xlc3N0aGFuKHMxLHMyKVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19vZl9ieXRlc1xuLy9JZjogIWpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfb2ZfYnl0ZXMocykgeyByZXR1cm4gcyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfb2Zfc3RyaW5nIGNvbnN0XG4vL0lmOiAhanMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2J5dGVzX29mX3N0cmluZyhzKSB7IHJldHVybiBzIH1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfb2ZfanNieXRlcyBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9ieXRlc19vZl9qc2J5dGVzXG4vL0lmOiAhanMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKHMpIHsgcmV0dXJuIGNhbWxfYnl0ZXNfb2ZfanNieXRlcyhzKTsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nIGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzXG4vL0lmOiAhanMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKHMpIHtcbiAgKHMudCAmIDYpICYmIGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXMocyk7XG4gIHJldHVybiBzLmMgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZyBtdXRhYmxlIChjb25zdClcbi8vSWY6ICFqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKHMpe1xuICByZXR1cm4gcy50b1V0ZjE2KClcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfb2ZfdXRmMTZfanNzdHJpbmdcbi8vSWY6ICFqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nIChzKSB7XG4gIHJldHVybiBjYW1sX2J5dGVzX29mX3V0ZjE2X2pzc3RyaW5nKHMpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2lzX21sX2J5dGVzXG4vL1JlcXVpcmVzOiBNbEJ5dGVzXG5mdW5jdGlvbiBjYW1sX2lzX21sX2J5dGVzKHMpIHtcbiAgcmV0dXJuIChzIGluc3RhbmNlb2YgTWxCeXRlcyk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfYnl0ZXNfY29udGVudFxuLy9SZXF1aXJlczogTWxCeXRlcywgY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlc1xuZnVuY3Rpb24gY2FtbF9tbF9ieXRlc19jb250ZW50KHMpIHtcbiAgc3dpdGNoIChzLnQgJiA2KSB7XG4gIGRlZmF1bHQ6IC8qIFBBUlRJQUwgKi9cbiAgICBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzKHMpO1xuICBjYXNlIDA6IC8qIEJZVEVTICovXG4gICAgcmV0dXJuIHMuYztcbiAgY2FzZSA0OlxuICAgIHJldHVybiBzLmNcbiAgfVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2lzX21sX3N0cmluZ1xuLy9SZXF1aXJlczoganNvb19pc19hc2NpaVxuLy9JZjoganMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2lzX21sX3N0cmluZyhzKSB7XG4gIHJldHVybiAodHlwZW9mIHMgPT09IFwic3RyaW5nXCIgJiYgIS9bXlxceDAwLVxceGZmXS8udGVzdChzKSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaXNfbWxfc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX2lzX21sX2J5dGVzXG4vL0lmOiAhanMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2lzX21sX3N0cmluZyhzKSB7XG4gIHJldHVybiBjYW1sX2lzX21sX2J5dGVzKHMpO1xufVxuXG4vLyBUaGUgZnVuY3Rpb25zIGJlbG93IGFyZSBkZXByZWNhdGVkXG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfdG9fYnl0ZV9zdHJpbmcgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfanNfdG9fYnl0ZV9zdHJpbmcocykgeyByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhzKSB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfbmV3X3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfanNieXRlc1xuZnVuY3Rpb24gY2FtbF9uZXdfc3RyaW5nIChzKSB7IHJldHVybiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKHMpIH1cblxuLy9Qcm92aWRlczogY2FtbF9qc19mcm9tX3N0cmluZyBtdXRhYmxlIChjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2pzX2Zyb21fc3RyaW5nKHMpIHtcbiAgcmV0dXJuIGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKHMpXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfdG9fanNfc3RyaW5nIG11dGFibGUgKGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfdG9fanNfc3RyaW5nKHMpIHtcbiAgcmV0dXJuIGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKHMpXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfdG9fc3RyaW5nIGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9qc3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9qc190b19zdHJpbmcgKHMpIHtcbiAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nKHMpO1xufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfYXJyYXlfb2Zfc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX3VpbnQ4X2FycmF5X29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9hcnJheV9vZl9zdHJpbmcoeCkgeyByZXR1cm4gY2FtbF91aW50OF9hcnJheV9vZl9zdHJpbmcoeCkgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2FycmF5X29mX2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX3VpbnQ4X2FycmF5X29mX2J5dGVzXG5mdW5jdGlvbiBjYW1sX2FycmF5X29mX2J5dGVzKHgpIHsgcmV0dXJuIGNhbWxfdWludDhfYXJyYXlfb2ZfYnl0ZXMoeCkgfVxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy9SYWlzZSBleGNlcHRpb25cblxuLy9Qcm92aWRlczogY2FtbF9yYWlzZV9jb25zdGFudCAoY29uc3QpXG5mdW5jdGlvbiBjYW1sX3JhaXNlX2NvbnN0YW50ICh0YWcpIHsgdGhyb3cgdGFnOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfcmFpc2Vfd2l0aF9hcmcgKGNvbnN0LCBtdXRhYmxlKVxuLy9SZXF1aXJlczogY2FtbF9tYXliZV9hdHRhY2hfYmFja3RyYWNlXG5mdW5jdGlvbiBjYW1sX3JhaXNlX3dpdGhfYXJnICh0YWcsIGFyZykgeyB0aHJvdyBjYW1sX21heWJlX2F0dGFjaF9iYWNrdHJhY2UoWzAsIHRhZywgYXJnXSk7IH1cblxuLy9Qcm92aWRlczogY2FtbF9yYWlzZV93aXRoX2FyZ3MgKGNvbnN0LCBtdXRhYmxlKVxuLy9SZXF1aXJlczogY2FtbF9tYXliZV9hdHRhY2hfYmFja3RyYWNlXG5mdW5jdGlvbiBjYW1sX3JhaXNlX3dpdGhfYXJncyAodGFnLCBhcmdzKSB7IHRocm93IGNhbWxfbWF5YmVfYXR0YWNoX2JhY2t0cmFjZShbMCwgdGFnXS5jb25jYXQoYXJncykpOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfcmFpc2Vfd2l0aF9zdHJpbmcgKGNvbnN0LCBjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2Vfd2l0aF9hcmcsIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfcmFpc2Vfd2l0aF9zdHJpbmcgKHRhZywgbXNnKSB7XG4gIGNhbWxfcmFpc2Vfd2l0aF9hcmcgKHRhZywgY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhtc2cpKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9mYWlsd2l0aCAoY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX3dpdGhfc3RyaW5nLCBjYW1sX2dsb2JhbF9kYXRhLCBjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG5mdW5jdGlvbiBjYW1sX2ZhaWx3aXRoIChtc2cpIHtcbiAgaWYoIWNhbWxfZ2xvYmFsX2RhdGEuRmFpbHVyZSlcbiAgICBjYW1sX2dsb2JhbF9kYXRhLkZhaWx1cmU9WzI0OCxjYW1sX3N0cmluZ19vZl9qc2J5dGVzKFwiRmFpbHVyZVwiKSwtM107XG4gIGNhbWxfcmFpc2Vfd2l0aF9zdHJpbmcoY2FtbF9nbG9iYWxfZGF0YS5GYWlsdXJlLCBtc2cpO1xufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudCAoY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX3dpdGhfc3RyaW5nLCBjYW1sX2dsb2JhbF9kYXRhXG5mdW5jdGlvbiBjYW1sX2ludmFsaWRfYXJndW1lbnQgKG1zZykge1xuICBjYW1sX3JhaXNlX3dpdGhfc3RyaW5nKGNhbWxfZ2xvYmFsX2RhdGEuSW52YWxpZF9hcmd1bWVudCwgbXNnKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9yYWlzZV9lbmRfb2ZfZmlsZVxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9jb25zdGFudCwgY2FtbF9nbG9iYWxfZGF0YVxuZnVuY3Rpb24gY2FtbF9yYWlzZV9lbmRfb2ZfZmlsZSAoKSB7XG4gIGNhbWxfcmFpc2VfY29uc3RhbnQoY2FtbF9nbG9iYWxfZGF0YS5FbmRfb2ZfZmlsZSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfcmFpc2VfemVyb19kaXZpZGVcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2VfY29uc3RhbnQsIGNhbWxfZ2xvYmFsX2RhdGFcbmZ1bmN0aW9uIGNhbWxfcmFpc2VfemVyb19kaXZpZGUgKCkge1xuICBjYW1sX3JhaXNlX2NvbnN0YW50KGNhbWxfZ2xvYmFsX2RhdGEuRGl2aXNpb25fYnlfemVybyk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfcmFpc2Vfbm90X2ZvdW5kXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX2NvbnN0YW50LCBjYW1sX2dsb2JhbF9kYXRhXG5mdW5jdGlvbiBjYW1sX3JhaXNlX25vdF9mb3VuZCAoKSB7XG4gIGNhbWxfcmFpc2VfY29uc3RhbnQoY2FtbF9nbG9iYWxfZGF0YS5Ob3RfZm91bmQpOyB9XG5cblxuLy9Qcm92aWRlczogY2FtbF9hcnJheV9ib3VuZF9lcnJvclxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBjYW1sX2FycmF5X2JvdW5kX2Vycm9yICgpIHtcbiAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiaW5kZXggb3V0IG9mIGJvdW5kc1wiKTtcbn1cbiIsIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vIENvcHlyaWdodCAoQykgMjAxMCBKw6lyw7RtZSBWb3VpbGxvblxuLy8gTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vL1Byb3ZpZGVzOiBjYW1sX2NhbGxfZ2VuIChjb25zdCwgc2hhbGxvdylcbi8vSWY6ICFlZmZlY3RzXG4vL1dlYWtkZWZcbmZ1bmN0aW9uIGNhbWxfY2FsbF9nZW4oZiwgYXJncykge1xuICB2YXIgbiA9IChmLmwgPj0gMCk/Zi5sOihmLmwgPSBmLmxlbmd0aCk7XG4gIHZhciBhcmdzTGVuID0gYXJncy5sZW5ndGg7XG4gIHZhciBkID0gbiAtIGFyZ3NMZW47XG4gIGlmIChkID09IDApXG4gICAgcmV0dXJuIGYuYXBwbHkobnVsbCwgYXJncyk7XG4gIGVsc2UgaWYgKGQgPCAwKSB7XG4gICAgdmFyIGcgPSBmLmFwcGx5KG51bGwsYXJncy5zbGljZSgwLG4pKTtcbiAgICBpZih0eXBlb2YgZyAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gZztcbiAgICByZXR1cm4gY2FtbF9jYWxsX2dlbihnLGFyZ3Muc2xpY2UobikpO1xuICB9XG4gIGVsc2Uge1xuICAgIHN3aXRjaCAoZCkge1xuICAgIGNhc2UgMToge1xuICAgICAgdmFyIGcgPSBmdW5jdGlvbiAoeCl7XG4gICAgICAgIHZhciBuYXJncyA9IG5ldyBBcnJheShhcmdzTGVuICsgMSk7XG4gICAgICAgIGZvcih2YXIgaSA9IDA7IGkgPCBhcmdzTGVuOyBpKysgKSBuYXJnc1tpXSA9IGFyZ3NbaV07XG4gICAgICAgIG5hcmdzW2FyZ3NMZW5dID0geDtcbiAgICAgICAgcmV0dXJuIGYuYXBwbHkobnVsbCwgbmFyZ3MpXG4gICAgICB9O1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGNhc2UgMjoge1xuICAgICAgdmFyIGcgPSBmdW5jdGlvbiAoeCwgeSl7XG4gICAgICAgIHZhciBuYXJncyA9IG5ldyBBcnJheShhcmdzTGVuICsgMik7XG4gICAgICAgIGZvcih2YXIgaSA9IDA7IGkgPCBhcmdzTGVuOyBpKysgKSBuYXJnc1tpXSA9IGFyZ3NbaV07XG4gICAgICAgIG5hcmdzW2FyZ3NMZW5dID0geDtcbiAgICAgICAgbmFyZ3NbYXJnc0xlbiArIDFdID0geTtcbiAgICAgICAgcmV0dXJuIGYuYXBwbHkobnVsbCwgbmFyZ3MpXG4gICAgICB9O1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIHZhciBnID0gZnVuY3Rpb24gKCl7XG4gICAgICAgIHZhciBleHRyYV9hcmdzID0gKGFyZ3VtZW50cy5sZW5ndGggPT0gMCk/MTphcmd1bWVudHMubGVuZ3RoO1xuICAgICAgICB2YXIgbmFyZ3MgPSBuZXcgQXJyYXkoYXJncy5sZW5ndGgrZXh0cmFfYXJncyk7XG4gICAgICAgIGZvcih2YXIgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgaSsrICkgbmFyZ3NbaV0gPSBhcmdzW2ldO1xuICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrICkgbmFyZ3NbYXJncy5sZW5ndGgraV0gPSBhcmd1bWVudHNbaV07XG4gICAgICAgIHJldHVybiBjYW1sX2NhbGxfZ2VuKGYsIG5hcmdzKVxuICAgICAgfTtcbiAgICB9fVxuICAgIGcubCA9IGQ7XG4gICAgcmV0dXJuIGc7XG4gIH1cbn1cblxuLy9Qcm92aWRlczogY2FtbF9jYWxsX2dlbiAoY29uc3QsIHNoYWxsb3cpXG4vL0lmOiBlZmZlY3RzXG4vL1dlYWtkZWZcbmZ1bmN0aW9uIGNhbWxfY2FsbF9nZW4oZiwgYXJncykge1xuICB2YXIgbiA9IChmLmwgPj0gMCk/Zi5sOihmLmwgPSBmLmxlbmd0aCk7XG4gIHZhciBhcmdzTGVuID0gYXJncy5sZW5ndGg7XG4gIHZhciBkID0gbiAtIGFyZ3NMZW47XG4gIGlmIChkID09IDApIHtcbiAgICByZXR1cm4gZi5hcHBseShudWxsLCBhcmdzKTtcbiAgfSBlbHNlIGlmIChkIDwgMCkge1xuICAgIHZhciByZXN0ID0gYXJncy5zbGljZShuIC0gMSk7XG4gICAgdmFyIGsgPSBhcmdzIFthcmdzTGVuIC0gMV07XG4gICAgYXJncyA9IGFyZ3Muc2xpY2UoMCwgbik7XG4gICAgYXJnc1tuIC0gMV0gPSBmdW5jdGlvbiAoZykge1xuICAgICAgaWYgKHR5cGVvZiBnICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBrKGcpO1xuICAgICAgdmFyIGFyZ3MgPSByZXN0LnNsaWNlKCk7XG4gICAgICBhcmdzW2FyZ3MubGVuZ3RoIC0gMV0gPSBrO1xuICAgICAgcmV0dXJuIGNhbWxfY2FsbF9nZW4oZywgYXJncyk7IH07XG4gICAgcmV0dXJuIGYuYXBwbHkobnVsbCwgYXJncyk7XG4gIH0gZWxzZSB7XG4gICAgYXJnc0xlbi0tO1xuICAgIHZhciBrID0gYXJncyBbYXJnc0xlbl07XG4gICAgc3dpdGNoIChkKSB7XG4gICAgY2FzZSAxOiB7XG4gICAgICB2YXIgZyA9IGZ1bmN0aW9uICh4LCB5KXtcbiAgICAgICAgdmFyIG5hcmdzID0gbmV3IEFycmF5KGFyZ3NMZW4gKyAyKTtcbiAgICAgICAgZm9yKHZhciBpID0gMDsgaSA8IGFyZ3NMZW47IGkrKyApIG5hcmdzW2ldID0gYXJnc1tpXTtcbiAgICAgICAgbmFyZ3NbYXJnc0xlbl0gPSB4O1xuICAgICAgICBuYXJnc1thcmdzTGVuICsgMV0gPSB5O1xuICAgICAgICByZXR1cm4gZi5hcHBseShudWxsLCBuYXJncylcbiAgICAgIH07XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY2FzZSAyOiB7XG4gICAgICB2YXIgZyA9IGZ1bmN0aW9uICh4LCB5LCB6KXtcbiAgICAgICAgdmFyIG5hcmdzID0gbmV3IEFycmF5KGFyZ3NMZW4gKyAzKTtcbiAgICAgICAgZm9yKHZhciBpID0gMDsgaSA8IGFyZ3NMZW47IGkrKyApIG5hcmdzW2ldID0gYXJnc1tpXTtcbiAgICAgICAgbmFyZ3NbYXJnc0xlbl0gPSB4O1xuICAgICAgICBuYXJnc1thcmdzTGVuICsgMV0gPSB5O1xuICAgICAgICBuYXJnc1thcmdzTGVuICsgMl0gPSB6O1xuICAgICAgICByZXR1cm4gZi5hcHBseShudWxsLCBuYXJncylcbiAgICAgIH07XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgZGVmYXVsdDoge1xuICAgICAgdmFyIGcgPSBmdW5jdGlvbiAoKXtcbiAgICAgICAgdmFyIGV4dHJhX2FyZ3MgPSAoYXJndW1lbnRzLmxlbmd0aCA9PSAwKT8xOmFyZ3VtZW50cy5sZW5ndGg7XG4gICAgICAgIHZhciBuYXJncyA9IG5ldyBBcnJheShhcmdzTGVuICsgZXh0cmFfYXJncyk7XG4gICAgICAgIGZvcih2YXIgaSA9IDA7IGkgPCBhcmdzTGVuOyBpKysgKSBuYXJnc1tpXSA9IGFyZ3NbaV07XG4gICAgICAgIGZvcih2YXIgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKysgKVxuICAgICAgICAgIG5hcmdzW2FyZ3NMZW4gKyBpXSA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgcmV0dXJuIGNhbWxfY2FsbF9nZW4oZiwgbmFyZ3MpXG4gICAgICB9O1xuICAgIH19XG4gICAgZy5sID0gZCArIDE7XG4gICAgcmV0dXJuIGsoZyk7XG4gIH1cbn1cblxuLy9Qcm92aWRlczogY2FtbF9uYW1lZF92YWx1ZXNcbnZhciBjYW1sX25hbWVkX3ZhbHVlcyA9IHt9O1xuXG4vL1Byb3ZpZGVzOiBjYW1sX3JlZ2lzdGVyX25hbWVkX3ZhbHVlIChjb25zdCxtdXRhYmxlKVxuLy9SZXF1aXJlczogY2FtbF9uYW1lZF92YWx1ZXMsIGNhbWxfanNieXRlc19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfcmVnaXN0ZXJfbmFtZWRfdmFsdWUobm0sdikge1xuICBjYW1sX25hbWVkX3ZhbHVlc1tjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKG5tKV0gPSB2O1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9uYW1lZF92YWx1ZVxuLy9SZXF1aXJlczogY2FtbF9uYW1lZF92YWx1ZXNcbmZ1bmN0aW9uIGNhbWxfbmFtZWRfdmFsdWUobm0pIHtcbiAgcmV0dXJuIGNhbWxfbmFtZWRfdmFsdWVzW25tXVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dsb2JhbF9kYXRhXG52YXIgY2FtbF9nbG9iYWxfZGF0YSA9IFswXTtcblxuLy9Qcm92aWRlczogY2FtbF9idWlsZF9zeW1ib2xzXG4vL1JlcXVpcmVzOiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9idWlsZF9zeW1ib2xzKHRvYykge1xuICB2YXIgc3ltYjtcbiAgd2hpbGUodG9jKSB7XG4gICAgaWYoY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcodG9jWzFdWzFdKSA9PSBcIlNZSlNcIikge1xuICAgICAgc3ltYiA9IHRvY1sxXVsyXTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBlbHNlIHRvYyA9IHRvY1syXVxuICB9XG4gIHZhciByID0ge307XG4gIGlmKHN5bWIpIHtcbiAgICBmb3IodmFyIGkgPSAxOyBpIDwgc3ltYi5sZW5ndGg7IGkrKyl7XG4gICAgICByW2NhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKHN5bWJbaV1bMV0pXSA9IHN5bWJbaV1bMl1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHI7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfcmVnaXN0ZXJfZ2xvYmFsIChjb25zdCwgc2hhbGxvdywgY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2dsb2JhbF9kYXRhLCBjYW1sX2NhbGxiYWNrLCBjYW1sX2J1aWxkX3N5bWJvbHNcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbmZ1bmN0aW9uIGNhbWxfcmVnaXN0ZXJfZ2xvYmFsIChuLCB2LCBuYW1lX29wdCkge1xuICBpZiAobmFtZV9vcHQpIHtcbiAgICB2YXIgbmFtZSA9IG5hbWVfb3B0O1xuICAgIGlmKGdsb2JhbFRoaXMudG9wbGV2ZWxSZWxvYykge1xuICAgICAgbiA9IGNhbWxfY2FsbGJhY2soZ2xvYmFsVGhpcy50b3BsZXZlbFJlbG9jLCBbbmFtZV0pO1xuICAgIH1cbiAgICBlbHNlIGlmIChjYW1sX2dsb2JhbF9kYXRhLnRvYykge1xuICAgICAgaWYoIWNhbWxfZ2xvYmFsX2RhdGEuc3ltYm9scykge1xuICAgICAgICBjYW1sX2dsb2JhbF9kYXRhLnN5bWJvbHMgPSBjYW1sX2J1aWxkX3N5bWJvbHMoY2FtbF9nbG9iYWxfZGF0YS50b2MpXG4gICAgICB9XG4gICAgICB2YXIgbmlkID0gY2FtbF9nbG9iYWxfZGF0YS5zeW1ib2xzW25hbWVdXG4gICAgICBpZihuaWQgPj0gMClcbiAgICAgICAgbiA9IG5pZFxuICAgICAgZWxzZSB7XG4gICAgICAgIGNhbWxfZmFpbHdpdGgoXCJjYW1sX3JlZ2lzdGVyX2dsb2JhbDogY2Fubm90IGxvY2F0ZSBcIiArIG5hbWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBjYW1sX2dsb2JhbF9kYXRhW24gKyAxXSA9IHY7XG4gIGlmKG5hbWVfb3B0KSBjYW1sX2dsb2JhbF9kYXRhW25hbWVfb3B0XSA9IHY7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ2V0X2dsb2JhbF9kYXRhIG11dGFibGVcbi8vUmVxdWlyZXM6IGNhbWxfZ2xvYmFsX2RhdGFcbmZ1bmN0aW9uIGNhbWxfZ2V0X2dsb2JhbF9kYXRhICgpIHsgcmV0dXJuIGNhbWxfZ2xvYmFsX2RhdGE7IH1cblxuLy9Qcm92aWRlczogY2FtbF9pc19wcmludGFibGUgY29uc3QgKGNvbnN0KVxuZnVuY3Rpb24gY2FtbF9pc19wcmludGFibGUoYykgeyByZXR1cm4gKyhjID4gMzEgJiYgYyA8IDEyNyk7IH1cblxuLy9Qcm92aWRlczogY2FtbF9tYXliZV9wcmludF9zdGF0c1xuZnVuY3Rpb24gY2FtbF9tYXliZV9wcmludF9zdGF0cyh1bml0KSB7IHJldHVybiAwIH1cbiIsIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vLy8vLy8vLy8vLy8gU3lzXG5cbi8vUHJvdmlkZXM6IGNhbWxfcmFpc2Vfc3lzX2Vycm9yIChjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2Vfd2l0aF9zdHJpbmcsIGNhbWxfZ2xvYmFsX2RhdGFcbmZ1bmN0aW9uIGNhbWxfcmFpc2Vfc3lzX2Vycm9yIChtc2cpIHtcbiAgY2FtbF9yYWlzZV93aXRoX3N0cmluZyhjYW1sX2dsb2JhbF9kYXRhLlN5c19lcnJvciwgbXNnKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfZXhpdFxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBjYW1sX3N5c19leGl0IChjb2RlKSB7XG4gIGlmKGdsb2JhbFRoaXMucXVpdCkgZ2xvYmFsVGhpcy5xdWl0KGNvZGUpO1xuICAvL25vZGVqc1xuICBpZihnbG9iYWxUaGlzLnByb2Nlc3MgJiYgZ2xvYmFsVGhpcy5wcm9jZXNzLmV4aXQpXG4gICAgZ2xvYmFsVGhpcy5wcm9jZXNzLmV4aXQoY29kZSk7XG4gIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIkZ1bmN0aW9uICdleGl0JyBub3QgaW1wbGVtZW50ZWRcIik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaXNfc3BlY2lhbF9leGNlcHRpb25cbmZ1bmN0aW9uIGNhbWxfaXNfc3BlY2lhbF9leGNlcHRpb24oZXhuKXtcbiAgc3dpdGNoKGV4blsyXSkge1xuICBjYXNlIC04OiAvLyBNYXRjaF9mYWlsdXJlXG4gIGNhc2UgLTExOiAvLyBBc3NlcnRfZmFpbHVyZVxuICBjYXNlIC0xMjogLy8gVW5kZWZpbmVkX3JlY3Vyc2l2ZV9tb2R1bGVcbiAgICByZXR1cm4gMTtcbiAgZGVmYXVsdDpcbiAgICByZXR1cm4gMDtcbiAgfVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2Zvcm1hdF9leGNlcHRpb25cbi8vUmVxdWlyZXM6IE1sQnl0ZXMsIGNhbWxfaXNfc3BlY2lhbF9leGNlcHRpb25cbmZ1bmN0aW9uIGNhbWxfZm9ybWF0X2V4Y2VwdGlvbihleG4pe1xuICB2YXIgciA9IFwiXCI7XG4gIGlmKGV4blswXSA9PSAwKSB7XG4gICAgciArPSBleG5bMV1bMV07XG4gICAgaWYoZXhuLmxlbmd0aCA9PSAzICYmIGV4blsyXVswXSA9PSAwICYmIGNhbWxfaXNfc3BlY2lhbF9leGNlcHRpb24oZXhuWzFdKSkge1xuXG4gICAgICB2YXIgYnVja2V0ID0gZXhuWzJdO1xuICAgICAgdmFyIHN0YXJ0ID0gMTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIHN0YXJ0ID0gMlxuICAgICAgdmFyIGJ1Y2tldCA9IGV4bjtcbiAgICB9XG4gICAgciArPSBcIihcIjtcbiAgICBmb3IodmFyIGkgPSBzdGFydDsgaSA8IGJ1Y2tldC5sZW5ndGg7IGkgKyspe1xuICAgICAgaWYoaSA+IHN0YXJ0KSByKz1cIiwgXCI7XG4gICAgICB2YXIgdiA9IGJ1Y2tldFtpXVxuICAgICAgaWYodHlwZW9mIHYgPT0gXCJudW1iZXJcIilcbiAgICAgICAgcis9IHYudG9TdHJpbmcoKTtcbiAgICAgIGVsc2UgaWYodiBpbnN0YW5jZW9mIE1sQnl0ZXMpe1xuICAgICAgICByKz0gJ1wiJyArIHYudG9TdHJpbmcoKSArICdcIic7XG4gICAgICB9XG4gICAgICBlbHNlIGlmKHR5cGVvZiB2ID09IFwic3RyaW5nXCIpe1xuICAgICAgICByKz0gJ1wiJyArIHYudG9TdHJpbmcoKSArICdcIic7XG4gICAgICB9XG4gICAgICBlbHNlIHIgKz0gXCJfXCI7XG4gICAgfVxuICAgIHIgKz0gXCIpXCJcbiAgfSBlbHNlIGlmIChleG5bMF0gPT0gMjQ4KXtcbiAgICByICs9IGV4blsxXVxuICB9XG4gIHJldHVybiByXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZmF0YWxfdW5jYXVnaHRfZXhjZXB0aW9uXG4vL1JlcXVpcmVzOiBjYW1sX25hbWVkX3ZhbHVlLCBjYW1sX2Zvcm1hdF9leGNlcHRpb24sIGNhbWxfY2FsbGJhY2tcbmZ1bmN0aW9uIGNhbWxfZmF0YWxfdW5jYXVnaHRfZXhjZXB0aW9uKGVycil7XG4gIGlmKGVyciBpbnN0YW5jZW9mIEFycmF5ICYmIChlcnJbMF0gPT0gMCB8fCBlcnJbMF0gPT0gMjQ4KSkge1xuICAgIHZhciBoYW5kbGVyID0gY2FtbF9uYW1lZF92YWx1ZShcIlByaW50ZXhjLmhhbmRsZV91bmNhdWdodF9leGNlcHRpb25cIik7XG4gICAgaWYoaGFuZGxlcikgY2FtbF9jYWxsYmFjayhoYW5kbGVyLCBbZXJyLGZhbHNlXSk7XG4gICAgZWxzZSB7XG4gICAgICB2YXIgbXNnID0gY2FtbF9mb3JtYXRfZXhjZXB0aW9uKGVycik7XG4gICAgICB2YXIgYXRfZXhpdCA9IGNhbWxfbmFtZWRfdmFsdWUoXCJQZXJ2YXNpdmVzLmRvX2F0X2V4aXRcIik7XG4gICAgICBpZihhdF9leGl0KSBjYW1sX2NhbGxiYWNrKGF0X2V4aXQsIFswXSk7XG4gICAgICBjb25zb2xlLmVycm9yKFwiRmF0YWwgZXJyb3I6IGV4Y2VwdGlvbiBcIiArIG1zZyArIFwiXFxuXCIpO1xuICAgICAgaWYoZXJyLmpzX2Vycm9yKSB0aHJvdyBlcnIuanNfZXJyb3I7XG4gICAgfVxuICB9XG4gIGVsc2Uge1xuICAgIHRocm93IGVyclxuICB9XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc2V0X3N0YXRpY19lbnZcbmZ1bmN0aW9uIGNhbWxfc2V0X3N0YXRpY19lbnYoayx2KXtcbiAgaWYoIWdsb2JhbFRoaXMuanNvb19zdGF0aWNfZW52KVxuICAgIGdsb2JhbFRoaXMuanNvb19zdGF0aWNfZW52ID0ge31cbiAgZ2xvYmFsVGhpcy5qc29vX3N0YXRpY19lbnZba10gPSB2O1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczoganNvb19zeXNfZ2V0ZW52IChjb25zdClcbmZ1bmN0aW9uIGpzb29fc3lzX2dldGVudihuKSB7XG4gIHZhciBwcm9jZXNzID0gZ2xvYmFsVGhpcy5wcm9jZXNzO1xuICAvL25vZGVqcyBlbnZcbiAgaWYocHJvY2Vzc1xuICAgICAmJiBwcm9jZXNzLmVudlxuICAgICAmJiBwcm9jZXNzLmVudltuXSAhPSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIHByb2Nlc3MuZW52W25dO1xuICBpZihnbG9iYWxUaGlzLmpzb29fc3RhdGljX2VudlxuICAgICAmJiBnbG9iYWxUaGlzLmpzb29fc3RhdGljX2VudltuXSlcbiAgICByZXR1cm4gZ2xvYmFsVGhpcy5qc29vX3N0YXRpY19lbnZbbl1cbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfZ2V0ZW52IChjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2Vfbm90X2ZvdW5kXG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9qc3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmdcbi8vUmVxdWlyZXM6IGpzb29fc3lzX2dldGVudlxuZnVuY3Rpb24gY2FtbF9zeXNfZ2V0ZW52IChuYW1lKSB7XG4gIHZhciByID0ganNvb19zeXNfZ2V0ZW52KGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKG5hbWUpKTtcbiAgaWYociA9PT0gdW5kZWZpbmVkKVxuICAgIGNhbWxfcmFpc2Vfbm90X2ZvdW5kICgpO1xuICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmcocilcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfdW5zYWZlX2dldGVudlxuLy9SZXF1aXJlczogY2FtbF9zeXNfZ2V0ZW52XG5mdW5jdGlvbiBjYW1sX3N5c191bnNhZmVfZ2V0ZW52KG5hbWUpe1xuICByZXR1cm4gY2FtbF9zeXNfZ2V0ZW52IChuYW1lKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9hcmd2XG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9qc3N0cmluZ1xudmFyIGNhbWxfYXJndiA9ICgoZnVuY3Rpb24gKCkge1xuICB2YXIgcHJvY2VzcyA9IGdsb2JhbFRoaXMucHJvY2VzcztcbiAgdmFyIG1haW4gPSBcImEub3V0XCI7XG4gIHZhciBhcmdzID0gW11cblxuICBpZihwcm9jZXNzXG4gICAgICYmIHByb2Nlc3MuYXJndlxuICAgICAmJiBwcm9jZXNzLmFyZ3YubGVuZ3RoID4gMSkge1xuICAgIHZhciBhcmd2ID0gcHJvY2Vzcy5hcmd2XG4gICAgLy9ub2RlanNcbiAgICBtYWluID0gYXJndlsxXTtcbiAgICBhcmdzID0gYXJndi5zbGljZSgyKTtcbiAgfVxuXG4gIHZhciBwID0gY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmcobWFpbik7XG4gIHZhciBhcmdzMiA9IFswLCBwXTtcbiAgZm9yKHZhciBpID0gMDsgaSA8IGFyZ3MubGVuZ3RoOyBpKyspXG4gICAgYXJnczIucHVzaChjYW1sX3N0cmluZ19vZl9qc3N0cmluZyhhcmdzW2ldKSk7XG4gIHJldHVybiBhcmdzMjtcbn0pKCkpXG5cbi8vUHJvdmlkZXM6IGNhbWxfZXhlY3V0YWJsZV9uYW1lXG4vL1JlcXVpcmVzOiBjYW1sX2FyZ3ZcbnZhciBjYW1sX2V4ZWN1dGFibGVfbmFtZSA9IGNhbWxfYXJndlsxXVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19nZXRfYXJndlxuLy9SZXF1aXJlczogY2FtbF9hcmd2XG5mdW5jdGlvbiBjYW1sX3N5c19nZXRfYXJndiAoYSkge1xuICByZXR1cm4gWzAsIGNhbWxfYXJndlsxXSwgY2FtbF9hcmd2XTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfYXJndlxuLy9SZXF1aXJlczogY2FtbF9hcmd2XG5mdW5jdGlvbiBjYW1sX3N5c19hcmd2IChhKSB7XG4gIHJldHVybiBjYW1sX2FyZ3Y7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX21vZGlmeV9hcmd2XG4vL1JlcXVpcmVzOiBjYW1sX2FyZ3ZcbmZ1bmN0aW9uIGNhbWxfc3lzX21vZGlmeV9hcmd2KGFyZyl7XG4gIGNhbWxfYXJndiA9IGFyZztcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2V4ZWN1dGFibGVfbmFtZSBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9leGVjdXRhYmxlX25hbWVcbmZ1bmN0aW9uIGNhbWxfc3lzX2V4ZWN1dGFibGVfbmFtZShhKXtcbiAgcmV0dXJuIGNhbWxfZXhlY3V0YWJsZV9uYW1lXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX3N5c3RlbV9jb21tYW5kXG4vL1JlcXVpcmVzOiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9zeXNfc3lzdGVtX2NvbW1hbmQoY21kKXtcbiAgdmFyIGNtZCA9IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKGNtZCk7XG4gIGlmICh0eXBlb2YgcmVxdWlyZSAhPSBcInVuZGVmaW5lZFwiKXtcbiAgICB2YXIgY2hpbGRfcHJvY2VzcyA9IHJlcXVpcmUoJ2NoaWxkX3Byb2Nlc3MnKTtcbiAgICBpZihjaGlsZF9wcm9jZXNzICYmIGNoaWxkX3Byb2Nlc3MuZXhlY1N5bmMpXG4gICAgICB0cnkge1xuICAgICAgICBjaGlsZF9wcm9jZXNzLmV4ZWNTeW5jKGNtZCx7c3RkaW86ICdpbmhlcml0J30pO1xuICAgICAgICByZXR1cm4gMFxuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4gMVxuICAgICAgfVxuICB9XG4gIGVsc2UgcmV0dXJuIDEyNztcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfc3lzdGVtX2NvbW1hbmRcbi8vUmVxdWlyZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nXG4vL0lmOiBicm93c2VyXG5mdW5jdGlvbiBjYW1sX3N5c19zeXN0ZW1fY29tbWFuZChjbWQpe1xuICByZXR1cm4gMTI3O1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c190aW1lIG11dGFibGVcbnZhciBjYW1sX2luaXRpYWxfdGltZSA9IChuZXcgRGF0ZSgpKS5nZXRUaW1lKCkgKiAwLjAwMTtcbmZ1bmN0aW9uIGNhbWxfc3lzX3RpbWUgKCkge1xuICB2YXIgbm93ID0gKG5ldyBEYXRlKCkpLmdldFRpbWUoKTtcbiAgcmV0dXJuIG5vdyAqIDAuMDAxIC0gY2FtbF9pbml0aWFsX3RpbWU7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX3RpbWVfaW5jbHVkZV9jaGlsZHJlblxuLy9SZXF1aXJlczogY2FtbF9zeXNfdGltZVxuZnVuY3Rpb24gY2FtbF9zeXNfdGltZV9pbmNsdWRlX2NoaWxkcmVuKGIpIHtcbiAgcmV0dXJuIGNhbWxfc3lzX3RpbWUoKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfcmFuZG9tX3NlZWQgbXV0YWJsZVxuLy9UaGUgZnVuY3Rpb24gbmVlZHMgdG8gcmV0dXJuIGFuIGFycmF5IHNpbmNlIE9DYW1sIDQuMC4uLlxuZnVuY3Rpb24gY2FtbF9zeXNfcmFuZG9tX3NlZWQgKCkge1xuICBpZihnbG9iYWxUaGlzLmNyeXB0bykge1xuICAgIGlmKHR5cGVvZiBnbG9iYWxUaGlzLmNyeXB0by5nZXRSYW5kb21WYWx1ZXMgPT09ICdmdW5jdGlvbicpe1xuICAgICAgLy8gV2ViYnJvd3NlcnNcbiAgICAgIHZhciBhID0gbmV3IFVpbnQzMkFycmF5KDEpO1xuICAgICAgZ2xvYmFsVGhpcy5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKGEpO1xuICAgICAgcmV0dXJuIFswLGFbMF1dO1xuICAgIH0gZWxzZSBpZihnbG9iYWxUaGlzLmNyeXB0by5yYW5kb21CeXRlcyA9PT0gJ2Z1bmN0aW9uJyl7XG4gICAgICAvLyBOb2RlanNcbiAgICAgIHZhciBidWZmID0gZ2xvYmFsVGhpcy5jcnlwdG8ucmFuZG9tQnl0ZXMoNCk7XG4gICAgICB2YXIgYSA9IG5ldyBVaW50MzJBcnJheShidWZmKTtcbiAgICAgIHJldHVybiBbMCxhWzBdXTtcbiAgICB9XG4gIH1cbiAgdmFyIG5vdyA9IChuZXcgRGF0ZSgpKS5nZXRUaW1lKCk7XG4gIHZhciB4ID0gbm93XjB4ZmZmZmZmZmYqTWF0aC5yYW5kb20oKTtcbiAgcmV0dXJuIFswLHhdO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19jb25zdF9iaWdfZW5kaWFuIGNvbnN0XG5mdW5jdGlvbiBjYW1sX3N5c19jb25zdF9iaWdfZW5kaWFuICgpIHsgcmV0dXJuIDA7IH1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfY29uc3Rfd29yZF9zaXplIGNvbnN0XG5mdW5jdGlvbiBjYW1sX3N5c19jb25zdF93b3JkX3NpemUgKCkgeyByZXR1cm4gMzI7IH1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfY29uc3RfaW50X3NpemUgY29uc3RcbmZ1bmN0aW9uIGNhbWxfc3lzX2NvbnN0X2ludF9zaXplICgpIHsgcmV0dXJuIDMyOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2NvbnN0X21heF93b3NpemUgY29uc3Rcbi8vIG1heF9pbnQgLyA0IHNvIHRoYXQgdGhlIGZvbGxvd2luZyBkb2VzIG5vdCBvdmVyZmxvd1xuLy9sZXQgbWF4X3N0cmluZ19sZW5ndGggPSB3b3JkX3NpemUgLyA4ICogbWF4X2FycmF5X2xlbmd0aCAtIDE7O1xuZnVuY3Rpb24gY2FtbF9zeXNfY29uc3RfbWF4X3dvc2l6ZSAoKSB7IHJldHVybiAoMHg3RkZGRkZGRi80KSB8IDA7fVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19jb25zdF9vc3R5cGVfdW5peCBjb25zdFxuLy9SZXF1aXJlczogb3NfdHlwZVxuZnVuY3Rpb24gY2FtbF9zeXNfY29uc3Rfb3N0eXBlX3VuaXggKCkgeyByZXR1cm4gb3NfdHlwZSA9PSBcIlVuaXhcIiA/IDEgOiAwOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19jb25zdF9vc3R5cGVfd2luMzIgY29uc3Rcbi8vUmVxdWlyZXM6IG9zX3R5cGVcbmZ1bmN0aW9uIGNhbWxfc3lzX2NvbnN0X29zdHlwZV93aW4zMiAoKSB7IHJldHVybiBvc190eXBlID09IFwiV2luMzJcIiA/IDEgOiAwOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19jb25zdF9vc3R5cGVfY3lnd2luIGNvbnN0XG4vL1JlcXVpcmVzOiBvc190eXBlXG5mdW5jdGlvbiBjYW1sX3N5c19jb25zdF9vc3R5cGVfY3lnd2luICgpIHsgcmV0dXJuIG9zX3R5cGUgPT0gXCJDeWd3aW5cIiA/IDEgOiAwOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2NvbnN0X2JhY2tlbmRfdHlwZSBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfanNieXRlc1xuZnVuY3Rpb24gY2FtbF9zeXNfY29uc3RfYmFja2VuZF90eXBlICgpIHtcbiAgcmV0dXJuIFswLCBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKFwianNfb2Zfb2NhbWxcIildO1xufVxuXG4vL1Byb3ZpZGVzOiBvc190eXBlXG52YXIgb3NfdHlwZSA9IChnbG9iYWxUaGlzLnByb2Nlc3MgJiZcbiAgICAgICAgICAgICAgIGdsb2JhbFRoaXMucHJvY2Vzcy5wbGF0Zm9ybSAmJlxuICAgICAgICAgICAgICAgZ2xvYmFsVGhpcy5wcm9jZXNzLnBsYXRmb3JtID09IFwid2luMzJcIikgPyBcIkN5Z3dpblwiIDogXCJVbml4XCI7XG5cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfZ2V0X2NvbmZpZyBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfanNieXRlcywgb3NfdHlwZVxuZnVuY3Rpb24gY2FtbF9zeXNfZ2V0X2NvbmZpZyAoKSB7XG4gIHJldHVybiBbMCwgY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhvc190eXBlKSwgMzIsIDBdO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19pc2F0dHlcbmZ1bmN0aW9uIGNhbWxfc3lzX2lzYXR0eShfY2hhbikge1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ydW50aW1lX3ZhcmlhbnRcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfcnVudGltZV92YXJpYW50KF91bml0KSB7XG4gIHJldHVybiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKFwiXCIpO1xufVxuLy9Qcm92aWRlczogY2FtbF9ydW50aW1lX3BhcmFtZXRlcnNcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfcnVudGltZV9wYXJhbWV0ZXJzKF91bml0KSB7XG4gIHJldHVybiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKFwiXCIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2luc3RhbGxfc2lnbmFsX2hhbmRsZXIgY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW5zdGFsbF9zaWduYWxfaGFuZGxlcigpe3JldHVybiAwfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3J1bnRpbWVfd2FybmluZ3NcbnZhciBjYW1sX3J1bnRpbWVfd2FybmluZ3MgPSAwO1xuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX2VuYWJsZV9ydW50aW1lX3dhcm5pbmdzXG4vL1JlcXVpcmVzOiBjYW1sX3J1bnRpbWVfd2FybmluZ3NcbmZ1bmN0aW9uIGNhbWxfbWxfZW5hYmxlX3J1bnRpbWVfd2FybmluZ3MgKGJvb2wpIHtcbiAgY2FtbF9ydW50aW1lX3dhcm5pbmdzID0gYm9vbDtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfcnVudGltZV93YXJuaW5nc19lbmFibGVkXG4vL1JlcXVpcmVzOiBjYW1sX3J1bnRpbWVfd2FybmluZ3NcbmZ1bmN0aW9uIGNhbWxfbWxfcnVudGltZV93YXJuaW5nc19lbmFibGVkIChfdW5pdCkge1xuICByZXR1cm4gY2FtbF9ydW50aW1lX3dhcm5pbmdzO1xufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfc3BhY2V0aW1lX2VuYWJsZWQgY29uc3QgKGNvbnN0KVxuZnVuY3Rpb24gY2FtbF9zcGFjZXRpbWVfZW5hYmxlZChfdW5pdCkge1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfY29uc3RfbmFrZWRfcG9pbnRlcnNfY2hlY2tlZCBjb25zdCAoY29uc3QpXG5mdW5jdGlvbiBjYW1sX3N5c19jb25zdF9uYWtlZF9wb2ludGVyc19jaGVja2VkKF91bml0KSB7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3JlZ2lzdGVyX2NoYW5uZWxfZm9yX3NwYWNldGltZSBjb25zdCAoY29uc3QpXG5mdW5jdGlvbiBjYW1sX3JlZ2lzdGVyX2NoYW5uZWxfZm9yX3NwYWNldGltZShfY2hhbm5lbCkge1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zcGFjZXRpbWVfb25seV93b3Jrc19mb3JfbmF0aXZlX2NvZGVcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbmZ1bmN0aW9uIGNhbWxfc3BhY2V0aW1lX29ubHlfd29ya3NfZm9yX25hdGl2ZV9jb2RlKCkge1xuICBjYW1sX2ZhaWx3aXRoKFwiU3BhY2V0aW1lIHByb2ZpbGluZyBvbmx5IHdvcmtzIGZvciBuYXRpdmUgY29kZVwiKTtcbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19pc19yZWd1bGFyX2ZpbGVcbi8vUmVxdWlyZXM6IHJlc29sdmVfZnNfZGV2aWNlXG5mdW5jdGlvbiBjYW1sX3N5c19pc19yZWd1bGFyX2ZpbGUobmFtZSkge1xuICB2YXIgcm9vdCA9IHJlc29sdmVfZnNfZGV2aWNlKG5hbWUpO1xuICByZXR1cm4gcm9vdC5kZXZpY2UuaXNGaWxlKHJvb3QucmVzdCk7XG59XG4vL0Fsd2F5c1xuLy9SZXF1aXJlczogY2FtbF9mYXRhbF91bmNhdWdodF9leGNlcHRpb25cbmZ1bmN0aW9uIGNhbWxfc2V0dXBfdW5jYXVnaHRfZXhjZXB0aW9uX2hhbmRsZXIoKSB7XG4gIHZhciBwcm9jZXNzID0gZ2xvYmFsVGhpcy5wcm9jZXNzO1xuICBpZihwcm9jZXNzICYmIHByb2Nlc3Mub24pIHtcbiAgICBwcm9jZXNzLm9uKCd1bmNhdWdodEV4Y2VwdGlvbicsIGZ1bmN0aW9uIChlcnIsIG9yaWdpbikge1xuICAgICAgY2FtbF9mYXRhbF91bmNhdWdodF9leGNlcHRpb24oZXJyKTtcbiAgICAgIHByb2Nlc3MuZXhpdCAoMik7XG4gICAgfSlcbiAgfVxuICBlbHNlIGlmKGdsb2JhbFRoaXMuYWRkRXZlbnRMaXN0ZW5lcil7XG4gICAgZ2xvYmFsVGhpcy5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIGZ1bmN0aW9uKGV2ZW50KXtcbiAgICAgIGlmKGV2ZW50LmVycm9yKXtcbiAgICAgICAgY2FtbF9mYXRhbF91bmNhdWdodF9leGNlcHRpb24oZXZlbnQuZXJyb3IpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG5jYW1sX3NldHVwX3VuY2F1Z2h0X2V4Y2VwdGlvbl9oYW5kbGVyKCk7XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfcmVjb3JkX2JhY2t0cmFjZV9mbGFnXG4vL1JlcXVpcmVzOiBqc29vX3N5c19nZXRlbnZcbnZhciBjYW1sX3JlY29yZF9iYWNrdHJhY2VfZmxhZyA9IEZMQUcoXCJ3aXRoLWpzLWVycm9yXCIpO1xuXG4oZnVuY3Rpb24gKCkge1xuICB2YXIgciA9IGpzb29fc3lzX2dldGVudihcIk9DQU1MUlVOUEFSQU1cIilcbiAgaWYociAhPT0gdW5kZWZpbmVkKXtcbiAgICB2YXIgbCA9IHIuc3BsaXQoXCIsXCIpO1xuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBsLmxlbmd0aDsgaSsrKXtcbiAgICAgIGlmKGxbaV0gPT0gXCJiXCIpIHsgY2FtbF9yZWNvcmRfYmFja3RyYWNlX2ZsYWcgPSAxOyBicmVhayB9XG4gICAgICBlbHNlIGlmIChsW2ldLnN0YXJ0c1dpdGgoXCJiPVwiKSkge1xuICAgICAgICBjYW1sX3JlY29yZF9iYWNrdHJhY2VfZmxhZyA9ICsobFtpXS5zbGljZSgyKSl9XG4gICAgICBlbHNlIGNvbnRpbnVlO1xuICAgIH1cbiAgfVxufSkgKClcblxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX2RlYnVnX2luZm9fc3RhdHVzIGNvbnN0XG5mdW5jdGlvbiBjYW1sX21sX2RlYnVnX2luZm9fc3RhdHVzICgpIHsgcmV0dXJuIDA7IH1cbi8vUHJvdmlkZXM6IGNhbWxfYmFja3RyYWNlX3N0YXR1c1xuLy9SZXF1aXJlczogY2FtbF9yZWNvcmRfYmFja3RyYWNlX2ZsYWdcbmZ1bmN0aW9uIGNhbWxfYmFja3RyYWNlX3N0YXR1cyAoX3VuaXQpIHsgcmV0dXJuIGNhbWxfcmVjb3JkX2JhY2t0cmFjZV9mbGFnID8gMSA6IDA7IH1cbi8vUHJvdmlkZXM6IGNhbWxfZ2V0X2V4Y2VwdGlvbl9iYWNrdHJhY2UgY29uc3RcbmZ1bmN0aW9uIGNhbWxfZ2V0X2V4Y2VwdGlvbl9iYWNrdHJhY2UgKCkgeyByZXR1cm4gMDsgfVxuLy9Qcm92aWRlczogY2FtbF9nZXRfZXhjZXB0aW9uX3Jhd19iYWNrdHJhY2UgY29uc3RcbmZ1bmN0aW9uIGNhbWxfZ2V0X2V4Y2VwdGlvbl9yYXdfYmFja3RyYWNlICgpIHsgcmV0dXJuIFswXTsgfVxuLy9Qcm92aWRlczogY2FtbF9yZWNvcmRfYmFja3RyYWNlXG4vL1JlcXVpcmVzOiBjYW1sX3JlY29yZF9iYWNrdHJhY2VfZmxhZ1xuZnVuY3Rpb24gY2FtbF9yZWNvcmRfYmFja3RyYWNlIChiKSB7IGNhbWxfcmVjb3JkX2JhY2t0cmFjZV9mbGFnID0gYjsgcmV0dXJuIDA7IH1cbi8vUHJvdmlkZXM6IGNhbWxfY29udmVydF9yYXdfYmFja3RyYWNlIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2NvbnZlcnRfcmF3X2JhY2t0cmFjZSAoKSB7IHJldHVybiBbMF07IH1cbi8vUHJvdmlkZXM6IGNhbWxfcmF3X2JhY2t0cmFjZV9sZW5ndGhcbmZ1bmN0aW9uIGNhbWxfcmF3X2JhY2t0cmFjZV9sZW5ndGgoKSB7IHJldHVybiAwOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX3Jhd19iYWNrdHJhY2VfbmV4dF9zbG90XG5mdW5jdGlvbiBjYW1sX3Jhd19iYWNrdHJhY2VfbmV4dF9zbG90KCkgeyByZXR1cm4gMCB9XG4vL1Byb3ZpZGVzOiBjYW1sX3Jhd19iYWNrdHJhY2Vfc2xvdFxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBjYW1sX3Jhd19iYWNrdHJhY2Vfc2xvdCAoKSB7XG4gIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIlByaW50ZXhjLmdldF9yYXdfYmFja3RyYWNlX3Nsb3Q6IGluZGV4IG91dCBvZiBib3VuZHNcIik7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX3Jlc3RvcmVfcmF3X2JhY2t0cmFjZVxuZnVuY3Rpb24gY2FtbF9yZXN0b3JlX3Jhd19iYWNrdHJhY2UoZXhuLCBidCkgeyByZXR1cm4gMCB9XG4vL1Byb3ZpZGVzOiBjYW1sX2dldF9jdXJyZW50X2NhbGxzdGFjayBjb25zdFxuZnVuY3Rpb24gY2FtbF9nZXRfY3VycmVudF9jYWxsc3RhY2sgKCkgeyByZXR1cm4gWzBdOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfY29udmVydF9yYXdfYmFja3RyYWNlX3Nsb3Rcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbmZ1bmN0aW9uIGNhbWxfY29udmVydF9yYXdfYmFja3RyYWNlX3Nsb3QoKXtcbiAgY2FtbF9mYWlsd2l0aChcImNhbWxfY29udmVydF9yYXdfYmFja3RyYWNlX3Nsb3RcIik7XG59XG4iLCIvLyBKc19vZl9vY2FtbCBsaWJyYXJ5XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy8gQ29weXJpZ2h0IChDKSAyMDEwIErDqXLDtG1lIFZvdWlsbG9uXG4vLyBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3Rcbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vLy8vLy8vLy8vLy8gSnNsaWJcblxuLy9Qcm92aWRlczogY2FtbF9qc19wdXJlX2V4cHIgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfY2FsbGJhY2tcbmZ1bmN0aW9uIGNhbWxfanNfcHVyZV9leHByIChmKSB7IHJldHVybiBjYW1sX2NhbGxiYWNrKGYsIFswXSk7IH1cblxuLy9Qcm92aWRlczogY2FtbF9qc19zZXQgKG11dGFibGUsIGNvbnN0LCBtdXRhYmxlKVxuZnVuY3Rpb24gY2FtbF9qc19zZXQobyxmLHYpIHsgb1tmXT12O3JldHVybiAwfVxuLy9Qcm92aWRlczogY2FtbF9qc19nZXQgKG11dGFibGUsIGNvbnN0KVxuZnVuY3Rpb24gY2FtbF9qc19nZXQobyxmKSB7IHJldHVybiBvW2ZdOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2pzX2RlbGV0ZSAobXV0YWJsZSwgY29uc3QpXG5mdW5jdGlvbiBjYW1sX2pzX2RlbGV0ZShvLGYpIHsgZGVsZXRlIG9bZl07IHJldHVybiAwfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX2luc3RhbmNlb2YgKGNvbnN0LCBjb25zdClcbmZ1bmN0aW9uIGNhbWxfanNfaW5zdGFuY2VvZihvLGMpIHsgcmV0dXJuIChvIGluc3RhbmNlb2YgYykgPyAxIDogMDsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX3R5cGVvZiAoY29uc3QpXG5mdW5jdGlvbiBjYW1sX2pzX3R5cGVvZihvKSB7IHJldHVybiB0eXBlb2YgbzsgfVxuXG4vL1Byb3ZpZGVzOmNhbWxfdHJhbXBvbGluZVxuZnVuY3Rpb24gY2FtbF90cmFtcG9saW5lKHJlcykge1xuICB2YXIgYyA9IDE7XG4gIHdoaWxlKHJlcyAmJiByZXMuam9vX3RyYW1wKXtcbiAgICByZXMgPSByZXMuam9vX3RyYW1wLmFwcGx5KG51bGwsIHJlcy5qb29fYXJncyk7XG4gICAgYysrO1xuICB9XG4gIHJldHVybiByZXM7XG59XG5cbi8vUHJvdmlkZXM6Y2FtbF90cmFtcG9saW5lX3JldHVyblxuZnVuY3Rpb24gY2FtbF90cmFtcG9saW5lX3JldHVybihmLGFyZ3MpIHtcbiAgcmV0dXJuIHtqb29fdHJhbXA6Zixqb29fYXJnczphcmdzfTtcbn1cblxuLy9Qcm92aWRlczpjYW1sX3N0YWNrX2RlcHRoXG4vL0lmOiBlZmZlY3RzXG52YXIgY2FtbF9zdGFja19kZXB0aCA9IDA7XG5cbi8vUHJvdmlkZXM6Y2FtbF9zdGFja19jaGVja19kZXB0aFxuLy9JZjogZWZmZWN0c1xuLy9SZXF1aXJlczpjYW1sX3N0YWNrX2RlcHRoXG5mdW5jdGlvbiBjYW1sX3N0YWNrX2NoZWNrX2RlcHRoKCkge1xuICAgIHJldHVybiAtLWNhbWxfc3RhY2tfZGVwdGggPiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2NhbGxiYWNrXG4vL0lmOiAhZWZmZWN0c1xuLy9SZXF1aXJlczpjYW1sX2NhbGxfZ2VuXG52YXIgY2FtbF9jYWxsYmFjayA9IGNhbWxfY2FsbF9nZW47XG5cbi8vUHJvdmlkZXM6IGNhbWxfY2FsbGJhY2tcbi8vSWY6IGVmZmVjdHNcbi8vUmVxdWlyZXM6Y2FtbF9zdGFja19kZXB0aCwgY2FtbF9jYWxsX2dlbiwgY2FtbF9leG5fc3RhY2ssIGNhbWxfZmliZXJfc3RhY2ssIGNhbWxfd3JhcF9leGNlcHRpb24sIGNhbWxfcmVzdW1lX3N0YWNrLCBjYW1sX2ZyZXNoX29vX2lkLCBjYW1sX25hbWVkX3ZhbHVlLCBjYW1sX3JhaXNlX3dpdGhfYXJnLCBjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX2NvbnN0YW50XG5mdW5jdGlvbiBjYW1sX2NhbGxiYWNrKGYsYXJncykge1xuICBmdW5jdGlvbiB1bmNhdWdodF9lZmZlY3RfaGFuZGxlcihlZmYsayxtcykge1xuICAgIC8vIFJlc3VtZXMgdGhlIGNvbnRpbnVhdGlvbiBrIGJ5IHJhaXNpbmcgZXhjZXB0aW9uIFVuaGFuZGxlZC5cbiAgICBjYW1sX3Jlc3VtZV9zdGFjayhrWzFdLG1zKTtcbiAgICB2YXIgZXhuID0gY2FtbF9uYW1lZF92YWx1ZShcIkVmZmVjdC5VbmhhbmRsZWRcIik7XG4gICAgaWYoZXhuKSBjYW1sX3JhaXNlX3dpdGhfYXJnKGV4biwgZWZmKTtcbiAgICBlbHNlIHtcbiAgICAgIGV4biA9IFsyNDgsY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhcIkVmZmVjdC5VbmhhbmRsZWRcIiksIGNhbWxfZnJlc2hfb29faWQoMCldO1xuICAgICAgY2FtbF9yYWlzZV9jb25zdGFudChleG4pO1xuICAgIH1cbiAgfVxuICB2YXIgc2F2ZWRfc3RhY2tfZGVwdGggPSBjYW1sX3N0YWNrX2RlcHRoO1xuICB2YXIgc2F2ZWRfZXhuX3N0YWNrID0gY2FtbF9leG5fc3RhY2s7XG4gIHZhciBzYXZlZF9maWJlcl9zdGFjayA9IGNhbWxfZmliZXJfc3RhY2s7XG4gIHRyeSB7XG4gICAgY2FtbF9leG5fc3RhY2sgPSAwO1xuICAgIGNhbWxfZmliZXJfc3RhY2sgPVxuICAgICAge2g6WzAsIDAsIDAsIHVuY2F1Z2h0X2VmZmVjdF9oYW5kbGVyXSwgcjp7azowLCB4OjAsIGU6MH19O1xuICAgIHZhciByZXMgPSB7am9vX3RyYW1wOiBmLFxuICAgICAgICAgICAgICAgam9vX2FyZ3M6IGFyZ3MuY29uY2F0KGZ1bmN0aW9uICh4KXtyZXR1cm4geDt9KX07XG4gICAgZG8ge1xuICAgICAgY2FtbF9zdGFja19kZXB0aCA9IDQwO1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmVzID0gY2FtbF9jYWxsX2dlbihyZXMuam9vX3RyYW1wLCByZXMuam9vX2FyZ3MpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAvKiBIYW5kbGUgZXhjZXB0aW9uIGNvbWluZyBmcm9tIEphdmFTY3JpcHQgb3IgZnJvbSB0aGUgcnVudGltZS4gKi9cbiAgICAgICAgaWYgKCFjYW1sX2V4bl9zdGFjaykgdGhyb3cgZTtcbiAgICAgICAgdmFyIGhhbmRsZXIgPSBjYW1sX2V4bl9zdGFja1sxXTtcbiAgICAgICAgY2FtbF9leG5fc3RhY2sgPSBjYW1sX2V4bl9zdGFja1syXTtcbiAgICAgICAgcmVzID0ge2pvb190cmFtcDogaGFuZGxlcixcbiAgICAgICAgICAgICAgIGpvb19hcmdzOiBbY2FtbF93cmFwX2V4Y2VwdGlvbihlKV19O1xuICAgICAgfVxuICAgIH0gd2hpbGUocmVzICYmIHJlcy5qb29fYXJncylcbiAgfSBmaW5hbGx5IHtcbiAgICBjYW1sX3N0YWNrX2RlcHRoID0gc2F2ZWRfc3RhY2tfZGVwdGg7XG4gICAgY2FtbF9leG5fc3RhY2sgPSBzYXZlZF9leG5fc3RhY2s7XG4gICAgY2FtbF9maWJlcl9zdGFjayA9IHNhdmVkX2ZpYmVyX3N0YWNrO1xuICB9XG4gIHJldHVybiByZXM7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaXNfanNcbmZ1bmN0aW9uIGNhbWxfaXNfanMoKSB7XG4gIHJldHVybiAxO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzb29fZmxhZ3NfdXNlX2pzX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9qc29vX2ZsYWdzX3VzZV9qc19zdHJpbmcodW5pdCl7XG4gIHJldHVybiBGTEFHKFwidXNlLWpzLXN0cmluZ1wiKVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzb29fZmxhZ3NfZWZmZWN0c1xuZnVuY3Rpb24gY2FtbF9qc29vX2ZsYWdzX2VmZmVjdHModW5pdCl7XG4gIHJldHVybiBGTEFHKFwiZWZmZWN0c1wiKVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3dyYXBfZXhjZXB0aW9uIGNvbnN0IChtdXRhYmxlKVxuLy9SZXF1aXJlczogY2FtbF9nbG9iYWxfZGF0YSxjYW1sX3N0cmluZ19vZl9qc3N0cmluZyxjYW1sX25hbWVkX3ZhbHVlXG5mdW5jdGlvbiBjYW1sX3dyYXBfZXhjZXB0aW9uKGUpIHtcbiAgaWYgKEZMQUcoXCJleGN3cmFwXCIpKSB7XG4gICAgaWYoZSBpbnN0YW5jZW9mIEFycmF5KSByZXR1cm4gZTtcbiAgICB2YXIgZXhuO1xuICAgIC8vU3RhY2tfb3ZlcmZsb3c6IGNocm9tZSwgc2FmYXJpXG4gICAgaWYoZ2xvYmFsVGhpcy5SYW5nZUVycm9yXG4gICAgICAgJiYgZSBpbnN0YW5jZW9mIGdsb2JhbFRoaXMuUmFuZ2VFcnJvclxuICAgICAgICYmIGUubWVzc2FnZVxuICAgICAgICYmIGUubWVzc2FnZS5tYXRjaCgvbWF4aW11bSBjYWxsIHN0YWNrL2kpKVxuICAgICAgZXhuID0gY2FtbF9nbG9iYWxfZGF0YS5TdGFja19vdmVyZmxvdztcbiAgICAvL1N0YWNrX292ZXJmbG93OiBmaXJlZm94XG4gICAgZWxzZSBpZihnbG9iYWxUaGlzLkludGVybmFsRXJyb3JcbiAgICAgICAmJiBlIGluc3RhbmNlb2YgZ2xvYmFsVGhpcy5JbnRlcm5hbEVycm9yXG4gICAgICAgJiYgZS5tZXNzYWdlXG4gICAgICAgJiYgZS5tZXNzYWdlLm1hdGNoKC90b28gbXVjaCByZWN1cnNpb24vaSkpXG4gICAgICBleG4gPSBjYW1sX2dsb2JhbF9kYXRhLlN0YWNrX292ZXJmbG93O1xuICAgIC8vV3JhcCBFcnJvciBpbiBKcy5FcnJvciBleGNlcHRpb25cbiAgICBlbHNlIGlmKGUgaW5zdGFuY2VvZiBnbG9iYWxUaGlzLkVycm9yICYmIGNhbWxfbmFtZWRfdmFsdWUoXCJqc0Vycm9yXCIpKVxuICAgICAgZXhuID0gWzAsY2FtbF9uYW1lZF92YWx1ZShcImpzRXJyb3JcIiksZV07XG4gICAgZWxzZVxuICAgICAgLy9mYWxsYmFjazogd3JhcHBlZCBpbiBGYWlsdXJlXG4gICAgICBleG4gPSBbMCxjYW1sX2dsb2JhbF9kYXRhLkZhaWx1cmUsY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmcgKFN0cmluZyhlKSldO1xuICAgIC8vIFdlIGFscmVhZHkgaGF2ZSBhbiBlcnJvciBhdCBoYW5kLCBsZXQncyB1c2UgaXQuXG4gICAgaWYgKGUgaW5zdGFuY2VvZiBnbG9iYWxUaGlzLkVycm9yKVxuICAgICAgZXhuLmpzX2Vycm9yID0gZTtcbiAgICByZXR1cm4gZXhuO1xuICB9IGVsc2VcbiAgICByZXR1cm4gZTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tYXliZV9hdHRhY2hfYmFja3RyYWNlXG4vL1JlcXVpcmVzOiBjYW1sX2V4bl93aXRoX2pzX2JhY2t0cmFjZVxuLy9SZXF1aXJlczogY2FtbF9yZWNvcmRfYmFja3RyYWNlX2ZsYWdcbmZ1bmN0aW9uIGNhbWxfbWF5YmVfYXR0YWNoX2JhY2t0cmFjZShleG4sIGZvcmNlKSB7XG4gIGlmKGNhbWxfcmVjb3JkX2JhY2t0cmFjZV9mbGFnKVxuICAgIHJldHVybiBjYW1sX2V4bl93aXRoX2pzX2JhY2t0cmFjZShleG4sIGZvcmNlKTtcbiAgZWxzZSByZXR1cm4gZXhuXG59XG5cbi8vIEV4cGVyaW1lbnRhbFxuLy9Qcm92aWRlczogY2FtbF9leG5fd2l0aF9qc19iYWNrdHJhY2Vcbi8vUmVxdWlyZXM6IGNhbWxfZ2xvYmFsX2RhdGFcbmZ1bmN0aW9uIGNhbWxfZXhuX3dpdGhfanNfYmFja3RyYWNlKGV4biwgZm9yY2UpIHtcbiAgLy9uZXZlciByZXJhaXNlIGZvciBjb25zdGFudCBleG5cbiAgaWYoIWV4bi5qc19lcnJvciB8fCBmb3JjZSB8fCBleG5bMF0gPT0gMjQ4KSBleG4uanNfZXJyb3IgPSBuZXcgZ2xvYmFsVGhpcy5FcnJvcihcIkpzIGV4Y2VwdGlvbiBjb250YWluaW5nIGJhY2t0cmFjZVwiKTtcbiAgcmV0dXJuIGV4bjtcbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX2Vycm9yX29wdGlvbl9vZl9leGNlcHRpb25cbmZ1bmN0aW9uIGNhbWxfanNfZXJyb3Jfb3B0aW9uX29mX2V4Y2VwdGlvbihleG4pIHtcbiAgaWYoZXhuLmpzX2Vycm9yKSB7IHJldHVybiBbMCwgZXhuLmpzX2Vycm9yXTsgfVxuICByZXR1cm4gMDtcbn1cblxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfZnJvbV9ib29sIGNvbnN0IChjb25zdClcbmZ1bmN0aW9uIGNhbWxfanNfZnJvbV9ib29sKHgpIHsgcmV0dXJuICEheDsgfVxuLy9Qcm92aWRlczogY2FtbF9qc190b19ib29sIGNvbnN0IChjb25zdClcbmZ1bmN0aW9uIGNhbWxfanNfdG9fYm9vbCh4KSB7IHJldHVybiAreDsgfVxuLy9Qcm92aWRlczogY2FtbF9qc19mcm9tX2Zsb2F0IGNvbnN0IChjb25zdClcbmZ1bmN0aW9uIGNhbWxfanNfZnJvbV9mbG9hdCh4KSB7IHJldHVybiB4OyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2pzX3RvX2Zsb2F0IGNvbnN0IChjb25zdClcbmZ1bmN0aW9uIGNhbWxfanNfdG9fZmxvYXQoeCkgeyByZXR1cm4geDsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX2Zyb21fYXJyYXkgbXV0YWJsZSAoc2hhbGxvdylcbmZ1bmN0aW9uIGNhbWxfanNfZnJvbV9hcnJheShhKSB7XG4gIHJldHVybiBhLnNsaWNlKDEpO1xufVxuLy9Qcm92aWRlczogY2FtbF9qc190b19hcnJheSBtdXRhYmxlIChzaGFsbG93KVxuZnVuY3Rpb24gY2FtbF9qc190b19hcnJheShhKSB7XG4gIHZhciBsZW4gPSBhLmxlbmd0aDtcbiAgdmFyIGIgPSBuZXcgQXJyYXkobGVuKzEpO1xuICBiWzBdID0gMDtcbiAgZm9yKHZhciBpPTA7aTxsZW47aSsrKSBiW2krMV0gPSBhW2ldO1xuICByZXR1cm4gYjtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9saXN0X29mX2pzX2FycmF5IGNvbnN0IChtdXRhYmxlKVxuZnVuY3Rpb24gY2FtbF9saXN0X29mX2pzX2FycmF5KGEpe1xuICB2YXIgbCA9IDA7XG4gIGZvcih2YXIgaT1hLmxlbmd0aCAtIDE7IGk+PTA7IGktLSl7XG4gICAgdmFyIGUgPSBhW2ldO1xuICAgIGwgPSBbMCxlLGxdO1xuICB9XG4gIHJldHVybiBsXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbGlzdF90b19qc19hcnJheSBjb25zdCAobXV0YWJsZSlcbmZ1bmN0aW9uIGNhbWxfbGlzdF90b19qc19hcnJheShsKXtcbiAgdmFyIGEgPSBbXTtcbiAgZm9yKDsgbCAhPT0gMDsgbCA9IGxbMl0pIHtcbiAgICBhLnB1c2gobFsxXSk7XG4gIH1cbiAgcmV0dXJuIGE7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfdmFyIG11dGFibGVcbi8vUmVxdWlyZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2pzX3Zhcih4KSB7XG4gIHZhciB4ID0gY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcoeCk7XG4gIC8vQ2hlY2tzIHRoYXQgeCBoYXMgdGhlIGZvcm0gaWRlbnRbLmlkZW50XSpcbiAgaWYoIXgubWF0Y2goL15bYS16QS1aXyRdW2EtekEtWl8kMC05XSooXFwuW2EtekEtWl8kXVthLXpBLVpfJDAtOV0qKSokLykpe1xuICAgIGNvbnNvbGUuZXJyb3IoXCJjYW1sX2pzX3ZhcjogXFxcIlwiICsgeCArIFwiXFxcIiBpcyBub3QgYSB2YWxpZCBKYXZhU2NyaXB0IHZhcmlhYmxlLiBjb250aW51aW5nIC4uXCIpO1xuICAgIC8vY29uc29sZS5lcnJvcihcIkpzLlVuc2FmZS5ldmFsX3N0cmluZ1wiKVxuICB9XG4gIHJldHVybiBldmFsKHgpO1xufVxuLy9Qcm92aWRlczogY2FtbF9qc19jYWxsIChjb25zdCwgbXV0YWJsZSwgc2hhbGxvdylcbi8vUmVxdWlyZXM6IGNhbWxfanNfZnJvbV9hcnJheVxuZnVuY3Rpb24gY2FtbF9qc19jYWxsKGYsIG8sIGFyZ3MpIHsgcmV0dXJuIGYuYXBwbHkobywgY2FtbF9qc19mcm9tX2FycmF5KGFyZ3MpKTsgfVxuLy9Qcm92aWRlczogY2FtbF9qc19mdW5fY2FsbCAoY29uc3QsIHNoYWxsb3cpXG4vL1JlcXVpcmVzOiBjYW1sX2pzX2Zyb21fYXJyYXlcbmZ1bmN0aW9uIGNhbWxfanNfZnVuX2NhbGwoZiwgYSkge1xuICBzd2l0Y2ggKGEubGVuZ3RoKSB7XG4gIGNhc2UgMTogcmV0dXJuIGYoKTtcbiAgY2FzZSAyOiByZXR1cm4gZiAoYVsxXSk7XG4gIGNhc2UgMzogcmV0dXJuIGYgKGFbMV0sYVsyXSk7XG4gIGNhc2UgNDogcmV0dXJuIGYgKGFbMV0sYVsyXSxhWzNdKTtcbiAgY2FzZSA1OiByZXR1cm4gZiAoYVsxXSxhWzJdLGFbM10sYVs0XSk7XG4gIGNhc2UgNjogcmV0dXJuIGYgKGFbMV0sYVsyXSxhWzNdLGFbNF0sYVs1XSk7XG4gIGNhc2UgNzogcmV0dXJuIGYgKGFbMV0sYVsyXSxhWzNdLGFbNF0sYVs1XSxhWzZdKTtcbiAgY2FzZSA4OiByZXR1cm4gZiAoYVsxXSxhWzJdLGFbM10sYVs0XSxhWzVdLGFbNl0sYVs3XSk7XG4gIH1cbiAgcmV0dXJuIGYuYXBwbHkobnVsbCwgY2FtbF9qc19mcm9tX2FycmF5KGEpKTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfanNfbWV0aF9jYWxsIChtdXRhYmxlLCBjb25zdCwgc2hhbGxvdylcbi8vUmVxdWlyZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX2pzX2Zyb21fYXJyYXlcbmZ1bmN0aW9uIGNhbWxfanNfbWV0aF9jYWxsKG8sIGYsIGFyZ3MpIHtcbiAgcmV0dXJuIG9bY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcoZildLmFwcGx5KG8sIGNhbWxfanNfZnJvbV9hcnJheShhcmdzKSk7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2pzX25ldyAoY29uc3QsIHNoYWxsb3cpXG4vL1JlcXVpcmVzOiBjYW1sX2pzX2Zyb21fYXJyYXlcbmZ1bmN0aW9uIGNhbWxfanNfbmV3KGMsIGEpIHtcbiAgc3dpdGNoIChhLmxlbmd0aCkge1xuICBjYXNlIDE6IHJldHVybiBuZXcgYztcbiAgY2FzZSAyOiByZXR1cm4gbmV3IGMgKGFbMV0pO1xuICBjYXNlIDM6IHJldHVybiBuZXcgYyAoYVsxXSxhWzJdKTtcbiAgY2FzZSA0OiByZXR1cm4gbmV3IGMgKGFbMV0sYVsyXSxhWzNdKTtcbiAgY2FzZSA1OiByZXR1cm4gbmV3IGMgKGFbMV0sYVsyXSxhWzNdLGFbNF0pO1xuICBjYXNlIDY6IHJldHVybiBuZXcgYyAoYVsxXSxhWzJdLGFbM10sYVs0XSxhWzVdKTtcbiAgY2FzZSA3OiByZXR1cm4gbmV3IGMgKGFbMV0sYVsyXSxhWzNdLGFbNF0sYVs1XSxhWzZdKTtcbiAgY2FzZSA4OiByZXR1cm4gbmV3IGMgKGFbMV0sYVsyXSxhWzNdLGFbNF0sYVs1XSxhWzZdLGFbN10pO1xuICB9XG4gIGZ1bmN0aW9uIEYoKSB7IHJldHVybiBjLmFwcGx5KHRoaXMsIGNhbWxfanNfZnJvbV9hcnJheShhKSk7IH1cbiAgRi5wcm90b3R5cGUgPSBjLnByb3RvdHlwZTtcbiAgcmV0dXJuIG5ldyBGO1xufVxuLy9Qcm92aWRlczogY2FtbF9vanNfbmV3X2FyciAoY29uc3QsIHNoYWxsb3cpXG4vL1JlcXVpcmVzOiBjYW1sX2pzX2Zyb21fYXJyYXlcbmZ1bmN0aW9uIGNhbWxfb2pzX25ld19hcnIoYywgYSkge1xuICBzd2l0Y2ggKGEubGVuZ3RoKSB7XG4gIGNhc2UgMDogcmV0dXJuIG5ldyBjO1xuICBjYXNlIDE6IHJldHVybiBuZXcgYyAoYVswXSk7XG4gIGNhc2UgMjogcmV0dXJuIG5ldyBjIChhWzBdLGFbMV0pO1xuICBjYXNlIDM6IHJldHVybiBuZXcgYyAoYVswXSxhWzFdLGFbMl0pO1xuICBjYXNlIDQ6IHJldHVybiBuZXcgYyAoYVswXSxhWzFdLGFbMl0sYVszXSk7XG4gIGNhc2UgNTogcmV0dXJuIG5ldyBjIChhWzBdLGFbMV0sYVsyXSxhWzNdLGFbNF0pO1xuICBjYXNlIDY6IHJldHVybiBuZXcgYyAoYVswXSxhWzFdLGFbMl0sYVszXSxhWzRdLGFbNV0pO1xuICBjYXNlIDc6IHJldHVybiBuZXcgYyAoYVswXSxhWzFdLGFbMl0sYVszXSxhWzRdLGFbNV0sYVs2XSk7XG4gIH1cbiAgZnVuY3Rpb24gRigpIHsgcmV0dXJuIGMuYXBwbHkodGhpcywgYSk7IH1cbiAgRi5wcm90b3R5cGUgPSBjLnByb3RvdHlwZTtcbiAgcmV0dXJuIG5ldyBGO1xufVxuLy9Qcm92aWRlczogY2FtbF9qc193cmFwX2NhbGxiYWNrIGNvbnN0IChjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfY2FsbGJhY2tcbmZ1bmN0aW9uIGNhbWxfanNfd3JhcF9jYWxsYmFjayhmKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGxlbiA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gICAgaWYobGVuID4gMCl7XG4gICAgICB2YXIgYXJncyA9IG5ldyBBcnJheShsZW4pO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykgYXJnc1tpXSA9IGFyZ3VtZW50c1tpXTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXJncyA9IFt1bmRlZmluZWRdO1xuICAgIH1cbiAgICB2YXIgcmVzID0gY2FtbF9jYWxsYmFjayhmLCBhcmdzKTtcbiAgICByZXR1cm4gKHJlcyBpbnN0YW5jZW9mIEZ1bmN0aW9uKT9jYW1sX2pzX3dyYXBfY2FsbGJhY2socmVzKTpyZXM7XG4gIH1cbn1cblxuLy9Qcm92aWRlczogY2FtbF9qc193cmFwX2NhbGxiYWNrX2FyZ3VtZW50c1xuLy9SZXF1aXJlczogY2FtbF9jYWxsYmFja1xuZnVuY3Rpb24gY2FtbF9qc193cmFwX2NhbGxiYWNrX2FyZ3VtZW50cyhmKSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICB2YXIgbGVuID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgICB2YXIgYXJncyA9IG5ldyBBcnJheShsZW4pO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIGFyZ3NbaV0gPSBhcmd1bWVudHNbaV07XG4gICAgcmV0dXJuIGNhbWxfY2FsbGJhY2soZiwgW2FyZ3NdKTtcbiAgfVxufVxuLy9Qcm92aWRlczogY2FtbF9qc193cmFwX2NhbGxiYWNrX3N0cmljdCBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9jYWxsYmFja1xuZnVuY3Rpb24gY2FtbF9qc193cmFwX2NhbGxiYWNrX3N0cmljdChhcml0eSwgZikge1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIHZhciBuID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgICB2YXIgYXJncyA9IG5ldyBBcnJheShhcml0eSk7XG4gICAgdmFyIGxlbiA9IE1hdGgubWluKGFyZ3VtZW50cy5sZW5ndGgsIGFyaXR5KVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIGFyZ3NbaV0gPSBhcmd1bWVudHNbaV07XG4gICAgcmV0dXJuIGNhbWxfY2FsbGJhY2soZiwgYXJncyk7XG4gIH07XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2pzX3dyYXBfY2FsbGJhY2tfdW5zYWZlIGNvbnN0IChjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfY2FsbGJhY2ssIGNhbWxfanNfZnVuY3Rpb25fYXJpdHlcbmZ1bmN0aW9uIGNhbWxfanNfd3JhcF9jYWxsYmFja191bnNhZmUoZikge1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIHZhciBsZW4gPSBjYW1sX2pzX2Z1bmN0aW9uX2FyaXR5KGYpO1xuICAgIHZhciBhcmdzID0gbmV3IEFycmF5KGxlbik7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykgYXJnc1tpXSA9IGFyZ3VtZW50c1tpXTtcbiAgICByZXR1cm4gY2FtbF9jYWxsYmFjayhmLCBhcmdzKTsgfVxufVxuLy9Qcm92aWRlczogY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2sgY29uc3QgKGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9jYWxsYmFjaywgY2FtbF9qc193cmFwX2NhbGxiYWNrXG5mdW5jdGlvbiBjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFjayhmKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGxlbiA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gICAgdmFyIGFyZ3MgPSBuZXcgQXJyYXkobGVuICsgMSk7XG4gICAgYXJnc1swXSA9IHRoaXM7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykgYXJnc1tpKzFdID0gYXJndW1lbnRzW2ldO1xuICAgIHZhciByZXMgPSBjYW1sX2NhbGxiYWNrKGYsYXJncyk7XG4gICAgcmV0dXJuIChyZXMgaW5zdGFuY2VvZiBGdW5jdGlvbik/Y2FtbF9qc193cmFwX2NhbGxiYWNrKHJlcyk6cmVzO1xuICB9XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFja19hcmd1bWVudHMgY29uc3QgKGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9jYWxsYmFja1xuZnVuY3Rpb24gY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2tfYXJndW1lbnRzKGYpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgbGVuID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgICB2YXIgYXJncyA9IG5ldyBBcnJheShsZW4pO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIGFyZ3NbaV0gPSBhcmd1bWVudHNbaV07XG4gICAgcmV0dXJuIGNhbWxfY2FsbGJhY2soZixbdGhpcyxhcmdzXSk7XG4gIH1cbn1cbi8vUHJvdmlkZXM6IGNhbWxfanNfd3JhcF9tZXRoX2NhbGxiYWNrX3N0cmljdCBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9jYWxsYmFja1xuZnVuY3Rpb24gY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2tfc3RyaWN0KGFyaXR5LCBmKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGFyZ3MgPSBuZXcgQXJyYXkoYXJpdHkgKyAxKTtcbiAgICB2YXIgbGVuID0gTWF0aC5taW4oYXJndW1lbnRzLmxlbmd0aCwgYXJpdHkpXG4gICAgYXJnc1swXSA9IHRoaXM7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykgYXJnc1tpKzFdID0gYXJndW1lbnRzW2ldO1xuICAgIHJldHVybiBjYW1sX2NhbGxiYWNrKGYsIGFyZ3MpO1xuICB9O1xufVxuLy9Qcm92aWRlczogY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2tfdW5zYWZlIGNvbnN0IChjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfY2FsbGJhY2ssIGNhbWxfanNfZnVuY3Rpb25fYXJpdHlcbmZ1bmN0aW9uIGNhbWxfanNfd3JhcF9tZXRoX2NhbGxiYWNrX3Vuc2FmZShmKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGxlbiA9IGNhbWxfanNfZnVuY3Rpb25fYXJpdHkoZikgLSAxO1xuICAgIHZhciBhcmdzID0gbmV3IEFycmF5KGxlbiArIDEpO1xuICAgIGFyZ3NbMF0gPSB0aGlzO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIGFyZ3NbaSsxXSA9IGFyZ3VtZW50c1tpXTtcbiAgICByZXR1cm4gY2FtbF9jYWxsYmFjayhmLCBhcmdzKTsgfVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX2Z1bmN0aW9uX2FyaXR5XG4vL0lmOiAhZWZmZWN0c1xuZnVuY3Rpb24gY2FtbF9qc19mdW5jdGlvbl9hcml0eShmKSB7XG4gIHJldHVybiAoZi5sID49IDApP2YubDooZi5sID0gZi5sZW5ndGgpXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfZnVuY3Rpb25fYXJpdHlcbi8vSWY6IGVmZmVjdHNcbmZ1bmN0aW9uIGNhbWxfanNfZnVuY3Rpb25fYXJpdHkoZikge1xuICAvLyBGdW5jdGlvbnMgaGF2ZSBhbiBhZGRpdGlvbmFsIGNvbnRpbnVhdGlvbiBwYXJhbWV0ZXIuIFRoaXMgc2hvdWxkXG4gIC8vIG5vdCBiZSB2aXNpYmxlIHdoZW4gY2FsbGluZyB0aGVtIGZyb20gSmF2YVNjcmlwdFxuICByZXR1cm4gKChmLmwgPj0gMCk/Zi5sOihmLmwgPSBmLmxlbmd0aCkpIC0gMVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX2VxdWFscyBtdXRhYmxlIChjb25zdCwgY29uc3QpXG5mdW5jdGlvbiBjYW1sX2pzX2VxdWFscyAoeCwgeSkgeyByZXR1cm4gKyh4ID09IHkpOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfZXZhbF9zdHJpbmcgKGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfanNfZXZhbF9zdHJpbmcgKHMpIHtyZXR1cm4gZXZhbChjYW1sX2pzc3RyaW5nX29mX3N0cmluZyhzKSk7fVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX2V4cHIgKGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfanNfZXhwcihzKSB7XG4gIGNvbnNvbGUuZXJyb3IoXCJjYW1sX2pzX2V4cHI6IGZhbGxiYWNrIHRvIHJ1bnRpbWUgZXZhbHVhdGlvblxcblwiKTtcbiAgcmV0dXJuIGV2YWwoY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcocykpO31cblxuLy9Qcm92aWRlczogY2FtbF9wdXJlX2pzX2V4cHIgY29uc3QgKGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfcHVyZV9qc19leHByIChzKXtcbiAgY29uc29sZS5lcnJvcihcImNhbWxfcHVyZV9qc19leHByOiBmYWxsYmFjayB0byBydW50aW1lIGV2YWx1YXRpb25cXG5cIik7XG4gIHJldHVybiBldmFsKGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKHMpKTt9XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfb2JqZWN0IChvYmplY3RfbGl0ZXJhbClcbi8vUmVxdWlyZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2pzX29iamVjdCAoYSkge1xuICB2YXIgbyA9IHt9O1xuICBmb3IgKHZhciBpID0gMTsgaSA8IGEubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgcCA9IGFbaV07XG4gICAgb1tjYW1sX2pzc3RyaW5nX29mX3N0cmluZyhwWzFdKV0gPSBwWzJdO1xuICB9XG4gIHJldHVybiBvO1xufVxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy8vLy8vLy8vLy8vLyBGb3JtYXRcblxuLy9Qcm92aWRlczogY2FtbF9wYXJzZV9mb3JtYXRcbi8vUmVxdWlyZXM6IGNhbWxfanNieXRlc19vZl9zdHJpbmcsIGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gY2FtbF9wYXJzZV9mb3JtYXQgKGZtdCkge1xuICBmbXQgPSBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKGZtdCk7XG4gIHZhciBsZW4gPSBmbXQubGVuZ3RoO1xuICBpZiAobGVuID4gMzEpIGNhbWxfaW52YWxpZF9hcmd1bWVudChcImZvcm1hdF9pbnQ6IGZvcm1hdCB0b28gbG9uZ1wiKTtcbiAgdmFyIGYgPVxuICAgICAgeyBqdXN0aWZ5OicrJywgc2lnbnN0eWxlOictJywgZmlsbGVyOicgJywgYWx0ZXJuYXRlOmZhbHNlLFxuICAgICAgICBiYXNlOjAsIHNpZ25lZGNvbnY6ZmFsc2UsIHdpZHRoOjAsIHVwcGVyY2FzZTpmYWxzZSxcbiAgICAgICAgc2lnbjoxLCBwcmVjOi0xLCBjb252OidmJyB9O1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgdmFyIGMgPSBmbXQuY2hhckF0KGkpO1xuICAgIHN3aXRjaCAoYykge1xuICAgIGNhc2UgJy0nOlxuICAgICAgZi5qdXN0aWZ5ID0gJy0nOyBicmVhaztcbiAgICBjYXNlICcrJzogY2FzZSAnICc6XG4gICAgICBmLnNpZ25zdHlsZSA9IGM7IGJyZWFrO1xuICAgIGNhc2UgJzAnOlxuICAgICAgZi5maWxsZXIgPSAnMCc7IGJyZWFrO1xuICAgIGNhc2UgJyMnOlxuICAgICAgZi5hbHRlcm5hdGUgPSB0cnVlOyBicmVhaztcbiAgICBjYXNlICcxJzogY2FzZSAnMic6IGNhc2UgJzMnOiBjYXNlICc0JzogY2FzZSAnNSc6XG4gICAgY2FzZSAnNic6IGNhc2UgJzcnOiBjYXNlICc4JzogY2FzZSAnOSc6XG4gICAgICBmLndpZHRoID0gMDtcbiAgICAgIHdoaWxlIChjPWZtdC5jaGFyQ29kZUF0KGkpIC0gNDgsIGMgPj0gMCAmJiBjIDw9IDkpIHtcbiAgICAgICAgZi53aWR0aCA9IGYud2lkdGggKiAxMCArIGM7IGkrK1xuICAgICAgfVxuICAgICAgaS0tO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnLic6XG4gICAgICBmLnByZWMgPSAwO1xuICAgICAgaSsrO1xuICAgICAgd2hpbGUgKGM9Zm10LmNoYXJDb2RlQXQoaSkgLSA0OCwgYyA+PSAwICYmIGMgPD0gOSkge1xuICAgICAgICBmLnByZWMgPSBmLnByZWMgKiAxMCArIGM7IGkrK1xuICAgICAgfVxuICAgICAgaS0tO1xuICAgIGNhc2UgJ2QnOiBjYXNlICdpJzpcbiAgICAgIGYuc2lnbmVkY29udiA9IHRydWU7IC8qIGZhbGx0aHJvdWdoICovXG4gICAgY2FzZSAndSc6XG4gICAgICBmLmJhc2UgPSAxMDsgYnJlYWs7XG4gICAgY2FzZSAneCc6XG4gICAgICBmLmJhc2UgPSAxNjsgYnJlYWs7XG4gICAgY2FzZSAnWCc6XG4gICAgICBmLmJhc2UgPSAxNjsgZi51cHBlcmNhc2UgPSB0cnVlOyBicmVhaztcbiAgICBjYXNlICdvJzpcbiAgICAgIGYuYmFzZSA9IDg7IGJyZWFrO1xuICAgIGNhc2UgJ2UnOiBjYXNlICdmJzogY2FzZSAnZyc6XG4gICAgICBmLnNpZ25lZGNvbnYgPSB0cnVlOyBmLmNvbnYgPSBjOyBicmVhaztcbiAgICBjYXNlICdFJzogY2FzZSAnRic6IGNhc2UgJ0cnOlxuICAgICAgZi5zaWduZWRjb252ID0gdHJ1ZTsgZi51cHBlcmNhc2UgPSB0cnVlO1xuICAgICAgZi5jb252ID0gYy50b0xvd2VyQ2FzZSAoKTsgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJldHVybiBmO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ZpbmlzaF9mb3JtYXR0aW5nXG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG5mdW5jdGlvbiBjYW1sX2ZpbmlzaF9mb3JtYXR0aW5nKGYsIHJhd2J1ZmZlcikge1xuICBpZiAoZi51cHBlcmNhc2UpIHJhd2J1ZmZlciA9IHJhd2J1ZmZlci50b1VwcGVyQ2FzZSgpO1xuICB2YXIgbGVuID0gcmF3YnVmZmVyLmxlbmd0aDtcbiAgLyogQWRqdXN0IGxlbiB0byByZWZsZWN0IGFkZGl0aW9uYWwgY2hhcnMgKHNpZ24sIGV0YykgKi9cbiAgaWYgKGYuc2lnbmVkY29udiAmJiAoZi5zaWduIDwgMCB8fCBmLnNpZ25zdHlsZSAhPSAnLScpKSBsZW4rKztcbiAgaWYgKGYuYWx0ZXJuYXRlKSB7XG4gICAgaWYgKGYuYmFzZSA9PSA4KSBsZW4gKz0gMTtcbiAgICBpZiAoZi5iYXNlID09IDE2KSBsZW4gKz0gMjtcbiAgfVxuICAvKiBEbyB0aGUgZm9ybWF0dGluZyAqL1xuICB2YXIgYnVmZmVyID0gXCJcIjtcbiAgaWYgKGYuanVzdGlmeSA9PSAnKycgJiYgZi5maWxsZXIgPT0gJyAnKVxuICAgIGZvciAodmFyIGkgPSBsZW47IGkgPCBmLndpZHRoOyBpKyspIGJ1ZmZlciArPSAnICc7XG4gIGlmIChmLnNpZ25lZGNvbnYpIHtcbiAgICBpZiAoZi5zaWduIDwgMCkgYnVmZmVyICs9ICctJztcbiAgICBlbHNlIGlmIChmLnNpZ25zdHlsZSAhPSAnLScpIGJ1ZmZlciArPSBmLnNpZ25zdHlsZTtcbiAgfVxuICBpZiAoZi5hbHRlcm5hdGUgJiYgZi5iYXNlID09IDgpIGJ1ZmZlciArPSAnMCc7XG4gIGlmIChmLmFsdGVybmF0ZSAmJiBmLmJhc2UgPT0gMTYpIGJ1ZmZlciArPSBmLnVwcGVyY2FzZT9cIjBYXCI6XCIweFwiO1xuICBpZiAoZi5qdXN0aWZ5ID09ICcrJyAmJiBmLmZpbGxlciA9PSAnMCcpXG4gICAgZm9yICh2YXIgaSA9IGxlbjsgaSA8IGYud2lkdGg7IGkrKykgYnVmZmVyICs9ICcwJztcbiAgYnVmZmVyICs9IHJhd2J1ZmZlcjtcbiAgaWYgKGYuanVzdGlmeSA9PSAnLScpXG4gICAgZm9yICh2YXIgaSA9IGxlbjsgaSA8IGYud2lkdGg7IGkrKykgYnVmZmVyICs9ICcgJztcbiAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMoYnVmZmVyKTtcbn1cbiIsIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vIENvcHlyaWdodCAoQykgMjAxMCBKw6lyw7RtZSBWb3VpbGxvblxuLy8gTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vL1Byb3ZpZGVzOiBqc29vX2Zsb29yX2xvZzJcbnZhciBsb2cyX29rID0gTWF0aC5sb2cyICYmIE1hdGgubG9nMigxLjEyMzU1ODIwOTI4ODk0NzRFKzMwNykgPT0gMTAyMFxuZnVuY3Rpb24ganNvb19mbG9vcl9sb2cyKHgpIHtcbiAgaWYobG9nMl9vaykgcmV0dXJuIE1hdGguZmxvb3IoTWF0aC5sb2cyKHgpKVxuICB2YXIgaSA9IDA7XG4gIGlmICh4ID09IDApIHJldHVybiAtSW5maW5pdHk7XG4gIGlmKHg+PTEpIHt3aGlsZSAoeD49Mikge3gvPTI7IGkrK30gfVxuICBlbHNlIHt3aGlsZSAoeCA8IDEpIHt4Kj0yOyBpLS19IH07XG4gIHJldHVybiBpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X2JpdHNfb2ZfZmxvYXQgY29uc3Rcbi8vUmVxdWlyZXM6IGpzb29fZmxvb3JfbG9nMiwgY2FtbF9pbnQ2NF9jcmVhdGVfbG9fbWlfaGlcbmZ1bmN0aW9uIGNhbWxfaW50NjRfYml0c19vZl9mbG9hdCAoeCkge1xuICBpZiAoIWlzRmluaXRlKHgpKSB7XG4gICAgaWYgKGlzTmFOKHgpKVxuICAgICAgcmV0dXJuIGNhbWxfaW50NjRfY3JlYXRlX2xvX21pX2hpKDEsIDAsIDB4N2ZmMCk7XG4gICAgaWYgKHggPiAwKVxuICAgICAgcmV0dXJuIGNhbWxfaW50NjRfY3JlYXRlX2xvX21pX2hpKDAsIDAsIDB4N2ZmMClcbiAgICBlbHNlXG4gICAgICByZXR1cm4gY2FtbF9pbnQ2NF9jcmVhdGVfbG9fbWlfaGkoMCwgMCwgMHhmZmYwKVxuICB9XG4gIHZhciBzaWduID0gKHg9PTAgJiYgMS94ID09IC1JbmZpbml0eSk/MHg4MDAwOih4Pj0wKT8wOjB4ODAwMDtcbiAgaWYgKHNpZ24pIHggPSAteDtcbiAgLy8gSW50NjQuYml0c19vZl9mbG9hdCAxLjEyMzU1ODIwOTI4ODk0NzRFKzMwNyA9IDB4N2ZiMDAwMDAwMDAwMDAwMExcbiAgLy8gdXNpbmcgTWF0aC5MT0cyRSpNYXRoLmxvZyh4KSBpbiBwbGFjZSBvZiBNYXRoLmxvZzIgcmVzdWx0IGluIHByZWNpc2lvbiBsb3N0XG4gIHZhciBleHAgPSBqc29vX2Zsb29yX2xvZzIoeCkgKyAxMDIzO1xuICBpZiAoZXhwIDw9IDApIHtcbiAgICBleHAgPSAwO1xuICAgIHggLz0gTWF0aC5wb3coMiwtMTAyNik7XG4gIH0gZWxzZSB7XG4gICAgeCAvPSBNYXRoLnBvdygyLGV4cC0xMDI3KTtcbiAgICBpZiAoeCA8IDE2KSB7XG4gICAgICB4ICo9IDI7IGV4cCAtPTE7IH1cbiAgICBpZiAoZXhwID09IDApIHtcbiAgICAgIHggLz0gMjsgfVxuICB9XG4gIHZhciBrID0gTWF0aC5wb3coMiwyNCk7XG4gIHZhciByMyA9IHh8MDtcbiAgeCA9ICh4IC0gcjMpICogaztcbiAgdmFyIHIyID0geHwwO1xuICB4ID0gKHggLSByMikgKiBrO1xuICB2YXIgcjEgPSB4fDA7XG4gIHIzID0gKHIzICYweGYpIHwgc2lnbiB8IGV4cCA8PCA0O1xuICByZXR1cm4gY2FtbF9pbnQ2NF9jcmVhdGVfbG9fbWlfaGkocjEsIHIyLCByMyk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50MzJfYml0c19vZl9mbG9hdCBjb25zdFxuLy9SZXF1aXJlczoganNvb19mbG9vcl9sb2cyXG5mdW5jdGlvbiBjYW1sX2ludDMyX2JpdHNfb2ZfZmxvYXQgKHgpIHtcbiAgdmFyIGZsb2F0MzJhID0gbmV3IEZsb2F0MzJBcnJheSgxKTtcbiAgZmxvYXQzMmFbMF0gPSB4O1xuICB2YXIgaW50MzJhID0gbmV3IEludDMyQXJyYXkoZmxvYXQzMmEuYnVmZmVyKTtcbiAgcmV0dXJuIGludDMyYVswXSB8IDA7XG59XG5cbi8vRlAgbGl0ZXJhbHMgY2FuIGJlIHdyaXR0ZW4gdXNpbmcgdGhlIGhleGFkZWNpbWFsXG4vL25vdGF0aW9uIDB4PG1hbnRpc3NhIGluIGhleD5wPGV4cG9uZW50PiBmcm9tIElTTyBDOTkuXG4vL2h0dHBzOi8vZ2l0aHViLmNvbS9kYW5rb2dhaS9qcy1oZXhmbG9hdC9ibG9iL21hc3Rlci9oZXhmbG9hdC5qc1xuLy9Qcm92aWRlczogY2FtbF9oZXhzdHJpbmdfb2ZfZmxvYXQgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nLCBjYW1sX3N0cl9yZXBlYXRcbmZ1bmN0aW9uIGNhbWxfaGV4c3RyaW5nX29mX2Zsb2F0ICh4LCBwcmVjLCBzdHlsZSkge1xuICBpZiAoIWlzRmluaXRlKHgpKSB7XG4gICAgaWYgKGlzTmFOKHgpKSByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmcoXCJuYW5cIik7XG4gICAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nICgoeCA+IDApP1wiaW5maW5pdHlcIjpcIi1pbmZpbml0eVwiKTtcbiAgfVxuICB2YXIgc2lnbiA9ICh4PT0wICYmIDEveCA9PSAtSW5maW5pdHkpPzE6KHg+PTApPzA6MTtcbiAgaWYoc2lnbikgeCA9IC14O1xuICB2YXIgZXhwID0gMDtcbiAgaWYgKHggPT0gMCkgeyB9XG4gIGVsc2UgaWYgKHggPCAxKSB7XG4gICAgd2hpbGUgKHggPCAxICYmIGV4cCA+IC0xMDIyKSAgeyB4ICo9IDI7IGV4cC0tIH1cbiAgfSBlbHNlIHtcbiAgICB3aGlsZSAoeCA+PSAyKSB7IHggLz0gMjsgZXhwKysgfVxuICB9XG4gIHZhciBleHBfc2lnbiA9IGV4cCA8IDAgPyAnJyA6ICcrJztcbiAgdmFyIHNpZ25fc3RyID0gJyc7XG4gIGlmIChzaWduKSBzaWduX3N0ciA9ICctJ1xuICBlbHNlIHtcbiAgICBzd2l0Y2goc3R5bGUpe1xuICAgIGNhc2UgNDMgLyogJysnICovOiBzaWduX3N0ciA9ICcrJzsgYnJlYWs7XG4gICAgY2FzZSAzMiAvKiAnICcgKi86IHNpZ25fc3RyID0gJyAnOyBicmVhaztcbiAgICBkZWZhdWx0OiBicmVhaztcbiAgICB9XG4gIH1cbiAgaWYgKHByZWMgPj0gMCAmJiBwcmVjIDwgMTMpIHtcbiAgICAvKiBJZiBhIHByZWNpc2lvbiBpcyBnaXZlbiwgYW5kIGlzIHNtYWxsLCByb3VuZCBtYW50aXNzYSBhY2NvcmRpbmdseSAqL1xuICAgIHZhciBjc3QgPSBNYXRoLnBvdygyLHByZWMgKiA0KTtcbiAgICB4ID0gTWF0aC5yb3VuZCh4ICogY3N0KSAvIGNzdDtcbiAgfVxuICB2YXIgeF9zdHIgPSB4LnRvU3RyaW5nKDE2KTtcbiAgaWYocHJlYyA+PSAwKXtcbiAgICB2YXIgaWR4ID0geF9zdHIuaW5kZXhPZignLicpO1xuICAgIGlmKGlkeDwwKSB7XG4gICAgICB4X3N0ciArPSAnLicgKyBjYW1sX3N0cl9yZXBlYXQocHJlYywgJzAnKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB2YXIgc2l6ZSA9IGlkeCsxK3ByZWM7XG4gICAgICBpZih4X3N0ci5sZW5ndGggPCBzaXplKVxuICAgICAgICB4X3N0ciArPSBjYW1sX3N0cl9yZXBlYXQoc2l6ZSAtIHhfc3RyLmxlbmd0aCwgJzAnKTtcbiAgICAgIGVsc2VcbiAgICAgICAgeF9zdHIgPSB4X3N0ci5zdWJzdHIoMCxzaXplKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nIChzaWduX3N0ciArICcweCcgKyB4X3N0ciArICdwJyArIGV4cF9zaWduICsgZXhwLnRvU3RyaW5nKDEwKSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfZmxvYXRfb2ZfYml0cyBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9mbG9hdF9vZl9iaXRzICh4KSB7XG4gIHZhciBsbyA9IHgubG87XG4gIHZhciBtaSA9IHgubWk7XG4gIHZhciBoaSA9IHguaGk7XG4gIHZhciBleHAgPSAoaGkgJiAweDdmZmYpID4+IDQ7XG4gIGlmIChleHAgPT0gMjA0Nykge1xuICAgIGlmICgobG98bWl8KGhpJjB4ZikpID09IDApXG4gICAgICByZXR1cm4gKGhpICYgMHg4MDAwKT8oLUluZmluaXR5KTpJbmZpbml0eTtcbiAgICBlbHNlXG4gICAgICByZXR1cm4gTmFOO1xuICB9XG4gIHZhciBrID0gTWF0aC5wb3coMiwtMjQpO1xuICB2YXIgcmVzID0gKGxvKmsrbWkpKmsrKGhpJjB4Zik7XG4gIGlmIChleHAgPiAwKSB7XG4gICAgcmVzICs9IDE2O1xuICAgIHJlcyAqPSBNYXRoLnBvdygyLGV4cC0xMDI3KTtcbiAgfSBlbHNlXG4gICAgcmVzICo9IE1hdGgucG93KDIsLTEwMjYpO1xuICBpZiAoaGkgJiAweDgwMDApIHJlcyA9IC0gcmVzO1xuICByZXR1cm4gcmVzO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX25leHRhZnRlcl9mbG9hdCBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9mbG9hdF9vZl9iaXRzLCBjYW1sX2ludDY0X2JpdHNfb2ZfZmxvYXQsIGNhbWxfaW50NjRfYWRkLCBjYW1sX2ludDY0X3N1YixjYW1sX2ludDY0X29mX2ludDMyXG5mdW5jdGlvbiBjYW1sX25leHRhZnRlcl9mbG9hdCAoeCx5KSB7XG4gIGlmKGlzTmFOKHgpIHx8IGlzTmFOKHkpKSByZXR1cm4gTmFOO1xuICBpZih4PT15KSByZXR1cm4geTtcbiAgaWYoeD09MCl7XG4gICAgaWYoeSA8IDApXG4gICAgICByZXR1cm4gLU1hdGgucG93KDIsIC0xMDc0KVxuICAgIGVsc2VcbiAgICAgIHJldHVybiBNYXRoLnBvdygyLCAtMTA3NClcbiAgfVxuICB2YXIgYml0cyA9IGNhbWxfaW50NjRfYml0c19vZl9mbG9hdCh4KTtcbiAgdmFyIG9uZSA9IGNhbWxfaW50NjRfb2ZfaW50MzIoMSk7XG4gIGlmICgoeDx5KSA9PSAoeD4wKSlcbiAgICBiaXRzID0gY2FtbF9pbnQ2NF9hZGQoYml0cywgb25lKVxuICBlbHNlXG4gICAgYml0cyA9IGNhbWxfaW50NjRfc3ViKGJpdHMsIG9uZSlcbiAgcmV0dXJuIGNhbWxfaW50NjRfZmxvYXRfb2ZfYml0cyhiaXRzKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF90cnVuY19mbG9hdFxuZnVuY3Rpb24gY2FtbF90cnVuY19mbG9hdCh4KXtcbiAgcmV0dXJuIE1hdGgudHJ1bmMoeCk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50MzJfZmxvYXRfb2ZfYml0cyBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQzMl9mbG9hdF9vZl9iaXRzICh4KSB7XG4gIHZhciBpbnQzMmEgPSBuZXcgSW50MzJBcnJheSgxKTtcbiAgaW50MzJhWzBdID0geDtcbiAgdmFyIGZsb2F0MzJhID0gbmV3IEZsb2F0MzJBcnJheShpbnQzMmEuYnVmZmVyKTtcbiAgcmV0dXJuIGZsb2F0MzJhWzBdO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2NsYXNzaWZ5X2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2NsYXNzaWZ5X2Zsb2F0ICh4KSB7XG4gIGlmIChpc0Zpbml0ZSAoeCkpIHtcbiAgICBpZiAoTWF0aC5hYnMoeCkgPj0gMi4yMjUwNzM4NTg1MDcyMDE0ZS0zMDgpIHJldHVybiAwO1xuICAgIGlmICh4ICE9IDApIHJldHVybiAxO1xuICAgIHJldHVybiAyO1xuICB9XG4gIHJldHVybiBpc05hTih4KT80OjM7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX21vZGZfZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfbW9kZl9mbG9hdCAoeCkge1xuICBpZiAoaXNGaW5pdGUgKHgpKSB7XG4gICAgdmFyIG5lZyA9ICgxL3gpIDwgMDtcbiAgICB4ID0gTWF0aC5hYnMoeCk7XG4gICAgdmFyIGkgPSBNYXRoLmZsb29yICh4KTtcbiAgICB2YXIgZiA9IHggLSBpO1xuICAgIGlmIChuZWcpIHsgaSA9IC1pOyBmID0gLWY7IH1cbiAgICByZXR1cm4gWzAsIGYsIGldO1xuICB9XG4gIGlmIChpc05hTiAoeCkpIHJldHVybiBbMCwgTmFOLCBOYU5dO1xuICByZXR1cm4gWzAsIDEveCwgeF07XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2xkZXhwX2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2xkZXhwX2Zsb2F0ICh4LGV4cCkge1xuICBleHAgfD0gMDtcbiAgaWYgKGV4cCA+IDEwMjMpIHtcbiAgICBleHAgLT0gMTAyMztcbiAgICB4ICo9IE1hdGgucG93KDIsIDEwMjMpO1xuICAgIGlmIChleHAgPiAxMDIzKSB7ICAvLyBpbiBjYXNlIHggaXMgc3Vibm9ybWFsXG4gICAgICBleHAgLT0gMTAyMztcbiAgICAgIHggKj0gTWF0aC5wb3coMiwgMTAyMyk7XG4gICAgfVxuICB9XG4gIGlmIChleHAgPCAtMTAyMykge1xuICAgIGV4cCArPSAxMDIzO1xuICAgIHggKj0gTWF0aC5wb3coMiwgLTEwMjMpO1xuICB9XG4gIHggKj0gTWF0aC5wb3coMiwgZXhwKTtcbiAgcmV0dXJuIHg7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2ZyZXhwX2Zsb2F0IGNvbnN0XG4vL1JlcXVpcmVzOiBqc29vX2Zsb29yX2xvZzJcbmZ1bmN0aW9uIGNhbWxfZnJleHBfZmxvYXQgKHgpIHtcbiAgaWYgKCh4ID09IDApIHx8ICFpc0Zpbml0ZSh4KSkgcmV0dXJuIFswLCB4LCAwXTtcbiAgdmFyIG5lZyA9IHggPCAwO1xuICBpZiAobmVnKSB4ID0gLSB4O1xuICB2YXIgZXhwID0gTWF0aC5tYXgoLTEwMjMsIGpzb29fZmxvb3JfbG9nMih4KSArIDEpO1xuICB4ICo9IE1hdGgucG93KDIsLWV4cCk7XG4gIHdoaWxlICh4IDwgMC41KSB7XG4gICAgeCAqPSAyO1xuICAgIGV4cC0tO1xuICB9XG4gIHdoaWxlICh4ID49IDEpIHtcbiAgICB4ICo9IDAuNTtcbiAgICBleHArKztcbiAgfVxuICBpZiAobmVnKSB4ID0gLSB4O1xuICByZXR1cm4gWzAsIHgsIGV4cF07XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZmxvYXRfY29tcGFyZSBjb25zdFxuZnVuY3Rpb24gY2FtbF9mbG9hdF9jb21wYXJlICh4LCB5KSB7XG4gIGlmICh4ID09PSB5KSByZXR1cm4gMDtcbiAgaWYgKHggPCB5KSByZXR1cm4gLTE7XG4gIGlmICh4ID4geSkgcmV0dXJuIDE7XG4gIGlmICh4ID09PSB4KSByZXR1cm4gMTtcbiAgaWYgKHkgPT09IHkpIHJldHVybiAtMTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfY29weXNpZ25fZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfY29weXNpZ25fZmxvYXQgKHgsIHkpIHtcbiAgaWYgKHkgPT0gMCkgeSA9IDEgLyB5O1xuICB4ID0gTWF0aC5hYnMoeCk7XG4gIHJldHVybiAoeSA8IDApPygteCk6eDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zaWduYml0X2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX3NpZ25iaXRfZmxvYXQoeCkge1xuICBpZiAoeCA9PSAwKSB4ID0gMSAvIHg7XG4gIHJldHVybiAoeCA8IDApPzE6MDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9leHBtMV9mbG9hdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9leHBtMV9mbG9hdCAoeCkgeyByZXR1cm4gTWF0aC5leHBtMSh4KTsgfVxuLy9Qcm92aWRlczogY2FtbF9leHAyX2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2V4cDJfZmxvYXQoeCkgeyByZXR1cm4gTWF0aC5wb3coMiwgeCk7IH1cbi8vUHJvdmlkZXM6IGNhbWxfbG9nMXBfZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfbG9nMXBfZmxvYXQoeCkgeyByZXR1cm4gTWF0aC5sb2cxcCh4KTsgfVxuLy9Qcm92aWRlczogY2FtbF9sb2cyX2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2xvZzJfZmxvYXQoeCkgeyByZXR1cm4gTWF0aC5sb2cyKHgpOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2h5cG90X2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2h5cG90X2Zsb2F0ICh4LCB5KSB7IHJldHVybiBNYXRoLmh5cG90KHgsIHkpOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2xvZzEwX2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2xvZzEwX2Zsb2F0ICh4KSB7IHJldHVybiBNYXRoLmxvZzEwKHgpOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2Nvc2hfZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfY29zaF9mbG9hdCAoeCkgeyByZXR1cm4gTWF0aC5jb3NoKHgpOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2Fjb3NoX2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2Fjb3NoX2Zsb2F0ICh4KSB7IHJldHVybiBNYXRoLmFjb3NoKHgpOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX3NpbmhfZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfc2luaF9mbG9hdCAoeCkgeyByZXR1cm4gTWF0aC5zaW5oKHgpOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2FzaW5oX2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2FzaW5oX2Zsb2F0ICh4KSB7IHJldHVybiBNYXRoLmFzaW5oKHgpOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX3RhbmhfZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfdGFuaF9mbG9hdCAoeCkgeyByZXR1cm4gTWF0aC50YW5oKHgpOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2F0YW5oX2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2F0YW5oX2Zsb2F0ICh4KSB7IHJldHVybiBNYXRoLmF0YW5oKHgpOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX3JvdW5kX2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX3JvdW5kX2Zsb2F0ICh4KSB7IHJldHVybiBNYXRoLnJvdW5kKHgpOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2NicnRfZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfY2JydF9mbG9hdCAoeCkgeyByZXR1cm4gTWF0aC5jYnJ0KHgpOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfZXJmX2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2VyZl9mbG9hdCh4KSB7XG4gIHZhciBhMSA9IDAuMjU0ODI5NTkyO1xuICB2YXIgYTIgPSAtMC4yODQ0OTY3MzY7XG4gIHZhciBhMyA9IDEuNDIxNDEzNzQxO1xuICB2YXIgYTQgPSAtMS40NTMxNTIwMjc7XG4gIHZhciBhNSA9IDEuMDYxNDA1NDI5O1xuICB2YXIgcCA9IDAuMzI3NTkxMTtcblxuICB2YXIgc2lnbiA9IDE7XG4gIGlmICh4IDwgMCkge1xuICAgIHNpZ24gPSAtMTtcbiAgfVxuICB4ID0gTWF0aC5hYnMoeCk7XG4gIHZhciB0ID0gMS4wIC8gKDEuMCArIHAgKiB4KTtcbiAgdmFyIHkgPSAxLjAgLSAoKCgoYTUgKiB0ICsgYTQpICogdCArIGEzKSAqIHQgKyBhMikgKiB0ICsgYTEpICogdCAqIE1hdGguZXhwKC14ICogeCk7XG5cbiAgcmV0dXJuIHNpZ24gKiB5O1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2VyZmNfZmxvYXQgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfZXJmX2Zsb2F0XG5mdW5jdGlvbiBjYW1sX2VyZmNfZmxvYXQoeCkge1xuICByZXR1cm4gMSAtIGNhbWxfZXJmX2Zsb2F0KHgpO1xufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfZm1hX2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ZtYV9mbG9hdCh4LCB5LCB6KSB7XG4gIHZhciBTUExJVCA9IE1hdGgucG93KDIsIDI3KSArIDE7XG4gIHZhciBNSU5fVkFMVUUgPSBNYXRoLnBvdygyLCAtMTAyMik7XG4gIHZhciBFUFNJTE9OID0gTWF0aC5wb3coMiwgLTUyKTtcbiAgdmFyIEMgPSA0MTY7XG4gIHZhciBBID0gTWF0aC5wb3coMiwgK0MpO1xuICB2YXIgQiA9IE1hdGgucG93KDIsIC1DKTtcblxuICBmdW5jdGlvbiBtdWx0aXBseSAoYSwgYikge1xuICAgIHZhciBhdCA9IFNQTElUICogYTtcbiAgICB2YXIgYWhpID0gYXQgLSAoYXQgLSBhKTtcbiAgICB2YXIgYWxvID0gYSAtIGFoaTtcbiAgICB2YXIgYnQgPSBTUExJVCAqIGI7XG4gICAgdmFyIGJoaSA9IGJ0IC0gKGJ0IC0gYik7XG4gICAgdmFyIGJsbyA9IGIgLSBiaGk7XG4gICAgdmFyIHAgPSBhICogYjtcbiAgICB2YXIgZSA9ICgoYWhpICogYmhpIC0gcCkgKyBhaGkgKiBibG8gKyBhbG8gKiBiaGkpICsgYWxvICogYmxvO1xuICAgIHJldHVybiB7XG4gICAgICBwOiBwLFxuICAgICAgZTogZVxuICAgIH07XG4gIH07XG5cbiAgZnVuY3Rpb24gYWRkIChhLCBiKSB7XG4gICAgdmFyIHMgPSBhICsgYjtcbiAgICB2YXIgdiA9IHMgLSBhO1xuICAgIHZhciBlID0gKGEgLSAocyAtIHYpKSArIChiIC0gdik7XG4gICAgcmV0dXJuIHtcbiAgICAgIHM6IHMsXG4gICAgICBlOiBlXG4gICAgfTtcbiAgfTtcblxuICBmdW5jdGlvbiBhZGp1c3QgKHgsIHkpIHtcbiAgICByZXR1cm4geCAhPT0gMCAmJiB5ICE9PSAwICYmIFNQTElUICogeCAtIChTUExJVCAqIHggLSB4KSA9PT0geCA/IHggKiAoMSArICh4IDwgMCA/IC0xIDogKzEpICogKHkgPCAwID8gLTEgOiArMSkgKiBFUFNJTE9OKSA6IHg7XG4gIH07XG5cbiAgaWYgKHggPT09IDAgfHwgeCAhPT0geCB8fCB4ID09PSArMSAvIDAgfHwgeCA9PT0gLTEgLyAwIHx8XG4gICAgICB5ID09PSAwIHx8IHkgIT09IHkgfHwgeSA9PT0gKzEgLyAwIHx8IHkgPT09IC0xIC8gMCkge1xuICAgIHJldHVybiB4ICogeSArIHo7XG4gIH1cbiAgaWYgKHogPT09IDApIHtcbiAgICByZXR1cm4geCAqIHk7XG4gIH1cbiAgaWYgKHogIT09IHogfHwgeiA9PT0gKzEgLyAwIHx8IHogPT09IC0xIC8gMCkge1xuICAgIHJldHVybiB6O1xuICB9XG5cbiAgdmFyIHNjYWxlID0gMTtcbiAgd2hpbGUgKE1hdGguYWJzKHgpID4gQSkge1xuICAgIHNjYWxlICo9IEE7XG4gICAgeCAqPSBCO1xuICB9XG4gIHdoaWxlIChNYXRoLmFicyh5KSA+IEEpIHtcbiAgICBzY2FsZSAqPSBBO1xuICAgIHkgKj0gQjtcbiAgfVxuICBpZiAoc2NhbGUgPT09IDEgLyAwKSB7XG4gICAgcmV0dXJuIHggKiB5ICogc2NhbGU7XG4gIH1cbiAgd2hpbGUgKE1hdGguYWJzKHgpIDwgQikge1xuICAgIHNjYWxlICo9IEI7XG4gICAgeCAqPSBBO1xuICB9XG4gIHdoaWxlIChNYXRoLmFicyh5KSA8IEIpIHtcbiAgICBzY2FsZSAqPSBCO1xuICAgIHkgKj0gQTtcbiAgfVxuICBpZiAoc2NhbGUgPT09IDApIHtcbiAgICByZXR1cm4gejtcbiAgfVxuXG4gIHZhciB4cyA9IHg7XG4gIHZhciB5cyA9IHk7XG4gIHZhciB6cyA9IHogLyBzY2FsZTtcblxuICBpZiAoTWF0aC5hYnMoenMpID4gTWF0aC5hYnMoeHMgKiB5cykgKiA0IC8gRVBTSUxPTikge1xuICAgIHJldHVybiB6O1xuICB9XG4gIGlmIChNYXRoLmFicyh6cykgPCBNYXRoLmFicyh4cyAqIHlzKSAqIEVQU0lMT04gLyA0ICogRVBTSUxPTiAvIDQpIHtcbiAgICB6cyA9ICh6IDwgMCA/IC0xIDogKzEpICogTUlOX1ZBTFVFO1xuICB9XG5cbiAgdmFyIHh5ID0gbXVsdGlwbHkoeHMsIHlzKTtcbiAgdmFyIHMgPSBhZGQoeHkucCwgenMpO1xuICB2YXIgdSA9IGFkZCh4eS5lLCBzLmUpO1xuICB2YXIgaSA9IGFkZChzLnMsIHUucyk7XG5cbiAgdmFyIGYgPSBpLnMgKyBhZGp1c3QoaS5lLCB1LmUpO1xuICBpZiAoZiA9PT0gMCkge1xuICAgIHJldHVybiBmO1xuICB9XG5cbiAgdmFyIGZzID0gZiAqIHNjYWxlO1xuICBpZiAoTWF0aC5hYnMoZnMpID4gTUlOX1ZBTFVFKSB7XG4gICAgcmV0dXJuIGZzO1xuICB9XG5cbiAgLy8gSXQgaXMgcG9zc2libGUgdGhhdCB0aGVyZSB3YXMgZXh0cmEgcm91bmRpbmcgZm9yIGEgZGVub3JtYWxpemVkIHZhbHVlLlxuICByZXR1cm4gZnMgKyBhZGp1c3QoZiAtIGZzIC8gc2NhbGUsIGkuZSkgKiBzY2FsZTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9mb3JtYXRfZmxvYXQgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfcGFyc2VfZm9ybWF0LCBjYW1sX2ZpbmlzaF9mb3JtYXR0aW5nXG5mdW5jdGlvbiBjYW1sX2Zvcm1hdF9mbG9hdCAoZm10LCB4KSB7XG4gIGZ1bmN0aW9uIHRvRml4ZWQoeCxkcCkge1xuICAgIGlmIChNYXRoLmFicyh4KSA8IDEuMCkge1xuICAgICAgcmV0dXJuIHgudG9GaXhlZChkcCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBlID0gcGFyc2VJbnQoeC50b1N0cmluZygpLnNwbGl0KCcrJylbMV0pO1xuICAgICAgaWYgKGUgPiAyMCkge1xuICAgICAgICBlIC09IDIwO1xuICAgICAgICB4IC89IE1hdGgucG93KDEwLGUpO1xuICAgICAgICB4ICs9IChuZXcgQXJyYXkoZSsxKSkuam9pbignMCcpO1xuICAgICAgICBpZihkcCA+IDApIHtcbiAgICAgICAgICB4ID0geCArICcuJyArIChuZXcgQXJyYXkoZHArMSkpLmpvaW4oJzAnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geDtcbiAgICAgIH1cbiAgICAgIGVsc2UgcmV0dXJuIHgudG9GaXhlZChkcClcbiAgICB9XG4gIH1cbiAgdmFyIHMsIGYgPSBjYW1sX3BhcnNlX2Zvcm1hdChmbXQpO1xuICB2YXIgcHJlYyA9IChmLnByZWMgPCAwKT82OmYucHJlYztcbiAgaWYgKHggPCAwIHx8ICh4ID09IDAgJiYgMS94ID09IC1JbmZpbml0eSkpIHsgZi5zaWduID0gLTE7IHggPSAteDsgfVxuICBpZiAoaXNOYU4oeCkpIHsgcyA9IFwibmFuXCI7IGYuZmlsbGVyID0gJyAnOyB9XG4gIGVsc2UgaWYgKCFpc0Zpbml0ZSh4KSkgeyBzID0gXCJpbmZcIjsgZi5maWxsZXIgPSAnICc7IH1cbiAgZWxzZVxuICAgIHN3aXRjaCAoZi5jb252KSB7XG4gICAgY2FzZSAnZSc6XG4gICAgICB2YXIgcyA9IHgudG9FeHBvbmVudGlhbChwcmVjKTtcbiAgICAgIC8vIGV4cG9uZW50IHNob3VsZCBiZSBhdCBsZWFzdCB0d28gZGlnaXRzXG4gICAgICB2YXIgaSA9IHMubGVuZ3RoO1xuICAgICAgaWYgKHMuY2hhckF0KGkgLSAzKSA9PSAnZScpXG4gICAgICAgIHMgPSBzLnNsaWNlICgwLCBpIC0gMSkgKyAnMCcgKyBzLnNsaWNlIChpIC0gMSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdmJzpcbiAgICAgIHMgPSB0b0ZpeGVkKHgsIHByZWMpOyBicmVhaztcbiAgICBjYXNlICdnJzpcbiAgICAgIHByZWMgPSBwcmVjP3ByZWM6MTtcbiAgICAgIHMgPSB4LnRvRXhwb25lbnRpYWwocHJlYyAtIDEpO1xuICAgICAgdmFyIGogPSBzLmluZGV4T2YoJ2UnKTtcbiAgICAgIHZhciBleHAgPSArcy5zbGljZShqICsgMSk7XG4gICAgICBpZiAoZXhwIDwgLTQgfHwgeCA+PSAxZTIxIHx8IHgudG9GaXhlZCgwKS5sZW5ndGggPiBwcmVjKSB7XG4gICAgICAgIC8vIHJlbW92ZSB0cmFpbGluZyB6ZXJvZXNcbiAgICAgICAgdmFyIGkgPSBqIC0gMTsgd2hpbGUgKHMuY2hhckF0KGkpID09ICcwJykgaS0tO1xuICAgICAgICBpZiAocy5jaGFyQXQoaSkgPT0gJy4nKSBpLS07XG4gICAgICAgIHMgPSBzLnNsaWNlKDAsIGkgKyAxKSArIHMuc2xpY2Uoaik7XG4gICAgICAgIGkgPSBzLmxlbmd0aDtcbiAgICAgICAgaWYgKHMuY2hhckF0KGkgLSAzKSA9PSAnZScpXG4gICAgICAgICAgcyA9IHMuc2xpY2UgKDAsIGkgLSAxKSArICcwJyArIHMuc2xpY2UgKGkgLSAxKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgcCA9IHByZWM7XG4gICAgICAgIGlmIChleHAgPCAwKSB7IHAgLT0gZXhwICsgMTsgcyA9IHgudG9GaXhlZChwKTsgfVxuICAgICAgICBlbHNlIHdoaWxlIChzID0geC50b0ZpeGVkKHApLCBzLmxlbmd0aCA+IHByZWMgKyAxKSBwLS07XG4gICAgICAgIGlmIChwKSB7XG4gICAgICAgICAgLy8gcmVtb3ZlIHRyYWlsaW5nIHplcm9lc1xuICAgICAgICAgIHZhciBpID0gcy5sZW5ndGggLSAxOyB3aGlsZSAocy5jaGFyQXQoaSkgPT0gJzAnKSBpLS07XG4gICAgICAgICAgaWYgKHMuY2hhckF0KGkpID09ICcuJykgaS0tO1xuICAgICAgICAgIHMgPSBzLnNsaWNlKDAsIGkgKyAxKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgfVxuICByZXR1cm4gY2FtbF9maW5pc2hfZm9ybWF0dGluZyhmLCBzKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9mbG9hdF9vZl9zdHJpbmcgKGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aCwgY2FtbF9qc2J5dGVzX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9mbG9hdF9vZl9zdHJpbmcocykge1xuICB2YXIgcmVzO1xuICBzID0gY2FtbF9qc2J5dGVzX29mX3N0cmluZyhzKVxuICByZXMgPSArcztcbiAgaWYgKChzLmxlbmd0aCA+IDApICYmIChyZXMgPT09IHJlcykpIHJldHVybiByZXM7XG4gIHMgPSBzLnJlcGxhY2UoL18vZyxcIlwiKTtcbiAgcmVzID0gK3M7XG4gIGlmICgoKHMubGVuZ3RoID4gMCkgJiYgKHJlcyA9PT0gcmVzKSkgfHwgL15bKy1dP25hbiQvaS50ZXN0KHMpKSByZXR1cm4gcmVzO1xuICB2YXIgbSA9IC9eICooWystXT8pMHgoWzAtOWEtZl0rKVxcLj8oWzAtOWEtZl0qKShwKFsrLV0/WzAtOV0rKSk/L2kuZXhlYyhzKTtcbiAgLy8gICAgICAgICAgMSAgICAgICAgMiAgICAgICAgICAgICAzICAgICAgICAgICA1XG4gIGlmKG0pe1xuICAgIHZhciBtMyA9IG1bM10ucmVwbGFjZSgvMCskLywnJyk7XG4gICAgdmFyIG1hbnRpc3NhID0gcGFyc2VJbnQobVsxXSArIG1bMl0gKyBtMywgMTYpO1xuICAgIHZhciBleHBvbmVudCA9IChtWzVdfDApIC0gNCptMy5sZW5ndGg7XG4gICAgcmVzID0gbWFudGlzc2EgKiBNYXRoLnBvdygyLCBleHBvbmVudCk7XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuICBpZigvXlxcKz9pbmYoaW5pdHkpPyQvaS50ZXN0KHMpKSByZXR1cm4gSW5maW5pdHk7XG4gIGlmKC9eLWluZihpbml0eSk/JC9pLnRlc3QocykpIHJldHVybiAtSW5maW5pdHk7XG4gIGNhbWxfZmFpbHdpdGgoXCJmbG9hdF9vZl9zdHJpbmdcIik7XG59XG4iLCIvKlxuVG8gZGVhbCB3aXRoIGVmZmVjdHMsIHRoZSBleGVjdXRpb24gY29udGV4dCBpcyBpbnR1aXRpdmVseSBjb21wb3NlZCBvZlxuYSBzdGFjayBvZiBmaWJlcnMuIEVhY2ggZmliZXIgaGFzIGEgY3VycmVudCBsb3ctbGV2ZWwgY29udGludWF0aW9uXG4ob25lLWFyZ3VtZW50IEphdmFTY3JpcHQgZnVuY3Rpb24pLCBhIHN0YWNrIG9mIGV4Y2VwdGlvbiBoYW5kbGVycyBhbmRcbmEgdHJpcGxlIG9mIGhhbmRsZXJzLCB3aGljaCBhcmUgaW52b2tlZCB3aGVuIHRoZSBmaWJlciB0ZXJtaW5hdGVzXG4oZWl0aGVyIHdpdGggYSB2YWx1ZSBvciBhbiBleGNlcHRpb24pIG9yIHdoZW4gYW4gZWZmZWN0IGlzIHBlcmZvcm1lZC5cblRoZSBsb3ctbGV2ZWwgY29udGludWF0aW9uIG9mIHRoZSB0b3Btb3N0IGZpYmVyICh3aGljaCBpcyBjdXJyZW50bHlcbmV4ZWN1dGluZykgaXMgcGFzc2VkIGZyb20gZnVuY3Rpb24gdG8gZnVuY3Rpb24gYXMgYW4gYWRkaXRpb25hbFxuYXJndW1lbnQuIEl0cyBzdGFjayBvZiBleGNlcHRpb24gaGFuZGxlcnMgaXMgc3RvcmVkIGluXG5bY2FtbF9leG5fc3RhY2tdLiBFeGNlcHRpb24gaGFuZGxlcnMgYXJlIHB1c2hlZCBpbnRvIHRoaXMgc3RhY2sgd2hlblxuZW50ZXJpbmcgYSBbdHJ5IC4uLiB3aXRoIC4uLl0gYW5kIHBvcHBlZCBvbiBleGl0LiBUaGVuLCBoYW5kbGVycyBhbmRcbnRoZSByZW1haW5pbmcgZmliZXJzIGFyZSBzdG9yZWQgaW4gW2NhbWxfZmliZXJfc3RhY2tdLiBUbyBpbnN0YWxsIGFuXG5lZmZlY3QgaGFuZGxlciwgd2UgcHVzaCBhIG5ldyBmaWJlciBpbnRvIHRoZSBleGVjdXRpb24gY29udGV4dC5cblxuV2UgaGF2ZSBiYXNpY2FsbHkgdGhlIGZvbGxvd2luZyB0eXBlIGZvciByZWlmaWVkIGNvbnRpbnVhdGlvbnMgKHR5cGVcbltjb250aW51YXRpb25dIGluIG1vZHVsZSBbRWZmZWN0XSBvZiB0aGUgc3RhbmRhcmQgbGlicmFyeSk6XG5cbiAgdHlwZSAoJ2EsICdiKSBjb250aW51YXRpb24gPSAoJ2EsICdiKSBzdGFjayByZWZcblxuICBhbmQgKF8sIF8pIHN0YWNrID1cbiAgICAgIENvbnMgOiAoJ2IgLT4gdW5pdCkgKiAgICAgICAgICAgICAoKiBsb3ctbGV2ZWwgY29udGludWF0aW9uICopXG4gICAgICAgICAgICAgKGV4biAtPiB1bml0KSBsaXN0ICogICAgICAgKCogZXhjZXB0aW9uIGhhbmRsZXJzICopXG4gICAgICAgICAgICAgKCdiLCAnYykgaGFuZGxlciAqXG4gICAgICAgICAgICAgKCdhLCAnYikgc3RhY2tcbiAgICAgICAgICAgICAtPiAoJ2EsICdjKSBzdGFja1xuICAgIHwgRW1wdHkgOiAoJ2EsICdhKSBzdGFja1xuXG4gIGFuZCAoJ2EsJ2IpIGhhbmRsZXIgPSAgICgqIEFzIGluIG1vZHVsZSBFZmZlY3QgZnJvbSB0aGUgc3RhbmRhcmQgbGlicmFyeSAqKVxuICAgIHsgcmV0YzogJ2EgLT4gJ2I7XG4gICAgICBleG5jOiBleG4gLT4gJ2I7XG4gICAgICBlZmZjOiAnYy4nYyBFZmZlY3QudCAtPiAoKCdjLCdiKSBjb250aW51YXRpb24gLT4gJ2IpIG9wdGlvbiB9XG5cbkNvbnRpbnVhdGlvbnMgYXJlIG9uZS1zaG90LiBBIGNvbnRpbnVhdGlvbiBbcmVmIEVtcHR5XSBoYXMgYWxyZWFkeVxuYmVlbiByZXN1bWVkLlxuXG5BIGNvbnRpbnVhdGlvbiBpcyBiYXNpY2FsbHkgY29tcG9zZWQgb2YgYSBsaXN0IG9mIGZpYmVycywgd2hpY2ggZWFjaFxuaGFzIGl0cyBsb3ctbGV2ZWwgY29udGludWF0aW9uLCBpdHMgc3RhY2sgb2YgZXhjZXB0aW9uIGhhbmRsZXJzIGFuZCBhXG50cmlwbGUgb2YgaGFuZGxlcnMgdG8gZGVhbCB3aXRoIHdoZW4gdGhlIGZpYmVyIHRlcm1pbmF0ZXMgb3IgYW5cbmVmZmVjdCBpcyBwZXJmb3JtZWQuIFdoZW4gcmVzdW1pbmcgYSBjb250aW51YXRpb24sIHRoZSBpbm5lcm1vc3QgZmliZXJcbmlzIHJlc3VtZWQgZmlyc3QuXG5cblRoZSBoYW5kbGVycyBhcmUgQ1BTLXRyYW5zZm9ybWVkIGZ1bmN0aW9uczogdGhleSBhY3R1YWxseSB0YWtlIGFuXG5hZGRpdGlvbmFsIHBhcmFtZXRlciB3aGljaCBpcyB0aGUgY3VycmVudCBsb3ctbGV2ZWwgY29udGludWF0aW9uLlxuKi9cblxuLy9Qcm92aWRlczogY2FtbF9leG5fc3RhY2tcbi8vSWY6IGVmZmVjdHNcbi8vIFRoaXMgaXMgYW4gT0NhbWwgbGlzdCBvZiBleGNlcHRpb24gaGFuZGxlcnNcbnZhciBjYW1sX2V4bl9zdGFjayA9IDA7XG5cbi8vUHJvdmlkZXM6IGNhbWxfcHVzaF90cmFwXG4vL1JlcXVpcmVzOiBjYW1sX2V4bl9zdGFja1xuLy9JZjogZWZmZWN0c1xuZnVuY3Rpb24gY2FtbF9wdXNoX3RyYXAoaGFuZGxlcikge1xuICBjYW1sX2V4bl9zdGFjaz1bMCxoYW5kbGVyLGNhbWxfZXhuX3N0YWNrXTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9wb3BfdHJhcFxuLy9SZXF1aXJlczogY2FtbF9leG5fc3RhY2tcbi8vSWY6IGVmZmVjdHNcbmZ1bmN0aW9uIGNhbWxfcG9wX3RyYXAoKSB7XG4gIGlmICghY2FtbF9leG5fc3RhY2spIHJldHVybiBmdW5jdGlvbih4KXt0aHJvdyB4O31cbiAgdmFyIGggPSBjYW1sX2V4bl9zdGFja1sxXTtcbiAgY2FtbF9leG5fc3RhY2s9Y2FtbF9leG5fc3RhY2tbMl07XG4gIHJldHVybiBoXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZmliZXJfc3RhY2tcbi8vSWY6IGVmZmVjdHNcbi8vIFRoaXMgaGFzIHRoZSBzaGFwZSB7aCwgcjp7aywgeCwgZX19IHdoZXJlIGggaXMgYSB0cmlwbGUgb2YgaGFuZGxlcnNcbi8vIChzZWUgZWZmZWN0LmpzKSBhbmQgaywgeCBhbmQgZSBhcmUgdGhlIHNhdmVkIGNvbnRpbnVhdGlvbixcbi8vIGV4Y2VwdGlvbiBzdGFjayBhbmQgZmliZXIgc3RhY2sgb2YgdGhlIHBhcmVudCBmaWJlci5cbnZhciBjYW1sX2ZpYmVyX3N0YWNrO1xuXG4vL1Byb3ZpZGVzOmNhbWxfcmVzdW1lX3N0YWNrXG4vL1JlcXVpcmVzOiBjYW1sX25hbWVkX3ZhbHVlLCBjYW1sX3JhaXNlX2NvbnN0YW50LCBjYW1sX2V4bl9zdGFjaywgY2FtbF9maWJlcl9zdGFja1xuLy9JZjogZWZmZWN0c1xuZnVuY3Rpb24gY2FtbF9yZXN1bWVfc3RhY2soc3RhY2ssIGspIHtcbiAgaWYgKCFzdGFjaykgY2FtbF9yYWlzZV9jb25zdGFudFxuICAgICAgICAgICAgICAgICAoY2FtbF9uYW1lZF92YWx1ZShcIkVmZmVjdC5Db250aW51YXRpb25fYWxyZWFkeV9yZXN1bWVkXCIpKTtcbiAgLy8gVXBkYXRlIHRoZSBleGVjdXRpb24gY29udGV4dCB3aXRoIHRoZSBzdGFjayBvZiBmaWJlcnMgaW4gW3N0YWNrXSBpblxuICAvLyBvcmRlciB0byByZXN1bWUgdGhlIGNvbnRpbnVhdGlvblxuICBkbyB7XG4gICAgY2FtbF9maWJlcl9zdGFjayA9XG4gICAgICB7aDpzdGFja1szXSwgcjp7azprLCB4OmNhbWxfZXhuX3N0YWNrLCBlOmNhbWxfZmliZXJfc3RhY2t9fTtcbiAgICBrID0gc3RhY2tbMV07XG4gICAgY2FtbF9leG5fc3RhY2sgPSBzdGFja1syXTtcbiAgICBzdGFjayA9IHN0YWNrWzRdO1xuICB9IHdoaWxlIChzdGFjaylcbiAgcmV0dXJuIGs7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfcG9wX2ZpYmVyXG4vL1JlcXVpcmVzOiBjYW1sX2V4bl9zdGFjaywgY2FtbF9maWJlcl9zdGFja1xuLy9JZjogZWZmZWN0c1xuZnVuY3Rpb24gY2FtbF9wb3BfZmliZXIoKSB7XG4gIC8vIE1vdmUgdG8gdGhlIHBhcmVudCBmaWJlciwgcmV0dXJuaW5nIHRoZSBwYXJlbnQncyBsb3ctbGV2ZWwgY29udGludWF0aW9uXG4gIHZhciByZW0gPSBjYW1sX2ZpYmVyX3N0YWNrLnI7XG4gIGNhbWxfZXhuX3N0YWNrID0gcmVtLng7XG4gIGNhbWxfZmliZXJfc3RhY2sgPSByZW0uZTtcbiAgcmV0dXJuIHJlbS5rO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3BlcmZvcm1fZWZmZWN0XG4vL1JlcXVpcmVzOiBjYW1sX3BvcF9maWJlciwgY2FtbF9zdGFja19jaGVja19kZXB0aCwgY2FtbF90cmFtcG9saW5lX3JldHVybiwgY2FtbF9leG5fc3RhY2ssIGNhbWxfZmliZXJfc3RhY2tcbi8vSWY6IGVmZmVjdHNcbmZ1bmN0aW9uIGNhbWxfcGVyZm9ybV9lZmZlY3QoZWZmLCBjb250LCBrMCkge1xuICAvLyBBbGxvY2F0ZSBhIGNvbnRpbnVhdGlvbiBpZiB3ZSBkb24ndCBhbHJlYWR5IGhhdmUgb25lXG4gIGlmICghY29udCkgY29udCA9IFsyNDUgLypjb250aW51YXRpb24qLywgMF07XG4gIC8vIEdldCBjdXJyZW50IGVmZmVjdCBoYW5kbGVyXG4gIHZhciBoYW5kbGVyID0gY2FtbF9maWJlcl9zdGFjay5oWzNdO1xuICAvLyBDb25zIHRoZSBjdXJyZW50IGZpYmVyIG9udG8gdGhlIGNvbnRpbnVhdGlvbjpcbiAgLy8gICBjb250IDo9IENvbnMgKGssIGV4bl9zdGFjaywgaGFuZGxlcnMsICFjb250KVxuICBjb250WzFdID0gWzAsazAsY2FtbF9leG5fc3RhY2ssY2FtbF9maWJlcl9zdGFjay5oLGNvbnRbMV1dO1xuICAvLyBNb3ZlIHRvIHBhcmVudCBmaWJlciBhbmQgZXhlY3V0ZSB0aGUgZWZmZWN0IGhhbmRsZXIgdGhlcmVcbiAgLy8gVGhlIGhhbmRsZXIgaXMgZGVmaW5lZCBpbiBTdGRsaWIuRWZmZWN0LCBzbyB3ZSBrbm93IHRoYXQgdGhlIGFyaXR5IG1hdGNoZXNcbiAgdmFyIGsxID0gY2FtbF9wb3BfZmliZXIoKTtcbiAgcmV0dXJuIGNhbWxfc3RhY2tfY2hlY2tfZGVwdGgoKT9oYW5kbGVyKGVmZixjb250LGsxLGsxKVxuICAgICAgICAgOmNhbWxfdHJhbXBvbGluZV9yZXR1cm4oaGFuZGxlcixbZWZmLGNvbnQsazEsazFdKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9hbGxvY19zdGFja1xuLy9SZXF1aXJlczogY2FtbF9wb3BfZmliZXIsIGNhbWxfZmliZXJfc3RhY2ssIGNhbWxfY2FsbF9nZW4sIGNhbWxfc3RhY2tfY2hlY2tfZGVwdGgsIGNhbWxfdHJhbXBvbGluZV9yZXR1cm5cbi8vSWY6IGVmZmVjdHNcbmZ1bmN0aW9uIGNhbWxfYWxsb2Nfc3RhY2soaHYsIGh4LCBoZikge1xuICBmdW5jdGlvbiBjYWxsKGksIHgpIHtcbiAgICB2YXIgZj1jYW1sX2ZpYmVyX3N0YWNrLmhbaV07XG4gICAgdmFyIGFyZ3MgPSBbeCwgY2FtbF9wb3BfZmliZXIoKV07XG4gICAgcmV0dXJuIGNhbWxfc3RhY2tfY2hlY2tfZGVwdGgoKT9jYW1sX2NhbGxfZ2VuKGYsYXJncylcbiAgICAgICAgICAgOmNhbWxfdHJhbXBvbGluZV9yZXR1cm4oZixhcmdzKTtcbiAgfVxuICBmdW5jdGlvbiBodmFsKHgpIHtcbiAgICAvLyBDYWxsIFtodl0gaW4gdGhlIHBhcmVudCBmaWJlclxuICAgIHJldHVybiBjYWxsKDEsIHgpO1xuICB9XG4gIGZ1bmN0aW9uIGhleG4oZSkge1xuICAgIC8vIENhbGwgW2h4XSBpbiB0aGUgcGFyZW50IGZpYmVyXG4gICAgcmV0dXJuIGNhbGwoMiwgZSk7XG4gIH1cbiAgcmV0dXJuIFswLCBodmFsLCBbMCwgaGV4biwgMF0sIFswLCBodiwgaHgsIGhmXSwgMF07XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYWxsb2Nfc3RhY2tcbi8vSWY6ICFlZmZlY3RzXG5mdW5jdGlvbiBjYW1sX2FsbG9jX3N0YWNrKGh2LCBoeCwgaGYpIHtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfY29udGludWF0aW9uX3VzZV9ub2V4Y1xuZnVuY3Rpb24gY2FtbF9jb250aW51YXRpb25fdXNlX25vZXhjKGNvbnQpIHtcbiAgdmFyIHN0YWNrPWNvbnRbMV07XG4gIGNvbnRbMV09MDtcbiAgcmV0dXJuIHN0YWNrO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2NvbnRpbnVhdGlvbl91c2VfYW5kX3VwZGF0ZV9oYW5kbGVyX25vZXhjXG4vL1JlcXVpcmVzOiBjYW1sX2NvbnRpbnVhdGlvbl91c2Vfbm9leGNcbmZ1bmN0aW9uIGNhbWxfY29udGludWF0aW9uX3VzZV9hbmRfdXBkYXRlX2hhbmRsZXJfbm9leGMoY29udCwgaHZhbCwgaGV4biwgaGVmZikge1xuICB2YXIgc3RhY2sgPSBjYW1sX2NvbnRpbnVhdGlvbl91c2Vfbm9leGMoY29udCk7XG4gIHN0YWNrWzNdID0gWzAsIGh2YWwsIGhleG4sIGhlZmZdO1xuICByZXR1cm4gc3RhY2s7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ2V0X2NvbnRpbnVhdGlvbl9jYWxsc3RhY2tcbmZ1bmN0aW9uIGNhbWxfZ2V0X2NvbnRpbnVhdGlvbl9jYWxsc3RhY2sgKCkgeyByZXR1cm4gWzBdOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfY29uZGl0aW9uX25ld1xuZnVuY3Rpb24gY2FtbF9tbF9jb25kaXRpb25fbmV3KHVuaXQpe1xuICAgIHJldHVybiB7Y29uZGl0aW9uOjF9O1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX2NvbmRpdGlvbl93YWl0XG5mdW5jdGlvbiBjYW1sX21sX2NvbmRpdGlvbl93YWl0KHQsbXV0ZXh0KXtcbiAgICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9jb25kaXRpb25fYnJvYWRjYXN0XG5mdW5jdGlvbiBjYW1sX21sX2NvbmRpdGlvbl9icm9hZGNhc3QodCl7XG4gICAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfY29uZGl0aW9uX3NpZ25hbFxuZnVuY3Rpb24gY2FtbF9tbF9jb25kaXRpb25fc2lnbmFsKHQpe1xuICAgIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBqc29vX2VmZmVjdF9ub3Rfc3VwcG9ydGVkXG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG4vLyFJZjogZWZmZWN0c1xuZnVuY3Rpb24ganNvb19lZmZlY3Rfbm90X3N1cHBvcnRlZCgpe1xuICBjYW1sX2ZhaWx3aXRoKFwiRWZmZWN0IGhhbmRsZXJzIGFyZSBub3Qgc3VwcG9ydGVkXCIpO1xufVxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy8gQ29weXJpZ2h0IChDKSAyMDE0IErDqXLDtG1lIFZvdWlsbG9uLCBIdWdvIEhldXphcmRcbi8vIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy9Qcm92aWRlczogZnNfbm9kZV9zdXBwb3J0ZWRcbmZ1bmN0aW9uIGZzX25vZGVfc3VwcG9ydGVkICgpIHtcbiAgcmV0dXJuIChcbiAgICB0eXBlb2YgZ2xvYmFsVGhpcy5wcm9jZXNzICE9PSAndW5kZWZpbmVkJ1xuICAgICAgJiYgdHlwZW9mIGdsb2JhbFRoaXMucHJvY2Vzcy52ZXJzaW9ucyAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICYmIHR5cGVvZiBnbG9iYWxUaGlzLnByb2Nlc3MudmVyc2lvbnMubm9kZSAhPT0gJ3VuZGVmaW5lZCcpXG59XG4vL1Byb3ZpZGVzOiBmc19ub2RlX3N1cHBvcnRlZFxuLy9JZjogYnJvd3NlclxuZnVuY3Rpb24gZnNfbm9kZV9zdXBwb3J0ZWQgKCkge1xuICByZXR1cm4gZmFsc2Vcbn1cblxuXG4vL1Byb3ZpZGVzOiBNbE5vZGVEZXZpY2Vcbi8vUmVxdWlyZXM6IE1sTm9kZUZkLCBjYW1sX3JhaXNlX3N5c19lcnJvciwgY2FtbF9yYWlzZV93aXRoX2FyZ3Ncbi8vUmVxdWlyZXM6IG1ha2VfdW5peF9lcnJfYXJncywgY2FtbF9uYW1lZF92YWx1ZSwgY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmdcbmZ1bmN0aW9uIE1sTm9kZURldmljZShyb290KSB7XG4gIHRoaXMuZnMgPSByZXF1aXJlKCdmcycpO1xuICB0aGlzLnJvb3QgPSByb290O1xufVxuTWxOb2RlRGV2aWNlLnByb3RvdHlwZS5ubSA9IGZ1bmN0aW9uKG5hbWUpIHtcbiAgcmV0dXJuICh0aGlzLnJvb3QgKyBuYW1lKTtcbn1cbk1sTm9kZURldmljZS5wcm90b3R5cGUuZXhpc3RzID0gZnVuY3Rpb24obmFtZSkge1xuICB0cnkge1xuICAgIHJldHVybiB0aGlzLmZzLmV4aXN0c1N5bmModGhpcy5ubShuYW1lKSk/MTowO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICByZXR1cm4gMDtcbiAgfVxufVxuTWxOb2RlRGV2aWNlLnByb3RvdHlwZS5pc0ZpbGUgPSBmdW5jdGlvbihuYW1lKSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHRoaXMuZnMuc3RhdFN5bmModGhpcy5ubShuYW1lKSkuaXNGaWxlKCk/MTowO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBjYW1sX3JhaXNlX3N5c19lcnJvcihlcnIudG9TdHJpbmcoKSk7XG4gIH1cbn1cbk1sTm9kZURldmljZS5wcm90b3R5cGUubWtkaXIgPSBmdW5jdGlvbihuYW1lLCBtb2RlLCByYWlzZV91bml4KSB7XG4gIHRyeSB7XG4gICAgdGhpcy5mcy5ta2RpclN5bmModGhpcy5ubShuYW1lKSx7bW9kZTptb2RlfSk7XG4gICAgcmV0dXJuIDBcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgdGhpcy5yYWlzZV9ub2RlanNfZXJyb3IoZXJyLCByYWlzZV91bml4KTtcbiAgfVxufVxuTWxOb2RlRGV2aWNlLnByb3RvdHlwZS5ybWRpciA9IGZ1bmN0aW9uKG5hbWUsIHJhaXNlX3VuaXgpIHtcbiAgdHJ5IHtcbiAgICB0aGlzLmZzLnJtZGlyU3luYyh0aGlzLm5tKG5hbWUpKTtcbiAgICByZXR1cm4gMFxuICB9IGNhdGNoIChlcnIpIHtcbiAgICB0aGlzLnJhaXNlX25vZGVqc19lcnJvcihlcnIsIHJhaXNlX3VuaXgpO1xuICB9XG59XG5NbE5vZGVEZXZpY2UucHJvdG90eXBlLnJlYWRkaXIgPSBmdW5jdGlvbihuYW1lLCByYWlzZV91bml4KSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHRoaXMuZnMucmVhZGRpclN5bmModGhpcy5ubShuYW1lKSk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHRoaXMucmFpc2Vfbm9kZWpzX2Vycm9yKGVyciwgcmFpc2VfdW5peCk7XG4gIH1cbn1cbk1sTm9kZURldmljZS5wcm90b3R5cGUuaXNfZGlyID0gZnVuY3Rpb24obmFtZSkge1xuICB0cnkge1xuICAgIHJldHVybiB0aGlzLmZzLnN0YXRTeW5jKHRoaXMubm0obmFtZSkpLmlzRGlyZWN0b3J5KCk/MTowO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBjYW1sX3JhaXNlX3N5c19lcnJvcihlcnIudG9TdHJpbmcoKSk7XG4gIH1cbn1cbk1sTm9kZURldmljZS5wcm90b3R5cGUudW5saW5rID0gZnVuY3Rpb24obmFtZSwgcmFpc2VfdW5peCkge1xuICB0cnkge1xuICAgIHZhciBiID0gdGhpcy5mcy5leGlzdHNTeW5jKHRoaXMubm0obmFtZSkpPzE6MDtcbiAgICB0aGlzLmZzLnVubGlua1N5bmModGhpcy5ubShuYW1lKSk7XG4gICAgcmV0dXJuIGI7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHRoaXMucmFpc2Vfbm9kZWpzX2Vycm9yKGVyciwgcmFpc2VfdW5peCk7XG4gIH1cbn1cbk1sTm9kZURldmljZS5wcm90b3R5cGUub3BlbiA9IGZ1bmN0aW9uKG5hbWUsIGYsIHJhaXNlX3VuaXgpIHtcbiAgdmFyIGNvbnN0cyA9IHJlcXVpcmUoJ2NvbnN0YW50cycpO1xuICB2YXIgcmVzID0gMDtcbiAgZm9yKHZhciBrZXkgaW4gZil7XG4gICAgc3dpdGNoKGtleSl7XG4gICAgY2FzZSBcInJkb25seVwiICA6IHJlcyB8PSBjb25zdHMuT19SRE9OTFk7IGJyZWFrO1xuICAgIGNhc2UgXCJ3cm9ubHlcIiAgOiByZXMgfD0gY29uc3RzLk9fV1JPTkxZOyBicmVhaztcbiAgICBjYXNlIFwiYXBwZW5kXCIgIDpcbiAgICAgIHJlcyB8PSBjb25zdHMuT19XUk9OTFkgfCBjb25zdHMuT19BUFBFTkQ7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFwiY3JlYXRlXCIgICA6IHJlcyB8PSBjb25zdHMuT19DUkVBVDsgICAgYnJlYWs7XG4gICAgY2FzZSBcInRydW5jYXRlXCIgOiByZXMgfD0gY29uc3RzLk9fVFJVTkM7ICAgIGJyZWFrO1xuICAgIGNhc2UgXCJleGNsXCIgICAgIDogcmVzIHw9IGNvbnN0cy5PX0VYQ0w7ICAgICBicmVhaztcbiAgICBjYXNlIFwiYmluYXJ5XCIgICA6IHJlcyB8PSBjb25zdHMuT19CSU5BUlk7ICAgYnJlYWs7XG4gICAgY2FzZSBcInRleHRcIiAgICAgOiByZXMgfD0gY29uc3RzLk9fVEVYVDsgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJub25ibG9ja1wiIDogcmVzIHw9IGNvbnN0cy5PX05PTkJMT0NLOyBicmVhaztcbiAgICB9XG4gIH1cbiAgdHJ5IHtcbiAgICB2YXIgZmQgPSB0aGlzLmZzLm9wZW5TeW5jKHRoaXMubm0obmFtZSksIHJlcyk7XG4gICAgdmFyIGlzQ2hhcmFjdGVyRGV2aWNlID0gdGhpcy5mcy5sc3RhdFN5bmModGhpcy5ubShuYW1lKSkuaXNDaGFyYWN0ZXJEZXZpY2UoKTtcbiAgICBmLmlzQ2hhcmFjdGVyRGV2aWNlID0gaXNDaGFyYWN0ZXJEZXZpY2U7XG4gICAgcmV0dXJuIG5ldyBNbE5vZGVGZChmZCwgZik7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHRoaXMucmFpc2Vfbm9kZWpzX2Vycm9yKGVyciwgcmFpc2VfdW5peCk7XG4gIH1cbn1cblxuTWxOb2RlRGV2aWNlLnByb3RvdHlwZS5yZW5hbWUgPSBmdW5jdGlvbihvLCBuLCByYWlzZV91bml4KSB7XG4gIHRyeSB7XG4gICAgdGhpcy5mcy5yZW5hbWVTeW5jKHRoaXMubm0obyksIHRoaXMubm0obikpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICB0aGlzLnJhaXNlX25vZGVqc19lcnJvcihlcnIsIHJhaXNlX3VuaXgpO1xuICB9XG59XG5NbE5vZGVEZXZpY2UucHJvdG90eXBlLnN0YXQgPSBmdW5jdGlvbihuYW1lLCByYWlzZV91bml4KSB7XG4gIHRyeSB7XG4gICAgdmFyIGpzX3N0YXRzID0gdGhpcy5mcy5zdGF0U3luYyh0aGlzLm5tKG5hbWUpKTtcbiAgICByZXR1cm4gdGhpcy5zdGF0c19mcm9tX2pzKGpzX3N0YXRzKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgdGhpcy5yYWlzZV9ub2RlanNfZXJyb3IoZXJyLCByYWlzZV91bml4KTtcbiAgfVxufVxuTWxOb2RlRGV2aWNlLnByb3RvdHlwZS5sc3RhdCA9IGZ1bmN0aW9uKG5hbWUsIHJhaXNlX3VuaXgpIHtcbiAgdHJ5IHtcbiAgICB2YXIganNfc3RhdHMgPSB0aGlzLmZzLmxzdGF0U3luYyh0aGlzLm5tKG5hbWUpKTtcbiAgICByZXR1cm4gdGhpcy5zdGF0c19mcm9tX2pzKGpzX3N0YXRzKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgdGhpcy5yYWlzZV9ub2RlanNfZXJyb3IoZXJyLCByYWlzZV91bml4KTtcbiAgfVxufVxuTWxOb2RlRGV2aWNlLnByb3RvdHlwZS5zeW1saW5rID0gZnVuY3Rpb24odG9fZGlyLCB0YXJnZXQsIHBhdGgsIHJhaXNlX3VuaXgpIHtcbiAgdHJ5IHtcbiAgICB0aGlzLmZzLnN5bWxpbmtTeW5jKHRoaXMubm0odGFyZ2V0KSwgdGhpcy5ubShwYXRoKSwgdG9fZGlyID8gJ2RpcicgOiAnZmlsZScpO1xuICAgIHJldHVybiAwO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICB0aGlzLnJhaXNlX25vZGVqc19lcnJvcihlcnIsIHJhaXNlX3VuaXgpO1xuICB9XG59XG5NbE5vZGVEZXZpY2UucHJvdG90eXBlLnJlYWRsaW5rID0gZnVuY3Rpb24obmFtZSwgcmFpc2VfdW5peCkge1xuICB0cnkge1xuICAgIHZhciBsaW5rID0gdGhpcy5mcy5yZWFkbGlua1N5bmModGhpcy5ubShuYW1lKSwgJ3V0ZjgnKTtcbiAgICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmcobGluayk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHRoaXMucmFpc2Vfbm9kZWpzX2Vycm9yKGVyciwgcmFpc2VfdW5peCk7XG4gIH1cbn1cbk1sTm9kZURldmljZS5wcm90b3R5cGUub3BlbmRpciA9IGZ1bmN0aW9uKG5hbWUsIHJhaXNlX3VuaXgpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gdGhpcy5mcy5vcGVuZGlyU3luYyh0aGlzLm5tKG5hbWUpKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgdGhpcy5yYWlzZV9ub2RlanNfZXJyb3IoZXJyLCByYWlzZV91bml4KTtcbiAgfVxufVxuTWxOb2RlRGV2aWNlLnByb3RvdHlwZS5yYWlzZV9ub2RlanNfZXJyb3IgPSBmdW5jdGlvbihlcnIsIHJhaXNlX3VuaXgpIHtcbiAgdmFyIHVuaXhfZXJyb3IgPSBjYW1sX25hbWVkX3ZhbHVlKFwiVW5peC5Vbml4X2Vycm9yXCIpO1xuICBpZiAocmFpc2VfdW5peCAmJiB1bml4X2Vycm9yKSB7XG4gICAgdmFyIGFyZ3MgPSBtYWtlX3VuaXhfZXJyX2FyZ3MoZXJyLmNvZGUsIGVyci5zeXNjYWxsLCBlcnIucGF0aCwgZXJyLmVycm5vKTtcbiAgICBjYW1sX3JhaXNlX3dpdGhfYXJncyh1bml4X2Vycm9yLCBhcmdzKTtcbiAgfSBlbHNlIHtcbiAgICBjYW1sX3JhaXNlX3N5c19lcnJvcihlcnIudG9TdHJpbmcoKSk7XG4gIH1cbn1cbk1sTm9kZURldmljZS5wcm90b3R5cGUuc3RhdHNfZnJvbV9qcyA9IGZ1bmN0aW9uKGpzX3N0YXRzKSB7XG4gIC8qID09PVVuaXguZmlsZV9raW5kPT09XG4gICAqIHR5cGUgZmlsZV9raW5kID1cbiAgICogICAgIFNfUkVHICAgICAgICAgICAgICAgICAgICAgICAoKiogUmVndWxhciBmaWxlICopXG4gICAqICAgfCBTX0RJUiAgICAgICAgICAgICAgICAgICAgICAgKCoqIERpcmVjdG9yeSAqKVxuICAgKiAgIHwgU19DSFIgICAgICAgICAgICAgICAgICAgICAgICgqKiBDaGFyYWN0ZXIgZGV2aWNlICopXG4gICAqICAgfCBTX0JMSyAgICAgICAgICAgICAgICAgICAgICAgKCoqIEJsb2NrIGRldmljZSAqKVxuICAgKiAgIHwgU19MTksgICAgICAgICAgICAgICAgICAgICAgICgqKiBTeW1ib2xpYyBsaW5rICopXG4gICAqICAgfCBTX0ZJRk8gICAgICAgICAgICAgICAgICAgICAgKCoqIE5hbWVkIHBpcGUgKilcbiAgICogICB8IFNfU09DSyAgICAgICAgICAgICAgICAgICAgICAoKiogU29ja2V0ICopXG4gICAqL1xuICB2YXIgZmlsZV9raW5kO1xuICBpZiAoanNfc3RhdHMuaXNGaWxlKCkpIHtcbiAgICBmaWxlX2tpbmQgPSAwO1xuICB9IGVsc2UgaWYgKGpzX3N0YXRzLmlzRGlyZWN0b3J5KCkpIHtcbiAgICBmaWxlX2tpbmQgPSAxO1xuICB9IGVsc2UgaWYgKGpzX3N0YXRzLmlzQ2hhcmFjdGVyRGV2aWNlKCkpIHtcbiAgICBmaWxlX2tpbmQgPSAyO1xuICB9IGVsc2UgaWYgKGpzX3N0YXRzLmlzQmxvY2tEZXZpY2UoKSkge1xuICAgIGZpbGVfa2luZCA9IDM7XG4gIH0gZWxzZSBpZiAoanNfc3RhdHMuaXNTeW1ib2xpY0xpbmsoKSkge1xuICAgIGZpbGVfa2luZCA9IDQ7XG4gIH0gZWxzZSBpZiAoanNfc3RhdHMuaXNGSUZPKCkpIHtcbiAgICBmaWxlX2tpbmQgPSA1O1xuICB9IGVsc2UgaWYgKGpzX3N0YXRzLmlzU29ja2V0KCkpIHtcbiAgICBmaWxlX2tpbmQgPSA2O1xuICB9XG4gIC8qID09PVVuaXguc3RhdHM9PT1cbiAgICogdHlwZSBzdGF0cyA9XG4gICAqICB7IHN0X2RldiA6IGludDsgICAgICAgICAgICAgICAoKiogRGV2aWNlIG51bWJlciAqKVxuICAgKiAgICBzdF9pbm8gOiBpbnQ7ICAgICAgICAgICAgICAgKCoqIElub2RlIG51bWJlciAqKVxuICAgKiAgICBzdF9raW5kIDogZmlsZV9raW5kOyAgICAgICAgKCoqIEtpbmQgb2YgdGhlIGZpbGUgKilcbiAgICogICAgc3RfcGVybSA6IGZpbGVfcGVybTsgICAgICAgICgqKiBBY2Nlc3MgcmlnaHRzICopXG4gICAqICAgIHN0X25saW5rIDogaW50OyAgICAgICAgICAgICAoKiogTnVtYmVyIG9mIGxpbmtzICopXG4gICAqICAgIHN0X3VpZCA6IGludDsgICAgICAgICAgICAgICAoKiogVXNlciBpZCBvZiB0aGUgb3duZXIgKilcbiAgICogICAgc3RfZ2lkIDogaW50OyAgICAgICAgICAgICAgICgqKiBHcm91cCBJRCBvZiB0aGUgZmlsZSdzIGdyb3VwICopXG4gICAqICAgIHN0X3JkZXYgOiBpbnQ7ICAgICAgICAgICAgICAoKiogRGV2aWNlIElEIChpZiBzcGVjaWFsIGZpbGUpICopXG4gICAqICAgIHN0X3NpemUgOiBpbnQ7ICAgICAgICAgICAgICAoKiogU2l6ZSBpbiBieXRlcyAqKVxuICAgKiAgICBzdF9hdGltZSA6IGZsb2F0OyAgICAgICAgICAgKCoqIExhc3QgYWNjZXNzIHRpbWUgKilcbiAgICogICAgc3RfbXRpbWUgOiBmbG9hdDsgICAgICAgICAgICgqKiBMYXN0IG1vZGlmaWNhdGlvbiB0aW1lICopXG4gICAqICAgIHN0X2N0aW1lIDogZmxvYXQ7ICAgICAgICAgICAoKiogTGFzdCBzdGF0dXMgY2hhbmdlIHRpbWUgKilcbiAgICogIH1cbiAgICovXG4gIHJldHVybiBCTE9DSyhcbiAgICAwLFxuICAgIGpzX3N0YXRzLmRldixcbiAgICBqc19zdGF0cy5pbm8sXG4gICAgZmlsZV9raW5kLFxuICAgIGpzX3N0YXRzLm1vZGUsXG4gICAganNfc3RhdHMubmxpbmssXG4gICAganNfc3RhdHMudWlkLFxuICAgIGpzX3N0YXRzLmdpZCxcbiAgICBqc19zdGF0cy5yZGV2LFxuICAgIGpzX3N0YXRzLnNpemUsXG4gICAganNfc3RhdHMuYXRpbWVNcyxcbiAgICBqc19zdGF0cy5tdGltZU1zLFxuICAgIGpzX3N0YXRzLmN0aW1lTXNcbiAgKTtcbn1cblxuTWxOb2RlRGV2aWNlLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IE1sTm9kZURldmljZVxuXG4vL1Byb3ZpZGVzOiBNbE5vZGVEZXZpY2Vcbi8vSWY6IGJyb3dzZXJcbmZ1bmN0aW9uIE1sTm9kZURldmljZSgpIHtcbn1cblxuLy9Qcm92aWRlczogTWxOb2RlRmRcbi8vUmVxdWlyZXM6IE1sRmlsZSwgY2FtbF91aW50OF9hcnJheV9vZl9zdHJpbmcsIGNhbWxfdWludDhfYXJyYXlfb2ZfYnl0ZXMsIGNhbWxfYnl0ZXNfc2V0LCBjYW1sX3JhaXNlX3N5c19lcnJvclxuZnVuY3Rpb24gTWxOb2RlRmQoZmQsIGZsYWdzKXtcbiAgdGhpcy5mcyA9IHJlcXVpcmUoJ2ZzJyk7XG4gIHRoaXMuZmQgPSBmZDtcbiAgdGhpcy5mbGFncyA9IGZsYWdzO1xufVxuTWxOb2RlRmQucHJvdG90eXBlID0gbmV3IE1sRmlsZSAoKTtcbk1sTm9kZUZkLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IE1sTm9kZUZkO1xuXG5NbE5vZGVGZC5wcm90b3R5cGUudHJ1bmNhdGUgPSBmdW5jdGlvbihsZW4pe1xuICB0cnkge1xuICAgIHRoaXMuZnMuZnRydW5jYXRlU3luYyh0aGlzLmZkLGxlbnwwKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IoZXJyLnRvU3RyaW5nKCkpO1xuICB9XG59XG5NbE5vZGVGZC5wcm90b3R5cGUubGVuZ3RoID0gZnVuY3Rpb24gKCkge1xuICB0cnkge1xuICAgIHJldHVybiB0aGlzLmZzLmZzdGF0U3luYyh0aGlzLmZkKS5zaXplO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBjYW1sX3JhaXNlX3N5c19lcnJvcihlcnIudG9TdHJpbmcoKSk7XG4gIH1cbn1cbk1sTm9kZUZkLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKG9mZnNldCxidWYsYnVmX29mZnNldCxsZW4pe1xuICB0cnkge1xuICAgIGlmKHRoaXMuZmxhZ3MuaXNDaGFyYWN0ZXJEZXZpY2UpXG4gICAgICB0aGlzLmZzLndyaXRlU3luYyh0aGlzLmZkLCBidWYsIGJ1Zl9vZmZzZXQsIGxlbik7XG4gICAgZWxzZVxuICAgICAgdGhpcy5mcy53cml0ZVN5bmModGhpcy5mZCwgYnVmLCBidWZfb2Zmc2V0LCBsZW4sIG9mZnNldCk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKGVyci50b1N0cmluZygpKTtcbiAgfVxuICByZXR1cm4gMDtcbn1cbk1sTm9kZUZkLnByb3RvdHlwZS5yZWFkID0gZnVuY3Rpb24ob2Zmc2V0LGEsYnVmX29mZnNldCxsZW4pe1xuICB0cnkge1xuICAgIGlmKHRoaXMuZmxhZ3MuaXNDaGFyYWN0ZXJEZXZpY2UpXG4gICAgICB2YXIgcmVhZCA9IHRoaXMuZnMucmVhZFN5bmModGhpcy5mZCwgYSwgYnVmX29mZnNldCwgbGVuKTtcbiAgICBlbHNlXG4gICAgICB2YXIgcmVhZCA9IHRoaXMuZnMucmVhZFN5bmModGhpcy5mZCwgYSwgYnVmX29mZnNldCwgbGVuLCBvZmZzZXQpO1xuICAgIHJldHVybiByZWFkO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBjYW1sX3JhaXNlX3N5c19lcnJvcihlcnIudG9TdHJpbmcoKSk7XG4gIH1cbn1cbk1sTm9kZUZkLnByb3RvdHlwZS5jbG9zZSA9IGZ1bmN0aW9uKCl7XG4gIHRyeSB7XG4gICAgdGhpcy5mcy5jbG9zZVN5bmModGhpcy5mZCk7XG4gICAgcmV0dXJuIDBcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IoZXJyLnRvU3RyaW5nKCkpO1xuICB9XG59XG5cblxuLy9Qcm92aWRlczogTWxOb2RlRmRcbi8vSWY6IGJyb3dzZXJcbmZ1bmN0aW9uIE1sTm9kZUZkKCl7XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfb3Blbl9mb3Jfbm9kZVxuLy9SZXF1aXJlczogTWxOb2RlRmRcbmZ1bmN0aW9uIGNhbWxfc3lzX29wZW5fZm9yX25vZGUoZmQsIGZsYWdzKXtcbiAgaWYoZmxhZ3MubmFtZSkge1xuICAgIHRyeSB7XG4gICAgICB2YXIgZnMgPSByZXF1aXJlKFwiZnNcIik7XG4gICAgICB2YXIgZmQyID0gZnMub3BlblN5bmMoZmxhZ3MubmFtZSwgXCJyc1wiKTtcbiAgICAgIHJldHVybiBuZXcgTWxOb2RlRmQoZmQyLCBmbGFncyk7XG4gICAgfSBjYXRjaChlKSB7ICB9XG4gIH1cbiAgcmV0dXJuIG5ldyBNbE5vZGVGZChmZCwgZmxhZ3MpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19vcGVuX2Zvcl9ub2RlXG4vL0lmOiBicm93c2VyXG5mdW5jdGlvbiBjYW1sX3N5c19vcGVuX2Zvcl9ub2RlKGZkLCBmbGFncyl7XG4gIHJldHVybiBudWxsO1xufVxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy8gQ29weXJpZ2h0IChDKSAyMDE0IErDqXLDtG1lIFZvdWlsbG9uLCBIdWdvIEhldXphcmRcbi8vIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy8vLy8vLy8vLy8vLyBEdW1teSBmaWxlc3lzdGVtXG5cbi8vUHJvdmlkZXM6IGNhbWxfdHJhaWxpbmdfc2xhc2hcbmZ1bmN0aW9uIGNhbWxfdHJhaWxpbmdfc2xhc2gobmFtZSl7XG4gIHJldHVybiAobmFtZS5zbGljZSgtMSkgIT09IFwiL1wiKSA/IChuYW1lICsgXCIvXCIpIDogbmFtZTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9jdXJyZW50X2RpclxuLy9SZXF1aXJlczogY2FtbF90cmFpbGluZ19zbGFzaCwgZnNfbm9kZV9zdXBwb3J0ZWRcbmlmKGZzX25vZGVfc3VwcG9ydGVkICgpICYmIGdsb2JhbFRoaXMucHJvY2VzcyAmJiBnbG9iYWxUaGlzLnByb2Nlc3MuY3dkKVxuICB2YXIgY2FtbF9jdXJyZW50X2RpciA9IGdsb2JhbFRoaXMucHJvY2Vzcy5jd2QoKS5yZXBsYWNlKC9cXFxcL2csJy8nKTtcbmVsc2VcbiAgdmFyIGNhbWxfY3VycmVudF9kaXIgPSAgXCIvc3RhdGljXCI7XG5jYW1sX2N1cnJlbnRfZGlyID0gY2FtbF90cmFpbGluZ19zbGFzaChjYW1sX2N1cnJlbnRfZGlyKTtcblxuLy9Qcm92aWRlczogY2FtbF9nZXRfcm9vdFxuLy9SZXF1aXJlczogcGF0aF9pc19hYnNvbHV0ZVxuZnVuY3Rpb24gY2FtbF9nZXRfcm9vdChwYXRoKXtcbiAgdmFyIHggPSBwYXRoX2lzX2Fic29sdXRlKHBhdGgpO1xuICBpZiAoIXgpIHJldHVybjtcbiAgcmV0dXJuIHhbMF0gKyBcIi9cIn1cblxuLy9Qcm92aWRlczogY2FtbF9yb290XG4vL1JlcXVpcmVzOiBjYW1sX2dldF9yb290LCBjYW1sX2N1cnJlbnRfZGlyLCBjYW1sX2ZhaWx3aXRoXG52YXIgY2FtbF9yb290ID0gY2FtbF9nZXRfcm9vdChjYW1sX2N1cnJlbnRfZGlyKSB8fCBjYW1sX2ZhaWx3aXRoKFwidW5hYmxlIHRvIGNvbXB1dGUgY2FtbF9yb290XCIpO1xuXG5cbi8vUHJvdmlkZXM6IE1sRmlsZVxuZnVuY3Rpb24gTWxGaWxlKCl7ICB9XG5cbi8vUHJvdmlkZXM6IHBhdGhfaXNfYWJzb2x1dGVcbi8vUmVxdWlyZXM6IGZzX25vZGVfc3VwcG9ydGVkXG5mdW5jdGlvbiBtYWtlX3BhdGhfaXNfYWJzb2x1dGUoKSB7XG4gIGZ1bmN0aW9uIHBvc2l4KHBhdGgpIHtcbiAgICBpZiAocGF0aC5jaGFyQXQoMCkgPT09ICcvJykgcmV0dXJuIFtcIlwiLCBwYXRoLnN1YnN0cmluZygxKV07XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgZnVuY3Rpb24gd2luMzIocGF0aCkge1xuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlanMvbm9kZS9ibG9iL2IzZmNjMjQ1ZmIyNTUzOTkwOWVmMWQ1ZWFhMDFkYmY5MmUxNjg2MzMvbGliL3BhdGguanMjTDU2XG4gICAgdmFyIHNwbGl0RGV2aWNlUmUgPSAvXihbYS16QS1aXTp8W1xcXFwvXXsyfVteXFxcXC9dK1tcXFxcL10rW15cXFxcL10rKT8oW1xcXFwvXSk/KFtcXHNcXFNdKj8pJC87XG4gICAgdmFyIHJlc3VsdCA9IHNwbGl0RGV2aWNlUmUuZXhlYyhwYXRoKTtcbiAgICB2YXIgZGV2aWNlID0gcmVzdWx0WzFdIHx8ICcnO1xuICAgIHZhciBpc1VuYyA9IEJvb2xlYW4oZGV2aWNlICYmIGRldmljZS5jaGFyQXQoMSkgIT09ICc6Jyk7XG5cbiAgICAvLyBVTkMgcGF0aHMgYXJlIGFsd2F5cyBhYnNvbHV0ZVxuICAgIGlmIChCb29sZWFuKHJlc3VsdFsyXSB8fCBpc1VuYykpIHtcbiAgICAgIHZhciByb290ID0gKHJlc3VsdFsxXSB8fCAnJyk7XG4gICAgICB2YXIgc2VwID0gKHJlc3VsdFsyXSB8fCAnJyk7XG4gICAgICByZXR1cm4gW3Jvb3QsIHBhdGguc3Vic3RyaW5nKHJvb3QubGVuZ3RoICsgc2VwLmxlbmd0aCldXG4gICAgfVxuICAgIHJldHVybjtcbiAgfVxuICBpZihmc19ub2RlX3N1cHBvcnRlZCAoKSAmJiBnbG9iYWxUaGlzLnByb2Nlc3MgJiYgZ2xvYmFsVGhpcy5wcm9jZXNzLnBsYXRmb3JtKSB7XG4gICAgcmV0dXJuIGdsb2JhbFRoaXMucHJvY2Vzcy5wbGF0Zm9ybSA9PT0gJ3dpbjMyJyA/IHdpbjMyIDogcG9zaXg7XG4gIH1cbiAgZWxzZSByZXR1cm4gcG9zaXhcbn1cbnZhciBwYXRoX2lzX2Fic29sdXRlID0gbWFrZV9wYXRoX2lzX2Fic29sdXRlKCk7XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWFrZV9wYXRoXG4vL1JlcXVpcmVzOiBjYW1sX2N1cnJlbnRfZGlyXG4vL1JlcXVpcmVzOiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZywgcGF0aF9pc19hYnNvbHV0ZVxuZnVuY3Rpb24gY2FtbF9tYWtlX3BhdGggKG5hbWUpIHtcbiAgbmFtZT1jYW1sX2pzc3RyaW5nX29mX3N0cmluZyhuYW1lKTtcbiAgaWYoICFwYXRoX2lzX2Fic29sdXRlKG5hbWUpIClcbiAgICBuYW1lID0gY2FtbF9jdXJyZW50X2RpciArIG5hbWU7XG4gIHZhciBjb21wMCA9IHBhdGhfaXNfYWJzb2x1dGUobmFtZSk7XG4gIHZhciBjb21wID0gY29tcDBbMV0uc3BsaXQoXCIvXCIpO1xuICB2YXIgbmNvbXAgPSBbXVxuICBmb3IodmFyIGkgPSAwOyBpPGNvbXAubGVuZ3RoOyBpKyspe1xuICAgIHN3aXRjaChjb21wW2ldKXtcbiAgICBjYXNlIFwiLi5cIjogaWYobmNvbXAubGVuZ3RoPjEpIG5jb21wLnBvcCgpOyBicmVhaztcbiAgICBjYXNlIFwiLlwiOiBicmVhaztcbiAgICBjYXNlIFwiXCI6IGJyZWFrO1xuICAgIGRlZmF1bHQ6IG5jb21wLnB1c2goY29tcFtpXSk7YnJlYWtcbiAgICB9XG4gIH1cbiAgbmNvbXAudW5zaGlmdChjb21wMFswXSk7XG4gIG5jb21wLm9yaWcgPSBuYW1lO1xuICByZXR1cm4gbmNvbXA7XG59XG5cbi8vUHJvdmlkZXM6anNvb19tb3VudF9wb2ludFxuLy9SZXF1aXJlczogTWxGYWtlRGV2aWNlLCBNbE5vZGVEZXZpY2UsIGNhbWxfcm9vdCwgZnNfbm9kZV9zdXBwb3J0ZWRcbnZhciBqc29vX21vdW50X3BvaW50ID0gW11cbmlmIChmc19ub2RlX3N1cHBvcnRlZCgpKSB7XG4gIGpzb29fbW91bnRfcG9pbnQucHVzaCh7cGF0aDpjYW1sX3Jvb3QsZGV2aWNlOm5ldyBNbE5vZGVEZXZpY2UoY2FtbF9yb290KX0pO1xufSBlbHNlIHtcbiAganNvb19tb3VudF9wb2ludC5wdXNoKHtwYXRoOmNhbWxfcm9vdCxkZXZpY2U6bmV3IE1sRmFrZURldmljZShjYW1sX3Jvb3QpfSk7XG59XG5qc29vX21vdW50X3BvaW50LnB1c2goe3BhdGg6XCIvc3RhdGljL1wiLCBkZXZpY2U6bmV3IE1sRmFrZURldmljZShcIi9zdGF0aWMvXCIpfSk7XG5cbi8vUHJvdmlkZXM6Y2FtbF9saXN0X21vdW50X3BvaW50XG4vL1JlcXVpcmVzOiBqc29vX21vdW50X3BvaW50LCBjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG5mdW5jdGlvbiBjYW1sX2xpc3RfbW91bnRfcG9pbnQoKXtcbiAgdmFyIHByZXYgPSAwXG4gIGZvcih2YXIgaSA9IDA7IGkgPCBqc29vX21vdW50X3BvaW50Lmxlbmd0aDsgaSsrKXtcbiAgICB2YXIgb2xkID0gcHJldjtcbiAgICBwcmV2ID0gWzAsIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMoanNvb19tb3VudF9wb2ludFtpXS5wYXRoKSwgb2xkXVxuICB9XG4gIHJldHVybiBwcmV2O1xufVxuXG4vL1Byb3ZpZGVzOiByZXNvbHZlX2ZzX2RldmljZVxuLy9SZXF1aXJlczogY2FtbF9tYWtlX3BhdGgsIGpzb29fbW91bnRfcG9pbnQsIGNhbWxfcmFpc2Vfc3lzX2Vycm9yLCBjYW1sX2dldF9yb290LCBNbE5vZGVEZXZpY2UsIGNhbWxfdHJhaWxpbmdfc2xhc2gsIGZzX25vZGVfc3VwcG9ydGVkXG5mdW5jdGlvbiByZXNvbHZlX2ZzX2RldmljZShuYW1lKXtcbiAgdmFyIHBhdGggPSBjYW1sX21ha2VfcGF0aChuYW1lKTtcbiAgdmFyIG5hbWUgPSBwYXRoLmpvaW4oXCIvXCIpO1xuICB2YXIgbmFtZV9zbGFzaCA9IGNhbWxfdHJhaWxpbmdfc2xhc2gobmFtZSk7XG4gIHZhciByZXM7XG4gIGZvcih2YXIgaSA9IDA7IGkgPCBqc29vX21vdW50X3BvaW50Lmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIG0gPSBqc29vX21vdW50X3BvaW50W2ldO1xuICAgIGlmKG5hbWVfc2xhc2guc2VhcmNoKG0ucGF0aCkgPT0gMFxuICAgICAgICYmICghcmVzIHx8IHJlcy5wYXRoLmxlbmd0aCA8IG0ucGF0aC5sZW5ndGgpKVxuICAgICAgcmVzID0ge3BhdGg6bS5wYXRoLGRldmljZTptLmRldmljZSxyZXN0Om5hbWUuc3Vic3RyaW5nKG0ucGF0aC5sZW5ndGgsbmFtZS5sZW5ndGgpfTtcbiAgfVxuICBpZiggIXJlcyAmJiBmc19ub2RlX3N1cHBvcnRlZCgpKSB7XG4gICAgdmFyIHJvb3QgPSBjYW1sX2dldF9yb290KG5hbWUpO1xuICAgIGlmIChyb290ICYmIHJvb3QubWF0Y2goL15bYS16QS1aXTpcXC8kLykpe1xuICAgICAgdmFyIG0gPSB7cGF0aDpyb290LGRldmljZTpuZXcgTWxOb2RlRGV2aWNlKHJvb3QpfTtcbiAgICAgIGpzb29fbW91bnRfcG9pbnQucHVzaChtKTtcbiAgICAgIHJlcyA9IHtwYXRoOm0ucGF0aCxkZXZpY2U6bS5kZXZpY2UscmVzdDpuYW1lLnN1YnN0cmluZyhtLnBhdGgubGVuZ3RoLG5hbWUubGVuZ3RoKX07XG4gICAgfVxuICB9XG4gIGlmKCByZXMgKSByZXR1cm4gcmVzO1xuICBjYW1sX3JhaXNlX3N5c19lcnJvcihcIm5vIGRldmljZSBmb3VuZCBmb3IgXCIgKyBuYW1lX3NsYXNoKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tb3VudF9hdXRvbG9hZFxuLy9SZXF1aXJlczogTWxGYWtlRGV2aWNlLCBjYW1sX21ha2VfcGF0aCwganNvb19tb3VudF9wb2ludCwgY2FtbF90cmFpbGluZ19zbGFzaFxuZnVuY3Rpb24gY2FtbF9tb3VudF9hdXRvbG9hZChuYW1lLGYpe1xuICB2YXIgcGF0aCA9IGNhbWxfbWFrZV9wYXRoKG5hbWUpO1xuICB2YXIgbmFtZSA9IGNhbWxfdHJhaWxpbmdfc2xhc2gocGF0aC5qb2luKFwiL1wiKSk7XG4gIGpzb29fbW91bnRfcG9pbnQucHVzaCh7cGF0aDpuYW1lLGRldmljZTpuZXcgTWxGYWtlRGV2aWNlKG5hbWUsZil9KVxuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF91bm1vdW50XG4vL1JlcXVpcmVzOiBqc29vX21vdW50X3BvaW50LCBjYW1sX21ha2VfcGF0aCwgY2FtbF90cmFpbGluZ19zbGFzaFxuZnVuY3Rpb24gY2FtbF91bm1vdW50KG5hbWUpe1xuICB2YXIgcGF0aCA9IGNhbWxfbWFrZV9wYXRoKG5hbWUpO1xuICB2YXIgbmFtZSA9IGNhbWxfdHJhaWxpbmdfc2xhc2gocGF0aC5qb2luKFwiL1wiKSk7XG4gIHZhciBpZHggPSAtMTtcbiAgZm9yKHZhciBpID0gMDsgaSA8IGpzb29fbW91bnRfcG9pbnQubGVuZ3RoOyBpKyspXG4gICAgaWYoanNvb19tb3VudF9wb2ludFtpXS5wYXRoID09IG5hbWUpIGlkeCA9IGk7XG4gIGlmKGlkeCA+IC0xKSBqc29vX21vdW50X3BvaW50LnNwbGljZShpZHgsMSk7XG4gIHJldHVybiAwXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2dldGN3ZFxuLy9SZXF1aXJlczogY2FtbF9jdXJyZW50X2RpciwgY2FtbF9zdHJpbmdfb2ZfanNieXRlc1xuZnVuY3Rpb24gY2FtbF9zeXNfZ2V0Y3dkKCkge1xuICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhjYW1sX2N1cnJlbnRfZGlyKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfY2hkaXJcbi8vUmVxdWlyZXM6IGNhbWxfY3VycmVudF9kaXIsIGNhbWxfcmFpc2Vfbm9fc3VjaF9maWxlLCByZXNvbHZlX2ZzX2RldmljZSwgY2FtbF90cmFpbGluZ19zbGFzaCwgY2FtbF9qc2J5dGVzX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9zeXNfY2hkaXIoZGlyKSB7XG4gIHZhciByb290ID0gcmVzb2x2ZV9mc19kZXZpY2UoZGlyKTtcbiAgaWYocm9vdC5kZXZpY2UuZXhpc3RzKHJvb3QucmVzdCkpIHtcbiAgICBpZihyb290LnJlc3QpIGNhbWxfY3VycmVudF9kaXIgPSBjYW1sX3RyYWlsaW5nX3NsYXNoKHJvb3QucGF0aCArIHJvb3QucmVzdCk7XG4gICAgZWxzZSBjYW1sX2N1cnJlbnRfZGlyID0gcm9vdC5wYXRoO1xuICAgIHJldHVybiAwO1xuICB9XG4gIGVsc2Uge1xuICAgIGNhbWxfcmFpc2Vfbm9fc3VjaF9maWxlKGNhbWxfanNieXRlc19vZl9zdHJpbmcoZGlyKSk7XG4gIH1cbn1cblxuLy9Qcm92aWRlczogY2FtbF9yYWlzZV9ub19zdWNoX2ZpbGVcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2Vfc3lzX2Vycm9yXG5mdW5jdGlvbiBjYW1sX3JhaXNlX25vX3N1Y2hfZmlsZShuYW1lKXtcbiAgY2FtbF9yYWlzZV9zeXNfZXJyb3IgKG5hbWUgKyBcIjogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeVwiKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9yYWlzZV9ub3RfYV9kaXJcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2Vfc3lzX2Vycm9yXG5mdW5jdGlvbiBjYW1sX3JhaXNlX25vdF9hX2RpcihuYW1lKXtcbiAgY2FtbF9yYWlzZV9zeXNfZXJyb3IgKG5hbWUgKyBcIjogTm90IGEgZGlyZWN0b3J5XCIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19maWxlX2V4aXN0c1xuLy9SZXF1aXJlczogcmVzb2x2ZV9mc19kZXZpY2VcbmZ1bmN0aW9uIGNhbWxfc3lzX2ZpbGVfZXhpc3RzIChuYW1lKSB7XG4gIHZhciByb290ID0gcmVzb2x2ZV9mc19kZXZpY2UobmFtZSk7XG4gIHJldHVybiByb290LmRldmljZS5leGlzdHMocm9vdC5yZXN0KTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfcmVhZF9kaXJlY3Rvcnlcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2Vfbm90X2FfZGlyLCByZXNvbHZlX2ZzX2RldmljZVxuZnVuY3Rpb24gY2FtbF9zeXNfcmVhZF9kaXJlY3RvcnkobmFtZSl7XG4gIHZhciByb290ID0gcmVzb2x2ZV9mc19kZXZpY2UobmFtZSk7XG4gIHZhciBhID0gcm9vdC5kZXZpY2UucmVhZGRpcihyb290LnJlc3QpO1xuICB2YXIgbCA9IG5ldyBBcnJheShhLmxlbmd0aCArIDEpO1xuICBsWzBdID0gMDtcbiAgZm9yKHZhciBpPTA7aTxhLmxlbmd0aDtpKyspXG4gICAgbFtpKzFdID0gY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhhW2ldKTtcbiAgcmV0dXJuIGw7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX3JlbW92ZVxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9ub19zdWNoX2ZpbGUsIHJlc29sdmVfZnNfZGV2aWNlLCBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N5c19yZW1vdmUobmFtZSl7XG4gIHZhciByb290ID0gcmVzb2x2ZV9mc19kZXZpY2UobmFtZSk7XG4gIHZhciBvayA9IHJvb3QuZGV2aWNlLnVubGluayhyb290LnJlc3QpO1xuICBpZihvayA9PSAwKSBjYW1sX3JhaXNlX25vX3N1Y2hfZmlsZShjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKG5hbWUpKTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2lzX2RpcmVjdG9yeVxuLy9SZXF1aXJlczogcmVzb2x2ZV9mc19kZXZpY2VcbmZ1bmN0aW9uIGNhbWxfc3lzX2lzX2RpcmVjdG9yeShuYW1lKXtcbiAgdmFyIHJvb3QgPSByZXNvbHZlX2ZzX2RldmljZShuYW1lKTtcbiAgdmFyIGEgPSByb290LmRldmljZS5pc19kaXIocm9vdC5yZXN0KTtcbiAgcmV0dXJuIGE/MTowO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19yZW5hbWVcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGgsIHJlc29sdmVfZnNfZGV2aWNlXG5mdW5jdGlvbiBjYW1sX3N5c19yZW5hbWUobyxuKXtcbiAgdmFyIG9fcm9vdCA9IHJlc29sdmVfZnNfZGV2aWNlKG8pO1xuICB2YXIgbl9yb290ID0gcmVzb2x2ZV9mc19kZXZpY2Uobik7XG4gIGlmKG9fcm9vdC5kZXZpY2UgIT0gbl9yb290LmRldmljZSlcbiAgICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF9zeXNfcmVuYW1lOiBjYW5ub3QgbW92ZSBmaWxlIGJldHdlZW4gdHdvIGZpbGVzeXN0ZW1cIik7XG4gIGlmKCFvX3Jvb3QuZGV2aWNlLnJlbmFtZSlcbiAgICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF9zeXNfcmVuYW1lOiBubyBpbXBsZW1lbnRlZFwiKTtcbiAgb19yb290LmRldmljZS5yZW5hbWUob19yb290LnJlc3QsIG5fcm9vdC5yZXN0KTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfbWtkaXJcbi8vUmVxdWlyZXM6IHJlc29sdmVfZnNfZGV2aWNlLCBjYW1sX3JhaXNlX3N5c19lcnJvclxuZnVuY3Rpb24gY2FtbF9zeXNfbWtkaXIobmFtZSwgcGVybSl7XG4gIHZhciByb290ID0gcmVzb2x2ZV9mc19kZXZpY2UobmFtZSk7XG4gIHJvb3QuZGV2aWNlLm1rZGlyKHJvb3QucmVzdCxwZXJtKTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX3JtZGlyXG4vL1JlcXVpcmVzOiByZXNvbHZlX2ZzX2RldmljZSwgY2FtbF9yYWlzZV9zeXNfZXJyb3IsIGNhbWxfcmFpc2Vfbm90X2FfZGlyXG5mdW5jdGlvbiBjYW1sX3N5c19ybWRpcihuYW1lKXtcbiAgdmFyIHJvb3QgPSByZXNvbHZlX2ZzX2RldmljZShuYW1lKTtcbiAgcm9vdC5kZXZpY2Uucm1kaXIocm9vdC5yZXN0KTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfbWFwX2ZpbGVcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbmZ1bmN0aW9uIGNhbWxfYmFfbWFwX2ZpbGUodmZkLCBraW5kLCBsYXlvdXQsIHNoYXJlZCwgZGltcywgcG9zKSB7XG4gIC8vIHZhciBkYXRhID0gY2FtbF9zeXNfZmRzW3ZmZF07XG4gIGNhbWxfZmFpbHdpdGgoXCJjYW1sX2JhX21hcF9maWxlIG5vdCBpbXBsZW1lbnRlZFwiKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9tYXBfZmlsZV9ieXRlY29kZVxuLy9SZXF1aXJlczogY2FtbF9iYV9tYXBfZmlsZVxuZnVuY3Rpb24gY2FtbF9iYV9tYXBfZmlsZV9ieXRlY29kZShhcmd2LGFyZ24pe1xuICByZXR1cm4gY2FtbF9iYV9tYXBfZmlsZShhcmd2WzBdLGFyZ3ZbMV0sYXJndlsyXSxhcmd2WzNdLGFyZ3ZbNF0sYXJndls1XSk7XG59XG5cbi8vUHJvdmlkZXM6IGpzb29fY3JlYXRlX2ZpbGVfZXh0ZXJuXG5mdW5jdGlvbiBqc29vX2NyZWF0ZV9maWxlX2V4dGVybihuYW1lLGNvbnRlbnQpe1xuICBpZihnbG9iYWxUaGlzLmpzb29fY3JlYXRlX2ZpbGUpXG4gICAgZ2xvYmFsVGhpcy5qc29vX2NyZWF0ZV9maWxlKG5hbWUsY29udGVudCk7XG4gIGVsc2Uge1xuICAgIGlmKCFnbG9iYWxUaGlzLmNhbWxfZnNfdG1wKSBnbG9iYWxUaGlzLmNhbWxfZnNfdG1wID0gW107XG4gICAgZ2xvYmFsVGhpcy5jYW1sX2ZzX3RtcC5wdXNoKHtuYW1lOm5hbWUsY29udGVudDpjb250ZW50fSk7XG4gIH1cbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZnNfaW5pdFxuLy9SZXF1aXJlczoganNvb19jcmVhdGVfZmlsZVxuZnVuY3Rpb24gY2FtbF9mc19pbml0ICgpe1xuICB2YXIgdG1wPWdsb2JhbFRoaXMuY2FtbF9mc190bXBcbiAgaWYodG1wKXtcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgdG1wLmxlbmd0aDsgaSsrKXtcbiAgICAgIGpzb29fY3JlYXRlX2ZpbGUodG1wW2ldLm5hbWUsdG1wW2ldLmNvbnRlbnQpO1xuICAgIH1cbiAgfVxuICBnbG9iYWxUaGlzLmpzb29fY3JlYXRlX2ZpbGUgPSBqc29vX2NyZWF0ZV9maWxlO1xuICBnbG9iYWxUaGlzLmNhbWxfZnNfdG1wID0gW107XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2NyZWF0ZV9maWxlXG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoLCByZXNvbHZlX2ZzX2RldmljZVxuZnVuY3Rpb24gY2FtbF9jcmVhdGVfZmlsZShuYW1lLGNvbnRlbnQpIHtcbiAgdmFyIHJvb3QgPSByZXNvbHZlX2ZzX2RldmljZShuYW1lKTtcbiAgaWYoISByb290LmRldmljZS5yZWdpc3RlcikgY2FtbF9mYWlsd2l0aChcImNhbm5vdCByZWdpc3RlciBmaWxlXCIpO1xuICByb290LmRldmljZS5yZWdpc3Rlcihyb290LnJlc3QsY29udGVudCk7XG4gIHJldHVybiAwO1xufVxuXG5cbi8vUHJvdmlkZXM6IGpzb29fY3JlYXRlX2ZpbGVcbi8vUmVxdWlyZXM6IGNhbWxfY3JlYXRlX2ZpbGUsIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbmZ1bmN0aW9uIGpzb29fY3JlYXRlX2ZpbGUobmFtZSxjb250ZW50KSB7XG4gIHZhciBuYW1lID0gY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhuYW1lKTtcbiAgdmFyIGNvbnRlbnQgPSBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKGNvbnRlbnQpO1xuICByZXR1cm4gY2FtbF9jcmVhdGVfZmlsZShuYW1lLCBjb250ZW50KTtcbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX3JlYWRfZmlsZV9jb250ZW50XG4vL1JlcXVpcmVzOiByZXNvbHZlX2ZzX2RldmljZSwgY2FtbF9yYWlzZV9ub19zdWNoX2ZpbGUsIGNhbWxfc3RyaW5nX29mX2FycmF5XG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzLCBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3JlYWRfZmlsZV9jb250ZW50IChuYW1lKSB7XG4gIHZhciBuYW1lID0gKHR5cGVvZiBuYW1lID09IFwic3RyaW5nXCIpP2NhbWxfc3RyaW5nX29mX2pzYnl0ZXMobmFtZSk6bmFtZTtcbiAgdmFyIHJvb3QgPSByZXNvbHZlX2ZzX2RldmljZShuYW1lKTtcbiAgaWYocm9vdC5kZXZpY2UuZXhpc3RzKHJvb3QucmVzdCkpIHtcbiAgICB2YXIgZmlsZSA9IHJvb3QuZGV2aWNlLm9wZW4ocm9vdC5yZXN0LHtyZG9ubHk6MX0pO1xuICAgIHZhciBsZW4gID0gZmlsZS5sZW5ndGgoKTtcbiAgICB2YXIgYnVmID0gbmV3IFVpbnQ4QXJyYXkobGVuKTtcbiAgICBmaWxlLnJlYWQoMCxidWYsMCxsZW4pO1xuICAgIHJldHVybiBjYW1sX3N0cmluZ19vZl9hcnJheShidWYpXG4gIH1cbiAgY2FtbF9yYWlzZV9ub19zdWNoX2ZpbGUoY2FtbF9qc2J5dGVzX29mX3N0cmluZyhuYW1lKSk7XG59XG4iLCIvL1Byb3ZpZGVzOiBjYW1sX3VuaXhfZ2V0dGltZW9mZGF5XG4vL0FsaWFzOiB1bml4X2dldHRpbWVvZmRheVxuZnVuY3Rpb24gY2FtbF91bml4X2dldHRpbWVvZmRheSAoKSB7XG4gIHJldHVybiAobmV3IERhdGUoKSkuZ2V0VGltZSgpIC8gMTAwMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF91bml4X3RpbWVcbi8vUmVxdWlyZXM6IGNhbWxfdW5peF9nZXR0aW1lb2ZkYXlcbi8vQWxpYXM6IHVuaXhfdGltZVxuZnVuY3Rpb24gY2FtbF91bml4X3RpbWUgKCkge1xuICByZXR1cm4gTWF0aC5mbG9vcihjYW1sX3VuaXhfZ2V0dGltZW9mZGF5ICgpKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF91bml4X2dtdGltZVxuLy9BbGlhczogdW5peF9nbXRpbWVcbmZ1bmN0aW9uIGNhbWxfdW5peF9nbXRpbWUgKHQpIHtcbiAgdmFyIGQgPSBuZXcgRGF0ZSAodCAqIDEwMDApO1xuICB2YXIgZF9udW0gPSBkLmdldFRpbWUoKTtcbiAgdmFyIGphbnVhcnlmaXJzdCA9IChuZXcgRGF0ZShEYXRlLlVUQyhkLmdldFVUQ0Z1bGxZZWFyKCksIDAsIDEpKSkuZ2V0VGltZSgpO1xuICB2YXIgZG95ID0gTWF0aC5mbG9vcigoZF9udW0gLSBqYW51YXJ5Zmlyc3QpIC8gODY0MDAwMDApO1xuICByZXR1cm4gQkxPQ0soMCwgZC5nZXRVVENTZWNvbmRzKCksIGQuZ2V0VVRDTWludXRlcygpLCBkLmdldFVUQ0hvdXJzKCksXG4gICAgICAgICAgICAgICBkLmdldFVUQ0RhdGUoKSwgZC5nZXRVVENNb250aCgpLCBkLmdldFVUQ0Z1bGxZZWFyKCkgLSAxOTAwLFxuICAgICAgICAgICAgICAgZC5nZXRVVENEYXkoKSwgZG95LFxuICAgICAgICAgICAgICAgZmFsc2UgfCAwIC8qIGZvciBVVEMgZGF5bGlnaHQgc2F2aW5ncyB0aW1lIGlzIGZhbHNlICovKVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3VuaXhfbG9jYWx0aW1lXG4vL0FsaWFzOiB1bml4X2xvY2FsdGltZVxuZnVuY3Rpb24gY2FtbF91bml4X2xvY2FsdGltZSAodCkge1xuICB2YXIgZCA9IG5ldyBEYXRlICh0ICogMTAwMCk7XG4gIHZhciBkX251bSA9IGQuZ2V0VGltZSgpO1xuICB2YXIgamFudWFyeWZpcnN0ID0gKG5ldyBEYXRlKGQuZ2V0RnVsbFllYXIoKSwgMCwgMSkpLmdldFRpbWUoKTtcbiAgdmFyIGRveSA9IE1hdGguZmxvb3IoKGRfbnVtIC0gamFudWFyeWZpcnN0KSAvIDg2NDAwMDAwKTtcbiAgdmFyIGphbiA9IG5ldyBEYXRlKGQuZ2V0RnVsbFllYXIoKSwgMCwgMSk7XG4gIHZhciBqdWwgPSBuZXcgRGF0ZShkLmdldEZ1bGxZZWFyKCksIDYsIDEpO1xuICB2YXIgc3RkVGltZXpvbmVPZmZzZXQgPSBNYXRoLm1heChqYW4uZ2V0VGltZXpvbmVPZmZzZXQoKSwganVsLmdldFRpbWV6b25lT2Zmc2V0KCkpO1xuICByZXR1cm4gQkxPQ0soMCwgZC5nZXRTZWNvbmRzKCksIGQuZ2V0TWludXRlcygpLCBkLmdldEhvdXJzKCksXG4gICAgICAgICAgICAgICBkLmdldERhdGUoKSwgZC5nZXRNb250aCgpLCBkLmdldEZ1bGxZZWFyKCkgLSAxOTAwLFxuICAgICAgICAgICAgICAgZC5nZXREYXkoKSwgZG95LFxuICAgICAgICAgICAgICAgKGQuZ2V0VGltZXpvbmVPZmZzZXQoKSA8IHN0ZFRpbWV6b25lT2Zmc2V0KSB8IDAgLyogZGF5bGlnaHQgc2F2aW5ncyB0aW1lICBmaWVsZC4gKi8pXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfdW5peF9ta3RpbWVcbi8vUmVxdWlyZXM6IGNhbWxfdW5peF9sb2NhbHRpbWVcbi8vQWxpYXM6IHVuaXhfbWt0aW1lXG5mdW5jdGlvbiBjYW1sX3VuaXhfbWt0aW1lKHRtKXtcbiAgdmFyIGQgPSAobmV3IERhdGUodG1bNl0rMTkwMCx0bVs1XSx0bVs0XSx0bVszXSx0bVsyXSx0bVsxXSkpLmdldFRpbWUoKTtcbiAgdmFyIHQgPSBNYXRoLmZsb29yKGQgLyAxMDAwKTtcbiAgdmFyIHRtMiA9IGNhbWxfdW5peF9sb2NhbHRpbWUodCk7XG4gIHJldHVybiBCTE9DSygwLHQsdG0yKTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfdW5peF9zdGFydHVwIGNvbnN0XG4vL0FsaWFzOiB3aW5fc3RhcnR1cFxuZnVuY3Rpb24gY2FtbF91bml4X3N0YXJ0dXAoKSB7fVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3VuaXhfY2xlYW51cCBjb25zdFxuLy9BbGlhczogd2luX2NsZWFudXBcbmZ1bmN0aW9uIGNhbWxfdW5peF9jbGVhbnVwKCkge31cblxuLy9Qcm92aWRlczogY2FtbF91bml4X2ZpbGVkZXNjcl9vZl9mZCBjb25zdFxuLy9BbGlhczogd2luX2hhbmRsZV9mZFxuZnVuY3Rpb24gY2FtbF91bml4X2ZpbGVkZXNjcl9vZl9mZCh4KSB7cmV0dXJuIHg7fVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3VuaXhfaXNhdHR5XG4vL1JlcXVpcmVzOiBmc19ub2RlX3N1cHBvcnRlZFxuLy9BbGlhczogdW5peF9pc2F0dHlcbmZ1bmN0aW9uIGNhbWxfdW5peF9pc2F0dHkoZmlsZURlc2NyaXB0b3IpIHtcbiAgaWYoZnNfbm9kZV9zdXBwb3J0ZWQoKSkge1xuICAgIHZhciB0dHkgPSByZXF1aXJlKCd0dHknKTtcbiAgICByZXR1cm4gdHR5LmlzYXR0eShmaWxlRGVzY3JpcHRvcik/MTowO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiAwO1xuICB9XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF91bml4X2lzYXR0eVxuLy9BbGlhczogdW5peF9pc2F0dHlcbi8vSWY6IGJyb3dzZXJcbmZ1bmN0aW9uIGNhbWxfdW5peF9pc2F0dHkoZmlsZURlc2NyaXB0b3IpIHtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IG1ha2VfdW5peF9lcnJfYXJnc1xuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmdcbnZhciB1bml4X2Vycm9yID0gW1xuICAvKiA9PT1Vbml4LmVycm9yPT09XG4gICAqXG4gICAqIFRoaXMgYXJyYXkgaXMgaW4gb3JkZXIgb2YgdGhlIHZhcmlhbnQgaW4gT0NhbWxcbiAgICovXG4gIFwiRTJCSUdcIiwgXCJFQUNDRVNcIiwgXCJFQUdBSU5cIiwgXCJFQkFERlwiLCBcIkVCVVNZXCIsIFwiRUNISUxEXCIsIFwiRURFQURMS1wiLCBcIkVET01cIixcbiAgXCJFRVhJU1RcIiwgXCJFRkFVTFRcIiwgXCJFRkJJR1wiLCBcIkVJTlRSXCIsIFwiRUlOVkFMXCIsIFwiRUlPXCIsIFwiRUlTRElSXCIsIFwiRU1GSUxFXCIsXG4gIFwiRU1MSU5LXCIsIFwiRU5BTUVUT09MT05HXCIsIFwiRU5GSUxFXCIsIFwiRU5PREVWXCIsIFwiRU5PRU5UXCIsIFwiRU5PRVhFQ1wiLCBcIkVOT0xDS1wiLFxuICBcIkVOT01FTVwiLCBcIkVOT1NQQ1wiLCBcIkVOT1NZU1wiLCBcIkVOT1RESVJcIiwgXCJFTk9URU1QVFlcIiwgXCJFTk9UVFlcIiwgXCJFTlhJT1wiLFxuICBcIkVQRVJNXCIsIFwiRVBJUEVcIiwgXCJFUkFOR0VcIiwgXCJFUk9GU1wiLCBcIkVTUElQRVwiLCBcIkVTUkNIXCIsIFwiRVhERVZcIiwgXCJFV09VTERCTE9DS1wiLFxuICBcIkVJTlBST0dSRVNTXCIsIFwiRUFMUkVBRFlcIiwgXCJFTk9UU09DS1wiLCBcIkVERVNUQUREUlJFUVwiLCBcIkVNU0dTSVpFXCIsXG4gIFwiRVBST1RPVFlQRVwiLCBcIkVOT1BST1RPT1BUXCIsIFwiRVBST1RPTk9TVVBQT1JUXCIsIFwiRVNPQ0tUTk9TVVBQT1JUXCIsXG4gIFwiRU9QTk9UU1VQUFwiLCBcIkVQRk5PU1VQUE9SVFwiLCBcIkVBRk5PU1VQUE9SVFwiLCBcIkVBRERSSU5VU0VcIiwgXCJFQUREUk5PVEFWQUlMXCIsXG4gIFwiRU5FVERPV05cIiwgXCJFTkVUVU5SRUFDSFwiLCBcIkVORVRSRVNFVFwiLCBcIkVDT05OQUJPUlRFRFwiLCBcIkVDT05OUkVTRVRcIiwgXCJFTk9CVUZTXCIsXG4gIFwiRUlTQ09OTlwiLCBcIkVOT1RDT05OXCIsIFwiRVNIVVRET1dOXCIsIFwiRVRPT01BTllSRUZTXCIsIFwiRVRJTUVET1VUXCIsIFwiRUNPTk5SRUZVU0VEXCIsXG4gIFwiRUhPU1RET1dOXCIsIFwiRUhPU1RVTlJFQUNIXCIsIFwiRUxPT1BcIiwgXCJFT1ZFUkZMT1dcIlxuXTtcbmZ1bmN0aW9uIG1ha2VfdW5peF9lcnJfYXJncyhjb2RlLCBzeXNjYWxsLCBwYXRoLCBlcnJubykge1xuICB2YXIgdmFyaWFudCA9IHVuaXhfZXJyb3IuaW5kZXhPZihjb2RlKTtcbiAgaWYgKHZhcmlhbnQgPCAwKSB7XG4gICAgLy8gRGVmYXVsdCBpZiB1bmRlZmluZWRcbiAgICBpZiAoZXJybm8gPT0gbnVsbCkge1xuICAgICAgZXJybm8gPSAtOTk5OVxuICAgIH1cbiAgICAvLyBJZiBub25lIG9mIHRoZSBhYm92ZSB2YXJpYW50cywgZmFsbGJhY2sgdG8gRVVOS05PV05FUlIoaW50KVxuICAgIHZhcmlhbnQgPSBCTE9DSygwLCBlcnJubyk7XG4gIH1cbiAgdmFyIGFyZ3MgPSBbXG4gICAgdmFyaWFudCxcbiAgICBjYW1sX3N0cmluZ19vZl9qc3N0cmluZyhzeXNjYWxsIHx8IFwiXCIpLFxuICAgIGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nKHBhdGggfHwgXCJcIilcbiAgXTtcbiAgcmV0dXJuIGFyZ3M7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfdW5peF9zdGF0XG4vL1JlcXVpcmVzOiByZXNvbHZlX2ZzX2RldmljZSwgY2FtbF9mYWlsd2l0aFxuLy9BbGlhczogdW5peF9zdGF0XG5mdW5jdGlvbiBjYW1sX3VuaXhfc3RhdChuYW1lKSB7XG4gIHZhciByb290ID0gcmVzb2x2ZV9mc19kZXZpY2UobmFtZSk7XG4gIGlmICghcm9vdC5kZXZpY2Uuc3RhdCkge1xuICAgIGNhbWxfZmFpbHdpdGgoXCJjYW1sX3VuaXhfc3RhdDogbm90IGltcGxlbWVudGVkXCIpO1xuICB9XG4gIHJldHVybiByb290LmRldmljZS5zdGF0KHJvb3QucmVzdCwgLyogcmFpc2UgVW5peF9lcnJvciAqLyB0cnVlKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF91bml4X3N0YXRfNjRcbi8vUmVxdWlyZXM6IGNhbWxfdW5peF9zdGF0LCBjYW1sX2ludDY0X29mX2ludDMyXG4vL0FsaWFzOiB1bml4X3N0YXRfNjRcbmZ1bmN0aW9uIGNhbWxfdW5peF9zdGF0XzY0KG5hbWUpIHtcbiAgdmFyIHIgPSBjYW1sX3VuaXhfc3RhdChuYW1lKTtcbiAgcls5XSA9IGNhbWxfaW50NjRfb2ZfaW50MzIocls5XSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfdW5peF9sc3RhdFxuLy9SZXF1aXJlczogcmVzb2x2ZV9mc19kZXZpY2UsIGNhbWxfZmFpbHdpdGhcbi8vQWxpYXM6IHVuaXhfbHN0YXRcbmZ1bmN0aW9uIGNhbWxfdW5peF9sc3RhdChuYW1lKSB7XG4gIHZhciByb290ID0gcmVzb2x2ZV9mc19kZXZpY2UobmFtZSk7XG4gIGlmICghcm9vdC5kZXZpY2UubHN0YXQpIHtcbiAgICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF91bml4X2xzdGF0OiBub3QgaW1wbGVtZW50ZWRcIik7XG4gIH1cbiAgcmV0dXJuIHJvb3QuZGV2aWNlLmxzdGF0KHJvb3QucmVzdCwgLyogcmFpc2UgVW5peF9lcnJvciAqLyB0cnVlKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF91bml4X2xzdGF0XzY0XG4vL1JlcXVpcmVzOiBjYW1sX3VuaXhfbHN0YXQsIGNhbWxfaW50NjRfb2ZfaW50MzJcbi8vQWxpYXM6IHVuaXhfbHN0YXRfNjRcbmZ1bmN0aW9uIGNhbWxfdW5peF9sc3RhdF82NChuYW1lKSB7XG4gIHZhciByID0gY2FtbF91bml4X2xzdGF0KG5hbWUpO1xuICByWzldID0gY2FtbF9pbnQ2NF9vZl9pbnQzMihyWzldKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF91bml4X21rZGlyXG4vL1JlcXVpcmVzOiByZXNvbHZlX2ZzX2RldmljZSwgY2FtbF9mYWlsd2l0aFxuLy9BbGlhczogdW5peF9ta2RpclxuZnVuY3Rpb24gY2FtbF91bml4X21rZGlyKG5hbWUsIHBlcm0pIHtcbiAgdmFyIHJvb3QgPSByZXNvbHZlX2ZzX2RldmljZShuYW1lKTtcbiAgaWYgKCFyb290LmRldmljZS5ta2Rpcikge1xuICAgIGNhbWxfZmFpbHdpdGgoXCJjYW1sX3VuaXhfbWtkaXI6IG5vdCBpbXBsZW1lbnRlZFwiKTtcbiAgfVxuICByZXR1cm4gcm9vdC5kZXZpY2UubWtkaXIocm9vdC5yZXN0LCBwZXJtLCAvKiByYWlzZSBVbml4X2Vycm9yICovIHRydWUpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3VuaXhfcm1kaXJcbi8vUmVxdWlyZXM6IHJlc29sdmVfZnNfZGV2aWNlLCBjYW1sX2ZhaWx3aXRoXG4vL0FsaWFzOiB1bml4X3JtZGlyXG5mdW5jdGlvbiBjYW1sX3VuaXhfcm1kaXIobmFtZSkge1xuICB2YXIgcm9vdCA9IHJlc29sdmVfZnNfZGV2aWNlKG5hbWUpO1xuICBpZiAoIXJvb3QuZGV2aWNlLnJtZGlyKSB7XG4gICAgY2FtbF9mYWlsd2l0aChcImNhbWxfdW5peF9ybWRpcjogbm90IGltcGxlbWVudGVkXCIpO1xuICB9XG4gIHJldHVybiByb290LmRldmljZS5ybWRpcihyb290LnJlc3QsIC8qIHJhaXNlIFVuaXhfZXJyb3IgKi8gdHJ1ZSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfdW5peF9zeW1saW5rXG4vL1JlcXVpcmVzOiByZXNvbHZlX2ZzX2RldmljZSwgY2FtbF9mYWlsd2l0aFxuLy9BbGlhczogdW5peF9zeW1saW5rXG5mdW5jdGlvbiBjYW1sX3VuaXhfc3ltbGluayh0b19kaXIsIHNyYywgZHN0KSB7XG4gIHZhciBzcmNfcm9vdCA9IHJlc29sdmVfZnNfZGV2aWNlKHNyYyk7XG4gIHZhciBkc3Rfcm9vdCA9IHJlc29sdmVfZnNfZGV2aWNlKGRzdCk7XG4gIGlmKHNyY19yb290LmRldmljZSAhPSBkc3Rfcm9vdC5kZXZpY2UpXG4gICAgY2FtbF9mYWlsd2l0aChcImNhbWxfdW5peF9zeW1saW5rOiBjYW5ub3Qgc3ltbGluayBiZXR3ZWVuIHR3byBmaWxlc3lzdGVtc1wiKTtcbiAgaWYgKCFzcmNfcm9vdC5kZXZpY2Uuc3ltbGluaykge1xuICAgIGNhbWxfZmFpbHdpdGgoXCJjYW1sX3VuaXhfc3ltbGluazogbm90IGltcGxlbWVudGVkXCIpO1xuICB9XG4gIHJldHVybiBzcmNfcm9vdC5kZXZpY2Uuc3ltbGluayh0b19kaXIsIHNyY19yb290LnJlc3QsIGRzdF9yb290LnJlc3QsIC8qIHJhaXNlIFVuaXhfZXJyb3IgKi8gdHJ1ZSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfdW5peF9yZWFkbGlua1xuLy9SZXF1aXJlczogcmVzb2x2ZV9mc19kZXZpY2UsIGNhbWxfZmFpbHdpdGhcbi8vQWxpYXM6IHVuaXhfcmVhZGxpbmtcbmZ1bmN0aW9uIGNhbWxfdW5peF9yZWFkbGluayhuYW1lKSB7XG4gIHZhciByb290ID0gcmVzb2x2ZV9mc19kZXZpY2UobmFtZSk7XG4gIGlmICghcm9vdC5kZXZpY2UucmVhZGxpbmspIHtcbiAgICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF91bml4X3JlYWRsaW5rOiBub3QgaW1wbGVtZW50ZWRcIik7XG4gIH1cbiAgcmV0dXJuIHJvb3QuZGV2aWNlLnJlYWRsaW5rKHJvb3QucmVzdCwgLyogcmFpc2UgVW5peF9lcnJvciAqLyB0cnVlKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF91bml4X3VubGlua1xuLy9SZXF1aXJlczogcmVzb2x2ZV9mc19kZXZpY2UsIGNhbWxfZmFpbHdpdGhcbi8vQWxpYXM6IHVuaXhfdW5saW5rXG5mdW5jdGlvbiBjYW1sX3VuaXhfdW5saW5rKG5hbWUpIHtcbiAgdmFyIHJvb3QgPSByZXNvbHZlX2ZzX2RldmljZShuYW1lKTtcbiAgaWYgKCFyb290LmRldmljZS51bmxpbmspIHtcbiAgICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF91bml4X3VubGluazogbm90IGltcGxlbWVudGVkXCIpO1xuICB9XG4gIHJldHVybiByb290LmRldmljZS51bmxpbmsocm9vdC5yZXN0LCAvKiByYWlzZSBVbml4X2Vycm9yICovIHRydWUpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3VuaXhfZ2V0dWlkXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX25vdF9mb3VuZFxuLy9BbGlhczogdW5peF9nZXR1aWRcbmZ1bmN0aW9uIGNhbWxfdW5peF9nZXR1aWQodW5pdCkge1xuICBpZihnbG9iYWxUaGlzLnByb2Nlc3MgJiYgZ2xvYmFsVGhpcy5wcm9jZXNzLmdldHVpZCl7XG4gICAgcmV0dXJuIGdsb2JhbFRoaXMucHJvY2Vzcy5nZXR1aWQoKTtcbiAgfVxuICBjYW1sX3JhaXNlX25vdF9mb3VuZCgpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3VuaXhfZ2V0cHd1aWRcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2Vfbm90X2ZvdW5kXG4vL0FsaWFzOiB1bml4X2dldHB3dWlkXG5mdW5jdGlvbiBjYW1sX3VuaXhfZ2V0cHd1aWQodW5pdCkge1xuICBjYW1sX3JhaXNlX25vdF9mb3VuZCgpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3VuaXhfaGFzX3N5bWxpbmtcbi8vUmVxdWlyZXM6IGZzX25vZGVfc3VwcG9ydGVkXG4vL0FsaWFzOiB1bml4X2hhc19zeW1saW5rXG5mdW5jdGlvbiBjYW1sX3VuaXhfaGFzX3N5bWxpbmsodW5pdCkge1xuICByZXR1cm4gZnNfbm9kZV9zdXBwb3J0ZWQoKT8xOjBcbn1cblxuLy9Qcm92aWRlczogY2FtbF91bml4X29wZW5kaXJcbi8vUmVxdWlyZXM6IHJlc29sdmVfZnNfZGV2aWNlLCBjYW1sX2ZhaWx3aXRoXG4vL0FsaWFzOiB1bml4X29wZW5kaXJcbmZ1bmN0aW9uIGNhbWxfdW5peF9vcGVuZGlyKHBhdGgpIHtcbiAgdmFyIHJvb3QgPSByZXNvbHZlX2ZzX2RldmljZShwYXRoKTtcbiAgaWYgKCFyb290LmRldmljZS5vcGVuZGlyKSB7XG4gICAgY2FtbF9mYWlsd2l0aChcImNhbWxfdW5peF9vcGVuZGlyOiBub3QgaW1wbGVtZW50ZWRcIik7XG4gIH1cbiAgdmFyIGRpcl9oYW5kbGUgPSByb290LmRldmljZS5vcGVuZGlyKHJvb3QucmVzdCwgLyogcmFpc2UgVW5peF9lcnJvciAqLyB0cnVlKTtcbiAgcmV0dXJuIHsgcG9pbnRlciA6IGRpcl9oYW5kbGUsIHBhdGg6IHBhdGggfVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3VuaXhfcmVhZGRpclxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9lbmRfb2ZfZmlsZVxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmdcbi8vUmVxdWlyZXM6IG1ha2VfdW5peF9lcnJfYXJncywgY2FtbF9yYWlzZV93aXRoX2FyZ3MsIGNhbWxfbmFtZWRfdmFsdWVcbi8vQWxpYXM6IHVuaXhfcmVhZGRpclxuZnVuY3Rpb24gY2FtbF91bml4X3JlYWRkaXIoZGlyX2hhbmRsZSkge1xuICB2YXIgZW50cnk7XG4gIHRyeSB7XG4gICAgICBlbnRyeSA9IGRpcl9oYW5kbGUucG9pbnRlci5yZWFkU3luYygpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgICB2YXIgdW5peF9lcnJvciA9IGNhbWxfbmFtZWRfdmFsdWUoJ1VuaXguVW5peF9lcnJvcicpO1xuICAgICAgY2FtbF9yYWlzZV93aXRoX2FyZ3ModW5peF9lcnJvciwgbWFrZV91bml4X2Vycl9hcmdzKFwiRUJBREZcIiwgXCJyZWFkZGlyXCIsIGRpcl9oYW5kbGUucGF0aCkpO1xuICB9XG4gIGlmIChlbnRyeSA9PT0gbnVsbCkge1xuICAgICAgY2FtbF9yYWlzZV9lbmRfb2ZfZmlsZSgpO1xuICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nKGVudHJ5Lm5hbWUpO1xuICB9XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfdW5peF9jbG9zZWRpclxuLy9SZXF1aXJlczogbWFrZV91bml4X2Vycl9hcmdzLCBjYW1sX3JhaXNlX3dpdGhfYXJncywgY2FtbF9uYW1lZF92YWx1ZVxuLy9BbGlhczogdW5peF9jbG9zZWRpclxuZnVuY3Rpb24gY2FtbF91bml4X2Nsb3NlZGlyKGRpcl9oYW5kbGUpIHtcbiAgdHJ5IHtcbiAgICAgIGRpcl9oYW5kbGUucG9pbnRlci5jbG9zZVN5bmMoKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgICAgdmFyIHVuaXhfZXJyb3IgPSBjYW1sX25hbWVkX3ZhbHVlKCdVbml4LlVuaXhfZXJyb3InKTtcbiAgICAgIGNhbWxfcmFpc2Vfd2l0aF9hcmdzKHVuaXhfZXJyb3IsIG1ha2VfdW5peF9lcnJfYXJncyhcIkVCQURGXCIsIFwiY2xvc2VkaXJcIiwgZGlyX2hhbmRsZS5wYXRoKSk7XG4gIH1cbn1cblxuLy9Qcm92aWRlczogY2FtbF91bml4X3Jld2luZGRpclxuLy9SZXF1aXJlczogY2FtbF91bml4X2Nsb3NlZGlyLCBjYW1sX3VuaXhfb3BlbmRpclxuLy9BbGlhczogdW5peF9yZXdpbmRkaXJcbmZ1bmN0aW9uIGNhbWxfdW5peF9yZXdpbmRkaXIoZGlyX2hhbmRsZSkge1xuICBjYW1sX3VuaXhfY2xvc2VkaXIoZGlyX2hhbmRsZSk7XG4gIHZhciBuZXdfZGlyX2hhbmRsZSA9IGNhbWxfdW5peF9vcGVuZGlyKGRpcl9oYW5kbGUucGF0aCk7XG4gIGRpcl9oYW5kbGUucG9pbnRlciA9IG5ld19kaXJfaGFuZGxlLnBvaW50ZXI7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3VuaXhfZmluZGZpcnN0XG4vL1JlcXVpcmVzOiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZywgY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfdW5peF9vcGVuZGlyLCBjYW1sX3VuaXhfcmVhZGRpclxuLy9BbGlhczogd2luX2ZpbmRmaXJzdFxuZnVuY3Rpb24gY2FtbF91bml4X2ZpbmRmaXJzdChwYXRoKSB7XG4gIC8vIFRoZSBXaW5kb3dzIGNvZGUgYWRkcyB0aGlzIGdsb2IgdG8gdGhlIHBhdGgsIHNvIHdlIG5lZWQgdG8gcmVtb3ZlIGl0XG4gIHZhciBwYXRoX2pzID0gY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcocGF0aCk7XG4gIHBhdGhfanMgPSBwYXRoX2pzLnJlcGxhY2UoLyhefFtcXFxcXFwvXSlcXCpcXC5cXCokLywgXCJcIik7XG4gIHBhdGggPSBjYW1sX3N0cmluZ19vZl9qc3N0cmluZyhwYXRoX2pzKTtcbiAgLy8gKi4qIGlzIG5vdyBzdHJpcHBlZFxuICB2YXIgZGlyX2hhbmRsZSA9IGNhbWxfdW5peF9vcGVuZGlyKHBhdGgpO1xuICB2YXIgZmlyc3RfZW50cnkgPSBjYW1sX3VuaXhfcmVhZGRpcihkaXJfaGFuZGxlKTtcbiAgLy8gVGhlIFdpbmRvd3MgYmluZGluZ3MgdHlwZSBkaXJfaGFuZGxlIGFzIGFuIGBpbnRgIGJ1dCBpdCdzIG5vdCBpbiBKU1xuICByZXR1cm4gWzAsIGZpcnN0X2VudHJ5LCBkaXJfaGFuZGxlXTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF91bml4X2ZpbmRuZXh0XG4vL1JlcXVpcmVzOiBjYW1sX3VuaXhfcmVhZGRpclxuLy9BbGlhczogd2luX2ZpbmRuZXh0XG5mdW5jdGlvbiBjYW1sX3VuaXhfZmluZG5leHQoZGlyX2hhbmRsZSkge1xuICByZXR1cm4gY2FtbF91bml4X3JlYWRkaXIoZGlyX2hhbmRsZSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfdW5peF9maW5kY2xvc2Vcbi8vUmVxdWlyZXM6IGNhbWxfdW5peF9jbG9zZWRpclxuLy9BbGlhczogd2luX2ZpbmRjbG9zZVxuZnVuY3Rpb24gY2FtbF91bml4X2ZpbmRjbG9zZShkaXJfaGFuZGxlKSB7XG4gIHJldHVybiBjYW1sX3VuaXhfY2xvc2VkaXIoZGlyX2hhbmRsZSk7XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF91bml4X2luZXRfYWRkcl9vZl9zdHJpbmdcbi8vQWxpYXM6IHVuaXhfaW5ldF9hZGRyX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF91bml4X2luZXRfYWRkcl9vZl9zdHJpbmcgKCkge3JldHVybiAwO31cblxuXG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vLyBDb3B5cmlnaHQgKEMpIDIwMTQgSsOpcsO0bWUgVm91aWxsb24sIEh1Z28gSGV1emFyZFxuLy8gTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vL1Byb3ZpZGVzOiBNbEZha2VEZXZpY2Vcbi8vUmVxdWlyZXM6IE1sRmFrZUZpbGUsIE1sRmFrZUZkLCBjYW1sX2NyZWF0ZV9ieXRlc1xuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9zeXNfZXJyb3IsIGNhbWxfcmFpc2Vfbm9fc3VjaF9maWxlXG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzLCBjYW1sX3N0cmluZ19vZl9qc3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9ieXRlc19vZl9hcnJheSwgY2FtbF9ieXRlc19vZl9zdHJpbmcsIGNhbWxfYnl0ZXNfb2ZfanNieXRlc1xuLy9SZXF1aXJlczogY2FtbF9pc19tbF9ieXRlcywgY2FtbF9pc19tbF9zdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfbmFtZWRfdmFsdWUsIGNhbWxfcmFpc2Vfd2l0aF9hcmdzLCBjYW1sX25hbWVkX3ZhbHVlc1xuLy9SZXF1aXJlczogbWFrZV91bml4X2Vycl9hcmdzXG5mdW5jdGlvbiBNbEZha2VEZXZpY2UgKHJvb3QsIGYpIHtcbiAgdGhpcy5jb250ZW50PXt9O1xuICB0aGlzLnJvb3QgPSByb290O1xuICB0aGlzLmxvb2t1cEZ1biA9IGY7XG59XG5NbEZha2VEZXZpY2UucHJvdG90eXBlLm5tID0gZnVuY3Rpb24obmFtZSkge1xuICByZXR1cm4gKHRoaXMucm9vdCArIG5hbWUpO1xufVxuTWxGYWtlRGV2aWNlLnByb3RvdHlwZS5jcmVhdGVfZGlyX2lmX25lZWRlZCA9IGZ1bmN0aW9uKG5hbWUpIHtcbiAgdmFyIGNvbXAgPSBuYW1lLnNwbGl0KFwiL1wiKTtcbiAgdmFyIHJlcyA9IFwiXCI7XG4gIGZvcih2YXIgaSA9IDA7IGkgPCBjb21wLmxlbmd0aCAtIDE7IGkrKyl7XG4gICAgcmVzICs9IGNvbXBbaV0gKyBcIi9cIjtcbiAgICBpZih0aGlzLmNvbnRlbnRbcmVzXSkgY29udGludWU7XG4gICAgdGhpcy5jb250ZW50W3Jlc10gPSBTeW1ib2woXCJkaXJlY3RvcnlcIik7XG4gIH1cbn1cbk1sRmFrZURldmljZS5wcm90b3R5cGUuc2xhc2ggPSBmdW5jdGlvbihuYW1lKXtcbiAgcmV0dXJuIC9cXC8kLy50ZXN0KG5hbWUpP25hbWU6KG5hbWUgKyBcIi9cIik7XG59XG5NbEZha2VEZXZpY2UucHJvdG90eXBlLmxvb2t1cCA9IGZ1bmN0aW9uKG5hbWUpIHtcbiAgaWYoIXRoaXMuY29udGVudFtuYW1lXSAmJiB0aGlzLmxvb2t1cEZ1bikge1xuICAgIHZhciByZXMgPSB0aGlzLmxvb2t1cEZ1bihjYW1sX3N0cmluZ19vZl9qc2J5dGVzKHRoaXMucm9vdCksIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMobmFtZSkpO1xuICAgIGlmKHJlcyAhPT0gMCkge1xuICAgICAgdGhpcy5jcmVhdGVfZGlyX2lmX25lZWRlZChuYW1lKTtcbiAgICAgIHRoaXMuY29udGVudFtuYW1lXT1uZXcgTWxGYWtlRmlsZShjYW1sX2J5dGVzX29mX3N0cmluZyhyZXNbMV0pKTtcbiAgICB9XG4gIH1cbn1cbk1sRmFrZURldmljZS5wcm90b3R5cGUuZXhpc3RzID0gZnVuY3Rpb24obmFtZSkge1xuICAvLyBUaGUgcm9vdCBvZiB0aGUgZGV2aWNlIGV4aXN0c1xuICBpZihuYW1lID09IFwiXCIpIHJldHVybiAxO1xuICAvLyBDaGVjayBpZiBhIGRpcmVjdG9yeSBleGlzdHNcbiAgdmFyIG5hbWVfc2xhc2ggPSB0aGlzLnNsYXNoKG5hbWUpO1xuICBpZih0aGlzLmNvbnRlbnRbbmFtZV9zbGFzaF0pIHJldHVybiAxO1xuICAvLyBDaGVjayBpZiBhIGZpbGUgZXhpc3RzXG4gIHRoaXMubG9va3VwKG5hbWUpO1xuICByZXR1cm4gdGhpcy5jb250ZW50W25hbWVdPzE6MDtcbn1cbk1sRmFrZURldmljZS5wcm90b3R5cGUuaXNGaWxlID0gZnVuY3Rpb24obmFtZSkge1xuICBpZih0aGlzLmV4aXN0cyhuYW1lKSAmJiAhdGhpcy5pc19kaXIobmFtZSkpIHtcbiAgICByZXR1cm4gMVxuICB9XG4gIGVsc2Uge1xuICAgIHJldHVybiAwXG4gIH1cbn1cbk1sRmFrZURldmljZS5wcm90b3R5cGUubWtkaXIgPSBmdW5jdGlvbihuYW1lLG1vZGUsIHJhaXNlX3VuaXgpIHtcbiAgdmFyIHVuaXhfZXJyb3IgPSByYWlzZV91bml4ICYmIGNhbWxfbmFtZWRfdmFsdWUoJ1VuaXguVW5peF9lcnJvcicpO1xuICBpZih0aGlzLmV4aXN0cyhuYW1lKSkge1xuICAgIGlmICh1bml4X2Vycm9yKSB7XG4gICAgICBjYW1sX3JhaXNlX3dpdGhfYXJncyh1bml4X2Vycm9yLCBtYWtlX3VuaXhfZXJyX2FyZ3MoXCJFRVhJU1RcIiwgXCJta2RpclwiLCB0aGlzLm5tKG5hbWUpKSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IobmFtZSArIFwiOiBGaWxlIGV4aXN0c1wiKTtcbiAgICB9XG4gIH1cbiAgdmFyIHBhcmVudCA9IC9eKC4qKVxcL1teL10rLy5leGVjKG5hbWUpO1xuICBwYXJlbnQgPSAocGFyZW50ICYmIHBhcmVudFsxXSkgfHwgJyc7XG4gIGlmKCF0aGlzLmV4aXN0cyhwYXJlbnQpKXtcbiAgICBpZiAodW5peF9lcnJvcikge1xuICAgICAgY2FtbF9yYWlzZV93aXRoX2FyZ3ModW5peF9lcnJvciwgbWFrZV91bml4X2Vycl9hcmdzKFwiRU5PRU5UXCIsIFwibWtkaXJcIiwgdGhpcy5ubShwYXJlbnQpKSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IocGFyZW50ICsgXCI6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnlcIik7XG4gICAgfVxuICB9XG4gIGlmKCF0aGlzLmlzX2RpcihwYXJlbnQpKXtcbiAgICBpZiAodW5peF9lcnJvcikge1xuICAgICAgY2FtbF9yYWlzZV93aXRoX2FyZ3ModW5peF9lcnJvciwgbWFrZV91bml4X2Vycl9hcmdzKFwiRU5PVERJUlwiLCBcIm1rZGlyXCIsIHRoaXMubm0ocGFyZW50KSkpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKHBhcmVudCArIFwiOiBOb3QgYSBkaXJlY3RvcnlcIik7XG4gICAgfVxuICB9XG4gIHRoaXMuY3JlYXRlX2Rpcl9pZl9uZWVkZWQodGhpcy5zbGFzaChuYW1lKSk7XG59XG5NbEZha2VEZXZpY2UucHJvdG90eXBlLnJtZGlyID0gZnVuY3Rpb24obmFtZSwgcmFpc2VfdW5peCkge1xuICB2YXIgdW5peF9lcnJvciA9IHJhaXNlX3VuaXggJiYgY2FtbF9uYW1lZF92YWx1ZSgnVW5peC5Vbml4X2Vycm9yJyk7XG4gIHZhciBuYW1lX3NsYXNoID0gKG5hbWUgPT0gXCJcIik/XCJcIjoodGhpcy5zbGFzaChuYW1lKSk7XG4gIHZhciByID0gbmV3IFJlZ0V4cChcIl5cIiArIG5hbWVfc2xhc2ggKyBcIihbXi9dKylcIik7XG4gIGlmKCF0aGlzLmV4aXN0cyhuYW1lKSkge1xuICAgIGlmICh1bml4X2Vycm9yKSB7XG4gICAgICBjYW1sX3JhaXNlX3dpdGhfYXJncyh1bml4X2Vycm9yLCBtYWtlX3VuaXhfZXJyX2FyZ3MoXCJFTk9FTlRcIiwgXCJybWRpclwiLCB0aGlzLm5tKG5hbWUpKSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IobmFtZSArIFwiOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5XCIpO1xuICAgIH1cbiAgfVxuICBpZighdGhpcy5pc19kaXIobmFtZSkpIHtcbiAgICBpZiAodW5peF9lcnJvcikge1xuICAgICAgY2FtbF9yYWlzZV93aXRoX2FyZ3ModW5peF9lcnJvciwgbWFrZV91bml4X2Vycl9hcmdzKFwiRU5PVERJUlwiLCBcInJtZGlyXCIsIHRoaXMubm0obmFtZSkpKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBjYW1sX3JhaXNlX3N5c19lcnJvcihuYW1lICsgXCI6IE5vdCBhIGRpcmVjdG9yeVwiKTtcbiAgICB9XG4gIH1cbiAgZm9yKHZhciBuIGluIHRoaXMuY29udGVudCkge1xuICAgIGlmKG4ubWF0Y2gocikpIHtcbiAgICAgIGlmICh1bml4X2Vycm9yKSB7XG4gICAgICAgIGNhbWxfcmFpc2Vfd2l0aF9hcmdzKHVuaXhfZXJyb3IsIG1ha2VfdW5peF9lcnJfYXJncyhcIkVOT1RFTVBUWVwiLCBcInJtZGlyXCIsIHRoaXMubm0obmFtZSkpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKHRoaXMubm0obmFtZSkgKyBcIjogRGlyZWN0b3J5IG5vdCBlbXB0eVwiKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgZGVsZXRlIHRoaXMuY29udGVudFtuYW1lX3NsYXNoXTtcbn1cbk1sRmFrZURldmljZS5wcm90b3R5cGUucmVhZGRpciA9IGZ1bmN0aW9uKG5hbWUpIHtcbiAgdmFyIG5hbWVfc2xhc2ggPSAobmFtZSA9PSBcIlwiKT9cIlwiOih0aGlzLnNsYXNoKG5hbWUpKTtcbiAgaWYoIXRoaXMuZXhpc3RzKG5hbWUpKSB7XG4gICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IobmFtZSArIFwiOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5XCIpO1xuICB9XG4gIGlmKCF0aGlzLmlzX2RpcihuYW1lKSkge1xuICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKG5hbWUgKyBcIjogTm90IGEgZGlyZWN0b3J5XCIpO1xuICB9XG4gIHZhciByID0gbmV3IFJlZ0V4cChcIl5cIiArIG5hbWVfc2xhc2ggKyBcIihbXi9dKylcIik7XG4gIHZhciBzZWVuID0ge31cbiAgdmFyIGEgPSBbXTtcbiAgZm9yKHZhciBuIGluIHRoaXMuY29udGVudCkge1xuICAgIHZhciBtID0gbi5tYXRjaChyKTtcbiAgICBpZihtICYmICFzZWVuW21bMV1dKSB7c2VlblttWzFdXSA9IHRydWU7IGEucHVzaChtWzFdKX1cbiAgfVxuICByZXR1cm4gYTtcbn1cbk1sRmFrZURldmljZS5wcm90b3R5cGUub3BlbmRpciA9IGZ1bmN0aW9uKG5hbWUsIHJhaXNlX3VuaXgpIHtcbiAgdmFyIHVuaXhfZXJyb3IgPSByYWlzZV91bml4ICYmIGNhbWxfbmFtZWRfdmFsdWUoJ1VuaXguVW5peF9lcnJvcicpO1xuXG4gIHZhciBhID0gdGhpcy5yZWFkZGlyKG5hbWUpO1xuICB2YXIgYyA9IGZhbHNlO1xuICB2YXIgaSA9IDA7XG4gIHJldHVybiB7IHJlYWRTeW5jIDogKGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoYykge1xuICAgICAgaWYgKHVuaXhfZXJyb3IpIHtcbiAgICAgICAgY2FtbF9yYWlzZV93aXRoX2FyZ3ModW5peF9lcnJvciwgbWFrZV91bml4X2Vycl9hcmdzKFwiRUJBREZcIiwgXCJjbG9zZWRpclwiLCB0aGlzLm5tKG5hbWUpKSk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IobmFtZSArIFwiOiBjbG9zZWRpciBmYWlsZWRcIik7XG4gICAgICB9XG4gICAgfVxuICAgIGlmKGkgPT0gYS5sZW5ndGgpIHJldHVybiBudWxsO1xuICAgIHZhciBlbnRyeSA9IGFbaV07XG4gICAgaSsrO1xuICAgIHJldHVybiB7IG5hbWU6IGVudHJ5IH1cbiAgfSlcbiAgICAsIGNsb3NlU3luYzogKGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmIChjKSB7XG4gICAgICAgIGlmICh1bml4X2Vycm9yKSB7XG4gICAgICAgICAgY2FtbF9yYWlzZV93aXRoX2FyZ3ModW5peF9lcnJvciwgbWFrZV91bml4X2Vycl9hcmdzKFwiRUJBREZcIiwgXCJjbG9zZWRpclwiLCB0aGlzLm5tKG5hbWUpKSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IobmFtZSArIFwiOiBjbG9zZWRpciBmYWlsZWRcIik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGMgPSB0cnVlO1xuICAgICAgYSA9IFtdO1xuICAgIH0pXG4gIH1cbn1cbk1sRmFrZURldmljZS5wcm90b3R5cGUuaXNfZGlyID0gZnVuY3Rpb24obmFtZSkge1xuICBpZihuYW1lID09IFwiXCIpICByZXR1cm4gdHJ1ZTtcbiAgdmFyIG5hbWVfc2xhc2ggPSB0aGlzLnNsYXNoKG5hbWUpO1xuICByZXR1cm4gdGhpcy5jb250ZW50W25hbWVfc2xhc2hdPzE6MDtcbn1cbk1sRmFrZURldmljZS5wcm90b3R5cGUudW5saW5rID0gZnVuY3Rpb24obmFtZSkge1xuICB2YXIgb2sgPSB0aGlzLmNvbnRlbnRbbmFtZV0/dHJ1ZTpmYWxzZTtcbiAgZGVsZXRlIHRoaXMuY29udGVudFtuYW1lXTtcbiAgcmV0dXJuIG9rO1xufVxuTWxGYWtlRGV2aWNlLnByb3RvdHlwZS5vcGVuID0gZnVuY3Rpb24obmFtZSwgZikge1xuICB2YXIgZmlsZTtcbiAgaWYoZi5yZG9ubHkgJiYgZi53cm9ubHkpXG4gICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IodGhpcy5ubShuYW1lKSArIFwiIDogZmxhZ3MgT3Blbl9yZG9ubHkgYW5kIE9wZW5fd3Jvbmx5IGFyZSBub3QgY29tcGF0aWJsZVwiKTtcbiAgaWYoZi50ZXh0ICYmIGYuYmluYXJ5KVxuICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKHRoaXMubm0obmFtZSkgKyBcIiA6IGZsYWdzIE9wZW5fdGV4dCBhbmQgT3Blbl9iaW5hcnkgYXJlIG5vdCBjb21wYXRpYmxlXCIpO1xuICB0aGlzLmxvb2t1cChuYW1lKTtcbiAgaWYgKHRoaXMuY29udGVudFtuYW1lXSkge1xuICAgIGlmICh0aGlzLmlzX2RpcihuYW1lKSkgY2FtbF9yYWlzZV9zeXNfZXJyb3IodGhpcy5ubShuYW1lKSArIFwiIDogaXMgYSBkaXJlY3RvcnlcIik7XG4gICAgaWYgKGYuY3JlYXRlICYmIGYuZXhjbCkgY2FtbF9yYWlzZV9zeXNfZXJyb3IodGhpcy5ubShuYW1lKSArIFwiIDogZmlsZSBhbHJlYWR5IGV4aXN0c1wiKTtcbiAgICBmaWxlID0gdGhpcy5jb250ZW50W25hbWVdO1xuICAgIGlmKGYudHJ1bmNhdGUpIGZpbGUudHJ1bmNhdGUoKTtcbiAgfSBlbHNlIGlmIChmLmNyZWF0ZSkge1xuICAgIHRoaXMuY3JlYXRlX2Rpcl9pZl9uZWVkZWQobmFtZSk7XG4gICAgdGhpcy5jb250ZW50W25hbWVdID0gbmV3IE1sRmFrZUZpbGUoY2FtbF9jcmVhdGVfYnl0ZXMoMCkpO1xuICAgIGZpbGUgPSB0aGlzLmNvbnRlbnRbbmFtZV07XG4gIH0gZWxzZSB7XG4gICAgY2FtbF9yYWlzZV9ub19zdWNoX2ZpbGUgKHRoaXMubm0obmFtZSkpO1xuICB9XG4gIHJldHVybiBuZXcgTWxGYWtlRmQodGhpcy5ubShuYW1lKSwgZmlsZSwgZik7XG59XG5cbk1sRmFrZURldmljZS5wcm90b3R5cGUub3BlbiA9IGZ1bmN0aW9uKG5hbWUsIGYpIHtcbiAgdmFyIGZpbGU7XG4gIGlmKGYucmRvbmx5ICYmIGYud3Jvbmx5KVxuICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKHRoaXMubm0obmFtZSkgKyBcIiA6IGZsYWdzIE9wZW5fcmRvbmx5IGFuZCBPcGVuX3dyb25seSBhcmUgbm90IGNvbXBhdGlibGVcIik7XG4gIGlmKGYudGV4dCAmJiBmLmJpbmFyeSlcbiAgICBjYW1sX3JhaXNlX3N5c19lcnJvcih0aGlzLm5tKG5hbWUpICsgXCIgOiBmbGFncyBPcGVuX3RleHQgYW5kIE9wZW5fYmluYXJ5IGFyZSBub3QgY29tcGF0aWJsZVwiKTtcbiAgdGhpcy5sb29rdXAobmFtZSk7XG4gIGlmICh0aGlzLmNvbnRlbnRbbmFtZV0pIHtcbiAgICBpZiAodGhpcy5pc19kaXIobmFtZSkpIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKHRoaXMubm0obmFtZSkgKyBcIiA6IGlzIGEgZGlyZWN0b3J5XCIpO1xuICAgIGlmIChmLmNyZWF0ZSAmJiBmLmV4Y2wpIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKHRoaXMubm0obmFtZSkgKyBcIiA6IGZpbGUgYWxyZWFkeSBleGlzdHNcIik7XG4gICAgZmlsZSA9IHRoaXMuY29udGVudFtuYW1lXTtcbiAgICBpZihmLnRydW5jYXRlKSBmaWxlLnRydW5jYXRlKCk7XG4gIH0gZWxzZSBpZiAoZi5jcmVhdGUpIHtcbiAgICB0aGlzLmNyZWF0ZV9kaXJfaWZfbmVlZGVkKG5hbWUpO1xuICAgIHRoaXMuY29udGVudFtuYW1lXSA9IG5ldyBNbEZha2VGaWxlKGNhbWxfY3JlYXRlX2J5dGVzKDApKTtcbiAgICBmaWxlID0gdGhpcy5jb250ZW50W25hbWVdO1xuICB9IGVsc2Uge1xuICAgIGNhbWxfcmFpc2Vfbm9fc3VjaF9maWxlICh0aGlzLm5tKG5hbWUpKTtcbiAgfVxuICByZXR1cm4gbmV3IE1sRmFrZUZkKHRoaXMubm0obmFtZSksIGZpbGUsIGYpO1xufVxuXG5NbEZha2VEZXZpY2UucHJvdG90eXBlLnJlZ2lzdGVyPSBmdW5jdGlvbiAobmFtZSxjb250ZW50KXtcbiAgdmFyIGZpbGU7XG4gIGlmKHRoaXMuY29udGVudFtuYW1lXSkgY2FtbF9yYWlzZV9zeXNfZXJyb3IodGhpcy5ubShuYW1lKSArIFwiIDogZmlsZSBhbHJlYWR5IGV4aXN0c1wiKTtcbiAgaWYoY2FtbF9pc19tbF9ieXRlcyhjb250ZW50KSlcbiAgICBmaWxlID0gbmV3IE1sRmFrZUZpbGUoY29udGVudCk7XG4gIGlmKGNhbWxfaXNfbWxfc3RyaW5nKGNvbnRlbnQpKVxuICAgIGZpbGUgPSBuZXcgTWxGYWtlRmlsZShjYW1sX2J5dGVzX29mX3N0cmluZyhjb250ZW50KSk7XG4gIGVsc2UgaWYoY29udGVudCBpbnN0YW5jZW9mIEFycmF5KVxuICAgIGZpbGUgPSBuZXcgTWxGYWtlRmlsZShjYW1sX2J5dGVzX29mX2FycmF5KGNvbnRlbnQpKTtcbiAgZWxzZSBpZih0eXBlb2YgY29udGVudCA9PT0gXCJzdHJpbmdcIilcbiAgICBmaWxlID0gbmV3IE1sRmFrZUZpbGUoY2FtbF9ieXRlc19vZl9qc2J5dGVzKGNvbnRlbnQpKTtcbiAgZWxzZSBpZihjb250ZW50LnRvU3RyaW5nKSB7XG4gICAgdmFyIGJ5dGVzID0gY2FtbF9ieXRlc19vZl9zdHJpbmcoY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmcoY29udGVudC50b1N0cmluZygpKSk7XG4gICAgZmlsZSA9IG5ldyBNbEZha2VGaWxlKGJ5dGVzKTtcbiAgfVxuICBpZihmaWxlKXtcbiAgICB0aGlzLmNyZWF0ZV9kaXJfaWZfbmVlZGVkKG5hbWUpO1xuICAgIHRoaXMuY29udGVudFtuYW1lXSA9IGZpbGU7XG4gIH1cbiAgZWxzZSBjYW1sX3JhaXNlX3N5c19lcnJvcih0aGlzLm5tKG5hbWUpICsgXCIgOiByZWdpc3RlcmluZyBmaWxlIHdpdGggaW52YWxpZCBjb250ZW50IHR5cGVcIik7XG59XG5cbk1sRmFrZURldmljZS5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBNbEZha2VEZXZpY2VcblxuLy9Qcm92aWRlczogTWxGYWtlRmlsZVxuLy9SZXF1aXJlczogTWxGaWxlXG4vL1JlcXVpcmVzOiBjYW1sX2NyZWF0ZV9ieXRlcywgY2FtbF9tbF9ieXRlc19sZW5ndGgsIGNhbWxfYmxpdF9ieXRlc1xuLy9SZXF1aXJlczogY2FtbF91aW50OF9hcnJheV9vZl9ieXRlcywgY2FtbF9ieXRlc19vZl9hcnJheVxuZnVuY3Rpb24gTWxGYWtlRmlsZShjb250ZW50KXtcbiAgdGhpcy5kYXRhID0gY29udGVudDtcbn1cbk1sRmFrZUZpbGUucHJvdG90eXBlID0gbmV3IE1sRmlsZSAoKTtcbk1sRmFrZUZpbGUucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gTWxGYWtlRmlsZVxuTWxGYWtlRmlsZS5wcm90b3R5cGUudHJ1bmNhdGUgPSBmdW5jdGlvbihsZW4pe1xuICB2YXIgb2xkID0gdGhpcy5kYXRhO1xuICB0aGlzLmRhdGEgPSBjYW1sX2NyZWF0ZV9ieXRlcyhsZW58MCk7XG4gIGNhbWxfYmxpdF9ieXRlcyhvbGQsIDAsIHRoaXMuZGF0YSwgMCwgbGVuKTtcbn1cbk1sRmFrZUZpbGUucHJvdG90eXBlLmxlbmd0aCA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIGNhbWxfbWxfYnl0ZXNfbGVuZ3RoKHRoaXMuZGF0YSk7XG59XG5NbEZha2VGaWxlLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKG9mZnNldCxidWYscG9zLGxlbil7XG4gIHZhciBjbGVuID0gdGhpcy5sZW5ndGgoKTtcbiAgaWYob2Zmc2V0ICsgbGVuID49IGNsZW4pIHtcbiAgICB2YXIgbmV3X3N0ciA9IGNhbWxfY3JlYXRlX2J5dGVzKG9mZnNldCArIGxlbik7XG4gICAgdmFyIG9sZF9kYXRhID0gdGhpcy5kYXRhO1xuICAgIHRoaXMuZGF0YSA9IG5ld19zdHI7XG4gICAgY2FtbF9ibGl0X2J5dGVzKG9sZF9kYXRhLCAwLCB0aGlzLmRhdGEsIDAsIGNsZW4pO1xuICB9XG4gIGNhbWxfYmxpdF9ieXRlcyhjYW1sX2J5dGVzX29mX2FycmF5KGJ1ZiksIHBvcywgdGhpcy5kYXRhLCBvZmZzZXQsIGxlbik7XG4gIHJldHVybiAwXG59XG5NbEZha2VGaWxlLnByb3RvdHlwZS5yZWFkID0gZnVuY3Rpb24ob2Zmc2V0LGJ1Zixwb3MsbGVuKXtcbiAgdmFyIGNsZW4gPSB0aGlzLmxlbmd0aCgpO1xuICBpZihvZmZzZXQgKyBsZW4gPj0gY2xlbikge1xuICAgIGxlbiA9IGNsZW4gLSBvZmZzZXQ7XG4gIH1cbiAgaWYobGVuKSB7XG4gICAgdmFyIGRhdGEgPSBjYW1sX2NyZWF0ZV9ieXRlcyhsZW58MCk7XG4gICAgY2FtbF9ibGl0X2J5dGVzKHRoaXMuZGF0YSwgb2Zmc2V0LCBkYXRhLCAwLCBsZW4pO1xuICAgIGJ1Zi5zZXQoY2FtbF91aW50OF9hcnJheV9vZl9ieXRlcyhkYXRhKSwgcG9zKTtcbiAgfVxuICByZXR1cm4gbGVuXG59XG5cblxuLy9Qcm92aWRlczogTWxGYWtlRmRfb3V0XG4vL1JlcXVpcmVzOiBNbEZha2VGaWxlLCBjYW1sX2NyZWF0ZV9ieXRlcywgY2FtbF9ibGl0X2J5dGVzLCBjYW1sX2J5dGVzX29mX2FycmF5XG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX3N5c19lcnJvclxuZnVuY3Rpb24gTWxGYWtlRmRfb3V0KGZkLGZsYWdzKSB7XG4gIE1sRmFrZUZpbGUuY2FsbCh0aGlzLCBjYW1sX2NyZWF0ZV9ieXRlcygwKSk7XG4gIHRoaXMubG9nID0gKGZ1bmN0aW9uIChzKSB7IHJldHVybiAwIH0pO1xuICBpZihmZCA9PSAxICYmIHR5cGVvZiBjb25zb2xlLmxvZyA9PSBcImZ1bmN0aW9uXCIpXG4gICAgdGhpcy5sb2cgPSBjb25zb2xlLmxvZztcbiAgZWxzZSBpZihmZCA9PSAyICYmIHR5cGVvZiBjb25zb2xlLmVycm9yID09IFwiZnVuY3Rpb25cIilcbiAgICB0aGlzLmxvZyA9IGNvbnNvbGUuZXJyb3I7XG4gIGVsc2UgaWYodHlwZW9mIGNvbnNvbGUubG9nID09IFwiZnVuY3Rpb25cIilcbiAgICB0aGlzLmxvZyA9IGNvbnNvbGUubG9nXG4gIHRoaXMuZmxhZ3MgPSBmbGFncztcbn1cbk1sRmFrZUZkX291dC5wcm90b3R5cGUubGVuZ3RoID0gZnVuY3Rpb24oKSB7IHJldHVybiAwIH1cbk1sRmFrZUZkX291dC5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbiAob2Zmc2V0LGJ1Zixwb3MsbGVuKSB7XG4gIGlmKHRoaXMubG9nKSB7XG4gICAgaWYobGVuID4gMFxuICAgICAgICYmIHBvcyA+PSAwXG4gICAgICAgJiYgcG9zK2xlbiA8PSBidWYubGVuZ3RoXG4gICAgICAgJiYgYnVmW3BvcytsZW4tMV0gPT0gMTApXG4gICAgICBsZW4gLS07XG4gICAgLy8gRG8gbm90IG91dHB1dCB0aGUgbGFzdCBcXG4gaWYgcHJlc2VudFxuICAgIC8vIGFzIGNvbnNvbGUgbG9nZ2luZyBkaXNwbGF5IGEgbmV3bGluZSBhdCB0aGUgZW5kXG4gICAgdmFyIHNyYyA9IGNhbWxfY3JlYXRlX2J5dGVzKGxlbik7XG4gICAgY2FtbF9ibGl0X2J5dGVzKGNhbWxfYnl0ZXNfb2ZfYXJyYXkoYnVmKSwgcG9zLCBzcmMsIDAsIGxlbik7XG4gICAgdGhpcy5sb2coc3JjLnRvVXRmMTYoKSk7XG4gICAgcmV0dXJuIDA7XG4gIH1cbiAgY2FtbF9yYWlzZV9zeXNfZXJyb3IodGhpcy5mZCAgKyBcIjogZmlsZSBkZXNjcmlwdG9yIGFscmVhZHkgY2xvc2VkXCIpO1xufVxuTWxGYWtlRmRfb3V0LnByb3RvdHlwZS5yZWFkID0gZnVuY3Rpb24gKG9mZnNldCwgYnVmLCBwb3MsIGxlbikge1xuICBjYW1sX3JhaXNlX3N5c19lcnJvcih0aGlzLmZkICArIFwiOiBmaWxlIGRlc2NyaXB0b3IgaXMgd3JpdGUgb25seVwiKTtcbn1cbk1sRmFrZUZkX291dC5wcm90b3R5cGUuY2xvc2UgPSBmdW5jdGlvbiAoKSB7XG4gIHRoaXMubG9nID0gdW5kZWZpbmVkO1xufVxuXG5cbi8vUHJvdmlkZXM6IE1sRmFrZUZkXG4vL1JlcXVpcmVzOiBNbEZha2VGaWxlXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX3N5c19lcnJvclxuZnVuY3Rpb24gTWxGYWtlRmQobmFtZSwgZmlsZSxmbGFncykge1xuICB0aGlzLmZpbGUgPSBmaWxlO1xuICB0aGlzLm5hbWUgPSBuYW1lO1xuICB0aGlzLmZsYWdzID0gZmxhZ3M7XG59XG5cbk1sRmFrZUZkLnByb3RvdHlwZS5lcnJfY2xvc2VkID0gZnVuY3Rpb24gKCkge1xuICBjYW1sX3JhaXNlX3N5c19lcnJvcih0aGlzLm5hbWUgICsgXCI6IGZpbGUgZGVzY3JpcHRvciBhbHJlYWR5IGNsb3NlZFwiKTtcbn1cbk1sRmFrZUZkLnByb3RvdHlwZS5sZW5ndGggPSBmdW5jdGlvbigpIHtcbiAgaWYodGhpcy5maWxlKSByZXR1cm4gdGhpcy5maWxlLmxlbmd0aCAoKVxuICB0aGlzLmVycl9jbG9zZWQoKTtcbn1cbk1sRmFrZUZkLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uIChvZmZzZXQsYnVmLHBvcyxsZW4pIHtcbiAgaWYodGhpcy5maWxlKSByZXR1cm4gdGhpcy5maWxlLndyaXRlKG9mZnNldCxidWYscG9zLGxlbilcbiAgdGhpcy5lcnJfY2xvc2VkKCk7XG59XG5NbEZha2VGZC5wcm90b3R5cGUucmVhZCA9IGZ1bmN0aW9uIChvZmZzZXQsIGJ1ZiwgcG9zLCBsZW4pIHtcbiAgaWYodGhpcy5maWxlKSByZXR1cm4gdGhpcy5maWxlLnJlYWQob2Zmc2V0LCBidWYsIHBvcywgbGVuKVxuICB0aGlzLmVycl9jbG9zZWQoKTtcbn1cbk1sRmFrZUZkLnByb3RvdHlwZS5jbG9zZSA9IGZ1bmN0aW9uICgpIHtcbiAgdGhpcy5maWxlID0gdW5kZWZpbmVkO1xufVxuIiwiLy9Qcm92aWRlczogaW5pdGlhbGl6ZV9uYXRcbi8vUmVxdWlyZXM6IGNhbWxfY3VzdG9tX29wc1xuLy9SZXF1aXJlczogc2VyaWFsaXplX25hdCwgZGVzZXJpYWxpemVfbmF0LCBjYW1sX2hhc2hfbmF0XG5mdW5jdGlvbiBpbml0aWFsaXplX25hdCgpIHtcbiAgY2FtbF9jdXN0b21fb3BzW1wiX25hdFwiXSA9XG4gICAgeyBkZXNlcmlhbGl6ZSA6IGRlc2VyaWFsaXplX25hdCxcbiAgICAgIHNlcmlhbGl6ZSA6IHNlcmlhbGl6ZV9uYXQsXG4gICAgICBoYXNoIDogY2FtbF9oYXNoX25hdFxuICAgIH1cbn1cblxuLy9Qcm92aWRlczogTWxOYXRcbmZ1bmN0aW9uIE1sTmF0KHgpe1xuICB0aGlzLmRhdGEgPSBuZXcgSW50MzJBcnJheSh4KTtcbiAgLy8gbGVuZ3RoX25hdCBpc24ndCBleHRlcm5hbCwgc28gd2UgaGF2ZSB0byBtYWtlIHRoZSBPYmouc2l6ZVxuICAvLyB3b3JrIG91dCByaWdodC4gVGhlICsyIHRvIGFycmF5IGxlbmd0aCBzZWVtcyB0byB3b3JrLlxuICB0aGlzLmxlbmd0aCA9IHRoaXMuZGF0YS5sZW5ndGggKyAyXG59XG5cbk1sTmF0LnByb3RvdHlwZS5jYW1sX2N1c3RvbSA9IFwiX25hdFwiO1xuXG4vL1Byb3ZpZGVzOiBjYW1sX2hhc2hfbmF0XG4vL1JlcXVpcmVzOiBjYW1sX2hhc2hfbWl4X2ludCwgbnVtX2RpZ2l0c19uYXRcbmZ1bmN0aW9uIGNhbWxfaGFzaF9uYXQoeCkge1xuICB2YXIgbGVuID0gbnVtX2RpZ2l0c19uYXQoeCwgMCwgeC5kYXRhLmxlbmd0aCk7XG4gIHZhciBoID0gMDtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIGggPSBjYW1sX2hhc2hfbWl4X2ludChoLCB4LmRhdGFbaV0pO1xuICB9XG4gIHJldHVybiBoO1xufVxuXG5cbi8vUHJvdmlkZXM6IG5hdF9vZl9hcnJheVxuLy9SZXF1aXJlczogTWxOYXRcbmZ1bmN0aW9uIG5hdF9vZl9hcnJheShsKXtcbiAgcmV0dXJuIG5ldyBNbE5hdChsKTtcbn1cblxuLy9Qcm92aWRlczogY3JlYXRlX25hdFxuLy9SZXF1aXJlczogTWxOYXRcbmZ1bmN0aW9uIGNyZWF0ZV9uYXQoc2l6ZSkge1xuICB2YXIgYXJyID0gbmV3IE1sTmF0KHNpemUpO1xuICBmb3IodmFyIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7XG4gICAgYXJyLmRhdGFbaV0gPSAtMTtcbiAgfVxuICByZXR1cm4gYXJyO1xufVxuXG4vL1Byb3ZpZGVzOiBzZXRfdG9femVyb19uYXRcbmZ1bmN0aW9uIHNldF90b196ZXJvX25hdChuYXQsIG9mcywgbGVuKSB7XG4gIGZvcih2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIG5hdC5kYXRhW29mcytpXSA9IDA7XG4gIH1cbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGJsaXRfbmF0XG5mdW5jdGlvbiBibGl0X25hdChuYXQxLCBvZnMxLCBuYXQyLCBvZnMyLCBsZW4pIHtcbiAgZm9yKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgbmF0MS5kYXRhW29mczEraV0gPSBuYXQyLmRhdGFbb2ZzMitpXTtcbiAgfVxuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogc2V0X2RpZ2l0X25hdFxuZnVuY3Rpb24gc2V0X2RpZ2l0X25hdChuYXQsIG9mcywgZGlnaXQpIHtcbiAgbmF0LmRhdGFbb2ZzXSA9IGRpZ2l0O1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogbnRoX2RpZ2l0X25hdFxuZnVuY3Rpb24gbnRoX2RpZ2l0X25hdChuYXQsIG9mcykge1xuICByZXR1cm4gbmF0LmRhdGFbb2ZzXTtcbn1cblxuLy9Qcm92aWRlczogc2V0X2RpZ2l0X25hdF9uYXRpdmVcbmZ1bmN0aW9uIHNldF9kaWdpdF9uYXRfbmF0aXZlKG5hdCwgb2ZzLCBkaWdpdCkge1xuICBuYXQuZGF0YVtvZnNdID0gZGlnaXQ7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBudGhfZGlnaXRfbmF0X25hdGl2ZVxuZnVuY3Rpb24gbnRoX2RpZ2l0X25hdF9uYXRpdmUobmF0LCBvZnMpIHtcbiAgcmV0dXJuIG5hdC5kYXRhW29mc107XG59XG5cbi8vUHJvdmlkZXM6IG51bV9kaWdpdHNfbmF0XG5mdW5jdGlvbiBudW1fZGlnaXRzX25hdChuYXQsIG9mcywgbGVuKSB7XG4gIGZvcih2YXIgaSA9IGxlbiAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgaWYobmF0LmRhdGFbb2ZzK2ldICE9IDApIHJldHVybiBpKzE7XG4gIH1cbiAgcmV0dXJuIDE7IC8vIDAgY291bnRzIGFzIDEgZGlnaXRcbn1cblxuLy9Qcm92aWRlczogbnVtX2xlYWRpbmdfemVyb19iaXRzX2luX2RpZ2l0XG5mdW5jdGlvbiBudW1fbGVhZGluZ196ZXJvX2JpdHNfaW5fZGlnaXQobmF0LCBvZnMpIHtcbiAgdmFyIGEgPSBuYXQuZGF0YVtvZnNdO1xuICB2YXIgYiA9IDA7XG4gIGlmKGEgJiAweEZGRkYwMDAwKSB7IGIgKz0xNjsgYSA+Pj49MTY7IH1cbiAgaWYoYSAmIDB4RkYwMCkgICAgIHsgYiArPSA4OyBhID4+Pj0gODsgfVxuICBpZihhICYgMHhGMCkgICAgICAgeyBiICs9IDQ7IGEgPj4+PSA0OyB9XG4gIGlmKGEgJiAxMikgICAgICAgICB7IGIgKz0gMjsgYSA+Pj49IDI7IH1cbiAgaWYoYSAmIDIpICAgICAgICAgIHsgYiArPSAxOyBhID4+Pj0gMTsgfVxuICBpZihhICYgMSkgICAgICAgICAgeyBiICs9IDE7IH1cbiAgcmV0dXJuIDMyIC0gYjtcbn1cblxuLy9Qcm92aWRlczogaXNfZGlnaXRfaW50XG5mdW5jdGlvbiBpc19kaWdpdF9pbnQobmF0LCBvZnMpIHtcbiAgaWYgKG5hdC5kYXRhW29mc10gPj0gMCkgcmV0dXJuIDFcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGlzX2RpZ2l0X3plcm9cbmZ1bmN0aW9uIGlzX2RpZ2l0X3plcm8obmF0LCBvZnMpIHtcbiAgaWYobmF0LmRhdGFbb2ZzXSA9PSAwKSByZXR1cm4gMTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGlzX2RpZ2l0X29kZFxuZnVuY3Rpb24gaXNfZGlnaXRfb2RkKG5hdCwgb2ZzKSB7XG4gIGlmKG5hdC5kYXRhW29mc10gJiAxKSByZXR1cm4gMTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGluY3JfbmF0XG5mdW5jdGlvbiBpbmNyX25hdChuYXQsIG9mcywgbGVuLCBjYXJyeV9pbikge1xuICB2YXIgY2FycnkgPSBjYXJyeV9pbjtcbiAgZm9yKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgdmFyIHggPSAobmF0LmRhdGFbb2ZzK2ldID4+PiAwKSArIGNhcnJ5O1xuICAgIG5hdC5kYXRhW29mcytpXSA9ICh4IHwgMCk7XG4gICAgaWYoeCA9PSAoeCA+Pj4gMCkpIHtcbiAgICAgIGNhcnJ5ID0gMDtcbiAgICAgIGJyZWFrO1xuICAgIH0gZWxzZSB7XG4gICAgICBjYXJyeSA9IDE7XG4gICAgfVxuICB9XG4gIHJldHVybiBjYXJyeTtcbn1cblxuLy8gbGVuMSA+PSBsZW4yXG4vL1Byb3ZpZGVzOiBhZGRfbmF0XG4vL1JlcXVpcmVzOiBpbmNyX25hdFxuZnVuY3Rpb24gYWRkX25hdChuYXQxLCBvZnMxLCBsZW4xLCBuYXQyLCBvZnMyLCBsZW4yLCBjYXJyeV9pbikge1xuICB2YXIgY2FycnkgPSBjYXJyeV9pbjtcbiAgZm9yKHZhciBpID0gMDsgaSA8IGxlbjI7IGkrKykge1xuICAgIHZhciB4ID0gKG5hdDEuZGF0YVtvZnMxK2ldID4+PiAwKSArIChuYXQyLmRhdGFbb2ZzMitpXSA+Pj4gMCkgKyBjYXJyeTtcbiAgICBuYXQxLmRhdGFbb2ZzMStpXSA9IHhcbiAgICBpZih4ID09ICh4ID4+PiAwKSkge1xuICAgICAgY2FycnkgPSAwO1xuICAgIH0gZWxzZSB7XG4gICAgICBjYXJyeSA9IDE7XG4gICAgfVxuICB9XG4gIHJldHVybiBpbmNyX25hdChuYXQxLCBvZnMxK2xlbjIsIGxlbjEtbGVuMiwgY2FycnkpO1xufVxuXG4vL1Byb3ZpZGVzOiBjb21wbGVtZW50X25hdFxuZnVuY3Rpb24gY29tcGxlbWVudF9uYXQobmF0LCBvZnMsIGxlbikge1xuICBmb3IodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICBuYXQuZGF0YVtvZnMraV0gPSAoLTEgPj4+IDApIC0gKG5hdC5kYXRhW29mcytpXSA+Pj4gMCk7XG4gIH1cbn1cblxuLy8gb2NhbWwgZmxpcHMgY2FycnlfaW5cbi8vUHJvdmlkZXM6IGRlY3JfbmF0XG5mdW5jdGlvbiBkZWNyX25hdChuYXQsIG9mcywgbGVuLCBjYXJyeV9pbikge1xuICB2YXIgYm9ycm93ID0gKGNhcnJ5X2luID09IDEpID8gMCA6IDE7XG4gIGZvcih2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIHZhciB4ID0gKG5hdC5kYXRhW29mcytpXSA+Pj4wKSAtIGJvcnJvdztcbiAgICBuYXQuZGF0YVtvZnMraV0gPSB4O1xuICAgIGlmICh4ID49IDApIHtcbiAgICAgIGJvcnJvdyA9IDA7XG4gICAgICBicmVhaztcbiAgICB9IGVsc2Uge1xuICAgICAgYm9ycm93ID0gMTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIChib3Jyb3cgPT0gMSkgPyAwIDogMTtcbn1cblxuLy8gb2NhbWwgZmxpcHMgY2FycnlfaW5cbi8vIGxlbjEgPj0gbGVuMlxuLy9Qcm92aWRlczogc3ViX25hdFxuLy9SZXF1aXJlczogZGVjcl9uYXRcbmZ1bmN0aW9uIHN1Yl9uYXQobmF0MSwgb2ZzMSwgbGVuMSwgbmF0Miwgb2ZzMiwgbGVuMiwgY2FycnlfaW4pIHtcbiAgdmFyIGJvcnJvdyA9IChjYXJyeV9pbiA9PSAxKSA/IDAgOiAxO1xuICBmb3IodmFyIGkgPSAwOyBpIDwgbGVuMjsgaSsrKSB7XG4gICAgdmFyIHggPSAobmF0MS5kYXRhW29mczEraV0gPj4+IDApIC0gKG5hdDIuZGF0YVtvZnMyK2ldID4+PiAwKSAtIGJvcnJvdztcbiAgICBuYXQxLmRhdGFbb2ZzMStpXSA9IHg7XG4gICAgaWYgKHggPj0gMCkge1xuICAgICAgYm9ycm93ID0gMDtcbiAgICB9IGVsc2Uge1xuICAgICAgYm9ycm93ID0gMTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGRlY3JfbmF0KG5hdDEsIG9mczErbGVuMiwgbGVuMS1sZW4yLCAoYm9ycm93PT0xKT8wOjEpO1xufVxuXG4vLyBuYXQxICs9IG5hdDIgKiBuYXQzW29mczNdXG4vLyBsZW4xID49IGxlbjJcbi8vUHJvdmlkZXM6IG11bHRfZGlnaXRfbmF0XG4vL1JlcXVpcmVzOiBhZGRfbmF0LCBuYXRfb2ZfYXJyYXlcbmZ1bmN0aW9uIG11bHRfZGlnaXRfbmF0KG5hdDEsIG9mczEsIGxlbjEsIG5hdDIsIG9mczIsIGxlbjIsIG5hdDMsIG9mczMpIHtcbiAgdmFyIGNhcnJ5ID0gMDtcbiAgdmFyIGEgPSAobmF0My5kYXRhW29mczNdID4+PiAwKTtcbiAgZm9yKHZhciBpID0gMDsgaSA8IGxlbjI7IGkrKykge1xuICAgIHZhciB4MSA9IChuYXQxLmRhdGFbb2ZzMStpXSA+Pj4gMCkgKyAobmF0Mi5kYXRhW29mczIraV0gPj4+IDApICogKGEgJiAweDAwMDBGRkZGKSArIGNhcnJ5O1xuICAgIHZhciB4MiA9IChuYXQyLmRhdGFbb2ZzMitpXSA+Pj4gMCkgKiAoYSA+Pj4gMTYpO1xuICAgIGNhcnJ5ID0gTWF0aC5mbG9vcih4Mi82NTUzNik7XG4gICAgdmFyIHgzID0geDEgKyAoeDIgJSA2NTUzNikgKiA2NTUzNjtcbiAgICBuYXQxLmRhdGFbb2ZzMStpXSA9IHgzO1xuICAgIGNhcnJ5ICs9IE1hdGguZmxvb3IoeDMvNDI5NDk2NzI5Nik7XG4gIH1cblxuICBpZihsZW4yIDwgbGVuMSAmJiBjYXJyeSkge1xuICAgIHJldHVybiBhZGRfbmF0KG5hdDEsIG9mczErbGVuMiwgbGVuMS1sZW4yLCBuYXRfb2ZfYXJyYXkoW2NhcnJ5XSksIDAsIDEsIDApO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBjYXJyeTtcbiAgfVxufVxuXG4vLyBuYXQxICs9IG5hdDIgKiBuYXQzXG4vLyBsZW4xID49IGxlbjIgKyBsZW4zLlxuLy9Qcm92aWRlczogbXVsdF9uYXRcbi8vUmVxdWlyZXM6IG11bHRfZGlnaXRfbmF0XG5mdW5jdGlvbiBtdWx0X25hdChuYXQxLCBvZnMxLCBsZW4xLCBuYXQyLCBvZnMyLCBsZW4yLCBuYXQzLCBvZnMzLCBsZW4zKSB7XG4gIHZhciBjYXJyeSA9IDA7XG4gIGZvcih2YXIgaSA9IDA7IGkgPCBsZW4zOyBpKyspIHtcbiAgICBjYXJyeSArPSBtdWx0X2RpZ2l0X25hdChuYXQxLCBvZnMxK2ksIGxlbjEtaSwgbmF0Miwgb2ZzMiwgbGVuMiwgbmF0Mywgb2ZzMytpKTtcbiAgfVxuICByZXR1cm4gY2Fycnk7XG59XG5cbi8vIG5hdDEgPSAyICogbmF0MSArIG5hdDIgKiBuYXQyXG4vLyBsZW4xID49IDIgKiBsZW4yXG4vL1Byb3ZpZGVzOiBzcXVhcmVfbmF0XG4vL1JlcXVpcmVzOiBtdWx0X25hdCwgYWRkX25hdFxuZnVuY3Rpb24gc3F1YXJlX25hdChuYXQxLCBvZnMxLCBsZW4xLCBuYXQyLCBvZnMyLCBsZW4yKSB7XG4gIHZhciBjYXJyeSA9IDA7XG4gIGNhcnJ5ICs9IGFkZF9uYXQobmF0MSwgb2ZzMSwgbGVuMSwgbmF0MSwgb2ZzMSwgbGVuMSwgMCk7XG4gIGNhcnJ5ICs9IG11bHRfbmF0KG5hdDEsIG9mczEsIGxlbjEsIG5hdDIsIG9mczIsIGxlbjIsIG5hdDIsIG9mczIsIGxlbjIpO1xuICByZXR1cm4gY2Fycnk7XG59XG5cblxuLy8gMCA8PSBzaGlmdCA8IDMyXG4vL1Byb3ZpZGVzOiBzaGlmdF9sZWZ0X25hdFxuZnVuY3Rpb24gc2hpZnRfbGVmdF9uYXQobmF0MSwgb2ZzMSwgbGVuMSwgbmF0Miwgb2ZzMiwgbmJpdHMpIHtcbiAgaWYobmJpdHMgPT0gMCkge1xuICAgIG5hdDIuZGF0YVtvZnMyXSA9IDA7XG4gICAgcmV0dXJuIDA7XG4gIH1cbiAgdmFyIHdyYXAgPSAwO1xuICBmb3IodmFyIGkgPSAwOyBpIDwgbGVuMTsgaSsrKSB7XG4gICAgdmFyIGEgPSAobmF0MS5kYXRhW29mczEraV0gPj4+IDApO1xuICAgIG5hdDEuZGF0YVtvZnMxK2ldID0gKGEgPDwgbmJpdHMpIHwgd3JhcDtcbiAgICB3cmFwID0gYSA+Pj4gKDMyIC0gbmJpdHMpO1xuICB9XG4gIG5hdDIuZGF0YVtvZnMyXSA9IHdyYXA7XG4gIHJldHVybiAwO1xufVxuXG4vLyBBc3N1bWluZyBjID4gYSwgcmV0dXJucyBbcXVvdGllbnQsIHJlbWFpbmRlcl0gb2YgKGE8PDMyICsgYikvY1xuLy9Qcm92aWRlczogZGl2X2hlbHBlclxuZnVuY3Rpb24gZGl2X2hlbHBlcihhLCBiLCBjKSB7XG4gIHZhciB4ID0gYSAqIDY1NTM2ICsgKGI+Pj4xNik7XG4gIHZhciB5ID0gTWF0aC5mbG9vcih4L2MpICogNjU1MzY7XG4gIHZhciB6ID0gKHggJSBjKSAqIDY1NTM2O1xuICB2YXIgdyA9IHogKyAoYiAmIDB4MDAwMEZGRkYpO1xuICByZXR1cm4gW3kgKyBNYXRoLmZsb29yKHcvYyksIHcgJSBjXTtcbn1cblxuLy8gbmF0MVtvZnMxK2xlbl0gPCBuYXQyW29mczJdXG4vL1Byb3ZpZGVzOiBkaXZfZGlnaXRfbmF0XG4vL1JlcXVpcmVzOiBkaXZfaGVscGVyXG5mdW5jdGlvbiBkaXZfZGlnaXRfbmF0KG5hdHEsIG9mc3EsIG5hdHIsIG9mc3IsIG5hdDEsIG9mczEsIGxlbiwgbmF0Miwgb2ZzMikge1xuICB2YXIgcmVtID0gKG5hdDEuZGF0YVtvZnMxK2xlbi0xXSA+Pj4wKTtcbiAgLy8gbmF0cVtvZnNxK2xlbi0xXSBpcyBndWFyYW50ZWVkIHRvIGJlIHplcm8gKGR1ZSB0byB0aGUgTVNEIHJlcXVpcmVtZW50KSxcbiAgLy8gYW5kIHNob3VsZCBub3QgYmUgd3JpdHRlbiB0by5cbiAgZm9yKHZhciBpID0gbGVuLTI7IGkgPj0gMDsgaS0tKSB7XG4gICAgdmFyIHggPSBkaXZfaGVscGVyKHJlbSwgKG5hdDEuZGF0YVtvZnMxK2ldID4+PiAwKSwgKG5hdDIuZGF0YVtvZnMyXSA+Pj4gMCkpO1xuICAgIG5hdHEuZGF0YVtvZnNxK2ldID0geFswXTtcbiAgICByZW0gPSB4WzFdO1xuICB9XG4gIG5hdHIuZGF0YVtvZnNyXSA9IHJlbTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vIG5hdDFbbmF0MjpdIDo9IG5hdDEgLyBuYXQyXG4vLyBuYXQxWzpuYXQyXSA6PSBuYXQxICUgbmF0MlxuLy8gbGVuMSA+IGxlbjIsIG5hdDJbb2ZzMitsZW4yLTFdID4gbmF0MVtvZnMxK2xlbjEtMV1cbi8vUHJvdmlkZXM6IGRpdl9uYXRcbi8vUmVxdWlyZXM6IGRpdl9kaWdpdF9uYXQsIGRpdl9oZWxwZXIsIG51bV9sZWFkaW5nX3plcm9fYml0c19pbl9kaWdpdCwgc2hpZnRfbGVmdF9uYXQsIHNoaWZ0X3JpZ2h0X25hdCwgY3JlYXRlX25hdCwgc2V0X3RvX3plcm9fbmF0LCBtdWx0X2RpZ2l0X25hdCwgc3ViX25hdCwgY29tcGFyZV9uYXQsIG5hdF9vZl9hcnJheVxuZnVuY3Rpb24gZGl2X25hdChuYXQxLCBvZnMxLCBsZW4xLCBuYXQyLCBvZnMyLCBsZW4yKSB7XG4gIGlmKGxlbjIgPT0gMSkge1xuICAgIGRpdl9kaWdpdF9uYXQobmF0MSwgb2ZzMSsxLCBuYXQxLCBvZnMxLCBuYXQxLCBvZnMxLCBsZW4xLCBuYXQyLCBvZnMyKTtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIHZhciBzID0gbnVtX2xlYWRpbmdfemVyb19iaXRzX2luX2RpZ2l0KG5hdDIsIG9mczIrbGVuMi0xKTtcbiAgc2hpZnRfbGVmdF9uYXQobmF0Miwgb2ZzMiwgbGVuMiwgbmF0X29mX2FycmF5KFswXSksIDAsIHMpO1xuICBzaGlmdF9sZWZ0X25hdChuYXQxLCBvZnMxLCBsZW4xLCBuYXRfb2ZfYXJyYXkoWzBdKSwgMCwgcyk7XG5cbiAgdmFyIGQgPSAobmF0Mi5kYXRhW29mczIrbGVuMi0xXSA+Pj4gMCkgKyAxO1xuICB2YXIgYSA9IGNyZWF0ZV9uYXQobGVuMisxKTtcbiAgZm9yICh2YXIgaSA9IGxlbjEgLSAxOyBpID49IGxlbjI7IGktLSkge1xuICAgIC8vIERlY2VudCBsb3dlciBib3VuZCBvbiBxdW9cbiAgICB2YXIgcXVvID0gZCA9PSA0Mjk0OTY3Mjk2ID8gKG5hdDEuZGF0YVtvZnMxK2ldID4+PiAwKSA6IGRpdl9oZWxwZXIoKG5hdDEuZGF0YVtvZnMxK2ldID4+PiAwKSwgKG5hdDEuZGF0YVtvZnMxK2ktMV0gPj4+MCksIGQpWzBdO1xuICAgIHNldF90b196ZXJvX25hdChhLCAwLCBsZW4yKzEpO1xuICAgIG11bHRfZGlnaXRfbmF0KGEsIDAsIGxlbjIrMSwgbmF0Miwgb2ZzMiwgbGVuMiwgbmF0X29mX2FycmF5KFtxdW9dKSwgMCk7XG4gICAgc3ViX25hdChuYXQxLCBvZnMxK2ktbGVuMiwgbGVuMisxLCBhLCAwLCBsZW4yKzEsIDEpO1xuXG4gICAgd2hpbGUgKG5hdDEuZGF0YVtvZnMxK2ldICE9IDAgfHwgY29tcGFyZV9uYXQobmF0MSwgb2ZzMStpLWxlbjIsIGxlbjIsIG5hdDIsIG9mczIsIGxlbjIpID49IDApIHtcbiAgICAgIHF1byA9IHF1byArIDE7XG4gICAgICBzdWJfbmF0KG5hdDEsIG9mczEraS1sZW4yLCBsZW4yKzEsIG5hdDIsIG9mczIsIGxlbjIsIDEpO1xuICAgIH1cblxuICAgIG5hdDEuZGF0YVtvZnMxK2ldID0gcXVvO1xuICB9XG5cbiAgc2hpZnRfcmlnaHRfbmF0KG5hdDEsIG9mczEsIGxlbjIsIG5hdF9vZl9hcnJheShbMF0pLCAwLCBzKTsgLy8gc2hpZnQgcmVtYWluZGVyXG4gIHNoaWZ0X3JpZ2h0X25hdChuYXQyLCBvZnMyLCBsZW4yLCBuYXRfb2ZfYXJyYXkoWzBdKSwgMCwgcyk7IC8vIHJlc3RvcmVcbiAgcmV0dXJuIDA7XG59XG5cblxuLy8gMCA8PSBzaGlmdCA8IDMyXG4vL1Byb3ZpZGVzOiBzaGlmdF9yaWdodF9uYXRcbmZ1bmN0aW9uIHNoaWZ0X3JpZ2h0X25hdChuYXQxLCBvZnMxLCBsZW4xLCBuYXQyLCBvZnMyLCBuYml0cykge1xuICBpZihuYml0cyA9PSAwKSB7XG4gICAgbmF0Mi5kYXRhW29mczJdID0gMDtcbiAgICByZXR1cm4gMDtcbiAgfVxuICB2YXIgd3JhcCA9IDA7XG4gIGZvcih2YXIgaSA9IGxlbjEtMTsgaSA+PSAwOyBpLS0pIHtcbiAgICB2YXIgYSA9IG5hdDEuZGF0YVtvZnMxK2ldID4+PiAwO1xuICAgIG5hdDEuZGF0YVtvZnMxK2ldID0gKGEgPj4+IG5iaXRzKSB8IHdyYXA7XG4gICAgd3JhcCA9IGEgPDwgKDMyIC0gbmJpdHMpO1xuICB9XG4gIG5hdDIuZGF0YVtvZnMyXSA9IHdyYXA7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjb21wYXJlX2RpZ2l0c19uYXRcbmZ1bmN0aW9uIGNvbXBhcmVfZGlnaXRzX25hdChuYXQxLCBvZnMxLCBuYXQyLCBvZnMyKSB7XG4gIGlmKG5hdDEuZGF0YVtvZnMxXSA+IG5hdDIuZGF0YVtvZnMyXSkgcmV0dXJuIDE7XG4gIGlmKG5hdDEuZGF0YVtvZnMxXSA8IG5hdDIuZGF0YVtvZnMyXSkgcmV0dXJuIC0xO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY29tcGFyZV9uYXRcbi8vUmVxdWlyZXM6IG51bV9kaWdpdHNfbmF0XG5mdW5jdGlvbiBjb21wYXJlX25hdChuYXQxLCBvZnMxLCBsZW4xLCBuYXQyLCBvZnMyLCBsZW4yKSB7XG4gIHZhciBhID0gbnVtX2RpZ2l0c19uYXQobmF0MSwgb2ZzMSwgbGVuMSk7XG4gIHZhciBiID0gbnVtX2RpZ2l0c19uYXQobmF0Miwgb2ZzMiwgbGVuMik7XG4gIGlmKGEgPiBiKSByZXR1cm4gMTtcbiAgaWYoYSA8IGIpIHJldHVybiAtMTtcbiAgZm9yKHZhciBpID0gbGVuMSAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgaWYgKChuYXQxLmRhdGFbb2ZzMStpXSA+Pj4gMCkgPiAobmF0Mi5kYXRhW29mczIraV0gPj4+IDApKSByZXR1cm4gMTtcbiAgICBpZiAoKG5hdDEuZGF0YVtvZnMxK2ldID4+PiAwKSA8IChuYXQyLmRhdGFbb2ZzMitpXSA+Pj4gMCkpIHJldHVybiAtMTtcbiAgfVxuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY29tcGFyZV9uYXRfcmVhbFxuLy9SZXF1aXJlczogY29tcGFyZV9uYXRcbmZ1bmN0aW9uIGNvbXBhcmVfbmF0X3JlYWwobmF0MSxuYXQyKXtcbiAgcmV0dXJuIGNvbXBhcmVfbmF0KG5hdDEsMCxuYXQxLmRhdGEubGVuZ3RoLG5hdDIsMCxuYXQyLmRhdGEubGVuZ3RoKTtcbn1cblxuLy9Qcm92aWRlczogbGFuZF9kaWdpdF9uYXRcbmZ1bmN0aW9uIGxhbmRfZGlnaXRfbmF0KG5hdDEsIG9mczEsIG5hdDIsIG9mczIpIHtcbiAgbmF0MS5kYXRhW29mczFdICY9IG5hdDIuZGF0YVtvZnMyXTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGxvcl9kaWdpdF9uYXRcbmZ1bmN0aW9uIGxvcl9kaWdpdF9uYXQobmF0MSwgb2ZzMSwgbmF0Miwgb2ZzMikge1xuICBuYXQxLmRhdGFbb2ZzMV0gfD0gbmF0Mi5kYXRhW29mczJdO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogbHhvcl9kaWdpdF9uYXRcbmZ1bmN0aW9uIGx4b3JfZGlnaXRfbmF0KG5hdDEsIG9mczEsIG5hdDIsIG9mczIpIHtcbiAgbmF0MS5kYXRhW29mczFdIF49IG5hdDIuZGF0YVtvZnMyXTtcbiAgcmV0dXJuIDA7XG59XG5cblxuLy9Qcm92aWRlczogc2VyaWFsaXplX25hdFxuZnVuY3Rpb24gc2VyaWFsaXplX25hdCh3cml0ZXIsIG5hdCwgc3ope1xuICB2YXIgbGVuID0gbmF0LmRhdGEubGVuZ3RoO1xuICB3cml0ZXIud3JpdGUoMzIsIGxlbik7XG4gIGZvcih2YXIgaSA9IDA7IGkgPCBsZW47IGkrKyl7XG4gICAgd3JpdGVyLndyaXRlKDMyLCBuYXQuZGF0YVtpXSk7XG4gIH1cbiAgc3pbMF0gPSBsZW4gKiA0O1xuICBzelsxXSA9IGxlbiAqIDg7XG59XG5cbi8vUHJvdmlkZXM6IGRlc2VyaWFsaXplX25hdFxuLy9SZXF1aXJlczogTWxOYXRcbmZ1bmN0aW9uIGRlc2VyaWFsaXplX25hdChyZWFkZXIsIHN6KXtcbiAgdmFyIGxlbiA9IHJlYWRlci5yZWFkMzJzKCk7XG4gIHZhciBuYXQgPSBuZXcgTWxOYXQobGVuKTtcbiAgZm9yKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKXtcbiAgICBuYXQuZGF0YVtpXSA9IHJlYWRlci5yZWFkMzJzKCk7XG4gIH1cbiAgc3pbMF0gPSBsZW4gKiA0O1xuICByZXR1cm4gbmF0O1xufVxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy8gQ29weXJpZ2h0IChDKSAyMDE0IEh1Z28gSGV1emFyZFxuXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cblxuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy9Qcm92aWRlczogY2FtbF9ncl9zdGF0ZVxudmFyIGNhbWxfZ3Jfc3RhdGU7XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlXG4vL1JlcXVpcmVzOiBjYW1sX25hbWVkX3ZhbHVlLCBjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX21heWJlX2F0dGFjaF9iYWNrdHJhY2VcbmZ1bmN0aW9uIGNhbWxfZ3Jfc3RhdGVfZ2V0KCkge1xuICBpZihjYW1sX2dyX3N0YXRlKSB7XG4gICAgcmV0dXJuIGNhbWxfZ3Jfc3RhdGU7XG4gIH1cbiAgdGhyb3cgY2FtbF9tYXliZV9hdHRhY2hfYmFja3RyYWNlKFswLGNhbWxfbmFtZWRfdmFsdWUoXCJHcmFwaGljcy5HcmFwaGljX2ZhaWx1cmVcIiksIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMoXCJOb3QgaW5pdGlhbGl6ZWRcIildKTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfZ3Jfc3RhdGVfc2V0XG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlLGNhbWxfZ3Jfc3RhdGVfaW5pdFxuZnVuY3Rpb24gY2FtbF9ncl9zdGF0ZV9zZXQoY3R4KSB7XG4gIGNhbWxfZ3Jfc3RhdGU9Y3R4O1xuICBjYW1sX2dyX3N0YXRlX2luaXQoKVxuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9vcGVuX2dyYXBoXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2NyZWF0ZVxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9zZXRcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbi8vUmVxdWlyZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2dyX29wZW5fZ3JhcGgoaW5mbyl7XG4gIHZhciBpbmZvID0gY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcoaW5mbyk7XG4gIGZ1bmN0aW9uIGdldChuYW1lKXtcbiAgICB2YXIgcmVzID0gaW5mby5tYXRjaChcIihefCwpICpcIituYW1lK1wiICo9ICooW2EtekEtWjAtOV9dKykgKigsfCQpXCIpO1xuICAgIGlmKHJlcykgcmV0dXJuIHJlc1syXTtcbiAgfVxuICB2YXIgc3BlY3MgPSBbXTtcbiAgaWYoIShpbmZvPT1cIlwiKSkgc3BlY3MucHVzaChpbmZvKTtcbiAgdmFyIHRhcmdldCA9IGdldChcInRhcmdldFwiKTtcbiAgaWYoIXRhcmdldCkgdGFyZ2V0PVwiXCI7XG4gIHZhciBzdGF0dXMgPSBnZXQoXCJzdGF0dXNcIik7XG4gIGlmKCFzdGF0dXMpIHNwZWNzLnB1c2goXCJzdGF0dXM9MVwiKVxuXG4gIHZhciB3ID0gZ2V0KFwid2lkdGhcIik7XG4gIHcgPSB3P3BhcnNlSW50KHcpOjIwMDtcbiAgc3BlY3MucHVzaChcIndpZHRoPVwiK3cpO1xuXG4gIHZhciBoID0gZ2V0KFwiaGVpZ2h0XCIpO1xuICBoID0gaD9wYXJzZUludChoKToyMDA7XG4gIHNwZWNzLnB1c2goXCJoZWlnaHQ9XCIraCk7XG5cbiAgdmFyIHdpbiA9IGdsb2JhbFRoaXMub3BlbihcImFib3V0OmJsYW5rXCIsdGFyZ2V0LHNwZWNzLmpvaW4oXCIsXCIpKTtcbiAgaWYoIXdpbikge2NhbWxfZmFpbHdpdGgoXCJHcmFwaGljcy5vcGVuX2dyYXBoOiBjYW5ub3Qgb3BlbiB0aGUgd2luZG93XCIpfVxuICB2YXIgZG9jID0gd2luLmRvY3VtZW50O1xuICB2YXIgY2FudmFzID0gZG9jLmNyZWF0ZUVsZW1lbnQoXCJjYW52YXNcIik7XG4gIGNhbnZhcy53aWR0aCA9IHc7XG4gIGNhbnZhcy5oZWlnaHQgPSBoO1xuICB2YXIgY3R4ID0gY2FtbF9ncl9zdGF0ZV9jcmVhdGUoY2FudmFzLHcsaCk7XG4gIGN0eC5zZXRfdGl0bGUgPSBmdW5jdGlvbiAodGl0bGUpIHtcbiAgICBkb2MudGl0bGUgPSB0aXRsZTtcbiAgfTtcbiAgY2FtbF9ncl9zdGF0ZV9zZXQoY3R4KTtcbiAgdmFyIGJvZHkgPSBkb2MuYm9keTtcbiAgYm9keS5zdHlsZS5tYXJnaW4gPSBcIjBweFwiO1xuICBib2R5LmFwcGVuZENoaWxkKGNhbnZhcyk7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3N0YXRlX2luaXRcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc2V0X2NvbG9yLGNhbWxfZ3JfbW92ZXRvLGNhbWxfZ3JfcmVzaXplX3dpbmRvd1xuLy9SZXF1aXJlczogY2FtbF9ncl9zZXRfbGluZV93aWR0aCxjYW1sX2dyX3NldF90ZXh0X3NpemUsY2FtbF9ncl9zZXRfZm9udFxuLy9SZXF1aXJlczogY2FtbF9ncl9zZXRfd2luZG93X3RpdGxlXG5mdW5jdGlvbiBjYW1sX2dyX3N0YXRlX2luaXQoKXtcbiAgY2FtbF9ncl9tb3ZldG8oY2FtbF9ncl9zdGF0ZS54LGNhbWxfZ3Jfc3RhdGUueSk7XG4gIGNhbWxfZ3JfcmVzaXplX3dpbmRvdyhjYW1sX2dyX3N0YXRlLndpZHRoLGNhbWxfZ3Jfc3RhdGUuaGVpZ2h0KTtcbiAgY2FtbF9ncl9zZXRfbGluZV93aWR0aChjYW1sX2dyX3N0YXRlLmxpbmVfd2lkdGgpO1xuICBjYW1sX2dyX3NldF90ZXh0X3NpemUoY2FtbF9ncl9zdGF0ZS50ZXh0X3NpemUpO1xuICBjYW1sX2dyX3NldF9mb250KGNhbWxfZ3Jfc3RhdGUuZm9udCk7XG4gIGNhbWxfZ3Jfc2V0X2NvbG9yKGNhbWxfZ3Jfc3RhdGUuY29sb3IpO1xuICBjYW1sX2dyX3NldF93aW5kb3dfdGl0bGUoY2FtbF9ncl9zdGF0ZS50aXRsZSk7XG4gIC8vY2FtbF9ncl9yZXNpemVfd2luZG93IG1pZ2h0IHJlc2V0IHNvbWUgY2FudmFzJyBwcm9wZXJ0aWVzXG4gIGNhbWxfZ3Jfc3RhdGUuY29udGV4dC50ZXh0QmFzZWxpbmUgPSAnYm90dG9tJztcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9zdGF0ZV9jcmVhdGVcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfZ3Jfc3RhdGVfY3JlYXRlKGNhbnZhcyx3LGgpe1xuICB2YXIgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KFwiMmRcIik7XG4gIHJldHVybiB7XG4gICAgY29udGV4dDogY29udGV4dCxcbiAgICBjYW52YXMgOiBjYW52YXMsXG4gICAgeCA6IDAsXG4gICAgeSA6IDAsXG4gICAgd2lkdGggOiB3LFxuICAgIGhlaWdodCA6IGgsXG4gICAgbGluZV93aWR0aCA6IDEsXG4gICAgZm9udCA6IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMoXCJmaXhlZFwiKSxcbiAgICB0ZXh0X3NpemUgOiAyNixcbiAgICBjb2xvciA6IDB4MDAwMDAwLFxuICAgIHRpdGxlIDogY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhcIlwiKVxuICB9O1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2RvY19vZl9zdGF0ZVxuZnVuY3Rpb24gY2FtbF9ncl9kb2Nfb2Zfc3RhdGUoc3RhdGUpIHtcbiAgaWYoc3RhdGUuY2FudmFzLm93bmVyRG9jdW1lbnQpXG4gICAgcmV0dXJuIHN0YXRlLmNhbnZhcy5vd25lckRvY3VtZW50O1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2Nsb3NlX2dyYXBoXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9jbG9zZV9ncmFwaCgpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHMuY2FudmFzLndpZHRoID0gMDtcbiAgcy5jYW52YXMuaGVpZ2h0ID0gMDtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3Jfc2V0X3dpbmRvd190aXRsZVxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbi8vUmVxdWlyZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2dyX3NldF93aW5kb3dfdGl0bGUobmFtZSl7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgcy50aXRsZSA9IG5hbWU7XG4gIHZhciBqc25hbWUgPSBjYW1sX2pzc3RyaW5nX29mX3N0cmluZyhuYW1lKTtcbiAgaWYocy5zZXRfdGl0bGUpIHMuc2V0X3RpdGxlKGpzbmFtZSk7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3Jlc2l6ZV93aW5kb3dcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX3Jlc2l6ZV93aW5kb3codyxoKXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpXG4gIHMud2lkdGggPSB3O1xuICBzLmhlaWdodCA9IGg7XG4gIHMuY2FudmFzLndpZHRoID0gdztcbiAgcy5jYW52YXMuaGVpZ2h0ID0gaDtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfY2xlYXJfZ3JhcGhcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX2NsZWFyX2dyYXBoKCl7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgcy5jYW52YXMud2lkdGggPSBzLndpZHRoO1xuICBzLmNhbnZhcy5oZWlnaHQgPSBzLmhlaWdodDtcbiAgLy8gIHMuY29udGV4dC5zdHJva2VSZWN0ICgwLiwgMC4sIHMud2lkdGgsIHMuaGVpZ2h0KTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3Jfc2l6ZV94XG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9zaXplX3goKXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICByZXR1cm4gcy53aWR0aDtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfZ3Jfc2l6ZV95XG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9zaXplX3koKXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICByZXR1cm4gcy5oZWlnaHQ7XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9ncl9zZXRfY29sb3Jcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX3NldF9jb2xvcihjb2xvcil7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgZnVuY3Rpb24gY29udmVydChudW1iZXIpIHtcbiAgICB2YXIgc3RyID0gJycgKyBudW1iZXIudG9TdHJpbmcoMTYpO1xuICAgIHdoaWxlIChzdHIubGVuZ3RoIDwgMikgc3RyID0gJzAnICsgc3RyO1xuICAgIHJldHVybiBzdHI7XG4gIH1cbiAgdmFyXG4gIHIgPSAoY29sb3IgPj4gMTYpICYgMHhmZixcbiAgZyA9IChjb2xvciA+PiA4KSAgJiAweGZmLFxuICBiID0gKGNvbG9yID4+IDApICAmIDB4ZmY7XG4gIHMuY29sb3I9Y29sb3I7XG4gIHZhciBjX3N0ciA9ICcjJyArIGNvbnZlcnQocikgKyBjb252ZXJ0KGcpICsgY29udmVydChiKTtcbiAgcy5jb250ZXh0LmZpbGxTdHlsZSA9ICAgY19zdHI7XG4gIHMuY29udGV4dC5zdHJva2VTdHlsZSA9IGNfc3RyO1xuICByZXR1cm4gMDtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfcGxvdFxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3JfcGxvdCh4LHkpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHZhciBpbT1zLmNvbnRleHQuY3JlYXRlSW1hZ2VEYXRhKDEsMSk7XG4gIHZhciBkID0gaW0uZGF0YTtcbiAgdmFyIGNvbG9yID0gcy5jb2xvcjtcbiAgZFswXSA9IChjb2xvciA+PiAxNikgJiAweGZmOyAvL3JcbiAgZFsxXSA9IChjb2xvciA+PiA4KSAgJiAweGZmLCAvL2dcbiAgZFsyXSA9IChjb2xvciA+PiAwKSAgJiAweGZmOyAvL2JcbiAgZFszXSA9IDB4RkY7IC8vYVxuICBzLng9eDtcbiAgcy55PXk7XG4gIHMuY29udGV4dC5wdXRJbWFnZURhdGEoaW0seCxzLmhlaWdodCAtIHkpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9wb2ludF9jb2xvclxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3JfcG9pbnRfY29sb3IoeCx5KXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICB2YXIgaW09cy5jb250ZXh0LmdldEltYWdlRGF0YSh4LHMuaGVpZ2h0IC0geSwxLDEpO1xuICB2YXIgZCA9IGltLmRhdGE7XG4gIHJldHVybiAoZFswXSA8PCAxNikgKyAoZFsxXSA8PCA4KSArIGRbMl07XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2dyX21vdmV0b1xuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3JfbW92ZXRvKHgseSl7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgcy54PXg7XG4gIHMueT15O1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9jdXJyZW50X3hcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX2N1cnJlbnRfeCgpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHJldHVybiBzLnhcbn1cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfY3VycmVudF95XG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9jdXJyZW50X3koKXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICByZXR1cm4gcy55XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2xpbmV0b1xuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3JfbGluZXRvKHgseSl7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgcy5jb250ZXh0LmJlZ2luUGF0aCgpO1xuICBzLmNvbnRleHQubW92ZVRvKHMueCxzLmhlaWdodCAtIHMueSk7XG4gIHMuY29udGV4dC5saW5lVG8oeCxzLmhlaWdodCAtIHkpO1xuICBzLmNvbnRleHQuc3Ryb2tlKCk7XG4gIHMueD14O1xuICBzLnk9eTtcbiAgcmV0dXJuIDA7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2RyYXdfcmVjdFxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3JfZHJhd19yZWN0KHgseSx3LGgpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHMuY29udGV4dC5zdHJva2VSZWN0KHgscy5oZWlnaHQgLSB5LHcsLWgpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9hcmNfYXV4XG5mdW5jdGlvbiBjYW1sX2dyX2FyY19hdXgoY3R4LGN4LGN5LHJ5LHJ4LGExLGEyKXtcbiAgd2hpbGUoYTE+YTIpIGEyKz0zNjA7XG4gIGExIC89IDE4MDtcbiAgYTIgLz0gMTgwO1xuICB2YXIgcm90ID0gMCx4UG9zLHlQb3MseFBvc19wcmV2LHlQb3NfcHJldjtcbiAgdmFyIHNwYWNlID0gMjtcbiAgdmFyIG51bSA9ICgoKGEyIC0gYTEpICogTWF0aC5QSSAqICgocngrcnkpLzIpKSAvIHNwYWNlKSB8IDA7XG4gIHZhciBkZWx0YSA9IChhMiAtIGExKSAqIE1hdGguUEkgLyBudW07XG4gIHZhciBpID0gYTEgKiBNYXRoLlBJO1xuICBmb3IgKHZhciBqPTA7ajw9bnVtO2orKyl7XG4gICAgeFBvcyA9IGN4IC0gKHJ4ICogTWF0aC5zaW4oaSkpICogTWF0aC5zaW4ocm90ICogTWF0aC5QSSkgKyAocnkgKiBNYXRoLmNvcyhpKSkgKiBNYXRoLmNvcyhyb3QgKiBNYXRoLlBJKTtcbiAgICB4UG9zID0geFBvcy50b0ZpeGVkKDIpO1xuICAgIHlQb3MgPSBjeSArIChyeSAqIE1hdGguY29zKGkpKSAqIE1hdGguc2luKHJvdCAqIE1hdGguUEkpICsgKHJ4ICogTWF0aC5zaW4oaSkpICogTWF0aC5jb3Mocm90ICogTWF0aC5QSSk7XG4gICAgeVBvcyA9IHlQb3MudG9GaXhlZCgyKTtcbiAgICBpZiAoaj09MCkge1xuICAgICAgY3R4Lm1vdmVUbyh4UG9zLCB5UG9zKTtcbiAgICB9IGVsc2UgaWYgKHhQb3NfcHJldiE9eFBvcyB8fCB5UG9zX3ByZXYhPXlQb3Mpe1xuICAgICAgY3R4LmxpbmVUbyh4UG9zLCB5UG9zKTtcbiAgICB9XG4gICAgeFBvc19wcmV2PXhQb3M7XG4gICAgeVBvc19wcmV2PXlQb3M7XG4gICAgaS09IGRlbHRhOy8vY2N3XG4gIH1cbiAgcmV0dXJuIDA7XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9ncl9kcmF3X2FyY1xuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXQsIGNhbWxfZ3JfYXJjX2F1eFxuZnVuY3Rpb24gY2FtbF9ncl9kcmF3X2FyYyh4LHkscngscnksYTEsYTIpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHMuY29udGV4dC5iZWdpblBhdGgoKTtcbiAgY2FtbF9ncl9hcmNfYXV4KHMuY29udGV4dCx4LHMuaGVpZ2h0IC0geSxyeCxyeSxhMSxhMik7XG4gIHMuY29udGV4dC5zdHJva2UoKTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3Jfc2V0X2xpbmVfd2lkdGhcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX3NldF9saW5lX3dpZHRoKHcpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHMubGluZV93aWR0aCA9IHc7XG4gIHMuY29udGV4dC5saW5lV2lkdGggPSB3XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2ZpbGxfcmVjdFxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3JfZmlsbF9yZWN0KHgseSx3LGgpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHMuY29udGV4dC5maWxsUmVjdCh4LHMuaGVpZ2h0IC0geSx3LC1oKTtcbiAgcmV0dXJuIDA7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2ZpbGxfcG9seVxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3JfZmlsbF9wb2x5KGFyKXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICBzLmNvbnRleHQuYmVnaW5QYXRoKCk7XG4gIHMuY29udGV4dC5tb3ZlVG8oYXJbMV1bMV0scy5oZWlnaHQgLSBhclsxXVsyXSk7XG4gIGZvcih2YXIgaSA9IDI7IGkgPCBhci5sZW5ndGg7IGkrKylcbiAgICBzLmNvbnRleHQubGluZVRvKGFyW2ldWzFdLHMuaGVpZ2h0IC0gYXJbaV1bMl0pO1xuICBzLmNvbnRleHQubGluZVRvKGFyWzFdWzFdLHMuaGVpZ2h0IC0gYXJbMV1bMl0pO1xuICBzLmNvbnRleHQuZmlsbCgpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9maWxsX2FyY1xuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXQsIGNhbWxfZ3JfYXJjX2F1eFxuZnVuY3Rpb24gY2FtbF9ncl9maWxsX2FyYyh4LHkscngscnksYTEsYTIpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHMuY29udGV4dC5iZWdpblBhdGgoKTtcbiAgY2FtbF9ncl9hcmNfYXV4KHMuY29udGV4dCx4LHMuaGVpZ2h0IC0geSxyeCxyeSxhMSxhMik7XG4gIHMuY29udGV4dC5maWxsKCk7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2RyYXdfc3RyXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9kcmF3X3N0cihzdHIpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHZhciBtID0gcy5jb250ZXh0Lm1lYXN1cmVUZXh0KHN0cik7XG4gIHZhciBkeCA9IG0ud2lkdGg7XG4gIHMuY29udGV4dC5maWxsVGV4dChzdHIscy54LHMuaGVpZ2h0IC0gcy55KTtcbiAgcy54ICs9IGR4IHwgMDtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfZHJhd19jaGFyXG4vL1JlcXVpcmVzOiBjYW1sX2dyX2RyYXdfc3RyXG5mdW5jdGlvbiBjYW1sX2dyX2RyYXdfY2hhcihjKXtcbiAgY2FtbF9ncl9kcmF3X3N0cihTdHJpbmcuZnJvbUNoYXJDb2RlKGMpKTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfZHJhd19zdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfZ3JfZHJhd19zdHJcbi8vUmVxdWlyZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2dyX2RyYXdfc3RyaW5nKHN0cil7XG4gIGNhbWxfZ3JfZHJhd19zdHIoY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcoc3RyKSk7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3NldF9mb250XG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuLy9SZXF1aXJlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfZ3Jfc2V0X2ZvbnQoZil7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgcy5mb250ID0gZjtcbiAgcy5jb250ZXh0LmZvbnQgPSBzLnRleHRfc2l6ZSArIFwicHggXCIgKyBjYW1sX2pzc3RyaW5nX29mX3N0cmluZyhzLmZvbnQpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9zZXRfdGV4dF9zaXplXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuLy9SZXF1aXJlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfZ3Jfc2V0X3RleHRfc2l6ZShzaXplKXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICBzLnRleHRfc2l6ZSA9IHNpemU7XG4gIHMuY29udGV4dC5mb250ID0gcy50ZXh0X3NpemUgKyBcInB4IFwiICsgY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcocy5mb250KTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfdGV4dF9zaXplXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuLy9SZXF1aXJlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfZ3JfdGV4dF9zaXplKHR4dCl7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgdmFyIHcgPSBzLmNvbnRleHQubWVhc3VyZVRleHQoY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcodHh0KSkud2lkdGg7XG4gIHJldHVybiBbMCx3LHMudGV4dF9zaXplXTtcbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX21ha2VfaW1hZ2Vcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX21ha2VfaW1hZ2UoYXJyKXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICB2YXIgaCA9IGFyci5sZW5ndGggLSAxIDtcbiAgdmFyIHcgPSBhcnJbMV0ubGVuZ3RoIC0gMTtcbiAgdmFyIGltID0gcy5jb250ZXh0LmNyZWF0ZUltYWdlRGF0YSh3LGgpO1xuICBmb3IodmFyIGk9MDtpPGg7aSsrKXtcbiAgICBmb3IodmFyIGo9MDtqPHc7aisrKXtcbiAgICAgIHZhciBjID0gYXJyW2krMV1baisxXTtcbiAgICAgIHZhciBvID0gaSoodyo0KSArIChqICogNCk7XG4gICAgICBpZihjID09IC0xKSB7XG4gICAgICAgIGltLmRhdGFbbyArIDBdID0gMDtcbiAgICAgICAgaW0uZGF0YVtvICsgMV0gPSAwO1xuICAgICAgICBpbS5kYXRhW28gKyAyXSA9IDA7XG4gICAgICAgIGltLmRhdGFbbyArIDNdID0gMDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGltLmRhdGFbbyArIDBdID0gYyA+PiAxNiAmIDB4ZmY7XG4gICAgICAgIGltLmRhdGFbbyArIDFdID0gYyA+PiAgOCAmIDB4ZmY7XG4gICAgICAgIGltLmRhdGFbbyArIDJdID0gYyA+PiAgMCAmIDBYZmY7XG4gICAgICAgIGltLmRhdGFbbyArIDNdID0gMHhmZjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGltXG59XG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2R1bXBfaW1hZ2Vcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX2R1bXBfaW1hZ2UoaW0pe1xuICB2YXIgZGF0YSA9IFswXVxuICBmb3IodmFyIGk9MDsgaTxpbS5oZWlnaHQ7aSsrKXtcbiAgICBkYXRhW2krMV0gPSBbMF1cbiAgICBmb3IodmFyIGo9MDsgajxpbS53aWR0aDtqKyspe1xuICAgICAgdmFyIG8gPSBpKihpbS53aWR0aCo0KSArIChqICogNCksXG4gICAgICAgICAgciA9IGltLmRhdGFbbyswXSxcbiAgICAgICAgICBnID0gaW0uZGF0YVtvKzFdLFxuICAgICAgICAgIGIgPSBpbS5kYXRhW28rMl07XG4gICAgICBkYXRhW2krMV1baisxXSA9IChyIDw8IDE2KSArIChnIDw8IDgpICsgYlxuICAgIH1cbiAgfVxuICByZXR1cm4gZGF0YVxufVxuLy9Qcm92aWRlczogY2FtbF9ncl9kcmF3X2ltYWdlXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9kcmF3X2ltYWdlKGltLHgseSl7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgaWYoIWltLmltYWdlKSB7XG4gICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJjYW52YXNcIik7XG4gICAgY2FudmFzLndpZHRoID0gcy53aWR0aDtcbiAgICBjYW52YXMuaGVpZ2h0ID0gcy5oZWlnaHQ7XG4gICAgY2FudmFzLmdldENvbnRleHQoXCIyZFwiKS5wdXRJbWFnZURhdGEoaW0sMCwwKTtcbiAgICB2YXIgaW1hZ2UgPSBuZXcgZ2xvYmFsVGhpcy5JbWFnZSgpO1xuICAgIGltYWdlLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHMuY29udGV4dC5kcmF3SW1hZ2UoaW1hZ2UseCxzLmhlaWdodCAtIGltLmhlaWdodCAtIHkpO1xuICAgICAgaW0uaW1hZ2UgPSBpbWFnZTtcbiAgICB9XG4gICAgaW1hZ2Uuc3JjID0gY2FudmFzLnRvRGF0YVVSTChcImltYWdlL3BuZ1wiKTtcbiAgfSBlbHNlIHtcbiAgICBzLmNvbnRleHQuZHJhd0ltYWdlKGltLmltYWdlLHgscy5oZWlnaHQgLSBpbS5oZWlnaHQgLSB5KTtcbiAgfVxuICByZXR1cm4gMDtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfY3JlYXRlX2ltYWdlXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9jcmVhdGVfaW1hZ2UoeCx5KXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICByZXR1cm4gcy5jb250ZXh0LmNyZWF0ZUltYWdlRGF0YSh4LHkpO1xufVxuLy9Qcm92aWRlczogY2FtbF9ncl9ibGl0X2ltYWdlXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9ibGl0X2ltYWdlKGltLHgseSl7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgdmFyIGltMiA9IHMuY29udGV4dC5nZXRJbWFnZURhdGEoeCxzLmhlaWdodCAtIGltLmhlaWdodCAtIHksaW0ud2lkdGgsaW0uaGVpZ2h0KTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbTIuZGF0YS5sZW5ndGg7IGkrPTQpe1xuICAgIGltLmRhdGFbaV0gPSBpbTIuZGF0YVtpXTtcbiAgICBpbS5kYXRhW2krMV0gPSBpbTIuZGF0YVtpKzFdO1xuICAgIGltLmRhdGFbaSsyXSA9IGltMi5kYXRhW2krMl07XG4gICAgaW0uZGF0YVtpKzNdID0gaW0yLmRhdGFbaSszXTtcbiAgfVxuICByZXR1cm4gMDtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfZ3Jfc2lnaW9faGFuZGxlclxuZnVuY3Rpb24gY2FtbF9ncl9zaWdpb19oYW5kbGVyKCl7cmV0dXJuIDB9XG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3NpZ2lvX3NpZ25hbFxuZnVuY3Rpb24gY2FtbF9ncl9zaWdpb19zaWduYWwoKXtyZXR1cm4gMH1cbi8vUHJvdmlkZXM6IGNhbWxfZ3Jfd2FpdF9ldmVudFxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuZnVuY3Rpb24gY2FtbF9ncl93YWl0X2V2ZW50KF9ldmwpe1xuICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF9ncl93YWl0X2V2ZW50IG5vdCBJbXBsZW1lbnRlZDogdXNlIEdyYXBoaWNzX2pzIGluc3RlYWRcIik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3Jfc3luY2hyb25pemVcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbmZ1bmN0aW9uIGNhbWxfZ3Jfc3luY2hyb25pemUgKCkge1xuICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF9ncl9zeW5jaHJvbml6ZSBub3QgSW1wbGVtZW50ZWRcIik7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3JlbWVtYmVyX21vZGVcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbmZ1bmN0aW9uIGNhbWxfZ3JfcmVtZW1iZXJfbW9kZSAoKSB7XG4gIGNhbWxfZmFpbHdpdGgoXCJjYW1sX2dyX3JlbWVtYmVyX21vZGUgbm90IEltcGxlbWVudGVkXCIpO1xufVxuLy9Qcm92aWRlczogY2FtbF9ncl9kaXNwbGF5X21vZGVcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbmZ1bmN0aW9uIGNhbWxfZ3JfZGlzcGxheV9tb2RlKCkge1xuICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF9ncl9kaXNwbGF5X21vZGUgbm90IEltcGxlbWVudGVkXCIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3dpbmRvd19pZFxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuZnVuY3Rpb24gY2FtbF9ncl93aW5kb3dfaWQoYSkge1xuICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF9ncl93aW5kb3dfaWQgbm90IEltcGxlbWVudGVkXCIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX29wZW5fc3Vid2luZG93XG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG5mdW5jdGlvbiBjYW1sX2dyX29wZW5fc3Vid2luZG93KGEsYixjLGQpIHtcbiAgY2FtbF9mYWlsd2l0aChcImNhbWxfZ3Jfb3Blbl9zdWJ3aW5kb3cgbm90IEltcGxlbWVudGVkXCIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2Nsb3NlX3N1YndpbmRvd1xuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuZnVuY3Rpb24gY2FtbF9ncl9jbG9zZV9zdWJ3aW5kb3coYSkge1xuICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF9ncl9jbG9zZV9zdWJ3aW5kb3cgbm90IEltcGxlbWVudGVkXCIpO1xufVxuIiwiXG4vL1Byb3ZpZGVzOiBjYW1sX2N1c3RvbV9ldmVudF9pbmRleFxudmFyIGNhbWxfY3VzdG9tX2V2ZW50X2luZGV4ID0gMDtcblxuLy9Qcm92aWRlczogY2FtbF9ydW50aW1lX2V2ZW50c191c2VyX3JlZ2lzdGVyXG4vL1JlcXVpcmVzOiBjYW1sX2N1c3RvbV9ldmVudF9pbmRleFxuZnVuY3Rpb24gY2FtbF9ydW50aW1lX2V2ZW50c191c2VyX3JlZ2lzdGVyKGV2ZW50X25hbWUsIGV2ZW50X3RhZywgZXZlbnRfdHlwZSkge1xuICBjYW1sX2N1c3RvbV9ldmVudF9pbmRleCArPSAxO1xuICByZXR1cm4gWzAsIGNhbWxfY3VzdG9tX2V2ZW50X2luZGV4LCBldmVudF9uYW1lLCBldmVudF90eXBlLCBldmVudF90YWddO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3J1bnRpbWVfZXZlbnRzX3VzZXJfd3JpdGVcbmZ1bmN0aW9uIGNhbWxfcnVudGltZV9ldmVudHNfdXNlcl93cml0ZShldmVudCwgZXZlbnRfY29udGVudCkge1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ydW50aW1lX2V2ZW50c191c2VyX3Jlc29sdmVcbmZ1bmN0aW9uIGNhbWxfcnVudGltZV9ldmVudHNfdXNlcl9yZXNvbHZlKCkge1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ydW50aW1lX2V2ZW50c19zdGFydFxuZnVuY3Rpb24gY2FtbF9ydW50aW1lX2V2ZW50c19zdGFydCgpIHtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfcnVudGltZV9ldmVudHNfcGF1c2VcbmZ1bmN0aW9uIGNhbWxfcnVudGltZV9ldmVudHNfcGF1c2UoKSB7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3J1bnRpbWVfZXZlbnRzX3Jlc3VtZVxuZnVuY3Rpb24gY2FtbF9ydW50aW1lX2V2ZW50c19yZXN1bWUoKSB7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3J1bnRpbWVfZXZlbnRzX2NyZWF0ZV9jdXJzb3JcbmZ1bmN0aW9uIGNhbWxfcnVudGltZV9ldmVudHNfY3JlYXRlX2N1cnNvcih0YXJnZXQpIHtcbiAgcmV0dXJuIHt9O1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3J1bnRpbWVfZXZlbnRzX2ZyZWVfY3Vyc29yXG5mdW5jdGlvbiBjYW1sX3J1bnRpbWVfZXZlbnRzX2ZyZWVfY3Vyc29yKGN1cnNvcikge1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ydW50aW1lX2V2ZW50c19yZWFkX3BvbGxcbmZ1bmN0aW9uIGNhbWxfcnVudGltZV9ldmVudHNfcmVhZF9wb2xsKGN1cnNvciwgY2FsbGJhY2tzLCBudW0pIHtcbiAgcmV0dXJuIDA7XG59XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vLyBDb3B5cmlnaHQgKEMpIDIwMTAgSsOpcsO0bWUgVm91aWxsb25cbi8vIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy9Qcm92aWRlczogY2FtbF9tYXJzaGFsX2NvbnN0YW50c1xudmFyIGNhbWxfbWFyc2hhbF9jb25zdGFudHMgPSB7XG4gIFBSRUZJWF9TTUFMTF9CTE9DSzogICAgICAgICAweDgwLFxuICBQUkVGSVhfU01BTExfSU5UOiAgICAgICAgICAgMHg0MCxcbiAgUFJFRklYX1NNQUxMX1NUUklORzogICAgICAgIDB4MjAsXG4gIENPREVfSU5UODogICAgICAgICAgICAgICAgICAweDAwLFxuICBDT0RFX0lOVDE2OiAgICAgICAgICAgICAgICAgMHgwMSxcbiAgQ09ERV9JTlQzMjogICAgICAgICAgICAgICAgIDB4MDIsXG4gIENPREVfSU5UNjQ6ICAgICAgICAgICAgICAgICAweDAzLFxuICBDT0RFX1NIQVJFRDg6ICAgICAgICAgICAgICAgMHgwNCxcbiAgQ09ERV9TSEFSRUQxNjogICAgICAgICAgICAgIDB4MDUsXG4gIENPREVfU0hBUkVEMzI6ICAgICAgICAgICAgICAweDA2LFxuICBDT0RFX0JMT0NLMzI6ICAgICAgICAgICAgICAgMHgwOCxcbiAgQ09ERV9CTE9DSzY0OiAgICAgICAgICAgICAgIDB4MTMsXG4gIENPREVfU1RSSU5HODogICAgICAgICAgICAgICAweDA5LFxuICBDT0RFX1NUUklORzMyOiAgICAgICAgICAgICAgMHgwQSxcbiAgQ09ERV9ET1VCTEVfQklHOiAgICAgICAgICAgIDB4MEIsXG4gIENPREVfRE9VQkxFX0xJVFRMRTogICAgICAgICAweDBDLFxuICBDT0RFX0RPVUJMRV9BUlJBWThfQklHOiAgICAgMHgwRCxcbiAgQ09ERV9ET1VCTEVfQVJSQVk4X0xJVFRMRTogIDB4MEUsXG4gIENPREVfRE9VQkxFX0FSUkFZMzJfQklHOiAgICAweDBGLFxuICBDT0RFX0RPVUJMRV9BUlJBWTMyX0xJVFRMRTogMHgwNyxcbiAgQ09ERV9DT0RFUE9JTlRFUjogICAgICAgICAgIDB4MTAsXG4gIENPREVfSU5GSVhQT0lOVEVSOiAgICAgICAgICAweDExLFxuICBDT0RFX0NVU1RPTTogICAgICAgICAgICAgICAgMHgxMixcbiAgQ09ERV9DVVNUT01fTEVOOiAgICAgICAgICAgIDB4MTgsXG4gIENPREVfQ1VTVE9NX0ZJWEVEOiAgICAgICAgICAweDE5XG59XG5cblxuLy9Qcm92aWRlczogVUludDhBcnJheVJlYWRlclxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfYXJyYXksIGNhbWxfanNieXRlc19vZl9zdHJpbmdcbmZ1bmN0aW9uIFVJbnQ4QXJyYXlSZWFkZXIgKHMsIGkpIHsgdGhpcy5zID0gczsgdGhpcy5pID0gaTsgfVxuVUludDhBcnJheVJlYWRlci5wcm90b3R5cGUgPSB7XG4gIHJlYWQ4dTpmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzLnNbdGhpcy5pKytdOyB9LFxuICByZWFkOHM6ZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy5zW3RoaXMuaSsrXSA8PCAyNCA+PiAyNDsgfSxcbiAgcmVhZDE2dTpmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHMgPSB0aGlzLnMsIGkgPSB0aGlzLmk7XG4gICAgdGhpcy5pID0gaSArIDI7XG4gICAgcmV0dXJuIChzW2ldIDw8IDgpIHwgc1tpICsgMV1cbiAgfSxcbiAgcmVhZDE2czpmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHMgPSB0aGlzLnMsIGkgPSB0aGlzLmk7XG4gICAgdGhpcy5pID0gaSArIDI7XG4gICAgcmV0dXJuIChzW2ldIDw8IDI0ID4+IDE2KSB8IHNbaSArIDFdO1xuICB9LFxuICByZWFkMzJ1OmZ1bmN0aW9uICgpIHtcbiAgICB2YXIgcyA9IHRoaXMucywgaSA9IHRoaXMuaTtcbiAgICB0aGlzLmkgPSBpICsgNDtcbiAgICByZXR1cm4gKChzW2ldIDw8IDI0KSB8IChzW2krMV0gPDwgMTYpIHxcbiAgICAgICAgICAgIChzW2krMl0gPDwgOCkgfCBzW2krM10pID4+PiAwO1xuICB9LFxuICByZWFkMzJzOmZ1bmN0aW9uICgpIHtcbiAgICB2YXIgcyA9IHRoaXMucywgaSA9IHRoaXMuaTtcbiAgICB0aGlzLmkgPSBpICsgNDtcbiAgICByZXR1cm4gKHNbaV0gPDwgMjQpIHwgKHNbaSsxXSA8PCAxNikgfFxuICAgICAgKHNbaSsyXSA8PCA4KSB8IHNbaSszXTtcbiAgfSxcbiAgcmVhZHN0cjpmdW5jdGlvbiAobGVuKSB7XG4gICAgdmFyIGkgPSB0aGlzLmk7XG4gICAgdGhpcy5pID0gaSArIGxlbjtcbiAgICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfYXJyYXkodGhpcy5zLnN1YmFycmF5KGksIGkgKyBsZW4pKTtcbiAgfSxcbiAgcmVhZHVpbnQ4YXJyYXk6ZnVuY3Rpb24gKGxlbikge1xuICAgIHZhciBpID0gdGhpcy5pO1xuICAgIHRoaXMuaSA9IGkgKyBsZW47XG4gICAgcmV0dXJuIHRoaXMucy5zdWJhcnJheShpLCBpICsgbGVuKTtcbiAgfVxufVxuXG5cbi8vUHJvdmlkZXM6IE1sU3RyaW5nUmVhZGVyXG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzLCBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nXG5mdW5jdGlvbiBNbFN0cmluZ1JlYWRlciAocywgaSkgeyB0aGlzLnMgPSBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKHMpOyB0aGlzLmkgPSBpOyB9XG5NbFN0cmluZ1JlYWRlci5wcm90b3R5cGUgPSB7XG4gIHJlYWQ4dTpmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzLnMuY2hhckNvZGVBdCh0aGlzLmkrKyk7IH0sXG4gIHJlYWQ4czpmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzLnMuY2hhckNvZGVBdCh0aGlzLmkrKykgPDwgMjQgPj4gMjQ7IH0sXG4gIHJlYWQxNnU6ZnVuY3Rpb24gKCkge1xuICAgIHZhciBzID0gdGhpcy5zLCBpID0gdGhpcy5pO1xuICAgIHRoaXMuaSA9IGkgKyAyO1xuICAgIHJldHVybiAocy5jaGFyQ29kZUF0KGkpIDw8IDgpIHwgcy5jaGFyQ29kZUF0KGkgKyAxKVxuICB9LFxuICByZWFkMTZzOmZ1bmN0aW9uICgpIHtcbiAgICB2YXIgcyA9IHRoaXMucywgaSA9IHRoaXMuaTtcbiAgICB0aGlzLmkgPSBpICsgMjtcbiAgICByZXR1cm4gKHMuY2hhckNvZGVBdChpKSA8PCAyNCA+PiAxNikgfCBzLmNoYXJDb2RlQXQoaSArIDEpO1xuICB9LFxuICByZWFkMzJ1OmZ1bmN0aW9uICgpIHtcbiAgICB2YXIgcyA9IHRoaXMucywgaSA9IHRoaXMuaTtcbiAgICB0aGlzLmkgPSBpICsgNDtcbiAgICByZXR1cm4gKChzLmNoYXJDb2RlQXQoaSkgPDwgMjQpIHwgKHMuY2hhckNvZGVBdChpKzEpIDw8IDE2KSB8XG4gICAgICAgICAgICAocy5jaGFyQ29kZUF0KGkrMikgPDwgOCkgfCBzLmNoYXJDb2RlQXQoaSszKSkgPj4+IDA7XG4gIH0sXG4gIHJlYWQzMnM6ZnVuY3Rpb24gKCkge1xuICAgIHZhciBzID0gdGhpcy5zLCBpID0gdGhpcy5pO1xuICAgIHRoaXMuaSA9IGkgKyA0O1xuICAgIHJldHVybiAocy5jaGFyQ29kZUF0KGkpIDw8IDI0KSB8IChzLmNoYXJDb2RlQXQoaSsxKSA8PCAxNikgfFxuICAgICAgKHMuY2hhckNvZGVBdChpKzIpIDw8IDgpIHwgcy5jaGFyQ29kZUF0KGkrMyk7XG4gIH0sXG4gIHJlYWRzdHI6ZnVuY3Rpb24gKGxlbikge1xuICAgIHZhciBpID0gdGhpcy5pO1xuICAgIHRoaXMuaSA9IGkgKyBsZW47XG4gICAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXModGhpcy5zLnN1YnN0cmluZyhpLCBpICsgbGVuKSk7XG4gIH0sXG4gIHJlYWR1aW50OGFycmF5OmZ1bmN0aW9uIChsZW4pIHtcbiAgICB2YXIgYiA9IG5ldyBVaW50OEFycmF5KGxlbik7XG4gICAgdmFyIHMgPSB0aGlzLnM7XG4gICAgdmFyIGkgPSB0aGlzLmk7XG4gICAgZm9yKHZhciBqID0gMDsgaiA8IGxlbjsgaisrKSB7XG4gICAgICBiW2pdID0gcy5jaGFyQ29kZUF0KGkgKyBqKTtcbiAgICB9XG4gICAgdGhpcy5pID0gaSArIGxlbjtcbiAgICByZXR1cm4gYjtcbiAgfVxufVxuXG4vL1Byb3ZpZGVzOiBCaWdTdHJpbmdSZWFkZXJcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2FycmF5LCBjYW1sX2JhX2dldF8xXG5mdW5jdGlvbiBCaWdTdHJpbmdSZWFkZXIgKGJzLCBpKSB7IHRoaXMucyA9IGJzOyB0aGlzLmkgPSBpOyB9XG5CaWdTdHJpbmdSZWFkZXIucHJvdG90eXBlID0ge1xuICByZWFkOHU6ZnVuY3Rpb24gKCkgeyByZXR1cm4gY2FtbF9iYV9nZXRfMSh0aGlzLnMsdGhpcy5pKyspOyB9LFxuICByZWFkOHM6ZnVuY3Rpb24gKCkgeyByZXR1cm4gY2FtbF9iYV9nZXRfMSh0aGlzLnMsdGhpcy5pKyspIDw8IDI0ID4+IDI0OyB9LFxuICByZWFkMTZ1OmZ1bmN0aW9uICgpIHtcbiAgICB2YXIgcyA9IHRoaXMucywgaSA9IHRoaXMuaTtcbiAgICB0aGlzLmkgPSBpICsgMjtcbiAgICByZXR1cm4gKGNhbWxfYmFfZ2V0XzEocyxpKSA8PCA4KSB8IGNhbWxfYmFfZ2V0XzEocyxpICsgMSlcbiAgfSxcbiAgcmVhZDE2czpmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHMgPSB0aGlzLnMsIGkgPSB0aGlzLmk7XG4gICAgdGhpcy5pID0gaSArIDI7XG4gICAgcmV0dXJuIChjYW1sX2JhX2dldF8xKHMsaSkgPDwgMjQgPj4gMTYpIHwgY2FtbF9iYV9nZXRfMShzLGkgKyAxKTtcbiAgfSxcbiAgcmVhZDMydTpmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHMgPSB0aGlzLnMsIGkgPSB0aGlzLmk7XG4gICAgdGhpcy5pID0gaSArIDQ7XG4gICAgcmV0dXJuICgoY2FtbF9iYV9nZXRfMShzLGkpICAgPDwgMjQpIHwgKGNhbWxfYmFfZ2V0XzEocyxpKzEpIDw8IDE2KSB8XG4gICAgICAgICAgICAoY2FtbF9iYV9nZXRfMShzLGkrMikgPDwgOCkgIHwgY2FtbF9iYV9nZXRfMShzLGkrMykgICAgICAgICApID4+PiAwO1xuICB9LFxuICByZWFkMzJzOmZ1bmN0aW9uICgpIHtcbiAgICB2YXIgcyA9IHRoaXMucywgaSA9IHRoaXMuaTtcbiAgICB0aGlzLmkgPSBpICsgNDtcbiAgICByZXR1cm4gKGNhbWxfYmFfZ2V0XzEocyxpKSAgIDw8IDI0KSB8IChjYW1sX2JhX2dldF8xKHMsaSsxKSA8PCAxNikgfFxuICAgICAgKGNhbWxfYmFfZ2V0XzEocyxpKzIpIDw8IDgpICB8IGNhbWxfYmFfZ2V0XzEocyxpKzMpO1xuICB9LFxuICByZWFkc3RyOmZ1bmN0aW9uIChsZW4pIHtcbiAgICB2YXIgaSA9IHRoaXMuaTtcbiAgICB2YXIgYXJyID0gbmV3IEFycmF5KGxlbilcbiAgICBmb3IodmFyIGogPSAwOyBqIDwgbGVuOyBqKyspe1xuICAgICAgYXJyW2pdID0gY2FtbF9iYV9nZXRfMSh0aGlzLnMsIGkraik7XG4gICAgfVxuICAgIHRoaXMuaSA9IGkgKyBsZW47XG4gICAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2FycmF5KGFycik7XG4gIH0sXG4gIHJlYWR1aW50OGFycmF5OmZ1bmN0aW9uIChsZW4pIHtcbiAgICB2YXIgaSA9IHRoaXMuaTtcbiAgICB2YXIgb2Zmc2V0ID0gdGhpcy5vZmZzZXQoaSk7XG4gICAgdGhpcy5pID0gaSArIGxlbjtcbiAgICByZXR1cm4gdGhpcy5zLmRhdGEuc3ViYXJyYXkob2Zmc2V0LCBvZmZzZXQgKyBsZW4pO1xuICB9XG59XG5cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX2Zsb2F0X29mX2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X2Zsb2F0X29mX2JpdHMsIGNhbWxfaW50NjRfb2ZfYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfZmxvYXRfb2ZfYnl0ZXMgKGEpIHtcbiAgcmV0dXJuIGNhbWxfaW50NjRfZmxvYXRfb2ZfYml0cyAoY2FtbF9pbnQ2NF9vZl9ieXRlcyAoYSkpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2lucHV0X3ZhbHVlX2Zyb21fc3RyaW5nIG11dGFibGVcbi8vUmVxdWlyZXM6IE1sU3RyaW5nUmVhZGVyLCBjYW1sX2lucHV0X3ZhbHVlX2Zyb21fcmVhZGVyXG5mdW5jdGlvbiBjYW1sX2lucHV0X3ZhbHVlX2Zyb21fc3RyaW5nKHMsb2ZzKSB7XG4gIHZhciByZWFkZXIgPSBuZXcgTWxTdHJpbmdSZWFkZXIgKHMsIHR5cGVvZiBvZnM9PVwibnVtYmVyXCI/b2ZzOm9mc1swXSk7XG4gIHJldHVybiBjYW1sX2lucHV0X3ZhbHVlX2Zyb21fcmVhZGVyKHJlYWRlciwgb2ZzKVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2lucHV0X3ZhbHVlX2Zyb21fYnl0ZXMgbXV0YWJsZVxuLy9SZXF1aXJlczogTWxTdHJpbmdSZWFkZXIsIGNhbWxfaW5wdXRfdmFsdWVfZnJvbV9yZWFkZXIsIGNhbWxfc3RyaW5nX29mX2J5dGVzXG5mdW5jdGlvbiBjYW1sX2lucHV0X3ZhbHVlX2Zyb21fYnl0ZXMocyxvZnMpIHtcbiAgdmFyIHJlYWRlciA9IG5ldyBNbFN0cmluZ1JlYWRlciAoY2FtbF9zdHJpbmdfb2ZfYnl0ZXMocyksIHR5cGVvZiBvZnM9PVwibnVtYmVyXCI/b2ZzOm9mc1swXSk7XG4gIHJldHVybiBjYW1sX2lucHV0X3ZhbHVlX2Zyb21fcmVhZGVyKHJlYWRlciwgb2ZzKVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X3VubWFyc2hhbFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9vZl9ieXRlc1xuZnVuY3Rpb24gY2FtbF9pbnQ2NF91bm1hcnNoYWwocmVhZGVyLCBzaXplKXtcbiAgdmFyIHQgPSBuZXcgQXJyYXkoOCk7O1xuICBmb3IgKHZhciBqID0gMDtqIDwgODtqKyspIHRbal0gPSByZWFkZXIucmVhZDh1KCk7XG4gIHNpemVbMF0gPSA4O1xuICByZXR1cm4gY2FtbF9pbnQ2NF9vZl9ieXRlcyAodCk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfbWFyc2hhbFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF90b19ieXRlc1xuZnVuY3Rpb24gY2FtbF9pbnQ2NF9tYXJzaGFsKHdyaXRlciwgdiwgc2l6ZXMpIHtcbiAgdmFyIGIgPSBjYW1sX2ludDY0X3RvX2J5dGVzICh2KTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCA4OyBpKyspIHdyaXRlci53cml0ZSAoOCwgYltpXSk7XG4gIHNpemVzWzBdID0gODsgc2l6ZXNbMV0gPSA4O1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDMyX3VubWFyc2hhbFxuZnVuY3Rpb24gY2FtbF9pbnQzMl91bm1hcnNoYWwocmVhZGVyLCBzaXplKXtcbiAgc2l6ZVswXSA9IDQ7XG4gIHJldHVybiByZWFkZXIucmVhZDMycyAoKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9uYXRpdmVpbnRfdW5tYXJzaGFsXG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG5mdW5jdGlvbiBjYW1sX25hdGl2ZWludF91bm1hcnNoYWwocmVhZGVyLCBzaXplKXtcbiAgc3dpdGNoIChyZWFkZXIucmVhZDh1ICgpKSB7XG4gIGNhc2UgMTpcbiAgICBzaXplWzBdID0gNDtcbiAgICByZXR1cm4gcmVhZGVyLnJlYWQzMnMgKCk7XG4gIGNhc2UgMjpcbiAgICBjYW1sX2ZhaWx3aXRoKFwiaW5wdXRfdmFsdWU6IG5hdGl2ZSBpbnRlZ2VyIHZhbHVlIHRvbyBsYXJnZVwiKTtcbiAgZGVmYXVsdDogY2FtbF9mYWlsd2l0aChcImlucHV0X3ZhbHVlOiBpbGwtZm9ybWVkIG5hdGl2ZSBpbnRlZ2VyXCIpO1xuICB9XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfY3VzdG9tX29wc1xuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF91bm1hcnNoYWwsIGNhbWxfaW50NjRfbWFyc2hhbCwgY2FtbF9pbnQ2NF9jb21wYXJlLCBjYW1sX2ludDY0X2hhc2hcbi8vUmVxdWlyZXM6IGNhbWxfaW50MzJfdW5tYXJzaGFsLCBjYW1sX25hdGl2ZWludF91bm1hcnNoYWxcbi8vUmVxdWlyZXM6IGNhbWxfYmFfc2VyaWFsaXplLCBjYW1sX2JhX2Rlc2VyaWFsaXplLCBjYW1sX2JhX2NvbXBhcmUsIGNhbWxfYmFfaGFzaFxudmFyIGNhbWxfY3VzdG9tX29wcyA9XG4gICAge1wiX2pcIjoge1xuICAgICAgZGVzZXJpYWxpemUgOiBjYW1sX2ludDY0X3VubWFyc2hhbCxcbiAgICAgIHNlcmlhbGl6ZSAgOiBjYW1sX2ludDY0X21hcnNoYWwsXG4gICAgICBmaXhlZF9sZW5ndGggOiA4LFxuICAgICAgY29tcGFyZSA6IGNhbWxfaW50NjRfY29tcGFyZSxcbiAgICAgIGhhc2ggOiBjYW1sX2ludDY0X2hhc2hcbiAgICB9LFxuICAgICBcIl9pXCI6IHtcbiAgICAgICBkZXNlcmlhbGl6ZSA6IGNhbWxfaW50MzJfdW5tYXJzaGFsLFxuICAgICAgIGZpeGVkX2xlbmd0aCA6IDQsXG4gICAgIH0sXG4gICAgIFwiX25cIjoge1xuICAgICAgIGRlc2VyaWFsaXplIDogY2FtbF9uYXRpdmVpbnRfdW5tYXJzaGFsLFxuICAgICAgIGZpeGVkX2xlbmd0aCA6IDQsXG4gICAgIH0sXG4gICAgIFwiX2JpZ2FycmF5XCI6e1xuICAgICAgIGRlc2VyaWFsaXplIDogKGZ1bmN0aW9uIChyZWFkZXIsIHN6KSB7cmV0dXJuIGNhbWxfYmFfZGVzZXJpYWxpemUgKHJlYWRlcixzeixcIl9iaWdhcnJheVwiKX0pLFxuICAgICAgIHNlcmlhbGl6ZSA6IGNhbWxfYmFfc2VyaWFsaXplLFxuICAgICAgIGNvbXBhcmUgOiBjYW1sX2JhX2NvbXBhcmUsXG4gICAgICAgaGFzaDogY2FtbF9iYV9oYXNoLFxuICAgICB9LFxuICAgICBcIl9iaWdhcnIwMlwiOntcbiAgICAgICBkZXNlcmlhbGl6ZSA6IChmdW5jdGlvbiAocmVhZGVyLCBzeikge3JldHVybiBjYW1sX2JhX2Rlc2VyaWFsaXplIChyZWFkZXIsc3osXCJfYmlnYXJyMDJcIil9KSxcbiAgICAgICBzZXJpYWxpemUgOiBjYW1sX2JhX3NlcmlhbGl6ZSxcbiAgICAgICBjb21wYXJlIDogY2FtbF9iYV9jb21wYXJlLFxuICAgICAgIGhhc2g6IGNhbWxfYmFfaGFzaCxcbiAgICAgfVxuICAgIH1cblxuLy9Qcm92aWRlczogY2FtbF9pbnB1dF92YWx1ZV9mcm9tX3JlYWRlciBtdXRhYmxlXG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG4vL1JlcXVpcmVzOiBjYW1sX2Zsb2F0X29mX2J5dGVzLCBjYW1sX2N1c3RvbV9vcHNcbi8vUmVxdWlyZXM6IHpzdGRfZGVjb21wcmVzc1xuLy9SZXF1aXJlczogVUludDhBcnJheVJlYWRlclxuZnVuY3Rpb24gY2FtbF9pbnB1dF92YWx1ZV9mcm9tX3JlYWRlcihyZWFkZXIsIG9mcykge1xuICBmdW5jdGlvbiByZWFkdmxxKG92ZXJmbG93KSB7XG4gICAgdmFyIGMgPSByZWFkZXIucmVhZDh1KCk7XG4gICAgdmFyIG4gPSBjICYgMHg3RjtcbiAgICB3aGlsZSAoKGMgJiAweDgwKSAhPSAwKSB7XG4gICAgICBjID0gcmVhZGVyLnJlYWQ4dSgpO1xuICAgICAgdmFyIG43ID0gbiA8PCA3O1xuICAgICAgaWYgKG4gIT0gbjcgPj4gNykgb3ZlcmZsb3dbMF0gPSB0cnVlO1xuICAgICAgbiA9IG43IHwgKGMgJiAweDdGKTtcbiAgICB9XG4gICAgcmV0dXJuIG47XG4gIH1cbiAgdmFyIG1hZ2ljID0gcmVhZGVyLnJlYWQzMnUgKClcbiAgc3dpdGNoKG1hZ2ljKXtcbiAgY2FzZSAweDg0OTVBNkJFOiAvKiBJbnRleHRfbWFnaWNfbnVtYmVyX3NtYWxsICovXG4gICAgdmFyIGhlYWRlcl9sZW4gPSAyMDtcbiAgICB2YXIgY29tcHJlc3NlZCA9IDA7XG4gICAgdmFyIGRhdGFfbGVuID0gcmVhZGVyLnJlYWQzMnUgKCk7XG4gICAgdmFyIHVuY29tcHJlc3NlZF9kYXRhX2xlbiA9IGRhdGFfbGVuO1xuICAgIHZhciBudW1fb2JqZWN0cyA9IHJlYWRlci5yZWFkMzJ1ICgpO1xuICAgIHZhciBfc2l6ZV8zMiA9IHJlYWRlci5yZWFkMzJ1ICgpO1xuICAgIHZhciBfc2l6ZV82NCA9IHJlYWRlci5yZWFkMzJ1ICgpO1xuICAgIGJyZWFrXG4gIGNhc2UgMHg4NDk1QTZCRDogLyogSW50ZXh0X21hZ2ljX251bWJlcl9jb21wcmVzc2VkICovXG4gICAgdmFyIGhlYWRlcl9sZW4gPSByZWFkZXIucmVhZDh1KCkgJiAweDNGO1xuICAgIHZhciBjb21wcmVzc2VkID0gMTtcbiAgICB2YXIgb3ZlcmZsb3cgPSBbZmFsc2VdO1xuICAgIHZhciBkYXRhX2xlbiA9IHJlYWR2bHEob3ZlcmZsb3cpO1xuICAgIHZhciB1bmNvbXByZXNzZWRfZGF0YV9sZW4gPSByZWFkdmxxKG92ZXJmbG93KTtcbiAgICB2YXIgbnVtX29iamVjdHMgPSByZWFkdmxxKG92ZXJmbG93KTtcbiAgICB2YXIgX3NpemVfMzIgPSByZWFkdmxxIChvdmVyZmxvdyk7XG4gICAgdmFyIF9zaXplXzY0ID0gcmVhZHZscSAob3ZlcmZsb3cpO1xuICAgIGlmKG92ZXJmbG93WzBdKXtcbiAgICAgICAgY2FtbF9mYWlsd2l0aChcImNhbWxfaW5wdXRfdmFsdWVfZnJvbV9yZWFkZXI6IG9iamVjdCB0b28gbGFyZ2UgdG8gYmUgcmVhZCBiYWNrIG9uIHRoaXMgcGxhdGZvcm1cIik7XG4gICAgfVxuICAgIGJyZWFrXG4gIGNhc2UgMHg4NDk1QTZCRjogLyogSW50ZXh0X21hZ2ljX251bWJlcl9iaWcgKi9cbiAgICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF9pbnB1dF92YWx1ZV9mcm9tX3JlYWRlcjogb2JqZWN0IHRvbyBsYXJnZSB0byBiZSByZWFkIGJhY2sgb24gYSAzMi1iaXQgcGxhdGZvcm1cIik7XG4gICAgYnJlYWtcbiAgZGVmYXVsdDpcbiAgICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF9pbnB1dF92YWx1ZV9mcm9tX3JlYWRlcjogYmFkIG9iamVjdFwiKTtcbiAgICBicmVhaztcbiAgfVxuICB2YXIgc3RhY2sgPSBbXTtcbiAgdmFyIGludGVybl9vYmpfdGFibGUgPSAobnVtX29iamVjdHMgPiAwKT9bXTpudWxsO1xuICB2YXIgb2JqX2NvdW50ZXIgPSAwO1xuICBmdW5jdGlvbiBpbnRlcm5fcmVjIChyZWFkZXIpIHtcbiAgICB2YXIgY29kZSA9IHJlYWRlci5yZWFkOHUgKCk7XG4gICAgaWYgKGNvZGUgPj0gMHg0MCAvKmNzdC5QUkVGSVhfU01BTExfSU5UKi8pIHtcbiAgICAgIGlmIChjb2RlID49IDB4ODAgLypjc3QuUFJFRklYX1NNQUxMX0JMT0NLKi8pIHtcbiAgICAgICAgdmFyIHRhZyA9IGNvZGUgJiAweEY7XG4gICAgICAgIHZhciBzaXplID0gKGNvZGUgPj4gNCkgJiAweDc7XG4gICAgICAgIHZhciB2ID0gW3RhZ107XG4gICAgICAgIGlmIChzaXplID09IDApIHJldHVybiB2O1xuICAgICAgICBpZiAoaW50ZXJuX29ial90YWJsZSkgaW50ZXJuX29ial90YWJsZVtvYmpfY291bnRlcisrXSA9IHY7XG4gICAgICAgIHN0YWNrLnB1c2godiwgc2l6ZSk7XG4gICAgICAgIHJldHVybiB2O1xuICAgICAgfSBlbHNlXG4gICAgICAgIHJldHVybiAoY29kZSAmIDB4M0YpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoY29kZSA+PSAweDIwLypjc3QuUFJFRklYX1NNQUxMX1NUUklORyAqLykge1xuICAgICAgICB2YXIgbGVuID0gY29kZSAmIDB4MUY7XG4gICAgICAgIHZhciB2ID0gcmVhZGVyLnJlYWRzdHIgKGxlbik7XG4gICAgICAgIGlmIChpbnRlcm5fb2JqX3RhYmxlKSBpbnRlcm5fb2JqX3RhYmxlW29ial9jb3VudGVyKytdID0gdjtcbiAgICAgICAgcmV0dXJuIHY7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzd2l0Y2goY29kZSkge1xuICAgICAgICBjYXNlIDB4MDA6IC8vY3N0LkNPREVfSU5UODpcbiAgICAgICAgICByZXR1cm4gcmVhZGVyLnJlYWQ4cyAoKTtcbiAgICAgICAgY2FzZSAweDAxOiAvL2NzdC5DT0RFX0lOVDE2OlxuICAgICAgICAgIHJldHVybiByZWFkZXIucmVhZDE2cyAoKTtcbiAgICAgICAgY2FzZSAweDAyOiAvL2NzdC5DT0RFX0lOVDMyOlxuICAgICAgICAgIHJldHVybiByZWFkZXIucmVhZDMycyAoKTtcbiAgICAgICAgY2FzZSAweDAzOiAvL2NzdC5DT0RFX0lOVDY0OlxuICAgICAgICAgIGNhbWxfZmFpbHdpdGgoXCJpbnB1dF92YWx1ZTogaW50ZWdlciB0b28gbGFyZ2VcIik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMHgwNDogLy9jc3QuQ09ERV9TSEFSRUQ4OlxuICAgICAgICAgIHZhciBvZmZzZXQgPSByZWFkZXIucmVhZDh1ICgpO1xuICAgICAgICAgIGlmKGNvbXByZXNzZWQgPT0gMCkgb2Zmc2V0ID0gb2JqX2NvdW50ZXIgLSBvZmZzZXQ7XG4gICAgICAgICAgcmV0dXJuIGludGVybl9vYmpfdGFibGVbb2Zmc2V0XTtcbiAgICAgICAgY2FzZSAweDA1OiAvL2NzdC5DT0RFX1NIQVJFRDE2OlxuICAgICAgICAgIHZhciBvZmZzZXQgPSByZWFkZXIucmVhZDE2dSAoKTtcbiAgICAgICAgICBpZihjb21wcmVzc2VkID09IDApIG9mZnNldCA9IG9ial9jb3VudGVyIC0gb2Zmc2V0O1xuICAgICAgICAgIHJldHVybiBpbnRlcm5fb2JqX3RhYmxlW29mZnNldF07XG4gICAgICAgIGNhc2UgMHgwNjogLy9jc3QuQ09ERV9TSEFSRUQzMjpcbiAgICAgICAgICB2YXIgb2Zmc2V0ID0gcmVhZGVyLnJlYWQzMnUgKCk7XG4gICAgICAgICAgaWYoY29tcHJlc3NlZCA9PSAwKSBvZmZzZXQgPSBvYmpfY291bnRlciAtIG9mZnNldDtcbiAgICAgICAgICByZXR1cm4gaW50ZXJuX29ial90YWJsZVtvZmZzZXRdO1xuICAgICAgICBjYXNlIDB4MDg6IC8vY3N0LkNPREVfQkxPQ0szMjpcbiAgICAgICAgICB2YXIgaGVhZGVyID0gcmVhZGVyLnJlYWQzMnUgKCk7XG4gICAgICAgICAgdmFyIHRhZyA9IGhlYWRlciAmIDB4RkY7XG4gICAgICAgICAgdmFyIHNpemUgPSBoZWFkZXIgPj4gMTA7XG4gICAgICAgICAgdmFyIHYgPSBbdGFnXTtcbiAgICAgICAgICBpZiAoc2l6ZSA9PSAwKSByZXR1cm4gdjtcbiAgICAgICAgICBpZiAoaW50ZXJuX29ial90YWJsZSkgaW50ZXJuX29ial90YWJsZVtvYmpfY291bnRlcisrXSA9IHY7XG4gICAgICAgICAgc3RhY2sucHVzaCh2LCBzaXplKTtcbiAgICAgICAgICByZXR1cm4gdjtcbiAgICAgICAgY2FzZSAweDEzOiAvL2NzdC5DT0RFX0JMT0NLNjQ6XG4gICAgICAgICAgY2FtbF9mYWlsd2l0aCAoXCJpbnB1dF92YWx1ZTogZGF0YSBibG9jayB0b28gbGFyZ2VcIik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMHgwOTogLy9jc3QuQ09ERV9TVFJJTkc4OlxuICAgICAgICAgIHZhciBsZW4gPSByZWFkZXIucmVhZDh1KCk7XG4gICAgICAgICAgdmFyIHYgPSByZWFkZXIucmVhZHN0ciAobGVuKTtcbiAgICAgICAgICBpZiAoaW50ZXJuX29ial90YWJsZSkgaW50ZXJuX29ial90YWJsZVtvYmpfY291bnRlcisrXSA9IHY7XG4gICAgICAgICAgcmV0dXJuIHY7XG4gICAgICAgIGNhc2UgMHgwQTogLy9jc3QuQ09ERV9TVFJJTkczMjpcbiAgICAgICAgICB2YXIgbGVuID0gcmVhZGVyLnJlYWQzMnUoKTtcbiAgICAgICAgICB2YXIgdiA9IHJlYWRlci5yZWFkc3RyIChsZW4pO1xuICAgICAgICAgIGlmIChpbnRlcm5fb2JqX3RhYmxlKSBpbnRlcm5fb2JqX3RhYmxlW29ial9jb3VudGVyKytdID0gdjtcbiAgICAgICAgICByZXR1cm4gdjtcbiAgICAgICAgY2FzZSAweDBDOiAvL2NzdC5DT0RFX0RPVUJMRV9MSVRUTEU6XG4gICAgICAgICAgdmFyIHQgPSBuZXcgQXJyYXkoOCk7O1xuICAgICAgICAgIGZvciAodmFyIGkgPSAwO2kgPCA4O2krKykgdFs3IC0gaV0gPSByZWFkZXIucmVhZDh1ICgpO1xuICAgICAgICAgIHZhciB2ID0gY2FtbF9mbG9hdF9vZl9ieXRlcyAodCk7XG4gICAgICAgICAgaWYgKGludGVybl9vYmpfdGFibGUpIGludGVybl9vYmpfdGFibGVbb2JqX2NvdW50ZXIrK10gPSB2O1xuICAgICAgICAgIHJldHVybiB2O1xuICAgICAgICBjYXNlIDB4MEI6IC8vY3N0LkNPREVfRE9VQkxFX0JJRzpcbiAgICAgICAgICB2YXIgdCA9IG5ldyBBcnJheSg4KTs7XG4gICAgICAgICAgZm9yICh2YXIgaSA9IDA7aSA8IDg7aSsrKSB0W2ldID0gcmVhZGVyLnJlYWQ4dSAoKTtcbiAgICAgICAgICB2YXIgdiA9IGNhbWxfZmxvYXRfb2ZfYnl0ZXMgKHQpO1xuICAgICAgICAgIGlmIChpbnRlcm5fb2JqX3RhYmxlKSBpbnRlcm5fb2JqX3RhYmxlW29ial9jb3VudGVyKytdID0gdjtcbiAgICAgICAgICByZXR1cm4gdjtcbiAgICAgICAgY2FzZSAweDBFOiAvL2NzdC5DT0RFX0RPVUJMRV9BUlJBWThfTElUVExFOlxuICAgICAgICAgIHZhciBsZW4gPSByZWFkZXIucmVhZDh1KCk7XG4gICAgICAgICAgdmFyIHYgPSBuZXcgQXJyYXkobGVuKzEpO1xuICAgICAgICAgIHZbMF0gPSAyNTQ7XG4gICAgICAgICAgdmFyIHQgPSBuZXcgQXJyYXkoOCk7O1xuICAgICAgICAgIGlmIChpbnRlcm5fb2JqX3RhYmxlKSBpbnRlcm5fb2JqX3RhYmxlW29ial9jb3VudGVyKytdID0gdjtcbiAgICAgICAgICBmb3IgKHZhciBpID0gMTtpIDw9IGxlbjtpKyspIHtcbiAgICAgICAgICAgIGZvciAodmFyIGogPSAwO2ogPCA4O2orKykgdFs3IC0gal0gPSByZWFkZXIucmVhZDh1KCk7XG4gICAgICAgICAgICB2W2ldID0gY2FtbF9mbG9hdF9vZl9ieXRlcyAodCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB2O1xuICAgICAgICBjYXNlIDB4MEQ6IC8vY3N0LkNPREVfRE9VQkxFX0FSUkFZOF9CSUc6XG4gICAgICAgICAgdmFyIGxlbiA9IHJlYWRlci5yZWFkOHUoKTtcbiAgICAgICAgICB2YXIgdiA9IG5ldyBBcnJheShsZW4rMSk7XG4gICAgICAgICAgdlswXSA9IDI1NDtcbiAgICAgICAgICB2YXIgdCA9IG5ldyBBcnJheSg4KTs7XG4gICAgICAgICAgaWYgKGludGVybl9vYmpfdGFibGUpIGludGVybl9vYmpfdGFibGVbb2JqX2NvdW50ZXIrK10gPSB2O1xuICAgICAgICAgIGZvciAodmFyIGkgPSAxO2kgPD0gbGVuO2krKykge1xuICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7aiA8IDg7aisrKSB0W2pdID0gcmVhZGVyLnJlYWQ4dSgpO1xuICAgICAgICAgICAgdiBbaV0gPSBjYW1sX2Zsb2F0X29mX2J5dGVzICh0KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHY7XG4gICAgICAgIGNhc2UgMHgwNzogLy9jc3QuQ09ERV9ET1VCTEVfQVJSQVkzMl9MSVRUTEU6XG4gICAgICAgICAgdmFyIGxlbiA9IHJlYWRlci5yZWFkMzJ1KCk7XG4gICAgICAgICAgdmFyIHYgPSBuZXcgQXJyYXkobGVuKzEpO1xuICAgICAgICAgIHZbMF0gPSAyNTQ7XG4gICAgICAgICAgaWYgKGludGVybl9vYmpfdGFibGUpIGludGVybl9vYmpfdGFibGVbb2JqX2NvdW50ZXIrK10gPSB2O1xuICAgICAgICAgIHZhciB0ID0gbmV3IEFycmF5KDgpOztcbiAgICAgICAgICBmb3IgKHZhciBpID0gMTtpIDw9IGxlbjtpKyspIHtcbiAgICAgICAgICAgIGZvciAodmFyIGogPSAwO2ogPCA4O2orKykgdFs3IC0gal0gPSByZWFkZXIucmVhZDh1KCk7XG4gICAgICAgICAgICB2W2ldID0gY2FtbF9mbG9hdF9vZl9ieXRlcyAodCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB2O1xuICAgICAgICBjYXNlIDB4MEY6IC8vY3N0LkNPREVfRE9VQkxFX0FSUkFZMzJfQklHOlxuICAgICAgICAgIHZhciBsZW4gPSByZWFkZXIucmVhZDMydSgpO1xuICAgICAgICAgIHZhciB2ID0gbmV3IEFycmF5KGxlbisxKTtcbiAgICAgICAgICB2WzBdID0gMjU0O1xuICAgICAgICAgIHZhciB0ID0gbmV3IEFycmF5KDgpOztcbiAgICAgICAgICBmb3IgKHZhciBpID0gMTtpIDw9IGxlbjtpKyspIHtcbiAgICAgICAgICAgIGZvciAodmFyIGogPSAwO2ogPCA4O2orKykgdFtqXSA9IHJlYWRlci5yZWFkOHUoKTtcbiAgICAgICAgICAgIHYgW2ldID0gY2FtbF9mbG9hdF9vZl9ieXRlcyAodCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB2O1xuICAgICAgICBjYXNlIDB4MTA6IC8vY3N0LkNPREVfQ09ERVBPSU5URVI6XG4gICAgICAgIGNhc2UgMHgxMTogLy9jc3QuQ09ERV9JTkZJWFBPSU5URVI6XG4gICAgICAgICAgY2FtbF9mYWlsd2l0aCAoXCJpbnB1dF92YWx1ZTogY29kZSBwb2ludGVyXCIpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDB4MTI6IC8vY3N0LkNPREVfQ1VTVE9NOlxuICAgICAgICBjYXNlIDB4MTg6IC8vY3N0LkNPREVfQ1VTVE9NX0xFTjpcbiAgICAgICAgY2FzZSAweDE5OiAvL2NzdC5DT0RFX0NVU1RPTV9GSVhFRDpcbiAgICAgICAgICB2YXIgYywgcyA9IFwiXCI7XG4gICAgICAgICAgd2hpbGUgKChjID0gcmVhZGVyLnJlYWQ4dSAoKSkgIT0gMCkgcyArPSBTdHJpbmcuZnJvbUNoYXJDb2RlIChjKTtcbiAgICAgICAgICB2YXIgb3BzID0gY2FtbF9jdXN0b21fb3BzW3NdO1xuICAgICAgICAgIHZhciBleHBlY3RlZF9zaXplO1xuICAgICAgICAgIGlmKCFvcHMpXG4gICAgICAgICAgICBjYW1sX2ZhaWx3aXRoKFwiaW5wdXRfdmFsdWU6IHVua25vd24gY3VzdG9tIGJsb2NrIGlkZW50aWZpZXJcIik7XG4gICAgICAgICAgc3dpdGNoKGNvZGUpe1xuICAgICAgICAgIGNhc2UgMHgxMjogLy8gY3N0LkNPREVfQ1VTVE9NIChkZXByZWNhdGVkKVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAweDE5OiAvLyBjc3QuQ09ERV9DVVNUT01fRklYRURcbiAgICAgICAgICAgIGlmKCFvcHMuZml4ZWRfbGVuZ3RoKVxuICAgICAgICAgICAgICBjYW1sX2ZhaWx3aXRoKFwiaW5wdXRfdmFsdWU6IGV4cGVjdGVkIGEgZml4ZWQtc2l6ZSBjdXN0b20gYmxvY2tcIik7XG4gICAgICAgICAgICBleHBlY3RlZF9zaXplID0gb3BzLmZpeGVkX2xlbmd0aDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMHgxODogLy8gY3N0LkNPREVfQ1VTVE9NX0xFTlxuICAgICAgICAgICAgZXhwZWN0ZWRfc2l6ZSA9IHJlYWRlci5yZWFkMzJ1ICgpO1xuICAgICAgICAgICAgLy8gU2tpcCBzaXplNjRcbiAgICAgICAgICAgIHJlYWRlci5yZWFkMzJzKCk7IHJlYWRlci5yZWFkMzJzKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIG9sZF9wb3MgPSByZWFkZXIuaTtcbiAgICAgICAgICB2YXIgc2l6ZSA9IFswXTtcbiAgICAgICAgICB2YXIgdiA9IG9wcy5kZXNlcmlhbGl6ZShyZWFkZXIsIHNpemUpO1xuICAgICAgICAgIGlmKGV4cGVjdGVkX3NpemUgIT0gdW5kZWZpbmVkKXtcbiAgICAgICAgICAgIGlmKGV4cGVjdGVkX3NpemUgIT0gc2l6ZVswXSlcbiAgICAgICAgICAgICAgY2FtbF9mYWlsd2l0aChcImlucHV0X3ZhbHVlOiBpbmNvcnJlY3QgbGVuZ3RoIG9mIHNlcmlhbGl6ZWQgY3VzdG9tIGJsb2NrXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaW50ZXJuX29ial90YWJsZSkgaW50ZXJuX29ial90YWJsZVtvYmpfY291bnRlcisrXSA9IHY7XG4gICAgICAgICAgcmV0dXJuIHY7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgY2FtbF9mYWlsd2l0aCAoXCJpbnB1dF92YWx1ZTogaWxsLWZvcm1lZCBtZXNzYWdlXCIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGlmKGNvbXByZXNzZWQpIHtcbiAgICB2YXIgZGF0YSA9IHJlYWRlci5yZWFkdWludDhhcnJheShkYXRhX2xlbik7XG4gICAgdmFyIHJlcyA9IG5ldyBVaW50OEFycmF5KHVuY29tcHJlc3NlZF9kYXRhX2xlbik7XG4gICAgdmFyIHJlcyA9IHpzdGRfZGVjb21wcmVzcyhkYXRhLCByZXMpO1xuICAgIHZhciByZWFkZXIgPSBuZXcgVUludDhBcnJheVJlYWRlcihyZXMsIDApO1xuICB9XG4gIHZhciByZXMgPSBpbnRlcm5fcmVjIChyZWFkZXIpO1xuICB3aGlsZSAoc3RhY2subGVuZ3RoID4gMCkge1xuICAgIHZhciBzaXplID0gc3RhY2sucG9wKCk7XG4gICAgdmFyIHYgPSBzdGFjay5wb3AoKTtcbiAgICB2YXIgZCA9IHYubGVuZ3RoO1xuICAgIGlmIChkIDwgc2l6ZSkgc3RhY2sucHVzaCh2LCBzaXplKTtcbiAgICB2W2RdID0gaW50ZXJuX3JlYyAocmVhZGVyKTtcbiAgfVxuICBpZiAodHlwZW9mIG9mcyE9XCJudW1iZXJcIikgb2ZzWzBdID0gcmVhZGVyLmk7XG4gIHJldHVybiByZXM7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWFyc2hhbF9oZWFkZXJfc2l6ZVxuLy9WZXJzaW9uOiA8IDUuMS4wXG52YXIgY2FtbF9tYXJzaGFsX2hlYWRlcl9zaXplID0gMjBcblxuLy9Qcm92aWRlczogY2FtbF9tYXJzaGFsX2hlYWRlcl9zaXplXG4vL1ZlcnNpb246ID49IDUuMS4wXG52YXIgY2FtbF9tYXJzaGFsX2hlYWRlcl9zaXplID0gMTZcblxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfbWFyc2hhbF9kYXRhX3NpemUgbXV0YWJsZVxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aCwgY2FtbF9ieXRlc191bnNhZmVfZ2V0XG4vL1JlcXVpcmVzOiBjYW1sX3VpbnQ4X2FycmF5X29mX2J5dGVzXG4vL1JlcXVpcmVzOiBVSW50OEFycmF5UmVhZGVyXG4vL1JlcXVpcmVzOiBjYW1sX21hcnNoYWxfaGVhZGVyX3NpemVcbmZ1bmN0aW9uIGNhbWxfbWFyc2hhbF9kYXRhX3NpemUgKHMsIG9mcykge1xuICB2YXIgciA9IG5ldyBVSW50OEFycmF5UmVhZGVyKGNhbWxfdWludDhfYXJyYXlfb2ZfYnl0ZXMocyksIG9mcyk7XG4gIGZ1bmN0aW9uIHJlYWR2bHEob3ZlcmZsb3cpIHtcbiAgICB2YXIgYyA9IHIucmVhZDh1KCk7XG4gICAgdmFyIG4gPSBjICYgMHg3RjtcbiAgICB3aGlsZSAoKGMgJiAweDgwKSAhPSAwKSB7XG4gICAgICBjID0gci5yZWFkOHUoKTtcbiAgICAgIHZhciBuNyA9IG4gPDwgNztcbiAgICAgIGlmIChuICE9IG43ID4+IDcpIG92ZXJmbG93WzBdID0gdHJ1ZTtcbiAgICAgIG4gPSBuNyB8IChjICYgMHg3Rik7XG4gICAgfVxuICAgIHJldHVybiBuO1xuICB9XG5cbiAgc3dpdGNoKHIucmVhZDMydSgpKXtcbiAgY2FzZSAweDg0OTVBNkJFOiAvKiBJbnRleHRfbWFnaWNfbnVtYmVyX3NtYWxsICovXG4gICAgdmFyIGhlYWRlcl9sZW4gPSAyMDtcbiAgICB2YXIgZGF0YV9sZW4gPSByLnJlYWQzMnUoKTtcbiAgICBicmVhaztcbiAgY2FzZSAweDg0OTVBNkJEOiAvKiBJbnRleHRfbWFnaWNfbnVtYmVyX2NvbXByZXNzZWQgKi9cbiAgICB2YXIgaGVhZGVyX2xlbiA9IHIucmVhZDh1KCkgJiAweDNGO1xuICAgIHZhciBvdmVyZmxvdyA9IFtmYWxzZV07XG4gICAgdmFyIGRhdGFfbGVuID0gcmVhZHZscShvdmVyZmxvdyk7XG4gICAgaWYob3ZlcmZsb3dbMF0pe1xuICAgICAgY2FtbF9mYWlsd2l0aChcIk1hcnNoYWwuZGF0YV9zaXplOiBvYmplY3QgdG9vIGxhcmdlIHRvIGJlIHJlYWQgYmFjayBvbiB0aGlzIHBsYXRmb3JtXCIpO1xuICAgIH1cbiAgICBicmVha1xuICBjYXNlIDB4ODQ5NUE2QkY6IC8qIEludGV4dF9tYWdpY19udW1iZXJfYmlnICovXG4gIGRlZmF1bHQ6XG4gICAgY2FtbF9mYWlsd2l0aChcIk1hcnNoYWwuZGF0YV9zaXplOiBiYWQgb2JqZWN0XCIpO1xuICAgIGJyZWFrXG4gIH1cbiAgcmV0dXJuIGhlYWRlcl9sZW4gLSBjYW1sX21hcnNoYWxfaGVhZGVyX3NpemUgKyBkYXRhX2xlbjtcbn1cblxuLy9Qcm92aWRlczogTWxPYmplY3RUYWJsZVxudmFyIE1sT2JqZWN0VGFibGU7XG5pZiAodHlwZW9mIGdsb2JhbFRoaXMuTWFwID09PSAndW5kZWZpbmVkJykge1xuICBNbE9iamVjdFRhYmxlID0gZnVuY3Rpb24oKSB7XG4gICAgLyogcG9seWZpbGwgKHVzaW5nIGxpbmVhciBzZWFyY2gpICovXG4gICAgZnVuY3Rpb24gTmFpdmVMb29rdXAob2JqcykgeyB0aGlzLm9ianMgPSBvYmpzOyB9XG4gICAgTmFpdmVMb29rdXAucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uKHYpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5vYmpzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmICh0aGlzLm9ianNbaV0gPT09IHYpIHJldHVybiBpO1xuICAgICAgfVxuICAgIH07XG4gICAgTmFpdmVMb29rdXAucHJvdG90eXBlLnNldCA9IGZ1bmN0aW9uKCkge1xuICAgICAgLy8gRG8gbm90aGluZyBoZXJlLiBbTWxPYmplY3RUYWJsZS5zdG9yZV0gd2lsbCBwdXNoIHRvIFt0aGlzLm9ianNdIGRpcmVjdGx5LlxuICAgIH07XG5cbiAgICByZXR1cm4gZnVuY3Rpb24gTWxPYmplY3RUYWJsZSgpIHtcbiAgICAgIHRoaXMub2JqcyA9IFtdOyB0aGlzLmxvb2t1cCA9IG5ldyBOYWl2ZUxvb2t1cCh0aGlzLm9ianMpO1xuICAgIH07XG4gIH0oKTtcbn1cbmVsc2Uge1xuICBNbE9iamVjdFRhYmxlID0gZnVuY3Rpb24gTWxPYmplY3RUYWJsZSgpIHtcbiAgICB0aGlzLm9ianMgPSBbXTsgdGhpcy5sb29rdXAgPSBuZXcgZ2xvYmFsVGhpcy5NYXAoKTtcbiAgfTtcbn1cblxuTWxPYmplY3RUYWJsZS5wcm90b3R5cGUuc3RvcmUgPSBmdW5jdGlvbih2KSB7XG4gIHRoaXMubG9va3VwLnNldCh2LCB0aGlzLm9ianMubGVuZ3RoKTtcbiAgdGhpcy5vYmpzLnB1c2godik7XG59XG5cbk1sT2JqZWN0VGFibGUucHJvdG90eXBlLnJlY2FsbCA9IGZ1bmN0aW9uKHYpIHtcbiAgdmFyIGkgPSB0aGlzLmxvb2t1cC5nZXQodik7XG4gIHJldHVybiAoaSA9PT0gdW5kZWZpbmVkKVxuICAgID8gdW5kZWZpbmVkIDogdGhpcy5vYmpzLmxlbmd0aCAtIGk7ICAgLyogaW5kZXggaXMgcmVsYXRpdmUgKi9cbn1cblxuLy9Qcm92aWRlczogY2FtbF9vdXRwdXRfdmFsXG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X3RvX2J5dGVzLCBjYW1sX2ZhaWx3aXRoXG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X2JpdHNfb2ZfZmxvYXRcbi8vUmVxdWlyZXM6IGNhbWxfaXNfbWxfYnl0ZXMsIGNhbWxfbWxfYnl0ZXNfbGVuZ3RoLCBjYW1sX2J5dGVzX3Vuc2FmZV9nZXRcbi8vUmVxdWlyZXM6IGNhbWxfaXNfbWxfc3RyaW5nLCBjYW1sX21sX3N0cmluZ19sZW5ndGgsIGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXRcbi8vUmVxdWlyZXM6IE1sT2JqZWN0VGFibGUsIGNhbWxfbGlzdF90b19qc19hcnJheSwgY2FtbF9jdXN0b21fb3BzXG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnQsY2FtbF9zdHJpbmdfb2ZfanNieXRlcywgY2FtbF9pc19jb250aW51YXRpb25fdGFnXG52YXIgY2FtbF9vdXRwdXRfdmFsID0gZnVuY3Rpb24gKCl7XG4gIGZ1bmN0aW9uIFdyaXRlciAoKSB7IHRoaXMuY2h1bmsgPSBbXTsgfVxuICBXcml0ZXIucHJvdG90eXBlID0ge1xuICAgIGNodW5rX2lkeDoyMCwgYmxvY2tfbGVuOjAsIG9ial9jb3VudGVyOjAsIHNpemVfMzI6MCwgc2l6ZV82NDowLFxuICAgIHdyaXRlOmZ1bmN0aW9uIChzaXplLCB2YWx1ZSkge1xuICAgICAgZm9yICh2YXIgaSA9IHNpemUgLSA4O2kgPj0gMDtpIC09IDgpXG4gICAgICAgIHRoaXMuY2h1bmtbdGhpcy5jaHVua19pZHgrK10gPSAodmFsdWUgPj4gaSkgJiAweEZGO1xuICAgIH0sXG4gICAgd3JpdGVfYXQ6ZnVuY3Rpb24gKHBvcywgc2l6ZSwgdmFsdWUpIHtcbiAgICAgIHZhciBwb3MgPSBwb3M7XG4gICAgICBmb3IgKHZhciBpID0gc2l6ZSAtIDg7aSA+PSAwO2kgLT0gOClcbiAgICAgICAgdGhpcy5jaHVua1twb3MrK10gPSAodmFsdWUgPj4gaSkgJiAweEZGO1xuICAgIH0sXG4gICAgd3JpdGVfY29kZTpmdW5jdGlvbiAoc2l6ZSwgY29kZSwgdmFsdWUpIHtcbiAgICAgIHRoaXMuY2h1bmtbdGhpcy5jaHVua19pZHgrK10gPSBjb2RlO1xuICAgICAgZm9yICh2YXIgaSA9IHNpemUgLSA4O2kgPj0gMDtpIC09IDgpXG4gICAgICAgIHRoaXMuY2h1bmtbdGhpcy5jaHVua19pZHgrK10gPSAodmFsdWUgPj4gaSkgJiAweEZGO1xuICAgIH0sXG4gICAgd3JpdGVfc2hhcmVkOmZ1bmN0aW9uIChvZmZzZXQpIHtcbiAgICAgIGlmIChvZmZzZXQgPCAoMSA8PCA4KSkgdGhpcy53cml0ZV9jb2RlKDgsIDB4MDQgLypjc3QuQ09ERV9TSEFSRUQ4Ki8sIG9mZnNldCk7XG4gICAgICBlbHNlIGlmIChvZmZzZXQgPCAoMSA8PCAxNikpIHRoaXMud3JpdGVfY29kZSgxNiwgMHgwNSAvKmNzdC5DT0RFX1NIQVJFRDE2Ki8sIG9mZnNldCk7XG4gICAgICBlbHNlIHRoaXMud3JpdGVfY29kZSgzMiwgMHgwNiAvKmNzdC5DT0RFX1NIQVJFRDMyKi8sIG9mZnNldCk7XG4gICAgfSxcbiAgICBwb3M6ZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy5jaHVua19pZHggfSxcbiAgICBmaW5hbGl6ZTpmdW5jdGlvbiAoKSB7XG4gICAgICB0aGlzLmJsb2NrX2xlbiA9IHRoaXMuY2h1bmtfaWR4IC0gMjA7XG4gICAgICB0aGlzLmNodW5rX2lkeCA9IDA7XG4gICAgICB0aGlzLndyaXRlICgzMiwgMHg4NDk1QTZCRSk7XG4gICAgICB0aGlzLndyaXRlICgzMiwgdGhpcy5ibG9ja19sZW4pO1xuICAgICAgdGhpcy53cml0ZSAoMzIsIHRoaXMub2JqX2NvdW50ZXIpO1xuICAgICAgdGhpcy53cml0ZSAoMzIsIHRoaXMuc2l6ZV8zMik7XG4gICAgICB0aGlzLndyaXRlICgzMiwgdGhpcy5zaXplXzY0KTtcbiAgICAgIHJldHVybiB0aGlzLmNodW5rO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZnVuY3Rpb24gKHYsIGZsYWdzKSB7XG4gICAgZmxhZ3MgPSBjYW1sX2xpc3RfdG9fanNfYXJyYXkoZmxhZ3MpO1xuXG4gICAgdmFyIG5vX3NoYXJpbmcgPSAoZmxhZ3MuaW5kZXhPZigwIC8qTWFyc2hhbC5Ob19zaGFyaW5nKi8pICE9PSAtMSksXG4gICAgICAgIGNsb3N1cmVzID0gIChmbGFncy5pbmRleE9mKDEgLypNYXJzaGFsLkNsb3N1cmVzKi8pICE9PSAtMSk7XG4gICAgLyogTWFyc2hhbC5Db21wYXRfMzIgaXMgcmVkdW5kYW50IHNpbmNlIGludGVnZXJzIGFyZSAzMi1iaXQgYW55d2F5ICovXG5cbiAgICBpZiAoY2xvc3VyZXMpXG4gICAgICBjb25zb2xlLndhcm4oXCJpbiBjYW1sX291dHB1dF92YWw6IGZsYWcgTWFyc2hhbC5DbG9zdXJlcyBpcyBub3Qgc3VwcG9ydGVkLlwiKTtcblxuICAgIHZhciB3cml0ZXIgPSBuZXcgV3JpdGVyICgpO1xuICAgIHZhciBzdGFjayA9IFtdO1xuICAgIHZhciBpbnRlcm5fb2JqX3RhYmxlID0gbm9fc2hhcmluZyA/IG51bGwgOiBuZXcgTWxPYmplY3RUYWJsZSgpO1xuXG4gICAgZnVuY3Rpb24gbWVtbyh2KSB7XG4gICAgICBpZiAobm9fc2hhcmluZykgcmV0dXJuIGZhbHNlO1xuICAgICAgdmFyIGV4aXN0aW5nX29mZnNldCA9IGludGVybl9vYmpfdGFibGUucmVjYWxsKHYpO1xuICAgICAgaWYgKGV4aXN0aW5nX29mZnNldCkgeyB3cml0ZXIud3JpdGVfc2hhcmVkKGV4aXN0aW5nX29mZnNldCk7IHJldHVybiB0cnVlOyB9XG4gICAgICBlbHNlIHsgaW50ZXJuX29ial90YWJsZS5zdG9yZSh2KTsgcmV0dXJuIGZhbHNlOyB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZXh0ZXJuX3JlYyAodikge1xuICAgICAgaWYgKHYuY2FtbF9jdXN0b20pIHtcbiAgICAgICAgaWYgKG1lbW8odikpIHJldHVybjtcbiAgICAgICAgdmFyIG5hbWUgPSB2LmNhbWxfY3VzdG9tO1xuICAgICAgICB2YXIgb3BzID0gY2FtbF9jdXN0b21fb3BzW25hbWVdO1xuICAgICAgICB2YXIgc3pfMzJfNjQgPSBbMCwwXTtcbiAgICAgICAgaWYoIW9wcy5zZXJpYWxpemUpXG4gICAgICAgICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwib3V0cHV0X3ZhbHVlOiBhYnN0cmFjdCB2YWx1ZSAoQ3VzdG9tKVwiKTtcbiAgICAgICAgaWYob3BzLmZpeGVkX2xlbmd0aCA9PSB1bmRlZmluZWQpe1xuICAgICAgICAgIHdyaXRlci53cml0ZSAoOCwgMHgxOCAvKmNzdC5DT0RFX0NVU1RPTV9MRU4qLyk7XG4gICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuYW1lLmxlbmd0aDsgaSsrKVxuICAgICAgICAgICAgd3JpdGVyLndyaXRlICg4LCBuYW1lLmNoYXJDb2RlQXQoaSkpO1xuICAgICAgICAgIHdyaXRlci53cml0ZSg4LCAwKTtcbiAgICAgICAgICB2YXIgaGVhZGVyX3BvcyA9IHdyaXRlci5wb3MgKCk7XG4gICAgICAgICAgZm9yKHZhciBpID0gMDsgaSA8IDEyOyBpKyspIHtcbiAgICAgICAgICAgIHdyaXRlci53cml0ZSg4LCAwKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgb3BzLnNlcmlhbGl6ZSh3cml0ZXIsIHYsIHN6XzMyXzY0KTtcbiAgICAgICAgICB3cml0ZXIud3JpdGVfYXQoaGVhZGVyX3BvcywgMzIsIHN6XzMyXzY0WzBdKTtcbiAgICAgICAgICB3cml0ZXIud3JpdGVfYXQoaGVhZGVyX3BvcyArIDQsIDMyLCAwKTsgLy8gemVyb1xuICAgICAgICAgIHdyaXRlci53cml0ZV9hdChoZWFkZXJfcG9zICsgOCwgMzIsIHN6XzMyXzY0WzFdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB3cml0ZXIud3JpdGUgKDgsIDB4MTkgLypjc3QuQ09ERV9DVVNUT01fRklYRUQqLyk7XG4gICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuYW1lLmxlbmd0aDsgaSsrKVxuICAgICAgICAgICAgd3JpdGVyLndyaXRlICg4LCBuYW1lLmNoYXJDb2RlQXQoaSkpO1xuICAgICAgICAgIHdyaXRlci53cml0ZSg4LCAwKTtcbiAgICAgICAgICB2YXIgb2xkX3BvcyA9IHdyaXRlci5wb3MoKTtcbiAgICAgICAgICBvcHMuc2VyaWFsaXplKHdyaXRlciwgdiwgc3pfMzJfNjQpO1xuICAgICAgICAgIGlmIChvcHMuZml4ZWRfbGVuZ3RoICE9IHdyaXRlci5wb3MoKSAtIG9sZF9wb3MpXG4gICAgICAgICAgICBjYW1sX2ZhaWx3aXRoKFwib3V0cHV0X3ZhbHVlOiBpbmNvcnJlY3QgZml4ZWQgc2l6ZXMgc3BlY2lmaWVkIGJ5IFwiICsgbmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgd3JpdGVyLnNpemVfMzIgKz0gMiArICgoc3pfMzJfNjRbMF0gKyAzKSA+PiAyKTtcbiAgICAgICAgd3JpdGVyLnNpemVfNjQgKz0gMiArICgoc3pfMzJfNjRbMV0gKyA3KSA+PiAzKTtcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKHYgaW5zdGFuY2VvZiBBcnJheSAmJiB2WzBdID09PSAodlswXXwwKSkge1xuICAgICAgICBpZiAodlswXSA9PSAyNTEpIHtcbiAgICAgICAgICBjYW1sX2ZhaWx3aXRoKFwib3V0cHV0X3ZhbHVlOiBhYnN0cmFjdCB2YWx1ZSAoQWJzdHJhY3QpXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjYW1sX2lzX2NvbnRpbnVhdGlvbl90YWcodlswXSkpXG4gICAgICAgICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwib3V0cHV0X3ZhbHVlOiBjb250aW51YXRpb24gdmFsdWVcIik7XG4gICAgICAgIGlmICh2Lmxlbmd0aCA+IDEgJiYgbWVtbyh2KSkgcmV0dXJuO1xuICAgICAgICBpZiAodlswXSA8IDE2ICYmIHYubGVuZ3RoIC0gMSA8IDgpXG4gICAgICAgICAgd3JpdGVyLndyaXRlICg4LCAweDgwIC8qY3N0LlBSRUZJWF9TTUFMTF9CTE9DSyovICsgdlswXSArICgodi5sZW5ndGggLSAxKTw8NCkpO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgd3JpdGVyLndyaXRlX2NvZGUoMzIsIDB4MDggLypjc3QuQ09ERV9CTE9DSzMyKi8sICgodi5sZW5ndGgtMSkgPDwgMTApIHwgdlswXSk7XG4gICAgICAgIHdyaXRlci5zaXplXzMyICs9IHYubGVuZ3RoO1xuICAgICAgICB3cml0ZXIuc2l6ZV82NCArPSB2Lmxlbmd0aDtcbiAgICAgICAgaWYgKHYubGVuZ3RoID4gMSkgc3RhY2sucHVzaCAodiwgMSk7XG4gICAgICB9IGVsc2UgaWYgKGNhbWxfaXNfbWxfYnl0ZXModikpIHtcbiAgICAgICAgaWYoIShjYW1sX2lzX21sX2J5dGVzKGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMoXCJcIikpKSkge1xuICAgICAgICAgIGNhbWxfZmFpbHdpdGgoXCJvdXRwdXRfdmFsdWU6IFtCeXRlcy50XSBjYW5ub3Qgc2FmZWx5IGJlIG1hcnNoYWxlZCB3aXRoIFstLWVuYWJsZSB1c2UtanMtc3RyaW5nXVwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobWVtbyh2KSkgcmV0dXJuO1xuICAgICAgICB2YXIgbGVuID0gY2FtbF9tbF9ieXRlc19sZW5ndGgodik7XG4gICAgICAgIGlmIChsZW4gPCAweDIwKVxuICAgICAgICAgIHdyaXRlci53cml0ZSAoOCwgMHgyMCAvKmNzdC5QUkVGSVhfU01BTExfU1RSSU5HKi8gKyBsZW4pO1xuICAgICAgICBlbHNlIGlmIChsZW4gPCAweDEwMClcbiAgICAgICAgICB3cml0ZXIud3JpdGVfY29kZSAoOCwgMHgwOS8qY3N0LkNPREVfU1RSSU5HOCovLCBsZW4pO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgd3JpdGVyLndyaXRlX2NvZGUgKDMyLCAweDBBIC8qY3N0LkNPREVfU1RSSU5HMzIqLywgbGVuKTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7aSA8IGxlbjtpKyspXG4gICAgICAgICAgd3JpdGVyLndyaXRlICg4LCBjYW1sX2J5dGVzX3Vuc2FmZV9nZXQodixpKSk7XG4gICAgICAgIHdyaXRlci5zaXplXzMyICs9IDEgKyAoKChsZW4gKyA0KSAvIDQpfDApO1xuICAgICAgICB3cml0ZXIuc2l6ZV82NCArPSAxICsgKCgobGVuICsgOCkgLyA4KXwwKTtcbiAgICAgIH0gZWxzZSBpZiAoY2FtbF9pc19tbF9zdHJpbmcodikpIHtcbiAgICAgICAgaWYgKG1lbW8odikpIHJldHVybjtcbiAgICAgICAgdmFyIGxlbiA9IGNhbWxfbWxfc3RyaW5nX2xlbmd0aCh2KTtcbiAgICAgICAgaWYgKGxlbiA8IDB4MjApXG4gICAgICAgICAgd3JpdGVyLndyaXRlICg4LCAweDIwIC8qY3N0LlBSRUZJWF9TTUFMTF9TVFJJTkcqLyArIGxlbik7XG4gICAgICAgIGVsc2UgaWYgKGxlbiA8IDB4MTAwKVxuICAgICAgICAgIHdyaXRlci53cml0ZV9jb2RlICg4LCAweDA5Lypjc3QuQ09ERV9TVFJJTkc4Ki8sIGxlbik7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICB3cml0ZXIud3JpdGVfY29kZSAoMzIsIDB4MEEgLypjc3QuQ09ERV9TVFJJTkczMiovLCBsZW4pO1xuICAgICAgICBmb3IgKHZhciBpID0gMDtpIDwgbGVuO2krKylcbiAgICAgICAgICB3cml0ZXIud3JpdGUgKDgsIGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQodixpKSk7XG4gICAgICAgIHdyaXRlci5zaXplXzMyICs9IDEgKyAoKChsZW4gKyA0KSAvIDQpfDApO1xuICAgICAgICB3cml0ZXIuc2l6ZV82NCArPSAxICsgKCgobGVuICsgOCkgLyA4KXwwKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICh2ICE9ICh2fDApKXtcbiAgICAgICAgICB2YXIgdHlwZV9vZl92ID0gdHlwZW9mIHY7XG4gICAgICAgICAgLy9cbiAgICAgICAgICAvLyBJZiBhIGZsb2F0IGhhcHBlbnMgdG8gYmUgYW4gaW50ZWdlciBpdCBpcyBzZXJpYWxpemVkIGFzIGFuIGludGVnZXJcbiAgICAgICAgICAvLyAoSnNfb2Zfb2NhbWwgY2Fubm90IHRlbGwgd2hldGhlciB0aGUgdHlwZSBvZiBhbiBpbnRlZ2VyIG51bWJlciBpc1xuICAgICAgICAgIC8vIGZsb2F0IG9yIGludGVnZXIuKSBUaGlzIGNhbiByZXN1bHQgaW4gdW5leHBlY3RlZCBjcmFzaGVzIHdoZW5cbiAgICAgICAgICAvLyB1bm1hcnNoYWxsaW5nIHVzaW5nIHRoZSBzdGFuZGFyZCBydW50aW1lLiBJdCBzZWVtcyBiZXR0ZXIgdG9cbiAgICAgICAgICAvLyBzeXN0ZW1hdGljYWxseSBmYWlsIG9uIG1hcnNoYWxsaW5nLlxuICAgICAgICAgIC8vXG4gICAgICAgICAgLy8gICAgICAgICAgaWYodHlwZV9vZl92ICE9IFwibnVtYmVyXCIpXG4gICAgICAgICAgY2FtbF9mYWlsd2l0aChcIm91dHB1dF92YWx1ZTogYWJzdHJhY3QgdmFsdWUgKFwiK3R5cGVfb2ZfditcIilcIik7XG4gICAgICAgICAgLy8gICAgICAgICAgdmFyIHQgPSBjYW1sX2ludDY0X3RvX2J5dGVzKGNhbWxfaW50NjRfYml0c19vZl9mbG9hdCh2KSk7XG4gICAgICAgICAgLy8gICAgICAgICAgd3JpdGVyLndyaXRlICg4LCAweDBCIC8qY3N0LkNPREVfRE9VQkxFX0JJRyovKTtcbiAgICAgICAgICAvLyAgICAgICAgICBmb3IodmFyIGkgPSAwOyBpPDg7IGkrKyl7d3JpdGVyLndyaXRlKDgsdFtpXSl9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodiA+PSAwICYmIHYgPCAweDQwKSB7XG4gICAgICAgICAgd3JpdGVyLndyaXRlICg4LCAwWDQwIC8qY3N0LlBSRUZJWF9TTUFMTF9JTlQqLyArIHYpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICh2ID49IC0oMSA8PCA3KSAmJiB2IDwgKDEgPDwgNykpXG4gICAgICAgICAgICB3cml0ZXIud3JpdGVfY29kZSg4LCAweDAwIC8qY3N0LkNPREVfSU5UOCovLCB2KTtcbiAgICAgICAgICBlbHNlIGlmICh2ID49IC0oMSA8PCAxNSkgJiYgdiA8ICgxIDw8IDE1KSlcbiAgICAgICAgICAgIHdyaXRlci53cml0ZV9jb2RlKDE2LCAweDAxIC8qY3N0LkNPREVfSU5UMTYqLywgdik7XG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgd3JpdGVyLndyaXRlX2NvZGUoMzIsIDB4MDIgLypjc3QuQ09ERV9JTlQzMiovLCB2KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBleHRlcm5fcmVjICh2KTtcbiAgICB3aGlsZSAoc3RhY2subGVuZ3RoID4gMCkge1xuICAgICAgdmFyIGkgPSBzdGFjay5wb3AgKCk7XG4gICAgICB2YXIgdiA9IHN0YWNrLnBvcCAoKTtcbiAgICAgIGlmIChpICsgMSA8IHYubGVuZ3RoKSBzdGFjay5wdXNoICh2LCBpICsgMSk7XG4gICAgICBleHRlcm5fcmVjICh2W2ldKTtcbiAgICB9XG4gICAgaWYgKGludGVybl9vYmpfdGFibGUpIHdyaXRlci5vYmpfY291bnRlciA9IGludGVybl9vYmpfdGFibGUub2Jqcy5sZW5ndGg7XG4gICAgd3JpdGVyLmZpbmFsaXplKCk7XG4gICAgcmV0dXJuIHdyaXRlci5jaHVuaztcbiAgfVxufSAoKTtcblxuLy9Qcm92aWRlczogY2FtbF9vdXRwdXRfdmFsdWVfdG9fc3RyaW5nIG11dGFibGVcbi8vUmVxdWlyZXM6IGNhbWxfb3V0cHV0X3ZhbCwgY2FtbF9zdHJpbmdfb2ZfYXJyYXlcbmZ1bmN0aW9uIGNhbWxfb3V0cHV0X3ZhbHVlX3RvX3N0cmluZyAodiwgZmxhZ3MpIHtcbiAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2FycmF5IChjYW1sX291dHB1dF92YWwgKHYsIGZsYWdzKSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfb3V0cHV0X3ZhbHVlX3RvX2J5dGVzIG11dGFibGVcbi8vUmVxdWlyZXM6IGNhbWxfb3V0cHV0X3ZhbCwgY2FtbF9ieXRlc19vZl9hcnJheVxuZnVuY3Rpb24gY2FtbF9vdXRwdXRfdmFsdWVfdG9fYnl0ZXMgKHYsIGZsYWdzKSB7XG4gIHJldHVybiBjYW1sX2J5dGVzX29mX2FycmF5IChjYW1sX291dHB1dF92YWwgKHYsIGZsYWdzKSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfb3V0cHV0X3ZhbHVlX3RvX2J1ZmZlclxuLy9SZXF1aXJlczogY2FtbF9vdXRwdXRfdmFsLCBjYW1sX2ZhaWx3aXRoLCBjYW1sX2JsaXRfYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfb3V0cHV0X3ZhbHVlX3RvX2J1ZmZlciAocywgb2ZzLCBsZW4sIHYsIGZsYWdzKSB7XG4gIHZhciB0ID0gY2FtbF9vdXRwdXRfdmFsICh2LCBmbGFncyk7XG4gIGlmICh0Lmxlbmd0aCA+IGxlbikgY2FtbF9mYWlsd2l0aCAoXCJNYXJzaGFsLnRvX2J1ZmZlcjogYnVmZmVyIG92ZXJmbG93XCIpO1xuICBjYW1sX2JsaXRfYnl0ZXModCwgMCwgcywgb2ZzLCB0Lmxlbmd0aCk7XG4gIHJldHVybiAwO1xufVxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy8gQ29weXJpZ2h0IChDKSAyMDE0IErDqXLDtG1lIFZvdWlsbG9uLCBIdWdvIEhldXphcmRcbi8vIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy8vLy8vLy8vLy8vLyBJb1xuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19mZHNcbnZhciBjYW1sX3N5c19mZHMgPSBuZXcgQXJyYXkoMyk7XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2Nsb3NlXG4vL1JlcXVpcmVzOiBjYW1sX3N5c19mZHNcbmZ1bmN0aW9uIGNhbWxfc3lzX2Nsb3NlKGZkKSB7XG4gIHZhciBmaWxlID0gY2FtbF9zeXNfZmRzW2ZkXTtcbiAgaWYoZmlsZSkgZmlsZS5jbG9zZSgpO1xuICBkZWxldGUgY2FtbF9zeXNfZmRzW2ZkXTtcbiAgcmV0dXJuIDA7XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfb3BlblxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9zeXNfZXJyb3Jcbi8vUmVxdWlyZXM6IE1sRmFrZUZkX291dFxuLy9SZXF1aXJlczogcmVzb2x2ZV9mc19kZXZpY2Vcbi8vUmVxdWlyZXM6IGNhbWxfanNieXRlc19vZl9zdHJpbmdcbi8vUmVxdWlyZXM6IGZzX25vZGVfc3VwcG9ydGVkXG4vL1JlcXVpcmVzOiBjYW1sX3N5c19mZHNcbi8vUmVxdWlyZXM6IGNhbWxfc3lzX29wZW5fZm9yX25vZGVcbmZ1bmN0aW9uIGNhbWxfc3lzX29wZW5faW50ZXJuYWwoZmlsZSxpZHgpIHtcbiAgaWYoaWR4ID09IHVuZGVmaW5lZCl7XG4gICAgaWR4ID0gY2FtbF9zeXNfZmRzLmxlbmd0aDtcbiAgfVxuICBjYW1sX3N5c19mZHNbaWR4XSA9IGZpbGU7XG4gIHJldHVybiBpZHggfCAwO1xufVxuZnVuY3Rpb24gY2FtbF9zeXNfb3BlbiAobmFtZSwgZmxhZ3MsIF9wZXJtcykge1xuICB2YXIgZiA9IHt9O1xuICB3aGlsZShmbGFncyl7XG4gICAgc3dpdGNoKGZsYWdzWzFdKXtcbiAgICBjYXNlIDA6IGYucmRvbmx5ID0gMTticmVhaztcbiAgICBjYXNlIDE6IGYud3Jvbmx5ID0gMTticmVhaztcbiAgICBjYXNlIDI6IGYuYXBwZW5kID0gMTticmVhaztcbiAgICBjYXNlIDM6IGYuY3JlYXRlID0gMTticmVhaztcbiAgICBjYXNlIDQ6IGYudHJ1bmNhdGUgPSAxO2JyZWFrO1xuICAgIGNhc2UgNTogZi5leGNsID0gMTsgYnJlYWs7XG4gICAgY2FzZSA2OiBmLmJpbmFyeSA9IDE7YnJlYWs7XG4gICAgY2FzZSA3OiBmLnRleHQgPSAxO2JyZWFrO1xuICAgIGNhc2UgODogZi5ub25ibG9jayA9IDE7YnJlYWs7XG4gICAgfVxuICAgIGZsYWdzPWZsYWdzWzJdO1xuICB9XG4gIGlmKGYucmRvbmx5ICYmIGYud3Jvbmx5KVxuICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKGNhbWxfanNieXRlc19vZl9zdHJpbmcobmFtZSkgKyBcIiA6IGZsYWdzIE9wZW5fcmRvbmx5IGFuZCBPcGVuX3dyb25seSBhcmUgbm90IGNvbXBhdGlibGVcIik7XG4gIGlmKGYudGV4dCAmJiBmLmJpbmFyeSlcbiAgICBjYW1sX3JhaXNlX3N5c19lcnJvcihjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKG5hbWUpICsgXCIgOiBmbGFncyBPcGVuX3RleHQgYW5kIE9wZW5fYmluYXJ5IGFyZSBub3QgY29tcGF0aWJsZVwiKTtcbiAgdmFyIHJvb3QgPSByZXNvbHZlX2ZzX2RldmljZShuYW1lKTtcbiAgdmFyIGZpbGUgPSByb290LmRldmljZS5vcGVuKHJvb3QucmVzdCxmKTtcbiAgcmV0dXJuIGNhbWxfc3lzX29wZW5faW50ZXJuYWwgKGZpbGUsIHVuZGVmaW5lZCk7XG59XG4oZnVuY3Rpb24gKCkge1xuICBmdW5jdGlvbiBmaWxlKGZkLCBmbGFncykge1xuICAgIGlmKGZzX25vZGVfc3VwcG9ydGVkKCkpIHtcbiAgICAgIHJldHVybiBjYW1sX3N5c19vcGVuX2Zvcl9ub2RlKGZkLCBmbGFncyk7XG4gICAgfVxuICAgIGVsc2VcbiAgICAgIHJldHVybiBuZXcgTWxGYWtlRmRfb3V0KGZkLCBmbGFncylcbiAgfVxuICBjYW1sX3N5c19vcGVuX2ludGVybmFsKGZpbGUoMCx7cmRvbmx5OjEsYWx0bmFtZTpcIi9kZXYvc3RkaW5cIixpc0NoYXJhY3RlckRldmljZTp0cnVlfSksIDApO1xuICBjYW1sX3N5c19vcGVuX2ludGVybmFsKGZpbGUoMSx7YnVmZmVyZWQ6Mix3cm9ubHk6MSxpc0NoYXJhY3RlckRldmljZTp0cnVlfSksIDEpO1xuICBjYW1sX3N5c19vcGVuX2ludGVybmFsKGZpbGUoMix7YnVmZmVyZWQ6Mix3cm9ubHk6MSxpc0NoYXJhY3RlckRldmljZTp0cnVlfSksIDIpO1xufSkoKVxuXG5cbi8vIG9jYW1sIENoYW5uZWxzXG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfc2V0X2NoYW5uZWxfbmFtZVxuLy9SZXF1aXJlczogY2FtbF9tbF9jaGFubmVsc1xuZnVuY3Rpb24gY2FtbF9tbF9zZXRfY2hhbm5lbF9uYW1lKGNoYW5pZCwgbmFtZSkge1xuICB2YXIgY2hhbiA9IGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXTtcbiAgY2hhbi5uYW1lID0gbmFtZTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfY2hhbm5lbHNcbnZhciBjYW1sX21sX2NoYW5uZWxzID0gbmV3IEFycmF5KCk7XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfb3V0X2NoYW5uZWxzX2xpc3Rcbi8vUmVxdWlyZXM6IGNhbWxfbWxfY2hhbm5lbHNcbmZ1bmN0aW9uIGNhbWxfbWxfb3V0X2NoYW5uZWxzX2xpc3QgKCkge1xuICB2YXIgbCA9IDA7XG4gIGZvcih2YXIgYyA9IDA7IGMgPCBjYW1sX21sX2NoYW5uZWxzLmxlbmd0aDsgYysrKXtcbiAgICBpZihjYW1sX21sX2NoYW5uZWxzW2NdICYmIGNhbWxfbWxfY2hhbm5lbHNbY10ub3BlbmVkICYmIGNhbWxfbWxfY2hhbm5lbHNbY10ub3V0KVxuICAgICAgbD1bMCxjYW1sX21sX2NoYW5uZWxzW2NdLmZkLGxdO1xuICB9XG4gIHJldHVybiBsO1xufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfb3Blbl9kZXNjcmlwdG9yX291dFxuLy9SZXF1aXJlczogY2FtbF9tbF9jaGFubmVscywgY2FtbF9zeXNfZmRzXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX3N5c19lcnJvclxuLy9SZXF1aXJlczogY2FtbF9zeXNfb3BlblxuZnVuY3Rpb24gY2FtbF9tbF9vcGVuX2Rlc2NyaXB0b3Jfb3V0IChmZCkge1xuICB2YXIgZmlsZSA9IGNhbWxfc3lzX2Zkc1tmZF07XG4gIGlmKGZpbGUuZmxhZ3MucmRvbmx5KSBjYW1sX3JhaXNlX3N5c19lcnJvcihcImZkIFwiKyBmZCArIFwiIGlzIHJlYWRvbmx5XCIpO1xuICB2YXIgYnVmZmVyZWQgPSAoZmlsZS5mbGFncy5idWZmZXJlZCAhPT0gdW5kZWZpbmVkKSA/IGZpbGUuZmxhZ3MuYnVmZmVyZWQgOiAxO1xuICB2YXIgY2hhbm5lbCA9IHtcbiAgICBmaWxlOmZpbGUsXG4gICAgb2Zmc2V0OmZpbGUuZmxhZ3MuYXBwZW5kP2ZpbGUubGVuZ3RoKCk6MCxcbiAgICBmZDpmZCxcbiAgICBvcGVuZWQ6dHJ1ZSxcbiAgICBvdXQ6dHJ1ZSxcbiAgICBidWZmZXJfY3VycjowLFxuICAgIGJ1ZmZlcjpuZXcgVWludDhBcnJheSg2NTUzNiksXG4gICAgYnVmZmVyZWQ6YnVmZmVyZWRcbiAgfTtcbiAgY2FtbF9tbF9jaGFubmVsc1tjaGFubmVsLmZkXT1jaGFubmVsO1xuICByZXR1cm4gY2hhbm5lbC5mZDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9vcGVuX2Rlc2NyaXB0b3JfaW5cbi8vUmVxdWlyZXM6IGNhbWxfbWxfY2hhbm5lbHMsIGNhbWxfc3lzX2Zkc1xuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9zeXNfZXJyb3Jcbi8vUmVxdWlyZXM6IGNhbWxfc3lzX29wZW5cbmZ1bmN0aW9uIGNhbWxfbWxfb3Blbl9kZXNjcmlwdG9yX2luIChmZCkgIHtcbiAgdmFyIGZpbGUgPSBjYW1sX3N5c19mZHNbZmRdO1xuICBpZihmaWxlLmZsYWdzLndyb25seSkgY2FtbF9yYWlzZV9zeXNfZXJyb3IoXCJmZCBcIisgZmQgKyBcIiBpcyB3cml0ZW9ubHlcIik7XG4gIHZhciByZWZpbGwgPSBudWxsO1xuICB2YXIgY2hhbm5lbCA9IHtcbiAgICBmaWxlOmZpbGUsXG4gICAgb2Zmc2V0OmZpbGUuZmxhZ3MuYXBwZW5kP2ZpbGUubGVuZ3RoKCk6MCxcbiAgICBmZDpmZCxcbiAgICBvcGVuZWQ6dHJ1ZSxcbiAgICBvdXQ6IGZhbHNlLFxuICAgIGJ1ZmZlcl9jdXJyOjAsXG4gICAgYnVmZmVyX21heDowLFxuICAgIGJ1ZmZlcjpuZXcgVWludDhBcnJheSg2NTUzNiksXG4gICAgcmVmaWxsOnJlZmlsbFxuICB9O1xuICBjYW1sX21sX2NoYW5uZWxzW2NoYW5uZWwuZmRdPWNoYW5uZWw7XG4gIHJldHVybiBjaGFubmVsLmZkO1xufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfY2hhbm5lbF9kZXNjcmlwdG9yXG4vL1JlcXVpcmVzOiBjYW1sX21sX2NoYW5uZWxzXG4vL0FsaWFzOiB3aW5fZmlsZWRlc2NyX29mX2NoYW5uZWxcbmZ1bmN0aW9uIGNhbWxfY2hhbm5lbF9kZXNjcmlwdG9yKGNoYW5pZCl7XG4gIHZhciBjaGFuID0gY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdO1xuICByZXR1cm4gY2hhbi5mZDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9zZXRfYmluYXJ5X21vZGVcbi8vUmVxdWlyZXM6IGNhbWxfbWxfY2hhbm5lbHNcbmZ1bmN0aW9uIGNhbWxfbWxfc2V0X2JpbmFyeV9tb2RlKGNoYW5pZCxtb2RlKXtcbiAgdmFyIGNoYW4gPSBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF07XG4gIGNoYW4uZmlsZS5mbGFncy50ZXh0ID0gIW1vZGVcbiAgY2hhbi5maWxlLmZsYWdzLmJpbmFyeSA9IG1vZGVcbiAgcmV0dXJuIDA7XG59XG5cbi8vSW5wdXQgZnJvbSBpbl9jaGFubmVsXG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfY2xvc2VfY2hhbm5lbFxuLy9SZXF1aXJlczogY2FtbF9tbF9mbHVzaCwgY2FtbF9tbF9jaGFubmVsc1xuLy9SZXF1aXJlczogY2FtbF9zeXNfY2xvc2VcbmZ1bmN0aW9uIGNhbWxfbWxfY2xvc2VfY2hhbm5lbCAoY2hhbmlkKSB7XG4gIHZhciBjaGFuID0gY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdO1xuICBjaGFuLm9wZW5lZCA9IGZhbHNlO1xuICBjYW1sX3N5c19jbG9zZShjaGFuLmZkKVxuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9jaGFubmVsX3NpemVcbi8vUmVxdWlyZXM6IGNhbWxfbWxfY2hhbm5lbHNcbmZ1bmN0aW9uIGNhbWxfbWxfY2hhbm5lbF9zaXplKGNoYW5pZCkge1xuICB2YXIgY2hhbiA9IGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXTtcbiAgcmV0dXJuIGNoYW4uZmlsZS5sZW5ndGgoKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9jaGFubmVsX3NpemVfNjRcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfb2ZfZmxvYXQsY2FtbF9tbF9jaGFubmVsc1xuZnVuY3Rpb24gY2FtbF9tbF9jaGFubmVsX3NpemVfNjQoY2hhbmlkKSB7XG4gIHZhciBjaGFuID0gY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdO1xuICByZXR1cm4gY2FtbF9pbnQ2NF9vZl9mbG9hdChjaGFuLmZpbGUubGVuZ3RoICgpKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9zZXRfY2hhbm5lbF9vdXRwdXRcbi8vUmVxdWlyZXM6IGNhbWxfbWxfY2hhbm5lbHNcbmZ1bmN0aW9uIGNhbWxfbWxfc2V0X2NoYW5uZWxfb3V0cHV0KGNoYW5pZCxmKSB7XG4gIHZhciBjaGFuID0gY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdO1xuICBjaGFuLm91dHB1dCA9IChmdW5jdGlvbiAocykge2Yocyl9KTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfc2V0X2NoYW5uZWxfcmVmaWxsXG4vL1JlcXVpcmVzOiBjYW1sX21sX2NoYW5uZWxzXG5mdW5jdGlvbiBjYW1sX21sX3NldF9jaGFubmVsX3JlZmlsbChjaGFuaWQsZikge1xuICBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF0ucmVmaWxsID0gZjtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfcmVmaWxsXG4vL1JlcXVpcmVzOiBjYW1sX21sX3N0cmluZ19sZW5ndGgsIGNhbWxfdWludDhfYXJyYXlfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3JlZmlsbCAoY2hhbikge1xuICBpZihjaGFuLnJlZmlsbCAhPSBudWxsKXtcbiAgICB2YXIgc3RyID0gY2hhbi5yZWZpbGwoKTtcbiAgICB2YXIgc3RyX2EgPSBjYW1sX3VpbnQ4X2FycmF5X29mX3N0cmluZyhzdHIpO1xuICAgIGlmIChzdHJfYS5sZW5ndGggPT0gMCkge1xuICAgICAgY2hhbi5yZWZpbGwgPSBudWxsXG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgaWYoY2hhbi5idWZmZXIubGVuZ3RoIDwgY2hhbi5idWZmZXJfbWF4ICsgc3RyX2EubGVuZ3RoKXtcbiAgICAgICAgdmFyIGIgPSBuZXcgVWludDhBcnJheShjaGFuLmJ1ZmZlcl9tYXggKyBzdHJfYS5sZW5ndGgpO1xuICAgICAgICBiLnNldChjaGFuLmJ1ZmZlcik7XG4gICAgICAgIGNoYW4uYnVmZmVyID0gYjtcbiAgICAgIH1cbiAgICAgIGNoYW4uYnVmZmVyLnNldChzdHJfYSxjaGFuLmJ1ZmZlcl9tYXgpO1xuICAgICAgY2hhbi5vZmZzZXQgKz0gc3RyX2EubGVuZ3RoO1xuICAgICAgY2hhbi5idWZmZXJfbWF4ICs9IHN0cl9hLmxlbmd0aDtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdmFyIG5yZWFkID0gY2hhbi5maWxlLnJlYWQoY2hhbi5vZmZzZXQsIGNoYW4uYnVmZmVyLCBjaGFuLmJ1ZmZlcl9tYXgsIGNoYW4uYnVmZmVyLmxlbmd0aCAtIGNoYW4uYnVmZmVyX21heCk7XG4gICAgY2hhbi5vZmZzZXQgKz0gbnJlYWQ7XG4gICAgY2hhbi5idWZmZXJfbWF4ICs9IG5yZWFkO1xuICB9XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfaW5wdXRcbi8vUmVxdWlyZXM6IGNhbWxfbWxfaW5wdXRfYmxvY2tcbi8vUmVxdWlyZXM6IGNhbWxfdWludDhfYXJyYXlfb2ZfYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfbWxfaW5wdXQgKGNoYW5pZCwgYiwgaSwgbCkge1xuICB2YXIgYmEgPSBjYW1sX3VpbnQ4X2FycmF5X29mX2J5dGVzKGIpO1xuICByZXR1cm4gY2FtbF9tbF9pbnB1dF9ibG9jayhjaGFuaWQsIGJhLCBpLCBsKVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX2lucHV0X2Jsb2NrXG4vL1JlcXVpcmVzOiBjYW1sX3JlZmlsbCwgY2FtbF9tbF9jaGFubmVsc1xuZnVuY3Rpb24gY2FtbF9tbF9pbnB1dF9ibG9jayAoY2hhbmlkLCBiYSwgaSwgbCkge1xuICB2YXIgY2hhbiA9IGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXTtcbiAgdmFyIG4gPSBsO1xuICB2YXIgYXZhaWwgPSBjaGFuLmJ1ZmZlcl9tYXggLSBjaGFuLmJ1ZmZlcl9jdXJyO1xuICBpZihsIDw9IGF2YWlsKSB7XG4gICAgYmEuc2V0KGNoYW4uYnVmZmVyLnN1YmFycmF5KGNoYW4uYnVmZmVyX2N1cnIsY2hhbi5idWZmZXJfY3VyciArIGwpLCBpKTtcbiAgICBjaGFuLmJ1ZmZlcl9jdXJyICs9IGw7XG4gIH1cbiAgZWxzZSBpZihhdmFpbCA+IDApIHtcbiAgICBiYS5zZXQoY2hhbi5idWZmZXIuc3ViYXJyYXkoY2hhbi5idWZmZXJfY3VycixjaGFuLmJ1ZmZlcl9jdXJyICsgYXZhaWwpLCBpKTtcbiAgICBjaGFuLmJ1ZmZlcl9jdXJyICs9IGF2YWlsO1xuICAgIG4gPSBhdmFpbDtcbiAgfSBlbHNlIHtcbiAgICBjaGFuLmJ1ZmZlcl9jdXJyID0gMDtcbiAgICBjaGFuLmJ1ZmZlcl9tYXggPSAwO1xuICAgIGNhbWxfcmVmaWxsKGNoYW4pO1xuICAgIHZhciBhdmFpbCA9IGNoYW4uYnVmZmVyX21heCAtIGNoYW4uYnVmZmVyX2N1cnI7XG4gICAgaWYobiA+IGF2YWlsKSBuID0gYXZhaWw7XG4gICAgYmEuc2V0KGNoYW4uYnVmZmVyLnN1YmFycmF5KGNoYW4uYnVmZmVyX2N1cnIsY2hhbi5idWZmZXJfY3VyciArIG4pLCBpKTtcbiAgICBjaGFuLmJ1ZmZlcl9jdXJyICs9IG47XG4gIH1cbiAgcmV0dXJuIG4gfCAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2lucHV0X3ZhbHVlXG4vL1JlcXVpcmVzOiBjYW1sX21hcnNoYWxfZGF0YV9zaXplLCBjYW1sX2lucHV0X3ZhbHVlX2Zyb21fYnl0ZXMsIGNhbWxfY3JlYXRlX2J5dGVzLCBjYW1sX21sX2NoYW5uZWxzLCBjYW1sX2J5dGVzX29mX2FycmF5XG4vL1JlcXVpcmVzOiBjYW1sX3JlZmlsbCwgY2FtbF9mYWlsd2l0aCwgY2FtbF9yYWlzZV9lbmRfb2ZfZmlsZVxuLy9SZXF1aXJlczogY2FtbF9tYXJzaGFsX2hlYWRlcl9zaXplXG5mdW5jdGlvbiBjYW1sX2lucHV0X3ZhbHVlIChjaGFuaWQpIHtcbiAgdmFyIGNoYW4gPSBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF07XG4gIHZhciBoZWFkZXIgPSBuZXcgVWludDhBcnJheShjYW1sX21hcnNoYWxfaGVhZGVyX3NpemUpO1xuICBmdW5jdGlvbiBibG9jayhidWZmZXIsIG9mZnNldCwgbikge1xuICAgIHZhciByID0gMDtcbiAgICB3aGlsZShyIDwgbil7XG4gICAgICBpZihjaGFuLmJ1ZmZlcl9jdXJyID49IGNoYW4uYnVmZmVyX21heCl7XG4gICAgICAgIGNoYW4uYnVmZmVyX2N1cnIgPSAwO1xuICAgICAgICBjaGFuLmJ1ZmZlcl9tYXggPSAwO1xuICAgICAgICBjYW1sX3JlZmlsbChjaGFuKTtcbiAgICAgIH1cbiAgICAgIGlmIChjaGFuLmJ1ZmZlcl9jdXJyID49IGNoYW4uYnVmZmVyX21heClcbiAgICAgICAgYnJlYWs7XG4gICAgICBidWZmZXJbb2Zmc2V0K3JdID0gY2hhbi5idWZmZXJbY2hhbi5idWZmZXJfY3Vycl07XG4gICAgICBjaGFuLmJ1ZmZlcl9jdXJyKys7XG4gICAgICByKys7XG4gICAgfVxuICAgIHJldHVybiByO1xuICB9XG4gIHZhciByID0gYmxvY2soaGVhZGVyLCAwLCBjYW1sX21hcnNoYWxfaGVhZGVyX3NpemUpO1xuICBpZihyID09IDApXG4gICAgY2FtbF9yYWlzZV9lbmRfb2ZfZmlsZSgpO1xuICBlbHNlIGlmIChyIDwgY2FtbF9tYXJzaGFsX2hlYWRlcl9zaXplKVxuICAgIGNhbWxfZmFpbHdpdGgoXCJpbnB1dF92YWx1ZTogdHJ1bmNhdGVkIG9iamVjdFwiKTtcbiAgdmFyIGxlbiA9IGNhbWxfbWFyc2hhbF9kYXRhX3NpemUgKGNhbWxfYnl0ZXNfb2ZfYXJyYXkoaGVhZGVyKSwgMCk7XG4gIHZhciBidWYgPSBuZXcgVWludDhBcnJheShsZW4gKyBjYW1sX21hcnNoYWxfaGVhZGVyX3NpemUpO1xuICBidWYuc2V0KGhlYWRlciwwKTtcbiAgdmFyIHIgPSBibG9jayhidWYsIGNhbWxfbWFyc2hhbF9oZWFkZXJfc2l6ZSwgbGVuKVxuICBpZihyIDwgbGVuKVxuICAgIGNhbWxfZmFpbHdpdGgoXCJpbnB1dF92YWx1ZTogdHJ1bmNhdGVkIG9iamVjdCBcIiArIHIgKyBcIiAgXCIgKyBsZW4pO1xuICB2YXIgb2Zmc2V0ID0gWzBdO1xuICB2YXIgcmVzID0gY2FtbF9pbnB1dF92YWx1ZV9mcm9tX2J5dGVzKGNhbWxfYnl0ZXNfb2ZfYXJyYXkoYnVmKSwgb2Zmc2V0KTtcbiAgY2hhbi5vZmZzZXQgPSBjaGFuLm9mZnNldCArIG9mZnNldFswXTtcbiAgcmV0dXJuIHJlcztcbn1cblxuLy9Qcm92aWRlczogY2FtbF9pbnB1dF92YWx1ZV90b19vdXRzaWRlX2hlYXBcbi8vUmVxdWlyZXM6IGNhbWxfaW5wdXRfdmFsdWVcbmZ1bmN0aW9uIGNhbWxfaW5wdXRfdmFsdWVfdG9fb3V0c2lkZV9oZWFwKGMpIHtcbiAgcmV0dXJuIGNhbWxfaW5wdXRfdmFsdWUoYyk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfaW5wdXRfY2hhclxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9lbmRfb2ZfZmlsZSwgY2FtbF9hcnJheV9ib3VuZF9lcnJvclxuLy9SZXF1aXJlczogY2FtbF9tbF9jaGFubmVscywgY2FtbF9yZWZpbGxcbmZ1bmN0aW9uIGNhbWxfbWxfaW5wdXRfY2hhciAoY2hhbmlkKSB7XG4gIHZhciBjaGFuID0gY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdO1xuICBpZihjaGFuLmJ1ZmZlcl9jdXJyID49IGNoYW4uYnVmZmVyX21heCl7XG4gICAgY2hhbi5idWZmZXJfY3VyciA9IDA7XG4gICAgY2hhbi5idWZmZXJfbWF4ID0gMDtcbiAgICBjYW1sX3JlZmlsbChjaGFuKTtcbiAgfVxuICBpZiAoY2hhbi5idWZmZXJfY3VyciA+PSBjaGFuLmJ1ZmZlcl9tYXgpXG4gICAgY2FtbF9yYWlzZV9lbmRfb2ZfZmlsZSgpO1xuICB2YXIgcmVzID0gY2hhbi5idWZmZXJbY2hhbi5idWZmZXJfY3Vycl07XG4gIGNoYW4uYnVmZmVyX2N1cnIrKztcbiAgcmV0dXJuIHJlcztcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9pbnB1dF9pbnRcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2VfZW5kX29mX2ZpbGVcbi8vUmVxdWlyZXM6IGNhbWxfbWxfaW5wdXRfY2hhciwgY2FtbF9tbF9jaGFubmVsc1xuZnVuY3Rpb24gY2FtbF9tbF9pbnB1dF9pbnQgKGNoYW5pZCkge1xuICB2YXIgY2hhbiA9IGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXTtcbiAgdmFyIHJlcyA9IDA7XG4gIGZvcih2YXIgaSA9IDA7IGkgPCA0OyBpKyspe1xuICAgIHJlcyA9IChyZXMgPDwgOCkgKyBjYW1sX21sX2lucHV0X2NoYXIoY2hhbmlkKSB8IDA7XG4gIH1cbiAgcmV0dXJuIHJlcyB8IDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc2Vla19pblxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9zeXNfZXJyb3IsIGNhbWxfbWxfY2hhbm5lbHNcbmZ1bmN0aW9uIGNhbWxfc2Vla19pbihjaGFuaWQsIHBvcykge1xuICB2YXIgY2hhbiA9IGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXTtcbiAgaWYgKGNoYW4ucmVmaWxsICE9IG51bGwpIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKFwiSWxsZWdhbCBzZWVrXCIpO1xuICBpZihwb3MgPj0gY2hhbi5vZmZzZXQgLSBjaGFuLmJ1ZmZlcl9tYXhcbiAgICAgJiYgcG9zIDw9IGNoYW4ub2Zmc2V0XG4gICAgICYmIGNoYW4uZmlsZS5mbGFncy5iaW5hcnkpIHtcbiAgICBjaGFuLmJ1ZmZlcl9jdXJyID0gY2hhbi5idWZmZXJfbWF4IC0gKGNoYW4ub2Zmc2V0IC0gcG9zKTtcbiAgfSBlbHNlIHtcbiAgICBjaGFuLm9mZnNldCA9IHBvcztcbiAgICBjaGFuLmJ1ZmZlcl9jdXJyID0gMDtcbiAgICBjaGFuLmJ1ZmZlcl9tYXggPSAwO1xuICB9XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX3NlZWtfaW5cbi8vUmVxdWlyZXM6IGNhbWxfc2Vla19pblxuZnVuY3Rpb24gY2FtbF9tbF9zZWVrX2luKGNoYW5pZCxwb3Mpe1xuICByZXR1cm4gY2FtbF9zZWVrX2luKGNoYW5pZCxwb3MpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX3NlZWtfaW5fNjRcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfdG9fZmxvYXQsIGNhbWxfc2Vla19pblxuZnVuY3Rpb24gY2FtbF9tbF9zZWVrX2luXzY0KGNoYW5pZCxwb3Mpe1xuICB2YXIgcG9zID0gY2FtbF9pbnQ2NF90b19mbG9hdChwb3MpO1xuICByZXR1cm4gY2FtbF9zZWVrX2luKGNoYW5pZCwgcG9zKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9wb3NfaW5cbi8vUmVxdWlyZXM6IGNhbWxfbWxfY2hhbm5lbHNcbmZ1bmN0aW9uIGNhbWxfcG9zX2luKGNoYW5pZCkge1xuICB2YXIgY2hhbiA9IGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXTtcbiAgcmV0dXJuIGNoYW4ub2Zmc2V0IC0gKGNoYW4uYnVmZmVyX21heCAtIGNoYW4uYnVmZmVyX2N1cnIpIHwgMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9wb3NfaW5cbi8vUmVxdWlyZXM6IGNhbWxfcG9zX2luXG5mdW5jdGlvbiBjYW1sX21sX3Bvc19pbihjaGFuaWQpIHtcbiAgcmV0dXJuIGNhbWxfcG9zX2luKGNoYW5pZCk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfcG9zX2luXzY0XG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X29mX2Zsb2F0LCBjYW1sX3Bvc19pblxuZnVuY3Rpb24gY2FtbF9tbF9wb3NfaW5fNjQoY2hhbmlkKSB7XG4gIHJldHVybiBjYW1sX2ludDY0X29mX2Zsb2F0KGNhbWxfcG9zX2luKGNoYW5pZCkpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX2lucHV0X3NjYW5fbGluZVxuLy9SZXF1aXJlczogY2FtbF9hcnJheV9ib3VuZF9lcnJvclxuLy9SZXF1aXJlczogY2FtbF9tbF9jaGFubmVscywgY2FtbF9yZWZpbGxcbmZ1bmN0aW9uIGNhbWxfbWxfaW5wdXRfc2Nhbl9saW5lKGNoYW5pZCl7XG4gIHZhciBjaGFuID0gY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdO1xuICB2YXIgcCA9IGNoYW4uYnVmZmVyX2N1cnI7XG4gIGRvIHtcbiAgICBpZihwID49IGNoYW4uYnVmZmVyX21heCkge1xuICAgICAgaWYoY2hhbi5idWZmZXJfY3VyciA+IDApIHtcbiAgICAgICAgY2hhbi5idWZmZXIuc2V0KGNoYW4uYnVmZmVyLnN1YmFycmF5KGNoYW4uYnVmZmVyX2N1cnIpLDApO1xuICAgICAgICBwIC09IGNoYW4uYnVmZmVyX2N1cnI7XG4gICAgICAgIGNoYW4uYnVmZmVyX21heCAtPSBjaGFuLmJ1ZmZlcl9jdXJyO1xuICAgICAgICBjaGFuLmJ1ZmZlcl9jdXJyID0gMDtcbiAgICAgIH1cbiAgICAgIGlmKGNoYW4uYnVmZmVyX21heCA+PSBjaGFuLmJ1ZmZlci5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIC0oY2hhbi5idWZmZXJfbWF4KSB8IDA7XG4gICAgICB9XG4gICAgICB2YXIgcHJldl9tYXggPSBjaGFuLmJ1ZmZlcl9tYXg7XG4gICAgICBjYW1sX3JlZmlsbCAoY2hhbik7XG4gICAgICBpZihwcmV2X21heCA9PSBjaGFuLmJ1ZmZlcl9tYXgpIHtcbiAgICAgICAgcmV0dXJuIC0oY2hhbi5idWZmZXJfbWF4KSB8IDA7XG4gICAgICB9XG4gICAgfVxuICB9IHdoaWxlIChjaGFuLmJ1ZmZlcltwKytdICE9IDEwKTtcbiAgcmV0dXJuIChwIC0gY2hhbi5idWZmZXJfY3VycikgfCAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX2ZsdXNoXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX3N5c19lcnJvciwgY2FtbF9tbF9jaGFubmVsc1xuLy9SZXF1aXJlczogY2FtbF9zdWJhcnJheV90b19qc2J5dGVzXG5mdW5jdGlvbiBjYW1sX21sX2ZsdXNoIChjaGFuaWQpIHtcbiAgdmFyIGNoYW4gPSBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF07XG4gIGlmKCEgY2hhbi5vcGVuZWQpIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKFwiQ2Fubm90IGZsdXNoIGEgY2xvc2VkIGNoYW5uZWxcIik7XG4gIGlmKCFjaGFuLmJ1ZmZlciB8fCBjaGFuLmJ1ZmZlcl9jdXJyID09IDApIHJldHVybiAwO1xuICBpZihjaGFuLm91dHB1dCkge1xuICAgIGNoYW4ub3V0cHV0KGNhbWxfc3ViYXJyYXlfdG9fanNieXRlcyhjaGFuLmJ1ZmZlciwgMCwgY2hhbi5idWZmZXJfY3VycikpO1xuICB9IGVsc2Uge1xuICAgIGNoYW4uZmlsZS53cml0ZShjaGFuLm9mZnNldCwgY2hhbi5idWZmZXIsIDAsIGNoYW4uYnVmZmVyX2N1cnIpO1xuICB9XG4gIGNoYW4ub2Zmc2V0ICs9IGNoYW4uYnVmZmVyX2N1cnI7XG4gIGNoYW4uYnVmZmVyX2N1cnIgPSAwO1xuICByZXR1cm4gMDtcbn1cblxuLy9vdXRwdXQgdG8gb3V0X2NoYW5uZWxcblxuLy9Qcm92aWRlczogY2FtbF9tbF9vdXRwdXRfYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfbWxfZmx1c2gsY2FtbF9tbF9ieXRlc19sZW5ndGhcbi8vUmVxdWlyZXM6IGNhbWxfY3JlYXRlX2J5dGVzLCBjYW1sX2JsaXRfYnl0ZXMsIGNhbWxfcmFpc2Vfc3lzX2Vycm9yLCBjYW1sX21sX2NoYW5uZWxzLCBjYW1sX3N0cmluZ19vZl9ieXRlc1xuLy9SZXF1aXJlczogY2FtbF91aW50OF9hcnJheV9vZl9ieXRlc1xuZnVuY3Rpb24gY2FtbF9tbF9vdXRwdXRfYnl0ZXMoY2hhbmlkLGJ1ZmZlcixvZmZzZXQsbGVuKSB7XG4gIHZhciBjaGFuID0gY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdO1xuICBpZighIGNoYW4ub3BlbmVkKSBjYW1sX3JhaXNlX3N5c19lcnJvcihcIkNhbm5vdCBvdXRwdXQgdG8gYSBjbG9zZWQgY2hhbm5lbFwiKTtcbiAgdmFyIGJ1ZmZlciA9IGNhbWxfdWludDhfYXJyYXlfb2ZfYnl0ZXMoYnVmZmVyKTtcbiAgYnVmZmVyID0gYnVmZmVyLnN1YmFycmF5KG9mZnNldCwgb2Zmc2V0ICsgbGVuKTtcbiAgaWYoY2hhbi5idWZmZXJfY3VyciArIGJ1ZmZlci5sZW5ndGggPiBjaGFuLmJ1ZmZlci5sZW5ndGgpIHtcbiAgICB2YXIgYiA9IG5ldyBVaW50OEFycmF5KGNoYW4uYnVmZmVyX2N1cnIgKyBidWZmZXIubGVuZ3RoKTtcbiAgICBiLnNldChjaGFuLmJ1ZmZlcik7XG4gICAgY2hhbi5idWZmZXIgPSBiXG4gIH1cbiAgc3dpdGNoKGNoYW4uYnVmZmVyZWQpe1xuICBjYXNlIDA6IC8vIFVuYnVmZmVyZWRcbiAgICBjaGFuLmJ1ZmZlci5zZXQoYnVmZmVyLCBjaGFuLmJ1ZmZlcl9jdXJyKTtcbiAgICBjaGFuLmJ1ZmZlcl9jdXJyICs9IGJ1ZmZlci5sZW5ndGg7XG4gICAgY2FtbF9tbF9mbHVzaCAoY2hhbmlkKTtcbiAgICBicmVha1xuICBjYXNlIDE6IC8vIEJ1ZmZlcmVkICh0aGUgZGVmYXVsdClcbiAgICBjaGFuLmJ1ZmZlci5zZXQoYnVmZmVyLCBjaGFuLmJ1ZmZlcl9jdXJyKTtcbiAgICBjaGFuLmJ1ZmZlcl9jdXJyICs9IGJ1ZmZlci5sZW5ndGg7XG4gICAgaWYoY2hhbi5idWZmZXJfY3VyciA+PSBjaGFuLmJ1ZmZlci5sZW5ndGgpXG4gICAgICBjYW1sX21sX2ZsdXNoIChjaGFuaWQpO1xuICAgIGJyZWFrO1xuICBjYXNlIDI6IC8vIEJ1ZmZlcmVkIChvbmx5IGZvciBzdGRvdXQgYW5kIHN0ZGVycilcbiAgICB2YXIgaWQgPSBidWZmZXIubGFzdEluZGV4T2YoMTApXG4gICAgaWYoaWQgPCAwKSB7XG4gICAgICBjaGFuLmJ1ZmZlci5zZXQoYnVmZmVyLCBjaGFuLmJ1ZmZlcl9jdXJyKTtcbiAgICAgIGNoYW4uYnVmZmVyX2N1cnIgKz0gYnVmZmVyLmxlbmd0aDtcbiAgICAgIGlmKGNoYW4uYnVmZmVyX2N1cnIgPj0gY2hhbi5idWZmZXIubGVuZ3RoKVxuICAgICAgICBjYW1sX21sX2ZsdXNoIChjaGFuaWQpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGNoYW4uYnVmZmVyLnNldChidWZmZXIuc3ViYXJyYXkoMCwgaWQgKyAxKSwgY2hhbi5idWZmZXJfY3Vycik7XG4gICAgICBjaGFuLmJ1ZmZlcl9jdXJyICs9IGlkICsgMTtcbiAgICAgIGNhbWxfbWxfZmx1c2ggKGNoYW5pZCk7XG4gICAgICBjaGFuLmJ1ZmZlci5zZXQoYnVmZmVyLnN1YmFycmF5KGlkICsgMSksIGNoYW4uYnVmZmVyX2N1cnIpO1xuICAgICAgY2hhbi5idWZmZXJfY3VyciArPSBidWZmZXIubGVuZ3RoIC0gaWQgLSAxO1xuICAgIH1cbiAgICBicmVhaztcbiAgfVxuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9vdXRwdXRcbi8vUmVxdWlyZXM6IGNhbWxfbWxfb3V0cHV0X2J5dGVzLCBjYW1sX2J5dGVzX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9tbF9vdXRwdXQoY2hhbmlkLGJ1ZmZlcixvZmZzZXQsbGVuKXtcbiAgcmV0dXJuIGNhbWxfbWxfb3V0cHV0X2J5dGVzKGNoYW5pZCxjYW1sX2J5dGVzX29mX3N0cmluZyhidWZmZXIpLG9mZnNldCxsZW4pO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX291dHB1dF9jaGFyXG4vL1JlcXVpcmVzOiBjYW1sX21sX291dHB1dFxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfanNieXRlc1xuZnVuY3Rpb24gY2FtbF9tbF9vdXRwdXRfY2hhciAoY2hhbmlkLGMpIHtcbiAgdmFyIHMgPSBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKFN0cmluZy5mcm9tQ2hhckNvZGUoYykpO1xuICBjYW1sX21sX291dHB1dChjaGFuaWQscywwLDEpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9vdXRwdXRfdmFsdWVcbi8vUmVxdWlyZXM6IGNhbWxfb3V0cHV0X3ZhbHVlX3RvX3N0cmluZywgY2FtbF9tbF9vdXRwdXQsY2FtbF9tbF9zdHJpbmdfbGVuZ3RoXG5mdW5jdGlvbiBjYW1sX291dHB1dF92YWx1ZSAoY2hhbmlkLHYsZmxhZ3MpIHtcbiAgdmFyIHMgPSBjYW1sX291dHB1dF92YWx1ZV90b19zdHJpbmcodiwgZmxhZ3MpO1xuICBjYW1sX21sX291dHB1dChjaGFuaWQscywwLGNhbWxfbWxfc3RyaW5nX2xlbmd0aChzKSk7XG4gIHJldHVybiAwO1xufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfc2Vla19vdXRcbi8vUmVxdWlyZXM6IGNhbWxfbWxfY2hhbm5lbHMsIGNhbWxfbWxfZmx1c2hcbmZ1bmN0aW9uIGNhbWxfc2Vla19vdXQoY2hhbmlkLCBwb3Mpe1xuICBjYW1sX21sX2ZsdXNoKGNoYW5pZCk7XG4gIHZhciBjaGFuID0gY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdO1xuICBjaGFuLm9mZnNldCA9IHBvcztcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfc2Vla19vdXRcbi8vUmVxdWlyZXM6IGNhbWxfc2Vla19vdXRcbmZ1bmN0aW9uIGNhbWxfbWxfc2Vla19vdXQoY2hhbmlkLHBvcyl7XG4gIHJldHVybiBjYW1sX3NlZWtfb3V0KGNoYW5pZCwgcG9zKTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfbWxfc2Vla19vdXRfNjRcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfdG9fZmxvYXQsIGNhbWxfc2Vla19vdXRcbmZ1bmN0aW9uIGNhbWxfbWxfc2Vla19vdXRfNjQoY2hhbmlkLHBvcyl7XG4gIHZhciBwb3MgPSBjYW1sX2ludDY0X3RvX2Zsb2F0KHBvcyk7XG4gIHJldHVybiBjYW1sX3NlZWtfb3V0KGNoYW5pZCwgcG9zKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9wb3Nfb3V0XG4vL1JlcXVpcmVzOiBjYW1sX21sX2NoYW5uZWxzLCBjYW1sX21sX2ZsdXNoXG5mdW5jdGlvbiBjYW1sX3Bvc19vdXQoY2hhbmlkKSB7XG4gIHZhciBjaGFuID0gY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdO1xuICByZXR1cm4gY2hhbi5vZmZzZXQgKyBjaGFuLmJ1ZmZlcl9jdXJyXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfcG9zX291dFxuLy9SZXF1aXJlczogY2FtbF9wb3Nfb3V0XG5mdW5jdGlvbiBjYW1sX21sX3Bvc19vdXQoY2hhbmlkKSB7XG4gIHJldHVybiBjYW1sX3Bvc19vdXQoY2hhbmlkKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9wb3Nfb3V0XzY0XG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X29mX2Zsb2F0LCBjYW1sX3Bvc19vdXRcbmZ1bmN0aW9uIGNhbWxfbWxfcG9zX291dF82NChjaGFuaWQpIHtcbiAgcmV0dXJuIGNhbWxfaW50NjRfb2ZfZmxvYXQgKGNhbWxfcG9zX291dChjaGFuaWQpKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9vdXRwdXRfaW50XG4vL1JlcXVpcmVzOiBjYW1sX21sX291dHB1dFxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfYXJyYXlcbmZ1bmN0aW9uIGNhbWxfbWxfb3V0cHV0X2ludCAoY2hhbmlkLGkpIHtcbiAgdmFyIGFyciA9IFsoaT4+MjQpICYgMHhGRiwoaT4+MTYpICYgMHhGRiwoaT4+OCkgJiAweEZGLGkgJiAweEZGIF07XG4gIHZhciBzID0gY2FtbF9zdHJpbmdfb2ZfYXJyYXkoYXJyKTtcbiAgY2FtbF9tbF9vdXRwdXQoY2hhbmlkLHMsMCw0KTtcbiAgcmV0dXJuIDBcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9pc19idWZmZXJlZFxuLy9SZXF1aXJlczogY2FtbF9tbF9jaGFubmVsc1xuZnVuY3Rpb24gY2FtbF9tbF9pc19idWZmZXJlZChjaGFuaWQpIHtcbiAgcmV0dXJuIGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXS5idWZmZXJlZCA/IDEgOiAwXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfc2V0X2J1ZmZlcmVkXG4vL1JlcXVpcmVzOiBjYW1sX21sX2NoYW5uZWxzLCBjYW1sX21sX2ZsdXNoXG5mdW5jdGlvbiBjYW1sX21sX3NldF9idWZmZXJlZChjaGFuaWQsdikge1xuICBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF0uYnVmZmVyZWQgPSB2O1xuICBpZighdikgY2FtbF9tbF9mbHVzaChjaGFuaWQpO1xuICByZXR1cm4gMFxufVxuIiwiXG5cbi8vUHJvdmlkZXM6IGNhbWxfZ2NfbWlub3JcbmZ1bmN0aW9uIGNhbWxfZ2NfbWlub3IodW5pdCl7XG4gIC8vYXZhaWxhYmxlIHdpdGggW25vZGUgLS1leHBvc2UtZ2NdXG4gIGlmKHR5cGVvZiBnbG9iYWxUaGlzLmdjID09ICdmdW5jdGlvbicpIGdsb2JhbFRoaXMuZ2ModHJ1ZSk7XG4gIHJldHVybiAwXG59XG4vL1Byb3ZpZGVzOiBjYW1sX2djX21ham9yXG5mdW5jdGlvbiBjYW1sX2djX21ham9yKHVuaXQpe1xuICAvL2F2YWlsYWJsZSB3aXRoIFtub2RlIC0tZXhwb3NlLWdjXVxuICBpZih0eXBlb2YgZ2xvYmFsVGhpcy5nYyA9PSAnZnVuY3Rpb24nKSBnbG9iYWxUaGlzLmdjKCk7XG4gIHJldHVybiAwXG59XG4vL1Byb3ZpZGVzOiBjYW1sX2djX2Z1bGxfbWFqb3JcbmZ1bmN0aW9uIGNhbWxfZ2NfZnVsbF9tYWpvcih1bml0KXtcbiAgLy9hdmFpbGFibGUgd2l0aCBbbm9kZSAtLWV4cG9zZS1nY11cbiAgaWYodHlwZW9mIGdsb2JhbFRoaXMuZ2MgPT0gJ2Z1bmN0aW9uJykgZ2xvYmFsVGhpcy5nYygpO1xuICByZXR1cm4gMFxufVxuLy9Qcm92aWRlczogY2FtbF9nY19jb21wYWN0aW9uXG5mdW5jdGlvbiBjYW1sX2djX2NvbXBhY3Rpb24oKXsgcmV0dXJuIDB9XG4vL1Byb3ZpZGVzOiBjYW1sX2djX2NvdW50ZXJzXG5mdW5jdGlvbiBjYW1sX2djX2NvdW50ZXJzKCkgeyByZXR1cm4gWzI1NCwwLDAsMF0gfVxuLy9Qcm92aWRlczogY2FtbF9nY19xdWlja19zdGF0XG5mdW5jdGlvbiBjYW1sX2djX3F1aWNrX3N0YXQoKXtcbiAgcmV0dXJuIFswLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDBdXG59XG4vL1Byb3ZpZGVzOiBjYW1sX2djX3N0YXRcbmZ1bmN0aW9uIGNhbWxfZ2Nfc3RhdCgpIHtcbiAgcmV0dXJuIFswLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDBdXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ2Nfc2V0XG5mdW5jdGlvbiBjYW1sX2djX3NldChfY29udHJvbCkge1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9nY19nZXRcbmZ1bmN0aW9uIGNhbWxfZ2NfZ2V0KCl7XG4gIHJldHVybiBbMCwwLDAsMCwwLDAsMCwwLDBdXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWVtcHJvZl9zZXRcbmZ1bmN0aW9uIGNhbWxfbWVtcHJvZl9zZXQoX2NvbnRyb2wpIHtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZmluYWxfcmVnaXN0ZXIgY29uc3RcbmZ1bmN0aW9uIGNhbWxfZmluYWxfcmVnaXN0ZXIgKCkgeyByZXR1cm4gMDsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ZpbmFsX3JlZ2lzdGVyX2NhbGxlZF93aXRob3V0X3ZhbHVlXG52YXIgYWxsX2ZpbmFsaXplcnMgPSBuZXcgZ2xvYmFsVGhpcy5TZXQoKVxuZnVuY3Rpb24gY2FtbF9maW5hbF9yZWdpc3Rlcl9jYWxsZWRfd2l0aG91dF92YWx1ZSAoY2IsIGEpIHtcbiAgaWYoZ2xvYmFsVGhpcy5GaW5hbGl6YXRpb25SZWdpc3RyeSAmJiBhIGluc3RhbmNlb2YgT2JqZWN0KSB7XG4gICAgdmFyIHggPSBuZXcgZ2xvYmFsVGhpcy5GaW5hbGl6YXRpb25SZWdpc3RyeShmdW5jdGlvbiAoeCl7YWxsX2ZpbmFsaXplcnMuZGVsZXRlKHgpOyBjYigwKTsgcmV0dXJuO30pO1xuICAgIHgucmVnaXN0ZXIoYSx4KTtcbiAgICBhbGxfZmluYWxpemVycy5hZGQoeCk7XG4gIH1cbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZmluYWxfcmVsZWFzZSBjb25zdFxuZnVuY3Rpb24gY2FtbF9maW5hbF9yZWxlYXNlICgpIHsgcmV0dXJuIDA7IH1cblxuLy9Qcm92aWRlczogY2FtbF9tZW1wcm9mX3N0YXJ0XG5mdW5jdGlvbiBjYW1sX21lbXByb2Zfc3RhcnQocmF0ZSxzdGFja19zaXplLHRyYWNrZXIpe1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tZW1wcm9mX3N0b3BcbmZ1bmN0aW9uIGNhbWxfbWVtcHJvZl9zdG9wKHVuaXQpIHtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZXZlbnRsb2dfcmVzdW1lXG5mdW5jdGlvbiBjYW1sX2V2ZW50bG9nX3Jlc3VtZSh1bml0KSB7IHJldHVybiAwOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfZXZlbnRsb2dfcGF1c2VcbmZ1bmN0aW9uIGNhbWxfZXZlbnRsb2dfcGF1c2UodW5pdCkgeyByZXR1cm4gMDsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2djX2h1Z2VfZmFsbGJhY2tfY291bnRcbmZ1bmN0aW9uIGNhbWxfZ2NfaHVnZV9mYWxsYmFja19jb3VudCh1bml0KSB7IHJldHVybiAwOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ2NfbWFqb3Jfc2xpY2VcbmZ1bmN0aW9uIGNhbWxfZ2NfbWFqb3Jfc2xpY2Uod29yaykgeyByZXR1cm4gMDsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2djX21pbm9yX3dvcmRzXG5mdW5jdGlvbiBjYW1sX2djX21pbm9yX3dvcmRzKHVuaXQpIHsgcmV0dXJuIDA7IH1cblxuLy9Qcm92aWRlczogY2FtbF9nZXRfbWlub3JfZnJlZVxuZnVuY3Rpb24gY2FtbF9nZXRfbWlub3JfZnJlZSh1bml0KSB7IHJldHVybiAwOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ2V0X21ham9yX2J1Y2tldFxuZnVuY3Rpb24gY2FtbF9nZXRfbWFqb3JfYnVja2V0KG4pIHsgcmV0dXJuIDA7IH1cblxuLy9Qcm92aWRlczogY2FtbF9nZXRfbWFqb3JfY3JlZGl0XG5mdW5jdGlvbiBjYW1sX2dldF9tYWpvcl9jcmVkaXQobikgeyByZXR1cm4gMDsgfVxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy8gQ29weXJpZ2h0IChDKSAyMDE0IErDqXLDtG1lIFZvdWlsbG9uLCBIdWdvIEhldXphcmQsIEFuZHkgUmF5XG4vLyBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3Rcbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG4vL1xuLy8gQmlnYXJyYXkuXG4vL1xuLy8gLSBhbGwgYmlnYXJyYXkgdHlwZXMgaW5jbHVkaW5nIEludDY0IGFuZCBDb21wbGV4LlxuLy8gLSBmb3J0cmFuICsgYyBsYXlvdXRzXG4vLyAtIHN1Yi9zbGljZS9yZXNoYXBlXG4vLyAtIHJldGFpbiBmYXN0IHBhdGggZm9yIDFkIGFycmF5IGFjY2Vzc1xuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2luaXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfYmFfaW5pdCgpIHtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfZ2V0X3NpemVcbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gY2FtbF9iYV9nZXRfc2l6ZShkaW1zKSB7XG4gIHZhciBuX2RpbXMgPSBkaW1zLmxlbmd0aDtcbiAgdmFyIHNpemUgPSAxO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IG5fZGltczsgaSsrKSB7XG4gICAgaWYgKGRpbXNbaV0gPCAwKVxuICAgICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiQmlnYXJyYXkuY3JlYXRlOiBuZWdhdGl2ZSBkaW1lbnNpb25cIik7XG4gICAgc2l6ZSA9IHNpemUgKiBkaW1zW2ldO1xuICB9XG4gIHJldHVybiBzaXplO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2dldF9zaXplX3Blcl9lbGVtZW50XG5mdW5jdGlvbiBjYW1sX2JhX2dldF9zaXplX3Blcl9lbGVtZW50KGtpbmQpe1xuICBzd2l0Y2goa2luZCl7XG4gIGNhc2UgNzogY2FzZSAxMDogY2FzZSAxMTogcmV0dXJuIDI7XG4gIGRlZmF1bHQ6IHJldHVybiAxO1xuICB9XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfY3JlYXRlX2J1ZmZlclxuLy9SZXF1aXJlczogY2FtbF9iYV9nZXRfc2l6ZV9wZXJfZWxlbWVudFxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBjYW1sX2JhX2NyZWF0ZV9idWZmZXIoa2luZCwgc2l6ZSl7XG4gIHZhciB2aWV3O1xuICBzd2l0Y2goa2luZCl7XG4gIGNhc2UgMDogIHZpZXcgPSBGbG9hdDMyQXJyYXk7IGJyZWFrO1xuICBjYXNlIDE6ICB2aWV3ID0gRmxvYXQ2NEFycmF5OyBicmVhaztcbiAgY2FzZSAyOiAgdmlldyA9IEludDhBcnJheTsgYnJlYWs7XG4gIGNhc2UgMzogIHZpZXcgPSBVaW50OEFycmF5OyBicmVhaztcbiAgY2FzZSA0OiAgdmlldyA9IEludDE2QXJyYXk7IGJyZWFrO1xuICBjYXNlIDU6ICB2aWV3ID0gVWludDE2QXJyYXk7IGJyZWFrO1xuICBjYXNlIDY6ICB2aWV3ID0gSW50MzJBcnJheTsgYnJlYWs7XG4gIGNhc2UgNzogIHZpZXcgPSBJbnQzMkFycmF5OyBicmVhaztcbiAgY2FzZSA4OiAgdmlldyA9IEludDMyQXJyYXk7IGJyZWFrO1xuICBjYXNlIDk6ICB2aWV3ID0gSW50MzJBcnJheTsgYnJlYWs7XG4gIGNhc2UgMTA6IHZpZXcgPSBGbG9hdDMyQXJyYXk7IGJyZWFrO1xuICBjYXNlIDExOiB2aWV3ID0gRmxvYXQ2NEFycmF5OyBicmVhaztcbiAgY2FzZSAxMjogdmlldyA9IFVpbnQ4QXJyYXk7IGJyZWFrO1xuICB9XG4gIGlmICghdmlldykgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiQmlnYXJyYXkuY3JlYXRlOiB1bnN1cHBvcnRlZCBraW5kXCIpO1xuICB2YXIgZGF0YSA9IG5ldyB2aWV3KHNpemUgKiBjYW1sX2JhX2dldF9zaXplX3Blcl9lbGVtZW50KGtpbmQpKTtcbiAgcmV0dXJuIGRhdGE7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfY3VzdG9tX25hbWVcbi8vVmVyc2lvbjogPCA0LjExXG52YXIgY2FtbF9iYV9jdXN0b21fbmFtZSA9IFwiX2JpZ2FycmF5XCJcblxuLy9Qcm92aWRlczogY2FtbF9iYV9jdXN0b21fbmFtZVxuLy9WZXJzaW9uOiA+PSA0LjExXG52YXIgY2FtbF9iYV9jdXN0b21fbmFtZSA9IFwiX2JpZ2FycjAyXCJcblxuLy9Qcm92aWRlczogTWxfQmlnYXJyYXlcbi8vUmVxdWlyZXM6IGNhbWxfYXJyYXlfYm91bmRfZXJyb3IsIGNhbWxfaW52YWxpZF9hcmd1bWVudCwgY2FtbF9iYV9jdXN0b21fbmFtZVxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9jcmVhdGVfbG9faGksIGNhbWxfaW50NjRfaGkzMiwgY2FtbF9pbnQ2NF9sbzMyXG5mdW5jdGlvbiBNbF9CaWdhcnJheSAoa2luZCwgbGF5b3V0LCBkaW1zLCBidWZmZXIpIHtcblxuICB0aGlzLmtpbmQgICA9IGtpbmQgO1xuICB0aGlzLmxheW91dCA9IGxheW91dDtcbiAgdGhpcy5kaW1zICAgPSBkaW1zO1xuICB0aGlzLmRhdGEgPSBidWZmZXI7XG59XG5cbk1sX0JpZ2FycmF5LnByb3RvdHlwZS5jYW1sX2N1c3RvbSA9IGNhbWxfYmFfY3VzdG9tX25hbWU7XG5cbk1sX0JpZ2FycmF5LnByb3RvdHlwZS5vZmZzZXQgPSBmdW5jdGlvbiAoYXJnKSB7XG4gIHZhciBvZnMgPSAwO1xuICBpZih0eXBlb2YgYXJnID09PSBcIm51bWJlclwiKSBhcmcgPSBbYXJnXTtcbiAgaWYgKCEgKGFyZyBpbnN0YW5jZW9mIEFycmF5KSkgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiYmlnYXJyYXkuanM6IGludmFsaWQgb2Zmc2V0XCIpO1xuICBpZiAodGhpcy5kaW1zLmxlbmd0aCAhPSBhcmcubGVuZ3RoKVxuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIkJpZ2FycmF5LmdldC9zZXQ6IGJhZCBudW1iZXIgb2YgZGltZW5zaW9uc1wiKTtcbiAgaWYodGhpcy5sYXlvdXQgPT0gMCAvKiBjX2xheW91dCAqLykge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5kaW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoYXJnW2ldIDwgMCB8fCBhcmdbaV0gPj0gdGhpcy5kaW1zW2ldKVxuICAgICAgICBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gICAgICBvZnMgPSAob2ZzICogdGhpcy5kaW1zW2ldKSArIGFyZ1tpXTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgZm9yICh2YXIgaSA9IHRoaXMuZGltcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgaWYgKGFyZ1tpXSA8IDEgfHwgYXJnW2ldID4gdGhpcy5kaW1zW2ldKXtcbiAgICAgICAgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICAgICAgfVxuICAgICAgb2ZzID0gKG9mcyAqIHRoaXMuZGltc1tpXSkgKyAoYXJnW2ldIC0gMSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBvZnM7XG59XG5cbk1sX0JpZ2FycmF5LnByb3RvdHlwZS5nZXQgPSBmdW5jdGlvbiAob2ZzKSB7XG4gIHN3aXRjaCh0aGlzLmtpbmQpe1xuICBjYXNlIDc6XG4gICAgLy8gSW50NjRcbiAgICB2YXIgbCA9IHRoaXMuZGF0YVtvZnMgKiAyICsgMF07XG4gICAgdmFyIGggPSB0aGlzLmRhdGFbb2ZzICogMiArIDFdO1xuICAgIHJldHVybiBjYW1sX2ludDY0X2NyZWF0ZV9sb19oaShsLGgpO1xuICBjYXNlIDEwOiBjYXNlIDExOlxuICAgIC8vIENvbXBsZXgzMiwgQ29tcGxleDY0XG4gICAgdmFyIHIgPSB0aGlzLmRhdGFbb2ZzICogMiArIDBdO1xuICAgIHZhciBpID0gdGhpcy5kYXRhW29mcyAqIDIgKyAxXTtcbiAgICByZXR1cm4gWzI1NCwgciwgaV07XG4gIGRlZmF1bHQ6XG4gICAgcmV0dXJuIHRoaXMuZGF0YVtvZnNdXG4gIH1cbn1cblxuTWxfQmlnYXJyYXkucHJvdG90eXBlLnNldCA9IGZ1bmN0aW9uIChvZnMsdikge1xuICBzd2l0Y2godGhpcy5raW5kKXtcbiAgY2FzZSA3OlxuICAgIC8vIEludDY0XG4gICAgdGhpcy5kYXRhW29mcyAqIDIgKyAwXSA9IGNhbWxfaW50NjRfbG8zMih2KTtcbiAgICB0aGlzLmRhdGFbb2ZzICogMiArIDFdID0gY2FtbF9pbnQ2NF9oaTMyKHYpO1xuICAgIGJyZWFrO1xuICBjYXNlIDEwOiBjYXNlIDExOlxuICAgIC8vIENvbXBsZXgzMiwgQ29tcGxleDY0XG4gICAgdGhpcy5kYXRhW29mcyAqIDIgKyAwXSA9IHZbMV07XG4gICAgdGhpcy5kYXRhW29mcyAqIDIgKyAxXSA9IHZbMl07XG4gICAgYnJlYWs7XG4gIGRlZmF1bHQ6XG4gICAgdGhpcy5kYXRhW29mc10gPSB2O1xuICAgIGJyZWFrO1xuICB9XG4gIHJldHVybiAwXG59XG5cblxuTWxfQmlnYXJyYXkucHJvdG90eXBlLmZpbGwgPSBmdW5jdGlvbiAodikge1xuICBzd2l0Y2godGhpcy5raW5kKXtcbiAgY2FzZSA3OlxuICAgIC8vIEludDY0XG4gICAgdmFyIGEgPSBjYW1sX2ludDY0X2xvMzIodik7XG4gICAgdmFyIGIgPSBjYW1sX2ludDY0X2hpMzIodik7XG4gICAgaWYoYSA9PSBiKXtcbiAgICAgIHRoaXMuZGF0YS5maWxsKGEpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGZvcih2YXIgaSA9IDA7IGk8dGhpcy5kYXRhLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgdGhpcy5kYXRhW2ldID0gKGklMiA9PSAwKSA/IGEgOiBiO1xuICAgICAgfVxuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSAxMDogY2FzZSAxMTpcbiAgICAvLyBDb21wbGV4MzIsIENvbXBsZXg2NFxuICAgIHZhciBpbSA9IHZbMV07XG4gICAgdmFyIHJlID0gdlsyXTtcbiAgICBpZihpbSA9PSByZSl7XG4gICAgICB0aGlzLmRhdGEuZmlsbChpbSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgZm9yKHZhciBpID0gMDsgaTx0aGlzLmRhdGEubGVuZ3RoOyBpKyspe1xuICAgICAgICB0aGlzLmRhdGFbaV0gPSAoaSUyID09IDApID8gaW0gOiByZTtcbiAgICAgIH1cbiAgICB9XG4gICAgYnJlYWs7XG4gIGRlZmF1bHQ6XG4gICAgdGhpcy5kYXRhLmZpbGwodik7XG4gICAgYnJlYWs7XG4gIH1cbn1cblxuXG5NbF9CaWdhcnJheS5wcm90b3R5cGUuY29tcGFyZSA9IGZ1bmN0aW9uIChiLCB0b3RhbCkge1xuICBpZiAodGhpcy5sYXlvdXQgIT0gYi5sYXlvdXQgfHwgdGhpcy5raW5kICE9IGIua2luZCkge1xuICAgIHZhciBrMSA9IHRoaXMua2luZCB8ICh0aGlzLmxheW91dCA8PCA4KTtcbiAgICB2YXIgazIgPSAgICBiLmtpbmQgfCAoYi5sYXlvdXQgPDwgOCk7XG4gICAgcmV0dXJuIGsyIC0gazE7XG4gIH1cbiAgaWYgKHRoaXMuZGltcy5sZW5ndGggIT0gYi5kaW1zLmxlbmd0aCkge1xuICAgIHJldHVybiBiLmRpbXMubGVuZ3RoIC0gdGhpcy5kaW1zLmxlbmd0aDtcbiAgfVxuICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuZGltcy5sZW5ndGg7IGkrKylcbiAgICBpZiAodGhpcy5kaW1zW2ldICE9IGIuZGltc1tpXSlcbiAgICAgIHJldHVybiAodGhpcy5kaW1zW2ldIDwgYi5kaW1zW2ldKSA/IC0xIDogMTtcbiAgc3dpdGNoICh0aGlzLmtpbmQpIHtcbiAgY2FzZSAwOlxuICBjYXNlIDE6XG4gIGNhc2UgMTA6XG4gIGNhc2UgMTE6XG4gICAgLy8gRmxvYXRzXG4gICAgdmFyIHgsIHk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmRhdGEubGVuZ3RoOyBpKyspIHtcbiAgICAgIHggPSB0aGlzLmRhdGFbaV07XG4gICAgICB5ID0gYi5kYXRhW2ldO1xuICAgICAgaWYgKHggPCB5KVxuICAgICAgICByZXR1cm4gLTE7XG4gICAgICBpZiAoeCA+IHkpXG4gICAgICAgIHJldHVybiAxO1xuICAgICAgaWYgKHggIT0geSkge1xuICAgICAgICBpZiAoIXRvdGFsKSByZXR1cm4gTmFOO1xuICAgICAgICBpZiAoeCA9PSB4KSByZXR1cm4gMTtcbiAgICAgICAgaWYgKHkgPT0geSkgcmV0dXJuIC0xO1xuICAgICAgfVxuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSA3OlxuICAgIC8vIEludDY0XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmRhdGEubGVuZ3RoOyBpKz0yKSB7XG4gICAgICAvLyBDaGVjayBoaWdoZXN0IGJpdHMgZmlyc3RcbiAgICAgIGlmICh0aGlzLmRhdGFbaSsxXSA8IGIuZGF0YVtpKzFdKVxuICAgICAgICByZXR1cm4gLTE7XG4gICAgICBpZiAodGhpcy5kYXRhW2krMV0gPiBiLmRhdGFbaSsxXSlcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgICBpZiAoKHRoaXMuZGF0YVtpXSA+Pj4gMCkgPCAoYi5kYXRhW2ldID4+PiAwKSlcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgaWYgKCh0aGlzLmRhdGFbaV0gPj4+IDApID4gKGIuZGF0YVtpXSA+Pj4gMCkpXG4gICAgICAgIHJldHVybiAxO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSAyOlxuICBjYXNlIDM6XG4gIGNhc2UgNDpcbiAgY2FzZSA1OlxuICBjYXNlIDY6XG4gIGNhc2UgODpcbiAgY2FzZSA5OlxuICBjYXNlIDEyOlxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5kYXRhLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAodGhpcy5kYXRhW2ldIDwgYi5kYXRhW2ldKVxuICAgICAgICByZXR1cm4gLTE7XG4gICAgICBpZiAodGhpcy5kYXRhW2ldID4gYi5kYXRhW2ldKVxuICAgICAgICByZXR1cm4gMTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIH1cbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IE1sX0JpZ2FycmF5X2NfMV8xXG4vL1JlcXVpcmVzOiBNbF9CaWdhcnJheSwgY2FtbF9hcnJheV9ib3VuZF9lcnJvciwgY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBNbF9CaWdhcnJheV9jXzFfMShraW5kLCBsYXlvdXQsIGRpbXMsIGJ1ZmZlcikge1xuICB0aGlzLmtpbmQgICA9IGtpbmQgO1xuICB0aGlzLmxheW91dCA9IGxheW91dDtcbiAgdGhpcy5kaW1zICAgPSBkaW1zO1xuICB0aGlzLmRhdGEgICA9IGJ1ZmZlcjtcbn1cblxuTWxfQmlnYXJyYXlfY18xXzEucHJvdG90eXBlID0gbmV3IE1sX0JpZ2FycmF5KClcbk1sX0JpZ2FycmF5X2NfMV8xLnByb3RvdHlwZS5vZmZzZXQgPSBmdW5jdGlvbiAoYXJnKSB7XG4gIGlmKHR5cGVvZiBhcmcgIT09IFwibnVtYmVyXCIpe1xuICAgIGlmKChhcmcgaW5zdGFuY2VvZiBBcnJheSkgJiYgYXJnLmxlbmd0aCA9PSAxKVxuICAgICAgYXJnID0gYXJnWzBdO1xuICAgIGVsc2UgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiTWxfQmlnYXJyYXlfY18xXzEub2Zmc2V0XCIpO1xuICB9XG4gIGlmIChhcmcgPCAwIHx8IGFyZyA+PSB0aGlzLmRpbXNbMF0pXG4gICAgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICByZXR1cm4gYXJnO1xufVxuXG5NbF9CaWdhcnJheV9jXzFfMS5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24gKG9mcykge1xuICByZXR1cm4gdGhpcy5kYXRhW29mc107XG59XG5cbk1sX0JpZ2FycmF5X2NfMV8xLnByb3RvdHlwZS5zZXQgPSBmdW5jdGlvbiAob2ZzLHYpIHtcbiAgdGhpcy5kYXRhW29mc10gPSB2O1xuICByZXR1cm4gMFxufVxuXG5NbF9CaWdhcnJheV9jXzFfMS5wcm90b3R5cGUuZmlsbCA9IGZ1bmN0aW9uICh2KSB7XG4gIHRoaXMuZGF0YS5maWxsKHYpO1xuICByZXR1cm4gMFxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2NvbXBhcmVcbmZ1bmN0aW9uIGNhbWxfYmFfY29tcGFyZShhLGIsdG90YWwpe1xuICByZXR1cm4gYS5jb21wYXJlKGIsdG90YWwpXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfY3JlYXRlX3Vuc2FmZVxuLy9SZXF1aXJlczogTWxfQmlnYXJyYXksIE1sX0JpZ2FycmF5X2NfMV8xLCBjYW1sX2JhX2dldF9zaXplLCBjYW1sX2JhX2dldF9zaXplX3Blcl9lbGVtZW50XG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIGNhbWxfYmFfY3JlYXRlX3Vuc2FmZShraW5kLCBsYXlvdXQsIGRpbXMsIGRhdGEpe1xuICB2YXIgc2l6ZV9wZXJfZWxlbWVudCA9IGNhbWxfYmFfZ2V0X3NpemVfcGVyX2VsZW1lbnQoa2luZCk7XG4gIGlmKGNhbWxfYmFfZ2V0X3NpemUoZGltcykgKiBzaXplX3Blcl9lbGVtZW50ICE9IGRhdGEubGVuZ3RoKSB7XG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwibGVuZ3RoIGRvZXNuJ3QgbWF0Y2ggZGltc1wiKTtcbiAgfVxuICBpZihsYXlvdXQgPT0gMCAmJiAvLyBjX2xheW91dFxuICAgICBkaW1zLmxlbmd0aCA9PSAxICYmIC8vIEFycmF5MVxuICAgICBzaXplX3Blcl9lbGVtZW50ID09IDEpIC8vIDEtdG8tMSBtYXBwaW5nXG4gICAgcmV0dXJuIG5ldyBNbF9CaWdhcnJheV9jXzFfMShraW5kLCBsYXlvdXQsIGRpbXMsIGRhdGEpO1xuICByZXR1cm4gbmV3IE1sX0JpZ2FycmF5KGtpbmQsIGxheW91dCwgZGltcywgZGF0YSk7XG5cbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2NyZWF0ZVxuLy9SZXF1aXJlczogY2FtbF9qc19mcm9tX2FycmF5XG4vL1JlcXVpcmVzOiBjYW1sX2JhX2dldF9zaXplLCBjYW1sX2JhX2NyZWF0ZV91bnNhZmVcbi8vUmVxdWlyZXM6IGNhbWxfYmFfY3JlYXRlX2J1ZmZlclxuZnVuY3Rpb24gY2FtbF9iYV9jcmVhdGUoa2luZCwgbGF5b3V0LCBkaW1zX21sKSB7XG4gIHZhciBkaW1zID0gY2FtbF9qc19mcm9tX2FycmF5KGRpbXNfbWwpO1xuICB2YXIgZGF0YSA9IGNhbWxfYmFfY3JlYXRlX2J1ZmZlcihraW5kLCBjYW1sX2JhX2dldF9zaXplKGRpbXMpKTtcbiAgcmV0dXJuIGNhbWxfYmFfY3JlYXRlX3Vuc2FmZShraW5kLCBsYXlvdXQsIGRpbXMsIGRhdGEpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2NoYW5nZV9sYXlvdXRcbi8vUmVxdWlyZXM6IGNhbWxfYmFfY3JlYXRlX3Vuc2FmZVxuZnVuY3Rpb24gY2FtbF9iYV9jaGFuZ2VfbGF5b3V0KGJhLCBsYXlvdXQpIHtcbiAgaWYoYmEubGF5b3V0ID09IGxheW91dCkgcmV0dXJuIGJhO1xuICB2YXIgbmV3X2RpbXMgPSBbXVxuICBmb3IodmFyIGkgPSAwOyBpIDwgYmEuZGltcy5sZW5ndGg7IGkrKykgbmV3X2RpbXNbaV0gPSBiYS5kaW1zW2JhLmRpbXMubGVuZ3RoIC0gaSAtIDFdO1xuICByZXR1cm4gY2FtbF9iYV9jcmVhdGVfdW5zYWZlKGJhLmtpbmQsIGxheW91dCwgbmV3X2RpbXMsIGJhLmRhdGEpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2tpbmRcbmZ1bmN0aW9uIGNhbWxfYmFfa2luZChiYSkge1xuICByZXR1cm4gYmEua2luZDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9sYXlvdXRcbmZ1bmN0aW9uIGNhbWxfYmFfbGF5b3V0KGJhKSB7XG4gIHJldHVybiBiYS5sYXlvdXQ7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfbnVtX2RpbXNcbmZ1bmN0aW9uIGNhbWxfYmFfbnVtX2RpbXMoYmEpIHtcbiAgcmV0dXJuIGJhLmRpbXMubGVuZ3RoO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2RpbVxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBjYW1sX2JhX2RpbShiYSwgaSkge1xuICBpZiAoaSA8IDAgfHwgaSA+PSBiYS5kaW1zLmxlbmd0aClcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJCaWdhcnJheS5kaW1cIik7XG4gIHJldHVybiBiYS5kaW1zW2ldO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2RpbV8xXG4vL1JlcXVpcmVzOiBjYW1sX2JhX2RpbVxuZnVuY3Rpb24gY2FtbF9iYV9kaW1fMShiYSkge1xuICByZXR1cm4gY2FtbF9iYV9kaW0oYmEsIDApO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2RpbV8yXG4vL1JlcXVpcmVzOiBjYW1sX2JhX2RpbVxuZnVuY3Rpb24gY2FtbF9iYV9kaW1fMihiYSkge1xuICByZXR1cm4gY2FtbF9iYV9kaW0oYmEsIDEpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2RpbV8zXG4vL1JlcXVpcmVzOiBjYW1sX2JhX2RpbVxuZnVuY3Rpb24gY2FtbF9iYV9kaW1fMyhiYSkge1xuICByZXR1cm4gY2FtbF9iYV9kaW0oYmEsIDIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2dldF9nZW5lcmljXG4vL1JlcXVpcmVzOiBjYW1sX2pzX2Zyb21fYXJyYXlcbmZ1bmN0aW9uIGNhbWxfYmFfZ2V0X2dlbmVyaWMoYmEsIGkpIHtcbiAgdmFyIG9mcyA9IGJhLm9mZnNldChjYW1sX2pzX2Zyb21fYXJyYXkoaSkpO1xuICByZXR1cm4gYmEuZ2V0KG9mcyk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfdWludDhfZ2V0MTZcbi8vUmVxdWlyZXM6IGNhbWxfYXJyYXlfYm91bmRfZXJyb3JcbmZ1bmN0aW9uIGNhbWxfYmFfdWludDhfZ2V0MTYoYmEsIGkwKSB7XG4gIHZhciBvZnMgPSBiYS5vZmZzZXQoaTApO1xuICBpZihvZnMgKyAxID49IGJhLmRhdGEubGVuZ3RoKSBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gIHZhciBiMSA9IGJhLmdldChvZnMpO1xuICB2YXIgYjIgPSBiYS5nZXQob2ZzICsgMSk7XG4gIHJldHVybiAoYjEgfCAoYjIgPDwgOCkpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX3VpbnQ4X2dldDMyXG4vL1JlcXVpcmVzOiBjYW1sX2FycmF5X2JvdW5kX2Vycm9yXG5mdW5jdGlvbiBjYW1sX2JhX3VpbnQ4X2dldDMyKGJhLCBpMCkge1xuICB2YXIgb2ZzID0gYmEub2Zmc2V0KGkwKTtcbiAgaWYob2ZzICsgMyA+PSBiYS5kYXRhLmxlbmd0aCkgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICB2YXIgYjEgPSBiYS5nZXQob2ZzKzApO1xuICB2YXIgYjIgPSBiYS5nZXQob2ZzKzEpO1xuICB2YXIgYjMgPSBiYS5nZXQob2ZzKzIpO1xuICB2YXIgYjQgPSBiYS5nZXQob2ZzKzMpO1xuICByZXR1cm4gKCAoYjEgPDwgMCkgIHxcbiAgICAgICAgICAgKGIyIDw8IDgpICB8XG4gICAgICAgICAgIChiMyA8PCAxNikgfFxuICAgICAgICAgICAoYjQgPDwgMjQpICk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfdWludDhfZ2V0NjRcbi8vUmVxdWlyZXM6IGNhbWxfYXJyYXlfYm91bmRfZXJyb3IsIGNhbWxfaW50NjRfb2ZfYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfYmFfdWludDhfZ2V0NjQoYmEsIGkwKSB7XG4gIHZhciBvZnMgPSBiYS5vZmZzZXQoaTApO1xuICBpZihvZnMgKyA3ID49IGJhLmRhdGEubGVuZ3RoKSBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gIHZhciBiMSA9IGJhLmdldChvZnMrMCk7XG4gIHZhciBiMiA9IGJhLmdldChvZnMrMSk7XG4gIHZhciBiMyA9IGJhLmdldChvZnMrMik7XG4gIHZhciBiNCA9IGJhLmdldChvZnMrMyk7XG4gIHZhciBiNSA9IGJhLmdldChvZnMrNCk7XG4gIHZhciBiNiA9IGJhLmdldChvZnMrNSk7XG4gIHZhciBiNyA9IGJhLmdldChvZnMrNik7XG4gIHZhciBiOCA9IGJhLmdldChvZnMrNyk7XG4gIHJldHVybiBjYW1sX2ludDY0X29mX2J5dGVzKFtiOCxiNyxiNixiNSxiNCxiMyxiMixiMV0pO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2dldF8xXG5mdW5jdGlvbiBjYW1sX2JhX2dldF8xKGJhLCBpMCkge1xuICByZXR1cm4gYmEuZ2V0KGJhLm9mZnNldChpMCkpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2dldF8yXG5mdW5jdGlvbiBjYW1sX2JhX2dldF8yKGJhLCBpMCwgaTEpIHtcbiAgcmV0dXJuIGJhLmdldChiYS5vZmZzZXQoW2kwLGkxXSkpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2dldF8zXG5mdW5jdGlvbiBjYW1sX2JhX2dldF8zKGJhLCBpMCwgaTEsIGkyKSB7XG4gIHJldHVybiBiYS5nZXQoYmEub2Zmc2V0KFtpMCxpMSxpMl0pKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9zZXRfZ2VuZXJpY1xuLy9SZXF1aXJlczogY2FtbF9qc19mcm9tX2FycmF5XG5mdW5jdGlvbiBjYW1sX2JhX3NldF9nZW5lcmljKGJhLCBpLCB2KSB7XG4gIGJhLnNldChiYS5vZmZzZXQoY2FtbF9qc19mcm9tX2FycmF5KGkpKSwgdik7XG4gIHJldHVybiAwXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfdWludDhfc2V0MTZcbi8vUmVxdWlyZXM6IGNhbWxfYXJyYXlfYm91bmRfZXJyb3JcbmZ1bmN0aW9uIGNhbWxfYmFfdWludDhfc2V0MTYoYmEsIGkwLCB2KSB7XG4gIHZhciBvZnMgPSBiYS5vZmZzZXQoaTApO1xuICBpZihvZnMgKyAxID49IGJhLmRhdGEubGVuZ3RoKSBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gIGJhLnNldChvZnMrMCwgIHYgICAgICAgICYgMHhmZik7XG4gIGJhLnNldChvZnMrMSwgKHYgPj4+IDgpICYgMHhmZik7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX3VpbnQ4X3NldDMyXG4vL1JlcXVpcmVzOiBjYW1sX2FycmF5X2JvdW5kX2Vycm9yXG5mdW5jdGlvbiBjYW1sX2JhX3VpbnQ4X3NldDMyKGJhLCBpMCwgdikge1xuICB2YXIgb2ZzID0gYmEub2Zmc2V0KGkwKTtcbiAgaWYob2ZzICsgMyA+PSBiYS5kYXRhLmxlbmd0aCkgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICBiYS5zZXQob2ZzKzAsICB2ICAgICAgICAgJiAweGZmKTtcbiAgYmEuc2V0KG9mcysxLCAodiA+Pj4gOCkgICYgMHhmZik7XG4gIGJhLnNldChvZnMrMiwgKHYgPj4+IDE2KSAmIDB4ZmYpO1xuICBiYS5zZXQob2ZzKzMsICh2ID4+PiAyNCkgJiAweGZmKTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfdWludDhfc2V0NjRcbi8vUmVxdWlyZXM6IGNhbWxfYXJyYXlfYm91bmRfZXJyb3IsIGNhbWxfaW50NjRfdG9fYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfYmFfdWludDhfc2V0NjQoYmEsIGkwLCB2KSB7XG4gIHZhciBvZnMgPSBiYS5vZmZzZXQoaTApO1xuICBpZihvZnMgKyA3ID49IGJhLmRhdGEubGVuZ3RoKSBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gIHZhciB2ID0gY2FtbF9pbnQ2NF90b19ieXRlcyh2KTtcbiAgZm9yKHZhciBpID0gMDsgaSA8IDg7IGkrKykgYmEuc2V0KG9mcytpLCB2WzctaV0pXG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX3NldF8xXG5mdW5jdGlvbiBjYW1sX2JhX3NldF8xKGJhLCBpMCwgdikge1xuICBiYS5zZXQoYmEub2Zmc2V0KGkwKSwgdik7XG4gIHJldHVybiAwXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfc2V0XzJcbmZ1bmN0aW9uIGNhbWxfYmFfc2V0XzIoYmEsIGkwLCBpMSwgdikge1xuICBiYS5zZXQoYmEub2Zmc2V0KFtpMCxpMV0pLCB2KTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfc2V0XzNcbmZ1bmN0aW9uIGNhbWxfYmFfc2V0XzMoYmEsIGkwLCBpMSwgaTIsIHYpIHtcbiAgYmEuc2V0KGJhLm9mZnNldChbaTAsaTEsaTJdKSwgdik7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2ZpbGxcbmZ1bmN0aW9uIGNhbWxfYmFfZmlsbChiYSwgdikge1xuICBiYS5maWxsKHYpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9ibGl0XG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIGNhbWxfYmFfYmxpdChzcmMsIGRzdCkge1xuICBpZiAoZHN0LmRpbXMubGVuZ3RoICE9IHNyYy5kaW1zLmxlbmd0aClcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJCaWdhcnJheS5ibGl0OiBkaW1lbnNpb24gbWlzbWF0Y2hcIik7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgZHN0LmRpbXMubGVuZ3RoOyBpKyspXG4gICAgaWYgKGRzdC5kaW1zW2ldICE9IHNyYy5kaW1zW2ldKVxuICAgICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiQmlnYXJyYXkuYmxpdDogZGltZW5zaW9uIG1pc21hdGNoXCIpO1xuICBkc3QuZGF0YS5zZXQoc3JjLmRhdGEpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9zdWJcbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudCwgY2FtbF9iYV9jcmVhdGVfdW5zYWZlLCBjYW1sX2JhX2dldF9zaXplXG4vL1JlcXVpcmVzOiBjYW1sX2JhX2dldF9zaXplX3Blcl9lbGVtZW50XG5mdW5jdGlvbiBjYW1sX2JhX3N1YihiYSwgb2ZzLCBsZW4pIHtcbiAgdmFyIGNoYW5nZWRfZGltO1xuICB2YXIgbXVsID0gMTtcbiAgaWYgKGJhLmxheW91dCA9PSAwKSB7XG4gICAgZm9yICh2YXIgaSA9IDE7IGkgPCBiYS5kaW1zLmxlbmd0aDsgaSsrKVxuICAgICAgbXVsID0gbXVsICogYmEuZGltc1tpXTtcbiAgICBjaGFuZ2VkX2RpbSA9IDA7XG4gIH0gZWxzZSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAoYmEuZGltcy5sZW5ndGggLSAxKTsgaSsrKVxuICAgICAgbXVsID0gbXVsICogYmEuZGltc1tpXTtcbiAgICBjaGFuZ2VkX2RpbSA9IGJhLmRpbXMubGVuZ3RoIC0gMTtcbiAgICBvZnMgPSBvZnMgLSAxO1xuICB9XG4gIGlmIChvZnMgPCAwIHx8IGxlbiA8IDAgfHwgKG9mcyArIGxlbikgPiBiYS5kaW1zW2NoYW5nZWRfZGltXSl7XG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiQmlnYXJyYXkuc3ViOiBiYWQgc3ViLWFycmF5XCIpO1xuICB9XG4gIHZhciBuZXdfZGltcyA9IFtdO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGJhLmRpbXMubGVuZ3RoOyBpKyspXG4gICAgbmV3X2RpbXNbaV0gPSBiYS5kaW1zW2ldO1xuICBuZXdfZGltc1tjaGFuZ2VkX2RpbV0gPSBsZW47XG4gIG11bCAqPSBjYW1sX2JhX2dldF9zaXplX3Blcl9lbGVtZW50KGJhLmtpbmQpO1xuICB2YXIgbmV3X2RhdGEgPSBiYS5kYXRhLnN1YmFycmF5KG9mcyAqIG11bCwgKG9mcyArIGxlbikgKiBtdWwpO1xuICByZXR1cm4gY2FtbF9iYV9jcmVhdGVfdW5zYWZlKGJhLmtpbmQsIGJhLmxheW91dCwgbmV3X2RpbXMsIG5ld19kYXRhKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9zbGljZVxuLy9SZXF1aXJlczogY2FtbF9qc19mcm9tX2FycmF5LCBjYW1sX2JhX2NyZWF0ZV91bnNhZmUsIGNhbWxfaW52YWxpZF9hcmd1bWVudCwgY2FtbF9iYV9nZXRfc2l6ZVxuLy9SZXF1aXJlczogY2FtbF9iYV9nZXRfc2l6ZV9wZXJfZWxlbWVudFxuZnVuY3Rpb24gY2FtbF9iYV9zbGljZShiYSwgdmluZCkge1xuICB2aW5kID0gY2FtbF9qc19mcm9tX2FycmF5KHZpbmQpO1xuICB2YXIgbnVtX2luZHMgPSB2aW5kLmxlbmd0aDtcbiAgdmFyIGluZGV4ID0gW107XG4gIHZhciBzdWJfZGltcyA9IFtdO1xuICB2YXIgb2ZzO1xuXG4gIGlmIChudW1faW5kcyA+IGJhLmRpbXMubGVuZ3RoKVxuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIkJpZ2FycmF5LnNsaWNlOiB0b28gbWFueSBpbmRpY2VzXCIpO1xuXG4gIC8vIENvbXB1dGUgb2Zmc2V0IGFuZCBjaGVjayBib3VuZHNcbiAgaWYgKGJhLmxheW91dCA9PSAwKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBudW1faW5kczsgaSsrKVxuICAgICAgaW5kZXhbaV0gPSB2aW5kW2ldO1xuICAgIGZvciAoOyBpIDwgYmEuZGltcy5sZW5ndGg7IGkrKylcbiAgICAgIGluZGV4W2ldID0gMDtcbiAgICBzdWJfZGltcyA9IGJhLmRpbXMuc2xpY2UobnVtX2luZHMpO1xuICB9IGVsc2Uge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbnVtX2luZHM7IGkrKylcbiAgICAgIGluZGV4W2JhLmRpbXMubGVuZ3RoIC0gbnVtX2luZHMgKyBpXSA9IHZpbmRbaV07XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBiYS5kaW1zLmxlbmd0aCAtIG51bV9pbmRzOyBpKyspXG4gICAgICBpbmRleFtpXSA9IDE7XG4gICAgc3ViX2RpbXMgPSBiYS5kaW1zLnNsaWNlKDAsIGJhLmRpbXMubGVuZ3RoIC0gbnVtX2luZHMpO1xuICB9XG4gIG9mcyA9IGJhLm9mZnNldChpbmRleCk7XG4gIHZhciBzaXplID0gY2FtbF9iYV9nZXRfc2l6ZShzdWJfZGltcyk7XG4gIHZhciBzaXplX3Blcl9lbGVtZW50ID0gY2FtbF9iYV9nZXRfc2l6ZV9wZXJfZWxlbWVudChiYS5raW5kKTtcbiAgdmFyIG5ld19kYXRhID0gYmEuZGF0YS5zdWJhcnJheShvZnMgKiBzaXplX3Blcl9lbGVtZW50LCAob2ZzICsgc2l6ZSkgKiBzaXplX3Blcl9lbGVtZW50KTtcbiAgcmV0dXJuIGNhbWxfYmFfY3JlYXRlX3Vuc2FmZShiYS5raW5kLCBiYS5sYXlvdXQsIHN1Yl9kaW1zLCBuZXdfZGF0YSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfcmVzaGFwZVxuLy9SZXF1aXJlczogY2FtbF9qc19mcm9tX2FycmF5LCBjYW1sX2ludmFsaWRfYXJndW1lbnQsIGNhbWxfYmFfY3JlYXRlX3Vuc2FmZSwgY2FtbF9iYV9nZXRfc2l6ZVxuZnVuY3Rpb24gY2FtbF9iYV9yZXNoYXBlKGJhLCB2aW5kKSB7XG4gIHZpbmQgPSBjYW1sX2pzX2Zyb21fYXJyYXkodmluZCk7XG4gIHZhciBuZXdfZGltID0gW107XG4gIHZhciBudW1fZGltcyA9IHZpbmQubGVuZ3RoO1xuXG4gIGlmIChudW1fZGltcyA8IDAgfHwgbnVtX2RpbXMgPiAxNil7XG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiQmlnYXJyYXkucmVzaGFwZTogYmFkIG51bWJlciBvZiBkaW1lbnNpb25zXCIpO1xuICB9XG4gIHZhciBudW1fZWx0cyA9IDE7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbnVtX2RpbXM7IGkrKykge1xuICAgIG5ld19kaW1baV0gPSB2aW5kW2ldO1xuICAgIGlmIChuZXdfZGltW2ldIDwgMClcbiAgICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIkJpZ2FycmF5LnJlc2hhcGU6IG5lZ2F0aXZlIGRpbWVuc2lvblwiKTtcbiAgICBudW1fZWx0cyA9IG51bV9lbHRzICogbmV3X2RpbVtpXTtcbiAgfVxuXG4gIHZhciBzaXplID0gY2FtbF9iYV9nZXRfc2l6ZShiYS5kaW1zKTtcbiAgLy8gQ2hlY2sgdGhhdCBzaXplcyBhZ3JlZVxuICBpZiAobnVtX2VsdHMgIT0gc2l6ZSlcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJCaWdhcnJheS5yZXNoYXBlOiBzaXplIG1pc21hdGNoXCIpO1xuICByZXR1cm4gY2FtbF9iYV9jcmVhdGVfdW5zYWZlKGJhLmtpbmQsIGJhLmxheW91dCwgbmV3X2RpbSwgYmEuZGF0YSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfc2VyaWFsaXplXG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X2JpdHNfb2ZfZmxvYXQsIGNhbWxfaW50NjRfdG9fYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfaW50MzJfYml0c19vZl9mbG9hdFxuZnVuY3Rpb24gY2FtbF9iYV9zZXJpYWxpemUod3JpdGVyLCBiYSwgc3opIHtcbiAgd3JpdGVyLndyaXRlKDMyLCBiYS5kaW1zLmxlbmd0aCk7XG4gIHdyaXRlci53cml0ZSgzMiwgKGJhLmtpbmQgfCAoYmEubGF5b3V0IDw8IDgpKSk7XG4gIGlmKGJhLmNhbWxfY3VzdG9tID09IFwiX2JpZ2FycjAyXCIpXG4gICAgZm9yKHZhciBpID0gMDsgaSA8IGJhLmRpbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmKGJhLmRpbXNbaV0gPCAweGZmZmYpXG4gICAgICAgIHdyaXRlci53cml0ZSgxNiwgYmEuZGltc1tpXSk7XG4gICAgICBlbHNlIHtcbiAgICAgICAgd3JpdGVyLndyaXRlKDE2LCAweGZmZmYpO1xuICAgICAgICB3cml0ZXIud3JpdGUoMzIsIDApO1xuICAgICAgICB3cml0ZXIud3JpdGUoMzIsIGJhLmRpbXNbaV0pO1xuICAgICAgfVxuICAgIH1cbiAgZWxzZVxuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBiYS5kaW1zLmxlbmd0aDsgaSsrKSB3cml0ZXIud3JpdGUoMzIsYmEuZGltc1tpXSlcbiAgc3dpdGNoKGJhLmtpbmQpe1xuICBjYXNlIDI6ICAvL0ludDhBcnJheVxuICBjYXNlIDM6ICAvL1VpbnQ4QXJyYXlcbiAgY2FzZSAxMjogLy9VaW50OEFycmF5XG4gICAgZm9yKHZhciBpID0gMDsgaSA8IGJhLmRhdGEubGVuZ3RoOyBpKyspe1xuICAgICAgd3JpdGVyLndyaXRlKDgsIGJhLmRhdGFbaV0pO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSA0OiAgLy8gSW50MTZBcnJheVxuICBjYXNlIDU6ICAvLyBVaW50MTZBcnJheVxuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBiYS5kYXRhLmxlbmd0aDsgaSsrKXtcbiAgICAgIHdyaXRlci53cml0ZSgxNiwgYmEuZGF0YVtpXSk7XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDY6ICAvLyBJbnQzMkFycmF5IChpbnQzMilcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgYmEuZGF0YS5sZW5ndGg7IGkrKyl7XG4gICAgICB3cml0ZXIud3JpdGUoMzIsIGJhLmRhdGFbaV0pO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSA4OiAgLy8gSW50MzJBcnJheSAoaW50KVxuICBjYXNlIDk6ICAvLyBJbnQzMkFycmF5IChuYXRpdmVpbnQpXG4gICAgd3JpdGVyLndyaXRlKDgsMCk7XG4gICAgZm9yKHZhciBpID0gMDsgaSA8IGJhLmRhdGEubGVuZ3RoOyBpKyspe1xuICAgICAgd3JpdGVyLndyaXRlKDMyLCBiYS5kYXRhW2ldKTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgNzogIC8vIEludDMyQXJyYXkgKGludDY0KVxuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBiYS5kYXRhLmxlbmd0aCAvIDI7IGkrKyl7XG4gICAgICB2YXIgYiA9IGNhbWxfaW50NjRfdG9fYnl0ZXMoYmEuZ2V0KGkpKTtcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgODsgaisrKSB3cml0ZXIud3JpdGUgKDgsIGJbal0pO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSAxOiAgLy8gRmxvYXQ2NEFycmF5XG4gICAgZm9yKHZhciBpID0gMDsgaSA8IGJhLmRhdGEubGVuZ3RoOyBpKyspe1xuICAgICAgdmFyIGIgPSBjYW1sX2ludDY0X3RvX2J5dGVzKGNhbWxfaW50NjRfYml0c19vZl9mbG9hdChiYS5nZXQoaSkpKTtcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgODsgaisrKSB3cml0ZXIud3JpdGUgKDgsIGJbal0pO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSAwOiAgLy8gRmxvYXQzMkFycmF5XG4gICAgZm9yKHZhciBpID0gMDsgaSA8IGJhLmRhdGEubGVuZ3RoOyBpKyspe1xuICAgICAgdmFyIGIgPSBjYW1sX2ludDMyX2JpdHNfb2ZfZmxvYXQoYmEuZ2V0KGkpKTtcbiAgICAgIHdyaXRlci53cml0ZSgzMiwgYik7XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDEwOiAvLyBGbG9hdDMyQXJyYXkgKGNvbXBsZXgzMilcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgYmEuZGF0YS5sZW5ndGggLyAyOyBpKyspe1xuICAgICAgdmFyIGogPSBiYS5nZXQoaSk7XG4gICAgICB3cml0ZXIud3JpdGUoMzIsIGNhbWxfaW50MzJfYml0c19vZl9mbG9hdChqWzFdKSk7XG4gICAgICB3cml0ZXIud3JpdGUoMzIsIGNhbWxfaW50MzJfYml0c19vZl9mbG9hdChqWzJdKSk7XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDExOiAvLyBGbG9hdDY0QXJyYXkgKGNvbXBsZXg2NClcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgYmEuZGF0YS5sZW5ndGggLyAyOyBpKyspe1xuICAgICAgdmFyIGNvbXBsZXggPSBiYS5nZXQoaSk7XG4gICAgICB2YXIgYiA9IGNhbWxfaW50NjRfdG9fYnl0ZXMoY2FtbF9pbnQ2NF9iaXRzX29mX2Zsb2F0KGNvbXBsZXhbMV0pKTtcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgODsgaisrKSB3cml0ZXIud3JpdGUgKDgsIGJbal0pO1xuICAgICAgdmFyIGIgPSBjYW1sX2ludDY0X3RvX2J5dGVzKGNhbWxfaW50NjRfYml0c19vZl9mbG9hdChjb21wbGV4WzJdKSk7XG4gICAgICBmb3IgKHZhciBqID0gMDsgaiA8IDg7IGorKykgd3JpdGVyLndyaXRlICg4LCBiW2pdKTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIH1cbiAgc3pbMF0gPSAoNCArIGJhLmRpbXMubGVuZ3RoKSAqIDQ7XG4gIHN6WzFdID0gKDQgKyBiYS5kaW1zLmxlbmd0aCkgKiA4O1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2Rlc2VyaWFsaXplXG4vL1JlcXVpcmVzOiBjYW1sX2JhX2NyZWF0ZV91bnNhZmUsIGNhbWxfZmFpbHdpdGhcbi8vUmVxdWlyZXM6IGNhbWxfYmFfZ2V0X3NpemVcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfb2ZfYnl0ZXMsIGNhbWxfaW50NjRfZmxvYXRfb2ZfYml0c1xuLy9SZXF1aXJlczogY2FtbF9pbnQzMl9mbG9hdF9vZl9iaXRzXG4vL1JlcXVpcmVzOiBjYW1sX2JhX2NyZWF0ZV9idWZmZXJcbmZ1bmN0aW9uIGNhbWxfYmFfZGVzZXJpYWxpemUocmVhZGVyLCBzeiwgbmFtZSl7XG4gIHZhciBudW1fZGltcyA9IHJlYWRlci5yZWFkMzJzKCk7XG4gIGlmIChudW1fZGltcyA8IDAgfHwgbnVtX2RpbXMgPiAxNilcbiAgICBjYW1sX2ZhaWx3aXRoKFwiaW5wdXRfdmFsdWU6IHdyb25nIG51bWJlciBvZiBiaWdhcnJheSBkaW1lbnNpb25zXCIpO1xuICB2YXIgdGFnID0gcmVhZGVyLnJlYWQzMnMoKTtcbiAgdmFyIGtpbmQgPSB0YWcgJiAweGZmXG4gIHZhciBsYXlvdXQgPSAodGFnID4+IDgpICYgMTtcbiAgdmFyIGRpbXMgPSBbXVxuICBpZihuYW1lID09IFwiX2JpZ2FycjAyXCIpXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBudW1fZGltczsgaSsrKSB7XG4gICAgICB2YXIgc2l6ZV9kaW0gPSByZWFkZXIucmVhZDE2dSgpO1xuICAgICAgaWYoc2l6ZV9kaW0gPT0gMHhmZmZmKXtcbiAgICAgICAgdmFyIHNpemVfZGltX2hpID0gcmVhZGVyLnJlYWQzMnUoKTtcbiAgICAgICAgdmFyIHNpemVfZGltX2xvID0gcmVhZGVyLnJlYWQzMnUoKTtcbiAgICAgICAgaWYoc2l6ZV9kaW1faGkgIT0gMClcbiAgICAgICAgICBjYW1sX2ZhaWx3aXRoKFwiaW5wdXRfdmFsdWU6IGJpZ2FycmF5IGRpbWVuc2lvbiBvdmVyZmxvdyBpbiAzMmJpdFwiKTtcbiAgICAgICAgc2l6ZV9kaW0gPSBzaXplX2RpbV9sbztcbiAgICAgIH1cbiAgICAgIGRpbXMucHVzaChzaXplX2RpbSk7XG4gICAgfVxuICBlbHNlXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBudW1fZGltczsgaSsrKSBkaW1zLnB1c2gocmVhZGVyLnJlYWQzMnUoKSk7XG4gIHZhciBzaXplID0gY2FtbF9iYV9nZXRfc2l6ZShkaW1zKTtcbiAgdmFyIGRhdGEgPSBjYW1sX2JhX2NyZWF0ZV9idWZmZXIoa2luZCwgc2l6ZSk7XG4gIHZhciBiYSA9IGNhbWxfYmFfY3JlYXRlX3Vuc2FmZShraW5kLCBsYXlvdXQsIGRpbXMsIGRhdGEpO1xuICBzd2l0Y2goa2luZCl7XG4gIGNhc2UgMjogIC8vSW50OEFycmF5XG4gICAgZm9yKHZhciBpID0gMDsgaSA8IHNpemU7IGkrKyl7XG4gICAgICBkYXRhW2ldID0gcmVhZGVyLnJlYWQ4cygpO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSAzOiAgLy9VaW50OEFycmF5XG4gIGNhc2UgMTI6IC8vVWludDhBcnJheVxuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBzaXplOyBpKyspe1xuICAgICAgZGF0YVtpXSA9IHJlYWRlci5yZWFkOHUoKTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgNDogIC8vIEludDE2QXJyYXlcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKXtcbiAgICAgIGRhdGFbaV0gPSByZWFkZXIucmVhZDE2cygpO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSA1OiAgLy8gVWludDE2QXJyYXlcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKXtcbiAgICAgIGRhdGFbaV0gPSByZWFkZXIucmVhZDE2dSgpO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSA2OiAgLy8gSW50MzJBcnJheSAoaW50MzIpXG4gICAgZm9yKHZhciBpID0gMDsgaSA8IHNpemU7IGkrKyl7XG4gICAgICBkYXRhW2ldID0gcmVhZGVyLnJlYWQzMnMoKTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgODogIC8vIEludDMyQXJyYXkgKGludClcbiAgY2FzZSA5OiAgLy8gSW50MzJBcnJheSAobmF0aXZlaW50KVxuICAgIHZhciBzaXh0eSA9IHJlYWRlci5yZWFkOHUoKTtcbiAgICBpZihzaXh0eSkgY2FtbF9mYWlsd2l0aChcImlucHV0X3ZhbHVlOiBjYW5ub3QgcmVhZCBiaWdhcnJheSB3aXRoIDY0LWJpdCBPQ2FtbCBpbnRzXCIpO1xuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBzaXplOyBpKyspe1xuICAgICAgZGF0YVtpXSA9IHJlYWRlci5yZWFkMzJzKCk7XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDc6IC8vIChpbnQ2NClcbiAgICB2YXIgdCA9IG5ldyBBcnJheSg4KTs7XG4gICAgZm9yKHZhciBpID0gMDsgaSA8IHNpemU7IGkrKyl7XG4gICAgICBmb3IgKHZhciBqID0gMDtqIDwgODtqKyspIHRbal0gPSByZWFkZXIucmVhZDh1KCk7XG4gICAgICB2YXIgaW50NjQgPSBjYW1sX2ludDY0X29mX2J5dGVzKHQpO1xuICAgICAgYmEuc2V0KGksaW50NjQpO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSAxOiAgLy8gRmxvYXQ2NEFycmF5XG4gICAgdmFyIHQgPSBuZXcgQXJyYXkoOCk7O1xuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBzaXplOyBpKyspe1xuICAgICAgZm9yICh2YXIgaiA9IDA7aiA8IDg7aisrKSB0W2pdID0gcmVhZGVyLnJlYWQ4dSgpO1xuICAgICAgdmFyIGYgPSBjYW1sX2ludDY0X2Zsb2F0X29mX2JpdHMoY2FtbF9pbnQ2NF9vZl9ieXRlcyh0KSk7XG4gICAgICBiYS5zZXQoaSxmKTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgMDogIC8vIEZsb2F0MzJBcnJheVxuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBzaXplOyBpKyspe1xuICAgICAgdmFyIGYgPSBjYW1sX2ludDMyX2Zsb2F0X29mX2JpdHMocmVhZGVyLnJlYWQzMnMoKSk7XG4gICAgICBiYS5zZXQoaSxmKTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgMTA6IC8vIEZsb2F0MzJBcnJheSAoY29tcGxleDMyKVxuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBzaXplOyBpKyspe1xuICAgICAgdmFyIHJlID0gY2FtbF9pbnQzMl9mbG9hdF9vZl9iaXRzKHJlYWRlci5yZWFkMzJzKCkpO1xuICAgICAgdmFyIGltID0gY2FtbF9pbnQzMl9mbG9hdF9vZl9iaXRzKHJlYWRlci5yZWFkMzJzKCkpO1xuICAgICAgYmEuc2V0KGksWzI1NCxyZSxpbV0pO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSAxMTogLy8gRmxvYXQ2NEFycmF5IChjb21wbGV4NjQpXG4gICAgdmFyIHQgPSBuZXcgQXJyYXkoOCk7O1xuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBzaXplOyBpKyspe1xuICAgICAgZm9yICh2YXIgaiA9IDA7aiA8IDg7aisrKSB0W2pdID0gcmVhZGVyLnJlYWQ4dSgpO1xuICAgICAgdmFyIHJlID0gY2FtbF9pbnQ2NF9mbG9hdF9vZl9iaXRzKGNhbWxfaW50NjRfb2ZfYnl0ZXModCkpO1xuICAgICAgZm9yICh2YXIgaiA9IDA7aiA8IDg7aisrKSB0W2pdID0gcmVhZGVyLnJlYWQ4dSgpO1xuICAgICAgdmFyIGltID0gY2FtbF9pbnQ2NF9mbG9hdF9vZl9iaXRzKGNhbWxfaW50NjRfb2ZfYnl0ZXModCkpO1xuICAgICAgYmEuc2V0KGksWzI1NCxyZSxpbV0pO1xuICAgIH1cbiAgICBicmVha1xuICB9XG4gIHN6WzBdID0gKDQgKyBudW1fZGltcykgKiA0O1xuICByZXR1cm4gY2FtbF9iYV9jcmVhdGVfdW5zYWZlKGtpbmQsIGxheW91dCwgZGltcywgZGF0YSk7XG59XG5cbi8vRGVwcmVjYXRlZFxuLy9Qcm92aWRlczogY2FtbF9iYV9jcmVhdGVfZnJvbVxuLy9SZXF1aXJlczogY2FtbF9iYV9jcmVhdGVfdW5zYWZlLCBjYW1sX2ludmFsaWRfYXJndW1lbnQsIGNhbWxfYmFfZ2V0X3NpemVfcGVyX2VsZW1lbnRcbmZ1bmN0aW9uIGNhbWxfYmFfY3JlYXRlX2Zyb20oZGF0YTEsIGRhdGEyLCBqc3R5cCwga2luZCwgbGF5b3V0LCBkaW1zKXtcbiAgaWYoZGF0YTIgfHwgY2FtbF9iYV9nZXRfc2l6ZV9wZXJfZWxlbWVudChraW5kKSA9PSAyKXtcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJjYW1sX2JhX2NyZWF0ZV9mcm9tOiB1c2UgcmV0dXJuIGNhbWxfYmFfY3JlYXRlX3Vuc2FmZVwiKTtcbiAgfVxuICByZXR1cm4gY2FtbF9iYV9jcmVhdGVfdW5zYWZlKGtpbmQsIGxheW91dCwgZGltcywgZGF0YTEpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2hhc2ggY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfYmFfZ2V0X3NpemUsIGNhbWxfaGFzaF9taXhfaW50LCBjYW1sX2hhc2hfbWl4X2Zsb2F0XG5mdW5jdGlvbiBjYW1sX2JhX2hhc2goYmEpe1xuICB2YXIgbnVtX2VsdHMgPSBjYW1sX2JhX2dldF9zaXplKGJhLmRpbXMpO1xuICB2YXIgaCA9IDA7XG4gIHN3aXRjaChiYS5raW5kKXtcbiAgY2FzZSAyOiAgLy9JbnQ4QXJyYXlcbiAgY2FzZSAzOiAgLy9VaW50OEFycmF5XG4gIGNhc2UgMTI6IC8vVWludDhBcnJheVxuICAgIGlmKG51bV9lbHRzID4gMjU2KSBudW1fZWx0cyA9IDI1NjtcbiAgICB2YXIgdyA9IDAsIGkgPTA7XG4gICAgZm9yKGkgPSAwOyBpICsgNCA8PSBiYS5kYXRhLmxlbmd0aDsgaSs9NCl7XG4gICAgICB3ID0gYmEuZGF0YVtpKzBdIHwgKGJhLmRhdGFbaSsxXSA8PCA4KSB8IChiYS5kYXRhW2krMl0gPDwgMTYpIHwgKGJhLmRhdGFbaSszXSA8PCAyNCk7XG4gICAgICBoID0gY2FtbF9oYXNoX21peF9pbnQoaCx3KTtcbiAgICB9XG4gICAgdyA9IDA7XG4gICAgc3dpdGNoIChudW1fZWx0cyAmIDMpIHtcbiAgICBjYXNlIDM6IHcgID0gYmEuZGF0YVtpKzJdIDw8IDE2OyAgICAvKiBmYWxsdGhyb3VnaCAqL1xuICAgIGNhc2UgMjogdyB8PSBiYS5kYXRhW2krMV0gPDwgODsgICAgIC8qIGZhbGx0aHJvdWdoICovXG4gICAgY2FzZSAxOiB3IHw9IGJhLmRhdGFbaSswXTtcbiAgICAgIGggPSBjYW1sX2hhc2hfbWl4X2ludChoLCB3KTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgNDogIC8vIEludDE2QXJyYXlcbiAgY2FzZSA1OiAgLy8gVWludDE2QXJyYXlcbiAgICBpZihudW1fZWx0cyA+IDEyOCkgbnVtX2VsdHMgPSAxMjg7XG4gICAgdmFyIHcgPSAwLCBpID0wO1xuICAgIGZvcihpID0gMDsgaSArIDIgPD0gYmEuZGF0YS5sZW5ndGg7IGkrPTIpe1xuICAgICAgdyA9IGJhLmRhdGFbaSswXSB8IChiYS5kYXRhW2krMV0gPDwgMTYpO1xuICAgICAgaCA9IGNhbWxfaGFzaF9taXhfaW50KGgsdyk7XG4gICAgfVxuICAgIGlmICgobnVtX2VsdHMgJiAxKSAhPSAwKVxuICAgICAgaCA9IGNhbWxfaGFzaF9taXhfaW50KGgsIGJhLmRhdGFbaV0pO1xuICAgIGJyZWFrO1xuICBjYXNlIDY6ICAvLyBJbnQzMkFycmF5IChpbnQzMilcbiAgICBpZiAobnVtX2VsdHMgPiA2NCkgbnVtX2VsdHMgPSA2NDtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG51bV9lbHRzOyBpKyspIGggPSBjYW1sX2hhc2hfbWl4X2ludChoLCBiYS5kYXRhW2ldKTtcbiAgICBicmVhaztcbiAgY2FzZSA4OiAgLy8gSW50MzJBcnJheSAoaW50KVxuICBjYXNlIDk6ICAvLyBJbnQzMkFycmF5IChuYXRpdmVpbnQpXG4gICAgaWYgKG51bV9lbHRzID4gNjQpIG51bV9lbHRzID0gNjQ7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBudW1fZWx0czsgaSsrKSBoID0gY2FtbF9oYXNoX21peF9pbnQoaCwgYmEuZGF0YVtpXSk7XG4gICAgYnJlYWs7XG4gIGNhc2UgNzogIC8vIEludDMyQXJyYXkgKGludDY0KVxuICAgIGlmIChudW1fZWx0cyA+IDMyKSBudW1fZWx0cyA9IDMyO1xuICAgIG51bV9lbHRzICo9IDJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG51bV9lbHRzOyBpKyspIHtcbiAgICAgIGggPSBjYW1sX2hhc2hfbWl4X2ludChoLCBiYS5kYXRhW2ldKTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgMTA6IC8vIEZsb2F0MzJBcnJheSAoY29tcGxleDMyKVxuICAgIG51bV9lbHRzICo9MjsgLyogZmFsbHRocm91Z2ggKi9cbiAgY2FzZSAwOiAgLy8gRmxvYXQzMkFycmF5XG4gICAgaWYgKG51bV9lbHRzID4gNjQpIG51bV9lbHRzID0gNjQ7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBudW1fZWx0czsgaSsrKSBoID0gY2FtbF9oYXNoX21peF9mbG9hdChoLCBiYS5kYXRhW2ldKTtcbiAgICBicmVhaztcbiAgY2FzZSAxMTogLy8gRmxvYXQ2NEFycmF5IChjb21wbGV4NjQpXG4gICAgbnVtX2VsdHMgKj0yOyAvKiBmYWxsdGhyb3VnaCAqL1xuICBjYXNlIDE6ICAvLyBGbG9hdDY0QXJyYXlcbiAgICBpZiAobnVtX2VsdHMgPiAzMikgbnVtX2VsdHMgPSAzMjtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG51bV9lbHRzOyBpKyspIGggPSBjYW1sX2hhc2hfbWl4X2Zsb2F0KGgsIGJhLmRhdGFbaV0pO1xuICAgIGJyZWFrO1xuICB9XG4gIHJldHVybiBoO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX3RvX3R5cGVkX2FycmF5IG11dGFibGVcbmZ1bmN0aW9uIGNhbWxfYmFfdG9fdHlwZWRfYXJyYXkoYmEpe1xuICByZXR1cm4gYmEuZGF0YTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9raW5kX29mX3R5cGVkX2FycmF5IG11dGFibGVcbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gY2FtbF9iYV9raW5kX29mX3R5cGVkX2FycmF5KHRhKXtcbiAgdmFyIGtpbmQ7XG4gIGlmICAgICAgKHRhIGluc3RhbmNlb2YgRmxvYXQzMkFycmF5KSBraW5kID0gMDtcbiAgZWxzZSBpZiAodGEgaW5zdGFuY2VvZiBGbG9hdDY0QXJyYXkpIGtpbmQgPSAxO1xuICBlbHNlIGlmICh0YSBpbnN0YW5jZW9mIEludDhBcnJheSkga2luZCA9IDI7XG4gIGVsc2UgaWYgKHRhIGluc3RhbmNlb2YgVWludDhBcnJheSkga2luZCA9IDM7XG4gIGVsc2UgaWYgKHRhIGluc3RhbmNlb2YgSW50MTZBcnJheSkga2luZCA9IDQ7XG4gIGVsc2UgaWYgKHRhIGluc3RhbmNlb2YgVWludDE2QXJyYXkpIGtpbmQgPSA1O1xuICBlbHNlIGlmICh0YSBpbnN0YW5jZW9mIEludDMyQXJyYXkpIGtpbmQgPSA2O1xuICBlbHNlIGlmICh0YSBpbnN0YW5jZW9mIFVpbnQzMkFycmF5KSBraW5kID0gNjtcbiAgZWxzZSBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJjYW1sX2JhX2tpbmRfb2ZfdHlwZWRfYXJyYXk6IHVuc3VwcG9ydGVkIGtpbmRcIik7XG4gIHJldHVybiBraW5kO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2Zyb21fdHlwZWRfYXJyYXkgbXV0YWJsZVxuLy9SZXF1aXJlczogY2FtbF9iYV9raW5kX29mX3R5cGVkX2FycmF5XG4vL1JlcXVpcmVzOiBjYW1sX2JhX2NyZWF0ZV91bnNhZmVcbmZ1bmN0aW9uIGNhbWxfYmFfZnJvbV90eXBlZF9hcnJheSh0YSl7XG4gIHZhciBraW5kID0gY2FtbF9iYV9raW5kX29mX3R5cGVkX2FycmF5KHRhKTtcbiAgcmV0dXJuIGNhbWxfYmFfY3JlYXRlX3Vuc2FmZShraW5kLCAwLCBbdGEubGVuZ3RoXSwgdGEpO1xufVxuIiwiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuLyogICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3RpdmUgQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuLyogICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAqL1xuLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuLyogIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAqL1xuLyogIGVuIEF1dG9tYXRpcXVlLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCAgICAqL1xuLyogIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCB3aXRoICAgICAqL1xuLyogIHRoZSBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiBmaWxlIC4uL0xJQ0VOU0UuICAgICAqL1xuLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKiAkSWQ6IHBhcnNpbmcuYyA4OTgzIDIwMDgtMDgtMDYgMDk6Mzg6MjVaIHhsZXJveSAkICovXG5cbi8qIFRoZSBQREEgYXV0b21hdG9uIGZvciBwYXJzZXJzIGdlbmVyYXRlZCBieSBjYW1seWFjYyAqL1xuXG4vKiBUaGUgcHVzaGRvd24gYXV0b21hdGEgKi9cblxuLy9Qcm92aWRlczogY2FtbF9wYXJzZXJfdHJhY2VcbnZhciBjYW1sX3BhcnNlcl90cmFjZSA9IDA7XG5cbi8vUHJvdmlkZXM6IGNhbWxfcGFyc2VfZW5naW5lXG4vL1JlcXVpcmVzOiBjYW1sX2xleF9hcnJheSwgY2FtbF9wYXJzZXJfdHJhY2UsY2FtbF9qc3N0cmluZ19vZl9zdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfbWxfb3V0cHV0LCBjYW1sX21sX3N0cmluZ19sZW5ndGgsIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfanNieXRlc19vZl9zdHJpbmcsIE1sQnl0ZXNcbmZ1bmN0aW9uIGNhbWxfcGFyc2VfZW5naW5lKHRhYmxlcywgZW52LCBjbWQsIGFyZylcbntcbiAgdmFyIEVSUkNPREUgPSAyNTY7XG5cbiAgLy92YXIgU1RBUlQgPSAwO1xuICAvL3ZhciBUT0tFTl9SRUFEID0gMTtcbiAgLy92YXIgU1RBQ0tTX0dST1dOXzEgPSAyO1xuICAvL3ZhciBTVEFDS1NfR1JPV05fMiA9IDM7XG4gIC8vdmFyIFNFTUFOVElDX0FDVElPTl9DT01QVVRFRCA9IDQ7XG4gIC8vdmFyIEVSUk9SX0RFVEVDVEVEID0gNTtcbiAgdmFyIGxvb3AgPSA2O1xuICB2YXIgdGVzdHNoaWZ0ID0gNztcbiAgdmFyIHNoaWZ0ID0gODtcbiAgdmFyIHNoaWZ0X3JlY292ZXIgPSA5O1xuICB2YXIgcmVkdWNlID0gMTA7XG5cbiAgdmFyIFJFQURfVE9LRU4gPSAwO1xuICB2YXIgUkFJU0VfUEFSU0VfRVJST1IgPSAxO1xuICB2YXIgR1JPV19TVEFDS1NfMSA9IDI7XG4gIHZhciBHUk9XX1NUQUNLU18yID0gMztcbiAgdmFyIENPTVBVVEVfU0VNQU5USUNfQUNUSU9OID0gNDtcbiAgdmFyIENBTExfRVJST1JfRlVOQ1RJT04gPSA1O1xuXG4gIHZhciBlbnZfc19zdGFjayA9IDE7XG4gIHZhciBlbnZfdl9zdGFjayA9IDI7XG4gIHZhciBlbnZfc3ltYl9zdGFydF9zdGFjayA9IDM7XG4gIHZhciBlbnZfc3ltYl9lbmRfc3RhY2sgPSA0O1xuICB2YXIgZW52X3N0YWNrc2l6ZSA9IDU7XG4gIHZhciBlbnZfc3RhY2tiYXNlID0gNjtcbiAgdmFyIGVudl9jdXJyX2NoYXIgPSA3O1xuICB2YXIgZW52X2x2YWwgPSA4O1xuICB2YXIgZW52X3N5bWJfc3RhcnQgPSA5O1xuICB2YXIgZW52X3N5bWJfZW5kID0gMTA7XG4gIHZhciBlbnZfYXNwID0gMTE7XG4gIHZhciBlbnZfcnVsZV9sZW4gPSAxMjtcbiAgdmFyIGVudl9ydWxlX251bWJlciA9IDEzO1xuICB2YXIgZW52X3NwID0gMTQ7XG4gIHZhciBlbnZfc3RhdGUgPSAxNTtcbiAgdmFyIGVudl9lcnJmbGFnID0gMTY7XG5cbiAgLy8gdmFyIF90YmxfYWN0aW9ucyA9IDE7XG4gIHZhciB0YmxfdHJhbnNsX2NvbnN0ID0gMjtcbiAgdmFyIHRibF90cmFuc2xfYmxvY2sgPSAzO1xuICB2YXIgdGJsX2xocyA9IDQ7XG4gIHZhciB0YmxfbGVuID0gNTtcbiAgdmFyIHRibF9kZWZyZWQgPSA2O1xuICB2YXIgdGJsX2Rnb3RvID0gNztcbiAgdmFyIHRibF9zaW5kZXggPSA4O1xuICB2YXIgdGJsX3JpbmRleCA9IDk7XG4gIHZhciB0YmxfZ2luZGV4ID0gMTA7XG4gIHZhciB0YmxfdGFibGVzaXplID0gMTE7XG4gIHZhciB0YmxfdGFibGUgPSAxMjtcbiAgdmFyIHRibF9jaGVjayA9IDEzO1xuICAvLyB2YXIgX3RibF9lcnJvcl9mdW5jdGlvbiA9IDE0O1xuICB2YXIgdGJsX25hbWVzX2NvbnN0ID0gMTU7XG4gIHZhciB0YmxfbmFtZXNfYmxvY2sgPSAxNjtcblxuXG4gIGZ1bmN0aW9uIGxvZyh4KSB7XG4gICAgdmFyIHMgPSBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKHggKyBcIlxcblwiKTtcbiAgICBjYW1sX21sX291dHB1dCgyLCBzLCAwLCBjYW1sX21sX3N0cmluZ19sZW5ndGgocykpO1xuICB9XG5cbiAgZnVuY3Rpb24gdG9rZW5fbmFtZShuYW1lcywgbnVtYmVyKVxuICB7XG4gICAgdmFyIHN0ciA9IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKG5hbWVzKTtcbiAgICBpZiAoc3RyWzBdID09ICdcXHgwMCcpXG4gICAgICByZXR1cm4gXCI8dW5rbm93biB0b2tlbj5cIjtcbiAgICByZXR1cm4gc3RyLnNwbGl0KCdcXHgwMCcpW251bWJlcl07XG4gIH1cblxuICBmdW5jdGlvbiBwcmludF90b2tlbihzdGF0ZSwgdG9rKVxuICB7XG4gICAgdmFyIHRva2VuLCBraW5kO1xuICAgIGlmICh0b2sgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgdG9rZW4gPSB0b2tlbl9uYW1lKHRhYmxlc1t0YmxfbmFtZXNfYmxvY2tdLCB0b2tbMF0pO1xuICAgICAgaWYgKHR5cGVvZiB0b2tbMV0gPT0gXCJudW1iZXJcIilcbiAgICAgICAga2luZCA9IFwiXCIgKyB0b2tbMV07XG4gICAgICBlbHNlIGlmICh0eXBlb2YgdG9rWzFdID09IFwic3RyaW5nXCIpXG4gICAgICAgIGtpbmQgPSB0b2tbMV1cbiAgICAgIGVsc2UgaWYgKHRva1sxXSBpbnN0YW5jZW9mIE1sQnl0ZXMpXG4gICAgICAgIGtpbmQgPSBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKHRva1sxXSlcbiAgICAgIGVsc2VcbiAgICAgICAga2luZCA9IFwiX1wiXG4gICAgICBsb2coXCJTdGF0ZSBcIiArIHN0YXRlICsgXCI6IHJlYWQgdG9rZW4gXCIgKyB0b2tlbiArIFwiKFwiICsga2luZCArIFwiKVwiKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdG9rZW4gPSB0b2tlbl9uYW1lKHRhYmxlc1t0YmxfbmFtZXNfY29uc3RdLCB0b2spO1xuICAgICAgbG9nKFwiU3RhdGUgXCIgKyBzdGF0ZSArIFwiOiByZWFkIHRva2VuIFwiICsgdG9rZW4pO1xuICAgIH1cbiAgfVxuXG4gIGlmICghdGFibGVzLmRnb3RvKSB7XG4gICAgdGFibGVzLmRlZnJlZCA9IGNhbWxfbGV4X2FycmF5ICh0YWJsZXNbdGJsX2RlZnJlZF0pO1xuICAgIHRhYmxlcy5zaW5kZXggPSBjYW1sX2xleF9hcnJheSAodGFibGVzW3RibF9zaW5kZXhdKTtcbiAgICB0YWJsZXMuY2hlY2sgID0gY2FtbF9sZXhfYXJyYXkgKHRhYmxlc1t0YmxfY2hlY2tdKTtcbiAgICB0YWJsZXMucmluZGV4ID0gY2FtbF9sZXhfYXJyYXkgKHRhYmxlc1t0YmxfcmluZGV4XSk7XG4gICAgdGFibGVzLnRhYmxlICA9IGNhbWxfbGV4X2FycmF5ICh0YWJsZXNbdGJsX3RhYmxlXSk7XG4gICAgdGFibGVzLmxlbiAgICA9IGNhbWxfbGV4X2FycmF5ICh0YWJsZXNbdGJsX2xlbl0pO1xuICAgIHRhYmxlcy5saHMgICAgPSBjYW1sX2xleF9hcnJheSAodGFibGVzW3RibF9saHNdKTtcbiAgICB0YWJsZXMuZ2luZGV4ID0gY2FtbF9sZXhfYXJyYXkgKHRhYmxlc1t0YmxfZ2luZGV4XSk7XG4gICAgdGFibGVzLmRnb3RvICA9IGNhbWxfbGV4X2FycmF5ICh0YWJsZXNbdGJsX2Rnb3RvXSk7XG4gIH1cblxuICB2YXIgcmVzID0gMCwgbiwgbjEsIG4yLCBzdGF0ZTE7XG5cbiAgLy8gUkVTVE9SRVxuICB2YXIgc3AgPSBlbnZbZW52X3NwXTtcbiAgdmFyIHN0YXRlID0gZW52W2Vudl9zdGF0ZV07XG4gIHZhciBlcnJmbGFnID0gZW52W2Vudl9lcnJmbGFnXTtcblxuICBleGl0OmZvciAoOzspIHtcbiAgICBuZXh0OnN3aXRjaChjbWQpIHtcbiAgICBjYXNlIDA6Ly9TVEFSVDpcbiAgICAgIHN0YXRlID0gMDtcbiAgICAgIGVycmZsYWcgPSAwO1xuICAgICAgLy8gRmFsbCB0aHJvdWdoXG5cbiAgICBjYXNlIDY6Ly9sb29wOlxuICAgICAgbiA9IHRhYmxlcy5kZWZyZWRbc3RhdGVdO1xuICAgICAgaWYgKG4gIT0gMCkgeyBjbWQgPSByZWR1Y2U7IGJyZWFrOyB9XG4gICAgICBpZiAoZW52W2Vudl9jdXJyX2NoYXJdID49IDApIHsgY21kID0gdGVzdHNoaWZ0OyBicmVhazsgfVxuICAgICAgcmVzID0gUkVBRF9UT0tFTjtcbiAgICAgIGJyZWFrIGV4aXQ7XG4gICAgICAvKiBUaGUgTUwgY29kZSBjYWxscyB0aGUgbGV4ZXIgYW5kIHVwZGF0ZXMgKi9cbiAgICAgIC8qIHN5bWJfc3RhcnQgYW5kIHN5bWJfZW5kICovXG4gICAgY2FzZSAxOi8vVE9LRU5fUkVBRDpcbiAgICAgIGlmIChhcmcgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICBlbnZbZW52X2N1cnJfY2hhcl0gPSB0YWJsZXNbdGJsX3RyYW5zbF9ibG9ja11bYXJnWzBdICsgMV07XG4gICAgICAgIGVudltlbnZfbHZhbF0gPSBhcmdbMV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlbnZbZW52X2N1cnJfY2hhcl0gPSB0YWJsZXNbdGJsX3RyYW5zbF9jb25zdF1bYXJnICsgMV07XG4gICAgICAgIGVudltlbnZfbHZhbF0gPSAwO1xuICAgICAgfVxuICAgICAgaWYgKGNhbWxfcGFyc2VyX3RyYWNlKSBwcmludF90b2tlbiAoc3RhdGUsIGFyZyk7XG4gICAgICAvLyBGYWxsIHRocm91Z2hcblxuICAgIGNhc2UgNzovL3Rlc3RzaGlmdDpcbiAgICAgIG4xID0gdGFibGVzLnNpbmRleFtzdGF0ZV07XG4gICAgICBuMiA9IG4xICsgZW52W2Vudl9jdXJyX2NoYXJdO1xuICAgICAgaWYgKG4xICE9IDAgJiYgbjIgPj0gMCAmJiBuMiA8PSB0YWJsZXNbdGJsX3RhYmxlc2l6ZV0gJiZcbiAgICAgICAgICB0YWJsZXMuY2hlY2tbbjJdID09IGVudltlbnZfY3Vycl9jaGFyXSkge1xuICAgICAgICBjbWQgPSBzaGlmdDsgYnJlYWs7XG4gICAgICB9XG4gICAgICBuMSA9IHRhYmxlcy5yaW5kZXhbc3RhdGVdO1xuICAgICAgbjIgPSBuMSArIGVudltlbnZfY3Vycl9jaGFyXTtcbiAgICAgIGlmIChuMSAhPSAwICYmIG4yID49IDAgJiYgbjIgPD0gdGFibGVzW3RibF90YWJsZXNpemVdICYmXG4gICAgICAgICAgdGFibGVzLmNoZWNrW24yXSA9PSBlbnZbZW52X2N1cnJfY2hhcl0pIHtcbiAgICAgICAgbiA9IHRhYmxlcy50YWJsZVtuMl07XG4gICAgICAgIGNtZCA9IHJlZHVjZTsgYnJlYWs7XG4gICAgICB9XG4gICAgICBpZiAoZXJyZmxhZyA8PSAwKSB7XG4gICAgICAgIHJlcyA9IENBTExfRVJST1JfRlVOQ1RJT047XG4gICAgICAgIGJyZWFrIGV4aXQ7XG4gICAgICB9XG4gICAgICAvLyBGYWxsIHRocm91Z2hcbiAgICAgIC8qIFRoZSBNTCBjb2RlIGNhbGxzIHRoZSBlcnJvciBmdW5jdGlvbiAqL1xuICAgIGNhc2UgNTovL0VSUk9SX0RFVEVDVEVEOlxuICAgICAgaWYgKGVycmZsYWcgPCAzKSB7XG4gICAgICAgIGVycmZsYWcgPSAzO1xuICAgICAgICBmb3IgKDs7KSB7XG4gICAgICAgICAgc3RhdGUxID0gZW52W2Vudl9zX3N0YWNrXVtzcCArIDFdO1xuICAgICAgICAgIG4xID0gdGFibGVzLnNpbmRleFtzdGF0ZTFdO1xuICAgICAgICAgIG4yID0gbjEgKyBFUlJDT0RFO1xuICAgICAgICAgIGlmIChuMSAhPSAwICYmIG4yID49IDAgJiYgbjIgPD0gdGFibGVzW3RibF90YWJsZXNpemVdICYmXG4gICAgICAgICAgICAgIHRhYmxlcy5jaGVja1tuMl0gPT0gRVJSQ09ERSkge1xuICAgICAgICAgICAgaWYgKGNhbWxfcGFyc2VyX3RyYWNlKVxuICAgICAgICAgICAgICBsb2coXCJSZWNvdmVyaW5nIGluIHN0YXRlIFwiICsgc3RhdGUxKTtcbiAgICAgICAgICAgIGNtZCA9IHNoaWZ0X3JlY292ZXI7IGJyZWFrIG5leHQ7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChjYW1sX3BhcnNlcl90cmFjZSlcbiAgICAgICAgICAgICAgbG9nKFwiRGlzY2FyZGluZyBzdGF0ZSBcIiArIHN0YXRlMSk7XG4gICAgICAgICAgICBpZiAoc3AgPD0gZW52W2Vudl9zdGFja2Jhc2VdKSB7XG4gICAgICAgICAgICAgIGlmIChjYW1sX3BhcnNlcl90cmFjZSlcbiAgICAgICAgICAgICAgICBsb2coXCJObyBtb3JlIHN0YXRlcyB0byBkaXNjYXJkXCIpO1xuICAgICAgICAgICAgICByZXR1cm4gUkFJU0VfUEFSU0VfRVJST1I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKiBUaGUgTUwgY29kZSByYWlzZXMgUGFyc2VfZXJyb3IgKi9cbiAgICAgICAgICAgIHNwLS07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoZW52W2Vudl9jdXJyX2NoYXJdID09IDApXG4gICAgICAgICAgcmV0dXJuIFJBSVNFX1BBUlNFX0VSUk9SOyAvKiBUaGUgTUwgY29kZSByYWlzZXMgUGFyc2VfZXJyb3IgKi9cbiAgICAgICAgaWYgKGNhbWxfcGFyc2VyX3RyYWNlKVxuICAgICAgICAgIGxvZyhcIkRpc2NhcmRpbmcgbGFzdCB0b2tlbiByZWFkXCIpO1xuICAgICAgICBlbnZbZW52X2N1cnJfY2hhcl0gPSAtMTtcbiAgICAgICAgY21kID0gbG9vcDsgYnJlYWs7XG4gICAgICB9XG4gICAgICAvLyBGYWxsIHRocm91Z2hcbiAgICBjYXNlIDg6Ly9zaGlmdDpcbiAgICAgIGVudltlbnZfY3Vycl9jaGFyXSA9IC0xO1xuICAgICAgaWYgKGVycmZsYWcgPiAwKSBlcnJmbGFnLS07XG4gICAgICAvLyBGYWxsIHRocm91Z2hcbiAgICBjYXNlIDk6Ly9zaGlmdF9yZWNvdmVyOlxuICAgICAgaWYgKGNhbWxfcGFyc2VyX3RyYWNlKVxuICAgICAgICBsb2coXCJTdGF0ZSBcIiArIHN0YXRlICsgXCI6IHNoaWZ0IHRvIHN0YXRlIFwiICsgdGFibGVzLnRhYmxlW24yXSk7XG4gICAgICBzdGF0ZSA9IHRhYmxlcy50YWJsZVtuMl07XG4gICAgICBzcCsrO1xuICAgICAgaWYgKHNwID49IGVudltlbnZfc3RhY2tzaXplXSkge1xuICAgICAgICByZXMgPSBHUk9XX1NUQUNLU18xO1xuICAgICAgICBicmVhayBleGl0O1xuICAgICAgfVxuICAgICAgLy8gRmFsbCB0aHJvdWdoXG4gICAgICAvKiBUaGUgTUwgY29kZSByZXNpemVzIHRoZSBzdGFja3MgKi9cbiAgICBjYXNlIDI6Ly9TVEFDS1NfR1JPV05fMTpcbiAgICAgIGVudltlbnZfc19zdGFja11bc3AgKyAxXSA9IHN0YXRlO1xuICAgICAgZW52W2Vudl92X3N0YWNrXVtzcCArIDFdID0gZW52W2Vudl9sdmFsXTtcbiAgICAgIGVudltlbnZfc3ltYl9zdGFydF9zdGFja11bc3AgKyAxXSA9IGVudltlbnZfc3ltYl9zdGFydF07XG4gICAgICBlbnZbZW52X3N5bWJfZW5kX3N0YWNrXVtzcCArIDFdID0gZW52W2Vudl9zeW1iX2VuZF07XG4gICAgICBjbWQgPSBsb29wO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIDEwOi8vcmVkdWNlOlxuICAgICAgaWYgKGNhbWxfcGFyc2VyX3RyYWNlKVxuICAgICAgICBsb2coXCJTdGF0ZSBcIiArIHN0YXRlICsgXCI6IHJlZHVjZSBieSBydWxlIFwiICsgbik7XG4gICAgICB2YXIgbSA9IHRhYmxlcy5sZW5bbl07XG4gICAgICBlbnZbZW52X2FzcF0gPSBzcDtcbiAgICAgIGVudltlbnZfcnVsZV9udW1iZXJdID0gbjtcbiAgICAgIGVudltlbnZfcnVsZV9sZW5dID0gbTtcbiAgICAgIHNwID0gc3AgLSBtICsgMTtcbiAgICAgIG0gPSB0YWJsZXMubGhzW25dO1xuICAgICAgc3RhdGUxID0gZW52W2Vudl9zX3N0YWNrXVtzcF07XG4gICAgICBuMSA9IHRhYmxlcy5naW5kZXhbbV07XG4gICAgICBuMiA9IG4xICsgc3RhdGUxO1xuICAgICAgaWYgKG4xICE9IDAgJiYgbjIgPj0gMCAmJiBuMiA8PSB0YWJsZXNbdGJsX3RhYmxlc2l6ZV0gJiZcbiAgICAgICAgICB0YWJsZXMuY2hlY2tbbjJdID09IHN0YXRlMSlcbiAgICAgICAgc3RhdGUgPSB0YWJsZXMudGFibGVbbjJdO1xuICAgICAgZWxzZVxuICAgICAgICBzdGF0ZSA9IHRhYmxlcy5kZ290b1ttXTtcbiAgICAgIGlmIChzcCA+PSBlbnZbZW52X3N0YWNrc2l6ZV0pIHtcbiAgICAgICAgcmVzID0gR1JPV19TVEFDS1NfMjtcbiAgICAgICAgYnJlYWsgZXhpdDtcbiAgICAgIH1cbiAgICAgIC8vIEZhbGwgdGhyb3VnaFxuICAgICAgLyogVGhlIE1MIGNvZGUgcmVzaXplcyB0aGUgc3RhY2tzICovXG4gICAgY2FzZSAzOi8vU1RBQ0tTX0dST1dOXzI6XG4gICAgICByZXMgPSBDT01QVVRFX1NFTUFOVElDX0FDVElPTjtcbiAgICAgIGJyZWFrIGV4aXQ7XG4gICAgICAvKiBUaGUgTUwgY29kZSBjYWxscyB0aGUgc2VtYW50aWMgYWN0aW9uICovXG4gICAgY2FzZSA0Oi8vU0VNQU5USUNfQUNUSU9OX0NPTVBVVEVEOlxuICAgICAgZW52W2Vudl9zX3N0YWNrXVtzcCArIDFdID0gc3RhdGU7XG4gICAgICBlbnZbZW52X3Zfc3RhY2tdW3NwICsgMV0gPSBhcmc7XG4gICAgICB2YXIgYXNwID0gZW52W2Vudl9hc3BdO1xuICAgICAgZW52W2Vudl9zeW1iX2VuZF9zdGFja11bc3AgKyAxXSA9IGVudltlbnZfc3ltYl9lbmRfc3RhY2tdW2FzcCArIDFdO1xuICAgICAgaWYgKHNwID4gYXNwKSB7XG4gICAgICAgIC8qIFRoaXMgaXMgYW4gZXBzaWxvbiBwcm9kdWN0aW9uLiBUYWtlIHN5bWJfc3RhcnQgZXF1YWwgdG8gc3ltYl9lbmQuICovXG4gICAgICAgIGVudltlbnZfc3ltYl9zdGFydF9zdGFja11bc3AgKyAxXSA9IGVudltlbnZfc3ltYl9lbmRfc3RhY2tdW2FzcCArIDFdO1xuICAgICAgfVxuICAgICAgY21kID0gbG9vcDsgYnJlYWs7XG4gICAgICAvKiBTaG91bGQgbm90IGhhcHBlbiAqL1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gUkFJU0VfUEFSU0VfRVJST1I7XG4gICAgfVxuICB9XG4gIC8vIFNBVkVcbiAgZW52W2Vudl9zcF0gPSBzcDtcbiAgZW52W2Vudl9zdGF0ZV0gPSBzdGF0ZTtcbiAgZW52W2Vudl9lcnJmbGFnXSA9IGVycmZsYWc7XG4gIHJldHVybiByZXM7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc2V0X3BhcnNlcl90cmFjZSBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9wYXJzZXJfdHJhY2VcbmZ1bmN0aW9uIGNhbWxfc2V0X3BhcnNlcl90cmFjZShib29sKSB7XG4gIHZhciBvbGRmbGFnID0gY2FtbF9wYXJzZXJfdHJhY2U7XG4gIGNhbWxfcGFyc2VyX3RyYWNlID0gYm9vbDtcbiAgcmV0dXJuIG9sZGZsYWc7XG59XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vL1Byb3ZpZGVzOiBjYW1sX2Zvcm1hdF9pbnQgY29uc3QgKGNvbnN0LCBjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfcGFyc2VfZm9ybWF0LCBjYW1sX2ZpbmlzaF9mb3JtYXR0aW5nLCBjYW1sX3N0cl9yZXBlYXRcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMsIGNhbWxfanNieXRlc19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfZm9ybWF0X2ludChmbXQsIGkpIHtcbiAgaWYgKGNhbWxfanNieXRlc19vZl9zdHJpbmcoZm10KSA9PSBcIiVkXCIpIHJldHVybiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKFwiXCIraSk7XG4gIHZhciBmID0gY2FtbF9wYXJzZV9mb3JtYXQoZm10KTtcbiAgaWYgKGkgPCAwKSB7IGlmIChmLnNpZ25lZGNvbnYpIHsgZi5zaWduID0gLTE7IGkgPSAtaTsgfSBlbHNlIGkgPj4+PSAwOyB9XG4gIHZhciBzID0gaS50b1N0cmluZyhmLmJhc2UpO1xuICBpZiAoZi5wcmVjID49IDApIHtcbiAgICBmLmZpbGxlciA9ICcgJztcbiAgICB2YXIgbiA9IGYucHJlYyAtIHMubGVuZ3RoO1xuICAgIGlmIChuID4gMCkgcyA9IGNhbWxfc3RyX3JlcGVhdCAobiwgJzAnKSArIHM7XG4gIH1cbiAgcmV0dXJuIGNhbWxfZmluaXNoX2Zvcm1hdHRpbmcoZiwgcyk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfcGFyc2Vfc2lnbl9hbmRfYmFzZVxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfdW5zYWZlX2dldCwgY2FtbF9tbF9zdHJpbmdfbGVuZ3RoXG5mdW5jdGlvbiBjYW1sX3BhcnNlX3NpZ25fYW5kX2Jhc2UgKHMpIHtcbiAgdmFyIGkgPSAwLCBsZW4gPSBjYW1sX21sX3N0cmluZ19sZW5ndGgocyksIGJhc2UgPSAxMCwgc2lnbiA9IDE7XG4gIGlmIChsZW4gPiAwKSB7XG4gICAgc3dpdGNoIChjYW1sX3N0cmluZ191bnNhZmVfZ2V0KHMsaSkpIHtcbiAgICBjYXNlIDQ1OiBpKys7IHNpZ24gPSAtMTsgYnJlYWs7XG4gICAgY2FzZSA0MzogaSsrOyBzaWduID0gMTsgYnJlYWs7XG4gICAgfVxuICB9XG4gIGlmIChpICsgMSA8IGxlbiAmJiBjYW1sX3N0cmluZ191bnNhZmVfZ2V0KHMsIGkpID09IDQ4KVxuICAgIHN3aXRjaCAoY2FtbF9zdHJpbmdfdW5zYWZlX2dldChzLCBpICsgMSkpIHtcbiAgICBjYXNlIDEyMDogY2FzZSA4ODogYmFzZSA9IDE2OyBpICs9IDI7IGJyZWFrO1xuICAgIGNhc2UgMTExOiBjYXNlIDc5OiBiYXNlID0gIDg7IGkgKz0gMjsgYnJlYWs7XG4gICAgY2FzZSAgOTg6IGNhc2UgNjY6IGJhc2UgPSAgMjsgaSArPSAyOyBicmVhaztcbiAgICBjYXNlIDExNzogY2FzZSA4NTogaSArPSAyOyBicmVhaztcbiAgICB9XG4gIHJldHVybiBbaSwgc2lnbiwgYmFzZV07XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfcGFyc2VfZGlnaXRcbmZ1bmN0aW9uIGNhbWxfcGFyc2VfZGlnaXQoYykge1xuICBpZiAoYyA+PSA0OCAmJiBjIDw9IDU3KSAgcmV0dXJuIGMgLSA0ODtcbiAgaWYgKGMgPj0gNjUgJiYgYyA8PSA5MCkgIHJldHVybiBjIC0gNTU7XG4gIGlmIChjID49IDk3ICYmIGMgPD0gMTIyKSByZXR1cm4gYyAtIDg3O1xuICByZXR1cm4gLTE7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50X29mX3N0cmluZyAoY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX21sX3N0cmluZ19sZW5ndGgsIGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXRcbi8vUmVxdWlyZXM6IGNhbWxfcGFyc2Vfc2lnbl9hbmRfYmFzZSwgY2FtbF9wYXJzZV9kaWdpdCwgY2FtbF9mYWlsd2l0aFxuZnVuY3Rpb24gY2FtbF9pbnRfb2Zfc3RyaW5nIChzKSB7XG4gIHZhciByID0gY2FtbF9wYXJzZV9zaWduX2FuZF9iYXNlIChzKTtcbiAgdmFyIGkgPSByWzBdLCBzaWduID0gclsxXSwgYmFzZSA9IHJbMl07XG4gIHZhciBsZW4gPSBjYW1sX21sX3N0cmluZ19sZW5ndGgocyk7XG4gIHZhciB0aHJlc2hvbGQgPSAtMSA+Pj4gMDtcbiAgdmFyIGMgPSAoaSA8IGxlbik/Y2FtbF9zdHJpbmdfdW5zYWZlX2dldChzLCBpKTowO1xuICB2YXIgZCA9IGNhbWxfcGFyc2VfZGlnaXQoYyk7XG4gIGlmIChkIDwgMCB8fCBkID49IGJhc2UpIGNhbWxfZmFpbHdpdGgoXCJpbnRfb2Zfc3RyaW5nXCIpO1xuICB2YXIgcmVzID0gZDtcbiAgZm9yIChpKys7aTxsZW47aSsrKSB7XG4gICAgYyA9IGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQocywgaSk7XG4gICAgaWYgKGMgPT0gOTUpIGNvbnRpbnVlO1xuICAgIGQgPSBjYW1sX3BhcnNlX2RpZ2l0KGMpO1xuICAgIGlmIChkIDwgMCB8fCBkID49IGJhc2UpIGJyZWFrO1xuICAgIHJlcyA9IGJhc2UgKiByZXMgKyBkO1xuICAgIGlmIChyZXMgPiB0aHJlc2hvbGQpIGNhbWxfZmFpbHdpdGgoXCJpbnRfb2Zfc3RyaW5nXCIpO1xuICB9XG4gIGlmIChpICE9IGxlbikgY2FtbF9mYWlsd2l0aChcImludF9vZl9zdHJpbmdcIik7XG4gIC8vIEZvciBiYXNlIGRpZmZlcmVudCBmcm9tIDEwLCB3ZSBleHBlY3QgYW4gdW5zaWduZWQgcmVwcmVzZW50YXRpb24sXG4gIC8vIGhlbmNlIGFueSB2YWx1ZSBvZiAncmVzJyAobGVzcyB0aGFuICd0aHJlc2hvbGQnKSBpcyBhY2NlcHRhYmxlLlxuICAvLyBCdXQgd2UgaGF2ZSB0byBjb252ZXJ0IHRoZSByZXN1bHQgYmFjayB0byBhIHNpZ25lZCBpbnRlZ2VyLlxuICByZXMgPSBzaWduICogcmVzO1xuICBpZiAoKGJhc2UgPT0gMTApICYmICgocmVzIHwgMCkgIT0gcmVzKSlcbiAgICAvKiBTaWduZWQgcmVwcmVzZW50YXRpb24gZXhwZWN0ZWQsIGFsbG93IC0yXihuYml0cy0xKSB0byAyXihuYml0cy0xKSAtIDEgKi9cbiAgICBjYW1sX2ZhaWx3aXRoKFwiaW50X29mX3N0cmluZ1wiKTtcbiAgcmV0dXJuIHJlcyB8IDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbXVsIGNvbnN0XG5mdW5jdGlvbiBjYW1sX211bChhLGIpe1xuICByZXR1cm4gTWF0aC5pbXVsKGEsYik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZGl2XG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX3plcm9fZGl2aWRlXG5mdW5jdGlvbiBjYW1sX2Rpdih4LHkpIHtcbiAgaWYgKHkgPT0gMCkgY2FtbF9yYWlzZV96ZXJvX2RpdmlkZSAoKTtcbiAgcmV0dXJuICh4L3kpfDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbW9kXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX3plcm9fZGl2aWRlXG5mdW5jdGlvbiBjYW1sX21vZCh4LHkpIHtcbiAgaWYgKHkgPT0gMCkgY2FtbF9yYWlzZV96ZXJvX2RpdmlkZSAoKTtcbiAgcmV0dXJuIHgleTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ic3dhcDE2XG5mdW5jdGlvbiBjYW1sX2Jzd2FwMTYoeCkge1xuICByZXR1cm4gKCgoKHggJiAweDAwRkYpIDw8IDgpIHxcbiAgICAgICAgICAgKCh4ICYgMHhGRjAwKSA+PiA4KSkpO1xufVxuLy9Qcm92aWRlczogY2FtbF9pbnQzMl9ic3dhcFxuZnVuY3Rpb24gY2FtbF9pbnQzMl9ic3dhcCh4KSB7XG4gIHJldHVybiAoKCh4ICYgMHgwMDAwMDBGRikgPDwgMjQpIHxcbiAgICAgICAgICAoKHggJiAweDAwMDBGRjAwKSA8PCA4KSB8XG4gICAgICAgICAgKCh4ICYgMHgwMEZGMDAwMCkgPj4+IDgpIHxcbiAgICAgICAgICAoKHggJiAweEZGMDAwMDAwKSA+Pj4gMjQpKTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfYnN3YXBcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfdG9fYnl0ZXMsIGNhbWxfaW50NjRfb2ZfYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfaW50NjRfYnN3YXAoeCkge1xuICB2YXIgeSA9IGNhbWxfaW50NjRfdG9fYnl0ZXMoeCk7XG4gIHJldHVybiBjYW1sX2ludDY0X29mX2J5dGVzKFt5WzddLCB5WzZdLCB5WzVdLCB5WzRdLCB5WzNdLCB5WzJdLCB5WzFdLCB5WzBdXSk7XG59XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vLy8vLy8vLy8vLy8vIEhhc2h0YmxcblxuXG4vL1Byb3ZpZGVzOiBjYW1sX2hhc2hfdW5pdl9wYXJhbSBtdXRhYmxlXG4vL1JlcXVpcmVzOiBjYW1sX2lzX21sX3N0cmluZywgY2FtbF9pc19tbF9ieXRlc1xuLy9SZXF1aXJlczogY2FtbF9tbF9ieXRlc19jb250ZW50XG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X3RvX2J5dGVzLCBjYW1sX2ludDY0X2JpdHNfb2ZfZmxvYXQsIGNhbWxfY3VzdG9tX29wc1xuLy9SZXF1aXJlczogY2FtbF9tbF9ieXRlc19sZW5ndGgsIGNhbWxfanNieXRlc19vZl9zdHJpbmdcbi8vVmVyc2lvbjogPCA0LjEyXG5mdW5jdGlvbiBjYW1sX2hhc2hfdW5pdl9wYXJhbSAoY291bnQsIGxpbWl0LCBvYmopIHtcbiAgdmFyIGhhc2hfYWNjdSA9IDA7XG4gIGZ1bmN0aW9uIGhhc2hfYXV4IChvYmopIHtcbiAgICBsaW1pdCAtLTtcbiAgICBpZiAoY291bnQgPCAwIHx8IGxpbWl0IDwgMCkgcmV0dXJuO1xuICAgIGlmIChvYmogaW5zdGFuY2VvZiBBcnJheSAmJiBvYmpbMF0gPT09IChvYmpbMF18MCkpIHtcbiAgICAgIHN3aXRjaCAob2JqWzBdKSB7XG4gICAgICBjYXNlIDI0ODpcbiAgICAgICAgLy8gT2JqZWN0XG4gICAgICAgIGNvdW50IC0tO1xuICAgICAgICBoYXNoX2FjY3UgPSAoaGFzaF9hY2N1ICogNjU1OTkgKyBvYmpbMl0pIHwgMDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDI1MDpcbiAgICAgICAgLy8gRm9yd2FyZFxuICAgICAgICBsaW1pdCsrOyBoYXNoX2F1eChvYmopOyBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGNvdW50IC0tO1xuICAgICAgICBoYXNoX2FjY3UgPSAoaGFzaF9hY2N1ICogMTkgKyBvYmpbMF0pIHwgMDtcbiAgICAgICAgZm9yICh2YXIgaSA9IG9iai5sZW5ndGggLSAxOyBpID4gMDsgaS0tKSBoYXNoX2F1eCAob2JqW2ldKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGNhbWxfaXNfbWxfYnl0ZXMob2JqKSkge1xuICAgICAgY291bnQgLS07XG4gICAgICB2YXIgY29udGVudCA9IGNhbWxfbWxfYnl0ZXNfY29udGVudChvYmopO1xuICAgICAgaWYodHlwZW9mIGNvbnRlbnQgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgZm9yICh2YXIgYiA9IGNvbnRlbnQsIGwgPSBiLmxlbmd0aCwgaSA9IDA7IGkgPCBsOyBpKyspXG4gICAgICAgICAgaGFzaF9hY2N1ID0gKGhhc2hfYWNjdSAqIDE5ICsgYi5jaGFyQ29kZUF0KGkpKSB8IDA7XG4gICAgICB9IGVsc2UgeyAvKiBBUlJBWSAqL1xuICAgICAgICBmb3IgKHZhciBhID0gY29udGVudCwgbCA9IGEubGVuZ3RoLCBpID0gMDsgaSA8IGw7IGkrKylcbiAgICAgICAgICBoYXNoX2FjY3UgPSAoaGFzaF9hY2N1ICogMTkgKyBhW2ldKSB8IDA7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChjYW1sX2lzX21sX3N0cmluZyhvYmopKSB7XG4gICAgICB2YXIganNieXRlcyA9IGNhbWxfanNieXRlc19vZl9zdHJpbmcob2JqKTtcbiAgICAgIGZvciAodmFyIGIgPSBqc2J5dGVzLCBsID0ganNieXRlcy5sZW5ndGgsIGkgPSAwOyBpIDwgbDsgaSsrKVxuICAgICAgICBoYXNoX2FjY3UgPSAoaGFzaF9hY2N1ICogMTkgKyBiLmNoYXJDb2RlQXQoaSkpIHwgMDtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBvYmogPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIGZvciAodmFyIGIgPSBvYmosIGwgPSBvYmoubGVuZ3RoLCBpID0gMDsgaSA8IGw7IGkrKylcbiAgICAgICAgaGFzaF9hY2N1ID0gKGhhc2hfYWNjdSAqIDE5ICsgYi5jaGFyQ29kZUF0KGkpKSB8IDA7XG4gICAgfSBlbHNlIGlmIChvYmogPT09IChvYmp8MCkpIHtcbiAgICAgIC8vIEludGVnZXJcbiAgICAgIGNvdW50IC0tO1xuICAgICAgaGFzaF9hY2N1ID0gKGhhc2hfYWNjdSAqIDY1NTk5ICsgb2JqKSB8IDA7XG4gICAgfSBlbHNlIGlmIChvYmogPT09ICtvYmopIHtcbiAgICAgIC8vIEZsb2F0XG4gICAgICBjb3VudC0tO1xuICAgICAgdmFyIHAgPSBjYW1sX2ludDY0X3RvX2J5dGVzIChjYW1sX2ludDY0X2JpdHNfb2ZfZmxvYXQgKG9iaikpO1xuICAgICAgZm9yICh2YXIgaSA9IDc7IGkgPj0gMDsgaS0tKSBoYXNoX2FjY3UgPSAoaGFzaF9hY2N1ICogMTkgKyBwW2ldKSB8IDA7XG4gICAgfSBlbHNlIGlmKG9iaiAmJiBvYmouY2FtbF9jdXN0b20pIHtcbiAgICAgIGlmKGNhbWxfY3VzdG9tX29wc1tvYmouY2FtbF9jdXN0b21dICYmIGNhbWxfY3VzdG9tX29wc1tvYmouY2FtbF9jdXN0b21dLmhhc2gpIHtcbiAgICAgICAgdmFyIGggPSBjYW1sX2N1c3RvbV9vcHNbb2JqLmNhbWxfY3VzdG9tXS5oYXNoKG9iaikgfCAwO1xuICAgICAgICBoYXNoX2FjY3UgPSAoaGFzaF9hY2N1ICogNjU1OTkgKyBoKSB8IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGhhc2hfYXV4IChvYmopO1xuICByZXR1cm4gaGFzaF9hY2N1ICYgMHgzRkZGRkZGRjtcbn1cblxuLy9mdW5jdGlvbiBST1RMMzIoeCxuKSB7IHJldHVybiAoKHggPDwgbikgfCAoeCA+Pj4gKDMyLW4pKSk7IH1cbi8vUHJvdmlkZXM6IGNhbWxfaGFzaF9taXhfaW50XG4vL1JlcXVpcmVzOiBjYW1sX211bFxuZnVuY3Rpb24gY2FtbF9oYXNoX21peF9pbnQoaCxkKSB7XG4gIGQgPSBjYW1sX211bChkLCAweGNjOWUyZDUxfDApO1xuICBkID0gKChkIDw8IDE1KSB8IChkID4+PiAoMzItMTUpKSk7IC8vIFJPVEwzMihkLCAxNSk7XG4gIGQgPSBjYW1sX211bChkLCAweDFiODczNTkzKTtcbiAgaCBePSBkO1xuICBoID0gKChoIDw8IDEzKSB8IChoID4+PiAoMzItMTMpKSk7ICAgLy9ST1RMMzIoaCwgMTMpO1xuICByZXR1cm4gKCgoaCArIChoIDw8IDIpKXwwKSArICgweGU2NTQ2YjY0fDApKXwwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2hhc2hfbWl4X2ZpbmFsXG4vL1JlcXVpcmVzOiBjYW1sX211bFxuZnVuY3Rpb24gY2FtbF9oYXNoX21peF9maW5hbChoKSB7XG4gIGggXj0gaCA+Pj4gMTY7XG4gIGggPSBjYW1sX211bCAoaCwgMHg4NWViY2E2YnwwKTtcbiAgaCBePSBoID4+PiAxMztcbiAgaCA9IGNhbWxfbXVsIChoLCAweGMyYjJhZTM1fDApO1xuICBoIF49IGggPj4+IDE2O1xuICByZXR1cm4gaDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9oYXNoX21peF9mbG9hdFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9iaXRzX29mX2Zsb2F0LCBjYW1sX2hhc2hfbWl4X2ludDY0XG5mdW5jdGlvbiBjYW1sX2hhc2hfbWl4X2Zsb2F0IChoLCB2MCkge1xuICByZXR1cm4gY2FtbF9oYXNoX21peF9pbnQ2NChoLCBjYW1sX2ludDY0X2JpdHNfb2ZfZmxvYXQgKHYwKSk7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2hhc2hfbWl4X2ludDY0XG4vL1JlcXVpcmVzOiBjYW1sX2hhc2hfbWl4X2ludFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9sbzMyLCBjYW1sX2ludDY0X2hpMzJcbmZ1bmN0aW9uIGNhbWxfaGFzaF9taXhfaW50NjQgKGgsIHYpIHtcbiAgaCA9IGNhbWxfaGFzaF9taXhfaW50KGgsIGNhbWxfaW50NjRfbG8zMih2KSk7XG4gIGggPSBjYW1sX2hhc2hfbWl4X2ludChoLCBjYW1sX2ludDY0X2hpMzIodikpO1xuICByZXR1cm4gaDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9oYXNoX21peF9qc2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX2hhc2hfbWl4X2ludFxuZnVuY3Rpb24gY2FtbF9oYXNoX21peF9qc2J5dGVzKGgsIHMpIHtcbiAgdmFyIGxlbiA9IHMubGVuZ3RoLCBpLCB3O1xuICBmb3IgKGkgPSAwOyBpICsgNCA8PSBsZW47IGkgKz0gNCkge1xuICAgIHcgPSBzLmNoYXJDb2RlQXQoaSlcbiAgICAgIHwgKHMuY2hhckNvZGVBdChpKzEpIDw8IDgpXG4gICAgICB8IChzLmNoYXJDb2RlQXQoaSsyKSA8PCAxNilcbiAgICAgIHwgKHMuY2hhckNvZGVBdChpKzMpIDw8IDI0KTtcbiAgICBoID0gY2FtbF9oYXNoX21peF9pbnQoaCwgdyk7XG4gIH1cbiAgdyA9IDA7XG4gIHN3aXRjaCAobGVuICYgMykge1xuICBjYXNlIDM6IHcgID0gcy5jaGFyQ29kZUF0KGkrMikgPDwgMTY7XG4gIGNhc2UgMjogdyB8PSBzLmNoYXJDb2RlQXQoaSsxKSA8PCA4O1xuICBjYXNlIDE6XG4gICAgdyB8PSBzLmNoYXJDb2RlQXQoaSk7XG4gICAgaCA9IGNhbWxfaGFzaF9taXhfaW50KGgsIHcpO1xuICBkZWZhdWx0OlxuICB9XG4gIGggXj0gbGVuO1xuICByZXR1cm4gaDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9oYXNoX21peF9ieXRlc19hcnJcbi8vUmVxdWlyZXM6IGNhbWxfaGFzaF9taXhfaW50XG5mdW5jdGlvbiBjYW1sX2hhc2hfbWl4X2J5dGVzX2FycihoLCBzKSB7XG4gIHZhciBsZW4gPSBzLmxlbmd0aCwgaSwgdztcbiAgZm9yIChpID0gMDsgaSArIDQgPD0gbGVuOyBpICs9IDQpIHtcbiAgICB3ID0gc1tpXVxuICAgICAgfCAoc1tpKzFdIDw8IDgpXG4gICAgICB8IChzW2krMl0gPDwgMTYpXG4gICAgICB8IChzW2krM10gPDwgMjQpO1xuICAgIGggPSBjYW1sX2hhc2hfbWl4X2ludChoLCB3KTtcbiAgfVxuICB3ID0gMDtcbiAgc3dpdGNoIChsZW4gJiAzKSB7XG4gIGNhc2UgMzogdyAgPSBzW2krMl0gPDwgMTY7XG4gIGNhc2UgMjogdyB8PSBzW2krMV0gPDwgODtcbiAgY2FzZSAxOiB3IHw9IHNbaV07XG4gICAgaCA9IGNhbWxfaGFzaF9taXhfaW50KGgsIHcpO1xuICBkZWZhdWx0OlxuICB9XG4gIGggXj0gbGVuO1xuICByZXR1cm4gaDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9oYXNoX21peF9ieXRlc1xuLy9SZXF1aXJlczogY2FtbF9tbF9ieXRlc19jb250ZW50XG4vL1JlcXVpcmVzOiBjYW1sX2hhc2hfbWl4X2pzYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfaGFzaF9taXhfYnl0ZXNfYXJyXG5mdW5jdGlvbiBjYW1sX2hhc2hfbWl4X2J5dGVzKGgsIHYpIHtcbiAgdmFyIGNvbnRlbnQgPSBjYW1sX21sX2J5dGVzX2NvbnRlbnQodik7XG4gIGlmKHR5cGVvZiBjb250ZW50ID09PSBcInN0cmluZ1wiKVxuICAgIHJldHVybiBjYW1sX2hhc2hfbWl4X2pzYnl0ZXMoaCwgY29udGVudClcbiAgZWxzZSAvKiBBUlJBWSAqL1xuICAgIHJldHVybiBjYW1sX2hhc2hfbWl4X2J5dGVzX2FycihoLCBjb250ZW50KTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9oYXNoX21peF9zdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfaGFzaF9taXhfanNieXRlcywgY2FtbF9qc2J5dGVzX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9oYXNoX21peF9zdHJpbmcoaCwgdikge1xuICByZXR1cm4gY2FtbF9oYXNoX21peF9qc2J5dGVzKGgsIGNhbWxfanNieXRlc19vZl9zdHJpbmcodikpO1xufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfaGFzaCBtdXRhYmxlXG4vL1JlcXVpcmVzOiBjYW1sX2lzX21sX3N0cmluZywgY2FtbF9pc19tbF9ieXRlc1xuLy9SZXF1aXJlczogY2FtbF9oYXNoX21peF9pbnQsIGNhbWxfaGFzaF9taXhfZmluYWxcbi8vUmVxdWlyZXM6IGNhbWxfaGFzaF9taXhfZmxvYXQsIGNhbWxfaGFzaF9taXhfc3RyaW5nLCBjYW1sX2hhc2hfbWl4X2J5dGVzLCBjYW1sX2N1c3RvbV9vcHNcbi8vUmVxdWlyZXM6IGNhbWxfaGFzaF9taXhfanNieXRlc1xuLy9SZXF1aXJlczogY2FtbF9pc19jb250aW51YXRpb25fdGFnXG5mdW5jdGlvbiBjYW1sX2hhc2ggKGNvdW50LCBsaW1pdCwgc2VlZCwgb2JqKSB7XG4gIHZhciBxdWV1ZSwgcmQsIHdyLCBzeiwgbnVtLCBoLCB2LCBpLCBsZW47XG4gIHN6ID0gbGltaXQ7XG4gIGlmIChzeiA8IDAgfHwgc3ogPiAyNTYpIHN6ID0gMjU2O1xuICBudW0gPSBjb3VudDtcbiAgaCA9IHNlZWQ7XG4gIHF1ZXVlID0gW29ial07IHJkID0gMDsgd3IgPSAxO1xuICB3aGlsZSAocmQgPCB3ciAmJiBudW0gPiAwKSB7XG4gICAgdiA9IHF1ZXVlW3JkKytdO1xuICAgIGlmICh2ICYmIHYuY2FtbF9jdXN0b20pe1xuICAgICAgaWYoY2FtbF9jdXN0b21fb3BzW3YuY2FtbF9jdXN0b21dICYmIGNhbWxfY3VzdG9tX29wc1t2LmNhbWxfY3VzdG9tXS5oYXNoKSB7XG4gICAgICAgIHZhciBoaCA9IGNhbWxfY3VzdG9tX29wc1t2LmNhbWxfY3VzdG9tXS5oYXNoKHYpO1xuICAgICAgICBoID0gY2FtbF9oYXNoX21peF9pbnQgKGgsIGhoKTtcbiAgICAgICAgbnVtIC0tO1xuICAgICAgfVxuICAgIH1cbiAgICBlbHNlIGlmICh2IGluc3RhbmNlb2YgQXJyYXkgJiYgdlswXSA9PT0gKHZbMF18MCkpIHtcbiAgICAgIHN3aXRjaCAodlswXSkge1xuICAgICAgY2FzZSAyNDg6XG4gICAgICAgIC8vIE9iamVjdFxuICAgICAgICBoID0gY2FtbF9oYXNoX21peF9pbnQoaCwgdlsyXSk7XG4gICAgICAgIG51bS0tO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMjUwOlxuICAgICAgICAvLyBGb3J3YXJkXG4gICAgICAgIHF1ZXVlWy0tcmRdID0gdlsxXTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBpZihjYW1sX2lzX2NvbnRpbnVhdGlvbl90YWcodlswXSkpIHtcbiAgICAgICAgICAvKiBBbGwgY29udGludWF0aW9ucyBoYXNoIHRvIHRoZSBzYW1lIHZhbHVlLFxuICAgICAgICAgICAgIHNpbmNlIHdlIGhhdmUgbm8gaWRlYSBob3cgdG8gZGlzdGluZ3Vpc2ggdGhlbS4gKi9cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICB2YXIgdGFnID0gKCh2Lmxlbmd0aCAtIDEpIDw8IDEwKSB8IHZbMF07XG4gICAgICAgIGggPSBjYW1sX2hhc2hfbWl4X2ludChoLCB0YWcpO1xuICAgICAgICBmb3IgKGkgPSAxLCBsZW4gPSB2Lmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgICAgaWYgKHdyID49IHN6KSBicmVhaztcbiAgICAgICAgICBxdWV1ZVt3cisrXSA9IHZbaV07XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChjYW1sX2lzX21sX2J5dGVzKHYpKSB7XG4gICAgICBoID0gY2FtbF9oYXNoX21peF9ieXRlcyhoLHYpXG4gICAgICBudW0tLTtcbiAgICB9IGVsc2UgaWYgKGNhbWxfaXNfbWxfc3RyaW5nKHYpKSB7XG4gICAgICBoID0gY2FtbF9oYXNoX21peF9zdHJpbmcoaCx2KVxuICAgICAgbnVtLS07XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdiA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgaCA9IGNhbWxfaGFzaF9taXhfanNieXRlcyhoLHYpXG4gICAgICBudW0tLTtcbiAgICB9IGVsc2UgaWYgKHYgPT09ICh2fDApKSB7XG4gICAgICAvLyBJbnRlZ2VyXG4gICAgICBoID0gY2FtbF9oYXNoX21peF9pbnQoaCwgdit2KzEpO1xuICAgICAgbnVtLS07XG4gICAgfSBlbHNlIGlmICh2ID09PSArdikge1xuICAgICAgLy8gRmxvYXRcbiAgICAgIGggPSBjYW1sX2hhc2hfbWl4X2Zsb2F0KGgsdik7XG4gICAgICBudW0tLTtcbiAgICB9XG4gIH1cbiAgaCA9IGNhbWxfaGFzaF9taXhfZmluYWwoaCk7XG4gIHJldHVybiBoICYgMHgzRkZGRkZGRjtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfaGFzaFxuLy9SZXF1aXJlczogY2FtbF9oYXNoX21peF9maW5hbCwgY2FtbF9oYXNoX21peF9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX2hhc2goaCwgdil7XG4gIHZhciBoID0gY2FtbF9oYXNoX21peF9zdHJpbmcoaCx2KTtcbiAgdmFyIGggPSBjYW1sX2hhc2hfbWl4X2ZpbmFsKGgpO1xuICByZXR1cm4gaCAmIDB4M0ZGRkZGRkY7XG59XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vL1Byb3ZpZGVzOiBjYW1sX3VwZGF0ZV9kdW1teVxuZnVuY3Rpb24gY2FtbF91cGRhdGVfZHVtbXkgKHgsIHkpIHtcbiAgaWYoIHR5cGVvZiB5PT09XCJmdW5jdGlvblwiICkgeyB4LmZ1biA9IHk7IHJldHVybiAwOyB9XG4gIGlmKCB5LmZ1biApIHsgeC5mdW4gPSB5LmZ1bjsgcmV0dXJuIDA7IH1cbiAgdmFyIGkgPSB5Lmxlbmd0aDsgd2hpbGUgKGktLSkgeFtpXSA9IHlbaV07IHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2FsbG9jX2R1bW15X2luZml4XG4vL1JlcXVpcmVzOiBjYW1sX2NhbGxfZ2VuXG5mdW5jdGlvbiBjYW1sX2FsbG9jX2R1bW15X2luZml4ICgpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGYgKHgpIHsgcmV0dXJuIGNhbWxfY2FsbF9nZW4oZi5mdW4sIFt4XSkgfVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX29ial9pc19ibG9jayBjb25zdCAoY29uc3QpXG5mdW5jdGlvbiBjYW1sX29ial9pc19ibG9jayAoeCkgeyByZXR1cm4gKyh4IGluc3RhbmNlb2YgQXJyYXkpOyB9XG5cblxuLy9Qcm92aWRlczogY2FtbF9vYmpfdGFnXG4vL1JlcXVpcmVzOiBjYW1sX2lzX21sX2J5dGVzLCBjYW1sX2lzX21sX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9vYmpfdGFnICh4KSB7XG4gIGlmICgoeCBpbnN0YW5jZW9mIEFycmF5KSAmJiB4WzBdID09ICh4WzBdID4+PiAwKSlcbiAgICByZXR1cm4geFswXVxuICBlbHNlIGlmIChjYW1sX2lzX21sX2J5dGVzKHgpKVxuICAgIHJldHVybiAyNTJcbiAgZWxzZSBpZiAoY2FtbF9pc19tbF9zdHJpbmcoeCkpXG4gICAgcmV0dXJuIDI1MlxuICBlbHNlIGlmICgoeCBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB8fCB0eXBlb2YgeCA9PSBcImZ1bmN0aW9uXCIpXG4gICAgcmV0dXJuIDI0N1xuICBlbHNlIGlmICh4ICYmIHguY2FtbF9jdXN0b20pXG4gICAgcmV0dXJuIDI1NVxuICBlbHNlXG4gICAgcmV0dXJuIDEwMDBcbn1cblxuLy9Qcm92aWRlczogY2FtbF9vYmpfc2V0X3RhZyAobXV0YWJsZSwgY29uc3QpXG5mdW5jdGlvbiBjYW1sX29ial9zZXRfdGFnICh4LCB0YWcpIHsgeFswXSA9IHRhZzsgcmV0dXJuIDA7IH1cbi8vUHJvdmlkZXM6IGNhbWxfb2JqX2Jsb2NrIGNvbnN0IChjb25zdCxjb25zdClcbmZ1bmN0aW9uIGNhbWxfb2JqX2Jsb2NrICh0YWcsIHNpemUpIHtcbiAgdmFyIG8gPSBuZXcgQXJyYXkoc2l6ZSsxKTtcbiAgb1swXT10YWc7XG4gIGZvciAodmFyIGkgPSAxOyBpIDw9IHNpemU7IGkrKykgb1tpXSA9IDA7XG4gIHJldHVybiBvO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX29ial93aXRoX3RhZ1xuZnVuY3Rpb24gY2FtbF9vYmpfd2l0aF90YWcodGFnLHgpIHtcbiAgdmFyIGwgPSB4Lmxlbmd0aDtcbiAgdmFyIGEgPSBuZXcgQXJyYXkobCk7XG4gIGFbMF0gPSB0YWc7XG4gIGZvcih2YXIgaSA9IDE7IGkgPCBsOyBpKysgKSBhW2ldID0geFtpXTtcbiAgcmV0dXJuIGE7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfb2JqX2R1cCBtdXRhYmxlIChtdXRhYmxlKVxuZnVuY3Rpb24gY2FtbF9vYmpfZHVwICh4KSB7XG4gIHZhciBsID0geC5sZW5ndGg7XG4gIHZhciBhID0gbmV3IEFycmF5KGwpO1xuICBmb3IodmFyIGkgPSAwOyBpIDwgbDsgaSsrICkgYVtpXSA9IHhbaV07XG4gIHJldHVybiBhO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX29ial90cnVuY2F0ZSAobXV0YWJsZSwgY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIGNhbWxfb2JqX3RydW5jYXRlICh4LCBzKSB7XG4gIGlmIChzPD0wIHx8IHMgKyAxID4geC5sZW5ndGgpXG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50IChcIk9iai50cnVuY2F0ZVwiKTtcbiAgaWYgKHgubGVuZ3RoICE9IHMgKyAxKSB4Lmxlbmd0aCA9IHMgKyAxO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9vYmpfbWFrZV9mb3J3YXJkXG5mdW5jdGlvbiBjYW1sX29ial9tYWtlX2ZvcndhcmQgKGIsdikge1xuICBiWzBdPTI1MDtcbiAgYlsxXT12O1xuICByZXR1cm4gMFxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX29ial9jb21wYXJlX2FuZF9zd2FwXG5mdW5jdGlvbiBjYW1sX29ial9jb21wYXJlX2FuZF9zd2FwKHgsaSxvbGQsbil7XG4gIGlmKHhbaSsxXSA9PSBvbGQpIHtcbiAgICB4W2krMV0gPSBuO1xuICAgIHJldHVybiAxO1xuICB9XG4gIHJldHVybiAwXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfb2JqX2lzX3NoYXJlZFxuZnVuY3Rpb24gY2FtbF9vYmpfaXNfc2hhcmVkKHgpe1xuICByZXR1cm4gMVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2xhenlfbWFrZV9mb3J3YXJkIGNvbnN0IChtdXRhYmxlKVxuZnVuY3Rpb24gY2FtbF9sYXp5X21ha2VfZm9yd2FyZCAodikgeyByZXR1cm4gWzI1MCwgdl07IH1cblxuLy8vLy8vLy8vLy8vLyBDYW1saW50ZXJuYWxPT1xuLy9Qcm92aWRlczogY2FtbF9nZXRfcHVibGljX21ldGhvZCBjb25zdFxudmFyIGNhbWxfbWV0aG9kX2NhY2hlID0gW107XG5mdW5jdGlvbiBjYW1sX2dldF9wdWJsaWNfbWV0aG9kIChvYmosIHRhZywgY2FjaGVpZCkge1xuICB2YXIgbWV0aHMgPSBvYmpbMV07XG4gIHZhciBvZnMgPSBjYW1sX21ldGhvZF9jYWNoZVtjYWNoZWlkXTtcbiAgaWYgKG9mcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgLy8gTWFrZSBzdXJlIHRoZSBhcnJheSBpcyBub3Qgc3BhcnNlXG4gICAgZm9yICh2YXIgaSA9IGNhbWxfbWV0aG9kX2NhY2hlLmxlbmd0aDsgaSA8IGNhY2hlaWQ7IGkrKylcbiAgICAgIGNhbWxfbWV0aG9kX2NhY2hlW2ldID0gMDtcbiAgfSBlbHNlIGlmIChtZXRoc1tvZnNdID09PSB0YWcpIHtcbiAgICByZXR1cm4gbWV0aHNbb2ZzIC0gMV07XG4gIH1cbiAgdmFyIGxpID0gMywgaGkgPSBtZXRoc1sxXSAqIDIgKyAxLCBtaTtcbiAgd2hpbGUgKGxpIDwgaGkpIHtcbiAgICBtaSA9ICgobGkraGkpID4+IDEpIHwgMTtcbiAgICBpZiAodGFnIDwgbWV0aHNbbWkrMV0pIGhpID0gbWktMjtcbiAgICBlbHNlIGxpID0gbWk7XG4gIH1cbiAgY2FtbF9tZXRob2RfY2FjaGVbY2FjaGVpZF0gPSBsaSArIDE7XG4gIC8qIHJldHVybiAwIGlmIHRhZyBpcyBub3QgdGhlcmUgKi9cbiAgcmV0dXJuICh0YWcgPT0gbWV0aHNbbGkrMV0gPyBtZXRoc1tsaV0gOiAwKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9vb19sYXN0X2lkXG52YXIgY2FtbF9vb19sYXN0X2lkID0gMDtcblxuLy9Qcm92aWRlczogY2FtbF9zZXRfb29faWRcbi8vUmVxdWlyZXM6IGNhbWxfb29fbGFzdF9pZFxuZnVuY3Rpb24gY2FtbF9zZXRfb29faWQgKGIpIHtcbiAgYlsyXT1jYW1sX29vX2xhc3RfaWQrKztcbiAgcmV0dXJuIGI7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZnJlc2hfb29faWQgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfb29fbGFzdF9pZFxuZnVuY3Rpb24gY2FtbF9mcmVzaF9vb19pZCgpIHtcbiAgcmV0dXJuIGNhbWxfb29fbGFzdF9pZCsrO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX29ial9yYXdfZmllbGRcbmZ1bmN0aW9uIGNhbWxfb2JqX3Jhd19maWVsZChvLGkpIHsgcmV0dXJuIG9baSsxXSB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfb2JqX3NldF9yYXdfZmllbGRcbmZ1bmN0aW9uIGNhbWxfb2JqX3NldF9yYXdfZmllbGQobyxpLHYpIHsgcmV0dXJuIG9baSsxXSA9IHYgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX29ial9yZWFjaGFibGVfd29yZHNcbmZ1bmN0aW9uIGNhbWxfb2JqX3JlYWNoYWJsZV93b3JkcyhvKSB7IHJldHVybiAwOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfb2JqX2FkZF9vZmZzZXRcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbmZ1bmN0aW9uIGNhbWxfb2JqX2FkZF9vZmZzZXQodixvZmZzZXQpIHtcbiAgY2FtbF9mYWlsd2l0aChcIk9iai5hZGRfb2Zmc2V0IGlzIG5vdCBzdXBwb3J0ZWRcIik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfb2JqX3VwZGF0ZV90YWdcbmZ1bmN0aW9uIGNhbWxfb2JqX3VwZGF0ZV90YWcoYixvLG4pIHtcbiAgICBpZihiWzBdPT1vKSB7IGJbMF0gPSBuOyByZXR1cm4gMSB9XG4gICAgcmV0dXJuIDBcbn1cblxuLy9Qcm92aWRlczogY2FtbF9sYXp5X3VwZGF0ZV90b19mb3JjaW5nXG4vL1JlcXVpcmVzOiBjYW1sX29ial90YWcsIGNhbWxfb2JqX3VwZGF0ZV90YWcsIGNhbWxfbWxfZG9tYWluX3VuaXF1ZV90b2tlblxuZnVuY3Rpb24gY2FtbF9sYXp5X3VwZGF0ZV90b19mb3JjaW5nKG8pIHtcbiAgdmFyIHQgPSBjYW1sX29ial90YWcobyk7XG4gIGlmKHQgIT0gMjQ2ICYmIHQgIT0gMjUwICYmIHQgIT0gMjQ0KVxuICAgIHJldHVybiA0XG4gIGlmKGNhbWxfb2JqX3VwZGF0ZV90YWcobywgMjQ2LCAyNDQpKSB7XG4gICAgcmV0dXJuIDBcbiAgfSBlbHNlIHtcbiAgICB2YXIgZmllbGQwID0gb1sxXTtcbiAgICB0ID0gb1swXVxuICAgIGlmKHQgPT0gMjQ0KSB7XG4gICAgICBpZihmaWVsZDAgPT0gY2FtbF9tbF9kb21haW5fdW5pcXVlX3Rva2VuKDApKVxuICAgICAgICByZXR1cm4gMVxuICAgICAgZWxzZVxuICAgICAgICByZXR1cm4gMlxuICAgIH0gZWxzZSBpZiAodCA9PSAyNTApIHtcbiAgICAgIHJldHVybiAzO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBhc3NlcnQgdCA9IGxhenlfdGFnXG4gICAgICByZXR1cm4gMjtcbiAgICB9XG4gIH1cbn1cblxuLy9Qcm92aWRlczogY2FtbF9sYXp5X3VwZGF0ZV90b19mb3J3YXJkXG4vL1JlcXVpcmVzOiBjYW1sX29ial91cGRhdGVfdGFnXG4gIGZ1bmN0aW9uIGNhbWxfbGF6eV91cGRhdGVfdG9fZm9yd2FyZChvKSB7XG4gIGNhbWxfb2JqX3VwZGF0ZV90YWcobywyNDQsMjUwKTtcbiAgcmV0dXJuIDA7IC8vIHVuaXRcbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX2xhenlfcmVzZXRfdG9fbGF6eVxuLy9SZXF1aXJlczogY2FtbF9vYmpfdXBkYXRlX3RhZ1xuZnVuY3Rpb24gY2FtbF9sYXp5X3Jlc2V0X3RvX2xhenkobykge1xuICBjYW1sX29ial91cGRhdGVfdGFnKG8sMjQ0LDI0Nik7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2xhenlfcmVhZF9yZXN1bHRcbi8vUmVxdWlyZXM6IGNhbWxfb2JqX3RhZ1xuZnVuY3Rpb24gY2FtbF9sYXp5X3JlYWRfcmVzdWx0KG8pIHtcbiAgcmV0dXJuIChjYW1sX29ial90YWcobykgPT0gMjUwKT9vWzFdOm87XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9pc19jb250aW51YXRpb25fdGFnXG4vL1ZlcnNpb246IDwgNVxuZnVuY3Rpb24gY2FtbF9pc19jb250aW51YXRpb25fdGFnKHQpIHtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaXNfY29udGludWF0aW9uX3RhZ1xuLy9WZXJzaW9uOiA+PSA1XG5mdW5jdGlvbiBjYW1sX2lzX2NvbnRpbnVhdGlvbl90YWcodCkge1xuICByZXR1cm4gKHQgPT0gMjQ1KSA/IDEgOiAwO1xufVxuIiwiLy9Qcm92aWRlczogY2FtbF9kb21haW5fZGxzXG52YXIgY2FtbF9kb21haW5fZGxzID0gWzBdO1xuXG4vL1Byb3ZpZGVzOiBjYW1sX2RvbWFpbl9kbHNfc2V0XG4vL1JlcXVpcmVzOiBjYW1sX2RvbWFpbl9kbHNcbmZ1bmN0aW9uIGNhbWxfZG9tYWluX2Rsc19zZXQoYSkge1xuICBjYW1sX2RvbWFpbl9kbHMgPSBhO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2RvbWFpbl9kbHNfZ2V0XG4vL1JlcXVpcmVzOiBjYW1sX2RvbWFpbl9kbHNcbmZ1bmN0aW9uIGNhbWxfZG9tYWluX2Rsc19nZXQodW5pdCkge1xuICByZXR1cm4gY2FtbF9kb21haW5fZGxzO1xufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfYXRvbWljX2xvYWRcbmZ1bmN0aW9uIGNhbWxfYXRvbWljX2xvYWQocmVmKXtcbiAgcmV0dXJuIHJlZlsxXTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9hdG9taWNfY2FzXG5mdW5jdGlvbiBjYW1sX2F0b21pY19jYXMocmVmLG8sbikge1xuICBpZihyZWZbMV0gPT09IG8pe1xuICAgIHJlZlsxXSA9IG47XG4gICAgcmV0dXJuIDE7XG4gIH1cbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYXRvbWljX2ZldGNoX2FkZFxuZnVuY3Rpb24gY2FtbF9hdG9taWNfZmV0Y2hfYWRkKHJlZiwgaSkge1xuICB2YXIgb2xkID0gcmVmWzFdO1xuICByZWZbMV0gKz0gaTtcbiAgcmV0dXJuIG9sZDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9hdG9taWNfZXhjaGFuZ2VcbmZ1bmN0aW9uIGNhbWxfYXRvbWljX2V4Y2hhbmdlKHJlZiwgdikge1xuICB2YXIgciA9IHJlZlsxXTtcbiAgcmVmWzFdID0gdjtcbiAgcmV0dXJuIHI7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfZG9tYWluX3VuaXF1ZV90b2tlblxudmFyIGNhbWxfbWxfZG9tYWluX3VuaXF1ZV90b2tlbl8gPSBbMF1cbmZ1bmN0aW9uIGNhbWxfbWxfZG9tYWluX3VuaXF1ZV90b2tlbih1bml0KSB7XG4gIHJldHVybiBjYW1sX21sX2RvbWFpbl91bmlxdWVfdG9rZW5fXG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9tbF9kb21haW5fc2V0X25hbWVcbmZ1bmN0aW9uIGNhbWxfbWxfZG9tYWluX3NldF9uYW1lKF9uYW1lKSB7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3JlY29tbWVuZGVkX2RvbWFpbl9jb3VudFxuZnVuY3Rpb24gY2FtbF9yZWNvbW1lbmRlZF9kb21haW5fY291bnQodW5pdCkgeyByZXR1cm4gMSB9XG5cblxuLy9Qcm92aWRlczogY2FtbF9kb21haW5faWRcbnZhciBjYW1sX2RvbWFpbl9pZCA9IDA7XG5cbi8vUHJvdmlkZXM6IGNhbWxfZG9tYWluX3NwYXduXG4vL1JlcXVpcmVzOiBjYW1sX21sX211dGV4X3VubG9ja1xuLy9SZXF1aXJlczogY2FtbF9kb21haW5faWRcbi8vUmVxdWlyZXM6IGNhbWxfY2FsbGJhY2tcbnZhciBjYW1sX2RvbWFpbl9sYXRlc3RfaWR4ID0gMVxuZnVuY3Rpb24gY2FtbF9kb21haW5fc3Bhd24oZixtdXRleCl7XG4gICAgdmFyIGlkID0gY2FtbF9kb21haW5fbGF0ZXN0X2lkeCsrO1xuICAgIHZhciBvbGQgPSBjYW1sX2RvbWFpbl9pZDtcbiAgICBjYW1sX2RvbWFpbl9pZCA9IGlkO1xuICAgIGNhbWxfY2FsbGJhY2soZixbMF0pO1xuICAgIGNhbWxfZG9tYWluX2lkID0gb2xkO1xuICAgIGNhbWxfbWxfbXV0ZXhfdW5sb2NrKG11dGV4KTtcbiAgICByZXR1cm4gaWQ7XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9tbF9kb21haW5faWRcbi8vUmVxdWlyZXM6IGNhbWxfZG9tYWluX2lkXG5mdW5jdGlvbiBjYW1sX21sX2RvbWFpbl9pZCh1bml0KXtcbiAgICByZXR1cm4gY2FtbF9kb21haW5faWQ7XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9tbF9kb21haW5fY3B1X3JlbGF4XG5mdW5jdGlvbiBjYW1sX21sX2RvbWFpbl9jcHVfcmVsYXgodW5pdCl7XG4gICAgcmV0dXJuIDA7XG59XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vL1Byb3ZpZGVzOiBjYW1sX2NvbXBhcmVfdmFsX3RhZ1xuLy9SZXF1aXJlczogY2FtbF9pc19tbF9zdHJpbmcsIGNhbWxfaXNfbWxfYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfY29tcGFyZV92YWxfdGFnKGEpe1xuICBpZiAodHlwZW9mIGEgPT09IFwibnVtYmVyXCIpIHJldHVybiAxMDAwOyAvLyBpbnRfdGFnICh3ZSB1c2UgaXQgZm9yIGFsbCBudW1iZXJzKVxuICBlbHNlIGlmIChjYW1sX2lzX21sX2J5dGVzKGEpKSByZXR1cm4gMjUyOyAvLyBzdHJpbmdfdGFnXG4gIGVsc2UgaWYgKGNhbWxfaXNfbWxfc3RyaW5nKGEpKSByZXR1cm4gMTI1MjsgLy8gb2NhbWwgc3RyaW5nIChpZiBkaWZmZXJlbnQgZnJvbSBieXRlcylcbiAgZWxzZSBpZiAoYSBpbnN0YW5jZW9mIEFycmF5ICYmIGFbMF0gPT09IChhWzBdPj4+MCkgJiYgYVswXSA8PSAyNTUpIHtcbiAgICAvLyBMb29rIGxpa2UgYW4gb2NhbWwgYmxvY2tcbiAgICB2YXIgdGFnID0gYVswXSB8IDA7XG4gICAgLy8gaWdub3JlIGRvdWJsZV9hcnJheV90YWcgYmVjYXVzZSB3ZSBjYW5ub3QgYWNjdXJhdGVseSBzZXRcbiAgICAvLyB0aGlzIHRhZyB3aGVuIHdlIGNyZWF0ZSBhbiBhcnJheSBvZiBmbG9hdC5cbiAgICByZXR1cm4gKHRhZyA9PSAyNTQpPzA6dGFnXG4gIH1cbiAgZWxzZSBpZiAoYSBpbnN0YW5jZW9mIFN0cmluZykgcmV0dXJuIDEyNTIwOyAvLyBqYXZhc2NyaXB0IHN0cmluZywgbGlrZSBzdHJpbmdfdGFnICgyNTIpXG4gIGVsc2UgaWYgKHR5cGVvZiBhID09IFwic3RyaW5nXCIpIHJldHVybiAxMjUyMDsgLy8gamF2YXNjcmlwdCBzdHJpbmcsIGxpa2Ugc3RyaW5nX3RhZyAoMjUyKVxuICBlbHNlIGlmIChhIGluc3RhbmNlb2YgTnVtYmVyKSByZXR1cm4gMTAwMDsgLy8gaW50X3RhZyAod2UgdXNlIGl0IGZvciBhbGwgbnVtYmVycylcbiAgZWxzZSBpZiAoYSAmJiBhLmNhbWxfY3VzdG9tKSByZXR1cm4gMTI1NTsgLy8gbGlrZSBjdXN0b21fdGFnICgyNTUpXG4gIGVsc2UgaWYgKGEgJiYgYS5jb21wYXJlKSByZXR1cm4gMTI1NjsgLy8gbGlrZSBjdXN0b21fdGFnICgyNTUpXG4gIGVsc2UgaWYgKHR5cGVvZiBhID09IFwiZnVuY3Rpb25cIikgcmV0dXJuIDEyNDc7IC8vIGxpa2UgY2xvc3VyZV90YWcgKDI0NylcbiAgZWxzZSBpZiAodHlwZW9mIGEgPT0gXCJzeW1ib2xcIikgcmV0dXJuIDEyNTE7XG4gIHJldHVybiAxMDAxOyAvL291dF9vZl9oZWFwX3RhZ1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2NvbXBhcmVfdmFsX2dldF9jdXN0b21cbi8vUmVxdWlyZXM6IGNhbWxfY3VzdG9tX29wc1xuZnVuY3Rpb24gY2FtbF9jb21wYXJlX3ZhbF9nZXRfY3VzdG9tKGEpe1xuICByZXR1cm4gY2FtbF9jdXN0b21fb3BzW2EuY2FtbF9jdXN0b21dICYmIGNhbWxfY3VzdG9tX29wc1thLmNhbWxfY3VzdG9tXS5jb21wYXJlO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2NvbXBhcmVfdmFsX251bWJlcl9jdXN0b21cbi8vUmVxdWlyZXM6IGNhbWxfY29tcGFyZV92YWxfZ2V0X2N1c3RvbVxuZnVuY3Rpb24gY2FtbF9jb21wYXJlX3ZhbF9udW1iZXJfY3VzdG9tKG51bSwgY3VzdG9tLCBzd2FwLCB0b3RhbCkge1xuICB2YXIgY29tcCA9IGNhbWxfY29tcGFyZV92YWxfZ2V0X2N1c3RvbShjdXN0b20pO1xuICBpZihjb21wKSB7XG4gICAgdmFyIHggPSAoc3dhcCA+IDApP2NvbXAoY3VzdG9tLG51bSx0b3RhbCk6Y29tcChudW0sY3VzdG9tLHRvdGFsKTtcbiAgICBpZih0b3RhbCAmJiB4ICE9IHgpIHJldHVybiBzd2FwOyAvLyB0b3RhbCAmJiBuYW5cbiAgICBpZigreCAhPSAreCkgcmV0dXJuICt4OyAvLyBuYW5cbiAgICBpZigoeCB8IDApICE9IDApIHJldHVybiAoeCB8IDApOyAvLyAhbmFuXG4gIH1cbiAgcmV0dXJuIHN3YXBcbn1cblxuLy9Qcm92aWRlczogY2FtbF9jb21wYXJlX3ZhbCAoY29uc3QsIGNvbnN0LCBjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfaW50X2NvbXBhcmUsIGNhbWxfc3RyaW5nX2NvbXBhcmUsIGNhbWxfYnl0ZXNfY29tcGFyZVxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50LCBjYW1sX2NvbXBhcmVfdmFsX2dldF9jdXN0b20sIGNhbWxfY29tcGFyZV92YWxfdGFnXG4vL1JlcXVpcmVzOiBjYW1sX2NvbXBhcmVfdmFsX251bWJlcl9jdXN0b21cbi8vUmVxdWlyZXM6IGNhbWxfanNieXRlc19vZl9zdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfaXNfY29udGludWF0aW9uX3RhZ1xuZnVuY3Rpb24gY2FtbF9jb21wYXJlX3ZhbCAoYSwgYiwgdG90YWwpIHtcbiAgdmFyIHN0YWNrID0gW107XG4gIGZvcig7Oykge1xuICAgIGlmICghKHRvdGFsICYmIGEgPT09IGIpKSB7XG4gICAgICB2YXIgdGFnX2EgPSBjYW1sX2NvbXBhcmVfdmFsX3RhZyhhKTtcbiAgICAgIC8vIGZvcndhcmRfdGFnID9cbiAgICAgIGlmKHRhZ19hID09IDI1MCkgeyBhID0gYVsxXTsgY29udGludWUgfVxuXG4gICAgICB2YXIgdGFnX2IgPSBjYW1sX2NvbXBhcmVfdmFsX3RhZyhiKTtcbiAgICAgIC8vIGZvcndhcmRfdGFnID9cbiAgICAgIGlmKHRhZ19iID09IDI1MCkgeyBiID0gYlsxXTsgY29udGludWUgfVxuXG4gICAgICAvLyB0YWdzIGFyZSBkaWZmZXJlbnRcbiAgICAgIGlmKHRhZ19hICE9PSB0YWdfYikge1xuICAgICAgICBpZih0YWdfYSA9PSAxMDAwKSB7XG4gICAgICAgICAgaWYodGFnX2IgPT0gMTI1NSkgeyAvL2ltbWVkaWF0ZSBjYW4gY29tcGFyZSBhZ2FpbnN0IGN1c3RvbVxuICAgICAgICAgICAgcmV0dXJuIGNhbWxfY29tcGFyZV92YWxfbnVtYmVyX2N1c3RvbShhLCBiLCAtMSwgdG90YWwpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gLTFcbiAgICAgICAgfVxuICAgICAgICBpZih0YWdfYiA9PSAxMDAwKSB7XG4gICAgICAgICAgaWYodGFnX2EgPT0gMTI1NSkgeyAvL2ltbWVkaWF0ZSBjYW4gY29tcGFyZSBhZ2FpbnN0IGN1c3RvbVxuICAgICAgICAgICAgcmV0dXJuIGNhbWxfY29tcGFyZV92YWxfbnVtYmVyX2N1c3RvbShiLCBhLCAxLCB0b3RhbCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiAxXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICh0YWdfYSA8IHRhZ19iKT8tMToxO1xuICAgICAgfVxuICAgICAgc3dpdGNoKHRhZ19hKXtcbiAgICAgICAgLy8gMjQ2OiBMYXp5X3RhZyBoYW5kbGVkIGJlbGxvd1xuICAgICAgY2FzZSAyNDc6IC8vIENsb3N1cmVfdGFnXG4gICAgICAgIC8vIENhbm5vdCBoYXBwZW5cbiAgICAgICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiY29tcGFyZTogZnVuY3Rpb25hbCB2YWx1ZVwiKTtcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgMjQ4OiAvLyBPYmplY3RcbiAgICAgICAgdmFyIHggPSBjYW1sX2ludF9jb21wYXJlKGFbMl0sIGJbMl0pO1xuICAgICAgICBpZiAoeCAhPSAwKSByZXR1cm4gKHggfCAwKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDI0OTogLy8gSW5maXhcbiAgICAgICAgLy8gQ2Fubm90IGhhcHBlblxuICAgICAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJjb21wYXJlOiBmdW5jdGlvbmFsIHZhbHVlXCIpO1xuICAgICAgICBicmVha1xuICAgICAgY2FzZSAyNTA6IC8vIEZvcndhcmQgdGFnXG4gICAgICAgIC8vIENhbm5vdCBoYXBwZW4sIGhhbmRsZWQgYWJvdmVcbiAgICAgICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiZXF1YWw6IGdvdCBGb3J3YXJkX3RhZywgc2hvdWxkIG5vdCBoYXBwZW5cIik7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAyNTE6IC8vQWJzdHJhY3RcbiAgICAgICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiZXF1YWw6IGFic3RyYWN0IHZhbHVlXCIpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMjUyOiAvLyBPQ2FtbCBieXRlc1xuICAgICAgICBpZiAoYSAhPT0gYikge1xuICAgICAgICAgIHZhciB4ID0gY2FtbF9ieXRlc19jb21wYXJlKGEsIGIpO1xuICAgICAgICAgIGlmICh4ICE9IDApIHJldHVybiAoeCB8IDApO1xuICAgICAgICB9O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMjUzOiAvLyBEb3VibGVfdGFnXG4gICAgICAgIC8vIENhbm5vdCBoYXBwZW5cbiAgICAgICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiZXF1YWw6IGdvdCBEb3VibGVfdGFnLCBzaG91bGQgbm90IGhhcHBlblwiKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDI1NDogLy8gRG91YmxlX2FycmF5X3RhZ1xuICAgICAgICAvLyBDYW5ub3QgaGFwcGVuLCBoYW5kbGVkIGFib3ZlXG4gICAgICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcImVxdWFsOiBnb3QgRG91YmxlX2FycmF5X3RhZywgc2hvdWxkIG5vdCBoYXBwZW5cIik7XG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlIDI1NTogLy8gQ3VzdG9tX3RhZ1xuICAgICAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJlcXVhbDogZ290IEN1c3RvbV90YWcsIHNob3VsZCBub3QgaGFwcGVuXCIpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMTI0NzogLy8gRnVuY3Rpb25cbiAgICAgICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiY29tcGFyZTogZnVuY3Rpb25hbCB2YWx1ZVwiKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDEyNTU6IC8vIEN1c3RvbVxuICAgICAgICB2YXIgY29tcCA9IGNhbWxfY29tcGFyZV92YWxfZ2V0X2N1c3RvbShhKTtcbiAgICAgICAgaWYoY29tcCAhPSBjYW1sX2NvbXBhcmVfdmFsX2dldF9jdXN0b20oYikpe1xuICAgICAgICAgIHJldHVybiAoYS5jYW1sX2N1c3RvbTxiLmNhbWxfY3VzdG9tKT8tMToxO1xuICAgICAgICB9XG4gICAgICAgIGlmKCFjb21wKVxuICAgICAgICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcImNvbXBhcmU6IGFic3RyYWN0IHZhbHVlXCIpO1xuICAgICAgICB2YXIgeCA9IGNvbXAoYSxiLHRvdGFsKTtcbiAgICAgICAgaWYoeCAhPSB4KXsgLy8gUHJvdGVjdCBhZ2FpbnN0IGludmFsaWQgVU5PUkRFUkVEXG4gICAgICAgICAgcmV0dXJuIHRvdGFsPy0xOng7XG4gICAgICAgIH1cbiAgICAgICAgaWYoeCAhPT0gKHh8MCkpeyAvLyBQcm90ZWN0IGFnYWluc3QgaW52YWxpZCByZXR1cm4gdmFsdWVcbiAgICAgICAgICByZXR1cm4gLTFcbiAgICAgICAgfVxuICAgICAgICBpZiAoeCAhPSAwKSByZXR1cm4gKHggfCAwKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDEyNTY6IC8vIGNvbXBhcmUgZnVuY3Rpb25cbiAgICAgICAgdmFyIHggPSBhLmNvbXBhcmUoYix0b3RhbCk7XG4gICAgICAgIGlmKHggIT0geCkgeyAvLyBQcm90ZWN0IGFnYWluc3QgaW52YWxpZCBVTk9SREVSRURcbiAgICAgICAgICByZXR1cm4gdG90YWw/LTE6eDtcbiAgICAgICAgfVxuICAgICAgICBpZih4ICE9PSAoeHwwKSl7IC8vIFByb3RlY3QgYWdhaW5zdCBpbnZhbGlkIHJldHVybiB2YWx1ZVxuICAgICAgICAgIHJldHVybiAtMVxuICAgICAgICB9XG4gICAgICAgIGlmICh4ICE9IDApIHJldHVybiAoeCB8IDApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMTAwMDogLy8gTnVtYmVyXG4gICAgICAgIGEgPSArYTtcbiAgICAgICAgYiA9ICtiO1xuICAgICAgICBpZiAoYSA8IGIpIHJldHVybiAtMTtcbiAgICAgICAgaWYgKGEgPiBiKSByZXR1cm4gMTtcbiAgICAgICAgaWYgKGEgIT0gYikge1xuICAgICAgICAgIGlmICghdG90YWwpIHJldHVybiBOYU47XG4gICAgICAgICAgaWYgKGEgPT0gYSkgcmV0dXJuIDE7XG4gICAgICAgICAgaWYgKGIgPT0gYikgcmV0dXJuIC0xO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAxMDAxOiAvLyBUaGUgcmVzdFxuICAgICAgICAvLyBIZXJlIHdlIGNhbiBiZSBpbiB0aGUgZm9sbG93aW5nIGNhc2VzOlxuICAgICAgICAvLyAxLiBKYXZhU2NyaXB0IHByaW1pdGl2ZSB0eXBlc1xuICAgICAgICAvLyAyLiBKYXZhU2NyaXB0IG9iamVjdCB0aGF0IGNhbiBiZSBjb2VyY2VkIHRvIHByaW1pdGl2ZSB0eXBlc1xuICAgICAgICAvLyAzLiBKYXZhU2NyaXB0IG9iamVjdCB0aGFuIGNhbm5vdCBiZSBjb2VyY2VkIHRvIHByaW1pdGl2ZSB0eXBlc1xuICAgICAgICAvL1xuICAgICAgICAvLyAoMykgd2lsbCByYWlzZSBhIFtUeXBlRXJyb3JdXG4gICAgICAgIC8vICgyKSB3aWxsIGNvZXJjZSB0byBwcmltaXRpdmUgdHlwZXMgdXNpbmcgW3ZhbHVlT2ZdIG9yIFt0b1N0cmluZ11cbiAgICAgICAgLy8gKDIpIGFuZCAoMyksIGFmdGVyIGV2ZW50dWFsIGNvZXJjaW9uXG4gICAgICAgIC8vIC0gaWYgYSBhbmQgYiBhcmUgc3RyaW5ncywgYXBwbHkgbGV4aWNvZ3JhcGhpYyBjb21wYXJpc29uXG4gICAgICAgIC8vIC0gaWYgYSBvciBiIGFyZSBub3Qgc3RyaW5ncywgY29udmVydCBhIGFuZCBiIHRvIG51bWJlclxuICAgICAgICAvLyAgIGFuZCBhcHBseSBzdGFuZGFyZCBjb21wYXJpc29uXG4gICAgICAgIC8vXG4gICAgICAgIC8vIEV4Y2VwdGlvbjogYCE9YCB3aWxsIG5vdCBjb2VyY2UvY29udmVydCBpZiBib3RoIGEgYW5kIGIgYXJlIG9iamVjdHNcbiAgICAgICAgaWYgKGEgPCBiKSByZXR1cm4gLTE7XG4gICAgICAgIGlmIChhID4gYikgcmV0dXJuIDE7XG4gICAgICAgIGlmIChhICE9IGIpIHtcbiAgICAgICAgICBpZiAoIXRvdGFsKSByZXR1cm4gTmFOO1xuICAgICAgICAgIGlmIChhID09IGEpIHJldHVybiAxO1xuICAgICAgICAgIGlmIChiID09IGIpIHJldHVybiAtMTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMTI1MTogLy8gSmF2YVNjcmlwdCBTeW1ib2wsIG5vIG9yZGVyaW5nLlxuICAgICAgICBpZihhICE9PSBiKSB7XG4gICAgICAgICAgaWYgKCF0b3RhbCkgcmV0dXJuIE5hTjtcbiAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMTI1MjogLy8gb2NhbWwgc3RyaW5nc1xuICAgICAgICB2YXIgYSA9IGNhbWxfanNieXRlc19vZl9zdHJpbmcoYSk7XG4gICAgICAgIHZhciBiID0gY2FtbF9qc2J5dGVzX29mX3N0cmluZyhiKTtcbiAgICAgICAgaWYoYSAhPT0gYikge1xuICAgICAgICAgIGlmKGEgPCBiKSByZXR1cm4gLTE7XG4gICAgICAgICAgaWYoYSA+IGIpIHJldHVybiAxO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAxMjUyMDogLy8gamF2YXNjcmlwdCBzdHJpbmdzXG4gICAgICAgIHZhciBhID0gYS50b1N0cmluZygpO1xuICAgICAgICB2YXIgYiA9IGIudG9TdHJpbmcoKTtcbiAgICAgICAgaWYoYSAhPT0gYikge1xuICAgICAgICAgIGlmKGEgPCBiKSByZXR1cm4gLTE7XG4gICAgICAgICAgaWYoYSA+IGIpIHJldHVybiAxO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAyNDY6IC8vIExhenlfdGFnXG4gICAgICBjYXNlIDI1NDogLy8gRG91YmxlX2FycmF5XG4gICAgICBkZWZhdWx0OiAvLyBCbG9jayB3aXRoIG90aGVyIHRhZ1xuICAgICAgICBpZihjYW1sX2lzX2NvbnRpbnVhdGlvbl90YWcodGFnX2EpKSB7XG4gICAgICAgICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiY29tcGFyZTogY29udGludWF0aW9uIHZhbHVlXCIpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhLmxlbmd0aCAhPSBiLmxlbmd0aCkgcmV0dXJuIChhLmxlbmd0aCA8IGIubGVuZ3RoKT8tMToxO1xuICAgICAgICBpZiAoYS5sZW5ndGggPiAxKSBzdGFjay5wdXNoKGEsIGIsIDEpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHN0YWNrLmxlbmd0aCA9PSAwKSByZXR1cm4gMDtcbiAgICB2YXIgaSA9IHN0YWNrLnBvcCgpO1xuICAgIGIgPSBzdGFjay5wb3AoKTtcbiAgICBhID0gc3RhY2sucG9wKCk7XG4gICAgaWYgKGkgKyAxIDwgYS5sZW5ndGgpIHN0YWNrLnB1c2goYSwgYiwgaSArIDEpO1xuICAgIGEgPSBhW2ldO1xuICAgIGIgPSBiW2ldO1xuICB9XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2NvbXBhcmUgKGNvbnN0LCBjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfY29tcGFyZV92YWxcbmZ1bmN0aW9uIGNhbWxfY29tcGFyZSAoYSwgYikgeyByZXR1cm4gY2FtbF9jb21wYXJlX3ZhbCAoYSwgYiwgdHJ1ZSk7IH1cbi8vUHJvdmlkZXM6IGNhbWxfaW50X2NvbXBhcmUgbXV0YWJsZSAoY29uc3QsIGNvbnN0KVxuZnVuY3Rpb24gY2FtbF9pbnRfY29tcGFyZSAoYSwgYikge1xuICBpZiAoYSA8IGIpIHJldHVybiAoLTEpOyBpZiAoYSA9PSBiKSByZXR1cm4gMDsgcmV0dXJuIDE7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2VxdWFsIG11dGFibGUgKGNvbnN0LCBjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfY29tcGFyZV92YWxcbmZ1bmN0aW9uIGNhbWxfZXF1YWwgKHgsIHkpIHsgcmV0dXJuICsoY2FtbF9jb21wYXJlX3ZhbCh4LHksZmFsc2UpID09IDApOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX25vdGVxdWFsIG11dGFibGUgKGNvbnN0LCBjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfY29tcGFyZV92YWxcbmZ1bmN0aW9uIGNhbWxfbm90ZXF1YWwgKHgsIHkpIHsgcmV0dXJuICsoY2FtbF9jb21wYXJlX3ZhbCh4LHksZmFsc2UpICE9IDApOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2dyZWF0ZXJlcXVhbCBtdXRhYmxlIChjb25zdCwgY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2NvbXBhcmVfdmFsXG5mdW5jdGlvbiBjYW1sX2dyZWF0ZXJlcXVhbCAoeCwgeSkgeyByZXR1cm4gKyhjYW1sX2NvbXBhcmVfdmFsKHgseSxmYWxzZSkgPj0gMCk7IH1cbi8vUHJvdmlkZXM6IGNhbWxfZ3JlYXRlcnRoYW4gbXV0YWJsZSAoY29uc3QsIGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9jb21wYXJlX3ZhbFxuZnVuY3Rpb24gY2FtbF9ncmVhdGVydGhhbiAoeCwgeSkgeyByZXR1cm4gKyhjYW1sX2NvbXBhcmVfdmFsKHgseSxmYWxzZSkgPiAwKTsgfVxuLy9Qcm92aWRlczogY2FtbF9sZXNzZXF1YWwgbXV0YWJsZSAoY29uc3QsIGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9jb21wYXJlX3ZhbFxuZnVuY3Rpb24gY2FtbF9sZXNzZXF1YWwgKHgsIHkpIHsgcmV0dXJuICsoY2FtbF9jb21wYXJlX3ZhbCh4LHksZmFsc2UpIDw9IDApOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2xlc3N0aGFuIG11dGFibGUgKGNvbnN0LCBjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfY29tcGFyZV92YWxcbmZ1bmN0aW9uIGNhbWxfbGVzc3RoYW4gKHgsIHkpIHsgcmV0dXJuICsoY2FtbF9jb21wYXJlX3ZhbCh4LHksZmFsc2UpIDwgMCk7IH1cbiIsIi8vIEpzX29mX29jYW1sIGxpYnJhcnlcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vLyBDb3B5cmlnaHQgKEMpIDIwMTAgSsOpcsO0bWUgVm91aWxsb25cbi8vIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy8vLy8vLy8vLy8vLyBKc2xpYjogY29kZSBzcGVjaWZpYyB0byBKc19vZl9vY2FtbFxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX29uX2llIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2pzX29uX2llICgpIHtcbiAgdmFyIHVhID1cbiAgICAgIGdsb2JhbFRoaXMubmF2aWdhdG9yP2dsb2JhbFRoaXMubmF2aWdhdG9yLnVzZXJBZ2VudDpcIlwiO1xuICByZXR1cm4gdWEuaW5kZXhPZihcIk1TSUVcIikgIT0gLTEgJiYgdWEuaW5kZXhPZihcIk9wZXJhXCIpICE9IDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfaHRtbF9lc2NhcGUgY29uc3QgKGNvbnN0KVxudmFyIGNhbWxfanNfcmVnZXhwcyA9IHsgYW1wOi8mL2csIGx0Oi88L2csIHF1b3Q6L1xcXCIvZywgYWxsOi9bJjxcXFwiXS8gfTtcbmZ1bmN0aW9uIGNhbWxfanNfaHRtbF9lc2NhcGUgKHMpIHtcbiAgaWYgKCFjYW1sX2pzX3JlZ2V4cHMuYWxsLnRlc3QocykpIHJldHVybiBzO1xuICByZXR1cm4gcy5yZXBsYWNlKGNhbWxfanNfcmVnZXhwcy5hbXAsIFwiJmFtcDtcIilcbiAgICAucmVwbGFjZShjYW1sX2pzX3JlZ2V4cHMubHQsIFwiJmx0O1wiKVxuICAgIC5yZXBsYWNlKGNhbWxfanNfcmVnZXhwcy5xdW90LCBcIiZxdW90O1wiKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9qc19odG1sX2VudGl0aWVzXG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG5mdW5jdGlvbiBjYW1sX2pzX2h0bWxfZW50aXRpZXMocykge1xuICB2YXIgZW50aXR5ID0gL14mIz9bMC05YS16QS1aXSs7JC9cbiAgaWYocy5tYXRjaChlbnRpdHkpKVxuICB7XG4gICAgdmFyIHN0ciwgdGVtcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKTtcbiAgICB0ZW1wLmlubmVySFRNTD0gcztcbiAgICBzdHI9IHRlbXAudGV4dENvbnRlbnQgfHwgdGVtcC5pbm5lclRleHQ7XG4gICAgdGVtcD1udWxsO1xuICAgIHJldHVybiBzdHI7XG4gIH1cbiAgZWxzZSB7XG4gICAgY2FtbF9mYWlsd2l0aChcIkludmFsaWQgZW50aXR5IFwiICsgcyk7XG4gIH1cbn1cblxuLy9Qcm92aWRlczogY2FtbF9qc19nZXRfY29uc29sZSBjb25zdFxuZnVuY3Rpb24gY2FtbF9qc19nZXRfY29uc29sZSAoKSB7XG4gIHZhciBjID0gY29uc29sZTtcbiAgdmFyIG0gPSBbXCJsb2dcIiwgXCJkZWJ1Z1wiLCBcImluZm9cIiwgXCJ3YXJuXCIsIFwiZXJyb3JcIiwgXCJhc3NlcnRcIiwgXCJkaXJcIiwgXCJkaXJ4bWxcIixcbiAgICAgICAgICAgXCJ0cmFjZVwiLCBcImdyb3VwXCIsIFwiZ3JvdXBDb2xsYXBzZWRcIiwgXCJncm91cEVuZFwiLCBcInRpbWVcIiwgXCJ0aW1lRW5kXCJdO1xuICBmdW5jdGlvbiBmICgpIHt9XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbS5sZW5ndGg7IGkrKykgaWYgKCFjW21baV1dKSBjW21baV1dPWY7XG4gIHJldHVybiBjO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3htbGh0dHByZXF1ZXN0X2NyZWF0ZVxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuLy9XZWFrZGVmXG5mdW5jdGlvbiBjYW1sX3htbGh0dHByZXF1ZXN0X2NyZWF0ZSh1bml0KXtcbiAgaWYodHlwZW9mIGdsb2JhbFRoaXMuWE1MSHR0cFJlcXVlc3QgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgdHJ5IHsgcmV0dXJuIG5ldyBnbG9iYWxUaGlzLlhNTEh0dHBSZXF1ZXN0IH0gY2F0Y2ggKGUpIHsgfTtcbiAgfVxuICBpZih0eXBlb2YgZ2xvYmFsVGhpcy5hY3RpdmVYT2JqZWN0ICE9PSAndW5kZWZpbmVkJykge1xuICAgIHRyeSB7IHJldHVybiBuZXcgZ2xvYmFsVGhpcy5hY3RpdmVYT2JqZWN0KFwiTXN4bWwyLlhNTEhUVFBcIikgfSBjYXRjaChlKXsgfTtcbiAgICB0cnkgeyByZXR1cm4gbmV3IGdsb2JhbFRoaXMuYWN0aXZlWE9iamVjdChcIk1zeG1sMy5YTUxIVFRQXCIpIH0gY2F0Y2goZSl7IH07XG4gICAgdHJ5IHsgcmV0dXJuIG5ldyBnbG9iYWxUaGlzLmFjdGl2ZVhPYmplY3QoXCJNaWNyb3NvZnQuWE1MSFRUUFwiKSB9IGNhdGNoKGUpeyB9O1xuICB9XG4gIGNhbWxfZmFpbHdpdGgoXCJDYW5ub3QgY3JlYXRlIGEgWE1MSHR0cFJlcXVlc3RcIik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfZXJyb3Jfb2ZfZXhjZXB0aW9uXG5mdW5jdGlvbiBjYW1sX2pzX2Vycm9yX29mX2V4Y2VwdGlvbihleG4pIHtcbiAgaWYoZXhuLmpzX2Vycm9yKSB7IHJldHVybiBleG4uanNfZXJyb3I7IH1cbiAgcmV0dXJuIG51bGw7XG59XG4iLCIvLy8vLy8vLy8gQklHU1RSSU5HXG5cbi8vUHJvdmlkZXM6IGNhbWxfaGFzaF9taXhfYmlnc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX2hhc2hfbWl4X2J5dGVzX2FyclxuZnVuY3Rpb24gY2FtbF9oYXNoX21peF9iaWdzdHJpbmcoaCwgYnMpIHtcbiAgcmV0dXJuIGNhbWxfaGFzaF9taXhfYnl0ZXNfYXJyKGgsYnMuZGF0YSk7XG59XG5cbi8vUHJvdmlkZXM6IGJpZ3N0cmluZ190b19hcnJheV9idWZmZXIgbXV0YWJsZVxuZnVuY3Rpb24gYmlnc3RyaW5nX3RvX2FycmF5X2J1ZmZlcihicykge1xuICByZXR1cm4gYnMuZGF0YS5idWZmZXJcbn1cblxuLy9Qcm92aWRlczogYmlnc3RyaW5nX3RvX3R5cGVkX2FycmF5IG11dGFibGVcbmZ1bmN0aW9uIGJpZ3N0cmluZ190b190eXBlZF9hcnJheShicykge1xuICByZXR1cm4gYnMuZGF0YVxufVxuXG4vL1Byb3ZpZGVzOiBiaWdzdHJpbmdfb2ZfYXJyYXlfYnVmZmVyIG11dGFibGVcbi8vUmVxdWlyZXM6IGNhbWxfYmFfY3JlYXRlX3Vuc2FmZVxuZnVuY3Rpb24gYmlnc3RyaW5nX29mX2FycmF5X2J1ZmZlcihhYikge1xuICB2YXIgdGEgPSBuZXcgVWludDhBcnJheShhYik7XG4gIHJldHVybiBjYW1sX2JhX2NyZWF0ZV91bnNhZmUoMTIsIDAsIFt0YS5sZW5ndGhdLCB0YSk7XG59XG5cbi8vUHJvdmlkZXM6IGJpZ3N0cmluZ19vZl90eXBlZF9hcnJheSBtdXRhYmxlXG4vL1JlcXVpcmVzOiBjYW1sX2JhX2NyZWF0ZV91bnNhZmVcbmZ1bmN0aW9uIGJpZ3N0cmluZ19vZl90eXBlZF9hcnJheShiYSkge1xuICB2YXIgdGEgPSBuZXcgVWludDhBcnJheShiYS5idWZmZXIsIGJhLmJ5dGVPZmZzZXQsIGJhLmxlbmd0aCAqIGJhLkJZVEVTX1BFUl9FTEVNRU5UKTtcbiAgcmV0dXJuIGNhbWxfYmFfY3JlYXRlX3Vuc2FmZSgxMiwgMCwgW3RhLmxlbmd0aF0sIHRhKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iaWdzdHJpbmdfbWVtY21wXG4vL1JlcXVpcmVzOiBjYW1sX2JhX2dldF8xXG5mdW5jdGlvbiBjYW1sX2JpZ3N0cmluZ19tZW1jbXAoczEsIHBvczEsIHMyLCBwb3MyLCBsZW4pe1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgdmFyIGEgPSBjYW1sX2JhX2dldF8xKHMxLHBvczEgKyBpKTtcbiAgICB2YXIgYiA9IGNhbWxfYmFfZ2V0XzEoczIscG9zMiArIGkpO1xuICAgIGlmIChhIDwgYikgcmV0dXJuIC0xO1xuICAgIGlmIChhID4gYikgcmV0dXJuIDE7XG4gIH1cbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmlnc3RyaW5nX2JsaXRfYmFfdG9fYmFcbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudCwgY2FtbF9hcnJheV9ib3VuZF9lcnJvclxuZnVuY3Rpb24gY2FtbF9iaWdzdHJpbmdfYmxpdF9iYV90b19iYShiYTEsIHBvczEsIGJhMiwgcG9zMiwgbGVuKXtcbiAgaWYoMTIgIT0gYmExLmtpbmQpXG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiY2FtbF9iaWdzdHJpbmdfYmxpdF9iYV90b19iYToga2luZCBtaXNtYXRjaFwiKTtcbiAgaWYoMTIgIT0gYmEyLmtpbmQpXG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiY2FtbF9iaWdzdHJpbmdfYmxpdF9iYV90b19iYToga2luZCBtaXNtYXRjaFwiKTtcbiAgaWYobGVuID09IDApIHJldHVybiAwO1xuICB2YXIgb2ZzMSA9IGJhMS5vZmZzZXQocG9zMSk7XG4gIHZhciBvZnMyID0gYmEyLm9mZnNldChwb3MyKTtcbiAgaWYob2ZzMSArIGxlbiA+IGJhMS5kYXRhLmxlbmd0aCl7XG4gICAgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICB9XG4gIGlmKG9mczIgKyBsZW4gPiBiYTIuZGF0YS5sZW5ndGgpe1xuICAgIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgfVxuICB2YXIgc2xpY2UgPSBiYTEuZGF0YS5zdWJhcnJheShvZnMxLG9mczErbGVuKTtcbiAgYmEyLmRhdGEuc2V0KHNsaWNlLHBvczIpO1xuICByZXR1cm4gMFxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JpZ3N0cmluZ19ibGl0X3N0cmluZ190b19iYVxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50LCBjYW1sX2FycmF5X2JvdW5kX2Vycm9yLCBjYW1sX3VpbnQ4X2FycmF5X29mX3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9tbF9zdHJpbmdfbGVuZ3RoXG5mdW5jdGlvbiBjYW1sX2JpZ3N0cmluZ19ibGl0X3N0cmluZ190b19iYShzdHIxLCBwb3MxLCBiYTIsIHBvczIsIGxlbil7XG4gIGlmKDEyICE9IGJhMi5raW5kKVxuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcImNhbWxfYmlnc3RyaW5nX2JsaXRfc3RyaW5nX3RvX2JhOiBraW5kIG1pc21hdGNoXCIpO1xuICBpZihsZW4gPT0gMCkgcmV0dXJuIDA7XG4gIHZhciBvZnMyID0gYmEyLm9mZnNldChwb3MyKTtcbiAgaWYocG9zMSArIGxlbiA+IGNhbWxfbWxfc3RyaW5nX2xlbmd0aChzdHIxKSkge1xuICAgIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgfVxuICBpZihvZnMyICsgbGVuID4gYmEyLmRhdGEubGVuZ3RoKSB7XG4gICAgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICB9XG4gIHZhciBzbGljZSA9IGNhbWxfdWludDhfYXJyYXlfb2Zfc3RyaW5nKHN0cjEpLnNsaWNlKHBvczEscG9zMSArIGxlbik7XG4gIGJhMi5kYXRhLnNldChzbGljZSxvZnMyKTtcbiAgcmV0dXJuIDBcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iaWdzdHJpbmdfYmxpdF9ieXRlc190b19iYVxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50LCBjYW1sX2FycmF5X2JvdW5kX2Vycm9yLCBjYW1sX3VpbnQ4X2FycmF5X29mX2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX21sX2J5dGVzX2xlbmd0aFxuZnVuY3Rpb24gY2FtbF9iaWdzdHJpbmdfYmxpdF9ieXRlc190b19iYShzdHIxLCBwb3MxLCBiYTIsIHBvczIsIGxlbil7XG4gIGlmKDEyICE9IGJhMi5raW5kKVxuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcImNhbWxfYmlnc3RyaW5nX2JsaXRfc3RyaW5nX3RvX2JhOiBraW5kIG1pc21hdGNoXCIpO1xuICBpZihsZW4gPT0gMCkgcmV0dXJuIDA7XG4gIHZhciBvZnMyID0gYmEyLm9mZnNldChwb3MyKTtcbiAgaWYocG9zMSArIGxlbiA+IGNhbWxfbWxfYnl0ZXNfbGVuZ3RoKHN0cjEpKSB7XG4gICAgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICB9XG4gIGlmKG9mczIgKyBsZW4gPiBiYTIuZGF0YS5sZW5ndGgpIHtcbiAgICBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gIH1cbiAgdmFyIHNsaWNlID0gY2FtbF91aW50OF9hcnJheV9vZl9ieXRlcyhzdHIxKS5zbGljZShwb3MxLHBvczEgKyBsZW4pO1xuICBiYTIuZGF0YS5zZXQoc2xpY2Usb2ZzMik7XG4gIHJldHVybiAwXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmlnc3RyaW5nX2JsaXRfYmFfdG9fYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudCwgY2FtbF9hcnJheV9ib3VuZF9lcnJvclxuLy9SZXF1aXJlczogY2FtbF9ibGl0X2J5dGVzLCBjYW1sX2J5dGVzX29mX2FycmF5XG4vL1JlcXVpcmVzOiBjYW1sX21sX2J5dGVzX2xlbmd0aFxuZnVuY3Rpb24gY2FtbF9iaWdzdHJpbmdfYmxpdF9iYV90b19ieXRlcyhiYTEsIHBvczEsIGJ5dGVzMiwgcG9zMiwgbGVuKXtcbiAgaWYoMTIgIT0gYmExLmtpbmQpXG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiY2FtbF9iaWdzdHJpbmdfYmxpdF9zdHJpbmdfdG9fYmE6IGtpbmQgbWlzbWF0Y2hcIik7XG4gIGlmKGxlbiA9PSAwKSByZXR1cm4gMDtcbiAgdmFyIG9mczEgPSBiYTEub2Zmc2V0KHBvczEpO1xuICBpZihvZnMxICsgbGVuID4gYmExLmRhdGEubGVuZ3RoKXtcbiAgICBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gIH1cbiAgaWYocG9zMiArIGxlbiA+IGNhbWxfbWxfYnl0ZXNfbGVuZ3RoKGJ5dGVzMikpe1xuICAgIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgfVxuICB2YXIgc2xpY2UgPSBiYTEuZGF0YS5zbGljZShvZnMxLCBvZnMxK2xlbik7XG4gIGNhbWxfYmxpdF9ieXRlcyhjYW1sX2J5dGVzX29mX2FycmF5KHNsaWNlKSwgMCwgYnl0ZXMyLCBwb3MyLCBsZW4pO1xuICByZXR1cm4gMFxufVxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy8gQ29weXJpZ2h0IChDKSAyMDEwIErDqXLDtG1lIFZvdWlsbG9uXG4vLyBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3Rcbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vUHJvdmlkZXM6IGNhbWxfbWQ1X2NoYW5cbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2FycmF5XG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX2VuZF9vZl9maWxlLCBjYW1sX21sX2lucHV0X2Jsb2NrXG4vL1JlcXVpcmVzOiBjYW1sX01ENUluaXQsIGNhbWxfTUQ1VXBkYXRlLCBjYW1sX01ENUZpbmFsXG5mdW5jdGlvbiBjYW1sX21kNV9jaGFuKGNoYW5pZCx0b3JlYWQpe1xuICB2YXIgY3R4ID0gY2FtbF9NRDVJbml0KCk7XG4gIHZhciBidWZmZXIgPSBuZXcgVWludDhBcnJheSg0MDk2KTtcbiAgaWYodG9yZWFkIDwgMCl7XG4gICAgd2hpbGUodHJ1ZSl7XG4gICAgICB2YXIgcmVhZCA9IGNhbWxfbWxfaW5wdXRfYmxvY2soY2hhbmlkLGJ1ZmZlciwwLGJ1ZmZlci5sZW5ndGgpO1xuICAgICAgaWYocmVhZCA9PSAwKSBicmVhaztcbiAgICAgIGNhbWxfTUQ1VXBkYXRlKGN0eCxidWZmZXIuc3ViYXJyYXkoMCwgcmVhZCksIHJlYWQpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB3aGlsZSh0b3JlYWQgPiAwKSB7XG4gICAgICB2YXIgcmVhZCA9IGNhbWxfbWxfaW5wdXRfYmxvY2soY2hhbmlkLGJ1ZmZlciwwLCAodG9yZWFkID4gYnVmZmVyLmxlbmd0aCA/IGJ1ZmZlci5sZW5ndGggOiB0b3JlYWQpKTtcbiAgICAgIGlmKHJlYWQgPT0gMCkgY2FtbF9yYWlzZV9lbmRfb2ZfZmlsZSgpO1xuICAgICAgY2FtbF9NRDVVcGRhdGUoY3R4LGJ1ZmZlci5zdWJhcnJheSgwLCByZWFkKSwgcmVhZCk7XG4gICAgICB0b3JlYWQgLT0gcmVhZFxuICAgIH1cbiAgfVxuICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfYXJyYXkoY2FtbF9NRDVGaW5hbChjdHgpKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tZDVfc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX29mX3N0cmluZywgY2FtbF9tZDVfYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfbWQ1X3N0cmluZyhzLCBvZnMsIGxlbikge1xuICByZXR1cm4gY2FtbF9tZDVfYnl0ZXMoY2FtbF9ieXRlc19vZl9zdHJpbmcocyksb2ZzLGxlbik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfTUQ1VHJhbnNmb3JtXG52YXIgY2FtbF9NRDVUcmFuc2Zvcm0gPSAoZnVuY3Rpb24gKCkge1xuICBmdW5jdGlvbiBhZGQgKHgsIHkpIHsgcmV0dXJuICh4ICsgeSkgfCAwOyB9XG4gIGZ1bmN0aW9uIHh4KHEsYSxiLHgscyx0KSB7XG4gICAgYSA9IGFkZChhZGQoYSwgcSksIGFkZCh4LCB0KSk7XG4gICAgcmV0dXJuIGFkZCgoYSA8PCBzKSB8IChhID4+PiAoMzIgLSBzKSksIGIpO1xuICB9XG4gIGZ1bmN0aW9uIGZmKGEsYixjLGQseCxzLHQpIHtcbiAgICByZXR1cm4geHgoKGIgJiBjKSB8ICgofmIpICYgZCksIGEsIGIsIHgsIHMsIHQpO1xuICB9XG4gIGZ1bmN0aW9uIGdnKGEsYixjLGQseCxzLHQpIHtcbiAgICByZXR1cm4geHgoKGIgJiBkKSB8IChjICYgKH5kKSksIGEsIGIsIHgsIHMsIHQpO1xuICB9XG4gIGZ1bmN0aW9uIGhoKGEsYixjLGQseCxzLHQpIHsgcmV0dXJuIHh4KGIgXiBjIF4gZCwgYSwgYiwgeCwgcywgdCk7IH1cbiAgZnVuY3Rpb24gaWkoYSxiLGMsZCx4LHMsdCkgeyByZXR1cm4geHgoYyBeIChiIHwgKH5kKSksIGEsIGIsIHgsIHMsIHQpOyB9XG5cbiAgcmV0dXJuIGZ1bmN0aW9uICh3LCBidWZmZXIpIHtcbiAgICB2YXIgYSA9IHdbMF0sIGIgPSB3WzFdLCBjID0gd1syXSwgZCA9IHdbM107XG5cbiAgICBhID0gZmYoYSwgYiwgYywgZCwgYnVmZmVyWyAwXSwgNywgMHhENzZBQTQ3OCk7XG4gICAgZCA9IGZmKGQsIGEsIGIsIGMsIGJ1ZmZlclsgMV0sIDEyLCAweEU4QzdCNzU2KTtcbiAgICBjID0gZmYoYywgZCwgYSwgYiwgYnVmZmVyWyAyXSwgMTcsIDB4MjQyMDcwREIpO1xuICAgIGIgPSBmZihiLCBjLCBkLCBhLCBidWZmZXJbIDNdLCAyMiwgMHhDMUJEQ0VFRSk7XG4gICAgYSA9IGZmKGEsIGIsIGMsIGQsIGJ1ZmZlclsgNF0sIDcsIDB4RjU3QzBGQUYpO1xuICAgIGQgPSBmZihkLCBhLCBiLCBjLCBidWZmZXJbIDVdLCAxMiwgMHg0Nzg3QzYyQSk7XG4gICAgYyA9IGZmKGMsIGQsIGEsIGIsIGJ1ZmZlclsgNl0sIDE3LCAweEE4MzA0NjEzKTtcbiAgICBiID0gZmYoYiwgYywgZCwgYSwgYnVmZmVyWyA3XSwgMjIsIDB4RkQ0Njk1MDEpO1xuICAgIGEgPSBmZihhLCBiLCBjLCBkLCBidWZmZXJbIDhdLCA3LCAweDY5ODA5OEQ4KTtcbiAgICBkID0gZmYoZCwgYSwgYiwgYywgYnVmZmVyWyA5XSwgMTIsIDB4OEI0NEY3QUYpO1xuICAgIGMgPSBmZihjLCBkLCBhLCBiLCBidWZmZXJbMTBdLCAxNywgMHhGRkZGNUJCMSk7XG4gICAgYiA9IGZmKGIsIGMsIGQsIGEsIGJ1ZmZlclsxMV0sIDIyLCAweDg5NUNEN0JFKTtcbiAgICBhID0gZmYoYSwgYiwgYywgZCwgYnVmZmVyWzEyXSwgNywgMHg2QjkwMTEyMik7XG4gICAgZCA9IGZmKGQsIGEsIGIsIGMsIGJ1ZmZlclsxM10sIDEyLCAweEZEOTg3MTkzKTtcbiAgICBjID0gZmYoYywgZCwgYSwgYiwgYnVmZmVyWzE0XSwgMTcsIDB4QTY3OTQzOEUpO1xuICAgIGIgPSBmZihiLCBjLCBkLCBhLCBidWZmZXJbMTVdLCAyMiwgMHg0OUI0MDgyMSk7XG5cbiAgICBhID0gZ2coYSwgYiwgYywgZCwgYnVmZmVyWyAxXSwgNSwgMHhGNjFFMjU2Mik7XG4gICAgZCA9IGdnKGQsIGEsIGIsIGMsIGJ1ZmZlclsgNl0sIDksIDB4QzA0MEIzNDApO1xuICAgIGMgPSBnZyhjLCBkLCBhLCBiLCBidWZmZXJbMTFdLCAxNCwgMHgyNjVFNUE1MSk7XG4gICAgYiA9IGdnKGIsIGMsIGQsIGEsIGJ1ZmZlclsgMF0sIDIwLCAweEU5QjZDN0FBKTtcbiAgICBhID0gZ2coYSwgYiwgYywgZCwgYnVmZmVyWyA1XSwgNSwgMHhENjJGMTA1RCk7XG4gICAgZCA9IGdnKGQsIGEsIGIsIGMsIGJ1ZmZlclsxMF0sIDksIDB4MDI0NDE0NTMpO1xuICAgIGMgPSBnZyhjLCBkLCBhLCBiLCBidWZmZXJbMTVdLCAxNCwgMHhEOEExRTY4MSk7XG4gICAgYiA9IGdnKGIsIGMsIGQsIGEsIGJ1ZmZlclsgNF0sIDIwLCAweEU3RDNGQkM4KTtcbiAgICBhID0gZ2coYSwgYiwgYywgZCwgYnVmZmVyWyA5XSwgNSwgMHgyMUUxQ0RFNik7XG4gICAgZCA9IGdnKGQsIGEsIGIsIGMsIGJ1ZmZlclsxNF0sIDksIDB4QzMzNzA3RDYpO1xuICAgIGMgPSBnZyhjLCBkLCBhLCBiLCBidWZmZXJbIDNdLCAxNCwgMHhGNEQ1MEQ4Nyk7XG4gICAgYiA9IGdnKGIsIGMsIGQsIGEsIGJ1ZmZlclsgOF0sIDIwLCAweDQ1NUExNEVEKTtcbiAgICBhID0gZ2coYSwgYiwgYywgZCwgYnVmZmVyWzEzXSwgNSwgMHhBOUUzRTkwNSk7XG4gICAgZCA9IGdnKGQsIGEsIGIsIGMsIGJ1ZmZlclsgMl0sIDksIDB4RkNFRkEzRjgpO1xuICAgIGMgPSBnZyhjLCBkLCBhLCBiLCBidWZmZXJbIDddLCAxNCwgMHg2NzZGMDJEOSk7XG4gICAgYiA9IGdnKGIsIGMsIGQsIGEsIGJ1ZmZlclsxMl0sIDIwLCAweDhEMkE0QzhBKTtcblxuICAgIGEgPSBoaChhLCBiLCBjLCBkLCBidWZmZXJbIDVdLCA0LCAweEZGRkEzOTQyKTtcbiAgICBkID0gaGgoZCwgYSwgYiwgYywgYnVmZmVyWyA4XSwgMTEsIDB4ODc3MUY2ODEpO1xuICAgIGMgPSBoaChjLCBkLCBhLCBiLCBidWZmZXJbMTFdLCAxNiwgMHg2RDlENjEyMik7XG4gICAgYiA9IGhoKGIsIGMsIGQsIGEsIGJ1ZmZlclsxNF0sIDIzLCAweEZERTUzODBDKTtcbiAgICBhID0gaGgoYSwgYiwgYywgZCwgYnVmZmVyWyAxXSwgNCwgMHhBNEJFRUE0NCk7XG4gICAgZCA9IGhoKGQsIGEsIGIsIGMsIGJ1ZmZlclsgNF0sIDExLCAweDRCREVDRkE5KTtcbiAgICBjID0gaGgoYywgZCwgYSwgYiwgYnVmZmVyWyA3XSwgMTYsIDB4RjZCQjRCNjApO1xuICAgIGIgPSBoaChiLCBjLCBkLCBhLCBidWZmZXJbMTBdLCAyMywgMHhCRUJGQkM3MCk7XG4gICAgYSA9IGhoKGEsIGIsIGMsIGQsIGJ1ZmZlclsxM10sIDQsIDB4Mjg5QjdFQzYpO1xuICAgIGQgPSBoaChkLCBhLCBiLCBjLCBidWZmZXJbIDBdLCAxMSwgMHhFQUExMjdGQSk7XG4gICAgYyA9IGhoKGMsIGQsIGEsIGIsIGJ1ZmZlclsgM10sIDE2LCAweEQ0RUYzMDg1KTtcbiAgICBiID0gaGgoYiwgYywgZCwgYSwgYnVmZmVyWyA2XSwgMjMsIDB4MDQ4ODFEMDUpO1xuICAgIGEgPSBoaChhLCBiLCBjLCBkLCBidWZmZXJbIDldLCA0LCAweEQ5RDREMDM5KTtcbiAgICBkID0gaGgoZCwgYSwgYiwgYywgYnVmZmVyWzEyXSwgMTEsIDB4RTZEQjk5RTUpO1xuICAgIGMgPSBoaChjLCBkLCBhLCBiLCBidWZmZXJbMTVdLCAxNiwgMHgxRkEyN0NGOCk7XG4gICAgYiA9IGhoKGIsIGMsIGQsIGEsIGJ1ZmZlclsgMl0sIDIzLCAweEM0QUM1NjY1KTtcblxuICAgIGEgPSBpaShhLCBiLCBjLCBkLCBidWZmZXJbIDBdLCA2LCAweEY0MjkyMjQ0KTtcbiAgICBkID0gaWkoZCwgYSwgYiwgYywgYnVmZmVyWyA3XSwgMTAsIDB4NDMyQUZGOTcpO1xuICAgIGMgPSBpaShjLCBkLCBhLCBiLCBidWZmZXJbMTRdLCAxNSwgMHhBQjk0MjNBNyk7XG4gICAgYiA9IGlpKGIsIGMsIGQsIGEsIGJ1ZmZlclsgNV0sIDIxLCAweEZDOTNBMDM5KTtcbiAgICBhID0gaWkoYSwgYiwgYywgZCwgYnVmZmVyWzEyXSwgNiwgMHg2NTVCNTlDMyk7XG4gICAgZCA9IGlpKGQsIGEsIGIsIGMsIGJ1ZmZlclsgM10sIDEwLCAweDhGMENDQzkyKTtcbiAgICBjID0gaWkoYywgZCwgYSwgYiwgYnVmZmVyWzEwXSwgMTUsIDB4RkZFRkY0N0QpO1xuICAgIGIgPSBpaShiLCBjLCBkLCBhLCBidWZmZXJbIDFdLCAyMSwgMHg4NTg0NUREMSk7XG4gICAgYSA9IGlpKGEsIGIsIGMsIGQsIGJ1ZmZlclsgOF0sIDYsIDB4NkZBODdFNEYpO1xuICAgIGQgPSBpaShkLCBhLCBiLCBjLCBidWZmZXJbMTVdLCAxMCwgMHhGRTJDRTZFMCk7XG4gICAgYyA9IGlpKGMsIGQsIGEsIGIsIGJ1ZmZlclsgNl0sIDE1LCAweEEzMDE0MzE0KTtcbiAgICBiID0gaWkoYiwgYywgZCwgYSwgYnVmZmVyWzEzXSwgMjEsIDB4NEUwODExQTEpO1xuICAgIGEgPSBpaShhLCBiLCBjLCBkLCBidWZmZXJbIDRdLCA2LCAweEY3NTM3RTgyKTtcbiAgICBkID0gaWkoZCwgYSwgYiwgYywgYnVmZmVyWzExXSwgMTAsIDB4QkQzQUYyMzUpO1xuICAgIGMgPSBpaShjLCBkLCBhLCBiLCBidWZmZXJbIDJdLCAxNSwgMHgyQUQ3RDJCQik7XG4gICAgYiA9IGlpKGIsIGMsIGQsIGEsIGJ1ZmZlclsgOV0sIDIxLCAweEVCODZEMzkxKTtcblxuICAgIHdbMF0gPSBhZGQoYSwgd1swXSk7XG4gICAgd1sxXSA9IGFkZChiLCB3WzFdKTtcbiAgICB3WzJdID0gYWRkKGMsIHdbMl0pO1xuICAgIHdbM10gPSBhZGQoZCwgd1szXSk7XG4gIH19KSgpXG5cbi8vUHJvdmlkZXM6IGNhbWxfTUQ1SW5pdFxuZnVuY3Rpb24gY2FtbF9NRDVJbml0KCkge1xuICB2YXIgYnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKDY0KTtcbiAgdmFyIGIzMiA9IG5ldyBVaW50MzJBcnJheShidWZmZXIpO1xuICB2YXIgYjggPSBuZXcgVWludDhBcnJheShidWZmZXIpO1xuICByZXR1cm4ge2xlbjowLFxuICAgICAgICAgIHc6bmV3IFVpbnQzMkFycmF5KFsweDY3NDUyMzAxLCAweEVGQ0RBQjg5LCAweDk4QkFEQ0ZFLCAweDEwMzI1NDc2XSksXG4gICAgICAgICAgYjMyOmIzMixcbiAgICAgICAgICBiODpiOH1cbn1cblxuLy9Qcm92aWRlczogY2FtbF9NRDVVcGRhdGVcbi8vUmVxdWlyZXM6IGNhbWxfTUQ1VHJhbnNmb3JtXG5mdW5jdGlvbiBjYW1sX01ENVVwZGF0ZShjdHgsIGlucHV0LCBpbnB1dF9sZW4pe1xuICB2YXIgaW5fYnVmID0gY3R4LmxlbiAmIDB4M2Y7XG4gIHZhciBpbnB1dF9wb3MgPSAwO1xuICBjdHgubGVuICs9IGlucHV0X2xlbjtcbiAgaWYoaW5fYnVmKXtcbiAgICB2YXIgbWlzc2luZyA9IDY0IC0gaW5fYnVmO1xuICAgIGlmKGlucHV0X2xlbiA8IG1pc3NpbmcpIHtcbiAgICAgIGN0eC5iOC5zZXQoaW5wdXQuc3ViYXJyYXkoMCxpbnB1dF9sZW4pLGluX2J1Zik7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgY3R4LmI4LnNldChpbnB1dC5zdWJhcnJheSgwLG1pc3NpbmcpLGluX2J1Zik7XG4gICAgY2FtbF9NRDVUcmFuc2Zvcm0oY3R4LncsIGN0eC5iMzIpO1xuICAgIGlucHV0X2xlbiAtPSBtaXNzaW5nO1xuICAgIGlucHV0X3BvcyArPSBtaXNzaW5nO1xuICB9XG4gIHdoaWxlKGlucHV0X2xlbiA+PSA2NCl7XG4gICAgY3R4LmI4LnNldChpbnB1dC5zdWJhcnJheShpbnB1dF9wb3MsaW5wdXRfcG9zICsgNjQpLCAwKTtcbiAgICBjYW1sX01ENVRyYW5zZm9ybShjdHgudywgY3R4LmIzMik7XG4gICAgaW5wdXRfbGVuIC09IDY0O1xuICAgIGlucHV0X3BvcyArPSA2NDtcbiAgfVxuICBpZihpbnB1dF9sZW4pXG4gICAgY3R4LmI4LnNldChpbnB1dC5zdWJhcnJheShpbnB1dF9wb3MsaW5wdXRfcG9zICsgaW5wdXRfbGVuKSwgMCk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfTUQ1RmluYWxcbi8vUmVxdWlyZXM6IGNhbWxfTUQ1VHJhbnNmb3JtXG5mdW5jdGlvbiBjYW1sX01ENUZpbmFsKGN0eCl7XG4gIHZhciBpbl9idWYgPSBjdHgubGVuICYgMHgzZjtcbiAgY3R4LmI4W2luX2J1Zl0gPSAweDgwO1xuICBpbl9idWYgKys7XG4gIGlmKGluX2J1ZiA+IDU2KSB7XG4gICAgZm9yKHZhciBqID0gaW5fYnVmOyBqIDwgNjQ7IGorKyl7XG4gICAgICBjdHguYjhbal0gPSAwO1xuICAgIH1cbiAgICBjYW1sX01ENVRyYW5zZm9ybShjdHgudywgY3R4LmIzMik7XG4gICAgZm9yKHZhciBqID0gMDsgaiA8IDU2OyBqKyspe1xuICAgICAgY3R4LmI4W2pdID0gMDtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgZm9yKHZhciBqID0gaW5fYnVmOyBqIDwgNTY7IGorKyl7XG4gICAgICBjdHguYjhbal0gPSAwO1xuICAgIH1cbiAgfVxuICBjdHguYjMyWzE0XSA9IGN0eC5sZW4gPDwgMztcbiAgY3R4LmIzMlsxNV0gPSAoY3R4LmxlbiA+PiAyOSkgJiAweDFGRkZGRkZGO1xuICBjYW1sX01ENVRyYW5zZm9ybShjdHgudywgY3R4LmIzMik7XG4gIHZhciB0ID0gbmV3IFVpbnQ4QXJyYXkoMTYpO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IDQ7IGkrKylcbiAgICBmb3IgKHZhciBqID0gMDsgaiA8IDQ7IGorKylcbiAgICAgIHRbaSAqIDQgKyBqXSA9IChjdHgud1tpXSA+PiAoOCAqIGopKSAmIDB4RkY7XG4gIHJldHVybiB0O1xufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfbWQ1X2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX3VpbnQ4X2FycmF5X29mX2J5dGVzLCBjYW1sX3N0cmluZ19vZl9hcnJheVxuLy9SZXF1aXJlczogY2FtbF9NRDVJbml0LCBjYW1sX01ENVVwZGF0ZSwgY2FtbF9NRDVGaW5hbFxuZnVuY3Rpb24gY2FtbF9tZDVfYnl0ZXMocywgb2ZzLCBsZW4pIHtcbiAgdmFyIGN0eCA9IGNhbWxfTUQ1SW5pdCgpO1xuICB2YXIgYSA9IGNhbWxfdWludDhfYXJyYXlfb2ZfYnl0ZXMocyk7XG4gIGNhbWxfTUQ1VXBkYXRlKGN0eCxhLnN1YmFycmF5KG9mcywgb2ZzICsgbGVuKSwgbGVuKTtcbiAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2FycmF5KGNhbWxfTUQ1RmluYWwoY3R4KSk7XG59XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vLyBDb3B5cmlnaHQgKEMpIDIwMjAgLSBIdWdvIEhldXphcmRcbi8vIENvcHlyaWdodCAoQykgMjAyMCAtIFNoYWNoYXIgSXR6aGFreVxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy8gQmFzZWQgb24gaHR0cHM6Ly9naXRodWIuY29tL29jYW1sL29jYW1sL2Jsb2IvNC4wNy9vdGhlcmxpYnMvc3RyL3N0cnN0dWJzLmNcbi8vIENvcGllZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9qc2NvcS9qc2NvcS9ibG9iL3Y4LjExL2NvcS1qcy9qc19zdHViL3N0ci5qc1xuXG4vL1Byb3ZpZGVzOiByZV9tYXRjaFxuLy9SZXF1aXJlczogY2FtbF9qc2J5dGVzX29mX3N0cmluZywgY2FtbF9qc19mcm9tX2FycmF5LCBjYW1sX3VpbnQ4X2FycmF5X29mX3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfZ2V0XG5cbnZhciByZV9tYXRjaCA9IGZ1bmN0aW9uKCl7XG4gIHZhciByZV93b3JkX2xldHRlcnMgPSBbXG4gICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgICAgICAgLyogMHgwMC0weDFGOiBub25lICovXG4gICAgMHgwMCwgMHgwMCwgMHhGRiwgMHgwMywgICAgICAgLyogMHgyMC0weDNGOiBkaWdpdHMgMC05ICovXG4gICAgMHhGRSwgMHhGRiwgMHhGRiwgMHg4NywgICAgICAgLyogMHg0MC0weDVGOiBBIHRvIFosIF8gKi9cbiAgICAweEZFLCAweEZGLCAweEZGLCAweDA3LCAgICAgICAvKiAweDYwLTB4N0Y6IGEgdG8geiAqL1xuICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAgICAgIC8qIDB4ODAtMHg5Rjogbm9uZSAqL1xuICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAgICAgIC8qIDB4QTAtMHhCRjogbm9uZSAqL1xuICAgIDB4RkYsIDB4RkYsIDB4N0YsIDB4RkYsICAgICAgIC8qIDB4QzAtMHhERjogTGF0aW4tMSBhY2NlbnRlZCB1cHBlcmNhc2UgKi9cbiAgICAweEZGLCAweEZGLCAweDdGLCAweEZGICAgICAgICAvKiAweEUwLTB4RkY6IExhdGluLTEgYWNjZW50ZWQgbG93ZXJjYXNlICovXG4gIF07XG5cbiAgdmFyIG9wY29kZXMgPSB7XG4gICAgQ0hBUjogMCwgQ0hBUk5PUk06IDEsIFNUUklORzogMiwgU1RSSU5HTk9STTogMywgQ0hBUkNMQVNTOiA0LFxuICAgIEJPTDogNSwgRU9MOiA2LCBXT1JEQk9VTkRBUlk6IDcsXG4gICAgQkVHR1JPVVA6IDgsIEVOREdST1VQOiA5LCBSRUZHUk9VUDogMTAsXG4gICAgQUNDRVBUOiAxMSxcbiAgICBTSU1QTEVPUFQ6IDEyLCBTSU1QTEVTVEFSOiAxMywgU0lNUExFUExVUzogMTQsXG4gICAgR09UTzogMTUsIFBVU0hCQUNLOiAxNiwgU0VUTUFSSzogMTcsXG4gICAgQ0hFQ0tQUk9HUkVTUzogMThcbiAgfTtcblxuICBmdW5jdGlvbiBpc193b3JkX2xldHRlcihjKSB7XG4gICAgcmV0dXJuIChyZV93b3JkX2xldHRlcnNbICAoYyA+PiAzKV0gPj4gKGMgJiA3KSkgJiAxO1xuICB9XG5cbiAgZnVuY3Rpb24gaW5fYml0c2V0KHMsaSkge1xuICAgIHJldHVybiAoY2FtbF9zdHJpbmdfZ2V0KHMsKGkgPj4gMykpID4+IChpICYgNykpICYgMTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlX21hdGNoX2ltcGwocmUsIHMsIHBvcywgcGFydGlhbCkge1xuXG4gICAgdmFyIHByb2cgICAgICAgICAgPSBjYW1sX2pzX2Zyb21fYXJyYXkocmVbMV0pLFxuICAgICAgICBjcG9vbCAgICAgICAgID0gY2FtbF9qc19mcm9tX2FycmF5KHJlWzJdKSxcbiAgICAgICAgbm9ybXRhYmxlICAgICA9IGNhbWxfanNieXRlc19vZl9zdHJpbmcocmVbM10pLFxuICAgICAgICBudW1ncm91cHMgICAgID0gcmVbNF0gfCAwLFxuICAgICAgICBudW1yZWdpc3RlcnMgID0gcmVbNV0gfCAwLFxuICAgICAgICBzdGFydGNoYXJzICAgID0gcmVbNl0gfCAwO1xuXG4gICAgdmFyIHMgPSBjYW1sX3VpbnQ4X2FycmF5X29mX3N0cmluZyhzKTtcblxuICAgIHZhciBwYyA9IDAsXG4gICAgICAgIHF1aXQgPSBmYWxzZSxcbiAgICAgICAgc3RhY2sgPSBbXSxcbiAgICAgICAgZ3JvdXBzID0gbmV3IEFycmF5KG51bWdyb3VwcyksXG4gICAgICAgIHJlX3JlZ2lzdGVyID0gbmV3IEFycmF5KG51bXJlZ2lzdGVycyk7XG5cbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgZ3JvdXBzLmxlbmd0aDsgaSsrKXtcbiAgICAgIGdyb3Vwc1tpXSA9IHtzdGFydDogLTEsIGVuZDotMX1cbiAgICB9XG4gICAgZ3JvdXBzWzBdLnN0YXJ0ID0gcG9zO1xuXG4gICAgdmFyIGJhY2t0cmFjayA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHdoaWxlIChzdGFjay5sZW5ndGgpIHtcbiAgICAgICAgdmFyIGl0ZW0gPSBzdGFjay5wb3AoKTtcbiAgICAgICAgaWYgKGl0ZW0udW5kbykge1xuICAgICAgICAgIGl0ZW0udW5kby5vYmpbaXRlbS51bmRvLnByb3BdID0gaXRlbS51bmRvLnZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYoaXRlbS5wb3MpIHtcbiAgICAgICAgICBwYyA9IGl0ZW0ucG9zLnBjO1xuICAgICAgICAgIHBvcyA9IGl0ZW0ucG9zLnR4dDtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHF1aXQgPSB0cnVlO1xuICAgIH07XG5cbiAgICB2YXIgcHVzaCA9IGZ1bmN0aW9uKGl0ZW0pIHsgc3RhY2sucHVzaChpdGVtKTsgfTtcblxuICAgIHZhciBhY2NlcHQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBncm91cHNbMF0uZW5kID0gcG9zO1xuICAgICAgdmFyIHJlc3VsdCA9IG5ldyBBcnJheSgxICsgZ3JvdXBzLmxlbmd0aCoyKTtcbiAgICAgIHJlc3VsdFswXSA9IDA7IC8vIHRhZ1xuICAgICAgZm9yKHZhciBpID0gMDsgaSA8IGdyb3Vwcy5sZW5ndGg7IGkrKyl7XG4gICAgICAgIHZhciBnID0gZ3JvdXBzW2ldO1xuICAgICAgICBpZihnLnN0YXJ0IDwgMCB8fCBnLmVuZCA8IDApIHtcbiAgICAgICAgICBnLnN0YXJ0ID0gZy5lbmQgPSAtMTtcbiAgICAgICAgfVxuICAgICAgICByZXN1bHRbMippICsgMSBdID0gZy5zdGFydDtcbiAgICAgICAgcmVzdWx0WzIqaSArIDEgKyAxIF0gPSBnLmVuZDtcbiAgICAgIH07XG4gICAgICByZXR1cm4gcmVzdWx0XG4gICAgfTtcblxuICAgIHZhciBwcmVmaXhfbWF0Y2ggPSBmdW5jdGlvbiAoKSB7XG4gICAgICBpZihwYXJ0aWFsKSByZXR1cm4gYWNjZXB0ICgpO1xuICAgICAgZWxzZSBiYWNrdHJhY2sgKCk7XG4gICAgfVxuXG4gICAgLyogTWFpbiBERkEgaW50ZXJwcmV0ZXIgbG9vcCAqL1xuICAgIHdoaWxlICghcXVpdCkge1xuICAgICAgdmFyIG9wID0gcHJvZ1twY10gJiAweGZmLFxuICAgICAgICAgIHNhcmcgPSBwcm9nW3BjXSA+PiA4LFxuICAgICAgICAgIHVhcmcgPSBzYXJnICYgMHhmZixcbiAgICAgICAgICBjID0gc1twb3NdLFxuICAgICAgICAgIGdyb3VwO1xuXG4gICAgICBwYysrO1xuXG4gICAgICBzd2l0Y2ggKG9wKSB7XG4gICAgICBjYXNlIG9wY29kZXMuQ0hBUjpcbiAgICAgICAgaWYocG9zID09PSBzLmxlbmd0aCkge3ByZWZpeF9tYXRjaCAoKTsgYnJlYWt9O1xuICAgICAgICBpZiAoYyA9PT0gdWFyZykgcG9zKys7XG4gICAgICAgIGVsc2UgYmFja3RyYWNrKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBvcGNvZGVzLkNIQVJOT1JNOlxuICAgICAgICBpZihwb3MgPT09IHMubGVuZ3RoKSB7cHJlZml4X21hdGNoICgpOyBicmVha307XG4gICAgICAgIGlmIChub3JtdGFibGUuY2hhckNvZGVBdChjKSA9PT0gdWFyZykgcG9zKys7XG4gICAgICAgIGVsc2UgYmFja3RyYWNrKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBvcGNvZGVzLlNUUklORzpcbiAgICAgICAgZm9yICh2YXIgYXJnID0gY2FtbF9qc2J5dGVzX29mX3N0cmluZyhjcG9vbFt1YXJnXSksIGkgPSAwOyBpIDwgYXJnLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgaWYocG9zID09PSBzLmxlbmd0aCkge3ByZWZpeF9tYXRjaCAoKTsgYnJlYWt9O1xuICAgICAgICAgIGlmIChjID09PSBhcmcuY2hhckNvZGVBdChpKSlcbiAgICAgICAgICAgIGMgPSBzWysrcG9zXTtcbiAgICAgICAgICBlbHNlIHsgYmFja3RyYWNrKCk7IGJyZWFrOyB9XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIG9wY29kZXMuU1RSSU5HTk9STTpcbiAgICAgICAgZm9yICh2YXIgYXJnID0gY2FtbF9qc2J5dGVzX29mX3N0cmluZyhjcG9vbFt1YXJnXSksIGkgPSAwOyBpIDwgYXJnLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgaWYocG9zID09PSBzLmxlbmd0aCkge3ByZWZpeF9tYXRjaCAoKTsgYnJlYWt9O1xuICAgICAgICAgIGlmIChub3JtdGFibGUuY2hhckNvZGVBdChjKSA9PT0gYXJnLmNoYXJDb2RlQXQoaSkpXG4gICAgICAgICAgICBjID0gc1srK3Bvc107XG4gICAgICAgICAgZWxzZSB7IGJhY2t0cmFjaygpOyBicmVhazsgfVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBvcGNvZGVzLkNIQVJDTEFTUzpcbiAgICAgICAgaWYocG9zID09PSBzLmxlbmd0aCkge3ByZWZpeF9tYXRjaCAoKTsgYnJlYWt9O1xuICAgICAgICBpZiAoaW5fYml0c2V0KGNwb29sW3VhcmddLCBjKSkgcG9zKys7XG4gICAgICAgIGVsc2UgYmFja3RyYWNrKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBvcGNvZGVzLkJPTDpcbiAgICAgICAgaWYocG9zID4gMCAmJiBzW3BvcyAtIDFdICE9IDEwIC8qIFxcbiAqLykge2JhY2t0cmFjaygpfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2Ugb3Bjb2Rlcy5FT0w6XG4gICAgICAgIGlmKHBvcyA8IHMubGVuZ3RoICYmIHNbcG9zXSAhPSAxMCAvKiBcXG4gKi8pIHtiYWNrdHJhY2soKX1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIG9wY29kZXMuV09SREJPVU5EQVJZOlxuICAgICAgICBpZihwb3MgPT0gMCkge1xuICAgICAgICAgIGlmKHBvcyA9PT0gcy5sZW5ndGgpIHtwcmVmaXhfbWF0Y2ggKCk7IGJyZWFrfTtcbiAgICAgICAgICBpZihpc193b3JkX2xldHRlcihzWzBdKSkgYnJlYWs7XG4gICAgICAgICAgYmFja3RyYWNrKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAocG9zID09PSBzLmxlbmd0aCkge1xuICAgICAgICAgIGlmKGlzX3dvcmRfbGV0dGVyKHNbcG9zIC0gMV0pKSBicmVhaztcbiAgICAgICAgICBiYWNrdHJhY2sgKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgaWYoaXNfd29yZF9sZXR0ZXIoc1twb3MgLSAxXSkgIT0gaXNfd29yZF9sZXR0ZXIoc1twb3NdKSkgYnJlYWs7XG4gICAgICAgICAgYmFja3RyYWNrICgpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBvcGNvZGVzLkJFR0dST1VQOlxuICAgICAgICBncm91cCA9IGdyb3Vwc1t1YXJnXTtcbiAgICAgICAgcHVzaCh7dW5kbzoge29iajpncm91cCxcbiAgICAgICAgICAgICAgICAgICAgIHByb3A6J3N0YXJ0JyxcbiAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBncm91cC5zdGFydH19KTtcbiAgICAgICAgZ3JvdXAuc3RhcnQgPSBwb3M7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBvcGNvZGVzLkVOREdST1VQOlxuICAgICAgICBncm91cCA9IGdyb3Vwc1t1YXJnXTtcbiAgICAgICAgcHVzaCh7dW5kbzoge29iajogZ3JvdXAsXG4gICAgICAgICAgICAgICAgICAgICBwcm9wOidlbmQnLFxuICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGdyb3VwLmVuZH19KTtcbiAgICAgICAgZ3JvdXAuZW5kID0gcG9zO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2Ugb3Bjb2Rlcy5SRUZHUk9VUDpcbiAgICAgICAgZ3JvdXAgPSBncm91cHNbdWFyZ107XG4gICAgICAgIGlmKGdyb3VwLnN0YXJ0IDwgMCB8fCBncm91cC5lbmQgPCAwKSB7YmFja3RyYWNrICgpOyBicmVha31cbiAgICAgICAgZm9yICh2YXIgaSA9IGdyb3VwLnN0YXJ0OyBpIDwgZ3JvdXAuZW5kOyBpKyspe1xuICAgICAgICAgIGlmKHBvcyA9PT0gcy5sZW5ndGgpIHtwcmVmaXhfbWF0Y2ggKCk7IGJyZWFrfTtcbiAgICAgICAgICBpZihzW2ldICE9IHNbcG9zXSkge2JhY2t0cmFjayAoKTsgYnJlYWt9XG4gICAgICAgICAgcG9zKys7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIG9wY29kZXMuU0lNUExFT1BUOlxuICAgICAgICBpZiAoaW5fYml0c2V0KGNwb29sW3VhcmddLCBjKSkgcG9zKys7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBvcGNvZGVzLlNJTVBMRVNUQVI6XG4gICAgICAgIHdoaWxlIChpbl9iaXRzZXQoY3Bvb2xbdWFyZ10sIGMpKVxuICAgICAgICAgIGMgPSBzWysrcG9zXTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIG9wY29kZXMuU0lNUExFUExVUzpcbiAgICAgICAgaWYocG9zID09PSBzLmxlbmd0aCkge3ByZWZpeF9tYXRjaCAoKTsgYnJlYWt9O1xuICAgICAgICBpZiAoaW5fYml0c2V0KGNwb29sW3VhcmddLCBjKSkge1xuICAgICAgICAgIGRvIHtcbiAgICAgICAgICAgIGMgPSBzWysrcG9zXTtcbiAgICAgICAgICB9IHdoaWxlIChpbl9iaXRzZXQoY3Bvb2xbdWFyZ10sIGMpKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGJhY2t0cmFjaygpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2Ugb3Bjb2Rlcy5BQ0NFUFQ6XG4gICAgICAgIHJldHVybiBhY2NlcHQoKTtcbiAgICAgIGNhc2Ugb3Bjb2Rlcy5HT1RPOlxuICAgICAgICBwYyA9IHBjICsgc2FyZztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIG9wY29kZXMuUFVTSEJBQ0s6XG4gICAgICAgIHB1c2goe3Bvczoge3BjOiBwYyArIHNhcmcsIHR4dDogcG9zfX0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2Ugb3Bjb2Rlcy5TRVRNQVJLOlxuICAgICAgICBwdXNoKHt1bmRvOiB7b2JqOnJlX3JlZ2lzdGVyLFxuICAgICAgICAgICAgICAgICAgICAgcHJvcDogdWFyZyxcbiAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiByZV9yZWdpc3Rlclt1YXJnXX19KTtcbiAgICAgICAgcmVfcmVnaXN0ZXJbdWFyZ10gPSBwb3M7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBvcGNvZGVzLkNIRUNLUFJPR1JFU1M6XG4gICAgICAgIGlmIChyZV9yZWdpc3Rlclt1YXJnXSA9PT0gcG9zKSBiYWNrdHJhY2soKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OiB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGJ5dGVjb2RlXCIpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIHJldHVybiByZV9tYXRjaF9pbXBsO1xufSgpO1xuXG5cbi8vUHJvdmlkZXM6IHJlX3NlYXJjaF9mb3J3YXJkXG4vL1JlcXVpcmVzOiByZV9tYXRjaCwgY2FtbF9tbF9zdHJpbmdfbGVuZ3RoLCBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIHJlX3NlYXJjaF9mb3J3YXJkKHJlLCBzLCBwb3MpIHtcbiAgaWYocG9zIDwgMCB8fCBwb3MgPiBjYW1sX21sX3N0cmluZ19sZW5ndGgocykpXG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiU3RyLnNlYXJjaF9mb3J3YXJkXCIpXG4gIHdoaWxlIChwb3MgPD0gY2FtbF9tbF9zdHJpbmdfbGVuZ3RoKHMpKSB7XG4gICAgdmFyIHJlcyA9IHJlX21hdGNoKHJlLCBzLCBwb3MsIDApO1xuICAgIGlmIChyZXMpIHJldHVybiByZXM7XG4gICAgcG9zKys7XG4gIH1cblxuICByZXR1cm4gWzBdOyAgLyogW3x8XSA6IGludCBhcnJheSAqL1xufVxuXG4vL1Byb3ZpZGVzOiByZV9zZWFyY2hfYmFja3dhcmRcbi8vUmVxdWlyZXM6IHJlX21hdGNoLCBjYW1sX21sX3N0cmluZ19sZW5ndGgsIGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gcmVfc2VhcmNoX2JhY2t3YXJkKHJlLCBzLCBwb3MpIHtcbiAgaWYocG9zIDwgMCB8fCBwb3MgPiBjYW1sX21sX3N0cmluZ19sZW5ndGgocykpXG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiU3RyLnNlYXJjaF9iYWNrd2FyZFwiKVxuICB3aGlsZSAocG9zID49IDApIHtcbiAgICB2YXIgcmVzID0gcmVfbWF0Y2gocmUsIHMsIHBvcywgMCk7XG4gICAgaWYgKHJlcykgcmV0dXJuIHJlcztcbiAgICBwb3MtLTtcbiAgfVxuXG4gIHJldHVybiBbMF07ICAvKiBbfHxdIDogaW50IGFycmF5ICovXG59XG5cblxuLy9Qcm92aWRlczogcmVfc3RyaW5nX21hdGNoXG4vL1JlcXVpcmVzOiByZV9tYXRjaCwgY2FtbF9tbF9zdHJpbmdfbGVuZ3RoLCBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIHJlX3N0cmluZ19tYXRjaChyZSxzLHBvcyl7XG4gIGlmKHBvcyA8IDAgfHwgcG9zID4gY2FtbF9tbF9zdHJpbmdfbGVuZ3RoKHMpKVxuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIlN0ci5zdHJpbmdfbWF0Y2hcIilcbiAgdmFyIHJlcyA9IHJlX21hdGNoKHJlLCBzLCBwb3MsIDApO1xuICBpZiAocmVzKSByZXR1cm4gcmVzO1xuICBlbHNlIHJldHVybiBbMF07XG59XG5cbi8vUHJvdmlkZXM6IHJlX3BhcnRpYWxfbWF0Y2hcbi8vUmVxdWlyZXM6IHJlX21hdGNoLCBjYW1sX21sX3N0cmluZ19sZW5ndGgsIGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gcmVfcGFydGlhbF9tYXRjaChyZSxzLHBvcyl7XG4gIGlmKHBvcyA8IDAgfHwgcG9zID4gY2FtbF9tbF9zdHJpbmdfbGVuZ3RoKHMpKVxuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIlN0ci5wYXJ0aWFsX21hdGNoXCIpXG4gIHZhciByZXMgPSByZV9tYXRjaChyZSwgcywgcG9zLCAxKTtcbiAgaWYgKHJlcykgcmV0dXJuIHJlcztcbiAgZWxzZSByZXR1cm4gWzBdO1xufVxuXG4vL1Byb3ZpZGVzOiByZV9yZXBsYWNlbWVudF90ZXh0XG4vL1JlcXVpcmVzOiBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nLCBjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX2FycmF5X2dldFxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuLy8gZXh0ZXJuYWwgcmVfcmVwbGFjZW1lbnRfdGV4dDogc3RyaW5nIC0+IGludCBhcnJheSAtPiBzdHJpbmcgLT4gc3RyaW5nXG5mdW5jdGlvbiByZV9yZXBsYWNlbWVudF90ZXh0KHJlcGwsZ3JvdXBzLG9yaWcpIHtcbiAgdmFyIHJlcGwgPSBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKHJlcGwpO1xuICB2YXIgbGVuID0gcmVwbC5sZW5ndGg7XG4gIHZhciBvcmlnID0gY2FtbF9qc2J5dGVzX29mX3N0cmluZyhvcmlnKTtcbiAgdmFyIHJlcyA9IFwiXCI7IC8vcmVzdWx0XG4gIHZhciBuID0gMDsgLy8gY3VycmVudCBwb3NpdGlvblxuICB2YXIgY3VyOyAvL2N1cnJlbnQgY2hhclxuICB2YXIgc3RhcnQsIGVuZCwgYztcbiAgd2hpbGUobiA8IGxlbil7XG4gICAgY3VyID0gcmVwbC5jaGFyQXQobisrKTtcbiAgICBpZihjdXIgIT0gJ1xcXFwnKXtcbiAgICAgIHJlcyArPSBjdXI7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgaWYobiA9PSBsZW4pIGNhbWxfZmFpbHdpdGgoXCJTdHIucmVwbGFjZTogaWxsZWdhbCBiYWNrc2xhc2ggc2VxdWVuY2VcIik7XG4gICAgICBjdXIgPSByZXBsLmNoYXJBdChuKyspO1xuICAgICAgc3dpdGNoKGN1cil7XG4gICAgICBjYXNlICdcXFxcJzpcbiAgICAgICAgcmVzICs9IGN1cjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICcwJzogY2FzZSAnMSc6IGNhc2UgJzInOiBjYXNlICczJzogY2FzZSAnNCc6XG4gICAgICBjYXNlICc1JzogY2FzZSAnNic6IGNhc2UgJzcnOiBjYXNlICc4JzogY2FzZSAnOSc6XG4gICAgICAgIGMgPSArY3VyO1xuICAgICAgICBpZiAoYyoyID49IGdyb3Vwcy5sZW5ndGggLSAxIClcbiAgICAgICAgICBjYW1sX2ZhaWx3aXRoKFwiU3RyLnJlcGxhY2U6IHJlZmVyZW5jZSB0byB1bm1hdGNoZWQgZ3JvdXBcIiApO1xuICAgICAgICBzdGFydCA9IGNhbWxfYXJyYXlfZ2V0KGdyb3VwcyxjKjIpO1xuICAgICAgICBlbmQgPSBjYW1sX2FycmF5X2dldChncm91cHMsIGMqMiArMSk7XG4gICAgICAgIGlmIChzdGFydCA9PSAtMSlcbiAgICAgICAgICBjYW1sX2ZhaWx3aXRoKFwiU3RyLnJlcGxhY2U6IHJlZmVyZW5jZSB0byB1bm1hdGNoZWQgZ3JvdXBcIik7XG4gICAgICAgIHJlcys9b3JpZy5zbGljZShzdGFydCxlbmQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJlcyArPSAoJ1xcXFwnICArIGN1cik7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKHJlcyk7IH1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cl9pbml0aWFsaXplXG5mdW5jdGlvbiBjYW1sX3N0cl9pbml0aWFsaXplKHVuaXQpIHtcbiAgcmV0dXJuIDA7XG59XG4iLCIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdGl2ZSBDYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4vKiAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICovXG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4vKiAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICovXG4vKiAgZW4gQXV0b21hdGlxdWUuICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkICAgICovXG4vKiAgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIHdpdGggICAgICovXG4vKiAgdGhlIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIGZpbGUgLi4vTElDRU5TRS4gICAgICovXG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qICRJZDogbGV4aW5nLmMgNjA0NSAyMDA0LTAxLTAxIDE2OjQyOjQzWiBkb2xpZ2V6ICQgKi9cblxuLyogVGhlIHRhYmxlLWRyaXZlbiBhdXRvbWF0b24gZm9yIGxleGVycyBnZW5lcmF0ZWQgYnkgY2FtbGxleC4gKi9cblxuLy9Qcm92aWRlczogY2FtbF9sZXhfYXJyYXlcbi8vUmVxdWlyZXM6IGNhbWxfanNieXRlc19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfbGV4X2FycmF5KHMpIHtcbiAgcyA9IGNhbWxfanNieXRlc19vZl9zdHJpbmcocyk7XG4gIHZhciBsID0gcy5sZW5ndGggLyAyO1xuICB2YXIgYSA9IG5ldyBBcnJheShsKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsOyBpKyspXG4gICAgYVtpXSA9IChzLmNoYXJDb2RlQXQoMiAqIGkpIHwgKHMuY2hhckNvZGVBdCgyICogaSArIDEpIDw8IDgpKSA8PCAxNiA+PiAxNjtcbiAgcmV0dXJuIGE7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbGV4X2VuZ2luZVxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aCwgY2FtbF9sZXhfYXJyYXksIGNhbWxfdWludDhfYXJyYXlfb2ZfYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfbGV4X2VuZ2luZSh0YmwsIHN0YXJ0X3N0YXRlLCBsZXhidWYpIHtcbiAgdmFyIGxleF9idWZmZXIgPSAyO1xuICB2YXIgbGV4X2J1ZmZlcl9sZW4gPSAzO1xuICB2YXIgbGV4X3N0YXJ0X3BvcyA9IDU7XG4gIHZhciBsZXhfY3Vycl9wb3MgPSA2O1xuICB2YXIgbGV4X2xhc3RfcG9zID0gNztcbiAgdmFyIGxleF9sYXN0X2FjdGlvbiA9IDg7XG4gIHZhciBsZXhfZW9mX3JlYWNoZWQgPSA5O1xuICB2YXIgbGV4X2Jhc2UgPSAxO1xuICB2YXIgbGV4X2JhY2t0cmsgPSAyO1xuICB2YXIgbGV4X2RlZmF1bHQgPSAzO1xuICB2YXIgbGV4X3RyYW5zID0gNDtcbiAgdmFyIGxleF9jaGVjayA9IDU7XG5cbiAgaWYgKCF0YmwubGV4X2RlZmF1bHQpIHtcbiAgICB0YmwubGV4X2Jhc2UgPSAgICBjYW1sX2xleF9hcnJheSAodGJsW2xleF9iYXNlXSk7XG4gICAgdGJsLmxleF9iYWNrdHJrID0gY2FtbF9sZXhfYXJyYXkgKHRibFtsZXhfYmFja3Rya10pO1xuICAgIHRibC5sZXhfY2hlY2sgPSAgIGNhbWxfbGV4X2FycmF5ICh0YmxbbGV4X2NoZWNrXSk7XG4gICAgdGJsLmxleF90cmFucyA9ICAgY2FtbF9sZXhfYXJyYXkgKHRibFtsZXhfdHJhbnNdKTtcbiAgICB0YmwubGV4X2RlZmF1bHQgPSBjYW1sX2xleF9hcnJheSAodGJsW2xleF9kZWZhdWx0XSk7XG4gIH1cblxuICB2YXIgYywgc3RhdGUgPSBzdGFydF9zdGF0ZTtcblxuICB2YXIgYnVmZmVyID0gY2FtbF91aW50OF9hcnJheV9vZl9ieXRlcyhsZXhidWZbbGV4X2J1ZmZlcl0pO1xuXG4gIGlmIChzdGF0ZSA+PSAwKSB7XG4gICAgLyogRmlyc3QgZW50cnkgKi9cbiAgICBsZXhidWZbbGV4X2xhc3RfcG9zXSA9IGxleGJ1ZltsZXhfc3RhcnRfcG9zXSA9IGxleGJ1ZltsZXhfY3Vycl9wb3NdO1xuICAgIGxleGJ1ZltsZXhfbGFzdF9hY3Rpb25dID0gLTE7XG4gIH0gZWxzZSB7XG4gICAgLyogUmVlbnRyeSBhZnRlciByZWZpbGwgKi9cbiAgICBzdGF0ZSA9IC1zdGF0ZSAtIDE7XG4gIH1cbiAgZm9yKDs7KSB7XG4gICAgLyogTG9va3VwIGJhc2UgYWRkcmVzcyBvciBhY3Rpb24gbnVtYmVyIGZvciBjdXJyZW50IHN0YXRlICovXG4gICAgdmFyIGJhc2UgPSB0YmwubGV4X2Jhc2Vbc3RhdGVdO1xuICAgIGlmIChiYXNlIDwgMCkgcmV0dXJuIC1iYXNlLTE7XG4gICAgLyogU2VlIGlmIGl0J3MgYSBiYWNrdHJhY2sgcG9pbnQgKi9cbiAgICB2YXIgYmFja3RyayA9IHRibC5sZXhfYmFja3Rya1tzdGF0ZV07XG4gICAgaWYgKGJhY2t0cmsgPj0gMCkge1xuICAgICAgbGV4YnVmW2xleF9sYXN0X3Bvc10gPSBsZXhidWZbbGV4X2N1cnJfcG9zXTtcbiAgICAgIGxleGJ1ZltsZXhfbGFzdF9hY3Rpb25dID0gYmFja3RyaztcbiAgICB9XG4gICAgLyogU2VlIGlmIHdlIG5lZWQgYSByZWZpbGwgKi9cbiAgICBpZiAobGV4YnVmW2xleF9jdXJyX3Bvc10gPj0gbGV4YnVmW2xleF9idWZmZXJfbGVuXSl7XG4gICAgICBpZiAobGV4YnVmW2xleF9lb2ZfcmVhY2hlZF0gPT0gMClcbiAgICAgICAgcmV0dXJuIC1zdGF0ZSAtIDE7XG4gICAgICBlbHNlXG4gICAgICAgIGMgPSAyNTY7XG4gICAgfWVsc2V7XG4gICAgICAvKiBSZWFkIG5leHQgaW5wdXQgY2hhciAqL1xuICAgICAgYyA9IGJ1ZmZlcltsZXhidWZbbGV4X2N1cnJfcG9zXV07XG4gICAgICBsZXhidWZbbGV4X2N1cnJfcG9zXSArKztcbiAgICB9XG4gICAgLyogRGV0ZXJtaW5lIG5leHQgc3RhdGUgKi9cbiAgICBpZiAodGJsLmxleF9jaGVja1tiYXNlICsgY10gPT0gc3RhdGUpXG4gICAgICBzdGF0ZSA9IHRibC5sZXhfdHJhbnNbYmFzZSArIGNdO1xuICAgIGVsc2VcbiAgICAgIHN0YXRlID0gdGJsLmxleF9kZWZhdWx0W3N0YXRlXTtcbiAgICAvKiBJZiBubyB0cmFuc2l0aW9uIG9uIHRoaXMgY2hhciwgcmV0dXJuIHRvIGxhc3QgYmFja3RyYWNrIHBvaW50ICovXG4gICAgaWYgKHN0YXRlIDwgMCkge1xuICAgICAgbGV4YnVmW2xleF9jdXJyX3Bvc10gPSBsZXhidWZbbGV4X2xhc3RfcG9zXTtcbiAgICAgIGlmIChsZXhidWZbbGV4X2xhc3RfYWN0aW9uXSA9PSAtMSlcbiAgICAgICAgY2FtbF9mYWlsd2l0aChcImxleGluZzogZW1wdHkgdG9rZW5cIik7XG4gICAgICBlbHNlXG4gICAgICAgIHJldHVybiBsZXhidWZbbGV4X2xhc3RfYWN0aW9uXTtcbiAgICB9ZWxzZXtcbiAgICAgIC8qIEVyYXNlIHRoZSBFT0YgY29uZGl0aW9uIG9ubHkgaWYgdGhlIEVPRiBwc2V1ZG8tY2hhcmFjdGVyIHdhc1xuICAgICAgICAgY29uc3VtZWQgYnkgdGhlIGF1dG9tYXRvbiAoaS5lLiB0aGVyZSB3YXMgbm8gYmFja3RyYWNrIGFib3ZlKVxuICAgICAgKi9cbiAgICAgIGlmIChjID09IDI1NikgbGV4YnVmW2xleF9lb2ZfcmVhY2hlZF0gPSAwO1xuICAgIH1cbiAgfVxufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBOZXcgbGV4ZXIgZW5naW5lLCB3aXRoIG1lbW9yeSBvZiBwb3NpdGlvbnMgICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8vUHJvdmlkZXM6IGNhbWxfbmV3X2xleF9lbmdpbmVcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGgsIGNhbWxfbGV4X2FycmF5XG4vL1JlcXVpcmVzOiBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nLCBjYW1sX3VpbnQ4X2FycmF5X29mX2J5dGVzXG5mdW5jdGlvbiBjYW1sX2xleF9ydW5fbWVtKHMsIGksIG1lbSwgY3Vycl9wb3MpIHtcbiAgZm9yICg7Oykge1xuICAgIHZhciBkc3QgPSBzLmNoYXJDb2RlQXQoaSk7IGkrKztcbiAgICBpZiAoZHN0ID09IDB4ZmYpIHJldHVybjtcbiAgICB2YXIgc3JjID0gcy5jaGFyQ29kZUF0KGkpOyBpKys7XG4gICAgaWYgKHNyYyA9PSAweGZmKVxuICAgICAgbWVtIFtkc3QgKyAxXSA9IGN1cnJfcG9zO1xuICAgIGVsc2VcbiAgICAgIG1lbSBbZHN0ICsgMV0gPSBtZW0gW3NyYyArIDFdO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNhbWxfbGV4X3J1bl90YWcocywgaSwgbWVtKSB7XG4gIGZvciAoOzspIHtcbiAgICB2YXIgZHN0ID0gcy5jaGFyQ29kZUF0KGkpOyBpKys7XG4gICAgaWYgKGRzdCA9PSAweGZmKSByZXR1cm4gO1xuICAgIHZhciBzcmMgPSBzLmNoYXJDb2RlQXQoaSk7IGkrKztcbiAgICBpZiAoc3JjID09IDB4ZmYpXG4gICAgICBtZW0gW2RzdCArIDFdID0gLTE7XG4gICAgZWxzZVxuICAgICAgbWVtIFtkc3QgKyAxXSA9IG1lbSBbc3JjICsgMV07XG4gIH1cbn1cblxuZnVuY3Rpb24gY2FtbF9uZXdfbGV4X2VuZ2luZSh0YmwsIHN0YXJ0X3N0YXRlLCBsZXhidWYpIHtcbiAgdmFyIGxleF9idWZmZXIgPSAyO1xuICB2YXIgbGV4X2J1ZmZlcl9sZW4gPSAzO1xuICB2YXIgbGV4X3N0YXJ0X3BvcyA9IDU7XG4gIHZhciBsZXhfY3Vycl9wb3MgPSA2O1xuICB2YXIgbGV4X2xhc3RfcG9zID0gNztcbiAgdmFyIGxleF9sYXN0X2FjdGlvbiA9IDg7XG4gIHZhciBsZXhfZW9mX3JlYWNoZWQgPSA5O1xuICB2YXIgbGV4X21lbSA9IDEwO1xuICB2YXIgbGV4X2Jhc2UgPSAxO1xuICB2YXIgbGV4X2JhY2t0cmsgPSAyO1xuICB2YXIgbGV4X2RlZmF1bHQgPSAzO1xuICB2YXIgbGV4X3RyYW5zID0gNDtcbiAgdmFyIGxleF9jaGVjayA9IDU7XG4gIHZhciBsZXhfYmFzZV9jb2RlID0gNjtcbiAgdmFyIGxleF9iYWNrdHJrX2NvZGUgPSA3O1xuICB2YXIgbGV4X2RlZmF1bHRfY29kZSA9IDg7XG4gIHZhciBsZXhfdHJhbnNfY29kZSA9IDk7XG4gIHZhciBsZXhfY2hlY2tfY29kZSA9IDEwO1xuICB2YXIgbGV4X2NvZGUgPSAxMTtcblxuICBpZiAoIXRibC5sZXhfZGVmYXVsdCkge1xuICAgIHRibC5sZXhfYmFzZSA9ICAgIGNhbWxfbGV4X2FycmF5ICh0YmxbbGV4X2Jhc2VdKTtcbiAgICB0YmwubGV4X2JhY2t0cmsgPSBjYW1sX2xleF9hcnJheSAodGJsW2xleF9iYWNrdHJrXSk7XG4gICAgdGJsLmxleF9jaGVjayA9ICAgY2FtbF9sZXhfYXJyYXkgKHRibFtsZXhfY2hlY2tdKTtcbiAgICB0YmwubGV4X3RyYW5zID0gICBjYW1sX2xleF9hcnJheSAodGJsW2xleF90cmFuc10pO1xuICAgIHRibC5sZXhfZGVmYXVsdCA9IGNhbWxfbGV4X2FycmF5ICh0YmxbbGV4X2RlZmF1bHRdKTtcbiAgfVxuICBpZiAoIXRibC5sZXhfZGVmYXVsdF9jb2RlKSB7XG4gICAgdGJsLmxleF9iYXNlX2NvZGUgPSAgICBjYW1sX2xleF9hcnJheSAodGJsW2xleF9iYXNlX2NvZGVdKTtcbiAgICB0YmwubGV4X2JhY2t0cmtfY29kZSA9IGNhbWxfbGV4X2FycmF5ICh0YmxbbGV4X2JhY2t0cmtfY29kZV0pO1xuICAgIHRibC5sZXhfY2hlY2tfY29kZSA9ICAgY2FtbF9sZXhfYXJyYXkgKHRibFtsZXhfY2hlY2tfY29kZV0pO1xuICAgIHRibC5sZXhfdHJhbnNfY29kZSA9ICAgY2FtbF9sZXhfYXJyYXkgKHRibFtsZXhfdHJhbnNfY29kZV0pO1xuICAgIHRibC5sZXhfZGVmYXVsdF9jb2RlID0gY2FtbF9sZXhfYXJyYXkgKHRibFtsZXhfZGVmYXVsdF9jb2RlXSk7XG4gIH1cbiAgaWYgKHRibC5sZXhfY29kZSA9PSBudWxsKSB0YmwubGV4X2NvZGUgPSBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKHRibFtsZXhfY29kZV0pO1xuXG4gIHZhciBjLCBzdGF0ZSA9IHN0YXJ0X3N0YXRlO1xuXG4gIHZhciBidWZmZXIgPSBjYW1sX3VpbnQ4X2FycmF5X29mX2J5dGVzKGxleGJ1ZltsZXhfYnVmZmVyXSk7XG5cbiAgaWYgKHN0YXRlID49IDApIHtcbiAgICAvKiBGaXJzdCBlbnRyeSAqL1xuICAgIGxleGJ1ZltsZXhfbGFzdF9wb3NdID0gbGV4YnVmW2xleF9zdGFydF9wb3NdID0gbGV4YnVmW2xleF9jdXJyX3Bvc107XG4gICAgbGV4YnVmW2xleF9sYXN0X2FjdGlvbl0gPSAtMTtcbiAgfSBlbHNlIHtcbiAgICAvKiBSZWVudHJ5IGFmdGVyIHJlZmlsbCAqL1xuICAgIHN0YXRlID0gLXN0YXRlIC0gMTtcbiAgfVxuICBmb3IoOzspIHtcbiAgICAvKiBMb29rdXAgYmFzZSBhZGRyZXNzIG9yIGFjdGlvbiBudW1iZXIgZm9yIGN1cnJlbnQgc3RhdGUgKi9cbiAgICB2YXIgYmFzZSA9IHRibC5sZXhfYmFzZVtzdGF0ZV07XG4gICAgaWYgKGJhc2UgPCAwKSB7XG4gICAgICB2YXIgcGNfb2ZmID0gdGJsLmxleF9iYXNlX2NvZGVbc3RhdGVdO1xuICAgICAgY2FtbF9sZXhfcnVuX3RhZyh0YmwubGV4X2NvZGUsIHBjX29mZiwgbGV4YnVmW2xleF9tZW1dKTtcbiAgICAgIHJldHVybiAtYmFzZS0xO1xuICAgIH1cbiAgICAvKiBTZWUgaWYgaXQncyBhIGJhY2t0cmFjayBwb2ludCAqL1xuICAgIHZhciBiYWNrdHJrID0gdGJsLmxleF9iYWNrdHJrW3N0YXRlXTtcbiAgICBpZiAoYmFja3RyayA+PSAwKSB7XG4gICAgICB2YXIgcGNfb2ZmID0gdGJsLmxleF9iYWNrdHJrX2NvZGVbc3RhdGVdO1xuICAgICAgY2FtbF9sZXhfcnVuX3RhZyh0YmwubGV4X2NvZGUsIHBjX29mZiwgbGV4YnVmW2xleF9tZW1dKTtcbiAgICAgIGxleGJ1ZltsZXhfbGFzdF9wb3NdID0gbGV4YnVmW2xleF9jdXJyX3Bvc107XG4gICAgICBsZXhidWZbbGV4X2xhc3RfYWN0aW9uXSA9IGJhY2t0cms7XG4gICAgfVxuICAgIC8qIFNlZSBpZiB3ZSBuZWVkIGEgcmVmaWxsICovXG4gICAgaWYgKGxleGJ1ZltsZXhfY3Vycl9wb3NdID49IGxleGJ1ZltsZXhfYnVmZmVyX2xlbl0pe1xuICAgICAgaWYgKGxleGJ1ZltsZXhfZW9mX3JlYWNoZWRdID09IDApXG4gICAgICAgIHJldHVybiAtc3RhdGUgLSAxO1xuICAgICAgZWxzZVxuICAgICAgICBjID0gMjU2O1xuICAgIH1lbHNle1xuICAgICAgLyogUmVhZCBuZXh0IGlucHV0IGNoYXIgKi9cbiAgICAgIGMgPSBidWZmZXJbbGV4YnVmW2xleF9jdXJyX3Bvc11dO1xuICAgICAgbGV4YnVmW2xleF9jdXJyX3Bvc10gKys7XG4gICAgfVxuICAgIC8qIERldGVybWluZSBuZXh0IHN0YXRlICovXG4gICAgdmFyIHBzdGF0ZSA9IHN0YXRlIDtcbiAgICBpZiAodGJsLmxleF9jaGVja1tiYXNlICsgY10gPT0gc3RhdGUpXG4gICAgICBzdGF0ZSA9IHRibC5sZXhfdHJhbnNbYmFzZSArIGNdO1xuICAgIGVsc2VcbiAgICAgIHN0YXRlID0gdGJsLmxleF9kZWZhdWx0W3N0YXRlXTtcbiAgICAvKiBJZiBubyB0cmFuc2l0aW9uIG9uIHRoaXMgY2hhciwgcmV0dXJuIHRvIGxhc3QgYmFja3RyYWNrIHBvaW50ICovXG4gICAgaWYgKHN0YXRlIDwgMCkge1xuICAgICAgbGV4YnVmW2xleF9jdXJyX3Bvc10gPSBsZXhidWZbbGV4X2xhc3RfcG9zXTtcbiAgICAgIGlmIChsZXhidWZbbGV4X2xhc3RfYWN0aW9uXSA9PSAtMSlcbiAgICAgICAgY2FtbF9mYWlsd2l0aChcImxleGluZzogZW1wdHkgdG9rZW5cIik7XG4gICAgICBlbHNlXG4gICAgICAgIHJldHVybiBsZXhidWZbbGV4X2xhc3RfYWN0aW9uXTtcbiAgICB9ZWxzZXtcbiAgICAgIC8qIElmIHNvbWUgdHJhbnNpdGlvbiwgZ2V0IGFuZCBwZXJmb3JtIG1lbW9yeSBtb3ZlcyAqL1xuICAgICAgdmFyIGJhc2VfY29kZSA9IHRibC5sZXhfYmFzZV9jb2RlW3BzdGF0ZV0sIHBjX29mZjtcbiAgICAgIGlmICh0YmwubGV4X2NoZWNrX2NvZGVbYmFzZV9jb2RlICsgY10gPT0gcHN0YXRlKVxuICAgICAgICBwY19vZmYgPSB0YmwubGV4X3RyYW5zX2NvZGVbYmFzZV9jb2RlICsgY107XG4gICAgICBlbHNlXG4gICAgICAgIHBjX29mZiA9IHRibC5sZXhfZGVmYXVsdF9jb2RlW3BzdGF0ZV07XG4gICAgICBpZiAocGNfb2ZmID4gMClcbiAgICAgICAgY2FtbF9sZXhfcnVuX21lbVxuICAgICAgKHRibC5sZXhfY29kZSwgcGNfb2ZmLCBsZXhidWZbbGV4X21lbV0sIGxleGJ1ZltsZXhfY3Vycl9wb3NdKTtcbiAgICAgIC8qIEVyYXNlIHRoZSBFT0YgY29uZGl0aW9uIG9ubHkgaWYgdGhlIEVPRiBwc2V1ZG8tY2hhcmFjdGVyIHdhc1xuICAgICAgICAgY29uc3VtZWQgYnkgdGhlIGF1dG9tYXRvbiAoaS5lLiB0aGVyZSB3YXMgbm8gYmFja3RyYWNrIGFib3ZlKVxuICAgICAgKi9cbiAgICAgIGlmIChjID09IDI1NikgbGV4YnVmW2xleF9lb2ZfcmVhY2hlZF0gPSAwO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy8vLy8vLy8vLy8vLyBBcnJheVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2FycmF5X3N1YiBtdXRhYmxlXG5mdW5jdGlvbiBjYW1sX2FycmF5X3N1YiAoYSwgaSwgbGVuKSB7XG4gIHZhciBhMiA9IG5ldyBBcnJheShsZW4rMSk7XG4gIGEyWzBdPTA7XG4gIGZvcih2YXIgaTIgPSAxLCBpMT0gaSsxOyBpMiA8PSBsZW47IGkyKyssaTErKyApe1xuICAgIGEyW2kyXT1hW2kxXTtcbiAgfVxuICByZXR1cm4gYTI7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYXJyYXlfYXBwZW5kIG11dGFibGVcbmZ1bmN0aW9uIGNhbWxfYXJyYXlfYXBwZW5kKGExLCBhMikge1xuICB2YXIgbDEgPSBhMS5sZW5ndGgsIGwyID0gYTIubGVuZ3RoO1xuICB2YXIgbCA9IGwxK2wyLTFcbiAgdmFyIGEgPSBuZXcgQXJyYXkobCk7XG4gIGFbMF0gPSAwO1xuICB2YXIgaSA9IDEsaiA9IDE7XG4gIGZvcig7aTxsMTtpKyspIGFbaV09YTFbaV07XG4gIGZvcig7aTxsO2krKyxqKyspIGFbaV09YTJbal07XG4gIHJldHVybiBhO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2FycmF5X2NvbmNhdCBtdXRhYmxlXG5mdW5jdGlvbiBjYW1sX2FycmF5X2NvbmNhdChsKSB7XG4gIHZhciBhID0gWzBdO1xuICB3aGlsZSAobCAhPT0gMCkge1xuICAgIHZhciBiID0gbFsxXTtcbiAgICBmb3IgKHZhciBpID0gMTsgaSA8IGIubGVuZ3RoOyBpKyspIGEucHVzaChiW2ldKTtcbiAgICBsID0gbFsyXTtcbiAgfVxuICByZXR1cm4gYTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9hcnJheV9ibGl0XG5mdW5jdGlvbiBjYW1sX2FycmF5X2JsaXQoYTEsIGkxLCBhMiwgaTIsIGxlbikge1xuICBpZiAoaTIgPD0gaTEpIHtcbiAgICBmb3IgKHZhciBqID0gMTsgaiA8PSBsZW47IGorKykgYTJbaTIgKyBqXSA9IGExW2kxICsgal07XG4gIH0gZWxzZSB7XG4gICAgZm9yICh2YXIgaiA9IGxlbjsgaiA+PSAxOyBqLS0pIGEyW2kyICsgal0gPSBhMVtpMSArIGpdO1xuICB9O1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9mbG9hdGFycmF5X2JsaXRcbmZ1bmN0aW9uIGNhbWxfZmxvYXRhcnJheV9ibGl0KGExLCBpMSwgYTIsIGkyLCBsZW4pIHtcbiAgaWYgKGkyIDw9IGkxKSB7XG4gICAgZm9yICh2YXIgaiA9IDE7IGogPD0gbGVuOyBqKyspIGEyW2kyICsgal0gPSBhMVtpMSArIGpdO1xuICB9IGVsc2Uge1xuICAgIGZvciAodmFyIGogPSBsZW47IGogPj0gMTsgai0tKSBhMltpMiArIGpdID0gYTFbaTEgKyBqXTtcbiAgfTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vLy8vLy8vLy8vLy8gUGVydmFzaXZlXG4vL1Byb3ZpZGVzOiBjYW1sX2FycmF5X3NldCAobXV0YWJsZSwgY29uc3QsIG11dGFibGUpXG4vL1JlcXVpcmVzOiBjYW1sX2FycmF5X2JvdW5kX2Vycm9yXG5mdW5jdGlvbiBjYW1sX2FycmF5X3NldCAoYXJyYXksIGluZGV4LCBuZXd2YWwpIHtcbiAgaWYgKChpbmRleCA8IDApIHx8IChpbmRleCA+PSBhcnJheS5sZW5ndGggLSAxKSkgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICBhcnJheVtpbmRleCsxXT1uZXd2YWw7IHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2FycmF5X2dldCBtdXRhYmxlIChtdXRhYmxlLCBjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfYXJyYXlfYm91bmRfZXJyb3JcbmZ1bmN0aW9uIGNhbWxfYXJyYXlfZ2V0IChhcnJheSwgaW5kZXgpIHtcbiAgaWYgKChpbmRleCA8IDApIHx8IChpbmRleCA+PSBhcnJheS5sZW5ndGggLSAxKSkgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICByZXR1cm4gYXJyYXlbaW5kZXgrMV07XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYXJyYXlfZmlsbFxuZnVuY3Rpb24gY2FtbF9hcnJheV9maWxsKGFycmF5LCBvZnMsIGxlbiwgdil7XG4gIGZvcih2YXIgaSA9IDA7IGkgPCBsZW47IGkrKyl7XG4gICAgYXJyYXlbb2ZzK2krMV0gPSB2O1xuICB9XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2NoZWNrX2JvdW5kIChtdXRhYmxlLCBjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfYXJyYXlfYm91bmRfZXJyb3JcbmZ1bmN0aW9uIGNhbWxfY2hlY2tfYm91bmQgKGFycmF5LCBpbmRleCkge1xuICBpZiAoaW5kZXggPj4+IDAgPj0gYXJyYXkubGVuZ3RoIC0gMSkgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICByZXR1cm4gYXJyYXk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWFrZV92ZWN0IGNvbnN0IChjb25zdCwgbXV0YWJsZSlcbi8vUmVxdWlyZXM6IGNhbWxfYXJyYXlfYm91bmRfZXJyb3JcbmZ1bmN0aW9uIGNhbWxfbWFrZV92ZWN0IChsZW4sIGluaXQpIHtcbiAgaWYgKGxlbiA8IDApIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgdmFyIGxlbiA9IGxlbiArIDEgfCAwO1xuICB2YXIgYiA9IG5ldyBBcnJheShsZW4pO1xuICBiWzBdPTA7XG4gIGZvciAodmFyIGkgPSAxOyBpIDwgbGVuOyBpKyspIGJbaV0gPSBpbml0O1xuICByZXR1cm4gYjtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tYWtlX2Zsb2F0X3ZlY3QgY29uc3QgKGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9hcnJheV9ib3VuZF9lcnJvclxuZnVuY3Rpb24gY2FtbF9tYWtlX2Zsb2F0X3ZlY3QobGVuKXtcbiAgaWYgKGxlbiA8IDApIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgdmFyIGxlbiA9IGxlbiArIDEgfCAwO1xuICB2YXIgYiA9IG5ldyBBcnJheShsZW4pO1xuICBiWzBdPTI1NDtcbiAgZm9yICh2YXIgaSA9IDE7IGkgPCBsZW47IGkrKykgYltpXSA9IDA7XG4gIHJldHVybiBiXG59XG4vL1Byb3ZpZGVzOiBjYW1sX2Zsb2F0YXJyYXlfY3JlYXRlIGNvbnN0IChjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfYXJyYXlfYm91bmRfZXJyb3JcbmZ1bmN0aW9uIGNhbWxfZmxvYXRhcnJheV9jcmVhdGUobGVuKXtcbiAgaWYgKGxlbiA8IDApIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgdmFyIGxlbiA9IGxlbiArIDEgfCAwO1xuICB2YXIgYiA9IG5ldyBBcnJheShsZW4pO1xuICBiWzBdPTI1NDtcbiAgZm9yICh2YXIgaSA9IDE7IGkgPCBsZW47IGkrKykgYltpXSA9IDA7XG4gIHJldHVybiBiXG59XG4iLCJcbi8vUHJvdmlkZXM6IE1sTXV0ZXhcbmZ1bmN0aW9uIE1sTXV0ZXgoKSB7XG4gIHRoaXMubG9ja2VkID0gZmFsc2Vcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9tdXRleF9uZXdcbi8vUmVxdWlyZXM6IE1sTXV0ZXhcbmZ1bmN0aW9uIGNhbWxfbWxfbXV0ZXhfbmV3KHVuaXQpIHtcbiAgcmV0dXJuIG5ldyBNbE11dGV4KCk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfbXV0ZXhfbG9ja1xuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuZnVuY3Rpb24gY2FtbF9tbF9tdXRleF9sb2NrKHQpIHtcbiAgaWYodC5sb2NrZWQpXG4gICAgY2FtbF9mYWlsd2l0aChcIk11dGV4LmxvY2s6IG11dGV4IGFscmVhZHkgbG9ja2VkLiBDYW5ub3Qgd2FpdC5cIik7XG4gIGVsc2UgdC5sb2NrZWQgPSB0cnVlO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9tdXRleF90cnlfbG9ja1xuZnVuY3Rpb24gY2FtbF9tbF9tdXRleF90cnlfbG9jayh0KSB7XG4gIGlmKCF0LmxvY2tlZCkge1xuICAgIHQubG9ja2VkID0gdHJ1ZTtcbiAgICByZXR1cm4gMTtcbiAgfVxuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9tdXRleF91bmxvY2tcbmZ1bmN0aW9uIGNhbWxfbWxfbXV0ZXhfdW5sb2NrKHQpIHtcbiAgdC5sb2NrZWQgPSBmYWxzZTtcbiAgcmV0dXJuIDA7XG59XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vLyBDb3B5cmlnaHQgKEMpIDIwMTAgSsOpcsO0bWUgVm91aWxsb25cbi8vIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy8gV2VhayBBUElcblxuLy9Qcm92aWRlczogY2FtbF9lcGhlX2tleV9vZmZzZXRcbnZhciBjYW1sX2VwaGVfa2V5X29mZnNldCA9IDNcblxuLy9Qcm92aWRlczogY2FtbF9lcGhlX2RhdGFfb2Zmc2V0XG52YXIgY2FtbF9lcGhlX2RhdGFfb2Zmc2V0ID0gMlxuXG4vL1Byb3ZpZGVzOiBjYW1sX2VwaGVfc2V0X2tleVxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50LCBjYW1sX2VwaGVfa2V5X29mZnNldFxuZnVuY3Rpb24gY2FtbF9lcGhlX3NldF9rZXkoeCwgaSwgdikge1xuICBpZihpIDwgMCB8fCBjYW1sX2VwaGVfa2V5X29mZnNldCArIGkgPj0geC5sZW5ndGgpXG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50IChcIldlYWsuc2V0XCIpO1xuICBpZiAodiBpbnN0YW5jZW9mIE9iamVjdCAmJiBnbG9iYWxUaGlzLldlYWtSZWYpIHtcbiAgICBpZih4WzFdLnJlZ2lzdGVyKSB4WzFdLnJlZ2lzdGVyKHYsIHVuZGVmaW5lZCwgdik7XG4gICAgeFtjYW1sX2VwaGVfa2V5X29mZnNldCArIGldID0gbmV3IGdsb2JhbFRoaXMuV2Vha1JlZih2KTtcbiAgfVxuICBlbHNlIHhbY2FtbF9lcGhlX2tleV9vZmZzZXQgKyBpXSA9IHY7XG4gIHJldHVybiAwXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZXBoZV91bnNldF9rZXlcbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudCwgY2FtbF9lcGhlX2tleV9vZmZzZXRcbmZ1bmN0aW9uIGNhbWxfZXBoZV91bnNldF9rZXkoeCwgaSkge1xuICBpZihpIDwgMCB8fCBjYW1sX2VwaGVfa2V5X29mZnNldCArIGkgPj0geC5sZW5ndGgpXG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50IChcIldlYWsuc2V0XCIpO1xuICBpZihnbG9iYWxUaGlzLldlYWtSZWYgJiYgeFtjYW1sX2VwaGVfa2V5X29mZnNldCArIGldIGluc3RhbmNlb2YgZ2xvYmFsVGhpcy5XZWFrUmVmICYmIHhbMV0udW5yZWdpc3Rlcikge1xuICAgIHZhciBvbGQgPSB4W2NhbWxfZXBoZV9rZXlfb2Zmc2V0ICsgaV0uZGVyZWYoKTtcbiAgICBpZihvbGQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdmFyIGNvdW50ID0gMFxuICAgICAgZm9yKHZhciBqID0gY2FtbF9lcGhlX2tleV9vZmZzZXQ7IGogPCB4Lmxlbmd0aDsgaisrKXtcbiAgICAgICAgdmFyIGtleSA9IHhbal07XG4gICAgICAgIGlmKGtleSBpbnN0YW5jZW9mIGdsb2JhbFRoaXMuV2Vha1JlZil7XG4gICAgICAgICAga2V5ID0ga2V5LmRlcmVmKClcbiAgICAgICAgICBpZihrZXkgPT09IG9sZCkgY291bnQrKztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYoY291bnQgPT0gMSkgeFsxXS51bnJlZ2lzdGVyKG9sZCk7XG4gICAgfVxuICB9XG4gIHhbY2FtbF9lcGhlX2tleV9vZmZzZXQgKyBpXSA9IHVuZGVmaW5lZDtcbiAgcmV0dXJuIDBcbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX2VwaGVfY3JlYXRlXG4vL1JlcXVpcmVzOiBjYW1sX3dlYWtfY3JlYXRlLCBjYW1sX2VwaGVfZGF0YV9vZmZzZXRcbmZ1bmN0aW9uIGNhbWxfZXBoZV9jcmVhdGUgKG4pIHtcbiAgdmFyIHggPSBjYW1sX3dlYWtfY3JlYXRlKG4pO1xuICByZXR1cm4geDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF93ZWFrX2NyZWF0ZVxuLy9SZXF1aXJlczogY2FtbF9lcGhlX2tleV9vZmZzZXQsIGNhbWxfaW52YWxpZF9hcmd1bWVudCxjYW1sX2VwaGVfZGF0YV9vZmZzZXRcbmZ1bmN0aW9uIGNhbWxfd2Vha19jcmVhdGUgKG4pIHtcbiAgaWYgKG4gPCAwKSBjYW1sX2ludmFsaWRfYXJndW1lbnQgKFwiV2Vhay5jcmVhdGVcIik7XG4gIHZhciB4ID0gWzI1MSxcImNhbWxfZXBoZV9saXN0X2hlYWRcIl07XG4gIHgubGVuZ3RoID0gY2FtbF9lcGhlX2tleV9vZmZzZXQgKyBuO1xuICByZXR1cm4geDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF93ZWFrX3NldFxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG4vL1JlcXVpcmVzOiBjYW1sX2VwaGVfc2V0X2tleSwgY2FtbF9lcGhlX3Vuc2V0X2tleVxuZnVuY3Rpb24gY2FtbF93ZWFrX3NldCh4LCBpLCB2KSB7XG4gIGlmKHYgPT0gMCkgY2FtbF9lcGhlX3Vuc2V0X2tleSh4LGkpXG4gIGVsc2UgY2FtbF9lcGhlX3NldF9rZXkoeCxpLHZbMV0pXG4gIHJldHVybiAwO1xufVxuLy9Qcm92aWRlczogY2FtbF9lcGhlX2dldF9rZXlcbi8vUmVxdWlyZXM6IGNhbWxfZXBoZV9rZXlfb2Zmc2V0LCBjYW1sX2ludmFsaWRfYXJndW1lbnRcbi8vQWxpYXM6IGNhbWxfd2Vha19nZXRcbmZ1bmN0aW9uIGNhbWxfZXBoZV9nZXRfa2V5KHgsIGkpIHtcbiAgaWYoaSA8IDAgfHwgY2FtbF9lcGhlX2tleV9vZmZzZXQgKyBpID49IHgubGVuZ3RoKVxuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudCAoXCJXZWFrLmdldF9rZXlcIik7XG4gIHZhciB3ZWFrID0geFtjYW1sX2VwaGVfa2V5X29mZnNldCArIGkgXTtcbiAgaWYoZ2xvYmFsVGhpcy5XZWFrUmVmICYmIHdlYWsgaW5zdGFuY2VvZiBnbG9iYWxUaGlzLldlYWtSZWYpIHdlYWsgPSB3ZWFrLmRlcmVmKCk7XG4gIHJldHVybiAod2Vhaz09PXVuZGVmaW5lZCk/MDpbMCwgd2Vha107XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2VwaGVfZ2V0X2tleV9jb3B5XG4vL1JlcXVpcmVzOiBjYW1sX2VwaGVfZ2V0X2tleSxjYW1sX2VwaGVfa2V5X29mZnNldFxuLy9SZXF1aXJlczogY2FtbF9vYmpfZHVwLCBjYW1sX2ludmFsaWRfYXJndW1lbnRcbi8vQWxpYXM6IGNhbWxfd2Vha19nZXRfY29weVxuZnVuY3Rpb24gY2FtbF9lcGhlX2dldF9rZXlfY29weSh4LCBpKSB7XG4gIGlmKGkgPCAwIHx8IGNhbWxfZXBoZV9rZXlfb2Zmc2V0ICsgaSA+PSB4Lmxlbmd0aClcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQgKFwiV2Vhay5nZXRfY29weVwiKTtcbiAgdmFyIHkgPSBjYW1sX2VwaGVfZ2V0X2tleSh4LCBpKTtcbiAgaWYgKHkgPT09IDApIHJldHVybiB5O1xuICB2YXIgeiA9IHlbMV07XG4gIGlmICh6IGluc3RhbmNlb2YgQXJyYXkpIHJldHVybiBbMCwgY2FtbF9vYmpfZHVwKHopXTtcbiAgcmV0dXJuIHk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZXBoZV9jaGVja19rZXkgbXV0YWJsZVxuLy9SZXF1aXJlczogY2FtbF9lcGhlX2tleV9vZmZzZXRcbi8vQWxpYXM6IGNhbWxfd2Vha19jaGVja1xuZnVuY3Rpb24gY2FtbF9lcGhlX2NoZWNrX2tleSh4LCBpKSB7XG4gIHZhciB3ZWFrID0geFtjYW1sX2VwaGVfa2V5X29mZnNldCArIGldO1xuICBpZihnbG9iYWxUaGlzLldlYWtSZWYgJiYgd2VhayBpbnN0YW5jZW9mIGdsb2JhbFRoaXMuV2Vha1JlZikgd2VhayA9IHdlYWsuZGVyZWYoKTtcbiAgaWYod2Vhaz09PXVuZGVmaW5lZClcbiAgICByZXR1cm4gMDtcbiAgZWxzZVxuICAgIHJldHVybiAxO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2VwaGVfYmxpdF9rZXlcbi8vUmVxdWlyZXM6IGNhbWxfYXJyYXlfYmxpdFxuLy9SZXF1aXJlczogY2FtbF9lcGhlX2tleV9vZmZzZXRcbi8vQWxpYXM6IGNhbWxfd2Vha19ibGl0XG5mdW5jdGlvbiBjYW1sX2VwaGVfYmxpdF9rZXkoYTEsIGkxLCBhMiwgaTIsIGxlbikge1xuICAvLyBtaW51cyBvbmUgYmVjYXVzZSBjYW1sX2FycmF5X2JsaXQgd29ya3Mgb24gb2NhbWwgYXJyYXlcbiAgY2FtbF9hcnJheV9ibGl0KGExLCBjYW1sX2VwaGVfa2V5X29mZnNldCArIGkxIC0gMSxcbiAgICAgICAgICAgICAgICAgIGEyLCBjYW1sX2VwaGVfa2V5X29mZnNldCArIGkyIC0gMSxcbiAgICAgICAgICAgICAgICAgIGxlbik7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2VwaGVfYmxpdF9kYXRhXG4vL1JlcXVpcmVzOiBjYW1sX2VwaGVfZGF0YV9vZmZzZXQsIGNhbWxfZXBoZV9zZXRfZGF0YSwgY2FtbF9lcGhlX3Vuc2V0X2RhdGFcbmZ1bmN0aW9uIGNhbWxfZXBoZV9ibGl0X2RhdGEoc3JjLCBkc3Qpe1xuICB2YXIgbiA9IHNyY1tjYW1sX2VwaGVfZGF0YV9vZmZzZXRdO1xuICBpZihuID09PSB1bmRlZmluZWQpIGNhbWxfZXBoZV91bnNldF9kYXRhKGRzdCk7XG4gIGVsc2UgY2FtbF9lcGhlX3NldF9kYXRhKGRzdCwgbik7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2VwaGVfZ2V0X2RhdGFcbi8vUmVxdWlyZXM6IGNhbWxfZXBoZV9kYXRhX29mZnNldFxuZnVuY3Rpb24gY2FtbF9lcGhlX2dldF9kYXRhKHgpe1xuICBpZih4W2NhbWxfZXBoZV9kYXRhX29mZnNldF0gPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gMDtcbiAgZWxzZVxuICAgIHJldHVybiBbMCwgeFtjYW1sX2VwaGVfZGF0YV9vZmZzZXRdXTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9lcGhlX2dldF9kYXRhX2NvcHlcbi8vUmVxdWlyZXM6IGNhbWxfZXBoZV9kYXRhX29mZnNldFxuLy9SZXF1aXJlczogY2FtbF9vYmpfZHVwXG5mdW5jdGlvbiBjYW1sX2VwaGVfZ2V0X2RhdGFfY29weSh4KXtcbiAgaWYoeFtjYW1sX2VwaGVfZGF0YV9vZmZzZXRdID09PSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIDA7XG4gIGVsc2VcbiAgICByZXR1cm4gWzAsIGNhbWxfb2JqX2R1cCh4W2NhbWxfZXBoZV9kYXRhX29mZnNldF0pXTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9lcGhlX3NldF9kYXRhXG4vL1JlcXVpcmVzOiBjYW1sX2VwaGVfZGF0YV9vZmZzZXQsIGNhbWxfZXBoZV9rZXlfb2Zmc2V0LCBjYW1sX2VwaGVfdW5zZXRfZGF0YVxuZnVuY3Rpb24gY2FtbF9lcGhlX3NldF9kYXRhKHgsIGRhdGEpe1xuICBpZihnbG9iYWxUaGlzLkZpbmFsaXphdGlvblJlZ2lzdHJ5ICYmIGdsb2JhbFRoaXMuV2Vha1JlZikge1xuICAgIGlmKCEgKHhbMV0gaW5zdGFuY2VvZiBnbG9iYWxUaGlzLkZpbmFsaXphdGlvblJlZ2lzdHJ5KSkge1xuICAgICAgeFsxXSA9IG5ldyBnbG9iYWxUaGlzLkZpbmFsaXphdGlvblJlZ2lzdHJ5KGZ1bmN0aW9uICgpIHsgY2FtbF9lcGhlX3Vuc2V0X2RhdGEoeCkgfSk7XG4gICAgICAvL3JlZ2lzdGVyIGFsbCBrZXlzXG4gICAgICBmb3IodmFyIGogPSBjYW1sX2VwaGVfa2V5X29mZnNldDsgaiA8IHgubGVuZ3RoOyBqKyspe1xuICAgICAgICB2YXIga2V5ID0geFtqXTtcbiAgICAgICAgaWYoa2V5IGluc3RhbmNlb2YgZ2xvYmFsVGhpcy5XZWFrUmVmKSB7XG4gICAgICAgICAga2V5ID0ga2V5LmRlcmVmKCk7XG4gICAgICAgICAgaWYoa2V5KSB4WzFdLnJlZ2lzdGVyKGtleSwgdW5kZWZpbmVkLCBrZXkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHhbY2FtbF9lcGhlX2RhdGFfb2Zmc2V0XSA9IGRhdGE7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2VwaGVfdW5zZXRfZGF0YVxuLy9SZXF1aXJlczogY2FtbF9lcGhlX2RhdGFfb2Zmc2V0LCBjYW1sX2VwaGVfa2V5X29mZnNldFxuZnVuY3Rpb24gY2FtbF9lcGhlX3Vuc2V0X2RhdGEoeCl7XG4gIGlmKGdsb2JhbFRoaXMuRmluYWxpemF0aW9uUmVnaXN0cnkgJiYgZ2xvYmFsVGhpcy5XZWFrUmVmKSB7XG4gICAgaWYoeFsxXSBpbnN0YW5jZW9mIGdsb2JhbFRoaXMuRmluYWxpemF0aW9uUmVnaXN0cnkpe1xuICAgICAgLy91bnJlZ2lzdGVyIGFsbCBrZXlzXG4gICAgICBmb3IodmFyIGogPSBjYW1sX2VwaGVfa2V5X29mZnNldDsgaiA8IHgubGVuZ3RoOyBqKyspe1xuICAgICAgICB2YXIga2V5ID0geFtqXTtcbiAgICAgICAgaWYoa2V5IGluc3RhbmNlb2YgZ2xvYmFsVGhpcy5XZWFrUmVmKSB7XG4gICAgICAgICAga2V5ID0ga2V5LmRlcmVmKCk7XG4gICAgICAgICAgaWYoa2V5KSB4WzFdLnVucmVnaXN0ZXIoa2V5KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICB4W2NhbWxfZXBoZV9kYXRhX29mZnNldF0gPSB1bmRlZmluZWQ7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2VwaGVfY2hlY2tfZGF0YVxuLy9SZXF1aXJlczogY2FtbF9lcGhlX2RhdGFfb2Zmc2V0XG5mdW5jdGlvbiBjYW1sX2VwaGVfY2hlY2tfZGF0YSh4KXtcbiAgaWYoeFtjYW1sX2VwaGVfZGF0YV9vZmZzZXRdID09PSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIDA7XG4gIGVsc2VcbiAgICByZXR1cm4gMTtcbn1cbiIsIlxuLy9Qcm92aWRlczogY2FtbF9seG1fbmV4dFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9zaGlmdF9sZWZ0XG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X3NoaWZ0X3JpZ2h0X3Vuc2lnbmVkXG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X29yXG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X3hvclxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9hZGRcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfbXVsXG4vL1JlcXVpcmVzOiBjYW1sX2JhX2dldF8xXG4vL1JlcXVpcmVzOiBjYW1sX2JhX3NldF8xXG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X29mX3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9uZXdfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2x4bV9uZXh0KHYpIHtcbiAgZnVuY3Rpb24gc2hpZnRfbCh4LCBrKXtcbiAgICByZXR1cm4gY2FtbF9pbnQ2NF9zaGlmdF9sZWZ0KHgsayk7XG4gIH1cbiAgZnVuY3Rpb24gc2hpZnRfcih4LCBrKXtcbiAgICByZXR1cm4gY2FtbF9pbnQ2NF9zaGlmdF9yaWdodF91bnNpZ25lZCh4LGspO1xuICB9XG4gIGZ1bmN0aW9uIG9yKGEsIGIpe1xuICAgIHJldHVybiBjYW1sX2ludDY0X29yKGEsYik7XG4gIH1cbiAgZnVuY3Rpb24geG9yKGEsIGIpe1xuICAgIHJldHVybiBjYW1sX2ludDY0X3hvcihhLGIpO1xuICB9XG4gIGZ1bmN0aW9uIGFkZChhLCBiKXtcbiAgICByZXR1cm4gY2FtbF9pbnQ2NF9hZGQoYSxiKTtcbiAgfVxuICBmdW5jdGlvbiBtdWwoYSwgYil7XG4gICAgcmV0dXJuIGNhbWxfaW50NjRfbXVsKGEsYik7XG4gIH1cbiAgZnVuY3Rpb24gcm90bCh4LCBrKSB7XG4gICAgcmV0dXJuIG9yKHNoaWZ0X2woeCxrKSxzaGlmdF9yICh4LCA2NCAtIGspKTtcbiAgfVxuICBmdW5jdGlvbiBnZXQoYSwgaSkge1xuICAgIHJldHVybiBjYW1sX2JhX2dldF8xKGEsIGkpO1xuICB9XG4gIGZ1bmN0aW9uIHNldChhLCBpLCB4KSB7XG4gICAgcmV0dXJuIGNhbWxfYmFfc2V0XzEoYSwgaSwgeCk7XG4gIH1cbiAgdmFyIE0gPSBjYW1sX2ludDY0X29mX3N0cmluZyhjYW1sX25ld19zdHJpbmcoXCIweGQxMzQyNTQzZGU4MmVmOTVcIikpO1xuICB2YXIgZGFiYSA9IGNhbWxfaW50NjRfb2Zfc3RyaW5nKGNhbWxfbmV3X3N0cmluZyhcIjB4ZGFiYTBiNmViMDkzMjJlM1wiKSk7XG4gIHZhciB6LCBxMCwgcTE7XG4gIHZhciBzdCA9IHY7XG4gIHZhciBhID0gZ2V0KHN0LDApO1xuICB2YXIgcyA9IGdldChzdCwxKTtcbiAgdmFyIHgwID0gZ2V0KHN0LDIpO1xuICB2YXIgeDEgPSBnZXQoc3QsMyk7XG4gIC8qIENvbWJpbmluZyBvcGVyYXRpb24gKi9cbiAgeiA9IGFkZChzLCB4MCk7XG4gIC8qIE1peGluZyBmdW5jdGlvbiAqL1xuICB6ID0gbXVsKHhvcih6LHNoaWZ0X3IoeiwzMikpLCBkYWJhKTtcbiAgeiA9IG11bCh4b3IoeixzaGlmdF9yKHosMzIpKSwgZGFiYSk7XG4gIHogPSB4b3IoeixzaGlmdF9yKHosMzIpKTtcbiAgLyogTENHIHVwZGF0ZSAqL1xuICBzZXQoc3QsIDEsIGFkZCAobXVsKHMsTSksIGEpKTtcbiAgLyogWEJHIHVwZGF0ZSAqL1xuICB2YXIgcTAgPSB4MFxuICB2YXIgcTEgPSB4MVxuICBxMSA9IHhvcihxMSxxMCk7XG4gIHEwID0gcm90bChxMCwgMjQpO1xuICBxMCA9IHhvcih4b3IocTAsIHExKSwgKHNoaWZ0X2wocTEsMTYpKSk7XG4gIHExID0gcm90bChxMSwgMzcpO1xuICBzZXQoc3QsIDIsIHEwKTtcbiAgc2V0KHN0LCAzLCBxMSk7XG4gIC8qIFJldHVybiByZXN1bHQgKi9cbiAgcmV0dXJuIHo7XG59XG4iLCJcbi8vUHJvdmlkZXM6IHpzdGRfZGVjb21wcmVzc1xudmFyIHpzdGRfZGVjb21wcmVzcyA9IChmdW5jdGlvbiAoKSB7XG5cInVzZSBzdHJpY3RcIjtcbi8vIGFsaWFzZXMgZm9yIHNob3J0ZXIgY29tcHJlc3NlZCBjb2RlIChtb3N0IG1pbmlmZXJzIGRvbid0IGRvIHRoaXMpXG52YXIgYWIgPSBBcnJheUJ1ZmZlciwgdTggPSBVaW50OEFycmF5LCB1MTYgPSBVaW50MTZBcnJheSwgaTE2ID0gSW50MTZBcnJheSwgdTMyID0gVWludDMyQXJyYXksIGkzMiA9IEludDMyQXJyYXk7XG52YXIgc2xjID0gZnVuY3Rpb24gKHYsIHMsIGUpIHtcbiAgICBpZiAodTgucHJvdG90eXBlLnNsaWNlKVxuICAgICAgICByZXR1cm4gdTgucHJvdG90eXBlLnNsaWNlLmNhbGwodiwgcywgZSk7XG4gICAgaWYgKHMgPT0gbnVsbCB8fCBzIDwgMClcbiAgICAgICAgcyA9IDA7XG4gICAgaWYgKGUgPT0gbnVsbCB8fCBlID4gdi5sZW5ndGgpXG4gICAgICAgIGUgPSB2Lmxlbmd0aDtcbiAgICB2YXIgbiA9IG5ldyB1OChlIC0gcyk7XG4gICAgbi5zZXQodi5zdWJhcnJheShzLCBlKSk7XG4gICAgcmV0dXJuIG47XG59O1xudmFyIGZpbGwgPSBmdW5jdGlvbiAodiwgbiwgcywgZSkge1xuICAgIGlmICh1OC5wcm90b3R5cGUuZmlsbClcbiAgICAgICAgcmV0dXJuIHU4LnByb3RvdHlwZS5maWxsLmNhbGwodiwgbiwgcywgZSk7XG4gICAgaWYgKHMgPT0gbnVsbCB8fCBzIDwgMClcbiAgICAgICAgcyA9IDA7XG4gICAgaWYgKGUgPT0gbnVsbCB8fCBlID4gdi5sZW5ndGgpXG4gICAgICAgIGUgPSB2Lmxlbmd0aDtcbiAgICBmb3IgKDsgcyA8IGU7ICsrcylcbiAgICAgICAgdltzXSA9IG47XG4gICAgcmV0dXJuIHY7XG59O1xudmFyIGNwdyA9IGZ1bmN0aW9uICh2LCB0LCBzLCBlKSB7XG4gICAgaWYgKHU4LnByb3RvdHlwZS5jb3B5V2l0aGluKVxuICAgICAgICByZXR1cm4gdTgucHJvdG90eXBlLmNvcHlXaXRoaW4uY2FsbCh2LCB0LCBzLCBlKTtcbiAgICBpZiAocyA9PSBudWxsIHx8IHMgPCAwKVxuICAgICAgICBzID0gMDtcbiAgICBpZiAoZSA9PSBudWxsIHx8IGUgPiB2Lmxlbmd0aClcbiAgICAgICAgZSA9IHYubGVuZ3RoO1xuICAgIHdoaWxlIChzIDwgZSkge1xuICAgICAgICB2W3QrK10gPSB2W3MrK107XG4gICAgfVxufTtcbi8qKlxuICogQ29kZXMgZm9yIGVycm9ycyBnZW5lcmF0ZWQgd2l0aGluIHRoaXMgbGlicmFyeVxuICovXG4vLyBlcnJvciBjb2Rlc1xudmFyIGVjID0gW1xuICAgICdpbnZhbGlkIHpzdGQgZGF0YScsXG4gICAgJ3dpbmRvdyBzaXplIHRvbyBsYXJnZSAoPjIwNDZNQiknLFxuICAgICdpbnZhbGlkIGJsb2NrIHR5cGUnLFxuICAgICdGU0UgYWNjdXJhY3kgdG9vIGhpZ2gnLFxuICAgICdtYXRjaCBkaXN0YW5jZSB0b28gZmFyIGJhY2snLFxuICAgICd1bmV4cGVjdGVkIEVPRidcbl07XG47XG52YXIgZXJyID0gZnVuY3Rpb24gKGluZCwgbXNnLCBudCkge1xuICAgIHZhciBlID0gbmV3IEVycm9yKG1zZyB8fCBlY1tpbmRdKTtcbiAgICBlLmNvZGUgPSBpbmQ7XG4gICAgaWYgKCFudClcbiAgICAgICAgdGhyb3cgZTtcbiAgICByZXR1cm4gZTtcbn07XG52YXIgcmIgPSBmdW5jdGlvbiAoZCwgYiwgbikge1xuICAgIHZhciBpID0gMCwgbyA9IDA7XG4gICAgZm9yICg7IGkgPCBuOyArK2kpXG4gICAgICAgIG8gfD0gZFtiKytdIDw8IChpIDw8IDMpO1xuICAgIHJldHVybiBvO1xufTtcbnZhciBiNCA9IGZ1bmN0aW9uIChkLCBiKSB7IHJldHVybiAoZFtiXSB8IChkW2IgKyAxXSA8PCA4KSB8IChkW2IgKyAyXSA8PCAxNikgfCAoZFtiICsgM10gPDwgMjQpKSA+Pj4gMDsgfTtcbi8vIHJlYWQgWnN0YW5kYXJkIGZyYW1lIGhlYWRlclxudmFyIHJ6ZmggPSBmdW5jdGlvbiAoZGF0LCB3KSB7XG4gICAgdmFyIG4zID0gZGF0WzBdIHwgKGRhdFsxXSA8PCA4KSB8IChkYXRbMl0gPDwgMTYpO1xuICAgIGlmIChuMyA9PSAweDJGQjUyOCAmJiBkYXRbM10gPT0gMjUzKSB7XG4gICAgICAgIC8vIFpzdGFuZGFyZFxuICAgICAgICB2YXIgZmxnID0gZGF0WzRdO1xuICAgICAgICAvLyAgICBzaW5nbGUgc2VnbWVudCAgICAgICBjaGVja3N1bSAgICAgICAgICAgICBkaWN0IGZsYWcgICAgIGZyYW1lIGNvbnRlbnQgZmxhZ1xuICAgICAgICB2YXIgc3MgPSAoZmxnID4+IDUpICYgMSwgY2MgPSAoZmxnID4+IDIpICYgMSwgZGYgPSBmbGcgJiAzLCBmY2YgPSBmbGcgPj4gNjtcbiAgICAgICAgaWYgKGZsZyAmIDgpXG4gICAgICAgICAgICBlcnIoMCk7XG4gICAgICAgIC8vIGJ5dGVcbiAgICAgICAgdmFyIGJ0ID0gNiAtIHNzO1xuICAgICAgICAvLyBkaWN0IGJ5dGVzXG4gICAgICAgIHZhciBkYiA9IGRmID09IDMgPyA0IDogZGY7XG4gICAgICAgIC8vIGRpY3Rpb25hcnkgaWRcbiAgICAgICAgdmFyIGRpID0gcmIoZGF0LCBidCwgZGIpO1xuICAgICAgICBidCArPSBkYjtcbiAgICAgICAgLy8gZnJhbWUgc2l6ZSBieXRlc1xuICAgICAgICB2YXIgZnNiID0gZmNmID8gKDEgPDwgZmNmKSA6IHNzO1xuICAgICAgICAvLyBmcmFtZSBzb3VyY2Ugc2l6ZVxuICAgICAgICB2YXIgZnNzID0gcmIoZGF0LCBidCwgZnNiKSArICgoZmNmID09IDEpICYmIDI1Nik7XG4gICAgICAgIC8vIHdpbmRvdyBzaXplXG4gICAgICAgIHZhciB3cyA9IGZzcztcbiAgICAgICAgaWYgKCFzcykge1xuICAgICAgICAgICAgLy8gd2luZG93IGRlc2NyaXB0b3JcbiAgICAgICAgICAgIHZhciB3YiA9IDEgPDwgKDEwICsgKGRhdFs1XSA+PiAzKSk7XG4gICAgICAgICAgICB3cyA9IHdiICsgKHdiID4+IDMpICogKGRhdFs1XSAmIDcpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh3cyA+IDIxNDUzODY0OTYpXG4gICAgICAgICAgICBlcnIoMSk7XG4gICAgICAgIHZhciBidWYgPSBuZXcgdTgoKHcgPT0gMSA/IChmc3MgfHwgd3MpIDogdyA/IDAgOiB3cykgKyAxMik7XG4gICAgICAgIGJ1ZlswXSA9IDEsIGJ1Zls0XSA9IDQsIGJ1Zls4XSA9IDg7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBiOiBidCArIGZzYixcbiAgICAgICAgICAgIHk6IDAsXG4gICAgICAgICAgICBsOiAwLFxuICAgICAgICAgICAgZDogZGksXG4gICAgICAgICAgICB3OiAodyAmJiB3ICE9IDEpID8gdyA6IGJ1Zi5zdWJhcnJheSgxMiksXG4gICAgICAgICAgICBlOiB3cyxcbiAgICAgICAgICAgIG86IG5ldyBpMzIoYnVmLmJ1ZmZlciwgMCwgMyksXG4gICAgICAgICAgICB1OiBmc3MsXG4gICAgICAgICAgICBjOiBjYyxcbiAgICAgICAgICAgIG06IE1hdGgubWluKDEzMTA3Miwgd3MpXG4gICAgICAgIH07XG4gICAgfVxuICAgIGVsc2UgaWYgKCgobjMgPj4gNCkgfCAoZGF0WzNdIDw8IDIwKSkgPT0gMHgxODREMkE1KSB7XG4gICAgICAgIC8vIHNraXBwYWJsZVxuICAgICAgICByZXR1cm4gYjQoZGF0LCA0KSArIDg7XG4gICAgfVxuICAgIGVycigwKTtcbn07XG4vLyBtb3N0IHNpZ25pZmljYW50IGJpdCBmb3Igbm9uemVyb1xudmFyIG1zYiA9IGZ1bmN0aW9uICh2YWwpIHtcbiAgICB2YXIgYml0cyA9IDA7XG4gICAgZm9yICg7ICgxIDw8IGJpdHMpIDw9IHZhbDsgKytiaXRzKVxuICAgICAgICA7XG4gICAgcmV0dXJuIGJpdHMgLSAxO1xufTtcbi8vIHJlYWQgZmluaXRlIHN0YXRlIGVudHJvcHlcbnZhciByZnNlID0gZnVuY3Rpb24gKGRhdCwgYnQsIG1hbCkge1xuICAgIC8vIHRhYmxlIHBvc1xuICAgIHZhciB0cG9zID0gKGJ0IDw8IDMpICsgNDtcbiAgICAvLyBhY2N1cmFjeSBsb2dcbiAgICB2YXIgYWwgPSAoZGF0W2J0XSAmIDE1KSArIDU7XG4gICAgaWYgKGFsID4gbWFsKVxuICAgICAgICBlcnIoMyk7XG4gICAgLy8gc2l6ZVxuICAgIHZhciBzeiA9IDEgPDwgYWw7XG4gICAgLy8gcHJvYmFiaWxpdGllcyBzeW1ib2xzICByZXBlYXQgICBpbmRleCAgIGhpZ2ggdGhyZXNob2xkXG4gICAgdmFyIHByb2JzID0gc3osIHN5bSA9IC0xLCByZSA9IC0xLCBpID0gLTEsIGh0ID0gc3o7XG4gICAgLy8gb3B0aW1pemF0aW9uOiBzaW5nbGUgYWxsb2NhdGlvbiBpcyBtdWNoIGZhc3RlclxuICAgIHZhciBidWYgPSBuZXcgYWIoNTEyICsgKHN6IDw8IDIpKTtcbiAgICB2YXIgZnJlcSA9IG5ldyBpMTYoYnVmLCAwLCAyNTYpO1xuICAgIC8vIHNhbWUgdmlldyBhcyBmcmVxXG4gICAgdmFyIGRzdGF0ZSA9IG5ldyB1MTYoYnVmLCAwLCAyNTYpO1xuICAgIHZhciBuc3RhdGUgPSBuZXcgdTE2KGJ1ZiwgNTEyLCBzeik7XG4gICAgdmFyIGJiMSA9IDUxMiArIChzeiA8PCAxKTtcbiAgICB2YXIgc3ltcyA9IG5ldyB1OChidWYsIGJiMSwgc3opO1xuICAgIHZhciBuYml0cyA9IG5ldyB1OChidWYsIGJiMSArIHN6KTtcbiAgICB3aGlsZSAoc3ltIDwgMjU1ICYmIHByb2JzID4gMCkge1xuICAgICAgICB2YXIgYml0cyA9IG1zYihwcm9icyArIDEpO1xuICAgICAgICB2YXIgY2J0ID0gdHBvcyA+PiAzO1xuICAgICAgICAvLyBtYXNrXG4gICAgICAgIHZhciBtc2sgPSAoMSA8PCAoYml0cyArIDEpKSAtIDE7XG4gICAgICAgIHZhciB2YWwgPSAoKGRhdFtjYnRdIHwgKGRhdFtjYnQgKyAxXSA8PCA4KSB8IChkYXRbY2J0ICsgMl0gPDwgMTYpKSA+PiAodHBvcyAmIDcpKSAmIG1zaztcbiAgICAgICAgLy8gbWFzayAoMSBmZXdlciBiaXQpXG4gICAgICAgIHZhciBtc2sxZmIgPSAoMSA8PCBiaXRzKSAtIDE7XG4gICAgICAgIC8vIG1heCBzbWFsbCB2YWx1ZVxuICAgICAgICB2YXIgbXN2ID0gbXNrIC0gcHJvYnMgLSAxO1xuICAgICAgICAvLyBzbWFsbCB2YWx1ZVxuICAgICAgICB2YXIgc3ZhbCA9IHZhbCAmIG1zazFmYjtcbiAgICAgICAgaWYgKHN2YWwgPCBtc3YpXG4gICAgICAgICAgICB0cG9zICs9IGJpdHMsIHZhbCA9IHN2YWw7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdHBvcyArPSBiaXRzICsgMTtcbiAgICAgICAgICAgIGlmICh2YWwgPiBtc2sxZmIpXG4gICAgICAgICAgICAgICAgdmFsIC09IG1zdjtcbiAgICAgICAgfVxuICAgICAgICBmcmVxWysrc3ltXSA9IC0tdmFsO1xuICAgICAgICBpZiAodmFsID09IC0xKSB7XG4gICAgICAgICAgICBwcm9icyArPSB2YWw7XG4gICAgICAgICAgICBzeW1zWy0taHRdID0gc3ltO1xuICAgICAgICB9XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHByb2JzIC09IHZhbDtcbiAgICAgICAgaWYgKCF2YWwpIHtcbiAgICAgICAgICAgIGRvIHtcbiAgICAgICAgICAgICAgICAvLyByZXBlYXQgYnl0ZVxuICAgICAgICAgICAgICAgIHZhciByYnQgPSB0cG9zID4+IDM7XG4gICAgICAgICAgICAgICAgcmUgPSAoKGRhdFtyYnRdIHwgKGRhdFtyYnQgKyAxXSA8PCA4KSkgPj4gKHRwb3MgJiA3KSkgJiAzO1xuICAgICAgICAgICAgICAgIHRwb3MgKz0gMjtcbiAgICAgICAgICAgICAgICBzeW0gKz0gcmU7XG4gICAgICAgICAgICB9IHdoaWxlIChyZSA9PSAzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoc3ltID4gMjU1IHx8IHByb2JzKVxuICAgICAgICBlcnIoMCk7XG4gICAgdmFyIHN5bXBvcyA9IDA7XG4gICAgLy8gc3ltIHN0ZXAgKGNvcHJpbWUgd2l0aCBzeiAtIGZvcm11bGEgZnJvbSB6c3RkIHNvdXJjZSlcbiAgICB2YXIgc3N0ZXAgPSAoc3ogPj4gMSkgKyAoc3ogPj4gMykgKyAzO1xuICAgIC8vIHN5bSBtYXNrXG4gICAgdmFyIHNtYXNrID0gc3ogLSAxO1xuICAgIGZvciAodmFyIHMgPSAwOyBzIDw9IHN5bTsgKytzKSB7XG4gICAgICAgIHZhciBzZiA9IGZyZXFbc107XG4gICAgICAgIGlmIChzZiA8IDEpIHtcbiAgICAgICAgICAgIGRzdGF0ZVtzXSA9IC1zZjtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIC8vIFRoaXMgaXMgc3BsaXQgaW50byB0d28gbG9vcHMgaW4genN0ZCB0byBhdm9pZCBicmFuY2hpbmcsIGJ1dCBhcyBKUyBpcyBoaWdoZXItbGV2ZWwgdGhhdCBpcyB1bm5lY2Vzc2FyeVxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgc2Y7ICsraSkge1xuICAgICAgICAgICAgc3ltc1tzeW1wb3NdID0gcztcbiAgICAgICAgICAgIGRvIHtcbiAgICAgICAgICAgICAgICBzeW1wb3MgPSAoc3ltcG9zICsgc3N0ZXApICYgc21hc2s7XG4gICAgICAgICAgICB9IHdoaWxlIChzeW1wb3MgPj0gaHQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEFmdGVyIHNwcmVhZGluZyBzeW1ib2xzLCBzaG91bGQgYmUgemVybyBhZ2FpblxuICAgIGlmIChzeW1wb3MpXG4gICAgICAgIGVycigwKTtcbiAgICBmb3IgKGkgPSAwOyBpIDwgc3o7ICsraSkge1xuICAgICAgICAvLyBuZXh0IHN0YXRlXG4gICAgICAgIHZhciBucyA9IGRzdGF0ZVtzeW1zW2ldXSsrO1xuICAgICAgICAvLyBudW0gYml0c1xuICAgICAgICB2YXIgbmIgPSBuYml0c1tpXSA9IGFsIC0gbXNiKG5zKTtcbiAgICAgICAgbnN0YXRlW2ldID0gKG5zIDw8IG5iKSAtIHN6O1xuICAgIH1cbiAgICByZXR1cm4gWyh0cG9zICsgNykgPj4gMywge1xuICAgICAgICAgICAgYjogYWwsXG4gICAgICAgICAgICBzOiBzeW1zLFxuICAgICAgICAgICAgbjogbmJpdHMsXG4gICAgICAgICAgICB0OiBuc3RhdGVcbiAgICAgICAgfV07XG59O1xuLy8gcmVhZCBodWZmbWFuXG52YXIgcmh1ID0gZnVuY3Rpb24gKGRhdCwgYnQpIHtcbiAgICAvLyAgaW5kZXggIHdlaWdodCBjb3VudFxuICAgIHZhciBpID0gMCwgd2MgPSAtMTtcbiAgICAvLyAgICBidWZmZXIgICAgICAgICAgICAgaGVhZGVyIGJ5dGVcbiAgICB2YXIgYnVmID0gbmV3IHU4KDI5MiksIGhiID0gZGF0W2J0XTtcbiAgICAvLyBodWZmbWFuIHdlaWdodHNcbiAgICB2YXIgaHcgPSBidWYuc3ViYXJyYXkoMCwgMjU2KTtcbiAgICAvLyByYW5rIGNvdW50XG4gICAgdmFyIHJjID0gYnVmLnN1YmFycmF5KDI1NiwgMjY4KTtcbiAgICAvLyByYW5rIGluZGV4XG4gICAgdmFyIHJpID0gbmV3IHUxNihidWYuYnVmZmVyLCAyNjgpO1xuICAgIC8vIE5PVEU6IGF0IHRoaXMgcG9pbnQgYnQgaXMgMSBsZXNzIHRoYW4gZXhwZWN0ZWRcbiAgICBpZiAoaGIgPCAxMjgpIHtcbiAgICAgICAgLy8gZW5kIGJ5dGUsIGZzZSBkZWNvZGUgdGFibGVcbiAgICAgICAgdmFyIF9hID0gcmZzZShkYXQsIGJ0ICsgMSwgNiksIGVidCA9IF9hWzBdLCBmZHQgPSBfYVsxXTtcbiAgICAgICAgYnQgKz0gaGI7XG4gICAgICAgIHZhciBlcG9zID0gZWJ0IDw8IDM7XG4gICAgICAgIC8vIGxhc3QgYnl0ZVxuICAgICAgICB2YXIgbGIgPSBkYXRbYnRdO1xuICAgICAgICBpZiAoIWxiKVxuICAgICAgICAgICAgZXJyKDApO1xuICAgICAgICAvLyAgc3RhdGUxICAgc3RhdGUyICAgc3RhdGUxIGJpdHMgICBzdGF0ZTIgYml0c1xuICAgICAgICB2YXIgc3QxID0gMCwgc3QyID0gMCwgYnRyMSA9IGZkdC5iLCBidHIyID0gYnRyMTtcbiAgICAgICAgLy8gZnNlIHBvc1xuICAgICAgICAvLyBwcmUtaW5jcmVtZW50IHRvIGFjY291bnQgZm9yIG9yaWdpbmFsIGRlZmljaXQgb2YgMVxuICAgICAgICB2YXIgZnBvcyA9ICgrK2J0IDw8IDMpIC0gOCArIG1zYihsYik7XG4gICAgICAgIGZvciAoOzspIHtcbiAgICAgICAgICAgIGZwb3MgLT0gYnRyMTtcbiAgICAgICAgICAgIGlmIChmcG9zIDwgZXBvcylcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIHZhciBjYnQgPSBmcG9zID4+IDM7XG4gICAgICAgICAgICBzdDEgKz0gKChkYXRbY2J0XSB8IChkYXRbY2J0ICsgMV0gPDwgOCkpID4+IChmcG9zICYgNykpICYgKCgxIDw8IGJ0cjEpIC0gMSk7XG4gICAgICAgICAgICBod1srK3djXSA9IGZkdC5zW3N0MV07XG4gICAgICAgICAgICBmcG9zIC09IGJ0cjI7XG4gICAgICAgICAgICBpZiAoZnBvcyA8IGVwb3MpXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYnQgPSBmcG9zID4+IDM7XG4gICAgICAgICAgICBzdDIgKz0gKChkYXRbY2J0XSB8IChkYXRbY2J0ICsgMV0gPDwgOCkpID4+IChmcG9zICYgNykpICYgKCgxIDw8IGJ0cjIpIC0gMSk7XG4gICAgICAgICAgICBod1srK3djXSA9IGZkdC5zW3N0Ml07XG4gICAgICAgICAgICBidHIxID0gZmR0Lm5bc3QxXTtcbiAgICAgICAgICAgIHN0MSA9IGZkdC50W3N0MV07XG4gICAgICAgICAgICBidHIyID0gZmR0Lm5bc3QyXTtcbiAgICAgICAgICAgIHN0MiA9IGZkdC50W3N0Ml07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCsrd2MgPiAyNTUpXG4gICAgICAgICAgICBlcnIoMCk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB3YyA9IGhiIC0gMTI3O1xuICAgICAgICBmb3IgKDsgaSA8IHdjOyBpICs9IDIpIHtcbiAgICAgICAgICAgIHZhciBieXRlID0gZGF0WysrYnRdO1xuICAgICAgICAgICAgaHdbaV0gPSBieXRlID4+IDQ7XG4gICAgICAgICAgICBod1tpICsgMV0gPSBieXRlICYgMTU7XG4gICAgICAgIH1cbiAgICAgICAgKytidDtcbiAgICB9XG4gICAgLy8gd2VpZ2h0IGV4cG9uZW50aWFsIHN1bVxuICAgIHZhciB3ZXMgPSAwO1xuICAgIGZvciAoaSA9IDA7IGkgPCB3YzsgKytpKSB7XG4gICAgICAgIHZhciB3dCA9IGh3W2ldO1xuICAgICAgICAvLyBiaXRzIG11c3QgYmUgYXQgbW9zdCAxMSwgc2FtZSBhcyB3ZWlnaHRcbiAgICAgICAgaWYgKHd0ID4gMTEpXG4gICAgICAgICAgICBlcnIoMCk7XG4gICAgICAgIHdlcyArPSB3dCAmJiAoMSA8PCAod3QgLSAxKSk7XG4gICAgfVxuICAgIC8vIG1heCBiaXRzXG4gICAgdmFyIG1iID0gbXNiKHdlcykgKyAxO1xuICAgIC8vIHRhYmxlIHNpemVcbiAgICB2YXIgdHMgPSAxIDw8IG1iO1xuICAgIC8vIHJlbWFpbmluZyBzdW1cbiAgICB2YXIgcmVtID0gdHMgLSB3ZXM7XG4gICAgLy8gbXVzdCBiZSBwb3dlciBvZiAyXG4gICAgaWYgKHJlbSAmIChyZW0gLSAxKSlcbiAgICAgICAgZXJyKDApO1xuICAgIGh3W3djKytdID0gbXNiKHJlbSkgKyAxO1xuICAgIGZvciAoaSA9IDA7IGkgPCB3YzsgKytpKSB7XG4gICAgICAgIHZhciB3dCA9IGh3W2ldO1xuICAgICAgICArK3JjW2h3W2ldID0gd3QgJiYgKG1iICsgMSAtIHd0KV07XG4gICAgfVxuICAgIC8vIGh1ZiBidWZcbiAgICB2YXIgaGJ1ZiA9IG5ldyB1OCh0cyA8PCAxKTtcbiAgICAvLyAgICBzeW1ib2xzICAgICAgICAgICAgICAgICAgICAgIG51bSBiaXRzXG4gICAgdmFyIHN5bXMgPSBoYnVmLnN1YmFycmF5KDAsIHRzKSwgbmIgPSBoYnVmLnN1YmFycmF5KHRzKTtcbiAgICByaVttYl0gPSAwO1xuICAgIGZvciAoaSA9IG1iOyBpID4gMDsgLS1pKSB7XG4gICAgICAgIHZhciBwdiA9IHJpW2ldO1xuICAgICAgICBmaWxsKG5iLCBpLCBwdiwgcmlbaSAtIDFdID0gcHYgKyByY1tpXSAqICgxIDw8IChtYiAtIGkpKSk7XG4gICAgfVxuICAgIGlmIChyaVswXSAhPSB0cylcbiAgICAgICAgZXJyKDApO1xuICAgIGZvciAoaSA9IDA7IGkgPCB3YzsgKytpKSB7XG4gICAgICAgIHZhciBiaXRzID0gaHdbaV07XG4gICAgICAgIGlmIChiaXRzKSB7XG4gICAgICAgICAgICB2YXIgY29kZSA9IHJpW2JpdHNdO1xuICAgICAgICAgICAgZmlsbChzeW1zLCBpLCBjb2RlLCByaVtiaXRzXSA9IGNvZGUgKyAoMSA8PCAobWIgLSBiaXRzKSkpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBbYnQsIHtcbiAgICAgICAgICAgIG46IG5iLFxuICAgICAgICAgICAgYjogbWIsXG4gICAgICAgICAgICBzOiBzeW1zXG4gICAgICAgIH1dO1xufTtcbi8vIFRhYmxlcyBnZW5lcmF0ZWQgdXNpbmcgdGhpczpcbi8vIGh0dHBzOi8vZ2lzdC5naXRodWIuY29tLzEwMWFycm93ei9hOTc5NDUyZDQzNTU5OTJjYmY4ZjI1N2NiZmZjOWVkZFxuLy8gZGVmYXVsdCBsaXRlcmFsIGxlbmd0aCB0YWJsZVxudmFyIGRsbHQgPSAvKiNfX1BVUkVfXyovIHJmc2UoLyojX19QVVJFX18qLyBuZXcgdTgoW1xuICAgIDgxLCAxNiwgOTksIDE0MCwgNDksIDE5OCwgMjQsIDk5LCAxMiwgMzMsIDE5NiwgMjQsIDk5LCAxMDIsIDEwMiwgMTM0LCA3MCwgMTQ2LCA0XG5dKSwgMCwgNilbMV07XG4vLyBkZWZhdWx0IG1hdGNoIGxlbmd0aCB0YWJsZVxudmFyIGRtbHQgPSAvKiNfX1BVUkVfXyovIHJmc2UoLyojX19QVVJFX18qLyBuZXcgdTgoW1xuICAgIDMzLCAyMCwgMTk2LCAyNCwgOTksIDE0MCwgMzMsIDEzMiwgMTYsIDY2LCA4LCAzMywgMTMyLCAxNiwgNjYsIDgsIDMzLCA2OCwgNjgsIDY4LCA2OCwgNjgsIDY4LCA2OCwgNjgsIDM2LCA5XG5dKSwgMCwgNilbMV07XG4vLyBkZWZhdWx0IG9mZnNldCBjb2RlIHRhYmxlXG52YXIgZG9jdCA9IC8qI19fUFVSRV9fICovIHJmc2UoLyojX19QVVJFX18qLyBuZXcgdTgoW1xuICAgIDMyLCAxMzIsIDE2LCA2NiwgMTAyLCA3MCwgNjgsIDY4LCA2OCwgNjgsIDM2LCA3MywgMlxuXSksIDAsIDUpWzFdO1xuLy8gYml0cyB0byBiYXNlbGluZVxudmFyIGIyYmwgPSBmdW5jdGlvbiAoYiwgcykge1xuICAgIHZhciBsZW4gPSBiLmxlbmd0aCwgYmwgPSBuZXcgaTMyKGxlbik7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47ICsraSkge1xuICAgICAgICBibFtpXSA9IHM7XG4gICAgICAgIHMgKz0gMSA8PCBiW2ldO1xuICAgIH1cbiAgICByZXR1cm4gYmw7XG59O1xuLy8gbGl0ZXJhbCBsZW5ndGggYml0c1xudmFyIGxsYiA9IC8qI19fUFVSRV9fICovIG5ldyB1OCgoIC8qI19fUFVSRV9fICovbmV3IGkzMihbXG4gICAgMCwgMCwgMCwgMCwgMTY4NDMwMDksIDUwNTI4NzcwLCAxMzQ2NzgwMjAsIDIwMjA1MDA1NywgMjY5NDIyMDkzXG5dKSkuYnVmZmVyLCAwLCAzNik7XG4vLyBsaXRlcmFsIGxlbmd0aCBiYXNlbGluZVxudmFyIGxsYmwgPSAvKiNfX1BVUkVfXyAqLyBiMmJsKGxsYiwgMCk7XG4vLyBtYXRjaCBsZW5ndGggYml0c1xudmFyIG1sYiA9IC8qI19fUFVSRV9fICovIG5ldyB1OCgoIC8qI19fUFVSRV9fICovbmV3IGkzMihbXG4gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTY4NDMwMDksIDUwNTI4NzcwLCAxMTc3NjkyMjAsIDE4NTIwNzA0OCwgMjUyNTc5MDg0LCAxNlxuXSkpLmJ1ZmZlciwgMCwgNTMpO1xuLy8gbWF0Y2ggbGVuZ3RoIGJhc2VsaW5lXG52YXIgbWxibCA9IC8qI19fUFVSRV9fICovIGIyYmwobWxiLCAzKTtcbi8vIGRlY29kZSBodWZmbWFuIHN0cmVhbVxudmFyIGRodSA9IGZ1bmN0aW9uIChkYXQsIG91dCwgaHUpIHtcbiAgICB2YXIgbGVuID0gZGF0Lmxlbmd0aCwgc3MgPSBvdXQubGVuZ3RoLCBsYiA9IGRhdFtsZW4gLSAxXSwgbXNrID0gKDEgPDwgaHUuYikgLSAxLCBlYiA9IC1odS5iO1xuICAgIGlmICghbGIpXG4gICAgICAgIGVycigwKTtcbiAgICB2YXIgc3QgPSAwLCBidHIgPSBodS5iLCBwb3MgPSAobGVuIDw8IDMpIC0gOCArIG1zYihsYikgLSBidHIsIGkgPSAtMTtcbiAgICBmb3IgKDsgcG9zID4gZWIgJiYgaSA8IHNzOykge1xuICAgICAgICB2YXIgY2J0ID0gcG9zID4+IDM7XG4gICAgICAgIHZhciB2YWwgPSAoZGF0W2NidF0gfCAoZGF0W2NidCArIDFdIDw8IDgpIHwgKGRhdFtjYnQgKyAyXSA8PCAxNikpID4+IChwb3MgJiA3KTtcbiAgICAgICAgc3QgPSAoKHN0IDw8IGJ0cikgfCB2YWwpICYgbXNrO1xuICAgICAgICBvdXRbKytpXSA9IGh1LnNbc3RdO1xuICAgICAgICBwb3MgLT0gKGJ0ciA9IGh1Lm5bc3RdKTtcbiAgICB9XG4gICAgaWYgKHBvcyAhPSBlYiB8fCBpICsgMSAhPSBzcylcbiAgICAgICAgZXJyKDApO1xufTtcbi8vIGRlY29kZSBodWZmbWFuIHN0cmVhbSA0eFxuLy8gVE9ETzogdXNlIHdvcmtlcnMgdG8gcGFyYWxsZWxpemVcbnZhciBkaHU0ID0gZnVuY3Rpb24gKGRhdCwgb3V0LCBodSkge1xuICAgIHZhciBidCA9IDY7XG4gICAgdmFyIHNzID0gb3V0Lmxlbmd0aCwgc3oxID0gKHNzICsgMykgPj4gMiwgc3oyID0gc3oxIDw8IDEsIHN6MyA9IHN6MSArIHN6MjtcbiAgICBkaHUoZGF0LnN1YmFycmF5KGJ0LCBidCArPSBkYXRbMF0gfCAoZGF0WzFdIDw8IDgpKSwgb3V0LnN1YmFycmF5KDAsIHN6MSksIGh1KTtcbiAgICBkaHUoZGF0LnN1YmFycmF5KGJ0LCBidCArPSBkYXRbMl0gfCAoZGF0WzNdIDw8IDgpKSwgb3V0LnN1YmFycmF5KHN6MSwgc3oyKSwgaHUpO1xuICAgIGRodShkYXQuc3ViYXJyYXkoYnQsIGJ0ICs9IGRhdFs0XSB8IChkYXRbNV0gPDwgOCkpLCBvdXQuc3ViYXJyYXkoc3oyLCBzejMpLCBodSk7XG4gICAgZGh1KGRhdC5zdWJhcnJheShidCksIG91dC5zdWJhcnJheShzejMpLCBodSk7XG59O1xuLy8gcmVhZCBac3RhbmRhcmQgYmxvY2tcbnZhciByemIgPSBmdW5jdGlvbiAoZGF0LCBzdCwgb3V0KSB7XG4gICAgdmFyIF9hO1xuICAgIHZhciBidCA9IHN0LmI7XG4gICAgLy8gICAgYnl0ZSAwICAgICAgICBibG9jayB0eXBlXG4gICAgdmFyIGIwID0gZGF0W2J0XSwgYnR5cGUgPSAoYjAgPj4gMSkgJiAzO1xuICAgIHN0LmwgPSBiMCAmIDE7XG4gICAgdmFyIHN6ID0gKGIwID4+IDMpIHwgKGRhdFtidCArIDFdIDw8IDUpIHwgKGRhdFtidCArIDJdIDw8IDEzKTtcbiAgICAvLyBlbmQgYnl0ZSBmb3IgYmxvY2tcbiAgICB2YXIgZWJ0ID0gKGJ0ICs9IDMpICsgc3o7XG4gICAgaWYgKGJ0eXBlID09IDEpIHtcbiAgICAgICAgaWYgKGJ0ID49IGRhdC5sZW5ndGgpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHN0LmIgPSBidCArIDE7XG4gICAgICAgIGlmIChvdXQpIHtcbiAgICAgICAgICAgIGZpbGwob3V0LCBkYXRbYnRdLCBzdC55LCBzdC55ICs9IHN6KTtcbiAgICAgICAgICAgIHJldHVybiBvdXQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZpbGwobmV3IHU4KHN6KSwgZGF0W2J0XSk7XG4gICAgfVxuICAgIGlmIChlYnQgPiBkYXQubGVuZ3RoKVxuICAgICAgICByZXR1cm47XG4gICAgaWYgKGJ0eXBlID09IDApIHtcbiAgICAgICAgc3QuYiA9IGVidDtcbiAgICAgICAgaWYgKG91dCkge1xuICAgICAgICAgICAgb3V0LnNldChkYXQuc3ViYXJyYXkoYnQsIGVidCksIHN0LnkpO1xuICAgICAgICAgICAgc3QueSArPSBzejtcbiAgICAgICAgICAgIHJldHVybiBvdXQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNsYyhkYXQsIGJ0LCBlYnQpO1xuICAgIH1cbiAgICBpZiAoYnR5cGUgPT0gMikge1xuICAgICAgICAvLyAgICBieXRlIDMgICAgICAgIGxpdCBidHlwZSAgICAgc2l6ZSBmb3JtYXRcbiAgICAgICAgdmFyIGIzID0gZGF0W2J0XSwgbGJ0ID0gYjMgJiAzLCBzZiA9IChiMyA+PiAyKSAmIDM7XG4gICAgICAgIC8vIGxpdCBzcmMgc2l6ZSAgbGl0IGNtcCBzeiA0IHN0cmVhbXNcbiAgICAgICAgdmFyIGxzcyA9IGIzID4+IDQsIGxjcyA9IDAsIHM0ID0gMDtcbiAgICAgICAgaWYgKGxidCA8IDIpIHtcbiAgICAgICAgICAgIGlmIChzZiAmIDEpXG4gICAgICAgICAgICAgICAgbHNzIHw9IChkYXRbKytidF0gPDwgNCkgfCAoKHNmICYgMikgJiYgKGRhdFsrK2J0XSA8PCAxMikpO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIGxzcyA9IGIzID4+IDM7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBzNCA9IHNmO1xuICAgICAgICAgICAgaWYgKHNmIDwgMilcbiAgICAgICAgICAgICAgICBsc3MgfD0gKChkYXRbKytidF0gJiA2MykgPDwgNCksIGxjcyA9IChkYXRbYnRdID4+IDYpIHwgKGRhdFsrK2J0XSA8PCAyKTtcbiAgICAgICAgICAgIGVsc2UgaWYgKHNmID09IDIpXG4gICAgICAgICAgICAgICAgbHNzIHw9IChkYXRbKytidF0gPDwgNCkgfCAoKGRhdFsrK2J0XSAmIDMpIDw8IDEyKSwgbGNzID0gKGRhdFtidF0gPj4gMikgfCAoZGF0WysrYnRdIDw8IDYpO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIGxzcyB8PSAoZGF0WysrYnRdIDw8IDQpIHwgKChkYXRbKytidF0gJiA2MykgPDwgMTIpLCBsY3MgPSAoZGF0W2J0XSA+PiA2KSB8IChkYXRbKytidF0gPDwgMikgfCAoZGF0WysrYnRdIDw8IDEwKTtcbiAgICAgICAgfVxuICAgICAgICArK2J0O1xuICAgICAgICAvLyBhZGQgbGl0ZXJhbHMgdG8gZW5kIC0gY2FuIG5ldmVyIG92ZXJsYXAgd2l0aCBiYWNrcmVmZXJlbmNlcyBiZWNhdXNlIHVudXNlZCBsaXRlcmFscyBhbHdheXMgYXBwZW5kZWRcbiAgICAgICAgdmFyIGJ1ZiA9IG91dCA/IG91dC5zdWJhcnJheShzdC55LCBzdC55ICsgc3QubSkgOiBuZXcgdTgoc3QubSk7XG4gICAgICAgIC8vIHN0YXJ0aW5nIHBvaW50IGZvciBsaXRlcmFsc1xuICAgICAgICB2YXIgc3BsID0gYnVmLmxlbmd0aCAtIGxzcztcbiAgICAgICAgaWYgKGxidCA9PSAwKVxuICAgICAgICAgICAgYnVmLnNldChkYXQuc3ViYXJyYXkoYnQsIGJ0ICs9IGxzcyksIHNwbCk7XG4gICAgICAgIGVsc2UgaWYgKGxidCA9PSAxKVxuICAgICAgICAgICAgZmlsbChidWYsIGRhdFtidCsrXSwgc3BsKTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAvLyBodWZmbWFuIHRhYmxlXG4gICAgICAgICAgICB2YXIgaHUgPSBzdC5oO1xuICAgICAgICAgICAgaWYgKGxidCA9PSAyKSB7XG4gICAgICAgICAgICAgICAgdmFyIGh1ZCA9IHJodShkYXQsIGJ0KTtcbiAgICAgICAgICAgICAgICAvLyBzdWJ0cmFjdCBkZXNjcmlwdGlvbiBsZW5ndGhcbiAgICAgICAgICAgICAgICBsY3MgKz0gYnQgLSAoYnQgPSBodWRbMF0pO1xuICAgICAgICAgICAgICAgIHN0LmggPSBodSA9IGh1ZFsxXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKCFodSlcbiAgICAgICAgICAgICAgICBlcnIoMCk7XG4gICAgICAgICAgICAoczQgPyBkaHU0IDogZGh1KShkYXQuc3ViYXJyYXkoYnQsIGJ0ICs9IGxjcyksIGJ1Zi5zdWJhcnJheShzcGwpLCBodSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gbnVtIHNlcXVlbmNlc1xuICAgICAgICB2YXIgbnMgPSBkYXRbYnQrK107XG4gICAgICAgIGlmIChucykge1xuICAgICAgICAgICAgaWYgKG5zID09IDI1NSlcbiAgICAgICAgICAgICAgICBucyA9IChkYXRbYnQrK10gfCAoZGF0W2J0KytdIDw8IDgpKSArIDB4N0YwMDtcbiAgICAgICAgICAgIGVsc2UgaWYgKG5zID4gMTI3KVxuICAgICAgICAgICAgICAgIG5zID0gKChucyAtIDEyOCkgPDwgOCkgfCBkYXRbYnQrK107XG4gICAgICAgICAgICAvLyBzeW1ib2wgY29tcHJlc3Npb24gbW9kZXNcbiAgICAgICAgICAgIHZhciBzY20gPSBkYXRbYnQrK107XG4gICAgICAgICAgICBpZiAoc2NtICYgMylcbiAgICAgICAgICAgICAgICBlcnIoMCk7XG4gICAgICAgICAgICB2YXIgZHRzID0gW2RtbHQsIGRvY3QsIGRsbHRdO1xuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDI7IGkgPiAtMTsgLS1pKSB7XG4gICAgICAgICAgICAgICAgdmFyIG1kID0gKHNjbSA+PiAoKGkgPDwgMSkgKyAyKSkgJiAzO1xuICAgICAgICAgICAgICAgIGlmIChtZCA9PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHJsZSBidWZcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJidWYgPSBuZXcgdTgoWzAsIDAsIGRhdFtidCsrXV0pO1xuICAgICAgICAgICAgICAgICAgICBkdHNbaV0gPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzOiByYnVmLnN1YmFycmF5KDIsIDMpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbjogcmJ1Zi5zdWJhcnJheSgwLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHQ6IG5ldyB1MTYocmJ1Zi5idWZmZXIsIDAsIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgYjogMFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChtZCA9PSAyKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGFjY3VyYWN5IGxvZyA4IGZvciBvZmZzZXRzLCA5IGZvciBvdGhlcnNcbiAgICAgICAgICAgICAgICAgICAgX2EgPSByZnNlKGRhdCwgYnQsIDkgLSAoaSAmIDEpKSwgYnQgPSBfYVswXSwgZHRzW2ldID0gX2FbMV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1kID09IDMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFzdC50KVxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyKDApO1xuICAgICAgICAgICAgICAgICAgICBkdHNbaV0gPSBzdC50W2ldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBfYiA9IHN0LnQgPSBkdHMsIG1sdCA9IF9iWzBdLCBvY3QgPSBfYlsxXSwgbGx0ID0gX2JbMl07XG4gICAgICAgICAgICB2YXIgbGIgPSBkYXRbZWJ0IC0gMV07XG4gICAgICAgICAgICBpZiAoIWxiKVxuICAgICAgICAgICAgICAgIGVycigwKTtcbiAgICAgICAgICAgIHZhciBzcG9zID0gKGVidCA8PCAzKSAtIDggKyBtc2IobGIpIC0gbGx0LmIsIGNidCA9IHNwb3MgPj4gMywgb3VidCA9IDA7XG4gICAgICAgICAgICB2YXIgbHN0ID0gKChkYXRbY2J0XSB8IChkYXRbY2J0ICsgMV0gPDwgOCkpID4+IChzcG9zICYgNykpICYgKCgxIDw8IGxsdC5iKSAtIDEpO1xuICAgICAgICAgICAgY2J0ID0gKHNwb3MgLT0gb2N0LmIpID4+IDM7XG4gICAgICAgICAgICB2YXIgb3N0ID0gKChkYXRbY2J0XSB8IChkYXRbY2J0ICsgMV0gPDwgOCkpID4+IChzcG9zICYgNykpICYgKCgxIDw8IG9jdC5iKSAtIDEpO1xuICAgICAgICAgICAgY2J0ID0gKHNwb3MgLT0gbWx0LmIpID4+IDM7XG4gICAgICAgICAgICB2YXIgbXN0ID0gKChkYXRbY2J0XSB8IChkYXRbY2J0ICsgMV0gPDwgOCkpID4+IChzcG9zICYgNykpICYgKCgxIDw8IG1sdC5iKSAtIDEpO1xuICAgICAgICAgICAgZm9yICgrK25zOyAtLW5zOykge1xuICAgICAgICAgICAgICAgIHZhciBsbGMgPSBsbHQuc1tsc3RdO1xuICAgICAgICAgICAgICAgIHZhciBsYnRyID0gbGx0Lm5bbHN0XTtcbiAgICAgICAgICAgICAgICB2YXIgbWxjID0gbWx0LnNbbXN0XTtcbiAgICAgICAgICAgICAgICB2YXIgbWJ0ciA9IG1sdC5uW21zdF07XG4gICAgICAgICAgICAgICAgdmFyIG9mYyA9IG9jdC5zW29zdF07XG4gICAgICAgICAgICAgICAgdmFyIG9idHIgPSBvY3Qubltvc3RdO1xuICAgICAgICAgICAgICAgIGNidCA9IChzcG9zIC09IG9mYykgPj4gMztcbiAgICAgICAgICAgICAgICB2YXIgb2ZwID0gMSA8PCBvZmM7XG4gICAgICAgICAgICAgICAgdmFyIG9mZiA9IG9mcCArICgoKGRhdFtjYnRdIHwgKGRhdFtjYnQgKyAxXSA8PCA4KSB8IChkYXRbY2J0ICsgMl0gPDwgMTYpIHwgKGRhdFtjYnQgKyAzXSA8PCAyNCkpID4+PiAoc3BvcyAmIDcpKSAmIChvZnAgLSAxKSk7XG4gICAgICAgICAgICAgICAgY2J0ID0gKHNwb3MgLT0gbWxiW21sY10pID4+IDM7XG4gICAgICAgICAgICAgICAgdmFyIG1sID0gbWxibFttbGNdICsgKCgoZGF0W2NidF0gfCAoZGF0W2NidCArIDFdIDw8IDgpIHwgKGRhdFtjYnQgKyAyXSA8PCAxNikpID4+IChzcG9zICYgNykpICYgKCgxIDw8IG1sYlttbGNdKSAtIDEpKTtcbiAgICAgICAgICAgICAgICBjYnQgPSAoc3BvcyAtPSBsbGJbbGxjXSkgPj4gMztcbiAgICAgICAgICAgICAgICB2YXIgbGwgPSBsbGJsW2xsY10gKyAoKChkYXRbY2J0XSB8IChkYXRbY2J0ICsgMV0gPDwgOCkgfCAoZGF0W2NidCArIDJdIDw8IDE2KSkgPj4gKHNwb3MgJiA3KSkgJiAoKDEgPDwgbGxiW2xsY10pIC0gMSkpO1xuICAgICAgICAgICAgICAgIGNidCA9IChzcG9zIC09IGxidHIpID4+IDM7XG4gICAgICAgICAgICAgICAgbHN0ID0gbGx0LnRbbHN0XSArICgoKGRhdFtjYnRdIHwgKGRhdFtjYnQgKyAxXSA8PCA4KSkgPj4gKHNwb3MgJiA3KSkgJiAoKDEgPDwgbGJ0cikgLSAxKSk7XG4gICAgICAgICAgICAgICAgY2J0ID0gKHNwb3MgLT0gbWJ0cikgPj4gMztcbiAgICAgICAgICAgICAgICBtc3QgPSBtbHQudFttc3RdICsgKCgoZGF0W2NidF0gfCAoZGF0W2NidCArIDFdIDw8IDgpKSA+PiAoc3BvcyAmIDcpKSAmICgoMSA8PCBtYnRyKSAtIDEpKTtcbiAgICAgICAgICAgICAgICBjYnQgPSAoc3BvcyAtPSBvYnRyKSA+PiAzO1xuICAgICAgICAgICAgICAgIG9zdCA9IG9jdC50W29zdF0gKyAoKChkYXRbY2J0XSB8IChkYXRbY2J0ICsgMV0gPDwgOCkpID4+IChzcG9zICYgNykpICYgKCgxIDw8IG9idHIpIC0gMSkpO1xuICAgICAgICAgICAgICAgIGlmIChvZmYgPiAzKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0Lm9bMl0gPSBzdC5vWzFdO1xuICAgICAgICAgICAgICAgICAgICBzdC5vWzFdID0gc3Qub1swXTtcbiAgICAgICAgICAgICAgICAgICAgc3Qub1swXSA9IG9mZiAtPSAzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGlkeCA9IG9mZiAtIChsbCAhPSAwKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlkeCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb2ZmID0gaWR4ID09IDMgPyBzdC5vWzBdIC0gMSA6IHN0Lm9baWR4XTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpZHggPiAxKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0Lm9bMl0gPSBzdC5vWzFdO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Qub1sxXSA9IHN0Lm9bMF07XG4gICAgICAgICAgICAgICAgICAgICAgICBzdC5vWzBdID0gb2ZmO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIG9mZiA9IHN0Lm9bMF07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGw7ICsraSkge1xuICAgICAgICAgICAgICAgICAgICBidWZbb3VidCArIGldID0gYnVmW3NwbCArIGldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBvdWJ0ICs9IGxsLCBzcGwgKz0gbGw7XG4gICAgICAgICAgICAgICAgdmFyIHN0aW4gPSBvdWJ0IC0gb2ZmO1xuICAgICAgICAgICAgICAgIGlmIChzdGluIDwgMCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgbGVuID0gLXN0aW47XG4gICAgICAgICAgICAgICAgICAgIHZhciBicyA9IHN0LmUgKyBzdGluO1xuICAgICAgICAgICAgICAgICAgICBpZiAobGVuID4gbWwpXG4gICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSBtbDtcbiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47ICsraSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYnVmW291YnQgKyBpXSA9IHN0LndbYnMgKyBpXTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBvdWJ0ICs9IGxlbiwgbWwgLT0gbGVuLCBzdGluID0gMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtbDsgKytpKSB7XG4gICAgICAgICAgICAgICAgICAgIGJ1ZltvdWJ0ICsgaV0gPSBidWZbc3RpbiArIGldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBvdWJ0ICs9IG1sO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG91YnQgIT0gc3BsKSB7XG4gICAgICAgICAgICAgICAgd2hpbGUgKHNwbCA8IGJ1Zi5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgYnVmW291YnQrK10gPSBidWZbc3BsKytdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICBvdWJ0ID0gYnVmLmxlbmd0aDtcbiAgICAgICAgICAgIGlmIChvdXQpXG4gICAgICAgICAgICAgICAgc3QueSArPSBvdWJ0O1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIGJ1ZiA9IHNsYyhidWYsIDAsIG91YnQpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKG91dCkge1xuICAgICAgICAgICAgICAgIHN0LnkgKz0gbHNzO1xuICAgICAgICAgICAgICAgIGlmIChzcGwpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsc3M7ICsraSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYnVmW2ldID0gYnVmW3NwbCArIGldO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoc3BsKVxuICAgICAgICAgICAgICAgIGJ1ZiA9IHNsYyhidWYsIHNwbCk7XG4gICAgICAgIH1cbiAgICAgICAgc3QuYiA9IGVidDtcbiAgICAgICAgcmV0dXJuIGJ1ZjtcbiAgICB9XG4gICAgZXJyKDIpO1xufTtcbi8vIGNvbmNhdFxudmFyIGNjdCA9IGZ1bmN0aW9uIChidWZzLCBvbCkge1xuICAgIGlmIChidWZzLmxlbmd0aCA9PSAxKVxuICAgICAgICByZXR1cm4gYnVmc1swXTtcbiAgICB2YXIgYnVmID0gbmV3IHU4KG9sKTtcbiAgICBmb3IgKHZhciBpID0gMCwgYiA9IDA7IGkgPCBidWZzLmxlbmd0aDsgKytpKSB7XG4gICAgICAgIHZhciBjaGsgPSBidWZzW2ldO1xuICAgICAgICBidWYuc2V0KGNoaywgYik7XG4gICAgICAgIGIgKz0gY2hrLmxlbmd0aDtcbiAgICB9XG4gICAgcmV0dXJuIGJ1Zjtcbn07XG4vKipcbiAqIERlY29tcHJlc3NlcyBac3RhbmRhcmQgZGF0YVxuICogQHBhcmFtIGRhdCBUaGUgaW5wdXQgZGF0YVxuICogQHBhcmFtIGJ1ZiBUaGUgb3V0cHV0IGJ1ZmZlci4gSWYgdW5zcGVjaWZpZWQsIHRoZSBmdW5jdGlvbiB3aWxsIGFsbG9jYXRlXG4gKiAgICAgICAgICAgIGV4YWN0bHkgZW5vdWdoIG1lbW9yeSB0byBmaXQgdGhlIGRlY29tcHJlc3NlZCBkYXRhLiBJZiB5b3VyXG4gKiAgICAgICAgICAgIGRhdGEgaGFzIG11bHRpcGxlIGZyYW1lcyBhbmQgeW91IGtub3cgdGhlIG91dHB1dCBzaXplLCBzcGVjaWZ5aW5nXG4gKiAgICAgICAgICAgIGl0IHdpbGwgeWllbGQgYmV0dGVyIHBlcmZvcm1hbmNlLlxuICogQHJldHVybnMgVGhlIGRlY29tcHJlc3NlZCBkYXRhXG4gKi9cbnJldHVybiBmdW5jdGlvbiBkZWNvbXByZXNzKGRhdCwgYnVmKSB7XG4gICAgdmFyIGJ0ID0gMCwgYnVmcyA9IFtdLCBuYiA9ICshYnVmLCBvbCA9IDA7XG4gICAgZm9yICg7IGRhdC5sZW5ndGg7KSB7XG4gICAgICAgIHZhciBzdCA9IHJ6ZmgoZGF0LCBuYiB8fCBidWYpO1xuICAgICAgICBpZiAodHlwZW9mIHN0ID09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICBpZiAobmIpIHtcbiAgICAgICAgICAgICAgICBidWYgPSBudWxsO1xuICAgICAgICAgICAgICAgIGlmIChzdC53Lmxlbmd0aCA9PSBzdC51KSB7XG4gICAgICAgICAgICAgICAgICAgIGJ1ZnMucHVzaChidWYgPSBzdC53KTtcbiAgICAgICAgICAgICAgICAgICAgb2wgKz0gc3QudTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBidWZzLnB1c2goYnVmKTtcbiAgICAgICAgICAgICAgICBzdC5lID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvciAoOyAhc3QubDspIHtcbiAgICAgICAgICAgICAgICB2YXIgYmxrID0gcnpiKGRhdCwgc3QsIGJ1Zik7XG4gICAgICAgICAgICAgICAgaWYgKCFibGspXG4gICAgICAgICAgICAgICAgICAgIGVycig1KTtcbiAgICAgICAgICAgICAgICBpZiAoYnVmKVxuICAgICAgICAgICAgICAgICAgICBzdC5lID0gc3QueTtcbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgYnVmcy5wdXNoKGJsayk7XG4gICAgICAgICAgICAgICAgICAgIG9sICs9IGJsay5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgIGNwdyhzdC53LCAwLCBibGsubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICAgICAgc3Qudy5zZXQoYmxrLCBzdC53Lmxlbmd0aCAtIGJsay5sZW5ndGgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJ0ID0gc3QuYiArIChzdC5jICogNCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgYnQgPSBzdDtcbiAgICAgICAgZGF0ID0gZGF0LnN1YmFycmF5KGJ0KTtcbiAgICB9XG4gICAgcmV0dXJuIGNjdChidWZzLCBvbCk7XG59XG59KSAoKVxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgIEJlbm9pdCBWYXVnb24sIEVOU1RBICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAxNCBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBQYWRkaW5nIHBvc2l0aW9uLiAqKVxudHlwZSBwYWR0eSA9XG4gIHwgTGVmdCAgICgqIFRleHQgaXMgbGVmdCBqdXN0aWZpZWQgKCctJyBvcHRpb24pLiAgICAgICAgICAgICAgICopXG4gIHwgUmlnaHQgICgqIFRleHQgaXMgcmlnaHQganVzdGlmaWVkIChubyAnLScgb3B0aW9uKS4gICAgICAgICAgICopXG4gIHwgWmVyb3MgICgqIFRleHQgaXMgcmlnaHQganVzdGlmaWVkIGJ5IHplcm9zIChzZWUgJzAnIG9wdGlvbikuICopXG5cbigqKiopXG5cbigqIEludGVnZXIgY29udmVyc2lvbi4gKilcbnR5cGUgaW50X2NvbnYgPVxuICB8IEludF9kIHwgSW50X3BkIHwgSW50X3NkICAgICAgICAoKiAgJWQgfCAlK2QgfCAlIGQgICopXG4gIHwgSW50X2kgfCBJbnRfcGkgfCBJbnRfc2kgICAgICAgICgqICAlaSB8ICUraSB8ICUgaSAgKilcbiAgfCBJbnRfeCB8IEludF9DeCAgICAgICAgICAgICAgICAgKCogICV4IHwgJSN4ICAgICAgICAqKVxuICB8IEludF9YIHwgSW50X0NYICAgICAgICAgICAgICAgICAoKiAgJVggfCAlI1ggICAgICAgICopXG4gIHwgSW50X28gfCBJbnRfQ28gICAgICAgICAgICAgICAgICgqICAlbyB8ICUjbyAgICAgICAgKilcbiAgfCBJbnRfdSAgICAgICAgICAgICAgICAgICAgICAgICAgKCogICV1ICAgICAgICAgICAgICAqKVxuICB8IEludF9DZCB8IEludF9DaSB8IEludF9DdSAgICAgICAoKiAgJSNkIHwgJSNpIHwgJSN1ICopXG5cbigqIEZsb2F0IGNvbnZlcnNpb24uICopXG50eXBlIGZsb2F0X2ZsYWdfY29udiA9XG4gIHwgRmxvYXRfZmxhZ18gICAgICAgICAgICAgICAgICAgICgqICVbZmVFZ0dGaEhdICopXG4gIHwgRmxvYXRfZmxhZ19wICAgICAgICAgICAgICAgICAgICgqICUrW2ZlRWdHRmhIXSAqKVxuICB8IEZsb2F0X2ZsYWdfcyAgICAgICAgICAgICAgICAgICAoKiAlIFtmZUVnR0ZoSF0gKilcbnR5cGUgZmxvYXRfa2luZF9jb252ID1cbiAgfCBGbG9hdF9mICAgICAgICAgICAgICAgICAgICAgICAgKCogICVmIHwgJStmIHwgJSBmICAqKVxuICB8IEZsb2F0X2UgICAgICAgICAgICAgICAgICAgICAgICAoKiAgJWUgfCAlK2UgfCAlIGUgICopXG4gIHwgRmxvYXRfRSAgICAgICAgICAgICAgICAgICAgICAgICgqICAlRSB8ICUrRSB8ICUgRSAgKilcbiAgfCBGbG9hdF9nICAgICAgICAgICAgICAgICAgICAgICAgKCogICVnIHwgJStnIHwgJSBnICAqKVxuICB8IEZsb2F0X0cgICAgICAgICAgICAgICAgICAgICAgICAoKiAgJUcgfCAlK0cgfCAlIEcgICopXG4gIHwgRmxvYXRfRiAgICAgICAgICAgICAgICAgICAgICAgICgqICAlRiB8ICUrRiB8ICUgRiAgKilcbiAgfCBGbG9hdF9oICAgICAgICAgICAgICAgICAgICAgICAgKCogICVoIHwgJStoIHwgJSBoICAqKVxuICB8IEZsb2F0X0ggICAgICAgICAgICAgICAgICAgICAgICAoKiAgJUggfCAlK0ggfCAlIEggICopXG4gIHwgRmxvYXRfQ0YgICAgICAgICAgICAgICAgICAgICAgICgqICAlI0Z8ICUrI0Z8ICUgI0YgKilcbnR5cGUgZmxvYXRfY29udiA9IGZsb2F0X2ZsYWdfY29udiAqIGZsb2F0X2tpbmRfY29udlxuXG4oKioqKVxuXG4oKiBDaGFyIHNldHMgKHNlZSAlWy4uLl0pIGFyZSBiaXRtYXBzIGltcGxlbWVudGVkIGFzIDMyLWNoYXIgc3RyaW5ncy4gKilcbnR5cGUgY2hhcl9zZXQgPSBzdHJpbmdcblxuKCoqKilcblxuKCogQ291bnRlciB1c2VkIGluIFNjYW5mLiAqKVxudHlwZSBjb3VudGVyID1cbiAgfCBMaW5lX2NvdW50ZXIgICAgICgqICAlbCAgICAgICopXG4gIHwgQ2hhcl9jb3VudGVyICAgICAoKiAgJW4gICAgICAqKVxuICB8IFRva2VuX2NvdW50ZXIgICAgKCogICVOLCAlTCAgKilcblxuKCoqKilcblxuKCogUGFkZGluZyBvZiBzdHJpbmdzIGFuZCBudW1iZXJzLiAqKVxudHlwZSAoJ2EsICdiKSBwYWRkaW5nID1cbiAgKCogTm8gcGFkZGluZyAoZXg6IFwiJWRcIikgKilcbiAgfCBOb19wYWRkaW5nICA6ICgnYSwgJ2EpIHBhZGRpbmdcbiAgKCogTGl0ZXJhbCBwYWRkaW5nIChleDogXCIlOGRcIikgKilcbiAgfCBMaXRfcGFkZGluZyA6IHBhZHR5ICogaW50IC0+ICgnYSwgJ2EpIHBhZGRpbmdcbiAgKCogUGFkZGluZyBhcyBleHRyYSBhcmd1bWVudCAoZXg6IFwiJSpkXCIpICopXG4gIHwgQXJnX3BhZGRpbmcgOiBwYWR0eSAtPiAoaW50IC0+ICdhLCAnYSkgcGFkZGluZ1xuXG4oKiBTb21lIGZvcm1hdHMsIHN1Y2ggYXMgJV9kLFxuICAgb25seSBhY2NlcHQgYW4gb3B0aW9uYWwgbnVtYmVyIGFzIHBhZGRpbmcgb3B0aW9uIChubyBleHRyYSBhcmd1bWVudCkgKilcbnR5cGUgcGFkX29wdGlvbiA9IGludCBvcHRpb25cblxuKCogUHJlY2lzaW9uIG9mIGZsb2F0cyBhbmQgJzAnLXBhZGRpbmcgb2YgaW50ZWdlcnMuICopXG50eXBlICgnYSwgJ2IpIHByZWNpc2lvbiA9XG4gICgqIE5vIHByZWNpc2lvbiAoZXg6IFwiJWZcIikgKilcbiAgfCBOb19wcmVjaXNpb24gOiAoJ2EsICdhKSBwcmVjaXNpb25cbiAgKCogTGl0ZXJhbCBwcmVjaXNpb24gKGV4OiBcIiUuM2ZcIikgKilcbiAgfCBMaXRfcHJlY2lzaW9uIDogaW50IC0+ICgnYSwgJ2EpIHByZWNpc2lvblxuICAoKiBQcmVjaXNpb24gYXMgZXh0cmEgYXJndW1lbnQgKGV4OiBcIiUuKmZcIikgKilcbiAgfCBBcmdfcHJlY2lzaW9uIDogKGludCAtPiAnYSwgJ2EpIHByZWNpc2lvblxuXG4oKiBTb21lIGZvcm1hdHMsIHN1Y2ggYXMgJV9mLFxuICAgb25seSBhY2NlcHQgYW4gb3B0aW9uYWwgbnVtYmVyIGFzIHByZWNpc2lvbiBvcHRpb24gKG5vIGV4dHJhIGFyZ3VtZW50KSAqKVxudHlwZSBwcmVjX29wdGlvbiA9IGludCBvcHRpb25cblxuKCogc2VlIHRoZSBDdXN0b20gZm9ybWF0IGNvbWJpbmF0b3IgKilcbnR5cGUgKCdhLCAnYiwgJ2MpIGN1c3RvbV9hcml0eSA9XG4gIHwgQ3VzdG9tX3plcm8gOiAoJ2EsIHN0cmluZywgJ2EpIGN1c3RvbV9hcml0eVxuICB8IEN1c3RvbV9zdWNjIDogKCdhLCAnYiwgJ2MpIGN1c3RvbV9hcml0eSAtPlxuICAgICgnYSwgJ3ggLT4gJ2IsICd4IC0+ICdjKSBjdXN0b21fYXJpdHlcblxuKCoqKilcblxuKCogICAgICAgIFJlbGF0aW9uYWwgZm9ybWF0IHR5cGVzXG5cbkluIHRoZSBmaXJzdCBmb3JtYXQrZ2FkdHMgaW1wbGVtZW50YXRpb24sIHRoZSB0eXBlIGZvciAlKC4uJSkgaW4gdGhlXG5mbXQgR0FEVCB3YXMgYXMgZm9sbG93czpcblxufCBGb3JtYXRfc3Vic3QgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlKC4uLiUpICopXG4gICAgcGFkX29wdGlvbiAqICgnZDEsICdxMSwgJ2QyLCAncTIpIHJlYWRlcl9uYl91bmlmaWVyICpcbiAgICAoJ3gsICdiLCAnYywgJ2QxLCAncTEsICd1KSBmbXR0eSAqXG4gICAgKCd1LCAnYiwgJ2MsICdxMSwgJ2UxLCAnZikgZm10IC0+XG4gICAgICAoKCd4LCAnYiwgJ2MsICdkMiwgJ3EyLCAndSkgZm9ybWF0NiAtPiAneCwgJ2IsICdjLCAnZDEsICdlMSwgJ2YpIGZtdFxuXG5Ob3RpY2UgdGhhdCB0aGUgJ3UgcGFyYW1ldGVyIGluICdmIHBvc2l0aW9uIGluIHRoZSBmb3JtYXQgYXJndW1lbnRcbigoJ3gsIC4uLCAndSkgZm9ybWF0NiAtPiAuLikgaXMgZXF1YWwgdG8gdGhlICd1IHBhcmFtZXRlciBpbiAnYVxucG9zaXRpb24gaW4gdGhlIGZvcm1hdCB0YWlsICgoJ3UsIC4uLCAnZikgZm10KS4gVGhpcyBtZWFucyB0aGF0IHRoZVxudHlwZSBvZiB0aGUgZXhwZWN0ZWQgZm9ybWF0IHBhcmFtZXRlciBkZXBlbmRzIG9mIHdoZXJlIHRoZSAlKC4uLiUpXG5hcmUgaW4gdGhlIGZvcm1hdCBzdHJpbmc6XG5cbiAgIyBQcmludGYucHJpbnRmIFwiJSglKVwiXG4gIC0gOiAodW5pdCwgb3V0X2NoYW5uZWwsIHVuaXQsICdfYSwgJ19hLCB1bml0KVxuICAgICAgQ2FtbGludGVybmFsRm9ybWF0QmFzaWNzLmZvcm1hdDYgLT4gdW5pdFxuICA9IDxmdW4+XG4gICMgUHJpbnRmLnByaW50ZiBcIiUoJSklZFwiXG4gIC0gOiAoaW50IC0+IHVuaXQsIG91dF9jaGFubmVsLCB1bml0LCAnX2EsICdfYSwgaW50IC0+IHVuaXQpXG4gICAgICBDYW1saW50ZXJuYWxGb3JtYXRCYXNpY3MuZm9ybWF0NiAtPiBpbnQgLT4gdW5pdFxuICA9IDxmdW4+XG5cbk9uIHRoZSBjb250cmFyeSwgdGhlIGxlZ2FjeSB0eXBlciBnaXZlcyBhIGNsZXZlciB0eXBlIHRoYXQgZG9lcyBub3RcbmRlcGVuZCBvbiB0aGUgcG9zaXRpb24gb2YgJSguLiUpIGluIHRoZSBmb3JtYXQgc3RyaW5nLiBGb3IgZXhhbXBsZSxcbiUoJSkgd2lsbCBoYXZlIHRoZSBwb2x5bW9ycGhpYyB0eXBlICgnYSwgJ2IsICdjLCAnZCwgJ2QsICdhKTogaXQgY2FuXG5iZSBjb25jYXRlbmF0ZWQgdG8gYW55IGZvcm1hdCB0eXBlLCBhbmQgb25seSBlbmZvcmNlcyB0aGUgY29uc3RyYWludFxudGhhdCBpdHMgJ2EgYW5kICdmIHBhcmFtZXRlcnMgYXJlIGVxdWFsIChubyBmb3JtYXQgYXJndW1lbnRzKSBhbmQgJ2RcbmFuZCAnZSBhcmUgZXF1YWwgKG5vIHJlYWRlciBhcmd1bWVudCkuXG5cblRoZSB3ZWFrZW5pbmcgb2YgdGhpcyBwYXJhbWV0ZXIgdHlwZSBpbiB0aGUgR0FEVCB2ZXJzaW9uIGJyb2tlIHVzZXJcbmNvZGUgKGluIGZhY3QgaXQgZXNzZW50aWFsbHkgbWFkZSAlKC4uLiUpIHVudXNhYmxlIGV4Y2VwdCBhdCB0aGUgbGFzdFxucG9zaXRpb24gb2YgYSBmb3JtYXQpLiBJbiBwYXJ0aWN1bGFyLCB0aGUgZm9sbG93aW5nIHdvdWxkIG5vdCB3b3JrXG5hbnltb3JlOlxuXG4gIGZ1biBzZXAgLT5cbiAgICBGb3JtYXQucHJpbnRmIFwiZm9vJSglKWJhciUoJSliYXpcIiBzZXAgc2VwXG5cbkFzIHRoZSB0eXBlLWNoZWNrZXIgd291bGQgcmVxdWlyZSB0d28gKmluY29tcGF0aWJsZSogdHlwZXMgZm9yIHRoZSAlKCUpXG5pbiBkaWZmZXJlbnQgcG9zaXRpb25zLlxuXG5UaGUgc29sdXRpb24gdG8gcmVnYWluIGEgZ2VuZXJhbCB0eXBlIGZvciAlKC4uJSkgaXMgdG8gZ2VuZXJhbGl6ZSB0aGlzXG50ZWNobmlxdWUsIG5vdCBvbmx5IG9uIHRoZSAnZCwgJ2UgcGFyYW1ldGVycywgYnV0IG9uIGFsbCBzaXhcbnBhcmFtZXRlcnMgb2YgYSBmb3JtYXQ6IHdlIGludHJvZHVjZSBhIFwicmVsYXRpb25hbFwiIHR5cGVcbiAgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWxcbndob3NlIHZhbHVlcyBhcmUgcHJvb2ZzIHRoYXQgKCdhMSwgLi4sICdmMSkgYW5kICgnYTIsIC4uLCAnZjIpIG1vcmFsbHlcbmNvcnJlc3BvbmQgdG8gdGhlIHNhbWUgZm9ybWF0IHR5cGU6ICdhMSBpcyBvYnRhaW5lZCBmcm9tICdmMSwnYjEsJ2MxXG5pbiB0aGUgZXhhY3Qgc2FtZSB3YXkgdGhhdCAnYTIgaXMgb2J0YWluZWQgZnJvbSAnZjIsJ2IyLCdjMiwgZXRjLlxuXG5Gb3IgZXhhbXBsZSwgdGhlIHJlbGF0aW9uIGJldHdlZW4gdHdvIGZvcm1hdCB0eXBlcyBiZWdpbm5pbmcgd2l0aCBhIENoYXJcbnBhcmFtZXRlciBpcyBhcyBmb2xsb3dzOlxuXG58IENoYXJfdHkgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlYyAgKilcbiAgICAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsIC0+XG4gICAgKGNoYXIgLT4gJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgY2hhciAtPiAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWxcblxuSW4gdGhlIGdlbmVyYWwgY2FzZSwgdGhlIHRlcm0gc3RydWN0dXJlIG9mIGZtdHR5X3JlbCBpcyAoYWxtb3N0WzFdKVxuaXNvbW9ycGhpYyB0byB0aGUgZm10dHkgb2YgdGhlIHByZXZpb3VzIGltcGxlbWVudGF0aW9uOiBldmVyeVxuY29uc3RydWN0b3IgaXMgcmUtcmVhZCB3aXRoIGEgYmluYXJ5LCByZWxhdGlvbmFsIHR5cGUsIGluc3RlYWQgb2YgdGhlXG5wcmV2aW91cyB1bmFyeSB0eXBpbmcuIGZtdHR5IGNhbiB0aGVuIGJlIHJlLWRlZmluZWQgYXMgdGhlIGRpYWdvbmFsIG9mXG5mbXR0eV9yZWw6XG5cbiAgdHlwZSAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10dHkgPVxuICAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmLFxuICAgICAgICAnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXR0eV9yZWxcblxuT25jZSB3ZSBoYXZlIHRoaXMgZm10dHlfcmVsIHR5cGUgaW4gcGxhY2UsIHdlIGNhbiBnaXZlIHRoZSBtb3JlXG5nZW5lcmFsIHR5cGUgdG8gJSguLi4lKTpcblxufCBGb3JtYXRfc3Vic3QgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlKC4uLiUpICopXG4gICAgcGFkX29wdGlvbiAqXG4gICAgKCdnLCAnaCwgJ2ksICdqLCAnaywgJ2wsXG4gICAgICdnMiwgJ2IsICdjLCAnajIsICdkLCAnYSkgZm10dHlfcmVsICpcbiAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgKCgnZywgJ2gsICdpLCAnaiwgJ2ssICdsKSBmb3JtYXQ2IC0+ICdnMiwgJ2IsICdjLCAnajIsICdlLCAnZikgZm10XG5cbldlIGFjY2VwdCBhbnkgZm9ybWF0ICgoJ2csICdoLCAnaSwgJ2osICdrLCAnbCkgZm9ybWF0NikgKHRoaXMgaXNcbmNvbXBsZXRlbHkgdW5yZWxhdGVkIHRvIHRoZSB0eXBlIG9mIHRoZSBjdXJyZW50IGZvcm1hdCksIGJ1dCBhbHNvXG5yZXF1aXJlIGEgcHJvb2YgdGhhdCB0aGlzIGZvcm1hdCBpcyBpbiByZWxhdGlvbiB0byBhbm90aGVyIGZvcm1hdCB0aGF0XG5pcyBjb25jYXRlbmFibGUgdG8gdGhlIGZvcm1hdCB0YWlsLiBXaGVuIGV4ZWN1dGluZyBhICUoLi4uJSkgZm9ybWF0XG4oaW4gY2FtbGludGVybmFsRm9ybWF0Lm1sOm1ha2VfcHJpbnRmIG9yIHNjYW5mLm1sOm1ha2Vfc2NhbmYpLCB3ZVxudHJhbnN0eXBlIHRoZSBmb3JtYXQgYWxvbmcgdGhpcyByZWxhdGlvbiB1c2luZyB0aGUgJ3JlY2FzdCcgZnVuY3Rpb25cbnRvIHRyYW5zcG9zZSBiZXR3ZWVuIHJlbGF0ZWQgZm9ybWF0IHR5cGVzLlxuXG4gIHZhbCByZWNhc3QgOlxuICAgICAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSkgZm10XG4gIC0+ICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsXG4gIC0+ICgnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXRcblxuTk9URSBbMV06IHRoZSB0eXBpbmcgb2YgRm9ybWF0X3N1YnN0X3R5IHJlcXVpcmVzIG5vdCBvbmUgZm9ybWF0IHR5cGUsIGJ1dFxudHdvLCBvbmUgdG8gZXN0YWJsaXNoIHRoZSBsaW5rIGJldHdlZW4gdGhlIGZvcm1hdCBhcmd1bWVudCBhbmQgdGhlXG5maXJzdCBzaXggcGFyYW1ldGVycywgYW5kIHRoZSBvdGhlciBmb3IgdGhlIGxpbmsgYmV0d2VlbiB0aGUgZm9ybWF0XG5hcmd1bWVudCBhbmQgdGhlIGxhc3Qgc2l4IHBhcmFtZXRlcnMuXG5cbnwgRm9ybWF0X3N1YnN0X3R5IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICUoLi4uJSkgKilcbiAgICAoJ2csICdoLCAnaSwgJ2osICdrLCAnbCxcbiAgICAgJ2cxLCAnYjEsICdjMSwgJ2oxLCAnZDEsICdhMSkgZm10dHlfcmVsICpcbiAgICAoJ2csICdoLCAnaSwgJ2osICdrLCAnbCxcbiAgICAgJ2cyLCAnYjIsICdjMiwgJ2oyLCAnZDIsICdhMikgZm10dHlfcmVsICpcbiAgICAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsIC0+XG4gICAgKCgnZywgJ2gsICdpLCAnaiwgJ2ssICdsKSBmb3JtYXQ2IC0+ICdnMSwgJ2IxLCAnYzEsICdqMSwgJ2UxLCAnZjEsXG4gICAgICgnZywgJ2gsICdpLCAnaiwgJ2ssICdsKSBmb3JtYXQ2IC0+ICdnMiwgJ2IyLCAnYzIsICdqMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbFxuXG5XaGVuIHdlIGdlbmVyYXRlIGEgZm9ybWF0IEFTVCwgd2UgZ2VuZXJhdGUgZXhhY3RseSB0aGUgc2FtZSB3aXRuZXNzXG5mb3IgYm90aCByZWxhdGlvbnMsIGFuZCB0aGUgd2l0bmVzcy1jb252ZXJzaW9uIGZ1bmN0aW9ucyBpblxuY2FtbGludGVybmFsRm9ybWF0IGRvIHJlbHkgb24gdGhpcyBpbnZhcmlhbnQuIEZvciBleGFtcGxlLCB0aGVcbmZ1bmN0aW9uIHRoYXQgcHJvdmVzIHRoYXQgdGhlIHJlbGF0aW9uIGlzIHRyYW5zaXRpdmVcblxuICB2YWwgdHJhbnMgOlxuICAgICAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbFxuICAtPiAoJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMixcbiAgICAgICdhMywgJ2IzLCAnYzMsICdkMywgJ2UzLCAnZjMpIGZtdHR5X3JlbFxuICAtPiAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICdhMywgJ2IzLCAnYzMsICdkMywgJ2UzLCAnZjMpIGZtdHR5X3JlbFxuXG5kb2VzIGFzc3VtZSB0aGF0IHRoZSB0d28gaW5wdXRzIGhhdmUgZXhhY3RseSB0aGUgc2FtZSB0ZXJtIHN0cnVjdHVyZVxuKGFuZCBpcyBvbmx5IGV2ZXJ5IHVzZWQgZm9yIGFyZ3VtZW50IHdpdG5lc3NlcyBvZiB0aGVcbkZvcm1hdF9zdWJzdF90eSBjb25zdHJ1Y3RvcikuXG4qKVxuXG4oKiBUeXBlIG9mIGEgYmxvY2sgdXNlZCBieSB0aGUgRm9ybWF0IHByZXR0eS1wcmludGVyLiAqKVxudHlwZSBibG9ja190eXBlID1cbiAgfCBQcF9oYm94ICAgKCogSG9yaXpvbnRhbCBibG9jayBubyBsaW5lIGJyZWFraW5nICopXG4gIHwgUHBfdmJveCAgICgqIFZlcnRpY2FsIGJsb2NrIGVhY2ggYnJlYWsgbGVhZHMgdG8gYSBuZXcgbGluZSAqKVxuICB8IFBwX2h2Ym94ICAoKiBIb3Jpem9udGFsLXZlcnRpY2FsIGJsb2NrOiBzYW1lIGFzIHZib3gsIGV4Y2VwdCBpZiB0aGlzIGJsb2NrXG4gICAgICAgICAgICAgICAgIGlzIHNtYWxsIGVub3VnaCB0byBmaXQgb24gYSBzaW5nbGUgbGluZSAqKVxuICB8IFBwX2hvdmJveCAoKiBIb3Jpem9udGFsIG9yIFZlcnRpY2FsIGJsb2NrOiBicmVha3MgbGVhZCB0byBuZXcgbGluZVxuICAgICAgICAgICAgICAgICBvbmx5IHdoZW4gbmVjZXNzYXJ5IHRvIHByaW50IHRoZSBjb250ZW50IG9mIHRoZSBibG9jayAqKVxuICB8IFBwX2JveCAgICAoKiBIb3Jpem9udGFsIG9yIEluZGVudCBibG9jazogYnJlYWtzIGxlYWQgdG8gbmV3IGxpbmVcbiAgICAgICAgICAgICAgICAgb25seSB3aGVuIG5lY2Vzc2FyeSB0byBwcmludCB0aGUgY29udGVudCBvZiB0aGUgYmxvY2ssIG9yXG4gICAgICAgICAgICAgICAgIHdoZW4gaXQgbGVhZHMgdG8gYSBuZXcgaW5kZW50YXRpb24gb2YgdGhlIGN1cnJlbnQgbGluZSAqKVxuICB8IFBwX2ZpdHMgICAoKiBJbnRlcm5hbCB1c2FnZTogd2hlbiBhIGJsb2NrIGZpdHMgb24gYSBzaW5nbGUgbGluZSAqKVxuXG4oKiBGb3JtYXR0aW5nIGVsZW1lbnQgdXNlZCBieSB0aGUgRm9ybWF0IHByZXR0eS1wcmludGVyLiAqKVxudHlwZSBmb3JtYXR0aW5nX2xpdCA9XG4gIHwgQ2xvc2VfYm94ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIEBdICAgKilcbiAgfCBDbG9zZV90YWcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogQH0gICAqKVxuICB8IEJyZWFrIG9mIHN0cmluZyAqIGludCAqIGludCAgICAgICAgICAoKiBALCB8IEAgIHwgQDsgfCBAOzw+ICopXG4gIHwgRkZsdXNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIEA/ICAgKilcbiAgfCBGb3JjZV9uZXdsaW5lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogQFxcbiAgKilcbiAgfCBGbHVzaF9uZXdsaW5lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogQC4gICAqKVxuICB8IE1hZ2ljX3NpemUgb2Ygc3RyaW5nICogaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBAPG4+ICopXG4gIHwgRXNjYXBlZF9hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIEBAICAgKilcbiAgfCBFc2NhcGVkX3BlcmNlbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogQCUlICAqKVxuICB8IFNjYW5faW5kaWMgb2YgY2hhciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBAWCAgICopXG5cbigqIEZvcm1hdHRpbmcgZWxlbWVudCB1c2VkIGJ5IHRoZSBGb3JtYXQgcHJldHR5LXByaW50ZXIuICopXG50eXBlICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmb3JtYXR0aW5nX2dlbiA9XG4gIHwgT3Blbl90YWcgOiAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm9ybWF0NiAtPiAgICAgICgqIEB7ICAgKilcbiAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm9ybWF0dGluZ19nZW5cbiAgfCBPcGVuX2JveCA6ICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmb3JtYXQ2IC0+ICAgICAgKCogQFsgICAqKVxuICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmb3JtYXR0aW5nX2dlblxuXG4oKioqKVxuXG4oKiBMaXN0IG9mIGZvcm1hdCB0eXBlIGVsZW1lbnRzLiAqKVxuKCogSW4gcGFydGljdWxhciB1c2VkIHRvIHJlcHJlc2VudCAlKC4uLiUpIGFuZCAley4uLiV9IGNvbnRlbnRzLiAqKVxuYW5kICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXR0eSA9XG4gICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmLFxuICAgICAgJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10dHlfcmVsXG5hbmQgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbCA9XG4gIHwgQ2hhcl90eSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVjICAqKVxuICAgICAgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsIC0+XG4gICAgICAoY2hhciAtPiAnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgIGNoYXIgLT4gJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsXG4gIHwgU3RyaW5nX3R5IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVzICAqKVxuICAgICAgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsIC0+XG4gICAgICAoc3RyaW5nIC0+ICdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgc3RyaW5nIC0+ICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbFxuICB8IEludF90eSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlZCAgKilcbiAgICAgICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbCAtPlxuICAgICAgKGludCAtPiAnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgIGludCAtPiAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWxcbiAgfCBJbnQzMl90eSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJWxkICopXG4gICAgICAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWwgLT5cbiAgICAgIChpbnQzMiAtPiAnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgIGludDMyIC0+ICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbFxuICB8IE5hdGl2ZWludF90eSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlbmQgKilcbiAgICAgICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbCAtPlxuICAgICAgKG5hdGl2ZWludCAtPiAnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgIG5hdGl2ZWludCAtPiAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWxcbiAgfCBJbnQ2NF90eSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJUxkICopXG4gICAgICAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWwgLT5cbiAgICAgIChpbnQ2NCAtPiAnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgIGludDY0IC0+ICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbFxuICB8IEZsb2F0X3R5IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlZiAgKilcbiAgICAgICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbCAtPlxuICAgICAgKGZsb2F0IC0+ICdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgZmxvYXQgLT4gJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsXG4gIHwgQm9vbF90eSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVCICAqKVxuICAgICAgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsIC0+XG4gICAgICAoYm9vbCAtPiAnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgIGJvb2wgLT4gJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsXG5cbiAgfCBGb3JtYXRfYXJnX3R5IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJXsuLi4lfSAqKVxuICAgICAgKCdnLCAnaCwgJ2ksICdqLCAnaywgJ2wpIGZtdHR5ICpcbiAgICAgICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbCAtPlxuICAgICAgKCgnZywgJ2gsICdpLCAnaiwgJ2ssICdsKSBmb3JtYXQ2IC0+ICdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgKCdnLCAnaCwgJ2ksICdqLCAnaywgJ2wpIGZvcm1hdDYgLT4gJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMilcbiAgICAgICAgICAgZm10dHlfcmVsXG4gIHwgRm9ybWF0X3N1YnN0X3R5IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICUoLi4uJSkgKilcbiAgICAgICgnZywgJ2gsICdpLCAnaiwgJ2ssICdsLFxuICAgICAgICdnMSwgJ2IxLCAnYzEsICdqMSwgJ2QxLCAnYTEpIGZtdHR5X3JlbCAqXG4gICAgICAoJ2csICdoLCAnaSwgJ2osICdrLCAnbCxcbiAgICAgICAnZzIsICdiMiwgJ2MyLCAnajIsICdkMiwgJ2EyKSBmbXR0eV9yZWwgKlxuICAgICAgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsIC0+XG4gICAgICAoKCdnLCAnaCwgJ2ksICdqLCAnaywgJ2wpIGZvcm1hdDYgLT4gJ2cxLCAnYjEsICdjMSwgJ2oxLCAnZTEsICdmMSxcbiAgICAgICAoJ2csICdoLCAnaSwgJ2osICdrLCAnbCkgZm9ybWF0NiAtPiAnZzIsICdiMiwgJ2MyLCAnajIsICdlMiwgJ2YyKVxuICAgICAgICAgICBmbXR0eV9yZWxcblxuICAoKiBQcmludGYgYW5kIEZvcm1hdCBzcGVjaWZpYyBjb25zdHJ1Y3RvcnMuICopXG4gIHwgQWxwaGFfdHkgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVhICAqKVxuICAgICAgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsIC0+XG4gICAgICAoKCdiMSAtPiAneCAtPiAnYzEpIC0+ICd4IC0+ICdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgKCdiMiAtPiAneCAtPiAnYzIpIC0+ICd4IC0+ICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbFxuICB8IFRoZXRhX3R5IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAldCAgKilcbiAgICAgICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbCAtPlxuICAgICAgKCgnYjEgLT4gJ2MxKSAtPiAnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgICgnYjIgLT4gJ2MyKSAtPiAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWxcbiAgfCBBbnlfdHkgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIFVzZWQgZm9yIGN1c3RvbSBmb3JtYXRzICopXG4gICAgICAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWwgLT5cbiAgICAgICgneCAtPiAnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgICd4IC0+ICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbFxuXG4gICgqIFNjYW5mIHNwZWNpZmljIGNvbnN0cnVjdG9yLiAqKVxuICB8IFJlYWRlcl90eSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlciAgKilcbiAgICAgICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbCAtPlxuICAgICAgKCd4IC0+ICdhMSwgJ2IxLCAnYzEsICgnYjEgLT4gJ3gpIC0+ICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgJ3ggLT4gJ2EyLCAnYjIsICdjMiwgKCdiMiAtPiAneCkgLT4gJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsXG4gIHwgSWdub3JlZF9yZWFkZXJfdHkgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVfciAgKilcbiAgICAgICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbCAtPlxuICAgICAgKCdhMSwgJ2IxLCAnYzEsICgnYjEgLT4gJ3gpIC0+ICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgJ2EyLCAnYjIsICdjMiwgKCdiMiAtPiAneCkgLT4gJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsXG5cbiAgfCBFbmRfb2ZfZm10dHkgOlxuICAgICAgKCdmMSwgJ2IxLCAnYzEsICdkMSwgJ2QxLCAnZjEsXG4gICAgICAgJ2YyLCAnYjIsICdjMiwgJ2QyLCAnZDIsICdmMikgZm10dHlfcmVsXG5cbigqKiopXG5cbigqIExpc3Qgb2YgZm9ybWF0IGVsZW1lbnRzLiAqKVxuYW5kICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgPVxuICB8IENoYXIgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVjICopXG4gICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAgIChjaGFyIC0+ICdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuICB8IENhbWxfY2hhciA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVDICopXG4gICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAgIChjaGFyIC0+ICdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuICB8IFN0cmluZyA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVzICopXG4gICAgICAoJ3gsIHN0cmluZyAtPiAnYSkgcGFkZGluZyAqICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICAgKCd4LCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuICB8IENhbWxfc3RyaW5nIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVTICopXG4gICAgICAoJ3gsIHN0cmluZyAtPiAnYSkgcGFkZGluZyAqICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICAgKCd4LCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuICB8IEludCA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVbZGl4WHVvXSAqKVxuICAgICAgaW50X2NvbnYgKiAoJ3gsICd5KSBwYWRkaW5nICogKCd5LCBpbnQgLT4gJ2EpIHByZWNpc2lvbiAqXG4gICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAgICgneCwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcbiAgfCBJbnQzMiA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlbFtkaXhYdW9dICopXG4gICAgICBpbnRfY29udiAqICgneCwgJ3kpIHBhZGRpbmcgKiAoJ3ksIGludDMyIC0+ICdhKSBwcmVjaXNpb24gKlxuICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoJ3gsICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG4gIHwgTmF0aXZlaW50IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJW5bZGl4WHVvXSAqKVxuICAgICAgaW50X2NvbnYgKiAoJ3gsICd5KSBwYWRkaW5nICogKCd5LCBuYXRpdmVpbnQgLT4gJ2EpIHByZWNpc2lvbiAqXG4gICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAgICgneCwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcbiAgfCBJbnQ2NCA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlTFtkaXhYdW9dICopXG4gICAgICBpbnRfY29udiAqICgneCwgJ3kpIHBhZGRpbmcgKiAoJ3ksIGludDY0IC0+ICdhKSBwcmVjaXNpb24gKlxuICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoJ3gsICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG4gIHwgRmxvYXQgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJVtmZUVnR0ZoSF0gKilcbiAgICAgIGZsb2F0X2NvbnYgKiAoJ3gsICd5KSBwYWRkaW5nICogKCd5LCBmbG9hdCAtPiAnYSkgcHJlY2lzaW9uICpcbiAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICAgKCd4LCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuICB8IEJvb2wgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVbYkJdICopXG4gICAgICAoJ3gsIGJvb2wgLT4gJ2EpIHBhZGRpbmcgKiAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAgICgneCwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcbiAgfCBGbHVzaCA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlISAqKVxuICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG5cbiAgfCBTdHJpbmdfbGl0ZXJhbCA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBhYmMgKilcbiAgICAgIHN0cmluZyAqICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuICB8IENoYXJfbGl0ZXJhbCA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIHggKilcbiAgICAgIGNoYXIgKiAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcblxuICB8IEZvcm1hdF9hcmcgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICV7Li4uJX0gKilcbiAgICAgIHBhZF9vcHRpb24gKiAoJ2csICdoLCAnaSwgJ2osICdrLCAnbCkgZm10dHkgKlxuICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoKCdnLCAnaCwgJ2ksICdqLCAnaywgJ2wpIGZvcm1hdDYgLT4gJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG4gIHwgRm9ybWF0X3N1YnN0IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJSguLi4lKSAqKVxuICAgICAgcGFkX29wdGlvbiAqXG4gICAgICAoJ2csICdoLCAnaSwgJ2osICdrLCAnbCxcbiAgICAgICAnZzIsICdiLCAnYywgJ2oyLCAnZCwgJ2EpIGZtdHR5X3JlbCAqXG4gICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAoKCdnLCAnaCwgJ2ksICdqLCAnaywgJ2wpIGZvcm1hdDYgLT4gJ2cyLCAnYiwgJ2MsICdqMiwgJ2UsICdmKSBmbXRcblxuICAoKiBQcmludGYgYW5kIEZvcm1hdCBzcGVjaWZpYyBjb25zdHJ1Y3Rvci4gKilcbiAgfCBBbHBoYSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlYSAqKVxuICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoKCdiIC0+ICd4IC0+ICdjKSAtPiAneCAtPiAnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcbiAgfCBUaGV0YSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAldCAqKVxuICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoKCdiIC0+ICdjKSAtPiAnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcblxuICAoKiBGb3JtYXQgc3BlY2lmaWMgY29uc3RydWN0b3I6ICopXG4gIHwgRm9ybWF0dGluZ19saXQgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogQF8gKilcbiAgICAgIGZvcm1hdHRpbmdfbGl0ICogKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG4gIHwgRm9ybWF0dGluZ19nZW4gOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIEBfICopXG4gICAgICAoJ2ExLCAnYiwgJ2MsICdkMSwgJ2UxLCAnZjEpIGZvcm1hdHRpbmdfZ2VuICpcbiAgICAgICgnZjEsICdiLCAnYywgJ2UxLCAnZTIsICdmMikgZm10IC0+ICgnYTEsICdiLCAnYywgJ2QxLCAnZTIsICdmMikgZm10XG5cbiAgKCogU2NhbmYgc3BlY2lmaWMgY29uc3RydWN0b3JzOiAqKVxuICB8IFJlYWRlciA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVyICopXG4gICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAgICgneCAtPiAnYSwgJ2IsICdjLCAoJ2IgLT4gJ3gpIC0+ICdkLCAnZSwgJ2YpIGZtdFxuICB8IFNjYW5fY2hhcl9zZXQgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVbLi4uXSAqKVxuICAgICAgcGFkX29wdGlvbiAqIGNoYXJfc2V0ICogKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoc3RyaW5nIC0+ICdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuICB8IFNjYW5fZ2V0X2NvdW50ZXIgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVbbmxOTF0gKilcbiAgICAgIGNvdW50ZXIgKiAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAgIChpbnQgLT4gJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG4gIHwgU2Nhbl9uZXh0X2NoYXIgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJTBjICopXG4gICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAoY2hhciAtPiAnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcbiAgfCBJZ25vcmVkX3BhcmFtIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlXyAqKVxuICAgICAgKCdhLCAnYiwgJ2MsICdkLCAneSwgJ3gpIGlnbm9yZWQgKiAoJ3gsICdiLCAnYywgJ3ksICdlLCAnZikgZm10IC0+XG4gICAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcblxuICAoKiBDdXN0b20gcHJpbnRpbmcgZm9ybWF0IChQUiM2NDUyLCBHUFIjMTQwKVxuXG4gICAgIFdlIGluY2x1ZGUgYSB0eXBlIEN1c3RvbSBvZiBcImN1c3RvbSBjb252ZXJ0ZXJzXCIsIHdoZXJlIGFuXG4gICAgIGFyYml0cmFyeSBmdW5jdGlvbiBjYW4gYmUgdXNlZCB0byBjb252ZXJ0IG9uZSBvciBtb3JlXG4gICAgIGFyZ3VtZW50cy4gVGhlcmUgaXMgbm8gc3ludGF4IGZvciBjdXN0b20gY29udmVydGVycywgaXQgaXMgb25seVxuICAgICBpbnRlbmRlZCBmb3IgY3VzdG9tIHByb2Nlc3NvcnMgdGhhdCB3aXNoIHRvIHJlbHkgb24gdGhlXG4gICAgIHN0ZGxpYi1kZWZpbmVkIGZvcm1hdCBHQURUcy5cblxuICAgICBGb3IgaW5zdGFuY2UgYSBwcmUtcHJvY2Vzc29yIGNvdWxkIGNob29zZSB0byBpbnRlcnByZXQgc3RyaW5nc1xuICAgICBwcmVmaXhlZCB3aXRoIFtcIiFcIl0gYXMgZm9ybWF0IHN0cmluZ3Mgd2hlcmUgWyV7eyAuLi4gfX1dIGlzXG4gICAgIGEgc3BlY2lhbCBmb3JtIHRvIHBhc3MgYSB0b19zdHJpbmcgZnVuY3Rpb24sIHNvIHRoYXQgb25lIGNvdWxkXG4gICAgIHdyaXRlOlxuXG4gICAgIHtbXG4gICAgICAgdHlwZSB0ID0geyB4IDogaW50OyB5IDogaW50IH1cblxuICAgICAgIGxldCBzdHJpbmdfb2ZfdCB0ID0gUHJpbnRmLnNwcmludGYgXCJ7IHggPSAlZDsgeSA9ICVkIH1cIiB0LnggdC55XG5cbiAgICAgICBQcmludGYucHJpbnRmICFcInQgPSAle3tzdHJpbmdfb2ZfdH19XCIgeyB4ID0gNDI7IHkgPSA0MiB9XG4gICAgIF19XG4gICopXG4gIHwgQ3VzdG9tIDpcbiAgICAgICgnYSwgJ3gsICd5KSBjdXN0b21fYXJpdHkgKiAodW5pdCAtPiAneCkgKiAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAoJ3ksICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG5cbiAgKCogZW5kIG9mIGEgZm9ybWF0IHNwZWNpZmljYXRpb24gKilcbiAgfCBFbmRfb2ZfZm9ybWF0IDpcbiAgICAgICAgKCdmLCAnYiwgJ2MsICdlLCAnZSwgJ2YpIGZtdFxuXG4oKioqKVxuXG4oKiBUeXBlIGZvciBpZ25vcmVkIHBhcmFtZXRlcnMgKHNlZSBcIiVfXCIpLiAqKVxuYW5kICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBpZ25vcmVkID1cbiAgfCBJZ25vcmVkX2NoYXIgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlX2MgKilcbiAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2QsICdhKSBpZ25vcmVkXG4gIHwgSWdub3JlZF9jYW1sX2NoYXIgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJV9DICopXG4gICAgICAoJ2EsICdiLCAnYywgJ2QsICdkLCAnYSkgaWdub3JlZFxuICB8IElnbm9yZWRfc3RyaW5nIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVfcyAqKVxuICAgICAgcGFkX29wdGlvbiAtPiAoJ2EsICdiLCAnYywgJ2QsICdkLCAnYSkgaWdub3JlZFxuICB8IElnbm9yZWRfY2FtbF9zdHJpbmcgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVfUyAqKVxuICAgICAgcGFkX29wdGlvbiAtPiAoJ2EsICdiLCAnYywgJ2QsICdkLCAnYSkgaWdub3JlZFxuICB8IElnbm9yZWRfaW50IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVfZCAqKVxuICAgICAgaW50X2NvbnYgKiBwYWRfb3B0aW9uIC0+ICgnYSwgJ2IsICdjLCAnZCwgJ2QsICdhKSBpZ25vcmVkXG4gIHwgSWdub3JlZF9pbnQzMiA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJV9sZCAqKVxuICAgICAgaW50X2NvbnYgKiBwYWRfb3B0aW9uIC0+ICgnYSwgJ2IsICdjLCAnZCwgJ2QsICdhKSBpZ25vcmVkXG4gIHwgSWdub3JlZF9uYXRpdmVpbnQgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJV9uZCAqKVxuICAgICAgaW50X2NvbnYgKiBwYWRfb3B0aW9uIC0+ICgnYSwgJ2IsICdjLCAnZCwgJ2QsICdhKSBpZ25vcmVkXG4gIHwgSWdub3JlZF9pbnQ2NCA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJV9MZCAqKVxuICAgICAgaW50X2NvbnYgKiBwYWRfb3B0aW9uIC0+ICgnYSwgJ2IsICdjLCAnZCwgJ2QsICdhKSBpZ25vcmVkXG4gIHwgSWdub3JlZF9mbG9hdCA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJV9mICopXG4gICAgICBwYWRfb3B0aW9uICogcHJlY19vcHRpb24gLT4gKCdhLCAnYiwgJ2MsICdkLCAnZCwgJ2EpIGlnbm9yZWRcbiAgfCBJZ25vcmVkX2Jvb2wgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlX0IgKilcbiAgICAgIHBhZF9vcHRpb24gLT4gKCdhLCAnYiwgJ2MsICdkLCAnZCwgJ2EpIGlnbm9yZWRcbiAgfCBJZ25vcmVkX2Zvcm1hdF9hcmcgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlX3suLi4lfSAqKVxuICAgICAgcGFkX29wdGlvbiAqICgnZywgJ2gsICdpLCAnaiwgJ2ssICdsKSBmbXR0eSAtPlxuICAgICAgICAoJ2EsICdiLCAnYywgJ2QsICdkLCAnYSkgaWdub3JlZFxuICB8IElnbm9yZWRfZm9ybWF0X3N1YnN0IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVfKC4uLiUpICopXG4gICAgICBwYWRfb3B0aW9uICogKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdHR5IC0+XG4gICAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBpZ25vcmVkXG4gIHwgSWdub3JlZF9yZWFkZXIgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJV9yICopXG4gICAgICAoJ2EsICdiLCAnYywgKCdiIC0+ICd4KSAtPiAnZCwgJ2QsICdhKSBpZ25vcmVkXG4gIHwgSWdub3JlZF9zY2FuX2NoYXJfc2V0IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJV9bLi4uXSAqKVxuICAgICAgcGFkX29wdGlvbiAqIGNoYXJfc2V0IC0+ICgnYSwgJ2IsICdjLCAnZCwgJ2QsICdhKSBpZ25vcmVkXG4gIHwgSWdub3JlZF9zY2FuX2dldF9jb3VudGVyIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJV9bbmxOTF0gKilcbiAgICAgIGNvdW50ZXIgLT4gKCdhLCAnYiwgJ2MsICdkLCAnZCwgJ2EpIGlnbm9yZWRcbiAgfCBJZ25vcmVkX3NjYW5fbmV4dF9jaGFyIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlXzBjICopXG4gICAgICAoJ2EsICdiLCAnYywgJ2QsICdkLCAnYSkgaWdub3JlZFxuXG5hbmQgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZvcm1hdDYgPVxuICBGb3JtYXQgb2YgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAqIHN0cmluZ1xuXG5sZXQgcmVjIGVyYXNlX3JlbCA6IHR5cGUgYSBiIGMgZCBlIGYgZyBoIGkgaiBrIGwgLlxuICAoYSwgYiwgYywgZCwgZSwgZixcbiAgIGcsIGgsIGksIGosIGssIGwpIGZtdHR5X3JlbCAtPiAoYSwgYiwgYywgZCwgZSwgZikgZm10dHlcbj0gZnVuY3Rpb25cbiAgfCBDaGFyX3R5IHJlc3QgLT5cbiAgICBDaGFyX3R5IChlcmFzZV9yZWwgcmVzdClcbiAgfCBTdHJpbmdfdHkgcmVzdCAtPlxuICAgIFN0cmluZ190eSAoZXJhc2VfcmVsIHJlc3QpXG4gIHwgSW50X3R5IHJlc3QgLT5cbiAgICBJbnRfdHkgKGVyYXNlX3JlbCByZXN0KVxuICB8IEludDMyX3R5IHJlc3QgLT5cbiAgICBJbnQzMl90eSAoZXJhc2VfcmVsIHJlc3QpXG4gIHwgSW50NjRfdHkgcmVzdCAtPlxuICAgIEludDY0X3R5IChlcmFzZV9yZWwgcmVzdClcbiAgfCBOYXRpdmVpbnRfdHkgcmVzdCAtPlxuICAgIE5hdGl2ZWludF90eSAoZXJhc2VfcmVsIHJlc3QpXG4gIHwgRmxvYXRfdHkgcmVzdCAtPlxuICAgIEZsb2F0X3R5IChlcmFzZV9yZWwgcmVzdClcbiAgfCBCb29sX3R5IHJlc3QgLT5cbiAgICBCb29sX3R5IChlcmFzZV9yZWwgcmVzdClcbiAgfCBGb3JtYXRfYXJnX3R5ICh0eSwgcmVzdCkgLT5cbiAgICBGb3JtYXRfYXJnX3R5ICh0eSwgZXJhc2VfcmVsIHJlc3QpXG4gIHwgRm9ybWF0X3N1YnN0X3R5ICh0eTEsIF90eTIsIHJlc3QpIC0+XG4gICAgRm9ybWF0X3N1YnN0X3R5ICh0eTEsIHR5MSwgZXJhc2VfcmVsIHJlc3QpXG4gIHwgQWxwaGFfdHkgcmVzdCAtPlxuICAgIEFscGhhX3R5IChlcmFzZV9yZWwgcmVzdClcbiAgfCBUaGV0YV90eSByZXN0IC0+XG4gICAgVGhldGFfdHkgKGVyYXNlX3JlbCByZXN0KVxuICB8IEFueV90eSByZXN0IC0+XG4gICAgQW55X3R5IChlcmFzZV9yZWwgcmVzdClcbiAgfCBSZWFkZXJfdHkgcmVzdCAtPlxuICAgIFJlYWRlcl90eSAoZXJhc2VfcmVsIHJlc3QpXG4gIHwgSWdub3JlZF9yZWFkZXJfdHkgcmVzdCAtPlxuICAgIElnbm9yZWRfcmVhZGVyX3R5IChlcmFzZV9yZWwgcmVzdClcbiAgfCBFbmRfb2ZfZm10dHkgLT4gRW5kX29mX2ZtdHR5XG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCogRm9ybWF0IHR5cGUgY29uY2F0ZW5hdGlvbiAqKVxuXG4oKiBDb25jYXRlbmF0ZSB0d28gZm9ybWF0IHR5cGVzLiAqKVxuKCogVXNlZCBieTpcbiAgICogcmVhZGVyX25iX3VuaWZpZXJfb2ZfZm10dHkgdG8gY291bnQgcmVhZGVycyBpbiBhbiBmbXR0eSxcbiAgICogU2NhbmYudGFrZV9mbXR0eV9mb3JtYXRfcmVhZGVycyB0byBleHRyYWN0IHJlYWRlcnMgaW5zaWRlICUoLi4uJSksXG4gICAqIENhbWxpbnRlcm5hbEZvcm1hdC5mbXR0eV9vZl9pZ25vcmVkX2Zvcm1hdCB0byBleHRyYWN0IGZvcm1hdCB0eXBlLiAqKVxuXG4oKlxubGV0IHJlYyBjb25jYXRfZm10dHkgOiB0eXBlIGEgYiBjIGQgZSBmIGcgaCAuXG4gICAgKGEsIGIsIGMsIGQsIGUsIGYpIGZtdHR5IC0+XG4gICAgKGYsIGIsIGMsIGUsIGcsIGgpIGZtdHR5IC0+XG4gICAgKGEsIGIsIGMsIGQsIGcsIGgpIGZtdHR5ID1cbiopXG5sZXQgcmVjIGNvbmNhdF9mbXR0eSA6XG4gIHR5cGUgYTEgYjEgYzEgZDEgZTEgZjFcbiAgICAgICBhMiBiMiBjMiBkMiBlMiBmMlxuICAgICAgIGcxIGoxIGcyIGoyXG4gIC5cbiAgICAoZzEsIGIxLCBjMSwgajEsIGQxLCBhMSxcbiAgICAgZzIsIGIyLCBjMiwgajIsIGQyLCBhMikgZm10dHlfcmVsIC0+XG4gICAgKGExLCBiMSwgYzEsIGQxLCBlMSwgZjEsXG4gICAgIGEyLCBiMiwgYzIsIGQyLCBlMiwgZjIpIGZtdHR5X3JlbCAtPlxuICAgIChnMSwgYjEsIGMxLCBqMSwgZTEsIGYxLFxuICAgICBnMiwgYjIsIGMyLCBqMiwgZTIsIGYyKSBmbXR0eV9yZWwgPVxuZnVuIGZtdHR5MSBmbXR0eTIgLT4gbWF0Y2ggZm10dHkxIHdpdGhcbiAgfCBDaGFyX3R5IHJlc3QgLT5cbiAgICBDaGFyX3R5IChjb25jYXRfZm10dHkgcmVzdCBmbXR0eTIpXG4gIHwgU3RyaW5nX3R5IHJlc3QgLT5cbiAgICBTdHJpbmdfdHkgKGNvbmNhdF9mbXR0eSByZXN0IGZtdHR5MilcbiAgfCBJbnRfdHkgcmVzdCAtPlxuICAgIEludF90eSAoY29uY2F0X2ZtdHR5IHJlc3QgZm10dHkyKVxuICB8IEludDMyX3R5IHJlc3QgLT5cbiAgICBJbnQzMl90eSAoY29uY2F0X2ZtdHR5IHJlc3QgZm10dHkyKVxuICB8IE5hdGl2ZWludF90eSByZXN0IC0+XG4gICAgTmF0aXZlaW50X3R5IChjb25jYXRfZm10dHkgcmVzdCBmbXR0eTIpXG4gIHwgSW50NjRfdHkgcmVzdCAtPlxuICAgIEludDY0X3R5IChjb25jYXRfZm10dHkgcmVzdCBmbXR0eTIpXG4gIHwgRmxvYXRfdHkgcmVzdCAtPlxuICAgIEZsb2F0X3R5IChjb25jYXRfZm10dHkgcmVzdCBmbXR0eTIpXG4gIHwgQm9vbF90eSByZXN0IC0+XG4gICAgQm9vbF90eSAoY29uY2F0X2ZtdHR5IHJlc3QgZm10dHkyKVxuICB8IEFscGhhX3R5IHJlc3QgLT5cbiAgICBBbHBoYV90eSAoY29uY2F0X2ZtdHR5IHJlc3QgZm10dHkyKVxuICB8IFRoZXRhX3R5IHJlc3QgLT5cbiAgICBUaGV0YV90eSAoY29uY2F0X2ZtdHR5IHJlc3QgZm10dHkyKVxuICB8IEFueV90eSByZXN0IC0+XG4gICAgQW55X3R5IChjb25jYXRfZm10dHkgcmVzdCBmbXR0eTIpXG4gIHwgUmVhZGVyX3R5IHJlc3QgLT5cbiAgICBSZWFkZXJfdHkgKGNvbmNhdF9mbXR0eSByZXN0IGZtdHR5MilcbiAgfCBJZ25vcmVkX3JlYWRlcl90eSByZXN0IC0+XG4gICAgSWdub3JlZF9yZWFkZXJfdHkgKGNvbmNhdF9mbXR0eSByZXN0IGZtdHR5MilcbiAgfCBGb3JtYXRfYXJnX3R5ICh0eSwgcmVzdCkgLT5cbiAgICBGb3JtYXRfYXJnX3R5ICh0eSwgY29uY2F0X2ZtdHR5IHJlc3QgZm10dHkyKVxuICB8IEZvcm1hdF9zdWJzdF90eSAodHkxLCB0eTIsIHJlc3QpIC0+XG4gICAgRm9ybWF0X3N1YnN0X3R5ICh0eTEsIHR5MiwgY29uY2F0X2ZtdHR5IHJlc3QgZm10dHkyKVxuICB8IEVuZF9vZl9mbXR0eSAtPiBmbXR0eTJcblxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIEZvcm1hdCBjb25jYXRlbmF0aW9uICopXG5cbigqIENvbmNhdGVuYXRlIHR3byBmb3JtYXRzLiAqKVxubGV0IHJlYyBjb25jYXRfZm10IDogdHlwZSBhIGIgYyBkIGUgZiBnIGggLlxuICAgIChhLCBiLCBjLCBkLCBlLCBmKSBmbXQgLT5cbiAgICAoZiwgYiwgYywgZSwgZywgaCkgZm10IC0+XG4gICAgKGEsIGIsIGMsIGQsIGcsIGgpIGZtdCA9XG5mdW4gZm10MSBmbXQyIC0+IG1hdGNoIGZtdDEgd2l0aFxuICB8IFN0cmluZyAocGFkLCByZXN0KSAtPlxuICAgIFN0cmluZyAocGFkLCBjb25jYXRfZm10IHJlc3QgZm10MilcbiAgfCBDYW1sX3N0cmluZyAocGFkLCByZXN0KSAtPlxuICAgIENhbWxfc3RyaW5nIChwYWQsIGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuXG4gIHwgSW50IChpY29udiwgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIEludCAoaWNvbnYsIHBhZCwgcHJlYywgY29uY2F0X2ZtdCByZXN0IGZtdDIpXG4gIHwgSW50MzIgKGljb252LCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgSW50MzIgKGljb252LCBwYWQsIHByZWMsIGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuICB8IE5hdGl2ZWludCAoaWNvbnYsIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICBOYXRpdmVpbnQgKGljb252LCBwYWQsIHByZWMsIGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuICB8IEludDY0IChpY29udiwgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIEludDY0IChpY29udiwgcGFkLCBwcmVjLCBjb25jYXRfZm10IHJlc3QgZm10MilcbiAgfCBGbG9hdCAoZmNvbnYsIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICBGbG9hdCAoZmNvbnYsIHBhZCwgcHJlYywgY29uY2F0X2ZtdCByZXN0IGZtdDIpXG5cbiAgfCBDaGFyIChyZXN0KSAtPlxuICAgIENoYXIgKGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuICB8IENhbWxfY2hhciByZXN0IC0+XG4gICAgQ2FtbF9jaGFyIChjb25jYXRfZm10IHJlc3QgZm10MilcbiAgfCBCb29sIChwYWQsIHJlc3QpIC0+XG4gICAgQm9vbCAocGFkLCBjb25jYXRfZm10IHJlc3QgZm10MilcbiAgfCBBbHBoYSByZXN0IC0+XG4gICAgQWxwaGEgKGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuICB8IFRoZXRhIHJlc3QgLT5cbiAgICBUaGV0YSAoY29uY2F0X2ZtdCByZXN0IGZtdDIpXG4gIHwgQ3VzdG9tIChhcml0eSwgZiwgcmVzdCkgLT5cbiAgICBDdXN0b20gKGFyaXR5LCBmLCBjb25jYXRfZm10IHJlc3QgZm10MilcbiAgfCBSZWFkZXIgcmVzdCAtPlxuICAgIFJlYWRlciAoY29uY2F0X2ZtdCByZXN0IGZtdDIpXG4gIHwgRmx1c2ggcmVzdCAtPlxuICAgIEZsdXNoIChjb25jYXRfZm10IHJlc3QgZm10MilcblxuICB8IFN0cmluZ19saXRlcmFsIChzdHIsIHJlc3QpIC0+XG4gICAgU3RyaW5nX2xpdGVyYWwgKHN0ciwgY29uY2F0X2ZtdCByZXN0IGZtdDIpXG4gIHwgQ2hhcl9saXRlcmFsIChjaHIsIHJlc3QpIC0+XG4gICAgQ2hhcl9saXRlcmFsICAgKGNociwgY29uY2F0X2ZtdCByZXN0IGZtdDIpXG5cbiAgfCBGb3JtYXRfYXJnIChwYWQsIGZtdHR5LCByZXN0KSAtPlxuICAgIEZvcm1hdF9hcmcgICAocGFkLCBmbXR0eSwgY29uY2F0X2ZtdCByZXN0IGZtdDIpXG4gIHwgRm9ybWF0X3N1YnN0IChwYWQsIGZtdHR5LCByZXN0KSAtPlxuICAgIEZvcm1hdF9zdWJzdCAocGFkLCBmbXR0eSwgY29uY2F0X2ZtdCByZXN0IGZtdDIpXG5cbiAgfCBTY2FuX2NoYXJfc2V0ICh3aWR0aF9vcHQsIGNoYXJfc2V0LCByZXN0KSAtPlxuICAgIFNjYW5fY2hhcl9zZXQgKHdpZHRoX29wdCwgY2hhcl9zZXQsIGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuICB8IFNjYW5fZ2V0X2NvdW50ZXIgKGNvdW50ZXIsIHJlc3QpIC0+XG4gICAgU2Nhbl9nZXRfY291bnRlciAoY291bnRlciwgY29uY2F0X2ZtdCByZXN0IGZtdDIpXG4gIHwgU2Nhbl9uZXh0X2NoYXIgKHJlc3QpIC0+XG4gICAgU2Nhbl9uZXh0X2NoYXIgKGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuICB8IElnbm9yZWRfcGFyYW0gKGlnbiwgcmVzdCkgLT5cbiAgICBJZ25vcmVkX3BhcmFtIChpZ24sIGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuXG4gIHwgRm9ybWF0dGluZ19saXQgKGZtdGluZ19saXQsIHJlc3QpIC0+XG4gICAgRm9ybWF0dGluZ19saXQgKGZtdGluZ19saXQsIGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuICB8IEZvcm1hdHRpbmdfZ2VuIChmbXRpbmdfZ2VuLCByZXN0KSAtPlxuICAgIEZvcm1hdHRpbmdfZ2VuIChmbXRpbmdfZ2VuLCBjb25jYXRfZm10IHJlc3QgZm10MilcblxuICB8IEVuZF9vZl9mb3JtYXQgLT5cbiAgICBmbXQyXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBHYWJyaWVsIFNjaGVyZXIsIHByb2pldCBQYXJ0b3V0LCBJTlJJQSBQYXJpcy1TYWNsYXkgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDIwIEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIENhbWxpbnRlcm5hbEF0b21pYyBpcyBhIGRlcGVuZGVuY3kgb2YgU3RkbGliLCBzbyBpdCBpcyBjb21waWxlZCB3aXRoXG4gICAtbm9wZXJ2YXNpdmVzLiAqKVxuZXh0ZXJuYWwgKCA9PSApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJWVxXCJcbmV4dGVybmFsICggKyApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVhZGRpbnRcIlxuZXh0ZXJuYWwgaWdub3JlIDogJ2EgLT4gdW5pdCA9IFwiJWlnbm9yZVwiXG5cbigqIFdlIGFyZSBub3QgcmV1c2luZyAoJ2EgcmVmKSBkaXJlY3RseSB0byBtYWtlIGl0IGVhc2llciB0byByZWFzb25cbiAgIGFib3V0IGF0b21pY2l0eSBpZiB3ZSB3aXNoIHRvOiBldmVuIGluIGEgc2VxdWVudGlhbCBpbXBsZW1lbnRhdGlvbixcbiAgIHNpZ25hbHMgYW5kIG90aGVyIGFzeW5jaHJvbm91cyBjYWxsYmFja3MgbWlnaHQgYnJlYWsgYXRvbWljaXR5LiAqKVxudHlwZSAnYSB0ID0ge211dGFibGUgdjogJ2F9XG5cbmxldCBtYWtlIHYgPSB7dn1cbmxldCBnZXQgciA9IHIudlxubGV0IHNldCByIHYgPSByLnYgPC0gdlxuXG4oKiBUaGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBhcmUgc2V0IHRvIG5ldmVyIGJlIGlubGluZWQ6IEZsYW1iZGEgaXNcbiAgIGFsbG93ZWQgdG8gbW92ZSBzdXJyb3VuZGluZyBjb2RlIGluc2lkZSB0aGUgY3JpdGljYWwgc2VjdGlvbixcbiAgIGluY2x1ZGluZyBhbGxvY2F0aW9ucy4gKilcblxubGV0W0BpbmxpbmUgbmV2ZXJdIGV4Y2hhbmdlIHIgdiA9XG4gICgqIEJFR0lOIEFUT01JQyAqKVxuICBsZXQgY3VyID0gci52IGluXG4gIHIudiA8LSB2O1xuICAoKiBFTkQgQVRPTUlDICopXG4gIGN1clxuXG5sZXRbQGlubGluZSBuZXZlcl0gY29tcGFyZV9hbmRfc2V0IHIgc2VlbiB2ID1cbiAgKCogQkVHSU4gQVRPTUlDICopXG4gIGxldCBjdXIgPSByLnYgaW5cbiAgaWYgY3VyID09IHNlZW4gdGhlbiAoXG4gICAgci52IDwtIHY7XG4gICAgKCogRU5EIEFUT01JQyAqKVxuICAgIHRydWVcbiAgKSBlbHNlXG4gICAgZmFsc2VcblxubGV0W0BpbmxpbmUgbmV2ZXJdIGZldGNoX2FuZF9hZGQgciBuID1cbiAgKCogQkVHSU4gQVRPTUlDICopXG4gIGxldCBjdXIgPSByLnYgaW5cbiAgci52IDwtIChjdXIgKyBuKTtcbiAgKCogRU5EIEFUT01JQyAqKVxuICBjdXJcblxubGV0IGluY3IgciA9IGlnbm9yZSAoZmV0Y2hfYW5kX2FkZCByIDEpXG5sZXQgZGVjciByID0gaWdub3JlIChmZXRjaF9hbmRfYWRkIHIgKC0xKSlcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogRXhjZXB0aW9ucyAqKVxuXG5leHRlcm5hbCByZWdpc3Rlcl9uYW1lZF92YWx1ZSA6IHN0cmluZyAtPiAnYSAtPiB1bml0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IFwiY2FtbF9yZWdpc3Rlcl9uYW1lZF92YWx1ZVwiXG5cbmxldCAoKSA9XG4gICgqIGZvciBydW50aW1lL2ZhaWxfbmF0LmMgKilcbiAgcmVnaXN0ZXJfbmFtZWRfdmFsdWUgXCJQZXJ2YXNpdmVzLmFycmF5X2JvdW5kX2Vycm9yXCJcbiAgICAoSW52YWxpZF9hcmd1bWVudCBcImluZGV4IG91dCBvZiBib3VuZHNcIilcblxuZXh0ZXJuYWwgcmFpc2UgOiBleG4gLT4gJ2EgPSBcIiVyYWlzZVwiXG5leHRlcm5hbCByYWlzZV9ub3RyYWNlIDogZXhuIC0+ICdhID0gXCIlcmFpc2Vfbm90cmFjZVwiXG5cbmxldCBmYWlsd2l0aCBzID0gcmFpc2UoRmFpbHVyZSBzKVxubGV0IGludmFsaWRfYXJnIHMgPSByYWlzZShJbnZhbGlkX2FyZ3VtZW50IHMpXG5cbmV4Y2VwdGlvbiBFeGl0XG5leGNlcHRpb24gTWF0Y2hfZmFpbHVyZSA9IE1hdGNoX2ZhaWx1cmVcbmV4Y2VwdGlvbiBBc3NlcnRfZmFpbHVyZSA9IEFzc2VydF9mYWlsdXJlXG5leGNlcHRpb24gSW52YWxpZF9hcmd1bWVudCA9IEludmFsaWRfYXJndW1lbnRcbmV4Y2VwdGlvbiBGYWlsdXJlID0gRmFpbHVyZVxuZXhjZXB0aW9uIE5vdF9mb3VuZCA9IE5vdF9mb3VuZFxuZXhjZXB0aW9uIE91dF9vZl9tZW1vcnkgPSBPdXRfb2ZfbWVtb3J5XG5leGNlcHRpb24gU3RhY2tfb3ZlcmZsb3cgPSBTdGFja19vdmVyZmxvd1xuZXhjZXB0aW9uIFN5c19lcnJvciA9IFN5c19lcnJvclxuZXhjZXB0aW9uIEVuZF9vZl9maWxlID0gRW5kX29mX2ZpbGVcbmV4Y2VwdGlvbiBEaXZpc2lvbl9ieV96ZXJvID0gRGl2aXNpb25fYnlfemVyb1xuZXhjZXB0aW9uIFN5c19ibG9ja2VkX2lvID0gU3lzX2Jsb2NrZWRfaW9cbmV4Y2VwdGlvbiBVbmRlZmluZWRfcmVjdXJzaXZlX21vZHVsZSA9IFVuZGVmaW5lZF9yZWN1cnNpdmVfbW9kdWxlXG5cbigqIENvbXBvc2l0aW9uIG9wZXJhdG9ycyAqKVxuXG5leHRlcm5hbCAoIHw+ICkgOiAnYSAtPiAoJ2EgLT4gJ2IpIC0+ICdiID0gXCIlcmV2YXBwbHlcIlxuZXh0ZXJuYWwgKCBAQCApIDogKCdhIC0+ICdiKSAtPiAnYSAtPiAnYiA9IFwiJWFwcGx5XCJcblxuKCogRGVidWdnaW5nICopXG5cbmV4dGVybmFsIF9fTE9DX18gOiBzdHJpbmcgPSBcIiVsb2NfTE9DXCJcbmV4dGVybmFsIF9fRklMRV9fIDogc3RyaW5nID0gXCIlbG9jX0ZJTEVcIlxuZXh0ZXJuYWwgX19MSU5FX18gOiBpbnQgPSBcIiVsb2NfTElORVwiXG5leHRlcm5hbCBfX01PRFVMRV9fIDogc3RyaW5nID0gXCIlbG9jX01PRFVMRVwiXG5leHRlcm5hbCBfX1BPU19fIDogc3RyaW5nICogaW50ICogaW50ICogaW50ID0gXCIlbG9jX1BPU1wiXG5leHRlcm5hbCBfX0ZVTkNUSU9OX18gOiBzdHJpbmcgPSBcIiVsb2NfRlVOQ1RJT05cIlxuXG5leHRlcm5hbCBfX0xPQ19PRl9fIDogJ2EgLT4gc3RyaW5nICogJ2EgPSBcIiVsb2NfTE9DXCJcbmV4dGVybmFsIF9fTElORV9PRl9fIDogJ2EgLT4gaW50ICogJ2EgPSBcIiVsb2NfTElORVwiXG5leHRlcm5hbCBfX1BPU19PRl9fIDogJ2EgLT4gKHN0cmluZyAqIGludCAqIGludCAqIGludCkgKiAnYSA9IFwiJWxvY19QT1NcIlxuXG4oKiBDb21wYXJpc29ucyAqKVxuXG5leHRlcm5hbCAoID0gKSA6ICdhIC0+ICdhIC0+IGJvb2wgPSBcIiVlcXVhbFwiXG5leHRlcm5hbCAoIDw+ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlbm90ZXF1YWxcIlxuZXh0ZXJuYWwgKCA8ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlbGVzc3RoYW5cIlxuZXh0ZXJuYWwgKCA+ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlZ3JlYXRlcnRoYW5cIlxuZXh0ZXJuYWwgKCA8PSApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJWxlc3NlcXVhbFwiXG5leHRlcm5hbCAoID49ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlZ3JlYXRlcmVxdWFsXCJcbmV4dGVybmFsIGNvbXBhcmUgOiAnYSAtPiAnYSAtPiBpbnQgPSBcIiVjb21wYXJlXCJcblxubGV0IG1pbiB4IHkgPSBpZiB4IDw9IHkgdGhlbiB4IGVsc2UgeVxubGV0IG1heCB4IHkgPSBpZiB4ID49IHkgdGhlbiB4IGVsc2UgeVxuXG5leHRlcm5hbCAoID09ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlZXFcIlxuZXh0ZXJuYWwgKCAhPSApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJW5vdGVxXCJcblxuKCogQm9vbGVhbiBvcGVyYXRpb25zICopXG5cbmV4dGVybmFsIG5vdCA6IGJvb2wgLT4gYm9vbCA9IFwiJWJvb2xub3RcIlxuZXh0ZXJuYWwgKCAmICkgOiBib29sIC0+IGJvb2wgLT4gYm9vbCA9IFwiJXNlcXVhbmRcIlxuZXh0ZXJuYWwgKCAmJiApIDogYm9vbCAtPiBib29sIC0+IGJvb2wgPSBcIiVzZXF1YW5kXCJcbmV4dGVybmFsICggb3IgKSA6IGJvb2wgLT4gYm9vbCAtPiBib29sID0gXCIlc2VxdW9yXCJcbmV4dGVybmFsICggfHwgKSA6IGJvb2wgLT4gYm9vbCAtPiBib29sID0gXCIlc2VxdW9yXCJcblxuKCogSW50ZWdlciBvcGVyYXRpb25zICopXG5cbmV4dGVybmFsICggfi0gKSA6IGludCAtPiBpbnQgPSBcIiVuZWdpbnRcIlxuZXh0ZXJuYWwgKCB+KyApIDogaW50IC0+IGludCA9IFwiJWlkZW50aXR5XCJcbmV4dGVybmFsIHN1Y2MgOiBpbnQgLT4gaW50ID0gXCIlc3VjY2ludFwiXG5leHRlcm5hbCBwcmVkIDogaW50IC0+IGludCA9IFwiJXByZWRpbnRcIlxuZXh0ZXJuYWwgKCArICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWFkZGludFwiXG5leHRlcm5hbCAoIC0gKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlc3ViaW50XCJcbmV4dGVybmFsICggKiApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVtdWxpbnRcIlxuZXh0ZXJuYWwgKCAvICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWRpdmludFwiXG5leHRlcm5hbCAoIG1vZCApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVtb2RpbnRcIlxuXG5sZXQgYWJzIHggPSBpZiB4ID49IDAgdGhlbiB4IGVsc2UgLXhcblxuZXh0ZXJuYWwgKCBsYW5kICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWFuZGludFwiXG5leHRlcm5hbCAoIGxvciApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVvcmludFwiXG5leHRlcm5hbCAoIGx4b3IgKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIleG9yaW50XCJcblxubGV0IGxub3QgeCA9IHggbHhvciAoLTEpXG5cbmV4dGVybmFsICggbHNsICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWxzbGludFwiXG5leHRlcm5hbCAoIGxzciApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVsc3JpbnRcIlxuZXh0ZXJuYWwgKCBhc3IgKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlYXNyaW50XCJcblxubGV0IG1heF9pbnQgPSAoLTEpIGxzciAxXG5sZXQgbWluX2ludCA9IG1heF9pbnQgKyAxXG5cbigqIEZsb2F0aW5nLXBvaW50IG9wZXJhdGlvbnMgKilcblxuZXh0ZXJuYWwgKCB+LS4gKSA6IGZsb2F0IC0+IGZsb2F0ID0gXCIlbmVnZmxvYXRcIlxuZXh0ZXJuYWwgKCB+Ky4gKSA6IGZsb2F0IC0+IGZsb2F0ID0gXCIlaWRlbnRpdHlcIlxuZXh0ZXJuYWwgKCArLiApIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcIiVhZGRmbG9hdFwiXG5leHRlcm5hbCAoIC0uICkgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiJXN1YmZsb2F0XCJcbmV4dGVybmFsICggKi4gKSA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCIlbXVsZmxvYXRcIlxuZXh0ZXJuYWwgKCAvLiApIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcIiVkaXZmbG9hdFwiXG5leHRlcm5hbCAoICoqICkgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9wb3dlcl9mbG9hdFwiIFwicG93XCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGV4cCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2V4cF9mbG9hdFwiIFwiZXhwXCIgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGV4cG0xIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfZXhwbTFfZmxvYXRcIiBcImNhbWxfZXhwbTFcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYWNvcyA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2Fjb3NfZmxvYXRcIiBcImFjb3NcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYXNpbiA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2FzaW5fZmxvYXRcIiBcImFzaW5cIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYXRhbiA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2F0YW5fZmxvYXRcIiBcImF0YW5cIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYXRhbjIgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9hdGFuMl9mbG9hdFwiIFwiYXRhbjJcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgaHlwb3QgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdFxuICAgICAgICAgICAgICAgPSBcImNhbWxfaHlwb3RfZmxvYXRcIiBcImNhbWxfaHlwb3RcIiBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgY29zIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfY29zX2Zsb2F0XCIgXCJjb3NcIiBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgY29zaCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2Nvc2hfZmxvYXRcIiBcImNvc2hcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYWNvc2ggOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9hY29zaF9mbG9hdFwiIFwiY2FtbF9hY29zaFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBsb2cgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9sb2dfZmxvYXRcIiBcImxvZ1wiIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBsb2cxMCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2xvZzEwX2Zsb2F0XCIgXCJsb2cxMFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBsb2cxcCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2xvZzFwX2Zsb2F0XCIgXCJjYW1sX2xvZzFwXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIHNpbiA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX3Npbl9mbG9hdFwiIFwic2luXCIgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIHNpbmggOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9zaW5oX2Zsb2F0XCIgXCJzaW5oXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGFzaW5oIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfYXNpbmhfZmxvYXRcIiBcImNhbWxfYXNpbmhcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgc3FydCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX3NxcnRfZmxvYXRcIiBcInNxcnRcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgdGFuIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfdGFuX2Zsb2F0XCIgXCJ0YW5cIiBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgdGFuaCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX3RhbmhfZmxvYXRcIiBcInRhbmhcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYXRhbmggOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9hdGFuaF9mbG9hdFwiIFwiY2FtbF9hdGFuaFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBjZWlsIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfY2VpbF9mbG9hdFwiIFwiY2VpbFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBmbG9vciA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2Zsb29yX2Zsb2F0XCIgXCJmbG9vclwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBhYnNfZmxvYXQgOiBmbG9hdCAtPiBmbG9hdCA9IFwiJWFic2Zsb2F0XCJcbmV4dGVybmFsIGNvcHlzaWduIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXRcbiAgICAgICAgICAgICAgICAgID0gXCJjYW1sX2NvcHlzaWduX2Zsb2F0XCIgXCJjYW1sX2NvcHlzaWduXCJcbiAgICAgICAgICAgICAgICAgIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBtb2RfZmxvYXQgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9mbW9kX2Zsb2F0XCIgXCJmbW9kXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGZyZXhwIDogZmxvYXQgLT4gZmxvYXQgKiBpbnQgPSBcImNhbWxfZnJleHBfZmxvYXRcIlxuZXh0ZXJuYWwgbGRleHAgOiAoZmxvYXQgW0B1bmJveGVkXSkgLT4gKGludCBbQHVudGFnZ2VkXSkgLT4gKGZsb2F0IFtAdW5ib3hlZF0pID1cbiAgXCJjYW1sX2xkZXhwX2Zsb2F0XCIgXCJjYW1sX2xkZXhwX2Zsb2F0X3VuYm94ZWRcIiBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgbW9kZiA6IGZsb2F0IC0+IGZsb2F0ICogZmxvYXQgPSBcImNhbWxfbW9kZl9mbG9hdFwiXG5leHRlcm5hbCBmbG9hdCA6IGludCAtPiBmbG9hdCA9IFwiJWZsb2F0b2ZpbnRcIlxuZXh0ZXJuYWwgZmxvYXRfb2ZfaW50IDogaW50IC0+IGZsb2F0ID0gXCIlZmxvYXRvZmludFwiXG5leHRlcm5hbCB0cnVuY2F0ZSA6IGZsb2F0IC0+IGludCA9IFwiJWludG9mZmxvYXRcIlxuZXh0ZXJuYWwgaW50X29mX2Zsb2F0IDogZmxvYXQgLT4gaW50ID0gXCIlaW50b2ZmbG9hdFwiXG5leHRlcm5hbCBmbG9hdF9vZl9iaXRzIDogaW50NjQgLT4gZmxvYXRcbiAgPSBcImNhbWxfaW50NjRfZmxvYXRfb2ZfYml0c1wiIFwiY2FtbF9pbnQ2NF9mbG9hdF9vZl9iaXRzX3VuYm94ZWRcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxubGV0IGluZmluaXR5ID1cbiAgZmxvYXRfb2ZfYml0cyAweDdGX0YwXzAwXzAwXzAwXzAwXzAwXzAwTFxubGV0IG5lZ19pbmZpbml0eSA9XG4gIGZsb2F0X29mX2JpdHMgMHhGRl9GMF8wMF8wMF8wMF8wMF8wMF8wMExcbmxldCBuYW4gPVxuICBmbG9hdF9vZl9iaXRzIDB4N0ZfRjBfMDBfMDBfMDBfMDBfMDBfMDFMXG5sZXQgbWF4X2Zsb2F0ID1cbiAgZmxvYXRfb2ZfYml0cyAweDdGX0VGX0ZGX0ZGX0ZGX0ZGX0ZGX0ZGTFxubGV0IG1pbl9mbG9hdCA9XG4gIGZsb2F0X29mX2JpdHMgMHgwMF8xMF8wMF8wMF8wMF8wMF8wMF8wMExcbmxldCBlcHNpbG9uX2Zsb2F0ID1cbiAgZmxvYXRfb2ZfYml0cyAweDNDX0IwXzAwXzAwXzAwXzAwXzAwXzAwTFxuXG50eXBlIGZwY2xhc3MgPVxuICAgIEZQX25vcm1hbFxuICB8IEZQX3N1Ym5vcm1hbFxuICB8IEZQX3plcm9cbiAgfCBGUF9pbmZpbml0ZVxuICB8IEZQX25hblxuZXh0ZXJuYWwgY2xhc3NpZnlfZmxvYXQgOiAoZmxvYXQgW0B1bmJveGVkXSkgLT4gZnBjbGFzcyA9XG4gIFwiY2FtbF9jbGFzc2lmeV9mbG9hdFwiIFwiY2FtbF9jbGFzc2lmeV9mbG9hdF91bmJveGVkXCIgW0BAbm9hbGxvY11cblxuKCogU3RyaW5nIGFuZCBieXRlIHNlcXVlbmNlIG9wZXJhdGlvbnMgLS0gbW9yZSBpbiBtb2R1bGVzIFN0cmluZyBhbmQgQnl0ZXMgKilcblxuZXh0ZXJuYWwgc3RyaW5nX2xlbmd0aCA6IHN0cmluZyAtPiBpbnQgPSBcIiVzdHJpbmdfbGVuZ3RoXCJcbmV4dGVybmFsIGJ5dGVzX2xlbmd0aCA6IGJ5dGVzIC0+IGludCA9IFwiJWJ5dGVzX2xlbmd0aFwiXG5leHRlcm5hbCBieXRlc19jcmVhdGUgOiBpbnQgLT4gYnl0ZXMgPSBcImNhbWxfY3JlYXRlX2J5dGVzXCJcbmV4dGVybmFsIHN0cmluZ19ibGl0IDogc3RyaW5nIC0+IGludCAtPiBieXRlcyAtPiBpbnQgLT4gaW50IC0+IHVuaXRcbiAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX2JsaXRfc3RyaW5nXCIgW0BAbm9hbGxvY11cbmV4dGVybmFsIGJ5dGVzX2JsaXQgOiBieXRlcyAtPiBpbnQgLT4gYnl0ZXMgLT4gaW50IC0+IGludCAtPiB1bml0XG4gICAgICAgICAgICAgICAgICAgICAgICA9IFwiY2FtbF9ibGl0X2J5dGVzXCIgW0BAbm9hbGxvY11cbmV4dGVybmFsIGJ5dGVzX3Vuc2FmZV90b19zdHJpbmcgOiBieXRlcyAtPiBzdHJpbmcgPSBcIiVieXRlc190b19zdHJpbmdcIlxuXG5sZXQgKCBeICkgczEgczIgPVxuICBsZXQgbDEgPSBzdHJpbmdfbGVuZ3RoIHMxIGFuZCBsMiA9IHN0cmluZ19sZW5ndGggczIgaW5cbiAgbGV0IHMgPSBieXRlc19jcmVhdGUgKGwxICsgbDIpIGluXG4gIHN0cmluZ19ibGl0IHMxIDAgcyAwIGwxO1xuICBzdHJpbmdfYmxpdCBzMiAwIHMgbDEgbDI7XG4gIGJ5dGVzX3Vuc2FmZV90b19zdHJpbmcgc1xuXG4oKiBDaGFyYWN0ZXIgb3BlcmF0aW9ucyAtLSBtb3JlIGluIG1vZHVsZSBDaGFyICopXG5cbmV4dGVybmFsIGludF9vZl9jaGFyIDogY2hhciAtPiBpbnQgPSBcIiVpZGVudGl0eVwiXG5leHRlcm5hbCB1bnNhZmVfY2hhcl9vZl9pbnQgOiBpbnQgLT4gY2hhciA9IFwiJWlkZW50aXR5XCJcbmxldCBjaGFyX29mX2ludCBuID1cbiAgaWYgbiA8IDAgfHwgbiA+IDI1NSB0aGVuIGludmFsaWRfYXJnIFwiY2hhcl9vZl9pbnRcIiBlbHNlIHVuc2FmZV9jaGFyX29mX2ludCBuXG5cbigqIFVuaXQgb3BlcmF0aW9ucyAqKVxuXG5leHRlcm5hbCBpZ25vcmUgOiAnYSAtPiB1bml0ID0gXCIlaWdub3JlXCJcblxuKCogUGFpciBvcGVyYXRpb25zICopXG5cbmV4dGVybmFsIGZzdCA6ICdhICogJ2IgLT4gJ2EgPSBcIiVmaWVsZDBcIlxuZXh0ZXJuYWwgc25kIDogJ2EgKiAnYiAtPiAnYiA9IFwiJWZpZWxkMVwiXG5cbigqIFJlZmVyZW5jZXMgKilcblxudHlwZSAnYSByZWYgPSB7IG11dGFibGUgY29udGVudHMgOiAnYSB9XG5leHRlcm5hbCByZWYgOiAnYSAtPiAnYSByZWYgPSBcIiVtYWtlbXV0YWJsZVwiXG5leHRlcm5hbCAoICEgKSA6ICdhIHJlZiAtPiAnYSA9IFwiJWZpZWxkMFwiXG5leHRlcm5hbCAoIDo9ICkgOiAnYSByZWYgLT4gJ2EgLT4gdW5pdCA9IFwiJXNldGZpZWxkMFwiXG5leHRlcm5hbCBpbmNyIDogaW50IHJlZiAtPiB1bml0ID0gXCIlaW5jclwiXG5leHRlcm5hbCBkZWNyIDogaW50IHJlZiAtPiB1bml0ID0gXCIlZGVjclwiXG5cbigqIFJlc3VsdCB0eXBlICopXG5cbnR5cGUgKCdhLCdiKSByZXN1bHQgPSBPayBvZiAnYSB8IEVycm9yIG9mICdiXG5cbigqIFN0cmluZyBjb252ZXJzaW9uIGZ1bmN0aW9ucyAqKVxuXG5leHRlcm5hbCBmb3JtYXRfaW50IDogc3RyaW5nIC0+IGludCAtPiBzdHJpbmcgPSBcImNhbWxfZm9ybWF0X2ludFwiXG5leHRlcm5hbCBmb3JtYXRfZmxvYXQgOiBzdHJpbmcgLT4gZmxvYXQgLT4gc3RyaW5nID0gXCJjYW1sX2Zvcm1hdF9mbG9hdFwiXG5cbmxldCBzdHJpbmdfb2ZfYm9vbCBiID1cbiAgaWYgYiB0aGVuIFwidHJ1ZVwiIGVsc2UgXCJmYWxzZVwiXG5sZXQgYm9vbF9vZl9zdHJpbmcgPSBmdW5jdGlvblxuICB8IFwidHJ1ZVwiIC0+IHRydWVcbiAgfCBcImZhbHNlXCIgLT4gZmFsc2VcbiAgfCBfIC0+IGludmFsaWRfYXJnIFwiYm9vbF9vZl9zdHJpbmdcIlxuXG5sZXQgYm9vbF9vZl9zdHJpbmdfb3B0ID0gZnVuY3Rpb25cbiAgfCBcInRydWVcIiAtPiBTb21lIHRydWVcbiAgfCBcImZhbHNlXCIgLT4gU29tZSBmYWxzZVxuICB8IF8gLT4gTm9uZVxuXG5sZXQgc3RyaW5nX29mX2ludCBuID1cbiAgZm9ybWF0X2ludCBcIiVkXCIgblxuXG5leHRlcm5hbCBpbnRfb2Zfc3RyaW5nIDogc3RyaW5nIC0+IGludCA9IFwiY2FtbF9pbnRfb2Zfc3RyaW5nXCJcblxubGV0IGludF9vZl9zdHJpbmdfb3B0IHMgPVxuICAoKiBUT0RPOiBwcm92aWRlIHRoaXMgZGlyZWN0bHkgYXMgYSBub24tcmFpc2luZyBwcmltaXRpdmUuICopXG4gIHRyeSBTb21lIChpbnRfb2Zfc3RyaW5nIHMpXG4gIHdpdGggRmFpbHVyZSBfIC0+IE5vbmVcblxuZXh0ZXJuYWwgc3RyaW5nX2dldCA6IHN0cmluZyAtPiBpbnQgLT4gY2hhciA9IFwiJXN0cmluZ19zYWZlX2dldFwiXG5cbmxldCB2YWxpZF9mbG9hdF9sZXhlbSBzID1cbiAgbGV0IGwgPSBzdHJpbmdfbGVuZ3RoIHMgaW5cbiAgbGV0IHJlYyBsb29wIGkgPVxuICAgIGlmIGkgPj0gbCB0aGVuIHMgXiBcIi5cIiBlbHNlXG4gICAgbWF0Y2ggc3RyaW5nX2dldCBzIGkgd2l0aFxuICAgIHwgJzAnIC4uICc5JyB8ICctJyAtPiBsb29wIChpICsgMSlcbiAgICB8IF8gLT4gc1xuICBpblxuICBsb29wIDBcblxubGV0IHN0cmluZ19vZl9mbG9hdCBmID0gdmFsaWRfZmxvYXRfbGV4ZW0gKGZvcm1hdF9mbG9hdCBcIiUuMTJnXCIgZilcblxuZXh0ZXJuYWwgZmxvYXRfb2Zfc3RyaW5nIDogc3RyaW5nIC0+IGZsb2F0ID0gXCJjYW1sX2Zsb2F0X29mX3N0cmluZ1wiXG5cbmxldCBmbG9hdF9vZl9zdHJpbmdfb3B0IHMgPVxuICAoKiBUT0RPOiBwcm92aWRlIHRoaXMgZGlyZWN0bHkgYXMgYSBub24tcmFpc2luZyBwcmltaXRpdmUuICopXG4gIHRyeSBTb21lIChmbG9hdF9vZl9zdHJpbmcgcylcbiAgd2l0aCBGYWlsdXJlIF8gLT4gTm9uZVxuXG4oKiBMaXN0IG9wZXJhdGlvbnMgLS0gbW9yZSBpbiBtb2R1bGUgTGlzdCAqKVxuXG5sZXQgcmVjICggQCApIGwxIGwyID1cbiAgbWF0Y2ggbDEgd2l0aFxuICAgIFtdIC0+IGwyXG4gIHwgaGQgOjogdGwgLT4gaGQgOjogKHRsIEAgbDIpXG5cbigqIEkvTyBvcGVyYXRpb25zICopXG5cbnR5cGUgaW5fY2hhbm5lbFxudHlwZSBvdXRfY2hhbm5lbFxuXG5leHRlcm5hbCBvcGVuX2Rlc2NyaXB0b3Jfb3V0IDogaW50IC0+IG91dF9jaGFubmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX21sX29wZW5fZGVzY3JpcHRvcl9vdXRcIlxuZXh0ZXJuYWwgb3Blbl9kZXNjcmlwdG9yX2luIDogaW50IC0+IGluX2NoYW5uZWwgPSBcImNhbWxfbWxfb3Blbl9kZXNjcmlwdG9yX2luXCJcblxubGV0IHN0ZGluID0gb3Blbl9kZXNjcmlwdG9yX2luIDBcbmxldCBzdGRvdXQgPSBvcGVuX2Rlc2NyaXB0b3Jfb3V0IDFcbmxldCBzdGRlcnIgPSBvcGVuX2Rlc2NyaXB0b3Jfb3V0IDJcblxuKCogR2VuZXJhbCBvdXRwdXQgZnVuY3Rpb25zICopXG5cbnR5cGUgb3Blbl9mbGFnID1cbiAgICBPcGVuX3Jkb25seSB8IE9wZW5fd3Jvbmx5IHwgT3Blbl9hcHBlbmRcbiAgfCBPcGVuX2NyZWF0IHwgT3Blbl90cnVuYyB8IE9wZW5fZXhjbFxuICB8IE9wZW5fYmluYXJ5IHwgT3Blbl90ZXh0IHwgT3Blbl9ub25ibG9ja1xuXG5leHRlcm5hbCBvcGVuX2Rlc2MgOiBzdHJpbmcgLT4gb3Blbl9mbGFnIGxpc3QgLT4gaW50IC0+IGludCA9IFwiY2FtbF9zeXNfb3BlblwiXG5cbmV4dGVybmFsIHNldF9vdXRfY2hhbm5lbF9uYW1lOiBvdXRfY2hhbm5lbCAtPiBzdHJpbmcgLT4gdW5pdCA9XG4gIFwiY2FtbF9tbF9zZXRfY2hhbm5lbF9uYW1lXCJcblxubGV0IG9wZW5fb3V0X2dlbiBtb2RlIHBlcm0gbmFtZSA9XG4gIGxldCBjID0gb3Blbl9kZXNjcmlwdG9yX291dChvcGVuX2Rlc2MgbmFtZSBtb2RlIHBlcm0pIGluXG4gIHNldF9vdXRfY2hhbm5lbF9uYW1lIGMgbmFtZTtcbiAgY1xuXG5sZXQgb3Blbl9vdXQgbmFtZSA9XG4gIG9wZW5fb3V0X2dlbiBbT3Blbl93cm9ubHk7IE9wZW5fY3JlYXQ7IE9wZW5fdHJ1bmM7IE9wZW5fdGV4dF0gMG82NjYgbmFtZVxuXG5sZXQgb3Blbl9vdXRfYmluIG5hbWUgPVxuICBvcGVuX291dF9nZW4gW09wZW5fd3Jvbmx5OyBPcGVuX2NyZWF0OyBPcGVuX3RydW5jOyBPcGVuX2JpbmFyeV0gMG82NjYgbmFtZVxuXG5leHRlcm5hbCBmbHVzaCA6IG91dF9jaGFubmVsIC0+IHVuaXQgPSBcImNhbWxfbWxfZmx1c2hcIlxuXG5leHRlcm5hbCBvdXRfY2hhbm5lbHNfbGlzdCA6IHVuaXQgLT4gb3V0X2NoYW5uZWwgbGlzdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBcImNhbWxfbWxfb3V0X2NoYW5uZWxzX2xpc3RcIlxuXG5sZXQgZmx1c2hfYWxsICgpID1cbiAgbGV0IHJlYyBpdGVyID0gZnVuY3Rpb25cbiAgICAgIFtdIC0+ICgpXG4gICAgfCBhOjpsIC0+XG4gICAgICAgIGJlZ2luIHRyeVxuICAgICAgICAgICAgZmx1c2ggYVxuICAgICAgICB3aXRoIFN5c19lcnJvciBfIC0+XG4gICAgICAgICAgKCkgKCogaWdub3JlIGNoYW5uZWxzIGNsb3NlZCBkdXJpbmcgYSBwcmVjZWRpbmcgZmx1c2guICopXG4gICAgICAgIGVuZDtcbiAgICAgICAgaXRlciBsXG4gIGluIGl0ZXIgKG91dF9jaGFubmVsc19saXN0ICgpKVxuXG5leHRlcm5hbCB1bnNhZmVfb3V0cHV0IDogb3V0X2NoYW5uZWwgLT4gYnl0ZXMgLT4gaW50IC0+IGludCAtPiB1bml0XG4gICAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX21sX291dHB1dF9ieXRlc1wiXG5leHRlcm5hbCB1bnNhZmVfb3V0cHV0X3N0cmluZyA6IG91dF9jaGFubmVsIC0+IHN0cmluZyAtPiBpbnQgLT4gaW50IC0+IHVuaXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX21sX291dHB1dFwiXG5cbmV4dGVybmFsIG91dHB1dF9jaGFyIDogb3V0X2NoYW5uZWwgLT4gY2hhciAtPiB1bml0ID0gXCJjYW1sX21sX291dHB1dF9jaGFyXCJcblxubGV0IG91dHB1dF9ieXRlcyBvYyBzID1cbiAgdW5zYWZlX291dHB1dCBvYyBzIDAgKGJ5dGVzX2xlbmd0aCBzKVxuXG5sZXQgb3V0cHV0X3N0cmluZyBvYyBzID1cbiAgdW5zYWZlX291dHB1dF9zdHJpbmcgb2MgcyAwIChzdHJpbmdfbGVuZ3RoIHMpXG5cbmxldCBvdXRwdXQgb2MgcyBvZnMgbGVuID1cbiAgaWYgb2ZzIDwgMCB8fCBsZW4gPCAwIHx8IG9mcyA+IGJ5dGVzX2xlbmd0aCBzIC0gbGVuXG4gIHRoZW4gaW52YWxpZF9hcmcgXCJvdXRwdXRcIlxuICBlbHNlIHVuc2FmZV9vdXRwdXQgb2MgcyBvZnMgbGVuXG5cbmxldCBvdXRwdXRfc3Vic3RyaW5nIG9jIHMgb2ZzIGxlbiA9XG4gIGlmIG9mcyA8IDAgfHwgbGVuIDwgMCB8fCBvZnMgPiBzdHJpbmdfbGVuZ3RoIHMgLSBsZW5cbiAgdGhlbiBpbnZhbGlkX2FyZyBcIm91dHB1dF9zdWJzdHJpbmdcIlxuICBlbHNlIHVuc2FmZV9vdXRwdXRfc3RyaW5nIG9jIHMgb2ZzIGxlblxuXG5leHRlcm5hbCBvdXRwdXRfYnl0ZSA6IG91dF9jaGFubmVsIC0+IGludCAtPiB1bml0ID0gXCJjYW1sX21sX291dHB1dF9jaGFyXCJcbmV4dGVybmFsIG91dHB1dF9iaW5hcnlfaW50IDogb3V0X2NoYW5uZWwgLT4gaW50IC0+IHVuaXQgPSBcImNhbWxfbWxfb3V0cHV0X2ludFwiXG5cbmV4dGVybmFsIG1hcnNoYWxfdG9fY2hhbm5lbCA6IG91dF9jaGFubmVsIC0+ICdhIC0+IHVuaXQgbGlzdCAtPiB1bml0XG4gICAgID0gXCJjYW1sX291dHB1dF92YWx1ZVwiXG5sZXQgb3V0cHV0X3ZhbHVlIGNoYW4gdiA9IG1hcnNoYWxfdG9fY2hhbm5lbCBjaGFuIHYgW11cblxuZXh0ZXJuYWwgc2Vla19vdXQgOiBvdXRfY2hhbm5lbCAtPiBpbnQgLT4gdW5pdCA9IFwiY2FtbF9tbF9zZWVrX291dFwiXG5leHRlcm5hbCBwb3Nfb3V0IDogb3V0X2NoYW5uZWwgLT4gaW50ID0gXCJjYW1sX21sX3Bvc19vdXRcIlxuZXh0ZXJuYWwgb3V0X2NoYW5uZWxfbGVuZ3RoIDogb3V0X2NoYW5uZWwgLT4gaW50ID0gXCJjYW1sX21sX2NoYW5uZWxfc2l6ZVwiXG5leHRlcm5hbCBjbG9zZV9vdXRfY2hhbm5lbCA6IG91dF9jaGFubmVsIC0+IHVuaXQgPSBcImNhbWxfbWxfY2xvc2VfY2hhbm5lbFwiXG5sZXQgY2xvc2Vfb3V0IG9jID0gZmx1c2ggb2M7IGNsb3NlX291dF9jaGFubmVsIG9jXG5sZXQgY2xvc2Vfb3V0X25vZXJyIG9jID1cbiAgKHRyeSBmbHVzaCBvYyB3aXRoIF8gLT4gKCkpO1xuICAodHJ5IGNsb3NlX291dF9jaGFubmVsIG9jIHdpdGggXyAtPiAoKSlcbmV4dGVybmFsIHNldF9iaW5hcnlfbW9kZV9vdXQgOiBvdXRfY2hhbm5lbCAtPiBib29sIC0+IHVuaXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBcImNhbWxfbWxfc2V0X2JpbmFyeV9tb2RlXCJcblxuKCogR2VuZXJhbCBpbnB1dCBmdW5jdGlvbnMgKilcblxuZXh0ZXJuYWwgc2V0X2luX2NoYW5uZWxfbmFtZTogaW5fY2hhbm5lbCAtPiBzdHJpbmcgLT4gdW5pdCA9XG4gIFwiY2FtbF9tbF9zZXRfY2hhbm5lbF9uYW1lXCJcblxubGV0IG9wZW5faW5fZ2VuIG1vZGUgcGVybSBuYW1lID1cbiAgbGV0IGMgPSBvcGVuX2Rlc2NyaXB0b3JfaW4ob3Blbl9kZXNjIG5hbWUgbW9kZSBwZXJtKSBpblxuICBzZXRfaW5fY2hhbm5lbF9uYW1lIGMgbmFtZTtcbiAgY1xuXG5sZXQgb3Blbl9pbiBuYW1lID1cbiAgb3Blbl9pbl9nZW4gW09wZW5fcmRvbmx5OyBPcGVuX3RleHRdIDAgbmFtZVxuXG5sZXQgb3Blbl9pbl9iaW4gbmFtZSA9XG4gIG9wZW5faW5fZ2VuIFtPcGVuX3Jkb25seTsgT3Blbl9iaW5hcnldIDAgbmFtZVxuXG5leHRlcm5hbCBpbnB1dF9jaGFyIDogaW5fY2hhbm5lbCAtPiBjaGFyID0gXCJjYW1sX21sX2lucHV0X2NoYXJcIlxuXG5leHRlcm5hbCB1bnNhZmVfaW5wdXQgOiBpbl9jaGFubmVsIC0+IGJ5dGVzIC0+IGludCAtPiBpbnQgLT4gaW50XG4gICAgICAgICAgICAgICAgICAgICAgPSBcImNhbWxfbWxfaW5wdXRcIlxuXG5sZXQgaW5wdXQgaWMgcyBvZnMgbGVuID1cbiAgaWYgb2ZzIDwgMCB8fCBsZW4gPCAwIHx8IG9mcyA+IGJ5dGVzX2xlbmd0aCBzIC0gbGVuXG4gIHRoZW4gaW52YWxpZF9hcmcgXCJpbnB1dFwiXG4gIGVsc2UgdW5zYWZlX2lucHV0IGljIHMgb2ZzIGxlblxuXG5sZXQgcmVjIHVuc2FmZV9yZWFsbHlfaW5wdXQgaWMgcyBvZnMgbGVuID1cbiAgaWYgbGVuIDw9IDAgdGhlbiAoKSBlbHNlIGJlZ2luXG4gICAgbGV0IHIgPSB1bnNhZmVfaW5wdXQgaWMgcyBvZnMgbGVuIGluXG4gICAgaWYgciA9IDBcbiAgICB0aGVuIHJhaXNlIEVuZF9vZl9maWxlXG4gICAgZWxzZSB1bnNhZmVfcmVhbGx5X2lucHV0IGljIHMgKG9mcyArIHIpIChsZW4gLSByKVxuICBlbmRcblxubGV0IHJlYWxseV9pbnB1dCBpYyBzIG9mcyBsZW4gPVxuICBpZiBvZnMgPCAwIHx8IGxlbiA8IDAgfHwgb2ZzID4gYnl0ZXNfbGVuZ3RoIHMgLSBsZW5cbiAgdGhlbiBpbnZhbGlkX2FyZyBcInJlYWxseV9pbnB1dFwiXG4gIGVsc2UgdW5zYWZlX3JlYWxseV9pbnB1dCBpYyBzIG9mcyBsZW5cblxubGV0IHJlYWxseV9pbnB1dF9zdHJpbmcgaWMgbGVuID1cbiAgbGV0IHMgPSBieXRlc19jcmVhdGUgbGVuIGluXG4gIHJlYWxseV9pbnB1dCBpYyBzIDAgbGVuO1xuICBieXRlc191bnNhZmVfdG9fc3RyaW5nIHNcblxuZXh0ZXJuYWwgaW5wdXRfc2Nhbl9saW5lIDogaW5fY2hhbm5lbCAtPiBpbnQgPSBcImNhbWxfbWxfaW5wdXRfc2Nhbl9saW5lXCJcblxubGV0IGlucHV0X2xpbmUgY2hhbiA9XG4gIGxldCByZWMgYnVpbGRfcmVzdWx0IGJ1ZiBwb3MgPSBmdW5jdGlvblxuICAgIFtdIC0+IGJ1ZlxuICB8IGhkIDo6IHRsIC0+XG4gICAgICBsZXQgbGVuID0gYnl0ZXNfbGVuZ3RoIGhkIGluXG4gICAgICBieXRlc19ibGl0IGhkIDAgYnVmIChwb3MgLSBsZW4pIGxlbjtcbiAgICAgIGJ1aWxkX3Jlc3VsdCBidWYgKHBvcyAtIGxlbikgdGwgaW5cbiAgbGV0IHJlYyBzY2FuIGFjY3UgbGVuID1cbiAgICBsZXQgbiA9IGlucHV0X3NjYW5fbGluZSBjaGFuIGluXG4gICAgaWYgbiA9IDAgdGhlbiBiZWdpbiAgICAgICAgICAgICAgICAgICAoKiBuID0gMDogd2UgYXJlIGF0IEVPRiAqKVxuICAgICAgbWF0Y2ggYWNjdSB3aXRoXG4gICAgICAgIFtdIC0+IHJhaXNlIEVuZF9vZl9maWxlXG4gICAgICB8IF8gIC0+IGJ1aWxkX3Jlc3VsdCAoYnl0ZXNfY3JlYXRlIGxlbikgbGVuIGFjY3VcbiAgICBlbmQgZWxzZSBpZiBuID4gMCB0aGVuIGJlZ2luICAgICAgICAgICgqIG4gPiAwOiBuZXdsaW5lIGZvdW5kIGluIGJ1ZmZlciAqKVxuICAgICAgbGV0IHJlcyA9IGJ5dGVzX2NyZWF0ZSAobiAtIDEpIGluXG4gICAgICBpZ25vcmUgKHVuc2FmZV9pbnB1dCBjaGFuIHJlcyAwIChuIC0gMSkpO1xuICAgICAgaWdub3JlIChpbnB1dF9jaGFyIGNoYW4pOyAgICAgICAgICAgKCogc2tpcCB0aGUgbmV3bGluZSAqKVxuICAgICAgbWF0Y2ggYWNjdSB3aXRoXG4gICAgICAgIFtdIC0+IHJlc1xuICAgICAgfCAgXyAtPiBsZXQgbGVuID0gbGVuICsgbiAtIDEgaW5cbiAgICAgICAgICAgICAgYnVpbGRfcmVzdWx0IChieXRlc19jcmVhdGUgbGVuKSBsZW4gKHJlcyA6OiBhY2N1KVxuICAgIGVuZCBlbHNlIGJlZ2luICAgICAgICAgICAgICAgICAgICAgICAgKCogbiA8IDA6IG5ld2xpbmUgbm90IGZvdW5kICopXG4gICAgICBsZXQgYmVnID0gYnl0ZXNfY3JlYXRlICgtbikgaW5cbiAgICAgIGlnbm9yZSh1bnNhZmVfaW5wdXQgY2hhbiBiZWcgMCAoLW4pKTtcbiAgICAgIHNjYW4gKGJlZyA6OiBhY2N1KSAobGVuIC0gbilcbiAgICBlbmRcbiAgaW4gYnl0ZXNfdW5zYWZlX3RvX3N0cmluZyAoc2NhbiBbXSAwKVxuXG5leHRlcm5hbCBpbnB1dF9ieXRlIDogaW5fY2hhbm5lbCAtPiBpbnQgPSBcImNhbWxfbWxfaW5wdXRfY2hhclwiXG5leHRlcm5hbCBpbnB1dF9iaW5hcnlfaW50IDogaW5fY2hhbm5lbCAtPiBpbnQgPSBcImNhbWxfbWxfaW5wdXRfaW50XCJcbmV4dGVybmFsIGlucHV0X3ZhbHVlIDogaW5fY2hhbm5lbCAtPiAnYSA9IFwiY2FtbF9pbnB1dF92YWx1ZVwiXG5leHRlcm5hbCBzZWVrX2luIDogaW5fY2hhbm5lbCAtPiBpbnQgLT4gdW5pdCA9IFwiY2FtbF9tbF9zZWVrX2luXCJcbmV4dGVybmFsIHBvc19pbiA6IGluX2NoYW5uZWwgLT4gaW50ID0gXCJjYW1sX21sX3Bvc19pblwiXG5leHRlcm5hbCBpbl9jaGFubmVsX2xlbmd0aCA6IGluX2NoYW5uZWwgLT4gaW50ID0gXCJjYW1sX21sX2NoYW5uZWxfc2l6ZVwiXG5leHRlcm5hbCBjbG9zZV9pbiA6IGluX2NoYW5uZWwgLT4gdW5pdCA9IFwiY2FtbF9tbF9jbG9zZV9jaGFubmVsXCJcbmxldCBjbG9zZV9pbl9ub2VyciBpYyA9ICh0cnkgY2xvc2VfaW4gaWMgd2l0aCBfIC0+ICgpKVxuZXh0ZXJuYWwgc2V0X2JpbmFyeV9tb2RlX2luIDogaW5fY2hhbm5lbCAtPiBib29sIC0+IHVuaXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IFwiY2FtbF9tbF9zZXRfYmluYXJ5X21vZGVcIlxuXG4oKiBPdXRwdXQgZnVuY3Rpb25zIG9uIHN0YW5kYXJkIG91dHB1dCAqKVxuXG5sZXQgcHJpbnRfY2hhciBjID0gb3V0cHV0X2NoYXIgc3Rkb3V0IGNcbmxldCBwcmludF9zdHJpbmcgcyA9IG91dHB1dF9zdHJpbmcgc3Rkb3V0IHNcbmxldCBwcmludF9ieXRlcyBzID0gb3V0cHV0X2J5dGVzIHN0ZG91dCBzXG5sZXQgcHJpbnRfaW50IGkgPSBvdXRwdXRfc3RyaW5nIHN0ZG91dCAoc3RyaW5nX29mX2ludCBpKVxubGV0IHByaW50X2Zsb2F0IGYgPSBvdXRwdXRfc3RyaW5nIHN0ZG91dCAoc3RyaW5nX29mX2Zsb2F0IGYpXG5sZXQgcHJpbnRfZW5kbGluZSBzID1cbiAgb3V0cHV0X3N0cmluZyBzdGRvdXQgczsgb3V0cHV0X2NoYXIgc3Rkb3V0ICdcXG4nOyBmbHVzaCBzdGRvdXRcbmxldCBwcmludF9uZXdsaW5lICgpID0gb3V0cHV0X2NoYXIgc3Rkb3V0ICdcXG4nOyBmbHVzaCBzdGRvdXRcblxuKCogT3V0cHV0IGZ1bmN0aW9ucyBvbiBzdGFuZGFyZCBlcnJvciAqKVxuXG5sZXQgcHJlcnJfY2hhciBjID0gb3V0cHV0X2NoYXIgc3RkZXJyIGNcbmxldCBwcmVycl9zdHJpbmcgcyA9IG91dHB1dF9zdHJpbmcgc3RkZXJyIHNcbmxldCBwcmVycl9ieXRlcyBzID0gb3V0cHV0X2J5dGVzIHN0ZGVyciBzXG5sZXQgcHJlcnJfaW50IGkgPSBvdXRwdXRfc3RyaW5nIHN0ZGVyciAoc3RyaW5nX29mX2ludCBpKVxubGV0IHByZXJyX2Zsb2F0IGYgPSBvdXRwdXRfc3RyaW5nIHN0ZGVyciAoc3RyaW5nX29mX2Zsb2F0IGYpXG5sZXQgcHJlcnJfZW5kbGluZSBzID1cbiAgb3V0cHV0X3N0cmluZyBzdGRlcnIgczsgb3V0cHV0X2NoYXIgc3RkZXJyICdcXG4nOyBmbHVzaCBzdGRlcnJcbmxldCBwcmVycl9uZXdsaW5lICgpID0gb3V0cHV0X2NoYXIgc3RkZXJyICdcXG4nOyBmbHVzaCBzdGRlcnJcblxuKCogSW5wdXQgZnVuY3Rpb25zIG9uIHN0YW5kYXJkIGlucHV0ICopXG5cbmxldCByZWFkX2xpbmUgKCkgPSBmbHVzaCBzdGRvdXQ7IGlucHV0X2xpbmUgc3RkaW5cbmxldCByZWFkX2ludCAoKSA9IGludF9vZl9zdHJpbmcocmVhZF9saW5lKCkpXG5sZXQgcmVhZF9pbnRfb3B0ICgpID0gaW50X29mX3N0cmluZ19vcHQocmVhZF9saW5lKCkpXG5sZXQgcmVhZF9mbG9hdCAoKSA9IGZsb2F0X29mX3N0cmluZyhyZWFkX2xpbmUoKSlcbmxldCByZWFkX2Zsb2F0X29wdCAoKSA9IGZsb2F0X29mX3N0cmluZ19vcHQocmVhZF9saW5lKCkpXG5cbigqIE9wZXJhdGlvbnMgb24gbGFyZ2UgZmlsZXMgKilcblxubW9kdWxlIExhcmdlRmlsZSA9XG4gIHN0cnVjdFxuICAgIGV4dGVybmFsIHNlZWtfb3V0IDogb3V0X2NoYW5uZWwgLT4gaW50NjQgLT4gdW5pdCA9IFwiY2FtbF9tbF9zZWVrX291dF82NFwiXG4gICAgZXh0ZXJuYWwgcG9zX291dCA6IG91dF9jaGFubmVsIC0+IGludDY0ID0gXCJjYW1sX21sX3Bvc19vdXRfNjRcIlxuICAgIGV4dGVybmFsIG91dF9jaGFubmVsX2xlbmd0aCA6IG91dF9jaGFubmVsIC0+IGludDY0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX21sX2NoYW5uZWxfc2l6ZV82NFwiXG4gICAgZXh0ZXJuYWwgc2Vla19pbiA6IGluX2NoYW5uZWwgLT4gaW50NjQgLT4gdW5pdCA9IFwiY2FtbF9tbF9zZWVrX2luXzY0XCJcbiAgICBleHRlcm5hbCBwb3NfaW4gOiBpbl9jaGFubmVsIC0+IGludDY0ID0gXCJjYW1sX21sX3Bvc19pbl82NFwiXG4gICAgZXh0ZXJuYWwgaW5fY2hhbm5lbF9sZW5ndGggOiBpbl9jaGFubmVsIC0+IGludDY0ID0gXCJjYW1sX21sX2NoYW5uZWxfc2l6ZV82NFwiXG4gIGVuZFxuXG4oKiBGb3JtYXRzICopXG5cbnR5cGUgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZvcm1hdDZcbiAgID0gKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIENhbWxpbnRlcm5hbEZvcm1hdEJhc2ljcy5mb3JtYXQ2XG4gICA9IEZvcm1hdCBvZiAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgQ2FtbGludGVybmFsRm9ybWF0QmFzaWNzLmZtdFxuICAgICAgICAgICAgICAgKiBzdHJpbmdcblxudHlwZSAoJ2EsICdiLCAnYywgJ2QpIGZvcm1hdDQgPSAoJ2EsICdiLCAnYywgJ2MsICdjLCAnZCkgZm9ybWF0NlxuXG50eXBlICgnYSwgJ2IsICdjKSBmb3JtYXQgPSAoJ2EsICdiLCAnYywgJ2MpIGZvcm1hdDRcblxubGV0IHN0cmluZ19vZl9mb3JtYXQgKEZvcm1hdCAoX2ZtdCwgc3RyKSkgPSBzdHJcblxuZXh0ZXJuYWwgZm9ybWF0X29mX3N0cmluZyA6XG4gKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZvcm1hdDYgLT5cbiAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm9ybWF0NiA9IFwiJWlkZW50aXR5XCJcblxubGV0ICggXl4gKSAoRm9ybWF0IChmbXQxLCBzdHIxKSkgKEZvcm1hdCAoZm10Miwgc3RyMikpID1cbiAgRm9ybWF0IChDYW1saW50ZXJuYWxGb3JtYXRCYXNpY3MuY29uY2F0X2ZtdCBmbXQxIGZtdDIsXG4gICAgICAgICAgc3RyMSBeIFwiJSxcIiBeIHN0cjIpXG5cbigqIE1pc2NlbGxhbmVvdXMgKilcblxuZXh0ZXJuYWwgc3lzX2V4aXQgOiBpbnQgLT4gJ2EgPSBcImNhbWxfc3lzX2V4aXRcIlxuXG5sZXQgZXhpdF9mdW5jdGlvbiA9IENhbWxpbnRlcm5hbEF0b21pYy5tYWtlIGZsdXNoX2FsbFxuXG5sZXQgcmVjIGF0X2V4aXQgZiA9XG4gIGxldCBtb2R1bGUgQXRvbWljID0gQ2FtbGludGVybmFsQXRvbWljIGluXG4gICgqIE1QUiM3MjUzLCBNUFIjNzc5NjogbWFrZSBzdXJlIFwiZlwiIGlzIGV4ZWN1dGVkIG9ubHkgb25jZSAqKVxuICBsZXQgZl95ZXRfdG9fcnVuID0gQXRvbWljLm1ha2UgdHJ1ZSBpblxuICBsZXQgb2xkX2V4aXQgPSBBdG9taWMuZ2V0IGV4aXRfZnVuY3Rpb24gaW5cbiAgbGV0IG5ld19leGl0ICgpID1cbiAgICBpZiBBdG9taWMuY29tcGFyZV9hbmRfc2V0IGZfeWV0X3RvX3J1biB0cnVlIGZhbHNlIHRoZW4gZiAoKSA7XG4gICAgb2xkX2V4aXQgKClcbiAgaW5cbiAgbGV0IHN1Y2Nlc3MgPSBBdG9taWMuY29tcGFyZV9hbmRfc2V0IGV4aXRfZnVuY3Rpb24gb2xkX2V4aXQgbmV3X2V4aXQgaW5cbiAgaWYgbm90IHN1Y2Nlc3MgdGhlbiBhdF9leGl0IGZcblxubGV0IGRvX2F0X2V4aXQgKCkgPSAoQ2FtbGludGVybmFsQXRvbWljLmdldCBleGl0X2Z1bmN0aW9uKSAoKVxuXG5sZXQgZXhpdCByZXRjb2RlID1cbiAgZG9fYXRfZXhpdCAoKTtcbiAgc3lzX2V4aXQgcmV0Y29kZVxuXG5sZXQgXyA9IHJlZ2lzdGVyX25hbWVkX3ZhbHVlIFwiUGVydmFzaXZlcy5kb19hdF9leGl0XCIgZG9fYXRfZXhpdFxuXG5leHRlcm5hbCBtYWpvciA6IHVuaXQgLT4gdW5pdCA9IFwiY2FtbF9nY19tYWpvclwiXG5leHRlcm5hbCBuYWtlZF9wb2ludGVyc19jaGVja2VkIDogdW5pdCAtPiBib29sXG4gID0gXCJjYW1sX3N5c19jb25zdF9uYWtlZF9wb2ludGVyc19jaGVja2VkXCJcbmxldCAoKSA9IGlmIG5ha2VkX3BvaW50ZXJzX2NoZWNrZWQgKCkgdGhlbiBhdF9leGl0IG1ham9yXG5cbigqTU9EVUxFX0FMSUFTRVMqKVxubW9kdWxlIEFyZyAgICAgICAgICA9IEFyZ1xubW9kdWxlIEFycmF5ICAgICAgICA9IEFycmF5XG5tb2R1bGUgQXJyYXlMYWJlbHMgID0gQXJyYXlMYWJlbHNcbm1vZHVsZSBBdG9taWMgICAgICAgPSBBdG9taWNcbm1vZHVsZSBCaWdhcnJheSAgICAgPSBCaWdhcnJheVxubW9kdWxlIEJvb2wgICAgICAgICA9IEJvb2xcbm1vZHVsZSBCdWZmZXIgICAgICAgPSBCdWZmZXJcbm1vZHVsZSBCeXRlcyAgICAgICAgPSBCeXRlc1xubW9kdWxlIEJ5dGVzTGFiZWxzICA9IEJ5dGVzTGFiZWxzXG5tb2R1bGUgQ2FsbGJhY2sgICAgID0gQ2FsbGJhY2tcbm1vZHVsZSBDaGFyICAgICAgICAgPSBDaGFyXG5tb2R1bGUgQ29tcGxleCAgICAgID0gQ29tcGxleFxubW9kdWxlIERpZ2VzdCAgICAgICA9IERpZ2VzdFxubW9kdWxlIEVpdGhlciAgICAgICA9IEVpdGhlclxubW9kdWxlIEVwaGVtZXJvbiAgICA9IEVwaGVtZXJvblxubW9kdWxlIEZpbGVuYW1lICAgICA9IEZpbGVuYW1lXG5tb2R1bGUgRmxvYXQgICAgICAgID0gRmxvYXRcbm1vZHVsZSBGb3JtYXQgICAgICAgPSBGb3JtYXRcbm1vZHVsZSBGdW4gICAgICAgICAgPSBGdW5cbm1vZHVsZSBHYyAgICAgICAgICAgPSBHY1xubW9kdWxlIEdlbmxleCAgICAgICA9IEdlbmxleFxubW9kdWxlIEhhc2h0YmwgICAgICA9IEhhc2h0Ymxcbm1vZHVsZSBJbl9jaGFubmVsICAgPSBJbl9jaGFubmVsXG5tb2R1bGUgSW50ICAgICAgICAgID0gSW50XG5tb2R1bGUgSW50MzIgICAgICAgID0gSW50MzJcbm1vZHVsZSBJbnQ2NCAgICAgICAgPSBJbnQ2NFxubW9kdWxlIExhenkgICAgICAgICA9IExhenlcbm1vZHVsZSBMZXhpbmcgICAgICAgPSBMZXhpbmdcbm1vZHVsZSBMaXN0ICAgICAgICAgPSBMaXN0XG5tb2R1bGUgTGlzdExhYmVscyAgID0gTGlzdExhYmVsc1xubW9kdWxlIE1hcCAgICAgICAgICA9IE1hcFxubW9kdWxlIE1hcnNoYWwgICAgICA9IE1hcnNoYWxcbm1vZHVsZSBNb3JlTGFiZWxzICAgPSBNb3JlTGFiZWxzXG5tb2R1bGUgTmF0aXZlaW50ICAgID0gTmF0aXZlaW50XG5tb2R1bGUgT2JqICAgICAgICAgID0gT2JqXG5tb2R1bGUgT28gICAgICAgICAgID0gT29cbm1vZHVsZSBPcHRpb24gICAgICAgPSBPcHRpb25cbm1vZHVsZSBPdXRfY2hhbm5lbCAgPSBPdXRfY2hhbm5lbFxubW9kdWxlIFBhcnNpbmcgICAgICA9IFBhcnNpbmdcbm1vZHVsZSBQZXJ2YXNpdmVzICAgPSBQZXJ2YXNpdmVzXG5tb2R1bGUgUHJpbnRleGMgICAgID0gUHJpbnRleGNcbm1vZHVsZSBQcmludGYgICAgICAgPSBQcmludGZcbm1vZHVsZSBRdWV1ZSAgICAgICAgPSBRdWV1ZVxubW9kdWxlIFJhbmRvbSAgICAgICA9IFJhbmRvbVxubW9kdWxlIFJlc3VsdCAgICAgICA9IFJlc3VsdFxubW9kdWxlIFNjYW5mICAgICAgICA9IFNjYW5mXG5tb2R1bGUgU2VxICAgICAgICAgID0gU2VxXG5tb2R1bGUgU2V0ICAgICAgICAgID0gU2V0XG5tb2R1bGUgU3RhY2sgICAgICAgID0gU3RhY2tcbm1vZHVsZSBTdGRMYWJlbHMgICAgPSBTdGRMYWJlbHNcbm1vZHVsZSBTdHJlYW0gICAgICAgPSBTdHJlYW1cbm1vZHVsZSBTdHJpbmcgICAgICAgPSBTdHJpbmdcbm1vZHVsZSBTdHJpbmdMYWJlbHMgPSBTdHJpbmdMYWJlbHNcbm1vZHVsZSBTeXMgICAgICAgICAgPSBTeXNcbm1vZHVsZSBVY2hhciAgICAgICAgPSBVY2hhclxubW9kdWxlIFVuaXQgICAgICAgICA9IFVuaXRcbm1vZHVsZSBXZWFrICAgICAgICAgPSBXZWFrXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICBKZXJlbWllIERpbWlubywgSmFuZSBTdHJlZXQgRXVyb3BlICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDE3IEphbmUgU3RyZWV0IEdyb3VwIExMQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqKiBAZGVwcmVjYXRlZCBVc2UgeyFTdGRsaWJ9ICopXG5cbmV4dGVybmFsIHJhaXNlIDogZXhuIC0+ICdhID0gXCIlcmFpc2VcIlxuZXh0ZXJuYWwgcmFpc2Vfbm90cmFjZSA6IGV4biAtPiAnYSA9IFwiJXJhaXNlX25vdHJhY2VcIlxubGV0IGludmFsaWRfYXJnID0gaW52YWxpZF9hcmdcbmxldCBmYWlsd2l0aCA9IGZhaWx3aXRoXG5leGNlcHRpb24gRXhpdFxuZXh0ZXJuYWwgKCA9ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlZXF1YWxcIlxuZXh0ZXJuYWwgKCA8PiApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJW5vdGVxdWFsXCJcbmV4dGVybmFsICggPCApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJWxlc3N0aGFuXCJcbmV4dGVybmFsICggPiApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJWdyZWF0ZXJ0aGFuXCJcbmV4dGVybmFsICggPD0gKSA6ICdhIC0+ICdhIC0+IGJvb2wgPSBcIiVsZXNzZXF1YWxcIlxuZXh0ZXJuYWwgKCA+PSApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJWdyZWF0ZXJlcXVhbFwiXG5leHRlcm5hbCBjb21wYXJlIDogJ2EgLT4gJ2EgLT4gaW50ID0gXCIlY29tcGFyZVwiXG5sZXQgbWluID0gbWluXG5sZXQgbWF4ID0gbWF4XG5leHRlcm5hbCAoID09ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlZXFcIlxuZXh0ZXJuYWwgKCAhPSApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJW5vdGVxXCJcbmV4dGVybmFsIG5vdCA6IGJvb2wgLT4gYm9vbCA9IFwiJWJvb2xub3RcIlxuZXh0ZXJuYWwgKCAmJiApIDogYm9vbCAtPiBib29sIC0+IGJvb2wgPSBcIiVzZXF1YW5kXCJcbmV4dGVybmFsICggJiApIDogYm9vbCAtPiBib29sIC0+IGJvb2wgPSBcIiVzZXF1YW5kXCJcbiAgW0BAb2NhbWwuZGVwcmVjYXRlZCBcIlVzZSAoJiYpIGluc3RlYWQuXCJdXG5leHRlcm5hbCAoIHx8ICkgOiBib29sIC0+IGJvb2wgLT4gYm9vbCA9IFwiJXNlcXVvclwiXG5leHRlcm5hbCAoIG9yICkgOiBib29sIC0+IGJvb2wgLT4gYm9vbCA9IFwiJXNlcXVvclwiXG4gIFtAQG9jYW1sLmRlcHJlY2F0ZWQgXCJVc2UgKHx8KSBpbnN0ZWFkLlwiXVxuZXh0ZXJuYWwgX19MT0NfXyA6IHN0cmluZyA9IFwiJWxvY19MT0NcIlxuZXh0ZXJuYWwgX19GSUxFX18gOiBzdHJpbmcgPSBcIiVsb2NfRklMRVwiXG5leHRlcm5hbCBfX0xJTkVfXyA6IGludCA9IFwiJWxvY19MSU5FXCJcbmV4dGVybmFsIF9fTU9EVUxFX18gOiBzdHJpbmcgPSBcIiVsb2NfTU9EVUxFXCJcbmV4dGVybmFsIF9fUE9TX18gOiBzdHJpbmcgKiBpbnQgKiBpbnQgKiBpbnQgPSBcIiVsb2NfUE9TXCJcbmV4dGVybmFsIF9fTE9DX09GX18gOiAnYSAtPiBzdHJpbmcgKiAnYSA9IFwiJWxvY19MT0NcIlxuZXh0ZXJuYWwgX19MSU5FX09GX18gOiAnYSAtPiBpbnQgKiAnYSA9IFwiJWxvY19MSU5FXCJcbmV4dGVybmFsIF9fUE9TX09GX18gOiAnYSAtPiAoc3RyaW5nICogaW50ICogaW50ICogaW50KSAqICdhID0gXCIlbG9jX1BPU1wiXG5leHRlcm5hbCAoIHw+ICkgOiAnYSAtPiAoJ2EgLT4gJ2IpIC0+ICdiID0gXCIlcmV2YXBwbHlcIlxuZXh0ZXJuYWwgKCBAQCApIDogKCdhIC0+ICdiKSAtPiAnYSAtPiAnYiA9IFwiJWFwcGx5XCJcbmV4dGVybmFsICggfi0gKSA6IGludCAtPiBpbnQgPSBcIiVuZWdpbnRcIlxuZXh0ZXJuYWwgKCB+KyApIDogaW50IC0+IGludCA9IFwiJWlkZW50aXR5XCJcbmV4dGVybmFsIHN1Y2MgOiBpbnQgLT4gaW50ID0gXCIlc3VjY2ludFwiXG5leHRlcm5hbCBwcmVkIDogaW50IC0+IGludCA9IFwiJXByZWRpbnRcIlxuZXh0ZXJuYWwgKCArICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWFkZGludFwiXG5leHRlcm5hbCAoIC0gKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlc3ViaW50XCJcbmV4dGVybmFsICggKiApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVtdWxpbnRcIlxuZXh0ZXJuYWwgKCAvICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWRpdmludFwiXG5leHRlcm5hbCAoIG1vZCApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVtb2RpbnRcIlxubGV0IGFicyA9IGFic1xubGV0IG1heF9pbnQgPSBtYXhfaW50XG5sZXQgbWluX2ludCA9IG1pbl9pbnRcbmV4dGVybmFsICggbGFuZCApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVhbmRpbnRcIlxuZXh0ZXJuYWwgKCBsb3IgKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlb3JpbnRcIlxuZXh0ZXJuYWwgKCBseG9yICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJXhvcmludFwiXG5sZXQgbG5vdCA9IGxub3RcbmV4dGVybmFsICggbHNsICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWxzbGludFwiXG5leHRlcm5hbCAoIGxzciApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVsc3JpbnRcIlxuZXh0ZXJuYWwgKCBhc3IgKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlYXNyaW50XCJcbmV4dGVybmFsICggfi0uICkgOiBmbG9hdCAtPiBmbG9hdCA9IFwiJW5lZ2Zsb2F0XCJcbmV4dGVybmFsICggfisuICkgOiBmbG9hdCAtPiBmbG9hdCA9IFwiJWlkZW50aXR5XCJcbmV4dGVybmFsICggKy4gKSA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCIlYWRkZmxvYXRcIlxuZXh0ZXJuYWwgKCAtLiApIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcIiVzdWJmbG9hdFwiXG5leHRlcm5hbCAoICouICkgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiJW11bGZsb2F0XCJcbmV4dGVybmFsICggLy4gKSA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCIlZGl2ZmxvYXRcIlxuZXh0ZXJuYWwgKCAqKiApIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfcG93ZXJfZmxvYXRcIiBcInBvd1wiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBzcXJ0IDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfc3FydF9mbG9hdFwiIFwic3FydFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBleHAgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9leHBfZmxvYXRcIiBcImV4cFwiIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBsb2cgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9sb2dfZmxvYXRcIiBcImxvZ1wiIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBsb2cxMCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2xvZzEwX2Zsb2F0XCIgXCJsb2cxMFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBleHBtMSA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2V4cG0xX2Zsb2F0XCIgXCJjYW1sX2V4cG0xXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGxvZzFwIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfbG9nMXBfZmxvYXRcIiBcImNhbWxfbG9nMXBcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgY29zIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfY29zX2Zsb2F0XCIgXCJjb3NcIiBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgc2luIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfc2luX2Zsb2F0XCIgXCJzaW5cIiBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgdGFuIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfdGFuX2Zsb2F0XCIgXCJ0YW5cIiBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYWNvcyA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2Fjb3NfZmxvYXRcIiBcImFjb3NcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYXNpbiA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2FzaW5fZmxvYXRcIiBcImFzaW5cIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYXRhbiA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2F0YW5fZmxvYXRcIiBcImF0YW5cIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYXRhbjIgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9hdGFuMl9mbG9hdFwiIFwiYXRhbjJcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgaHlwb3QgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9oeXBvdF9mbG9hdFwiIFwiY2FtbF9oeXBvdFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBjb3NoIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfY29zaF9mbG9hdFwiIFwiY29zaFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBzaW5oIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfc2luaF9mbG9hdFwiIFwic2luaFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCB0YW5oIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfdGFuaF9mbG9hdFwiIFwidGFuaFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBjZWlsIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfY2VpbF9mbG9hdFwiIFwiY2VpbFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBmbG9vciA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2Zsb29yX2Zsb2F0XCIgXCJmbG9vclwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBhYnNfZmxvYXQgOiBmbG9hdCAtPiBmbG9hdCA9IFwiJWFic2Zsb2F0XCJcbmV4dGVybmFsIGNvcHlzaWduIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXRcbiAgICAgICAgICAgICAgICAgID0gXCJjYW1sX2NvcHlzaWduX2Zsb2F0XCIgXCJjYW1sX2NvcHlzaWduXCJcbiAgICAgICAgICAgICAgICAgIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBtb2RfZmxvYXQgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9mbW9kX2Zsb2F0XCIgXCJmbW9kXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGZyZXhwIDogZmxvYXQgLT4gZmxvYXQgKiBpbnQgPSBcImNhbWxfZnJleHBfZmxvYXRcIlxuZXh0ZXJuYWwgbGRleHAgOiAoZmxvYXQgW0B1bmJveGVkXSkgLT4gKGludCBbQHVudGFnZ2VkXSkgLT4gKGZsb2F0IFtAdW5ib3hlZF0pID1cbiAgXCJjYW1sX2xkZXhwX2Zsb2F0XCIgXCJjYW1sX2xkZXhwX2Zsb2F0X3VuYm94ZWRcIiBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgbW9kZiA6IGZsb2F0IC0+IGZsb2F0ICogZmxvYXQgPSBcImNhbWxfbW9kZl9mbG9hdFwiXG5leHRlcm5hbCBmbG9hdCA6IGludCAtPiBmbG9hdCA9IFwiJWZsb2F0b2ZpbnRcIlxuZXh0ZXJuYWwgZmxvYXRfb2ZfaW50IDogaW50IC0+IGZsb2F0ID0gXCIlZmxvYXRvZmludFwiXG5leHRlcm5hbCB0cnVuY2F0ZSA6IGZsb2F0IC0+IGludCA9IFwiJWludG9mZmxvYXRcIlxuZXh0ZXJuYWwgaW50X29mX2Zsb2F0IDogZmxvYXQgLT4gaW50ID0gXCIlaW50b2ZmbG9hdFwiXG5sZXQgaW5maW5pdHkgPSBpbmZpbml0eVxubGV0IG5lZ19pbmZpbml0eSA9IG5lZ19pbmZpbml0eVxubGV0IG5hbiA9IG5hblxubGV0IG1heF9mbG9hdCA9IG1heF9mbG9hdFxubGV0IG1pbl9mbG9hdCA9IG1pbl9mbG9hdFxubGV0IGVwc2lsb25fZmxvYXQgPSBlcHNpbG9uX2Zsb2F0XG50eXBlIG5vbnJlYyBmcGNsYXNzID0gZnBjbGFzcyA9XG4gICAgRlBfbm9ybWFsXG4gIHwgRlBfc3Vibm9ybWFsXG4gIHwgRlBfemVyb1xuICB8IEZQX2luZmluaXRlXG4gIHwgRlBfbmFuXG5leHRlcm5hbCBjbGFzc2lmeV9mbG9hdCA6IChmbG9hdCBbQHVuYm94ZWRdKSAtPiBmcGNsYXNzID1cbiAgXCJjYW1sX2NsYXNzaWZ5X2Zsb2F0XCIgXCJjYW1sX2NsYXNzaWZ5X2Zsb2F0X3VuYm94ZWRcIiBbQEBub2FsbG9jXVxubGV0ICggXiApID0gKCBeIClcbmV4dGVybmFsIGludF9vZl9jaGFyIDogY2hhciAtPiBpbnQgPSBcIiVpZGVudGl0eVwiXG5sZXQgY2hhcl9vZl9pbnQgPSBjaGFyX29mX2ludFxuZXh0ZXJuYWwgaWdub3JlIDogJ2EgLT4gdW5pdCA9IFwiJWlnbm9yZVwiXG5sZXQgc3RyaW5nX29mX2Jvb2wgPSBzdHJpbmdfb2ZfYm9vbFxubGV0IGJvb2xfb2Zfc3RyaW5nID0gYm9vbF9vZl9zdHJpbmdcbmxldCBib29sX29mX3N0cmluZ19vcHQgPSBib29sX29mX3N0cmluZ19vcHRcbmxldCBzdHJpbmdfb2ZfaW50ID0gc3RyaW5nX29mX2ludFxuZXh0ZXJuYWwgaW50X29mX3N0cmluZyA6IHN0cmluZyAtPiBpbnQgPSBcImNhbWxfaW50X29mX3N0cmluZ1wiXG5sZXQgaW50X29mX3N0cmluZ19vcHQgPSBpbnRfb2Zfc3RyaW5nX29wdFxubGV0IHN0cmluZ19vZl9mbG9hdCA9IHN0cmluZ19vZl9mbG9hdFxuZXh0ZXJuYWwgZmxvYXRfb2Zfc3RyaW5nIDogc3RyaW5nIC0+IGZsb2F0ID0gXCJjYW1sX2Zsb2F0X29mX3N0cmluZ1wiXG5sZXQgZmxvYXRfb2Zfc3RyaW5nX29wdCA9IGZsb2F0X29mX3N0cmluZ19vcHRcbmV4dGVybmFsIGZzdCA6ICdhICogJ2IgLT4gJ2EgPSBcIiVmaWVsZDBcIlxuZXh0ZXJuYWwgc25kIDogJ2EgKiAnYiAtPiAnYiA9IFwiJWZpZWxkMVwiXG5sZXQgKCBAICkgID0gKCBAIClcbnR5cGUgbm9ucmVjIGluX2NoYW5uZWwgPSBpbl9jaGFubmVsXG50eXBlIG5vbnJlYyBvdXRfY2hhbm5lbCA9IG91dF9jaGFubmVsXG5sZXQgc3RkaW4gPSBzdGRpblxubGV0IHN0ZG91dCA9IHN0ZG91dFxubGV0IHN0ZGVyciA9IHN0ZGVyclxubGV0IHByaW50X2NoYXIgPSBwcmludF9jaGFyXG5sZXQgcHJpbnRfc3RyaW5nID0gcHJpbnRfc3RyaW5nXG5sZXQgcHJpbnRfYnl0ZXMgPSBwcmludF9ieXRlc1xubGV0IHByaW50X2ludCA9IHByaW50X2ludFxubGV0IHByaW50X2Zsb2F0ID0gcHJpbnRfZmxvYXRcbmxldCBwcmludF9lbmRsaW5lID0gcHJpbnRfZW5kbGluZVxubGV0IHByaW50X25ld2xpbmUgPSBwcmludF9uZXdsaW5lXG5sZXQgcHJlcnJfY2hhciA9IHByZXJyX2NoYXJcbmxldCBwcmVycl9zdHJpbmcgPSBwcmVycl9zdHJpbmdcbmxldCBwcmVycl9ieXRlcyA9IHByZXJyX2J5dGVzXG5sZXQgcHJlcnJfaW50ID0gcHJlcnJfaW50XG5sZXQgcHJlcnJfZmxvYXQgPSBwcmVycl9mbG9hdFxubGV0IHByZXJyX2VuZGxpbmUgPSBwcmVycl9lbmRsaW5lXG5sZXQgcHJlcnJfbmV3bGluZSA9IHByZXJyX25ld2xpbmVcbmxldCByZWFkX2xpbmUgPSByZWFkX2xpbmVcbmxldCByZWFkX2ludCA9IHJlYWRfaW50XG5sZXQgcmVhZF9pbnRfb3B0ID0gcmVhZF9pbnRfb3B0XG5sZXQgcmVhZF9mbG9hdCA9IHJlYWRfZmxvYXRcbmxldCByZWFkX2Zsb2F0X29wdCA9IHJlYWRfZmxvYXRfb3B0XG50eXBlIG5vbnJlYyBvcGVuX2ZsYWcgPSBvcGVuX2ZsYWcgPVxuICAgIE9wZW5fcmRvbmx5XG4gIHwgT3Blbl93cm9ubHlcbiAgfCBPcGVuX2FwcGVuZFxuICB8IE9wZW5fY3JlYXRcbiAgfCBPcGVuX3RydW5jXG4gIHwgT3Blbl9leGNsXG4gIHwgT3Blbl9iaW5hcnlcbiAgfCBPcGVuX3RleHRcbiAgfCBPcGVuX25vbmJsb2NrXG5sZXQgb3Blbl9vdXQgPSBvcGVuX291dFxubGV0IG9wZW5fb3V0X2JpbiA9IG9wZW5fb3V0X2JpblxubGV0IG9wZW5fb3V0X2dlbiA9IG9wZW5fb3V0X2dlblxubGV0IGZsdXNoID0gZmx1c2hcbmxldCBmbHVzaF9hbGwgPSBmbHVzaF9hbGxcbmxldCBvdXRwdXRfY2hhciA9IG91dHB1dF9jaGFyXG5sZXQgb3V0cHV0X3N0cmluZyA9IG91dHB1dF9zdHJpbmdcbmxldCBvdXRwdXRfYnl0ZXMgPSBvdXRwdXRfYnl0ZXNcbmxldCBvdXRwdXQgPSBvdXRwdXRcbmxldCBvdXRwdXRfc3Vic3RyaW5nID0gb3V0cHV0X3N1YnN0cmluZ1xubGV0IG91dHB1dF9ieXRlID0gb3V0cHV0X2J5dGVcbmxldCBvdXRwdXRfYmluYXJ5X2ludCA9IG91dHB1dF9iaW5hcnlfaW50XG5sZXQgb3V0cHV0X3ZhbHVlID0gb3V0cHV0X3ZhbHVlXG5sZXQgc2Vla19vdXQgPSBzZWVrX291dFxubGV0IHBvc19vdXQgPSBwb3Nfb3V0XG5sZXQgb3V0X2NoYW5uZWxfbGVuZ3RoID0gb3V0X2NoYW5uZWxfbGVuZ3RoXG5sZXQgY2xvc2Vfb3V0ID0gY2xvc2Vfb3V0XG5sZXQgY2xvc2Vfb3V0X25vZXJyID0gY2xvc2Vfb3V0X25vZXJyXG5sZXQgc2V0X2JpbmFyeV9tb2RlX291dCA9IHNldF9iaW5hcnlfbW9kZV9vdXRcbmxldCBvcGVuX2luID0gb3Blbl9pblxubGV0IG9wZW5faW5fYmluID0gb3Blbl9pbl9iaW5cbmxldCBvcGVuX2luX2dlbiA9IG9wZW5faW5fZ2VuXG5sZXQgaW5wdXRfY2hhciA9IGlucHV0X2NoYXJcbmxldCBpbnB1dF9saW5lID0gaW5wdXRfbGluZVxubGV0IGlucHV0ID0gaW5wdXRcbmxldCByZWFsbHlfaW5wdXQgPSByZWFsbHlfaW5wdXRcbmxldCByZWFsbHlfaW5wdXRfc3RyaW5nID0gcmVhbGx5X2lucHV0X3N0cmluZ1xubGV0IGlucHV0X2J5dGUgPSBpbnB1dF9ieXRlXG5sZXQgaW5wdXRfYmluYXJ5X2ludCA9IGlucHV0X2JpbmFyeV9pbnRcbmxldCBpbnB1dF92YWx1ZSA9IGlucHV0X3ZhbHVlXG5sZXQgc2Vla19pbiA9IHNlZWtfaW5cbmxldCBwb3NfaW4gPSBwb3NfaW5cbmxldCBpbl9jaGFubmVsX2xlbmd0aCA9IGluX2NoYW5uZWxfbGVuZ3RoXG5sZXQgY2xvc2VfaW4gPSBjbG9zZV9pblxubGV0IGNsb3NlX2luX25vZXJyID0gY2xvc2VfaW5fbm9lcnJcbmxldCBzZXRfYmluYXJ5X21vZGVfaW4gPSBzZXRfYmluYXJ5X21vZGVfaW5cbm1vZHVsZSBMYXJnZUZpbGUgPSBMYXJnZUZpbGVcbnR5cGUgbm9ucmVjICdhIHJlZiA9ICdhIHJlZiA9IHsgbXV0YWJsZSBjb250ZW50cyA6ICdhIH1cbmV4dGVybmFsIHJlZiA6ICdhIC0+ICdhIHJlZiA9IFwiJW1ha2VtdXRhYmxlXCJcbmV4dGVybmFsICggISApIDogJ2EgcmVmIC0+ICdhID0gXCIlZmllbGQwXCJcbmV4dGVybmFsICggOj0gKSA6ICdhIHJlZiAtPiAnYSAtPiB1bml0ID0gXCIlc2V0ZmllbGQwXCJcbmV4dGVybmFsIGluY3IgOiBpbnQgcmVmIC0+IHVuaXQgPSBcIiVpbmNyXCJcbmV4dGVybmFsIGRlY3IgOiBpbnQgcmVmIC0+IHVuaXQgPSBcIiVkZWNyXCJcbnR5cGUgbm9ucmVjICgnYSwnYikgcmVzdWx0ID0gKCdhLCdiKSByZXN1bHQgPSBPayBvZiAnYSB8IEVycm9yIG9mICdiXG50eXBlICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmb3JtYXQ2ID1cbiAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIENhbWxpbnRlcm5hbEZvcm1hdEJhc2ljcy5mb3JtYXQ2XG50eXBlICgnYSwgJ2IsICdjLCAnZCkgZm9ybWF0NCA9ICgnYSwgJ2IsICdjLCAnYywgJ2MsICdkKSBmb3JtYXQ2XG50eXBlICgnYSwgJ2IsICdjKSBmb3JtYXQgPSAoJ2EsICdiLCAnYywgJ2MpIGZvcm1hdDRcbmxldCBzdHJpbmdfb2ZfZm9ybWF0ID0gc3RyaW5nX29mX2Zvcm1hdFxuZXh0ZXJuYWwgZm9ybWF0X29mX3N0cmluZyA6XG4gICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmb3JtYXQ2IC0+XG4gICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmb3JtYXQ2ID0gXCIlaWRlbnRpdHlcIlxubGV0ICggXl4gKSA9ICggXl4gKVxubGV0IGV4aXQgPSBleGl0XG5sZXQgYXRfZXhpdCA9IGF0X2V4aXRcbmxldCB2YWxpZF9mbG9hdF9sZXhlbSA9IHZhbGlkX2Zsb2F0X2xleGVtXG5sZXQgZG9fYXRfZXhpdCA9IGRvX2F0X2V4aXRcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgR2FicmllbCBTY2hlcmVyLCBwcm9qZXQgUGFyc2lmYWwsIElOUklBIFNhY2xheSAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMTkgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxudHlwZSAoJ2EsICdiKSB0ID0gTGVmdCBvZiAnYSB8IFJpZ2h0IG9mICdiXG5cbmxldCBsZWZ0IHYgPSBMZWZ0IHZcbmxldCByaWdodCB2ID0gUmlnaHQgdlxuXG5sZXQgaXNfbGVmdCA9IGZ1bmN0aW9uXG58IExlZnQgXyAtPiB0cnVlXG58IFJpZ2h0IF8gLT4gZmFsc2VcblxubGV0IGlzX3JpZ2h0ID0gZnVuY3Rpb25cbnwgTGVmdCBfIC0+IGZhbHNlXG58IFJpZ2h0IF8gLT4gdHJ1ZVxuXG5sZXQgZmluZF9sZWZ0ID0gZnVuY3Rpb25cbnwgTGVmdCB2IC0+IFNvbWUgdlxufCBSaWdodCBfIC0+IE5vbmVcblxubGV0IGZpbmRfcmlnaHQgPSBmdW5jdGlvblxufCBMZWZ0IF8gLT4gTm9uZVxufCBSaWdodCB2IC0+IFNvbWUgdlxuXG5sZXQgbWFwX2xlZnQgZiA9IGZ1bmN0aW9uXG58IExlZnQgdiAtPiBMZWZ0IChmIHYpXG58IFJpZ2h0IF8gYXMgZSAtPiBlXG5cbmxldCBtYXBfcmlnaHQgZiA9IGZ1bmN0aW9uXG58IExlZnQgXyBhcyBlIC0+IGVcbnwgUmlnaHQgdiAtPiBSaWdodCAoZiB2KVxuXG5sZXQgbWFwIH5sZWZ0IH5yaWdodCA9IGZ1bmN0aW9uXG58IExlZnQgdiAtPiBMZWZ0IChsZWZ0IHYpXG58IFJpZ2h0IHYgLT4gUmlnaHQgKHJpZ2h0IHYpXG5cbmxldCBmb2xkIH5sZWZ0IH5yaWdodCA9IGZ1bmN0aW9uXG58IExlZnQgdiAtPiBsZWZ0IHZcbnwgUmlnaHQgdiAtPiByaWdodCB2XG5cbmxldCBpdGVyID0gZm9sZFxuXG5sZXQgZm9yX2FsbCA9IGZvbGRcblxubGV0IGVxdWFsIH5sZWZ0IH5yaWdodCBlMSBlMiA9IG1hdGNoIGUxLCBlMiB3aXRoXG58IExlZnQgdjEsIExlZnQgdjIgLT4gbGVmdCB2MSB2MlxufCBSaWdodCB2MSwgUmlnaHQgdjIgLT4gcmlnaHQgdjEgdjJcbnwgTGVmdCBfLCBSaWdodCBfIHwgUmlnaHQgXywgTGVmdCBfIC0+IGZhbHNlXG5cbmxldCBjb21wYXJlIH5sZWZ0IH5yaWdodCBlMSBlMiA9IG1hdGNoIGUxLCBlMiB3aXRoXG58IExlZnQgdjEsIExlZnQgdjIgLT4gbGVmdCB2MSB2MlxufCBSaWdodCB2MSwgUmlnaHQgdjIgLT4gcmlnaHQgdjEgdjJcbnwgTGVmdCBfLCBSaWdodCBfIC0+ICgtMSlcbnwgUmlnaHQgXywgTGVmdCBfIC0+IDFcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogT3BlcmF0aW9ucyBvbiBpbnRlcm5hbCByZXByZXNlbnRhdGlvbnMgb2YgdmFsdWVzICopXG5cbnR5cGUgdFxuXG50eXBlIHJhd19kYXRhID0gbmF0aXZlaW50XG5cbmV4dGVybmFsIHJlcHIgOiAnYSAtPiB0ID0gXCIlaWRlbnRpdHlcIlxuZXh0ZXJuYWwgb2JqIDogdCAtPiAnYSA9IFwiJWlkZW50aXR5XCJcbmV4dGVybmFsIG1hZ2ljIDogJ2EgLT4gJ2IgPSBcIiVpZGVudGl0eVwiXG5leHRlcm5hbCBpc19pbnQgOiB0IC0+IGJvb2wgPSBcIiVvYmpfaXNfaW50XCJcbmxldCBbQGlubGluZSBhbHdheXNdIGlzX2Jsb2NrIGEgPSBub3QgKGlzX2ludCBhKVxuZXh0ZXJuYWwgdGFnIDogdCAtPiBpbnQgPSBcImNhbWxfb2JqX3RhZ1wiIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBzZXRfdGFnIDogdCAtPiBpbnQgLT4gdW5pdCA9IFwiY2FtbF9vYmpfc2V0X3RhZ1wiXG5leHRlcm5hbCBzaXplIDogdCAtPiBpbnQgPSBcIiVvYmpfc2l6ZVwiXG5leHRlcm5hbCByZWFjaGFibGVfd29yZHMgOiB0IC0+IGludCA9IFwiY2FtbF9vYmpfcmVhY2hhYmxlX3dvcmRzXCJcbmV4dGVybmFsIGZpZWxkIDogdCAtPiBpbnQgLT4gdCA9IFwiJW9ial9maWVsZFwiXG5leHRlcm5hbCBzZXRfZmllbGQgOiB0IC0+IGludCAtPiB0IC0+IHVuaXQgPSBcIiVvYmpfc2V0X2ZpZWxkXCJcbmV4dGVybmFsIGZsb2F0YXJyYXlfZ2V0IDogZmxvYXRhcnJheSAtPiBpbnQgLT4gZmxvYXQgPSBcImNhbWxfZmxvYXRhcnJheV9nZXRcIlxuZXh0ZXJuYWwgZmxvYXRhcnJheV9zZXQgOlxuICAgIGZsb2F0YXJyYXkgLT4gaW50IC0+IGZsb2F0IC0+IHVuaXQgPSBcImNhbWxfZmxvYXRhcnJheV9zZXRcIlxubGV0IFtAaW5saW5lIGFsd2F5c10gZG91YmxlX2ZpZWxkIHggaSA9IGZsb2F0YXJyYXlfZ2V0IChvYmogeCA6IGZsb2F0YXJyYXkpIGlcbmxldCBbQGlubGluZSBhbHdheXNdIHNldF9kb3VibGVfZmllbGQgeCBpIHYgPVxuICBmbG9hdGFycmF5X3NldCAob2JqIHggOiBmbG9hdGFycmF5KSBpIHZcbmV4dGVybmFsIHJhd19maWVsZCA6IHQgLT4gaW50IC0+IHJhd19kYXRhID0gXCJjYW1sX29ial9yYXdfZmllbGRcIlxuZXh0ZXJuYWwgc2V0X3Jhd19maWVsZCA6IHQgLT4gaW50IC0+IHJhd19kYXRhIC0+IHVuaXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX29ial9zZXRfcmF3X2ZpZWxkXCJcblxuZXh0ZXJuYWwgbmV3X2Jsb2NrIDogaW50IC0+IGludCAtPiB0ID0gXCJjYW1sX29ial9ibG9ja1wiXG5leHRlcm5hbCBkdXAgOiB0IC0+IHQgPSBcImNhbWxfb2JqX2R1cFwiXG5leHRlcm5hbCB0cnVuY2F0ZSA6IHQgLT4gaW50IC0+IHVuaXQgPSBcImNhbWxfb2JqX3RydW5jYXRlXCJcbmV4dGVybmFsIGFkZF9vZmZzZXQgOiB0IC0+IEludDMyLnQgLT4gdCA9IFwiY2FtbF9vYmpfYWRkX29mZnNldFwiXG5leHRlcm5hbCB3aXRoX3RhZyA6IGludCAtPiB0IC0+IHQgPSBcImNhbWxfb2JqX3dpdGhfdGFnXCJcblxubGV0IGZpcnN0X25vbl9jb25zdGFudF9jb25zdHJ1Y3Rvcl90YWcgPSAwXG5sZXQgbGFzdF9ub25fY29uc3RhbnRfY29uc3RydWN0b3JfdGFnID0gMjQ1XG5cbmxldCBsYXp5X3RhZyA9IDI0NlxubGV0IGNsb3N1cmVfdGFnID0gMjQ3XG5sZXQgb2JqZWN0X3RhZyA9IDI0OFxubGV0IGluZml4X3RhZyA9IDI0OVxubGV0IGZvcndhcmRfdGFnID0gMjUwXG5cbmxldCBub19zY2FuX3RhZyA9IDI1MVxuXG5sZXQgYWJzdHJhY3RfdGFnID0gMjUxXG5sZXQgc3RyaW5nX3RhZyA9IDI1MlxubGV0IGRvdWJsZV90YWcgPSAyNTNcbmxldCBkb3VibGVfYXJyYXlfdGFnID0gMjU0XG5sZXQgY3VzdG9tX3RhZyA9IDI1NVxubGV0IGZpbmFsX3RhZyA9IGN1c3RvbV90YWdcblxuXG5sZXQgaW50X3RhZyA9IDEwMDBcbmxldCBvdXRfb2ZfaGVhcF90YWcgPSAxMDAxXG5sZXQgdW5hbGlnbmVkX3RhZyA9IDEwMDJcblxubW9kdWxlIENsb3N1cmUgPSBzdHJ1Y3RcbiAgdHlwZSBpbmZvID0ge1xuICAgIGFyaXR5OiBpbnQ7XG4gICAgc3RhcnRfZW52OiBpbnQ7XG4gIH1cblxuICBsZXQgaW5mb19vZl9yYXcgKGluZm8gOiBuYXRpdmVpbnQpID1cbiAgICBsZXQgb3BlbiBOYXRpdmVpbnQgaW5cbiAgICBsZXQgYXJpdHkgPVxuICAgICAgKCogc2lnbmVkOiBuZWdhdGl2ZSBmb3IgdHVwbGVkIGZ1bmN0aW9ucyAqKVxuICAgICAgaWYgU3lzLndvcmRfc2l6ZSA9IDY0IHRoZW5cbiAgICAgICAgdG9faW50IChzaGlmdF9yaWdodCBpbmZvIDU2KVxuICAgICAgZWxzZVxuICAgICAgICB0b19pbnQgKHNoaWZ0X3JpZ2h0IGluZm8gMjQpXG4gICAgaW5cbiAgICBsZXQgc3RhcnRfZW52ID1cbiAgICAgICgqIHN0YXJ0X2VudiBpcyB1bnNpZ25lZCwgYnV0IHdlIGtub3cgaXQgY2FuIGFsd2F5cyBmaXQgYW4gT0NhbWxcbiAgICAgICAgIGludGVnZXIgc28gd2UgdXNlIFt0b19pbnRdIGluc3RlYWQgb2YgW3Vuc2lnbmVkX3RvX2ludF0uICopXG4gICAgICB0b19pbnQgKHNoaWZ0X3JpZ2h0X2xvZ2ljYWwgKHNoaWZ0X2xlZnQgaW5mbyA4KSA5KSBpblxuICAgIHsgYXJpdHk7IHN0YXJ0X2VudiB9XG5cbiAgKCogbm90ZTogd2UgZXhwZWN0IGEgY2xvc3VyZSwgbm90IGFuIGluZml4IHBvaW50ZXIgKilcbiAgbGV0IGluZm8gKG9iaiA6IHQpID1cbiAgICBhc3NlcnQgKHRhZyBvYmogPSBjbG9zdXJlX3RhZyk7XG4gICAgaW5mb19vZl9yYXcgKHJhd19maWVsZCBvYmogMSlcbmVuZFxuXG5tb2R1bGUgRXh0ZW5zaW9uX2NvbnN0cnVjdG9yID1cbnN0cnVjdFxuICB0eXBlIHQgPSBleHRlbnNpb25fY29uc3RydWN0b3JcbiAgbGV0IG9mX3ZhbCB4ID1cbiAgICBsZXQgeCA9IHJlcHIgeCBpblxuICAgIGxldCBzbG90ID1cbiAgICAgIGlmIChpc19ibG9jayB4KSAmJiAodGFnIHgpIDw+IG9iamVjdF90YWcgJiYgKHNpemUgeCkgPj0gMSB0aGVuIGZpZWxkIHggMFxuICAgICAgZWxzZSB4XG4gICAgaW5cbiAgICBsZXQgbmFtZSA9XG4gICAgICBpZiAoaXNfYmxvY2sgc2xvdCkgJiYgKHRhZyBzbG90KSA9IG9iamVjdF90YWcgdGhlbiBmaWVsZCBzbG90IDBcbiAgICAgIGVsc2UgaW52YWxpZF9hcmcgXCJPYmouZXh0ZW5zaW9uX2NvbnN0cnVjdG9yXCJcbiAgICBpblxuICAgICAgaWYgKHRhZyBuYW1lKSA9IHN0cmluZ190YWcgdGhlbiAob2JqIHNsb3QgOiB0KVxuICAgICAgZWxzZSBpbnZhbGlkX2FyZyBcIk9iai5leHRlbnNpb25fY29uc3RydWN0b3JcIlxuXG4gIGxldCBbQGlubGluZSBhbHdheXNdIG5hbWUgKHNsb3QgOiB0KSA9XG4gICAgKG9iaiAoZmllbGQgKHJlcHIgc2xvdCkgMCkgOiBzdHJpbmcpXG5cbiAgbGV0IFtAaW5saW5lIGFsd2F5c10gaWQgKHNsb3QgOiB0KSA9XG4gICAgKG9iaiAoZmllbGQgKHJlcHIgc2xvdCkgMSkgOiBpbnQpXG5lbmRcblxubGV0IGV4dGVuc2lvbl9jb25zdHJ1Y3RvciA9IEV4dGVuc2lvbl9jb25zdHJ1Y3Rvci5vZl92YWxcbmxldCBleHRlbnNpb25fbmFtZSA9IEV4dGVuc2lvbl9jb25zdHJ1Y3Rvci5uYW1lXG5sZXQgZXh0ZW5zaW9uX2lkID0gRXh0ZW5zaW9uX2NvbnN0cnVjdG9yLmlkXG5cbm1vZHVsZSBFcGhlbWVyb24gPSBzdHJ1Y3RcbiAgdHlwZSBvYmpfdCA9IHRcblxuICB0eXBlIHQgKCoqIGVwaGVtZXJvbiAqKVxuXG4gICAoKiogVG8gY2hhbmdlIGluIHN5bmMgd2l0aCB3ZWFrLmggKilcbiAgbGV0IGFkZGl0aW9uYWxfdmFsdWVzID0gMlxuICBsZXQgbWF4X2VwaGVfbGVuZ3RoID0gU3lzLm1heF9hcnJheV9sZW5ndGggLSBhZGRpdGlvbmFsX3ZhbHVlc1xuXG4gIGV4dGVybmFsIGNyZWF0ZSA6IGludCAtPiB0ID0gXCJjYW1sX2VwaGVfY3JlYXRlXCI7O1xuICBsZXQgY3JlYXRlIGwgPVxuICAgIGlmIG5vdCAoMCA8PSBsICYmIGwgPD0gbWF4X2VwaGVfbGVuZ3RoKSB0aGVuXG4gICAgICBpbnZhbGlkX2FyZyBcIk9iai5FcGhlbWVyb24uY3JlYXRlXCI7XG4gICAgY3JlYXRlIGxcblxuICBsZXQgbGVuZ3RoIHggPSBzaXplKHJlcHIgeCkgLSBhZGRpdGlvbmFsX3ZhbHVlc1xuXG4gIGxldCByYWlzZV9pZl9pbnZhbGlkX29mZnNldCBlIG8gbXNnID1cbiAgICBpZiBub3QgKDAgPD0gbyAmJiBvIDwgbGVuZ3RoIGUpIHRoZW5cbiAgICAgIGludmFsaWRfYXJnIG1zZ1xuXG4gIGV4dGVybmFsIGdldF9rZXk6IHQgLT4gaW50IC0+IG9ial90IG9wdGlvbiA9IFwiY2FtbF9lcGhlX2dldF9rZXlcIlxuICBsZXQgZ2V0X2tleSBlIG8gPVxuICAgIHJhaXNlX2lmX2ludmFsaWRfb2Zmc2V0IGUgbyBcIk9iai5FcGhlbWVyb24uZ2V0X2tleVwiO1xuICAgIGdldF9rZXkgZSBvXG5cbiAgZXh0ZXJuYWwgZ2V0X2tleV9jb3B5OiB0IC0+IGludCAtPiBvYmpfdCBvcHRpb24gPSBcImNhbWxfZXBoZV9nZXRfa2V5X2NvcHlcIlxuICBsZXQgZ2V0X2tleV9jb3B5IGUgbyA9XG4gICAgcmFpc2VfaWZfaW52YWxpZF9vZmZzZXQgZSBvIFwiT2JqLkVwaGVtZXJvbi5nZXRfa2V5X2NvcHlcIjtcbiAgICBnZXRfa2V5X2NvcHkgZSBvXG5cbiAgZXh0ZXJuYWwgc2V0X2tleTogdCAtPiBpbnQgLT4gb2JqX3QgLT4gdW5pdCA9IFwiY2FtbF9lcGhlX3NldF9rZXlcIlxuICBsZXQgc2V0X2tleSBlIG8geCA9XG4gICAgcmFpc2VfaWZfaW52YWxpZF9vZmZzZXQgZSBvIFwiT2JqLkVwaGVtZXJvbi5zZXRfa2V5XCI7XG4gICAgc2V0X2tleSBlIG8geFxuXG4gIGV4dGVybmFsIHVuc2V0X2tleTogdCAtPiBpbnQgLT4gdW5pdCA9IFwiY2FtbF9lcGhlX3Vuc2V0X2tleVwiXG4gIGxldCB1bnNldF9rZXkgZSBvID1cbiAgICByYWlzZV9pZl9pbnZhbGlkX29mZnNldCBlIG8gXCJPYmouRXBoZW1lcm9uLnVuc2V0X2tleVwiO1xuICAgIHVuc2V0X2tleSBlIG9cblxuICBleHRlcm5hbCBjaGVja19rZXk6IHQgLT4gaW50IC0+IGJvb2wgPSBcImNhbWxfZXBoZV9jaGVja19rZXlcIlxuICBsZXQgY2hlY2tfa2V5IGUgbyA9XG4gICAgcmFpc2VfaWZfaW52YWxpZF9vZmZzZXQgZSBvIFwiT2JqLkVwaGVtZXJvbi5jaGVja19rZXlcIjtcbiAgICBjaGVja19rZXkgZSBvXG5cbiAgZXh0ZXJuYWwgYmxpdF9rZXkgOiB0IC0+IGludCAtPiB0IC0+IGludCAtPiBpbnQgLT4gdW5pdFxuICAgID0gXCJjYW1sX2VwaGVfYmxpdF9rZXlcIlxuXG4gIGxldCBibGl0X2tleSBlMSBvMSBlMiBvMiBsID1cbiAgICBpZiBsIDwgMCB8fCBvMSA8IDAgfHwgbzEgPiBsZW5ndGggZTEgLSBsXG4gICAgICAgfHwgbzIgPCAwIHx8IG8yID4gbGVuZ3RoIGUyIC0gbFxuICAgIHRoZW4gaW52YWxpZF9hcmcgXCJPYmouRXBoZW1lcm9uLmJsaXRfa2V5XCJcbiAgICBlbHNlIGlmIGwgPD4gMCB0aGVuIGJsaXRfa2V5IGUxIG8xIGUyIG8yIGxcblxuICBleHRlcm5hbCBnZXRfZGF0YTogdCAtPiBvYmpfdCBvcHRpb24gPSBcImNhbWxfZXBoZV9nZXRfZGF0YVwiXG4gIGV4dGVybmFsIGdldF9kYXRhX2NvcHk6IHQgLT4gb2JqX3Qgb3B0aW9uID0gXCJjYW1sX2VwaGVfZ2V0X2RhdGFfY29weVwiXG4gIGV4dGVybmFsIHNldF9kYXRhOiB0IC0+IG9ial90IC0+IHVuaXQgPSBcImNhbWxfZXBoZV9zZXRfZGF0YVwiXG4gIGV4dGVybmFsIHVuc2V0X2RhdGE6IHQgLT4gdW5pdCA9IFwiY2FtbF9lcGhlX3Vuc2V0X2RhdGFcIlxuICBleHRlcm5hbCBjaGVja19kYXRhOiB0IC0+IGJvb2wgPSBcImNhbWxfZXBoZV9jaGVja19kYXRhXCJcbiAgZXh0ZXJuYWwgYmxpdF9kYXRhIDogdCAtPiB0IC0+IHVuaXQgPSBcImNhbWxfZXBoZV9ibGl0X2RhdGFcIlxuXG5lbmRcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIERhbWllbiBEb2xpZ2V6LCBwcm9qZXQgUGFyYSwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTcgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogSW50ZXJuYWxzIG9mIGZvcmNpbmcgbGF6eSB2YWx1ZXMuICopXG5cbnR5cGUgJ2EgdCA9ICdhIGxhenlfdFxuXG5leGNlcHRpb24gVW5kZWZpbmVkXG5cbmxldCByYWlzZV91bmRlZmluZWQgPSBPYmoucmVwciAoZnVuICgpIC0+IHJhaXNlIFVuZGVmaW5lZClcblxuZXh0ZXJuYWwgbWFrZV9mb3J3YXJkIDogT2JqLnQgLT4gT2JqLnQgLT4gdW5pdCA9IFwiY2FtbF9vYmpfbWFrZV9mb3J3YXJkXCJcblxuKCogQXNzdW1lIFtibGtdIGlzIGEgYmxvY2sgd2l0aCB0YWcgbGF6eSAqKVxubGV0IGZvcmNlX2xhenlfYmxvY2sgKGJsayA6ICdhcmcgbGF6eV90KSA9XG4gIGxldCBjbG9zdXJlID0gKE9iai5vYmogKE9iai5maWVsZCAoT2JqLnJlcHIgYmxrKSAwKSA6IHVuaXQgLT4gJ2FyZykgaW5cbiAgT2JqLnNldF9maWVsZCAoT2JqLnJlcHIgYmxrKSAwIHJhaXNlX3VuZGVmaW5lZDtcbiAgdHJ5XG4gICAgbGV0IHJlc3VsdCA9IGNsb3N1cmUgKCkgaW5cbiAgICBtYWtlX2ZvcndhcmQgKE9iai5yZXByIGJsaykgKE9iai5yZXByIHJlc3VsdCk7XG4gICAgcmVzdWx0XG4gIHdpdGggZSAtPlxuICAgIE9iai5zZXRfZmllbGQgKE9iai5yZXByIGJsaykgMCAoT2JqLnJlcHIgKGZ1biAoKSAtPiByYWlzZSBlKSk7XG4gICAgcmFpc2UgZVxuXG5cbigqIEFzc3VtZSBbYmxrXSBpcyBhIGJsb2NrIHdpdGggdGFnIGxhenkgKilcbmxldCBmb3JjZV92YWxfbGF6eV9ibG9jayAoYmxrIDogJ2FyZyBsYXp5X3QpID1cbiAgbGV0IGNsb3N1cmUgPSAoT2JqLm9iaiAoT2JqLmZpZWxkIChPYmoucmVwciBibGspIDApIDogdW5pdCAtPiAnYXJnKSBpblxuICBPYmouc2V0X2ZpZWxkIChPYmoucmVwciBibGspIDAgcmFpc2VfdW5kZWZpbmVkO1xuICBsZXQgcmVzdWx0ID0gY2xvc3VyZSAoKSBpblxuICBtYWtlX2ZvcndhcmQgKE9iai5yZXByIGJsaykgKE9iai5yZXByIHJlc3VsdCk7XG4gIHJlc3VsdFxuXG5cbigqIFtmb3JjZV0gaXMgbm90IHVzZWQsIHNpbmNlIFtMYXp5LmZvcmNlXSBpcyBkZWNsYXJlZCBhcyBhIHByaW1pdGl2ZVxuICAgd2hvc2UgY29kZSBpbmxpbmVzIHRoZSB0YWcgdGVzdHMgb2YgaXRzIGFyZ3VtZW50LCBleGNlcHQgd2hlbiBhZmxcbiAgIGluc3RydW1lbnRhdGlvbiBpcyB0dXJuZWQgb24uICopXG5cbmxldCBmb3JjZSAobHp2IDogJ2FyZyBsYXp5X3QpID1cbiAgKCogVXNpbmcgW1N5cy5vcGFxdWVfaWRlbnRpdHldIHByZXZlbnRzIHR3byBwb3RlbnRpYWwgcHJvYmxlbXM6XG4gICAgIC0gSWYgdGhlIHZhbHVlIGlzIGtub3duIHRvIGhhdmUgRm9yd2FyZF90YWcsIHRoZW4gaXRzIHRhZyBjb3VsZCBoYXZlXG4gICAgICAgY2hhbmdlZCBkdXJpbmcgR0MsIHNvIHRoYXQgaW5mb3JtYXRpb24gbXVzdCBiZSBmb3Jnb3R0ZW4gKHNlZSBHUFIjNzEzXG4gICAgICAgYW5kIGlzc3VlICM3MzAxKVxuICAgICAtIElmIHRoZSB2YWx1ZSBpcyBrbm93biB0byBiZSBpbW11dGFibGUsIHRoZW4gaWYgdGhlIGNvbXBpbGVyXG4gICAgICAgY2Fubm90IHByb3ZlIHRoYXQgdGhlIGxhc3QgYnJhbmNoIGlzIG5vdCB0YWtlbiBpdCB3aWxsIGlzc3VlIGFcbiAgICAgICB3YXJuaW5nIDU5IChtb2RpZmljYXRpb24gb2YgYW4gaW1tdXRhYmxlIHZhbHVlKSAqKVxuICBsZXQgbHp2ID0gU3lzLm9wYXF1ZV9pZGVudGl0eSBsenYgaW5cbiAgbGV0IHggPSBPYmoucmVwciBsenYgaW5cbiAgbGV0IHQgPSBPYmoudGFnIHggaW5cbiAgaWYgdCA9IE9iai5mb3J3YXJkX3RhZyB0aGVuIChPYmoub2JqIChPYmouZmllbGQgeCAwKSA6ICdhcmcpIGVsc2VcbiAgaWYgdCA8PiBPYmoubGF6eV90YWcgdGhlbiAoT2JqLm9iaiB4IDogJ2FyZylcbiAgZWxzZSBmb3JjZV9sYXp5X2Jsb2NrIGx6dlxuXG5cbmxldCBmb3JjZV92YWwgKGx6diA6ICdhcmcgbGF6eV90KSA9XG4gIGxldCB4ID0gT2JqLnJlcHIgbHp2IGluXG4gIGxldCB0ID0gT2JqLnRhZyB4IGluXG4gIGlmIHQgPSBPYmouZm9yd2FyZF90YWcgdGhlbiAoT2JqLm9iaiAoT2JqLmZpZWxkIHggMCkgOiAnYXJnKSBlbHNlXG4gIGlmIHQgPD4gT2JqLmxhenlfdGFnIHRoZW4gKE9iai5vYmogeCA6ICdhcmcpXG4gIGVsc2UgZm9yY2VfdmFsX2xhenlfYmxvY2sgbHp2XG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBEYW1pZW4gRG9saWdleiwgcHJvamV0IFBhcmEsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk3IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIE1vZHVsZSBbTGF6eV06IGRlZmVycmVkIGNvbXB1dGF0aW9ucyAqKVxuXG5cbigqXG4gICBXQVJOSU5HOiBzb21lIHB1cnBsZSBtYWdpYyBpcyBnb2luZyBvbiBoZXJlLiAgRG8gbm90IHRha2UgdGhpcyBmaWxlXG4gICBhcyBhbiBleGFtcGxlIG9mIGhvdyB0byBwcm9ncmFtIGluIE9DYW1sLlxuKilcblxuXG4oKiBXZSBtYWtlIHVzZSBvZiB0d28gc3BlY2lhbCB0YWdzIHByb3ZpZGVkIGJ5IHRoZSBydW50aW1lOlxuICAgW2xhenlfdGFnXSBhbmQgW2ZvcndhcmRfdGFnXS5cblxuICAgQSB2YWx1ZSBvZiB0eXBlIFsnYSBMYXp5LnRdIGNhbiBiZSBvbmUgb2YgdGhyZWUgdGhpbmdzOlxuICAgMS4gQSBibG9jayBvZiBzaXplIDEgd2l0aCB0YWcgW2xhenlfdGFnXS4gIEl0cyBmaWVsZCBpcyBhIGNsb3N1cmUgb2ZcbiAgICAgIHR5cGUgW3VuaXQgLT4gJ2FdIHRoYXQgY29tcHV0ZXMgdGhlIHZhbHVlLlxuICAgMi4gQSBibG9jayBvZiBzaXplIDEgd2l0aCB0YWcgW2ZvcndhcmRfdGFnXS4gIEl0cyBmaWVsZCBpcyB0aGUgdmFsdWVcbiAgICAgIG9mIHR5cGUgWydhXSB0aGF0IHdhcyBjb21wdXRlZC5cbiAgIDMuIEFueXRoaW5nIGVsc2UgZXhjZXB0IGEgZmxvYXQuICBUaGlzIGhhcyB0eXBlIFsnYV0gYW5kIGlzIHRoZSB2YWx1ZVxuICAgICAgdGhhdCB3YXMgY29tcHV0ZWQuXG4gICBFeGNlcHRpb25zIGFyZSBzdG9yZWQgaW4gZm9ybWF0ICgxKS5cbiAgIFRoZSBHQyB3aWxsIG1hZ2ljYWxseSBjaGFuZ2UgdGhpbmdzIGZyb20gKDIpIHRvICgzKSBhY2NvcmRpbmcgdG8gaXRzXG4gICBmYW5jeS5cblxuICAgSWYgT0NhbWwgd2FzIGNvbmZpZ3VyZWQgd2l0aCB0aGUgLWZsYXQtZmxvYXQtYXJyYXkgb3B0aW9uICh3aGljaCBpc1xuICAgY3VycmVudGx5IHRoZSBkZWZhdWx0KSwgdGhlIGZvbGxvd2luZyBpcyBhbHNvIHRydWU6XG4gICBXZSBjYW5ub3QgdXNlIHJlcHJlc2VudGF0aW9uICgzKSBmb3IgYSBbZmxvYXQgTGF6eS50XSBiZWNhdXNlXG4gICBbY2FtbF9tYWtlX2FycmF5XSBhc3N1bWVzIHRoYXQgb25seSBhIFtmbG9hdF0gdmFsdWUgY2FuIGhhdmUgdGFnXG4gICBbRG91YmxlX3RhZ10uXG5cbiAgIFdlIGhhdmUgdG8gdXNlIHRoZSBidWlsdC1pbiB0eXBlIGNvbnN0cnVjdG9yIFtsYXp5X3RdIHRvXG4gICBsZXQgdGhlIGNvbXBpbGVyIGltcGxlbWVudCB0aGUgc3BlY2lhbCB0eXBpbmcgYW5kIGNvbXBpbGF0aW9uXG4gICBydWxlcyBmb3IgdGhlIFtsYXp5XSBrZXl3b3JkLlxuKilcblxudHlwZSAnYSB0ID0gJ2EgQ2FtbGludGVybmFsTGF6eS50XG5cbmV4Y2VwdGlvbiBVbmRlZmluZWQgPSBDYW1saW50ZXJuYWxMYXp5LlVuZGVmaW5lZFxuXG5leHRlcm5hbCBtYWtlX2ZvcndhcmQgOiAnYSAtPiAnYSBsYXp5X3QgPSBcImNhbWxfbGF6eV9tYWtlX2ZvcndhcmRcIlxuXG5leHRlcm5hbCBmb3JjZSA6ICdhIHQgLT4gJ2EgPSBcIiVsYXp5X2ZvcmNlXCJcblxuXG5sZXQgZm9yY2VfdmFsID0gQ2FtbGludGVybmFsTGF6eS5mb3JjZV92YWxcblxubGV0IGZyb21fZnVuIChmIDogdW5pdCAtPiAnYXJnKSA9XG4gIGxldCB4ID0gT2JqLm5ld19ibG9jayBPYmoubGF6eV90YWcgMSBpblxuICBPYmouc2V0X2ZpZWxkIHggMCAoT2JqLnJlcHIgZik7XG4gIChPYmoub2JqIHggOiAnYXJnIHQpXG5cbmxldCBmcm9tX3ZhbCAodiA6ICdhcmcpID1cbiAgbGV0IHQgPSBPYmoudGFnIChPYmoucmVwciB2KSBpblxuICBpZiB0ID0gT2JqLmZvcndhcmRfdGFnIHx8IHQgPSBPYmoubGF6eV90YWcgfHwgdCA9IE9iai5kb3VibGVfdGFnIHRoZW4gYmVnaW5cbiAgICBtYWtlX2ZvcndhcmQgdlxuICBlbmQgZWxzZSBiZWdpblxuICAgIChPYmoubWFnaWMgdiA6ICdhcmcgdClcbiAgZW5kXG5cblxubGV0IGlzX3ZhbCAobCA6ICdhcmcgdCkgPSBPYmoudGFnIChPYmoucmVwciBsKSA8PiBPYmoubGF6eV90YWdcblxubGV0IGxhenlfZnJvbV9mdW4gPSBmcm9tX2Z1blxuXG5sZXQgbGF6eV9mcm9tX3ZhbCA9IGZyb21fdmFsXG5cbmxldCBsYXp5X2lzX3ZhbCA9IGlzX3ZhbFxuXG5cbmxldCBtYXAgZiB4ID1cbiAgbGF6eSAoZiAoZm9yY2UgeCkpXG5cbmxldCBtYXBfdmFsIGYgeCA9XG4gIGlmIGlzX3ZhbCB4XG4gIHRoZW4gbGF6eV9mcm9tX3ZhbCAoZiAoZm9yY2UgeCkpXG4gIGVsc2UgbGF6eSAoZiAoZm9yY2UgeCkpXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgU2ltb24gQ3J1YW5lcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDE3IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIE1vZHVsZSBbU2VxXTogZnVuY3Rpb25hbCBpdGVyYXRvcnMgKilcblxudHlwZSArJ2Egbm9kZSA9XG4gIHwgTmlsXG4gIHwgQ29ucyBvZiAnYSAqICdhIHRcblxuYW5kICdhIHQgPSB1bml0IC0+ICdhIG5vZGVcblxubGV0IGVtcHR5ICgpID0gTmlsXG5cbmxldCByZXR1cm4geCAoKSA9IENvbnMgKHgsIGVtcHR5KVxuXG5sZXQgY29ucyB4IG5leHQgKCkgPSBDb25zICh4LCBuZXh0KVxuXG5sZXQgcmVjIGFwcGVuZCBzZXExIHNlcTIgKCkgPVxuICBtYXRjaCBzZXExKCkgd2l0aFxuICB8IE5pbCAtPiBzZXEyKClcbiAgfCBDb25zICh4LCBuZXh0KSAtPiBDb25zICh4LCBhcHBlbmQgbmV4dCBzZXEyKVxuXG5sZXQgcmVjIG1hcCBmIHNlcSAoKSA9IG1hdGNoIHNlcSgpIHdpdGhcbiAgfCBOaWwgLT4gTmlsXG4gIHwgQ29ucyAoeCwgbmV4dCkgLT4gQ29ucyAoZiB4LCBtYXAgZiBuZXh0KVxuXG5sZXQgcmVjIGZpbHRlcl9tYXAgZiBzZXEgKCkgPSBtYXRjaCBzZXEoKSB3aXRoXG4gIHwgTmlsIC0+IE5pbFxuICB8IENvbnMgKHgsIG5leHQpIC0+XG4gICAgICBtYXRjaCBmIHggd2l0aFxuICAgICAgICB8IE5vbmUgLT4gZmlsdGVyX21hcCBmIG5leHQgKClcbiAgICAgICAgfCBTb21lIHkgLT4gQ29ucyAoeSwgZmlsdGVyX21hcCBmIG5leHQpXG5cbmxldCByZWMgZmlsdGVyIGYgc2VxICgpID0gbWF0Y2ggc2VxKCkgd2l0aFxuICB8IE5pbCAtPiBOaWxcbiAgfCBDb25zICh4LCBuZXh0KSAtPlxuICAgICAgaWYgZiB4XG4gICAgICB0aGVuIENvbnMgKHgsIGZpbHRlciBmIG5leHQpXG4gICAgICBlbHNlIGZpbHRlciBmIG5leHQgKClcblxubGV0IHJlYyBjb25jYXQgc2VxICgpID0gbWF0Y2ggc2VxICgpIHdpdGhcbiAgfCBOaWwgLT4gTmlsXG4gIHwgQ29ucyAoeCwgbmV4dCkgLT5cbiAgICAgYXBwZW5kIHggKGNvbmNhdCBuZXh0KSAoKVxuXG5sZXQgcmVjIGZsYXRfbWFwIGYgc2VxICgpID0gbWF0Y2ggc2VxICgpIHdpdGhcbiAgfCBOaWwgLT4gTmlsXG4gIHwgQ29ucyAoeCwgbmV4dCkgLT5cbiAgICBhcHBlbmQgKGYgeCkgKGZsYXRfbWFwIGYgbmV4dCkgKClcblxubGV0IGNvbmNhdF9tYXAgPSBmbGF0X21hcFxuXG5sZXQgcmVjIGZvbGRfbGVmdCBmIGFjYyBzZXEgPVxuICBtYXRjaCBzZXEgKCkgd2l0aFxuICAgIHwgTmlsIC0+IGFjY1xuICAgIHwgQ29ucyAoeCwgbmV4dCkgLT5cbiAgICAgICAgbGV0IGFjYyA9IGYgYWNjIHggaW5cbiAgICAgICAgZm9sZF9sZWZ0IGYgYWNjIG5leHRcblxubGV0IHJlYyBpdGVyIGYgc2VxID1cbiAgbWF0Y2ggc2VxICgpIHdpdGhcbiAgICB8IE5pbCAtPiAoKVxuICAgIHwgQ29ucyAoeCwgbmV4dCkgLT5cbiAgICAgICAgZiB4O1xuICAgICAgICBpdGVyIGYgbmV4dFxuXG5sZXQgcmVjIHVuZm9sZCBmIHUgKCkgPVxuICBtYXRjaCBmIHUgd2l0aFxuICB8IE5vbmUgLT4gTmlsXG4gIHwgU29tZSAoeCwgdScpIC0+IENvbnMgKHgsIHVuZm9sZCBmIHUnKVxuXG5sZXQgaXNfZW1wdHkgeHMgPVxuICBtYXRjaCB4cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgIHRydWVcbiAgfCBDb25zIChfLCBfKSAtPlxuICAgICAgZmFsc2VcblxubGV0IHVuY29ucyB4cyA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgU29tZSAoeCwgeHMpXG4gIHwgTmlsIC0+XG4gICAgICBOb25lXG5cblxuXG5sZXQgcmVjIGxlbmd0aF9hdXggYWNjdSB4cyA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgYWNjdVxuICB8IENvbnMgKF8sIHhzKSAtPlxuICAgICAgbGVuZ3RoX2F1eCAoYWNjdSArIDEpIHhzXG5cbmxldFtAaW5saW5lXSBsZW5ndGggeHMgPVxuICBsZW5ndGhfYXV4IDAgeHNcblxubGV0IHJlYyBpdGVyaV9hdXggZiBpIHhzID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICAoKVxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgZiBpIHg7XG4gICAgICBpdGVyaV9hdXggZiAoaSsxKSB4c1xuXG5sZXRbQGlubGluZV0gaXRlcmkgZiB4cyA9XG4gIGl0ZXJpX2F1eCBmIDAgeHNcblxubGV0IHJlYyBmb2xkX2xlZnRpX2F1eCBmIGFjY3UgaSB4cyA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgYWNjdVxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgbGV0IGFjY3UgPSBmIGFjY3UgaSB4IGluXG4gICAgICBmb2xkX2xlZnRpX2F1eCBmIGFjY3UgKGkrMSkgeHNcblxubGV0W0BpbmxpbmVdIGZvbGRfbGVmdGkgZiBhY2N1IHhzID1cbiAgZm9sZF9sZWZ0aV9hdXggZiBhY2N1IDAgeHNcblxubGV0IHJlYyBmb3JfYWxsIHAgeHMgPVxuICBtYXRjaCB4cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgIHRydWVcbiAgfCBDb25zICh4LCB4cykgLT5cbiAgICAgIHAgeCAmJiBmb3JfYWxsIHAgeHNcblxubGV0IHJlYyBleGlzdHMgcCB4cyA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgZmFsc2VcbiAgfCBDb25zICh4LCB4cykgLT5cbiAgICAgIHAgeCB8fCBleGlzdHMgcCB4c1xuXG5sZXQgcmVjIGZpbmQgcCB4cyA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgTm9uZVxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgaWYgcCB4IHRoZW4gU29tZSB4IGVsc2UgZmluZCBwIHhzXG5cbmxldCByZWMgZmluZF9tYXAgZiB4cyA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgTm9uZVxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgbWF0Y2ggZiB4IHdpdGhcbiAgICAgIHwgTm9uZSAtPlxuICAgICAgICAgIGZpbmRfbWFwIGYgeHNcbiAgICAgIHwgU29tZSBfIGFzIHJlc3VsdCAtPlxuICAgICAgICAgIHJlc3VsdFxuXG4oKiBbaXRlcjJdLCBbZm9sZF9sZWZ0Ml0sIFtmb3JfYWxsMl0sIFtleGlzdHMyXSwgW21hcDJdLCBbemlwXSB3b3JrIGFsc28gaW5cbiAgIHRoZSBjYXNlIHdoZXJlIHRoZSB0d28gc2VxdWVuY2VzIGhhdmUgZGlmZmVyZW50IGxlbmd0aHMuIFRoZXkgc3RvcCBhcyBzb29uXG4gICBhcyBvbmUgc2VxdWVuY2UgaXMgZXhoYXVzdGVkLiBUaGVpciBiZWhhdmlvciBpcyBzbGlnaHRseSBhc3ltbWV0cmljOiB3aGVuXG4gICBbeHNdIGlzIGVtcHR5LCB0aGV5IGRvIG5vdCBmb3JjZSBbeXNdOyBob3dldmVyLCB3aGVuIFt5c10gaXMgZW1wdHksIFt4c10gaXNcbiAgIGZvcmNlZCwgZXZlbiB0aG91Z2ggdGhlIHJlc3VsdCBvZiB0aGUgZnVuY3Rpb24gYXBwbGljYXRpb24gW3hzKCldIHR1cm5zIG91dFxuICAgdG8gYmUgdXNlbGVzcy4gKilcblxubGV0IHJlYyBpdGVyMiBmIHhzIHlzID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICAoKVxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgbWF0Y2ggeXMoKSB3aXRoXG4gICAgICB8IE5pbCAtPlxuICAgICAgICAgICgpXG4gICAgICB8IENvbnMgKHksIHlzKSAtPlxuICAgICAgICAgIGYgeCB5O1xuICAgICAgICAgIGl0ZXIyIGYgeHMgeXNcblxubGV0IHJlYyBmb2xkX2xlZnQyIGYgYWNjdSB4cyB5cyA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgYWNjdVxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgbWF0Y2ggeXMoKSB3aXRoXG4gICAgICB8IE5pbCAtPlxuICAgICAgICAgIGFjY3VcbiAgICAgIHwgQ29ucyAoeSwgeXMpIC0+XG4gICAgICAgICAgbGV0IGFjY3UgPSBmIGFjY3UgeCB5IGluXG4gICAgICAgICAgZm9sZF9sZWZ0MiBmIGFjY3UgeHMgeXNcblxubGV0IHJlYyBmb3JfYWxsMiBmIHhzIHlzID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICB0cnVlXG4gIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICBtYXRjaCB5cygpIHdpdGhcbiAgICAgIHwgTmlsIC0+XG4gICAgICAgICAgdHJ1ZVxuICAgICAgfCBDb25zICh5LCB5cykgLT5cbiAgICAgICAgICBmIHggeSAmJiBmb3JfYWxsMiBmIHhzIHlzXG5cbmxldCByZWMgZXhpc3RzMiBmIHhzIHlzID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICBmYWxzZVxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgbWF0Y2ggeXMoKSB3aXRoXG4gICAgICB8IE5pbCAtPlxuICAgICAgICAgIGZhbHNlXG4gICAgICB8IENvbnMgKHksIHlzKSAtPlxuICAgICAgICAgIGYgeCB5IHx8IGV4aXN0czIgZiB4cyB5c1xuXG5sZXQgcmVjIGVxdWFsIGVxIHhzIHlzID1cbiAgbWF0Y2ggeHMoKSwgeXMoKSB3aXRoXG4gIHwgTmlsLCBOaWwgLT5cbiAgICAgIHRydWVcbiAgfCBDb25zICh4LCB4cyksIENvbnMgKHksIHlzKSAtPlxuICAgICAgZXEgeCB5ICYmIGVxdWFsIGVxIHhzIHlzXG4gIHwgTmlsLCBDb25zIChfLCBfKVxuICB8IENvbnMgKF8sIF8pLCBOaWwgLT5cbiAgICAgIGZhbHNlXG5cbmxldCByZWMgY29tcGFyZSBjbXAgeHMgeXMgPVxuICBtYXRjaCB4cygpLCB5cygpIHdpdGhcbiAgfCBOaWwsIE5pbCAtPlxuICAgICAgMFxuICB8IENvbnMgKHgsIHhzKSwgQ29ucyAoeSwgeXMpIC0+XG4gICAgICBsZXQgYyA9IGNtcCB4IHkgaW5cbiAgICAgIGlmIGMgPD4gMCB0aGVuIGMgZWxzZSBjb21wYXJlIGNtcCB4cyB5c1xuICB8IE5pbCwgQ29ucyAoXywgXykgLT5cbiAgICAgIC0xXG4gIHwgQ29ucyAoXywgXyksIE5pbCAtPlxuICAgICAgKzFcblxuXG5cbigqIFtpbml0X2F1eCBmIGkgal0gaXMgdGhlIHNlcXVlbmNlIFtmIGksIC4uLiwgZiAoai0xKV0uICopXG5cbmxldCByZWMgaW5pdF9hdXggZiBpIGogKCkgPVxuICBpZiBpIDwgaiB0aGVuIGJlZ2luXG4gICAgQ29ucyAoZiBpLCBpbml0X2F1eCBmIChpICsgMSkgailcbiAgZW5kXG4gIGVsc2VcbiAgICBOaWxcblxubGV0IGluaXQgbiBmID1cbiAgaWYgbiA8IDAgdGhlblxuICAgIGludmFsaWRfYXJnIFwiU2VxLmluaXRcIlxuICBlbHNlXG4gICAgaW5pdF9hdXggZiAwIG5cblxubGV0IHJlYyByZXBlYXQgeCAoKSA9XG4gIENvbnMgKHgsIHJlcGVhdCB4KVxuXG5sZXQgcmVjIGZvcmV2ZXIgZiAoKSA9XG4gIENvbnMgKGYoKSwgZm9yZXZlciBmKVxuXG4oKiBUaGlzIHByZWxpbWluYXJ5IGRlZmluaXRpb24gb2YgW2N5Y2xlXSByZXF1aXJlcyB0aGUgc2VxdWVuY2UgW3hzXVxuICAgdG8gYmUgbm9uZW1wdHkuIEFwcGx5aW5nIGl0IHRvIGFuIGVtcHR5IHNlcXVlbmNlIHdvdWxkIHByb2R1Y2UgYVxuICAgc2VxdWVuY2UgdGhhdCBkaXZlcmdlcyB3aGVuIGl0IGlzIGZvcmNlZC4gKilcblxubGV0IHJlYyBjeWNsZV9ub25lbXB0eSB4cyAoKSA9XG4gIGFwcGVuZCB4cyAoY3ljbGVfbm9uZW1wdHkgeHMpICgpXG5cbigqIFtjeWNsZSB4c10gY2hlY2tzIHdoZXRoZXIgW3hzXSBpcyBlbXB0eSBhbmQsIGlmIHNvLCByZXR1cm5zIGFuIGVtcHR5XG4gICBzZXF1ZW5jZS4gT3RoZXJ3aXNlLCBbY3ljbGUgeHNdIHByb2R1Y2VzIG9uZSBjb3B5IG9mIFt4c10gZm9sbG93ZWRcbiAgIHdpdGggdGhlIGluZmluaXRlIHNlcXVlbmNlIFtjeWNsZV9ub25lbXB0eSB4c10uIFRodXMsIHRoZSBub25lbXB0aW5lc3NcbiAgIGNoZWNrIGlzIHBlcmZvcm1lZCBqdXN0IG9uY2UuICopXG5cbmxldCBjeWNsZSB4cyAoKSA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgTmlsXG4gIHwgQ29ucyAoeCwgeHMnKSAtPlxuICAgICAgQ29ucyAoeCwgYXBwZW5kIHhzJyAoY3ljbGVfbm9uZW1wdHkgeHMpKVxuXG4oKiBbaXRlcmF0ZTEgZiB4XSBpcyB0aGUgc2VxdWVuY2UgW2YgeCwgZiAoZiB4KSwgLi4uXS5cbiAgIEl0IGlzIGVxdWl2YWxlbnQgdG8gW3RhaWwgKGl0ZXJhdGUgZiB4KV0uXG4gICBbaXRlcmF0ZTFdIGlzIHVzZWQgYXMgYSBidWlsZGluZyBibG9jayBpbiB0aGUgZGVmaW5pdGlvbiBvZiBbaXRlcmF0ZV0uICopXG5cbmxldCByZWMgaXRlcmF0ZTEgZiB4ICgpID1cbiAgbGV0IHkgPSBmIHggaW5cbiAgQ29ucyAoeSwgaXRlcmF0ZTEgZiB5KVxuXG4oKiBbaXRlcmF0ZSBmIHhdIGlzIHRoZSBzZXF1ZW5jZSBbeCwgZiB4LCAuLi5dLiAqKVxuXG4oKiBUaGUgcmVhc29uIHdoeSB3ZSBnaXZlIHRoaXMgc2xpZ2h0bHkgaW5kaXJlY3QgZGVmaW5pdGlvbiBvZiBbaXRlcmF0ZV0sXG4gICBhcyBvcHBvc2VkIHRvIHRoZSBtb3JlIG5haXZlIGRlZmluaXRpb24gdGhhdCBtYXkgY29tZSB0byBtaW5kLCBpcyB0aGF0XG4gICB3ZSBhcmUgY2FyZWZ1bCB0byBhdm9pZCBldmFsdWF0aW5nIFtmIHhdIHVudGlsIHRoaXMgZnVuY3Rpb24gY2FsbCBpc1xuICAgYWN0dWFsbHkgbmVjZXNzYXJ5LiBUaGUgbmFpdmUgZGVmaW5pdGlvbiAobm90IHNob3duIGhlcmUpIGNvbXB1dGVzIHRoZVxuICAgc2Vjb25kIGFyZ3VtZW50IG9mIHRoZSBzZXF1ZW5jZSwgW2YgeF0sIHdoZW4gdGhlIGZpcnN0IGFyZ3VtZW50IGlzXG4gICByZXF1ZXN0ZWQgYnkgdGhlIHVzZXIuICopXG5cbmxldCBpdGVyYXRlIGYgeCA9XG4gIGNvbnMgeCAoaXRlcmF0ZTEgZiB4KVxuXG5cblxubGV0IHJlYyBtYXBpX2F1eCBmIGkgeHMgKCkgPVxuICBtYXRjaCB4cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgIE5pbFxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgQ29ucyAoZiBpIHgsIG1hcGlfYXV4IGYgKGkrMSkgeHMpXG5cbmxldFtAaW5saW5lXSBtYXBpIGYgeHMgPVxuICBtYXBpX2F1eCBmIDAgeHNcblxuKCogW3RhaWxfc2NhbiBmIHMgeHNdIGlzIGVxdWl2YWxlbnQgdG8gW3RhaWwgKHNjYW4gZiBzIHhzKV0uXG4gICBbdGFpbF9zY2FuXSBpcyB1c2VkIGFzIGEgYnVpbGRpbmcgYmxvY2sgaW4gdGhlIGRlZmluaXRpb24gb2YgW3NjYW5dLiAqKVxuXG4oKiBUaGlzIHNsaWdodGx5IGluZGlyZWN0IGRlZmluaXRpb24gb2YgW3NjYW5dIGlzIG1lYW50IHRvIGF2b2lkIGNvbXB1dGluZ1xuICAgZWxlbWVudHMgdG9vIGVhcmx5OyBzZWUgdGhlIGFib3ZlIGNvbW1lbnQgYWJvdXQgW2l0ZXJhdGUxXSBhbmQgW2l0ZXJhdGVdLiAqKVxuXG5sZXQgcmVjIHRhaWxfc2NhbiBmIHMgeHMgKCkgPVxuICBtYXRjaCB4cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgIE5pbFxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgbGV0IHMgPSBmIHMgeCBpblxuICAgICAgQ29ucyAocywgdGFpbF9zY2FuIGYgcyB4cylcblxubGV0IHNjYW4gZiBzIHhzID1cbiAgY29ucyBzICh0YWlsX3NjYW4gZiBzIHhzKVxuXG4oKiBbdGFrZV0gaXMgZGVmaW5lZCBpbiBzdWNoIGEgd2F5IHRoYXQgW3Rha2UgMCB4c10gcmV0dXJucyBbZW1wdHldXG4gICBpbW1lZGlhdGVseSwgd2l0aG91dCBhbGxvY2F0aW5nIGFueSBtZW1vcnkuICopXG5cbmxldCByZWMgdGFrZV9hdXggbiB4cyA9XG4gIGlmIG4gPSAwIHRoZW5cbiAgICBlbXB0eVxuICBlbHNlXG4gICAgZnVuICgpIC0+XG4gICAgICBtYXRjaCB4cygpIHdpdGhcbiAgICAgIHwgTmlsIC0+XG4gICAgICAgICAgTmlsXG4gICAgICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgICAgIENvbnMgKHgsIHRha2VfYXV4IChuLTEpIHhzKVxuXG5sZXQgdGFrZSBuIHhzID1cbiAgaWYgbiA8IDAgdGhlbiBpbnZhbGlkX2FyZyBcIlNlcS50YWtlXCI7XG4gIHRha2VfYXV4IG4geHNcblxuKCogW2ZvcmNlX2Ryb3AgbiB4c10gaXMgZXF1aXZhbGVudCB0byBbZHJvcCBuIHhzICgpXS5cbiAgIFtmb3JjZV9kcm9wIG4geHNdIHJlcXVpcmVzIFtuID4gMF0uXG4gICBbZm9yY2VfZHJvcF0gaXMgdXNlZCBhcyBhIGJ1aWxkaW5nIGJsb2NrIGluIHRoZSBkZWZpbml0aW9uIG9mIFtkcm9wXS4gKilcblxubGV0IHJlYyBmb3JjZV9kcm9wIG4geHMgPVxuICBtYXRjaCB4cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgIE5pbFxuICB8IENvbnMgKF8sIHhzKSAtPlxuICAgICAgbGV0IG4gPSBuIC0gMSBpblxuICAgICAgaWYgbiA9IDAgdGhlblxuICAgICAgICB4cygpXG4gICAgICBlbHNlXG4gICAgICAgIGZvcmNlX2Ryb3AgbiB4c1xuXG4oKiBbZHJvcF0gaXMgZGVmaW5lZCBpbiBzdWNoIGEgd2F5IHRoYXQgW2Ryb3AgMCB4c10gcmV0dXJucyBbeHNdIGltbWVkaWF0ZWx5LFxuICAgd2l0aG91dCBhbGxvY2F0aW5nIGFueSBtZW1vcnkuICopXG5cbmxldCBkcm9wIG4geHMgPVxuICBpZiBuIDwgMCB0aGVuIGludmFsaWRfYXJnIFwiU2VxLmRyb3BcIlxuICBlbHNlIGlmIG4gPSAwIHRoZW5cbiAgICB4c1xuICBlbHNlXG4gICAgZnVuICgpIC0+XG4gICAgICBmb3JjZV9kcm9wIG4geHNcblxubGV0IHJlYyB0YWtlX3doaWxlIHAgeHMgKCkgPVxuICBtYXRjaCB4cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgIE5pbFxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgaWYgcCB4IHRoZW4gQ29ucyAoeCwgdGFrZV93aGlsZSBwIHhzKSBlbHNlIE5pbFxuXG5sZXQgcmVjIGRyb3Bfd2hpbGUgcCB4cyAoKSA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgTmlsXG4gIHwgQ29ucyAoeCwgeHMpIGFzIG5vZGUgLT5cbiAgICAgIGlmIHAgeCB0aGVuIGRyb3Bfd2hpbGUgcCB4cyAoKSBlbHNlIG5vZGVcblxubGV0IHJlYyBncm91cCBlcSB4cyAoKSA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgTmlsXG4gIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICBDb25zIChjb25zIHggKHRha2Vfd2hpbGUgKGVxIHgpIHhzKSwgZ3JvdXAgZXEgKGRyb3Bfd2hpbGUgKGVxIHgpIHhzKSlcblxuZXhjZXB0aW9uIEZvcmNlZF90d2ljZVxuXG5tb2R1bGUgU3VzcGVuc2lvbiA9IHN0cnVjdFxuXG4gIHR5cGUgJ2Egc3VzcGVuc2lvbiA9XG4gICAgdW5pdCAtPiAnYVxuXG4gICgqIENvbnZlcnNpb25zLiAqKVxuXG4gIGxldCB0b19sYXp5IDogJ2Egc3VzcGVuc2lvbiAtPiAnYSBMYXp5LnQgPVxuICAgIExhenkuZnJvbV9mdW5cbiAgICAoKiBmdW4gcyAtPiBsYXp5IChzKCkpICopXG5cbiAgbGV0IGZyb21fbGF6eSAocyA6ICdhIExhenkudCkgOiAnYSBzdXNwZW5zaW9uID1cbiAgICBmdW4gKCkgLT4gTGF6eS5mb3JjZSBzXG5cbiAgKCogW21lbW9pemVdIHR1cm5zIGFuIGFyYml0cmFyeSBzdXNwZW5zaW9uIGludG8gYSBwZXJzaXN0ZW50IHN1c3BlbnNpb24uICopXG5cbiAgbGV0IG1lbW9pemUgKHMgOiAnYSBzdXNwZW5zaW9uKSA6ICdhIHN1c3BlbnNpb24gPVxuICAgIGZyb21fbGF6eSAodG9fbGF6eSBzKVxuXG4gICgqIFtmYWlsdXJlXSBpcyBhIHN1c3BlbnNpb24gdGhhdCBmYWlscyB3aGVuIGZvcmNlZC4gKilcblxuICBsZXQgZmFpbHVyZSA6IF8gc3VzcGVuc2lvbiA9XG4gICAgZnVuICgpIC0+XG4gICAgICAoKiBBIHN1c3BlbnNpb24gY3JlYXRlZCBieSBbb25jZV0gaGFzIGJlZW4gZm9yY2VkIHR3aWNlLiAqKVxuICAgICAgcmFpc2UgRm9yY2VkX3R3aWNlXG5cbiAgKCogSWYgW2ZdIGlzIGEgc3VzcGVuc2lvbiwgdGhlbiBbb25jZSBmXSBpcyBhIHN1c3BlbnNpb24gdGhhdCBjYW4gYmUgZm9yY2VkXG4gICAgIGF0IG1vc3Qgb25jZS4gSWYgaXQgaXMgZm9yY2VkIG1vcmUgdGhhbiBvbmNlLCB0aGVuIFtGb3JjZWRfdHdpY2VdIGlzXG4gICAgIHJhaXNlZC4gKilcblxuICBsZXQgb25jZSAoZiA6ICdhIHN1c3BlbnNpb24pIDogJ2Egc3VzcGVuc2lvbiA9XG4gICAgbGV0IGFjdGlvbiA9IENhbWxpbnRlcm5hbEF0b21pYy5tYWtlIGYgaW5cbiAgICBmdW4gKCkgLT5cbiAgICAgICgqIEdldCB0aGUgZnVuY3Rpb24gY3VycmVudGx5IHN0b3JlZCBpbiBbYWN0aW9uXSwgYW5kIHdyaXRlIHRoZVxuICAgICAgICAgZnVuY3Rpb24gW2ZhaWx1cmVdIGluIGl0cyBwbGFjZSwgc28gdGhlIG5leHQgYWNjZXNzIHdpbGwgcmVzdWx0XG4gICAgICAgICBpbiBhIGNhbGwgdG8gW2ZhaWx1cmUoKV0uICopXG4gICAgICBsZXQgZiA9IENhbWxpbnRlcm5hbEF0b21pYy5leGNoYW5nZSBhY3Rpb24gZmFpbHVyZSBpblxuICAgICAgZigpXG5cbmVuZCAoKiBTdXNwZW5zaW9uICopXG5cbmxldCByZWMgbWVtb2l6ZSB4cyA9XG4gIFN1c3BlbnNpb24ubWVtb2l6ZSAoZnVuICgpIC0+XG4gICAgbWF0Y2ggeHMoKSB3aXRoXG4gICAgfCBOaWwgLT5cbiAgICAgICAgTmlsXG4gICAgfCBDb25zICh4LCB4cykgLT5cbiAgICAgICAgQ29ucyAoeCwgbWVtb2l6ZSB4cylcbiAgKVxuXG5sZXQgcmVjIG9uY2UgeHMgPVxuICBTdXNwZW5zaW9uLm9uY2UgKGZ1biAoKSAtPlxuICAgIG1hdGNoIHhzKCkgd2l0aFxuICAgIHwgTmlsIC0+XG4gICAgICAgIE5pbFxuICAgIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICAgIENvbnMgKHgsIG9uY2UgeHMpXG4gIClcblxuXG5sZXQgcmVjIHppcCB4cyB5cyAoKSA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgTmlsXG4gIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICBtYXRjaCB5cygpIHdpdGhcbiAgICAgIHwgTmlsIC0+XG4gICAgICAgICAgTmlsXG4gICAgICB8IENvbnMgKHksIHlzKSAtPlxuICAgICAgICAgIENvbnMgKCh4LCB5KSwgemlwIHhzIHlzKVxuXG5sZXQgcmVjIG1hcDIgZiB4cyB5cyAoKSA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgTmlsXG4gIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICBtYXRjaCB5cygpIHdpdGhcbiAgICAgIHwgTmlsIC0+XG4gICAgICAgICAgTmlsXG4gICAgICB8IENvbnMgKHksIHlzKSAtPlxuICAgICAgICAgIENvbnMgKGYgeCB5LCBtYXAyIGYgeHMgeXMpXG5cbmxldCByZWMgaW50ZXJsZWF2ZSB4cyB5cyAoKSA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgeXMoKVxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgQ29ucyAoeCwgaW50ZXJsZWF2ZSB5cyB4cylcblxuKCogW3NvcnRlZF9tZXJnZTFsIGNtcCB4IHhzIHlzXSBpcyBlcXVpdmFsZW50IHRvXG4gICAgIFtzb3J0ZWRfbWVyZ2UgY21wIChjb25zIHggeHMpIHlzXS5cblxuICAgW3NvcnRlZF9tZXJnZTFyIGNtcCB4cyB5IHlzXSBpcyBlcXVpdmFsZW50IHRvXG4gICAgIFtzb3J0ZWRfbWVyZ2UgY21wIHhzIChjb25zIHkgeXMpXS5cblxuICAgW3NvcnRlZF9tZXJnZTEgY21wIHggeHMgeSB5c10gaXMgZXF1aXZhbGVudCB0b1xuICAgICBbc29ydGVkX21lcmdlIGNtcCAoY29ucyB4IHhzKSAoY29ucyB5IHlzKV0uXG5cbiAgIFRoZXNlIHRocmVlIGZ1bmN0aW9ucyBhcmUgdXNlZCBhcyBidWlsZGluZyBibG9ja3MgaW4gdGhlIGRlZmluaXRpb25cbiAgIG9mIFtzb3J0ZWRfbWVyZ2VdLiAqKVxuXG5sZXQgcmVjIHNvcnRlZF9tZXJnZTFsIGNtcCB4IHhzIHlzICgpID1cbiAgbWF0Y2ggeXMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICBDb25zICh4LCB4cylcbiAgfCBDb25zICh5LCB5cykgLT5cbiAgICAgIHNvcnRlZF9tZXJnZTEgY21wIHggeHMgeSB5c1xuXG5hbmQgc29ydGVkX21lcmdlMXIgY21wIHhzIHkgeXMgKCkgPVxuICBtYXRjaCB4cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgIENvbnMgKHksIHlzKVxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgc29ydGVkX21lcmdlMSBjbXAgeCB4cyB5IHlzXG5cbmFuZCBzb3J0ZWRfbWVyZ2UxIGNtcCB4IHhzIHkgeXMgPVxuICBpZiBjbXAgeCB5IDw9IDAgdGhlblxuICAgIENvbnMgKHgsIHNvcnRlZF9tZXJnZTFyIGNtcCB4cyB5IHlzKVxuICBlbHNlXG4gICAgQ29ucyAoeSwgc29ydGVkX21lcmdlMWwgY21wIHggeHMgeXMpXG5cbmxldCBzb3J0ZWRfbWVyZ2UgY21wIHhzIHlzICgpID1cbiAgbWF0Y2ggeHMoKSwgeXMoKSB3aXRoXG4gICAgfCBOaWwsIE5pbCAtPlxuICAgICAgICBOaWxcbiAgICB8IE5pbCwgY1xuICAgIHwgYywgTmlsIC0+XG4gICAgICAgIGNcbiAgICB8IENvbnMgKHgsIHhzKSwgQ29ucyAoeSwgeXMpIC0+XG4gICAgICAgIHNvcnRlZF9tZXJnZTEgY21wIHggeHMgeSB5c1xuXG5cbmxldCByZWMgbWFwX2ZzdCB4eXMgKCkgPVxuICBtYXRjaCB4eXMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICBOaWxcbiAgfCBDb25zICgoeCwgXyksIHh5cykgLT5cbiAgICAgIENvbnMgKHgsIG1hcF9mc3QgeHlzKVxuXG5sZXQgcmVjIG1hcF9zbmQgeHlzICgpID1cbiAgbWF0Y2ggeHlzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgTmlsXG4gIHwgQ29ucyAoKF8sIHkpLCB4eXMpIC0+XG4gICAgICBDb25zICh5LCBtYXBfc25kIHh5cylcblxubGV0IHVuemlwIHh5cyA9XG4gIG1hcF9mc3QgeHlzLCBtYXBfc25kIHh5c1xuXG5sZXQgc3BsaXQgPVxuICB1bnppcFxuXG4oKiBbZmlsdGVyX21hcF9maW5kX2xlZnRfbWFwIGYgeHNdIGlzIGVxdWl2YWxlbnQgdG9cbiAgIFtmaWx0ZXJfbWFwIEVpdGhlci5maW5kX2xlZnQgKG1hcCBmIHhzKV0uICopXG5cbmxldCByZWMgZmlsdGVyX21hcF9maW5kX2xlZnRfbWFwIGYgeHMgKCkgPVxuICBtYXRjaCB4cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgIE5pbFxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgbWF0Y2ggZiB4IHdpdGhcbiAgICAgIHwgRWl0aGVyLkxlZnQgeSAtPlxuICAgICAgICAgIENvbnMgKHksIGZpbHRlcl9tYXBfZmluZF9sZWZ0X21hcCBmIHhzKVxuICAgICAgfCBFaXRoZXIuUmlnaHQgXyAtPlxuICAgICAgICAgIGZpbHRlcl9tYXBfZmluZF9sZWZ0X21hcCBmIHhzICgpXG5cbmxldCByZWMgZmlsdGVyX21hcF9maW5kX3JpZ2h0X21hcCBmIHhzICgpID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICBOaWxcbiAgfCBDb25zICh4LCB4cykgLT5cbiAgICAgIG1hdGNoIGYgeCB3aXRoXG4gICAgICB8IEVpdGhlci5MZWZ0IF8gLT5cbiAgICAgICAgICBmaWx0ZXJfbWFwX2ZpbmRfcmlnaHRfbWFwIGYgeHMgKClcbiAgICAgIHwgRWl0aGVyLlJpZ2h0IHogLT5cbiAgICAgICAgICBDb25zICh6LCBmaWx0ZXJfbWFwX2ZpbmRfcmlnaHRfbWFwIGYgeHMpXG5cbmxldCBwYXJ0aXRpb25fbWFwIGYgeHMgPVxuICBmaWx0ZXJfbWFwX2ZpbmRfbGVmdF9tYXAgZiB4cyxcbiAgZmlsdGVyX21hcF9maW5kX3JpZ2h0X21hcCBmIHhzXG5cbmxldCBwYXJ0aXRpb24gcCB4cyA9XG4gIGZpbHRlciBwIHhzLCBmaWx0ZXIgKGZ1biB4IC0+IG5vdCAocCB4KSkgeHNcblxuKCogSWYgW3hzc10gaXMgYSBtYXRyaXggKGEgc2VxdWVuY2Ugb2Ygcm93cyksIHRoZW4gW3BlZWwgeHNzXSBpcyBhIHBhaXIgb2ZcbiAgIHRoZSBmaXJzdCBjb2x1bW4gKGEgc2VxdWVuY2Ugb2YgZWxlbWVudHMpIGFuZCBvZiB0aGUgcmVtYWluZGVyIG9mIHRoZVxuICAgbWF0cml4IChhIHNlcXVlbmNlIG9mIHNob3J0ZXIgcm93cykuIFRoZXNlIHR3byBzZXF1ZW5jZXMgaGF2ZSB0aGUgc2FtZVxuICAgbGVuZ3RoLiBUaGUgcm93cyBvZiB0aGUgbWF0cml4IFt4c3NdIGFyZSBub3QgcmVxdWlyZWQgdG8gaGF2ZSB0aGUgc2FtZVxuICAgbGVuZ3RoLiBBbiBlbXB0eSByb3cgaXMgaWdub3JlZC4gKilcblxuKCogQmVjYXVzZSBbcGVlbF0gdXNlcyBbdW56aXBdLCBpdHMgYXJndW1lbnQgbXVzdCBiZSBwZXJzaXN0ZW50LiBUaGUgc2FtZVxuICAgcmVtYXJrIGFwcGxpZXMgdG8gW3RyYW5zcG9zZV0sIFtkaWFnb25hbHNdLCBbcHJvZHVjdF0sIGV0Yy4gKilcblxubGV0IHBlZWwgeHNzID1cbiAgdW56aXAgKGZpbHRlcl9tYXAgdW5jb25zIHhzcylcblxubGV0IHJlYyB0cmFuc3Bvc2UgeHNzICgpID1cbiAgbGV0IGhlYWRzLCB0YWlscyA9IHBlZWwgeHNzIGluXG4gIGlmIGlzX2VtcHR5IGhlYWRzIHRoZW4gYmVnaW5cbiAgICBhc3NlcnQgKGlzX2VtcHR5IHRhaWxzKTtcbiAgICBOaWxcbiAgZW5kXG4gIGVsc2VcbiAgICBDb25zIChoZWFkcywgdHJhbnNwb3NlIHRhaWxzKVxuXG4oKiBUaGUgaW50ZXJuYWwgZnVuY3Rpb24gW2RpYWdvbmFsc10gdGFrZXMgYW4gZXh0cmEgYXJndW1lbnQsIFtyZW1haW5kZXJzXSxcbiAgIHdoaWNoIGNvbnRhaW5zIHRoZSByZW1haW5kZXJzIG9mIHRoZSByb3dzIHRoYXQgaGF2ZSBhbHJlYWR5IGJlZW5cbiAgIGRpc2NvdmVyZWQuICopXG5cbmxldCByZWMgZGlhZ29uYWxzIHJlbWFpbmRlcnMgeHNzICgpID1cbiAgbWF0Y2ggeHNzKCkgd2l0aFxuICB8IENvbnMgKHhzLCB4c3MpIC0+XG4gICAgICBiZWdpbiBtYXRjaCB4cygpIHdpdGhcbiAgICAgIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICAgICAgKCogV2UgZGlzY292ZXIgYSBuZXcgbm9uZW1wdHkgcm93IFt4IDo6IHhzXS4gVGh1cywgdGhlIG5leHQgZGlhZ29uYWxcbiAgICAgICAgICAgICBpcyBbeCA6OiBoZWFkc106IHRoaXMgZGlhZ29uYWwgYmVnaW5zIHdpdGggW3hdIGFuZCBjb250aW51ZXMgd2l0aFxuICAgICAgICAgICAgIHRoZSBmaXJzdCBlbGVtZW50IG9mIGV2ZXJ5IHJvdyBpbiBbcmVtYWluZGVyc10uIEluIHRoZSByZWN1cnNpdmVcbiAgICAgICAgICAgICBjYWxsLCB0aGUgYXJndW1lbnQgW3JlbWFpbmRlcnNdIGlzIGluc3RhbnRpYXRlZCB3aXRoIFt4cyA6OlxuICAgICAgICAgICAgIHRhaWxzXSwgd2hpY2ggbWVhbnMgdGhhdCB3ZSBoYXZlIG9uZSBtb3JlIHJlbWFpbmluZyByb3csIFt4c10sXG4gICAgICAgICAgICAgYW5kIHRoYXQgd2Uga2VlcCB0aGUgdGFpbHMgb2YgdGhlIHByZS1leGlzdGluZyByZW1haW5pbmcgcm93cy4gKilcbiAgICAgICAgICBsZXQgaGVhZHMsIHRhaWxzID0gcGVlbCByZW1haW5kZXJzIGluXG4gICAgICAgICAgQ29ucyAoY29ucyB4IGhlYWRzLCBkaWFnb25hbHMgKGNvbnMgeHMgdGFpbHMpIHhzcylcbiAgICAgIHwgTmlsIC0+XG4gICAgICAgICAgKCogV2UgZGlzY292ZXIgYSBuZXcgZW1wdHkgcm93LiBJbiB0aGlzIGNhc2UsIHRoZSBuZXcgZGlhZ29uYWwgaXNcbiAgICAgICAgICAgICBqdXN0IFtoZWFkc10sIGFuZCBbcmVtYWluZGVyc10gaXMgaW5zdGFudGlhdGVkIHdpdGgganVzdCBbdGFpbHNdLFxuICAgICAgICAgICAgIGFzIHdlIGRvIG5vdCBoYXZlIG9uZSBtb3JlIHJlbWFpbmluZyByb3cuICopXG4gICAgICAgICAgbGV0IGhlYWRzLCB0YWlscyA9IHBlZWwgcmVtYWluZGVycyBpblxuICAgICAgICAgIENvbnMgKGhlYWRzLCBkaWFnb25hbHMgdGFpbHMgeHNzKVxuICAgICAgZW5kXG4gIHwgTmlsIC0+XG4gICAgICAoKiBUaGVyZSBhcmUgbm8gbW9yZSByb3dzIHRvIGJlIGRpc2NvdmVyZWQuIFRoZXJlIHJlbWFpbnMgdG8gZXhoYXVzdFxuICAgICAgICAgdGhlIHJlbWFpbmluZyByb3dzLiAqKVxuICAgICAgdHJhbnNwb3NlIHJlbWFpbmRlcnMgKClcblxuKCogSWYgW3hzc10gaXMgYSBtYXRyaXggKGEgc2VxdWVuY2Ugb2Ygcm93cyksIHRoZW4gW2RpYWdvbmFscyB4c3NdIGlzXG4gICB0aGUgc2VxdWVuY2Ugb2YgaXRzIGRpYWdvbmFscy5cblxuICAgVGhlIGZpcnN0IGRpYWdvbmFsIGNvbnRhaW5zIGp1c3QgdGhlIGZpcnN0IGVsZW1lbnQgb2YgdGhlXG4gICBmaXJzdCByb3cuIFRoZSBzZWNvbmQgZGlhZ29uYWwgY29udGFpbnMgdGhlIGZpcnN0IGVsZW1lbnQgb2YgdGhlXG4gICBzZWNvbmQgcm93IGFuZCB0aGUgc2Vjb25kIGVsZW1lbnQgb2YgdGhlIGZpcnN0IHJvdzsgYW5kIHNvIG9uLlxuICAgVGhpcyBraW5kIG9mIGRpYWdvbmFsIGlzIGluIGZhY3Qgc29tZXRpbWVzIGtub3duIGFzIGFuIGFudGlkaWFnb25hbC5cblxuICAgLSBFdmVyeSBkaWFnb25hbCBpcyBhIGZpbml0ZSBzZXF1ZW5jZS5cbiAgIC0gVGhlIHJvd3Mgb2YgdGhlIG1hdHJpeCBbeHNzXSBhcmUgbm90IHJlcXVpcmVkIHRvIGhhdmUgdGhlIHNhbWUgbGVuZ3RoLlxuICAgLSBUaGUgbWF0cml4IFt4c3NdIGlzIG5vdCByZXF1aXJlZCB0byBiZSBmaW5pdGUgKGluIGVpdGhlciBkaXJlY3Rpb24pLlxuICAgLSBUaGUgbWF0cml4IFt4c3NdIG11c3QgYmUgcGVyc2lzdGVudC4gKilcblxubGV0IGRpYWdvbmFscyB4c3MgPVxuICBkaWFnb25hbHMgZW1wdHkgeHNzXG5cbmxldCBtYXBfcHJvZHVjdCBmIHhzIHlzID1cbiAgY29uY2F0IChkaWFnb25hbHMgKFxuICAgIG1hcCAoZnVuIHggLT5cbiAgICAgIG1hcCAoZnVuIHkgLT5cbiAgICAgICAgZiB4IHlcbiAgICAgICkgeXNcbiAgICApIHhzXG4gICkpXG5cbmxldCBwcm9kdWN0IHhzIHlzID1cbiAgbWFwX3Byb2R1Y3QgKGZ1biB4IHkgLT4gKHgsIHkpKSB4cyB5c1xuXG5sZXQgb2ZfZGlzcGVuc2VyIGl0ID1cbiAgbGV0IHJlYyBjICgpID1cbiAgICBtYXRjaCBpdCgpIHdpdGhcbiAgICB8IE5vbmUgLT5cbiAgICAgICAgTmlsXG4gICAgfCBTb21lIHggLT5cbiAgICAgICAgQ29ucyAoeCwgYylcbiAgaW5cbiAgY1xuXG5sZXQgdG9fZGlzcGVuc2VyIHhzID1cbiAgbGV0IHMgPSByZWYgeHMgaW5cbiAgZnVuICgpIC0+XG4gICAgbWF0Y2ggKCFzKSgpIHdpdGhcbiAgICB8IE5pbCAtPlxuICAgICAgICBOb25lXG4gICAgfCBDb25zICh4LCB4cykgLT5cbiAgICAgICAgcyA6PSB4cztcbiAgICAgICAgU29tZSB4XG5cblxuXG5sZXQgcmVjIGludHMgaSAoKSA9XG4gIENvbnMgKGksIGludHMgKGkgKyAxKSlcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBPQ2FtbCBwcm9ncmFtbWVycyAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMTggSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxudHlwZSAnYSB0ID0gJ2Egb3B0aW9uID0gTm9uZSB8IFNvbWUgb2YgJ2FcblxubGV0IG5vbmUgPSBOb25lXG5sZXQgc29tZSB2ID0gU29tZSB2XG5sZXQgdmFsdWUgbyB+ZGVmYXVsdCA9IG1hdGNoIG8gd2l0aCBTb21lIHYgLT4gdiB8IE5vbmUgLT4gZGVmYXVsdFxubGV0IGdldCA9IGZ1bmN0aW9uIFNvbWUgdiAtPiB2IHwgTm9uZSAtPiBpbnZhbGlkX2FyZyBcIm9wdGlvbiBpcyBOb25lXCJcbmxldCBiaW5kIG8gZiA9IG1hdGNoIG8gd2l0aCBOb25lIC0+IE5vbmUgfCBTb21lIHYgLT4gZiB2XG5sZXQgam9pbiA9IGZ1bmN0aW9uIFNvbWUgbyAtPiBvIHwgTm9uZSAtPiBOb25lXG5sZXQgbWFwIGYgbyA9IG1hdGNoIG8gd2l0aCBOb25lIC0+IE5vbmUgfCBTb21lIHYgLT4gU29tZSAoZiB2KVxubGV0IGZvbGQgfm5vbmUgfnNvbWUgPSBmdW5jdGlvbiBTb21lIHYgLT4gc29tZSB2IHwgTm9uZSAtPiBub25lXG5sZXQgaXRlciBmID0gZnVuY3Rpb24gU29tZSB2IC0+IGYgdiB8IE5vbmUgLT4gKClcbmxldCBpc19ub25lID0gZnVuY3Rpb24gTm9uZSAtPiB0cnVlIHwgU29tZSBfIC0+IGZhbHNlXG5sZXQgaXNfc29tZSA9IGZ1bmN0aW9uIE5vbmUgLT4gZmFsc2UgfCBTb21lIF8gLT4gdHJ1ZVxuXG5sZXQgZXF1YWwgZXEgbzAgbzEgPSBtYXRjaCBvMCwgbzEgd2l0aFxufCBTb21lIHYwLCBTb21lIHYxIC0+IGVxIHYwIHYxXG58IE5vbmUsIE5vbmUgLT4gdHJ1ZVxufCBfIC0+IGZhbHNlXG5cbmxldCBjb21wYXJlIGNtcCBvMCBvMSA9IG1hdGNoIG8wLCBvMSB3aXRoXG58IFNvbWUgdjAsIFNvbWUgdjEgLT4gY21wIHYwIHYxXG58IE5vbmUsIE5vbmUgLT4gMFxufCBOb25lLCBTb21lIF8gLT4gLTFcbnwgU29tZSBfLCBOb25lIC0+IDFcblxubGV0IHRvX3Jlc3VsdCB+bm9uZSA9IGZ1bmN0aW9uIE5vbmUgLT4gRXJyb3Igbm9uZSB8IFNvbWUgdiAtPiBPayB2XG5sZXQgdG9fbGlzdCA9IGZ1bmN0aW9uIE5vbmUgLT4gW10gfCBTb21lIHYgLT4gW3ZdXG5sZXQgdG9fc2VxID0gZnVuY3Rpb24gTm9uZSAtPiBTZXEuZW1wdHkgfCBTb21lIHYgLT4gU2VxLnJldHVybiB2XG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgT0NhbWwgcHJvZ3JhbW1lcnMgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDE4IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbnR5cGUgKCdhLCAnZSkgdCA9ICgnYSwgJ2UpIHJlc3VsdCA9IE9rIG9mICdhIHwgRXJyb3Igb2YgJ2VcblxubGV0IG9rIHYgPSBPayB2XG5sZXQgZXJyb3IgZSA9IEVycm9yIGVcbmxldCB2YWx1ZSByIH5kZWZhdWx0ID0gbWF0Y2ggciB3aXRoIE9rIHYgLT4gdiB8IEVycm9yIF8gLT4gZGVmYXVsdFxubGV0IGdldF9vayA9IGZ1bmN0aW9uIE9rIHYgLT4gdiB8IEVycm9yIF8gLT4gaW52YWxpZF9hcmcgXCJyZXN1bHQgaXMgRXJyb3IgX1wiXG5sZXQgZ2V0X2Vycm9yID0gZnVuY3Rpb24gRXJyb3IgZSAtPiBlIHwgT2sgXyAtPiBpbnZhbGlkX2FyZyBcInJlc3VsdCBpcyBPayBfXCJcbmxldCBiaW5kIHIgZiA9IG1hdGNoIHIgd2l0aCBPayB2IC0+IGYgdiB8IEVycm9yIF8gYXMgZSAtPiBlXG5sZXQgam9pbiA9IGZ1bmN0aW9uIE9rIHIgLT4gciB8IEVycm9yIF8gYXMgZSAtPiBlXG5sZXQgbWFwIGYgPSBmdW5jdGlvbiBPayB2IC0+IE9rIChmIHYpIHwgRXJyb3IgXyBhcyBlIC0+IGVcbmxldCBtYXBfZXJyb3IgZiA9IGZ1bmN0aW9uIEVycm9yIGUgLT4gRXJyb3IgKGYgZSkgfCBPayBfIGFzIHYgLT4gdlxubGV0IGZvbGQgfm9rIH5lcnJvciA9IGZ1bmN0aW9uIE9rIHYgLT4gb2sgdiB8IEVycm9yIGUgLT4gZXJyb3IgZVxubGV0IGl0ZXIgZiA9IGZ1bmN0aW9uIE9rIHYgLT4gZiB2IHwgRXJyb3IgXyAtPiAoKVxubGV0IGl0ZXJfZXJyb3IgZiA9IGZ1bmN0aW9uIEVycm9yIGUgLT4gZiBlIHwgT2sgXyAtPiAoKVxubGV0IGlzX29rID0gZnVuY3Rpb24gT2sgXyAtPiB0cnVlIHwgRXJyb3IgXyAtPiBmYWxzZVxubGV0IGlzX2Vycm9yID0gZnVuY3Rpb24gRXJyb3IgXyAtPiB0cnVlIHwgT2sgXyAtPiBmYWxzZVxuXG5sZXQgZXF1YWwgfm9rIH5lcnJvciByMCByMSA9IG1hdGNoIHIwLCByMSB3aXRoXG58IE9rIHYwLCBPayB2MSAtPiBvayB2MCB2MVxufCBFcnJvciBlMCwgRXJyb3IgZTEgLT4gZXJyb3IgZTAgZTFcbnwgXywgXyAtPiBmYWxzZVxuXG5sZXQgY29tcGFyZSB+b2sgfmVycm9yIHIwIHIxID0gbWF0Y2ggcjAsIHIxIHdpdGhcbnwgT2sgdjAsIE9rIHYxIC0+IG9rIHYwIHYxXG58IEVycm9yIGUwLCBFcnJvciBlMSAtPiBlcnJvciBlMCBlMVxufCBPayBfLCBFcnJvciBfIC0+IC0xXG58IEVycm9yIF8sIE9rIF8gLT4gMVxuXG5sZXQgdG9fb3B0aW9uID0gZnVuY3Rpb24gT2sgdiAtPiBTb21lIHYgfCBFcnJvciBfIC0+IE5vbmVcbmxldCB0b19saXN0ID0gZnVuY3Rpb24gT2sgdiAtPiBbdl0gfCBFcnJvciBfIC0+IFtdXG5sZXQgdG9fc2VxID0gZnVuY3Rpb24gT2sgdiAtPiBTZXEucmV0dXJuIHYgfCBFcnJvciBfIC0+IFNlcS5lbXB0eVxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgVGhlIE9DYW1sIHByb2dyYW1tZXJzICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAxOCBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG50eXBlIHQgPSBib29sID0gZmFsc2UgfCB0cnVlXG5cbmV4dGVybmFsIG5vdCA6IGJvb2wgLT4gYm9vbCA9IFwiJWJvb2xub3RcIlxuZXh0ZXJuYWwgKCAmJiApIDogYm9vbCAtPiBib29sIC0+IGJvb2wgPSBcIiVzZXF1YW5kXCJcbmV4dGVybmFsICggfHwgKSA6IGJvb2wgLT4gYm9vbCAtPiBib29sID0gXCIlc2VxdW9yXCJcbmxldCBlcXVhbCA6IGJvb2wgLT4gYm9vbCAtPiBib29sID0gKCA9IClcbmxldCBjb21wYXJlIDogYm9vbCAtPiBib29sIC0+IGludCA9IFN0ZGxpYi5jb21wYXJlXG5leHRlcm5hbCB0b19pbnQgOiBib29sIC0+IGludCA9IFwiJWlkZW50aXR5XCJcbmxldCB0b19mbG9hdCA9IGZ1bmN0aW9uIGZhbHNlIC0+IDAuIHwgdHJ1ZSAtPiAxLlxuXG4oKlxubGV0IG9mX3N0cmluZyA9IGZ1bmN0aW9uXG58IFwiZmFsc2VcIiAtPiBTb21lIGZhbHNlXG58IFwidHJ1ZVwiIC0+IFNvbWUgdHJ1ZVxufCBfIC0+IE5vbmVcbiopXG5cbmxldCB0b19zdHJpbmcgPSBmdW5jdGlvbiBmYWxzZSAtPiBcImZhbHNlXCIgfCB0cnVlIC0+IFwidHJ1ZVwiXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIENoYXJhY3RlciBvcGVyYXRpb25zICopXG5cbmV4dGVybmFsIGNvZGU6IGNoYXIgLT4gaW50ID0gXCIlaWRlbnRpdHlcIlxuZXh0ZXJuYWwgdW5zYWZlX2NocjogaW50IC0+IGNoYXIgPSBcIiVpZGVudGl0eVwiXG5cbmxldCBjaHIgbiA9XG4gIGlmIG4gPCAwIHx8IG4gPiAyNTUgdGhlbiBpbnZhbGlkX2FyZyBcIkNoYXIuY2hyXCIgZWxzZSB1bnNhZmVfY2hyIG5cblxuZXh0ZXJuYWwgYnl0ZXNfY3JlYXRlOiBpbnQgLT4gYnl0ZXMgPSBcImNhbWxfY3JlYXRlX2J5dGVzXCJcbmV4dGVybmFsIGJ5dGVzX3Vuc2FmZV9zZXQgOiBieXRlcyAtPiBpbnQgLT4gY2hhciAtPiB1bml0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICA9IFwiJWJ5dGVzX3Vuc2FmZV9zZXRcIlxuZXh0ZXJuYWwgdW5zYWZlX3RvX3N0cmluZyA6IGJ5dGVzIC0+IHN0cmluZyA9IFwiJWJ5dGVzX3RvX3N0cmluZ1wiXG5cbmxldCBlc2NhcGVkID0gZnVuY3Rpb25cbiAgfCAnXFwnJyAtPiBcIlxcXFwnXCJcbiAgfCAnXFxcXCcgLT4gXCJcXFxcXFxcXFwiXG4gIHwgJ1xcbicgLT4gXCJcXFxcblwiXG4gIHwgJ1xcdCcgLT4gXCJcXFxcdFwiXG4gIHwgJ1xccicgLT4gXCJcXFxcclwiXG4gIHwgJ1xcYicgLT4gXCJcXFxcYlwiXG4gIHwgJyAnIC4uICd+JyBhcyBjIC0+XG4gICAgICBsZXQgcyA9IGJ5dGVzX2NyZWF0ZSAxIGluXG4gICAgICBieXRlc191bnNhZmVfc2V0IHMgMCBjO1xuICAgICAgdW5zYWZlX3RvX3N0cmluZyBzXG4gIHwgYyAtPlxuICAgICAgbGV0IG4gPSBjb2RlIGMgaW5cbiAgICAgIGxldCBzID0gYnl0ZXNfY3JlYXRlIDQgaW5cbiAgICAgIGJ5dGVzX3Vuc2FmZV9zZXQgcyAwICdcXFxcJztcbiAgICAgIGJ5dGVzX3Vuc2FmZV9zZXQgcyAxICh1bnNhZmVfY2hyICg0OCArIG4gLyAxMDApKTtcbiAgICAgIGJ5dGVzX3Vuc2FmZV9zZXQgcyAyICh1bnNhZmVfY2hyICg0OCArIChuIC8gMTApIG1vZCAxMCkpO1xuICAgICAgYnl0ZXNfdW5zYWZlX3NldCBzIDMgKHVuc2FmZV9jaHIgKDQ4ICsgbiBtb2QgMTApKTtcbiAgICAgIHVuc2FmZV90b19zdHJpbmcgc1xuXG5sZXQgbG93ZXJjYXNlID0gZnVuY3Rpb25cbiAgfCAnQScgLi4gJ1onXG4gIHwgJ1xcMTkyJyAuLiAnXFwyMTQnXG4gIHwgJ1xcMjE2JyAuLiAnXFwyMjInIGFzIGMgLT5cbiAgICB1bnNhZmVfY2hyKGNvZGUgYyArIDMyKVxuICB8IGMgLT4gY1xuXG5sZXQgdXBwZXJjYXNlID0gZnVuY3Rpb25cbiAgfCAnYScgLi4gJ3onXG4gIHwgJ1xcMjI0JyAuLiAnXFwyNDYnXG4gIHwgJ1xcMjQ4JyAuLiAnXFwyNTQnIGFzIGMgLT5cbiAgICB1bnNhZmVfY2hyKGNvZGUgYyAtIDMyKVxuICB8IGMgLT4gY1xuXG5sZXQgbG93ZXJjYXNlX2FzY2lpID0gZnVuY3Rpb25cbiAgfCAnQScgLi4gJ1onIGFzIGMgLT4gdW5zYWZlX2Nocihjb2RlIGMgKyAzMilcbiAgfCBjIC0+IGNcblxubGV0IHVwcGVyY2FzZV9hc2NpaSA9IGZ1bmN0aW9uXG4gIHwgJ2EnIC4uICd6JyBhcyBjIC0+IHVuc2FmZV9jaHIoY29kZSBjIC0gMzIpXG4gIHwgYyAtPiBjXG5cbnR5cGUgdCA9IGNoYXJcblxubGV0IGNvbXBhcmUgYzEgYzIgPSBjb2RlIGMxIC0gY29kZSBjMlxubGV0IGVxdWFsIChjMTogdCkgKGMyOiB0KSA9IGNvbXBhcmUgYzEgYzIgPSAwXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgIERhbmllbCBDLiBCdWVuemxpICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDE0IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbmV4dGVybmFsIGZvcm1hdF9pbnQgOiBzdHJpbmcgLT4gaW50IC0+IHN0cmluZyA9IFwiY2FtbF9mb3JtYXRfaW50XCJcblxubGV0IGVycl9ub19wcmVkID0gXCJVKzAwMDAgaGFzIG5vIHByZWRlY2Vzc29yXCJcbmxldCBlcnJfbm9fc3VjYyA9IFwiVSsxMEZGRkYgaGFzIG5vIHN1Y2Nlc3NvclwiXG5sZXQgZXJyX25vdF9zdiBpID0gZm9ybWF0X2ludCBcIiVYXCIgaSBeIFwiIGlzIG5vdCBhbiBVbmljb2RlIHNjYWxhciB2YWx1ZVwiXG5sZXQgZXJyX25vdF9sYXRpbjEgdSA9IFwiVStcIiBeIGZvcm1hdF9pbnQgXCIlMDRYXCIgdSBeIFwiIGlzIG5vdCBhIGxhdGluMSBjaGFyYWN0ZXJcIlxuXG50eXBlIHQgPSBpbnRcblxubGV0IG1pbiA9IDB4MDAwMFxubGV0IG1heCA9IDB4MTBGRkZGXG5sZXQgbG9fYm91bmQgPSAweEQ3RkZcbmxldCBoaV9ib3VuZCA9IDB4RTAwMFxuXG5sZXQgYm9tID0gMHhGRUZGXG5sZXQgcmVwID0gMHhGRkZEXG5cbmxldCBzdWNjIHUgPVxuICBpZiB1ID0gbG9fYm91bmQgdGhlbiBoaV9ib3VuZCBlbHNlXG4gIGlmIHUgPSBtYXggdGhlbiBpbnZhbGlkX2FyZyBlcnJfbm9fc3VjYyBlbHNlXG4gIHUgKyAxXG5cbmxldCBwcmVkIHUgPVxuICBpZiB1ID0gaGlfYm91bmQgdGhlbiBsb19ib3VuZCBlbHNlXG4gIGlmIHUgPSBtaW4gdGhlbiBpbnZhbGlkX2FyZyBlcnJfbm9fcHJlZCBlbHNlXG4gIHUgLSAxXG5cbmxldCBpc192YWxpZCBpID0gKG1pbiA8PSBpICYmIGkgPD0gbG9fYm91bmQpIHx8IChoaV9ib3VuZCA8PSBpICYmIGkgPD0gbWF4KVxubGV0IG9mX2ludCBpID0gaWYgaXNfdmFsaWQgaSB0aGVuIGkgZWxzZSBpbnZhbGlkX2FyZyAoZXJyX25vdF9zdiBpKVxuZXh0ZXJuYWwgdW5zYWZlX29mX2ludCA6IGludCAtPiB0ID0gXCIlaWRlbnRpdHlcIlxuZXh0ZXJuYWwgdG9faW50IDogdCAtPiBpbnQgPSBcIiVpZGVudGl0eVwiXG5cbmxldCBpc19jaGFyIHUgPSB1IDwgMjU2XG5sZXQgb2ZfY2hhciBjID0gQ2hhci5jb2RlIGNcbmxldCB0b19jaGFyIHUgPVxuICBpZiB1ID4gMjU1IHRoZW4gaW52YWxpZF9hcmcgKGVycl9ub3RfbGF0aW4xIHUpIGVsc2VcbiAgQ2hhci51bnNhZmVfY2hyIHVcblxubGV0IHVuc2FmZV90b19jaGFyID0gQ2hhci51bnNhZmVfY2hyXG5cbmxldCBlcXVhbCA6IGludCAtPiBpbnQgLT4gYm9vbCA9ICggPSApXG5sZXQgY29tcGFyZSA6IGludCAtPiBpbnQgLT4gaW50ID0gU3RkbGliLmNvbXBhcmVcbmxldCBoYXNoID0gdG9faW50XG5cbigqIFVURiBjb2RlY3MgdG9vbHMgKilcblxudHlwZSB1dGZfZGVjb2RlID0gaW50XG4oKiBUaGlzIGlzIGFuIGludCBbMHhEVVVVVVVVXSBkZWNvbXBvc2VkIGFzIGZvbGxvd3M6XG4gICAtIFtEXSBpcyBmb3VyIGJpdHMgZm9yIGRlY29kZSBpbmZvcm1hdGlvbiwgdGhlIGhpZ2hlc3QgYml0IGlzIHNldCBpZiB0aGVcbiAgICAgZGVjb2RlIGlzIHZhbGlkLiBUaGUgdGhyZWUgbG93ZXIgYml0cyBpbmRpY2F0ZSB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzXG4gICAgIGZyb20gdGhlIHNvdXJjZSB0aGF0IHdlcmUgY29uc3VtZWQgYnkgdGhlIGRlY29kZS5cbiAgIC0gW1VVVVVVVV0gaXMgdGhlIGRlY29kZWQgVW5pY29kZSBjaGFyYWN0ZXIgb3IgdGhlIFVuaWNvZGUgcmVwbGFjZW1lbnRcbiAgICAgY2hhcmFjdGVyIFUrRkZGRCBpZiBmb3IgaW52YWxpZCBkZWNvZGVzLiAqKVxuXG5sZXQgdmFsaWRfYml0ID0gMjdcbmxldCBkZWNvZGVfYml0cyA9IDI0XG5cbmxldFtAaW5saW5lXSB1dGZfZGVjb2RlX2lzX3ZhbGlkIGQgPSAoZCBsc3IgdmFsaWRfYml0KSA9IDFcbmxldFtAaW5saW5lXSB1dGZfZGVjb2RlX2xlbmd0aCBkID0gKGQgbHNyIGRlY29kZV9iaXRzKSBsYW5kIDBiMTExXG5sZXRbQGlubGluZV0gdXRmX2RlY29kZV91Y2hhciBkID0gdW5zYWZlX29mX2ludCAoZCBsYW5kIDB4RkZGRkZGKVxubGV0W0BpbmxpbmVdIHV0Zl9kZWNvZGUgbiB1ID0gKCg4IGxvciBuKSBsc2wgZGVjb2RlX2JpdHMpIGxvciAodG9faW50IHUpXG5sZXRbQGlubGluZV0gdXRmX2RlY29kZV9pbnZhbGlkIG4gPSAobiBsc2wgZGVjb2RlX2JpdHMpIGxvciByZXBcblxubGV0IHV0Zl84X2J5dGVfbGVuZ3RoIHUgPSBtYXRjaCB0b19pbnQgdSB3aXRoXG58IHUgd2hlbiB1IDwgMCAtPiBhc3NlcnQgZmFsc2VcbnwgdSB3aGVuIHUgPD0gMHgwMDdGIC0+IDFcbnwgdSB3aGVuIHUgPD0gMHgwN0ZGIC0+IDJcbnwgdSB3aGVuIHUgPD0gMHhGRkZGIC0+IDNcbnwgdSB3aGVuIHUgPD0gMHgxMEZGRkYgLT4gNFxufCBfIC0+IGFzc2VydCBmYWxzZVxuXG5sZXQgdXRmXzE2X2J5dGVfbGVuZ3RoIHUgPSBtYXRjaCB0b19pbnQgdSB3aXRoXG58IHUgd2hlbiB1IDwgMCAtPiBhc3NlcnQgZmFsc2VcbnwgdSB3aGVuIHUgPD0gMHhGRkZGIC0+IDJcbnwgdSB3aGVuIHUgPD0gMHgxMEZGRkYgLT4gNFxufCBfIC0+IGFzc2VydCBmYWxzZVxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBBbiBhbGlhcyBmb3IgdGhlIHR5cGUgb2YgbGlzdHMuICopXG50eXBlICdhIHQgPSAnYSBsaXN0ID0gW10gfCAoOjopIG9mICdhICogJ2EgbGlzdFxuXG4oKiBMaXN0IG9wZXJhdGlvbnMgKilcblxubGV0IHJlYyBsZW5ndGhfYXV4IGxlbiA9IGZ1bmN0aW9uXG4gICAgW10gLT4gbGVuXG4gIHwgXzo6bCAtPiBsZW5ndGhfYXV4IChsZW4gKyAxKSBsXG5cbmxldCBsZW5ndGggbCA9IGxlbmd0aF9hdXggMCBsXG5cbmxldCBjb25zIGEgbCA9IGE6OmxcblxubGV0IGhkID0gZnVuY3Rpb25cbiAgICBbXSAtPiBmYWlsd2l0aCBcImhkXCJcbiAgfCBhOjpfIC0+IGFcblxubGV0IHRsID0gZnVuY3Rpb25cbiAgICBbXSAtPiBmYWlsd2l0aCBcInRsXCJcbiAgfCBfOjpsIC0+IGxcblxubGV0IG50aCBsIG4gPVxuICBpZiBuIDwgMCB0aGVuIGludmFsaWRfYXJnIFwiTGlzdC5udGhcIiBlbHNlXG4gIGxldCByZWMgbnRoX2F1eCBsIG4gPVxuICAgIG1hdGNoIGwgd2l0aFxuICAgIHwgW10gLT4gZmFpbHdpdGggXCJudGhcIlxuICAgIHwgYTo6bCAtPiBpZiBuID0gMCB0aGVuIGEgZWxzZSBudGhfYXV4IGwgKG4tMSlcbiAgaW4gbnRoX2F1eCBsIG5cblxubGV0IG50aF9vcHQgbCBuID1cbiAgaWYgbiA8IDAgdGhlbiBpbnZhbGlkX2FyZyBcIkxpc3QubnRoXCIgZWxzZVxuICBsZXQgcmVjIG50aF9hdXggbCBuID1cbiAgICBtYXRjaCBsIHdpdGhcbiAgICB8IFtdIC0+IE5vbmVcbiAgICB8IGE6OmwgLT4gaWYgbiA9IDAgdGhlbiBTb21lIGEgZWxzZSBudGhfYXV4IGwgKG4tMSlcbiAgaW4gbnRoX2F1eCBsIG5cblxubGV0IGFwcGVuZCA9IChAKVxuXG5sZXQgcmVjIHJldl9hcHBlbmQgbDEgbDIgPVxuICBtYXRjaCBsMSB3aXRoXG4gICAgW10gLT4gbDJcbiAgfCBhIDo6IGwgLT4gcmV2X2FwcGVuZCBsIChhIDo6IGwyKVxuXG5sZXQgcmV2IGwgPSByZXZfYXBwZW5kIGwgW11cblxubGV0IHJlYyBpbml0X3RhaWxyZWNfYXV4IGFjYyBpIG4gZiA9XG4gIGlmIGkgPj0gbiB0aGVuIGFjY1xuICBlbHNlIGluaXRfdGFpbHJlY19hdXggKGYgaSA6OiBhY2MpIChpKzEpIG4gZlxuXG5sZXQgcmVjIGluaXRfYXV4IGkgbiBmID1cbiAgaWYgaSA+PSBuIHRoZW4gW11cbiAgZWxzZVxuICAgIGxldCByID0gZiBpIGluXG4gICAgciA6OiBpbml0X2F1eCAoaSsxKSBuIGZcblxubGV0IHJldl9pbml0X3RocmVzaG9sZCA9XG4gIG1hdGNoIFN5cy5iYWNrZW5kX3R5cGUgd2l0aFxuICB8IFN5cy5OYXRpdmUgfCBTeXMuQnl0ZWNvZGUgLT4gMTBfMDAwXG4gICgqIFdlIGRvbid0IGtub3cgdGhlIHNpemUgb2YgdGhlIHN0YWNrLCBiZXR0ZXIgYmUgc2FmZSBhbmQgYXNzdW1lIGl0J3NcbiAgICAgc21hbGwuICopXG4gIHwgU3lzLk90aGVyIF8gLT4gNTBcblxubGV0IGluaXQgbGVuIGYgPVxuICBpZiBsZW4gPCAwIHRoZW4gaW52YWxpZF9hcmcgXCJMaXN0LmluaXRcIiBlbHNlXG4gIGlmIGxlbiA+IHJldl9pbml0X3RocmVzaG9sZCB0aGVuIHJldiAoaW5pdF90YWlscmVjX2F1eCBbXSAwIGxlbiBmKVxuICBlbHNlIGluaXRfYXV4IDAgbGVuIGZcblxubGV0IHJlYyBmbGF0dGVuID0gZnVuY3Rpb25cbiAgICBbXSAtPiBbXVxuICB8IGw6OnIgLT4gbCBAIGZsYXR0ZW4gclxuXG5sZXQgY29uY2F0ID0gZmxhdHRlblxuXG5sZXQgcmVjIG1hcCBmID0gZnVuY3Rpb25cbiAgICBbXSAtPiBbXVxuICB8IGE6OmwgLT4gbGV0IHIgPSBmIGEgaW4gciA6OiBtYXAgZiBsXG5cbmxldCByZWMgbWFwaSBpIGYgPSBmdW5jdGlvblxuICAgIFtdIC0+IFtdXG4gIHwgYTo6bCAtPiBsZXQgciA9IGYgaSBhIGluIHIgOjogbWFwaSAoaSArIDEpIGYgbFxuXG5sZXQgbWFwaSBmIGwgPSBtYXBpIDAgZiBsXG5cbmxldCByZXZfbWFwIGYgbCA9XG4gIGxldCByZWMgcm1hcF9mIGFjY3UgPSBmdW5jdGlvblxuICAgIHwgW10gLT4gYWNjdVxuICAgIHwgYTo6bCAtPiBybWFwX2YgKGYgYSA6OiBhY2N1KSBsXG4gIGluXG4gIHJtYXBfZiBbXSBsXG5cblxubGV0IHJlYyBpdGVyIGYgPSBmdW5jdGlvblxuICAgIFtdIC0+ICgpXG4gIHwgYTo6bCAtPiBmIGE7IGl0ZXIgZiBsXG5cbmxldCByZWMgaXRlcmkgaSBmID0gZnVuY3Rpb25cbiAgICBbXSAtPiAoKVxuICB8IGE6OmwgLT4gZiBpIGE7IGl0ZXJpIChpICsgMSkgZiBsXG5cbmxldCBpdGVyaSBmIGwgPSBpdGVyaSAwIGYgbFxuXG5sZXQgcmVjIGZvbGRfbGVmdCBmIGFjY3UgbCA9XG4gIG1hdGNoIGwgd2l0aFxuICAgIFtdIC0+IGFjY3VcbiAgfCBhOjpsIC0+IGZvbGRfbGVmdCBmIChmIGFjY3UgYSkgbFxuXG5sZXQgcmVjIGZvbGRfcmlnaHQgZiBsIGFjY3UgPVxuICBtYXRjaCBsIHdpdGhcbiAgICBbXSAtPiBhY2N1XG4gIHwgYTo6bCAtPiBmIGEgKGZvbGRfcmlnaHQgZiBsIGFjY3UpXG5cbmxldCByZWMgbWFwMiBmIGwxIGwyID1cbiAgbWF0Y2ggKGwxLCBsMikgd2l0aFxuICAgIChbXSwgW10pIC0+IFtdXG4gIHwgKGExOjpsMSwgYTI6OmwyKSAtPiBsZXQgciA9IGYgYTEgYTIgaW4gciA6OiBtYXAyIGYgbDEgbDJcbiAgfCAoXywgXykgLT4gaW52YWxpZF9hcmcgXCJMaXN0Lm1hcDJcIlxuXG5sZXQgcmV2X21hcDIgZiBsMSBsMiA9XG4gIGxldCByZWMgcm1hcDJfZiBhY2N1IGwxIGwyID1cbiAgICBtYXRjaCAobDEsIGwyKSB3aXRoXG4gICAgfCAoW10sIFtdKSAtPiBhY2N1XG4gICAgfCAoYTE6OmwxLCBhMjo6bDIpIC0+IHJtYXAyX2YgKGYgYTEgYTIgOjogYWNjdSkgbDEgbDJcbiAgICB8IChfLCBfKSAtPiBpbnZhbGlkX2FyZyBcIkxpc3QucmV2X21hcDJcIlxuICBpblxuICBybWFwMl9mIFtdIGwxIGwyXG5cblxubGV0IHJlYyBpdGVyMiBmIGwxIGwyID1cbiAgbWF0Y2ggKGwxLCBsMikgd2l0aFxuICAgIChbXSwgW10pIC0+ICgpXG4gIHwgKGExOjpsMSwgYTI6OmwyKSAtPiBmIGExIGEyOyBpdGVyMiBmIGwxIGwyXG4gIHwgKF8sIF8pIC0+IGludmFsaWRfYXJnIFwiTGlzdC5pdGVyMlwiXG5cbmxldCByZWMgZm9sZF9sZWZ0MiBmIGFjY3UgbDEgbDIgPVxuICBtYXRjaCAobDEsIGwyKSB3aXRoXG4gICAgKFtdLCBbXSkgLT4gYWNjdVxuICB8IChhMTo6bDEsIGEyOjpsMikgLT4gZm9sZF9sZWZ0MiBmIChmIGFjY3UgYTEgYTIpIGwxIGwyXG4gIHwgKF8sIF8pIC0+IGludmFsaWRfYXJnIFwiTGlzdC5mb2xkX2xlZnQyXCJcblxubGV0IHJlYyBmb2xkX3JpZ2h0MiBmIGwxIGwyIGFjY3UgPVxuICBtYXRjaCAobDEsIGwyKSB3aXRoXG4gICAgKFtdLCBbXSkgLT4gYWNjdVxuICB8IChhMTo6bDEsIGEyOjpsMikgLT4gZiBhMSBhMiAoZm9sZF9yaWdodDIgZiBsMSBsMiBhY2N1KVxuICB8IChfLCBfKSAtPiBpbnZhbGlkX2FyZyBcIkxpc3QuZm9sZF9yaWdodDJcIlxuXG5sZXQgcmVjIGZvcl9hbGwgcCA9IGZ1bmN0aW9uXG4gICAgW10gLT4gdHJ1ZVxuICB8IGE6OmwgLT4gcCBhICYmIGZvcl9hbGwgcCBsXG5cbmxldCByZWMgZXhpc3RzIHAgPSBmdW5jdGlvblxuICAgIFtdIC0+IGZhbHNlXG4gIHwgYTo6bCAtPiBwIGEgfHwgZXhpc3RzIHAgbFxuXG5sZXQgcmVjIGZvcl9hbGwyIHAgbDEgbDIgPVxuICBtYXRjaCAobDEsIGwyKSB3aXRoXG4gICAgKFtdLCBbXSkgLT4gdHJ1ZVxuICB8IChhMTo6bDEsIGEyOjpsMikgLT4gcCBhMSBhMiAmJiBmb3JfYWxsMiBwIGwxIGwyXG4gIHwgKF8sIF8pIC0+IGludmFsaWRfYXJnIFwiTGlzdC5mb3JfYWxsMlwiXG5cbmxldCByZWMgZXhpc3RzMiBwIGwxIGwyID1cbiAgbWF0Y2ggKGwxLCBsMikgd2l0aFxuICAgIChbXSwgW10pIC0+IGZhbHNlXG4gIHwgKGExOjpsMSwgYTI6OmwyKSAtPiBwIGExIGEyIHx8IGV4aXN0czIgcCBsMSBsMlxuICB8IChfLCBfKSAtPiBpbnZhbGlkX2FyZyBcIkxpc3QuZXhpc3RzMlwiXG5cbmxldCByZWMgbWVtIHggPSBmdW5jdGlvblxuICAgIFtdIC0+IGZhbHNlXG4gIHwgYTo6bCAtPiBjb21wYXJlIGEgeCA9IDAgfHwgbWVtIHggbFxuXG5sZXQgcmVjIG1lbXEgeCA9IGZ1bmN0aW9uXG4gICAgW10gLT4gZmFsc2VcbiAgfCBhOjpsIC0+IGEgPT0geCB8fCBtZW1xIHggbFxuXG5sZXQgcmVjIGFzc29jIHggPSBmdW5jdGlvblxuICAgIFtdIC0+IHJhaXNlIE5vdF9mb3VuZFxuICB8IChhLGIpOjpsIC0+IGlmIGNvbXBhcmUgYSB4ID0gMCB0aGVuIGIgZWxzZSBhc3NvYyB4IGxcblxubGV0IHJlYyBhc3NvY19vcHQgeCA9IGZ1bmN0aW9uXG4gICAgW10gLT4gTm9uZVxuICB8IChhLGIpOjpsIC0+IGlmIGNvbXBhcmUgYSB4ID0gMCB0aGVuIFNvbWUgYiBlbHNlIGFzc29jX29wdCB4IGxcblxubGV0IHJlYyBhc3NxIHggPSBmdW5jdGlvblxuICAgIFtdIC0+IHJhaXNlIE5vdF9mb3VuZFxuICB8IChhLGIpOjpsIC0+IGlmIGEgPT0geCB0aGVuIGIgZWxzZSBhc3NxIHggbFxuXG5sZXQgcmVjIGFzc3Ffb3B0IHggPSBmdW5jdGlvblxuICAgIFtdIC0+IE5vbmVcbiAgfCAoYSxiKTo6bCAtPiBpZiBhID09IHggdGhlbiBTb21lIGIgZWxzZSBhc3NxX29wdCB4IGxcblxubGV0IHJlYyBtZW1fYXNzb2MgeCA9IGZ1bmN0aW9uXG4gIHwgW10gLT4gZmFsc2VcbiAgfCAoYSwgXykgOjogbCAtPiBjb21wYXJlIGEgeCA9IDAgfHwgbWVtX2Fzc29jIHggbFxuXG5sZXQgcmVjIG1lbV9hc3NxIHggPSBmdW5jdGlvblxuICB8IFtdIC0+IGZhbHNlXG4gIHwgKGEsIF8pIDo6IGwgLT4gYSA9PSB4IHx8IG1lbV9hc3NxIHggbFxuXG5sZXQgcmVjIHJlbW92ZV9hc3NvYyB4ID0gZnVuY3Rpb25cbiAgfCBbXSAtPiBbXVxuICB8IChhLCBfIGFzIHBhaXIpIDo6IGwgLT5cbiAgICAgIGlmIGNvbXBhcmUgYSB4ID0gMCB0aGVuIGwgZWxzZSBwYWlyIDo6IHJlbW92ZV9hc3NvYyB4IGxcblxubGV0IHJlYyByZW1vdmVfYXNzcSB4ID0gZnVuY3Rpb25cbiAgfCBbXSAtPiBbXVxuICB8IChhLCBfIGFzIHBhaXIpIDo6IGwgLT4gaWYgYSA9PSB4IHRoZW4gbCBlbHNlIHBhaXIgOjogcmVtb3ZlX2Fzc3EgeCBsXG5cbmxldCByZWMgZmluZCBwID0gZnVuY3Rpb25cbiAgfCBbXSAtPiByYWlzZSBOb3RfZm91bmRcbiAgfCB4IDo6IGwgLT4gaWYgcCB4IHRoZW4geCBlbHNlIGZpbmQgcCBsXG5cbmxldCByZWMgZmluZF9vcHQgcCA9IGZ1bmN0aW9uXG4gIHwgW10gLT4gTm9uZVxuICB8IHggOjogbCAtPiBpZiBwIHggdGhlbiBTb21lIHggZWxzZSBmaW5kX29wdCBwIGxcblxubGV0IHJlYyBmaW5kX21hcCBmID0gZnVuY3Rpb25cbiAgfCBbXSAtPiBOb25lXG4gIHwgeCA6OiBsIC0+XG4gICAgIGJlZ2luIG1hdGNoIGYgeCB3aXRoXG4gICAgICAgfCBTb21lIF8gYXMgcmVzdWx0IC0+IHJlc3VsdFxuICAgICAgIHwgTm9uZSAtPiBmaW5kX21hcCBmIGxcbiAgICAgZW5kXG5cbmxldCBmaW5kX2FsbCBwID1cbiAgbGV0IHJlYyBmaW5kIGFjY3UgPSBmdW5jdGlvblxuICB8IFtdIC0+IHJldiBhY2N1XG4gIHwgeCA6OiBsIC0+IGlmIHAgeCB0aGVuIGZpbmQgKHggOjogYWNjdSkgbCBlbHNlIGZpbmQgYWNjdSBsIGluXG4gIGZpbmQgW11cblxubGV0IGZpbHRlciA9IGZpbmRfYWxsXG5cbmxldCBmaWx0ZXJpIHAgbCA9XG4gIGxldCByZWMgYXV4IGkgYWNjID0gZnVuY3Rpb25cbiAgfCBbXSAtPiByZXYgYWNjXG4gIHwgeDo6bCAtPiBhdXggKGkgKyAxKSAoaWYgcCBpIHggdGhlbiB4OjphY2MgZWxzZSBhY2MpIGxcbiAgaW5cbiAgYXV4IDAgW10gbFxuXG5sZXQgZmlsdGVyX21hcCBmID1cbiAgbGV0IHJlYyBhdXggYWNjdSA9IGZ1bmN0aW9uXG4gICAgfCBbXSAtPiByZXYgYWNjdVxuICAgIHwgeCA6OiBsIC0+XG4gICAgICAgIG1hdGNoIGYgeCB3aXRoXG4gICAgICAgIHwgTm9uZSAtPiBhdXggYWNjdSBsXG4gICAgICAgIHwgU29tZSB2IC0+IGF1eCAodiA6OiBhY2N1KSBsXG4gIGluXG4gIGF1eCBbXVxuXG5sZXQgY29uY2F0X21hcCBmIGwgPVxuICBsZXQgcmVjIGF1eCBmIGFjYyA9IGZ1bmN0aW9uXG4gICAgfCBbXSAtPiByZXYgYWNjXG4gICAgfCB4IDo6IGwgLT5cbiAgICAgICBsZXQgeHMgPSBmIHggaW5cbiAgICAgICBhdXggZiAocmV2X2FwcGVuZCB4cyBhY2MpIGxcbiAgaW4gYXV4IGYgW10gbFxuXG5sZXQgZm9sZF9sZWZ0X21hcCBmIGFjY3UgbCA9XG4gIGxldCByZWMgYXV4IGFjY3UgbF9hY2N1ID0gZnVuY3Rpb25cbiAgICB8IFtdIC0+IGFjY3UsIHJldiBsX2FjY3VcbiAgICB8IHggOjogbCAtPlxuICAgICAgICBsZXQgYWNjdSwgeCA9IGYgYWNjdSB4IGluXG4gICAgICAgIGF1eCBhY2N1ICh4IDo6IGxfYWNjdSkgbCBpblxuICBhdXggYWNjdSBbXSBsXG5cbmxldCBwYXJ0aXRpb24gcCBsID1cbiAgbGV0IHJlYyBwYXJ0IHllcyBubyA9IGZ1bmN0aW9uXG4gIHwgW10gLT4gKHJldiB5ZXMsIHJldiBubylcbiAgfCB4IDo6IGwgLT4gaWYgcCB4IHRoZW4gcGFydCAoeCA6OiB5ZXMpIG5vIGwgZWxzZSBwYXJ0IHllcyAoeCA6OiBubykgbCBpblxuICBwYXJ0IFtdIFtdIGxcblxubGV0IHBhcnRpdGlvbl9tYXAgcCBsID1cbiAgbGV0IHJlYyBwYXJ0IGxlZnQgcmlnaHQgPSBmdW5jdGlvblxuICB8IFtdIC0+IChyZXYgbGVmdCwgcmV2IHJpZ2h0KVxuICB8IHggOjogbCAtPlxuICAgICBiZWdpbiBtYXRjaCBwIHggd2l0aFxuICAgICAgIHwgRWl0aGVyLkxlZnQgdiAtPiBwYXJ0ICh2IDo6IGxlZnQpIHJpZ2h0IGxcbiAgICAgICB8IEVpdGhlci5SaWdodCB2IC0+IHBhcnQgbGVmdCAodiA6OiByaWdodCkgbFxuICAgICBlbmRcbiAgaW5cbiAgcGFydCBbXSBbXSBsXG5cbmxldCByZWMgc3BsaXQgPSBmdW5jdGlvblxuICAgIFtdIC0+IChbXSwgW10pXG4gIHwgKHgseSk6OmwgLT5cbiAgICAgIGxldCAocngsIHJ5KSA9IHNwbGl0IGwgaW4gKHg6OnJ4LCB5OjpyeSlcblxubGV0IHJlYyBjb21iaW5lIGwxIGwyID1cbiAgbWF0Y2ggKGwxLCBsMikgd2l0aFxuICAgIChbXSwgW10pIC0+IFtdXG4gIHwgKGExOjpsMSwgYTI6OmwyKSAtPiAoYTEsIGEyKSA6OiBjb21iaW5lIGwxIGwyXG4gIHwgKF8sIF8pIC0+IGludmFsaWRfYXJnIFwiTGlzdC5jb21iaW5lXCJcblxuKCoqIHNvcnRpbmcgKilcblxubGV0IHJlYyBtZXJnZSBjbXAgbDEgbDIgPVxuICBtYXRjaCBsMSwgbDIgd2l0aFxuICB8IFtdLCBsMiAtPiBsMlxuICB8IGwxLCBbXSAtPiBsMVxuICB8IGgxIDo6IHQxLCBoMiA6OiB0MiAtPlxuICAgICAgaWYgY21wIGgxIGgyIDw9IDBcbiAgICAgIHRoZW4gaDEgOjogbWVyZ2UgY21wIHQxIGwyXG4gICAgICBlbHNlIGgyIDo6IG1lcmdlIGNtcCBsMSB0MlxuXG5cbmxldCBzdGFibGVfc29ydCBjbXAgbCA9XG4gIGxldCByZWMgcmV2X21lcmdlIGwxIGwyIGFjY3UgPVxuICAgIG1hdGNoIGwxLCBsMiB3aXRoXG4gICAgfCBbXSwgbDIgLT4gcmV2X2FwcGVuZCBsMiBhY2N1XG4gICAgfCBsMSwgW10gLT4gcmV2X2FwcGVuZCBsMSBhY2N1XG4gICAgfCBoMTo6dDEsIGgyOjp0MiAtPlxuICAgICAgICBpZiBjbXAgaDEgaDIgPD0gMFxuICAgICAgICB0aGVuIHJldl9tZXJnZSB0MSBsMiAoaDE6OmFjY3UpXG4gICAgICAgIGVsc2UgcmV2X21lcmdlIGwxIHQyIChoMjo6YWNjdSlcbiAgaW5cbiAgbGV0IHJlYyByZXZfbWVyZ2VfcmV2IGwxIGwyIGFjY3UgPVxuICAgIG1hdGNoIGwxLCBsMiB3aXRoXG4gICAgfCBbXSwgbDIgLT4gcmV2X2FwcGVuZCBsMiBhY2N1XG4gICAgfCBsMSwgW10gLT4gcmV2X2FwcGVuZCBsMSBhY2N1XG4gICAgfCBoMTo6dDEsIGgyOjp0MiAtPlxuICAgICAgICBpZiBjbXAgaDEgaDIgPiAwXG4gICAgICAgIHRoZW4gcmV2X21lcmdlX3JldiB0MSBsMiAoaDE6OmFjY3UpXG4gICAgICAgIGVsc2UgcmV2X21lcmdlX3JldiBsMSB0MiAoaDI6OmFjY3UpXG4gIGluXG4gIGxldCByZWMgc29ydCBuIGwgPVxuICAgIG1hdGNoIG4sIGwgd2l0aFxuICAgIHwgMiwgeDEgOjogeDIgOjogdGwgLT5cbiAgICAgICAgbGV0IHMgPSBpZiBjbXAgeDEgeDIgPD0gMCB0aGVuIFt4MTsgeDJdIGVsc2UgW3gyOyB4MV0gaW5cbiAgICAgICAgKHMsIHRsKVxuICAgIHwgMywgeDEgOjogeDIgOjogeDMgOjogdGwgLT5cbiAgICAgICAgbGV0IHMgPVxuICAgICAgICAgIGlmIGNtcCB4MSB4MiA8PSAwIHRoZW5cbiAgICAgICAgICAgIGlmIGNtcCB4MiB4MyA8PSAwIHRoZW4gW3gxOyB4MjsgeDNdXG4gICAgICAgICAgICBlbHNlIGlmIGNtcCB4MSB4MyA8PSAwIHRoZW4gW3gxOyB4MzsgeDJdXG4gICAgICAgICAgICBlbHNlIFt4MzsgeDE7IHgyXVxuICAgICAgICAgIGVsc2UgaWYgY21wIHgxIHgzIDw9IDAgdGhlbiBbeDI7IHgxOyB4M11cbiAgICAgICAgICBlbHNlIGlmIGNtcCB4MiB4MyA8PSAwIHRoZW4gW3gyOyB4MzsgeDFdXG4gICAgICAgICAgZWxzZSBbeDM7IHgyOyB4MV1cbiAgICAgICAgaW5cbiAgICAgICAgKHMsIHRsKVxuICAgIHwgbiwgbCAtPlxuICAgICAgICBsZXQgbjEgPSBuIGFzciAxIGluXG4gICAgICAgIGxldCBuMiA9IG4gLSBuMSBpblxuICAgICAgICBsZXQgczEsIGwyID0gcmV2X3NvcnQgbjEgbCBpblxuICAgICAgICBsZXQgczIsIHRsID0gcmV2X3NvcnQgbjIgbDIgaW5cbiAgICAgICAgKHJldl9tZXJnZV9yZXYgczEgczIgW10sIHRsKVxuICBhbmQgcmV2X3NvcnQgbiBsID1cbiAgICBtYXRjaCBuLCBsIHdpdGhcbiAgICB8IDIsIHgxIDo6IHgyIDo6IHRsIC0+XG4gICAgICAgIGxldCBzID0gaWYgY21wIHgxIHgyID4gMCB0aGVuIFt4MTsgeDJdIGVsc2UgW3gyOyB4MV0gaW5cbiAgICAgICAgKHMsIHRsKVxuICAgIHwgMywgeDEgOjogeDIgOjogeDMgOjogdGwgLT5cbiAgICAgICAgbGV0IHMgPVxuICAgICAgICAgIGlmIGNtcCB4MSB4MiA+IDAgdGhlblxuICAgICAgICAgICAgaWYgY21wIHgyIHgzID4gMCB0aGVuIFt4MTsgeDI7IHgzXVxuICAgICAgICAgICAgZWxzZSBpZiBjbXAgeDEgeDMgPiAwIHRoZW4gW3gxOyB4MzsgeDJdXG4gICAgICAgICAgICBlbHNlIFt4MzsgeDE7IHgyXVxuICAgICAgICAgIGVsc2UgaWYgY21wIHgxIHgzID4gMCB0aGVuIFt4MjsgeDE7IHgzXVxuICAgICAgICAgIGVsc2UgaWYgY21wIHgyIHgzID4gMCB0aGVuIFt4MjsgeDM7IHgxXVxuICAgICAgICAgIGVsc2UgW3gzOyB4MjsgeDFdXG4gICAgICAgIGluXG4gICAgICAgIChzLCB0bClcbiAgICB8IG4sIGwgLT5cbiAgICAgICAgbGV0IG4xID0gbiBhc3IgMSBpblxuICAgICAgICBsZXQgbjIgPSBuIC0gbjEgaW5cbiAgICAgICAgbGV0IHMxLCBsMiA9IHNvcnQgbjEgbCBpblxuICAgICAgICBsZXQgczIsIHRsID0gc29ydCBuMiBsMiBpblxuICAgICAgICAocmV2X21lcmdlIHMxIHMyIFtdLCB0bClcbiAgaW5cbiAgbGV0IGxlbiA9IGxlbmd0aCBsIGluXG4gIGlmIGxlbiA8IDIgdGhlbiBsIGVsc2UgZnN0IChzb3J0IGxlbiBsKVxuXG5cbmxldCBzb3J0ID0gc3RhYmxlX3NvcnRcbmxldCBmYXN0X3NvcnQgPSBzdGFibGVfc29ydFxuXG4oKiBOb3RlOiBvbiBhIGxpc3Qgb2YgbGVuZ3RoIGJldHdlZW4gYWJvdXQgMTAwMDAwIChkZXBlbmRpbmcgb24gdGhlIG1pbm9yXG4gICBoZWFwIHNpemUgYW5kIHRoZSB0eXBlIG9mIHRoZSBsaXN0KSBhbmQgU3lzLm1heF9hcnJheV9zaXplLCBpdCBpc1xuICAgYWN0dWFsbHkgZmFzdGVyIHRvIHVzZSB0aGUgZm9sbG93aW5nLCBidXQgaXQgbWlnaHQgYWxzbyB1c2UgbW9yZSBtZW1vcnlcbiAgIGJlY2F1c2UgdGhlIGFyZ3VtZW50IGxpc3QgY2Fubm90IGJlIGRlYWxsb2NhdGVkIGluY3JlbWVudGFsbHkuXG5cbiAgIEFsc28sIHRoZXJlIHNlZW1zIHRvIGJlIGEgYnVnIGluIHRoaXMgY29kZSBvciBpbiB0aGVcbiAgIGltcGxlbWVudGF0aW9uIG9mIG9ial90cnVuY2F0ZS5cblxuZXh0ZXJuYWwgb2JqX3RydW5jYXRlIDogJ2EgYXJyYXkgLT4gaW50IC0+IHVuaXQgPSBcImNhbWxfb2JqX3RydW5jYXRlXCJcblxubGV0IGFycmF5X3RvX2xpc3RfaW5fcGxhY2UgYSA9XG4gIGxldCBsID0gQXJyYXkubGVuZ3RoIGEgaW5cbiAgbGV0IHJlYyBsb29wIGFjY3UgbiBwID1cbiAgICBpZiBwIDw9IDAgdGhlbiBhY2N1IGVsc2UgYmVnaW5cbiAgICAgIGlmIHAgPSBuIHRoZW4gYmVnaW5cbiAgICAgICAgb2JqX3RydW5jYXRlIGEgcDtcbiAgICAgICAgbG9vcCAoYS4ocC0xKSA6OiBhY2N1KSAobi0xMDAwKSAocC0xKVxuICAgICAgZW5kIGVsc2UgYmVnaW5cbiAgICAgICAgbG9vcCAoYS4ocC0xKSA6OiBhY2N1KSBuIChwLTEpXG4gICAgICBlbmRcbiAgICBlbmRcbiAgaW5cbiAgbG9vcCBbXSAobC0xMDAwKSBsXG5cblxubGV0IHN0YWJsZV9zb3J0IGNtcCBsID1cbiAgbGV0IGEgPSBBcnJheS5vZl9saXN0IGwgaW5cbiAgQXJyYXkuc3RhYmxlX3NvcnQgY21wIGE7XG4gIGFycmF5X3RvX2xpc3RfaW5fcGxhY2UgYVxuXG4qKVxuXG5cbigqKiBzb3J0aW5nICsgcmVtb3ZpbmcgZHVwbGljYXRlcyAqKVxuXG5sZXQgc29ydF91bmlxIGNtcCBsID1cbiAgbGV0IHJlYyByZXZfbWVyZ2UgbDEgbDIgYWNjdSA9XG4gICAgbWF0Y2ggbDEsIGwyIHdpdGhcbiAgICB8IFtdLCBsMiAtPiByZXZfYXBwZW5kIGwyIGFjY3VcbiAgICB8IGwxLCBbXSAtPiByZXZfYXBwZW5kIGwxIGFjY3VcbiAgICB8IGgxOjp0MSwgaDI6OnQyIC0+XG4gICAgICAgIGxldCBjID0gY21wIGgxIGgyIGluXG4gICAgICAgIGlmIGMgPSAwIHRoZW4gcmV2X21lcmdlIHQxIHQyIChoMTo6YWNjdSlcbiAgICAgICAgZWxzZSBpZiBjIDwgMFxuICAgICAgICB0aGVuIHJldl9tZXJnZSB0MSBsMiAoaDE6OmFjY3UpXG4gICAgICAgIGVsc2UgcmV2X21lcmdlIGwxIHQyIChoMjo6YWNjdSlcbiAgaW5cbiAgbGV0IHJlYyByZXZfbWVyZ2VfcmV2IGwxIGwyIGFjY3UgPVxuICAgIG1hdGNoIGwxLCBsMiB3aXRoXG4gICAgfCBbXSwgbDIgLT4gcmV2X2FwcGVuZCBsMiBhY2N1XG4gICAgfCBsMSwgW10gLT4gcmV2X2FwcGVuZCBsMSBhY2N1XG4gICAgfCBoMTo6dDEsIGgyOjp0MiAtPlxuICAgICAgICBsZXQgYyA9IGNtcCBoMSBoMiBpblxuICAgICAgICBpZiBjID0gMCB0aGVuIHJldl9tZXJnZV9yZXYgdDEgdDIgKGgxOjphY2N1KVxuICAgICAgICBlbHNlIGlmIGMgPiAwXG4gICAgICAgIHRoZW4gcmV2X21lcmdlX3JldiB0MSBsMiAoaDE6OmFjY3UpXG4gICAgICAgIGVsc2UgcmV2X21lcmdlX3JldiBsMSB0MiAoaDI6OmFjY3UpXG4gIGluXG4gIGxldCByZWMgc29ydCBuIGwgPVxuICAgIG1hdGNoIG4sIGwgd2l0aFxuICAgIHwgMiwgeDEgOjogeDIgOjogdGwgLT5cbiAgICAgICAgbGV0IHMgPVxuICAgICAgICAgIGxldCBjID0gY21wIHgxIHgyIGluXG4gICAgICAgICAgaWYgYyA9IDAgdGhlbiBbeDFdIGVsc2UgaWYgYyA8IDAgdGhlbiBbeDE7IHgyXSBlbHNlIFt4MjsgeDFdXG4gICAgICAgIGluXG4gICAgICAgIChzLCB0bClcbiAgICB8IDMsIHgxIDo6IHgyIDo6IHgzIDo6IHRsIC0+XG4gICAgICAgIGxldCBzID1cbiAgICAgICAgICBsZXQgYyA9IGNtcCB4MSB4MiBpblxuICAgICAgICAgIGlmIGMgPSAwIHRoZW5cbiAgICAgICAgICAgIGxldCBjID0gY21wIHgyIHgzIGluXG4gICAgICAgICAgICBpZiBjID0gMCB0aGVuIFt4Ml0gZWxzZSBpZiBjIDwgMCB0aGVuIFt4MjsgeDNdIGVsc2UgW3gzOyB4Ml1cbiAgICAgICAgICBlbHNlIGlmIGMgPCAwIHRoZW5cbiAgICAgICAgICAgIGxldCBjID0gY21wIHgyIHgzIGluXG4gICAgICAgICAgICBpZiBjID0gMCB0aGVuIFt4MTsgeDJdXG4gICAgICAgICAgICBlbHNlIGlmIGMgPCAwIHRoZW4gW3gxOyB4MjsgeDNdXG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgIGxldCBjID0gY21wIHgxIHgzIGluXG4gICAgICAgICAgICAgIGlmIGMgPSAwIHRoZW4gW3gxOyB4Ml1cbiAgICAgICAgICAgICAgZWxzZSBpZiBjIDwgMCB0aGVuIFt4MTsgeDM7IHgyXVxuICAgICAgICAgICAgICBlbHNlIFt4MzsgeDE7IHgyXVxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGxldCBjID0gY21wIHgxIHgzIGluXG4gICAgICAgICAgICBpZiBjID0gMCB0aGVuIFt4MjsgeDFdXG4gICAgICAgICAgICBlbHNlIGlmIGMgPCAwIHRoZW4gW3gyOyB4MTsgeDNdXG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgIGxldCBjID0gY21wIHgyIHgzIGluXG4gICAgICAgICAgICAgIGlmIGMgPSAwIHRoZW4gW3gyOyB4MV1cbiAgICAgICAgICAgICAgZWxzZSBpZiBjIDwgMCB0aGVuIFt4MjsgeDM7IHgxXVxuICAgICAgICAgICAgICBlbHNlIFt4MzsgeDI7IHgxXVxuICAgICAgICBpblxuICAgICAgICAocywgdGwpXG4gICAgfCBuLCBsIC0+XG4gICAgICAgIGxldCBuMSA9IG4gYXNyIDEgaW5cbiAgICAgICAgbGV0IG4yID0gbiAtIG4xIGluXG4gICAgICAgIGxldCBzMSwgbDIgPSByZXZfc29ydCBuMSBsIGluXG4gICAgICAgIGxldCBzMiwgdGwgPSByZXZfc29ydCBuMiBsMiBpblxuICAgICAgICAocmV2X21lcmdlX3JldiBzMSBzMiBbXSwgdGwpXG4gIGFuZCByZXZfc29ydCBuIGwgPVxuICAgIG1hdGNoIG4sIGwgd2l0aFxuICAgIHwgMiwgeDEgOjogeDIgOjogdGwgLT5cbiAgICAgICAgbGV0IHMgPVxuICAgICAgICAgIGxldCBjID0gY21wIHgxIHgyIGluXG4gICAgICAgICAgaWYgYyA9IDAgdGhlbiBbeDFdIGVsc2UgaWYgYyA+IDAgdGhlbiBbeDE7IHgyXSBlbHNlIFt4MjsgeDFdXG4gICAgICAgIGluXG4gICAgICAgIChzLCB0bClcbiAgICB8IDMsIHgxIDo6IHgyIDo6IHgzIDo6IHRsIC0+XG4gICAgICAgIGxldCBzID1cbiAgICAgICAgICBsZXQgYyA9IGNtcCB4MSB4MiBpblxuICAgICAgICAgIGlmIGMgPSAwIHRoZW5cbiAgICAgICAgICAgIGxldCBjID0gY21wIHgyIHgzIGluXG4gICAgICAgICAgICBpZiBjID0gMCB0aGVuIFt4Ml0gZWxzZSBpZiBjID4gMCB0aGVuIFt4MjsgeDNdIGVsc2UgW3gzOyB4Ml1cbiAgICAgICAgICBlbHNlIGlmIGMgPiAwIHRoZW5cbiAgICAgICAgICAgIGxldCBjID0gY21wIHgyIHgzIGluXG4gICAgICAgICAgICBpZiBjID0gMCB0aGVuIFt4MTsgeDJdXG4gICAgICAgICAgICBlbHNlIGlmIGMgPiAwIHRoZW4gW3gxOyB4MjsgeDNdXG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgIGxldCBjID0gY21wIHgxIHgzIGluXG4gICAgICAgICAgICAgIGlmIGMgPSAwIHRoZW4gW3gxOyB4Ml1cbiAgICAgICAgICAgICAgZWxzZSBpZiBjID4gMCB0aGVuIFt4MTsgeDM7IHgyXVxuICAgICAgICAgICAgICBlbHNlIFt4MzsgeDE7IHgyXVxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGxldCBjID0gY21wIHgxIHgzIGluXG4gICAgICAgICAgICBpZiBjID0gMCB0aGVuIFt4MjsgeDFdXG4gICAgICAgICAgICBlbHNlIGlmIGMgPiAwIHRoZW4gW3gyOyB4MTsgeDNdXG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgIGxldCBjID0gY21wIHgyIHgzIGluXG4gICAgICAgICAgICAgIGlmIGMgPSAwIHRoZW4gW3gyOyB4MV1cbiAgICAgICAgICAgICAgZWxzZSBpZiBjID4gMCB0aGVuIFt4MjsgeDM7IHgxXVxuICAgICAgICAgICAgICBlbHNlIFt4MzsgeDI7IHgxXVxuICAgICAgICBpblxuICAgICAgICAocywgdGwpXG4gICAgfCBuLCBsIC0+XG4gICAgICAgIGxldCBuMSA9IG4gYXNyIDEgaW5cbiAgICAgICAgbGV0IG4yID0gbiAtIG4xIGluXG4gICAgICAgIGxldCBzMSwgbDIgPSBzb3J0IG4xIGwgaW5cbiAgICAgICAgbGV0IHMyLCB0bCA9IHNvcnQgbjIgbDIgaW5cbiAgICAgICAgKHJldl9tZXJnZSBzMSBzMiBbXSwgdGwpXG4gIGluXG4gIGxldCBsZW4gPSBsZW5ndGggbCBpblxuICBpZiBsZW4gPCAyIHRoZW4gbCBlbHNlIGZzdCAoc29ydCBsZW4gbClcblxuXG5sZXQgcmVjIGNvbXBhcmVfbGVuZ3RocyBsMSBsMiA9XG4gIG1hdGNoIGwxLCBsMiB3aXRoXG4gIHwgW10sIFtdIC0+IDBcbiAgfCBbXSwgXyAtPiAtMVxuICB8IF8sIFtdIC0+IDFcbiAgfCBfIDo6IGwxLCBfIDo6IGwyIC0+IGNvbXBhcmVfbGVuZ3RocyBsMSBsMlxuOztcblxubGV0IHJlYyBjb21wYXJlX2xlbmd0aF93aXRoIGwgbiA9XG4gIG1hdGNoIGwgd2l0aFxuICB8IFtdIC0+XG4gICAgaWYgbiA9IDAgdGhlbiAwIGVsc2VcbiAgICAgIGlmIG4gPiAwIHRoZW4gLTEgZWxzZSAxXG4gIHwgXyA6OiBsIC0+XG4gICAgaWYgbiA8PSAwIHRoZW4gMSBlbHNlXG4gICAgICBjb21wYXJlX2xlbmd0aF93aXRoIGwgKG4tMSlcbjs7XG5cbigqKiB7MSBDb21wYXJpc29ufSAqKVxuXG4oKiBOb3RlOiB3ZSBhcmUgKm5vdCogc2hvcnRjdXR0aW5nIHRoZSBsaXN0IGJ5IHVzaW5nXG4gICBbTGlzdC5jb21wYXJlX2xlbmd0aHNdIGZpcnN0OyB0aGlzIG1heSBiZSBzbG93ZXIgb24gbG9uZyBsaXN0c1xuICAgaW1tZWRpYXRlbHkgc3RhcnQgd2l0aCBkaXN0aW5jdCBlbGVtZW50cy4gSXQgaXMgYWxzbyBpbmNvcnJlY3QgZm9yXG4gICBbY29tcGFyZV0gYmVsb3csIGFuZCBpdCBpcyBiZXR0ZXIgKHByaW5jaXBsZSBvZiBsZWFzdCBzdXJwcmlzZSkgdG9cbiAgIHVzZSB0aGUgc2FtZSBhcHByb2FjaCBmb3IgYm90aCBmdW5jdGlvbnMuICopXG5sZXQgcmVjIGVxdWFsIGVxIGwxIGwyID1cbiAgbWF0Y2ggbDEsIGwyIHdpdGhcbiAgfCBbXSwgW10gLT4gdHJ1ZVxuICB8IFtdLCBfOjpfIHwgXzo6XywgW10gLT4gZmFsc2VcbiAgfCBhMTo6bDEsIGEyOjpsMiAtPiBlcSBhMSBhMiAmJiBlcXVhbCBlcSBsMSBsMlxuXG5sZXQgcmVjIGNvbXBhcmUgY21wIGwxIGwyID1cbiAgbWF0Y2ggbDEsIGwyIHdpdGhcbiAgfCBbXSwgW10gLT4gMFxuICB8IFtdLCBfOjpfIC0+IC0xXG4gIHwgXzo6XywgW10gLT4gMVxuICB8IGExOjpsMSwgYTI6OmwyIC0+XG4gICAgbGV0IGMgPSBjbXAgYTEgYTIgaW5cbiAgICBpZiBjIDw+IDAgdGhlbiBjXG4gICAgZWxzZSBjb21wYXJlIGNtcCBsMSBsMlxuXG4oKiogezEgSXRlcmF0b3JzfSAqKVxuXG5sZXQgdG9fc2VxIGwgPVxuICBsZXQgcmVjIGF1eCBsICgpID0gbWF0Y2ggbCB3aXRoXG4gICAgfCBbXSAtPiBTZXEuTmlsXG4gICAgfCB4IDo6IHRhaWwgLT4gU2VxLkNvbnMgKHgsIGF1eCB0YWlsKVxuICBpblxuICBhdXggbFxuXG5sZXQgb2Zfc2VxIHNlcSA9XG4gIGxldCByZWMgZGlyZWN0IGRlcHRoIHNlcSA6IF8gbGlzdCA9XG4gICAgaWYgZGVwdGg9MFxuICAgIHRoZW5cbiAgICAgIFNlcS5mb2xkX2xlZnQgKGZ1biBhY2MgeCAtPiB4OjphY2MpIFtdIHNlcVxuICAgICAgfD4gcmV2ICgqIHRhaWxyZWMgKilcbiAgICBlbHNlIG1hdGNoIHNlcSgpIHdpdGhcbiAgICAgIHwgU2VxLk5pbCAtPiBbXVxuICAgICAgfCBTZXEuQ29ucyAoeCwgbmV4dCkgLT4geCA6OiBkaXJlY3QgKGRlcHRoLTEpIG5leHRcbiAgaW5cbiAgZGlyZWN0IDUwMCBzZXFcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBPQ2FtbCBwcm9ncmFtbWVycyAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMTggSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxudHlwZSB0ID0gaW50XG5cbmxldCB6ZXJvID0gMFxubGV0IG9uZSA9IDFcbmxldCBtaW51c19vbmUgPSAtMVxuZXh0ZXJuYWwgbmVnIDogaW50IC0+IGludCA9IFwiJW5lZ2ludFwiXG5leHRlcm5hbCBhZGQgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWFkZGludFwiXG5leHRlcm5hbCBzdWIgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJXN1YmludFwiXG5leHRlcm5hbCBtdWwgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJW11bGludFwiXG5leHRlcm5hbCBkaXYgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWRpdmludFwiXG5leHRlcm5hbCByZW0gOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJW1vZGludFwiXG5leHRlcm5hbCBzdWNjIDogaW50IC0+IGludCA9IFwiJXN1Y2NpbnRcIlxuZXh0ZXJuYWwgcHJlZCA6IGludCAtPiBpbnQgPSBcIiVwcmVkaW50XCJcbmxldCBhYnMgeCA9IGlmIHggPj0gMCB0aGVuIHggZWxzZSAteFxubGV0IG1heF9pbnQgPSAoLTEpIGxzciAxXG5sZXQgbWluX2ludCA9IG1heF9pbnQgKyAxXG5leHRlcm5hbCBsb2dhbmQgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWFuZGludFwiXG5leHRlcm5hbCBsb2dvciA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlb3JpbnRcIlxuZXh0ZXJuYWwgbG9neG9yIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiV4b3JpbnRcIlxubGV0IGxvZ25vdCB4ID0gbG9neG9yIHggKC0xKVxuZXh0ZXJuYWwgc2hpZnRfbGVmdCA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlbHNsaW50XCJcbmV4dGVybmFsIHNoaWZ0X3JpZ2h0IDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVhc3JpbnRcIlxuZXh0ZXJuYWwgc2hpZnRfcmlnaHRfbG9naWNhbCA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlbHNyaW50XCJcbmxldCBlcXVhbCA6IGludCAtPiBpbnQgLT4gYm9vbCA9ICggPSApXG5sZXQgY29tcGFyZSA6IGludCAtPiBpbnQgLT4gaW50ID0gU3RkbGliLmNvbXBhcmVcbmxldCBtaW4geCB5IDogdCA9IGlmIHggPD0geSB0aGVuIHggZWxzZSB5XG5sZXQgbWF4IHggeSA6IHQgPSBpZiB4ID49IHkgdGhlbiB4IGVsc2UgeVxuZXh0ZXJuYWwgdG9fZmxvYXQgOiBpbnQgLT4gZmxvYXQgPSBcIiVmbG9hdG9maW50XCJcbmV4dGVybmFsIG9mX2Zsb2F0IDogZmxvYXQgLT4gaW50ID0gXCIlaW50b2ZmbG9hdFwiXG5cbigqXG5leHRlcm5hbCBpbnRfb2Zfc3RyaW5nIDogc3RyaW5nIC0+IGludCA9IFwiY2FtbF9pbnRfb2Zfc3RyaW5nXCJcbmxldCBvZl9zdHJpbmcgcyA9IHRyeSBTb21lIChpbnRfb2Zfc3RyaW5nIHMpIHdpdGggRmFpbHVyZSBfIC0+IE5vbmVcbiopXG5cbmV4dGVybmFsIGZvcm1hdF9pbnQgOiBzdHJpbmcgLT4gaW50IC0+IHN0cmluZyA9IFwiY2FtbF9mb3JtYXRfaW50XCJcbmxldCB0b19zdHJpbmcgeCA9IGZvcm1hdF9pbnQgXCIlZFwiIHhcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogQnl0ZSBzZXF1ZW5jZSBvcGVyYXRpb25zICopXG5cbigqIFdBUk5JTkc6IFNvbWUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZSBhcmUgZHVwbGljYXRlZCBpbiBzdHJpbmcubWwgZm9yXG4gICBlZmZpY2llbmN5IHJlYXNvbnMuIFdoZW4geW91IG1vZGlmeSB0aGUgb25lIGluIHRoaXMgZmlsZSB5b3UgbmVlZCB0b1xuICAgbW9kaWZ5IGl0cyBkdXBsaWNhdGUgaW4gc3RyaW5nLm1sLlxuICAgVGhlc2UgZnVuY3Rpb25zIGhhdmUgYSBcImR1cGxpY2F0ZWRcIiBjb21tZW50IGFib3ZlIHRoZWlyIGRlZmluaXRpb24uXG4qKVxuXG5leHRlcm5hbCBsZW5ndGggOiBieXRlcyAtPiBpbnQgPSBcIiVieXRlc19sZW5ndGhcIlxuZXh0ZXJuYWwgc3RyaW5nX2xlbmd0aCA6IHN0cmluZyAtPiBpbnQgPSBcIiVzdHJpbmdfbGVuZ3RoXCJcbmV4dGVybmFsIGdldCA6IGJ5dGVzIC0+IGludCAtPiBjaGFyID0gXCIlYnl0ZXNfc2FmZV9nZXRcIlxuZXh0ZXJuYWwgc2V0IDogYnl0ZXMgLT4gaW50IC0+IGNoYXIgLT4gdW5pdCA9IFwiJWJ5dGVzX3NhZmVfc2V0XCJcbmV4dGVybmFsIGNyZWF0ZSA6IGludCAtPiBieXRlcyA9IFwiY2FtbF9jcmVhdGVfYnl0ZXNcIlxuZXh0ZXJuYWwgdW5zYWZlX2dldCA6IGJ5dGVzIC0+IGludCAtPiBjaGFyID0gXCIlYnl0ZXNfdW5zYWZlX2dldFwiXG5leHRlcm5hbCB1bnNhZmVfc2V0IDogYnl0ZXMgLT4gaW50IC0+IGNoYXIgLT4gdW5pdCA9IFwiJWJ5dGVzX3Vuc2FmZV9zZXRcIlxuZXh0ZXJuYWwgdW5zYWZlX2ZpbGwgOiBieXRlcyAtPiBpbnQgLT4gaW50IC0+IGNoYXIgLT4gdW5pdFxuICAgICAgICAgICAgICAgICAgICAgPSBcImNhbWxfZmlsbF9ieXRlc1wiIFtAQG5vYWxsb2NdXG5leHRlcm5hbCB1bnNhZmVfdG9fc3RyaW5nIDogYnl0ZXMgLT4gc3RyaW5nID0gXCIlYnl0ZXNfdG9fc3RyaW5nXCJcbmV4dGVybmFsIHVuc2FmZV9vZl9zdHJpbmcgOiBzdHJpbmcgLT4gYnl0ZXMgPSBcIiVieXRlc19vZl9zdHJpbmdcIlxuXG5leHRlcm5hbCB1bnNhZmVfYmxpdCA6IGJ5dGVzIC0+IGludCAtPiBieXRlcyAtPiBpbnQgLT4gaW50IC0+IHVuaXRcbiAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX2JsaXRfYnl0ZXNcIiBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgdW5zYWZlX2JsaXRfc3RyaW5nIDogc3RyaW5nIC0+IGludCAtPiBieXRlcyAtPiBpbnQgLT4gaW50IC0+IHVuaXRcbiAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX2JsaXRfc3RyaW5nXCIgW0BAbm9hbGxvY11cblxubGV0IG1ha2UgbiBjID1cbiAgbGV0IHMgPSBjcmVhdGUgbiBpblxuICB1bnNhZmVfZmlsbCBzIDAgbiBjO1xuICBzXG5cbmxldCBpbml0IG4gZiA9XG4gIGxldCBzID0gY3JlYXRlIG4gaW5cbiAgZm9yIGkgPSAwIHRvIG4gLSAxIGRvXG4gICAgdW5zYWZlX3NldCBzIGkgKGYgaSlcbiAgZG9uZTtcbiAgc1xuXG5sZXQgZW1wdHkgPSBjcmVhdGUgMFxuXG5sZXQgY29weSBzID1cbiAgbGV0IGxlbiA9IGxlbmd0aCBzIGluXG4gIGxldCByID0gY3JlYXRlIGxlbiBpblxuICB1bnNhZmVfYmxpdCBzIDAgciAwIGxlbjtcbiAgclxuXG5sZXQgdG9fc3RyaW5nIGIgPSB1bnNhZmVfdG9fc3RyaW5nIChjb3B5IGIpXG5sZXQgb2Zfc3RyaW5nIHMgPSBjb3B5ICh1bnNhZmVfb2Zfc3RyaW5nIHMpXG5cbmxldCBzdWIgcyBvZnMgbGVuID1cbiAgaWYgb2ZzIDwgMCB8fCBsZW4gPCAwIHx8IG9mcyA+IGxlbmd0aCBzIC0gbGVuXG4gIHRoZW4gaW52YWxpZF9hcmcgXCJTdHJpbmcuc3ViIC8gQnl0ZXMuc3ViXCJcbiAgZWxzZSBiZWdpblxuICAgIGxldCByID0gY3JlYXRlIGxlbiBpblxuICAgIHVuc2FmZV9ibGl0IHMgb2ZzIHIgMCBsZW47XG4gICAgclxuICBlbmRcblxubGV0IHN1Yl9zdHJpbmcgYiBvZnMgbGVuID0gdW5zYWZlX3RvX3N0cmluZyAoc3ViIGIgb2ZzIGxlbilcblxuKCogYWRkaXRpb24gd2l0aCBhbiBvdmVyZmxvdyBjaGVjayAqKVxubGV0ICgrKykgYSBiID1cbiAgbGV0IGMgPSBhICsgYiBpblxuICBtYXRjaCBhIDwgMCwgYiA8IDAsIGMgPCAwIHdpdGhcbiAgfCB0cnVlICwgdHJ1ZSAsIGZhbHNlXG4gIHwgZmFsc2UsIGZhbHNlLCB0cnVlICAtPiBpbnZhbGlkX2FyZyBcIkJ5dGVzLmV4dGVuZFwiICgqIG92ZXJmbG93ICopXG4gIHwgXyAtPiBjXG5cbmxldCBleHRlbmQgcyBsZWZ0IHJpZ2h0ID1cbiAgbGV0IGxlbiA9IGxlbmd0aCBzICsrIGxlZnQgKysgcmlnaHQgaW5cbiAgbGV0IHIgPSBjcmVhdGUgbGVuIGluXG4gIGxldCAoc3Jjb2ZmLCBkc3RvZmYpID0gaWYgbGVmdCA8IDAgdGhlbiAtbGVmdCwgMCBlbHNlIDAsIGxlZnQgaW5cbiAgbGV0IGNweWxlbiA9IEludC5taW4gKGxlbmd0aCBzIC0gc3Jjb2ZmKSAobGVuIC0gZHN0b2ZmKSBpblxuICBpZiBjcHlsZW4gPiAwIHRoZW4gdW5zYWZlX2JsaXQgcyBzcmNvZmYgciBkc3RvZmYgY3B5bGVuO1xuICByXG5cbmxldCBmaWxsIHMgb2ZzIGxlbiBjID1cbiAgaWYgb2ZzIDwgMCB8fCBsZW4gPCAwIHx8IG9mcyA+IGxlbmd0aCBzIC0gbGVuXG4gIHRoZW4gaW52YWxpZF9hcmcgXCJTdHJpbmcuZmlsbCAvIEJ5dGVzLmZpbGxcIlxuICBlbHNlIHVuc2FmZV9maWxsIHMgb2ZzIGxlbiBjXG5cbmxldCBibGl0IHMxIG9mczEgczIgb2ZzMiBsZW4gPVxuICBpZiBsZW4gPCAwIHx8IG9mczEgPCAwIHx8IG9mczEgPiBsZW5ndGggczEgLSBsZW5cbiAgICAgICAgICAgICB8fCBvZnMyIDwgMCB8fCBvZnMyID4gbGVuZ3RoIHMyIC0gbGVuXG4gIHRoZW4gaW52YWxpZF9hcmcgXCJCeXRlcy5ibGl0XCJcbiAgZWxzZSB1bnNhZmVfYmxpdCBzMSBvZnMxIHMyIG9mczIgbGVuXG5cbmxldCBibGl0X3N0cmluZyBzMSBvZnMxIHMyIG9mczIgbGVuID1cbiAgaWYgbGVuIDwgMCB8fCBvZnMxIDwgMCB8fCBvZnMxID4gc3RyaW5nX2xlbmd0aCBzMSAtIGxlblxuICAgICAgICAgICAgIHx8IG9mczIgPCAwIHx8IG9mczIgPiBsZW5ndGggczIgLSBsZW5cbiAgdGhlbiBpbnZhbGlkX2FyZyBcIlN0cmluZy5ibGl0IC8gQnl0ZXMuYmxpdF9zdHJpbmdcIlxuICBlbHNlIHVuc2FmZV9ibGl0X3N0cmluZyBzMSBvZnMxIHMyIG9mczIgbGVuXG5cbigqIGR1cGxpY2F0ZWQgaW4gc3RyaW5nLm1sICopXG5sZXQgaXRlciBmIGEgPVxuICBmb3IgaSA9IDAgdG8gbGVuZ3RoIGEgLSAxIGRvIGYodW5zYWZlX2dldCBhIGkpIGRvbmVcblxuKCogZHVwbGljYXRlZCBpbiBzdHJpbmcubWwgKilcbmxldCBpdGVyaSBmIGEgPVxuICBmb3IgaSA9IDAgdG8gbGVuZ3RoIGEgLSAxIGRvIGYgaSAodW5zYWZlX2dldCBhIGkpIGRvbmVcblxubGV0IGVuc3VyZV9nZSAoeDppbnQpIHkgPSBpZiB4ID49IHkgdGhlbiB4IGVsc2UgaW52YWxpZF9hcmcgXCJCeXRlcy5jb25jYXRcIlxuXG5sZXQgcmVjIHN1bV9sZW5ndGhzIGFjYyBzZXBsZW4gPSBmdW5jdGlvblxuICB8IFtdIC0+IGFjY1xuICB8IGhkIDo6IFtdIC0+IGxlbmd0aCBoZCArIGFjY1xuICB8IGhkIDo6IHRsIC0+IHN1bV9sZW5ndGhzIChlbnN1cmVfZ2UgKGxlbmd0aCBoZCArIHNlcGxlbiArIGFjYykgYWNjKSBzZXBsZW4gdGxcblxubGV0IHJlYyB1bnNhZmVfYmxpdHMgZHN0IHBvcyBzZXAgc2VwbGVuID0gZnVuY3Rpb25cbiAgICBbXSAtPiBkc3RcbiAgfCBoZCA6OiBbXSAtPlxuICAgIHVuc2FmZV9ibGl0IGhkIDAgZHN0IHBvcyAobGVuZ3RoIGhkKTsgZHN0XG4gIHwgaGQgOjogdGwgLT5cbiAgICB1bnNhZmVfYmxpdCBoZCAwIGRzdCBwb3MgKGxlbmd0aCBoZCk7XG4gICAgdW5zYWZlX2JsaXQgc2VwIDAgZHN0IChwb3MgKyBsZW5ndGggaGQpIHNlcGxlbjtcbiAgICB1bnNhZmVfYmxpdHMgZHN0IChwb3MgKyBsZW5ndGggaGQgKyBzZXBsZW4pIHNlcCBzZXBsZW4gdGxcblxubGV0IGNvbmNhdCBzZXAgPSBmdW5jdGlvblxuICAgIFtdIC0+IGVtcHR5XG4gIHwgbCAtPiBsZXQgc2VwbGVuID0gbGVuZ3RoIHNlcCBpblxuICAgICAgICAgIHVuc2FmZV9ibGl0c1xuICAgICAgICAgICAgKGNyZWF0ZSAoc3VtX2xlbmd0aHMgMCBzZXBsZW4gbCkpXG4gICAgICAgICAgICAwIHNlcCBzZXBsZW4gbFxuXG5sZXQgY2F0IHMxIHMyID1cbiAgbGV0IGwxID0gbGVuZ3RoIHMxIGluXG4gIGxldCBsMiA9IGxlbmd0aCBzMiBpblxuICBsZXQgciA9IGNyZWF0ZSAobDEgKyBsMikgaW5cbiAgdW5zYWZlX2JsaXQgczEgMCByIDAgbDE7XG4gIHVuc2FmZV9ibGl0IHMyIDAgciBsMSBsMjtcbiAgclxuXG5cbmV4dGVybmFsIGNoYXJfY29kZTogY2hhciAtPiBpbnQgPSBcIiVpZGVudGl0eVwiXG5leHRlcm5hbCBjaGFyX2NocjogaW50IC0+IGNoYXIgPSBcIiVpZGVudGl0eVwiXG5cbmxldCBpc19zcGFjZSA9IGZ1bmN0aW9uXG4gIHwgJyAnIHwgJ1xcMDEyJyB8ICdcXG4nIHwgJ1xccicgfCAnXFx0JyAtPiB0cnVlXG4gIHwgXyAtPiBmYWxzZVxuXG5sZXQgdHJpbSBzID1cbiAgbGV0IGxlbiA9IGxlbmd0aCBzIGluXG4gIGxldCBpID0gcmVmIDAgaW5cbiAgd2hpbGUgIWkgPCBsZW4gJiYgaXNfc3BhY2UgKHVuc2FmZV9nZXQgcyAhaSkgZG9cbiAgICBpbmNyIGlcbiAgZG9uZTtcbiAgbGV0IGogPSByZWYgKGxlbiAtIDEpIGluXG4gIHdoaWxlICFqID49ICFpICYmIGlzX3NwYWNlICh1bnNhZmVfZ2V0IHMgIWopIGRvXG4gICAgZGVjciBqXG4gIGRvbmU7XG4gIGlmICFqID49ICFpIHRoZW5cbiAgICBzdWIgcyAhaSAoIWogLSAhaSArIDEpXG4gIGVsc2VcbiAgICBlbXB0eVxuXG5sZXQgZXNjYXBlZCBzID1cbiAgbGV0IG4gPSByZWYgMCBpblxuICBmb3IgaSA9IDAgdG8gbGVuZ3RoIHMgLSAxIGRvXG4gICAgbiA6PSAhbiArXG4gICAgICAobWF0Y2ggdW5zYWZlX2dldCBzIGkgd2l0aFxuICAgICAgIHwgJ1xcXCInIHwgJ1xcXFwnIHwgJ1xcbicgfCAnXFx0JyB8ICdcXHInIHwgJ1xcYicgLT4gMlxuICAgICAgIHwgJyAnIC4uICd+JyAtPiAxXG4gICAgICAgfCBfIC0+IDQpXG4gIGRvbmU7XG4gIGlmICFuID0gbGVuZ3RoIHMgdGhlbiBjb3B5IHMgZWxzZSBiZWdpblxuICAgIGxldCBzJyA9IGNyZWF0ZSAhbiBpblxuICAgIG4gOj0gMDtcbiAgICBmb3IgaSA9IDAgdG8gbGVuZ3RoIHMgLSAxIGRvXG4gICAgICBiZWdpbiBtYXRjaCB1bnNhZmVfZ2V0IHMgaSB3aXRoXG4gICAgICB8ICgnXFxcIicgfCAnXFxcXCcpIGFzIGMgLT5cbiAgICAgICAgICB1bnNhZmVfc2V0IHMnICFuICdcXFxcJzsgaW5jciBuOyB1bnNhZmVfc2V0IHMnICFuIGNcbiAgICAgIHwgJ1xcbicgLT5cbiAgICAgICAgICB1bnNhZmVfc2V0IHMnICFuICdcXFxcJzsgaW5jciBuOyB1bnNhZmVfc2V0IHMnICFuICduJ1xuICAgICAgfCAnXFx0JyAtPlxuICAgICAgICAgIHVuc2FmZV9zZXQgcycgIW4gJ1xcXFwnOyBpbmNyIG47IHVuc2FmZV9zZXQgcycgIW4gJ3QnXG4gICAgICB8ICdcXHInIC0+XG4gICAgICAgICAgdW5zYWZlX3NldCBzJyAhbiAnXFxcXCc7IGluY3IgbjsgdW5zYWZlX3NldCBzJyAhbiAncidcbiAgICAgIHwgJ1xcYicgLT5cbiAgICAgICAgICB1bnNhZmVfc2V0IHMnICFuICdcXFxcJzsgaW5jciBuOyB1bnNhZmVfc2V0IHMnICFuICdiJ1xuICAgICAgfCAoJyAnIC4uICd+JykgYXMgYyAtPiB1bnNhZmVfc2V0IHMnICFuIGNcbiAgICAgIHwgYyAtPlxuICAgICAgICAgIGxldCBhID0gY2hhcl9jb2RlIGMgaW5cbiAgICAgICAgICB1bnNhZmVfc2V0IHMnICFuICdcXFxcJztcbiAgICAgICAgICBpbmNyIG47XG4gICAgICAgICAgdW5zYWZlX3NldCBzJyAhbiAoY2hhcl9jaHIgKDQ4ICsgYSAvIDEwMCkpO1xuICAgICAgICAgIGluY3IgbjtcbiAgICAgICAgICB1bnNhZmVfc2V0IHMnICFuIChjaGFyX2NociAoNDggKyAoYSAvIDEwKSBtb2QgMTApKTtcbiAgICAgICAgICBpbmNyIG47XG4gICAgICAgICAgdW5zYWZlX3NldCBzJyAhbiAoY2hhcl9jaHIgKDQ4ICsgYSBtb2QgMTApKTtcbiAgICAgIGVuZDtcbiAgICAgIGluY3IgblxuICAgIGRvbmU7XG4gICAgcydcbiAgZW5kXG5cbmxldCBtYXAgZiBzID1cbiAgbGV0IGwgPSBsZW5ndGggcyBpblxuICBpZiBsID0gMCB0aGVuIHMgZWxzZSBiZWdpblxuICAgIGxldCByID0gY3JlYXRlIGwgaW5cbiAgICBmb3IgaSA9IDAgdG8gbCAtIDEgZG8gdW5zYWZlX3NldCByIGkgKGYgKHVuc2FmZV9nZXQgcyBpKSkgZG9uZTtcbiAgICByXG4gIGVuZFxuXG5sZXQgbWFwaSBmIHMgPVxuICBsZXQgbCA9IGxlbmd0aCBzIGluXG4gIGlmIGwgPSAwIHRoZW4gcyBlbHNlIGJlZ2luXG4gICAgbGV0IHIgPSBjcmVhdGUgbCBpblxuICAgIGZvciBpID0gMCB0byBsIC0gMSBkbyB1bnNhZmVfc2V0IHIgaSAoZiBpICh1bnNhZmVfZ2V0IHMgaSkpIGRvbmU7XG4gICAgclxuICBlbmRcblxubGV0IGZvbGRfbGVmdCBmIHggYSA9XG4gIGxldCByID0gcmVmIHggaW5cbiAgZm9yIGkgPSAwIHRvIGxlbmd0aCBhIC0gMSBkb1xuICAgIHIgOj0gZiAhciAodW5zYWZlX2dldCBhIGkpXG4gIGRvbmU7XG4gICFyXG5cbmxldCBmb2xkX3JpZ2h0IGYgYSB4ID1cbiAgbGV0IHIgPSByZWYgeCBpblxuICBmb3IgaSA9IGxlbmd0aCBhIC0gMSBkb3dudG8gMCBkb1xuICAgIHIgOj0gZiAodW5zYWZlX2dldCBhIGkpICFyXG4gIGRvbmU7XG4gICFyXG5cbmxldCBleGlzdHMgcCBzID1cbiAgbGV0IG4gPSBsZW5ndGggcyBpblxuICBsZXQgcmVjIGxvb3AgaSA9XG4gICAgaWYgaSA9IG4gdGhlbiBmYWxzZVxuICAgIGVsc2UgaWYgcCAodW5zYWZlX2dldCBzIGkpIHRoZW4gdHJ1ZVxuICAgIGVsc2UgbG9vcCAoc3VjYyBpKSBpblxuICBsb29wIDBcblxubGV0IGZvcl9hbGwgcCBzID1cbiAgbGV0IG4gPSBsZW5ndGggcyBpblxuICBsZXQgcmVjIGxvb3AgaSA9XG4gICAgaWYgaSA9IG4gdGhlbiB0cnVlXG4gICAgZWxzZSBpZiBwICh1bnNhZmVfZ2V0IHMgaSkgdGhlbiBsb29wIChzdWNjIGkpXG4gICAgZWxzZSBmYWxzZSBpblxuICBsb29wIDBcblxubGV0IHVwcGVyY2FzZV9hc2NpaSBzID0gbWFwIENoYXIudXBwZXJjYXNlX2FzY2lpIHNcbmxldCBsb3dlcmNhc2VfYXNjaWkgcyA9IG1hcCBDaGFyLmxvd2VyY2FzZV9hc2NpaSBzXG5cbmxldCBhcHBseTEgZiBzID1cbiAgaWYgbGVuZ3RoIHMgPSAwIHRoZW4gcyBlbHNlIGJlZ2luXG4gICAgbGV0IHIgPSBjb3B5IHMgaW5cbiAgICB1bnNhZmVfc2V0IHIgMCAoZih1bnNhZmVfZ2V0IHMgMCkpO1xuICAgIHJcbiAgZW5kXG5cbmxldCBjYXBpdGFsaXplX2FzY2lpIHMgPSBhcHBseTEgQ2hhci51cHBlcmNhc2VfYXNjaWkgc1xubGV0IHVuY2FwaXRhbGl6ZV9hc2NpaSBzID0gYXBwbHkxIENoYXIubG93ZXJjYXNlX2FzY2lpIHNcblxuKCogZHVwbGljYXRlZCBpbiBzdHJpbmcubWwgKilcbmxldCBzdGFydHNfd2l0aCB+cHJlZml4IHMgPVxuICBsZXQgbGVuX3MgPSBsZW5ndGggc1xuICBhbmQgbGVuX3ByZSA9IGxlbmd0aCBwcmVmaXggaW5cbiAgbGV0IHJlYyBhdXggaSA9XG4gICAgaWYgaSA9IGxlbl9wcmUgdGhlbiB0cnVlXG4gICAgZWxzZSBpZiB1bnNhZmVfZ2V0IHMgaSA8PiB1bnNhZmVfZ2V0IHByZWZpeCBpIHRoZW4gZmFsc2VcbiAgICBlbHNlIGF1eCAoaSArIDEpXG4gIGluIGxlbl9zID49IGxlbl9wcmUgJiYgYXV4IDBcblxuKCogZHVwbGljYXRlZCBpbiBzdHJpbmcubWwgKilcbmxldCBlbmRzX3dpdGggfnN1ZmZpeCBzID1cbiAgbGV0IGxlbl9zID0gbGVuZ3RoIHNcbiAgYW5kIGxlbl9zdWYgPSBsZW5ndGggc3VmZml4IGluXG4gIGxldCBkaWZmID0gbGVuX3MgLSBsZW5fc3VmIGluXG4gIGxldCByZWMgYXV4IGkgPVxuICAgIGlmIGkgPSBsZW5fc3VmIHRoZW4gdHJ1ZVxuICAgIGVsc2UgaWYgdW5zYWZlX2dldCBzIChkaWZmICsgaSkgPD4gdW5zYWZlX2dldCBzdWZmaXggaSB0aGVuIGZhbHNlXG4gICAgZWxzZSBhdXggKGkgKyAxKVxuICBpbiBkaWZmID49IDAgJiYgYXV4IDBcblxuKCogZHVwbGljYXRlZCBpbiBzdHJpbmcubWwgKilcbmxldCByZWMgaW5kZXhfcmVjIHMgbGltIGkgYyA9XG4gIGlmIGkgPj0gbGltIHRoZW4gcmFpc2UgTm90X2ZvdW5kIGVsc2VcbiAgaWYgdW5zYWZlX2dldCBzIGkgPSBjIHRoZW4gaSBlbHNlIGluZGV4X3JlYyBzIGxpbSAoaSArIDEpIGNcblxuKCogZHVwbGljYXRlZCBpbiBzdHJpbmcubWwgKilcbmxldCBpbmRleCBzIGMgPSBpbmRleF9yZWMgcyAobGVuZ3RoIHMpIDAgY1xuXG4oKiBkdXBsaWNhdGVkIGluIHN0cmluZy5tbCAqKVxubGV0IHJlYyBpbmRleF9yZWNfb3B0IHMgbGltIGkgYyA9XG4gIGlmIGkgPj0gbGltIHRoZW4gTm9uZSBlbHNlXG4gIGlmIHVuc2FmZV9nZXQgcyBpID0gYyB0aGVuIFNvbWUgaSBlbHNlIGluZGV4X3JlY19vcHQgcyBsaW0gKGkgKyAxKSBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gc3RyaW5nLm1sICopXG5sZXQgaW5kZXhfb3B0IHMgYyA9IGluZGV4X3JlY19vcHQgcyAobGVuZ3RoIHMpIDAgY1xuXG4oKiBkdXBsaWNhdGVkIGluIHN0cmluZy5tbCAqKVxubGV0IGluZGV4X2Zyb20gcyBpIGMgPVxuICBsZXQgbCA9IGxlbmd0aCBzIGluXG4gIGlmIGkgPCAwIHx8IGkgPiBsIHRoZW4gaW52YWxpZF9hcmcgXCJTdHJpbmcuaW5kZXhfZnJvbSAvIEJ5dGVzLmluZGV4X2Zyb21cIiBlbHNlXG4gIGluZGV4X3JlYyBzIGwgaSBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gc3RyaW5nLm1sICopXG5sZXQgaW5kZXhfZnJvbV9vcHQgcyBpIGMgPVxuICBsZXQgbCA9IGxlbmd0aCBzIGluXG4gIGlmIGkgPCAwIHx8IGkgPiBsIHRoZW5cbiAgICBpbnZhbGlkX2FyZyBcIlN0cmluZy5pbmRleF9mcm9tX29wdCAvIEJ5dGVzLmluZGV4X2Zyb21fb3B0XCJcbiAgZWxzZVxuICAgIGluZGV4X3JlY19vcHQgcyBsIGkgY1xuXG4oKiBkdXBsaWNhdGVkIGluIHN0cmluZy5tbCAqKVxubGV0IHJlYyByaW5kZXhfcmVjIHMgaSBjID1cbiAgaWYgaSA8IDAgdGhlbiByYWlzZSBOb3RfZm91bmQgZWxzZVxuICBpZiB1bnNhZmVfZ2V0IHMgaSA9IGMgdGhlbiBpIGVsc2UgcmluZGV4X3JlYyBzIChpIC0gMSkgY1xuXG4oKiBkdXBsaWNhdGVkIGluIHN0cmluZy5tbCAqKVxubGV0IHJpbmRleCBzIGMgPSByaW5kZXhfcmVjIHMgKGxlbmd0aCBzIC0gMSkgY1xuXG4oKiBkdXBsaWNhdGVkIGluIHN0cmluZy5tbCAqKVxubGV0IHJpbmRleF9mcm9tIHMgaSBjID1cbiAgaWYgaSA8IC0xIHx8IGkgPj0gbGVuZ3RoIHMgdGhlblxuICAgIGludmFsaWRfYXJnIFwiU3RyaW5nLnJpbmRleF9mcm9tIC8gQnl0ZXMucmluZGV4X2Zyb21cIlxuICBlbHNlXG4gICAgcmluZGV4X3JlYyBzIGkgY1xuXG4oKiBkdXBsaWNhdGVkIGluIHN0cmluZy5tbCAqKVxubGV0IHJlYyByaW5kZXhfcmVjX29wdCBzIGkgYyA9XG4gIGlmIGkgPCAwIHRoZW4gTm9uZSBlbHNlXG4gIGlmIHVuc2FmZV9nZXQgcyBpID0gYyB0aGVuIFNvbWUgaSBlbHNlIHJpbmRleF9yZWNfb3B0IHMgKGkgLSAxKSBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gc3RyaW5nLm1sICopXG5sZXQgcmluZGV4X29wdCBzIGMgPSByaW5kZXhfcmVjX29wdCBzIChsZW5ndGggcyAtIDEpIGNcblxuKCogZHVwbGljYXRlZCBpbiBzdHJpbmcubWwgKilcbmxldCByaW5kZXhfZnJvbV9vcHQgcyBpIGMgPVxuICBpZiBpIDwgLTEgfHwgaSA+PSBsZW5ndGggcyB0aGVuXG4gICAgaW52YWxpZF9hcmcgXCJTdHJpbmcucmluZGV4X2Zyb21fb3B0IC8gQnl0ZXMucmluZGV4X2Zyb21fb3B0XCJcbiAgZWxzZVxuICAgIHJpbmRleF9yZWNfb3B0IHMgaSBjXG5cblxuKCogZHVwbGljYXRlZCBpbiBzdHJpbmcubWwgKilcbmxldCBjb250YWluc19mcm9tIHMgaSBjID1cbiAgbGV0IGwgPSBsZW5ndGggcyBpblxuICBpZiBpIDwgMCB8fCBpID4gbCB0aGVuXG4gICAgaW52YWxpZF9hcmcgXCJTdHJpbmcuY29udGFpbnNfZnJvbSAvIEJ5dGVzLmNvbnRhaW5zX2Zyb21cIlxuICBlbHNlXG4gICAgdHJ5IGlnbm9yZSAoaW5kZXhfcmVjIHMgbCBpIGMpOyB0cnVlIHdpdGggTm90X2ZvdW5kIC0+IGZhbHNlXG5cblxuKCogZHVwbGljYXRlZCBpbiBzdHJpbmcubWwgKilcbmxldCBjb250YWlucyBzIGMgPSBjb250YWluc19mcm9tIHMgMCBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gc3RyaW5nLm1sICopXG5sZXQgcmNvbnRhaW5zX2Zyb20gcyBpIGMgPVxuICBpZiBpIDwgMCB8fCBpID49IGxlbmd0aCBzIHRoZW5cbiAgICBpbnZhbGlkX2FyZyBcIlN0cmluZy5yY29udGFpbnNfZnJvbSAvIEJ5dGVzLnJjb250YWluc19mcm9tXCJcbiAgZWxzZVxuICAgIHRyeSBpZ25vcmUgKHJpbmRleF9yZWMgcyBpIGMpOyB0cnVlIHdpdGggTm90X2ZvdW5kIC0+IGZhbHNlXG5cblxudHlwZSB0ID0gYnl0ZXNcblxubGV0IGNvbXBhcmUgKHg6IHQpICh5OiB0KSA9IFN0ZGxpYi5jb21wYXJlIHggeVxuZXh0ZXJuYWwgZXF1YWwgOiB0IC0+IHQgLT4gYm9vbCA9IFwiY2FtbF9ieXRlc19lcXVhbFwiIFtAQG5vYWxsb2NdXG5cbigqIGR1cGxpY2F0ZWQgaW4gc3RyaW5nLm1sICopXG5sZXQgc3BsaXRfb25fY2hhciBzZXAgcyA9XG4gIGxldCByID0gcmVmIFtdIGluXG4gIGxldCBqID0gcmVmIChsZW5ndGggcykgaW5cbiAgZm9yIGkgPSBsZW5ndGggcyAtIDEgZG93bnRvIDAgZG9cbiAgICBpZiB1bnNhZmVfZ2V0IHMgaSA9IHNlcCB0aGVuIGJlZ2luXG4gICAgICByIDo9IHN1YiBzIChpICsgMSkgKCFqIC0gaSAtIDEpIDo6ICFyO1xuICAgICAgaiA6PSBpXG4gICAgZW5kXG4gIGRvbmU7XG4gIHN1YiBzIDAgIWogOjogIXJcblxuKCogRGVwcmVjYXRlZCBmdW5jdGlvbnMgaW1wbGVtZW50ZWQgdmlhIG90aGVyIGRlcHJlY2F0ZWQgZnVuY3Rpb25zICopXG5bQEBAb2NhbWwud2FybmluZyBcIi0zXCJdXG5sZXQgdXBwZXJjYXNlIHMgPSBtYXAgQ2hhci51cHBlcmNhc2Ugc1xubGV0IGxvd2VyY2FzZSBzID0gbWFwIENoYXIubG93ZXJjYXNlIHNcblxubGV0IGNhcGl0YWxpemUgcyA9IGFwcGx5MSBDaGFyLnVwcGVyY2FzZSBzXG5sZXQgdW5jYXBpdGFsaXplIHMgPSBhcHBseTEgQ2hhci5sb3dlcmNhc2Ugc1xuXG4oKiogezEgSXRlcmF0b3JzfSAqKVxuXG5sZXQgdG9fc2VxIHMgPVxuICBsZXQgcmVjIGF1eCBpICgpID1cbiAgICBpZiBpID0gbGVuZ3RoIHMgdGhlbiBTZXEuTmlsXG4gICAgZWxzZVxuICAgICAgbGV0IHggPSBnZXQgcyBpIGluXG4gICAgICBTZXEuQ29ucyAoeCwgYXV4IChpKzEpKVxuICBpblxuICBhdXggMFxuXG5sZXQgdG9fc2VxaSBzID1cbiAgbGV0IHJlYyBhdXggaSAoKSA9XG4gICAgaWYgaSA9IGxlbmd0aCBzIHRoZW4gU2VxLk5pbFxuICAgIGVsc2VcbiAgICAgIGxldCB4ID0gZ2V0IHMgaSBpblxuICAgICAgU2VxLkNvbnMgKChpLHgpLCBhdXggKGkrMSkpXG4gIGluXG4gIGF1eCAwXG5cbmxldCBvZl9zZXEgaSA9XG4gIGxldCBuID0gcmVmIDAgaW5cbiAgbGV0IGJ1ZiA9IHJlZiAobWFrZSAyNTYgJ1xcMDAwJykgaW5cbiAgbGV0IHJlc2l6ZSAoKSA9XG4gICAgKCogcmVzaXplICopXG4gICAgbGV0IG5ld19sZW4gPSBJbnQubWluICgyICogbGVuZ3RoICFidWYpIFN5cy5tYXhfc3RyaW5nX2xlbmd0aCBpblxuICAgIGlmIGxlbmd0aCAhYnVmID0gbmV3X2xlbiB0aGVuIGZhaWx3aXRoIFwiQnl0ZXMub2Zfc2VxOiBjYW5ub3QgZ3JvdyBieXRlc1wiO1xuICAgIGxldCBuZXdfYnVmID0gbWFrZSBuZXdfbGVuICdcXDAwMCcgaW5cbiAgICBibGl0ICFidWYgMCBuZXdfYnVmIDAgIW47XG4gICAgYnVmIDo9IG5ld19idWZcbiAgaW5cbiAgU2VxLml0ZXJcbiAgICAoZnVuIGMgLT5cbiAgICAgICBpZiAhbiA9IGxlbmd0aCAhYnVmIHRoZW4gcmVzaXplKCk7XG4gICAgICAgc2V0ICFidWYgIW4gYztcbiAgICAgICBpbmNyIG4pXG4gICAgaTtcbiAgc3ViICFidWYgMCAhblxuXG4oKiogezYgQmluYXJ5IGVuY29kaW5nL2RlY29kaW5nIG9mIGludGVnZXJzfSAqKVxuXG4oKiBUaGUgZ2V0XyBmdW5jdGlvbnMgYXJlIGFsbCBkdXBsaWNhdGVkIGluIHN0cmluZy5tbCAqKVxuXG5leHRlcm5hbCB1bnNhZmVfZ2V0X3VpbnQ4IDogYnl0ZXMgLT4gaW50IC0+IGludCA9IFwiJWJ5dGVzX3Vuc2FmZV9nZXRcIlxuZXh0ZXJuYWwgdW5zYWZlX2dldF91aW50MTZfbmUgOiBieXRlcyAtPiBpbnQgLT4gaW50ID0gXCIlY2FtbF9ieXRlc19nZXQxNnVcIlxuZXh0ZXJuYWwgZ2V0X3VpbnQ4IDogYnl0ZXMgLT4gaW50IC0+IGludCA9IFwiJWJ5dGVzX3NhZmVfZ2V0XCJcbmV4dGVybmFsIGdldF91aW50MTZfbmUgOiBieXRlcyAtPiBpbnQgLT4gaW50ID0gXCIlY2FtbF9ieXRlc19nZXQxNlwiXG5leHRlcm5hbCBnZXRfaW50MzJfbmUgOiBieXRlcyAtPiBpbnQgLT4gaW50MzIgPSBcIiVjYW1sX2J5dGVzX2dldDMyXCJcbmV4dGVybmFsIGdldF9pbnQ2NF9uZSA6IGJ5dGVzIC0+IGludCAtPiBpbnQ2NCA9IFwiJWNhbWxfYnl0ZXNfZ2V0NjRcIlxuXG5leHRlcm5hbCB1bnNhZmVfc2V0X3VpbnQ4IDogYnl0ZXMgLT4gaW50IC0+IGludCAtPiB1bml0ID0gXCIlYnl0ZXNfdW5zYWZlX3NldFwiXG5leHRlcm5hbCB1bnNhZmVfc2V0X3VpbnQxNl9uZSA6IGJ5dGVzIC0+IGludCAtPiBpbnQgLT4gdW5pdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBcIiVjYW1sX2J5dGVzX3NldDE2dVwiXG5leHRlcm5hbCBzZXRfaW50OCA6IGJ5dGVzIC0+IGludCAtPiBpbnQgLT4gdW5pdCA9IFwiJWJ5dGVzX3NhZmVfc2V0XCJcbmV4dGVybmFsIHNldF9pbnQxNl9uZSA6IGJ5dGVzIC0+IGludCAtPiBpbnQgLT4gdW5pdCA9IFwiJWNhbWxfYnl0ZXNfc2V0MTZcIlxuZXh0ZXJuYWwgc2V0X2ludDMyX25lIDogYnl0ZXMgLT4gaW50IC0+IGludDMyIC0+IHVuaXQgPSBcIiVjYW1sX2J5dGVzX3NldDMyXCJcbmV4dGVybmFsIHNldF9pbnQ2NF9uZSA6IGJ5dGVzIC0+IGludCAtPiBpbnQ2NCAtPiB1bml0ID0gXCIlY2FtbF9ieXRlc19zZXQ2NFwiXG5leHRlcm5hbCBzd2FwMTYgOiBpbnQgLT4gaW50ID0gXCIlYnN3YXAxNlwiXG5leHRlcm5hbCBzd2FwMzIgOiBpbnQzMiAtPiBpbnQzMiA9IFwiJWJzd2FwX2ludDMyXCJcbmV4dGVybmFsIHN3YXA2NCA6IGludDY0IC0+IGludDY0ID0gXCIlYnN3YXBfaW50NjRcIlxuXG5sZXQgdW5zYWZlX2dldF91aW50MTZfbGUgYiBpID1cbiAgaWYgU3lzLmJpZ19lbmRpYW5cbiAgdGhlbiBzd2FwMTYgKHVuc2FmZV9nZXRfdWludDE2X25lIGIgaSlcbiAgZWxzZSB1bnNhZmVfZ2V0X3VpbnQxNl9uZSBiIGlcblxubGV0IHVuc2FmZV9nZXRfdWludDE2X2JlIGIgaSA9XG4gIGlmIFN5cy5iaWdfZW5kaWFuXG4gIHRoZW4gdW5zYWZlX2dldF91aW50MTZfbmUgYiBpXG4gIGVsc2Ugc3dhcDE2ICh1bnNhZmVfZ2V0X3VpbnQxNl9uZSBiIGkpXG5cbmxldCBnZXRfaW50OCBiIGkgPVxuICAoKGdldF91aW50OCBiIGkpIGxzbCAoU3lzLmludF9zaXplIC0gOCkpIGFzciAoU3lzLmludF9zaXplIC0gOClcblxubGV0IGdldF91aW50MTZfbGUgYiBpID1cbiAgaWYgU3lzLmJpZ19lbmRpYW4gdGhlbiBzd2FwMTYgKGdldF91aW50MTZfbmUgYiBpKVxuICBlbHNlIGdldF91aW50MTZfbmUgYiBpXG5cbmxldCBnZXRfdWludDE2X2JlIGIgaSA9XG4gIGlmIG5vdCBTeXMuYmlnX2VuZGlhbiB0aGVuIHN3YXAxNiAoZ2V0X3VpbnQxNl9uZSBiIGkpXG4gIGVsc2UgZ2V0X3VpbnQxNl9uZSBiIGlcblxubGV0IGdldF9pbnQxNl9uZSBiIGkgPVxuICAoKGdldF91aW50MTZfbmUgYiBpKSBsc2wgKFN5cy5pbnRfc2l6ZSAtIDE2KSkgYXNyIChTeXMuaW50X3NpemUgLSAxNilcblxubGV0IGdldF9pbnQxNl9sZSBiIGkgPVxuICAoKGdldF91aW50MTZfbGUgYiBpKSBsc2wgKFN5cy5pbnRfc2l6ZSAtIDE2KSkgYXNyIChTeXMuaW50X3NpemUgLSAxNilcblxubGV0IGdldF9pbnQxNl9iZSBiIGkgPVxuICAoKGdldF91aW50MTZfYmUgYiBpKSBsc2wgKFN5cy5pbnRfc2l6ZSAtIDE2KSkgYXNyIChTeXMuaW50X3NpemUgLSAxNilcblxubGV0IGdldF9pbnQzMl9sZSBiIGkgPVxuICBpZiBTeXMuYmlnX2VuZGlhbiB0aGVuIHN3YXAzMiAoZ2V0X2ludDMyX25lIGIgaSlcbiAgZWxzZSBnZXRfaW50MzJfbmUgYiBpXG5cbmxldCBnZXRfaW50MzJfYmUgYiBpID1cbiAgaWYgbm90IFN5cy5iaWdfZW5kaWFuIHRoZW4gc3dhcDMyIChnZXRfaW50MzJfbmUgYiBpKVxuICBlbHNlIGdldF9pbnQzMl9uZSBiIGlcblxubGV0IGdldF9pbnQ2NF9sZSBiIGkgPVxuICBpZiBTeXMuYmlnX2VuZGlhbiB0aGVuIHN3YXA2NCAoZ2V0X2ludDY0X25lIGIgaSlcbiAgZWxzZSBnZXRfaW50NjRfbmUgYiBpXG5cbmxldCBnZXRfaW50NjRfYmUgYiBpID1cbiAgaWYgbm90IFN5cy5iaWdfZW5kaWFuIHRoZW4gc3dhcDY0IChnZXRfaW50NjRfbmUgYiBpKVxuICBlbHNlIGdldF9pbnQ2NF9uZSBiIGlcblxubGV0IHVuc2FmZV9zZXRfdWludDE2X2xlIGIgaSB4ID1cbiAgaWYgU3lzLmJpZ19lbmRpYW5cbiAgdGhlbiB1bnNhZmVfc2V0X3VpbnQxNl9uZSBiIGkgKHN3YXAxNiB4KVxuICBlbHNlIHVuc2FmZV9zZXRfdWludDE2X25lIGIgaSB4XG5cbmxldCB1bnNhZmVfc2V0X3VpbnQxNl9iZSBiIGkgeCA9XG4gIGlmIFN5cy5iaWdfZW5kaWFuXG4gIHRoZW4gdW5zYWZlX3NldF91aW50MTZfbmUgYiBpIHggZWxzZVxuICB1bnNhZmVfc2V0X3VpbnQxNl9uZSBiIGkgKHN3YXAxNiB4KVxuXG5sZXQgc2V0X2ludDE2X2xlIGIgaSB4ID1cbiAgaWYgU3lzLmJpZ19lbmRpYW4gdGhlbiBzZXRfaW50MTZfbmUgYiBpIChzd2FwMTYgeClcbiAgZWxzZSBzZXRfaW50MTZfbmUgYiBpIHhcblxubGV0IHNldF9pbnQxNl9iZSBiIGkgeCA9XG4gIGlmIG5vdCBTeXMuYmlnX2VuZGlhbiB0aGVuIHNldF9pbnQxNl9uZSBiIGkgKHN3YXAxNiB4KVxuICBlbHNlIHNldF9pbnQxNl9uZSBiIGkgeFxuXG5sZXQgc2V0X2ludDMyX2xlIGIgaSB4ID1cbiAgaWYgU3lzLmJpZ19lbmRpYW4gdGhlbiBzZXRfaW50MzJfbmUgYiBpIChzd2FwMzIgeClcbiAgZWxzZSBzZXRfaW50MzJfbmUgYiBpIHhcblxubGV0IHNldF9pbnQzMl9iZSBiIGkgeCA9XG4gIGlmIG5vdCBTeXMuYmlnX2VuZGlhbiB0aGVuIHNldF9pbnQzMl9uZSBiIGkgKHN3YXAzMiB4KVxuICBlbHNlIHNldF9pbnQzMl9uZSBiIGkgeFxuXG5sZXQgc2V0X2ludDY0X2xlIGIgaSB4ID1cbiAgaWYgU3lzLmJpZ19lbmRpYW4gdGhlbiBzZXRfaW50NjRfbmUgYiBpIChzd2FwNjQgeClcbiAgZWxzZSBzZXRfaW50NjRfbmUgYiBpIHhcblxubGV0IHNldF9pbnQ2NF9iZSBiIGkgeCA9XG4gIGlmIG5vdCBTeXMuYmlnX2VuZGlhbiB0aGVuIHNldF9pbnQ2NF9uZSBiIGkgKHN3YXA2NCB4KVxuICBlbHNlIHNldF9pbnQ2NF9uZSBiIGkgeFxuXG5sZXQgc2V0X3VpbnQ4ID0gc2V0X2ludDhcbmxldCBzZXRfdWludDE2X25lID0gc2V0X2ludDE2X25lXG5sZXQgc2V0X3VpbnQxNl9iZSA9IHNldF9pbnQxNl9iZVxubGV0IHNldF91aW50MTZfbGUgPSBzZXRfaW50MTZfbGVcblxuKCogVVRGIGNvZGVjcyBhbmQgdmFsaWRhdGlvbnMgKilcblxubGV0IGRlY19pbnZhbGlkID0gVWNoYXIudXRmX2RlY29kZV9pbnZhbGlkXG5sZXRbQGlubGluZV0gZGVjX3JldCBuIHUgPSBVY2hhci51dGZfZGVjb2RlIG4gKFVjaGFyLnVuc2FmZV9vZl9pbnQgdSlcblxuKCogSW4gY2FzZSBvZiBkZWNvZGluZyBlcnJvciwgaWYgd2UgZXJyb3Igb24gdGhlIGZpcnN0IGJ5dGUsIHdlXG4gICBjb25zdW1lIHRoZSBieXRlLCBvdGhlcndpc2Ugd2UgY29uc3VtZSB0aGUgW25dIGJ5dGVzIHByZWNlZWRpbmdcbiAgIHRoZSBlcnJvcmluZyBieXRlLlxuXG4gICBUaGlzIG1lYW5zIHRoYXQgaWYgYSBjbGllbnQgdXNlcyBkZWNvZGVzIHdpdGhvdXQgY2FyaW5nIGFib3V0XG4gICB2YWxpZGl0eSBpdCBuYXR1cmFsbHkgcmVwbGFjZSBib2d1cyBkYXRhIHdpdGggVWNoYXIucmVwIGFjY29yZGluZ1xuICAgdG8gdGhlIFdIQVRXRyBFbmNvZGluZyBzdGFuZGFyZC4gT3RoZXIgc2NoZW1lcyBhcmUgcG9zc2libGUgYnlcbiAgIGNvbnN1bHRpbmcgdGhlIG51bWJlciBvZiB1c2VkIGJ5dGVzIG9uIGludmFsaWQgZGVjb2Rlcy4gRm9yIG1vcmVcbiAgIGRldGFpbHMgc2VlIGh0dHBzOi8vaHNpdm9uZW4uZmkvYnJva2VuLXV0Zi04L1xuXG4gICBGb3IgdGhpcyByZWFzb24gaW4gW2dldF91dGZfOF91Y2hhcl0gd2UgZ3JhZHVhbGx5IGNoZWNrIHRoZSBuZXh0XG4gICBieXRlIGlzIGF2YWlsYWJsZSByYXRoZXIgdGhhbiBkb2luZyBpdCBpbW1lZGlhdGVseSBhZnRlciB0aGVcbiAgIGZpcnN0IGJ5dGUuIENvbnRyYXN0IHdpdGggW2lzX3ZhbGlkX3V0Zl84XS4gKilcblxuKCogVVRGLTggKilcblxubGV0W0BpbmxpbmVdIG5vdF9pbl94ODBfdG9feEJGIGIgPSBiIGxzciA2IDw+IDBiMTBcbmxldFtAaW5saW5lXSBub3RfaW5feEEwX3RvX3hCRiBiID0gYiBsc3IgNSA8PiAwYjEwMVxubGV0W0BpbmxpbmVdIG5vdF9pbl94ODBfdG9feDlGIGIgPSBiIGxzciA1IDw+IDBiMTAwXG5sZXRbQGlubGluZV0gbm90X2luX3g5MF90b194QkYgYiA9IGIgPCAweDkwIHx8IDB4QkYgPCBiXG5sZXRbQGlubGluZV0gbm90X2luX3g4MF90b194OEYgYiA9IGIgbHNyIDQgPD4gMHg4XG5cbmxldFtAaW5saW5lXSB1dGZfOF91Y2hhcl8yIGIwIGIxID1cbiAgKChiMCBsYW5kIDB4MUYpIGxzbCA2KSBsb3JcbiAgKChiMSBsYW5kIDB4M0YpKVxuXG5sZXRbQGlubGluZV0gdXRmXzhfdWNoYXJfMyBiMCBiMSBiMiA9XG4gICgoYjAgbGFuZCAweDBGKSBsc2wgMTIpIGxvclxuICAoKGIxIGxhbmQgMHgzRikgbHNsIDYpIGxvclxuICAoKGIyIGxhbmQgMHgzRikpXG5cbmxldFtAaW5saW5lXSB1dGZfOF91Y2hhcl80IGIwIGIxIGIyIGIzID1cbiAgKChiMCBsYW5kIDB4MDcpIGxzbCAxOCkgbG9yXG4gICgoYjEgbGFuZCAweDNGKSBsc2wgMTIpIGxvclxuICAoKGIyIGxhbmQgMHgzRikgbHNsIDYpIGxvclxuICAoKGIzIGxhbmQgMHgzRikpXG5cbmxldCBnZXRfdXRmXzhfdWNoYXIgYiBpID1cbiAgbGV0IGIwID0gZ2V0X3VpbnQ4IGIgaSBpbiAoKiByYWlzZXMgaWYgW2ldIGlzIG5vdCBhIHZhbGlkIGluZGV4LiAqKVxuICBsZXQgZ2V0ID0gdW5zYWZlX2dldF91aW50OCBpblxuICBsZXQgbWF4ID0gbGVuZ3RoIGIgLSAxIGluXG4gIG1hdGNoIENoYXIudW5zYWZlX2NociBiMCB3aXRoICgqIFNlZSBUaGUgVW5pY29kZSBTdGFuZGFyZCwgVGFibGUgMy43ICopXG4gIHwgJ1xceDAwJyAuLiAnXFx4N0YnIC0+IGRlY19yZXQgMSBiMFxuICB8ICdcXHhDMicgLi4gJ1xceERGJyAtPlxuICAgICAgbGV0IGkgPSBpICsgMSBpbiBpZiBpID4gbWF4IHRoZW4gZGVjX2ludmFsaWQgMSBlbHNlXG4gICAgICBsZXQgYjEgPSBnZXQgYiBpIGluIGlmIG5vdF9pbl94ODBfdG9feEJGIGIxIHRoZW4gZGVjX2ludmFsaWQgMSBlbHNlXG4gICAgICBkZWNfcmV0IDIgKHV0Zl84X3VjaGFyXzIgYjAgYjEpXG4gIHwgJ1xceEUwJyAtPlxuICAgICAgbGV0IGkgPSBpICsgMSBpbiBpZiBpID4gbWF4IHRoZW4gZGVjX2ludmFsaWQgMSBlbHNlXG4gICAgICBsZXQgYjEgPSBnZXQgYiBpIGluIGlmIG5vdF9pbl94QTBfdG9feEJGIGIxIHRoZW4gZGVjX2ludmFsaWQgMSBlbHNlXG4gICAgICBsZXQgaSA9IGkgKyAxIGluIGlmIGkgPiBtYXggdGhlbiBkZWNfaW52YWxpZCAyIGVsc2VcbiAgICAgIGxldCBiMiA9IGdldCBiIGkgaW4gaWYgbm90X2luX3g4MF90b194QkYgYjIgdGhlbiBkZWNfaW52YWxpZCAyIGVsc2VcbiAgICAgIGRlY19yZXQgMyAodXRmXzhfdWNoYXJfMyBiMCBiMSBiMilcbiAgfCAnXFx4RTEnIC4uICdcXHhFQycgfCAnXFx4RUUnIC4uICdcXHhFRicgLT5cbiAgICAgIGxldCBpID0gaSArIDEgaW4gaWYgaSA+IG1heCB0aGVuIGRlY19pbnZhbGlkIDEgZWxzZVxuICAgICAgbGV0IGIxID0gZ2V0IGIgaSBpbiBpZiBub3RfaW5feDgwX3RvX3hCRiBiMSB0aGVuIGRlY19pbnZhbGlkIDEgZWxzZVxuICAgICAgbGV0IGkgPSBpICsgMSBpbiBpZiBpID4gbWF4IHRoZW4gZGVjX2ludmFsaWQgMiBlbHNlXG4gICAgICBsZXQgYjIgPSBnZXQgYiBpIGluIGlmIG5vdF9pbl94ODBfdG9feEJGIGIyIHRoZW4gZGVjX2ludmFsaWQgMiBlbHNlXG4gICAgICBkZWNfcmV0IDMgKHV0Zl84X3VjaGFyXzMgYjAgYjEgYjIpXG4gIHwgJ1xceEVEJyAtPlxuICAgICAgbGV0IGkgPSBpICsgMSBpbiBpZiBpID4gbWF4IHRoZW4gZGVjX2ludmFsaWQgMSBlbHNlXG4gICAgICBsZXQgYjEgPSBnZXQgYiBpIGluIGlmIG5vdF9pbl94ODBfdG9feDlGIGIxIHRoZW4gZGVjX2ludmFsaWQgMSBlbHNlXG4gICAgICBsZXQgaSA9IGkgKyAxIGluIGlmIGkgPiBtYXggdGhlbiBkZWNfaW52YWxpZCAyIGVsc2VcbiAgICAgIGxldCBiMiA9IGdldCBiIGkgaW4gaWYgbm90X2luX3g4MF90b194QkYgYjIgdGhlbiBkZWNfaW52YWxpZCAyIGVsc2VcbiAgICAgIGRlY19yZXQgMyAodXRmXzhfdWNoYXJfMyBiMCBiMSBiMilcbiAgfCAnXFx4RjAnIC0+XG4gICAgICBsZXQgaSA9IGkgKyAxIGluIGlmIGkgPiBtYXggdGhlbiBkZWNfaW52YWxpZCAxIGVsc2VcbiAgICAgIGxldCBiMSA9IGdldCBiIGkgaW4gaWYgbm90X2luX3g5MF90b194QkYgYjEgdGhlbiBkZWNfaW52YWxpZCAxIGVsc2VcbiAgICAgIGxldCBpID0gaSArIDEgaW4gaWYgaSA+IG1heCB0aGVuIGRlY19pbnZhbGlkIDIgZWxzZVxuICAgICAgbGV0IGIyID0gZ2V0IGIgaSBpbiBpZiBub3RfaW5feDgwX3RvX3hCRiBiMiB0aGVuIGRlY19pbnZhbGlkIDIgZWxzZVxuICAgICAgbGV0IGkgPSBpICsgMSBpbiBpZiBpID4gbWF4IHRoZW4gZGVjX2ludmFsaWQgMyBlbHNlXG4gICAgICBsZXQgYjMgPSBnZXQgYiBpIGluIGlmIG5vdF9pbl94ODBfdG9feEJGIGIzIHRoZW4gZGVjX2ludmFsaWQgMyBlbHNlXG4gICAgICBkZWNfcmV0IDQgKHV0Zl84X3VjaGFyXzQgYjAgYjEgYjIgYjMpXG4gIHwgJ1xceEYxJyAuLiAnXFx4RjMnIC0+XG4gICAgICBsZXQgaSA9IGkgKyAxIGluIGlmIGkgPiBtYXggdGhlbiBkZWNfaW52YWxpZCAxIGVsc2VcbiAgICAgIGxldCBiMSA9IGdldCBiIGkgaW4gaWYgbm90X2luX3g4MF90b194QkYgYjEgdGhlbiBkZWNfaW52YWxpZCAxIGVsc2VcbiAgICAgIGxldCBpID0gaSArIDEgaW4gaWYgaSA+IG1heCB0aGVuIGRlY19pbnZhbGlkIDIgZWxzZVxuICAgICAgbGV0IGIyID0gZ2V0IGIgaSBpbiBpZiBub3RfaW5feDgwX3RvX3hCRiBiMiB0aGVuIGRlY19pbnZhbGlkIDIgZWxzZVxuICAgICAgbGV0IGkgPSBpICsgMSBpbiBpZiBpID4gbWF4IHRoZW4gZGVjX2ludmFsaWQgMyBlbHNlXG4gICAgICBsZXQgYjMgPSBnZXQgYiBpIGluIGlmIG5vdF9pbl94ODBfdG9feEJGIGIzIHRoZW4gZGVjX2ludmFsaWQgMyBlbHNlXG4gICAgICBkZWNfcmV0IDQgKHV0Zl84X3VjaGFyXzQgYjAgYjEgYjIgYjMpXG4gIHwgJ1xceEY0JyAtPlxuICAgICAgbGV0IGkgPSBpICsgMSBpbiBpZiBpID4gbWF4IHRoZW4gZGVjX2ludmFsaWQgMSBlbHNlXG4gICAgICBsZXQgYjEgPSBnZXQgYiBpIGluIGlmIG5vdF9pbl94ODBfdG9feDhGIGIxIHRoZW4gZGVjX2ludmFsaWQgMSBlbHNlXG4gICAgICBsZXQgaSA9IGkgKyAxIGluIGlmIGkgPiBtYXggdGhlbiBkZWNfaW52YWxpZCAyIGVsc2VcbiAgICAgIGxldCBiMiA9IGdldCBiIGkgaW4gaWYgbm90X2luX3g4MF90b194QkYgYjIgdGhlbiBkZWNfaW52YWxpZCAyIGVsc2VcbiAgICAgIGxldCBpID0gaSArIDEgaW4gaWYgaSA+IG1heCB0aGVuIGRlY19pbnZhbGlkIDMgZWxzZVxuICAgICAgbGV0IGIzID0gZ2V0IGIgaSBpbiBpZiBub3RfaW5feDgwX3RvX3hCRiBiMyB0aGVuIGRlY19pbnZhbGlkIDMgZWxzZVxuICAgICAgZGVjX3JldCA0ICh1dGZfOF91Y2hhcl80IGIwIGIxIGIyIGIzKVxuICB8IF8gLT4gZGVjX2ludmFsaWQgMVxuXG5sZXQgc2V0X3V0Zl84X3VjaGFyIGIgaSB1ID1cbiAgbGV0IHNldCA9IHVuc2FmZV9zZXRfdWludDggaW5cbiAgbGV0IG1heCA9IGxlbmd0aCBiIC0gMSBpblxuICBtYXRjaCBVY2hhci50b19pbnQgdSB3aXRoXG4gIHwgdSB3aGVuIHUgPCAwIC0+IGFzc2VydCBmYWxzZVxuICB8IHUgd2hlbiB1IDw9IDB4MDA3RiAtPlxuICAgICAgc2V0X3VpbnQ4IGIgaSB1O1xuICAgICAgMVxuICB8IHUgd2hlbiB1IDw9IDB4MDdGRiAtPlxuICAgICAgbGV0IGxhc3QgPSBpICsgMSBpblxuICAgICAgaWYgbGFzdCA+IG1heCB0aGVuIDAgZWxzZVxuICAgICAgKHNldF91aW50OCBiIGkgKDB4QzAgbG9yICh1IGxzciA2KSk7XG4gICAgICAgc2V0IGIgbGFzdCAoMHg4MCBsb3IgKHUgbGFuZCAweDNGKSk7XG4gICAgICAgMilcbiAgfCB1IHdoZW4gdSA8PSAweEZGRkYgLT5cbiAgICAgIGxldCBsYXN0ID0gaSArIDIgaW5cbiAgICAgIGlmIGxhc3QgPiBtYXggdGhlbiAwIGVsc2VcbiAgICAgIChzZXRfdWludDggYiBpICgweEUwIGxvciAodSBsc3IgMTIpKTtcbiAgICAgICBzZXQgYiAoaSArIDEpICgweDgwIGxvciAoKHUgbHNyIDYpIGxhbmQgMHgzRikpO1xuICAgICAgIHNldCBiIGxhc3QgKDB4ODAgbG9yICh1IGxhbmQgMHgzRikpO1xuICAgICAgIDMpXG4gIHwgdSB3aGVuIHUgPD0gMHgxMEZGRkYgLT5cbiAgICAgIGxldCBsYXN0ID0gaSArIDMgaW5cbiAgICAgIGlmIGxhc3QgPiBtYXggdGhlbiAwIGVsc2VcbiAgICAgIChzZXRfdWludDggYiBpICgweEYwIGxvciAodSBsc3IgMTgpKTtcbiAgICAgICBzZXQgYiAoaSArIDEpICgweDgwIGxvciAoKHUgbHNyIDEyKSBsYW5kIDB4M0YpKTtcbiAgICAgICBzZXQgYiAoaSArIDIpICgweDgwIGxvciAoKHUgbHNyIDYpIGxhbmQgMHgzRikpO1xuICAgICAgIHNldCBiIGxhc3QgKDB4ODAgbG9yICh1IGxhbmQgMHgzRikpO1xuICAgICAgIDQpXG4gIHwgXyAtPiBhc3NlcnQgZmFsc2VcblxubGV0IGlzX3ZhbGlkX3V0Zl84IGIgPVxuICBsZXQgcmVjIGxvb3AgbWF4IGIgaSA9XG4gICAgaWYgaSA+IG1heCB0aGVuIHRydWUgZWxzZVxuICAgIGxldCBnZXQgPSB1bnNhZmVfZ2V0X3VpbnQ4IGluXG4gICAgbWF0Y2ggQ2hhci51bnNhZmVfY2hyIChnZXQgYiBpKSB3aXRoXG4gICAgfCAnXFx4MDAnIC4uICdcXHg3RicgLT4gbG9vcCBtYXggYiAoaSArIDEpXG4gICAgfCAnXFx4QzInIC4uICdcXHhERicgLT5cbiAgICAgICAgbGV0IGxhc3QgPSBpICsgMSBpblxuICAgICAgICBpZiBsYXN0ID4gbWF4XG4gICAgICAgIHx8IG5vdF9pbl94ODBfdG9feEJGIChnZXQgYiBsYXN0KVxuICAgICAgICB0aGVuIGZhbHNlXG4gICAgICAgIGVsc2UgbG9vcCBtYXggYiAobGFzdCArIDEpXG4gICAgfCAnXFx4RTAnIC0+XG4gICAgICAgIGxldCBsYXN0ID0gaSArIDIgaW5cbiAgICAgICAgaWYgbGFzdCA+IG1heFxuICAgICAgICB8fCBub3RfaW5feEEwX3RvX3hCRiAoZ2V0IGIgKGkgKyAxKSlcbiAgICAgICAgfHwgbm90X2luX3g4MF90b194QkYgKGdldCBiIGxhc3QpXG4gICAgICAgIHRoZW4gZmFsc2VcbiAgICAgICAgZWxzZSBsb29wIG1heCBiIChsYXN0ICsgMSlcbiAgICB8ICdcXHhFMScgLi4gJ1xceEVDJyB8ICdcXHhFRScgLi4gJ1xceEVGJyAtPlxuICAgICAgICBsZXQgbGFzdCA9IGkgKyAyIGluXG4gICAgICAgIGlmIGxhc3QgPiBtYXhcbiAgICAgICAgfHwgbm90X2luX3g4MF90b194QkYgKGdldCBiIChpICsgMSkpXG4gICAgICAgIHx8IG5vdF9pbl94ODBfdG9feEJGIChnZXQgYiBsYXN0KVxuICAgICAgICB0aGVuIGZhbHNlXG4gICAgICAgIGVsc2UgbG9vcCBtYXggYiAobGFzdCArIDEpXG4gICAgfCAnXFx4RUQnIC0+XG4gICAgICAgIGxldCBsYXN0ID0gaSArIDIgaW5cbiAgICAgICAgaWYgbGFzdCA+IG1heFxuICAgICAgICB8fCBub3RfaW5feDgwX3RvX3g5RiAoZ2V0IGIgKGkgKyAxKSlcbiAgICAgICAgfHwgbm90X2luX3g4MF90b194QkYgKGdldCBiIGxhc3QpXG4gICAgICAgIHRoZW4gZmFsc2VcbiAgICAgICAgZWxzZSBsb29wIG1heCBiIChsYXN0ICsgMSlcbiAgICB8ICdcXHhGMCcgLT5cbiAgICAgICAgbGV0IGxhc3QgPSBpICsgMyBpblxuICAgICAgICBpZiBsYXN0ID4gbWF4XG4gICAgICAgIHx8IG5vdF9pbl94OTBfdG9feEJGIChnZXQgYiAoaSArIDEpKVxuICAgICAgICB8fCBub3RfaW5feDgwX3RvX3hCRiAoZ2V0IGIgKGkgKyAyKSlcbiAgICAgICAgfHwgbm90X2luX3g4MF90b194QkYgKGdldCBiIGxhc3QpXG4gICAgICAgIHRoZW4gZmFsc2VcbiAgICAgICAgZWxzZSBsb29wIG1heCBiIChsYXN0ICsgMSlcbiAgICB8ICdcXHhGMScgLi4gJ1xceEYzJyAtPlxuICAgICAgICBsZXQgbGFzdCA9IGkgKyAzIGluXG4gICAgICAgIGlmIGxhc3QgPiBtYXhcbiAgICAgICAgfHwgbm90X2luX3g4MF90b194QkYgKGdldCBiIChpICsgMSkpXG4gICAgICAgIHx8IG5vdF9pbl94ODBfdG9feEJGIChnZXQgYiAoaSArIDIpKVxuICAgICAgICB8fCBub3RfaW5feDgwX3RvX3hCRiAoZ2V0IGIgbGFzdClcbiAgICAgICAgdGhlbiBmYWxzZVxuICAgICAgICBlbHNlIGxvb3AgbWF4IGIgKGxhc3QgKyAxKVxuICAgIHwgJ1xceEY0JyAtPlxuICAgICAgICBsZXQgbGFzdCA9IGkgKyAzIGluXG4gICAgICAgIGlmIGxhc3QgPiBtYXhcbiAgICAgICAgfHwgbm90X2luX3g4MF90b194OEYgKGdldCBiIChpICsgMSkpXG4gICAgICAgIHx8IG5vdF9pbl94ODBfdG9feEJGIChnZXQgYiAoaSArIDIpKVxuICAgICAgICB8fCBub3RfaW5feDgwX3RvX3hCRiAoZ2V0IGIgbGFzdClcbiAgICAgICAgdGhlbiBmYWxzZVxuICAgICAgICBlbHNlIGxvb3AgbWF4IGIgKGxhc3QgKyAxKVxuICAgIHwgXyAtPiBmYWxzZVxuICBpblxuICBsb29wIChsZW5ndGggYiAtIDEpIGIgMFxuXG4oKiBVVEYtMTZCRSAqKVxuXG5sZXQgZ2V0X3V0Zl8xNmJlX3VjaGFyIGIgaSA9XG4gIGxldCBnZXQgPSB1bnNhZmVfZ2V0X3VpbnQxNl9iZSBpblxuICBsZXQgbWF4ID0gbGVuZ3RoIGIgLSAxIGluXG4gIGlmIGkgPCAwIHx8IGkgPiBtYXggdGhlbiBpbnZhbGlkX2FyZyBcImluZGV4IG91dCBvZiBib3VuZHNcIiBlbHNlXG4gIGlmIGkgPSBtYXggdGhlbiBkZWNfaW52YWxpZCAxIGVsc2VcbiAgbWF0Y2ggZ2V0IGIgaSB3aXRoXG4gIHwgdSB3aGVuIHUgPCAweEQ4MDAgfHwgdSA+IDB4REZGRiAtPiBkZWNfcmV0IDIgdVxuICB8IHUgd2hlbiB1ID4gMHhEQkZGIC0+IGRlY19pbnZhbGlkIDJcbiAgfCBoaSAtPiAoKiBjb21iaW5lIFtoaV0gd2l0aCBhIGxvdyBzdXJyb2dhdGUgKilcbiAgICAgIGxldCBsYXN0ID0gaSArIDMgaW5cbiAgICAgIGlmIGxhc3QgPiBtYXggdGhlbiBkZWNfaW52YWxpZCAobWF4IC0gaSArIDEpIGVsc2VcbiAgICAgIG1hdGNoIGdldCBiIChpICsgMikgd2l0aFxuICAgICAgfCB1IHdoZW4gdSA8IDB4REMwMCB8fCB1ID4gMHhERkZGIC0+IGRlY19pbnZhbGlkIDIgKCogcmV0cnkgaGVyZSAqKVxuICAgICAgfCBsbyAtPlxuICAgICAgICAgIGxldCB1ID0gKCgoaGkgbGFuZCAweDNGRikgbHNsIDEwKSBsb3IgKGxvIGxhbmQgMHgzRkYpKSArIDB4MTAwMDAgaW5cbiAgICAgICAgICBkZWNfcmV0IDQgdVxuXG5sZXQgc2V0X3V0Zl8xNmJlX3VjaGFyIGIgaSB1ID1cbiAgbGV0IHNldCA9IHVuc2FmZV9zZXRfdWludDE2X2JlIGluXG4gIGxldCBtYXggPSBsZW5ndGggYiAtIDEgaW5cbiAgaWYgaSA8IDAgfHwgaSA+IG1heCB0aGVuIGludmFsaWRfYXJnIFwiaW5kZXggb3V0IG9mIGJvdW5kc1wiIGVsc2VcbiAgbWF0Y2ggVWNoYXIudG9faW50IHUgd2l0aFxuICB8IHUgd2hlbiB1IDwgMCAtPiBhc3NlcnQgZmFsc2VcbiAgfCB1IHdoZW4gdSA8PSAweEZGRkYgLT5cbiAgICAgIGxldCBsYXN0ID0gaSArIDEgaW5cbiAgICAgIGlmIGxhc3QgPiBtYXggdGhlbiAwIGVsc2UgKHNldCBiIGkgdTsgMilcbiAgfCB1IHdoZW4gdSA8PSAweDEwRkZGRiAtPlxuICAgICAgbGV0IGxhc3QgPSBpICsgMyBpblxuICAgICAgaWYgbGFzdCA+IG1heCB0aGVuIDAgZWxzZVxuICAgICAgbGV0IHUnID0gdSAtIDB4MTAwMDAgaW5cbiAgICAgIGxldCBoaSA9ICgweEQ4MDAgbG9yICh1JyBsc3IgMTApKSBpblxuICAgICAgbGV0IGxvID0gKDB4REMwMCBsb3IgKHUnIGxhbmQgMHgzRkYpKSBpblxuICAgICAgc2V0IGIgaSBoaTsgc2V0IGIgKGkgKyAyKSBsbzsgNFxuICB8IF8gLT4gYXNzZXJ0IGZhbHNlXG5cbmxldCBpc192YWxpZF91dGZfMTZiZSBiID1cbiAgbGV0IHJlYyBsb29wIG1heCBiIGkgPVxuICAgIGxldCBnZXQgPSB1bnNhZmVfZ2V0X3VpbnQxNl9iZSBpblxuICAgIGlmIGkgPiBtYXggdGhlbiB0cnVlIGVsc2VcbiAgICBpZiBpID0gbWF4IHRoZW4gZmFsc2UgZWxzZVxuICAgIG1hdGNoIGdldCBiIGkgd2l0aFxuICAgIHwgdSB3aGVuIHUgPCAweEQ4MDAgfHwgdSA+IDB4REZGRiAtPiBsb29wIG1heCBiIChpICsgMilcbiAgICB8IHUgd2hlbiB1ID4gMHhEQkZGIC0+IGZhbHNlXG4gICAgfCBfaGkgLT5cbiAgICAgICAgbGV0IGxhc3QgPSBpICsgMyBpblxuICAgICAgICBpZiBsYXN0ID4gbWF4IHRoZW4gZmFsc2UgZWxzZVxuICAgICAgICBtYXRjaCBnZXQgYiAoaSArIDIpIHdpdGhcbiAgICAgICAgfCB1IHdoZW4gdSA8IDB4REMwMCB8fCB1ID4gMHhERkZGIC0+IGZhbHNlXG4gICAgICAgIHwgX2xvIC0+IGxvb3AgbWF4IGIgKGkgKyA0KVxuICBpblxuICBsb29wIChsZW5ndGggYiAtIDEpIGIgMFxuXG4oKiBVVEYtMTZMRSAqKVxuXG5sZXQgZ2V0X3V0Zl8xNmxlX3VjaGFyIGIgaSA9XG4gIGxldCBnZXQgPSB1bnNhZmVfZ2V0X3VpbnQxNl9sZSBpblxuICBsZXQgbWF4ID0gbGVuZ3RoIGIgLSAxIGluXG4gIGlmIGkgPCAwIHx8IGkgPiBtYXggdGhlbiBpbnZhbGlkX2FyZyBcImluZGV4IG91dCBvZiBib3VuZHNcIiBlbHNlXG4gIGlmIGkgPSBtYXggdGhlbiBkZWNfaW52YWxpZCAxIGVsc2VcbiAgbWF0Y2ggZ2V0IGIgaSB3aXRoXG4gIHwgdSB3aGVuIHUgPCAweEQ4MDAgfHwgdSA+IDB4REZGRiAtPiBkZWNfcmV0IDIgdVxuICB8IHUgd2hlbiB1ID4gMHhEQkZGIC0+IGRlY19pbnZhbGlkIDJcbiAgfCBoaSAtPiAoKiBjb21iaW5lIFtoaV0gd2l0aCBhIGxvdyBzdXJyb2dhdGUgKilcbiAgICAgIGxldCBsYXN0ID0gaSArIDMgaW5cbiAgICAgIGlmIGxhc3QgPiBtYXggdGhlbiBkZWNfaW52YWxpZCAobWF4IC0gaSArIDEpIGVsc2VcbiAgICAgIG1hdGNoIGdldCBiIChpICsgMikgd2l0aFxuICAgICAgfCB1IHdoZW4gdSA8IDB4REMwMCB8fCB1ID4gMHhERkZGIC0+IGRlY19pbnZhbGlkIDIgKCogcmV0cnkgaGVyZSAqKVxuICAgICAgfCBsbyAtPlxuICAgICAgICAgIGxldCB1ID0gKCgoaGkgbGFuZCAweDNGRikgbHNsIDEwKSBsb3IgKGxvIGxhbmQgMHgzRkYpKSArIDB4MTAwMDAgaW5cbiAgICAgICAgICBkZWNfcmV0IDQgdVxuXG5sZXQgc2V0X3V0Zl8xNmxlX3VjaGFyIGIgaSB1ID1cbiAgbGV0IHNldCA9IHVuc2FmZV9zZXRfdWludDE2X2xlIGluXG4gIGxldCBtYXggPSBsZW5ndGggYiAtIDEgaW5cbiAgaWYgaSA8IDAgfHwgaSA+IG1heCB0aGVuIGludmFsaWRfYXJnIFwiaW5kZXggb3V0IG9mIGJvdW5kc1wiIGVsc2VcbiAgbWF0Y2ggVWNoYXIudG9faW50IHUgd2l0aFxuICB8IHUgd2hlbiB1IDwgMCAtPiBhc3NlcnQgZmFsc2VcbiAgfCB1IHdoZW4gdSA8PSAweEZGRkYgLT5cbiAgICAgIGxldCBsYXN0ID0gaSArIDEgaW5cbiAgICAgIGlmIGxhc3QgPiBtYXggdGhlbiAwIGVsc2UgKHNldCBiIGkgdTsgMilcbiAgfCB1IHdoZW4gdSA8PSAweDEwRkZGRiAtPlxuICAgICAgbGV0IGxhc3QgPSBpICsgMyBpblxuICAgICAgaWYgbGFzdCA+IG1heCB0aGVuIDAgZWxzZVxuICAgICAgbGV0IHUnID0gdSAtIDB4MTAwMDAgaW5cbiAgICAgIGxldCBoaSA9ICgweEQ4MDAgbG9yICh1JyBsc3IgMTApKSBpblxuICAgICAgbGV0IGxvID0gKDB4REMwMCBsb3IgKHUnIGxhbmQgMHgzRkYpKSBpblxuICAgICAgc2V0IGIgaSBoaTsgc2V0IGIgKGkgKyAyKSBsbzsgNFxuICB8IF8gLT4gYXNzZXJ0IGZhbHNlXG5cbmxldCBpc192YWxpZF91dGZfMTZsZSBiID1cbiAgbGV0IHJlYyBsb29wIG1heCBiIGkgPVxuICAgIGxldCBnZXQgPSB1bnNhZmVfZ2V0X3VpbnQxNl9sZSBpblxuICAgIGlmIGkgPiBtYXggdGhlbiB0cnVlIGVsc2VcbiAgICBpZiBpID0gbWF4IHRoZW4gZmFsc2UgZWxzZVxuICAgIG1hdGNoIGdldCBiIGkgd2l0aFxuICAgIHwgdSB3aGVuIHUgPCAweEQ4MDAgfHwgdSA+IDB4REZGRiAtPiBsb29wIG1heCBiIChpICsgMilcbiAgICB8IHUgd2hlbiB1ID4gMHhEQkZGIC0+IGZhbHNlXG4gICAgfCBfaGkgLT5cbiAgICAgICAgbGV0IGxhc3QgPSBpICsgMyBpblxuICAgICAgICBpZiBsYXN0ID4gbWF4IHRoZW4gZmFsc2UgZWxzZVxuICAgICAgICBtYXRjaCBnZXQgYiAoaSArIDIpIHdpdGhcbiAgICAgICAgfCB1IHdoZW4gdSA8IDB4REMwMCB8fCB1ID4gMHhERkZGIC0+IGZhbHNlXG4gICAgICAgIHwgX2xvIC0+IGxvb3AgbWF4IGIgKGkgKyA0KVxuICBpblxuICBsb29wIChsZW5ndGggYiAtIDEpIGIgMFxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgIERhbWllbiBEb2xpZ2V6LCBwcm9qZXQgR2FsbGl1bSwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAxNCBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBTdHJpbmcgb3BlcmF0aW9ucywgYmFzZWQgb24gYnl0ZSBzZXF1ZW5jZSBvcGVyYXRpb25zICopXG5cbigqIFdBUk5JTkc6IFNvbWUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZSBhcmUgZHVwbGljYXRlZCBpbiBieXRlcy5tbCBmb3JcbiAgIGVmZmljaWVuY3kgcmVhc29ucy4gV2hlbiB5b3UgbW9kaWZ5IHRoZSBvbmUgaW4gdGhpcyBmaWxlIHlvdSBuZWVkIHRvXG4gICBtb2RpZnkgaXRzIGR1cGxpY2F0ZSBpbiBieXRlcy5tbC5cbiAgIFRoZXNlIGZ1bmN0aW9ucyBoYXZlIGEgXCJkdXBsaWNhdGVkXCIgY29tbWVudCBhYm92ZSB0aGVpciBkZWZpbml0aW9uLlxuKilcblxuZXh0ZXJuYWwgbGVuZ3RoIDogc3RyaW5nIC0+IGludCA9IFwiJXN0cmluZ19sZW5ndGhcIlxuZXh0ZXJuYWwgZ2V0IDogc3RyaW5nIC0+IGludCAtPiBjaGFyID0gXCIlc3RyaW5nX3NhZmVfZ2V0XCJcbmV4dGVybmFsIHNldCA6IGJ5dGVzIC0+IGludCAtPiBjaGFyIC0+IHVuaXQgPSBcIiVzdHJpbmdfc2FmZV9zZXRcIlxuZXh0ZXJuYWwgY3JlYXRlIDogaW50IC0+IGJ5dGVzID0gXCJjYW1sX2NyZWF0ZV9zdHJpbmdcIlxuZXh0ZXJuYWwgdW5zYWZlX2dldCA6IHN0cmluZyAtPiBpbnQgLT4gY2hhciA9IFwiJXN0cmluZ191bnNhZmVfZ2V0XCJcbmV4dGVybmFsIHVuc2FmZV9zZXQgOiBieXRlcyAtPiBpbnQgLT4gY2hhciAtPiB1bml0ID0gXCIlc3RyaW5nX3Vuc2FmZV9zZXRcIlxuZXh0ZXJuYWwgdW5zYWZlX2JsaXQgOiBzdHJpbmcgLT4gaW50IC0+ICBieXRlcyAtPiBpbnQgLT4gaW50IC0+IHVuaXRcbiAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX2JsaXRfc3RyaW5nXCIgW0BAbm9hbGxvY11cbmV4dGVybmFsIHVuc2FmZV9maWxsIDogYnl0ZXMgLT4gaW50IC0+IGludCAtPiBjaGFyIC0+IHVuaXRcbiAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX2ZpbGxfc3RyaW5nXCIgW0BAbm9hbGxvY11cblxubW9kdWxlIEIgPSBCeXRlc1xuXG5sZXQgYnRzID0gQi51bnNhZmVfdG9fc3RyaW5nXG5sZXQgYm9zID0gQi51bnNhZmVfb2Zfc3RyaW5nXG5cbmxldCBtYWtlIG4gYyA9XG4gIEIubWFrZSBuIGMgfD4gYnRzXG5sZXQgaW5pdCBuIGYgPVxuICBCLmluaXQgbiBmIHw+IGJ0c1xubGV0IGVtcHR5ID0gXCJcIlxubGV0IGNvcHkgcyA9XG4gIEIuY29weSAoYm9zIHMpIHw+IGJ0c1xubGV0IG9mX2J5dGVzID0gQi50b19zdHJpbmdcbmxldCB0b19ieXRlcyA9IEIub2Zfc3RyaW5nXG5sZXQgc3ViIHMgb2ZzIGxlbiA9XG4gIEIuc3ViIChib3Mgcykgb2ZzIGxlbiB8PiBidHNcbmxldCBmaWxsID1cbiAgQi5maWxsXG5sZXQgYmxpdCA9XG4gIEIuYmxpdF9zdHJpbmdcblxubGV0IGVuc3VyZV9nZSAoeDppbnQpIHkgPSBpZiB4ID49IHkgdGhlbiB4IGVsc2UgaW52YWxpZF9hcmcgXCJTdHJpbmcuY29uY2F0XCJcblxubGV0IHJlYyBzdW1fbGVuZ3RocyBhY2Mgc2VwbGVuID0gZnVuY3Rpb25cbiAgfCBbXSAtPiBhY2NcbiAgfCBoZCA6OiBbXSAtPiBsZW5ndGggaGQgKyBhY2NcbiAgfCBoZCA6OiB0bCAtPiBzdW1fbGVuZ3RocyAoZW5zdXJlX2dlIChsZW5ndGggaGQgKyBzZXBsZW4gKyBhY2MpIGFjYykgc2VwbGVuIHRsXG5cbmxldCByZWMgdW5zYWZlX2JsaXRzIGRzdCBwb3Mgc2VwIHNlcGxlbiA9IGZ1bmN0aW9uXG4gICAgW10gLT4gZHN0XG4gIHwgaGQgOjogW10gLT5cbiAgICB1bnNhZmVfYmxpdCBoZCAwIGRzdCBwb3MgKGxlbmd0aCBoZCk7IGRzdFxuICB8IGhkIDo6IHRsIC0+XG4gICAgdW5zYWZlX2JsaXQgaGQgMCBkc3QgcG9zIChsZW5ndGggaGQpO1xuICAgIHVuc2FmZV9ibGl0IHNlcCAwIGRzdCAocG9zICsgbGVuZ3RoIGhkKSBzZXBsZW47XG4gICAgdW5zYWZlX2JsaXRzIGRzdCAocG9zICsgbGVuZ3RoIGhkICsgc2VwbGVuKSBzZXAgc2VwbGVuIHRsXG5cbmxldCBjb25jYXQgc2VwID0gZnVuY3Rpb25cbiAgICBbXSAtPiBcIlwiXG4gIHwgbCAtPiBsZXQgc2VwbGVuID0gbGVuZ3RoIHNlcCBpbiBidHMgQEBcbiAgICAgICAgICB1bnNhZmVfYmxpdHNcbiAgICAgICAgICAgIChCLmNyZWF0ZSAoc3VtX2xlbmd0aHMgMCBzZXBsZW4gbCkpXG4gICAgICAgICAgICAwIHNlcCBzZXBsZW4gbFxuXG5sZXQgY2F0ID0gKCBeIClcblxuKCogZHVwbGljYXRlZCBpbiBieXRlcy5tbCAqKVxubGV0IGl0ZXIgZiBzID1cbiAgZm9yIGkgPSAwIHRvIGxlbmd0aCBzIC0gMSBkbyBmICh1bnNhZmVfZ2V0IHMgaSkgZG9uZVxuXG4oKiBkdXBsaWNhdGVkIGluIGJ5dGVzLm1sICopXG5sZXQgaXRlcmkgZiBzID1cbiAgZm9yIGkgPSAwIHRvIGxlbmd0aCBzIC0gMSBkbyBmIGkgKHVuc2FmZV9nZXQgcyBpKSBkb25lXG5cbmxldCBtYXAgZiBzID1cbiAgQi5tYXAgZiAoYm9zIHMpIHw+IGJ0c1xubGV0IG1hcGkgZiBzID1cbiAgQi5tYXBpIGYgKGJvcyBzKSB8PiBidHNcbmxldCBmb2xkX3JpZ2h0IGYgeCBhID1cbiAgQi5mb2xkX3JpZ2h0IGYgKGJvcyB4KSBhXG5sZXQgZm9sZF9sZWZ0IGYgYSB4ID1cbiAgQi5mb2xkX2xlZnQgZiBhIChib3MgeClcbmxldCBleGlzdHMgZiBzID1cbiAgQi5leGlzdHMgZiAoYm9zIHMpXG5sZXQgZm9yX2FsbCBmIHMgPVxuICBCLmZvcl9hbGwgZiAoYm9zIHMpXG5cbigqIEJld2FyZTogd2UgY2Fubm90IHVzZSBCLnRyaW0gb3IgQi5lc2NhcGUgYmVjYXVzZSB0aGV5IGFsd2F5cyBtYWtlIGFcbiAgIGNvcHksIGJ1dCBTdHJpbmcubWxpIHNwZWxscyBvdXQgc29tZSBjYXNlcyB3aGVyZSB3ZSBhcmUgbm90IGFsbG93ZWRcbiAgIHRvIG1ha2UgYSBjb3B5LiAqKVxuXG5sZXQgaXNfc3BhY2UgPSBmdW5jdGlvblxuICB8ICcgJyB8ICdcXDAxMicgfCAnXFxuJyB8ICdcXHInIHwgJ1xcdCcgLT4gdHJ1ZVxuICB8IF8gLT4gZmFsc2VcblxubGV0IHRyaW0gcyA9XG4gIGlmIHMgPSBcIlwiIHRoZW4gc1xuICBlbHNlIGlmIGlzX3NwYWNlICh1bnNhZmVfZ2V0IHMgMCkgfHwgaXNfc3BhY2UgKHVuc2FmZV9nZXQgcyAobGVuZ3RoIHMgLSAxKSlcbiAgICB0aGVuIGJ0cyAoQi50cmltIChib3MgcykpXG4gIGVsc2Ugc1xuXG5sZXQgZXNjYXBlZCBzID1cbiAgbGV0IHJlYyBlc2NhcGVfaWZfbmVlZGVkIHMgbiBpID1cbiAgICBpZiBpID49IG4gdGhlbiBzIGVsc2VcbiAgICAgIG1hdGNoIHVuc2FmZV9nZXQgcyBpIHdpdGhcbiAgICAgIHwgJ1xcXCInIHwgJ1xcXFwnIHwgJ1xcMDAwJy4uJ1xcMDMxJyB8ICdcXDEyNycuLiAnXFwyNTUnIC0+XG4gICAgICAgICAgYnRzIChCLmVzY2FwZWQgKGJvcyBzKSlcbiAgICAgIHwgXyAtPiBlc2NhcGVfaWZfbmVlZGVkIHMgbiAoaSsxKVxuICBpblxuICBlc2NhcGVfaWZfbmVlZGVkIHMgKGxlbmd0aCBzKSAwXG5cbigqIGR1cGxpY2F0ZWQgaW4gYnl0ZXMubWwgKilcbmxldCByZWMgaW5kZXhfcmVjIHMgbGltIGkgYyA9XG4gIGlmIGkgPj0gbGltIHRoZW4gcmFpc2UgTm90X2ZvdW5kIGVsc2VcbiAgaWYgdW5zYWZlX2dldCBzIGkgPSBjIHRoZW4gaSBlbHNlIGluZGV4X3JlYyBzIGxpbSAoaSArIDEpIGNcblxuKCogZHVwbGljYXRlZCBpbiBieXRlcy5tbCAqKVxubGV0IGluZGV4IHMgYyA9IGluZGV4X3JlYyBzIChsZW5ndGggcykgMCBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gYnl0ZXMubWwgKilcbmxldCByZWMgaW5kZXhfcmVjX29wdCBzIGxpbSBpIGMgPVxuICBpZiBpID49IGxpbSB0aGVuIE5vbmUgZWxzZVxuICBpZiB1bnNhZmVfZ2V0IHMgaSA9IGMgdGhlbiBTb21lIGkgZWxzZSBpbmRleF9yZWNfb3B0IHMgbGltIChpICsgMSkgY1xuXG4oKiBkdXBsaWNhdGVkIGluIGJ5dGVzLm1sICopXG5sZXQgaW5kZXhfb3B0IHMgYyA9IGluZGV4X3JlY19vcHQgcyAobGVuZ3RoIHMpIDAgY1xuXG4oKiBkdXBsaWNhdGVkIGluIGJ5dGVzLm1sICopXG5sZXQgaW5kZXhfZnJvbSBzIGkgYyA9XG4gIGxldCBsID0gbGVuZ3RoIHMgaW5cbiAgaWYgaSA8IDAgfHwgaSA+IGwgdGhlbiBpbnZhbGlkX2FyZyBcIlN0cmluZy5pbmRleF9mcm9tIC8gQnl0ZXMuaW5kZXhfZnJvbVwiIGVsc2VcbiAgICBpbmRleF9yZWMgcyBsIGkgY1xuXG4oKiBkdXBsaWNhdGVkIGluIGJ5dGVzLm1sICopXG5sZXQgaW5kZXhfZnJvbV9vcHQgcyBpIGMgPVxuICBsZXQgbCA9IGxlbmd0aCBzIGluXG4gIGlmIGkgPCAwIHx8IGkgPiBsIHRoZW5cbiAgICBpbnZhbGlkX2FyZyBcIlN0cmluZy5pbmRleF9mcm9tX29wdCAvIEJ5dGVzLmluZGV4X2Zyb21fb3B0XCJcbiAgZWxzZVxuICAgIGluZGV4X3JlY19vcHQgcyBsIGkgY1xuXG4oKiBkdXBsaWNhdGVkIGluIGJ5dGVzLm1sICopXG5sZXQgcmVjIHJpbmRleF9yZWMgcyBpIGMgPVxuICBpZiBpIDwgMCB0aGVuIHJhaXNlIE5vdF9mb3VuZCBlbHNlXG4gIGlmIHVuc2FmZV9nZXQgcyBpID0gYyB0aGVuIGkgZWxzZSByaW5kZXhfcmVjIHMgKGkgLSAxKSBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gYnl0ZXMubWwgKilcbmxldCByaW5kZXggcyBjID0gcmluZGV4X3JlYyBzIChsZW5ndGggcyAtIDEpIGNcblxuKCogZHVwbGljYXRlZCBpbiBieXRlcy5tbCAqKVxubGV0IHJpbmRleF9mcm9tIHMgaSBjID1cbiAgaWYgaSA8IC0xIHx8IGkgPj0gbGVuZ3RoIHMgdGhlblxuICAgIGludmFsaWRfYXJnIFwiU3RyaW5nLnJpbmRleF9mcm9tIC8gQnl0ZXMucmluZGV4X2Zyb21cIlxuICBlbHNlXG4gICAgcmluZGV4X3JlYyBzIGkgY1xuXG4oKiBkdXBsaWNhdGVkIGluIGJ5dGVzLm1sICopXG5sZXQgcmVjIHJpbmRleF9yZWNfb3B0IHMgaSBjID1cbiAgaWYgaSA8IDAgdGhlbiBOb25lIGVsc2VcbiAgaWYgdW5zYWZlX2dldCBzIGkgPSBjIHRoZW4gU29tZSBpIGVsc2UgcmluZGV4X3JlY19vcHQgcyAoaSAtIDEpIGNcblxuKCogZHVwbGljYXRlZCBpbiBieXRlcy5tbCAqKVxubGV0IHJpbmRleF9vcHQgcyBjID0gcmluZGV4X3JlY19vcHQgcyAobGVuZ3RoIHMgLSAxKSBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gYnl0ZXMubWwgKilcbmxldCByaW5kZXhfZnJvbV9vcHQgcyBpIGMgPVxuICBpZiBpIDwgLTEgfHwgaSA+PSBsZW5ndGggcyB0aGVuXG4gICAgaW52YWxpZF9hcmcgXCJTdHJpbmcucmluZGV4X2Zyb21fb3B0IC8gQnl0ZXMucmluZGV4X2Zyb21fb3B0XCJcbiAgZWxzZVxuICAgIHJpbmRleF9yZWNfb3B0IHMgaSBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gYnl0ZXMubWwgKilcbmxldCBjb250YWluc19mcm9tIHMgaSBjID1cbiAgbGV0IGwgPSBsZW5ndGggcyBpblxuICBpZiBpIDwgMCB8fCBpID4gbCB0aGVuXG4gICAgaW52YWxpZF9hcmcgXCJTdHJpbmcuY29udGFpbnNfZnJvbSAvIEJ5dGVzLmNvbnRhaW5zX2Zyb21cIlxuICBlbHNlXG4gICAgdHJ5IGlnbm9yZSAoaW5kZXhfcmVjIHMgbCBpIGMpOyB0cnVlIHdpdGggTm90X2ZvdW5kIC0+IGZhbHNlXG5cbigqIGR1cGxpY2F0ZWQgaW4gYnl0ZXMubWwgKilcbmxldCBjb250YWlucyBzIGMgPSBjb250YWluc19mcm9tIHMgMCBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gYnl0ZXMubWwgKilcbmxldCByY29udGFpbnNfZnJvbSBzIGkgYyA9XG4gIGlmIGkgPCAwIHx8IGkgPj0gbGVuZ3RoIHMgdGhlblxuICAgIGludmFsaWRfYXJnIFwiU3RyaW5nLnJjb250YWluc19mcm9tIC8gQnl0ZXMucmNvbnRhaW5zX2Zyb21cIlxuICBlbHNlXG4gICAgdHJ5IGlnbm9yZSAocmluZGV4X3JlYyBzIGkgYyk7IHRydWUgd2l0aCBOb3RfZm91bmQgLT4gZmFsc2VcblxubGV0IHVwcGVyY2FzZV9hc2NpaSBzID1cbiAgQi51cHBlcmNhc2VfYXNjaWkgKGJvcyBzKSB8PiBidHNcbmxldCBsb3dlcmNhc2VfYXNjaWkgcyA9XG4gIEIubG93ZXJjYXNlX2FzY2lpIChib3MgcykgfD4gYnRzXG5sZXQgY2FwaXRhbGl6ZV9hc2NpaSBzID1cbiAgQi5jYXBpdGFsaXplX2FzY2lpIChib3MgcykgfD4gYnRzXG5sZXQgdW5jYXBpdGFsaXplX2FzY2lpIHMgPVxuICBCLnVuY2FwaXRhbGl6ZV9hc2NpaSAoYm9zIHMpIHw+IGJ0c1xuXG4oKiBkdXBsaWNhdGVkIGluIGJ5dGVzLm1sICopXG5sZXQgc3RhcnRzX3dpdGggfnByZWZpeCBzID1cbiAgbGV0IGxlbl9zID0gbGVuZ3RoIHNcbiAgYW5kIGxlbl9wcmUgPSBsZW5ndGggcHJlZml4IGluXG4gIGxldCByZWMgYXV4IGkgPVxuICAgIGlmIGkgPSBsZW5fcHJlIHRoZW4gdHJ1ZVxuICAgIGVsc2UgaWYgdW5zYWZlX2dldCBzIGkgPD4gdW5zYWZlX2dldCBwcmVmaXggaSB0aGVuIGZhbHNlXG4gICAgZWxzZSBhdXggKGkgKyAxKVxuICBpbiBsZW5fcyA+PSBsZW5fcHJlICYmIGF1eCAwXG5cbigqIGR1cGxpY2F0ZWQgaW4gYnl0ZXMubWwgKilcbmxldCBlbmRzX3dpdGggfnN1ZmZpeCBzID1cbiAgbGV0IGxlbl9zID0gbGVuZ3RoIHNcbiAgYW5kIGxlbl9zdWYgPSBsZW5ndGggc3VmZml4IGluXG4gIGxldCBkaWZmID0gbGVuX3MgLSBsZW5fc3VmIGluXG4gIGxldCByZWMgYXV4IGkgPVxuICAgIGlmIGkgPSBsZW5fc3VmIHRoZW4gdHJ1ZVxuICAgIGVsc2UgaWYgdW5zYWZlX2dldCBzIChkaWZmICsgaSkgPD4gdW5zYWZlX2dldCBzdWZmaXggaSB0aGVuIGZhbHNlXG4gICAgZWxzZSBhdXggKGkgKyAxKVxuICBpbiBkaWZmID49IDAgJiYgYXV4IDBcblxuKCogZHVwbGljYXRlZCBpbiBieXRlcy5tbCAqKVxubGV0IHNwbGl0X29uX2NoYXIgc2VwIHMgPVxuICBsZXQgciA9IHJlZiBbXSBpblxuICBsZXQgaiA9IHJlZiAobGVuZ3RoIHMpIGluXG4gIGZvciBpID0gbGVuZ3RoIHMgLSAxIGRvd250byAwIGRvXG4gICAgaWYgdW5zYWZlX2dldCBzIGkgPSBzZXAgdGhlbiBiZWdpblxuICAgICAgciA6PSBzdWIgcyAoaSArIDEpICghaiAtIGkgLSAxKSA6OiAhcjtcbiAgICAgIGogOj0gaVxuICAgIGVuZFxuICBkb25lO1xuICBzdWIgcyAwICFqIDo6ICFyXG5cbigqIERlcHJlY2F0ZWQgZnVuY3Rpb25zIGltcGxlbWVudGVkIHZpYSBvdGhlciBkZXByZWNhdGVkIGZ1bmN0aW9ucyAqKVxuW0BAQG9jYW1sLndhcm5pbmcgXCItM1wiXVxubGV0IHVwcGVyY2FzZSBzID1cbiAgQi51cHBlcmNhc2UgKGJvcyBzKSB8PiBidHNcbmxldCBsb3dlcmNhc2UgcyA9XG4gIEIubG93ZXJjYXNlIChib3MgcykgfD4gYnRzXG5sZXQgY2FwaXRhbGl6ZSBzID1cbiAgQi5jYXBpdGFsaXplIChib3MgcykgfD4gYnRzXG5sZXQgdW5jYXBpdGFsaXplIHMgPVxuICBCLnVuY2FwaXRhbGl6ZSAoYm9zIHMpIHw+IGJ0c1xuXG50eXBlIHQgPSBzdHJpbmdcblxubGV0IGNvbXBhcmUgKHg6IHQpICh5OiB0KSA9IFN0ZGxpYi5jb21wYXJlIHggeVxuZXh0ZXJuYWwgZXF1YWwgOiBzdHJpbmcgLT4gc3RyaW5nIC0+IGJvb2wgPSBcImNhbWxfc3RyaW5nX2VxdWFsXCIgW0BAbm9hbGxvY11cblxuKCoqIHsxIEl0ZXJhdG9yc30gKilcblxubGV0IHRvX3NlcSBzID0gYm9zIHMgfD4gQi50b19zZXFcblxubGV0IHRvX3NlcWkgcyA9IGJvcyBzIHw+IEIudG9fc2VxaVxuXG5sZXQgb2Zfc2VxIGcgPSBCLm9mX3NlcSBnIHw+IGJ0c1xuXG4oKiBVVEYgZGVjb2RlcnMgYW5kIHZhbGlkYXRvcnMgKilcblxubGV0IGdldF91dGZfOF91Y2hhciBzIGkgPSBCLmdldF91dGZfOF91Y2hhciAoYm9zIHMpIGlcbmxldCBpc192YWxpZF91dGZfOCBzID0gQi5pc192YWxpZF91dGZfOCAoYm9zIHMpXG5cbmxldCBnZXRfdXRmXzE2YmVfdWNoYXIgcyBpID0gQi5nZXRfdXRmXzE2YmVfdWNoYXIgKGJvcyBzKSBpXG5sZXQgaXNfdmFsaWRfdXRmXzE2YmUgcyA9IEIuaXNfdmFsaWRfdXRmXzE2YmUgKGJvcyBzKVxuXG5sZXQgZ2V0X3V0Zl8xNmxlX3VjaGFyIHMgaSA9IEIuZ2V0X3V0Zl8xNmxlX3VjaGFyIChib3MgcykgaVxubGV0IGlzX3ZhbGlkX3V0Zl8xNmxlIHMgPSBCLmlzX3ZhbGlkX3V0Zl8xNmxlIChib3MgcylcblxuKCoqIHs2IEJpbmFyeSBlbmNvZGluZy9kZWNvZGluZyBvZiBpbnRlZ2Vyc30gKilcblxuZXh0ZXJuYWwgZ2V0X3VpbnQ4IDogc3RyaW5nIC0+IGludCAtPiBpbnQgPSBcIiVzdHJpbmdfc2FmZV9nZXRcIlxuZXh0ZXJuYWwgZ2V0X3VpbnQxNl9uZSA6IHN0cmluZyAtPiBpbnQgLT4gaW50ID0gXCIlY2FtbF9zdHJpbmdfZ2V0MTZcIlxuZXh0ZXJuYWwgZ2V0X2ludDMyX25lIDogc3RyaW5nIC0+IGludCAtPiBpbnQzMiA9IFwiJWNhbWxfc3RyaW5nX2dldDMyXCJcbmV4dGVybmFsIGdldF9pbnQ2NF9uZSA6IHN0cmluZyAtPiBpbnQgLT4gaW50NjQgPSBcIiVjYW1sX3N0cmluZ19nZXQ2NFwiXG5cbmxldCBnZXRfaW50OCBzIGkgPSBCLmdldF9pbnQ4IChib3MgcykgaVxubGV0IGdldF91aW50MTZfbGUgcyBpID0gQi5nZXRfdWludDE2X2xlIChib3MgcykgaVxubGV0IGdldF91aW50MTZfYmUgcyBpID0gQi5nZXRfdWludDE2X2JlIChib3MgcykgaVxubGV0IGdldF9pbnQxNl9uZSBzIGkgPSBCLmdldF9pbnQxNl9uZSAoYm9zIHMpIGlcbmxldCBnZXRfaW50MTZfbGUgcyBpID0gQi5nZXRfaW50MTZfbGUgKGJvcyBzKSBpXG5sZXQgZ2V0X2ludDE2X2JlIHMgaSA9IEIuZ2V0X2ludDE2X2JlIChib3MgcykgaVxubGV0IGdldF9pbnQzMl9sZSBzIGkgPSBCLmdldF9pbnQzMl9sZSAoYm9zIHMpIGlcbmxldCBnZXRfaW50MzJfYmUgcyBpID0gQi5nZXRfaW50MzJfYmUgKGJvcyBzKSBpXG5sZXQgZ2V0X2ludDY0X2xlIHMgaSA9IEIuZ2V0X2ludDY0X2xlIChib3MgcykgaVxubGV0IGdldF9pbnQ2NF9iZSBzIGkgPSBCLmdldF9pbnQ2NF9iZSAoYm9zIHMpIGlcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBPQ2FtbCBwcm9ncmFtbWVycyAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMTggSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxudHlwZSB0ID0gdW5pdCA9ICgpXG5cbmxldCBlcXVhbCAoKSAoKSA9IHRydWVcbmxldCBjb21wYXJlICgpICgpID0gMFxubGV0IHRvX3N0cmluZyAoKSA9IFwiKClcIlxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NyBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG50eXBlIGV4dGVybl9mbGFncyA9XG4gICAgTm9fc2hhcmluZ1xuICB8IENsb3N1cmVzXG4gIHwgQ29tcGF0XzMyXG4oKiBub3RlOiB0aGlzIHR5cGUgZGVmaW5pdGlvbiBpcyB1c2VkIGluICdydW50aW1lL2RlYnVnZ2VyLmMnICopXG5cbmV4dGVybmFsIHRvX2NoYW5uZWw6IG91dF9jaGFubmVsIC0+ICdhIC0+IGV4dGVybl9mbGFncyBsaXN0IC0+IHVuaXRcbiAgICA9IFwiY2FtbF9vdXRwdXRfdmFsdWVcIlxuZXh0ZXJuYWwgdG9fYnl0ZXM6ICdhIC0+IGV4dGVybl9mbGFncyBsaXN0IC0+IGJ5dGVzXG4gICAgPSBcImNhbWxfb3V0cHV0X3ZhbHVlX3RvX2J5dGVzXCJcbmV4dGVybmFsIHRvX3N0cmluZzogJ2EgLT4gZXh0ZXJuX2ZsYWdzIGxpc3QgLT4gc3RyaW5nXG4gICAgPSBcImNhbWxfb3V0cHV0X3ZhbHVlX3RvX3N0cmluZ1wiXG5leHRlcm5hbCB0b19idWZmZXJfdW5zYWZlOlxuICAgICAgYnl0ZXMgLT4gaW50IC0+IGludCAtPiAnYSAtPiBleHRlcm5fZmxhZ3MgbGlzdCAtPiBpbnRcbiAgICA9IFwiY2FtbF9vdXRwdXRfdmFsdWVfdG9fYnVmZmVyXCJcblxubGV0IHRvX2J1ZmZlciBidWZmIG9mcyBsZW4gdiBmbGFncyA9XG4gIGlmIG9mcyA8IDAgfHwgbGVuIDwgMCB8fCBvZnMgPiBCeXRlcy5sZW5ndGggYnVmZiAtIGxlblxuICB0aGVuIGludmFsaWRfYXJnIFwiTWFyc2hhbC50b19idWZmZXI6IHN1YnN0cmluZyBvdXQgb2YgYm91bmRzXCJcbiAgZWxzZSB0b19idWZmZXJfdW5zYWZlIGJ1ZmYgb2ZzIGxlbiB2IGZsYWdzXG5cbigqIFRoZSBmdW5jdGlvbnMgYmVsb3cgdXNlIGJ5dGUgc2VxdWVuY2VzIGFzIGlucHV0LCBuZXZlciB1c2luZyBhbnlcbiAgIG11dGF0aW9uLiBJdCBtYWtlcyBzZW5zZSB0byB1c2Ugbm9uLW11dGF0ZWQgW2J5dGVzXSByYXRoZXIgdGhhblxuICAgW3N0cmluZ10sIGJlY2F1c2Ugd2UgcmVhbGx5IHdvcmsgd2l0aCBzZXF1ZW5jZXMgb2YgYnl0ZXMsIG5vdFxuICAgYSB0ZXh0IHJlcHJlc2VudGF0aW9uLlxuKilcblxuZXh0ZXJuYWwgZnJvbV9jaGFubmVsOiBpbl9jaGFubmVsIC0+ICdhID0gXCJjYW1sX2lucHV0X3ZhbHVlXCJcbmV4dGVybmFsIGZyb21fYnl0ZXNfdW5zYWZlOiBieXRlcyAtPiBpbnQgLT4gJ2EgPSBcImNhbWxfaW5wdXRfdmFsdWVfZnJvbV9ieXRlc1wiXG5leHRlcm5hbCBkYXRhX3NpemVfdW5zYWZlOiBieXRlcyAtPiBpbnQgLT4gaW50ID0gXCJjYW1sX21hcnNoYWxfZGF0YV9zaXplXCJcblxubGV0IGhlYWRlcl9zaXplID0gMjBcbmxldCBkYXRhX3NpemUgYnVmZiBvZnMgPVxuICBpZiBvZnMgPCAwIHx8IG9mcyA+IEJ5dGVzLmxlbmd0aCBidWZmIC0gaGVhZGVyX3NpemVcbiAgdGhlbiBpbnZhbGlkX2FyZyBcIk1hcnNoYWwuZGF0YV9zaXplXCJcbiAgZWxzZSBkYXRhX3NpemVfdW5zYWZlIGJ1ZmYgb2ZzXG5sZXQgdG90YWxfc2l6ZSBidWZmIG9mcyA9IGhlYWRlcl9zaXplICsgZGF0YV9zaXplIGJ1ZmYgb2ZzXG5cbmxldCBmcm9tX2J5dGVzIGJ1ZmYgb2ZzID1cbiAgaWYgb2ZzIDwgMCB8fCBvZnMgPiBCeXRlcy5sZW5ndGggYnVmZiAtIGhlYWRlcl9zaXplXG4gIHRoZW4gaW52YWxpZF9hcmcgXCJNYXJzaGFsLmZyb21fYnl0ZXNcIlxuICBlbHNlIGJlZ2luXG4gICAgbGV0IGxlbiA9IGRhdGFfc2l6ZV91bnNhZmUgYnVmZiBvZnMgaW5cbiAgICBpZiBvZnMgPiBCeXRlcy5sZW5ndGggYnVmZiAtIChoZWFkZXJfc2l6ZSArIGxlbilcbiAgICB0aGVuIGludmFsaWRfYXJnIFwiTWFyc2hhbC5mcm9tX2J5dGVzXCJcbiAgICBlbHNlIGZyb21fYnl0ZXNfdW5zYWZlIGJ1ZmYgb2ZzXG4gIGVuZFxuXG5sZXQgZnJvbV9zdHJpbmcgYnVmZiBvZnMgPVxuICAoKiBCeXRlcy51bnNhZmVfb2Zfc3RyaW5nIGlzIHNhZmUgaGVyZSwgYXMgdGhlIHByb2R1Y2VkIGJ5dGVcbiAgICAgc2VxdWVuY2UgaXMgbmV2ZXIgbXV0YXRlZCAqKVxuICBmcm9tX2J5dGVzIChCeXRlcy51bnNhZmVfb2Zfc3RyaW5nIGJ1ZmYpIG9mc1xuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBBbiBhbGlhcyBmb3IgdGhlIHR5cGUgb2YgYXJyYXlzLiAqKVxudHlwZSAnYSB0ID0gJ2EgYXJyYXlcblxuKCogQXJyYXkgb3BlcmF0aW9ucyAqKVxuXG5leHRlcm5hbCBsZW5ndGggOiAnYSBhcnJheSAtPiBpbnQgPSBcIiVhcnJheV9sZW5ndGhcIlxuZXh0ZXJuYWwgZ2V0OiAnYSBhcnJheSAtPiBpbnQgLT4gJ2EgPSBcIiVhcnJheV9zYWZlX2dldFwiXG5leHRlcm5hbCBzZXQ6ICdhIGFycmF5IC0+IGludCAtPiAnYSAtPiB1bml0ID0gXCIlYXJyYXlfc2FmZV9zZXRcIlxuZXh0ZXJuYWwgdW5zYWZlX2dldDogJ2EgYXJyYXkgLT4gaW50IC0+ICdhID0gXCIlYXJyYXlfdW5zYWZlX2dldFwiXG5leHRlcm5hbCB1bnNhZmVfc2V0OiAnYSBhcnJheSAtPiBpbnQgLT4gJ2EgLT4gdW5pdCA9IFwiJWFycmF5X3Vuc2FmZV9zZXRcIlxuZXh0ZXJuYWwgbWFrZTogaW50IC0+ICdhIC0+ICdhIGFycmF5ID0gXCJjYW1sX21ha2VfdmVjdFwiXG5leHRlcm5hbCBjcmVhdGU6IGludCAtPiAnYSAtPiAnYSBhcnJheSA9IFwiY2FtbF9tYWtlX3ZlY3RcIlxuZXh0ZXJuYWwgdW5zYWZlX3N1YiA6ICdhIGFycmF5IC0+IGludCAtPiBpbnQgLT4gJ2EgYXJyYXkgPSBcImNhbWxfYXJyYXlfc3ViXCJcbmV4dGVybmFsIGFwcGVuZF9wcmltIDogJ2EgYXJyYXkgLT4gJ2EgYXJyYXkgLT4gJ2EgYXJyYXkgPSBcImNhbWxfYXJyYXlfYXBwZW5kXCJcbmV4dGVybmFsIGNvbmNhdCA6ICdhIGFycmF5IGxpc3QgLT4gJ2EgYXJyYXkgPSBcImNhbWxfYXJyYXlfY29uY2F0XCJcbmV4dGVybmFsIHVuc2FmZV9ibGl0IDpcbiAgJ2EgYXJyYXkgLT4gaW50IC0+ICdhIGFycmF5IC0+IGludCAtPiBpbnQgLT4gdW5pdCA9IFwiY2FtbF9hcnJheV9ibGl0XCJcbmV4dGVybmFsIHVuc2FmZV9maWxsIDpcbiAgJ2EgYXJyYXkgLT4gaW50IC0+IGludCAtPiAnYSAtPiB1bml0ID0gXCJjYW1sX2FycmF5X2ZpbGxcIlxuZXh0ZXJuYWwgY3JlYXRlX2Zsb2F0OiBpbnQgLT4gZmxvYXQgYXJyYXkgPSBcImNhbWxfbWFrZV9mbG9hdF92ZWN0XCJcbmxldCBtYWtlX2Zsb2F0ID0gY3JlYXRlX2Zsb2F0XG5cbm1vZHVsZSBGbG9hdGFycmF5ID0gc3RydWN0XG4gIGV4dGVybmFsIGNyZWF0ZSA6IGludCAtPiBmbG9hdGFycmF5ID0gXCJjYW1sX2Zsb2F0YXJyYXlfY3JlYXRlXCJcbiAgZXh0ZXJuYWwgbGVuZ3RoIDogZmxvYXRhcnJheSAtPiBpbnQgPSBcIiVmbG9hdGFycmF5X2xlbmd0aFwiXG4gIGV4dGVybmFsIGdldCA6IGZsb2F0YXJyYXkgLT4gaW50IC0+IGZsb2F0ID0gXCIlZmxvYXRhcnJheV9zYWZlX2dldFwiXG4gIGV4dGVybmFsIHNldCA6IGZsb2F0YXJyYXkgLT4gaW50IC0+IGZsb2F0IC0+IHVuaXQgPSBcIiVmbG9hdGFycmF5X3NhZmVfc2V0XCJcbiAgZXh0ZXJuYWwgdW5zYWZlX2dldCA6IGZsb2F0YXJyYXkgLT4gaW50IC0+IGZsb2F0ID0gXCIlZmxvYXRhcnJheV91bnNhZmVfZ2V0XCJcbiAgZXh0ZXJuYWwgdW5zYWZlX3NldCA6IGZsb2F0YXJyYXkgLT4gaW50IC0+IGZsb2F0IC0+IHVuaXRcbiAgICAgID0gXCIlZmxvYXRhcnJheV91bnNhZmVfc2V0XCJcbmVuZFxuXG5sZXQgaW5pdCBsIGYgPVxuICBpZiBsID0gMCB0aGVuIFt8fF0gZWxzZVxuICBpZiBsIDwgMCB0aGVuIGludmFsaWRfYXJnIFwiQXJyYXkuaW5pdFwiXG4gICgqIFNlZSAjNjU3NS4gV2UgY291bGQgYWxzbyBjaGVjayBmb3IgbWF4aW11bSBhcnJheSBzaXplLCBidXQgdGhpcyBkZXBlbmRzXG4gICAgIG9uIHdoZXRoZXIgd2UgY3JlYXRlIGEgZmxvYXQgYXJyYXkgb3IgYSByZWd1bGFyIG9uZS4uLiAqKVxuICBlbHNlXG4gICBsZXQgcmVzID0gY3JlYXRlIGwgKGYgMCkgaW5cbiAgIGZvciBpID0gMSB0byBwcmVkIGwgZG9cbiAgICAgdW5zYWZlX3NldCByZXMgaSAoZiBpKVxuICAgZG9uZTtcbiAgIHJlc1xuXG5sZXQgbWFrZV9tYXRyaXggc3ggc3kgaW5pdCA9XG4gIGxldCByZXMgPSBjcmVhdGUgc3ggW3x8XSBpblxuICBmb3IgeCA9IDAgdG8gcHJlZCBzeCBkb1xuICAgIHVuc2FmZV9zZXQgcmVzIHggKGNyZWF0ZSBzeSBpbml0KVxuICBkb25lO1xuICByZXNcblxubGV0IGNyZWF0ZV9tYXRyaXggPSBtYWtlX21hdHJpeFxuXG5sZXQgY29weSBhID1cbiAgbGV0IGwgPSBsZW5ndGggYSBpbiBpZiBsID0gMCB0aGVuIFt8fF0gZWxzZSB1bnNhZmVfc3ViIGEgMCBsXG5cbmxldCBhcHBlbmQgYTEgYTIgPVxuICBsZXQgbDEgPSBsZW5ndGggYTEgaW5cbiAgaWYgbDEgPSAwIHRoZW4gY29weSBhMlxuICBlbHNlIGlmIGxlbmd0aCBhMiA9IDAgdGhlbiB1bnNhZmVfc3ViIGExIDAgbDFcbiAgZWxzZSBhcHBlbmRfcHJpbSBhMSBhMlxuXG5sZXQgc3ViIGEgb2ZzIGxlbiA9XG4gIGlmIG9mcyA8IDAgfHwgbGVuIDwgMCB8fCBvZnMgPiBsZW5ndGggYSAtIGxlblxuICB0aGVuIGludmFsaWRfYXJnIFwiQXJyYXkuc3ViXCJcbiAgZWxzZSB1bnNhZmVfc3ViIGEgb2ZzIGxlblxuXG5sZXQgZmlsbCBhIG9mcyBsZW4gdiA9XG4gIGlmIG9mcyA8IDAgfHwgbGVuIDwgMCB8fCBvZnMgPiBsZW5ndGggYSAtIGxlblxuICB0aGVuIGludmFsaWRfYXJnIFwiQXJyYXkuZmlsbFwiXG4gIGVsc2UgdW5zYWZlX2ZpbGwgYSBvZnMgbGVuIHZcblxubGV0IGJsaXQgYTEgb2ZzMSBhMiBvZnMyIGxlbiA9XG4gIGlmIGxlbiA8IDAgfHwgb2ZzMSA8IDAgfHwgb2ZzMSA+IGxlbmd0aCBhMSAtIGxlblxuICAgICAgICAgICAgIHx8IG9mczIgPCAwIHx8IG9mczIgPiBsZW5ndGggYTIgLSBsZW5cbiAgdGhlbiBpbnZhbGlkX2FyZyBcIkFycmF5LmJsaXRcIlxuICBlbHNlIHVuc2FmZV9ibGl0IGExIG9mczEgYTIgb2ZzMiBsZW5cblxubGV0IGl0ZXIgZiBhID1cbiAgZm9yIGkgPSAwIHRvIGxlbmd0aCBhIC0gMSBkbyBmKHVuc2FmZV9nZXQgYSBpKSBkb25lXG5cbmxldCBpdGVyMiBmIGEgYiA9XG4gIGlmIGxlbmd0aCBhIDw+IGxlbmd0aCBiIHRoZW5cbiAgICBpbnZhbGlkX2FyZyBcIkFycmF5Lml0ZXIyOiBhcnJheXMgbXVzdCBoYXZlIHRoZSBzYW1lIGxlbmd0aFwiXG4gIGVsc2VcbiAgICBmb3IgaSA9IDAgdG8gbGVuZ3RoIGEgLSAxIGRvIGYgKHVuc2FmZV9nZXQgYSBpKSAodW5zYWZlX2dldCBiIGkpIGRvbmVcblxubGV0IG1hcCBmIGEgPVxuICBsZXQgbCA9IGxlbmd0aCBhIGluXG4gIGlmIGwgPSAwIHRoZW4gW3x8XSBlbHNlIGJlZ2luXG4gICAgbGV0IHIgPSBjcmVhdGUgbCAoZih1bnNhZmVfZ2V0IGEgMCkpIGluXG4gICAgZm9yIGkgPSAxIHRvIGwgLSAxIGRvXG4gICAgICB1bnNhZmVfc2V0IHIgaSAoZih1bnNhZmVfZ2V0IGEgaSkpXG4gICAgZG9uZTtcbiAgICByXG4gIGVuZFxuXG5sZXQgbWFwMiBmIGEgYiA9XG4gIGxldCBsYSA9IGxlbmd0aCBhIGluXG4gIGxldCBsYiA9IGxlbmd0aCBiIGluXG4gIGlmIGxhIDw+IGxiIHRoZW5cbiAgICBpbnZhbGlkX2FyZyBcIkFycmF5Lm1hcDI6IGFycmF5cyBtdXN0IGhhdmUgdGhlIHNhbWUgbGVuZ3RoXCJcbiAgZWxzZSBiZWdpblxuICAgIGlmIGxhID0gMCB0aGVuIFt8fF0gZWxzZSBiZWdpblxuICAgICAgbGV0IHIgPSBjcmVhdGUgbGEgKGYgKHVuc2FmZV9nZXQgYSAwKSAodW5zYWZlX2dldCBiIDApKSBpblxuICAgICAgZm9yIGkgPSAxIHRvIGxhIC0gMSBkb1xuICAgICAgICB1bnNhZmVfc2V0IHIgaSAoZiAodW5zYWZlX2dldCBhIGkpICh1bnNhZmVfZ2V0IGIgaSkpXG4gICAgICBkb25lO1xuICAgICAgclxuICAgIGVuZFxuICBlbmRcblxubGV0IGl0ZXJpIGYgYSA9XG4gIGZvciBpID0gMCB0byBsZW5ndGggYSAtIDEgZG8gZiBpICh1bnNhZmVfZ2V0IGEgaSkgZG9uZVxuXG5sZXQgbWFwaSBmIGEgPVxuICBsZXQgbCA9IGxlbmd0aCBhIGluXG4gIGlmIGwgPSAwIHRoZW4gW3x8XSBlbHNlIGJlZ2luXG4gICAgbGV0IHIgPSBjcmVhdGUgbCAoZiAwICh1bnNhZmVfZ2V0IGEgMCkpIGluXG4gICAgZm9yIGkgPSAxIHRvIGwgLSAxIGRvXG4gICAgICB1bnNhZmVfc2V0IHIgaSAoZiBpICh1bnNhZmVfZ2V0IGEgaSkpXG4gICAgZG9uZTtcbiAgICByXG4gIGVuZFxuXG5sZXQgdG9fbGlzdCBhID1cbiAgbGV0IHJlYyB0b2xpc3QgaSByZXMgPVxuICAgIGlmIGkgPCAwIHRoZW4gcmVzIGVsc2UgdG9saXN0IChpIC0gMSkgKHVuc2FmZV9nZXQgYSBpIDo6IHJlcykgaW5cbiAgdG9saXN0IChsZW5ndGggYSAtIDEpIFtdXG5cbigqIENhbm5vdCB1c2UgTGlzdC5sZW5ndGggaGVyZSBiZWNhdXNlIHRoZSBMaXN0IG1vZHVsZSBkZXBlbmRzIG9uIEFycmF5LiAqKVxubGV0IHJlYyBsaXN0X2xlbmd0aCBhY2N1ID0gZnVuY3Rpb25cbiAgfCBbXSAtPiBhY2N1XG4gIHwgXzo6dCAtPiBsaXN0X2xlbmd0aCAoc3VjYyBhY2N1KSB0XG5cbmxldCBvZl9saXN0ID0gZnVuY3Rpb25cbiAgICBbXSAtPiBbfHxdXG4gIHwgaGQ6OnRsIGFzIGwgLT5cbiAgICAgIGxldCBhID0gY3JlYXRlIChsaXN0X2xlbmd0aCAwIGwpIGhkIGluXG4gICAgICBsZXQgcmVjIGZpbGwgaSA9IGZ1bmN0aW9uXG4gICAgICAgICAgW10gLT4gYVxuICAgICAgICB8IGhkOjp0bCAtPiB1bnNhZmVfc2V0IGEgaSBoZDsgZmlsbCAoaSsxKSB0bCBpblxuICAgICAgZmlsbCAxIHRsXG5cbmxldCBmb2xkX2xlZnQgZiB4IGEgPVxuICBsZXQgciA9IHJlZiB4IGluXG4gIGZvciBpID0gMCB0byBsZW5ndGggYSAtIDEgZG9cbiAgICByIDo9IGYgIXIgKHVuc2FmZV9nZXQgYSBpKVxuICBkb25lO1xuICAhclxuXG5sZXQgZm9sZF9sZWZ0X21hcCBmIGFjYyBpbnB1dF9hcnJheSA9XG4gIGxldCBsZW4gPSBsZW5ndGggaW5wdXRfYXJyYXkgaW5cbiAgaWYgbGVuID0gMCB0aGVuIChhY2MsIFt8fF0pIGVsc2UgYmVnaW5cbiAgICBsZXQgYWNjLCBlbHQgPSBmIGFjYyAodW5zYWZlX2dldCBpbnB1dF9hcnJheSAwKSBpblxuICAgIGxldCBvdXRwdXRfYXJyYXkgPSBjcmVhdGUgbGVuIGVsdCBpblxuICAgIGxldCBhY2MgPSByZWYgYWNjIGluXG4gICAgZm9yIGkgPSAxIHRvIGxlbiAtIDEgZG9cbiAgICAgIGxldCBhY2MnLCBlbHQgPSBmICFhY2MgKHVuc2FmZV9nZXQgaW5wdXRfYXJyYXkgaSkgaW5cbiAgICAgIGFjYyA6PSBhY2MnO1xuICAgICAgdW5zYWZlX3NldCBvdXRwdXRfYXJyYXkgaSBlbHQ7XG4gICAgZG9uZTtcbiAgICAhYWNjLCBvdXRwdXRfYXJyYXlcbiAgZW5kXG5cbmxldCBmb2xkX3JpZ2h0IGYgYSB4ID1cbiAgbGV0IHIgPSByZWYgeCBpblxuICBmb3IgaSA9IGxlbmd0aCBhIC0gMSBkb3dudG8gMCBkb1xuICAgIHIgOj0gZiAodW5zYWZlX2dldCBhIGkpICFyXG4gIGRvbmU7XG4gICFyXG5cbmxldCBleGlzdHMgcCBhID1cbiAgbGV0IG4gPSBsZW5ndGggYSBpblxuICBsZXQgcmVjIGxvb3AgaSA9XG4gICAgaWYgaSA9IG4gdGhlbiBmYWxzZVxuICAgIGVsc2UgaWYgcCAodW5zYWZlX2dldCBhIGkpIHRoZW4gdHJ1ZVxuICAgIGVsc2UgbG9vcCAoc3VjYyBpKSBpblxuICBsb29wIDBcblxubGV0IGZvcl9hbGwgcCBhID1cbiAgbGV0IG4gPSBsZW5ndGggYSBpblxuICBsZXQgcmVjIGxvb3AgaSA9XG4gICAgaWYgaSA9IG4gdGhlbiB0cnVlXG4gICAgZWxzZSBpZiBwICh1bnNhZmVfZ2V0IGEgaSkgdGhlbiBsb29wIChzdWNjIGkpXG4gICAgZWxzZSBmYWxzZSBpblxuICBsb29wIDBcblxubGV0IGZvcl9hbGwyIHAgbDEgbDIgPVxuICBsZXQgbjEgPSBsZW5ndGggbDFcbiAgYW5kIG4yID0gbGVuZ3RoIGwyIGluXG4gIGlmIG4xIDw+IG4yIHRoZW4gaW52YWxpZF9hcmcgXCJBcnJheS5mb3JfYWxsMlwiXG4gIGVsc2UgbGV0IHJlYyBsb29wIGkgPVxuICAgIGlmIGkgPSBuMSB0aGVuIHRydWVcbiAgICBlbHNlIGlmIHAgKHVuc2FmZV9nZXQgbDEgaSkgKHVuc2FmZV9nZXQgbDIgaSkgdGhlbiBsb29wIChzdWNjIGkpXG4gICAgZWxzZSBmYWxzZSBpblxuICBsb29wIDBcblxubGV0IGV4aXN0czIgcCBsMSBsMiA9XG4gIGxldCBuMSA9IGxlbmd0aCBsMVxuICBhbmQgbjIgPSBsZW5ndGggbDIgaW5cbiAgaWYgbjEgPD4gbjIgdGhlbiBpbnZhbGlkX2FyZyBcIkFycmF5LmV4aXN0czJcIlxuICBlbHNlIGxldCByZWMgbG9vcCBpID1cbiAgICBpZiBpID0gbjEgdGhlbiBmYWxzZVxuICAgIGVsc2UgaWYgcCAodW5zYWZlX2dldCBsMSBpKSAodW5zYWZlX2dldCBsMiBpKSB0aGVuIHRydWVcbiAgICBlbHNlIGxvb3AgKHN1Y2MgaSkgaW5cbiAgbG9vcCAwXG5cbmxldCBtZW0geCBhID1cbiAgbGV0IG4gPSBsZW5ndGggYSBpblxuICBsZXQgcmVjIGxvb3AgaSA9XG4gICAgaWYgaSA9IG4gdGhlbiBmYWxzZVxuICAgIGVsc2UgaWYgY29tcGFyZSAodW5zYWZlX2dldCBhIGkpIHggPSAwIHRoZW4gdHJ1ZVxuICAgIGVsc2UgbG9vcCAoc3VjYyBpKSBpblxuICBsb29wIDBcblxubGV0IG1lbXEgeCBhID1cbiAgbGV0IG4gPSBsZW5ndGggYSBpblxuICBsZXQgcmVjIGxvb3AgaSA9XG4gICAgaWYgaSA9IG4gdGhlbiBmYWxzZVxuICAgIGVsc2UgaWYgeCA9PSAodW5zYWZlX2dldCBhIGkpIHRoZW4gdHJ1ZVxuICAgIGVsc2UgbG9vcCAoc3VjYyBpKSBpblxuICBsb29wIDBcblxubGV0IGZpbmRfb3B0IHAgYSA9XG4gIGxldCBuID0gbGVuZ3RoIGEgaW5cbiAgbGV0IHJlYyBsb29wIGkgPVxuICAgIGlmIGkgPSBuIHRoZW4gTm9uZVxuICAgIGVsc2VcbiAgICAgIGxldCB4ID0gdW5zYWZlX2dldCBhIGkgaW5cbiAgICAgIGlmIHAgeCB0aGVuIFNvbWUgeFxuICAgICAgZWxzZSBsb29wIChzdWNjIGkpXG4gIGluXG4gIGxvb3AgMFxuXG5sZXQgZmluZF9tYXAgZiBhID1cbiAgbGV0IG4gPSBsZW5ndGggYSBpblxuICBsZXQgcmVjIGxvb3AgaSA9XG4gICAgaWYgaSA9IG4gdGhlbiBOb25lXG4gICAgZWxzZVxuICAgICAgbWF0Y2ggZiAodW5zYWZlX2dldCBhIGkpIHdpdGhcbiAgICAgIHwgTm9uZSAtPiBsb29wIChzdWNjIGkpXG4gICAgICB8IFNvbWUgXyBhcyByIC0+IHJcbiAgaW5cbiAgbG9vcCAwXG5cbmxldCBzcGxpdCB4ID1cbiAgaWYgeCA9IFt8fF0gdGhlbiBbfHxdLCBbfHxdXG4gIGVsc2UgYmVnaW5cbiAgICBsZXQgYTAsIGIwID0gdW5zYWZlX2dldCB4IDAgaW5cbiAgICBsZXQgbiA9IGxlbmd0aCB4IGluXG4gICAgbGV0IGEgPSBjcmVhdGUgbiBhMCBpblxuICAgIGxldCBiID0gY3JlYXRlIG4gYjAgaW5cbiAgICBmb3IgaSA9IDEgdG8gbiAtIDEgZG9cbiAgICAgIGxldCBhaSwgYmkgPSB1bnNhZmVfZ2V0IHggaSBpblxuICAgICAgdW5zYWZlX3NldCBhIGkgYWk7XG4gICAgICB1bnNhZmVfc2V0IGIgaSBiaVxuICAgIGRvbmU7XG4gICAgYSwgYlxuICBlbmRcblxubGV0IGNvbWJpbmUgYSBiID1cbiAgbGV0IG5hID0gbGVuZ3RoIGEgaW5cbiAgbGV0IG5iID0gbGVuZ3RoIGIgaW5cbiAgaWYgbmEgPD4gbmIgdGhlbiBpbnZhbGlkX2FyZyBcIkFycmF5LmNvbWJpbmVcIjtcbiAgaWYgbmEgPSAwIHRoZW4gW3x8XVxuICBlbHNlIGJlZ2luXG4gICAgbGV0IHggPSBjcmVhdGUgbmEgKHVuc2FmZV9nZXQgYSAwLCB1bnNhZmVfZ2V0IGIgMCkgaW5cbiAgICBmb3IgaSA9IDEgdG8gbmEgLSAxIGRvXG4gICAgICB1bnNhZmVfc2V0IHggaSAodW5zYWZlX2dldCBhIGksIHVuc2FmZV9nZXQgYiBpKVxuICAgIGRvbmU7XG4gICAgeFxuICBlbmRcblxuZXhjZXB0aW9uIEJvdHRvbSBvZiBpbnRcbmxldCBzb3J0IGNtcCBhID1cbiAgbGV0IG1heHNvbiBsIGkgPVxuICAgIGxldCBpMzEgPSBpK2kraSsxIGluXG4gICAgbGV0IHggPSByZWYgaTMxIGluXG4gICAgaWYgaTMxKzIgPCBsIHRoZW4gYmVnaW5cbiAgICAgIGlmIGNtcCAoZ2V0IGEgaTMxKSAoZ2V0IGEgKGkzMSsxKSkgPCAwIHRoZW4geCA6PSBpMzErMTtcbiAgICAgIGlmIGNtcCAoZ2V0IGEgIXgpIChnZXQgYSAoaTMxKzIpKSA8IDAgdGhlbiB4IDo9IGkzMSsyO1xuICAgICAgIXhcbiAgICBlbmQgZWxzZVxuICAgICAgaWYgaTMxKzEgPCBsICYmIGNtcCAoZ2V0IGEgaTMxKSAoZ2V0IGEgKGkzMSsxKSkgPCAwXG4gICAgICB0aGVuIGkzMSsxXG4gICAgICBlbHNlIGlmIGkzMSA8IGwgdGhlbiBpMzEgZWxzZSByYWlzZSAoQm90dG9tIGkpXG4gIGluXG4gIGxldCByZWMgdHJpY2tsZWRvd24gbCBpIGUgPVxuICAgIGxldCBqID0gbWF4c29uIGwgaSBpblxuICAgIGlmIGNtcCAoZ2V0IGEgaikgZSA+IDAgdGhlbiBiZWdpblxuICAgICAgc2V0IGEgaSAoZ2V0IGEgaik7XG4gICAgICB0cmlja2xlZG93biBsIGogZTtcbiAgICBlbmQgZWxzZSBiZWdpblxuICAgICAgc2V0IGEgaSBlO1xuICAgIGVuZDtcbiAgaW5cbiAgbGV0IHRyaWNrbGUgbCBpIGUgPSB0cnkgdHJpY2tsZWRvd24gbCBpIGUgd2l0aCBCb3R0b20gaSAtPiBzZXQgYSBpIGUgaW5cbiAgbGV0IHJlYyBidWJibGVkb3duIGwgaSA9XG4gICAgbGV0IGogPSBtYXhzb24gbCBpIGluXG4gICAgc2V0IGEgaSAoZ2V0IGEgaik7XG4gICAgYnViYmxlZG93biBsIGpcbiAgaW5cbiAgbGV0IGJ1YmJsZSBsIGkgPSB0cnkgYnViYmxlZG93biBsIGkgd2l0aCBCb3R0b20gaSAtPiBpIGluXG4gIGxldCByZWMgdHJpY2tsZXVwIGkgZSA9XG4gICAgbGV0IGZhdGhlciA9IChpIC0gMSkgLyAzIGluXG4gICAgYXNzZXJ0IChpIDw+IGZhdGhlcik7XG4gICAgaWYgY21wIChnZXQgYSBmYXRoZXIpIGUgPCAwIHRoZW4gYmVnaW5cbiAgICAgIHNldCBhIGkgKGdldCBhIGZhdGhlcik7XG4gICAgICBpZiBmYXRoZXIgPiAwIHRoZW4gdHJpY2tsZXVwIGZhdGhlciBlIGVsc2Ugc2V0IGEgMCBlO1xuICAgIGVuZCBlbHNlIGJlZ2luXG4gICAgICBzZXQgYSBpIGU7XG4gICAgZW5kO1xuICBpblxuICBsZXQgbCA9IGxlbmd0aCBhIGluXG4gIGZvciBpID0gKGwgKyAxKSAvIDMgLSAxIGRvd250byAwIGRvIHRyaWNrbGUgbCBpIChnZXQgYSBpKTsgZG9uZTtcbiAgZm9yIGkgPSBsIC0gMSBkb3dudG8gMiBkb1xuICAgIGxldCBlID0gKGdldCBhIGkpIGluXG4gICAgc2V0IGEgaSAoZ2V0IGEgMCk7XG4gICAgdHJpY2tsZXVwIChidWJibGUgaSAwKSBlO1xuICBkb25lO1xuICBpZiBsID4gMSB0aGVuIChsZXQgZSA9IChnZXQgYSAxKSBpbiBzZXQgYSAxIChnZXQgYSAwKTsgc2V0IGEgMCBlKVxuXG5cbmxldCBjdXRvZmYgPSA1XG5sZXQgc3RhYmxlX3NvcnQgY21wIGEgPVxuICBsZXQgbWVyZ2Ugc3JjMW9mcyBzcmMxbGVuIHNyYzIgc3JjMm9mcyBzcmMybGVuIGRzdCBkc3RvZnMgPVxuICAgIGxldCBzcmMxciA9IHNyYzFvZnMgKyBzcmMxbGVuIGFuZCBzcmMyciA9IHNyYzJvZnMgKyBzcmMybGVuIGluXG4gICAgbGV0IHJlYyBsb29wIGkxIHMxIGkyIHMyIGQgPVxuICAgICAgaWYgY21wIHMxIHMyIDw9IDAgdGhlbiBiZWdpblxuICAgICAgICBzZXQgZHN0IGQgczE7XG4gICAgICAgIGxldCBpMSA9IGkxICsgMSBpblxuICAgICAgICBpZiBpMSA8IHNyYzFyIHRoZW5cbiAgICAgICAgICBsb29wIGkxIChnZXQgYSBpMSkgaTIgczIgKGQgKyAxKVxuICAgICAgICBlbHNlXG4gICAgICAgICAgYmxpdCBzcmMyIGkyIGRzdCAoZCArIDEpIChzcmMyciAtIGkyKVxuICAgICAgZW5kIGVsc2UgYmVnaW5cbiAgICAgICAgc2V0IGRzdCBkIHMyO1xuICAgICAgICBsZXQgaTIgPSBpMiArIDEgaW5cbiAgICAgICAgaWYgaTIgPCBzcmMyciB0aGVuXG4gICAgICAgICAgbG9vcCBpMSBzMSBpMiAoZ2V0IHNyYzIgaTIpIChkICsgMSlcbiAgICAgICAgZWxzZVxuICAgICAgICAgIGJsaXQgYSBpMSBkc3QgKGQgKyAxKSAoc3JjMXIgLSBpMSlcbiAgICAgIGVuZFxuICAgIGluIGxvb3Agc3JjMW9mcyAoZ2V0IGEgc3JjMW9mcykgc3JjMm9mcyAoZ2V0IHNyYzIgc3JjMm9mcykgZHN0b2ZzO1xuICBpblxuICBsZXQgaXNvcnR0byBzcmNvZnMgZHN0IGRzdG9mcyBsZW4gPVxuICAgIGZvciBpID0gMCB0byBsZW4gLSAxIGRvXG4gICAgICBsZXQgZSA9IChnZXQgYSAoc3Jjb2ZzICsgaSkpIGluXG4gICAgICBsZXQgaiA9IHJlZiAoZHN0b2ZzICsgaSAtIDEpIGluXG4gICAgICB3aGlsZSAoIWogPj0gZHN0b2ZzICYmIGNtcCAoZ2V0IGRzdCAhaikgZSA+IDApIGRvXG4gICAgICAgIHNldCBkc3QgKCFqICsgMSkgKGdldCBkc3QgIWopO1xuICAgICAgICBkZWNyIGo7XG4gICAgICBkb25lO1xuICAgICAgc2V0IGRzdCAoIWogKyAxKSBlO1xuICAgIGRvbmU7XG4gIGluXG4gIGxldCByZWMgc29ydHRvIHNyY29mcyBkc3QgZHN0b2ZzIGxlbiA9XG4gICAgaWYgbGVuIDw9IGN1dG9mZiB0aGVuIGlzb3J0dG8gc3Jjb2ZzIGRzdCBkc3RvZnMgbGVuIGVsc2UgYmVnaW5cbiAgICAgIGxldCBsMSA9IGxlbiAvIDIgaW5cbiAgICAgIGxldCBsMiA9IGxlbiAtIGwxIGluXG4gICAgICBzb3J0dG8gKHNyY29mcyArIGwxKSBkc3QgKGRzdG9mcyArIGwxKSBsMjtcbiAgICAgIHNvcnR0byBzcmNvZnMgYSAoc3Jjb2ZzICsgbDIpIGwxO1xuICAgICAgbWVyZ2UgKHNyY29mcyArIGwyKSBsMSBkc3QgKGRzdG9mcyArIGwxKSBsMiBkc3QgZHN0b2ZzO1xuICAgIGVuZDtcbiAgaW5cbiAgbGV0IGwgPSBsZW5ndGggYSBpblxuICBpZiBsIDw9IGN1dG9mZiB0aGVuIGlzb3J0dG8gMCBhIDAgbCBlbHNlIGJlZ2luXG4gICAgbGV0IGwxID0gbCAvIDIgaW5cbiAgICBsZXQgbDIgPSBsIC0gbDEgaW5cbiAgICBsZXQgdCA9IG1ha2UgbDIgKGdldCBhIDApIGluXG4gICAgc29ydHRvIGwxIHQgMCBsMjtcbiAgICBzb3J0dG8gMCBhIGwyIGwxO1xuICAgIG1lcmdlIGwyIGwxIHQgMCBsMiBhIDA7XG4gIGVuZFxuXG5cbmxldCBmYXN0X3NvcnQgPSBzdGFibGVfc29ydFxuXG4oKiogezEgSXRlcmF0b3JzfSAqKVxuXG5sZXQgdG9fc2VxIGEgPVxuICBsZXQgcmVjIGF1eCBpICgpID1cbiAgICBpZiBpIDwgbGVuZ3RoIGFcbiAgICB0aGVuXG4gICAgICBsZXQgeCA9IHVuc2FmZV9nZXQgYSBpIGluXG4gICAgICBTZXEuQ29ucyAoeCwgYXV4IChpKzEpKVxuICAgIGVsc2UgU2VxLk5pbFxuICBpblxuICBhdXggMFxuXG5sZXQgdG9fc2VxaSBhID1cbiAgbGV0IHJlYyBhdXggaSAoKSA9XG4gICAgaWYgaSA8IGxlbmd0aCBhXG4gICAgdGhlblxuICAgICAgbGV0IHggPSB1bnNhZmVfZ2V0IGEgaSBpblxuICAgICAgU2VxLkNvbnMgKChpLHgpLCBhdXggKGkrMSkpXG4gICAgZWxzZSBTZXEuTmlsXG4gIGluXG4gIGF1eCAwXG5cbmxldCBvZl9yZXZfbGlzdCA9IGZ1bmN0aW9uXG4gICAgW10gLT4gW3x8XVxuICB8IGhkOjp0bCBhcyBsIC0+XG4gICAgICBsZXQgbGVuID0gbGlzdF9sZW5ndGggMCBsIGluXG4gICAgICBsZXQgYSA9IGNyZWF0ZSBsZW4gaGQgaW5cbiAgICAgIGxldCByZWMgZmlsbCBpID0gZnVuY3Rpb25cbiAgICAgICAgICBbXSAtPiBhXG4gICAgICAgIHwgaGQ6OnRsIC0+IHVuc2FmZV9zZXQgYSBpIGhkOyBmaWxsIChpLTEpIHRsXG4gICAgICBpblxuICAgICAgZmlsbCAobGVuLTIpIHRsXG5cbmxldCBvZl9zZXEgaSA9XG4gIGxldCBsID0gU2VxLmZvbGRfbGVmdCAoZnVuIGFjYyB4IC0+IHg6OmFjYykgW10gaSBpblxuICBvZl9yZXZfbGlzdCBsXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgIE5pY29sYXMgT2plZGEgQmFyLCBMZXhpRmkgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDE4IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbmV4dGVybmFsIG5lZyA6IGZsb2F0IC0+IGZsb2F0ID0gXCIlbmVnZmxvYXRcIlxuZXh0ZXJuYWwgYWRkIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcIiVhZGRmbG9hdFwiXG5leHRlcm5hbCBzdWIgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiJXN1YmZsb2F0XCJcbmV4dGVybmFsIG11bCA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCIlbXVsZmxvYXRcIlxuZXh0ZXJuYWwgZGl2IDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcIiVkaXZmbG9hdFwiXG5leHRlcm5hbCByZW0gOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9mbW9kX2Zsb2F0XCIgXCJmbW9kXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGZtYSA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2ZtYV9mbG9hdFwiIFwiY2FtbF9mbWFcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYWJzIDogZmxvYXQgLT4gZmxvYXQgPSBcIiVhYnNmbG9hdFwiXG5cbmxldCB6ZXJvID0gMC5cbmxldCBvbmUgPSAxLlxubGV0IG1pbnVzX29uZSA9IC0xLlxubGV0IGluZmluaXR5ID0gU3RkbGliLmluZmluaXR5XG5sZXQgbmVnX2luZmluaXR5ID0gU3RkbGliLm5lZ19pbmZpbml0eVxubGV0IG5hbiA9IFN0ZGxpYi5uYW5cbmxldCBpc19maW5pdGUgKHg6IGZsb2F0KSA9IHggLS4geCA9IDAuXG5sZXQgaXNfaW5maW5pdGUgKHg6IGZsb2F0KSA9IDEuIC8uIHggPSAwLlxubGV0IGlzX25hbiAoeDogZmxvYXQpID0geCA8PiB4XG5cbmxldCBwaSA9IDB4MS45MjFmYjU0NDQyZDE4cCsxXG5sZXQgbWF4X2Zsb2F0ID0gU3RkbGliLm1heF9mbG9hdFxubGV0IG1pbl9mbG9hdCA9IFN0ZGxpYi5taW5fZmxvYXRcbmxldCBlcHNpbG9uID0gU3RkbGliLmVwc2lsb25fZmxvYXRcbmV4dGVybmFsIG9mX2ludCA6IGludCAtPiBmbG9hdCA9IFwiJWZsb2F0b2ZpbnRcIlxuZXh0ZXJuYWwgdG9faW50IDogZmxvYXQgLT4gaW50ID0gXCIlaW50b2ZmbG9hdFwiXG5leHRlcm5hbCBvZl9zdHJpbmcgOiBzdHJpbmcgLT4gZmxvYXQgPSBcImNhbWxfZmxvYXRfb2Zfc3RyaW5nXCJcbmxldCBvZl9zdHJpbmdfb3B0ID0gU3RkbGliLmZsb2F0X29mX3N0cmluZ19vcHRcbmxldCB0b19zdHJpbmcgPSBTdGRsaWIuc3RyaW5nX29mX2Zsb2F0XG50eXBlIGZwY2xhc3MgPSBTdGRsaWIuZnBjbGFzcyA9XG4gICAgRlBfbm9ybWFsXG4gIHwgRlBfc3Vibm9ybWFsXG4gIHwgRlBfemVyb1xuICB8IEZQX2luZmluaXRlXG4gIHwgRlBfbmFuXG5leHRlcm5hbCBjbGFzc2lmeV9mbG9hdCA6IChmbG9hdCBbQHVuYm94ZWRdKSAtPiBmcGNsYXNzID1cbiAgXCJjYW1sX2NsYXNzaWZ5X2Zsb2F0XCIgXCJjYW1sX2NsYXNzaWZ5X2Zsb2F0X3VuYm94ZWRcIiBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgcG93IDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfcG93ZXJfZmxvYXRcIiBcInBvd1wiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBzcXJ0IDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfc3FydF9mbG9hdFwiIFwic3FydFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBjYnJ0IDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfY2JydF9mbG9hdFwiIFwiY2FtbF9jYnJ0XCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGV4cCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2V4cF9mbG9hdFwiIFwiZXhwXCIgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGV4cDIgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9leHAyX2Zsb2F0XCIgXCJjYW1sX2V4cDJcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgbG9nIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfbG9nX2Zsb2F0XCIgXCJsb2dcIiBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgbG9nMTAgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9sb2cxMF9mbG9hdFwiIFwibG9nMTBcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgbG9nMiA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2xvZzJfZmxvYXRcIiBcImNhbWxfbG9nMlwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBleHBtMSA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2V4cG0xX2Zsb2F0XCIgXCJjYW1sX2V4cG0xXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGxvZzFwIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfbG9nMXBfZmxvYXRcIiBcImNhbWxfbG9nMXBcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgY29zIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfY29zX2Zsb2F0XCIgXCJjb3NcIiBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgc2luIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfc2luX2Zsb2F0XCIgXCJzaW5cIiBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgdGFuIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfdGFuX2Zsb2F0XCIgXCJ0YW5cIiBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYWNvcyA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2Fjb3NfZmxvYXRcIiBcImFjb3NcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYXNpbiA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2FzaW5fZmxvYXRcIiBcImFzaW5cIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYXRhbiA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2F0YW5fZmxvYXRcIiBcImF0YW5cIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYXRhbjIgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9hdGFuMl9mbG9hdFwiIFwiYXRhbjJcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgaHlwb3QgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdFxuICAgICAgICAgICAgICAgPSBcImNhbWxfaHlwb3RfZmxvYXRcIiBcImNhbWxfaHlwb3RcIiBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgY29zaCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2Nvc2hfZmxvYXRcIiBcImNvc2hcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgc2luaCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX3NpbmhfZmxvYXRcIiBcInNpbmhcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgdGFuaCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX3RhbmhfZmxvYXRcIiBcInRhbmhcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYWNvc2ggOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9hY29zaF9mbG9hdFwiIFwiY2FtbF9hY29zaFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBhc2luaCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2FzaW5oX2Zsb2F0XCIgXCJjYW1sX2FzaW5oXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGF0YW5oIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfYXRhbmhfZmxvYXRcIiBcImNhbWxfYXRhbmhcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgZXJmIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfZXJmX2Zsb2F0XCIgXCJjYW1sX2VyZlwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBlcmZjIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfZXJmY19mbG9hdFwiIFwiY2FtbF9lcmZjXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIHRydW5jIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfdHJ1bmNfZmxvYXRcIiBcImNhbWxfdHJ1bmNcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgcm91bmQgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9yb3VuZF9mbG9hdFwiIFwiY2FtbF9yb3VuZFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBjZWlsIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfY2VpbF9mbG9hdFwiIFwiY2VpbFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBmbG9vciA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2Zsb29yX2Zsb2F0XCIgXCJmbG9vclwiXG5bQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuXG5sZXQgaXNfaW50ZWdlciB4ID0geCA9IHRydW5jIHggJiYgaXNfZmluaXRlIHhcblxuZXh0ZXJuYWwgbmV4dF9hZnRlciA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0XG4gID0gXCJjYW1sX25leHRhZnRlcl9mbG9hdFwiIFwiY2FtbF9uZXh0YWZ0ZXJcIiBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuXG5sZXQgc3VjYyB4ID0gbmV4dF9hZnRlciB4IGluZmluaXR5XG5sZXQgcHJlZCB4ID0gbmV4dF9hZnRlciB4IG5lZ19pbmZpbml0eVxuXG5leHRlcm5hbCBjb3B5X3NpZ24gOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdFxuICAgICAgICAgICAgICAgICAgPSBcImNhbWxfY29weXNpZ25fZmxvYXRcIiBcImNhbWxfY29weXNpZ25cIlxuICAgICAgICAgICAgICAgICAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIHNpZ25fYml0IDogKGZsb2F0IFtAdW5ib3hlZF0pIC0+IGJvb2xcbiAgPSBcImNhbWxfc2lnbmJpdF9mbG9hdFwiIFwiY2FtbF9zaWduYml0XCIgW0BAbm9hbGxvY11cblxuZXh0ZXJuYWwgZnJleHAgOiBmbG9hdCAtPiBmbG9hdCAqIGludCA9IFwiY2FtbF9mcmV4cF9mbG9hdFwiXG5leHRlcm5hbCBsZGV4cCA6IChmbG9hdCBbQHVuYm94ZWRdKSAtPiAoaW50IFtAdW50YWdnZWRdKSAtPiAoZmxvYXQgW0B1bmJveGVkXSkgPVxuICBcImNhbWxfbGRleHBfZmxvYXRcIiBcImNhbWxfbGRleHBfZmxvYXRfdW5ib3hlZFwiIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBtb2RmIDogZmxvYXQgLT4gZmxvYXQgKiBmbG9hdCA9IFwiY2FtbF9tb2RmX2Zsb2F0XCJcbnR5cGUgdCA9IGZsb2F0XG5leHRlcm5hbCBjb21wYXJlIDogZmxvYXQgLT4gZmxvYXQgLT4gaW50ID0gXCIlY29tcGFyZVwiXG5sZXQgZXF1YWwgeCB5ID0gY29tcGFyZSB4IHkgPSAwXG5cbmxldFtAaW5saW5lXSBtaW4gKHg6IGZsb2F0KSAoeTogZmxvYXQpID1cbiAgaWYgeSA+IHggfHwgKG5vdChzaWduX2JpdCB5KSAmJiBzaWduX2JpdCB4KSB0aGVuXG4gICAgaWYgaXNfbmFuIHkgdGhlbiB5IGVsc2UgeFxuICBlbHNlIGlmIGlzX25hbiB4IHRoZW4geCBlbHNlIHlcblxubGV0W0BpbmxpbmVdIG1heCAoeDogZmxvYXQpICh5OiBmbG9hdCkgPVxuICBpZiB5ID4geCB8fCAobm90KHNpZ25fYml0IHkpICYmIHNpZ25fYml0IHgpIHRoZW5cbiAgICBpZiBpc19uYW4geCB0aGVuIHggZWxzZSB5XG4gIGVsc2UgaWYgaXNfbmFuIHkgdGhlbiB5IGVsc2UgeFxuXG5sZXRbQGlubGluZV0gbWluX21heCAoeDogZmxvYXQpICh5OiBmbG9hdCkgPVxuICBpZiBpc19uYW4geCB8fCBpc19uYW4geSB0aGVuIChuYW4sIG5hbilcbiAgZWxzZSBpZiB5ID4geCB8fCAobm90KHNpZ25fYml0IHkpICYmIHNpZ25fYml0IHgpIHRoZW4gKHgsIHkpIGVsc2UgKHksIHgpXG5cbmxldFtAaW5saW5lXSBtaW5fbnVtICh4OiBmbG9hdCkgKHk6IGZsb2F0KSA9XG4gIGlmIHkgPiB4IHx8IChub3Qoc2lnbl9iaXQgeSkgJiYgc2lnbl9iaXQgeCkgdGhlblxuICAgIGlmIGlzX25hbiB4IHRoZW4geSBlbHNlIHhcbiAgZWxzZSBpZiBpc19uYW4geSB0aGVuIHggZWxzZSB5XG5cbmxldFtAaW5saW5lXSBtYXhfbnVtICh4OiBmbG9hdCkgKHk6IGZsb2F0KSA9XG4gIGlmIHkgPiB4IHx8IChub3Qoc2lnbl9iaXQgeSkgJiYgc2lnbl9iaXQgeCkgdGhlblxuICAgIGlmIGlzX25hbiB5IHRoZW4geCBlbHNlIHlcbiAgZWxzZSBpZiBpc19uYW4geCB0aGVuIHkgZWxzZSB4XG5cbmxldFtAaW5saW5lXSBtaW5fbWF4X251bSAoeDogZmxvYXQpICh5OiBmbG9hdCkgPVxuICBpZiBpc19uYW4geCB0aGVuICh5LHkpXG4gIGVsc2UgaWYgaXNfbmFuIHkgdGhlbiAoeCx4KVxuICBlbHNlIGlmIHkgPiB4IHx8IChub3Qoc2lnbl9iaXQgeSkgJiYgc2lnbl9iaXQgeCkgdGhlbiAoeCx5KSBlbHNlICh5LHgpXG5cbmV4dGVybmFsIHNlZWRlZF9oYXNoX3BhcmFtIDogaW50IC0+IGludCAtPiBpbnQgLT4gZmxvYXQgLT4gaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICA9IFwiY2FtbF9oYXNoXCIgW0BAbm9hbGxvY11cbmxldCBoYXNoIHggPSBzZWVkZWRfaGFzaF9wYXJhbSAxMCAxMDAgMCB4XG5cbm1vZHVsZSBBcnJheSA9IHN0cnVjdFxuXG4gIHR5cGUgdCA9IGZsb2F0YXJyYXlcblxuICBleHRlcm5hbCBsZW5ndGggOiB0IC0+IGludCA9IFwiJWZsb2F0YXJyYXlfbGVuZ3RoXCJcbiAgZXh0ZXJuYWwgZ2V0IDogdCAtPiBpbnQgLT4gZmxvYXQgPSBcIiVmbG9hdGFycmF5X3NhZmVfZ2V0XCJcbiAgZXh0ZXJuYWwgc2V0IDogdCAtPiBpbnQgLT4gZmxvYXQgLT4gdW5pdCA9IFwiJWZsb2F0YXJyYXlfc2FmZV9zZXRcIlxuICBleHRlcm5hbCBjcmVhdGUgOiBpbnQgLT4gdCA9IFwiY2FtbF9mbG9hdGFycmF5X2NyZWF0ZVwiXG4gIGV4dGVybmFsIHVuc2FmZV9nZXQgOiB0IC0+IGludCAtPiBmbG9hdCA9IFwiJWZsb2F0YXJyYXlfdW5zYWZlX2dldFwiXG4gIGV4dGVybmFsIHVuc2FmZV9zZXQgOiB0IC0+IGludCAtPiBmbG9hdCAtPiB1bml0ID0gXCIlZmxvYXRhcnJheV91bnNhZmVfc2V0XCJcblxuICBsZXQgdW5zYWZlX2ZpbGwgYSBvZnMgbGVuIHYgPVxuICAgIGZvciBpID0gb2ZzIHRvIG9mcyArIGxlbiAtIDEgZG8gdW5zYWZlX3NldCBhIGkgdiBkb25lXG5cbiAgZXh0ZXJuYWwgdW5zYWZlX2JsaXQ6IHQgLT4gaW50IC0+IHQgLT4gaW50IC0+IGludCAtPiB1bml0ID1cbiAgICBcImNhbWxfZmxvYXRhcnJheV9ibGl0XCIgW0BAbm9hbGxvY11cblxuICBsZXQgY2hlY2sgYSBvZnMgbGVuIG1zZyA9XG4gICAgaWYgb2ZzIDwgMCB8fCBsZW4gPCAwIHx8IG9mcyArIGxlbiA8IDAgfHwgb2ZzICsgbGVuID4gbGVuZ3RoIGEgdGhlblxuICAgICAgaW52YWxpZF9hcmcgbXNnXG5cbiAgbGV0IG1ha2UgbiB2ID1cbiAgICBsZXQgcmVzdWx0ID0gY3JlYXRlIG4gaW5cbiAgICB1bnNhZmVfZmlsbCByZXN1bHQgMCBuIHY7XG4gICAgcmVzdWx0XG5cbiAgbGV0IGluaXQgbCBmID1cbiAgICBpZiBsIDwgMCB0aGVuIGludmFsaWRfYXJnIFwiRmxvYXQuQXJyYXkuaW5pdFwiXG4gICAgZWxzZVxuICAgICAgbGV0IHJlcyA9IGNyZWF0ZSBsIGluXG4gICAgICBmb3IgaSA9IDAgdG8gbCAtIDEgZG9cbiAgICAgICAgdW5zYWZlX3NldCByZXMgaSAoZiBpKVxuICAgICAgZG9uZTtcbiAgICAgIHJlc1xuXG4gIGxldCBhcHBlbmQgYTEgYTIgPVxuICAgIGxldCBsMSA9IGxlbmd0aCBhMSBpblxuICAgIGxldCBsMiA9IGxlbmd0aCBhMiBpblxuICAgIGxldCByZXN1bHQgPSBjcmVhdGUgKGwxICsgbDIpIGluXG4gICAgdW5zYWZlX2JsaXQgYTEgMCByZXN1bHQgMCBsMTtcbiAgICB1bnNhZmVfYmxpdCBhMiAwIHJlc3VsdCBsMSBsMjtcbiAgICByZXN1bHRcblxuICAoKiBuZXh0IDMgZnVuY3Rpb25zOiBtb2RpZmllZCBjb3B5IG9mIGNvZGUgZnJvbSBzdHJpbmcubWwgKilcbiAgbGV0IGVuc3VyZV9nZSAoeDppbnQpIHkgPVxuICAgIGlmIHggPj0geSB0aGVuIHggZWxzZSBpbnZhbGlkX2FyZyBcIkZsb2F0LkFycmF5LmNvbmNhdFwiXG5cbiAgbGV0IHJlYyBzdW1fbGVuZ3RocyBhY2MgPSBmdW5jdGlvblxuICAgIHwgW10gLT4gYWNjXG4gICAgfCBoZCA6OiB0bCAtPiBzdW1fbGVuZ3RocyAoZW5zdXJlX2dlIChsZW5ndGggaGQgKyBhY2MpIGFjYykgdGxcblxuICBsZXQgY29uY2F0IGwgPVxuICAgIGxldCBsZW4gPSBzdW1fbGVuZ3RocyAwIGwgaW5cbiAgICBsZXQgcmVzdWx0ID0gY3JlYXRlIGxlbiBpblxuICAgIGxldCByZWMgbG9vcCBsIGkgPVxuICAgICAgbWF0Y2ggbCB3aXRoXG4gICAgICB8IFtdIC0+IGFzc2VydCAoaSA9IGxlbilcbiAgICAgIHwgaGQgOjogdGwgLT5cbiAgICAgICAgbGV0IGhsZW4gPSBsZW5ndGggaGQgaW5cbiAgICAgICAgdW5zYWZlX2JsaXQgaGQgMCByZXN1bHQgaSBobGVuO1xuICAgICAgICBsb29wIHRsIChpICsgaGxlbilcbiAgICBpblxuICAgIGxvb3AgbCAwO1xuICAgIHJlc3VsdFxuXG4gIGxldCBzdWIgYSBvZnMgbGVuID1cbiAgICBjaGVjayBhIG9mcyBsZW4gXCJGbG9hdC5BcnJheS5zdWJcIjtcbiAgICBsZXQgcmVzdWx0ID0gY3JlYXRlIGxlbiBpblxuICAgIHVuc2FmZV9ibGl0IGEgb2ZzIHJlc3VsdCAwIGxlbjtcbiAgICByZXN1bHRcblxuICBsZXQgY29weSBhID1cbiAgICBsZXQgbCA9IGxlbmd0aCBhIGluXG4gICAgbGV0IHJlc3VsdCA9IGNyZWF0ZSBsIGluXG4gICAgdW5zYWZlX2JsaXQgYSAwIHJlc3VsdCAwIGw7XG4gICAgcmVzdWx0XG5cbiAgbGV0IGZpbGwgYSBvZnMgbGVuIHYgPVxuICAgIGNoZWNrIGEgb2ZzIGxlbiBcIkZsb2F0LkFycmF5LmZpbGxcIjtcbiAgICB1bnNhZmVfZmlsbCBhIG9mcyBsZW4gdlxuXG4gIGxldCBibGl0IHNyYyBzb2ZzIGRzdCBkb2ZzIGxlbiA9XG4gICAgY2hlY2sgc3JjIHNvZnMgbGVuIFwiRmxvYXQuYXJyYXkuYmxpdFwiO1xuICAgIGNoZWNrIGRzdCBkb2ZzIGxlbiBcIkZsb2F0LmFycmF5LmJsaXRcIjtcbiAgICB1bnNhZmVfYmxpdCBzcmMgc29mcyBkc3QgZG9mcyBsZW5cblxuICBsZXQgdG9fbGlzdCBhID1cbiAgICBMaXN0LmluaXQgKGxlbmd0aCBhKSAodW5zYWZlX2dldCBhKVxuXG4gIGxldCBvZl9saXN0IGwgPVxuICAgIGxldCByZXN1bHQgPSBjcmVhdGUgKExpc3QubGVuZ3RoIGwpIGluXG4gICAgbGV0IHJlYyBmaWxsIGkgbCA9XG4gICAgICBtYXRjaCBsIHdpdGhcbiAgICAgIHwgW10gLT4gcmVzdWx0XG4gICAgICB8IGggOjogdCAtPiB1bnNhZmVfc2V0IHJlc3VsdCBpIGg7IGZpbGwgKGkgKyAxKSB0XG4gICAgaW5cbiAgICBmaWxsIDAgbFxuXG4gICgqIGR1cGxpY2F0ZWQgZnJvbSBhcnJheS5tbCAqKVxuICBsZXQgaXRlciBmIGEgPVxuICAgIGZvciBpID0gMCB0byBsZW5ndGggYSAtIDEgZG8gZiAodW5zYWZlX2dldCBhIGkpIGRvbmVcblxuICAoKiBkdXBsaWNhdGVkIGZyb20gYXJyYXkubWwgKilcbiAgbGV0IGl0ZXIyIGYgYSBiID1cbiAgICBpZiBsZW5ndGggYSA8PiBsZW5ndGggYiB0aGVuXG4gICAgICBpbnZhbGlkX2FyZyBcIkZsb2F0LkFycmF5Lml0ZXIyOiBhcnJheXMgbXVzdCBoYXZlIHRoZSBzYW1lIGxlbmd0aFwiXG4gICAgZWxzZVxuICAgICAgZm9yIGkgPSAwIHRvIGxlbmd0aCBhIC0gMSBkbyBmICh1bnNhZmVfZ2V0IGEgaSkgKHVuc2FmZV9nZXQgYiBpKSBkb25lXG5cbiAgbGV0IG1hcCBmIGEgPVxuICAgIGxldCBsID0gbGVuZ3RoIGEgaW5cbiAgICBsZXQgciA9IGNyZWF0ZSBsIGluXG4gICAgZm9yIGkgPSAwIHRvIGwgLSAxIGRvXG4gICAgICB1bnNhZmVfc2V0IHIgaSAoZiAodW5zYWZlX2dldCBhIGkpKVxuICAgIGRvbmU7XG4gICAgclxuXG4gIGxldCBtYXAyIGYgYSBiID1cbiAgICBsZXQgbGEgPSBsZW5ndGggYSBpblxuICAgIGxldCBsYiA9IGxlbmd0aCBiIGluXG4gICAgaWYgbGEgPD4gbGIgdGhlblxuICAgICAgaW52YWxpZF9hcmcgXCJGbG9hdC5BcnJheS5tYXAyOiBhcnJheXMgbXVzdCBoYXZlIHRoZSBzYW1lIGxlbmd0aFwiXG4gICAgZWxzZSBiZWdpblxuICAgICAgbGV0IHIgPSBjcmVhdGUgbGEgaW5cbiAgICAgIGZvciBpID0gMCB0byBsYSAtIDEgZG9cbiAgICAgICAgdW5zYWZlX3NldCByIGkgKGYgKHVuc2FmZV9nZXQgYSBpKSAodW5zYWZlX2dldCBiIGkpKVxuICAgICAgZG9uZTtcbiAgICAgIHJcbiAgICBlbmRcblxuICAoKiBkdXBsaWNhdGVkIGZyb20gYXJyYXkubWwgKilcbiAgbGV0IGl0ZXJpIGYgYSA9XG4gICAgZm9yIGkgPSAwIHRvIGxlbmd0aCBhIC0gMSBkbyBmIGkgKHVuc2FmZV9nZXQgYSBpKSBkb25lXG5cbiAgbGV0IG1hcGkgZiBhID1cbiAgICBsZXQgbCA9IGxlbmd0aCBhIGluXG4gICAgbGV0IHIgPSBjcmVhdGUgbCBpblxuICAgIGZvciBpID0gMCB0byBsIC0gMSBkb1xuICAgICAgdW5zYWZlX3NldCByIGkgKGYgaSAodW5zYWZlX2dldCBhIGkpKVxuICAgIGRvbmU7XG4gICAgclxuXG4gICgqIGR1cGxpY2F0ZWQgZnJvbSBhcnJheS5tbCAqKVxuICBsZXQgZm9sZF9sZWZ0IGYgeCBhID1cbiAgICBsZXQgciA9IHJlZiB4IGluXG4gICAgZm9yIGkgPSAwIHRvIGxlbmd0aCBhIC0gMSBkb1xuICAgICAgciA6PSBmICFyICh1bnNhZmVfZ2V0IGEgaSlcbiAgICBkb25lO1xuICAgICFyXG5cbiAgKCogZHVwbGljYXRlZCBmcm9tIGFycmF5Lm1sICopXG4gIGxldCBmb2xkX3JpZ2h0IGYgYSB4ID1cbiAgICBsZXQgciA9IHJlZiB4IGluXG4gICAgZm9yIGkgPSBsZW5ndGggYSAtIDEgZG93bnRvIDAgZG9cbiAgICAgIHIgOj0gZiAodW5zYWZlX2dldCBhIGkpICFyXG4gICAgZG9uZTtcbiAgICAhclxuXG4gICgqIGR1cGxpY2F0ZWQgZnJvbSBhcnJheS5tbCAqKVxuICBsZXQgZXhpc3RzIHAgYSA9XG4gICAgbGV0IG4gPSBsZW5ndGggYSBpblxuICAgIGxldCByZWMgbG9vcCBpID1cbiAgICAgIGlmIGkgPSBuIHRoZW4gZmFsc2VcbiAgICAgIGVsc2UgaWYgcCAodW5zYWZlX2dldCBhIGkpIHRoZW4gdHJ1ZVxuICAgICAgZWxzZSBsb29wIChpICsgMSkgaW5cbiAgICBsb29wIDBcblxuICAoKiBkdXBsaWNhdGVkIGZyb20gYXJyYXkubWwgKilcbiAgbGV0IGZvcl9hbGwgcCBhID1cbiAgICBsZXQgbiA9IGxlbmd0aCBhIGluXG4gICAgbGV0IHJlYyBsb29wIGkgPVxuICAgICAgaWYgaSA9IG4gdGhlbiB0cnVlXG4gICAgICBlbHNlIGlmIHAgKHVuc2FmZV9nZXQgYSBpKSB0aGVuIGxvb3AgKGkgKyAxKVxuICAgICAgZWxzZSBmYWxzZSBpblxuICAgIGxvb3AgMFxuXG4gICgqIGR1cGxpY2F0ZWQgZnJvbSBhcnJheS5tbCAqKVxuICBsZXQgbWVtIHggYSA9XG4gICAgbGV0IG4gPSBsZW5ndGggYSBpblxuICAgIGxldCByZWMgbG9vcCBpID1cbiAgICAgIGlmIGkgPSBuIHRoZW4gZmFsc2VcbiAgICAgIGVsc2UgaWYgY29tcGFyZSAodW5zYWZlX2dldCBhIGkpIHggPSAwIHRoZW4gdHJ1ZVxuICAgICAgZWxzZSBsb29wIChpICsgMSlcbiAgICBpblxuICAgIGxvb3AgMFxuXG4gICgqIG1vc3RseSBkdXBsaWNhdGVkIGZyb20gYXJyYXkubWwsIGJ1dCBzbGlnaHRseSBkaWZmZXJlbnQgKilcbiAgbGV0IG1lbV9pZWVlIHggYSA9XG4gICAgbGV0IG4gPSBsZW5ndGggYSBpblxuICAgIGxldCByZWMgbG9vcCBpID1cbiAgICAgIGlmIGkgPSBuIHRoZW4gZmFsc2VcbiAgICAgIGVsc2UgaWYgeCA9ICh1bnNhZmVfZ2V0IGEgaSkgdGhlbiB0cnVlXG4gICAgICBlbHNlIGxvb3AgKGkgKyAxKVxuICAgIGluXG4gICAgbG9vcCAwXG5cbiAgKCogZHVwbGljYXRlZCBmcm9tIGFycmF5Lm1sICopXG4gIGV4Y2VwdGlvbiBCb3R0b20gb2YgaW50XG4gIGxldCBzb3J0IGNtcCBhID1cbiAgICBsZXQgbWF4c29uIGwgaSA9XG4gICAgICBsZXQgaTMxID0gaStpK2krMSBpblxuICAgICAgbGV0IHggPSByZWYgaTMxIGluXG4gICAgICBpZiBpMzErMiA8IGwgdGhlbiBiZWdpblxuICAgICAgICBpZiBjbXAgKGdldCBhIGkzMSkgKGdldCBhIChpMzErMSkpIDwgMCB0aGVuIHggOj0gaTMxKzE7XG4gICAgICAgIGlmIGNtcCAoZ2V0IGEgIXgpIChnZXQgYSAoaTMxKzIpKSA8IDAgdGhlbiB4IDo9IGkzMSsyO1xuICAgICAgICAheFxuICAgICAgZW5kIGVsc2VcbiAgICAgICAgaWYgaTMxKzEgPCBsICYmIGNtcCAoZ2V0IGEgaTMxKSAoZ2V0IGEgKGkzMSsxKSkgPCAwXG4gICAgICAgIHRoZW4gaTMxKzFcbiAgICAgICAgZWxzZSBpZiBpMzEgPCBsIHRoZW4gaTMxIGVsc2UgcmFpc2UgKEJvdHRvbSBpKVxuICAgIGluXG4gICAgbGV0IHJlYyB0cmlja2xlZG93biBsIGkgZSA9XG4gICAgICBsZXQgaiA9IG1heHNvbiBsIGkgaW5cbiAgICAgIGlmIGNtcCAoZ2V0IGEgaikgZSA+IDAgdGhlbiBiZWdpblxuICAgICAgICBzZXQgYSBpIChnZXQgYSBqKTtcbiAgICAgICAgdHJpY2tsZWRvd24gbCBqIGU7XG4gICAgICBlbmQgZWxzZSBiZWdpblxuICAgICAgICBzZXQgYSBpIGU7XG4gICAgICBlbmQ7XG4gICAgaW5cbiAgICBsZXQgdHJpY2tsZSBsIGkgZSA9IHRyeSB0cmlja2xlZG93biBsIGkgZSB3aXRoIEJvdHRvbSBpIC0+IHNldCBhIGkgZSBpblxuICAgIGxldCByZWMgYnViYmxlZG93biBsIGkgPVxuICAgICAgbGV0IGogPSBtYXhzb24gbCBpIGluXG4gICAgICBzZXQgYSBpIChnZXQgYSBqKTtcbiAgICAgIGJ1YmJsZWRvd24gbCBqXG4gICAgaW5cbiAgICBsZXQgYnViYmxlIGwgaSA9IHRyeSBidWJibGVkb3duIGwgaSB3aXRoIEJvdHRvbSBpIC0+IGkgaW5cbiAgICBsZXQgcmVjIHRyaWNrbGV1cCBpIGUgPVxuICAgICAgbGV0IGZhdGhlciA9IChpIC0gMSkgLyAzIGluXG4gICAgICBhc3NlcnQgKGkgPD4gZmF0aGVyKTtcbiAgICAgIGlmIGNtcCAoZ2V0IGEgZmF0aGVyKSBlIDwgMCB0aGVuIGJlZ2luXG4gICAgICAgIHNldCBhIGkgKGdldCBhIGZhdGhlcik7XG4gICAgICAgIGlmIGZhdGhlciA+IDAgdGhlbiB0cmlja2xldXAgZmF0aGVyIGUgZWxzZSBzZXQgYSAwIGU7XG4gICAgICBlbmQgZWxzZSBiZWdpblxuICAgICAgICBzZXQgYSBpIGU7XG4gICAgICBlbmQ7XG4gICAgaW5cbiAgICBsZXQgbCA9IGxlbmd0aCBhIGluXG4gICAgZm9yIGkgPSAobCArIDEpIC8gMyAtIDEgZG93bnRvIDAgZG8gdHJpY2tsZSBsIGkgKGdldCBhIGkpOyBkb25lO1xuICAgIGZvciBpID0gbCAtIDEgZG93bnRvIDIgZG9cbiAgICAgIGxldCBlID0gKGdldCBhIGkpIGluXG4gICAgICBzZXQgYSBpIChnZXQgYSAwKTtcbiAgICAgIHRyaWNrbGV1cCAoYnViYmxlIGkgMCkgZTtcbiAgICBkb25lO1xuICAgIGlmIGwgPiAxIHRoZW4gKGxldCBlID0gKGdldCBhIDEpIGluIHNldCBhIDEgKGdldCBhIDApOyBzZXQgYSAwIGUpXG5cbiAgKCogZHVwbGljYXRlZCBmcm9tIGFycmF5Lm1sLCBleGNlcHQgZm9yIHRoZSBjYWxsIHRvIFtjcmVhdGVdICopXG4gIGxldCBjdXRvZmYgPSA1XG4gIGxldCBzdGFibGVfc29ydCBjbXAgYSA9XG4gICAgbGV0IG1lcmdlIHNyYzFvZnMgc3JjMWxlbiBzcmMyIHNyYzJvZnMgc3JjMmxlbiBkc3QgZHN0b2ZzID1cbiAgICAgIGxldCBzcmMxciA9IHNyYzFvZnMgKyBzcmMxbGVuIGFuZCBzcmMyciA9IHNyYzJvZnMgKyBzcmMybGVuIGluXG4gICAgICBsZXQgcmVjIGxvb3AgaTEgczEgaTIgczIgZCA9XG4gICAgICAgIGlmIGNtcCBzMSBzMiA8PSAwIHRoZW4gYmVnaW5cbiAgICAgICAgICBzZXQgZHN0IGQgczE7XG4gICAgICAgICAgbGV0IGkxID0gaTEgKyAxIGluXG4gICAgICAgICAgaWYgaTEgPCBzcmMxciB0aGVuXG4gICAgICAgICAgICBsb29wIGkxIChnZXQgYSBpMSkgaTIgczIgKGQgKyAxKVxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGJsaXQgc3JjMiBpMiBkc3QgKGQgKyAxKSAoc3JjMnIgLSBpMilcbiAgICAgICAgZW5kIGVsc2UgYmVnaW5cbiAgICAgICAgICBzZXQgZHN0IGQgczI7XG4gICAgICAgICAgbGV0IGkyID0gaTIgKyAxIGluXG4gICAgICAgICAgaWYgaTIgPCBzcmMyciB0aGVuXG4gICAgICAgICAgICBsb29wIGkxIHMxIGkyIChnZXQgc3JjMiBpMikgKGQgKyAxKVxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGJsaXQgYSBpMSBkc3QgKGQgKyAxKSAoc3JjMXIgLSBpMSlcbiAgICAgICAgZW5kXG4gICAgICBpbiBsb29wIHNyYzFvZnMgKGdldCBhIHNyYzFvZnMpIHNyYzJvZnMgKGdldCBzcmMyIHNyYzJvZnMpIGRzdG9mcztcbiAgICBpblxuICAgIGxldCBpc29ydHRvIHNyY29mcyBkc3QgZHN0b2ZzIGxlbiA9XG4gICAgICBmb3IgaSA9IDAgdG8gbGVuIC0gMSBkb1xuICAgICAgICBsZXQgZSA9IChnZXQgYSAoc3Jjb2ZzICsgaSkpIGluXG4gICAgICAgIGxldCBqID0gcmVmIChkc3RvZnMgKyBpIC0gMSkgaW5cbiAgICAgICAgd2hpbGUgKCFqID49IGRzdG9mcyAmJiBjbXAgKGdldCBkc3QgIWopIGUgPiAwKSBkb1xuICAgICAgICAgIHNldCBkc3QgKCFqICsgMSkgKGdldCBkc3QgIWopO1xuICAgICAgICAgIGRlY3IgajtcbiAgICAgICAgZG9uZTtcbiAgICAgICAgc2V0IGRzdCAoIWogKyAxKSBlO1xuICAgICAgZG9uZTtcbiAgICBpblxuICAgIGxldCByZWMgc29ydHRvIHNyY29mcyBkc3QgZHN0b2ZzIGxlbiA9XG4gICAgICBpZiBsZW4gPD0gY3V0b2ZmIHRoZW4gaXNvcnR0byBzcmNvZnMgZHN0IGRzdG9mcyBsZW4gZWxzZSBiZWdpblxuICAgICAgICBsZXQgbDEgPSBsZW4gLyAyIGluXG4gICAgICAgIGxldCBsMiA9IGxlbiAtIGwxIGluXG4gICAgICAgIHNvcnR0byAoc3Jjb2ZzICsgbDEpIGRzdCAoZHN0b2ZzICsgbDEpIGwyO1xuICAgICAgICBzb3J0dG8gc3Jjb2ZzIGEgKHNyY29mcyArIGwyKSBsMTtcbiAgICAgICAgbWVyZ2UgKHNyY29mcyArIGwyKSBsMSBkc3QgKGRzdG9mcyArIGwxKSBsMiBkc3QgZHN0b2ZzO1xuICAgICAgZW5kO1xuICAgIGluXG4gICAgbGV0IGwgPSBsZW5ndGggYSBpblxuICAgIGlmIGwgPD0gY3V0b2ZmIHRoZW4gaXNvcnR0byAwIGEgMCBsIGVsc2UgYmVnaW5cbiAgICAgIGxldCBsMSA9IGwgLyAyIGluXG4gICAgICBsZXQgbDIgPSBsIC0gbDEgaW5cbiAgICAgIGxldCB0ID0gY3JlYXRlIGwyIGluXG4gICAgICBzb3J0dG8gbDEgdCAwIGwyO1xuICAgICAgc29ydHRvIDAgYSBsMiBsMTtcbiAgICAgIG1lcmdlIGwyIGwxIHQgMCBsMiBhIDA7XG4gICAgZW5kXG5cbiAgbGV0IGZhc3Rfc29ydCA9IHN0YWJsZV9zb3J0XG5cbiAgKCogZHVwbGljYXRlZCBmcm9tIGFycmF5Lm1sICopXG4gIGxldCB0b19zZXEgYSA9XG4gICAgbGV0IHJlYyBhdXggaSAoKSA9XG4gICAgICBpZiBpIDwgbGVuZ3RoIGFcbiAgICAgIHRoZW5cbiAgICAgICAgbGV0IHggPSB1bnNhZmVfZ2V0IGEgaSBpblxuICAgICAgICBTZXEuQ29ucyAoeCwgYXV4IChpKzEpKVxuICAgICAgZWxzZSBTZXEuTmlsXG4gICAgaW5cbiAgICBhdXggMFxuXG4gICgqIGR1cGxpY2F0ZWQgZnJvbSBhcnJheS5tbCAqKVxuICBsZXQgdG9fc2VxaSBhID1cbiAgICBsZXQgcmVjIGF1eCBpICgpID1cbiAgICAgIGlmIGkgPCBsZW5ndGggYVxuICAgICAgdGhlblxuICAgICAgICBsZXQgeCA9IHVuc2FmZV9nZXQgYSBpIGluXG4gICAgICAgIFNlcS5Db25zICgoaSx4KSwgYXV4IChpKzEpKVxuICAgICAgZWxzZSBTZXEuTmlsXG4gICAgaW5cbiAgICBhdXggMFxuXG4gICgqIG1vc3RseSBkdXBsaWNhdGVkIGZyb20gYXJyYXkubWwgKilcbiAgbGV0IG9mX3Jldl9saXN0IGwgPVxuICAgIGxldCBsZW4gPSBMaXN0Lmxlbmd0aCBsIGluXG4gICAgbGV0IGEgPSBjcmVhdGUgbGVuIGluXG4gICAgbGV0IHJlYyBmaWxsIGkgPSBmdW5jdGlvblxuICAgICAgICBbXSAtPiBhXG4gICAgICB8IGhkOjp0bCAtPiB1bnNhZmVfc2V0IGEgaSBoZDsgZmlsbCAoaS0xKSB0bFxuICAgIGluXG4gICAgZmlsbCAobGVuLTEpIGxcblxuICAoKiBkdXBsaWNhdGVkIGZyb20gYXJyYXkubWwgKilcbiAgbGV0IG9mX3NlcSBpID1cbiAgICBsZXQgbCA9IFNlcS5mb2xkX2xlZnQgKGZ1biBhY2MgeCAtPiB4OjphY2MpIFtdIGkgaW5cbiAgICBvZl9yZXZfbGlzdCBsXG5cblxuICBsZXQgbWFwX3RvX2FycmF5IGYgYSA9XG4gICAgbGV0IGwgPSBsZW5ndGggYSBpblxuICAgIGlmIGwgPSAwIHRoZW4gW3wgfF0gZWxzZSBiZWdpblxuICAgICAgbGV0IHIgPSBBcnJheS5tYWtlIGwgKGYgKHVuc2FmZV9nZXQgYSAwKSkgaW5cbiAgICAgIGZvciBpID0gMSB0byBsIC0gMSBkb1xuICAgICAgICBBcnJheS51bnNhZmVfc2V0IHIgaSAoZiAodW5zYWZlX2dldCBhIGkpKVxuICAgICAgZG9uZTtcbiAgICAgIHJcbiAgICBlbmRcblxuICBsZXQgbWFwX2Zyb21fYXJyYXkgZiBhID1cbiAgICBsZXQgbCA9IEFycmF5Lmxlbmd0aCBhIGluXG4gICAgbGV0IHIgPSBjcmVhdGUgbCBpblxuICAgIGZvciBpID0gMCB0byBsIC0gMSBkb1xuICAgICAgdW5zYWZlX3NldCByIGkgKGYgKEFycmF5LnVuc2FmZV9nZXQgYSBpKSlcbiAgICBkb25lO1xuICAgIHJcblxuZW5kXG5cbm1vZHVsZSBBcnJheUxhYmVscyA9IEFycmF5XG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIE1vZHVsZSBbSW50MzJdOiAzMi1iaXQgaW50ZWdlcnMgKilcblxuZXh0ZXJuYWwgbmVnIDogaW50MzIgLT4gaW50MzIgPSBcIiVpbnQzMl9uZWdcIlxuZXh0ZXJuYWwgYWRkIDogaW50MzIgLT4gaW50MzIgLT4gaW50MzIgPSBcIiVpbnQzMl9hZGRcIlxuZXh0ZXJuYWwgc3ViIDogaW50MzIgLT4gaW50MzIgLT4gaW50MzIgPSBcIiVpbnQzMl9zdWJcIlxuZXh0ZXJuYWwgbXVsIDogaW50MzIgLT4gaW50MzIgLT4gaW50MzIgPSBcIiVpbnQzMl9tdWxcIlxuZXh0ZXJuYWwgZGl2IDogaW50MzIgLT4gaW50MzIgLT4gaW50MzIgPSBcIiVpbnQzMl9kaXZcIlxuZXh0ZXJuYWwgcmVtIDogaW50MzIgLT4gaW50MzIgLT4gaW50MzIgPSBcIiVpbnQzMl9tb2RcIlxuZXh0ZXJuYWwgbG9nYW5kIDogaW50MzIgLT4gaW50MzIgLT4gaW50MzIgPSBcIiVpbnQzMl9hbmRcIlxuZXh0ZXJuYWwgbG9nb3IgOiBpbnQzMiAtPiBpbnQzMiAtPiBpbnQzMiA9IFwiJWludDMyX29yXCJcbmV4dGVybmFsIGxvZ3hvciA6IGludDMyIC0+IGludDMyIC0+IGludDMyID0gXCIlaW50MzJfeG9yXCJcbmV4dGVybmFsIHNoaWZ0X2xlZnQgOiBpbnQzMiAtPiBpbnQgLT4gaW50MzIgPSBcIiVpbnQzMl9sc2xcIlxuZXh0ZXJuYWwgc2hpZnRfcmlnaHQgOiBpbnQzMiAtPiBpbnQgLT4gaW50MzIgPSBcIiVpbnQzMl9hc3JcIlxuZXh0ZXJuYWwgc2hpZnRfcmlnaHRfbG9naWNhbCA6IGludDMyIC0+IGludCAtPiBpbnQzMiA9IFwiJWludDMyX2xzclwiXG5leHRlcm5hbCBvZl9pbnQgOiBpbnQgLT4gaW50MzIgPSBcIiVpbnQzMl9vZl9pbnRcIlxuZXh0ZXJuYWwgdG9faW50IDogaW50MzIgLT4gaW50ID0gXCIlaW50MzJfdG9faW50XCJcbmV4dGVybmFsIG9mX2Zsb2F0IDogZmxvYXQgLT4gaW50MzJcbiAgPSBcImNhbWxfaW50MzJfb2ZfZmxvYXRcIiBcImNhbWxfaW50MzJfb2ZfZmxvYXRfdW5ib3hlZFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCB0b19mbG9hdCA6IGludDMyIC0+IGZsb2F0XG4gID0gXCJjYW1sX2ludDMyX3RvX2Zsb2F0XCIgXCJjYW1sX2ludDMyX3RvX2Zsb2F0X3VuYm94ZWRcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYml0c19vZl9mbG9hdCA6IGZsb2F0IC0+IGludDMyXG4gID0gXCJjYW1sX2ludDMyX2JpdHNfb2ZfZmxvYXRcIiBcImNhbWxfaW50MzJfYml0c19vZl9mbG9hdF91bmJveGVkXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGZsb2F0X29mX2JpdHMgOiBpbnQzMiAtPiBmbG9hdFxuICA9IFwiY2FtbF9pbnQzMl9mbG9hdF9vZl9iaXRzXCIgXCJjYW1sX2ludDMyX2Zsb2F0X29mX2JpdHNfdW5ib3hlZFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5cbmxldCB6ZXJvID0gMGxcbmxldCBvbmUgPSAxbFxubGV0IG1pbnVzX29uZSA9IC0xbFxubGV0IHN1Y2MgbiA9IGFkZCBuIDFsXG5sZXQgcHJlZCBuID0gc3ViIG4gMWxcbmxldCBhYnMgbiA9IGlmIG4gPj0gMGwgdGhlbiBuIGVsc2UgbmVnIG5cbmxldCBtaW5faW50ID0gMHg4MDAwMDAwMGxcbmxldCBtYXhfaW50ID0gMHg3RkZGRkZGRmxcbmxldCBsb2dub3QgbiA9IGxvZ3hvciBuICgtMWwpXG5cbmxldCB1bnNpZ25lZF90b19pbnQgPVxuICBtYXRjaCBTeXMud29yZF9zaXplIHdpdGhcbiAgfCAzMiAtPlxuICAgICAgbGV0IG1heF9pbnQgPSBvZl9pbnQgU3RkbGliLm1heF9pbnQgaW5cbiAgICAgIGZ1biBuIC0+XG4gICAgICAgIGlmIGNvbXBhcmUgemVybyBuIDw9IDAgJiYgY29tcGFyZSBuIG1heF9pbnQgPD0gMCB0aGVuXG4gICAgICAgICAgU29tZSAodG9faW50IG4pXG4gICAgICAgIGVsc2VcbiAgICAgICAgICBOb25lXG4gIHwgNjQgLT5cbiAgICAgICgqIFNvIHRoYXQgaXQgY29tcGlsZXMgaW4gMzItYml0ICopXG4gICAgICBsZXQgbWFzayA9IDB4RkZGRiBsc2wgMTYgbG9yIDB4RkZGRiBpblxuICAgICAgZnVuIG4gLT4gU29tZSAodG9faW50IG4gbGFuZCBtYXNrKVxuICB8IF8gLT5cbiAgICAgIGFzc2VydCBmYWxzZVxuXG5leHRlcm5hbCBmb3JtYXQgOiBzdHJpbmcgLT4gaW50MzIgLT4gc3RyaW5nID0gXCJjYW1sX2ludDMyX2Zvcm1hdFwiXG5sZXQgdG9fc3RyaW5nIG4gPSBmb3JtYXQgXCIlZFwiIG5cblxuZXh0ZXJuYWwgb2Zfc3RyaW5nIDogc3RyaW5nIC0+IGludDMyID0gXCJjYW1sX2ludDMyX29mX3N0cmluZ1wiXG5cbmxldCBvZl9zdHJpbmdfb3B0IHMgPVxuICAoKiBUT0RPOiBleHBvc2UgYSBub24tcmFpc2luZyBwcmltaXRpdmUgZGlyZWN0bHkuICopXG4gIHRyeSBTb21lIChvZl9zdHJpbmcgcylcbiAgd2l0aCBGYWlsdXJlIF8gLT4gTm9uZVxuXG50eXBlIHQgPSBpbnQzMlxuXG5sZXQgY29tcGFyZSAoeDogdCkgKHk6IHQpID0gU3RkbGliLmNvbXBhcmUgeCB5XG5sZXQgZXF1YWwgKHg6IHQpICh5OiB0KSA9IGNvbXBhcmUgeCB5ID0gMFxuXG5sZXQgdW5zaWduZWRfY29tcGFyZSBuIG0gPVxuICBjb21wYXJlIChzdWIgbiBtaW5faW50KSAoc3ViIG0gbWluX2ludClcblxubGV0IG1pbiB4IHkgOiB0ID0gaWYgeCA8PSB5IHRoZW4geCBlbHNlIHlcbmxldCBtYXggeCB5IDogdCA9IGlmIHggPj0geSB0aGVuIHggZWxzZSB5XG5cbigqIFVuc2lnbmVkIGRpdmlzaW9uIGZyb20gc2lnbmVkIGRpdmlzaW9uIG9mIHRoZSBzYW1lXG4gICBiaXRuZXNzLiBTZWUgV2FycmVuIEpyLiwgSGVucnkgUy4gKDIwMTMpLiBIYWNrZXIncyBEZWxpZ2h0ICgyIGVkLiksIFNlYyA5LTMuXG4qKVxubGV0IHVuc2lnbmVkX2RpdiBuIGQgPVxuICBpZiBkIDwgemVybyB0aGVuXG4gICAgaWYgdW5zaWduZWRfY29tcGFyZSBuIGQgPCAwIHRoZW4gemVybyBlbHNlIG9uZVxuICBlbHNlXG4gICAgbGV0IHEgPSBzaGlmdF9sZWZ0IChkaXYgKHNoaWZ0X3JpZ2h0X2xvZ2ljYWwgbiAxKSBkKSAxIGluXG4gICAgbGV0IHIgPSBzdWIgbiAobXVsIHEgZCkgaW5cbiAgICBpZiB1bnNpZ25lZF9jb21wYXJlIHIgZCA+PSAwIHRoZW4gc3VjYyBxIGVsc2UgcVxuXG5sZXQgdW5zaWduZWRfcmVtIG4gZCA9XG4gIHN1YiBuIChtdWwgKHVuc2lnbmVkX2RpdiBuIGQpIGQpXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIE1vZHVsZSBbSW50NjRdOiA2NC1iaXQgaW50ZWdlcnMgKilcblxuZXh0ZXJuYWwgbmVnIDogaW50NjQgLT4gaW50NjQgPSBcIiVpbnQ2NF9uZWdcIlxuZXh0ZXJuYWwgYWRkIDogaW50NjQgLT4gaW50NjQgLT4gaW50NjQgPSBcIiVpbnQ2NF9hZGRcIlxuZXh0ZXJuYWwgc3ViIDogaW50NjQgLT4gaW50NjQgLT4gaW50NjQgPSBcIiVpbnQ2NF9zdWJcIlxuZXh0ZXJuYWwgbXVsIDogaW50NjQgLT4gaW50NjQgLT4gaW50NjQgPSBcIiVpbnQ2NF9tdWxcIlxuZXh0ZXJuYWwgZGl2IDogaW50NjQgLT4gaW50NjQgLT4gaW50NjQgPSBcIiVpbnQ2NF9kaXZcIlxuZXh0ZXJuYWwgcmVtIDogaW50NjQgLT4gaW50NjQgLT4gaW50NjQgPSBcIiVpbnQ2NF9tb2RcIlxuZXh0ZXJuYWwgbG9nYW5kIDogaW50NjQgLT4gaW50NjQgLT4gaW50NjQgPSBcIiVpbnQ2NF9hbmRcIlxuZXh0ZXJuYWwgbG9nb3IgOiBpbnQ2NCAtPiBpbnQ2NCAtPiBpbnQ2NCA9IFwiJWludDY0X29yXCJcbmV4dGVybmFsIGxvZ3hvciA6IGludDY0IC0+IGludDY0IC0+IGludDY0ID0gXCIlaW50NjRfeG9yXCJcbmV4dGVybmFsIHNoaWZ0X2xlZnQgOiBpbnQ2NCAtPiBpbnQgLT4gaW50NjQgPSBcIiVpbnQ2NF9sc2xcIlxuZXh0ZXJuYWwgc2hpZnRfcmlnaHQgOiBpbnQ2NCAtPiBpbnQgLT4gaW50NjQgPSBcIiVpbnQ2NF9hc3JcIlxuZXh0ZXJuYWwgc2hpZnRfcmlnaHRfbG9naWNhbCA6IGludDY0IC0+IGludCAtPiBpbnQ2NCA9IFwiJWludDY0X2xzclwiXG5leHRlcm5hbCBvZl9pbnQgOiBpbnQgLT4gaW50NjQgPSBcIiVpbnQ2NF9vZl9pbnRcIlxuZXh0ZXJuYWwgdG9faW50IDogaW50NjQgLT4gaW50ID0gXCIlaW50NjRfdG9faW50XCJcbmV4dGVybmFsIG9mX2Zsb2F0IDogZmxvYXQgLT4gaW50NjRcbiAgPSBcImNhbWxfaW50NjRfb2ZfZmxvYXRcIiBcImNhbWxfaW50NjRfb2ZfZmxvYXRfdW5ib3hlZFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCB0b19mbG9hdCA6IGludDY0IC0+IGZsb2F0XG4gID0gXCJjYW1sX2ludDY0X3RvX2Zsb2F0XCIgXCJjYW1sX2ludDY0X3RvX2Zsb2F0X3VuYm94ZWRcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgb2ZfaW50MzIgOiBpbnQzMiAtPiBpbnQ2NCA9IFwiJWludDY0X29mX2ludDMyXCJcbmV4dGVybmFsIHRvX2ludDMyIDogaW50NjQgLT4gaW50MzIgPSBcIiVpbnQ2NF90b19pbnQzMlwiXG5leHRlcm5hbCBvZl9uYXRpdmVpbnQgOiBuYXRpdmVpbnQgLT4gaW50NjQgPSBcIiVpbnQ2NF9vZl9uYXRpdmVpbnRcIlxuZXh0ZXJuYWwgdG9fbmF0aXZlaW50IDogaW50NjQgLT4gbmF0aXZlaW50ID0gXCIlaW50NjRfdG9fbmF0aXZlaW50XCJcblxubGV0IHplcm8gPSAwTFxubGV0IG9uZSA9IDFMXG5sZXQgbWludXNfb25lID0gLTFMXG5sZXQgc3VjYyBuID0gYWRkIG4gMUxcbmxldCBwcmVkIG4gPSBzdWIgbiAxTFxubGV0IGFicyBuID0gaWYgbiA+PSAwTCB0aGVuIG4gZWxzZSBuZWcgblxubGV0IG1pbl9pbnQgPSAweDgwMDAwMDAwMDAwMDAwMDBMXG5sZXQgbWF4X2ludCA9IDB4N0ZGRkZGRkZGRkZGRkZGRkxcbmxldCBsb2dub3QgbiA9IGxvZ3hvciBuICgtMUwpXG5cbmxldCB1bnNpZ25lZF90b19pbnQgPVxuICBsZXQgbWF4X2ludCA9IG9mX2ludCBTdGRsaWIubWF4X2ludCBpblxuICBmdW4gbiAtPlxuICAgIGlmIGNvbXBhcmUgemVybyBuIDw9IDAgJiYgY29tcGFyZSBuIG1heF9pbnQgPD0gMCB0aGVuXG4gICAgICBTb21lICh0b19pbnQgbilcbiAgICBlbHNlXG4gICAgICBOb25lXG5cbmV4dGVybmFsIGZvcm1hdCA6IHN0cmluZyAtPiBpbnQ2NCAtPiBzdHJpbmcgPSBcImNhbWxfaW50NjRfZm9ybWF0XCJcbmxldCB0b19zdHJpbmcgbiA9IGZvcm1hdCBcIiVkXCIgblxuXG5leHRlcm5hbCBvZl9zdHJpbmcgOiBzdHJpbmcgLT4gaW50NjQgPSBcImNhbWxfaW50NjRfb2Zfc3RyaW5nXCJcblxubGV0IG9mX3N0cmluZ19vcHQgcyA9XG4gICgqIFRPRE86IGV4cG9zZSBhIG5vbi1yYWlzaW5nIHByaW1pdGl2ZSBkaXJlY3RseS4gKilcbiAgdHJ5IFNvbWUgKG9mX3N0cmluZyBzKVxuICB3aXRoIEZhaWx1cmUgXyAtPiBOb25lXG5cblxuXG5leHRlcm5hbCBiaXRzX29mX2Zsb2F0IDogZmxvYXQgLT4gaW50NjRcbiAgPSBcImNhbWxfaW50NjRfYml0c19vZl9mbG9hdFwiIFwiY2FtbF9pbnQ2NF9iaXRzX29mX2Zsb2F0X3VuYm94ZWRcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgZmxvYXRfb2ZfYml0cyA6IGludDY0IC0+IGZsb2F0XG4gID0gXCJjYW1sX2ludDY0X2Zsb2F0X29mX2JpdHNcIiBcImNhbWxfaW50NjRfZmxvYXRfb2ZfYml0c191bmJveGVkXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cblxudHlwZSB0ID0gaW50NjRcblxubGV0IGNvbXBhcmUgKHg6IHQpICh5OiB0KSA9IFN0ZGxpYi5jb21wYXJlIHggeVxubGV0IGVxdWFsICh4OiB0KSAoeTogdCkgPSBjb21wYXJlIHggeSA9IDBcblxubGV0IHVuc2lnbmVkX2NvbXBhcmUgbiBtID1cbiAgY29tcGFyZSAoc3ViIG4gbWluX2ludCkgKHN1YiBtIG1pbl9pbnQpXG5cbmxldCBtaW4geCB5IDogdCA9IGlmIHggPD0geSB0aGVuIHggZWxzZSB5XG5sZXQgbWF4IHggeSA6IHQgPSBpZiB4ID49IHkgdGhlbiB4IGVsc2UgeVxuXG4oKiBVbnNpZ25lZCBkaXZpc2lvbiBmcm9tIHNpZ25lZCBkaXZpc2lvbiBvZiB0aGUgc2FtZVxuICAgYml0bmVzcy4gU2VlIFdhcnJlbiBKci4sIEhlbnJ5IFMuICgyMDEzKS4gSGFja2VyJ3MgRGVsaWdodCAoMiBlZC4pLCBTZWMgOS0zLlxuKilcbmxldCB1bnNpZ25lZF9kaXYgbiBkID1cbiAgaWYgZCA8IHplcm8gdGhlblxuICAgIGlmIHVuc2lnbmVkX2NvbXBhcmUgbiBkIDwgMCB0aGVuIHplcm8gZWxzZSBvbmVcbiAgZWxzZVxuICAgIGxldCBxID0gc2hpZnRfbGVmdCAoZGl2IChzaGlmdF9yaWdodF9sb2dpY2FsIG4gMSkgZCkgMSBpblxuICAgIGxldCByID0gc3ViIG4gKG11bCBxIGQpIGluXG4gICAgaWYgdW5zaWduZWRfY29tcGFyZSByIGQgPj0gMCB0aGVuIHN1Y2MgcSBlbHNlIHFcblxubGV0IHVuc2lnbmVkX3JlbSBuIGQgPVxuICBzdWIgbiAobXVsICh1bnNpZ25lZF9kaXYgbiBkKSBkKVxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBNb2R1bGUgW05hdGl2ZWludF06IHByb2Nlc3Nvci1uYXRpdmUgaW50ZWdlcnMgKilcblxuZXh0ZXJuYWwgbmVnOiBuYXRpdmVpbnQgLT4gbmF0aXZlaW50ID0gXCIlbmF0aXZlaW50X25lZ1wiXG5leHRlcm5hbCBhZGQ6IG5hdGl2ZWludCAtPiBuYXRpdmVpbnQgLT4gbmF0aXZlaW50ID0gXCIlbmF0aXZlaW50X2FkZFwiXG5leHRlcm5hbCBzdWI6IG5hdGl2ZWludCAtPiBuYXRpdmVpbnQgLT4gbmF0aXZlaW50ID0gXCIlbmF0aXZlaW50X3N1YlwiXG5leHRlcm5hbCBtdWw6IG5hdGl2ZWludCAtPiBuYXRpdmVpbnQgLT4gbmF0aXZlaW50ID0gXCIlbmF0aXZlaW50X211bFwiXG5leHRlcm5hbCBkaXY6IG5hdGl2ZWludCAtPiBuYXRpdmVpbnQgLT4gbmF0aXZlaW50ID0gXCIlbmF0aXZlaW50X2RpdlwiXG5leHRlcm5hbCByZW06IG5hdGl2ZWludCAtPiBuYXRpdmVpbnQgLT4gbmF0aXZlaW50ID0gXCIlbmF0aXZlaW50X21vZFwiXG5leHRlcm5hbCBsb2dhbmQ6IG5hdGl2ZWludCAtPiBuYXRpdmVpbnQgLT4gbmF0aXZlaW50ID0gXCIlbmF0aXZlaW50X2FuZFwiXG5leHRlcm5hbCBsb2dvcjogbmF0aXZlaW50IC0+IG5hdGl2ZWludCAtPiBuYXRpdmVpbnQgPSBcIiVuYXRpdmVpbnRfb3JcIlxuZXh0ZXJuYWwgbG9neG9yOiBuYXRpdmVpbnQgLT4gbmF0aXZlaW50IC0+IG5hdGl2ZWludCA9IFwiJW5hdGl2ZWludF94b3JcIlxuZXh0ZXJuYWwgc2hpZnRfbGVmdDogbmF0aXZlaW50IC0+IGludCAtPiBuYXRpdmVpbnQgPSBcIiVuYXRpdmVpbnRfbHNsXCJcbmV4dGVybmFsIHNoaWZ0X3JpZ2h0OiBuYXRpdmVpbnQgLT4gaW50IC0+IG5hdGl2ZWludCA9IFwiJW5hdGl2ZWludF9hc3JcIlxuZXh0ZXJuYWwgc2hpZnRfcmlnaHRfbG9naWNhbDogbmF0aXZlaW50IC0+IGludCAtPiBuYXRpdmVpbnQgPSBcIiVuYXRpdmVpbnRfbHNyXCJcbmV4dGVybmFsIG9mX2ludDogaW50IC0+IG5hdGl2ZWludCA9IFwiJW5hdGl2ZWludF9vZl9pbnRcIlxuZXh0ZXJuYWwgdG9faW50OiBuYXRpdmVpbnQgLT4gaW50ID0gXCIlbmF0aXZlaW50X3RvX2ludFwiXG5leHRlcm5hbCBvZl9mbG9hdCA6IGZsb2F0IC0+IG5hdGl2ZWludFxuICA9IFwiY2FtbF9uYXRpdmVpbnRfb2ZfZmxvYXRcIiBcImNhbWxfbmF0aXZlaW50X29mX2Zsb2F0X3VuYm94ZWRcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgdG9fZmxvYXQgOiBuYXRpdmVpbnQgLT4gZmxvYXRcbiAgPSBcImNhbWxfbmF0aXZlaW50X3RvX2Zsb2F0XCIgXCJjYW1sX25hdGl2ZWludF90b19mbG9hdF91bmJveGVkXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIG9mX2ludDMyOiBpbnQzMiAtPiBuYXRpdmVpbnQgPSBcIiVuYXRpdmVpbnRfb2ZfaW50MzJcIlxuZXh0ZXJuYWwgdG9faW50MzI6IG5hdGl2ZWludCAtPiBpbnQzMiA9IFwiJW5hdGl2ZWludF90b19pbnQzMlwiXG5cbmxldCB6ZXJvID0gMG5cbmxldCBvbmUgPSAxblxubGV0IG1pbnVzX29uZSA9IC0xblxubGV0IHN1Y2MgbiA9IGFkZCBuIDFuXG5sZXQgcHJlZCBuID0gc3ViIG4gMW5cbmxldCBhYnMgbiA9IGlmIG4gPj0gMG4gdGhlbiBuIGVsc2UgbmVnIG5cbmxldCBzaXplID0gU3lzLndvcmRfc2l6ZVxubGV0IG1pbl9pbnQgPSBzaGlmdF9sZWZ0IDFuIChzaXplIC0gMSlcbmxldCBtYXhfaW50ID0gc3ViIG1pbl9pbnQgMW5cbmxldCBsb2dub3QgbiA9IGxvZ3hvciBuICgtMW4pXG5cbmxldCB1bnNpZ25lZF90b19pbnQgPVxuICBsZXQgbWF4X2ludCA9IG9mX2ludCBTdGRsaWIubWF4X2ludCBpblxuICBmdW4gbiAtPlxuICAgIGlmIGNvbXBhcmUgemVybyBuIDw9IDAgJiYgY29tcGFyZSBuIG1heF9pbnQgPD0gMCB0aGVuXG4gICAgICBTb21lICh0b19pbnQgbilcbiAgICBlbHNlXG4gICAgICBOb25lXG5cbmV4dGVybmFsIGZvcm1hdCA6IHN0cmluZyAtPiBuYXRpdmVpbnQgLT4gc3RyaW5nID0gXCJjYW1sX25hdGl2ZWludF9mb3JtYXRcIlxubGV0IHRvX3N0cmluZyBuID0gZm9ybWF0IFwiJWRcIiBuXG5cbmV4dGVybmFsIG9mX3N0cmluZzogc3RyaW5nIC0+IG5hdGl2ZWludCA9IFwiY2FtbF9uYXRpdmVpbnRfb2Zfc3RyaW5nXCJcblxubGV0IG9mX3N0cmluZ19vcHQgcyA9XG4gICgqIFRPRE86IGV4cG9zZSBhIG5vbi1yYWlzaW5nIHByaW1pdGl2ZSBkaXJlY3RseS4gKilcbiAgdHJ5IFNvbWUgKG9mX3N0cmluZyBzKVxuICB3aXRoIEZhaWx1cmUgXyAtPiBOb25lXG5cbnR5cGUgdCA9IG5hdGl2ZWludFxuXG5sZXQgY29tcGFyZSAoeDogdCkgKHk6IHQpID0gU3RkbGliLmNvbXBhcmUgeCB5XG5sZXQgZXF1YWwgKHg6IHQpICh5OiB0KSA9IGNvbXBhcmUgeCB5ID0gMFxuXG5sZXQgdW5zaWduZWRfY29tcGFyZSBuIG0gPVxuICBjb21wYXJlIChzdWIgbiBtaW5faW50KSAoc3ViIG0gbWluX2ludClcblxubGV0IG1pbiB4IHkgOiB0ID0gaWYgeCA8PSB5IHRoZW4geCBlbHNlIHlcbmxldCBtYXggeCB5IDogdCA9IGlmIHggPj0geSB0aGVuIHggZWxzZSB5XG5cbigqIFVuc2lnbmVkIGRpdmlzaW9uIGZyb20gc2lnbmVkIGRpdmlzaW9uIG9mIHRoZSBzYW1lXG4gICBiaXRuZXNzLiBTZWUgV2FycmVuIEpyLiwgSGVucnkgUy4gKDIwMTMpLiBIYWNrZXIncyBEZWxpZ2h0ICgyIGVkLiksIFNlYyA5LTMuXG4qKVxubGV0IHVuc2lnbmVkX2RpdiBuIGQgPVxuICBpZiBkIDwgemVybyB0aGVuXG4gICAgaWYgdW5zaWduZWRfY29tcGFyZSBuIGQgPCAwIHRoZW4gemVybyBlbHNlIG9uZVxuICBlbHNlXG4gICAgbGV0IHEgPSBzaGlmdF9sZWZ0IChkaXYgKHNoaWZ0X3JpZ2h0X2xvZ2ljYWwgbiAxKSBkKSAxIGluXG4gICAgbGV0IHIgPSBzdWIgbiAobXVsIHEgZCkgaW5cbiAgICBpZiB1bnNpZ25lZF9jb21wYXJlIHIgZCA+PSAwIHRoZW4gc3VjYyBxIGVsc2UgcVxuXG5sZXQgdW5zaWduZWRfcmVtIG4gZCA9XG4gIHN1YiBuIChtdWwgKHVuc2lnbmVkX2RpdiBuIGQpIGQpXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIFRoZSBydW4tdGltZSBsaWJyYXJ5IGZvciBsZXhlcnMgZ2VuZXJhdGVkIGJ5IGNhbWxsZXggKilcblxudHlwZSBwb3NpdGlvbiA9IHtcbiAgcG9zX2ZuYW1lIDogc3RyaW5nO1xuICBwb3NfbG51bSA6IGludDtcbiAgcG9zX2JvbCA6IGludDtcbiAgcG9zX2NudW0gOiBpbnQ7XG59XG5cbmxldCBkdW1teV9wb3MgPSB7XG4gIHBvc19mbmFtZSA9IFwiXCI7XG4gIHBvc19sbnVtID0gMDtcbiAgcG9zX2JvbCA9IDA7XG4gIHBvc19jbnVtID0gLTE7XG59XG5cbnR5cGUgbGV4YnVmID1cbiAgeyByZWZpbGxfYnVmZiA6IGxleGJ1ZiAtPiB1bml0O1xuICAgIG11dGFibGUgbGV4X2J1ZmZlciA6IGJ5dGVzO1xuICAgIG11dGFibGUgbGV4X2J1ZmZlcl9sZW4gOiBpbnQ7XG4gICAgbXV0YWJsZSBsZXhfYWJzX3BvcyA6IGludDtcbiAgICBtdXRhYmxlIGxleF9zdGFydF9wb3MgOiBpbnQ7XG4gICAgbXV0YWJsZSBsZXhfY3Vycl9wb3MgOiBpbnQ7XG4gICAgbXV0YWJsZSBsZXhfbGFzdF9wb3MgOiBpbnQ7XG4gICAgbXV0YWJsZSBsZXhfbGFzdF9hY3Rpb24gOiBpbnQ7XG4gICAgbXV0YWJsZSBsZXhfZW9mX3JlYWNoZWQgOiBib29sO1xuICAgIG11dGFibGUgbGV4X21lbSA6IGludCBhcnJheTtcbiAgICBtdXRhYmxlIGxleF9zdGFydF9wIDogcG9zaXRpb247XG4gICAgbXV0YWJsZSBsZXhfY3Vycl9wIDogcG9zaXRpb247XG4gIH1cblxudHlwZSBsZXhfdGFibGVzID1cbiAgeyBsZXhfYmFzZTogc3RyaW5nO1xuICAgIGxleF9iYWNrdHJrOiBzdHJpbmc7XG4gICAgbGV4X2RlZmF1bHQ6IHN0cmluZztcbiAgICBsZXhfdHJhbnM6IHN0cmluZztcbiAgICBsZXhfY2hlY2s6IHN0cmluZztcbiAgICBsZXhfYmFzZV9jb2RlIDogc3RyaW5nO1xuICAgIGxleF9iYWNrdHJrX2NvZGUgOiBzdHJpbmc7XG4gICAgbGV4X2RlZmF1bHRfY29kZSA6IHN0cmluZztcbiAgICBsZXhfdHJhbnNfY29kZSA6IHN0cmluZztcbiAgICBsZXhfY2hlY2tfY29kZSA6IHN0cmluZztcbiAgICBsZXhfY29kZTogc3RyaW5nO31cblxuZXh0ZXJuYWwgY19lbmdpbmUgOiBsZXhfdGFibGVzIC0+IGludCAtPiBsZXhidWYgLT4gaW50ID0gXCJjYW1sX2xleF9lbmdpbmVcIlxuZXh0ZXJuYWwgY19uZXdfZW5naW5lIDogbGV4X3RhYmxlcyAtPiBpbnQgLT4gbGV4YnVmIC0+IGludFxuICAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX25ld19sZXhfZW5naW5lXCJcblxubGV0IGVuZ2luZSB0Ymwgc3RhdGUgYnVmID1cbiAgbGV0IHJlc3VsdCA9IGNfZW5naW5lIHRibCBzdGF0ZSBidWYgaW5cbiAgaWYgcmVzdWx0ID49IDAgJiYgYnVmLmxleF9jdXJyX3AgIT0gZHVtbXlfcG9zIHRoZW4gYmVnaW5cbiAgICBidWYubGV4X3N0YXJ0X3AgPC0gYnVmLmxleF9jdXJyX3A7XG4gICAgYnVmLmxleF9jdXJyX3AgPC0ge2J1Zi5sZXhfY3Vycl9wXG4gICAgICAgICAgICAgICAgICAgICAgIHdpdGggcG9zX2NudW0gPSBidWYubGV4X2Fic19wb3MgKyBidWYubGV4X2N1cnJfcG9zfTtcbiAgZW5kO1xuICByZXN1bHRcblxuXG5sZXQgbmV3X2VuZ2luZSB0Ymwgc3RhdGUgYnVmID1cbiAgbGV0IHJlc3VsdCA9IGNfbmV3X2VuZ2luZSB0Ymwgc3RhdGUgYnVmIGluXG4gIGlmIHJlc3VsdCA+PSAwICYmIGJ1Zi5sZXhfY3Vycl9wICE9IGR1bW15X3BvcyB0aGVuIGJlZ2luXG4gICAgYnVmLmxleF9zdGFydF9wIDwtIGJ1Zi5sZXhfY3Vycl9wO1xuICAgIGJ1Zi5sZXhfY3Vycl9wIDwtIHtidWYubGV4X2N1cnJfcFxuICAgICAgICAgICAgICAgICAgICAgICB3aXRoIHBvc19jbnVtID0gYnVmLmxleF9hYnNfcG9zICsgYnVmLmxleF9jdXJyX3Bvc307XG4gIGVuZDtcbiAgcmVzdWx0XG5cbmxldCBsZXhfcmVmaWxsIHJlYWRfZnVuIGF1eF9idWZmZXIgbGV4YnVmID1cbiAgbGV0IHJlYWQgPVxuICAgIHJlYWRfZnVuIGF1eF9idWZmZXIgKEJ5dGVzLmxlbmd0aCBhdXhfYnVmZmVyKSBpblxuICBsZXQgbiA9XG4gICAgaWYgcmVhZCA+IDBcbiAgICB0aGVuIHJlYWRcbiAgICBlbHNlIChsZXhidWYubGV4X2VvZl9yZWFjaGVkIDwtIHRydWU7IDApIGluXG4gICgqIEN1cnJlbnQgc3RhdGUgb2YgdGhlIGJ1ZmZlcjpcbiAgICAgICAgPC0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tPlxuICAgICAgICB8ICBqdW5rIHwgICAgICB2YWxpZCBkYXRhICAgICB8ICAganVuayAgICB8XG4gICAgICAgIF4gICAgICAgXiAgICAgICAgICAgICAgICAgICAgIF4gICAgICAgICAgIF5cbiAgICAgICAgMCAgICBzdGFydF9wb3MgICAgICAgICAgICAgYnVmZmVyX2VuZCAgICBCeXRlcy5sZW5ndGggYnVmZmVyXG4gICopXG4gIGlmIGxleGJ1Zi5sZXhfYnVmZmVyX2xlbiArIG4gPiBCeXRlcy5sZW5ndGggbGV4YnVmLmxleF9idWZmZXIgdGhlbiBiZWdpblxuICAgICgqIFRoZXJlIGlzIG5vdCBlbm91Z2ggc3BhY2UgYXQgdGhlIGVuZCBvZiB0aGUgYnVmZmVyICopXG4gICAgaWYgbGV4YnVmLmxleF9idWZmZXJfbGVuIC0gbGV4YnVmLmxleF9zdGFydF9wb3MgKyBuXG4gICAgICAgPD0gQnl0ZXMubGVuZ3RoIGxleGJ1Zi5sZXhfYnVmZmVyXG4gICAgdGhlbiBiZWdpblxuICAgICAgKCogQnV0IHRoZXJlIGlzIGVub3VnaCBzcGFjZSBpZiB3ZSByZWNsYWltIHRoZSBqdW5rIGF0IHRoZSBiZWdpbm5pbmdcbiAgICAgICAgIG9mIHRoZSBidWZmZXIgKilcbiAgICAgIEJ5dGVzLmJsaXQgbGV4YnVmLmxleF9idWZmZXIgbGV4YnVmLmxleF9zdGFydF9wb3NcbiAgICAgICAgICAgICAgICAgIGxleGJ1Zi5sZXhfYnVmZmVyIDBcbiAgICAgICAgICAgICAgICAgIChsZXhidWYubGV4X2J1ZmZlcl9sZW4gLSBsZXhidWYubGV4X3N0YXJ0X3BvcylcbiAgICBlbmQgZWxzZSBiZWdpblxuICAgICAgKCogV2UgbXVzdCBncm93IHRoZSBidWZmZXIuICBEb3VibGluZyBpdHMgc2l6ZSB3aWxsIHByb3ZpZGUgZW5vdWdoXG4gICAgICAgICBzcGFjZSBzaW5jZSBuIDw9IFN0cmluZy5sZW5ndGggYXV4X2J1ZmZlciA8PSBTdHJpbmcubGVuZ3RoIGJ1ZmZlci5cbiAgICAgICAgIFdhdGNoIG91dCBmb3Igc3RyaW5nIGxlbmd0aCBvdmVyZmxvdywgdGhvdWdoLiAqKVxuICAgICAgbGV0IG5ld2xlbiA9XG4gICAgICAgIEludC5taW4gKDIgKiBCeXRlcy5sZW5ndGggbGV4YnVmLmxleF9idWZmZXIpIFN5cy5tYXhfc3RyaW5nX2xlbmd0aCBpblxuICAgICAgaWYgbGV4YnVmLmxleF9idWZmZXJfbGVuIC0gbGV4YnVmLmxleF9zdGFydF9wb3MgKyBuID4gbmV3bGVuXG4gICAgICB0aGVuIGZhaWx3aXRoIFwiTGV4aW5nLmxleF9yZWZpbGw6IGNhbm5vdCBncm93IGJ1ZmZlclwiO1xuICAgICAgbGV0IG5ld2J1ZiA9IEJ5dGVzLmNyZWF0ZSBuZXdsZW4gaW5cbiAgICAgICgqIENvcHkgdGhlIHZhbGlkIGRhdGEgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgbmV3IGJ1ZmZlciAqKVxuICAgICAgQnl0ZXMuYmxpdCBsZXhidWYubGV4X2J1ZmZlciBsZXhidWYubGV4X3N0YXJ0X3Bvc1xuICAgICAgICAgICAgICAgICAgbmV3YnVmIDBcbiAgICAgICAgICAgICAgICAgIChsZXhidWYubGV4X2J1ZmZlcl9sZW4gLSBsZXhidWYubGV4X3N0YXJ0X3Bvcyk7XG4gICAgICBsZXhidWYubGV4X2J1ZmZlciA8LSBuZXdidWZcbiAgICBlbmQ7XG4gICAgKCogUmVhbGxvY2F0aW9uIG9yIG5vdCwgd2UgaGF2ZSBzaGlmdGVkIHRoZSBkYXRhIGxlZnQgYnlcbiAgICAgICBzdGFydF9wb3MgY2hhcmFjdGVyczsgdXBkYXRlIHRoZSBwb3NpdGlvbnMgKilcbiAgICBsZXQgcyA9IGxleGJ1Zi5sZXhfc3RhcnRfcG9zIGluXG4gICAgbGV4YnVmLmxleF9hYnNfcG9zIDwtIGxleGJ1Zi5sZXhfYWJzX3BvcyArIHM7XG4gICAgbGV4YnVmLmxleF9jdXJyX3BvcyA8LSBsZXhidWYubGV4X2N1cnJfcG9zIC0gcztcbiAgICBsZXhidWYubGV4X3N0YXJ0X3BvcyA8LSAwO1xuICAgIGxleGJ1Zi5sZXhfbGFzdF9wb3MgPC0gbGV4YnVmLmxleF9sYXN0X3BvcyAtIHM7XG4gICAgbGV4YnVmLmxleF9idWZmZXJfbGVuIDwtIGxleGJ1Zi5sZXhfYnVmZmVyX2xlbiAtIHMgO1xuICAgIGxldCB0ID0gbGV4YnVmLmxleF9tZW0gaW5cbiAgICBmb3IgaSA9IDAgdG8gQXJyYXkubGVuZ3RoIHQtMSBkb1xuICAgICAgbGV0IHYgPSB0LihpKSBpblxuICAgICAgaWYgdiA+PSAwIHRoZW5cbiAgICAgICAgdC4oaSkgPC0gdi1zXG4gICAgZG9uZVxuICBlbmQ7XG4gICgqIFRoZXJlIGlzIG5vdyBlbm91Z2ggc3BhY2UgYXQgdGhlIGVuZCBvZiB0aGUgYnVmZmVyICopXG4gIEJ5dGVzLmJsaXQgYXV4X2J1ZmZlciAwIGxleGJ1Zi5sZXhfYnVmZmVyIGxleGJ1Zi5sZXhfYnVmZmVyX2xlbiBuO1xuICBsZXhidWYubGV4X2J1ZmZlcl9sZW4gPC0gbGV4YnVmLmxleF9idWZmZXJfbGVuICsgblxuXG5sZXQgemVyb19wb3MgPSB7XG4gIHBvc19mbmFtZSA9IFwiXCI7XG4gIHBvc19sbnVtID0gMTtcbiAgcG9zX2JvbCA9IDA7XG4gIHBvc19jbnVtID0gMDtcbn1cblxubGV0IGZyb21fZnVuY3Rpb24gPyh3aXRoX3Bvc2l0aW9ucyA9IHRydWUpIGYgPVxuICB7IHJlZmlsbF9idWZmID0gbGV4X3JlZmlsbCBmIChCeXRlcy5jcmVhdGUgNTEyKTtcbiAgICBsZXhfYnVmZmVyID0gQnl0ZXMuY3JlYXRlIDEwMjQ7XG4gICAgbGV4X2J1ZmZlcl9sZW4gPSAwO1xuICAgIGxleF9hYnNfcG9zID0gMDtcbiAgICBsZXhfc3RhcnRfcG9zID0gMDtcbiAgICBsZXhfY3Vycl9wb3MgPSAwO1xuICAgIGxleF9sYXN0X3BvcyA9IDA7XG4gICAgbGV4X2xhc3RfYWN0aW9uID0gMDtcbiAgICBsZXhfbWVtID0gW3x8XTtcbiAgICBsZXhfZW9mX3JlYWNoZWQgPSBmYWxzZTtcbiAgICBsZXhfc3RhcnRfcCA9IGlmIHdpdGhfcG9zaXRpb25zIHRoZW4gemVyb19wb3MgZWxzZSBkdW1teV9wb3M7XG4gICAgbGV4X2N1cnJfcCA9IGlmIHdpdGhfcG9zaXRpb25zIHRoZW4gemVyb19wb3MgZWxzZSBkdW1teV9wb3M7XG4gIH1cblxubGV0IGZyb21fY2hhbm5lbCA/d2l0aF9wb3NpdGlvbnMgaWMgPVxuICBmcm9tX2Z1bmN0aW9uID93aXRoX3Bvc2l0aW9ucyAoZnVuIGJ1ZiBuIC0+IGlucHV0IGljIGJ1ZiAwIG4pXG5cbmxldCBmcm9tX3N0cmluZyA/KHdpdGhfcG9zaXRpb25zID0gdHJ1ZSkgcyA9XG4gIHsgcmVmaWxsX2J1ZmYgPSAoZnVuIGxleGJ1ZiAtPiBsZXhidWYubGV4X2VvZl9yZWFjaGVkIDwtIHRydWUpO1xuICAgIGxleF9idWZmZXIgPSBCeXRlcy5vZl9zdHJpbmcgczsgKCogaGF2ZSB0byBtYWtlIGEgY29weSBmb3IgY29tcGF0aWJpbGl0eVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCB1bnNhZmUtc3RyaW5nIG1vZGUgKilcbiAgICBsZXhfYnVmZmVyX2xlbiA9IFN0cmluZy5sZW5ndGggcztcbiAgICBsZXhfYWJzX3BvcyA9IDA7XG4gICAgbGV4X3N0YXJ0X3BvcyA9IDA7XG4gICAgbGV4X2N1cnJfcG9zID0gMDtcbiAgICBsZXhfbGFzdF9wb3MgPSAwO1xuICAgIGxleF9sYXN0X2FjdGlvbiA9IDA7XG4gICAgbGV4X21lbSA9IFt8fF07XG4gICAgbGV4X2VvZl9yZWFjaGVkID0gdHJ1ZTtcbiAgICBsZXhfc3RhcnRfcCA9IGlmIHdpdGhfcG9zaXRpb25zIHRoZW4gemVyb19wb3MgZWxzZSBkdW1teV9wb3M7XG4gICAgbGV4X2N1cnJfcCA9IGlmIHdpdGhfcG9zaXRpb25zIHRoZW4gemVyb19wb3MgZWxzZSBkdW1teV9wb3M7XG4gIH1cblxubGV0IHNldF9wb3NpdGlvbiBsZXhidWYgcG9zaXRpb24gPVxuICBsZXhidWYubGV4X2N1cnJfcCAgPC0ge3Bvc2l0aW9uIHdpdGggcG9zX2ZuYW1lID0gbGV4YnVmLmxleF9jdXJyX3AucG9zX2ZuYW1lfTtcbiAgbGV4YnVmLmxleF9hYnNfcG9zIDwtIHBvc2l0aW9uLnBvc19jbnVtXG5cbmxldCBzZXRfZmlsZW5hbWUgbGV4YnVmIGZuYW1lID1cbiAgbGV4YnVmLmxleF9jdXJyX3AgPC0ge2xleGJ1Zi5sZXhfY3Vycl9wIHdpdGggcG9zX2ZuYW1lID0gZm5hbWV9XG5cbmxldCB3aXRoX3Bvc2l0aW9ucyBsZXhidWYgPSBsZXhidWYubGV4X2N1cnJfcCAhPSBkdW1teV9wb3NcblxubGV0IGxleGVtZSBsZXhidWYgPVxuICBsZXQgbGVuID0gbGV4YnVmLmxleF9jdXJyX3BvcyAtIGxleGJ1Zi5sZXhfc3RhcnRfcG9zIGluXG4gIEJ5dGVzLnN1Yl9zdHJpbmcgbGV4YnVmLmxleF9idWZmZXIgbGV4YnVmLmxleF9zdGFydF9wb3MgbGVuXG5cbmxldCBzdWJfbGV4ZW1lIGxleGJ1ZiBpMSBpMiA9XG4gIGxldCBsZW4gPSBpMi1pMSBpblxuICBCeXRlcy5zdWJfc3RyaW5nIGxleGJ1Zi5sZXhfYnVmZmVyIGkxIGxlblxuXG5sZXQgc3ViX2xleGVtZV9vcHQgbGV4YnVmIGkxIGkyID1cbiAgaWYgaTEgPj0gMCB0aGVuIGJlZ2luXG4gICAgbGV0IGxlbiA9IGkyLWkxIGluXG4gICAgU29tZSAoQnl0ZXMuc3ViX3N0cmluZyBsZXhidWYubGV4X2J1ZmZlciBpMSBsZW4pXG4gIGVuZCBlbHNlIGJlZ2luXG4gICAgTm9uZVxuICBlbmRcblxubGV0IHN1Yl9sZXhlbWVfY2hhciBsZXhidWYgaSA9IEJ5dGVzLmdldCBsZXhidWYubGV4X2J1ZmZlciBpXG5cbmxldCBzdWJfbGV4ZW1lX2NoYXJfb3B0IGxleGJ1ZiBpID1cbiAgaWYgaSA+PSAwIHRoZW5cbiAgICBTb21lIChCeXRlcy5nZXQgbGV4YnVmLmxleF9idWZmZXIgaSlcbiAgZWxzZVxuICAgIE5vbmVcblxuXG5sZXQgbGV4ZW1lX2NoYXIgbGV4YnVmIGkgPVxuICBCeXRlcy5nZXQgbGV4YnVmLmxleF9idWZmZXIgKGxleGJ1Zi5sZXhfc3RhcnRfcG9zICsgaSlcblxubGV0IGxleGVtZV9zdGFydCBsZXhidWYgPSBsZXhidWYubGV4X3N0YXJ0X3AucG9zX2NudW1cbmxldCBsZXhlbWVfZW5kIGxleGJ1ZiA9IGxleGJ1Zi5sZXhfY3Vycl9wLnBvc19jbnVtXG5cbmxldCBsZXhlbWVfc3RhcnRfcCBsZXhidWYgPSBsZXhidWYubGV4X3N0YXJ0X3BcbmxldCBsZXhlbWVfZW5kX3AgbGV4YnVmID0gbGV4YnVmLmxleF9jdXJyX3BcblxubGV0IG5ld19saW5lIGxleGJ1ZiA9XG4gIGxldCBsY3AgPSBsZXhidWYubGV4X2N1cnJfcCBpblxuICBpZiBsY3AgIT0gZHVtbXlfcG9zIHRoZW5cbiAgICBsZXhidWYubGV4X2N1cnJfcCA8LVxuICAgICAgeyBsY3Agd2l0aFxuICAgICAgICBwb3NfbG51bSA9IGxjcC5wb3NfbG51bSArIDE7XG4gICAgICAgIHBvc19ib2wgPSBsY3AucG9zX2NudW07XG4gICAgICB9XG5cblxuXG4oKiBEaXNjYXJkIGRhdGEgbGVmdCBpbiBsZXhlciBidWZmZXIuICopXG5cbmxldCBmbHVzaF9pbnB1dCBsYiA9XG4gIGxiLmxleF9jdXJyX3BvcyA8LSAwO1xuICBsYi5sZXhfYWJzX3BvcyA8LSAwO1xuICBsZXQgbGNwID0gbGIubGV4X2N1cnJfcCBpblxuICBpZiBsY3AgIT0gZHVtbXlfcG9zIHRoZW5cbiAgICBsYi5sZXhfY3Vycl9wIDwtIHt6ZXJvX3BvcyB3aXRoIHBvc19mbmFtZSA9IGxjcC5wb3NfZm5hbWV9O1xuICBsYi5sZXhfYnVmZmVyX2xlbiA8LSAwO1xuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBUaGUgcGFyc2luZyBlbmdpbmUgKilcblxub3BlbiBMZXhpbmdcblxuKCogSW50ZXJuYWwgaW50ZXJmYWNlIHRvIHRoZSBwYXJzaW5nIGVuZ2luZSAqKVxuXG50eXBlIHBhcnNlcl9lbnYgPVxuICB7IG11dGFibGUgc19zdGFjayA6IGludCBhcnJheTsgICAgICAgICgqIFN0YXRlcyAqKVxuICAgIG11dGFibGUgdl9zdGFjayA6IE9iai50IGFycmF5OyAgICAgICgqIFNlbWFudGljIGF0dHJpYnV0ZXMgKilcbiAgICBtdXRhYmxlIHN5bWJfc3RhcnRfc3RhY2sgOiBwb3NpdGlvbiBhcnJheTsgKCogU3RhcnQgcG9zaXRpb25zICopXG4gICAgbXV0YWJsZSBzeW1iX2VuZF9zdGFjayA6IHBvc2l0aW9uIGFycmF5OyAgICgqIEVuZCBwb3NpdGlvbnMgKilcbiAgICBtdXRhYmxlIHN0YWNrc2l6ZSA6IGludDsgICAgICAgICAgICAoKiBTaXplIG9mIHRoZSBzdGFja3MgKilcbiAgICBtdXRhYmxlIHN0YWNrYmFzZSA6IGludDsgICAgICAgICAgICAoKiBCYXNlIHNwIGZvciBjdXJyZW50IHBhcnNlICopXG4gICAgbXV0YWJsZSBjdXJyX2NoYXIgOiBpbnQ7ICAgICAgICAgICAgKCogTGFzdCB0b2tlbiByZWFkICopXG4gICAgbXV0YWJsZSBsdmFsIDogT2JqLnQ7ICAgICAgICAgICAgICAgKCogSXRzIHNlbWFudGljIGF0dHJpYnV0ZSAqKVxuICAgIG11dGFibGUgc3ltYl9zdGFydCA6IHBvc2l0aW9uOyAgICAgICgqIFN0YXJ0IHBvcy4gb2YgdGhlIGN1cnJlbnQgc3ltYm9sKilcbiAgICBtdXRhYmxlIHN5bWJfZW5kIDogcG9zaXRpb247ICAgICAgICAoKiBFbmQgcG9zLiBvZiB0aGUgY3VycmVudCBzeW1ib2wgKilcbiAgICBtdXRhYmxlIGFzcCA6IGludDsgICAgICAgICAgICAgICAgICAoKiBUaGUgc3RhY2sgcG9pbnRlciBmb3IgYXR0cmlidXRlcyAqKVxuICAgIG11dGFibGUgcnVsZV9sZW4gOiBpbnQ7ICAgICAgICAgICAgICgqIE51bWJlciBvZiByaHMgaXRlbXMgaW4gdGhlIHJ1bGUgKilcbiAgICBtdXRhYmxlIHJ1bGVfbnVtYmVyIDogaW50OyAgICAgICAgICAoKiBSdWxlIG51bWJlciB0byByZWR1Y2UgYnkgKilcbiAgICBtdXRhYmxlIHNwIDogaW50OyAgICAgICAgICAgICAgICAgICAoKiBTYXZlZCBzcCBmb3IgcGFyc2VfZW5naW5lICopXG4gICAgbXV0YWJsZSBzdGF0ZSA6IGludDsgICAgICAgICAgICAgICAgKCogU2F2ZWQgc3RhdGUgZm9yIHBhcnNlX2VuZ2luZSAqKVxuICAgIG11dGFibGUgZXJyZmxhZyA6IGludCB9ICAgICAgICAgICAgICgqIFNhdmVkIGVycm9yIGZsYWcgZm9yIHBhcnNlX2VuZ2luZSAqKVxuW0BAd2FybmluZyBcIi11bnVzZWQtZmllbGRcIl1cblxudHlwZSBwYXJzZV90YWJsZXMgPVxuICB7IGFjdGlvbnMgOiAocGFyc2VyX2VudiAtPiBPYmoudCkgYXJyYXk7XG4gICAgdHJhbnNsX2NvbnN0IDogaW50IGFycmF5O1xuICAgIHRyYW5zbF9ibG9jayA6IGludCBhcnJheTtcbiAgICBsaHMgOiBzdHJpbmc7XG4gICAgbGVuIDogc3RyaW5nO1xuICAgIGRlZnJlZCA6IHN0cmluZztcbiAgICBkZ290byA6IHN0cmluZztcbiAgICBzaW5kZXggOiBzdHJpbmc7XG4gICAgcmluZGV4IDogc3RyaW5nO1xuICAgIGdpbmRleCA6IHN0cmluZztcbiAgICB0YWJsZXNpemUgOiBpbnQ7XG4gICAgdGFibGUgOiBzdHJpbmc7XG4gICAgY2hlY2sgOiBzdHJpbmc7XG4gICAgZXJyb3JfZnVuY3Rpb24gOiBzdHJpbmcgLT4gdW5pdDtcbiAgICBuYW1lc19jb25zdCA6IHN0cmluZztcbiAgICBuYW1lc19ibG9jayA6IHN0cmluZyB9XG5cbmV4Y2VwdGlvbiBZWWV4aXQgb2YgT2JqLnRcbmV4Y2VwdGlvbiBQYXJzZV9lcnJvclxuXG50eXBlIHBhcnNlcl9pbnB1dCA9XG4gICAgU3RhcnRcbiAgfCBUb2tlbl9yZWFkXG4gIHwgU3RhY2tzX2dyb3duXzFcbiAgfCBTdGFja3NfZ3Jvd25fMlxuICB8IFNlbWFudGljX2FjdGlvbl9jb21wdXRlZFxuICB8IEVycm9yX2RldGVjdGVkXG5cbnR5cGUgcGFyc2VyX291dHB1dCA9XG4gICAgUmVhZF90b2tlblxuICB8IFJhaXNlX3BhcnNlX2Vycm9yXG4gIHwgR3Jvd19zdGFja3NfMVxuICB8IEdyb3dfc3RhY2tzXzJcbiAgfCBDb21wdXRlX3NlbWFudGljX2FjdGlvblxuICB8IENhbGxfZXJyb3JfZnVuY3Rpb25cblxuKCogdG8gYXZvaWQgd2FybmluZ3MgKilcbmxldCBfID0gW1JlYWRfdG9rZW47IFJhaXNlX3BhcnNlX2Vycm9yOyBHcm93X3N0YWNrc18xOyBHcm93X3N0YWNrc18yO1xuICAgICAgICAgQ29tcHV0ZV9zZW1hbnRpY19hY3Rpb247IENhbGxfZXJyb3JfZnVuY3Rpb25dXG5cbmV4dGVybmFsIHBhcnNlX2VuZ2luZSA6XG4gICAgcGFyc2VfdGFibGVzIC0+IHBhcnNlcl9lbnYgLT4gcGFyc2VyX2lucHV0IC0+IE9iai50IC0+IHBhcnNlcl9vdXRwdXRcbiAgICA9IFwiY2FtbF9wYXJzZV9lbmdpbmVcIlxuXG5leHRlcm5hbCBzZXRfdHJhY2U6IGJvb2wgLT4gYm9vbFxuICAgID0gXCJjYW1sX3NldF9wYXJzZXJfdHJhY2VcIlxuXG5sZXQgZW52ID1cbiAgeyBzX3N0YWNrID0gQXJyYXkubWFrZSAxMDAgMDtcbiAgICB2X3N0YWNrID0gQXJyYXkubWFrZSAxMDAgKE9iai5yZXByICgpKTtcbiAgICBzeW1iX3N0YXJ0X3N0YWNrID0gQXJyYXkubWFrZSAxMDAgZHVtbXlfcG9zO1xuICAgIHN5bWJfZW5kX3N0YWNrID0gQXJyYXkubWFrZSAxMDAgZHVtbXlfcG9zO1xuICAgIHN0YWNrc2l6ZSA9IDEwMDtcbiAgICBzdGFja2Jhc2UgPSAwO1xuICAgIGN1cnJfY2hhciA9IDA7XG4gICAgbHZhbCA9IE9iai5yZXByICgpO1xuICAgIHN5bWJfc3RhcnQgPSBkdW1teV9wb3M7XG4gICAgc3ltYl9lbmQgPSBkdW1teV9wb3M7XG4gICAgYXNwID0gMDtcbiAgICBydWxlX2xlbiA9IDA7XG4gICAgcnVsZV9udW1iZXIgPSAwO1xuICAgIHNwID0gMDtcbiAgICBzdGF0ZSA9IDA7XG4gICAgZXJyZmxhZyA9IDAgfVxuXG5sZXQgZ3Jvd19zdGFja3MoKSA9XG4gIGxldCBvbGRzaXplID0gZW52LnN0YWNrc2l6ZSBpblxuICBsZXQgbmV3c2l6ZSA9IG9sZHNpemUgKiAyIGluXG4gIGxldCBuZXdfcyA9IEFycmF5Lm1ha2UgbmV3c2l6ZSAwXG4gIGFuZCBuZXdfdiA9IEFycmF5Lm1ha2UgbmV3c2l6ZSAoT2JqLnJlcHIgKCkpXG4gIGFuZCBuZXdfc3RhcnQgPSBBcnJheS5tYWtlIG5ld3NpemUgZHVtbXlfcG9zXG4gIGFuZCBuZXdfZW5kID0gQXJyYXkubWFrZSBuZXdzaXplIGR1bW15X3BvcyBpblxuICAgIEFycmF5LmJsaXQgZW52LnNfc3RhY2sgMCBuZXdfcyAwIG9sZHNpemU7XG4gICAgZW52LnNfc3RhY2sgPC0gbmV3X3M7XG4gICAgQXJyYXkuYmxpdCBlbnYudl9zdGFjayAwIG5ld192IDAgb2xkc2l6ZTtcbiAgICBlbnYudl9zdGFjayA8LSBuZXdfdjtcbiAgICBBcnJheS5ibGl0IGVudi5zeW1iX3N0YXJ0X3N0YWNrIDAgbmV3X3N0YXJ0IDAgb2xkc2l6ZTtcbiAgICBlbnYuc3ltYl9zdGFydF9zdGFjayA8LSBuZXdfc3RhcnQ7XG4gICAgQXJyYXkuYmxpdCBlbnYuc3ltYl9lbmRfc3RhY2sgMCBuZXdfZW5kIDAgb2xkc2l6ZTtcbiAgICBlbnYuc3ltYl9lbmRfc3RhY2sgPC0gbmV3X2VuZDtcbiAgICBlbnYuc3RhY2tzaXplIDwtIG5ld3NpemVcblxubGV0IGNsZWFyX3BhcnNlcigpID1cbiAgQXJyYXkuZmlsbCBlbnYudl9zdGFjayAwIGVudi5zdGFja3NpemUgKE9iai5yZXByICgpKTtcbiAgZW52Lmx2YWwgPC0gT2JqLnJlcHIgKClcblxubGV0IGN1cnJlbnRfbG9va2FoZWFkX2Z1biA9IHJlZiAoZnVuIChfIDogT2JqLnQpIC0+IGZhbHNlKVxuXG5sZXQgeXlwYXJzZSB0YWJsZXMgc3RhcnQgbGV4ZXIgbGV4YnVmID1cbiAgbGV0IHJlYyBsb29wIGNtZCBhcmcgPVxuICAgIG1hdGNoIHBhcnNlX2VuZ2luZSB0YWJsZXMgZW52IGNtZCBhcmcgd2l0aFxuICAgICAgUmVhZF90b2tlbiAtPlxuICAgICAgICBsZXQgdCA9IE9iai5yZXByKGxleGVyIGxleGJ1ZikgaW5cbiAgICAgICAgZW52LnN5bWJfc3RhcnQgPC0gbGV4YnVmLmxleF9zdGFydF9wO1xuICAgICAgICBlbnYuc3ltYl9lbmQgPC0gbGV4YnVmLmxleF9jdXJyX3A7XG4gICAgICAgIGxvb3AgVG9rZW5fcmVhZCB0XG4gICAgfCBSYWlzZV9wYXJzZV9lcnJvciAtPlxuICAgICAgICByYWlzZSBQYXJzZV9lcnJvclxuICAgIHwgQ29tcHV0ZV9zZW1hbnRpY19hY3Rpb24gLT5cbiAgICAgICAgbGV0IChhY3Rpb24sIHZhbHVlKSA9XG4gICAgICAgICAgdHJ5XG4gICAgICAgICAgICAoU2VtYW50aWNfYWN0aW9uX2NvbXB1dGVkLCB0YWJsZXMuYWN0aW9ucy4oZW52LnJ1bGVfbnVtYmVyKSBlbnYpXG4gICAgICAgICAgd2l0aCBQYXJzZV9lcnJvciAtPlxuICAgICAgICAgICAgKEVycm9yX2RldGVjdGVkLCBPYmoucmVwciAoKSkgaW5cbiAgICAgICAgbG9vcCBhY3Rpb24gdmFsdWVcbiAgICB8IEdyb3dfc3RhY2tzXzEgLT5cbiAgICAgICAgZ3Jvd19zdGFja3MoKTsgbG9vcCBTdGFja3NfZ3Jvd25fMSAoT2JqLnJlcHIgKCkpXG4gICAgfCBHcm93X3N0YWNrc18yIC0+XG4gICAgICAgIGdyb3dfc3RhY2tzKCk7IGxvb3AgU3RhY2tzX2dyb3duXzIgKE9iai5yZXByICgpKVxuICAgIHwgQ2FsbF9lcnJvcl9mdW5jdGlvbiAtPlxuICAgICAgICB0YWJsZXMuZXJyb3JfZnVuY3Rpb24gXCJzeW50YXggZXJyb3JcIjtcbiAgICAgICAgbG9vcCBFcnJvcl9kZXRlY3RlZCAoT2JqLnJlcHIgKCkpIGluXG4gIGxldCBpbml0X2FzcCA9IGVudi5hc3BcbiAgYW5kIGluaXRfc3AgPSBlbnYuc3BcbiAgYW5kIGluaXRfc3RhY2tiYXNlID0gZW52LnN0YWNrYmFzZVxuICBhbmQgaW5pdF9zdGF0ZSA9IGVudi5zdGF0ZVxuICBhbmQgaW5pdF9jdXJyX2NoYXIgPSBlbnYuY3Vycl9jaGFyXG4gIGFuZCBpbml0X2x2YWwgPSBlbnYubHZhbFxuICBhbmQgaW5pdF9lcnJmbGFnID0gZW52LmVycmZsYWcgaW5cbiAgZW52LnN0YWNrYmFzZSA8LSBlbnYuc3AgKyAxO1xuICBlbnYuY3Vycl9jaGFyIDwtIHN0YXJ0O1xuICBlbnYuc3ltYl9lbmQgPC0gbGV4YnVmLmxleF9jdXJyX3A7XG4gIHRyeVxuICAgIGxvb3AgU3RhcnQgKE9iai5yZXByICgpKVxuICB3aXRoIGV4biAtPlxuICAgIGxldCBjdXJyX2NoYXIgPSBlbnYuY3Vycl9jaGFyIGluXG4gICAgZW52LmFzcCA8LSBpbml0X2FzcDtcbiAgICBlbnYuc3AgPC0gaW5pdF9zcDtcbiAgICBlbnYuc3RhY2tiYXNlIDwtIGluaXRfc3RhY2tiYXNlO1xuICAgIGVudi5zdGF0ZSA8LSBpbml0X3N0YXRlO1xuICAgIGVudi5jdXJyX2NoYXIgPC0gaW5pdF9jdXJyX2NoYXI7XG4gICAgZW52Lmx2YWwgPC0gaW5pdF9sdmFsO1xuICAgIGVudi5lcnJmbGFnIDwtIGluaXRfZXJyZmxhZztcbiAgICBtYXRjaCBleG4gd2l0aFxuICAgICAgWVlleGl0IHYgLT5cbiAgICAgICAgT2JqLm1hZ2ljIHZcbiAgICB8IF8gLT5cbiAgICAgICAgY3VycmVudF9sb29rYWhlYWRfZnVuIDo9XG4gICAgICAgICAgKGZ1biB0b2sgLT5cbiAgICAgICAgICAgIGlmIE9iai5pc19ibG9jayB0b2tcbiAgICAgICAgICAgIHRoZW4gdGFibGVzLnRyYW5zbF9ibG9jay4oT2JqLnRhZyB0b2spID0gY3Vycl9jaGFyXG4gICAgICAgICAgICBlbHNlIHRhYmxlcy50cmFuc2xfY29uc3QuKE9iai5tYWdpYyB0b2spID0gY3Vycl9jaGFyKTtcbiAgICAgICAgcmFpc2UgZXhuXG5cbmxldCBwZWVrX3ZhbCBlbnYgbiA9XG4gIE9iai5tYWdpYyBlbnYudl9zdGFjay4oZW52LmFzcCAtIG4pXG5cbmxldCBzeW1ib2xfc3RhcnRfcG9zICgpID1cbiAgbGV0IHJlYyBsb29wIGkgPVxuICAgIGlmIGkgPD0gMCB0aGVuIGVudi5zeW1iX2VuZF9zdGFjay4oZW52LmFzcClcbiAgICBlbHNlIGJlZ2luXG4gICAgICBsZXQgc3QgPSBlbnYuc3ltYl9zdGFydF9zdGFjay4oZW52LmFzcCAtIGkgKyAxKSBpblxuICAgICAgbGV0IGVuID0gZW52LnN5bWJfZW5kX3N0YWNrLihlbnYuYXNwIC0gaSArIDEpIGluXG4gICAgICBpZiBzdCA8PiBlbiB0aGVuIHN0IGVsc2UgbG9vcCAoaSAtIDEpXG4gICAgZW5kXG4gIGluXG4gIGxvb3AgZW52LnJ1bGVfbGVuXG5cbmxldCBzeW1ib2xfZW5kX3BvcyAoKSA9IGVudi5zeW1iX2VuZF9zdGFjay4oZW52LmFzcClcbmxldCByaHNfc3RhcnRfcG9zIG4gPSBlbnYuc3ltYl9zdGFydF9zdGFjay4oZW52LmFzcCAtIChlbnYucnVsZV9sZW4gLSBuKSlcbmxldCByaHNfZW5kX3BvcyBuID0gZW52LnN5bWJfZW5kX3N0YWNrLihlbnYuYXNwIC0gKGVudi5ydWxlX2xlbiAtIG4pKVxuXG5sZXQgc3ltYm9sX3N0YXJ0ICgpID0gKHN5bWJvbF9zdGFydF9wb3MgKCkpLnBvc19jbnVtXG5sZXQgc3ltYm9sX2VuZCAoKSA9IChzeW1ib2xfZW5kX3BvcyAoKSkucG9zX2NudW1cbmxldCByaHNfc3RhcnQgbiA9IChyaHNfc3RhcnRfcG9zIG4pLnBvc19jbnVtXG5sZXQgcmhzX2VuZCBuID0gKHJoc19lbmRfcG9zIG4pLnBvc19jbnVtXG5cbmxldCBpc19jdXJyZW50X2xvb2thaGVhZCB0b2sgPVxuICAoIWN1cnJlbnRfbG9va2FoZWFkX2Z1bikoT2JqLnJlcHIgdG9rKVxuXG5sZXQgcGFyc2VfZXJyb3IgKF8gOiBzdHJpbmcpID0gKClcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogU2V0cyBvdmVyIG9yZGVyZWQgdHlwZXMgKilcblxubW9kdWxlIHR5cGUgT3JkZXJlZFR5cGUgPVxuICBzaWdcbiAgICB0eXBlIHRcbiAgICB2YWwgY29tcGFyZTogdCAtPiB0IC0+IGludFxuICBlbmRcblxubW9kdWxlIHR5cGUgUyA9XG4gIHNpZ1xuICAgIHR5cGUgZWx0XG4gICAgdHlwZSB0XG4gICAgdmFsIGVtcHR5OiB0XG4gICAgdmFsIGlzX2VtcHR5OiB0IC0+IGJvb2xcbiAgICB2YWwgbWVtOiBlbHQgLT4gdCAtPiBib29sXG4gICAgdmFsIGFkZDogZWx0IC0+IHQgLT4gdFxuICAgIHZhbCBzaW5nbGV0b246IGVsdCAtPiB0XG4gICAgdmFsIHJlbW92ZTogZWx0IC0+IHQgLT4gdFxuICAgIHZhbCB1bmlvbjogdCAtPiB0IC0+IHRcbiAgICB2YWwgaW50ZXI6IHQgLT4gdCAtPiB0XG4gICAgdmFsIGRpc2pvaW50OiB0IC0+IHQgLT4gYm9vbFxuICAgIHZhbCBkaWZmOiB0IC0+IHQgLT4gdFxuICAgIHZhbCBjb21wYXJlOiB0IC0+IHQgLT4gaW50XG4gICAgdmFsIGVxdWFsOiB0IC0+IHQgLT4gYm9vbFxuICAgIHZhbCBzdWJzZXQ6IHQgLT4gdCAtPiBib29sXG4gICAgdmFsIGl0ZXI6IChlbHQgLT4gdW5pdCkgLT4gdCAtPiB1bml0XG4gICAgdmFsIG1hcDogKGVsdCAtPiBlbHQpIC0+IHQgLT4gdFxuICAgIHZhbCBmb2xkOiAoZWx0IC0+ICdhIC0+ICdhKSAtPiB0IC0+ICdhIC0+ICdhXG4gICAgdmFsIGZvcl9hbGw6IChlbHQgLT4gYm9vbCkgLT4gdCAtPiBib29sXG4gICAgdmFsIGV4aXN0czogKGVsdCAtPiBib29sKSAtPiB0IC0+IGJvb2xcbiAgICB2YWwgZmlsdGVyOiAoZWx0IC0+IGJvb2wpIC0+IHQgLT4gdFxuICAgIHZhbCBmaWx0ZXJfbWFwOiAoZWx0IC0+IGVsdCBvcHRpb24pIC0+IHQgLT4gdFxuICAgIHZhbCBwYXJ0aXRpb246IChlbHQgLT4gYm9vbCkgLT4gdCAtPiB0ICogdFxuICAgIHZhbCBjYXJkaW5hbDogdCAtPiBpbnRcbiAgICB2YWwgZWxlbWVudHM6IHQgLT4gZWx0IGxpc3RcbiAgICB2YWwgbWluX2VsdDogdCAtPiBlbHRcbiAgICB2YWwgbWluX2VsdF9vcHQ6IHQgLT4gZWx0IG9wdGlvblxuICAgIHZhbCBtYXhfZWx0OiB0IC0+IGVsdFxuICAgIHZhbCBtYXhfZWx0X29wdDogdCAtPiBlbHQgb3B0aW9uXG4gICAgdmFsIGNob29zZTogdCAtPiBlbHRcbiAgICB2YWwgY2hvb3NlX29wdDogdCAtPiBlbHQgb3B0aW9uXG4gICAgdmFsIHNwbGl0OiBlbHQgLT4gdCAtPiB0ICogYm9vbCAqIHRcbiAgICB2YWwgZmluZDogZWx0IC0+IHQgLT4gZWx0XG4gICAgdmFsIGZpbmRfb3B0OiBlbHQgLT4gdCAtPiBlbHQgb3B0aW9uXG4gICAgdmFsIGZpbmRfZmlyc3Q6IChlbHQgLT4gYm9vbCkgLT4gdCAtPiBlbHRcbiAgICB2YWwgZmluZF9maXJzdF9vcHQ6IChlbHQgLT4gYm9vbCkgLT4gdCAtPiBlbHQgb3B0aW9uXG4gICAgdmFsIGZpbmRfbGFzdDogKGVsdCAtPiBib29sKSAtPiB0IC0+IGVsdFxuICAgIHZhbCBmaW5kX2xhc3Rfb3B0OiAoZWx0IC0+IGJvb2wpIC0+IHQgLT4gZWx0IG9wdGlvblxuICAgIHZhbCBvZl9saXN0OiBlbHQgbGlzdCAtPiB0XG4gICAgdmFsIHRvX3NlcV9mcm9tIDogZWx0IC0+IHQgLT4gZWx0IFNlcS50XG4gICAgdmFsIHRvX3NlcSA6IHQgLT4gZWx0IFNlcS50XG4gICAgdmFsIHRvX3Jldl9zZXEgOiB0IC0+IGVsdCBTZXEudFxuICAgIHZhbCBhZGRfc2VxIDogZWx0IFNlcS50IC0+IHQgLT4gdFxuICAgIHZhbCBvZl9zZXEgOiBlbHQgU2VxLnQgLT4gdFxuICBlbmRcblxubW9kdWxlIE1ha2UoT3JkOiBPcmRlcmVkVHlwZSkgPVxuICBzdHJ1Y3RcbiAgICB0eXBlIGVsdCA9IE9yZC50XG4gICAgdHlwZSB0ID0gRW1wdHkgfCBOb2RlIG9mIHtsOnQ7IHY6ZWx0OyByOnQ7IGg6aW50fVxuXG4gICAgKCogU2V0cyBhcmUgcmVwcmVzZW50ZWQgYnkgYmFsYW5jZWQgYmluYXJ5IHRyZWVzICh0aGUgaGVpZ2h0cyBvZiB0aGVcbiAgICAgICBjaGlsZHJlbiBkaWZmZXIgYnkgYXQgbW9zdCAyICopXG5cbiAgICBsZXQgaGVpZ2h0ID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gMFxuICAgICAgfCBOb2RlIHtofSAtPiBoXG5cbiAgICAoKiBDcmVhdGVzIGEgbmV3IG5vZGUgd2l0aCBsZWZ0IHNvbiBsLCB2YWx1ZSB2IGFuZCByaWdodCBzb24gci5cbiAgICAgICBXZSBtdXN0IGhhdmUgYWxsIGVsZW1lbnRzIG9mIGwgPCB2IDwgYWxsIGVsZW1lbnRzIG9mIHIuXG4gICAgICAgbCBhbmQgciBtdXN0IGJlIGJhbGFuY2VkIGFuZCB8IGhlaWdodCBsIC0gaGVpZ2h0IHIgfCA8PSAyLlxuICAgICAgIElubGluZSBleHBhbnNpb24gb2YgaGVpZ2h0IGZvciBiZXR0ZXIgc3BlZWQuICopXG5cbiAgICBsZXQgY3JlYXRlIGwgdiByID1cbiAgICAgIGxldCBobCA9IG1hdGNoIGwgd2l0aCBFbXB0eSAtPiAwIHwgTm9kZSB7aH0gLT4gaCBpblxuICAgICAgbGV0IGhyID0gbWF0Y2ggciB3aXRoIEVtcHR5IC0+IDAgfCBOb2RlIHtofSAtPiBoIGluXG4gICAgICBOb2Rle2w7IHY7IHI7IGg9KGlmIGhsID49IGhyIHRoZW4gaGwgKyAxIGVsc2UgaHIgKyAxKX1cblxuICAgICgqIFNhbWUgYXMgY3JlYXRlLCBidXQgcGVyZm9ybXMgb25lIHN0ZXAgb2YgcmViYWxhbmNpbmcgaWYgbmVjZXNzYXJ5LlxuICAgICAgIEFzc3VtZXMgbCBhbmQgciBiYWxhbmNlZCBhbmQgfCBoZWlnaHQgbCAtIGhlaWdodCByIHwgPD0gMy5cbiAgICAgICBJbmxpbmUgZXhwYW5zaW9uIG9mIGNyZWF0ZSBmb3IgYmV0dGVyIHNwZWVkIGluIHRoZSBtb3N0IGZyZXF1ZW50IGNhc2VcbiAgICAgICB3aGVyZSBubyByZWJhbGFuY2luZyBpcyByZXF1aXJlZC4gKilcblxuICAgIGxldCBiYWwgbCB2IHIgPVxuICAgICAgbGV0IGhsID0gbWF0Y2ggbCB3aXRoIEVtcHR5IC0+IDAgfCBOb2RlIHtofSAtPiBoIGluXG4gICAgICBsZXQgaHIgPSBtYXRjaCByIHdpdGggRW1wdHkgLT4gMCB8IE5vZGUge2h9IC0+IGggaW5cbiAgICAgIGlmIGhsID4gaHIgKyAyIHRoZW4gYmVnaW5cbiAgICAgICAgbWF0Y2ggbCB3aXRoXG4gICAgICAgICAgRW1wdHkgLT4gaW52YWxpZF9hcmcgXCJTZXQuYmFsXCJcbiAgICAgICAgfCBOb2Rle2w9bGw7IHY9bHY7IHI9bHJ9IC0+XG4gICAgICAgICAgICBpZiBoZWlnaHQgbGwgPj0gaGVpZ2h0IGxyIHRoZW5cbiAgICAgICAgICAgICAgY3JlYXRlIGxsIGx2IChjcmVhdGUgbHIgdiByKVxuICAgICAgICAgICAgZWxzZSBiZWdpblxuICAgICAgICAgICAgICBtYXRjaCBsciB3aXRoXG4gICAgICAgICAgICAgICAgRW1wdHkgLT4gaW52YWxpZF9hcmcgXCJTZXQuYmFsXCJcbiAgICAgICAgICAgICAgfCBOb2Rle2w9bHJsOyB2PWxydjsgcj1scnJ9LT5cbiAgICAgICAgICAgICAgICAgIGNyZWF0ZSAoY3JlYXRlIGxsIGx2IGxybCkgbHJ2IChjcmVhdGUgbHJyIHYgcilcbiAgICAgICAgICAgIGVuZFxuICAgICAgZW5kIGVsc2UgaWYgaHIgPiBobCArIDIgdGhlbiBiZWdpblxuICAgICAgICBtYXRjaCByIHdpdGhcbiAgICAgICAgICBFbXB0eSAtPiBpbnZhbGlkX2FyZyBcIlNldC5iYWxcIlxuICAgICAgICB8IE5vZGV7bD1ybDsgdj1ydjsgcj1ycn0gLT5cbiAgICAgICAgICAgIGlmIGhlaWdodCByciA+PSBoZWlnaHQgcmwgdGhlblxuICAgICAgICAgICAgICBjcmVhdGUgKGNyZWF0ZSBsIHYgcmwpIHJ2IHJyXG4gICAgICAgICAgICBlbHNlIGJlZ2luXG4gICAgICAgICAgICAgIG1hdGNoIHJsIHdpdGhcbiAgICAgICAgICAgICAgICBFbXB0eSAtPiBpbnZhbGlkX2FyZyBcIlNldC5iYWxcIlxuICAgICAgICAgICAgICB8IE5vZGV7bD1ybGw7IHY9cmx2OyByPXJscn0gLT5cbiAgICAgICAgICAgICAgICAgIGNyZWF0ZSAoY3JlYXRlIGwgdiBybGwpIHJsdiAoY3JlYXRlIHJsciBydiBycilcbiAgICAgICAgICAgIGVuZFxuICAgICAgZW5kIGVsc2VcbiAgICAgICAgTm9kZXtsOyB2OyByOyBoPShpZiBobCA+PSBociB0aGVuIGhsICsgMSBlbHNlIGhyICsgMSl9XG5cbiAgICAoKiBJbnNlcnRpb24gb2Ygb25lIGVsZW1lbnQgKilcblxuICAgIGxldCByZWMgYWRkIHggPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiBOb2Rle2w9RW1wdHk7IHY9eDsgcj1FbXB0eTsgaD0xfVxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IGFzIHQgLT5cbiAgICAgICAgICBsZXQgYyA9IE9yZC5jb21wYXJlIHggdiBpblxuICAgICAgICAgIGlmIGMgPSAwIHRoZW4gdCBlbHNlXG4gICAgICAgICAgaWYgYyA8IDAgdGhlblxuICAgICAgICAgICAgbGV0IGxsID0gYWRkIHggbCBpblxuICAgICAgICAgICAgaWYgbCA9PSBsbCB0aGVuIHQgZWxzZSBiYWwgbGwgdiByXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgbGV0IHJyID0gYWRkIHggciBpblxuICAgICAgICAgICAgaWYgciA9PSByciB0aGVuIHQgZWxzZSBiYWwgbCB2IHJyXG5cbiAgICBsZXQgc2luZ2xldG9uIHggPSBOb2Rle2w9RW1wdHk7IHY9eDsgcj1FbXB0eTsgaD0xfVxuXG4gICAgKCogQmV3YXJlOiB0aG9zZSB0d28gZnVuY3Rpb25zIGFzc3VtZSB0aGF0IHRoZSBhZGRlZCB2IGlzICpzdHJpY3RseSpcbiAgICAgICBzbWFsbGVyIChvciBiaWdnZXIpIHRoYW4gYWxsIHRoZSBwcmVzZW50IGVsZW1lbnRzIGluIHRoZSB0cmVlOyBpdFxuICAgICAgIGRvZXMgbm90IHRlc3QgZm9yIGVxdWFsaXR5IHdpdGggdGhlIGN1cnJlbnQgbWluIChvciBtYXgpIGVsZW1lbnQuXG4gICAgICAgSW5kZWVkLCB0aGV5IGFyZSBvbmx5IHVzZWQgZHVyaW5nIHRoZSBcImpvaW5cIiBvcGVyYXRpb24gd2hpY2hcbiAgICAgICByZXNwZWN0cyB0aGlzIHByZWNvbmRpdGlvbi5cbiAgICAqKVxuXG4gICAgbGV0IHJlYyBhZGRfbWluX2VsZW1lbnQgeCA9IGZ1bmN0aW9uXG4gICAgICB8IEVtcHR5IC0+IHNpbmdsZXRvbiB4XG4gICAgICB8IE5vZGUge2w7IHY7IHJ9IC0+XG4gICAgICAgIGJhbCAoYWRkX21pbl9lbGVtZW50IHggbCkgdiByXG5cbiAgICBsZXQgcmVjIGFkZF9tYXhfZWxlbWVudCB4ID0gZnVuY3Rpb25cbiAgICAgIHwgRW1wdHkgLT4gc2luZ2xldG9uIHhcbiAgICAgIHwgTm9kZSB7bDsgdjsgcn0gLT5cbiAgICAgICAgYmFsIGwgdiAoYWRkX21heF9lbGVtZW50IHggcilcblxuICAgICgqIFNhbWUgYXMgY3JlYXRlIGFuZCBiYWwsIGJ1dCBubyBhc3N1bXB0aW9ucyBhcmUgbWFkZSBvbiB0aGVcbiAgICAgICByZWxhdGl2ZSBoZWlnaHRzIG9mIGwgYW5kIHIuICopXG5cbiAgICBsZXQgcmVjIGpvaW4gbCB2IHIgPVxuICAgICAgbWF0Y2ggKGwsIHIpIHdpdGhcbiAgICAgICAgKEVtcHR5LCBfKSAtPiBhZGRfbWluX2VsZW1lbnQgdiByXG4gICAgICB8IChfLCBFbXB0eSkgLT4gYWRkX21heF9lbGVtZW50IHYgbFxuICAgICAgfCAoTm9kZXtsPWxsOyB2PWx2OyByPWxyOyBoPWxofSwgTm9kZXtsPXJsOyB2PXJ2OyByPXJyOyBoPXJofSkgLT5cbiAgICAgICAgICBpZiBsaCA+IHJoICsgMiB0aGVuIGJhbCBsbCBsdiAoam9pbiBsciB2IHIpIGVsc2VcbiAgICAgICAgICBpZiByaCA+IGxoICsgMiB0aGVuIGJhbCAoam9pbiBsIHYgcmwpIHJ2IHJyIGVsc2VcbiAgICAgICAgICBjcmVhdGUgbCB2IHJcblxuICAgICgqIFNtYWxsZXN0IGFuZCBncmVhdGVzdCBlbGVtZW50IG9mIGEgc2V0ICopXG5cbiAgICBsZXQgcmVjIG1pbl9lbHQgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiByYWlzZSBOb3RfZm91bmRcbiAgICAgIHwgTm9kZXtsPUVtcHR5OyB2fSAtPiB2XG4gICAgICB8IE5vZGV7bH0gLT4gbWluX2VsdCBsXG5cbiAgICBsZXQgcmVjIG1pbl9lbHRfb3B0ID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gTm9uZVxuICAgICAgfCBOb2Rle2w9RW1wdHk7IHZ9IC0+IFNvbWUgdlxuICAgICAgfCBOb2Rle2x9IC0+IG1pbl9lbHRfb3B0IGxcblxuICAgIGxldCByZWMgbWF4X2VsdCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IHJhaXNlIE5vdF9mb3VuZFxuICAgICAgfCBOb2Rle3Y7IHI9RW1wdHl9IC0+IHZcbiAgICAgIHwgTm9kZXtyfSAtPiBtYXhfZWx0IHJcblxuICAgIGxldCByZWMgbWF4X2VsdF9vcHQgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiBOb25lXG4gICAgICB8IE5vZGV7djsgcj1FbXB0eX0gLT4gU29tZSB2XG4gICAgICB8IE5vZGV7cn0gLT4gbWF4X2VsdF9vcHQgclxuXG4gICAgKCogUmVtb3ZlIHRoZSBzbWFsbGVzdCBlbGVtZW50IG9mIHRoZSBnaXZlbiBzZXQgKilcblxuICAgIGxldCByZWMgcmVtb3ZlX21pbl9lbHQgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiBpbnZhbGlkX2FyZyBcIlNldC5yZW1vdmVfbWluX2VsdFwiXG4gICAgICB8IE5vZGV7bD1FbXB0eTsgcn0gLT4gclxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IC0+IGJhbCAocmVtb3ZlX21pbl9lbHQgbCkgdiByXG5cbiAgICAoKiBNZXJnZSB0d28gdHJlZXMgbCBhbmQgciBpbnRvIG9uZS5cbiAgICAgICBBbGwgZWxlbWVudHMgb2YgbCBtdXN0IHByZWNlZGUgdGhlIGVsZW1lbnRzIG9mIHIuXG4gICAgICAgQXNzdW1lIHwgaGVpZ2h0IGwgLSBoZWlnaHQgciB8IDw9IDIuICopXG5cbiAgICBsZXQgbWVyZ2UgdDEgdDIgPVxuICAgICAgbWF0Y2ggKHQxLCB0Mikgd2l0aFxuICAgICAgICAoRW1wdHksIHQpIC0+IHRcbiAgICAgIHwgKHQsIEVtcHR5KSAtPiB0XG4gICAgICB8IChfLCBfKSAtPiBiYWwgdDEgKG1pbl9lbHQgdDIpIChyZW1vdmVfbWluX2VsdCB0MilcblxuICAgICgqIE1lcmdlIHR3byB0cmVlcyBsIGFuZCByIGludG8gb25lLlxuICAgICAgIEFsbCBlbGVtZW50cyBvZiBsIG11c3QgcHJlY2VkZSB0aGUgZWxlbWVudHMgb2Ygci5cbiAgICAgICBObyBhc3N1bXB0aW9uIG9uIHRoZSBoZWlnaHRzIG9mIGwgYW5kIHIuICopXG5cbiAgICBsZXQgY29uY2F0IHQxIHQyID1cbiAgICAgIG1hdGNoICh0MSwgdDIpIHdpdGhcbiAgICAgICAgKEVtcHR5LCB0KSAtPiB0XG4gICAgICB8ICh0LCBFbXB0eSkgLT4gdFxuICAgICAgfCAoXywgXykgLT4gam9pbiB0MSAobWluX2VsdCB0MikgKHJlbW92ZV9taW5fZWx0IHQyKVxuXG4gICAgKCogU3BsaXR0aW5nLiAgc3BsaXQgeCBzIHJldHVybnMgYSB0cmlwbGUgKGwsIHByZXNlbnQsIHIpIHdoZXJlXG4gICAgICAgIC0gbCBpcyB0aGUgc2V0IG9mIGVsZW1lbnRzIG9mIHMgdGhhdCBhcmUgPCB4XG4gICAgICAgIC0gciBpcyB0aGUgc2V0IG9mIGVsZW1lbnRzIG9mIHMgdGhhdCBhcmUgPiB4XG4gICAgICAgIC0gcHJlc2VudCBpcyBmYWxzZSBpZiBzIGNvbnRhaW5zIG5vIGVsZW1lbnQgZXF1YWwgdG8geCxcbiAgICAgICAgICBvciB0cnVlIGlmIHMgY29udGFpbnMgYW4gZWxlbWVudCBlcXVhbCB0byB4LiAqKVxuXG4gICAgbGV0IHJlYyBzcGxpdCB4ID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICAoRW1wdHksIGZhbHNlLCBFbXB0eSlcbiAgICAgIHwgTm9kZXtsOyB2OyByfSAtPlxuICAgICAgICAgIGxldCBjID0gT3JkLmNvbXBhcmUgeCB2IGluXG4gICAgICAgICAgaWYgYyA9IDAgdGhlbiAobCwgdHJ1ZSwgcilcbiAgICAgICAgICBlbHNlIGlmIGMgPCAwIHRoZW5cbiAgICAgICAgICAgIGxldCAobGwsIHByZXMsIHJsKSA9IHNwbGl0IHggbCBpbiAobGwsIHByZXMsIGpvaW4gcmwgdiByKVxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGxldCAobHIsIHByZXMsIHJyKSA9IHNwbGl0IHggciBpbiAoam9pbiBsIHYgbHIsIHByZXMsIHJyKVxuXG4gICAgKCogSW1wbGVtZW50YXRpb24gb2YgdGhlIHNldCBvcGVyYXRpb25zICopXG5cbiAgICBsZXQgZW1wdHkgPSBFbXB0eVxuXG4gICAgbGV0IGlzX2VtcHR5ID0gZnVuY3Rpb24gRW1wdHkgLT4gdHJ1ZSB8IF8gLT4gZmFsc2VcblxuICAgIGxldCByZWMgbWVtIHggPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiBmYWxzZVxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IC0+XG4gICAgICAgICAgbGV0IGMgPSBPcmQuY29tcGFyZSB4IHYgaW5cbiAgICAgICAgICBjID0gMCB8fCBtZW0geCAoaWYgYyA8IDAgdGhlbiBsIGVsc2UgcilcblxuICAgIGxldCByZWMgcmVtb3ZlIHggPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiBFbXB0eVxuICAgICAgfCAoTm9kZXtsOyB2OyByfSBhcyB0KSAtPlxuICAgICAgICAgIGxldCBjID0gT3JkLmNvbXBhcmUgeCB2IGluXG4gICAgICAgICAgaWYgYyA9IDAgdGhlbiBtZXJnZSBsIHJcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBpZiBjIDwgMCB0aGVuXG4gICAgICAgICAgICAgIGxldCBsbCA9IHJlbW92ZSB4IGwgaW5cbiAgICAgICAgICAgICAgaWYgbCA9PSBsbCB0aGVuIHRcbiAgICAgICAgICAgICAgZWxzZSBiYWwgbGwgdiByXG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgIGxldCByciA9IHJlbW92ZSB4IHIgaW5cbiAgICAgICAgICAgICAgaWYgciA9PSByciB0aGVuIHRcbiAgICAgICAgICAgICAgZWxzZSBiYWwgbCB2IHJyXG5cbiAgICBsZXQgcmVjIHVuaW9uIHMxIHMyID1cbiAgICAgIG1hdGNoIChzMSwgczIpIHdpdGhcbiAgICAgICAgKEVtcHR5LCB0MikgLT4gdDJcbiAgICAgIHwgKHQxLCBFbXB0eSkgLT4gdDFcbiAgICAgIHwgKE5vZGV7bD1sMTsgdj12MTsgcj1yMTsgaD1oMX0sIE5vZGV7bD1sMjsgdj12Mjsgcj1yMjsgaD1oMn0pIC0+XG4gICAgICAgICAgaWYgaDEgPj0gaDIgdGhlblxuICAgICAgICAgICAgaWYgaDIgPSAxIHRoZW4gYWRkIHYyIHMxIGVsc2UgYmVnaW5cbiAgICAgICAgICAgICAgbGV0IChsMiwgXywgcjIpID0gc3BsaXQgdjEgczIgaW5cbiAgICAgICAgICAgICAgam9pbiAodW5pb24gbDEgbDIpIHYxICh1bmlvbiByMSByMilcbiAgICAgICAgICAgIGVuZFxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGlmIGgxID0gMSB0aGVuIGFkZCB2MSBzMiBlbHNlIGJlZ2luXG4gICAgICAgICAgICAgIGxldCAobDEsIF8sIHIxKSA9IHNwbGl0IHYyIHMxIGluXG4gICAgICAgICAgICAgIGpvaW4gKHVuaW9uIGwxIGwyKSB2MiAodW5pb24gcjEgcjIpXG4gICAgICAgICAgICBlbmRcblxuICAgIGxldCByZWMgaW50ZXIgczEgczIgPVxuICAgICAgbWF0Y2ggKHMxLCBzMikgd2l0aFxuICAgICAgICAoRW1wdHksIF8pIC0+IEVtcHR5XG4gICAgICB8IChfLCBFbXB0eSkgLT4gRW1wdHlcbiAgICAgIHwgKE5vZGV7bD1sMTsgdj12MTsgcj1yMX0sIHQyKSAtPlxuICAgICAgICAgIG1hdGNoIHNwbGl0IHYxIHQyIHdpdGhcbiAgICAgICAgICAgIChsMiwgZmFsc2UsIHIyKSAtPlxuICAgICAgICAgICAgICBjb25jYXQgKGludGVyIGwxIGwyKSAoaW50ZXIgcjEgcjIpXG4gICAgICAgICAgfCAobDIsIHRydWUsIHIyKSAtPlxuICAgICAgICAgICAgICBqb2luIChpbnRlciBsMSBsMikgdjEgKGludGVyIHIxIHIyKVxuXG4gICAgKCogU2FtZSBhcyBzcGxpdCwgYnV0IGNvbXB1dGUgdGhlIGxlZnQgYW5kIHJpZ2h0IHN1YnRyZWVzXG4gICAgICAgb25seSBpZiB0aGUgcGl2b3QgZWxlbWVudCBpcyBub3QgaW4gdGhlIHNldC4gIFRoZSByaWdodCBzdWJ0cmVlXG4gICAgICAgaXMgY29tcHV0ZWQgb24gZGVtYW5kLiAqKVxuXG4gICAgdHlwZSBzcGxpdF9iaXMgPVxuICAgICAgfCBGb3VuZFxuICAgICAgfCBOb3RGb3VuZCBvZiB0ICogKHVuaXQgLT4gdClcblxuICAgIGxldCByZWMgc3BsaXRfYmlzIHggPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgIE5vdEZvdW5kIChFbXB0eSwgKGZ1biAoKSAtPiBFbXB0eSkpXG4gICAgICB8IE5vZGV7bDsgdjsgcjsgX30gLT5cbiAgICAgICAgICBsZXQgYyA9IE9yZC5jb21wYXJlIHggdiBpblxuICAgICAgICAgIGlmIGMgPSAwIHRoZW4gRm91bmRcbiAgICAgICAgICBlbHNlIGlmIGMgPCAwIHRoZW5cbiAgICAgICAgICAgIG1hdGNoIHNwbGl0X2JpcyB4IGwgd2l0aFxuICAgICAgICAgICAgfCBGb3VuZCAtPiBGb3VuZFxuICAgICAgICAgICAgfCBOb3RGb3VuZCAobGwsIHJsKSAtPiBOb3RGb3VuZCAobGwsIChmdW4gKCkgLT4gam9pbiAocmwgKCkpIHYgcikpXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgbWF0Y2ggc3BsaXRfYmlzIHggciB3aXRoXG4gICAgICAgICAgICB8IEZvdW5kIC0+IEZvdW5kXG4gICAgICAgICAgICB8IE5vdEZvdW5kIChsciwgcnIpIC0+IE5vdEZvdW5kIChqb2luIGwgdiBsciwgcnIpXG5cbiAgICBsZXQgcmVjIGRpc2pvaW50IHMxIHMyID1cbiAgICAgIG1hdGNoIChzMSwgczIpIHdpdGhcbiAgICAgICAgKEVtcHR5LCBfKSB8IChfLCBFbXB0eSkgLT4gdHJ1ZVxuICAgICAgfCAoTm9kZXtsPWwxOyB2PXYxOyByPXIxfSwgdDIpIC0+XG4gICAgICAgICAgaWYgczEgPT0gczIgdGhlbiBmYWxzZVxuICAgICAgICAgIGVsc2UgbWF0Y2ggc3BsaXRfYmlzIHYxIHQyIHdpdGhcbiAgICAgICAgICAgICAgTm90Rm91bmQobDIsIHIyKSAtPiBkaXNqb2ludCBsMSBsMiAmJiBkaXNqb2ludCByMSAocjIgKCkpXG4gICAgICAgICAgICB8IEZvdW5kIC0+IGZhbHNlXG5cbiAgICBsZXQgcmVjIGRpZmYgczEgczIgPVxuICAgICAgbWF0Y2ggKHMxLCBzMikgd2l0aFxuICAgICAgICAoRW1wdHksIF8pIC0+IEVtcHR5XG4gICAgICB8ICh0MSwgRW1wdHkpIC0+IHQxXG4gICAgICB8IChOb2Rle2w9bDE7IHY9djE7IHI9cjF9LCB0MikgLT5cbiAgICAgICAgICBtYXRjaCBzcGxpdCB2MSB0MiB3aXRoXG4gICAgICAgICAgICAobDIsIGZhbHNlLCByMikgLT5cbiAgICAgICAgICAgICAgam9pbiAoZGlmZiBsMSBsMikgdjEgKGRpZmYgcjEgcjIpXG4gICAgICAgICAgfCAobDIsIHRydWUsIHIyKSAtPlxuICAgICAgICAgICAgICBjb25jYXQgKGRpZmYgbDEgbDIpIChkaWZmIHIxIHIyKVxuXG4gICAgdHlwZSBlbnVtZXJhdGlvbiA9IEVuZCB8IE1vcmUgb2YgZWx0ICogdCAqIGVudW1lcmF0aW9uXG5cbiAgICBsZXQgcmVjIGNvbnNfZW51bSBzIGUgPVxuICAgICAgbWF0Y2ggcyB3aXRoXG4gICAgICAgIEVtcHR5IC0+IGVcbiAgICAgIHwgTm9kZXtsOyB2OyByfSAtPiBjb25zX2VudW0gbCAoTW9yZSh2LCByLCBlKSlcblxuICAgIGxldCByZWMgY29tcGFyZV9hdXggZTEgZTIgPVxuICAgICAgICBtYXRjaCAoZTEsIGUyKSB3aXRoXG4gICAgICAgIChFbmQsIEVuZCkgLT4gMFxuICAgICAgfCAoRW5kLCBfKSAgLT4gLTFcbiAgICAgIHwgKF8sIEVuZCkgLT4gMVxuICAgICAgfCAoTW9yZSh2MSwgcjEsIGUxKSwgTW9yZSh2MiwgcjIsIGUyKSkgLT5cbiAgICAgICAgICBsZXQgYyA9IE9yZC5jb21wYXJlIHYxIHYyIGluXG4gICAgICAgICAgaWYgYyA8PiAwXG4gICAgICAgICAgdGhlbiBjXG4gICAgICAgICAgZWxzZSBjb21wYXJlX2F1eCAoY29uc19lbnVtIHIxIGUxKSAoY29uc19lbnVtIHIyIGUyKVxuXG4gICAgbGV0IGNvbXBhcmUgczEgczIgPVxuICAgICAgY29tcGFyZV9hdXggKGNvbnNfZW51bSBzMSBFbmQpIChjb25zX2VudW0gczIgRW5kKVxuXG4gICAgbGV0IGVxdWFsIHMxIHMyID1cbiAgICAgIGNvbXBhcmUgczEgczIgPSAwXG5cbiAgICBsZXQgcmVjIHN1YnNldCBzMSBzMiA9XG4gICAgICBtYXRjaCAoczEsIHMyKSB3aXRoXG4gICAgICAgIEVtcHR5LCBfIC0+XG4gICAgICAgICAgdHJ1ZVxuICAgICAgfCBfLCBFbXB0eSAtPlxuICAgICAgICAgIGZhbHNlXG4gICAgICB8IE5vZGUge2w9bDE7IHY9djE7IHI9cjF9LCAoTm9kZSB7bD1sMjsgdj12Mjsgcj1yMn0gYXMgdDIpIC0+XG4gICAgICAgICAgbGV0IGMgPSBPcmQuY29tcGFyZSB2MSB2MiBpblxuICAgICAgICAgIGlmIGMgPSAwIHRoZW5cbiAgICAgICAgICAgIHN1YnNldCBsMSBsMiAmJiBzdWJzZXQgcjEgcjJcbiAgICAgICAgICBlbHNlIGlmIGMgPCAwIHRoZW5cbiAgICAgICAgICAgIHN1YnNldCAoTm9kZSB7bD1sMTsgdj12MTsgcj1FbXB0eTsgaD0wfSkgbDIgJiYgc3Vic2V0IHIxIHQyXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgc3Vic2V0IChOb2RlIHtsPUVtcHR5OyB2PXYxOyByPXIxOyBoPTB9KSByMiAmJiBzdWJzZXQgbDEgdDJcblxuICAgIGxldCByZWMgaXRlciBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gKClcbiAgICAgIHwgTm9kZXtsOyB2OyByfSAtPiBpdGVyIGYgbDsgZiB2OyBpdGVyIGYgclxuXG4gICAgbGV0IHJlYyBmb2xkIGYgcyBhY2N1ID1cbiAgICAgIG1hdGNoIHMgd2l0aFxuICAgICAgICBFbXB0eSAtPiBhY2N1XG4gICAgICB8IE5vZGV7bDsgdjsgcn0gLT4gZm9sZCBmIHIgKGYgdiAoZm9sZCBmIGwgYWNjdSkpXG5cbiAgICBsZXQgcmVjIGZvcl9hbGwgcCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IHRydWVcbiAgICAgIHwgTm9kZXtsOyB2OyByfSAtPiBwIHYgJiYgZm9yX2FsbCBwIGwgJiYgZm9yX2FsbCBwIHJcblxuICAgIGxldCByZWMgZXhpc3RzIHAgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiBmYWxzZVxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IC0+IHAgdiB8fCBleGlzdHMgcCBsIHx8IGV4aXN0cyBwIHJcblxuICAgIGxldCByZWMgZmlsdGVyIHAgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiBFbXB0eVxuICAgICAgfCAoTm9kZXtsOyB2OyByfSkgYXMgdCAtPlxuICAgICAgICAgICgqIGNhbGwgW3BdIGluIHRoZSBleHBlY3RlZCBsZWZ0LXRvLXJpZ2h0IG9yZGVyICopXG4gICAgICAgICAgbGV0IGwnID0gZmlsdGVyIHAgbCBpblxuICAgICAgICAgIGxldCBwdiA9IHAgdiBpblxuICAgICAgICAgIGxldCByJyA9IGZpbHRlciBwIHIgaW5cbiAgICAgICAgICBpZiBwdiB0aGVuXG4gICAgICAgICAgICBpZiBsPT1sJyAmJiByPT1yJyB0aGVuIHQgZWxzZSBqb2luIGwnIHYgcidcbiAgICAgICAgICBlbHNlIGNvbmNhdCBsJyByJ1xuXG4gICAgbGV0IHJlYyBwYXJ0aXRpb24gcCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IChFbXB0eSwgRW1wdHkpXG4gICAgICB8IE5vZGV7bDsgdjsgcn0gLT5cbiAgICAgICAgICAoKiBjYWxsIFtwXSBpbiB0aGUgZXhwZWN0ZWQgbGVmdC10by1yaWdodCBvcmRlciAqKVxuICAgICAgICAgIGxldCAobHQsIGxmKSA9IHBhcnRpdGlvbiBwIGwgaW5cbiAgICAgICAgICBsZXQgcHYgPSBwIHYgaW5cbiAgICAgICAgICBsZXQgKHJ0LCByZikgPSBwYXJ0aXRpb24gcCByIGluXG4gICAgICAgICAgaWYgcHZcbiAgICAgICAgICB0aGVuIChqb2luIGx0IHYgcnQsIGNvbmNhdCBsZiByZilcbiAgICAgICAgICBlbHNlIChjb25jYXQgbHQgcnQsIGpvaW4gbGYgdiByZilcblxuICAgIGxldCByZWMgY2FyZGluYWwgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiAwXG4gICAgICB8IE5vZGV7bDsgcn0gLT4gY2FyZGluYWwgbCArIDEgKyBjYXJkaW5hbCByXG5cbiAgICBsZXQgcmVjIGVsZW1lbnRzX2F1eCBhY2N1ID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gYWNjdVxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IC0+IGVsZW1lbnRzX2F1eCAodiA6OiBlbGVtZW50c19hdXggYWNjdSByKSBsXG5cbiAgICBsZXQgZWxlbWVudHMgcyA9XG4gICAgICBlbGVtZW50c19hdXggW10gc1xuXG4gICAgbGV0IGNob29zZSA9IG1pbl9lbHRcblxuICAgIGxldCBjaG9vc2Vfb3B0ID0gbWluX2VsdF9vcHRcblxuICAgIGxldCByZWMgZmluZCB4ID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gcmFpc2UgTm90X2ZvdW5kXG4gICAgICB8IE5vZGV7bDsgdjsgcn0gLT5cbiAgICAgICAgICBsZXQgYyA9IE9yZC5jb21wYXJlIHggdiBpblxuICAgICAgICAgIGlmIGMgPSAwIHRoZW4gdlxuICAgICAgICAgIGVsc2UgZmluZCB4IChpZiBjIDwgMCB0aGVuIGwgZWxzZSByKVxuXG4gICAgbGV0IHJlYyBmaW5kX2ZpcnN0X2F1eCB2MCBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICB2MFxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IC0+XG4gICAgICAgICAgaWYgZiB2IHRoZW5cbiAgICAgICAgICAgIGZpbmRfZmlyc3RfYXV4IHYgZiBsXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgZmluZF9maXJzdF9hdXggdjAgZiByXG5cbiAgICBsZXQgcmVjIGZpbmRfZmlyc3QgZiA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgcmFpc2UgTm90X2ZvdW5kXG4gICAgICB8IE5vZGV7bDsgdjsgcn0gLT5cbiAgICAgICAgICBpZiBmIHYgdGhlblxuICAgICAgICAgICAgZmluZF9maXJzdF9hdXggdiBmIGxcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBmaW5kX2ZpcnN0IGYgclxuXG4gICAgbGV0IHJlYyBmaW5kX2ZpcnN0X29wdF9hdXggdjAgZiA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgU29tZSB2MFxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IC0+XG4gICAgICAgICAgaWYgZiB2IHRoZW5cbiAgICAgICAgICAgIGZpbmRfZmlyc3Rfb3B0X2F1eCB2IGYgbFxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGZpbmRfZmlyc3Rfb3B0X2F1eCB2MCBmIHJcblxuICAgIGxldCByZWMgZmluZF9maXJzdF9vcHQgZiA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgTm9uZVxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IC0+XG4gICAgICAgICAgaWYgZiB2IHRoZW5cbiAgICAgICAgICAgIGZpbmRfZmlyc3Rfb3B0X2F1eCB2IGYgbFxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGZpbmRfZmlyc3Rfb3B0IGYgclxuXG4gICAgbGV0IHJlYyBmaW5kX2xhc3RfYXV4IHYwIGYgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgIHYwXG4gICAgICB8IE5vZGV7bDsgdjsgcn0gLT5cbiAgICAgICAgICBpZiBmIHYgdGhlblxuICAgICAgICAgICAgZmluZF9sYXN0X2F1eCB2IGYgclxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGZpbmRfbGFzdF9hdXggdjAgZiBsXG5cbiAgICBsZXQgcmVjIGZpbmRfbGFzdCBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICByYWlzZSBOb3RfZm91bmRcbiAgICAgIHwgTm9kZXtsOyB2OyByfSAtPlxuICAgICAgICAgIGlmIGYgdiB0aGVuXG4gICAgICAgICAgICBmaW5kX2xhc3RfYXV4IHYgZiByXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgZmluZF9sYXN0IGYgbFxuXG4gICAgbGV0IHJlYyBmaW5kX2xhc3Rfb3B0X2F1eCB2MCBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICBTb21lIHYwXG4gICAgICB8IE5vZGV7bDsgdjsgcn0gLT5cbiAgICAgICAgICBpZiBmIHYgdGhlblxuICAgICAgICAgICAgZmluZF9sYXN0X29wdF9hdXggdiBmIHJcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBmaW5kX2xhc3Rfb3B0X2F1eCB2MCBmIGxcblxuICAgIGxldCByZWMgZmluZF9sYXN0X29wdCBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICBOb25lXG4gICAgICB8IE5vZGV7bDsgdjsgcn0gLT5cbiAgICAgICAgICBpZiBmIHYgdGhlblxuICAgICAgICAgICAgZmluZF9sYXN0X29wdF9hdXggdiBmIHJcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBmaW5kX2xhc3Rfb3B0IGYgbFxuXG4gICAgbGV0IHJlYyBmaW5kX29wdCB4ID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gTm9uZVxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IC0+XG4gICAgICAgICAgbGV0IGMgPSBPcmQuY29tcGFyZSB4IHYgaW5cbiAgICAgICAgICBpZiBjID0gMCB0aGVuIFNvbWUgdlxuICAgICAgICAgIGVsc2UgZmluZF9vcHQgeCAoaWYgYyA8IDAgdGhlbiBsIGVsc2UgcilcblxuICAgIGxldCB0cnlfam9pbiBsIHYgciA9XG4gICAgICAoKiBbam9pbiBsIHYgcl0gY2FuIG9ubHkgYmUgY2FsbGVkIHdoZW4gKGVsZW1lbnRzIG9mIGwgPCB2IDxcbiAgICAgICAgIGVsZW1lbnRzIG9mIHIpOyB1c2UgW3RyeV9qb2luIGwgdiByXSB3aGVuIHRoaXMgcHJvcGVydHkgbWF5XG4gICAgICAgICBub3QgaG9sZCwgYnV0IHlvdSBob3BlIGl0IGRvZXMgaG9sZCBpbiB0aGUgY29tbW9uIGNhc2UgKilcbiAgICAgIGlmIChsID0gRW1wdHkgfHwgT3JkLmNvbXBhcmUgKG1heF9lbHQgbCkgdiA8IDApXG4gICAgICAmJiAociA9IEVtcHR5IHx8IE9yZC5jb21wYXJlIHYgKG1pbl9lbHQgcikgPCAwKVxuICAgICAgdGhlbiBqb2luIGwgdiByXG4gICAgICBlbHNlIHVuaW9uIGwgKGFkZCB2IHIpXG5cbiAgICBsZXQgcmVjIG1hcCBmID0gZnVuY3Rpb25cbiAgICAgIHwgRW1wdHkgLT4gRW1wdHlcbiAgICAgIHwgTm9kZXtsOyB2OyByfSBhcyB0IC0+XG4gICAgICAgICAoKiBlbmZvcmNlIGxlZnQtdG8tcmlnaHQgZXZhbHVhdGlvbiBvcmRlciAqKVxuICAgICAgICAgbGV0IGwnID0gbWFwIGYgbCBpblxuICAgICAgICAgbGV0IHYnID0gZiB2IGluXG4gICAgICAgICBsZXQgcicgPSBtYXAgZiByIGluXG4gICAgICAgICBpZiBsID09IGwnICYmIHYgPT0gdicgJiYgciA9PSByJyB0aGVuIHRcbiAgICAgICAgIGVsc2UgdHJ5X2pvaW4gbCcgdicgcidcblxuICAgIGxldCB0cnlfY29uY2F0IHQxIHQyID1cbiAgICAgIG1hdGNoICh0MSwgdDIpIHdpdGhcbiAgICAgICAgKEVtcHR5LCB0KSAtPiB0XG4gICAgICB8ICh0LCBFbXB0eSkgLT4gdFxuICAgICAgfCAoXywgXykgLT4gdHJ5X2pvaW4gdDEgKG1pbl9lbHQgdDIpIChyZW1vdmVfbWluX2VsdCB0MilcblxuICAgIGxldCByZWMgZmlsdGVyX21hcCBmID0gZnVuY3Rpb25cbiAgICAgIHwgRW1wdHkgLT4gRW1wdHlcbiAgICAgIHwgTm9kZXtsOyB2OyByfSBhcyB0IC0+XG4gICAgICAgICAoKiBlbmZvcmNlIGxlZnQtdG8tcmlnaHQgZXZhbHVhdGlvbiBvcmRlciAqKVxuICAgICAgICAgbGV0IGwnID0gZmlsdGVyX21hcCBmIGwgaW5cbiAgICAgICAgIGxldCB2JyA9IGYgdiBpblxuICAgICAgICAgbGV0IHInID0gZmlsdGVyX21hcCBmIHIgaW5cbiAgICAgICAgIGJlZ2luIG1hdGNoIHYnIHdpdGhcbiAgICAgICAgICAgfCBTb21lIHYnIC0+XG4gICAgICAgICAgICAgIGlmIGwgPT0gbCcgJiYgdiA9PSB2JyAmJiByID09IHInIHRoZW4gdFxuICAgICAgICAgICAgICBlbHNlIHRyeV9qb2luIGwnIHYnIHInXG4gICAgICAgICAgIHwgTm9uZSAtPlxuICAgICAgICAgICAgICB0cnlfY29uY2F0IGwnIHInXG4gICAgICAgICBlbmRcblxuICAgIGxldCBvZl9zb3J0ZWRfbGlzdCBsID1cbiAgICAgIGxldCByZWMgc3ViIG4gbCA9XG4gICAgICAgIG1hdGNoIG4sIGwgd2l0aFxuICAgICAgICB8IDAsIGwgLT4gRW1wdHksIGxcbiAgICAgICAgfCAxLCB4MCA6OiBsIC0+IE5vZGUge2w9RW1wdHk7IHY9eDA7IHI9RW1wdHk7IGg9MX0sIGxcbiAgICAgICAgfCAyLCB4MCA6OiB4MSA6OiBsIC0+XG4gICAgICAgICAgICBOb2Rle2w9Tm9kZXtsPUVtcHR5OyB2PXgwOyByPUVtcHR5OyBoPTF9OyB2PXgxOyByPUVtcHR5OyBoPTJ9LCBsXG4gICAgICAgIHwgMywgeDAgOjogeDEgOjogeDIgOjogbCAtPlxuICAgICAgICAgICAgTm9kZXtsPU5vZGV7bD1FbXB0eTsgdj14MDsgcj1FbXB0eTsgaD0xfTsgdj14MTtcbiAgICAgICAgICAgICAgICAgcj1Ob2Rle2w9RW1wdHk7IHY9eDI7IHI9RW1wdHk7IGg9MX07IGg9Mn0sIGxcbiAgICAgICAgfCBuLCBsIC0+XG4gICAgICAgICAgbGV0IG5sID0gbiAvIDIgaW5cbiAgICAgICAgICBsZXQgbGVmdCwgbCA9IHN1YiBubCBsIGluXG4gICAgICAgICAgbWF0Y2ggbCB3aXRoXG4gICAgICAgICAgfCBbXSAtPiBhc3NlcnQgZmFsc2VcbiAgICAgICAgICB8IG1pZCA6OiBsIC0+XG4gICAgICAgICAgICBsZXQgcmlnaHQsIGwgPSBzdWIgKG4gLSBubCAtIDEpIGwgaW5cbiAgICAgICAgICAgIGNyZWF0ZSBsZWZ0IG1pZCByaWdodCwgbFxuICAgICAgaW5cbiAgICAgIGZzdCAoc3ViIChMaXN0Lmxlbmd0aCBsKSBsKVxuXG4gICAgbGV0IG9mX2xpc3QgbCA9XG4gICAgICBtYXRjaCBsIHdpdGhcbiAgICAgIHwgW10gLT4gZW1wdHlcbiAgICAgIHwgW3gwXSAtPiBzaW5nbGV0b24geDBcbiAgICAgIHwgW3gwOyB4MV0gLT4gYWRkIHgxIChzaW5nbGV0b24geDApXG4gICAgICB8IFt4MDsgeDE7IHgyXSAtPiBhZGQgeDIgKGFkZCB4MSAoc2luZ2xldG9uIHgwKSlcbiAgICAgIHwgW3gwOyB4MTsgeDI7IHgzXSAtPiBhZGQgeDMgKGFkZCB4MiAoYWRkIHgxIChzaW5nbGV0b24geDApKSlcbiAgICAgIHwgW3gwOyB4MTsgeDI7IHgzOyB4NF0gLT4gYWRkIHg0IChhZGQgeDMgKGFkZCB4MiAoYWRkIHgxIChzaW5nbGV0b24geDApKSkpXG4gICAgICB8IF8gLT4gb2Zfc29ydGVkX2xpc3QgKExpc3Quc29ydF91bmlxIE9yZC5jb21wYXJlIGwpXG5cbiAgICBsZXQgYWRkX3NlcSBpIG0gPVxuICAgICAgU2VxLmZvbGRfbGVmdCAoZnVuIHMgeCAtPiBhZGQgeCBzKSBtIGlcblxuICAgIGxldCBvZl9zZXEgaSA9IGFkZF9zZXEgaSBlbXB0eVxuXG4gICAgbGV0IHJlYyBzZXFfb2ZfZW51bV8gYyAoKSA9IG1hdGNoIGMgd2l0aFxuICAgICAgfCBFbmQgLT4gU2VxLk5pbFxuICAgICAgfCBNb3JlICh4LCB0LCByZXN0KSAtPiBTZXEuQ29ucyAoeCwgc2VxX29mX2VudW1fIChjb25zX2VudW0gdCByZXN0KSlcblxuICAgIGxldCB0b19zZXEgYyA9IHNlcV9vZl9lbnVtXyAoY29uc19lbnVtIGMgRW5kKVxuXG4gICAgbGV0IHJlYyBzbm9jX2VudW0gcyBlID1cbiAgICAgIG1hdGNoIHMgd2l0aFxuICAgICAgICBFbXB0eSAtPiBlXG4gICAgICB8IE5vZGV7bDsgdjsgcn0gLT4gc25vY19lbnVtIHIgKE1vcmUodiwgbCwgZSkpXG5cbiAgICBsZXQgcmVjIHJldl9zZXFfb2ZfZW51bV8gYyAoKSA9IG1hdGNoIGMgd2l0aFxuICAgICAgfCBFbmQgLT4gU2VxLk5pbFxuICAgICAgfCBNb3JlICh4LCB0LCByZXN0KSAtPiBTZXEuQ29ucyAoeCwgcmV2X3NlcV9vZl9lbnVtXyAoc25vY19lbnVtIHQgcmVzdCkpXG5cbiAgICBsZXQgdG9fcmV2X3NlcSBjID0gcmV2X3NlcV9vZl9lbnVtXyAoc25vY19lbnVtIGMgRW5kKVxuXG4gICAgbGV0IHRvX3NlcV9mcm9tIGxvdyBzID1cbiAgICAgIGxldCByZWMgYXV4IGxvdyBzIGMgPSBtYXRjaCBzIHdpdGhcbiAgICAgICAgfCBFbXB0eSAtPiBjXG4gICAgICAgIHwgTm9kZSB7bDsgcjsgdjsgX30gLT5cbiAgICAgICAgICAgIGJlZ2luIG1hdGNoIE9yZC5jb21wYXJlIHYgbG93IHdpdGhcbiAgICAgICAgICAgICAgfCAwIC0+IE1vcmUgKHYsIHIsIGMpXG4gICAgICAgICAgICAgIHwgbiB3aGVuIG48MCAtPiBhdXggbG93IHIgY1xuICAgICAgICAgICAgICB8IF8gLT4gYXV4IGxvdyBsIChNb3JlICh2LCByLCBjKSlcbiAgICAgICAgICAgIGVuZFxuICAgICAgaW5cbiAgICAgIHNlcV9vZl9lbnVtXyAoYXV4IGxvdyBzIEVuZClcbiAgZW5kXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbm1vZHVsZSB0eXBlIE9yZGVyZWRUeXBlID1cbiAgc2lnXG4gICAgdHlwZSB0XG4gICAgdmFsIGNvbXBhcmU6IHQgLT4gdCAtPiBpbnRcbiAgZW5kXG5cbm1vZHVsZSB0eXBlIFMgPVxuICBzaWdcbiAgICB0eXBlIGtleVxuICAgIHR5cGUgISsnYSB0XG4gICAgdmFsIGVtcHR5OiAnYSB0XG4gICAgdmFsIGlzX2VtcHR5OiAnYSB0IC0+IGJvb2xcbiAgICB2YWwgbWVtOiAga2V5IC0+ICdhIHQgLT4gYm9vbFxuICAgIHZhbCBhZGQ6IGtleSAtPiAnYSAtPiAnYSB0IC0+ICdhIHRcbiAgICB2YWwgdXBkYXRlOiBrZXkgLT4gKCdhIG9wdGlvbiAtPiAnYSBvcHRpb24pIC0+ICdhIHQgLT4gJ2EgdFxuICAgIHZhbCBzaW5nbGV0b246IGtleSAtPiAnYSAtPiAnYSB0XG4gICAgdmFsIHJlbW92ZToga2V5IC0+ICdhIHQgLT4gJ2EgdFxuICAgIHZhbCBtZXJnZTpcbiAgICAgICAgICAoa2V5IC0+ICdhIG9wdGlvbiAtPiAnYiBvcHRpb24gLT4gJ2Mgb3B0aW9uKSAtPiAnYSB0IC0+ICdiIHQgLT4gJ2MgdFxuICAgIHZhbCB1bmlvbjogKGtleSAtPiAnYSAtPiAnYSAtPiAnYSBvcHRpb24pIC0+ICdhIHQgLT4gJ2EgdCAtPiAnYSB0XG4gICAgdmFsIGNvbXBhcmU6ICgnYSAtPiAnYSAtPiBpbnQpIC0+ICdhIHQgLT4gJ2EgdCAtPiBpbnRcbiAgICB2YWwgZXF1YWw6ICgnYSAtPiAnYSAtPiBib29sKSAtPiAnYSB0IC0+ICdhIHQgLT4gYm9vbFxuICAgIHZhbCBpdGVyOiAoa2V5IC0+ICdhIC0+IHVuaXQpIC0+ICdhIHQgLT4gdW5pdFxuICAgIHZhbCBmb2xkOiAoa2V5IC0+ICdhIC0+ICdiIC0+ICdiKSAtPiAnYSB0IC0+ICdiIC0+ICdiXG4gICAgdmFsIGZvcl9hbGw6IChrZXkgLT4gJ2EgLT4gYm9vbCkgLT4gJ2EgdCAtPiBib29sXG4gICAgdmFsIGV4aXN0czogKGtleSAtPiAnYSAtPiBib29sKSAtPiAnYSB0IC0+IGJvb2xcbiAgICB2YWwgZmlsdGVyOiAoa2V5IC0+ICdhIC0+IGJvb2wpIC0+ICdhIHQgLT4gJ2EgdFxuICAgIHZhbCBmaWx0ZXJfbWFwOiAoa2V5IC0+ICdhIC0+ICdiIG9wdGlvbikgLT4gJ2EgdCAtPiAnYiB0XG4gICAgdmFsIHBhcnRpdGlvbjogKGtleSAtPiAnYSAtPiBib29sKSAtPiAnYSB0IC0+ICdhIHQgKiAnYSB0XG4gICAgdmFsIGNhcmRpbmFsOiAnYSB0IC0+IGludFxuICAgIHZhbCBiaW5kaW5nczogJ2EgdCAtPiAoa2V5ICogJ2EpIGxpc3RcbiAgICB2YWwgbWluX2JpbmRpbmc6ICdhIHQgLT4gKGtleSAqICdhKVxuICAgIHZhbCBtaW5fYmluZGluZ19vcHQ6ICdhIHQgLT4gKGtleSAqICdhKSBvcHRpb25cbiAgICB2YWwgbWF4X2JpbmRpbmc6ICdhIHQgLT4gKGtleSAqICdhKVxuICAgIHZhbCBtYXhfYmluZGluZ19vcHQ6ICdhIHQgLT4gKGtleSAqICdhKSBvcHRpb25cbiAgICB2YWwgY2hvb3NlOiAnYSB0IC0+IChrZXkgKiAnYSlcbiAgICB2YWwgY2hvb3NlX29wdDogJ2EgdCAtPiAoa2V5ICogJ2EpIG9wdGlvblxuICAgIHZhbCBzcGxpdDoga2V5IC0+ICdhIHQgLT4gJ2EgdCAqICdhIG9wdGlvbiAqICdhIHRcbiAgICB2YWwgZmluZDoga2V5IC0+ICdhIHQgLT4gJ2FcbiAgICB2YWwgZmluZF9vcHQ6IGtleSAtPiAnYSB0IC0+ICdhIG9wdGlvblxuICAgIHZhbCBmaW5kX2ZpcnN0OiAoa2V5IC0+IGJvb2wpIC0+ICdhIHQgLT4ga2V5ICogJ2FcbiAgICB2YWwgZmluZF9maXJzdF9vcHQ6IChrZXkgLT4gYm9vbCkgLT4gJ2EgdCAtPiAoa2V5ICogJ2EpIG9wdGlvblxuICAgIHZhbCBmaW5kX2xhc3Q6IChrZXkgLT4gYm9vbCkgLT4gJ2EgdCAtPiBrZXkgKiAnYVxuICAgIHZhbCBmaW5kX2xhc3Rfb3B0OiAoa2V5IC0+IGJvb2wpIC0+ICdhIHQgLT4gKGtleSAqICdhKSBvcHRpb25cbiAgICB2YWwgbWFwOiAoJ2EgLT4gJ2IpIC0+ICdhIHQgLT4gJ2IgdFxuICAgIHZhbCBtYXBpOiAoa2V5IC0+ICdhIC0+ICdiKSAtPiAnYSB0IC0+ICdiIHRcbiAgICB2YWwgdG9fc2VxIDogJ2EgdCAtPiAoa2V5ICogJ2EpIFNlcS50XG4gICAgdmFsIHRvX3Jldl9zZXEgOiAnYSB0IC0+IChrZXkgKiAnYSkgU2VxLnRcbiAgICB2YWwgdG9fc2VxX2Zyb20gOiBrZXkgLT4gJ2EgdCAtPiAoa2V5ICogJ2EpIFNlcS50XG4gICAgdmFsIGFkZF9zZXEgOiAoa2V5ICogJ2EpIFNlcS50IC0+ICdhIHQgLT4gJ2EgdFxuICAgIHZhbCBvZl9zZXEgOiAoa2V5ICogJ2EpIFNlcS50IC0+ICdhIHRcbiAgZW5kXG5cbm1vZHVsZSBNYWtlKE9yZDogT3JkZXJlZFR5cGUpID0gc3RydWN0XG5cbiAgICB0eXBlIGtleSA9IE9yZC50XG5cbiAgICB0eXBlICdhIHQgPVxuICAgICAgICBFbXB0eVxuICAgICAgfCBOb2RlIG9mIHtsOidhIHQ7IHY6a2V5OyBkOidhOyByOidhIHQ7IGg6aW50fVxuXG4gICAgbGV0IGhlaWdodCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IDBcbiAgICAgIHwgTm9kZSB7aH0gLT4gaFxuXG4gICAgbGV0IGNyZWF0ZSBsIHggZCByID1cbiAgICAgIGxldCBobCA9IGhlaWdodCBsIGFuZCBociA9IGhlaWdodCByIGluXG4gICAgICBOb2Rle2w7IHY9eDsgZDsgcjsgaD0oaWYgaGwgPj0gaHIgdGhlbiBobCArIDEgZWxzZSBociArIDEpfVxuXG4gICAgbGV0IHNpbmdsZXRvbiB4IGQgPSBOb2Rle2w9RW1wdHk7IHY9eDsgZDsgcj1FbXB0eTsgaD0xfVxuXG4gICAgbGV0IGJhbCBsIHggZCByID1cbiAgICAgIGxldCBobCA9IG1hdGNoIGwgd2l0aCBFbXB0eSAtPiAwIHwgTm9kZSB7aH0gLT4gaCBpblxuICAgICAgbGV0IGhyID0gbWF0Y2ggciB3aXRoIEVtcHR5IC0+IDAgfCBOb2RlIHtofSAtPiBoIGluXG4gICAgICBpZiBobCA+IGhyICsgMiB0aGVuIGJlZ2luXG4gICAgICAgIG1hdGNoIGwgd2l0aFxuICAgICAgICAgIEVtcHR5IC0+IGludmFsaWRfYXJnIFwiTWFwLmJhbFwiXG4gICAgICAgIHwgTm9kZXtsPWxsOyB2PWx2OyBkPWxkOyByPWxyfSAtPlxuICAgICAgICAgICAgaWYgaGVpZ2h0IGxsID49IGhlaWdodCBsciB0aGVuXG4gICAgICAgICAgICAgIGNyZWF0ZSBsbCBsdiBsZCAoY3JlYXRlIGxyIHggZCByKVxuICAgICAgICAgICAgZWxzZSBiZWdpblxuICAgICAgICAgICAgICBtYXRjaCBsciB3aXRoXG4gICAgICAgICAgICAgICAgRW1wdHkgLT4gaW52YWxpZF9hcmcgXCJNYXAuYmFsXCJcbiAgICAgICAgICAgICAgfCBOb2Rle2w9bHJsOyB2PWxydjsgZD1scmQ7IHI9bHJyfS0+XG4gICAgICAgICAgICAgICAgICBjcmVhdGUgKGNyZWF0ZSBsbCBsdiBsZCBscmwpIGxydiBscmQgKGNyZWF0ZSBscnIgeCBkIHIpXG4gICAgICAgICAgICBlbmRcbiAgICAgIGVuZCBlbHNlIGlmIGhyID4gaGwgKyAyIHRoZW4gYmVnaW5cbiAgICAgICAgbWF0Y2ggciB3aXRoXG4gICAgICAgICAgRW1wdHkgLT4gaW52YWxpZF9hcmcgXCJNYXAuYmFsXCJcbiAgICAgICAgfCBOb2Rle2w9cmw7IHY9cnY7IGQ9cmQ7IHI9cnJ9IC0+XG4gICAgICAgICAgICBpZiBoZWlnaHQgcnIgPj0gaGVpZ2h0IHJsIHRoZW5cbiAgICAgICAgICAgICAgY3JlYXRlIChjcmVhdGUgbCB4IGQgcmwpIHJ2IHJkIHJyXG4gICAgICAgICAgICBlbHNlIGJlZ2luXG4gICAgICAgICAgICAgIG1hdGNoIHJsIHdpdGhcbiAgICAgICAgICAgICAgICBFbXB0eSAtPiBpbnZhbGlkX2FyZyBcIk1hcC5iYWxcIlxuICAgICAgICAgICAgICB8IE5vZGV7bD1ybGw7IHY9cmx2OyBkPXJsZDsgcj1ybHJ9IC0+XG4gICAgICAgICAgICAgICAgICBjcmVhdGUgKGNyZWF0ZSBsIHggZCBybGwpIHJsdiBybGQgKGNyZWF0ZSBybHIgcnYgcmQgcnIpXG4gICAgICAgICAgICBlbmRcbiAgICAgIGVuZCBlbHNlXG4gICAgICAgIE5vZGV7bDsgdj14OyBkOyByOyBoPShpZiBobCA+PSBociB0aGVuIGhsICsgMSBlbHNlIGhyICsgMSl9XG5cbiAgICBsZXQgZW1wdHkgPSBFbXB0eVxuXG4gICAgbGV0IGlzX2VtcHR5ID0gZnVuY3Rpb24gRW1wdHkgLT4gdHJ1ZSB8IF8gLT4gZmFsc2VcblxuICAgIGxldCByZWMgYWRkIHggZGF0YSA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgTm9kZXtsPUVtcHR5OyB2PXg7IGQ9ZGF0YTsgcj1FbXB0eTsgaD0xfVxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByOyBofSBhcyBtIC0+XG4gICAgICAgICAgbGV0IGMgPSBPcmQuY29tcGFyZSB4IHYgaW5cbiAgICAgICAgICBpZiBjID0gMCB0aGVuXG4gICAgICAgICAgICBpZiBkID09IGRhdGEgdGhlbiBtIGVsc2UgTm9kZXtsOyB2PXg7IGQ9ZGF0YTsgcjsgaH1cbiAgICAgICAgICBlbHNlIGlmIGMgPCAwIHRoZW5cbiAgICAgICAgICAgIGxldCBsbCA9IGFkZCB4IGRhdGEgbCBpblxuICAgICAgICAgICAgaWYgbCA9PSBsbCB0aGVuIG0gZWxzZSBiYWwgbGwgdiBkIHJcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBsZXQgcnIgPSBhZGQgeCBkYXRhIHIgaW5cbiAgICAgICAgICAgIGlmIHIgPT0gcnIgdGhlbiBtIGVsc2UgYmFsIGwgdiBkIHJyXG5cbiAgICBsZXQgcmVjIGZpbmQgeCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgcmFpc2UgTm90X2ZvdW5kXG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHJ9IC0+XG4gICAgICAgICAgbGV0IGMgPSBPcmQuY29tcGFyZSB4IHYgaW5cbiAgICAgICAgICBpZiBjID0gMCB0aGVuIGRcbiAgICAgICAgICBlbHNlIGZpbmQgeCAoaWYgYyA8IDAgdGhlbiBsIGVsc2UgcilcblxuICAgIGxldCByZWMgZmluZF9maXJzdF9hdXggdjAgZDAgZiA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgKHYwLCBkMClcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcn0gLT5cbiAgICAgICAgICBpZiBmIHYgdGhlblxuICAgICAgICAgICAgZmluZF9maXJzdF9hdXggdiBkIGYgbFxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGZpbmRfZmlyc3RfYXV4IHYwIGQwIGYgclxuXG4gICAgbGV0IHJlYyBmaW5kX2ZpcnN0IGYgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgIHJhaXNlIE5vdF9mb3VuZFxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSAtPlxuICAgICAgICAgIGlmIGYgdiB0aGVuXG4gICAgICAgICAgICBmaW5kX2ZpcnN0X2F1eCB2IGQgZiBsXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgZmluZF9maXJzdCBmIHJcblxuICAgIGxldCByZWMgZmluZF9maXJzdF9vcHRfYXV4IHYwIGQwIGYgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgIFNvbWUgKHYwLCBkMClcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcn0gLT5cbiAgICAgICAgICBpZiBmIHYgdGhlblxuICAgICAgICAgICAgZmluZF9maXJzdF9vcHRfYXV4IHYgZCBmIGxcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBmaW5kX2ZpcnN0X29wdF9hdXggdjAgZDAgZiByXG5cbiAgICBsZXQgcmVjIGZpbmRfZmlyc3Rfb3B0IGYgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgIE5vbmVcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcn0gLT5cbiAgICAgICAgICBpZiBmIHYgdGhlblxuICAgICAgICAgICAgZmluZF9maXJzdF9vcHRfYXV4IHYgZCBmIGxcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBmaW5kX2ZpcnN0X29wdCBmIHJcblxuICAgIGxldCByZWMgZmluZF9sYXN0X2F1eCB2MCBkMCBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICAodjAsIGQwKVxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSAtPlxuICAgICAgICAgIGlmIGYgdiB0aGVuXG4gICAgICAgICAgICBmaW5kX2xhc3RfYXV4IHYgZCBmIHJcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBmaW5kX2xhc3RfYXV4IHYwIGQwIGYgbFxuXG4gICAgbGV0IHJlYyBmaW5kX2xhc3QgZiA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgcmFpc2UgTm90X2ZvdW5kXG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHJ9IC0+XG4gICAgICAgICAgaWYgZiB2IHRoZW5cbiAgICAgICAgICAgIGZpbmRfbGFzdF9hdXggdiBkIGYgclxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGZpbmRfbGFzdCBmIGxcblxuICAgIGxldCByZWMgZmluZF9sYXN0X29wdF9hdXggdjAgZDAgZiA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgU29tZSAodjAsIGQwKVxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSAtPlxuICAgICAgICAgIGlmIGYgdiB0aGVuXG4gICAgICAgICAgICBmaW5kX2xhc3Rfb3B0X2F1eCB2IGQgZiByXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgZmluZF9sYXN0X29wdF9hdXggdjAgZDAgZiBsXG5cbiAgICBsZXQgcmVjIGZpbmRfbGFzdF9vcHQgZiA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgTm9uZVxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSAtPlxuICAgICAgICAgIGlmIGYgdiB0aGVuXG4gICAgICAgICAgICBmaW5kX2xhc3Rfb3B0X2F1eCB2IGQgZiByXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgZmluZF9sYXN0X29wdCBmIGxcblxuICAgIGxldCByZWMgZmluZF9vcHQgeCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgTm9uZVxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSAtPlxuICAgICAgICAgIGxldCBjID0gT3JkLmNvbXBhcmUgeCB2IGluXG4gICAgICAgICAgaWYgYyA9IDAgdGhlbiBTb21lIGRcbiAgICAgICAgICBlbHNlIGZpbmRfb3B0IHggKGlmIGMgPCAwIHRoZW4gbCBlbHNlIHIpXG5cbiAgICBsZXQgcmVjIG1lbSB4ID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICBmYWxzZVxuICAgICAgfCBOb2RlIHtsOyB2OyByfSAtPlxuICAgICAgICAgIGxldCBjID0gT3JkLmNvbXBhcmUgeCB2IGluXG4gICAgICAgICAgYyA9IDAgfHwgbWVtIHggKGlmIGMgPCAwIHRoZW4gbCBlbHNlIHIpXG5cbiAgICBsZXQgcmVjIG1pbl9iaW5kaW5nID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gcmFpc2UgTm90X2ZvdW5kXG4gICAgICB8IE5vZGUge2w9RW1wdHk7IHY7IGR9IC0+ICh2LCBkKVxuICAgICAgfCBOb2RlIHtsfSAtPiBtaW5fYmluZGluZyBsXG5cbiAgICBsZXQgcmVjIG1pbl9iaW5kaW5nX29wdCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IE5vbmVcbiAgICAgIHwgTm9kZSB7bD1FbXB0eTsgdjsgZH0gLT4gU29tZSAodiwgZClcbiAgICAgIHwgTm9kZSB7bH0tPiBtaW5fYmluZGluZ19vcHQgbFxuXG4gICAgbGV0IHJlYyBtYXhfYmluZGluZyA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IHJhaXNlIE5vdF9mb3VuZFxuICAgICAgfCBOb2RlIHt2OyBkOyByPUVtcHR5fSAtPiAodiwgZClcbiAgICAgIHwgTm9kZSB7cn0gLT4gbWF4X2JpbmRpbmcgclxuXG4gICAgbGV0IHJlYyBtYXhfYmluZGluZ19vcHQgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiBOb25lXG4gICAgICB8IE5vZGUge3Y7IGQ7IHI9RW1wdHl9IC0+IFNvbWUgKHYsIGQpXG4gICAgICB8IE5vZGUge3J9IC0+IG1heF9iaW5kaW5nX29wdCByXG5cbiAgICBsZXQgcmVjIHJlbW92ZV9taW5fYmluZGluZyA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IGludmFsaWRfYXJnIFwiTWFwLnJlbW92ZV9taW5fZWx0XCJcbiAgICAgIHwgTm9kZSB7bD1FbXB0eTsgcn0gLT4gclxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSAtPiBiYWwgKHJlbW92ZV9taW5fYmluZGluZyBsKSB2IGQgclxuXG4gICAgbGV0IG1lcmdlIHQxIHQyID1cbiAgICAgIG1hdGNoICh0MSwgdDIpIHdpdGhcbiAgICAgICAgKEVtcHR5LCB0KSAtPiB0XG4gICAgICB8ICh0LCBFbXB0eSkgLT4gdFxuICAgICAgfCAoXywgXykgLT5cbiAgICAgICAgICBsZXQgKHgsIGQpID0gbWluX2JpbmRpbmcgdDIgaW5cbiAgICAgICAgICBiYWwgdDEgeCBkIChyZW1vdmVfbWluX2JpbmRpbmcgdDIpXG5cbiAgICBsZXQgcmVjIHJlbW92ZSB4ID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICBFbXB0eVxuICAgICAgfCAoTm9kZSB7bDsgdjsgZDsgcn0gYXMgbSkgLT5cbiAgICAgICAgICBsZXQgYyA9IE9yZC5jb21wYXJlIHggdiBpblxuICAgICAgICAgIGlmIGMgPSAwIHRoZW4gbWVyZ2UgbCByXG4gICAgICAgICAgZWxzZSBpZiBjIDwgMCB0aGVuXG4gICAgICAgICAgICBsZXQgbGwgPSByZW1vdmUgeCBsIGluIGlmIGwgPT0gbGwgdGhlbiBtIGVsc2UgYmFsIGxsIHYgZCByXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgbGV0IHJyID0gcmVtb3ZlIHggciBpbiBpZiByID09IHJyIHRoZW4gbSBlbHNlIGJhbCBsIHYgZCByclxuXG4gICAgbGV0IHJlYyB1cGRhdGUgeCBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICBiZWdpbiBtYXRjaCBmIE5vbmUgd2l0aFxuICAgICAgICAgIHwgTm9uZSAtPiBFbXB0eVxuICAgICAgICAgIHwgU29tZSBkYXRhIC0+IE5vZGV7bD1FbXB0eTsgdj14OyBkPWRhdGE7IHI9RW1wdHk7IGg9MX1cbiAgICAgICAgICBlbmRcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcjsgaH0gYXMgbSAtPlxuICAgICAgICAgIGxldCBjID0gT3JkLmNvbXBhcmUgeCB2IGluXG4gICAgICAgICAgaWYgYyA9IDAgdGhlbiBiZWdpblxuICAgICAgICAgICAgbWF0Y2ggZiAoU29tZSBkKSB3aXRoXG4gICAgICAgICAgICB8IE5vbmUgLT4gbWVyZ2UgbCByXG4gICAgICAgICAgICB8IFNvbWUgZGF0YSAtPlxuICAgICAgICAgICAgICAgIGlmIGQgPT0gZGF0YSB0aGVuIG0gZWxzZSBOb2Rle2w7IHY9eDsgZD1kYXRhOyByOyBofVxuICAgICAgICAgIGVuZCBlbHNlIGlmIGMgPCAwIHRoZW5cbiAgICAgICAgICAgIGxldCBsbCA9IHVwZGF0ZSB4IGYgbCBpblxuICAgICAgICAgICAgaWYgbCA9PSBsbCB0aGVuIG0gZWxzZSBiYWwgbGwgdiBkIHJcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBsZXQgcnIgPSB1cGRhdGUgeCBmIHIgaW5cbiAgICAgICAgICAgIGlmIHIgPT0gcnIgdGhlbiBtIGVsc2UgYmFsIGwgdiBkIHJyXG5cbiAgICBsZXQgcmVjIGl0ZXIgZiA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+ICgpXG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHJ9IC0+XG4gICAgICAgICAgaXRlciBmIGw7IGYgdiBkOyBpdGVyIGYgclxuXG4gICAgbGV0IHJlYyBtYXAgZiA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgRW1wdHlcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcjsgaH0gLT5cbiAgICAgICAgICBsZXQgbCcgPSBtYXAgZiBsIGluXG4gICAgICAgICAgbGV0IGQnID0gZiBkIGluXG4gICAgICAgICAgbGV0IHInID0gbWFwIGYgciBpblxuICAgICAgICAgIE5vZGV7bD1sJzsgdjsgZD1kJzsgcj1yJzsgaH1cblxuICAgIGxldCByZWMgbWFwaSBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICBFbXB0eVxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByOyBofSAtPlxuICAgICAgICAgIGxldCBsJyA9IG1hcGkgZiBsIGluXG4gICAgICAgICAgbGV0IGQnID0gZiB2IGQgaW5cbiAgICAgICAgICBsZXQgcicgPSBtYXBpIGYgciBpblxuICAgICAgICAgIE5vZGV7bD1sJzsgdjsgZD1kJzsgcj1yJzsgaH1cblxuICAgIGxldCByZWMgZm9sZCBmIG0gYWNjdSA9XG4gICAgICBtYXRjaCBtIHdpdGhcbiAgICAgICAgRW1wdHkgLT4gYWNjdVxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSAtPlxuICAgICAgICAgIGZvbGQgZiByIChmIHYgZCAoZm9sZCBmIGwgYWNjdSkpXG5cbiAgICBsZXQgcmVjIGZvcl9hbGwgcCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IHRydWVcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcn0gLT4gcCB2IGQgJiYgZm9yX2FsbCBwIGwgJiYgZm9yX2FsbCBwIHJcblxuICAgIGxldCByZWMgZXhpc3RzIHAgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiBmYWxzZVxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSAtPiBwIHYgZCB8fCBleGlzdHMgcCBsIHx8IGV4aXN0cyBwIHJcblxuICAgICgqIEJld2FyZTogdGhvc2UgdHdvIGZ1bmN0aW9ucyBhc3N1bWUgdGhhdCB0aGUgYWRkZWQgayBpcyAqc3RyaWN0bHkqXG4gICAgICAgc21hbGxlciAob3IgYmlnZ2VyKSB0aGFuIGFsbCB0aGUgcHJlc2VudCBrZXlzIGluIHRoZSB0cmVlOyBpdFxuICAgICAgIGRvZXMgbm90IHRlc3QgZm9yIGVxdWFsaXR5IHdpdGggdGhlIGN1cnJlbnQgbWluIChvciBtYXgpIGtleS5cblxuICAgICAgIEluZGVlZCwgdGhleSBhcmUgb25seSB1c2VkIGR1cmluZyB0aGUgXCJqb2luXCIgb3BlcmF0aW9uIHdoaWNoXG4gICAgICAgcmVzcGVjdHMgdGhpcyBwcmVjb25kaXRpb24uXG4gICAgKilcblxuICAgIGxldCByZWMgYWRkX21pbl9iaW5kaW5nIGsgeCA9IGZ1bmN0aW9uXG4gICAgICB8IEVtcHR5IC0+IHNpbmdsZXRvbiBrIHhcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcn0gLT5cbiAgICAgICAgYmFsIChhZGRfbWluX2JpbmRpbmcgayB4IGwpIHYgZCByXG5cbiAgICBsZXQgcmVjIGFkZF9tYXhfYmluZGluZyBrIHggPSBmdW5jdGlvblxuICAgICAgfCBFbXB0eSAtPiBzaW5nbGV0b24gayB4XG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHJ9IC0+XG4gICAgICAgIGJhbCBsIHYgZCAoYWRkX21heF9iaW5kaW5nIGsgeCByKVxuXG4gICAgKCogU2FtZSBhcyBjcmVhdGUgYW5kIGJhbCwgYnV0IG5vIGFzc3VtcHRpb25zIGFyZSBtYWRlIG9uIHRoZVxuICAgICAgIHJlbGF0aXZlIGhlaWdodHMgb2YgbCBhbmQgci4gKilcblxuICAgIGxldCByZWMgam9pbiBsIHYgZCByID1cbiAgICAgIG1hdGNoIChsLCByKSB3aXRoXG4gICAgICAgIChFbXB0eSwgXykgLT4gYWRkX21pbl9iaW5kaW5nIHYgZCByXG4gICAgICB8IChfLCBFbXB0eSkgLT4gYWRkX21heF9iaW5kaW5nIHYgZCBsXG4gICAgICB8IChOb2Rle2w9bGw7IHY9bHY7IGQ9bGQ7IHI9bHI7IGg9bGh9LFxuICAgICAgICAgTm9kZXtsPXJsOyB2PXJ2OyBkPXJkOyByPXJyOyBoPXJofSkgLT5cbiAgICAgICAgICBpZiBsaCA+IHJoICsgMiB0aGVuIGJhbCBsbCBsdiBsZCAoam9pbiBsciB2IGQgcikgZWxzZVxuICAgICAgICAgIGlmIHJoID4gbGggKyAyIHRoZW4gYmFsIChqb2luIGwgdiBkIHJsKSBydiByZCByciBlbHNlXG4gICAgICAgICAgY3JlYXRlIGwgdiBkIHJcblxuICAgICgqIE1lcmdlIHR3byB0cmVlcyBsIGFuZCByIGludG8gb25lLlxuICAgICAgIEFsbCBlbGVtZW50cyBvZiBsIG11c3QgcHJlY2VkZSB0aGUgZWxlbWVudHMgb2Ygci5cbiAgICAgICBObyBhc3N1bXB0aW9uIG9uIHRoZSBoZWlnaHRzIG9mIGwgYW5kIHIuICopXG5cbiAgICBsZXQgY29uY2F0IHQxIHQyID1cbiAgICAgIG1hdGNoICh0MSwgdDIpIHdpdGhcbiAgICAgICAgKEVtcHR5LCB0KSAtPiB0XG4gICAgICB8ICh0LCBFbXB0eSkgLT4gdFxuICAgICAgfCAoXywgXykgLT5cbiAgICAgICAgICBsZXQgKHgsIGQpID0gbWluX2JpbmRpbmcgdDIgaW5cbiAgICAgICAgICBqb2luIHQxIHggZCAocmVtb3ZlX21pbl9iaW5kaW5nIHQyKVxuXG4gICAgbGV0IGNvbmNhdF9vcl9qb2luIHQxIHYgZCB0MiA9XG4gICAgICBtYXRjaCBkIHdpdGhcbiAgICAgIHwgU29tZSBkIC0+IGpvaW4gdDEgdiBkIHQyXG4gICAgICB8IE5vbmUgLT4gY29uY2F0IHQxIHQyXG5cbiAgICBsZXQgcmVjIHNwbGl0IHggPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgIChFbXB0eSwgTm9uZSwgRW1wdHkpXG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHJ9IC0+XG4gICAgICAgICAgbGV0IGMgPSBPcmQuY29tcGFyZSB4IHYgaW5cbiAgICAgICAgICBpZiBjID0gMCB0aGVuIChsLCBTb21lIGQsIHIpXG4gICAgICAgICAgZWxzZSBpZiBjIDwgMCB0aGVuXG4gICAgICAgICAgICBsZXQgKGxsLCBwcmVzLCBybCkgPSBzcGxpdCB4IGwgaW4gKGxsLCBwcmVzLCBqb2luIHJsIHYgZCByKVxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGxldCAobHIsIHByZXMsIHJyKSA9IHNwbGl0IHggciBpbiAoam9pbiBsIHYgZCBsciwgcHJlcywgcnIpXG5cbiAgICBsZXQgcmVjIG1lcmdlIGYgczEgczIgPVxuICAgICAgbWF0Y2ggKHMxLCBzMikgd2l0aFxuICAgICAgICAoRW1wdHksIEVtcHR5KSAtPiBFbXB0eVxuICAgICAgfCAoTm9kZSB7bD1sMTsgdj12MTsgZD1kMTsgcj1yMTsgaD1oMX0sIF8pIHdoZW4gaDEgPj0gaGVpZ2h0IHMyIC0+XG4gICAgICAgICAgbGV0IChsMiwgZDIsIHIyKSA9IHNwbGl0IHYxIHMyIGluXG4gICAgICAgICAgY29uY2F0X29yX2pvaW4gKG1lcmdlIGYgbDEgbDIpIHYxIChmIHYxIChTb21lIGQxKSBkMikgKG1lcmdlIGYgcjEgcjIpXG4gICAgICB8IChfLCBOb2RlIHtsPWwyOyB2PXYyOyBkPWQyOyByPXIyfSkgLT5cbiAgICAgICAgICBsZXQgKGwxLCBkMSwgcjEpID0gc3BsaXQgdjIgczEgaW5cbiAgICAgICAgICBjb25jYXRfb3Jfam9pbiAobWVyZ2UgZiBsMSBsMikgdjIgKGYgdjIgZDEgKFNvbWUgZDIpKSAobWVyZ2UgZiByMSByMilcbiAgICAgIHwgXyAtPlxuICAgICAgICAgIGFzc2VydCBmYWxzZVxuXG4gICAgbGV0IHJlYyB1bmlvbiBmIHMxIHMyID1cbiAgICAgIG1hdGNoIChzMSwgczIpIHdpdGhcbiAgICAgIHwgKEVtcHR5LCBzKSB8IChzLCBFbXB0eSkgLT4gc1xuICAgICAgfCAoTm9kZSB7bD1sMTsgdj12MTsgZD1kMTsgcj1yMTsgaD1oMX0sXG4gICAgICAgICBOb2RlIHtsPWwyOyB2PXYyOyBkPWQyOyByPXIyOyBoPWgyfSkgLT5cbiAgICAgICAgICBpZiBoMSA+PSBoMiB0aGVuXG4gICAgICAgICAgICBsZXQgKGwyLCBkMiwgcjIpID0gc3BsaXQgdjEgczIgaW5cbiAgICAgICAgICAgIGxldCBsID0gdW5pb24gZiBsMSBsMiBhbmQgciA9IHVuaW9uIGYgcjEgcjIgaW5cbiAgICAgICAgICAgIG1hdGNoIGQyIHdpdGhcbiAgICAgICAgICAgIHwgTm9uZSAtPiBqb2luIGwgdjEgZDEgclxuICAgICAgICAgICAgfCBTb21lIGQyIC0+IGNvbmNhdF9vcl9qb2luIGwgdjEgKGYgdjEgZDEgZDIpIHJcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBsZXQgKGwxLCBkMSwgcjEpID0gc3BsaXQgdjIgczEgaW5cbiAgICAgICAgICAgIGxldCBsID0gdW5pb24gZiBsMSBsMiBhbmQgciA9IHVuaW9uIGYgcjEgcjIgaW5cbiAgICAgICAgICAgIG1hdGNoIGQxIHdpdGhcbiAgICAgICAgICAgIHwgTm9uZSAtPiBqb2luIGwgdjIgZDIgclxuICAgICAgICAgICAgfCBTb21lIGQxIC0+IGNvbmNhdF9vcl9qb2luIGwgdjIgKGYgdjIgZDEgZDIpIHJcblxuICAgIGxldCByZWMgZmlsdGVyIHAgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiBFbXB0eVxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSBhcyBtIC0+XG4gICAgICAgICAgKCogY2FsbCBbcF0gaW4gdGhlIGV4cGVjdGVkIGxlZnQtdG8tcmlnaHQgb3JkZXIgKilcbiAgICAgICAgICBsZXQgbCcgPSBmaWx0ZXIgcCBsIGluXG4gICAgICAgICAgbGV0IHB2ZCA9IHAgdiBkIGluXG4gICAgICAgICAgbGV0IHInID0gZmlsdGVyIHAgciBpblxuICAgICAgICAgIGlmIHB2ZCB0aGVuIGlmIGw9PWwnICYmIHI9PXInIHRoZW4gbSBlbHNlIGpvaW4gbCcgdiBkIHInXG4gICAgICAgICAgZWxzZSBjb25jYXQgbCcgcidcblxuICAgIGxldCByZWMgZmlsdGVyX21hcCBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gRW1wdHlcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcn0gLT5cbiAgICAgICAgICAoKiBjYWxsIFtmXSBpbiB0aGUgZXhwZWN0ZWQgbGVmdC10by1yaWdodCBvcmRlciAqKVxuICAgICAgICAgIGxldCBsJyA9IGZpbHRlcl9tYXAgZiBsIGluXG4gICAgICAgICAgbGV0IGZ2ZCA9IGYgdiBkIGluXG4gICAgICAgICAgbGV0IHInID0gZmlsdGVyX21hcCBmIHIgaW5cbiAgICAgICAgICBiZWdpbiBtYXRjaCBmdmQgd2l0aFxuICAgICAgICAgICAgfCBTb21lIGQnIC0+IGpvaW4gbCcgdiBkJyByJ1xuICAgICAgICAgICAgfCBOb25lIC0+IGNvbmNhdCBsJyByJ1xuICAgICAgICAgIGVuZFxuXG4gICAgbGV0IHJlYyBwYXJ0aXRpb24gcCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IChFbXB0eSwgRW1wdHkpXG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHJ9IC0+XG4gICAgICAgICAgKCogY2FsbCBbcF0gaW4gdGhlIGV4cGVjdGVkIGxlZnQtdG8tcmlnaHQgb3JkZXIgKilcbiAgICAgICAgICBsZXQgKGx0LCBsZikgPSBwYXJ0aXRpb24gcCBsIGluXG4gICAgICAgICAgbGV0IHB2ZCA9IHAgdiBkIGluXG4gICAgICAgICAgbGV0IChydCwgcmYpID0gcGFydGl0aW9uIHAgciBpblxuICAgICAgICAgIGlmIHB2ZFxuICAgICAgICAgIHRoZW4gKGpvaW4gbHQgdiBkIHJ0LCBjb25jYXQgbGYgcmYpXG4gICAgICAgICAgZWxzZSAoY29uY2F0IGx0IHJ0LCBqb2luIGxmIHYgZCByZilcblxuICAgIHR5cGUgJ2EgZW51bWVyYXRpb24gPSBFbmQgfCBNb3JlIG9mIGtleSAqICdhICogJ2EgdCAqICdhIGVudW1lcmF0aW9uXG5cbiAgICBsZXQgcmVjIGNvbnNfZW51bSBtIGUgPVxuICAgICAgbWF0Y2ggbSB3aXRoXG4gICAgICAgIEVtcHR5IC0+IGVcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcn0gLT4gY29uc19lbnVtIGwgKE1vcmUodiwgZCwgciwgZSkpXG5cbiAgICBsZXQgY29tcGFyZSBjbXAgbTEgbTIgPVxuICAgICAgbGV0IHJlYyBjb21wYXJlX2F1eCBlMSBlMiA9XG4gICAgICAgICAgbWF0Y2ggKGUxLCBlMikgd2l0aFxuICAgICAgICAgIChFbmQsIEVuZCkgLT4gMFxuICAgICAgICB8IChFbmQsIF8pICAtPiAtMVxuICAgICAgICB8IChfLCBFbmQpIC0+IDFcbiAgICAgICAgfCAoTW9yZSh2MSwgZDEsIHIxLCBlMSksIE1vcmUodjIsIGQyLCByMiwgZTIpKSAtPlxuICAgICAgICAgICAgbGV0IGMgPSBPcmQuY29tcGFyZSB2MSB2MiBpblxuICAgICAgICAgICAgaWYgYyA8PiAwIHRoZW4gYyBlbHNlXG4gICAgICAgICAgICBsZXQgYyA9IGNtcCBkMSBkMiBpblxuICAgICAgICAgICAgaWYgYyA8PiAwIHRoZW4gYyBlbHNlXG4gICAgICAgICAgICBjb21wYXJlX2F1eCAoY29uc19lbnVtIHIxIGUxKSAoY29uc19lbnVtIHIyIGUyKVxuICAgICAgaW4gY29tcGFyZV9hdXggKGNvbnNfZW51bSBtMSBFbmQpIChjb25zX2VudW0gbTIgRW5kKVxuXG4gICAgbGV0IGVxdWFsIGNtcCBtMSBtMiA9XG4gICAgICBsZXQgcmVjIGVxdWFsX2F1eCBlMSBlMiA9XG4gICAgICAgICAgbWF0Y2ggKGUxLCBlMikgd2l0aFxuICAgICAgICAgIChFbmQsIEVuZCkgLT4gdHJ1ZVxuICAgICAgICB8IChFbmQsIF8pICAtPiBmYWxzZVxuICAgICAgICB8IChfLCBFbmQpIC0+IGZhbHNlXG4gICAgICAgIHwgKE1vcmUodjEsIGQxLCByMSwgZTEpLCBNb3JlKHYyLCBkMiwgcjIsIGUyKSkgLT5cbiAgICAgICAgICAgIE9yZC5jb21wYXJlIHYxIHYyID0gMCAmJiBjbXAgZDEgZDIgJiZcbiAgICAgICAgICAgIGVxdWFsX2F1eCAoY29uc19lbnVtIHIxIGUxKSAoY29uc19lbnVtIHIyIGUyKVxuICAgICAgaW4gZXF1YWxfYXV4IChjb25zX2VudW0gbTEgRW5kKSAoY29uc19lbnVtIG0yIEVuZClcblxuICAgIGxldCByZWMgY2FyZGluYWwgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiAwXG4gICAgICB8IE5vZGUge2w7IHJ9IC0+IGNhcmRpbmFsIGwgKyAxICsgY2FyZGluYWwgclxuXG4gICAgbGV0IHJlYyBiaW5kaW5nc19hdXggYWNjdSA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IGFjY3VcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcn0gLT4gYmluZGluZ3NfYXV4ICgodiwgZCkgOjogYmluZGluZ3NfYXV4IGFjY3UgcikgbFxuXG4gICAgbGV0IGJpbmRpbmdzIHMgPVxuICAgICAgYmluZGluZ3NfYXV4IFtdIHNcblxuICAgIGxldCBjaG9vc2UgPSBtaW5fYmluZGluZ1xuXG4gICAgbGV0IGNob29zZV9vcHQgPSBtaW5fYmluZGluZ19vcHRcblxuICAgIGxldCBhZGRfc2VxIGkgbSA9XG4gICAgICBTZXEuZm9sZF9sZWZ0IChmdW4gbSAoayx2KSAtPiBhZGQgayB2IG0pIG0gaVxuXG4gICAgbGV0IG9mX3NlcSBpID0gYWRkX3NlcSBpIGVtcHR5XG5cbiAgICBsZXQgcmVjIHNlcV9vZl9lbnVtXyBjICgpID0gbWF0Y2ggYyB3aXRoXG4gICAgICB8IEVuZCAtPiBTZXEuTmlsXG4gICAgICB8IE1vcmUgKGssdix0LHJlc3QpIC0+IFNlcS5Db25zICgoayx2KSwgc2VxX29mX2VudW1fIChjb25zX2VudW0gdCByZXN0KSlcblxuICAgIGxldCB0b19zZXEgbSA9XG4gICAgICBzZXFfb2ZfZW51bV8gKGNvbnNfZW51bSBtIEVuZClcblxuICAgIGxldCByZWMgc25vY19lbnVtIHMgZSA9XG4gICAgICBtYXRjaCBzIHdpdGhcbiAgICAgICAgRW1wdHkgLT4gZVxuICAgICAgfCBOb2Rle2w7IHY7IGQ7IHJ9IC0+IHNub2NfZW51bSByIChNb3JlKHYsIGQsIGwsIGUpKVxuXG4gICAgbGV0IHJlYyByZXZfc2VxX29mX2VudW1fIGMgKCkgPSBtYXRjaCBjIHdpdGhcbiAgICAgIHwgRW5kIC0+IFNlcS5OaWxcbiAgICAgIHwgTW9yZSAoayx2LHQscmVzdCkgLT5cbiAgICAgICAgICBTZXEuQ29ucyAoKGssdiksIHJldl9zZXFfb2ZfZW51bV8gKHNub2NfZW51bSB0IHJlc3QpKVxuXG4gICAgbGV0IHRvX3Jldl9zZXEgYyA9XG4gICAgICByZXZfc2VxX29mX2VudW1fIChzbm9jX2VudW0gYyBFbmQpXG5cbiAgICBsZXQgdG9fc2VxX2Zyb20gbG93IG0gPVxuICAgICAgbGV0IHJlYyBhdXggbG93IG0gYyA9IG1hdGNoIG0gd2l0aFxuICAgICAgICB8IEVtcHR5IC0+IGNcbiAgICAgICAgfCBOb2RlIHtsOyB2OyBkOyByOyBffSAtPlxuICAgICAgICAgICAgYmVnaW4gbWF0Y2ggT3JkLmNvbXBhcmUgdiBsb3cgd2l0aFxuICAgICAgICAgICAgICB8IDAgLT4gTW9yZSAodiwgZCwgciwgYylcbiAgICAgICAgICAgICAgfCBuIHdoZW4gbjwwIC0+IGF1eCBsb3cgciBjXG4gICAgICAgICAgICAgIHwgXyAtPiBhdXggbG93IGwgKE1vcmUgKHYsIGQsIHIsIGMpKVxuICAgICAgICAgICAgZW5kXG4gICAgICBpblxuICAgICAgc2VxX29mX2VudW1fIChhdXggbG93IG0gRW5kKVxuZW5kXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbnR5cGUgJ2EgdCA9IHsgbXV0YWJsZSBjIDogJ2EgbGlzdDsgbXV0YWJsZSBsZW4gOiBpbnQ7IH1cblxuZXhjZXB0aW9uIEVtcHR5XG5cbmxldCBjcmVhdGUgKCkgPSB7IGMgPSBbXTsgbGVuID0gMDsgfVxuXG5sZXQgY2xlYXIgcyA9IHMuYyA8LSBbXTsgcy5sZW4gPC0gMFxuXG5sZXQgY29weSBzID0geyBjID0gcy5jOyBsZW4gPSBzLmxlbjsgfVxuXG5sZXQgcHVzaCB4IHMgPSBzLmMgPC0geCA6OiBzLmM7IHMubGVuIDwtIHMubGVuICsgMVxuXG5sZXQgcG9wIHMgPVxuICBtYXRjaCBzLmMgd2l0aFxuICB8IGhkOjp0bCAtPiBzLmMgPC0gdGw7IHMubGVuIDwtIHMubGVuIC0gMTsgaGRcbiAgfCBbXSAgICAgLT4gcmFpc2UgRW1wdHlcblxubGV0IHBvcF9vcHQgcyA9XG4gIG1hdGNoIHMuYyB3aXRoXG4gIHwgaGQ6OnRsIC0+IHMuYyA8LSB0bDsgcy5sZW4gPC0gcy5sZW4gLSAxOyBTb21lIGhkXG4gIHwgW10gICAgIC0+IE5vbmVcblxubGV0IHRvcCBzID1cbiAgbWF0Y2ggcy5jIHdpdGhcbiAgfCBoZDo6XyAtPiBoZFxuICB8IFtdICAgIC0+IHJhaXNlIEVtcHR5XG5cbmxldCB0b3Bfb3B0IHMgPVxuICBtYXRjaCBzLmMgd2l0aFxuICB8IGhkOjpfIC0+IFNvbWUgaGRcbiAgfCBbXSAgICAtPiBOb25lXG5cbmxldCBpc19lbXB0eSBzID0gKHMuYyA9IFtdKVxuXG5sZXQgbGVuZ3RoIHMgPSBzLmxlblxuXG5sZXQgaXRlciBmIHMgPSBMaXN0Lml0ZXIgZiBzLmNcblxubGV0IGZvbGQgZiBhY2MgcyA9IExpc3QuZm9sZF9sZWZ0IGYgYWNjIHMuY1xuXG4oKiogezEgSXRlcmF0b3JzfSAqKVxuXG5sZXQgdG9fc2VxIHMgPSBMaXN0LnRvX3NlcSBzLmNcblxubGV0IGFkZF9zZXEgcSBpID0gU2VxLml0ZXIgKGZ1biB4IC0+IHB1c2ggeCBxKSBpXG5cbmxldCBvZl9zZXEgZyA9XG4gIGxldCBzID0gY3JlYXRlKCkgaW5cbiAgYWRkX3NlcSBzIGc7XG4gIHNcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgRnJhbmNvaXMgUG90dGllciwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgSmVyZW1pZSBEaW1pbm8sIEphbmUgU3RyZWV0IEV1cm9wZSAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMDIgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuZXhjZXB0aW9uIEVtcHR5XG5cbnR5cGUgJ2EgY2VsbCA9XG4gIHwgTmlsXG4gIHwgQ29ucyBvZiB7IGNvbnRlbnQ6ICdhOyBtdXRhYmxlIG5leHQ6ICdhIGNlbGwgfVxuXG50eXBlICdhIHQgPSB7XG4gIG11dGFibGUgbGVuZ3RoOiBpbnQ7XG4gIG11dGFibGUgZmlyc3Q6ICdhIGNlbGw7XG4gIG11dGFibGUgbGFzdDogJ2EgY2VsbFxufVxuXG5sZXQgY3JlYXRlICgpID0ge1xuICBsZW5ndGggPSAwO1xuICBmaXJzdCA9IE5pbDtcbiAgbGFzdCA9IE5pbFxufVxuXG5sZXQgY2xlYXIgcSA9XG4gIHEubGVuZ3RoIDwtIDA7XG4gIHEuZmlyc3QgPC0gTmlsO1xuICBxLmxhc3QgPC0gTmlsXG5cbmxldCBhZGQgeCBxID1cbiAgbGV0IGNlbGwgPSBDb25zIHtcbiAgICBjb250ZW50ID0geDtcbiAgICBuZXh0ID0gTmlsXG4gIH0gaW5cbiAgbWF0Y2ggcS5sYXN0IHdpdGhcbiAgfCBOaWwgLT5cbiAgICBxLmxlbmd0aCA8LSAxO1xuICAgIHEuZmlyc3QgPC0gY2VsbDtcbiAgICBxLmxhc3QgPC0gY2VsbFxuICB8IENvbnMgbGFzdCAtPlxuICAgIHEubGVuZ3RoIDwtIHEubGVuZ3RoICsgMTtcbiAgICBsYXN0Lm5leHQgPC0gY2VsbDtcbiAgICBxLmxhc3QgPC0gY2VsbFxuXG5sZXQgcHVzaCA9XG4gIGFkZFxuXG5sZXQgcGVlayBxID1cbiAgbWF0Y2ggcS5maXJzdCB3aXRoXG4gIHwgTmlsIC0+IHJhaXNlIEVtcHR5XG4gIHwgQ29ucyB7IGNvbnRlbnQgfSAtPiBjb250ZW50XG5cbmxldCBwZWVrX29wdCBxID1cbiAgbWF0Y2ggcS5maXJzdCB3aXRoXG4gIHwgTmlsIC0+IE5vbmVcbiAgfCBDb25zIHsgY29udGVudCB9IC0+IFNvbWUgY29udGVudFxuXG5sZXQgdG9wID1cbiAgcGVla1xuXG5sZXQgdGFrZSBxID1cbiAgbWF0Y2ggcS5maXJzdCB3aXRoXG4gIHwgTmlsIC0+IHJhaXNlIEVtcHR5XG4gIHwgQ29ucyB7IGNvbnRlbnQ7IG5leHQgPSBOaWwgfSAtPlxuICAgIGNsZWFyIHE7XG4gICAgY29udGVudFxuICB8IENvbnMgeyBjb250ZW50OyBuZXh0IH0gLT5cbiAgICBxLmxlbmd0aCA8LSBxLmxlbmd0aCAtIDE7XG4gICAgcS5maXJzdCA8LSBuZXh0O1xuICAgIGNvbnRlbnRcblxubGV0IHRha2Vfb3B0IHEgPVxuICBtYXRjaCBxLmZpcnN0IHdpdGhcbiAgfCBOaWwgLT4gTm9uZVxuICB8IENvbnMgeyBjb250ZW50OyBuZXh0ID0gTmlsIH0gLT5cbiAgICBjbGVhciBxO1xuICAgIFNvbWUgY29udGVudFxuICB8IENvbnMgeyBjb250ZW50OyBuZXh0IH0gLT5cbiAgICBxLmxlbmd0aCA8LSBxLmxlbmd0aCAtIDE7XG4gICAgcS5maXJzdCA8LSBuZXh0O1xuICAgIFNvbWUgY29udGVudFxuXG5sZXQgcG9wID1cbiAgdGFrZVxuXG5sZXQgY29weSA9XG4gIGxldCByZWMgY29weSBxX3JlcyBwcmV2IGNlbGwgPVxuICAgIG1hdGNoIGNlbGwgd2l0aFxuICAgIHwgTmlsIC0+IHFfcmVzLmxhc3QgPC0gcHJldjsgcV9yZXNcbiAgICB8IENvbnMgeyBjb250ZW50OyBuZXh0IH0gLT5cbiAgICAgIGxldCByZXMgPSBDb25zIHsgY29udGVudDsgbmV4dCA9IE5pbCB9IGluXG4gICAgICBiZWdpbiBtYXRjaCBwcmV2IHdpdGhcbiAgICAgIHwgTmlsIC0+IHFfcmVzLmZpcnN0IDwtIHJlc1xuICAgICAgfCBDb25zIHAgLT4gcC5uZXh0IDwtIHJlc1xuICAgICAgZW5kO1xuICAgICAgY29weSBxX3JlcyByZXMgbmV4dFxuICBpblxuICBmdW4gcSAtPiBjb3B5IHsgbGVuZ3RoID0gcS5sZW5ndGg7IGZpcnN0ID0gTmlsOyBsYXN0ID0gTmlsIH0gTmlsIHEuZmlyc3RcblxubGV0IGlzX2VtcHR5IHEgPVxuICBxLmxlbmd0aCA9IDBcblxubGV0IGxlbmd0aCBxID1cbiAgcS5sZW5ndGhcblxubGV0IGl0ZXIgPVxuICBsZXQgcmVjIGl0ZXIgZiBjZWxsID1cbiAgICBtYXRjaCBjZWxsIHdpdGhcbiAgICB8IE5pbCAtPiAoKVxuICAgIHwgQ29ucyB7IGNvbnRlbnQ7IG5leHQgfSAtPlxuICAgICAgZiBjb250ZW50O1xuICAgICAgaXRlciBmIG5leHRcbiAgaW5cbiAgZnVuIGYgcSAtPiBpdGVyIGYgcS5maXJzdFxuXG5sZXQgZm9sZCA9XG4gIGxldCByZWMgZm9sZCBmIGFjY3UgY2VsbCA9XG4gICAgbWF0Y2ggY2VsbCB3aXRoXG4gICAgfCBOaWwgLT4gYWNjdVxuICAgIHwgQ29ucyB7IGNvbnRlbnQ7IG5leHQgfSAtPlxuICAgICAgbGV0IGFjY3UgPSBmIGFjY3UgY29udGVudCBpblxuICAgICAgZm9sZCBmIGFjY3UgbmV4dFxuICBpblxuICBmdW4gZiBhY2N1IHEgLT4gZm9sZCBmIGFjY3UgcS5maXJzdFxuXG5sZXQgdHJhbnNmZXIgcTEgcTIgPVxuICBpZiBxMS5sZW5ndGggPiAwIHRoZW5cbiAgICBtYXRjaCBxMi5sYXN0IHdpdGhcbiAgICB8IE5pbCAtPlxuICAgICAgcTIubGVuZ3RoIDwtIHExLmxlbmd0aDtcbiAgICAgIHEyLmZpcnN0IDwtIHExLmZpcnN0O1xuICAgICAgcTIubGFzdCA8LSBxMS5sYXN0O1xuICAgICAgY2xlYXIgcTFcbiAgICB8IENvbnMgbGFzdCAtPlxuICAgICAgcTIubGVuZ3RoIDwtIHEyLmxlbmd0aCArIHExLmxlbmd0aDtcbiAgICAgIGxhc3QubmV4dCA8LSBxMS5maXJzdDtcbiAgICAgIHEyLmxhc3QgPC0gcTEubGFzdDtcbiAgICAgIGNsZWFyIHExXG5cbigqKiB7MSBJdGVyYXRvcnN9ICopXG5cbmxldCB0b19zZXEgcSA9XG4gIGxldCByZWMgYXV4IGMgKCkgPSBtYXRjaCBjIHdpdGhcbiAgICB8IE5pbCAtPiBTZXEuTmlsXG4gICAgfCBDb25zIHsgY29udGVudD14OyBuZXh0OyB9IC0+IFNlcS5Db25zICh4LCBhdXggbmV4dClcbiAgaW5cbiAgYXV4IHEuZmlyc3RcblxubGV0IGFkZF9zZXEgcSBpID0gU2VxLml0ZXIgKGZ1biB4IC0+IHB1c2ggeCBxKSBpXG5cbmxldCBvZl9zZXEgZyA9XG4gIGxldCBxID0gY3JlYXRlKCkgaW5cbiAgYWRkX3NlcSBxIGc7XG4gIHFcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgRGFuaWVsIGRlIFJhdWdsYXVkcmUsIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTcgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxudHlwZSAnYSB0ID0gJ2EgY2VsbCBvcHRpb25cbmFuZCAnYSBjZWxsID0geyBtdXRhYmxlIGNvdW50IDogaW50OyBtdXRhYmxlIGRhdGEgOiAnYSBkYXRhIH1cbmFuZCAnYSBkYXRhID1cbiAgICBTZW1wdHlcbiAgfCBTY29ucyBvZiAnYSAqICdhIGRhdGFcbiAgfCBTYXBwIG9mICdhIGRhdGEgKiAnYSBkYXRhXG4gIHwgU2xhenkgb2YgJ2EgZGF0YSBMYXp5LnRcbiAgfCBTZ2VuIG9mICdhIGdlblxuICB8IFNidWZmaW8gOiBidWZmaW8gLT4gY2hhciBkYXRhXG5hbmQgJ2EgZ2VuID0geyBtdXRhYmxlIGN1cnIgOiAnYSBvcHRpb24gb3B0aW9uOyBmdW5jIDogaW50IC0+ICdhIG9wdGlvbiB9XG5hbmQgYnVmZmlvID1cbiAgeyBpYyA6IGluX2NoYW5uZWw7IGJ1ZmYgOiBieXRlczsgbXV0YWJsZSBsZW4gOiBpbnQ7IG11dGFibGUgaW5kIDogaW50IH1cblxuZXhjZXB0aW9uIEZhaWx1cmVcbmV4Y2VwdGlvbiBFcnJvciBvZiBzdHJpbmdcblxubGV0IGNvdW50ID0gZnVuY3Rpb25cbiAgfCBOb25lIC0+IDBcbiAgfCBTb21lIHsgY291bnQgfSAtPiBjb3VudFxubGV0IGRhdGEgPSBmdW5jdGlvblxuICB8IE5vbmUgLT4gU2VtcHR5XG4gIHwgU29tZSB7IGRhdGEgfSAtPiBkYXRhXG5cbmxldCBmaWxsX2J1ZmYgYiA9XG4gIGIubGVuIDwtIGlucHV0IGIuaWMgYi5idWZmIDAgKEJ5dGVzLmxlbmd0aCBiLmJ1ZmYpOyBiLmluZCA8LSAwXG5cblxubGV0IHJlYyBnZXRfZGF0YSA6IHR5cGUgdi4gaW50IC0+IHYgZGF0YSAtPiB2IGRhdGEgPSBmdW4gY291bnQgZCAtPiBtYXRjaCBkIHdpdGhcbiAoKiBSZXR1cm5zIGVpdGhlciBTZW1wdHkgb3IgU2NvbnMoYSwgXykgZXZlbiB3aGVuIGQgaXMgYSBnZW5lcmF0b3JcbiAgICBvciBhIGJ1ZmZlci4gSW4gdGhvc2UgY2FzZXMsIHRoZSBpdGVtIGEgaXMgc2VlbiBhcyBleHRyYWN0ZWQgZnJvbVxuIHRoZSBnZW5lcmF0b3IvYnVmZmVyLlxuIFRoZSBjb3VudCBwYXJhbWV0ZXIgaXMgdXNlZCBmb3IgY2FsbGluZyBgU2dlbi1mdW5jdGlvbnMnLiAgKilcbiAgIFNlbXB0eSB8IFNjb25zIChfLCBfKSAtPiBkXG4gfCBTYXBwIChkMSwgZDIpIC0+XG4gICAgIGJlZ2luIG1hdGNoIGdldF9kYXRhIGNvdW50IGQxIHdpdGhcbiAgICAgICBTY29ucyAoYSwgZDExKSAtPiBTY29ucyAoYSwgU2FwcCAoZDExLCBkMikpXG4gICAgIHwgU2VtcHR5IC0+IGdldF9kYXRhIGNvdW50IGQyXG4gICAgIHwgXyAtPiBhc3NlcnQgZmFsc2VcbiAgICAgZW5kXG4gfCBTZ2VuIHtjdXJyID0gU29tZSBOb25lfSAtPiBTZW1wdHlcbiB8IFNnZW4gKHtjdXJyID0gU29tZShTb21lIGEpfSBhcyBnKSAtPlxuICAgICBnLmN1cnIgPC0gTm9uZTsgU2NvbnMoYSwgZClcbiB8IFNnZW4gZyAtPlxuICAgICBiZWdpbiBtYXRjaCBnLmZ1bmMgY291bnQgd2l0aFxuICAgICAgIE5vbmUgLT4gZy5jdXJyIDwtIFNvbWUoTm9uZSk7IFNlbXB0eVxuICAgICB8IFNvbWUgYSAtPiBTY29ucyhhLCBkKVxuICAgICAgICAgKCogV2FybmluZzogYW55b25lIHVzaW5nIGcgdGhpbmtzIHRoYXQgYW4gaXRlbSBoYXMgYmVlbiByZWFkICopXG4gICAgIGVuZFxuIHwgU2J1ZmZpbyBiIC0+XG4gICAgIGlmIGIuaW5kID49IGIubGVuIHRoZW4gZmlsbF9idWZmIGI7XG4gICAgIGlmIGIubGVuID09IDAgdGhlbiBTZW1wdHkgZWxzZVxuICAgICAgIGxldCByID0gQnl0ZXMudW5zYWZlX2dldCBiLmJ1ZmYgYi5pbmQgaW5cbiAgICAgICAoKiBXYXJuaW5nOiBhbnlvbmUgdXNpbmcgZyB0aGlua3MgdGhhdCBhbiBpdGVtIGhhcyBiZWVuIHJlYWQgKilcbiAgICAgICBiLmluZCA8LSBzdWNjIGIuaW5kOyBTY29ucyhyLCBkKVxuIHwgU2xhenkgZiAtPiBnZXRfZGF0YSBjb3VudCAoTGF6eS5mb3JjZSBmKVxuXG5cbmxldCByZWMgcGVla19kYXRhIDogdHlwZSB2LiB2IGNlbGwgLT4gdiBvcHRpb24gPSBmdW4gcyAtPlxuICgqIGNvbnN1bHQgdGhlIGZpcnN0IGl0ZW0gb2YgcyAqKVxuIG1hdGNoIHMuZGF0YSB3aXRoXG4gICBTZW1wdHkgLT4gTm9uZVxuIHwgU2NvbnMgKGEsIF8pIC0+IFNvbWUgYVxuIHwgU2FwcCAoXywgXykgLT5cbiAgICAgYmVnaW4gbWF0Y2ggZ2V0X2RhdGEgcy5jb3VudCBzLmRhdGEgd2l0aFxuICAgICAgIFNjb25zKGEsIF8pIGFzIGQgLT4gcy5kYXRhIDwtIGQ7IFNvbWUgYVxuICAgICB8IFNlbXB0eSAtPiBOb25lXG4gICAgIHwgXyAtPiBhc3NlcnQgZmFsc2VcbiAgICAgZW5kXG4gfCBTbGF6eSBmIC0+IHMuZGF0YSA8LSAoTGF6eS5mb3JjZSBmKTsgcGVla19kYXRhIHNcbiB8IFNnZW4ge2N1cnIgPSBTb21lIGF9IC0+IGFcbiB8IFNnZW4gZyAtPiBsZXQgeCA9IGcuZnVuYyBzLmNvdW50IGluIGcuY3VyciA8LSBTb21lIHg7IHhcbiB8IFNidWZmaW8gYiAtPlxuICAgICBpZiBiLmluZCA+PSBiLmxlbiB0aGVuIGZpbGxfYnVmZiBiO1xuICAgICBpZiBiLmxlbiA9PSAwIHRoZW4gYmVnaW4gcy5kYXRhIDwtIFNlbXB0eTsgTm9uZSBlbmRcbiAgICAgZWxzZSBTb21lIChCeXRlcy51bnNhZmVfZ2V0IGIuYnVmZiBiLmluZClcblxuXG5sZXQgcGVlayA9IGZ1bmN0aW9uXG4gIHwgTm9uZSAtPiBOb25lXG4gIHwgU29tZSBzIC0+IHBlZWtfZGF0YSBzXG5cblxubGV0IHJlYyBqdW5rX2RhdGEgOiB0eXBlIHYuIHYgY2VsbCAtPiB1bml0ID0gZnVuIHMgLT5cbiAgbWF0Y2ggcy5kYXRhIHdpdGhcbiAgICBTY29ucyAoXywgZCkgLT4gcy5jb3VudCA8LSAoc3VjYyBzLmNvdW50KTsgcy5kYXRhIDwtIGRcbiAgfCBTZ2VuICh7Y3VyciA9IFNvbWUgX30gYXMgZykgLT4gcy5jb3VudCA8LSAoc3VjYyBzLmNvdW50KTsgZy5jdXJyIDwtIE5vbmVcbiAgfCBTYnVmZmlvIGIgLT5cbiAgICAgIGlmIGIuaW5kID49IGIubGVuIHRoZW4gZmlsbF9idWZmIGI7XG4gICAgICBpZiBiLmxlbiA9PSAwIHRoZW4gcy5kYXRhIDwtIFNlbXB0eVxuICAgICAgZWxzZSAocy5jb3VudCA8LSAoc3VjYyBzLmNvdW50KTsgYi5pbmQgPC0gc3VjYyBiLmluZClcbiAgfCBfIC0+XG4gICAgICBtYXRjaCBwZWVrX2RhdGEgcyB3aXRoXG4gICAgICAgIE5vbmUgLT4gKClcbiAgICAgIHwgU29tZSBfIC0+IGp1bmtfZGF0YSBzXG5cblxubGV0IGp1bmsgPSBmdW5jdGlvblxuICB8IE5vbmUgLT4gKClcbiAgfCBTb21lIGRhdGEgLT4ganVua19kYXRhIGRhdGFcblxubGV0IHJlYyBuZ2V0X2RhdGEgbiBzID1cbiAgaWYgbiA8PSAwIHRoZW4gW10sIHMuZGF0YSwgMFxuICBlbHNlXG4gICAgbWF0Y2ggcGVla19kYXRhIHMgd2l0aFxuICAgICAgU29tZSBhIC0+XG4gICAgICAgIGp1bmtfZGF0YSBzO1xuICAgICAgICBsZXQgKGFsLCBkLCBrKSA9IG5nZXRfZGF0YSAocHJlZCBuKSBzIGluIGEgOjogYWwsIFNjb25zIChhLCBkKSwgc3VjYyBrXG4gICAgfCBOb25lIC0+IFtdLCBzLmRhdGEsIDBcblxuXG5sZXQgbnBlZWtfZGF0YSBuIHMgPVxuICBsZXQgKGFsLCBkLCBsZW4pID0gbmdldF9kYXRhIG4gcyBpblxuICBzLmNvdW50IDwtIChzLmNvdW50IC0gbGVuKTtcbiAgcy5kYXRhIDwtIGQ7XG4gIGFsXG5cblxubGV0IG5wZWVrIG4gPSBmdW5jdGlvblxuICB8IE5vbmUgLT4gW11cbiAgfCBTb21lIGQgLT4gbnBlZWtfZGF0YSBuIGRcblxubGV0IG5leHQgcyA9XG4gIG1hdGNoIHBlZWsgcyB3aXRoXG4gICAgU29tZSBhIC0+IGp1bmsgczsgYVxuICB8IE5vbmUgLT4gcmFpc2UgRmFpbHVyZVxuXG5cbmxldCBlbXB0eSBzID1cbiAgbWF0Y2ggcGVlayBzIHdpdGhcbiAgICBTb21lIF8gLT4gcmFpc2UgRmFpbHVyZVxuICB8IE5vbmUgLT4gKClcblxuXG5sZXQgaXRlciBmIHN0cm0gPVxuICBsZXQgcmVjIGRvX3JlYyAoKSA9XG4gICAgbWF0Y2ggcGVlayBzdHJtIHdpdGhcbiAgICAgIFNvbWUgYSAtPiBqdW5rIHN0cm07IGlnbm9yZShmIGEpOyBkb19yZWMgKClcbiAgICB8IE5vbmUgLT4gKClcbiAgaW5cbiAgZG9fcmVjICgpXG5cblxuKCogU3RyZWFtIGJ1aWxkaW5nIGZ1bmN0aW9ucyAqKVxuXG5sZXQgZnJvbSBmID0gU29tZSB7Y291bnQgPSAwOyBkYXRhID0gU2dlbiB7Y3VyciA9IE5vbmU7IGZ1bmMgPSBmfX1cblxubGV0IG9mX2xpc3QgbCA9XG4gIFNvbWUge2NvdW50ID0gMDsgZGF0YSA9IExpc3QuZm9sZF9yaWdodCAoZnVuIHggbCAtPiBTY29ucyAoeCwgbCkpIGwgU2VtcHR5fVxuXG5cbmxldCBvZl9zdHJpbmcgcyA9XG4gIGxldCBjb3VudCA9IHJlZiAwIGluXG4gIGZyb20gKGZ1biBfIC0+XG4gICAgKCogV2UgY2Fubm90IHVzZSB0aGUgaW5kZXggcGFzc2VkIGJ5IHRoZSBbZnJvbV0gZnVuY3Rpb24gZGlyZWN0bHlcbiAgICAgICBiZWNhdXNlIGl0IHJldHVybnMgdGhlIGN1cnJlbnQgc3RyZWFtIGNvdW50LCB3aXRoIGFic29sdXRlbHkgbm9cbiAgICAgICBndWFyYW50ZWUgdGhhdCBpdCB3aWxsIHN0YXJ0IGZyb20gMC4gRm9yIGV4YW1wbGUsIGluIHRoZSBjYXNlXG4gICAgICAgb2YgW1N0cmVhbS5pY29ucyAnYycgKFN0cmVhbS5mcm9tX3N0cmluZyBcImFiXCIpXSwgdGhlIGZpcnN0XG4gICAgICAgYWNjZXNzIHRvIHRoZSBzdHJpbmcgd2lsbCBiZSBtYWRlIHdpdGggY291bnQgWzFdIGFscmVhZHkuXG4gICAgKilcbiAgICBsZXQgYyA9ICFjb3VudCBpblxuICAgIGlmIGMgPCBTdHJpbmcubGVuZ3RoIHNcbiAgICB0aGVuIChpbmNyIGNvdW50OyBTb21lIHMuW2NdKVxuICAgIGVsc2UgTm9uZSlcblxuXG5sZXQgb2ZfYnl0ZXMgcyA9XG4gIGxldCBjb3VudCA9IHJlZiAwIGluXG4gIGZyb20gKGZ1biBfIC0+XG4gICAgbGV0IGMgPSAhY291bnQgaW5cbiAgICBpZiBjIDwgQnl0ZXMubGVuZ3RoIHNcbiAgICB0aGVuIChpbmNyIGNvdW50OyBTb21lIChCeXRlcy5nZXQgcyBjKSlcbiAgICBlbHNlIE5vbmUpXG5cblxubGV0IG9mX2NoYW5uZWwgaWMgPVxuICBTb21lIHtjb3VudCA9IDA7XG4gICAgICAgIGRhdGEgPSBTYnVmZmlvIHtpYyA9IGljOyBidWZmID0gQnl0ZXMuY3JlYXRlIDQwOTY7IGxlbiA9IDA7IGluZCA9IDB9fVxuXG5cbigqIFN0cmVhbSBleHByZXNzaW9ucyBidWlsZGVycyAqKVxuXG5sZXQgaWFwcCBpIHMgPSBTb21lIHtjb3VudCA9IDA7IGRhdGEgPSBTYXBwIChkYXRhIGksIGRhdGEgcyl9XG5sZXQgaWNvbnMgaSBzID0gU29tZSB7Y291bnQgPSAwOyBkYXRhID0gU2NvbnMgKGksIGRhdGEgcyl9XG5sZXQgaXNpbmcgaSA9IFNvbWUge2NvdW50ID0gMDsgZGF0YSA9IFNjb25zIChpLCBTZW1wdHkpfVxuXG5sZXQgbGFwcCBmIHMgPVxuICBTb21lIHtjb3VudCA9IDA7IGRhdGEgPSBTbGF6eSAobGF6eShTYXBwIChkYXRhIChmICgpKSwgZGF0YSBzKSkpfVxuXG5sZXQgbGNvbnMgZiBzID0gU29tZSB7Y291bnQgPSAwOyBkYXRhID0gU2xhenkgKGxhenkoU2NvbnMgKGYgKCksIGRhdGEgcykpKX1cbmxldCBsc2luZyBmID0gU29tZSB7Y291bnQgPSAwOyBkYXRhID0gU2xhenkgKGxhenkoU2NvbnMgKGYgKCksIFNlbXB0eSkpKX1cblxubGV0IHNlbXB0eSA9IE5vbmVcbmxldCBzbGF6eSBmID0gU29tZSB7Y291bnQgPSAwOyBkYXRhID0gU2xhenkgKGxhenkoZGF0YSAoZiAoKSkpKX1cblxuKCogRm9yIGRlYnVnZ2luZyB1c2UgKilcblxubGV0IHJlYyBkdW1wIDogdHlwZSB2LiAodiAtPiB1bml0KSAtPiB2IHQgLT4gdW5pdCA9IGZ1biBmIHMgLT5cbiAgcHJpbnRfc3RyaW5nIFwie2NvdW50ID0gXCI7XG4gIHByaW50X2ludCAoY291bnQgcyk7XG4gIHByaW50X3N0cmluZyBcIjsgZGF0YSA9IFwiO1xuICBkdW1wX2RhdGEgZiAoZGF0YSBzKTtcbiAgcHJpbnRfc3RyaW5nIFwifVwiO1xuICBwcmludF9uZXdsaW5lICgpXG5hbmQgZHVtcF9kYXRhIDogdHlwZSB2LiAodiAtPiB1bml0KSAtPiB2IGRhdGEgLT4gdW5pdCA9IGZ1biBmIC0+XG4gIGZ1bmN0aW9uXG4gICAgU2VtcHR5IC0+IHByaW50X3N0cmluZyBcIlNlbXB0eVwiXG4gIHwgU2NvbnMgKGEsIGQpIC0+XG4gICAgICBwcmludF9zdHJpbmcgXCJTY29ucyAoXCI7XG4gICAgICBmIGE7XG4gICAgICBwcmludF9zdHJpbmcgXCIsIFwiO1xuICAgICAgZHVtcF9kYXRhIGYgZDtcbiAgICAgIHByaW50X3N0cmluZyBcIilcIlxuICB8IFNhcHAgKGQxLCBkMikgLT5cbiAgICAgIHByaW50X3N0cmluZyBcIlNhcHAgKFwiO1xuICAgICAgZHVtcF9kYXRhIGYgZDE7XG4gICAgICBwcmludF9zdHJpbmcgXCIsIFwiO1xuICAgICAgZHVtcF9kYXRhIGYgZDI7XG4gICAgICBwcmludF9zdHJpbmcgXCIpXCJcbiAgfCBTbGF6eSBfIC0+IHByaW50X3N0cmluZyBcIlNsYXp5XCJcbiAgfCBTZ2VuIF8gLT4gcHJpbnRfc3RyaW5nIFwiU2dlblwiXG4gIHwgU2J1ZmZpbyBfIC0+IHByaW50X3N0cmluZyBcIlNidWZmaW9cIlxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgUGllcnJlIFdlaXMgYW5kIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5OSBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBFeHRlbnNpYmxlIGJ1ZmZlcnMgKilcblxudHlwZSB0ID1cbiB7bXV0YWJsZSBidWZmZXIgOiBieXRlcztcbiAgbXV0YWJsZSBwb3NpdGlvbiA6IGludDtcbiAgbXV0YWJsZSBsZW5ndGggOiBpbnQ7XG4gIGluaXRpYWxfYnVmZmVyIDogYnl0ZXN9XG4oKiBJbnZhcmlhbnRzOiBhbGwgcGFydHMgb2YgdGhlIGNvZGUgcHJlc2VydmUgdGhlIGludmFyaWFudHMgdGhhdDpcbiAgIC0gWzAgPD0gYi5wb3NpdGlvbiA8PSBiLmxlbmd0aF1cbiAgIC0gW2IubGVuZ3RoID0gQnl0ZXMubGVuZ3RoIGIuYnVmZmVyXVxuXG4gICBOb3RlIGluIHBhcnRpY3VsYXIgdGhhdCBbYi5wb3NpdGlvbiA9IGIubGVuZ3RoXSBpcyBsZWdhbCxcbiAgIGl0IG1lYW5zIHRoYXQgdGhlIGJ1ZmZlciBpcyBmdWxsIGFuZCB3aWxsIGhhdmUgdG8gYmUgZXh0ZW5kZWRcbiAgIGJlZm9yZSBhbnkgZnVydGhlciBhZGRpdGlvbi4gKilcblxubGV0IGNyZWF0ZSBuID1cbiBsZXQgbiA9IGlmIG4gPCAxIHRoZW4gMSBlbHNlIG4gaW5cbiBsZXQgbiA9IGlmIG4gPiBTeXMubWF4X3N0cmluZ19sZW5ndGggdGhlbiBTeXMubWF4X3N0cmluZ19sZW5ndGggZWxzZSBuIGluXG4gbGV0IHMgPSBCeXRlcy5jcmVhdGUgbiBpblxuIHtidWZmZXIgPSBzOyBwb3NpdGlvbiA9IDA7IGxlbmd0aCA9IG47IGluaXRpYWxfYnVmZmVyID0gc31cblxubGV0IGNvbnRlbnRzIGIgPSBCeXRlcy5zdWJfc3RyaW5nIGIuYnVmZmVyIDAgYi5wb3NpdGlvblxubGV0IHRvX2J5dGVzIGIgPSBCeXRlcy5zdWIgYi5idWZmZXIgMCBiLnBvc2l0aW9uXG5cbmxldCBzdWIgYiBvZnMgbGVuID1cbiAgaWYgb2ZzIDwgMCB8fCBsZW4gPCAwIHx8IG9mcyA+IGIucG9zaXRpb24gLSBsZW5cbiAgdGhlbiBpbnZhbGlkX2FyZyBcIkJ1ZmZlci5zdWJcIlxuICBlbHNlIEJ5dGVzLnN1Yl9zdHJpbmcgYi5idWZmZXIgb2ZzIGxlblxuXG5cbmxldCBibGl0IHNyYyBzcmNvZmYgZHN0IGRzdG9mZiBsZW4gPVxuICBpZiBsZW4gPCAwIHx8IHNyY29mZiA8IDAgfHwgc3Jjb2ZmID4gc3JjLnBvc2l0aW9uIC0gbGVuXG4gICAgICAgICAgICAgfHwgZHN0b2ZmIDwgMCB8fCBkc3RvZmYgPiAoQnl0ZXMubGVuZ3RoIGRzdCkgLSBsZW5cbiAgdGhlbiBpbnZhbGlkX2FyZyBcIkJ1ZmZlci5ibGl0XCJcbiAgZWxzZVxuICAgIEJ5dGVzLnVuc2FmZV9ibGl0IHNyYy5idWZmZXIgc3Jjb2ZmIGRzdCBkc3RvZmYgbGVuXG5cblxubGV0IG50aCBiIG9mcyA9XG4gIGlmIG9mcyA8IDAgfHwgb2ZzID49IGIucG9zaXRpb24gdGhlblxuICAgaW52YWxpZF9hcmcgXCJCdWZmZXIubnRoXCJcbiAgZWxzZSBCeXRlcy51bnNhZmVfZ2V0IGIuYnVmZmVyIG9mc1xuXG5cbmxldCBsZW5ndGggYiA9IGIucG9zaXRpb25cblxubGV0IGNsZWFyIGIgPSBiLnBvc2l0aW9uIDwtIDBcblxubGV0IHJlc2V0IGIgPVxuICBiLnBvc2l0aW9uIDwtIDA7XG4gIGIuYnVmZmVyIDwtIGIuaW5pdGlhbF9idWZmZXI7XG4gIGIubGVuZ3RoIDwtIEJ5dGVzLmxlbmd0aCBiLmJ1ZmZlclxuXG4oKiBbcmVzaXplIGIgbW9yZV0gZW5zdXJlcyB0aGF0IFtiLnBvc2l0aW9uICsgbW9yZSA8PSBiLmxlbmd0aF0gaG9sZHNcbiAgIGJ5IGR5bmFtaWNhbGx5IGV4dGVuZGluZyBbYi5idWZmZXJdIGlmIG5lY2Vzc2FyeSAtLSBhbmQgdGh1c1xuICAgaW5jcmVhc2luZyBbYi5sZW5ndGhdLlxuXG4gICBJbiBwYXJ0aWN1bGFyLCBhZnRlciBbcmVzaXplIGIgbW9yZV0gaXMgY2FsbGVkLCBhIGRpcmVjdCBhY2Nlc3Mgb2ZcbiAgIHNpemUgW21vcmVdIGF0IFtiLnBvc2l0aW9uXSB3aWxsIGFsd2F5cyBiZSBpbi1ib3VuZHMsIHNvIHRoYXRcbiAgICh1bnNhZmVfe2dldCxzZXR9KSBtYXkgYmUgdXNlZCBmb3IgcGVyZm9ybWFuY2UuXG4qKVxubGV0IHJlc2l6ZSBiIG1vcmUgPVxuICBsZXQgb2xkX3BvcyA9IGIucG9zaXRpb24gaW5cbiAgbGV0IG9sZF9sZW4gPSBiLmxlbmd0aCBpblxuICBsZXQgbmV3X2xlbiA9IHJlZiBvbGRfbGVuIGluXG4gIHdoaWxlIG9sZF9wb3MgKyBtb3JlID4gIW5ld19sZW4gZG8gbmV3X2xlbiA6PSAyICogIW5ld19sZW4gZG9uZTtcbiAgaWYgIW5ld19sZW4gPiBTeXMubWF4X3N0cmluZ19sZW5ndGggdGhlbiBiZWdpblxuICAgIGlmIG9sZF9wb3MgKyBtb3JlIDw9IFN5cy5tYXhfc3RyaW5nX2xlbmd0aFxuICAgIHRoZW4gbmV3X2xlbiA6PSBTeXMubWF4X3N0cmluZ19sZW5ndGhcbiAgICBlbHNlIGZhaWx3aXRoIFwiQnVmZmVyLmFkZDogY2Fubm90IGdyb3cgYnVmZmVyXCJcbiAgZW5kO1xuICBsZXQgbmV3X2J1ZmZlciA9IEJ5dGVzLmNyZWF0ZSAhbmV3X2xlbiBpblxuICAoKiBQUiM2MTQ4OiBsZXQncyBrZWVwIHVzaW5nIFtibGl0XSByYXRoZXIgdGhhbiBbdW5zYWZlX2JsaXRdIGluXG4gICAgIHRoaXMgdHJpY2t5IGZ1bmN0aW9uIHRoYXQgaXMgc2xvdyBhbnl3YXkuICopXG4gIEJ5dGVzLmJsaXQgYi5idWZmZXIgMCBuZXdfYnVmZmVyIDAgYi5wb3NpdGlvbjtcbiAgYi5idWZmZXIgPC0gbmV3X2J1ZmZlcjtcbiAgYi5sZW5ndGggPC0gIW5ld19sZW47XG4gIGFzc2VydCAoYi5wb3NpdGlvbiArIG1vcmUgPD0gYi5sZW5ndGgpO1xuICBhc3NlcnQgKG9sZF9wb3MgKyBtb3JlIDw9IGIubGVuZ3RoKTtcbiAgKClcbiAgKCogTm90ZTogdGhlcmUgYXJlIHZhcmlvdXMgc2l0dWF0aW9ucyAocHJlZW1wdGl2ZSB0aHJlYWRzLCBzaWduYWxzIGFuZFxuICAgICBnYyBmaW5hbGl6ZXJzKSB3aGVyZSBPQ2FtbCBjb2RlIG1heSBiZSBydW4gYXN5bmNocm9ub3VzbHk7IGluXG4gICAgIHBhcnRpY3VsYXIsIHRoZXJlIG1heSBiZSBhIHJhY2Ugd2l0aCBhbm90aGVyIHVzZXIgb2YgW2JdLCBjaGFuZ2luZ1xuICAgICBpdHMgbXV0YWJsZSBmaWVsZHMgaW4gdGhlIG1pZGRsZSBvZiB0aGUgW3Jlc2l6ZV0gY2FsbC4gVGhlIEJ1ZmZlclxuICAgICBtb2R1bGUgZG9lcyBub3QgcHJvdmlkZSBhbnkgY29ycmVjdG5lc3MgZ3VhcmFudGVlIGlmIHRoYXQgaGFwcGVucyxcbiAgICAgYnV0IHdlIG11c3Qgc3RpbGwgZW5zdXJlIHRoYXQgdGhlIGRhdGFzdHJ1Y3R1cmUgaW52YXJpYW50cyBob2xkIGZvclxuICAgICBtZW1vcnktc2FmZXR5IC0tIGFzIHdlIHBsYW4gdG8gdXNlIFt1bnNhZmVfe2dldCxzZXR9XS5cblxuICAgICBUaGVyZSBhcmUgdHdvIHBvdGVudGlhbCBhbGxvY2F0aW9uIHBvaW50cyBpbiB0aGlzIGZ1bmN0aW9uLFxuICAgICBbcmVmXSBhbmQgW0J5dGVzLmNyZWF0ZV0sIGJ1dCBhbGwgcmVhZHMgYW5kIHdyaXRlcyB0byB0aGUgZmllbGRzXG4gICAgIG9mIFtiXSBoYXBwZW4gYmVmb3JlIGJvdGggb2YgdGhlbSBvciBhZnRlciBib3RoIG9mIHRoZW0uXG5cbiAgICAgV2UgdGhlcmVmb3JlIGFzc3VtZSB0aGF0IFtiLnBvc2l0aW9uXSBtYXkgY2hhbmdlIGF0IHRoZXNlIGFsbG9jYXRpb25zLFxuICAgICBhbmQgY2hlY2sgdGhhdCB0aGUgW2IucG9zaXRpb24gKyBtb3JlIDw9IGIubGVuZ3RoXSBwb3N0Y29uZGl0aW9uXG4gICAgIGhvbGRzIGZvciBib3RoIHZhbHVlcyBvZiBbYi5wb3NpdGlvbl0sIGJlZm9yZSBvciBhZnRlciB0aGUgZnVuY3Rpb25cbiAgICAgaXMgY2FsbGVkLiBNb3JlIHByZWNpc2VseSwgdGhlIGZvbGxvd2luZyBpbnZhcmlhbnRzIG11c3QgaG9sZCBpZiB0aGVcbiAgICAgZnVuY3Rpb24gcmV0dXJucyBjb3JyZWN0bHksIGluIGFkZGl0aW9uIHRvIHRoZSB1c3VhbCBidWZmZXIgaW52YXJpYW50czpcbiAgICAgLSBbb2xkKGIucG9zaXRpb24pICsgbW9yZSA8PSBuZXcoYi5sZW5ndGgpXVxuICAgICAtIFtuZXcoYi5wb3NpdGlvbikgKyBtb3JlIDw9IG5ldyhiLmxlbmd0aCldXG4gICAgIC0gW29sZChiLmxlbmd0aCkgPD0gbmV3KGIubGVuZ3RoKV1cblxuICAgICBOb3RlOiBbYi5wb3NpdGlvbiArIG1vcmUgPD0gb2xkKGIubGVuZ3RoKV0gZG9lcyAqbm90KlxuICAgICBob2xkIGluIGdlbmVyYWwsIGFzIGl0IGlzIHByZWNpc2VseSB0aGUgY2FzZSB3aGVyZSB5b3UgbmVlZFxuICAgICB0byBjYWxsIFtyZXNpemVdIHRvIGluY3JlYXNlIFtiLmxlbmd0aF0uXG5cbiAgICAgTm90ZTogW2Fzc2VydF0gYWJvdmUgZG9lcyBub3QgbWVhbiB0aGF0IHdlIGtub3cgdGhlIGNvbmRpdGlvbnNcbiAgICAgYWx3YXlzIGhvbGQsIGJ1dCB0aGF0IHRoZSBmdW5jdGlvbiBtYXkgcmV0dXJuIGNvcnJlY3RseVxuICAgICBvbmx5IGlmIHRoZXkgaG9sZC5cblxuICAgICBOb3RlOiB0aGUgb3RoZXIgZnVuY3Rpb25zIGluIHRoaXMgbW9kdWxlIGRvZXMgbm90IG5lZWRcbiAgICAgdG8gYmUgY2hlY2tlZCB3aXRoIHRoaXMgbGV2ZWwgb2Ygc2NydXRpbnksIGdpdmVuIHRoYXQgdGhleVxuICAgICByZWFkL3dyaXRlIHRoZSBidWZmZXIgaW1tZWRpYXRlbHkgYWZ0ZXIgY2hlY2tpbmcgdGhhdFxuICAgICBbYi5wb3NpdGlvbiArIG1vcmUgPD0gYi5sZW5ndGhdIGhvbGQgb3IgY2FsbGluZyBbcmVzaXplXS5cbiAgKilcblxubGV0IGFkZF9jaGFyIGIgYyA9XG4gIGxldCBwb3MgPSBiLnBvc2l0aW9uIGluXG4gIGlmIHBvcyA+PSBiLmxlbmd0aCB0aGVuIHJlc2l6ZSBiIDE7XG4gIEJ5dGVzLnVuc2FmZV9zZXQgYi5idWZmZXIgcG9zIGM7XG4gIGIucG9zaXRpb24gPC0gcG9zICsgMVxuXG5sZXQgdWNoYXJfdXRmXzhfYnl0ZV9sZW5ndGhfbWF4ID0gNFxubGV0IHVjaGFyX3V0Zl8xNl9ieXRlX2xlbmd0aF9tYXggPSA0XG5cbmxldCByZWMgYWRkX3V0Zl84X3VjaGFyIGIgdSA9XG4gIGxldCBwb3MgPSBiLnBvc2l0aW9uIGluXG4gIGlmIHBvcyA+PSBiLmxlbmd0aCB0aGVuIHJlc2l6ZSBiIHVjaGFyX3V0Zl84X2J5dGVfbGVuZ3RoX21heDtcbiAgbGV0IG4gPSBCeXRlcy5zZXRfdXRmXzhfdWNoYXIgYi5idWZmZXIgcG9zIHUgaW5cbiAgaWYgbiA9IDBcbiAgdGhlbiAocmVzaXplIGIgdWNoYXJfdXRmXzhfYnl0ZV9sZW5ndGhfbWF4OyBhZGRfdXRmXzhfdWNoYXIgYiB1KVxuICBlbHNlIChiLnBvc2l0aW9uIDwtIHBvcyArIG4pXG5cbmxldCByZWMgYWRkX3V0Zl8xNmJlX3VjaGFyIGIgdSA9XG4gIGxldCBwb3MgPSBiLnBvc2l0aW9uIGluXG4gIGlmIHBvcyA+PSBiLmxlbmd0aCB0aGVuIHJlc2l6ZSBiIHVjaGFyX3V0Zl8xNl9ieXRlX2xlbmd0aF9tYXg7XG4gIGxldCBuID0gQnl0ZXMuc2V0X3V0Zl8xNmJlX3VjaGFyIGIuYnVmZmVyIHBvcyB1IGluXG4gIGlmIG4gPSAwXG4gIHRoZW4gKHJlc2l6ZSBiIHVjaGFyX3V0Zl8xNl9ieXRlX2xlbmd0aF9tYXg7IGFkZF91dGZfMTZiZV91Y2hhciBiIHUpXG4gIGVsc2UgKGIucG9zaXRpb24gPC0gcG9zICsgbilcblxubGV0IHJlYyBhZGRfdXRmXzE2bGVfdWNoYXIgYiB1ID1cbiAgbGV0IHBvcyA9IGIucG9zaXRpb24gaW5cbiAgaWYgcG9zID49IGIubGVuZ3RoIHRoZW4gcmVzaXplIGIgdWNoYXJfdXRmXzE2X2J5dGVfbGVuZ3RoX21heDtcbiAgbGV0IG4gPSBCeXRlcy5zZXRfdXRmXzE2bGVfdWNoYXIgYi5idWZmZXIgcG9zIHUgaW5cbiAgaWYgbiA9IDBcbiAgdGhlbiAocmVzaXplIGIgdWNoYXJfdXRmXzE2X2J5dGVfbGVuZ3RoX21heDsgYWRkX3V0Zl8xNmxlX3VjaGFyIGIgdSlcbiAgZWxzZSAoYi5wb3NpdGlvbiA8LSBwb3MgKyBuKVxuXG5sZXQgYWRkX3N1YnN0cmluZyBiIHMgb2Zmc2V0IGxlbiA9XG4gIGlmIG9mZnNldCA8IDAgfHwgbGVuIDwgMCB8fCBvZmZzZXQgPiBTdHJpbmcubGVuZ3RoIHMgLSBsZW5cbiAgdGhlbiBpbnZhbGlkX2FyZyBcIkJ1ZmZlci5hZGRfc3Vic3RyaW5nL2FkZF9zdWJieXRlc1wiO1xuICBsZXQgbmV3X3Bvc2l0aW9uID0gYi5wb3NpdGlvbiArIGxlbiBpblxuICBpZiBuZXdfcG9zaXRpb24gPiBiLmxlbmd0aCB0aGVuIHJlc2l6ZSBiIGxlbjtcbiAgQnl0ZXMudW5zYWZlX2JsaXRfc3RyaW5nIHMgb2Zmc2V0IGIuYnVmZmVyIGIucG9zaXRpb24gbGVuO1xuICBiLnBvc2l0aW9uIDwtIG5ld19wb3NpdGlvblxuXG5sZXQgYWRkX3N1YmJ5dGVzIGIgcyBvZmZzZXQgbGVuID1cbiAgYWRkX3N1YnN0cmluZyBiIChCeXRlcy51bnNhZmVfdG9fc3RyaW5nIHMpIG9mZnNldCBsZW5cblxubGV0IGFkZF9zdHJpbmcgYiBzID1cbiAgbGV0IGxlbiA9IFN0cmluZy5sZW5ndGggcyBpblxuICBsZXQgbmV3X3Bvc2l0aW9uID0gYi5wb3NpdGlvbiArIGxlbiBpblxuICBpZiBuZXdfcG9zaXRpb24gPiBiLmxlbmd0aCB0aGVuIHJlc2l6ZSBiIGxlbjtcbiAgQnl0ZXMudW5zYWZlX2JsaXRfc3RyaW5nIHMgMCBiLmJ1ZmZlciBiLnBvc2l0aW9uIGxlbjtcbiAgYi5wb3NpdGlvbiA8LSBuZXdfcG9zaXRpb25cblxubGV0IGFkZF9ieXRlcyBiIHMgPSBhZGRfc3RyaW5nIGIgKEJ5dGVzLnVuc2FmZV90b19zdHJpbmcgcylcblxubGV0IGFkZF9idWZmZXIgYiBicyA9XG4gIGFkZF9zdWJieXRlcyBiIGJzLmJ1ZmZlciAwIGJzLnBvc2l0aW9uXG5cbigqIHRoaXMgKHByaXZhdGUpIGZ1bmN0aW9uIGNvdWxkIG1vdmUgaW50byB0aGUgc3RhbmRhcmQgbGlicmFyeSAqKVxubGV0IHJlYWxseV9pbnB1dF91cF90byBpYyBidWYgb2ZzIGxlbiA9XG4gIGxldCByZWMgbG9vcCBpYyBidWYgfmFscmVhZHlfcmVhZCB+b2ZzIH50b19yZWFkID1cbiAgICBpZiB0b19yZWFkID0gMCB0aGVuIGFscmVhZHlfcmVhZFxuICAgIGVsc2UgYmVnaW5cbiAgICAgIGxldCByID0gaW5wdXQgaWMgYnVmIG9mcyB0b19yZWFkIGluXG4gICAgICBpZiByID0gMCB0aGVuIGFscmVhZHlfcmVhZFxuICAgICAgZWxzZSBiZWdpblxuICAgICAgICBsZXQgYWxyZWFkeV9yZWFkID0gYWxyZWFkeV9yZWFkICsgciBpblxuICAgICAgICBsZXQgb2ZzID0gb2ZzICsgciBpblxuICAgICAgICBsZXQgdG9fcmVhZCA9IHRvX3JlYWQgLSByIGluXG4gICAgICAgIGxvb3AgaWMgYnVmIH5hbHJlYWR5X3JlYWQgfm9mcyB+dG9fcmVhZFxuICAgICAgZW5kXG4gICAgZW5kXG4gIGluIGxvb3AgaWMgYnVmIH5hbHJlYWR5X3JlYWQ6MCB+b2ZzIH50b19yZWFkOmxlblxuXG5cbmxldCB1bnNhZmVfYWRkX2NoYW5uZWxfdXBfdG8gYiBpYyBsZW4gPVxuICBpZiBiLnBvc2l0aW9uICsgbGVuID4gYi5sZW5ndGggdGhlbiByZXNpemUgYiBsZW47XG4gIGxldCBuID0gcmVhbGx5X2lucHV0X3VwX3RvIGljIGIuYnVmZmVyIGIucG9zaXRpb24gbGVuIGluXG4gICgqIFRoZSBhc3NlcnRpb24gYmVsb3cgbWF5IGZhaWwgaW4gd2VpcmQgc2NlbmFyaW8gd2hlcmVcbiAgICAgdGhyZWFkZWQvZmluYWxpemVyIGNvZGUsIHJ1biBhc3luY2hyb25vdXNseSBkdXJpbmcgdGhlXG4gICAgIFtyZWFsbHlfaW5wdXRfdXBfdG9dIGNhbGwsIHJhY2VzIG9uIHRoZSBidWZmZXI7IHdlIGRvbid0IGVuc3VyZVxuICAgICBjb3JyZWN0bmVzcyBpbiB0aGlzIGNhc2UsIGJ1dCBuZWVkIHRvIHByZXNlcnZlIHRoZSBpbnZhcmlhbnRzIGZvclxuICAgICBtZW1vcnktc2FmZXR5IChzZWUgZGlzY3Vzc2lvbiBvZiBbcmVzaXplXSkuICopXG4gIGFzc2VydCAoYi5wb3NpdGlvbiArIG4gPD0gYi5sZW5ndGgpO1xuICBiLnBvc2l0aW9uIDwtIGIucG9zaXRpb24gKyBuO1xuICBuXG5cbmxldCBhZGRfY2hhbm5lbCBiIGljIGxlbiA9XG4gIGlmIGxlbiA8IDAgfHwgbGVuID4gU3lzLm1heF9zdHJpbmdfbGVuZ3RoIHRoZW4gICAoKiBQUiM1MDA0ICopXG4gICAgaW52YWxpZF9hcmcgXCJCdWZmZXIuYWRkX2NoYW5uZWxcIjtcbiAgbGV0IG4gPSB1bnNhZmVfYWRkX2NoYW5uZWxfdXBfdG8gYiBpYyBsZW4gaW5cbiAgKCogSXQgaXMgaW50ZW50aW9uYWwgdGhhdCBhIGNvbnN1bWVyIGNhdGNoaW5nIEVuZF9vZl9maWxlXG4gICAgIHdpbGwgc2VlIHRoZSBkYXRhIHdyaXR0ZW4gKHNlZSAjNjcxOSwgIzcxMzYpLiAqKVxuICBpZiBuIDwgbGVuIHRoZW4gcmFpc2UgRW5kX29mX2ZpbGU7XG4gICgpXG5cbmxldCBvdXRwdXRfYnVmZmVyIG9jIGIgPVxuICBvdXRwdXQgb2MgYi5idWZmZXIgMCBiLnBvc2l0aW9uXG5cbmxldCBjbG9zaW5nID0gZnVuY3Rpb25cbiAgfCAnKCcgLT4gJyknXG4gIHwgJ3snIC0+ICd9J1xuICB8IF8gLT4gYXNzZXJ0IGZhbHNlXG5cbigqIG9wZW5pbmcgYW5kIGNsb3Npbmc6IG9wZW4gYW5kIGNsb3NlIGNoYXJhY3RlcnMsIHR5cGljYWxseSAoIGFuZCApXG4gICBrOiBiYWxhbmNlIG9mIG9wZW5pbmcgYW5kIGNsb3NpbmcgY2hhcnNcbiAgIHM6IHRoZSBzdHJpbmcgd2hlcmUgd2UgYXJlIHNlYXJjaGluZ1xuICAgc3RhcnQ6IHRoZSBpbmRleCB3aGVyZSB3ZSBzdGFydCB0aGUgc2VhcmNoLiAqKVxubGV0IGFkdmFuY2VfdG9fY2xvc2luZyBvcGVuaW5nIGNsb3NpbmcgayBzIHN0YXJ0ID1cbiAgbGV0IHJlYyBhZHZhbmNlIGsgaSBsaW0gPVxuICAgIGlmIGkgPj0gbGltIHRoZW4gcmFpc2UgTm90X2ZvdW5kIGVsc2VcbiAgICBpZiBzLltpXSA9IG9wZW5pbmcgdGhlbiBhZHZhbmNlIChrICsgMSkgKGkgKyAxKSBsaW0gZWxzZVxuICAgIGlmIHMuW2ldID0gY2xvc2luZyB0aGVuXG4gICAgICBpZiBrID0gMCB0aGVuIGkgZWxzZSBhZHZhbmNlIChrIC0gMSkgKGkgKyAxKSBsaW1cbiAgICBlbHNlIGFkdmFuY2UgayAoaSArIDEpIGxpbSBpblxuICBhZHZhbmNlIGsgc3RhcnQgKFN0cmluZy5sZW5ndGggcylcblxubGV0IGFkdmFuY2VfdG9fbm9uX2FscGhhIHMgc3RhcnQgPVxuICBsZXQgcmVjIGFkdmFuY2UgaSBsaW0gPVxuICAgIGlmIGkgPj0gbGltIHRoZW4gbGltIGVsc2VcbiAgICBtYXRjaCBzLltpXSB3aXRoXG4gICAgfCAnYScgLi4gJ3onIHwgJ0EnIC4uICdaJyB8ICcwJyAuLiAnOScgfCAnXycgLT4gYWR2YW5jZSAoaSArIDEpIGxpbVxuICAgIHwgXyAtPiBpIGluXG4gIGFkdmFuY2Ugc3RhcnQgKFN0cmluZy5sZW5ndGggcylcblxuKCogV2UgYXJlIGp1c3QgYXQgdGhlIGJlZ2lubmluZyBvZiBhbiBpZGVudCBpbiBzLCBzdGFydGluZyBhdCBzdGFydC4gKilcbmxldCBmaW5kX2lkZW50IHMgc3RhcnQgbGltID1cbiAgaWYgc3RhcnQgPj0gbGltIHRoZW4gcmFpc2UgTm90X2ZvdW5kIGVsc2VcbiAgbWF0Y2ggcy5bc3RhcnRdIHdpdGhcbiAgKCogUGFyZW50aGVzaXplZCBpZGVudCA/ICopXG4gIHwgJygnIHwgJ3snIGFzIGMgLT5cbiAgICAgbGV0IG5ld19zdGFydCA9IHN0YXJ0ICsgMSBpblxuICAgICBsZXQgc3RvcCA9IGFkdmFuY2VfdG9fY2xvc2luZyBjIChjbG9zaW5nIGMpIDAgcyBuZXdfc3RhcnQgaW5cbiAgICAgU3RyaW5nLnN1YiBzIG5ld19zdGFydCAoc3RvcCAtIHN0YXJ0IC0gMSksIHN0b3AgKyAxXG4gICgqIFJlZ3VsYXIgaWRlbnQgKilcbiAgfCBfIC0+XG4gICAgIGxldCBzdG9wID0gYWR2YW5jZV90b19ub25fYWxwaGEgcyAoc3RhcnQgKyAxKSBpblxuICAgICBTdHJpbmcuc3ViIHMgc3RhcnQgKHN0b3AgLSBzdGFydCksIHN0b3BcblxuKCogU3Vic3RpdHV0ZSAkaWRlbnQsICQoaWRlbnQpLCBvciAke2lkZW50fSBpbiBzLFxuICAgIGFjY29yZGluZyB0byB0aGUgZnVuY3Rpb24gbWFwcGluZyBmLiAqKVxubGV0IGFkZF9zdWJzdGl0dXRlIGIgZiBzID1cbiAgbGV0IGxpbSA9IFN0cmluZy5sZW5ndGggcyBpblxuICBsZXQgcmVjIHN1YnN0IHByZXZpb3VzIGkgPVxuICAgIGlmIGkgPCBsaW0gdGhlbiBiZWdpblxuICAgICAgbWF0Y2ggcy5baV0gd2l0aFxuICAgICAgfCAnJCcgYXMgY3VycmVudCB3aGVuIHByZXZpb3VzID0gJ1xcXFwnIC0+XG4gICAgICAgICBhZGRfY2hhciBiIGN1cnJlbnQ7XG4gICAgICAgICBzdWJzdCAnICcgKGkgKyAxKVxuICAgICAgfCAnJCcgLT5cbiAgICAgICAgIGxldCBqID0gaSArIDEgaW5cbiAgICAgICAgIGxldCBpZGVudCwgbmV4dF9pID0gZmluZF9pZGVudCBzIGogbGltIGluXG4gICAgICAgICBhZGRfc3RyaW5nIGIgKGYgaWRlbnQpO1xuICAgICAgICAgc3Vic3QgJyAnIG5leHRfaVxuICAgICAgfCBjdXJyZW50IHdoZW4gcHJldmlvdXMgPT0gJ1xcXFwnIC0+XG4gICAgICAgICBhZGRfY2hhciBiICdcXFxcJztcbiAgICAgICAgIGFkZF9jaGFyIGIgY3VycmVudDtcbiAgICAgICAgIHN1YnN0ICcgJyAoaSArIDEpXG4gICAgICB8ICdcXFxcJyBhcyBjdXJyZW50IC0+XG4gICAgICAgICBzdWJzdCBjdXJyZW50IChpICsgMSlcbiAgICAgIHwgY3VycmVudCAtPlxuICAgICAgICAgYWRkX2NoYXIgYiBjdXJyZW50O1xuICAgICAgICAgc3Vic3QgY3VycmVudCAoaSArIDEpXG4gICAgZW5kIGVsc2VcbiAgICBpZiBwcmV2aW91cyA9ICdcXFxcJyB0aGVuIGFkZF9jaGFyIGIgcHJldmlvdXMgaW5cbiAgc3Vic3QgJyAnIDBcblxubGV0IHRydW5jYXRlIGIgbGVuID1cbiAgICBpZiBsZW4gPCAwIHx8IGxlbiA+IGxlbmd0aCBiIHRoZW5cbiAgICAgIGludmFsaWRfYXJnIFwiQnVmZmVyLnRydW5jYXRlXCJcbiAgICBlbHNlXG4gICAgICBiLnBvc2l0aW9uIDwtIGxlblxuXG4oKiogezEgSXRlcmF0b3JzfSAqKVxuXG5sZXQgdG9fc2VxIGIgPVxuICBsZXQgcmVjIGF1eCBpICgpID1cbiAgICAoKiBOb3RlIHRoYXQgYi5wb3NpdGlvbiBpcyBub3QgYSBjb25zdGFudCBhbmQgY2Fubm90IGJlIGxpZnRlZCBvdXQgb2YgYXV4ICopXG4gICAgaWYgaSA+PSBiLnBvc2l0aW9uIHRoZW4gU2VxLk5pbFxuICAgIGVsc2VcbiAgICAgIGxldCB4ID0gQnl0ZXMudW5zYWZlX2dldCBiLmJ1ZmZlciBpIGluXG4gICAgICBTZXEuQ29ucyAoeCwgYXV4IChpKzEpKVxuICBpblxuICBhdXggMFxuXG5sZXQgdG9fc2VxaSBiID1cbiAgbGV0IHJlYyBhdXggaSAoKSA9XG4gICAgKCogTm90ZSB0aGF0IGIucG9zaXRpb24gaXMgbm90IGEgY29uc3RhbnQgYW5kIGNhbm5vdCBiZSBsaWZ0ZWQgb3V0IG9mIGF1eCAqKVxuICAgIGlmIGkgPj0gYi5wb3NpdGlvbiB0aGVuIFNlcS5OaWxcbiAgICBlbHNlXG4gICAgICBsZXQgeCA9IEJ5dGVzLnVuc2FmZV9nZXQgYi5idWZmZXIgaSBpblxuICAgICAgU2VxLkNvbnMgKChpLHgpLCBhdXggKGkrMSkpXG4gIGluXG4gIGF1eCAwXG5cbmxldCBhZGRfc2VxIGIgc2VxID0gU2VxLml0ZXIgKGFkZF9jaGFyIGIpIHNlcVxuXG5sZXQgb2Zfc2VxIGkgPVxuICBsZXQgYiA9IGNyZWF0ZSAzMiBpblxuICBhZGRfc2VxIGIgaTtcbiAgYlxuXG4oKiogezYgQmluYXJ5IGVuY29kaW5nIG9mIGludGVnZXJzfSAqKVxuXG5leHRlcm5hbCB1bnNhZmVfc2V0X2ludDggOiBieXRlcyAtPiBpbnQgLT4gaW50IC0+IHVuaXQgPSBcIiVieXRlc191bnNhZmVfc2V0XCJcbmV4dGVybmFsIHVuc2FmZV9zZXRfaW50MTYgOiBieXRlcyAtPiBpbnQgLT4gaW50IC0+IHVuaXQgPSBcIiVjYW1sX2J5dGVzX3NldDE2dVwiXG5leHRlcm5hbCB1bnNhZmVfc2V0X2ludDMyIDogYnl0ZXMgLT4gaW50IC0+IGludDMyIC0+IHVuaXQgPSBcIiVjYW1sX2J5dGVzX3NldDMydVwiXG5leHRlcm5hbCB1bnNhZmVfc2V0X2ludDY0IDogYnl0ZXMgLT4gaW50IC0+IGludDY0IC0+IHVuaXQgPSBcIiVjYW1sX2J5dGVzX3NldDY0dVwiXG5leHRlcm5hbCBzd2FwMTYgOiBpbnQgLT4gaW50ID0gXCIlYnN3YXAxNlwiXG5leHRlcm5hbCBzd2FwMzIgOiBpbnQzMiAtPiBpbnQzMiA9IFwiJWJzd2FwX2ludDMyXCJcbmV4dGVybmFsIHN3YXA2NCA6IGludDY0IC0+IGludDY0ID0gXCIlYnN3YXBfaW50NjRcIlxuXG5cbmxldCBhZGRfaW50OCBiIHggPVxuICBsZXQgbmV3X3Bvc2l0aW9uID0gYi5wb3NpdGlvbiArIDEgaW5cbiAgaWYgbmV3X3Bvc2l0aW9uID4gYi5sZW5ndGggdGhlbiByZXNpemUgYiAxO1xuICB1bnNhZmVfc2V0X2ludDggYi5idWZmZXIgYi5wb3NpdGlvbiB4O1xuICBiLnBvc2l0aW9uIDwtIG5ld19wb3NpdGlvblxuXG5sZXQgYWRkX2ludDE2X25lIGIgeCA9XG4gIGxldCBuZXdfcG9zaXRpb24gPSBiLnBvc2l0aW9uICsgMiBpblxuICBpZiBuZXdfcG9zaXRpb24gPiBiLmxlbmd0aCB0aGVuIHJlc2l6ZSBiIDI7XG4gIHVuc2FmZV9zZXRfaW50MTYgYi5idWZmZXIgYi5wb3NpdGlvbiB4O1xuICBiLnBvc2l0aW9uIDwtIG5ld19wb3NpdGlvblxuXG5sZXQgYWRkX2ludDMyX25lIGIgeCA9XG4gIGxldCBuZXdfcG9zaXRpb24gPSBiLnBvc2l0aW9uICsgNCBpblxuICBpZiBuZXdfcG9zaXRpb24gPiBiLmxlbmd0aCB0aGVuIHJlc2l6ZSBiIDQ7XG4gIHVuc2FmZV9zZXRfaW50MzIgYi5idWZmZXIgYi5wb3NpdGlvbiB4O1xuICBiLnBvc2l0aW9uIDwtIG5ld19wb3NpdGlvblxuXG5sZXQgYWRkX2ludDY0X25lIGIgeCA9XG4gIGxldCBuZXdfcG9zaXRpb24gPSBiLnBvc2l0aW9uICsgOCBpblxuICBpZiBuZXdfcG9zaXRpb24gPiBiLmxlbmd0aCB0aGVuIHJlc2l6ZSBiIDg7XG4gIHVuc2FmZV9zZXRfaW50NjQgYi5idWZmZXIgYi5wb3NpdGlvbiB4O1xuICBiLnBvc2l0aW9uIDwtIG5ld19wb3NpdGlvblxuXG5sZXQgYWRkX2ludDE2X2xlIGIgeCA9XG4gIGFkZF9pbnQxNl9uZSBiIChpZiBTeXMuYmlnX2VuZGlhbiB0aGVuIHN3YXAxNiB4IGVsc2UgeClcblxubGV0IGFkZF9pbnQxNl9iZSBiIHggPVxuICBhZGRfaW50MTZfbmUgYiAoaWYgU3lzLmJpZ19lbmRpYW4gdGhlbiB4IGVsc2Ugc3dhcDE2IHgpXG5cbmxldCBhZGRfaW50MzJfbGUgYiB4ID1cbiAgYWRkX2ludDMyX25lIGIgKGlmIFN5cy5iaWdfZW5kaWFuIHRoZW4gc3dhcDMyIHggZWxzZSB4KVxuXG5sZXQgYWRkX2ludDMyX2JlIGIgeCA9XG4gIGFkZF9pbnQzMl9uZSBiIChpZiBTeXMuYmlnX2VuZGlhbiB0aGVuIHggZWxzZSBzd2FwMzIgeClcblxubGV0IGFkZF9pbnQ2NF9sZSBiIHggPVxuICBhZGRfaW50NjRfbmUgYiAoaWYgU3lzLmJpZ19lbmRpYW4gdGhlbiBzd2FwNjQgeCBlbHNlIHgpXG5cbmxldCBhZGRfaW50NjRfYmUgYiB4ID1cbiAgYWRkX2ludDY0X25lIGIgKGlmIFN5cy5iaWdfZW5kaWFuIHRoZW4geCBlbHNlIHN3YXA2NCB4KVxuXG5sZXQgYWRkX3VpbnQ4ID0gYWRkX2ludDhcbmxldCBhZGRfdWludDE2X25lID0gYWRkX2ludDE2X25lXG5sZXQgYWRkX3VpbnQxNl9sZSA9IGFkZF9pbnQxNl9sZVxubGV0IGFkZF91aW50MTZfYmUgPSBhZGRfaW50MTZfYmVcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICBCZW5vaXQgVmF1Z29uLCBFTlNUQSAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMTQgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxub3BlbiBDYW1saW50ZXJuYWxGb3JtYXRCYXNpY3NcblxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbiAgICAgICAgICAgKCogVG9vbHMgdG8gbWFuaXB1bGF0ZSBzY2FubmluZyBzZXQgb2YgY2hhcnMgKHNlZSAlWy4uLl0pICopXG5cbnR5cGUgbXV0YWJsZV9jaGFyX3NldCA9IGJ5dGVzXG5cbigqIENyZWF0ZSBhIGZyZXNoLCBlbXB0eSwgbXV0YWJsZSBjaGFyIHNldC4gKilcbmxldCBjcmVhdGVfY2hhcl9zZXQgKCkgPSBCeXRlcy5tYWtlIDMyICdcXDAwMCdcblxuKCogQWRkIGEgY2hhciBpbiBhIG11dGFibGUgY2hhciBzZXQuICopXG5sZXQgYWRkX2luX2NoYXJfc2V0IGNoYXJfc2V0IGMgPVxuICBsZXQgaW5kID0gaW50X29mX2NoYXIgYyBpblxuICBsZXQgc3RyX2luZCA9IGluZCBsc3IgMyBhbmQgbWFzayA9IDEgbHNsIChpbmQgbGFuZCAwYjExMSkgaW5cbiAgQnl0ZXMuc2V0IGNoYXJfc2V0IHN0cl9pbmRcbiAgICAoY2hhcl9vZl9pbnQgKGludF9vZl9jaGFyIChCeXRlcy5nZXQgY2hhcl9zZXQgc3RyX2luZCkgbG9yIG1hc2spKVxuXG5sZXQgZnJlZXplX2NoYXJfc2V0IGNoYXJfc2V0ID1cbiAgQnl0ZXMudG9fc3RyaW5nIGNoYXJfc2V0XG5cbigqIENvbXB1dGUgdGhlIGNvbXBsZW1lbnQgb2YgYSBjaGFyIHNldC4gKilcbmxldCByZXZfY2hhcl9zZXQgY2hhcl9zZXQgPVxuICBsZXQgY2hhcl9zZXQnID0gY3JlYXRlX2NoYXJfc2V0ICgpIGluXG4gIGZvciBpID0gMCB0byAzMSBkb1xuICAgIEJ5dGVzLnNldCBjaGFyX3NldCcgaVxuICAgICAgKGNoYXJfb2ZfaW50IChpbnRfb2ZfY2hhciAoU3RyaW5nLmdldCBjaGFyX3NldCBpKSBseG9yIDB4RkYpKTtcbiAgZG9uZTtcbiAgQnl0ZXMudW5zYWZlX3RvX3N0cmluZyBjaGFyX3NldCdcblxuKCogUmV0dXJuIHRydWUgaWYgYSBgYycgaXMgaW4gYGNoYXJfc2V0Jy4gKilcbmxldCBpc19pbl9jaGFyX3NldCBjaGFyX3NldCBjID1cbiAgbGV0IGluZCA9IGludF9vZl9jaGFyIGMgaW5cbiAgbGV0IHN0cl9pbmQgPSBpbmQgbHNyIDMgYW5kIG1hc2sgPSAxIGxzbCAoaW5kIGxhbmQgMGIxMTEpIGluXG4gIChpbnRfb2ZfY2hhciAoU3RyaW5nLmdldCBjaGFyX3NldCBzdHJfaW5kKSBsYW5kIG1hc2spIDw+IDBcblxuXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICgqIElnbm9yZWQgcGFyYW0gY29udmVyc2lvbiAqKVxuXG4oKiBHQURUIHVzZWQgdG8gYWJzdHJhY3QgYW4gZXhpc3RlbnRpYWwgdHlwZSBwYXJhbWV0ZXIuICopXG4oKiBTZWUgcGFyYW1fZm9ybWF0X29mX2lnbm9yZWRfZm9ybWF0LiAqKVxudHlwZSAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgcGFyYW1fZm9ybWF0X2ViYiA9IFBhcmFtX2Zvcm1hdF9FQkIgOlxuICAgICgneCAtPiAnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgcGFyYW1fZm9ybWF0X2ViYlxuXG4oKiBDb21wdXRlIGEgcGFkZGluZyBhc3NvY2lhdGVkIHRvIGEgcGFkX29wdGlvbiAoc2VlIFwiJV80MmRcIikuICopXG5sZXQgcGFkX29mX3BhZF9vcHQgcGFkX29wdCA9IG1hdGNoIHBhZF9vcHQgd2l0aFxuICB8IE5vbmUgLT4gTm9fcGFkZGluZ1xuICB8IFNvbWUgd2lkdGggLT4gTGl0X3BhZGRpbmcgKFJpZ2h0LCB3aWR0aClcblxuKCogQ29tcHV0ZSBhIHByZWNpc2lvbiBhc3NvY2lhdGVkIHRvIGEgcHJlY19vcHRpb24gKHNlZSBcIiVfLjQyZlwiKS4gKilcbmxldCBwcmVjX29mX3ByZWNfb3B0IHByZWNfb3B0ID0gbWF0Y2ggcHJlY19vcHQgd2l0aFxuICB8IE5vbmUgLT4gTm9fcHJlY2lzaW9uXG4gIHwgU29tZSBuZGVjIC0+IExpdF9wcmVjaXNpb24gbmRlY1xuXG4oKiBUdXJuIGFuIGlnbm9yZWQgcGFyYW0gaW50byBpdHMgZXF1aXZhbGVudCBub3QtaWdub3JlZCBmb3JtYXQgbm9kZS4gKilcbigqIFVzZWQgZm9yIGZvcm1hdCBwcmV0dHktcHJpbnRpbmcgYW5kIFNjYW5mLiAqKVxubGV0IHBhcmFtX2Zvcm1hdF9vZl9pZ25vcmVkX2Zvcm1hdCA6IHR5cGUgYSBiIGMgZCBlIGYgeCB5IC5cbiAgICAoYSwgYiwgYywgZCwgeSwgeCkgaWdub3JlZCAtPiAoeCwgYiwgYywgeSwgZSwgZikgZm10IC0+XG4gICAgICAoYSwgYiwgYywgZCwgZSwgZikgcGFyYW1fZm9ybWF0X2ViYiA9XG5mdW4gaWduIGZtdCAtPiBtYXRjaCBpZ24gd2l0aFxuICB8IElnbm9yZWRfY2hhciAtPlxuICAgIFBhcmFtX2Zvcm1hdF9FQkIgKENoYXIgZm10KVxuICB8IElnbm9yZWRfY2FtbF9jaGFyIC0+XG4gICAgUGFyYW1fZm9ybWF0X0VCQiAoQ2FtbF9jaGFyIGZtdClcbiAgfCBJZ25vcmVkX3N0cmluZyBwYWRfb3B0IC0+XG4gICAgUGFyYW1fZm9ybWF0X0VCQiAoU3RyaW5nIChwYWRfb2ZfcGFkX29wdCBwYWRfb3B0LCBmbXQpKVxuICB8IElnbm9yZWRfY2FtbF9zdHJpbmcgcGFkX29wdCAtPlxuICAgIFBhcmFtX2Zvcm1hdF9FQkIgKENhbWxfc3RyaW5nIChwYWRfb2ZfcGFkX29wdCBwYWRfb3B0LCBmbXQpKVxuICB8IElnbm9yZWRfaW50IChpY29udiwgcGFkX29wdCkgLT5cbiAgICBQYXJhbV9mb3JtYXRfRUJCIChJbnQgKGljb252LCBwYWRfb2ZfcGFkX29wdCBwYWRfb3B0LCBOb19wcmVjaXNpb24sIGZtdCkpXG4gIHwgSWdub3JlZF9pbnQzMiAoaWNvbnYsIHBhZF9vcHQpIC0+XG4gICAgUGFyYW1fZm9ybWF0X0VCQlxuICAgICAgKEludDMyIChpY29udiwgcGFkX29mX3BhZF9vcHQgcGFkX29wdCwgTm9fcHJlY2lzaW9uLCBmbXQpKVxuICB8IElnbm9yZWRfbmF0aXZlaW50IChpY29udiwgcGFkX29wdCkgLT5cbiAgICBQYXJhbV9mb3JtYXRfRUJCXG4gICAgICAoTmF0aXZlaW50IChpY29udiwgcGFkX29mX3BhZF9vcHQgcGFkX29wdCwgTm9fcHJlY2lzaW9uLCBmbXQpKVxuICB8IElnbm9yZWRfaW50NjQgKGljb252LCBwYWRfb3B0KSAtPlxuICAgIFBhcmFtX2Zvcm1hdF9FQkJcbiAgICAgIChJbnQ2NCAoaWNvbnYsIHBhZF9vZl9wYWRfb3B0IHBhZF9vcHQsIE5vX3ByZWNpc2lvbiwgZm10KSlcbiAgfCBJZ25vcmVkX2Zsb2F0IChwYWRfb3B0LCBwcmVjX29wdCkgLT5cbiAgICBQYXJhbV9mb3JtYXRfRUJCXG4gICAgICAoRmxvYXQgKChGbG9hdF9mbGFnXywgRmxvYXRfZiksXG4gICAgICAgICAgICAgIHBhZF9vZl9wYWRfb3B0IHBhZF9vcHQsIHByZWNfb2ZfcHJlY19vcHQgcHJlY19vcHQsIGZtdCkpXG4gIHwgSWdub3JlZF9ib29sIHBhZF9vcHQgLT5cbiAgICBQYXJhbV9mb3JtYXRfRUJCIChCb29sIChwYWRfb2ZfcGFkX29wdCBwYWRfb3B0LCBmbXQpKVxuICB8IElnbm9yZWRfZm9ybWF0X2FyZyAocGFkX29wdCwgZm10dHkpIC0+XG4gICAgUGFyYW1fZm9ybWF0X0VCQiAoRm9ybWF0X2FyZyAocGFkX29wdCwgZm10dHksIGZtdCkpXG4gIHwgSWdub3JlZF9mb3JtYXRfc3Vic3QgKHBhZF9vcHQsIGZtdHR5KSAtPlxuICAgIFBhcmFtX2Zvcm1hdF9FQkJcbiAgICAgIChGb3JtYXRfc3Vic3QgKHBhZF9vcHQsIGZtdHR5LCBmbXQpKVxuICB8IElnbm9yZWRfcmVhZGVyIC0+XG4gICAgUGFyYW1fZm9ybWF0X0VCQiAoUmVhZGVyIGZtdClcbiAgfCBJZ25vcmVkX3NjYW5fY2hhcl9zZXQgKHdpZHRoX29wdCwgY2hhcl9zZXQpIC0+XG4gICAgUGFyYW1fZm9ybWF0X0VCQiAoU2Nhbl9jaGFyX3NldCAod2lkdGhfb3B0LCBjaGFyX3NldCwgZm10KSlcbiAgfCBJZ25vcmVkX3NjYW5fZ2V0X2NvdW50ZXIgY291bnRlciAtPlxuICAgIFBhcmFtX2Zvcm1hdF9FQkIgKFNjYW5fZ2V0X2NvdW50ZXIgKGNvdW50ZXIsIGZtdCkpXG4gIHwgSWdub3JlZF9zY2FuX25leHRfY2hhciAtPlxuICAgIFBhcmFtX2Zvcm1hdF9FQkIgKFNjYW5fbmV4dF9jaGFyIGZtdClcblxuXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogVHlwZXMgKilcblxudHlwZSAoJ2IsICdjKSBhY2NfZm9ybWF0dGluZ19nZW4gPVxuICB8IEFjY19vcGVuX3RhZyBvZiAoJ2IsICdjKSBhY2NcbiAgfCBBY2Nfb3Blbl9ib3ggb2YgKCdiLCAnYykgYWNjXG5cbigqIFJldmVyc2VkIGxpc3Qgb2YgcHJpbnRpbmcgYXRvbXMuICopXG4oKiBVc2VkIHRvIGFjY3VtdWxhdGUgcHJpbnRmIGFyZ3VtZW50cy4gKilcbmFuZCAoJ2IsICdjKSBhY2MgPVxuICB8IEFjY19mb3JtYXR0aW5nX2xpdCBvZiAoJ2IsICdjKSBhY2MgKiBmb3JtYXR0aW5nX2xpdFxuICAgICAgKCogU3BlY2lhbCBmbXR0aW5nIChib3gpICopXG4gIHwgQWNjX2Zvcm1hdHRpbmdfZ2VuIG9mICgnYiwgJ2MpIGFjYyAqICgnYiwgJ2MpIGFjY19mb3JtYXR0aW5nX2dlblxuICAgICAgKCogU3BlY2lhbCBmbXR0aW5nIChib3gpICopXG4gIHwgQWNjX3N0cmluZ19saXRlcmFsIG9mICgnYiwgJ2MpIGFjYyAqIHN0cmluZyAgICAgKCogTGl0ZXJhbCBzdHJpbmcgKilcbiAgfCBBY2NfY2hhcl9saXRlcmFsICAgb2YgKCdiLCAnYykgYWNjICogY2hhciAgICAgICAoKiBMaXRlcmFsIGNoYXIgKilcbiAgfCBBY2NfZGF0YV9zdHJpbmcgICAgb2YgKCdiLCAnYykgYWNjICogc3RyaW5nICAgICAoKiBHZW5lcmF0ZWQgc3RyaW5nICopXG4gIHwgQWNjX2RhdGFfY2hhciAgICAgIG9mICgnYiwgJ2MpIGFjYyAqIGNoYXIgICAgICAgKCogR2VuZXJhdGVkIGNoYXIgKilcbiAgfCBBY2NfZGVsYXkgICAgICAgICAgb2YgKCdiLCAnYykgYWNjICogKCdiIC0+ICdjKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogRGVsYXllZCBwcmludGluZyAoJWEsICV0KSAqKVxuICB8IEFjY19mbHVzaCAgICAgICAgICBvZiAoJ2IsICdjKSBhY2MgICAgICAgICAgICAgICgqIEZsdXNoICopXG4gIHwgQWNjX2ludmFsaWRfYXJnICAgIG9mICgnYiwgJ2MpIGFjYyAqIHN0cmluZ1xuICAgICAgKCogUmFpc2UgSW52YWxpZF9hcmd1bWVudCBtc2cgKilcbiAgfCBFbmRfb2ZfYWNjXG5cbigqIExpc3Qgb2YgaGV0ZXJvZ2VuZW91cyB2YWx1ZXMuICopXG4oKiBVc2VkIHRvIGFjY3VtdWxhdGUgc2NhbmYgY2FsbGJhY2sgYXJndW1lbnRzLiAqKVxudHlwZSAoJ2EsICdiKSBoZXRlcl9saXN0ID1cbiAgfCBDb25zIDogJ2MgKiAoJ2EsICdiKSBoZXRlcl9saXN0IC0+ICgnYyAtPiAnYSwgJ2IpIGhldGVyX2xpc3RcbiAgfCBOaWwgOiAoJ2IsICdiKSBoZXRlcl9saXN0XG5cbigqIEV4aXN0ZW50aWFsIEJsYWNrIEJveGVzLiAqKVxuKCogVXNlZCB0byBhYnN0cmFjdCBzb21lIGV4aXN0ZW50aWFsIHR5cGUgcGFyYW1ldGVycy4gKilcblxuKCogR0FEVCB0eXBlIGFzc29jaWF0aW5nIGEgcGFkZGluZyBhbmQgYW4gZm10dHkuICopXG4oKiBTZWUgdGhlIHR5cGVfcGFkZGluZyBmdW5jdGlvbi4gKilcbnR5cGUgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIHBhZGRpbmdfZm10dHlfZWJiID0gUGFkZGluZ19mbXR0eV9FQkIgOlxuICAgICAoJ3gsICd5KSBwYWRkaW5nICogKCd5LCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdHR5IC0+XG4gICAgICgneCwgJ2IsICdjLCAnZCwgJ2UsICdmKSBwYWRkaW5nX2ZtdHR5X2ViYlxuXG4oKiBHQURUIHR5cGUgYXNzb2NpYXRpbmcgYSBwYWRkaW5nLCBhIHByZWNpc2lvbiBhbmQgYW4gZm10dHkuICopXG4oKiBTZWUgdGhlIHR5cGVfcGFkcHJlYyBmdW5jdGlvbi4gKilcbnR5cGUgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIHBhZHByZWNfZm10dHlfZWJiID0gUGFkcHJlY19mbXR0eV9FQkIgOlxuICAgICAoJ3gsICd5KSBwYWRkaW5nICogKCd5LCAneikgcHJlY2lzaW9uICogKCd6LCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdHR5IC0+XG4gICAgICgneCwgJ2IsICdjLCAnZCwgJ2UsICdmKSBwYWRwcmVjX2ZtdHR5X2ViYlxuXG4oKiBHQURUIHR5cGUgYXNzb2NpYXRpbmcgYSBwYWRkaW5nIGFuZCBhbiBmbXQuICopXG4oKiBTZWUgbWFrZV9wYWRkaW5nX2ZtdF9lYmIgYW5kIHBhcnNlX2Zvcm1hdCBmdW5jdGlvbnMuICopXG50eXBlICgnYSwgJ2IsICdjLCAnZSwgJ2YpIHBhZGRpbmdfZm10X2ViYiA9IFBhZGRpbmdfZm10X0VCQiA6XG4gICAgIChfLCAneCAtPiAnYSkgcGFkZGluZyAqXG4gICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgKCd4LCAnYiwgJ2MsICdlLCAnZikgcGFkZGluZ19mbXRfZWJiXG5cbigqIEdBRFQgdHlwZSBhc3NvY2lhdGluZyBhIHByZWNpc2lvbiBhbmQgYW4gZm10LiAqKVxuKCogU2VlIG1ha2VfcHJlY2lzaW9uX2ZtdF9lYmIgYW5kIHBhcnNlX2Zvcm1hdCBmdW5jdGlvbnMuICopXG50eXBlICgnYSwgJ2IsICdjLCAnZSwgJ2YpIHByZWNpc2lvbl9mbXRfZWJiID0gUHJlY2lzaW9uX2ZtdF9FQkIgOlxuICAgICAoXywgJ3ggLT4gJ2EpIHByZWNpc2lvbiAqXG4gICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgKCd4LCAnYiwgJ2MsICdlLCAnZikgcHJlY2lzaW9uX2ZtdF9lYmJcblxuKCogR0FEVCB0eXBlIGFzc29jaWF0aW5nIGEgcGFkZGluZywgYSBwcmVjaXNpb24gYW5kIGFuIGZtdC4gKilcbigqIFNlZSBtYWtlX3BhZHByZWNfZm10X2ViYiBhbmQgcGFyc2VfZm9ybWF0IGZ1bmN0aW9ucy4gKilcbnR5cGUgKCdwLCAnYiwgJ2MsICdlLCAnZikgcGFkcHJlY19mbXRfZWJiID0gUGFkcHJlY19mbXRfRUJCIDpcbiAgICAgKCd4LCAneSkgcGFkZGluZyAqICgneSwgJ3AgLT4gJ2EpIHByZWNpc2lvbiAqXG4gICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgKCdwLCAnYiwgJ2MsICdlLCAnZikgcGFkcHJlY19mbXRfZWJiXG5cbigqIEFic3RyYWN0IHRoZSAnYSBhbmQgJ2QgcGFyYW1ldGVycyBvZiBhbiBmbXQuICopXG4oKiBPdXRwdXQgdHlwZSBvZiB0aGUgZm9ybWF0IHBhcnNpbmcgZnVuY3Rpb24uICopXG50eXBlICgnYiwgJ2MsICdlLCAnZikgZm10X2ViYiA9IEZtdF9FQkIgOlxuICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICgnYiwgJ2MsICdlLCAnZikgZm10X2ViYlxuXG4oKiBHQURUIHR5cGUgYXNzb2NpYXRpbmcgYW4gZm10dHkgYW5kIGFuIGZtdC4gKilcbigqIFNlZSB0aGUgdHlwZV9mb3JtYXRfZ2VuIGZ1bmN0aW9uLiAqKVxudHlwZSAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10X2ZtdHR5X2ViYiA9IEZtdF9mbXR0eV9FQkIgOlxuICAgICAoJ2EsICdiLCAnYywgJ2QsICd5LCAneCkgZm10ICpcbiAgICAgKCd4LCAnYiwgJ2MsICd5LCAnZSwgJ2YpIGZtdHR5IC0+XG4gICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRfZm10dHlfZWJiXG5cbigqIEdBRFQgdHlwZSBhc3NvY2lhdGluZyBhbiBmbXR0eSBhbmQgYW4gZm10LiAqKVxuKCogU2VlIHRoZSB0eXBlX2lnbm9yZWRfZm9ybWF0X3N1YnN0aXR1dGlvbiBmdW5jdGlvbi4gKilcbnR5cGUgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdHR5X2ZtdF9lYmIgPSBGbXR0eV9mbXRfRUJCIDpcbiAgICAgKCdhLCAnYiwgJ2MsICdkLCAneSwgJ3gpIGZtdHR5ICpcbiAgICAgKCd4LCAnYiwgJ2MsICd5LCAnZSwgJ2YpIGZtdF9mbXR0eV9lYmIgLT5cbiAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdHR5X2ZtdF9lYmJcblxuKCogQWJzdHJhY3QgYWxsIGZtdHR5IHR5cGUgcGFyYW1ldGVycy4gKilcbigqIFVzZWQgdG8gY29tcGFyZSBmb3JtYXQgdHlwZXMuICopXG50eXBlIGZtdHR5X2ViYiA9IEZtdHR5X0VCQiA6ICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXR0eSAtPiBmbXR0eV9lYmJcblxuKCogQWJzdHJhY3QgYWxsIHBhZGRpbmcgdHlwZSBwYXJhbWV0ZXJzLiAqKVxuKCogVXNlZCB0byBjb21wYXJlIHBhZGRpbmdzLiAqKVxudHlwZSBwYWRkaW5nX2ViYiA9IFBhZGRpbmdfRUJCIDogKCdhLCAnYikgcGFkZGluZyAtPiBwYWRkaW5nX2ViYlxuXG4oKiBBYnN0cmFjdCBhbGwgcHJlY2lzaW9uIHR5cGUgcGFyYW1ldGVycy4gKilcbigqIFVzZWQgdG8gY29tcGFyZSBwcmVjaXNpb25zLiAqKVxudHlwZSBwcmVjaXNpb25fZWJiID0gUHJlY2lzaW9uX0VCQiA6ICgnYSwgJ2IpIHByZWNpc2lvbiAtPiBwcmVjaXNpb25fZWJiXG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogQ29uc3RhbnRzICopXG5cbigqIERlZmF1bHQgcHJlY2lzaW9uIGZvciBmbG9hdCBwcmludGluZy4gKilcbmxldCBkZWZhdWx0X2Zsb2F0X3ByZWNpc2lvbiBmY29udiA9XG4gIG1hdGNoIHNuZCBmY29udiB3aXRoXG4gIHwgRmxvYXRfZiB8IEZsb2F0X2UgfCBGbG9hdF9FIHwgRmxvYXRfZyB8IEZsb2F0X0cgfCBGbG9hdF9oIHwgRmxvYXRfSFxuICB8IEZsb2F0X0NGIC0+IC02XG4gICgqIEZvciAlaCAlSCBhbmQgJSNGIGZvcm1hdHMsIGEgbmVnYXRpdmUgcHJlY2lzaW9uIG1lYW5zIFwiYXMgbWFueSBkaWdpdHMgYXNcbiAgICAgbmVjZXNzYXJ5XCIuICBGb3IgdGhlIG90aGVyIEZQIGZvcm1hdHMsIHdlIHRha2UgdGhlIGFic29sdXRlIHZhbHVlXG4gICAgIG9mIHRoZSBwcmVjaXNpb24sIGhlbmNlIDYgZGlnaXRzIGJ5IGRlZmF1bHQuICopXG4gIHwgRmxvYXRfRiAtPiAxMlxuICAoKiBEZWZhdWx0IHByZWNpc2lvbiBmb3IgT0NhbWwgZmxvYXQgcHJpbnRpbmcgKCVGKS4gKilcblxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBFeHRlcm5hbHMgKilcblxuZXh0ZXJuYWwgZm9ybWF0X2Zsb2F0OiBzdHJpbmcgLT4gZmxvYXQgLT4gc3RyaW5nXG4gID0gXCJjYW1sX2Zvcm1hdF9mbG9hdFwiXG5leHRlcm5hbCBmb3JtYXRfaW50OiBzdHJpbmcgLT4gaW50IC0+IHN0cmluZ1xuICA9IFwiY2FtbF9mb3JtYXRfaW50XCJcbmV4dGVybmFsIGZvcm1hdF9pbnQzMjogc3RyaW5nIC0+IGludDMyIC0+IHN0cmluZ1xuICA9IFwiY2FtbF9pbnQzMl9mb3JtYXRcIlxuZXh0ZXJuYWwgZm9ybWF0X25hdGl2ZWludDogc3RyaW5nIC0+IG5hdGl2ZWludCAtPiBzdHJpbmdcbiAgPSBcImNhbWxfbmF0aXZlaW50X2Zvcm1hdFwiXG5leHRlcm5hbCBmb3JtYXRfaW50NjQ6IHN0cmluZyAtPiBpbnQ2NCAtPiBzdHJpbmdcbiAgPSBcImNhbWxfaW50NjRfZm9ybWF0XCJcbmV4dGVybmFsIGhleHN0cmluZ19vZl9mbG9hdDogZmxvYXQgLT4gaW50IC0+IGNoYXIgLT4gc3RyaW5nXG4gID0gXCJjYW1sX2hleHN0cmluZ19vZl9mbG9hdFwiXG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAgICAgICAgICAoKiBUb29scyB0byBwcmV0dHktcHJpbnQgZm9ybWF0cyAqKVxuXG4oKiBUeXBlIG9mIGV4dGVuc2libGUgY2hhcmFjdGVyIGJ1ZmZlcnMuICopXG50eXBlIGJ1ZmZlciA9IHtcbiAgbXV0YWJsZSBpbmQgOiBpbnQ7XG4gIG11dGFibGUgYnl0ZXMgOiBieXRlcztcbn1cblxuKCogQ3JlYXRlIGEgZnJlc2ggYnVmZmVyLiAqKVxubGV0IGJ1ZmZlcl9jcmVhdGUgaW5pdF9zaXplID0geyBpbmQgPSAwOyBieXRlcyA9IEJ5dGVzLmNyZWF0ZSBpbml0X3NpemUgfVxuXG4oKiBDaGVjayBzaXplIG9mIHRoZSBidWZmZXIgYW5kIGdyb3cgaXQgaWYgbmVlZGVkLiAqKVxubGV0IGJ1ZmZlcl9jaGVja19zaXplIGJ1ZiBvdmVyaGVhZCA9XG4gIGxldCBsZW4gPSBCeXRlcy5sZW5ndGggYnVmLmJ5dGVzIGluXG4gIGxldCBtaW5fbGVuID0gYnVmLmluZCArIG92ZXJoZWFkIGluXG4gIGlmIG1pbl9sZW4gPiBsZW4gdGhlbiAoXG4gICAgbGV0IG5ld19sZW4gPSBJbnQubWF4IChsZW4gKiAyKSBtaW5fbGVuIGluXG4gICAgbGV0IG5ld19zdHIgPSBCeXRlcy5jcmVhdGUgbmV3X2xlbiBpblxuICAgIEJ5dGVzLmJsaXQgYnVmLmJ5dGVzIDAgbmV3X3N0ciAwIGxlbjtcbiAgICBidWYuYnl0ZXMgPC0gbmV3X3N0cjtcbiAgKVxuXG4oKiBBZGQgdGhlIGNoYXJhY3RlciBgYycgdG8gdGhlIGJ1ZmZlciBgYnVmJy4gKilcbmxldCBidWZmZXJfYWRkX2NoYXIgYnVmIGMgPVxuICBidWZmZXJfY2hlY2tfc2l6ZSBidWYgMTtcbiAgQnl0ZXMuc2V0IGJ1Zi5ieXRlcyBidWYuaW5kIGM7XG4gIGJ1Zi5pbmQgPC0gYnVmLmluZCArIDFcblxuKCogQWRkIHRoZSBzdHJpbmcgYHMnIHRvIHRoZSBidWZmZXIgYGJ1ZicuICopXG5sZXQgYnVmZmVyX2FkZF9zdHJpbmcgYnVmIHMgPVxuICBsZXQgc3RyX2xlbiA9IFN0cmluZy5sZW5ndGggcyBpblxuICBidWZmZXJfY2hlY2tfc2l6ZSBidWYgc3RyX2xlbjtcbiAgU3RyaW5nLmJsaXQgcyAwIGJ1Zi5ieXRlcyBidWYuaW5kIHN0cl9sZW47XG4gIGJ1Zi5pbmQgPC0gYnVmLmluZCArIHN0cl9sZW5cblxuKCogR2V0IHRoZSBjb250ZW50IG9mIHRoZSBidWZmZXIuICopXG5sZXQgYnVmZmVyX2NvbnRlbnRzIGJ1ZiA9XG4gIEJ5dGVzLnN1Yl9zdHJpbmcgYnVmLmJ5dGVzIDAgYnVmLmluZFxuXG4oKioqKVxuXG4oKiBDb252ZXJ0IGFuIGludGVnZXIgY29udmVyc2lvbiB0byBjaGFyLiAqKVxubGV0IGNoYXJfb2ZfaWNvbnYgaWNvbnYgPSBtYXRjaCBpY29udiB3aXRoXG4gIHwgSW50X2QgfCBJbnRfcGQgfCBJbnRfc2QgfCBJbnRfQ2QgLT4gJ2QnIHwgSW50X2kgfCBJbnRfcGkgfCBJbnRfc2lcbiAgfCBJbnRfQ2kgLT4gJ2knIHwgSW50X3ggfCBJbnRfQ3ggLT4gJ3gnIHwgSW50X1ggfCBJbnRfQ1ggLT4gJ1gnIHwgSW50X29cbiAgfCBJbnRfQ28gLT4gJ28nIHwgSW50X3UgfCBJbnRfQ3UgLT4gJ3UnXG5cbigqIENvbnZlcnQgYSBmbG9hdCBjb252ZXJzaW9uIHRvIGNoYXIuICopXG4oKiBgY0YnIHdpbGwgYmUgJ0YnIGZvciBkaXNwbGF5aW5nIGZvcm1hdCBhbmQgJ2cnIHRvIGNhbGwgbGliYyBwcmludGYgKilcbmxldCBjaGFyX29mX2Zjb252ID8oY0Y9J0YnKSBmY29udiA9IG1hdGNoIHNuZCBmY29udiB3aXRoXG4gIHwgRmxvYXRfZiAtPiAnZicgfCBGbG9hdF9lIC0+ICdlJ1xuICB8IEZsb2F0X0UgLT4gJ0UnIHwgRmxvYXRfZyAtPiAnZydcbiAgfCBGbG9hdF9HIC0+ICdHJyB8IEZsb2F0X0YgLT4gY0ZcbiAgfCBGbG9hdF9oIC0+ICdoJyB8IEZsb2F0X0ggLT4gJ0gnXG4gIHwgRmxvYXRfQ0YgLT4gJ0YnXG5cblxuKCogQ29udmVydCBhIHNjYW5uaW5nIGNvdW50ZXIgdG8gY2hhci4gKilcbmxldCBjaGFyX29mX2NvdW50ZXIgY291bnRlciA9IG1hdGNoIGNvdW50ZXIgd2l0aFxuICB8IExpbmVfY291bnRlciAgLT4gJ2wnXG4gIHwgQ2hhcl9jb3VudGVyICAtPiAnbidcbiAgfCBUb2tlbl9jb3VudGVyIC0+ICdOJ1xuXG4oKioqKVxuXG4oKiBQcmludCBhIGNoYXJfc2V0IGluIGEgYnVmZmVyIHdpdGggdGhlIE9DYW1sIGZvcm1hdCBsZXhpY2FsIGNvbnZlbnRpb24uICopXG5sZXQgYnByaW50X2NoYXJfc2V0IGJ1ZiBjaGFyX3NldCA9XG4gIGxldCByZWMgcHJpbnRfc3RhcnQgc2V0ID1cbiAgICBsZXQgaXNfYWxvbmUgYyA9XG4gICAgICBsZXQgYmVmb3JlLCBhZnRlciA9IENoYXIuKGNociAoY29kZSBjIC0gMSksIGNociAoY29kZSBjICsgMSkpIGluXG4gICAgICBpc19pbl9jaGFyX3NldCBzZXQgY1xuICAgICAgJiYgbm90IChpc19pbl9jaGFyX3NldCBzZXQgYmVmb3JlICYmIGlzX2luX2NoYXJfc2V0IHNldCBhZnRlcikgaW5cbiAgICBpZiBpc19hbG9uZSAnXScgdGhlbiBidWZmZXJfYWRkX2NoYXIgYnVmICddJztcbiAgICBwcmludF9vdXQgc2V0IDE7XG4gICAgaWYgaXNfYWxvbmUgJy0nIHRoZW4gYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnLSc7XG4gIGFuZCBwcmludF9vdXQgc2V0IGkgPVxuICAgIGlmIGkgPCAyNTYgdGhlblxuICAgICAgaWYgaXNfaW5fY2hhcl9zZXQgc2V0IChjaGFyX29mX2ludCBpKSB0aGVuIHByaW50X2ZpcnN0IHNldCBpXG4gICAgICBlbHNlIHByaW50X291dCBzZXQgKGkgKyAxKVxuICBhbmQgcHJpbnRfZmlyc3Qgc2V0IGkgPVxuICAgIG1hdGNoIGNoYXJfb2ZfaW50IGkgd2l0aFxuICAgIHwgJ1xcMjU1JyAtPiBwcmludF9jaGFyIGJ1ZiAyNTU7XG4gICAgfCAnXScgfCAnLScgLT4gcHJpbnRfb3V0IHNldCAoaSArIDEpO1xuICAgIHwgXyAtPiBwcmludF9zZWNvbmQgc2V0IChpICsgMSk7XG4gIGFuZCBwcmludF9zZWNvbmQgc2V0IGkgPVxuICAgIGlmIGlzX2luX2NoYXJfc2V0IHNldCAoY2hhcl9vZl9pbnQgaSkgdGhlblxuICAgICAgbWF0Y2ggY2hhcl9vZl9pbnQgaSB3aXRoXG4gICAgICB8ICdcXDI1NScgLT5cbiAgICAgICAgcHJpbnRfY2hhciBidWYgMjU0O1xuICAgICAgICBwcmludF9jaGFyIGJ1ZiAyNTU7XG4gICAgICB8ICddJyB8ICctJyB3aGVuIG5vdCAoaXNfaW5fY2hhcl9zZXQgc2V0IChjaGFyX29mX2ludCAoaSArIDEpKSkgLT5cbiAgICAgICAgcHJpbnRfY2hhciBidWYgKGkgLSAxKTtcbiAgICAgICAgcHJpbnRfb3V0IHNldCAoaSArIDEpO1xuICAgICAgfCBfIHdoZW4gbm90IChpc19pbl9jaGFyX3NldCBzZXQgKGNoYXJfb2ZfaW50IChpICsgMSkpKSAtPlxuICAgICAgICBwcmludF9jaGFyIGJ1ZiAoaSAtIDEpO1xuICAgICAgICBwcmludF9jaGFyIGJ1ZiBpO1xuICAgICAgICBwcmludF9vdXQgc2V0IChpICsgMik7XG4gICAgICB8IF8gLT5cbiAgICAgICAgcHJpbnRfaW4gc2V0IChpIC0gMSkgKGkgKyAyKTtcbiAgICBlbHNlIChcbiAgICAgIHByaW50X2NoYXIgYnVmIChpIC0gMSk7XG4gICAgICBwcmludF9vdXQgc2V0IChpICsgMSk7XG4gICAgKVxuICBhbmQgcHJpbnRfaW4gc2V0IGkgaiA9XG4gICAgaWYgaiA9IDI1NiB8fCBub3QgKGlzX2luX2NoYXJfc2V0IHNldCAoY2hhcl9vZl9pbnQgaikpIHRoZW4gKFxuICAgICAgcHJpbnRfY2hhciBidWYgaTtcbiAgICAgIHByaW50X2NoYXIgYnVmIChpbnRfb2ZfY2hhciAnLScpO1xuICAgICAgcHJpbnRfY2hhciBidWYgKGogLSAxKTtcbiAgICAgIGlmIGogPCAyNTYgdGhlbiBwcmludF9vdXQgc2V0IChqICsgMSk7XG4gICAgKSBlbHNlXG4gICAgICBwcmludF9pbiBzZXQgaSAoaiArIDEpO1xuICBhbmQgcHJpbnRfY2hhciBidWYgaSA9IG1hdGNoIGNoYXJfb2ZfaW50IGkgd2l0aFxuICAgIHwgJyUnIC0+IGJ1ZmZlcl9hZGRfY2hhciBidWYgJyUnOyBidWZmZXJfYWRkX2NoYXIgYnVmICclJztcbiAgICB8ICdAJyAtPiBidWZmZXJfYWRkX2NoYXIgYnVmICclJzsgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnQCc7XG4gICAgfCBjICAgLT4gYnVmZmVyX2FkZF9jaGFyIGJ1ZiBjO1xuICBpblxuICBidWZmZXJfYWRkX2NoYXIgYnVmICdbJztcbiAgcHJpbnRfc3RhcnQgKFxuICAgIGlmIGlzX2luX2NoYXJfc2V0IGNoYXJfc2V0ICdcXDAwMCdcbiAgICB0aGVuICggYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnXic7IHJldl9jaGFyX3NldCBjaGFyX3NldCApXG4gICAgZWxzZSBjaGFyX3NldFxuICApO1xuICBidWZmZXJfYWRkX2NoYXIgYnVmICddJ1xuXG4oKioqKVxuXG4oKiBQcmludCBhIHBhZHR5IGluIGEgYnVmZmVyIHdpdGggdGhlIGZvcm1hdC1saWtlIHN5bnRheC4gKilcbmxldCBicHJpbnRfcGFkdHkgYnVmIHBhZHR5ID0gbWF0Y2ggcGFkdHkgd2l0aFxuICB8IExlZnQgIC0+IGJ1ZmZlcl9hZGRfY2hhciBidWYgJy0nXG4gIHwgUmlnaHQgLT4gKClcbiAgfCBaZXJvcyAtPiBidWZmZXJfYWRkX2NoYXIgYnVmICcwJ1xuXG4oKiBQcmludCB0aGUgJ18nIG9mIGFuIGlnbm9yZWQgZmxhZyBpZiBuZWVkZWQuICopXG5sZXQgYnByaW50X2lnbm9yZWRfZmxhZyBidWYgaWduX2ZsYWcgPVxuICBpZiBpZ25fZmxhZyB0aGVuIGJ1ZmZlcl9hZGRfY2hhciBidWYgJ18nXG5cbigqKiopXG5cbmxldCBicHJpbnRfcGFkX29wdCBidWYgcGFkX29wdCA9IG1hdGNoIHBhZF9vcHQgd2l0aFxuICB8IE5vbmUgLT4gKClcbiAgfCBTb21lIHdpZHRoIC0+IGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiAoSW50LnRvX3N0cmluZyB3aWR0aClcblxuKCoqKilcblxuKCogUHJpbnQgcGFkZGluZyBpbiBhIGJ1ZmZlciB3aXRoIHRoZSBmb3JtYXQtbGlrZSBzeW50YXguICopXG5sZXQgYnByaW50X3BhZGRpbmcgOiB0eXBlIGEgYiAuIGJ1ZmZlciAtPiAoYSwgYikgcGFkZGluZyAtPiB1bml0ID1cbmZ1biBidWYgcGFkIC0+IG1hdGNoIHBhZCB3aXRoXG4gIHwgTm9fcGFkZGluZyAtPiAoKVxuICB8IExpdF9wYWRkaW5nIChwYWR0eSwgbikgLT5cbiAgICBicHJpbnRfcGFkdHkgYnVmIHBhZHR5O1xuICAgIGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiAoSW50LnRvX3N0cmluZyBuKTtcbiAgfCBBcmdfcGFkZGluZyBwYWR0eSAtPlxuICAgIGJwcmludF9wYWR0eSBidWYgcGFkdHk7XG4gICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnKidcblxuKCogUHJpbnQgcHJlY2lzaW9uIGluIGEgYnVmZmVyIHdpdGggdGhlIGZvcm1hdC1saWtlIHN5bnRheC4gKilcbmxldCBicHJpbnRfcHJlY2lzaW9uIDogdHlwZSBhIGIgLiBidWZmZXIgLT4gKGEsIGIpIHByZWNpc2lvbiAtPiB1bml0ID1cbiAgZnVuIGJ1ZiBwcmVjIC0+IG1hdGNoIHByZWMgd2l0aFxuICB8IE5vX3ByZWNpc2lvbiAtPiAoKVxuICB8IExpdF9wcmVjaXNpb24gbiAtPlxuICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJy4nO1xuICAgIGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiAoSW50LnRvX3N0cmluZyBuKTtcbiAgfCBBcmdfcHJlY2lzaW9uIC0+XG4gICAgYnVmZmVyX2FkZF9zdHJpbmcgYnVmIFwiLipcIlxuXG4oKioqKVxuXG4oKiBQcmludCB0aGUgb3B0aW9uYWwgJysnLCAnICcgb3IgJyMnIGFzc29jaWF0ZWQgdG8gYW4gaW50IGNvbnZlcnNpb24uICopXG5sZXQgYnByaW50X2ljb252X2ZsYWcgYnVmIGljb252ID0gbWF0Y2ggaWNvbnYgd2l0aFxuICB8IEludF9wZCB8IEludF9waSAtPiBidWZmZXJfYWRkX2NoYXIgYnVmICcrJ1xuICB8IEludF9zZCB8IEludF9zaSAtPiBidWZmZXJfYWRkX2NoYXIgYnVmICcgJ1xuICB8IEludF9DeCB8IEludF9DWCB8IEludF9DbyB8IEludF9DZCB8IEludF9DaSB8IEludF9DdSAtPlxuICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnIydcbiAgfCBJbnRfZCB8IEludF9pIHwgSW50X3ggfCBJbnRfWCB8IEludF9vIHwgSW50X3UgLT4gKClcblxuKCogUHJpbnQgYW4gY29tcGxldGUgaW50IGZvcm1hdCBpbiBhIGJ1ZmZlciAoZXg6IFwiJTMuKmRcIikuICopXG5sZXQgYnByaW50X2ludF9mbXQgYnVmIGlnbl9mbGFnIGljb252IHBhZCBwcmVjID1cbiAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnJSc7XG4gIGJwcmludF9pZ25vcmVkX2ZsYWcgYnVmIGlnbl9mbGFnO1xuICBicHJpbnRfaWNvbnZfZmxhZyBidWYgaWNvbnY7XG4gIGJwcmludF9wYWRkaW5nIGJ1ZiBwYWQ7XG4gIGJwcmludF9wcmVjaXNpb24gYnVmIHByZWM7XG4gIGJ1ZmZlcl9hZGRfY2hhciBidWYgKGNoYXJfb2ZfaWNvbnYgaWNvbnYpXG5cbigqIFByaW50IGEgY29tcGxldGUgaW50MzIsIG5hdGl2ZWludCBvciBpbnQ2NCBmb3JtYXQgaW4gYSBidWZmZXIuICopXG5sZXQgYnByaW50X2FsdGludF9mbXQgYnVmIGlnbl9mbGFnIGljb252IHBhZCBwcmVjIGMgPVxuICBidWZmZXJfYWRkX2NoYXIgYnVmICclJztcbiAgYnByaW50X2lnbm9yZWRfZmxhZyBidWYgaWduX2ZsYWc7XG4gIGJwcmludF9pY29udl9mbGFnIGJ1ZiBpY29udjtcbiAgYnByaW50X3BhZGRpbmcgYnVmIHBhZDtcbiAgYnByaW50X3ByZWNpc2lvbiBidWYgcHJlYztcbiAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiBjO1xuICBidWZmZXJfYWRkX2NoYXIgYnVmIChjaGFyX29mX2ljb252IGljb252KVxuXG4oKioqKVxuXG4oKiBQcmludCB0aGUgb3B0aW9uYWwgJysnLCAnICcgYW5kL29yICcjJyBhc3NvY2lhdGVkIHRvIGEgZmxvYXQgY29udmVyc2lvbi4gKilcbmxldCBicHJpbnRfZmNvbnZfZmxhZyBidWYgZmNvbnYgPVxuICBiZWdpbiBtYXRjaCBmc3QgZmNvbnYgd2l0aFxuICB8IEZsb2F0X2ZsYWdfcCAtPiBidWZmZXJfYWRkX2NoYXIgYnVmICcrJ1xuICB8IEZsb2F0X2ZsYWdfcyAtPiBidWZmZXJfYWRkX2NoYXIgYnVmICcgJ1xuICB8IEZsb2F0X2ZsYWdfIC0+ICgpIGVuZDtcbiAgbWF0Y2ggc25kIGZjb252IHdpdGhcbiAgfCBGbG9hdF9DRiAtPiBidWZmZXJfYWRkX2NoYXIgYnVmICcjJ1xuICB8IEZsb2F0X2YgfCBGbG9hdF9lIHwgRmxvYXRfRSB8IEZsb2F0X2cgfCBGbG9hdF9HXG4gIHwgRmxvYXRfRiB8IEZsb2F0X2ggfCBGbG9hdF9IIC0+ICgpXG5cbigqIFByaW50IGEgY29tcGxldGUgZmxvYXQgZm9ybWF0IGluIGEgYnVmZmVyIChleDogXCIlKyouM2ZcIikuICopXG5sZXQgYnByaW50X2Zsb2F0X2ZtdCBidWYgaWduX2ZsYWcgZmNvbnYgcGFkIHByZWMgPVxuICBidWZmZXJfYWRkX2NoYXIgYnVmICclJztcbiAgYnByaW50X2lnbm9yZWRfZmxhZyBidWYgaWduX2ZsYWc7XG4gIGJwcmludF9mY29udl9mbGFnIGJ1ZiBmY29udjtcbiAgYnByaW50X3BhZGRpbmcgYnVmIHBhZDtcbiAgYnByaW50X3ByZWNpc2lvbiBidWYgcHJlYztcbiAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAoY2hhcl9vZl9mY29udiBmY29udilcblxuKCogQ29tcHV0ZSB0aGUgbGl0ZXJhbCBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYSBGb3JtYXR0aW5nX2xpdC4gKilcbigqIFVzZWQgYnkgUHJpbnRmIGFuZCBTY2FuZiB3aGVyZSBmb3JtYXR0aW5nIGlzIG5vdCBpbnRlcnByZXRlZC4gKilcbmxldCBzdHJpbmdfb2ZfZm9ybWF0dGluZ19saXQgZm9ybWF0dGluZ19saXQgPSBtYXRjaCBmb3JtYXR0aW5nX2xpdCB3aXRoXG4gIHwgQ2xvc2VfYm94ICAgICAgICAgICAgLT4gXCJAXVwiXG4gIHwgQ2xvc2VfdGFnICAgICAgICAgICAgLT4gXCJAfVwiXG4gIHwgQnJlYWsgKHN0ciwgXywgXykgICAgLT4gc3RyXG4gIHwgRkZsdXNoICAgICAgICAgICAgICAgLT4gXCJAP1wiXG4gIHwgRm9yY2VfbmV3bGluZSAgICAgICAgLT4gXCJAXFxuXCJcbiAgfCBGbHVzaF9uZXdsaW5lICAgICAgICAtPiBcIkAuXCJcbiAgfCBNYWdpY19zaXplIChzdHIsIF8pICAtPiBzdHJcbiAgfCBFc2NhcGVkX2F0ICAgICAgICAgICAtPiBcIkBAXCJcbiAgfCBFc2NhcGVkX3BlcmNlbnQgICAgICAtPiBcIkAlXCJcbiAgfCBTY2FuX2luZGljIGMgLT4gXCJAXCIgXiAoU3RyaW5nLm1ha2UgMSBjKVxuXG4oKioqKVxuXG4oKiBQcmludCBhIGxpdGVyYWwgY2hhciBpbiBhIGJ1ZmZlciwgZXNjYXBlICclJyBieSBcIiUlXCIuICopXG5sZXQgYnByaW50X2NoYXJfbGl0ZXJhbCBidWYgY2hyID0gbWF0Y2ggY2hyIHdpdGhcbiAgfCAnJScgLT4gYnVmZmVyX2FkZF9zdHJpbmcgYnVmIFwiJSVcIlxuICB8IF8gLT4gYnVmZmVyX2FkZF9jaGFyIGJ1ZiBjaHJcblxuKCogUHJpbnQgYSBsaXRlcmFsIHN0cmluZyBpbiBhIGJ1ZmZlciwgZXNjYXBlIGFsbCAnJScgYnkgXCIlJVwiLiAqKVxubGV0IGJwcmludF9zdHJpbmdfbGl0ZXJhbCBidWYgc3RyID1cbiAgZm9yIGkgPSAwIHRvIFN0cmluZy5sZW5ndGggc3RyIC0gMSBkb1xuICAgIGJwcmludF9jaGFyX2xpdGVyYWwgYnVmIHN0ci5baV1cbiAgZG9uZVxuXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBGb3JtYXQgcHJldHR5LXByaW50aW5nICopXG5cbigqIFByaW50IGEgY29tcGxldGUgZm9ybWF0IHR5cGUgKGFuIGZtdHR5KSBpbiBhIGJ1ZmZlci4gKilcbmxldCByZWMgYnByaW50X2ZtdHR5IDogdHlwZSBhIGIgYyBkIGUgZiBnIGggaSBqIGsgbCAuXG4gICAgYnVmZmVyIC0+IChhLCBiLCBjLCBkLCBlLCBmLCBnLCBoLCBpLCBqLCBrLCBsKSBmbXR0eV9yZWwgLT4gdW5pdCA9XG5mdW4gYnVmIGZtdHR5IC0+IG1hdGNoIGZtdHR5IHdpdGhcbiAgfCBDaGFyX3R5IHJlc3QgICAgICAtPiBidWZmZXJfYWRkX3N0cmluZyBidWYgXCIlY1wiOyAgYnByaW50X2ZtdHR5IGJ1ZiByZXN0O1xuICB8IFN0cmluZ190eSByZXN0ICAgIC0+IGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBcIiVzXCI7ICBicHJpbnRfZm10dHkgYnVmIHJlc3Q7XG4gIHwgSW50X3R5IHJlc3QgICAgICAgLT4gYnVmZmVyX2FkZF9zdHJpbmcgYnVmIFwiJWlcIjsgIGJwcmludF9mbXR0eSBidWYgcmVzdDtcbiAgfCBJbnQzMl90eSByZXN0ICAgICAtPiBidWZmZXJfYWRkX3N0cmluZyBidWYgXCIlbGlcIjsgYnByaW50X2ZtdHR5IGJ1ZiByZXN0O1xuICB8IE5hdGl2ZWludF90eSByZXN0IC0+IGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBcIiVuaVwiOyBicHJpbnRfZm10dHkgYnVmIHJlc3Q7XG4gIHwgSW50NjRfdHkgcmVzdCAgICAgLT4gYnVmZmVyX2FkZF9zdHJpbmcgYnVmIFwiJUxpXCI7IGJwcmludF9mbXR0eSBidWYgcmVzdDtcbiAgfCBGbG9hdF90eSByZXN0ICAgICAtPiBidWZmZXJfYWRkX3N0cmluZyBidWYgXCIlZlwiOyAgYnByaW50X2ZtdHR5IGJ1ZiByZXN0O1xuICB8IEJvb2xfdHkgcmVzdCAgICAgIC0+IGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBcIiVCXCI7ICBicHJpbnRfZm10dHkgYnVmIHJlc3Q7XG4gIHwgQWxwaGFfdHkgcmVzdCAgICAgLT4gYnVmZmVyX2FkZF9zdHJpbmcgYnVmIFwiJWFcIjsgIGJwcmludF9mbXR0eSBidWYgcmVzdDtcbiAgfCBUaGV0YV90eSByZXN0ICAgICAtPiBidWZmZXJfYWRkX3N0cmluZyBidWYgXCIldFwiOyAgYnByaW50X2ZtdHR5IGJ1ZiByZXN0O1xuICB8IEFueV90eSByZXN0ICAgICAgIC0+IGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBcIiU/XCI7ICBicHJpbnRfZm10dHkgYnVmIHJlc3Q7XG4gIHwgUmVhZGVyX3R5IHJlc3QgICAgLT4gYnVmZmVyX2FkZF9zdHJpbmcgYnVmIFwiJXJcIjsgIGJwcmludF9mbXR0eSBidWYgcmVzdDtcblxuICB8IElnbm9yZWRfcmVhZGVyX3R5IHJlc3QgLT5cbiAgICBidWZmZXJfYWRkX3N0cmluZyBidWYgXCIlX3JcIjtcbiAgICBicHJpbnRfZm10dHkgYnVmIHJlc3Q7XG5cbiAgfCBGb3JtYXRfYXJnX3R5IChzdWJfZm10dHksIHJlc3QpIC0+XG4gICAgYnVmZmVyX2FkZF9zdHJpbmcgYnVmIFwiJXtcIjsgYnByaW50X2ZtdHR5IGJ1ZiBzdWJfZm10dHk7XG4gICAgYnVmZmVyX2FkZF9zdHJpbmcgYnVmIFwiJX1cIjsgYnByaW50X2ZtdHR5IGJ1ZiByZXN0O1xuICB8IEZvcm1hdF9zdWJzdF90eSAoc3ViX2ZtdHR5LCBfLCByZXN0KSAtPlxuICAgIGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBcIiUoXCI7IGJwcmludF9mbXR0eSBidWYgc3ViX2ZtdHR5O1xuICAgIGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBcIiUpXCI7IGJwcmludF9mbXR0eSBidWYgcmVzdDtcblxuICB8IEVuZF9vZl9mbXR0eSAtPiAoKVxuXG4oKioqKVxuXG5sZXQgcmVjIGludF9vZl9jdXN0b21fYXJpdHkgOiB0eXBlIGEgYiBjIC5cbiAgKGEsIGIsIGMpIGN1c3RvbV9hcml0eSAtPiBpbnQgPVxuICBmdW5jdGlvblxuICB8IEN1c3RvbV96ZXJvIC0+IDBcbiAgfCBDdXN0b21fc3VjYyB4IC0+IDEgKyBpbnRfb2ZfY3VzdG9tX2FyaXR5IHhcblxuKCogUHJpbnQgYSBjb21wbGV0ZSBmb3JtYXQgaW4gYSBidWZmZXIuICopXG5sZXQgYnByaW50X2ZtdCBidWYgZm10ID1cbiAgbGV0IHJlYyBmbXRpdGVyIDogdHlwZSBhIGIgYyBkIGUgZiAuXG4gICAgICAoYSwgYiwgYywgZCwgZSwgZikgZm10IC0+IGJvb2wgLT4gdW5pdCA9XG4gIGZ1biBmbXQgaWduX2ZsYWcgLT4gbWF0Y2ggZm10IHdpdGhcbiAgICB8IFN0cmluZyAocGFkLCByZXN0KSAtPlxuICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnJSc7IGJwcmludF9pZ25vcmVkX2ZsYWcgYnVmIGlnbl9mbGFnO1xuICAgICAgYnByaW50X3BhZGRpbmcgYnVmIHBhZDsgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAncyc7XG4gICAgICBmbXRpdGVyIHJlc3QgZmFsc2U7XG4gICAgfCBDYW1sX3N0cmluZyAocGFkLCByZXN0KSAtPlxuICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnJSc7IGJwcmludF9pZ25vcmVkX2ZsYWcgYnVmIGlnbl9mbGFnO1xuICAgICAgYnByaW50X3BhZGRpbmcgYnVmIHBhZDsgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnUyc7XG4gICAgICBmbXRpdGVyIHJlc3QgZmFsc2U7XG5cbiAgICB8IEludCAoaWNvbnYsIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICAgIGJwcmludF9pbnRfZm10IGJ1ZiBpZ25fZmxhZyBpY29udiBwYWQgcHJlYztcbiAgICAgIGZtdGl0ZXIgcmVzdCBmYWxzZTtcbiAgICB8IEludDMyIChpY29udiwgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgICAgYnByaW50X2FsdGludF9mbXQgYnVmIGlnbl9mbGFnIGljb252IHBhZCBwcmVjICdsJztcbiAgICAgIGZtdGl0ZXIgcmVzdCBmYWxzZTtcbiAgICB8IE5hdGl2ZWludCAoaWNvbnYsIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICAgIGJwcmludF9hbHRpbnRfZm10IGJ1ZiBpZ25fZmxhZyBpY29udiBwYWQgcHJlYyAnbic7XG4gICAgICBmbXRpdGVyIHJlc3QgZmFsc2U7XG4gICAgfCBJbnQ2NCAoaWNvbnYsIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICAgIGJwcmludF9hbHRpbnRfZm10IGJ1ZiBpZ25fZmxhZyBpY29udiBwYWQgcHJlYyAnTCc7XG4gICAgICBmbXRpdGVyIHJlc3QgZmFsc2U7XG4gICAgfCBGbG9hdCAoZmNvbnYsIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICAgIGJwcmludF9mbG9hdF9mbXQgYnVmIGlnbl9mbGFnIGZjb252IHBhZCBwcmVjO1xuICAgICAgZm10aXRlciByZXN0IGZhbHNlO1xuXG4gICAgfCBDaGFyIHJlc3QgLT5cbiAgICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJyUnOyBicHJpbnRfaWdub3JlZF9mbGFnIGJ1ZiBpZ25fZmxhZztcbiAgICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJ2MnOyBmbXRpdGVyIHJlc3QgZmFsc2U7XG4gICAgfCBDYW1sX2NoYXIgcmVzdCAtPlxuICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnJSc7IGJwcmludF9pZ25vcmVkX2ZsYWcgYnVmIGlnbl9mbGFnO1xuICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnQyc7IGZtdGl0ZXIgcmVzdCBmYWxzZTtcbiAgICB8IEJvb2wgKHBhZCwgcmVzdCkgLT5cbiAgICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJyUnOyBicHJpbnRfaWdub3JlZF9mbGFnIGJ1ZiBpZ25fZmxhZztcbiAgICAgIGJwcmludF9wYWRkaW5nIGJ1ZiBwYWQ7IGJ1ZmZlcl9hZGRfY2hhciBidWYgJ0InO1xuICAgICAgZm10aXRlciByZXN0IGZhbHNlO1xuICAgIHwgQWxwaGEgcmVzdCAtPlxuICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnJSc7IGJwcmludF9pZ25vcmVkX2ZsYWcgYnVmIGlnbl9mbGFnO1xuICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnYSc7IGZtdGl0ZXIgcmVzdCBmYWxzZTtcbiAgICB8IFRoZXRhIHJlc3QgLT5cbiAgICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJyUnOyBicHJpbnRfaWdub3JlZF9mbGFnIGJ1ZiBpZ25fZmxhZztcbiAgICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJ3QnOyBmbXRpdGVyIHJlc3QgZmFsc2U7XG4gICAgfCBDdXN0b20gKGFyaXR5LCBfLCByZXN0KSAtPlxuICAgICAgZm9yIF9pID0gMSB0byBpbnRfb2ZfY3VzdG9tX2FyaXR5IGFyaXR5IGRvXG4gICAgICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJyUnOyBicHJpbnRfaWdub3JlZF9mbGFnIGJ1ZiBpZ25fZmxhZztcbiAgICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnPyc7XG4gICAgICBkb25lO1xuICAgICAgZm10aXRlciByZXN0IGZhbHNlO1xuICAgIHwgUmVhZGVyIHJlc3QgLT5cbiAgICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJyUnOyBicHJpbnRfaWdub3JlZF9mbGFnIGJ1ZiBpZ25fZmxhZztcbiAgICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJ3InOyBmbXRpdGVyIHJlc3QgZmFsc2U7XG4gICAgfCBGbHVzaCByZXN0IC0+XG4gICAgICBidWZmZXJfYWRkX3N0cmluZyBidWYgXCIlIVwiO1xuICAgICAgZm10aXRlciByZXN0IGlnbl9mbGFnO1xuXG4gICAgfCBTdHJpbmdfbGl0ZXJhbCAoc3RyLCByZXN0KSAtPlxuICAgICAgYnByaW50X3N0cmluZ19saXRlcmFsIGJ1ZiBzdHI7XG4gICAgICBmbXRpdGVyIHJlc3QgaWduX2ZsYWc7XG4gICAgfCBDaGFyX2xpdGVyYWwgKGNociwgcmVzdCkgLT5cbiAgICAgIGJwcmludF9jaGFyX2xpdGVyYWwgYnVmIGNocjtcbiAgICAgIGZtdGl0ZXIgcmVzdCBpZ25fZmxhZztcblxuICAgIHwgRm9ybWF0X2FyZyAocGFkX29wdCwgZm10dHksIHJlc3QpIC0+XG4gICAgICBidWZmZXJfYWRkX2NoYXIgYnVmICclJzsgYnByaW50X2lnbm9yZWRfZmxhZyBidWYgaWduX2ZsYWc7XG4gICAgICBicHJpbnRfcGFkX29wdCBidWYgcGFkX29wdDsgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAneyc7XG4gICAgICBicHJpbnRfZm10dHkgYnVmIGZtdHR5OyBidWZmZXJfYWRkX2NoYXIgYnVmICclJzsgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnfSc7XG4gICAgICBmbXRpdGVyIHJlc3QgZmFsc2U7XG4gICAgfCBGb3JtYXRfc3Vic3QgKHBhZF9vcHQsIGZtdHR5LCByZXN0KSAtPlxuICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnJSc7IGJwcmludF9pZ25vcmVkX2ZsYWcgYnVmIGlnbl9mbGFnO1xuICAgICAgYnByaW50X3BhZF9vcHQgYnVmIHBhZF9vcHQ7IGJ1ZmZlcl9hZGRfY2hhciBidWYgJygnO1xuICAgICAgYnByaW50X2ZtdHR5IGJ1ZiBmbXR0eTsgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnJSc7IGJ1ZmZlcl9hZGRfY2hhciBidWYgJyknO1xuICAgICAgZm10aXRlciByZXN0IGZhbHNlO1xuXG4gICAgfCBTY2FuX2NoYXJfc2V0ICh3aWR0aF9vcHQsIGNoYXJfc2V0LCByZXN0KSAtPlxuICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnJSc7IGJwcmludF9pZ25vcmVkX2ZsYWcgYnVmIGlnbl9mbGFnO1xuICAgICAgYnByaW50X3BhZF9vcHQgYnVmIHdpZHRoX29wdDsgYnByaW50X2NoYXJfc2V0IGJ1ZiBjaGFyX3NldDtcbiAgICAgIGZtdGl0ZXIgcmVzdCBmYWxzZTtcbiAgICB8IFNjYW5fZ2V0X2NvdW50ZXIgKGNvdW50ZXIsIHJlc3QpIC0+XG4gICAgICBidWZmZXJfYWRkX2NoYXIgYnVmICclJzsgYnByaW50X2lnbm9yZWRfZmxhZyBidWYgaWduX2ZsYWc7XG4gICAgICBidWZmZXJfYWRkX2NoYXIgYnVmIChjaGFyX29mX2NvdW50ZXIgY291bnRlcik7XG4gICAgICBmbXRpdGVyIHJlc3QgZmFsc2U7XG4gICAgfCBTY2FuX25leHRfY2hhciByZXN0IC0+XG4gICAgICBidWZmZXJfYWRkX2NoYXIgYnVmICclJzsgYnByaW50X2lnbm9yZWRfZmxhZyBidWYgaWduX2ZsYWc7XG4gICAgICBicHJpbnRfc3RyaW5nX2xpdGVyYWwgYnVmIFwiMGNcIjsgZm10aXRlciByZXN0IGZhbHNlO1xuXG4gICAgfCBJZ25vcmVkX3BhcmFtIChpZ24sIHJlc3QpIC0+XG4gICAgICBsZXQgUGFyYW1fZm9ybWF0X0VCQiBmbXQnID0gcGFyYW1fZm9ybWF0X29mX2lnbm9yZWRfZm9ybWF0IGlnbiByZXN0IGluXG4gICAgICBmbXRpdGVyIGZtdCcgdHJ1ZTtcblxuICAgIHwgRm9ybWF0dGluZ19saXQgKGZtdGluZ19saXQsIHJlc3QpIC0+XG4gICAgICBicHJpbnRfc3RyaW5nX2xpdGVyYWwgYnVmIChzdHJpbmdfb2ZfZm9ybWF0dGluZ19saXQgZm10aW5nX2xpdCk7XG4gICAgICBmbXRpdGVyIHJlc3QgaWduX2ZsYWc7XG4gICAgfCBGb3JtYXR0aW5nX2dlbiAoZm10aW5nX2dlbiwgcmVzdCkgLT5cbiAgICAgIGJlZ2luIG1hdGNoIGZtdGluZ19nZW4gd2l0aFxuICAgICAgfCBPcGVuX3RhZyAoRm9ybWF0IChfLCBzdHIpKSAtPlxuICAgICAgICBidWZmZXJfYWRkX3N0cmluZyBidWYgXCJAe1wiOyBidWZmZXJfYWRkX3N0cmluZyBidWYgc3RyXG4gICAgICB8IE9wZW5fYm94IChGb3JtYXQgKF8sIHN0cikpIC0+XG4gICAgICAgIGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBcIkBbXCI7IGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBzdHJcbiAgICAgIGVuZDtcbiAgICAgIGZtdGl0ZXIgcmVzdCBpZ25fZmxhZztcblxuICAgIHwgRW5kX29mX2Zvcm1hdCAtPiAoKVxuXG4gIGluIGZtdGl0ZXIgZm10IGZhbHNlXG5cbigqKiopXG5cbigqIENvbnZlcnQgYSBmb3JtYXQgdG8gc3RyaW5nLiAqKVxubGV0IHN0cmluZ19vZl9mbXQgZm10ID1cbiAgbGV0IGJ1ZiA9IGJ1ZmZlcl9jcmVhdGUgMTYgaW5cbiAgYnByaW50X2ZtdCBidWYgZm10O1xuICBidWZmZXJfY29udGVudHMgYnVmXG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICgqIFR5cGUgZXh0cmFjdGlvbiAqKVxuXG50eXBlIChfLCBfKSBlcSA9IFJlZmwgOiAoJ2EsICdhKSBlcVxuXG4oKiBJbnZhcmlhbnQ6IHRoaXMgZnVuY3Rpb24gaXMgdGhlIGlkZW50aXR5IG9uIHZhbHVlcy5cblxuICAgSW4gcGFydGljdWxhciwgaWYgKHR5MSwgdHkyKSBoYXZlIGVxdWFsIHZhbHVlcywgdGhlblxuICAgKHRyYW5zIChzeW1tIHR5MSkgdHkyKSByZXNwZWN0cyB0aGUgJ3RyYW5zJyBwcmVjb25kaXRpb24uICopXG5sZXQgcmVjIHN5bW0gOiB0eXBlIGExIGIxIGMxIGQxIGUxIGYxIGEyIGIyIGMyIGQyIGUyIGYyIC5cbiAgIChhMSwgYjEsIGMxLCBkMSwgZTEsIGYxLFxuICAgIGEyLCBiMiwgYzIsIGQyLCBlMiwgZjIpIGZtdHR5X3JlbFxuLT4gKGEyLCBiMiwgYzIsIGQyLCBlMiwgZjIsXG4gICAgYTEsIGIxLCBjMSwgZDEsIGUxLCBmMSkgZm10dHlfcmVsXG49IGZ1bmN0aW9uXG4gIHwgQ2hhcl90eSByZXN0IC0+IENoYXJfdHkgKHN5bW0gcmVzdClcbiAgfCBJbnRfdHkgcmVzdCAtPiBJbnRfdHkgKHN5bW0gcmVzdClcbiAgfCBJbnQzMl90eSByZXN0IC0+IEludDMyX3R5IChzeW1tIHJlc3QpXG4gIHwgSW50NjRfdHkgcmVzdCAtPiBJbnQ2NF90eSAoc3ltbSByZXN0KVxuICB8IE5hdGl2ZWludF90eSByZXN0IC0+IE5hdGl2ZWludF90eSAoc3ltbSByZXN0KVxuICB8IEZsb2F0X3R5IHJlc3QgLT4gRmxvYXRfdHkgKHN5bW0gcmVzdClcbiAgfCBCb29sX3R5IHJlc3QgLT4gQm9vbF90eSAoc3ltbSByZXN0KVxuICB8IFN0cmluZ190eSByZXN0IC0+IFN0cmluZ190eSAoc3ltbSByZXN0KVxuICB8IFRoZXRhX3R5IHJlc3QgLT4gVGhldGFfdHkgKHN5bW0gcmVzdClcbiAgfCBBbHBoYV90eSByZXN0IC0+IEFscGhhX3R5IChzeW1tIHJlc3QpXG4gIHwgQW55X3R5IHJlc3QgLT4gQW55X3R5IChzeW1tIHJlc3QpXG4gIHwgUmVhZGVyX3R5IHJlc3QgLT4gUmVhZGVyX3R5IChzeW1tIHJlc3QpXG4gIHwgSWdub3JlZF9yZWFkZXJfdHkgcmVzdCAtPiBJZ25vcmVkX3JlYWRlcl90eSAoc3ltbSByZXN0KVxuICB8IEZvcm1hdF9hcmdfdHkgKHR5LCByZXN0KSAtPlxuICAgIEZvcm1hdF9hcmdfdHkgKHR5LCBzeW1tIHJlc3QpXG4gIHwgRm9ybWF0X3N1YnN0X3R5ICh0eTEsIHR5MiwgcmVzdCkgLT5cbiAgICBGb3JtYXRfc3Vic3RfdHkgKHR5MiwgdHkxLCBzeW1tIHJlc3QpXG4gIHwgRW5kX29mX2ZtdHR5IC0+IEVuZF9vZl9mbXR0eVxuXG5sZXQgcmVjIGZtdHR5X3JlbF9kZXQgOiB0eXBlIGExIGIgYyBkMSBlMSBmMSBhMiBkMiBlMiBmMiAuXG4gIChhMSwgYiwgYywgZDEsIGUxLCBmMSxcbiAgIGEyLCBiLCBjLCBkMiwgZTIsIGYyKSBmbXR0eV9yZWwgLT5cbiAgICAoKGYxLCBmMikgZXEgLT4gKGExLCBhMikgZXEpXG4gICogKChhMSwgYTIpIGVxIC0+IChmMSwgZjIpIGVxKVxuICAqICgoZTEsIGUyKSBlcSAtPiAoZDEsIGQyKSBlcSlcbiAgKiAoKGQxLCBkMikgZXEgLT4gKGUxLCBlMikgZXEpXG49IGZ1bmN0aW9uXG4gIHwgRW5kX29mX2ZtdHR5IC0+XG4gICAgKGZ1biBSZWZsIC0+IFJlZmwpLFxuICAgIChmdW4gUmVmbCAtPiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gUmVmbCksXG4gICAgKGZ1biBSZWZsIC0+IFJlZmwpXG4gIHwgQ2hhcl90eSByZXN0IC0+XG4gICAgbGV0IGZhLCBhZiwgZWQsIGRlID0gZm10dHlfcmVsX2RldCByZXN0IGluXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gZmEgUmVmbCBpbiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBhZiBSZWZsIGluIFJlZmwpLFxuICAgIGVkLCBkZVxuICB8IFN0cmluZ190eSByZXN0IC0+XG4gICAgbGV0IGZhLCBhZiwgZWQsIGRlID0gZm10dHlfcmVsX2RldCByZXN0IGluXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gZmEgUmVmbCBpbiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBhZiBSZWZsIGluIFJlZmwpLFxuICAgIGVkLCBkZVxuICB8IEludF90eSByZXN0IC0+XG4gICAgbGV0IGZhLCBhZiwgZWQsIGRlID0gZm10dHlfcmVsX2RldCByZXN0IGluXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gZmEgUmVmbCBpbiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBhZiBSZWZsIGluIFJlZmwpLFxuICAgIGVkLCBkZVxuICB8IEludDMyX3R5IHJlc3QgLT5cbiAgICBsZXQgZmEsIGFmLCBlZCwgZGUgPSBmbXR0eV9yZWxfZGV0IHJlc3QgaW5cbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBmYSBSZWZsIGluIFJlZmwpLFxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGFmIFJlZmwgaW4gUmVmbCksXG4gICAgZWQsIGRlXG4gIHwgSW50NjRfdHkgcmVzdCAtPlxuICAgIGxldCBmYSwgYWYsIGVkLCBkZSA9IGZtdHR5X3JlbF9kZXQgcmVzdCBpblxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGZhIFJlZmwgaW4gUmVmbCksXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gYWYgUmVmbCBpbiBSZWZsKSxcbiAgICBlZCwgZGVcbiAgfCBOYXRpdmVpbnRfdHkgcmVzdCAtPlxuICAgIGxldCBmYSwgYWYsIGVkLCBkZSA9IGZtdHR5X3JlbF9kZXQgcmVzdCBpblxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGZhIFJlZmwgaW4gUmVmbCksXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gYWYgUmVmbCBpbiBSZWZsKSxcbiAgICBlZCwgZGVcbiAgfCBGbG9hdF90eSByZXN0IC0+XG4gICAgbGV0IGZhLCBhZiwgZWQsIGRlID0gZm10dHlfcmVsX2RldCByZXN0IGluXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gZmEgUmVmbCBpbiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBhZiBSZWZsIGluIFJlZmwpLFxuICAgIGVkLCBkZVxuICB8IEJvb2xfdHkgcmVzdCAtPlxuICAgIGxldCBmYSwgYWYsIGVkLCBkZSA9IGZtdHR5X3JlbF9kZXQgcmVzdCBpblxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGZhIFJlZmwgaW4gUmVmbCksXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gYWYgUmVmbCBpbiBSZWZsKSxcbiAgICBlZCwgZGVcblxuICB8IFRoZXRhX3R5IHJlc3QgLT5cbiAgICBsZXQgZmEsIGFmLCBlZCwgZGUgPSBmbXR0eV9yZWxfZGV0IHJlc3QgaW5cbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBmYSBSZWZsIGluIFJlZmwpLFxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGFmIFJlZmwgaW4gUmVmbCksXG4gICAgZWQsIGRlXG4gIHwgQWxwaGFfdHkgcmVzdCAtPlxuICAgIGxldCBmYSwgYWYsIGVkLCBkZSA9IGZtdHR5X3JlbF9kZXQgcmVzdCBpblxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGZhIFJlZmwgaW4gUmVmbCksXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gYWYgUmVmbCBpbiBSZWZsKSxcbiAgICBlZCwgZGVcbiAgfCBBbnlfdHkgcmVzdCAtPlxuICAgIGxldCBmYSwgYWYsIGVkLCBkZSA9IGZtdHR5X3JlbF9kZXQgcmVzdCBpblxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGZhIFJlZmwgaW4gUmVmbCksXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gYWYgUmVmbCBpbiBSZWZsKSxcbiAgICBlZCwgZGVcbiAgfCBSZWFkZXJfdHkgcmVzdCAtPlxuICAgIGxldCBmYSwgYWYsIGVkLCBkZSA9IGZtdHR5X3JlbF9kZXQgcmVzdCBpblxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGZhIFJlZmwgaW4gUmVmbCksXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gYWYgUmVmbCBpbiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBlZCBSZWZsIGluIFJlZmwpLFxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGRlIFJlZmwgaW4gUmVmbClcbiAgfCBJZ25vcmVkX3JlYWRlcl90eSByZXN0IC0+XG4gICAgbGV0IGZhLCBhZiwgZWQsIGRlID0gZm10dHlfcmVsX2RldCByZXN0IGluXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gZmEgUmVmbCBpbiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBhZiBSZWZsIGluIFJlZmwpLFxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGVkIFJlZmwgaW4gUmVmbCksXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gZGUgUmVmbCBpbiBSZWZsKVxuICB8IEZvcm1hdF9hcmdfdHkgKF90eSwgcmVzdCkgLT5cbiAgICBsZXQgZmEsIGFmLCBlZCwgZGUgPSBmbXR0eV9yZWxfZGV0IHJlc3QgaW5cbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBmYSBSZWZsIGluIFJlZmwpLFxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGFmIFJlZmwgaW4gUmVmbCksXG4gICAgZWQsIGRlXG4gIHwgRm9ybWF0X3N1YnN0X3R5ICh0eTEsIHR5MiwgcmVzdCkgLT5cbiAgICBsZXQgZmEsIGFmLCBlZCwgZGUgPSBmbXR0eV9yZWxfZGV0IHJlc3QgaW5cbiAgICBsZXQgdHkgPSB0cmFucyAoc3ltbSB0eTEpIHR5MiBpblxuICAgIGxldCBhZywgZ2EsIGRqLCBqZCA9IGZtdHR5X3JlbF9kZXQgdHkgaW5cbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBmYSBSZWZsIGluIGxldCBSZWZsID0gYWcgUmVmbCBpbiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBnYSBSZWZsIGluIGxldCBSZWZsID0gYWYgUmVmbCBpbiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBlZCBSZWZsIGluIGxldCBSZWZsID0gZGogUmVmbCBpbiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBqZCBSZWZsIGluIGxldCBSZWZsID0gZGUgUmVmbCBpbiBSZWZsKVxuXG4oKiBQcmVjb25kaXRpb246IHdlIGFzc3VtZSB0aGF0IHRoZSB0d28gZm10dHlfcmVsIGFyZ3VtZW50cyBoYXZlIGVxdWFsXG4gICB2YWx1ZXMgKGF0IHBvc3NpYmx5IGRpc3RpbmN0IHR5cGVzKTsgdGhpcyBpbnZhcmlhbnQgY29tZXMgZnJvbSB0aGUgd2F5XG4gICBmbXR0eV9yZWwgd2l0bmVzc2VzIGFyZSBwcm9kdWNlZCBieSB0aGUgdHlwZS1jaGVja2VyXG5cbiAgIFRoZSBjb2RlIGJlbG93IHVzZXMgKGFzc2VydCBmYWxzZSkgd2hlbiB0aGlzIGFzc3VtcHRpb24gaXMgYnJva2VuLiBUaGVcbiAgIGNvZGUgcGF0dGVybiBpcyB0aGUgZm9sbG93aW5nOlxuXG4gICAgIHwgRm9vIHgsIEZvbyB5IC0+XG4gICAgICAgKCogY2FzZSB3aGVyZSBpbmRlZWQgYm90aCB2YWx1ZXNcbiAgICAgICAgICBzdGFydCB3aXRoIGNvbnN0cnVjdG9yIEZvbyAqKVxuICAgICB8IEZvbyBfLCBfXG4gICAgIHwgXywgRm9vIF8gLT5cbiAgICAgICAoKiBkaWZmZXJlbnQgaGVhZCBjb25zdHJ1Y3RvcnM6IGJyb2tlbiBwcmVjb25kaXRpb24gKilcbiAgICAgICBhc3NlcnQgZmFsc2VcbiopXG5hbmQgdHJhbnMgOiB0eXBlXG4gIGExIGIxIGMxIGQxIGUxIGYxXG4gIGEyIGIyIGMyIGQyIGUyIGYyXG4gIGEzIGIzIGMzIGQzIGUzIGYzXG4uXG4gICAoYTEsIGIxLCBjMSwgZDEsIGUxLCBmMSxcbiAgICBhMiwgYjIsIGMyLCBkMiwgZTIsIGYyKSBmbXR0eV9yZWxcbi0+IChhMiwgYjIsIGMyLCBkMiwgZTIsIGYyLFxuICAgIGEzLCBiMywgYzMsIGQzLCBlMywgZjMpIGZtdHR5X3JlbFxuLT4gKGExLCBiMSwgYzEsIGQxLCBlMSwgZjEsXG4gICAgYTMsIGIzLCBjMywgZDMsIGUzLCBmMykgZm10dHlfcmVsXG49IGZ1biB0eTEgdHkyIC0+IG1hdGNoIHR5MSwgdHkyIHdpdGhcbiAgfCBDaGFyX3R5IHJlc3QxLCBDaGFyX3R5IHJlc3QyIC0+IENoYXJfdHkgKHRyYW5zIHJlc3QxIHJlc3QyKVxuICB8IFN0cmluZ190eSByZXN0MSwgU3RyaW5nX3R5IHJlc3QyIC0+IFN0cmluZ190eSAodHJhbnMgcmVzdDEgcmVzdDIpXG4gIHwgQm9vbF90eSByZXN0MSwgQm9vbF90eSByZXN0MiAtPiBCb29sX3R5ICh0cmFucyByZXN0MSByZXN0MilcbiAgfCBJbnRfdHkgcmVzdDEsIEludF90eSByZXN0MiAtPiBJbnRfdHkgKHRyYW5zIHJlc3QxIHJlc3QyKVxuICB8IEludDMyX3R5IHJlc3QxLCBJbnQzMl90eSByZXN0MiAtPiBJbnQzMl90eSAodHJhbnMgcmVzdDEgcmVzdDIpXG4gIHwgSW50NjRfdHkgcmVzdDEsIEludDY0X3R5IHJlc3QyIC0+IEludDY0X3R5ICh0cmFucyByZXN0MSByZXN0MilcbiAgfCBOYXRpdmVpbnRfdHkgcmVzdDEsIE5hdGl2ZWludF90eSByZXN0MiAtPiBOYXRpdmVpbnRfdHkgKHRyYW5zIHJlc3QxIHJlc3QyKVxuICB8IEZsb2F0X3R5IHJlc3QxLCBGbG9hdF90eSByZXN0MiAtPiBGbG9hdF90eSAodHJhbnMgcmVzdDEgcmVzdDIpXG5cbiAgfCBBbHBoYV90eSByZXN0MSwgQWxwaGFfdHkgcmVzdDIgLT4gQWxwaGFfdHkgKHRyYW5zIHJlc3QxIHJlc3QyKVxuICB8IEFscGhhX3R5IF8sIF8gLT4gYXNzZXJ0IGZhbHNlXG4gIHwgXywgQWxwaGFfdHkgXyAtPiBhc3NlcnQgZmFsc2VcblxuICB8IFRoZXRhX3R5IHJlc3QxLCBUaGV0YV90eSByZXN0MiAtPiBUaGV0YV90eSAodHJhbnMgcmVzdDEgcmVzdDIpXG4gIHwgVGhldGFfdHkgXywgXyAtPiBhc3NlcnQgZmFsc2VcbiAgfCBfLCBUaGV0YV90eSBfIC0+IGFzc2VydCBmYWxzZVxuXG4gIHwgQW55X3R5IHJlc3QxLCBBbnlfdHkgcmVzdDIgLT4gQW55X3R5ICh0cmFucyByZXN0MSByZXN0MilcbiAgfCBBbnlfdHkgXywgXyAtPiBhc3NlcnQgZmFsc2VcbiAgfCBfLCBBbnlfdHkgXyAtPiBhc3NlcnQgZmFsc2VcblxuICB8IFJlYWRlcl90eSByZXN0MSwgUmVhZGVyX3R5IHJlc3QyIC0+IFJlYWRlcl90eSAodHJhbnMgcmVzdDEgcmVzdDIpXG4gIHwgUmVhZGVyX3R5IF8sIF8gLT4gYXNzZXJ0IGZhbHNlXG4gIHwgXywgUmVhZGVyX3R5IF8gLT4gYXNzZXJ0IGZhbHNlXG5cbiAgfCBJZ25vcmVkX3JlYWRlcl90eSByZXN0MSwgSWdub3JlZF9yZWFkZXJfdHkgcmVzdDIgLT5cbiAgICBJZ25vcmVkX3JlYWRlcl90eSAodHJhbnMgcmVzdDEgcmVzdDIpXG4gIHwgSWdub3JlZF9yZWFkZXJfdHkgXywgXyAtPiBhc3NlcnQgZmFsc2VcbiAgfCBfLCBJZ25vcmVkX3JlYWRlcl90eSBfIC0+IGFzc2VydCBmYWxzZVxuXG4gIHwgRm9ybWF0X2FyZ190eSAodHkxLCByZXN0MSksIEZvcm1hdF9hcmdfdHkgKHR5MiwgcmVzdDIpIC0+XG4gICAgRm9ybWF0X2FyZ190eSAodHJhbnMgdHkxIHR5MiwgdHJhbnMgcmVzdDEgcmVzdDIpXG4gIHwgRm9ybWF0X2FyZ190eSBfLCBfIC0+IGFzc2VydCBmYWxzZVxuICB8IF8sIEZvcm1hdF9hcmdfdHkgXyAtPiBhc3NlcnQgZmFsc2VcblxuICB8IEZvcm1hdF9zdWJzdF90eSAodHkxMSwgdHkxMiwgcmVzdDEpLFxuICAgIEZvcm1hdF9zdWJzdF90eSAodHkyMSwgdHkyMiwgcmVzdDIpIC0+XG4gICAgbGV0IHR5ID0gdHJhbnMgKHN5bW0gdHkxMikgdHkyMSBpblxuICAgIGxldCBfLCBmMiwgXywgZjQgPSBmbXR0eV9yZWxfZGV0IHR5IGluXG4gICAgbGV0IFJlZmwgPSBmMiBSZWZsIGluXG4gICAgbGV0IFJlZmwgPSBmNCBSZWZsIGluXG4gICAgRm9ybWF0X3N1YnN0X3R5ICh0eTExLCB0eTIyLCB0cmFucyByZXN0MSByZXN0MilcbiAgfCBGb3JtYXRfc3Vic3RfdHkgXywgXyAtPiBhc3NlcnQgZmFsc2VcbiAgfCBfLCBGb3JtYXRfc3Vic3RfdHkgXyAtPiBhc3NlcnQgZmFsc2VcblxuICB8IEVuZF9vZl9mbXR0eSwgRW5kX29mX2ZtdHR5IC0+IEVuZF9vZl9mbXR0eVxuICB8IEVuZF9vZl9mbXR0eSwgXyAtPiBhc3NlcnQgZmFsc2VcbiAgfCBfLCBFbmRfb2ZfZm10dHkgLT4gYXNzZXJ0IGZhbHNlXG5cbmxldCByZWMgZm10dHlfb2ZfZm9ybWF0dGluZ19nZW4gOiB0eXBlIGEgYiBjIGQgZSBmIC5cbiAgKGEsIGIsIGMsIGQsIGUsIGYpIGZvcm1hdHRpbmdfZ2VuIC0+XG4gICAgKGEsIGIsIGMsIGQsIGUsIGYpIGZtdHR5ID1cbmZ1biBmb3JtYXR0aW5nX2dlbiAtPiBtYXRjaCBmb3JtYXR0aW5nX2dlbiB3aXRoXG4gIHwgT3Blbl90YWcgKEZvcm1hdCAoZm10LCBfKSkgLT4gZm10dHlfb2ZfZm10IGZtdFxuICB8IE9wZW5fYm94IChGb3JtYXQgKGZtdCwgXykpIC0+IGZtdHR5X29mX2ZtdCBmbXRcblxuKCogRXh0cmFjdCB0aGUgdHlwZSByZXByZXNlbnRhdGlvbiAoYW4gZm10dHkpIG9mIGEgZm9ybWF0LiAqKVxuYW5kIGZtdHR5X29mX2ZtdCA6IHR5cGUgYSBiIGMgZCBlIGYgLlxuICAoYSwgYiwgYywgZCwgZSwgZikgZm10IC0+IChhLCBiLCBjLCBkLCBlLCBmKSBmbXR0eSA9XG5mdW4gZm10dHkgLT4gbWF0Y2ggZm10dHkgd2l0aFxuICB8IFN0cmluZyAocGFkLCByZXN0KSAtPlxuICAgIGZtdHR5X29mX3BhZGRpbmdfZm10dHkgcGFkIChTdHJpbmdfdHkgKGZtdHR5X29mX2ZtdCByZXN0KSlcbiAgfCBDYW1sX3N0cmluZyAocGFkLCByZXN0KSAtPlxuICAgIGZtdHR5X29mX3BhZGRpbmdfZm10dHkgcGFkIChTdHJpbmdfdHkgKGZtdHR5X29mX2ZtdCByZXN0KSlcblxuICB8IEludCAoXywgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIGxldCB0eV9yZXN0ID0gZm10dHlfb2ZfZm10IHJlc3QgaW5cbiAgICBsZXQgcHJlY190eSA9IGZtdHR5X29mX3ByZWNpc2lvbl9mbXR0eSBwcmVjIChJbnRfdHkgdHlfcmVzdCkgaW5cbiAgICBmbXR0eV9vZl9wYWRkaW5nX2ZtdHR5IHBhZCBwcmVjX3R5XG4gIHwgSW50MzIgKF8sIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICBsZXQgdHlfcmVzdCA9IGZtdHR5X29mX2ZtdCByZXN0IGluXG4gICAgbGV0IHByZWNfdHkgPSBmbXR0eV9vZl9wcmVjaXNpb25fZm10dHkgcHJlYyAoSW50MzJfdHkgdHlfcmVzdCkgaW5cbiAgICBmbXR0eV9vZl9wYWRkaW5nX2ZtdHR5IHBhZCBwcmVjX3R5XG4gIHwgTmF0aXZlaW50IChfLCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgbGV0IHR5X3Jlc3QgPSBmbXR0eV9vZl9mbXQgcmVzdCBpblxuICAgIGxldCBwcmVjX3R5ID0gZm10dHlfb2ZfcHJlY2lzaW9uX2ZtdHR5IHByZWMgKE5hdGl2ZWludF90eSB0eV9yZXN0KSBpblxuICAgIGZtdHR5X29mX3BhZGRpbmdfZm10dHkgcGFkIHByZWNfdHlcbiAgfCBJbnQ2NCAoXywgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIGxldCB0eV9yZXN0ID0gZm10dHlfb2ZfZm10IHJlc3QgaW5cbiAgICBsZXQgcHJlY190eSA9IGZtdHR5X29mX3ByZWNpc2lvbl9mbXR0eSBwcmVjIChJbnQ2NF90eSB0eV9yZXN0KSBpblxuICAgIGZtdHR5X29mX3BhZGRpbmdfZm10dHkgcGFkIHByZWNfdHlcbiAgfCBGbG9hdCAoXywgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIGxldCB0eV9yZXN0ID0gZm10dHlfb2ZfZm10IHJlc3QgaW5cbiAgICBsZXQgcHJlY190eSA9IGZtdHR5X29mX3ByZWNpc2lvbl9mbXR0eSBwcmVjIChGbG9hdF90eSB0eV9yZXN0KSBpblxuICAgIGZtdHR5X29mX3BhZGRpbmdfZm10dHkgcGFkIHByZWNfdHlcblxuICB8IENoYXIgcmVzdCAgICAgICAgICAgICAgICAgIC0+IENoYXJfdHkgKGZtdHR5X29mX2ZtdCByZXN0KVxuICB8IENhbWxfY2hhciByZXN0ICAgICAgICAgICAgIC0+IENoYXJfdHkgKGZtdHR5X29mX2ZtdCByZXN0KVxuICB8IEJvb2wgKHBhZCwgcmVzdCkgICAgICAgICAgIC0+XG4gICAgICBmbXR0eV9vZl9wYWRkaW5nX2ZtdHR5IHBhZCAoQm9vbF90eSAoZm10dHlfb2ZfZm10IHJlc3QpKVxuICB8IEFscGhhIHJlc3QgICAgICAgICAgICAgICAgIC0+IEFscGhhX3R5IChmbXR0eV9vZl9mbXQgcmVzdClcbiAgfCBUaGV0YSByZXN0ICAgICAgICAgICAgICAgICAtPiBUaGV0YV90eSAoZm10dHlfb2ZfZm10IHJlc3QpXG4gIHwgQ3VzdG9tIChhcml0eSwgXywgcmVzdCkgICAgLT4gZm10dHlfb2ZfY3VzdG9tIGFyaXR5IChmbXR0eV9vZl9mbXQgcmVzdClcbiAgfCBSZWFkZXIgcmVzdCAgICAgICAgICAgICAgICAtPiBSZWFkZXJfdHkgKGZtdHR5X29mX2ZtdCByZXN0KVxuXG4gIHwgRm9ybWF0X2FyZyAoXywgdHksIHJlc3QpIC0+XG4gICAgRm9ybWF0X2FyZ190eSAodHksIGZtdHR5X29mX2ZtdCByZXN0KVxuICB8IEZvcm1hdF9zdWJzdCAoXywgdHksIHJlc3QpIC0+XG4gICAgRm9ybWF0X3N1YnN0X3R5ICh0eSwgdHksIGZtdHR5X29mX2ZtdCByZXN0KVxuXG4gIHwgRmx1c2ggcmVzdCAgICAgICAgICAgICAgICAgLT4gZm10dHlfb2ZfZm10IHJlc3RcbiAgfCBTdHJpbmdfbGl0ZXJhbCAoXywgcmVzdCkgICAtPiBmbXR0eV9vZl9mbXQgcmVzdFxuICB8IENoYXJfbGl0ZXJhbCAoXywgcmVzdCkgICAgIC0+IGZtdHR5X29mX2ZtdCByZXN0XG5cbiAgfCBTY2FuX2NoYXJfc2V0IChfLCBfLCByZXN0KSAtPiBTdHJpbmdfdHkgKGZtdHR5X29mX2ZtdCByZXN0KVxuICB8IFNjYW5fZ2V0X2NvdW50ZXIgKF8sIHJlc3QpIC0+IEludF90eSAoZm10dHlfb2ZfZm10IHJlc3QpXG4gIHwgU2Nhbl9uZXh0X2NoYXIgcmVzdCAgICAgICAgLT4gQ2hhcl90eSAoZm10dHlfb2ZfZm10IHJlc3QpXG4gIHwgSWdub3JlZF9wYXJhbSAoaWduLCByZXN0KSAgLT4gZm10dHlfb2ZfaWdub3JlZF9mb3JtYXQgaWduIHJlc3RcbiAgfCBGb3JtYXR0aW5nX2xpdCAoXywgcmVzdCkgICAtPiBmbXR0eV9vZl9mbXQgcmVzdFxuICB8IEZvcm1hdHRpbmdfZ2VuIChmbXRpbmdfZ2VuLCByZXN0KSAgLT5cbiAgICBjb25jYXRfZm10dHkgKGZtdHR5X29mX2Zvcm1hdHRpbmdfZ2VuIGZtdGluZ19nZW4pIChmbXR0eV9vZl9mbXQgcmVzdClcblxuICB8IEVuZF9vZl9mb3JtYXQgICAgICAgICAgICAgIC0+IEVuZF9vZl9mbXR0eVxuXG5hbmQgZm10dHlfb2ZfY3VzdG9tIDogdHlwZSB4IHkgYSBiIGMgZCBlIGYgLlxuICAoYSwgeCwgeSkgY3VzdG9tX2FyaXR5IC0+IChhLCBiLCBjLCBkLCBlLCBmKSBmbXR0eSAtPlxuICAoeSwgYiwgYywgZCwgZSwgZikgZm10dHkgPVxuZnVuIGFyaXR5IGZtdHR5IC0+IG1hdGNoIGFyaXR5IHdpdGhcbiAgfCBDdXN0b21femVybyAtPiBmbXR0eVxuICB8IEN1c3RvbV9zdWNjIGFyaXR5IC0+IEFueV90eSAoZm10dHlfb2ZfY3VzdG9tIGFyaXR5IGZtdHR5KVxuXG4oKiBFeHRyYWN0IHRoZSBmbXR0eSBvZiBhbiBpZ25vcmVkIHBhcmFtZXRlciBmb2xsb3dlZCBieSB0aGUgcmVzdCBvZlxuICAgdGhlIGZvcm1hdC4gKilcbmFuZCBmbXR0eV9vZl9pZ25vcmVkX2Zvcm1hdCA6IHR5cGUgeCB5IGEgYiBjIGQgZSBmIC5cbiAgICAoYSwgYiwgYywgZCwgeSwgeCkgaWdub3JlZCAtPlxuICAgICh4LCBiLCBjLCB5LCBlLCBmKSBmbXQgLT5cbiAgICAoYSwgYiwgYywgZCwgZSwgZikgZm10dHkgPVxuZnVuIGlnbiBmbXQgLT4gbWF0Y2ggaWduIHdpdGhcbiAgfCBJZ25vcmVkX2NoYXIgICAgICAgICAgICAgICAgICAgIC0+IGZtdHR5X29mX2ZtdCBmbXRcbiAgfCBJZ25vcmVkX2NhbWxfY2hhciAgICAgICAgICAgICAgIC0+IGZtdHR5X29mX2ZtdCBmbXRcbiAgfCBJZ25vcmVkX3N0cmluZyBfICAgICAgICAgICAgICAgIC0+IGZtdHR5X29mX2ZtdCBmbXRcbiAgfCBJZ25vcmVkX2NhbWxfc3RyaW5nIF8gICAgICAgICAgIC0+IGZtdHR5X29mX2ZtdCBmbXRcbiAgfCBJZ25vcmVkX2ludCAoXywgXykgICAgICAgICAgICAgIC0+IGZtdHR5X29mX2ZtdCBmbXRcbiAgfCBJZ25vcmVkX2ludDMyIChfLCBfKSAgICAgICAgICAgIC0+IGZtdHR5X29mX2ZtdCBmbXRcbiAgfCBJZ25vcmVkX25hdGl2ZWludCAoXywgXykgICAgICAgIC0+IGZtdHR5X29mX2ZtdCBmbXRcbiAgfCBJZ25vcmVkX2ludDY0IChfLCBfKSAgICAgICAgICAgIC0+IGZtdHR5X29mX2ZtdCBmbXRcbiAgfCBJZ25vcmVkX2Zsb2F0IChfLCBfKSAgICAgICAgICAgIC0+IGZtdHR5X29mX2ZtdCBmbXRcbiAgfCBJZ25vcmVkX2Jvb2wgXyAgICAgICAgICAgICAgICAgIC0+IGZtdHR5X29mX2ZtdCBmbXRcbiAgfCBJZ25vcmVkX2Zvcm1hdF9hcmcgXyAgICAgICAgICAgIC0+IGZtdHR5X29mX2ZtdCBmbXRcbiAgfCBJZ25vcmVkX2Zvcm1hdF9zdWJzdCAoXywgZm10dHkpIC0+IGNvbmNhdF9mbXR0eSBmbXR0eSAoZm10dHlfb2ZfZm10IGZtdClcbiAgfCBJZ25vcmVkX3JlYWRlciAgICAgICAgICAgICAgICAgIC0+IElnbm9yZWRfcmVhZGVyX3R5IChmbXR0eV9vZl9mbXQgZm10KVxuICB8IElnbm9yZWRfc2Nhbl9jaGFyX3NldCBfICAgICAgICAgLT4gZm10dHlfb2ZfZm10IGZtdFxuICB8IElnbm9yZWRfc2Nhbl9nZXRfY291bnRlciBfICAgICAgLT4gZm10dHlfb2ZfZm10IGZtdFxuICB8IElnbm9yZWRfc2Nhbl9uZXh0X2NoYXIgICAgICAgICAgLT4gZm10dHlfb2ZfZm10IGZtdFxuXG4oKiBBZGQgYW4gSW50X3R5IG5vZGUgaWYgcGFkZGluZyBpcyB0YWtlbiBhcyBhbiBleHRyYSBhcmd1bWVudCAoZXg6IFwiJSpzXCIpLiAqKVxuYW5kIGZtdHR5X29mX3BhZGRpbmdfZm10dHkgOiB0eXBlIHggYSBiIGMgZCBlIGYgLlxuICAgICh4LCBhKSBwYWRkaW5nIC0+IChhLCBiLCBjLCBkLCBlLCBmKSBmbXR0eSAtPiAoeCwgYiwgYywgZCwgZSwgZikgZm10dHkgPVxuICBmdW4gcGFkIGZtdHR5IC0+IG1hdGNoIHBhZCB3aXRoXG4gICAgfCBOb19wYWRkaW5nICAgIC0+IGZtdHR5XG4gICAgfCBMaXRfcGFkZGluZyBfIC0+IGZtdHR5XG4gICAgfCBBcmdfcGFkZGluZyBfIC0+IEludF90eSBmbXR0eVxuXG4oKiBBZGQgYW4gSW50X3R5IG5vZGUgaWYgcHJlY2lzaW9uIGlzIHRha2VuIGFzIGFuIGV4dHJhIGFyZ3VtZW50IChleDogXCIlLipmXCIpLiopXG5hbmQgZm10dHlfb2ZfcHJlY2lzaW9uX2ZtdHR5IDogdHlwZSB4IGEgYiBjIGQgZSBmIC5cbiAgICAoeCwgYSkgcHJlY2lzaW9uIC0+IChhLCBiLCBjLCBkLCBlLCBmKSBmbXR0eSAtPiAoeCwgYiwgYywgZCwgZSwgZikgZm10dHkgPVxuICBmdW4gcHJlYyBmbXR0eSAtPiBtYXRjaCBwcmVjIHdpdGhcbiAgICB8IE5vX3ByZWNpc2lvbiAgICAtPiBmbXR0eVxuICAgIHwgTGl0X3ByZWNpc2lvbiBfIC0+IGZtdHR5XG4gICAgfCBBcmdfcHJlY2lzaW9uICAgLT4gSW50X3R5IGZtdHR5XG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogRm9ybWF0IHR5cGluZyAqKVxuXG4oKiBFeGNlcHRpb24gcmFpc2VkIHdoZW4gYSBmb3JtYXQgZG9lcyBub3QgbWF0Y2ggYSBnaXZlbiBmb3JtYXQgdHlwZS4gKilcbmV4Y2VwdGlvbiBUeXBlX21pc21hdGNoXG5cbigqIFR5cGUgYSBwYWRkaW5nLiAqKVxuKCogVGFrZSBhbiBJbnRfdHkgZnJvbSB0aGUgZm10dHkgaWYgdGhlIGludGVnZXIgc2hvdWxkIGJlIGtlcHQgYXMgYXJndW1lbnQuICopXG4oKiBSYWlzZSBUeXBlX21pc21hdGNoIGluIGNhc2Ugb2YgdHlwZSBtaXNtYXRjaC4gKilcbmxldCB0eXBlX3BhZGRpbmcgOiB0eXBlIGEgYiBjIGQgZSBmIHggeSAuXG4gICAgKHgsIHkpIHBhZGRpbmcgLT4gKGEsIGIsIGMsIGQsIGUsIGYpIGZtdHR5IC0+XG4gICAgICAoYSwgYiwgYywgZCwgZSwgZikgcGFkZGluZ19mbXR0eV9lYmIgPVxuZnVuIHBhZCBmbXR0eSAtPiBtYXRjaCBwYWQsIGZtdHR5IHdpdGhcbiAgfCBOb19wYWRkaW5nLCBfIC0+IFBhZGRpbmdfZm10dHlfRUJCIChOb19wYWRkaW5nLCBmbXR0eSlcbiAgfCBMaXRfcGFkZGluZyAocGFkdHksIHcpLCBfIC0+IFBhZGRpbmdfZm10dHlfRUJCIChMaXRfcGFkZGluZyAocGFkdHksdyksZm10dHkpXG4gIHwgQXJnX3BhZGRpbmcgcGFkdHksIEludF90eSByZXN0IC0+IFBhZGRpbmdfZm10dHlfRUJCIChBcmdfcGFkZGluZyBwYWR0eSxyZXN0KVxuICB8IF8gLT4gcmFpc2UgVHlwZV9taXNtYXRjaFxuXG4oKiBDb252ZXJ0IGEgKHVwYWRkaW5nLCB1cHJlY2lzaW9uKSB0byBhIChwYWRkaW5nLCBwcmVjaXNpb24pLiAqKVxuKCogVGFrZSBvbmUgb3IgdHdvIEludF90eSBmcm9tIHRoZSBmbXR0eSBpZiBuZWVkZWQuICopXG4oKiBSYWlzZSBUeXBlX21pc21hdGNoIGluIGNhc2Ugb2YgdHlwZSBtaXNtYXRjaC4gKilcbmxldCB0eXBlX3BhZHByZWMgOiB0eXBlIGEgYiBjIGQgZSBmIHggeSB6IC5cbiAgKHgsIHkpIHBhZGRpbmcgLT4gKHksIHopIHByZWNpc2lvbiAtPiAoYSwgYiwgYywgZCwgZSwgZikgZm10dHkgLT5cbiAgICAoYSwgYiwgYywgZCwgZSwgZikgcGFkcHJlY19mbXR0eV9lYmIgPVxuZnVuIHBhZCBwcmVjIGZtdHR5IC0+IG1hdGNoIHByZWMsIHR5cGVfcGFkZGluZyBwYWQgZm10dHkgd2l0aFxuICB8IE5vX3ByZWNpc2lvbiwgUGFkZGluZ19mbXR0eV9FQkIgKHBhZCwgcmVzdCkgLT5cbiAgICBQYWRwcmVjX2ZtdHR5X0VCQiAocGFkLCBOb19wcmVjaXNpb24sIHJlc3QpXG4gIHwgTGl0X3ByZWNpc2lvbiBwLCBQYWRkaW5nX2ZtdHR5X0VCQiAocGFkLCByZXN0KSAtPlxuICAgIFBhZHByZWNfZm10dHlfRUJCIChwYWQsIExpdF9wcmVjaXNpb24gcCwgcmVzdClcbiAgfCBBcmdfcHJlY2lzaW9uLCBQYWRkaW5nX2ZtdHR5X0VCQiAocGFkLCBJbnRfdHkgcmVzdCkgLT5cbiAgICBQYWRwcmVjX2ZtdHR5X0VCQiAocGFkLCBBcmdfcHJlY2lzaW9uLCByZXN0KVxuICB8IF8sIFBhZGRpbmdfZm10dHlfRUJCIChfLCBfKSAtPiByYWlzZSBUeXBlX21pc21hdGNoXG5cbigqIFR5cGUgYSBmb3JtYXQgYWNjb3JkaW5nIHRvIGFuIGZtdHR5LiAqKVxuKCogSWYgdHlwaW5nIHN1Y2NlZWQsIGdlbmVyYXRlIGEgY29weSBvZiB0aGUgZm9ybWF0IHdpdGggdGhlIHNhbWVcbiAgICB0eXBlIHBhcmFtZXRlcnMgYXMgdGhlIGZtdHR5LiAqKVxuKCogUmFpc2UgW0ZhaWx1cmVdIHdpdGggYW4gZXJyb3IgbWVzc2FnZSBpbiBjYXNlIG9mIHR5cGUgbWlzbWF0Y2guICopXG5sZXQgcmVjIHR5cGVfZm9ybWF0IDpcbiAgdHlwZSBhMSBiMSBjMSBkMSBlMSBmMVxuICAgICAgIGEyIGIyIGMyIGQyIGUyIGYyICAuXG4gICAgIChhMSwgYjEsIGMxLCBkMSwgZTEsIGYxKSBmbXRcbiAgLT4gKGEyLCBiMiwgYzIsIGQyLCBlMiwgZjIpIGZtdHR5XG4gIC0+IChhMiwgYjIsIGMyLCBkMiwgZTIsIGYyKSBmbXRcbj0gZnVuIGZtdCBmbXR0eSAtPiBtYXRjaCB0eXBlX2Zvcm1hdF9nZW4gZm10IGZtdHR5IHdpdGhcbiAgfCBGbXRfZm10dHlfRUJCIChmbXQnLCBFbmRfb2ZfZm10dHkpIC0+IGZtdCdcbiAgfCBfIC0+IHJhaXNlIFR5cGVfbWlzbWF0Y2hcblxuYW5kIHR5cGVfZm9ybWF0X2dlbiA6XG4gIHR5cGUgYTEgYjEgYzEgZDEgZTEgZjFcbiAgICAgICBhMiBiMiBjMiBkMiBlMiBmMiAgLlxuICAgICAoYTEsIGIxLCBjMSwgZDEsIGUxLCBmMSkgZm10XG4gIC0+IChhMiwgYjIsIGMyLCBkMiwgZTIsIGYyKSBmbXR0eVxuICAtPiAoYTIsIGIyLCBjMiwgZDIsIGUyLCBmMikgZm10X2ZtdHR5X2ViYlxuPSBmdW4gZm10IGZtdHR5IC0+IG1hdGNoIGZtdCwgZm10dHkgd2l0aFxuICB8IENoYXIgZm10X3Jlc3QsIENoYXJfdHkgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXRfZm10dHlfRUJCIChmbXQnLCBmbXR0eScpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdF9yZXN0IGZtdHR5X3Jlc3QgaW5cbiAgICBGbXRfZm10dHlfRUJCIChDaGFyIGZtdCcsIGZtdHR5JylcbiAgfCBDYW1sX2NoYXIgZm10X3Jlc3QsIENoYXJfdHkgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXRfZm10dHlfRUJCIChmbXQnLCBmbXR0eScpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdF9yZXN0IGZtdHR5X3Jlc3QgaW5cbiAgICBGbXRfZm10dHlfRUJCIChDYW1sX2NoYXIgZm10JywgZm10dHknKVxuICB8IFN0cmluZyAocGFkLCBmbXRfcmVzdCksIF8gLT4gKFxuICAgIG1hdGNoIHR5cGVfcGFkZGluZyBwYWQgZm10dHkgd2l0aFxuICAgIHwgUGFkZGluZ19mbXR0eV9FQkIgKHBhZCwgU3RyaW5nX3R5IGZtdHR5X3Jlc3QpIC0+XG4gICAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXRfcmVzdCBmbXR0eV9yZXN0IGluXG4gICAgICBGbXRfZm10dHlfRUJCIChTdHJpbmcgKHBhZCwgZm10JyksIGZtdHR5JylcbiAgICB8IFBhZGRpbmdfZm10dHlfRUJCIChfLCBfKSAtPiByYWlzZSBUeXBlX21pc21hdGNoXG4gIClcbiAgfCBDYW1sX3N0cmluZyAocGFkLCBmbXRfcmVzdCksIF8gLT4gKFxuICAgIG1hdGNoIHR5cGVfcGFkZGluZyBwYWQgZm10dHkgd2l0aFxuICAgIHwgUGFkZGluZ19mbXR0eV9FQkIgKHBhZCwgU3RyaW5nX3R5IGZtdHR5X3Jlc3QpIC0+XG4gICAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXRfcmVzdCBmbXR0eV9yZXN0IGluXG4gICAgICBGbXRfZm10dHlfRUJCIChDYW1sX3N0cmluZyAocGFkLCBmbXQnKSwgZm10dHknKVxuICAgIHwgUGFkZGluZ19mbXR0eV9FQkIgKF8sIF8pIC0+IHJhaXNlIFR5cGVfbWlzbWF0Y2hcbiAgKVxuICB8IEludCAoaWNvbnYsIHBhZCwgcHJlYywgZm10X3Jlc3QpLCBfIC0+IChcbiAgICBtYXRjaCB0eXBlX3BhZHByZWMgcGFkIHByZWMgZm10dHkgd2l0aFxuICAgIHwgUGFkcHJlY19mbXR0eV9FQkIgKHBhZCwgcHJlYywgSW50X3R5IGZtdHR5X3Jlc3QpIC0+XG4gICAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXRfcmVzdCBmbXR0eV9yZXN0IGluXG4gICAgICBGbXRfZm10dHlfRUJCIChJbnQgKGljb252LCBwYWQsIHByZWMsIGZtdCcpLCBmbXR0eScpXG4gICAgfCBQYWRwcmVjX2ZtdHR5X0VCQiAoXywgXywgXykgLT4gcmFpc2UgVHlwZV9taXNtYXRjaFxuICApXG4gIHwgSW50MzIgKGljb252LCBwYWQsIHByZWMsIGZtdF9yZXN0KSwgXyAtPiAoXG4gICAgbWF0Y2ggdHlwZV9wYWRwcmVjIHBhZCBwcmVjIGZtdHR5IHdpdGhcbiAgICB8IFBhZHByZWNfZm10dHlfRUJCIChwYWQsIHByZWMsIEludDMyX3R5IGZtdHR5X3Jlc3QpIC0+XG4gICAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXRfcmVzdCBmbXR0eV9yZXN0IGluXG4gICAgICBGbXRfZm10dHlfRUJCIChJbnQzMiAoaWNvbnYsIHBhZCwgcHJlYywgZm10JyksIGZtdHR5JylcbiAgICB8IFBhZHByZWNfZm10dHlfRUJCIChfLCBfLCBfKSAtPiByYWlzZSBUeXBlX21pc21hdGNoXG4gIClcbiAgfCBOYXRpdmVpbnQgKGljb252LCBwYWQsIHByZWMsIGZtdF9yZXN0KSwgXyAtPiAoXG4gICAgbWF0Y2ggdHlwZV9wYWRwcmVjIHBhZCBwcmVjIGZtdHR5IHdpdGhcbiAgICB8IFBhZHByZWNfZm10dHlfRUJCIChwYWQsIHByZWMsIE5hdGl2ZWludF90eSBmbXR0eV9yZXN0KSAtPlxuICAgICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdCcsIGZtdHR5JykgPSB0eXBlX2Zvcm1hdF9nZW4gZm10X3Jlc3QgZm10dHlfcmVzdCBpblxuICAgICAgRm10X2ZtdHR5X0VCQiAoTmF0aXZlaW50IChpY29udiwgcGFkLCBwcmVjLCBmbXQnKSwgZm10dHknKVxuICAgIHwgUGFkcHJlY19mbXR0eV9FQkIgKF8sIF8sIF8pIC0+IHJhaXNlIFR5cGVfbWlzbWF0Y2hcbiAgKVxuICB8IEludDY0IChpY29udiwgcGFkLCBwcmVjLCBmbXRfcmVzdCksIF8gLT4gKFxuICAgIG1hdGNoIHR5cGVfcGFkcHJlYyBwYWQgcHJlYyBmbXR0eSB3aXRoXG4gICAgfCBQYWRwcmVjX2ZtdHR5X0VCQiAocGFkLCBwcmVjLCBJbnQ2NF90eSBmbXR0eV9yZXN0KSAtPlxuICAgICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdCcsIGZtdHR5JykgPSB0eXBlX2Zvcm1hdF9nZW4gZm10X3Jlc3QgZm10dHlfcmVzdCBpblxuICAgICAgRm10X2ZtdHR5X0VCQiAoSW50NjQgKGljb252LCBwYWQsIHByZWMsIGZtdCcpLCBmbXR0eScpXG4gICAgfCBQYWRwcmVjX2ZtdHR5X0VCQiAoXywgXywgXykgLT4gcmFpc2UgVHlwZV9taXNtYXRjaFxuICApXG4gIHwgRmxvYXQgKGZjb252LCBwYWQsIHByZWMsIGZtdF9yZXN0KSwgXyAtPiAoXG4gICAgbWF0Y2ggdHlwZV9wYWRwcmVjIHBhZCBwcmVjIGZtdHR5IHdpdGhcbiAgICB8IFBhZHByZWNfZm10dHlfRUJCIChwYWQsIHByZWMsIEZsb2F0X3R5IGZtdHR5X3Jlc3QpIC0+XG4gICAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXRfcmVzdCBmbXR0eV9yZXN0IGluXG4gICAgICBGbXRfZm10dHlfRUJCIChGbG9hdCAoZmNvbnYsIHBhZCwgcHJlYywgZm10JyksIGZtdHR5JylcbiAgICB8IFBhZHByZWNfZm10dHlfRUJCIChfLCBfLCBfKSAtPiByYWlzZSBUeXBlX21pc21hdGNoXG4gIClcbiAgfCBCb29sIChwYWQsIGZtdF9yZXN0KSwgXyAtPiAoXG4gICAgbWF0Y2ggdHlwZV9wYWRkaW5nIHBhZCBmbXR0eSB3aXRoXG4gICAgfCBQYWRkaW5nX2ZtdHR5X0VCQiAocGFkLCBCb29sX3R5IGZtdHR5X3Jlc3QpIC0+XG4gICAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXRfcmVzdCBmbXR0eV9yZXN0IGluXG4gICAgICBGbXRfZm10dHlfRUJCIChCb29sIChwYWQsIGZtdCcpLCBmbXR0eScpXG4gICAgfCBQYWRkaW5nX2ZtdHR5X0VCQiAoXywgXykgLT4gcmFpc2UgVHlwZV9taXNtYXRjaFxuICApXG4gIHwgRmx1c2ggZm10X3Jlc3QsIGZtdHR5X3Jlc3QgLT5cbiAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXRfcmVzdCBmbXR0eV9yZXN0IGluXG4gICAgRm10X2ZtdHR5X0VCQiAoRmx1c2ggZm10JywgZm10dHknKVxuXG4gIHwgU3RyaW5nX2xpdGVyYWwgKHN0ciwgZm10X3Jlc3QpLCBmbXR0eV9yZXN0IC0+XG4gICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdCcsIGZtdHR5JykgPSB0eXBlX2Zvcm1hdF9nZW4gZm10X3Jlc3QgZm10dHlfcmVzdCBpblxuICAgIEZtdF9mbXR0eV9FQkIgKFN0cmluZ19saXRlcmFsIChzdHIsIGZtdCcpLCBmbXR0eScpXG4gIHwgQ2hhcl9saXRlcmFsIChjaHIsIGZtdF9yZXN0KSwgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXRfZm10dHlfRUJCIChmbXQnLCBmbXR0eScpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdF9yZXN0IGZtdHR5X3Jlc3QgaW5cbiAgICBGbXRfZm10dHlfRUJCIChDaGFyX2xpdGVyYWwgKGNociwgZm10JyksIGZtdHR5JylcblxuICB8IEZvcm1hdF9hcmcgKHBhZF9vcHQsIHN1Yl9mbXR0eSwgZm10X3Jlc3QpLFxuICAgIEZvcm1hdF9hcmdfdHkgKHN1Yl9mbXR0eScsIGZtdHR5X3Jlc3QpIC0+XG4gICAgaWYgRm10dHlfRUJCIHN1Yl9mbXR0eSA8PiBGbXR0eV9FQkIgc3ViX2ZtdHR5JyB0aGVuIHJhaXNlIFR5cGVfbWlzbWF0Y2g7XG4gICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdCcsIGZtdHR5JykgPSB0eXBlX2Zvcm1hdF9nZW4gZm10X3Jlc3QgZm10dHlfcmVzdCBpblxuICAgIEZtdF9mbXR0eV9FQkIgKEZvcm1hdF9hcmcgKHBhZF9vcHQsIHN1Yl9mbXR0eScsIGZtdCcpLCBmbXR0eScpXG4gIHwgRm9ybWF0X3N1YnN0IChwYWRfb3B0LCBzdWJfZm10dHksIGZtdF9yZXN0KSxcbiAgICBGb3JtYXRfc3Vic3RfdHkgKHN1Yl9mbXR0eTEsIF9zdWJfZm10dHkyLCBmbXR0eV9yZXN0KSAtPlxuICAgIGlmIEZtdHR5X0VCQiAoZXJhc2VfcmVsIHN1Yl9mbXR0eSkgPD4gRm10dHlfRUJCIChlcmFzZV9yZWwgc3ViX2ZtdHR5MSkgdGhlblxuICAgICAgcmFpc2UgVHlwZV9taXNtYXRjaDtcbiAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9XG4gICAgICB0eXBlX2Zvcm1hdF9nZW4gZm10X3Jlc3QgKGVyYXNlX3JlbCBmbXR0eV9yZXN0KVxuICAgIGluXG4gICAgRm10X2ZtdHR5X0VCQiAoRm9ybWF0X3N1YnN0IChwYWRfb3B0LCBzdWJfZm10dHkxLCBmbXQnKSwgZm10dHknKVxuICAoKiBQcmludGYgYW5kIEZvcm1hdCBzcGVjaWZpYyBjb25zdHJ1Y3RvcnM6ICopXG4gIHwgQWxwaGEgZm10X3Jlc3QsIEFscGhhX3R5IGZtdHR5X3Jlc3QgLT5cbiAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXRfcmVzdCBmbXR0eV9yZXN0IGluXG4gICAgRm10X2ZtdHR5X0VCQiAoQWxwaGEgZm10JywgZm10dHknKVxuICB8IFRoZXRhIGZtdF9yZXN0LCBUaGV0YV90eSBmbXR0eV9yZXN0IC0+XG4gICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdCcsIGZtdHR5JykgPSB0eXBlX2Zvcm1hdF9nZW4gZm10X3Jlc3QgZm10dHlfcmVzdCBpblxuICAgIEZtdF9mbXR0eV9FQkIgKFRoZXRhIGZtdCcsIGZtdHR5JylcblxuICAoKiBGb3JtYXQgc3BlY2lmaWMgY29uc3RydWN0b3JzOiAqKVxuICB8IEZvcm1hdHRpbmdfbGl0IChmb3JtYXR0aW5nX2xpdCwgZm10X3Jlc3QpLCBmbXR0eV9yZXN0IC0+XG4gICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdCcsIGZtdHR5JykgPSB0eXBlX2Zvcm1hdF9nZW4gZm10X3Jlc3QgZm10dHlfcmVzdCBpblxuICAgIEZtdF9mbXR0eV9FQkIgKEZvcm1hdHRpbmdfbGl0IChmb3JtYXR0aW5nX2xpdCwgZm10JyksIGZtdHR5JylcbiAgfCBGb3JtYXR0aW5nX2dlbiAoZm9ybWF0dGluZ19nZW4sIGZtdF9yZXN0KSwgZm10dHlfcmVzdCAtPlxuICAgIHR5cGVfZm9ybWF0dGluZ19nZW4gZm9ybWF0dGluZ19nZW4gZm10X3Jlc3QgZm10dHlfcmVzdFxuXG4gICgqIFNjYW5mIHNwZWNpZmljIGNvbnN0cnVjdG9yczogKilcbiAgfCBSZWFkZXIgZm10X3Jlc3QsIFJlYWRlcl90eSBmbXR0eV9yZXN0IC0+XG4gICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdCcsIGZtdHR5JykgPSB0eXBlX2Zvcm1hdF9nZW4gZm10X3Jlc3QgZm10dHlfcmVzdCBpblxuICAgIEZtdF9mbXR0eV9FQkIgKFJlYWRlciBmbXQnLCBmbXR0eScpXG4gIHwgU2Nhbl9jaGFyX3NldCAod2lkdGhfb3B0LCBjaGFyX3NldCwgZm10X3Jlc3QpLCBTdHJpbmdfdHkgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXRfZm10dHlfRUJCIChmbXQnLCBmbXR0eScpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdF9yZXN0IGZtdHR5X3Jlc3QgaW5cbiAgICBGbXRfZm10dHlfRUJCIChTY2FuX2NoYXJfc2V0ICh3aWR0aF9vcHQsIGNoYXJfc2V0LCBmbXQnKSwgZm10dHknKVxuICB8IFNjYW5fZ2V0X2NvdW50ZXIgKGNvdW50ZXIsIGZtdF9yZXN0KSwgSW50X3R5IGZtdHR5X3Jlc3QgLT5cbiAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXRfcmVzdCBmbXR0eV9yZXN0IGluXG4gICAgRm10X2ZtdHR5X0VCQiAoU2Nhbl9nZXRfY291bnRlciAoY291bnRlciwgZm10JyksIGZtdHR5JylcbiAgfCBJZ25vcmVkX3BhcmFtIChpZ24sIHJlc3QpLCBmbXR0eV9yZXN0IC0+XG4gICAgdHlwZV9pZ25vcmVkX3BhcmFtIGlnbiByZXN0IGZtdHR5X3Jlc3RcblxuICB8IEVuZF9vZl9mb3JtYXQsIGZtdHR5X3Jlc3QgLT4gRm10X2ZtdHR5X0VCQiAoRW5kX29mX2Zvcm1hdCwgZm10dHlfcmVzdClcblxuICB8IF8gLT4gcmFpc2UgVHlwZV9taXNtYXRjaFxuXG5hbmQgdHlwZV9mb3JtYXR0aW5nX2dlbiA6IHR5cGUgYTEgYTMgYjEgYjMgYzEgYzMgZDEgZDMgZTEgZTIgZTMgZjEgZjIgZjMgLlxuICAgIChhMSwgYjEsIGMxLCBkMSwgZTEsIGYxKSBmb3JtYXR0aW5nX2dlbiAtPlxuICAgIChmMSwgYjEsIGMxLCBlMSwgZTIsIGYyKSBmbXQgLT5cbiAgICAoYTMsIGIzLCBjMywgZDMsIGUzLCBmMykgZm10dHkgLT5cbiAgICAoYTMsIGIzLCBjMywgZDMsIGUzLCBmMykgZm10X2ZtdHR5X2ViYiA9XG5mdW4gZm9ybWF0dGluZ19nZW4gZm10MCBmbXR0eTAgLT4gbWF0Y2ggZm9ybWF0dGluZ19nZW4gd2l0aFxuICB8IE9wZW5fdGFnIChGb3JtYXQgKGZtdDEsIHN0cikpIC0+XG4gICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdDIsIGZtdHR5MikgPSB0eXBlX2Zvcm1hdF9nZW4gZm10MSBmbXR0eTAgaW5cbiAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10MywgZm10dHkzKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXQwIGZtdHR5MiBpblxuICAgIEZtdF9mbXR0eV9FQkIgKEZvcm1hdHRpbmdfZ2VuIChPcGVuX3RhZyAoRm9ybWF0IChmbXQyLCBzdHIpKSwgZm10MyksIGZtdHR5MylcbiAgfCBPcGVuX2JveCAoRm9ybWF0IChmbXQxLCBzdHIpKSAtPlxuICAgIGxldCBGbXRfZm10dHlfRUJCIChmbXQyLCBmbXR0eTIpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdDEgZm10dHkwIGluXG4gICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdDMsIGZtdHR5MykgPSB0eXBlX2Zvcm1hdF9nZW4gZm10MCBmbXR0eTIgaW5cbiAgICBGbXRfZm10dHlfRUJCIChGb3JtYXR0aW5nX2dlbiAoT3Blbl9ib3ggKEZvcm1hdCAoZm10Miwgc3RyKSksIGZtdDMpLCBmbXR0eTMpXG5cbigqIFR5cGUgYW4gSWdub3JlZF9wYXJhbSBub2RlIGFjY29yZGluZyB0byBhbiBmbXR0eS4gKilcbmFuZCB0eXBlX2lnbm9yZWRfcGFyYW0gOiB0eXBlIHAgcSB4IHkgeiB0IHUgdiBhIGIgYyBkIGUgZiAuXG4gICAgKHgsIHksIHosIHQsIHEsIHApIGlnbm9yZWQgLT5cbiAgICAocCwgeSwgeiwgcSwgdSwgdikgZm10IC0+XG4gICAgKGEsIGIsIGMsIGQsIGUsIGYpIGZtdHR5IC0+XG4gICAgKGEsIGIsIGMsIGQsIGUsIGYpIGZtdF9mbXR0eV9lYmIgPVxuZnVuIGlnbiBmbXQgZm10dHkgLT4gbWF0Y2ggaWduIHdpdGhcbiAgfCBJZ25vcmVkX2NoYXIgICAgICAgICAgICAgICBhcyBpZ24nIC0+IHR5cGVfaWdub3JlZF9wYXJhbV9vbmUgaWduJyBmbXQgZm10dHlcbiAgfCBJZ25vcmVkX2NhbWxfY2hhciAgICAgICAgICBhcyBpZ24nIC0+IHR5cGVfaWdub3JlZF9wYXJhbV9vbmUgaWduJyBmbXQgZm10dHlcbiAgfCBJZ25vcmVkX3N0cmluZyBfICAgICAgICAgICBhcyBpZ24nIC0+IHR5cGVfaWdub3JlZF9wYXJhbV9vbmUgaWduJyBmbXQgZm10dHlcbiAgfCBJZ25vcmVkX2NhbWxfc3RyaW5nIF8gICAgICBhcyBpZ24nIC0+IHR5cGVfaWdub3JlZF9wYXJhbV9vbmUgaWduJyBmbXQgZm10dHlcbiAgfCBJZ25vcmVkX2ludCBfICAgICAgICAgICAgICBhcyBpZ24nIC0+IHR5cGVfaWdub3JlZF9wYXJhbV9vbmUgaWduJyBmbXQgZm10dHlcbiAgfCBJZ25vcmVkX2ludDMyIF8gICAgICAgICAgICBhcyBpZ24nIC0+IHR5cGVfaWdub3JlZF9wYXJhbV9vbmUgaWduJyBmbXQgZm10dHlcbiAgfCBJZ25vcmVkX25hdGl2ZWludCBfICAgICAgICBhcyBpZ24nIC0+IHR5cGVfaWdub3JlZF9wYXJhbV9vbmUgaWduJyBmbXQgZm10dHlcbiAgfCBJZ25vcmVkX2ludDY0IF8gICAgICAgICAgICBhcyBpZ24nIC0+IHR5cGVfaWdub3JlZF9wYXJhbV9vbmUgaWduJyBmbXQgZm10dHlcbiAgfCBJZ25vcmVkX2Zsb2F0IF8gICAgICAgICAgICBhcyBpZ24nIC0+IHR5cGVfaWdub3JlZF9wYXJhbV9vbmUgaWduJyBmbXQgZm10dHlcbiAgfCBJZ25vcmVkX2Jvb2wgXyAgICAgICAgICAgICBhcyBpZ24nIC0+IHR5cGVfaWdub3JlZF9wYXJhbV9vbmUgaWduJyBmbXQgZm10dHlcbiAgfCBJZ25vcmVkX3NjYW5fY2hhcl9zZXQgXyAgICBhcyBpZ24nIC0+IHR5cGVfaWdub3JlZF9wYXJhbV9vbmUgaWduJyBmbXQgZm10dHlcbiAgfCBJZ25vcmVkX3NjYW5fZ2V0X2NvdW50ZXIgXyBhcyBpZ24nIC0+IHR5cGVfaWdub3JlZF9wYXJhbV9vbmUgaWduJyBmbXQgZm10dHlcbiAgfCBJZ25vcmVkX3NjYW5fbmV4dF9jaGFyICAgICBhcyBpZ24nIC0+IHR5cGVfaWdub3JlZF9wYXJhbV9vbmUgaWduJyBmbXQgZm10dHlcbiAgfCBJZ25vcmVkX2Zvcm1hdF9hcmcgKHBhZF9vcHQsIHN1Yl9mbXR0eSkgLT5cbiAgICB0eXBlX2lnbm9yZWRfcGFyYW1fb25lIChJZ25vcmVkX2Zvcm1hdF9hcmcgKHBhZF9vcHQsIHN1Yl9mbXR0eSkpIGZtdCBmbXR0eVxuICB8IElnbm9yZWRfZm9ybWF0X3N1YnN0IChwYWRfb3B0LCBzdWJfZm10dHkpIC0+XG4gICAgbGV0IEZtdHR5X2ZtdF9FQkIgKHN1Yl9mbXR0eScsIEZtdF9mbXR0eV9FQkIgKGZtdCcsIGZtdHR5JykpID1cbiAgICAgIHR5cGVfaWdub3JlZF9mb3JtYXRfc3Vic3RpdHV0aW9uIHN1Yl9mbXR0eSBmbXQgZm10dHkgaW5cbiAgICBGbXRfZm10dHlfRUJCIChJZ25vcmVkX3BhcmFtIChJZ25vcmVkX2Zvcm1hdF9zdWJzdCAocGFkX29wdCwgc3ViX2ZtdHR5JyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm10JyksXG4gICAgICAgICAgICAgICAgICAgZm10dHknKVxuICB8IElnbm9yZWRfcmVhZGVyIC0+IChcbiAgICBtYXRjaCBmbXR0eSB3aXRoXG4gICAgfCBJZ25vcmVkX3JlYWRlcl90eSBmbXR0eV9yZXN0IC0+XG4gICAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXQgZm10dHlfcmVzdCBpblxuICAgICAgRm10X2ZtdHR5X0VCQiAoSWdub3JlZF9wYXJhbSAoSWdub3JlZF9yZWFkZXIsIGZtdCcpLCBmbXR0eScpXG4gICAgfCBfIC0+IHJhaXNlIFR5cGVfbWlzbWF0Y2hcbiAgKVxuXG5hbmQgdHlwZV9pZ25vcmVkX3BhcmFtX29uZSA6IHR5cGUgYTEgYTIgYjEgYjIgYzEgYzIgZDEgZDIgZTEgZTIgZjEgZjIgLlxuICAgIChhMiwgYjIsIGMyLCBkMiwgZDIsIGEyKSBpZ25vcmVkIC0+XG4gICAgKGExLCBiMSwgYzEsIGQxLCBlMSwgZjEpIGZtdCAtPlxuICAgIChhMiwgYjIsIGMyLCBkMiwgZTIsIGYyKSBmbXR0eSAtPlxuICAgIChhMiwgYjIsIGMyLCBkMiwgZTIsIGYyKSBmbXRfZm10dHlfZWJiXG49IGZ1biBpZ24gZm10IGZtdHR5IC0+XG4gIGxldCBGbXRfZm10dHlfRUJCIChmbXQnLCBmbXR0eScpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdCBmbXR0eSBpblxuICBGbXRfZm10dHlfRUJCIChJZ25vcmVkX3BhcmFtIChpZ24sIGZtdCcpLCBmbXR0eScpXG5cbigqIFR5cGluZyBvZiB0aGUgY29tcGxleCBjYXNlOiBcIiVfKC4uLiUpXCIuICopXG5hbmQgdHlwZV9pZ25vcmVkX2Zvcm1hdF9zdWJzdGl0dXRpb24gOiB0eXBlIHcgeCB5IHogcCBzIHQgdSBhIGIgYyBkIGUgZiAuXG4gICAgKHcsIHgsIHksIHosIHMsIHApIGZtdHR5IC0+XG4gICAgKHAsIHgsIHksIHMsIHQsIHUpIGZtdCAtPlxuICAgIChhLCBiLCBjLCBkLCBlLCBmKSBmbXR0eSAtPiAoYSwgYiwgYywgZCwgZSwgZikgZm10dHlfZm10X2ViYiA9XG5mdW4gc3ViX2ZtdHR5IGZtdCBmbXR0eSAtPiBtYXRjaCBzdWJfZm10dHksIGZtdHR5IHdpdGhcbiAgfCBDaGFyX3R5IHN1Yl9mbXR0eV9yZXN0LCBDaGFyX3R5IGZtdHR5X3Jlc3QgLT5cbiAgICBsZXQgRm10dHlfZm10X0VCQiAoc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKSA9XG4gICAgICB0eXBlX2lnbm9yZWRfZm9ybWF0X3N1YnN0aXR1dGlvbiBzdWJfZm10dHlfcmVzdCBmbXQgZm10dHlfcmVzdCBpblxuICAgIEZtdHR5X2ZtdF9FQkIgKENoYXJfdHkgc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKVxuICB8IFN0cmluZ190eSBzdWJfZm10dHlfcmVzdCwgU3RyaW5nX3R5IGZtdHR5X3Jlc3QgLT5cbiAgICBsZXQgRm10dHlfZm10X0VCQiAoc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKSA9XG4gICAgICB0eXBlX2lnbm9yZWRfZm9ybWF0X3N1YnN0aXR1dGlvbiBzdWJfZm10dHlfcmVzdCBmbXQgZm10dHlfcmVzdCBpblxuICAgIEZtdHR5X2ZtdF9FQkIgKFN0cmluZ190eSBzdWJfZm10dHlfcmVzdCcsIGZtdCcpXG4gIHwgSW50X3R5IHN1Yl9mbXR0eV9yZXN0LCBJbnRfdHkgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXR0eV9mbXRfRUJCIChzdWJfZm10dHlfcmVzdCcsIGZtdCcpID1cbiAgICAgIHR5cGVfaWdub3JlZF9mb3JtYXRfc3Vic3RpdHV0aW9uIHN1Yl9mbXR0eV9yZXN0IGZtdCBmbXR0eV9yZXN0IGluXG4gICAgRm10dHlfZm10X0VCQiAoSW50X3R5IHN1Yl9mbXR0eV9yZXN0JywgZm10JylcbiAgfCBJbnQzMl90eSBzdWJfZm10dHlfcmVzdCwgSW50MzJfdHkgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXR0eV9mbXRfRUJCIChzdWJfZm10dHlfcmVzdCcsIGZtdCcpID1cbiAgICAgIHR5cGVfaWdub3JlZF9mb3JtYXRfc3Vic3RpdHV0aW9uIHN1Yl9mbXR0eV9yZXN0IGZtdCBmbXR0eV9yZXN0IGluXG4gICAgRm10dHlfZm10X0VCQiAoSW50MzJfdHkgc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKVxuICB8IE5hdGl2ZWludF90eSBzdWJfZm10dHlfcmVzdCwgTmF0aXZlaW50X3R5IGZtdHR5X3Jlc3QgLT5cbiAgICBsZXQgRm10dHlfZm10X0VCQiAoc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKSA9XG4gICAgICB0eXBlX2lnbm9yZWRfZm9ybWF0X3N1YnN0aXR1dGlvbiBzdWJfZm10dHlfcmVzdCBmbXQgZm10dHlfcmVzdCBpblxuICAgIEZtdHR5X2ZtdF9FQkIgKE5hdGl2ZWludF90eSBzdWJfZm10dHlfcmVzdCcsIGZtdCcpXG4gIHwgSW50NjRfdHkgc3ViX2ZtdHR5X3Jlc3QsIEludDY0X3R5IGZtdHR5X3Jlc3QgLT5cbiAgICBsZXQgRm10dHlfZm10X0VCQiAoc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKSA9XG4gICAgICB0eXBlX2lnbm9yZWRfZm9ybWF0X3N1YnN0aXR1dGlvbiBzdWJfZm10dHlfcmVzdCBmbXQgZm10dHlfcmVzdCBpblxuICAgIEZtdHR5X2ZtdF9FQkIgKEludDY0X3R5IHN1Yl9mbXR0eV9yZXN0JywgZm10JylcbiAgfCBGbG9hdF90eSBzdWJfZm10dHlfcmVzdCwgRmxvYXRfdHkgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXR0eV9mbXRfRUJCIChzdWJfZm10dHlfcmVzdCcsIGZtdCcpID1cbiAgICAgIHR5cGVfaWdub3JlZF9mb3JtYXRfc3Vic3RpdHV0aW9uIHN1Yl9mbXR0eV9yZXN0IGZtdCBmbXR0eV9yZXN0IGluXG4gICAgRm10dHlfZm10X0VCQiAoRmxvYXRfdHkgc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKVxuICB8IEJvb2xfdHkgc3ViX2ZtdHR5X3Jlc3QsIEJvb2xfdHkgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXR0eV9mbXRfRUJCIChzdWJfZm10dHlfcmVzdCcsIGZtdCcpID1cbiAgICAgIHR5cGVfaWdub3JlZF9mb3JtYXRfc3Vic3RpdHV0aW9uIHN1Yl9mbXR0eV9yZXN0IGZtdCBmbXR0eV9yZXN0IGluXG4gICAgRm10dHlfZm10X0VCQiAoQm9vbF90eSBzdWJfZm10dHlfcmVzdCcsIGZtdCcpXG4gIHwgQWxwaGFfdHkgc3ViX2ZtdHR5X3Jlc3QsIEFscGhhX3R5IGZtdHR5X3Jlc3QgLT5cbiAgICBsZXQgRm10dHlfZm10X0VCQiAoc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKSA9XG4gICAgICB0eXBlX2lnbm9yZWRfZm9ybWF0X3N1YnN0aXR1dGlvbiBzdWJfZm10dHlfcmVzdCBmbXQgZm10dHlfcmVzdCBpblxuICAgIEZtdHR5X2ZtdF9FQkIgKEFscGhhX3R5IHN1Yl9mbXR0eV9yZXN0JywgZm10JylcbiAgfCBUaGV0YV90eSBzdWJfZm10dHlfcmVzdCwgVGhldGFfdHkgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXR0eV9mbXRfRUJCIChzdWJfZm10dHlfcmVzdCcsIGZtdCcpID1cbiAgICAgIHR5cGVfaWdub3JlZF9mb3JtYXRfc3Vic3RpdHV0aW9uIHN1Yl9mbXR0eV9yZXN0IGZtdCBmbXR0eV9yZXN0IGluXG4gICAgRm10dHlfZm10X0VCQiAoVGhldGFfdHkgc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKVxuICB8IFJlYWRlcl90eSBzdWJfZm10dHlfcmVzdCwgUmVhZGVyX3R5IGZtdHR5X3Jlc3QgLT5cbiAgICBsZXQgRm10dHlfZm10X0VCQiAoc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKSA9XG4gICAgICB0eXBlX2lnbm9yZWRfZm9ybWF0X3N1YnN0aXR1dGlvbiBzdWJfZm10dHlfcmVzdCBmbXQgZm10dHlfcmVzdCBpblxuICAgIEZtdHR5X2ZtdF9FQkIgKFJlYWRlcl90eSBzdWJfZm10dHlfcmVzdCcsIGZtdCcpXG4gIHwgSWdub3JlZF9yZWFkZXJfdHkgc3ViX2ZtdHR5X3Jlc3QsIElnbm9yZWRfcmVhZGVyX3R5IGZtdHR5X3Jlc3QgLT5cbiAgICBsZXQgRm10dHlfZm10X0VCQiAoc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKSA9XG4gICAgICB0eXBlX2lnbm9yZWRfZm9ybWF0X3N1YnN0aXR1dGlvbiBzdWJfZm10dHlfcmVzdCBmbXQgZm10dHlfcmVzdCBpblxuICAgIEZtdHR5X2ZtdF9FQkIgKElnbm9yZWRfcmVhZGVyX3R5IHN1Yl9mbXR0eV9yZXN0JywgZm10JylcblxuICB8IEZvcm1hdF9hcmdfdHkgKHN1YjJfZm10dHksIHN1Yl9mbXR0eV9yZXN0KSxcbiAgICBGb3JtYXRfYXJnX3R5IChzdWIyX2ZtdHR5JywgZm10dHlfcmVzdCkgLT5cbiAgICBpZiBGbXR0eV9FQkIgc3ViMl9mbXR0eSA8PiBGbXR0eV9FQkIgc3ViMl9mbXR0eScgdGhlbiByYWlzZSBUeXBlX21pc21hdGNoO1xuICAgIGxldCBGbXR0eV9mbXRfRUJCIChzdWJfZm10dHlfcmVzdCcsIGZtdCcpID1cbiAgICAgIHR5cGVfaWdub3JlZF9mb3JtYXRfc3Vic3RpdHV0aW9uIHN1Yl9mbXR0eV9yZXN0IGZtdCBmbXR0eV9yZXN0IGluXG4gICAgRm10dHlfZm10X0VCQiAoRm9ybWF0X2FyZ190eSAoc3ViMl9mbXR0eScsIHN1Yl9mbXR0eV9yZXN0JyksIGZtdCcpXG4gIHwgRm9ybWF0X3N1YnN0X3R5IChzdWIxX2ZtdHR5LCAgc3ViMl9mbXR0eSwgIHN1Yl9mbXR0eV9yZXN0KSxcbiAgICBGb3JtYXRfc3Vic3RfdHkgKHN1YjFfZm10dHknLCBzdWIyX2ZtdHR5JywgZm10dHlfcmVzdCkgLT5cbiAgICAoKiBUT0RPIGRlZmluZSBGbXR0eV9yZWxfRUJCIHRvIHJlbW92ZSB0aG9zZSBlcmFzZV9yZWwgKilcbiAgICBpZiBGbXR0eV9FQkIgKGVyYXNlX3JlbCBzdWIxX2ZtdHR5KSA8PiBGbXR0eV9FQkIgKGVyYXNlX3JlbCBzdWIxX2ZtdHR5JylcbiAgICB0aGVuIHJhaXNlIFR5cGVfbWlzbWF0Y2g7XG4gICAgaWYgRm10dHlfRUJCIChlcmFzZV9yZWwgc3ViMl9mbXR0eSkgPD4gRm10dHlfRUJCIChlcmFzZV9yZWwgc3ViMl9mbXR0eScpXG4gICAgdGhlbiByYWlzZSBUeXBlX21pc21hdGNoO1xuICAgIGxldCBzdWJfZm10dHknID0gdHJhbnMgKHN5bW0gc3ViMV9mbXR0eScpIHN1YjJfZm10dHknIGluXG4gICAgbGV0IF8sIGYyLCBfLCBmNCA9IGZtdHR5X3JlbF9kZXQgc3ViX2ZtdHR5JyBpblxuICAgIGxldCBSZWZsID0gZjIgUmVmbCBpblxuICAgIGxldCBSZWZsID0gZjQgUmVmbCBpblxuICAgIGxldCBGbXR0eV9mbXRfRUJCIChzdWJfZm10dHlfcmVzdCcsIGZtdCcpID1cbiAgICAgIHR5cGVfaWdub3JlZF9mb3JtYXRfc3Vic3RpdHV0aW9uIChlcmFzZV9yZWwgc3ViX2ZtdHR5X3Jlc3QpIGZtdCBmbXR0eV9yZXN0XG4gICAgaW5cbiAgICBGbXR0eV9mbXRfRUJCIChGb3JtYXRfc3Vic3RfdHkgKHN1YjFfZm10dHknLCBzdWIyX2ZtdHR5JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bW0gc3ViX2ZtdHR5X3Jlc3QnKSxcbiAgICAgICAgICAgICAgICAgICBmbXQnKVxuICB8IEVuZF9vZl9mbXR0eSwgZm10dHkgLT5cbiAgICBGbXR0eV9mbXRfRUJCIChFbmRfb2ZfZm10dHksIHR5cGVfZm9ybWF0X2dlbiBmbXQgZm10dHkpXG4gIHwgXyAtPiByYWlzZSBUeXBlX21pc21hdGNoXG5cbigqIFRoaXMgaW1wbGVtZW50YXRpb24gb2YgYHJlY2FzdGAgaXMgYSBiaXQgZGlzYXBwb2ludGluZy4gVGhlXG4gICBpbnZhcmlhbnQgcHJvdmlkZWQgYnkgdGhlIHR5cGUgYXJlIHZlcnkgc3Ryb25nOiB0aGUgaW5wdXQgZm9ybWF0J3NcbiAgIHR5cGUgaXMgaW4gcmVsYXRpb24gdG8gdGhlIG91dHB1dCB0eXBlJ3MgYXMgd2l0bmVzc2VkIGJ5IHRoZVxuICAgZm10dHlfcmVsIGFyZ3VtZW50LiBPbmUgd291bGQgYXQgZmlyc3QgZXhwZWN0IHRoaXMgZnVuY3Rpb24gdG8gYmVcbiAgIHRvdGFsLCBhbmQgaW1wbGVtZW50YWJsZSBieSBleGhhdXN0aXZlIHBhdHRlcm4gbWF0Y2hpbmcuIEluc3RlYWQsXG4gICB3ZSByZXVzZSB0aGUgaGlnaGx5IHBhcnRpYWwgYW5kIG11Y2ggbGVzcyB3ZWxsLWRlZmluZWQgZnVuY3Rpb25cbiAgIGB0eXBlX2Zvcm1hdGAgdGhhdCBoYXMgbG9zdCBhbGwga25vd2xlZGdlIG9mIHRoZSBjb3JyZXNwb25kZW5jZVxuICAgYmV0d2VlbiB0aGUgYXJndW1lbnQncyB0eXBlcy5cblxuICAgQmVzaWRlcyB0aGUgZmFjdCB0aGF0IHRoaXMgZnVuY3Rpb24gcmV1c2VzIGEgbG90IG9mIHRoZVxuICAgYHR5cGVfZm9ybWF0YCBsb2dpYyAoZWcuOiBzZWVpbmcgSW50X3R5IGluIHRoZSBmbXR0eSBwYXJhbWV0ZXIgZG9lc1xuICAgbm90IGxldCB5b3UgbWF0Y2ggb24gSW50IG9ubHksIGFzIHlvdSBtYXkgaW4gZmFjdCBoYXZlIEZsb2F0XG4gICAoQXJnX3BhZGRpbmcsIC4uLikgKFwiJS4qZFwiKSBiZWdpbm5pbmcgd2l0aCBhbiBJbnRfdHkpLCBpdCBpcyBhbHNvXG4gICBhIHBhcnRpYWwgZnVuY3Rpb24sIGJlY2F1c2UgdGhlIHR5cGluZyBpbmZvcm1hdGlvbiBpbiBhIGZvcm1hdCBpc1xuICAgbm90IHF1aXRlIGVub3VnaCB0byByZWNvbnN0cnVjdCBpdCB1bmFtYmlndW91c2x5LiBGb3IgZXhhbXBsZSwgdGhlXG4gICBmb3JtYXQgdHlwZXMgb2YgXCIlZCVfclwiIGFuZCBcIiVfciVkXCIgaGF2ZSB0aGUgc2FtZSBmb3JtYXQ2XG4gICBwYXJhbWV0ZXJzLCBidXQgdGhleSBhcmUgbm90IGF0IGFsbCBleGNoYW5nZWFibGUsIGFuZCBwdXR0aW5nIG9uZVxuICAgaW4gcGxhY2Ugb2YgdGhlIG90aGVyIG11c3QgcmVzdWx0IGluIGEgZHluYW1pYyBmYWlsdXJlLlxuXG4gICBHaXZlbiB0aGF0OlxuICAgLSB3ZSdkIGhhdmUgdG8gZHVwbGljYXRlIGEgbG90IG9mIG5vbi10cml2aWFsIHR5cGluZyBsb2dpYyBmcm9tIHR5cGVfZm9ybWF0XG4gICAtIHRoaXMgd291bGRuJ3QgZXZlbiBlbGltaW5hdGUgKGFsbCkgdGhlIGR5bmFtaWMgZmFpbHVyZXNcbiAgIHdlIGRlY2lkZWQgdG8ganVzdCByZXVzZSB0eXBlX2Zvcm1hdCBkaXJlY3RseSBmb3Igbm93LlxuKilcbmxldCByZWNhc3QgOlxuICB0eXBlIGExIGIxIGMxIGQxIGUxIGYxXG4gICAgICAgYTIgYjIgYzIgZDIgZTIgZjJcbiAgLlxuICAgICAoYTEsIGIxLCBjMSwgZDEsIGUxLCBmMSkgZm10XG4gIC0+IChhMSwgYjEsIGMxLCBkMSwgZTEsIGYxLFxuICAgICAgYTIsIGIyLCBjMiwgZDIsIGUyLCBmMikgZm10dHlfcmVsXG4gIC0+IChhMiwgYjIsIGMyLCBkMiwgZTIsIGYyKSBmbXRcbj0gZnVuIGZtdCBmbXR0eSAtPlxuICB0eXBlX2Zvcm1hdCBmbXQgKGVyYXNlX3JlbCAoc3ltbSBmbXR0eSkpXG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIFByaW50aW5nIHRvb2xzICopXG5cbigqIEFkZCBwYWRkaW5nIHNwYWNlcyBhcm91bmQgYSBzdHJpbmcuICopXG5sZXQgZml4X3BhZGRpbmcgcGFkdHkgd2lkdGggc3RyID1cbiAgbGV0IGxlbiA9IFN0cmluZy5sZW5ndGggc3RyIGluXG4gIGxldCB3aWR0aCwgcGFkdHkgPVxuICAgIGFicyB3aWR0aCxcbiAgICAoKiB3aGlsZSBsaXRlcmFsIHBhZGRpbmcgd2lkdGhzIGFyZSBhbHdheXMgbm9uLW5lZ2F0aXZlLFxuICAgICAgIGR5bmFtaWNhbGx5LXNldCB3aWR0aHMgKEFyZ19wYWRkaW5nLCBlZy4gJSpkKSBtYXkgYmUgbmVnYXRpdmU7XG4gICAgICAgd2UgaW50ZXJwcmV0IHRob3NlIGFzIHNwZWNpZnlpbmcgYSBwYWRkaW5nLXRvLXRoZS1sZWZ0OyB0aGlzXG4gICAgICAgbWVhbnMgdGhhdCAnMCcgbWF5IGdldCBkcm9wcGVkIGV2ZW4gaWYgaXQgd2FzIGV4cGxpY2l0bHkgc2V0LFxuICAgICAgIGJ1dDpcbiAgICAgICAtIHRoaXMgaXMgd2hhdCB0aGUgbGVnYWN5IGltcGxlbWVudGF0aW9uIGRvZXMsIGFuZFxuICAgICAgICAgd2UgcHJlc2VydmUgY29tcGF0aWJpbGl0eSBpZiBwb3NzaWJsZVxuICAgICAgIC0gd2UgY291bGQgb25seSBzaWduYWwgdGhpcyBpc3N1ZSBieSBmYWlsaW5nIGF0IHJ1bnRpbWUsXG4gICAgICAgICB3aGljaCBpcyBub3QgdmVyeSBuaWNlLi4uICopXG4gICAgaWYgd2lkdGggPCAwIHRoZW4gTGVmdCBlbHNlIHBhZHR5IGluXG4gIGlmIHdpZHRoIDw9IGxlbiB0aGVuIHN0ciBlbHNlXG4gICAgbGV0IHJlcyA9IEJ5dGVzLm1ha2Ugd2lkdGggKGlmIHBhZHR5ID0gWmVyb3MgdGhlbiAnMCcgZWxzZSAnICcpIGluXG4gICAgYmVnaW4gbWF0Y2ggcGFkdHkgd2l0aFxuICAgIHwgTGVmdCAgLT4gU3RyaW5nLmJsaXQgc3RyIDAgcmVzIDAgbGVuXG4gICAgfCBSaWdodCAtPiBTdHJpbmcuYmxpdCBzdHIgMCByZXMgKHdpZHRoIC0gbGVuKSBsZW5cbiAgICB8IFplcm9zIHdoZW4gbGVuID4gMCAmJiAoc3RyLlswXSA9ICcrJyB8fCBzdHIuWzBdID0gJy0nIHx8IHN0ci5bMF0gPSAnICcpIC0+XG4gICAgICBCeXRlcy5zZXQgcmVzIDAgc3RyLlswXTtcbiAgICAgIFN0cmluZy5ibGl0IHN0ciAxIHJlcyAod2lkdGggLSBsZW4gKyAxKSAobGVuIC0gMSlcbiAgICB8IFplcm9zIHdoZW4gbGVuID4gMSAmJiBzdHIuWzBdID0gJzAnICYmIChzdHIuWzFdID0gJ3gnIHx8IHN0ci5bMV0gPSAnWCcpIC0+XG4gICAgICBCeXRlcy5zZXQgcmVzIDEgc3RyLlsxXTtcbiAgICAgIFN0cmluZy5ibGl0IHN0ciAyIHJlcyAod2lkdGggLSBsZW4gKyAyKSAobGVuIC0gMilcbiAgICB8IFplcm9zIC0+XG4gICAgICBTdHJpbmcuYmxpdCBzdHIgMCByZXMgKHdpZHRoIC0gbGVuKSBsZW5cbiAgICBlbmQ7XG4gICAgQnl0ZXMudW5zYWZlX3RvX3N0cmluZyByZXNcblxuKCogQWRkICcwJyBwYWRkaW5nIHRvIGludCwgaW50MzIsIG5hdGl2ZWludCBvciBpbnQ2NCBzdHJpbmcgcmVwcmVzZW50YXRpb24uICopXG5sZXQgZml4X2ludF9wcmVjaXNpb24gcHJlYyBzdHIgPVxuICBsZXQgcHJlYyA9IGFicyBwcmVjIGluXG4gIGxldCBsZW4gPSBTdHJpbmcubGVuZ3RoIHN0ciBpblxuICBtYXRjaCBzdHIuWzBdIHdpdGhcbiAgfCAoJysnIHwgJy0nIHwgJyAnKSBhcyBjIHdoZW4gcHJlYyArIDEgPiBsZW4gLT5cbiAgICBsZXQgcmVzID0gQnl0ZXMubWFrZSAocHJlYyArIDEpICcwJyBpblxuICAgIEJ5dGVzLnNldCByZXMgMCBjO1xuICAgIFN0cmluZy5ibGl0IHN0ciAxIHJlcyAocHJlYyAtIGxlbiArIDIpIChsZW4gLSAxKTtcbiAgICBCeXRlcy51bnNhZmVfdG9fc3RyaW5nIHJlc1xuICB8ICcwJyB3aGVuIHByZWMgKyAyID4gbGVuICYmIGxlbiA+IDEgJiYgKHN0ci5bMV0gPSAneCcgfHwgc3RyLlsxXSA9ICdYJykgLT5cbiAgICBsZXQgcmVzID0gQnl0ZXMubWFrZSAocHJlYyArIDIpICcwJyBpblxuICAgIEJ5dGVzLnNldCByZXMgMSBzdHIuWzFdO1xuICAgIFN0cmluZy5ibGl0IHN0ciAyIHJlcyAocHJlYyAtIGxlbiArIDQpIChsZW4gLSAyKTtcbiAgICBCeXRlcy51bnNhZmVfdG9fc3RyaW5nIHJlc1xuICB8ICcwJyAuLiAnOScgfCAnYScgLi4gJ2YnIHwgJ0EnIC4uICdGJyB3aGVuIHByZWMgPiBsZW4gLT5cbiAgICBsZXQgcmVzID0gQnl0ZXMubWFrZSBwcmVjICcwJyBpblxuICAgIFN0cmluZy5ibGl0IHN0ciAwIHJlcyAocHJlYyAtIGxlbikgbGVuO1xuICAgIEJ5dGVzLnVuc2FmZV90b19zdHJpbmcgcmVzXG4gIHwgXyAtPlxuICAgIHN0clxuXG4oKiBFc2NhcGUgYSBzdHJpbmcgYWNjb3JkaW5nIHRvIHRoZSBPQ2FtbCBsZXhpbmcgY29udmVudGlvbi4gKilcbmxldCBzdHJpbmdfdG9fY2FtbF9zdHJpbmcgc3RyID1cbiAgbGV0IHN0ciA9IFN0cmluZy5lc2NhcGVkIHN0ciBpblxuICBsZXQgbCA9IFN0cmluZy5sZW5ndGggc3RyIGluXG4gIGxldCByZXMgPSBCeXRlcy5tYWtlIChsICsgMikgJ1xcXCInIGluXG4gIFN0cmluZy51bnNhZmVfYmxpdCBzdHIgMCByZXMgMSBsO1xuICBCeXRlcy51bnNhZmVfdG9fc3RyaW5nIHJlc1xuXG4oKiBHZW5lcmF0ZSB0aGUgZm9ybWF0X2ludC9pbnQzMi9uYXRpdmVpbnQvaW50NjQgZmlyc3QgYXJndW1lbnRcbiAgIGZyb20gYW4gaW50X2NvbnYuICopXG5sZXQgZm9ybWF0X29mX2ljb252ID0gZnVuY3Rpb25cbiAgfCBJbnRfZCB8IEludF9DZCAtPiBcIiVkXCIgfCBJbnRfcGQgLT4gXCIlK2RcIiB8IEludF9zZCAtPiBcIiUgZFwiXG4gIHwgSW50X2kgfCBJbnRfQ2kgLT4gXCIlaVwiIHwgSW50X3BpIC0+IFwiJStpXCIgfCBJbnRfc2kgLT4gXCIlIGlcIlxuICB8IEludF94IC0+IFwiJXhcIiB8IEludF9DeCAtPiBcIiUjeFwiXG4gIHwgSW50X1ggLT4gXCIlWFwiIHwgSW50X0NYIC0+IFwiJSNYXCJcbiAgfCBJbnRfbyAtPiBcIiVvXCIgfCBJbnRfQ28gLT4gXCIlI29cIlxuICB8IEludF91IHwgSW50X0N1IC0+IFwiJXVcIlxuXG5sZXQgZm9ybWF0X29mX2ljb252TCA9IGZ1bmN0aW9uXG4gIHwgSW50X2QgfCBJbnRfQ2QgLT4gXCIlTGRcIiB8IEludF9wZCAtPiBcIiUrTGRcIiB8IEludF9zZCAtPiBcIiUgTGRcIlxuICB8IEludF9pIHwgSW50X0NpIC0+IFwiJUxpXCIgfCBJbnRfcGkgLT4gXCIlK0xpXCIgfCBJbnRfc2kgLT4gXCIlIExpXCJcbiAgfCBJbnRfeCAtPiBcIiVMeFwiIHwgSW50X0N4IC0+IFwiJSNMeFwiXG4gIHwgSW50X1ggLT4gXCIlTFhcIiB8IEludF9DWCAtPiBcIiUjTFhcIlxuICB8IEludF9vIC0+IFwiJUxvXCIgfCBJbnRfQ28gLT4gXCIlI0xvXCJcbiAgfCBJbnRfdSB8IEludF9DdSAtPiBcIiVMdVwiXG5cbmxldCBmb3JtYXRfb2ZfaWNvbnZsID0gZnVuY3Rpb25cbiAgfCBJbnRfZCB8IEludF9DZCAtPiBcIiVsZFwiIHwgSW50X3BkIC0+IFwiJStsZFwiIHwgSW50X3NkIC0+IFwiJSBsZFwiXG4gIHwgSW50X2kgfCBJbnRfQ2kgLT4gXCIlbGlcIiB8IEludF9waSAtPiBcIiUrbGlcIiB8IEludF9zaSAtPiBcIiUgbGlcIlxuICB8IEludF94IC0+IFwiJWx4XCIgfCBJbnRfQ3ggLT4gXCIlI2x4XCJcbiAgfCBJbnRfWCAtPiBcIiVsWFwiIHwgSW50X0NYIC0+IFwiJSNsWFwiXG4gIHwgSW50X28gLT4gXCIlbG9cIiB8IEludF9DbyAtPiBcIiUjbG9cIlxuICB8IEludF91IHwgSW50X0N1IC0+IFwiJWx1XCJcblxubGV0IGZvcm1hdF9vZl9pY29udm4gPSBmdW5jdGlvblxuICB8IEludF9kIHwgSW50X0NkIC0+IFwiJW5kXCIgfCBJbnRfcGQgLT4gXCIlK25kXCIgfCBJbnRfc2QgLT4gXCIlIG5kXCJcbiAgfCBJbnRfaSB8IEludF9DaSAtPiBcIiVuaVwiIHwgSW50X3BpIC0+IFwiJStuaVwiIHwgSW50X3NpIC0+IFwiJSBuaVwiXG4gIHwgSW50X3ggLT4gXCIlbnhcIiB8IEludF9DeCAtPiBcIiUjbnhcIlxuICB8IEludF9YIC0+IFwiJW5YXCIgfCBJbnRfQ1ggLT4gXCIlI25YXCJcbiAgfCBJbnRfbyAtPiBcIiVub1wiIHwgSW50X0NvIC0+IFwiJSNub1wiXG4gIHwgSW50X3UgfCBJbnRfQ3UgLT4gXCIlbnVcIlxuXG4oKiBHZW5lcmF0ZSB0aGUgZm9ybWF0X2Zsb2F0IGZpcnN0IGFyZ3VtZW50IGZyb20gYSBmbG9hdF9jb252LiAqKVxubGV0IGZvcm1hdF9vZl9mY29udiBmY29udiBwcmVjID1cbiAgICBsZXQgcHJlYyA9IGFicyBwcmVjIGluXG4gICAgbGV0IHN5bWIgPSBjaGFyX29mX2Zjb252IH5jRjonZycgZmNvbnYgaW5cbiAgICBsZXQgYnVmID0gYnVmZmVyX2NyZWF0ZSAxNiBpblxuICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJyUnO1xuICAgIGJwcmludF9mY29udl9mbGFnIGJ1ZiBmY29udjtcbiAgICBidWZmZXJfYWRkX2NoYXIgYnVmICcuJztcbiAgICBidWZmZXJfYWRkX3N0cmluZyBidWYgKEludC50b19zdHJpbmcgcHJlYyk7XG4gICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiBzeW1iO1xuICAgIGJ1ZmZlcl9jb250ZW50cyBidWZcblxubGV0IHRyYW5zZm9ybV9pbnRfYWx0IGljb252IHMgPVxuICBtYXRjaCBpY29udiB3aXRoXG4gIHwgSW50X0NkIHwgSW50X0NpIHwgSW50X0N1IC0+XG4gICAgbGV0IGRpZ2l0cyA9XG4gICAgICBsZXQgbiA9IHJlZiAwIGluXG4gICAgICBmb3IgaSA9IDAgdG8gU3RyaW5nLmxlbmd0aCBzIC0gMSBkb1xuICAgICAgICBtYXRjaCBTdHJpbmcudW5zYWZlX2dldCBzIGkgd2l0aFxuICAgICAgICB8ICcwJy4uJzknIC0+IGluY3IgblxuICAgICAgICB8IF8gLT4gKClcbiAgICAgIGRvbmU7XG4gICAgICAhblxuICAgIGluXG4gICAgbGV0IGJ1ZiA9IEJ5dGVzLmNyZWF0ZSAoU3RyaW5nLmxlbmd0aCBzICsgKGRpZ2l0cyAtIDEpIC8gMykgaW5cbiAgICBsZXQgcG9zID0gcmVmIDAgaW5cbiAgICBsZXQgcHV0IGMgPSBCeXRlcy5zZXQgYnVmICFwb3MgYzsgaW5jciBwb3MgaW5cbiAgICBsZXQgbGVmdCA9IHJlZiAoKGRpZ2l0cyAtIDEpIG1vZCAzICsgMSkgaW5cbiAgICBmb3IgaSA9IDAgdG8gU3RyaW5nLmxlbmd0aCBzIC0gMSBkb1xuICAgICAgbWF0Y2ggU3RyaW5nLnVuc2FmZV9nZXQgcyBpIHdpdGhcbiAgICAgIHwgJzAnLi4nOScgYXMgYyAtPlxuICAgICAgICAgIGlmICFsZWZ0ID0gMCB0aGVuIChwdXQgJ18nOyBsZWZ0IDo9IDMpOyBkZWNyIGxlZnQ7IHB1dCBjXG4gICAgICB8IGMgLT4gcHV0IGNcbiAgICBkb25lO1xuICAgIEJ5dGVzLnVuc2FmZV90b19zdHJpbmcgYnVmXG4gIHwgXyAtPiBzXG5cbigqIENvbnZlcnQgYW4gaW50ZWdlciB0byBhIHN0cmluZyBhY2NvcmRpbmcgdG8gYSBjb252ZXJzaW9uLiAqKVxubGV0IGNvbnZlcnRfaW50IGljb252IG4gPVxuICB0cmFuc2Zvcm1faW50X2FsdCBpY29udiAoZm9ybWF0X2ludCAoZm9ybWF0X29mX2ljb252IGljb252KSBuKVxubGV0IGNvbnZlcnRfaW50MzIgaWNvbnYgbiA9XG4gIHRyYW5zZm9ybV9pbnRfYWx0IGljb252IChmb3JtYXRfaW50MzIgKGZvcm1hdF9vZl9pY29udmwgaWNvbnYpIG4pXG5sZXQgY29udmVydF9uYXRpdmVpbnQgaWNvbnYgbiA9XG4gIHRyYW5zZm9ybV9pbnRfYWx0IGljb252IChmb3JtYXRfbmF0aXZlaW50IChmb3JtYXRfb2ZfaWNvbnZuIGljb252KSBuKVxubGV0IGNvbnZlcnRfaW50NjQgaWNvbnYgbiA9XG4gIHRyYW5zZm9ybV9pbnRfYWx0IGljb252IChmb3JtYXRfaW50NjQgKGZvcm1hdF9vZl9pY29udkwgaWNvbnYpIG4pXG5cbigqIENvbnZlcnQgYSBmbG9hdCB0byBzdHJpbmcuICopXG4oKiBGaXggc3BlY2lhbCBjYXNlIG9mIFwiT0NhbWwgZmxvYXQgZm9ybWF0XCIuICopXG5sZXQgY29udmVydF9mbG9hdCBmY29udiBwcmVjIHggPVxuICBsZXQgaGV4ICgpID1cbiAgICBsZXQgc2lnbiA9XG4gICAgICBtYXRjaCBmc3QgZmNvbnYgd2l0aFxuICAgICAgfCBGbG9hdF9mbGFnX3AgLT4gJysnXG4gICAgICB8IEZsb2F0X2ZsYWdfcyAtPiAnICdcbiAgICAgIHwgXyAtPiAnLScgaW5cbiAgICBoZXhzdHJpbmdfb2ZfZmxvYXQgeCBwcmVjIHNpZ24gaW5cbiAgbGV0IGFkZF9kb3RfaWZfbmVlZGVkIHN0ciA9XG4gICAgbGV0IGxlbiA9IFN0cmluZy5sZW5ndGggc3RyIGluXG4gICAgbGV0IHJlYyBpc192YWxpZCBpID1cbiAgICAgIGlmIGkgPSBsZW4gdGhlbiBmYWxzZSBlbHNlXG4gICAgICAgIG1hdGNoIHN0ci5baV0gd2l0aFxuICAgICAgICB8ICcuJyB8ICdlJyB8ICdFJyAtPiB0cnVlXG4gICAgICAgIHwgXyAtPiBpc192YWxpZCAoaSArIDEpIGluXG4gICAgaWYgaXNfdmFsaWQgMCB0aGVuIHN0ciBlbHNlIHN0ciBeIFwiLlwiIGluXG4gIGxldCBjYW1sX3NwZWNpYWxfdmFsIHN0ciA9IG1hdGNoIGNsYXNzaWZ5X2Zsb2F0IHggd2l0aFxuICAgIHwgRlBfbm9ybWFsIHwgRlBfc3Vibm9ybWFsIHwgRlBfemVybyAtPiBzdHJcbiAgICB8IEZQX2luZmluaXRlIC0+IGlmIHggPCAwLjAgdGhlbiBcIm5lZ19pbmZpbml0eVwiIGVsc2UgXCJpbmZpbml0eVwiXG4gICAgfCBGUF9uYW4gLT4gXCJuYW5cIiBpblxuICBtYXRjaCBzbmQgZmNvbnYgd2l0aFxuICB8IEZsb2F0X2ggLT4gaGV4ICgpXG4gIHwgRmxvYXRfSCAtPiBTdHJpbmcudXBwZXJjYXNlX2FzY2lpIChoZXggKCkpXG4gIHwgRmxvYXRfQ0YgLT4gY2FtbF9zcGVjaWFsX3ZhbCAoaGV4ICgpKVxuICB8IEZsb2F0X0YgLT5cbiAgICBsZXQgc3RyID0gZm9ybWF0X2Zsb2F0IChmb3JtYXRfb2ZfZmNvbnYgZmNvbnYgcHJlYykgeCBpblxuICAgIGNhbWxfc3BlY2lhbF92YWwgKGFkZF9kb3RfaWZfbmVlZGVkIHN0cilcbiAgfCBGbG9hdF9mIHwgRmxvYXRfZSB8IEZsb2F0X0UgfCBGbG9hdF9nIHwgRmxvYXRfRyAtPlxuICAgIGZvcm1hdF9mbG9hdCAoZm9ybWF0X29mX2Zjb252IGZjb252IHByZWMpIHhcblxuKCogQ29udmVydCBhIGNoYXIgdG8gYSBzdHJpbmcgYWNjb3JkaW5nIHRvIHRoZSBPQ2FtbCBsZXhpY2FsIGNvbnZlbnRpb24uICopXG5sZXQgZm9ybWF0X2NhbWxfY2hhciBjID1cbiAgbGV0IHN0ciA9IENoYXIuZXNjYXBlZCBjIGluXG4gIGxldCBsID0gU3RyaW5nLmxlbmd0aCBzdHIgaW5cbiAgbGV0IHJlcyA9IEJ5dGVzLm1ha2UgKGwgKyAyKSAnXFwnJyBpblxuICBTdHJpbmcudW5zYWZlX2JsaXQgc3RyIDAgcmVzIDEgbDtcbiAgQnl0ZXMudW5zYWZlX3RvX3N0cmluZyByZXNcblxuKCogQ29udmVydCBhIGZvcm1hdCB0eXBlIHRvIHN0cmluZyAqKVxubGV0IHN0cmluZ19vZl9mbXR0eSBmbXR0eSA9XG4gIGxldCBidWYgPSBidWZmZXJfY3JlYXRlIDE2IGluXG4gIGJwcmludF9mbXR0eSBidWYgZm10dHk7XG4gIGJ1ZmZlcl9jb250ZW50cyBidWZcblxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbiAgICAgICAgICAgICAgICAgICAgICAgICgqIEdlbmVyaWMgcHJpbnRpbmcgZnVuY3Rpb24gKilcblxuKCogTWFrZSBhIGdlbmVyaWMgcHJpbnRpbmcgZnVuY3Rpb24uICopXG4oKiBVc2VkIHRvIGdlbmVyYXRlIFByaW50ZiBhbmQgRm9ybWF0IHByaW50aW5nIGZ1bmN0aW9ucy4gKilcbigqIFBhcmFtZXRlcnM6XG4gICAgIGs6IGEgY29udGludWF0aW9uIGZpbmFsbHkgYXBwbGllZCB0byB0aGUgb3V0cHV0IHN0cmVhbSBhbmQgdGhlIGFjY3VtdWxhdG9yLlxuICAgICBvOiB0aGUgb3V0cHV0IHN0cmVhbSAoc2VlIGssICVhIGFuZCAldCkuXG4gICAgIGFjYzogcmV2IGxpc3Qgb2YgcHJpbnRpbmcgZW50aXRpZXMgKHN0cmluZywgY2hhciwgZmx1c2gsIGZvcm1hdHRpbmcsIC4uLikuXG4gICAgIGZtdDogdGhlIGZvcm1hdC4gKilcbmxldCByZWMgbWFrZV9wcmludGYgOiB0eXBlIGEgYiBjIGQgZSBmIC5cbiAgICAoKGIsIGMpIGFjYyAtPiBmKSAtPiAoYiwgYykgYWNjIC0+XG4gICAgKGEsIGIsIGMsIGQsIGUsIGYpIGZtdCAtPiBhID1cbmZ1biBrIGFjYyBmbXQgLT4gbWF0Y2ggZm10IHdpdGhcbiAgfCBDaGFyIHJlc3QgLT5cbiAgICBmdW4gYyAtPlxuICAgICAgbGV0IG5ld19hY2MgPSBBY2NfZGF0YV9jaGFyIChhY2MsIGMpIGluXG4gICAgICBtYWtlX3ByaW50ZiBrIG5ld19hY2MgcmVzdFxuICB8IENhbWxfY2hhciByZXN0IC0+XG4gICAgZnVuIGMgLT5cbiAgICAgIGxldCBuZXdfYWNjID0gQWNjX2RhdGFfc3RyaW5nIChhY2MsIGZvcm1hdF9jYW1sX2NoYXIgYykgaW5cbiAgICAgIG1ha2VfcHJpbnRmIGsgbmV3X2FjYyByZXN0XG4gIHwgU3RyaW5nIChwYWQsIHJlc3QpIC0+XG4gICAgbWFrZV9wYWRkaW5nIGsgYWNjIHJlc3QgcGFkIChmdW4gc3RyIC0+IHN0cilcbiAgfCBDYW1sX3N0cmluZyAocGFkLCByZXN0KSAtPlxuICAgIG1ha2VfcGFkZGluZyBrIGFjYyByZXN0IHBhZCBzdHJpbmdfdG9fY2FtbF9zdHJpbmdcbiAgfCBJbnQgKGljb252LCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgbWFrZV9pbnRfcGFkZGluZ19wcmVjaXNpb24gayBhY2MgcmVzdCBwYWQgcHJlYyBjb252ZXJ0X2ludCBpY29udlxuICB8IEludDMyIChpY29udiwgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIG1ha2VfaW50X3BhZGRpbmdfcHJlY2lzaW9uIGsgYWNjIHJlc3QgcGFkIHByZWMgY29udmVydF9pbnQzMiBpY29udlxuICB8IE5hdGl2ZWludCAoaWNvbnYsIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICBtYWtlX2ludF9wYWRkaW5nX3ByZWNpc2lvbiBrIGFjYyByZXN0IHBhZCBwcmVjIGNvbnZlcnRfbmF0aXZlaW50IGljb252XG4gIHwgSW50NjQgKGljb252LCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgbWFrZV9pbnRfcGFkZGluZ19wcmVjaXNpb24gayBhY2MgcmVzdCBwYWQgcHJlYyBjb252ZXJ0X2ludDY0IGljb252XG4gIHwgRmxvYXQgKGZjb252LCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgbWFrZV9mbG9hdF9wYWRkaW5nX3ByZWNpc2lvbiBrIGFjYyByZXN0IHBhZCBwcmVjIGZjb252XG4gIHwgQm9vbCAocGFkLCByZXN0KSAtPlxuICAgIG1ha2VfcGFkZGluZyBrIGFjYyByZXN0IHBhZCBzdHJpbmdfb2ZfYm9vbFxuICB8IEFscGhhIHJlc3QgLT5cbiAgICBmdW4gZiB4IC0+IG1ha2VfcHJpbnRmIGsgKEFjY19kZWxheSAoYWNjLCBmdW4gbyAtPiBmIG8geCkpIHJlc3RcbiAgfCBUaGV0YSByZXN0IC0+XG4gICAgZnVuIGYgLT4gbWFrZV9wcmludGYgayAoQWNjX2RlbGF5IChhY2MsIGYpKSByZXN0XG4gIHwgQ3VzdG9tIChhcml0eSwgZiwgcmVzdCkgLT5cbiAgICBtYWtlX2N1c3RvbSBrIGFjYyByZXN0IGFyaXR5IChmICgpKVxuICB8IFJlYWRlciBfIC0+XG4gICAgKCogVGhpcyBjYXNlIGlzIGltcG9zc2libGUsIGJ5IHR5cGluZyBvZiBmb3JtYXRzLiAqKVxuICAgICgqIEluZGVlZCwgc2luY2UgcHJpbnRmIGFuZCBjby4gdGFrZSBhIGZvcm1hdDQgYXMgYXJndW1lbnQsIHRoZSAnZCBhbmQgJ2VcbiAgICAgICB0eXBlIHBhcmFtZXRlcnMgb2YgZm10IGFyZSBvYnZpb3VzbHkgZXF1YWxzLiBUaGUgUmVhZGVyIGlzIHRoZVxuICAgICAgIG9ubHkgY29uc3RydWN0b3Igd2hpY2ggdG91Y2ggJ2QgYW5kICdlIHR5cGUgcGFyYW1ldGVycyBvZiB0aGUgZm9ybWF0XG4gICAgICAgdHlwZSwgaXQgYWRkcyBhbiAoLT4pIHRvIHRoZSAnZCBwYXJhbWV0ZXJzLiBDb25zZXF1ZW50bHksIGEgZm9ybWF0NFxuICAgICAgIGNhbm5vdCBjb250YWluIGEgUmVhZGVyIG5vZGUsIGV4Y2VwdCBpbiB0aGUgc3ViLWZvcm1hdCBhc3NvY2lhdGVkIHRvXG4gICAgICAgYW4gJXsuLi4lfS4gSXQncyBub3QgYSBwcm9ibGVtIGJlY2F1c2UgbWFrZV9wcmludGYgZG8gbm90IGNhbGxcbiAgICAgICBpdHNlbGYgcmVjdXJzaXZlbHkgb24gdGhlIHN1Yi1mb3JtYXQgYXNzb2NpYXRlZCB0byAley4uLiV9LiAqKVxuICAgIGFzc2VydCBmYWxzZVxuICB8IEZsdXNoIHJlc3QgLT5cbiAgICBtYWtlX3ByaW50ZiBrIChBY2NfZmx1c2ggYWNjKSByZXN0XG5cbiAgfCBTdHJpbmdfbGl0ZXJhbCAoc3RyLCByZXN0KSAtPlxuICAgIG1ha2VfcHJpbnRmIGsgKEFjY19zdHJpbmdfbGl0ZXJhbCAoYWNjLCBzdHIpKSByZXN0XG4gIHwgQ2hhcl9saXRlcmFsIChjaHIsIHJlc3QpIC0+XG4gICAgbWFrZV9wcmludGYgayAoQWNjX2NoYXJfbGl0ZXJhbCAoYWNjLCBjaHIpKSByZXN0XG5cbiAgfCBGb3JtYXRfYXJnIChfLCBzdWJfZm10dHksIHJlc3QpIC0+XG4gICAgbGV0IHR5ID0gc3RyaW5nX29mX2ZtdHR5IHN1Yl9mbXR0eSBpblxuICAgIChmdW4gc3RyIC0+XG4gICAgICBpZ25vcmUgc3RyO1xuICAgICAgbWFrZV9wcmludGYgayAoQWNjX2RhdGFfc3RyaW5nIChhY2MsIHR5KSkgcmVzdClcbiAgfCBGb3JtYXRfc3Vic3QgKF8sIGZtdHR5LCByZXN0KSAtPlxuICAgIGZ1biAoRm9ybWF0IChmbXQsIF8pKSAtPiBtYWtlX3ByaW50ZiBrIGFjY1xuICAgICAgKGNvbmNhdF9mbXQgKHJlY2FzdCBmbXQgZm10dHkpIHJlc3QpXG5cbiAgfCBTY2FuX2NoYXJfc2V0IChfLCBfLCByZXN0KSAtPlxuICAgIGxldCBuZXdfYWNjID0gQWNjX2ludmFsaWRfYXJnIChhY2MsIFwiUHJpbnRmOiBiYWQgY29udmVyc2lvbiAlW1wiKSBpblxuICAgIGZ1biBfIC0+IG1ha2VfcHJpbnRmIGsgbmV3X2FjYyByZXN0XG4gIHwgU2Nhbl9nZXRfY291bnRlciAoXywgcmVzdCkgLT5cbiAgICAoKiBUaGlzIGNhc2Ugc2hvdWxkIGJlIHJlZnVzZWQgZm9yIFByaW50Zi4gKilcbiAgICAoKiBBY2NlcHRlZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4gKilcbiAgICAoKiBJbnRlcnByZXQgJWwsICVuIGFuZCAlTCBhcyAldS4gKilcbiAgICBmdW4gbiAtPlxuICAgICAgbGV0IG5ld19hY2MgPSBBY2NfZGF0YV9zdHJpbmcgKGFjYywgZm9ybWF0X2ludCBcIiV1XCIgbikgaW5cbiAgICAgIG1ha2VfcHJpbnRmIGsgbmV3X2FjYyByZXN0XG4gIHwgU2Nhbl9uZXh0X2NoYXIgcmVzdCAtPlxuICAgIGZ1biBjIC0+XG4gICAgICBsZXQgbmV3X2FjYyA9IEFjY19kYXRhX2NoYXIgKGFjYywgYykgaW5cbiAgICAgIG1ha2VfcHJpbnRmIGsgbmV3X2FjYyByZXN0XG4gIHwgSWdub3JlZF9wYXJhbSAoaWduLCByZXN0KSAtPlxuICAgIG1ha2VfaWdub3JlZF9wYXJhbSBrIGFjYyBpZ24gcmVzdFxuXG4gIHwgRm9ybWF0dGluZ19saXQgKGZtdGluZ19saXQsIHJlc3QpIC0+XG4gICAgbWFrZV9wcmludGYgayAoQWNjX2Zvcm1hdHRpbmdfbGl0IChhY2MsIGZtdGluZ19saXQpKSByZXN0XG4gIHwgRm9ybWF0dGluZ19nZW4gKE9wZW5fdGFnIChGb3JtYXQgKGZtdCcsIF8pKSwgcmVzdCkgLT5cbiAgICBsZXQgaycga2FjYyA9XG4gICAgICBtYWtlX3ByaW50ZiBrIChBY2NfZm9ybWF0dGluZ19nZW4gKGFjYywgQWNjX29wZW5fdGFnIGthY2MpKSByZXN0IGluXG4gICAgbWFrZV9wcmludGYgaycgRW5kX29mX2FjYyBmbXQnXG4gIHwgRm9ybWF0dGluZ19nZW4gKE9wZW5fYm94IChGb3JtYXQgKGZtdCcsIF8pKSwgcmVzdCkgLT5cbiAgICBsZXQgaycga2FjYyA9XG4gICAgICBtYWtlX3ByaW50ZiBrIChBY2NfZm9ybWF0dGluZ19nZW4gKGFjYywgQWNjX29wZW5fYm94IGthY2MpKSByZXN0IGluXG4gICAgbWFrZV9wcmludGYgaycgRW5kX29mX2FjYyBmbXQnXG5cbiAgfCBFbmRfb2ZfZm9ybWF0IC0+XG4gICAgayBhY2NcblxuKCogRGVsYXkgdGhlIGVycm9yIChJbnZhbGlkX2FyZ3VtZW50IFwiUHJpbnRmOiBiYWQgY29udmVyc2lvbiAlX1wiKS4gKilcbigqIEdlbmVyYXRlIGZ1bmN0aW9ucyB0byB0YWtlIHJlbWFpbmluZyBhcmd1bWVudHMgKGFmdGVyIHRoZSBcIiVfXCIpLiAqKVxuYW5kIG1ha2VfaWdub3JlZF9wYXJhbSA6IHR5cGUgeCB5IGEgYiBjIGQgZSBmIC5cbiAgICAoKGIsIGMpIGFjYyAtPiBmKSAtPiAoYiwgYykgYWNjIC0+XG4gICAgKGEsIGIsIGMsIGQsIHksIHgpIGlnbm9yZWQgLT5cbiAgICAoeCwgYiwgYywgeSwgZSwgZikgZm10IC0+IGEgPVxuZnVuIGsgYWNjIGlnbiBmbXQgLT4gbWF0Y2ggaWduIHdpdGhcbiAgfCBJZ25vcmVkX2NoYXIgICAgICAgICAgICAgICAgICAgIC0+IG1ha2VfaW52YWxpZF9hcmcgayBhY2MgZm10XG4gIHwgSWdub3JlZF9jYW1sX2NoYXIgICAgICAgICAgICAgICAtPiBtYWtlX2ludmFsaWRfYXJnIGsgYWNjIGZtdFxuICB8IElnbm9yZWRfc3RyaW5nIF8gICAgICAgICAgICAgICAgLT4gbWFrZV9pbnZhbGlkX2FyZyBrIGFjYyBmbXRcbiAgfCBJZ25vcmVkX2NhbWxfc3RyaW5nIF8gICAgICAgICAgIC0+IG1ha2VfaW52YWxpZF9hcmcgayBhY2MgZm10XG4gIHwgSWdub3JlZF9pbnQgKF8sIF8pICAgICAgICAgICAgICAtPiBtYWtlX2ludmFsaWRfYXJnIGsgYWNjIGZtdFxuICB8IElnbm9yZWRfaW50MzIgKF8sIF8pICAgICAgICAgICAgLT4gbWFrZV9pbnZhbGlkX2FyZyBrIGFjYyBmbXRcbiAgfCBJZ25vcmVkX25hdGl2ZWludCAoXywgXykgICAgICAgIC0+IG1ha2VfaW52YWxpZF9hcmcgayBhY2MgZm10XG4gIHwgSWdub3JlZF9pbnQ2NCAoXywgXykgICAgICAgICAgICAtPiBtYWtlX2ludmFsaWRfYXJnIGsgYWNjIGZtdFxuICB8IElnbm9yZWRfZmxvYXQgKF8sIF8pICAgICAgICAgICAgLT4gbWFrZV9pbnZhbGlkX2FyZyBrIGFjYyBmbXRcbiAgfCBJZ25vcmVkX2Jvb2wgXyAgICAgICAgICAgICAgICAgIC0+IG1ha2VfaW52YWxpZF9hcmcgayBhY2MgZm10XG4gIHwgSWdub3JlZF9mb3JtYXRfYXJnIF8gICAgICAgICAgICAtPiBtYWtlX2ludmFsaWRfYXJnIGsgYWNjIGZtdFxuICB8IElnbm9yZWRfZm9ybWF0X3N1YnN0IChfLCBmbXR0eSkgLT4gbWFrZV9mcm9tX2ZtdHR5IGsgYWNjIGZtdHR5IGZtdFxuICB8IElnbm9yZWRfcmVhZGVyICAgICAgICAgICAgICAgICAgLT4gYXNzZXJ0IGZhbHNlXG4gIHwgSWdub3JlZF9zY2FuX2NoYXJfc2V0IF8gICAgICAgICAtPiBtYWtlX2ludmFsaWRfYXJnIGsgYWNjIGZtdFxuICB8IElnbm9yZWRfc2Nhbl9nZXRfY291bnRlciBfICAgICAgLT4gbWFrZV9pbnZhbGlkX2FyZyBrIGFjYyBmbXRcbiAgfCBJZ25vcmVkX3NjYW5fbmV4dF9jaGFyICAgICAgICAgIC0+IG1ha2VfaW52YWxpZF9hcmcgayBhY2MgZm10XG5cblxuKCogU3BlY2lhbCBjYXNlIG9mIHByaW50ZiBcIiVfKFwiLiAqKVxuYW5kIG1ha2VfZnJvbV9mbXR0eSA6IHR5cGUgeCB5IGEgYiBjIGQgZSBmIC5cbiAgICAoKGIsIGMpIGFjYyAtPiBmKSAtPiAoYiwgYykgYWNjIC0+XG4gICAgKGEsIGIsIGMsIGQsIHksIHgpIGZtdHR5IC0+XG4gICAgKHgsIGIsIGMsIHksIGUsIGYpIGZtdCAtPiBhID1cbmZ1biBrIGFjYyBmbXR0eSBmbXQgLT4gbWF0Y2ggZm10dHkgd2l0aFxuICB8IENoYXJfdHkgcmVzdCAgICAgICAgICAgIC0+IGZ1biBfIC0+IG1ha2VfZnJvbV9mbXR0eSBrIGFjYyByZXN0IGZtdFxuICB8IFN0cmluZ190eSByZXN0ICAgICAgICAgIC0+IGZ1biBfIC0+IG1ha2VfZnJvbV9mbXR0eSBrIGFjYyByZXN0IGZtdFxuICB8IEludF90eSByZXN0ICAgICAgICAgICAgIC0+IGZ1biBfIC0+IG1ha2VfZnJvbV9mbXR0eSBrIGFjYyByZXN0IGZtdFxuICB8IEludDMyX3R5IHJlc3QgICAgICAgICAgIC0+IGZ1biBfIC0+IG1ha2VfZnJvbV9mbXR0eSBrIGFjYyByZXN0IGZtdFxuICB8IE5hdGl2ZWludF90eSByZXN0ICAgICAgIC0+IGZ1biBfIC0+IG1ha2VfZnJvbV9mbXR0eSBrIGFjYyByZXN0IGZtdFxuICB8IEludDY0X3R5IHJlc3QgICAgICAgICAgIC0+IGZ1biBfIC0+IG1ha2VfZnJvbV9mbXR0eSBrIGFjYyByZXN0IGZtdFxuICB8IEZsb2F0X3R5IHJlc3QgICAgICAgICAgIC0+IGZ1biBfIC0+IG1ha2VfZnJvbV9mbXR0eSBrIGFjYyByZXN0IGZtdFxuICB8IEJvb2xfdHkgcmVzdCAgICAgICAgICAgIC0+IGZ1biBfIC0+IG1ha2VfZnJvbV9mbXR0eSBrIGFjYyByZXN0IGZtdFxuICB8IEFscGhhX3R5IHJlc3QgICAgICAgICAgIC0+IGZ1biBfIF8gLT4gbWFrZV9mcm9tX2ZtdHR5IGsgYWNjIHJlc3QgZm10XG4gIHwgVGhldGFfdHkgcmVzdCAgICAgICAgICAgLT4gZnVuIF8gLT4gbWFrZV9mcm9tX2ZtdHR5IGsgYWNjIHJlc3QgZm10XG4gIHwgQW55X3R5IHJlc3QgICAgICAgICAgICAgLT4gZnVuIF8gLT4gbWFrZV9mcm9tX2ZtdHR5IGsgYWNjIHJlc3QgZm10XG4gIHwgUmVhZGVyX3R5IF8gICAgICAgICAgICAgLT4gYXNzZXJ0IGZhbHNlXG4gIHwgSWdub3JlZF9yZWFkZXJfdHkgXyAgICAgLT4gYXNzZXJ0IGZhbHNlXG4gIHwgRm9ybWF0X2FyZ190eSAoXywgcmVzdCkgLT4gZnVuIF8gLT4gbWFrZV9mcm9tX2ZtdHR5IGsgYWNjIHJlc3QgZm10XG4gIHwgRW5kX29mX2ZtdHR5ICAgICAgICAgICAgLT4gbWFrZV9pbnZhbGlkX2FyZyBrIGFjYyBmbXRcbiAgfCBGb3JtYXRfc3Vic3RfdHkgKHR5MSwgdHkyLCByZXN0KSAtPlxuICAgIGxldCB0eSA9IHRyYW5zIChzeW1tIHR5MSkgdHkyIGluXG4gICAgZnVuIF8gLT4gbWFrZV9mcm9tX2ZtdHR5IGsgYWNjIChjb25jYXRfZm10dHkgdHkgcmVzdCkgZm10XG5cbigqIEluc2VydCBhbiBBY2NfaW52YWxpZF9hcmcgaW4gdGhlIGFjY3VtdWxhdG9yIGFuZCBjb250aW51ZSB0byBnZW5lcmF0ZVxuICAgY2xvc3VyZXMgdG8gZ2V0IHRoZSByZW1haW5pbmcgYXJndW1lbnRzLiAqKVxuYW5kIG1ha2VfaW52YWxpZF9hcmcgOiB0eXBlIGEgYiBjIGQgZSBmIC5cbiAgICAoKGIsIGMpIGFjYyAtPiBmKSAtPiAoYiwgYykgYWNjIC0+XG4gICAgKGEsIGIsIGMsIGQsIGUsIGYpIGZtdCAtPiBhID1cbmZ1biBrIGFjYyBmbXQgLT5cbiAgbWFrZV9wcmludGYgayAoQWNjX2ludmFsaWRfYXJnIChhY2MsIFwiUHJpbnRmOiBiYWQgY29udmVyc2lvbiAlX1wiKSkgZm10XG5cbigqIEZpeCBwYWRkaW5nLCB0YWtlIGl0IGFzIGFuIGV4dHJhIGludGVnZXIgYXJndW1lbnQgaWYgbmVlZGVkLiAqKVxuYW5kIG1ha2VfcGFkZGluZyA6IHR5cGUgeCB6IGEgYiBjIGQgZSBmIC5cbiAgICAoKGIsIGMpIGFjYyAtPiBmKSAtPiAoYiwgYykgYWNjIC0+XG4gICAgKGEsIGIsIGMsIGQsIGUsIGYpIGZtdCAtPlxuICAgICh4LCB6IC0+IGEpIHBhZGRpbmcgLT4gKHogLT4gc3RyaW5nKSAtPiB4ID1cbiAgZnVuIGsgYWNjIGZtdCBwYWQgdHJhbnMgLT4gbWF0Y2ggcGFkIHdpdGhcbiAgfCBOb19wYWRkaW5nIC0+XG4gICAgZnVuIHggLT5cbiAgICAgIGxldCBuZXdfYWNjID0gQWNjX2RhdGFfc3RyaW5nIChhY2MsIHRyYW5zIHgpIGluXG4gICAgICBtYWtlX3ByaW50ZiBrIG5ld19hY2MgZm10XG4gIHwgTGl0X3BhZGRpbmcgKHBhZHR5LCB3aWR0aCkgLT5cbiAgICBmdW4geCAtPlxuICAgICAgbGV0IG5ld19hY2MgPSBBY2NfZGF0YV9zdHJpbmcgKGFjYywgZml4X3BhZGRpbmcgcGFkdHkgd2lkdGggKHRyYW5zIHgpKSBpblxuICAgICAgbWFrZV9wcmludGYgayBuZXdfYWNjIGZtdFxuICB8IEFyZ19wYWRkaW5nIHBhZHR5IC0+XG4gICAgZnVuIHcgeCAtPlxuICAgICAgbGV0IG5ld19hY2MgPSBBY2NfZGF0YV9zdHJpbmcgKGFjYywgZml4X3BhZGRpbmcgcGFkdHkgdyAodHJhbnMgeCkpIGluXG4gICAgICBtYWtlX3ByaW50ZiBrIG5ld19hY2MgZm10XG5cbigqIEZpeCBwYWRkaW5nIGFuZCBwcmVjaXNpb24gZm9yIGludCwgaW50MzIsIG5hdGl2ZWludCBvciBpbnQ2NC4gKilcbigqIFRha2Ugb25lIG9yIHR3byBleHRyYSBpbnRlZ2VyIGFyZ3VtZW50cyBpZiBuZWVkZWQuICopXG5hbmQgbWFrZV9pbnRfcGFkZGluZ19wcmVjaXNpb24gOiB0eXBlIHggeSB6IGEgYiBjIGQgZSBmIC5cbiAgICAoKGIsIGMpIGFjYyAtPiBmKSAtPiAoYiwgYykgYWNjIC0+XG4gICAgKGEsIGIsIGMsIGQsIGUsIGYpIGZtdCAtPlxuICAgICh4LCB5KSBwYWRkaW5nIC0+ICh5LCB6IC0+IGEpIHByZWNpc2lvbiAtPiAoaW50X2NvbnYgLT4geiAtPiBzdHJpbmcpIC0+XG4gICAgaW50X2NvbnYgLT4geCA9XG4gIGZ1biBrIGFjYyBmbXQgcGFkIHByZWMgdHJhbnMgaWNvbnYgLT4gbWF0Y2ggcGFkLCBwcmVjIHdpdGhcbiAgfCBOb19wYWRkaW5nLCBOb19wcmVjaXNpb24gLT5cbiAgICBmdW4geCAtPlxuICAgICAgbGV0IHN0ciA9IHRyYW5zIGljb252IHggaW5cbiAgICAgIG1ha2VfcHJpbnRmIGsgKEFjY19kYXRhX3N0cmluZyAoYWNjLCBzdHIpKSBmbXRcbiAgfCBOb19wYWRkaW5nLCBMaXRfcHJlY2lzaW9uIHAgLT5cbiAgICBmdW4geCAtPlxuICAgICAgbGV0IHN0ciA9IGZpeF9pbnRfcHJlY2lzaW9uIHAgKHRyYW5zIGljb252IHgpIGluXG4gICAgICBtYWtlX3ByaW50ZiBrIChBY2NfZGF0YV9zdHJpbmcgKGFjYywgc3RyKSkgZm10XG4gIHwgTm9fcGFkZGluZywgQXJnX3ByZWNpc2lvbiAtPlxuICAgIGZ1biBwIHggLT5cbiAgICAgIGxldCBzdHIgPSBmaXhfaW50X3ByZWNpc2lvbiBwICh0cmFucyBpY29udiB4KSBpblxuICAgICAgbWFrZV9wcmludGYgayAoQWNjX2RhdGFfc3RyaW5nIChhY2MsIHN0cikpIGZtdFxuICB8IExpdF9wYWRkaW5nIChwYWR0eSwgdyksIE5vX3ByZWNpc2lvbiAtPlxuICAgIGZ1biB4IC0+XG4gICAgICBsZXQgc3RyID0gZml4X3BhZGRpbmcgcGFkdHkgdyAodHJhbnMgaWNvbnYgeCkgaW5cbiAgICAgIG1ha2VfcHJpbnRmIGsgKEFjY19kYXRhX3N0cmluZyAoYWNjLCBzdHIpKSBmbXRcbiAgfCBMaXRfcGFkZGluZyAocGFkdHksIHcpLCBMaXRfcHJlY2lzaW9uIHAgLT5cbiAgICBmdW4geCAtPlxuICAgICAgbGV0IHN0ciA9IGZpeF9wYWRkaW5nIHBhZHR5IHcgKGZpeF9pbnRfcHJlY2lzaW9uIHAgKHRyYW5zIGljb252IHgpKSBpblxuICAgICAgbWFrZV9wcmludGYgayAoQWNjX2RhdGFfc3RyaW5nIChhY2MsIHN0cikpIGZtdFxuICB8IExpdF9wYWRkaW5nIChwYWR0eSwgdyksIEFyZ19wcmVjaXNpb24gLT5cbiAgICBmdW4gcCB4IC0+XG4gICAgICBsZXQgc3RyID0gZml4X3BhZGRpbmcgcGFkdHkgdyAoZml4X2ludF9wcmVjaXNpb24gcCAodHJhbnMgaWNvbnYgeCkpIGluXG4gICAgICBtYWtlX3ByaW50ZiBrIChBY2NfZGF0YV9zdHJpbmcgKGFjYywgc3RyKSkgZm10XG4gIHwgQXJnX3BhZGRpbmcgcGFkdHksIE5vX3ByZWNpc2lvbiAtPlxuICAgIGZ1biB3IHggLT5cbiAgICAgIGxldCBzdHIgPSBmaXhfcGFkZGluZyBwYWR0eSB3ICh0cmFucyBpY29udiB4KSBpblxuICAgICAgbWFrZV9wcmludGYgayAoQWNjX2RhdGFfc3RyaW5nIChhY2MsIHN0cikpIGZtdFxuICB8IEFyZ19wYWRkaW5nIHBhZHR5LCBMaXRfcHJlY2lzaW9uIHAgLT5cbiAgICBmdW4gdyB4IC0+XG4gICAgICBsZXQgc3RyID0gZml4X3BhZGRpbmcgcGFkdHkgdyAoZml4X2ludF9wcmVjaXNpb24gcCAodHJhbnMgaWNvbnYgeCkpIGluXG4gICAgICBtYWtlX3ByaW50ZiBrIChBY2NfZGF0YV9zdHJpbmcgKGFjYywgc3RyKSkgZm10XG4gIHwgQXJnX3BhZGRpbmcgcGFkdHksIEFyZ19wcmVjaXNpb24gLT5cbiAgICBmdW4gdyBwIHggLT5cbiAgICAgIGxldCBzdHIgPSBmaXhfcGFkZGluZyBwYWR0eSB3IChmaXhfaW50X3ByZWNpc2lvbiBwICh0cmFucyBpY29udiB4KSkgaW5cbiAgICAgIG1ha2VfcHJpbnRmIGsgKEFjY19kYXRhX3N0cmluZyAoYWNjLCBzdHIpKSBmbXRcblxuKCogQ29udmVydCBhIGZsb2F0LCBmaXggcGFkZGluZyBhbmQgcHJlY2lzaW9uIGlmIG5lZWRlZC4gKilcbigqIFRha2UgdGhlIGZsb2F0IGFyZ3VtZW50IGFuZCBvbmUgb3IgdHdvIGV4dHJhIGludGVnZXIgYXJndW1lbnRzIGlmIG5lZWRlZC4gKilcbmFuZCBtYWtlX2Zsb2F0X3BhZGRpbmdfcHJlY2lzaW9uIDogdHlwZSB4IHkgYSBiIGMgZCBlIGYgLlxuICAgICgoYiwgYykgYWNjIC0+IGYpIC0+IChiLCBjKSBhY2MgLT5cbiAgICAoYSwgYiwgYywgZCwgZSwgZikgZm10IC0+XG4gICAgKHgsIHkpIHBhZGRpbmcgLT4gKHksIGZsb2F0IC0+IGEpIHByZWNpc2lvbiAtPiBmbG9hdF9jb252IC0+IHggPVxuICBmdW4gayBhY2MgZm10IHBhZCBwcmVjIGZjb252IC0+IG1hdGNoIHBhZCwgcHJlYyB3aXRoXG4gIHwgTm9fcGFkZGluZywgTm9fcHJlY2lzaW9uIC0+XG4gICAgZnVuIHggLT5cbiAgICAgIGxldCBzdHIgPSBjb252ZXJ0X2Zsb2F0IGZjb252IChkZWZhdWx0X2Zsb2F0X3ByZWNpc2lvbiBmY29udikgeCBpblxuICAgICAgbWFrZV9wcmludGYgayAoQWNjX2RhdGFfc3RyaW5nIChhY2MsIHN0cikpIGZtdFxuICB8IE5vX3BhZGRpbmcsIExpdF9wcmVjaXNpb24gcCAtPlxuICAgIGZ1biB4IC0+XG4gICAgICBsZXQgc3RyID0gY29udmVydF9mbG9hdCBmY29udiBwIHggaW5cbiAgICAgIG1ha2VfcHJpbnRmIGsgKEFjY19kYXRhX3N0cmluZyAoYWNjLCBzdHIpKSBmbXRcbiAgfCBOb19wYWRkaW5nLCBBcmdfcHJlY2lzaW9uIC0+XG4gICAgZnVuIHAgeCAtPlxuICAgICAgbGV0IHN0ciA9IGNvbnZlcnRfZmxvYXQgZmNvbnYgcCB4IGluXG4gICAgICBtYWtlX3ByaW50ZiBrIChBY2NfZGF0YV9zdHJpbmcgKGFjYywgc3RyKSkgZm10XG4gIHwgTGl0X3BhZGRpbmcgKHBhZHR5LCB3KSwgTm9fcHJlY2lzaW9uIC0+XG4gICAgZnVuIHggLT5cbiAgICAgIGxldCBzdHIgPSBjb252ZXJ0X2Zsb2F0IGZjb252IChkZWZhdWx0X2Zsb2F0X3ByZWNpc2lvbiBmY29udikgeCBpblxuICAgICAgbGV0IHN0cicgPSBmaXhfcGFkZGluZyBwYWR0eSB3IHN0ciBpblxuICAgICAgbWFrZV9wcmludGYgayAoQWNjX2RhdGFfc3RyaW5nIChhY2MsIHN0cicpKSBmbXRcbiAgfCBMaXRfcGFkZGluZyAocGFkdHksIHcpLCBMaXRfcHJlY2lzaW9uIHAgLT5cbiAgICBmdW4geCAtPlxuICAgICAgbGV0IHN0ciA9IGZpeF9wYWRkaW5nIHBhZHR5IHcgKGNvbnZlcnRfZmxvYXQgZmNvbnYgcCB4KSBpblxuICAgICAgbWFrZV9wcmludGYgayAoQWNjX2RhdGFfc3RyaW5nIChhY2MsIHN0cikpIGZtdFxuICB8IExpdF9wYWRkaW5nIChwYWR0eSwgdyksIEFyZ19wcmVjaXNpb24gLT5cbiAgICBmdW4gcCB4IC0+XG4gICAgICBsZXQgc3RyID0gZml4X3BhZGRpbmcgcGFkdHkgdyAoY29udmVydF9mbG9hdCBmY29udiBwIHgpIGluXG4gICAgICBtYWtlX3ByaW50ZiBrIChBY2NfZGF0YV9zdHJpbmcgKGFjYywgc3RyKSkgZm10XG4gIHwgQXJnX3BhZGRpbmcgcGFkdHksIE5vX3ByZWNpc2lvbiAtPlxuICAgIGZ1biB3IHggLT5cbiAgICAgIGxldCBzdHIgPSBjb252ZXJ0X2Zsb2F0IGZjb252IChkZWZhdWx0X2Zsb2F0X3ByZWNpc2lvbiBmY29udikgeCBpblxuICAgICAgbGV0IHN0cicgPSBmaXhfcGFkZGluZyBwYWR0eSB3IHN0ciBpblxuICAgICAgbWFrZV9wcmludGYgayAoQWNjX2RhdGFfc3RyaW5nIChhY2MsIHN0cicpKSBmbXRcbiAgfCBBcmdfcGFkZGluZyBwYWR0eSwgTGl0X3ByZWNpc2lvbiBwIC0+XG4gICAgZnVuIHcgeCAtPlxuICAgICAgbGV0IHN0ciA9IGZpeF9wYWRkaW5nIHBhZHR5IHcgKGNvbnZlcnRfZmxvYXQgZmNvbnYgcCB4KSBpblxuICAgICAgbWFrZV9wcmludGYgayAoQWNjX2RhdGFfc3RyaW5nIChhY2MsIHN0cikpIGZtdFxuICB8IEFyZ19wYWRkaW5nIHBhZHR5LCBBcmdfcHJlY2lzaW9uIC0+XG4gICAgZnVuIHcgcCB4IC0+XG4gICAgICBsZXQgc3RyID0gZml4X3BhZGRpbmcgcGFkdHkgdyAoY29udmVydF9mbG9hdCBmY29udiBwIHgpIGluXG4gICAgICBtYWtlX3ByaW50ZiBrIChBY2NfZGF0YV9zdHJpbmcgKGFjYywgc3RyKSkgZm10XG5hbmQgbWFrZV9jdXN0b20gOiB0eXBlIHggeSBhIGIgYyBkIGUgZiAuXG4gICgoYiwgYykgYWNjIC0+IGYpIC0+IChiLCBjKSBhY2MgLT5cbiAgKGEsIGIsIGMsIGQsIGUsIGYpIGZtdCAtPlxuICAoYSwgeCwgeSkgY3VzdG9tX2FyaXR5IC0+IHggLT4geSA9XG4gIGZ1biBrIGFjYyByZXN0IGFyaXR5IGYgLT4gbWF0Y2ggYXJpdHkgd2l0aFxuICB8IEN1c3RvbV96ZXJvIC0+IG1ha2VfcHJpbnRmIGsgKEFjY19kYXRhX3N0cmluZyAoYWNjLCBmKSkgcmVzdFxuICB8IEN1c3RvbV9zdWNjIGFyaXR5IC0+XG4gICAgZnVuIHggLT5cbiAgICAgIG1ha2VfY3VzdG9tIGsgYWNjIHJlc3QgYXJpdHkgKGYgeClcblxubGV0IGNvbnN0IHggXyA9IHhcblxubGV0IHJlYyBtYWtlX2lwcmludGYgOiB0eXBlIGEgYiBjIGQgZSBmIHN0YXRlLlxuICAoc3RhdGUgLT4gZikgLT4gc3RhdGUgLT4gKGEsIGIsIGMsIGQsIGUsIGYpIGZtdCAtPiBhID1cbiAgZnVuIGsgbyBmbXQgLT4gbWF0Y2ggZm10IHdpdGhcbiAgICB8IENoYXIgcmVzdCAtPlxuICAgICAgICBjb25zdCAobWFrZV9pcHJpbnRmIGsgbyByZXN0KVxuICAgIHwgQ2FtbF9jaGFyIHJlc3QgLT5cbiAgICAgICAgY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gcmVzdClcbiAgICB8IFN0cmluZyAoTm9fcGFkZGluZywgcmVzdCkgLT5cbiAgICAgICAgY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gcmVzdClcbiAgICB8IFN0cmluZyAoTGl0X3BhZGRpbmcgXywgcmVzdCkgLT5cbiAgICAgICAgY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gcmVzdClcbiAgICB8IFN0cmluZyAoQXJnX3BhZGRpbmcgXywgcmVzdCkgLT5cbiAgICAgICAgY29uc3QgKGNvbnN0IChtYWtlX2lwcmludGYgayBvIHJlc3QpKVxuICAgIHwgQ2FtbF9zdHJpbmcgKE5vX3BhZGRpbmcsIHJlc3QpIC0+XG4gICAgICAgIGNvbnN0IChtYWtlX2lwcmludGYgayBvIHJlc3QpXG4gICAgfCBDYW1sX3N0cmluZyAoTGl0X3BhZGRpbmcgXywgcmVzdCkgLT5cbiAgICAgICAgY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gcmVzdClcbiAgICB8IENhbWxfc3RyaW5nIChBcmdfcGFkZGluZyBfLCByZXN0KSAtPlxuICAgICAgICBjb25zdCAoY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gcmVzdCkpXG4gICAgfCBJbnQgKF8sIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICAgICAgZm5fb2ZfcGFkZGluZ19wcmVjaXNpb24gayBvIHJlc3QgcGFkIHByZWNcbiAgICB8IEludDMyIChfLCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgICAgIGZuX29mX3BhZGRpbmdfcHJlY2lzaW9uIGsgbyByZXN0IHBhZCBwcmVjXG4gICAgfCBOYXRpdmVpbnQgKF8sIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICAgICAgZm5fb2ZfcGFkZGluZ19wcmVjaXNpb24gayBvIHJlc3QgcGFkIHByZWNcbiAgICB8IEludDY0IChfLCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgICAgIGZuX29mX3BhZGRpbmdfcHJlY2lzaW9uIGsgbyByZXN0IHBhZCBwcmVjXG4gICAgfCBGbG9hdCAoXywgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgICAgICBmbl9vZl9wYWRkaW5nX3ByZWNpc2lvbiBrIG8gcmVzdCBwYWQgcHJlY1xuICAgIHwgQm9vbCAoTm9fcGFkZGluZywgcmVzdCkgLT5cbiAgICAgICAgY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gcmVzdClcbiAgICB8IEJvb2wgKExpdF9wYWRkaW5nIF8sIHJlc3QpIC0+XG4gICAgICAgIGNvbnN0IChtYWtlX2lwcmludGYgayBvIHJlc3QpXG4gICAgfCBCb29sIChBcmdfcGFkZGluZyBfLCByZXN0KSAtPlxuICAgICAgICBjb25zdCAoY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gcmVzdCkpXG4gICAgfCBBbHBoYSByZXN0IC0+XG4gICAgICAgIGNvbnN0IChjb25zdCAobWFrZV9pcHJpbnRmIGsgbyByZXN0KSlcbiAgICB8IFRoZXRhIHJlc3QgLT5cbiAgICAgICAgY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gcmVzdClcbiAgICB8IEN1c3RvbSAoYXJpdHksIF8sIHJlc3QpIC0+XG4gICAgICAgIGZuX29mX2N1c3RvbV9hcml0eSBrIG8gcmVzdCBhcml0eVxuICAgIHwgUmVhZGVyIF8gLT5cbiAgICAgICAgKCogVGhpcyBjYXNlIGlzIGltcG9zc2libGUsIGJ5IHR5cGluZyBvZiBmb3JtYXRzLiAgU2VlIHRoZVxuICAgICAgICAgICBub3RlIGluIHRoZSBjb3JyZXNwb25kaW5nIGNhc2UgZm9yIG1ha2VfcHJpbnRmLiAqKVxuICAgICAgICBhc3NlcnQgZmFsc2VcbiAgICB8IEZsdXNoIHJlc3QgLT5cbiAgICAgICAgbWFrZV9pcHJpbnRmIGsgbyByZXN0XG4gICAgfCBTdHJpbmdfbGl0ZXJhbCAoXywgcmVzdCkgLT5cbiAgICAgICAgbWFrZV9pcHJpbnRmIGsgbyByZXN0XG4gICAgfCBDaGFyX2xpdGVyYWwgKF8sIHJlc3QpIC0+XG4gICAgICAgIG1ha2VfaXByaW50ZiBrIG8gcmVzdFxuICAgIHwgRm9ybWF0X2FyZyAoXywgXywgcmVzdCkgLT5cbiAgICAgICAgY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gcmVzdClcbiAgICB8IEZvcm1hdF9zdWJzdCAoXywgZm10dHksIHJlc3QpIC0+XG4gICAgICAgIGZ1biAoRm9ybWF0IChmbXQsIF8pKSAtPlxuICAgICAgICAgIG1ha2VfaXByaW50ZiBrIG9cbiAgICAgICAgICAgIChjb25jYXRfZm10IChyZWNhc3QgZm10IGZtdHR5KSByZXN0KVxuICAgIHwgU2Nhbl9jaGFyX3NldCAoXywgXywgcmVzdCkgLT5cbiAgICAgICAgY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gcmVzdClcbiAgICB8IFNjYW5fZ2V0X2NvdW50ZXIgKF8sIHJlc3QpIC0+XG4gICAgICAgIGNvbnN0IChtYWtlX2lwcmludGYgayBvIHJlc3QpXG4gICAgfCBTY2FuX25leHRfY2hhciByZXN0IC0+XG4gICAgICAgIGNvbnN0IChtYWtlX2lwcmludGYgayBvIHJlc3QpXG4gICAgfCBJZ25vcmVkX3BhcmFtIChpZ24sIHJlc3QpIC0+XG4gICAgICAgIG1ha2VfaWdub3JlZF9wYXJhbSAoZnVuIF8gLT4gayBvKSAoRW5kX29mX2FjYykgaWduIHJlc3RcbiAgICB8IEZvcm1hdHRpbmdfbGl0IChfLCByZXN0KSAtPlxuICAgICAgICBtYWtlX2lwcmludGYgayBvIHJlc3RcbiAgICB8IEZvcm1hdHRpbmdfZ2VuIChPcGVuX3RhZyAoRm9ybWF0IChmbXQnLCBfKSksIHJlc3QpIC0+XG4gICAgICAgIG1ha2VfaXByaW50ZiAoZnVuIGtvYyAtPiBtYWtlX2lwcmludGYgayBrb2MgcmVzdCkgbyBmbXQnXG4gICAgfCBGb3JtYXR0aW5nX2dlbiAoT3Blbl9ib3ggKEZvcm1hdCAoZm10JywgXykpLCByZXN0KSAtPlxuICAgICAgICBtYWtlX2lwcmludGYgKGZ1biBrb2MgLT4gbWFrZV9pcHJpbnRmIGsga29jIHJlc3QpIG8gZm10J1xuICAgIHwgRW5kX29mX2Zvcm1hdCAtPlxuICAgICAgICBrIG9cbmFuZCBmbl9vZl9wYWRkaW5nX3ByZWNpc2lvbiA6XG4gIHR5cGUgeCB5IHogYSBiIGMgZCBlIGYgc3RhdGUuXG4gIChzdGF0ZSAtPiBmKSAtPiBzdGF0ZSAtPiAoYSwgYiwgYywgZCwgZSwgZikgZm10IC0+XG4gICh4LCB5KSBwYWRkaW5nIC0+ICh5LCB6IC0+IGEpIHByZWNpc2lvbiAtPiB4ID1cbiAgZnVuIGsgbyBmbXQgcGFkIHByZWMgLT4gbWF0Y2ggcGFkLCBwcmVjIHdpdGhcbiAgICB8IE5vX3BhZGRpbmcgICAsIE5vX3ByZWNpc2lvbiAgICAtPlxuICAgICAgICBjb25zdCAobWFrZV9pcHJpbnRmIGsgbyBmbXQpXG4gICAgfCBOb19wYWRkaW5nICAgLCBMaXRfcHJlY2lzaW9uIF8gLT5cbiAgICAgICAgY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gZm10KVxuICAgIHwgTm9fcGFkZGluZyAgICwgQXJnX3ByZWNpc2lvbiAgIC0+XG4gICAgICAgIGNvbnN0IChjb25zdCAobWFrZV9pcHJpbnRmIGsgbyBmbXQpKVxuICAgIHwgTGl0X3BhZGRpbmcgXywgTm9fcHJlY2lzaW9uICAgIC0+XG4gICAgICAgIGNvbnN0IChtYWtlX2lwcmludGYgayBvIGZtdClcbiAgICB8IExpdF9wYWRkaW5nIF8sIExpdF9wcmVjaXNpb24gXyAtPlxuICAgICAgICBjb25zdCAobWFrZV9pcHJpbnRmIGsgbyBmbXQpXG4gICAgfCBMaXRfcGFkZGluZyBfLCBBcmdfcHJlY2lzaW9uICAgLT5cbiAgICAgICAgY29uc3QgKGNvbnN0IChtYWtlX2lwcmludGYgayBvIGZtdCkpXG4gICAgfCBBcmdfcGFkZGluZyBfLCBOb19wcmVjaXNpb24gICAgLT5cbiAgICAgICAgY29uc3QgKGNvbnN0IChtYWtlX2lwcmludGYgayBvIGZtdCkpXG4gICAgfCBBcmdfcGFkZGluZyBfLCBMaXRfcHJlY2lzaW9uIF8gLT5cbiAgICAgICAgY29uc3QgKGNvbnN0IChtYWtlX2lwcmludGYgayBvIGZtdCkpXG4gICAgfCBBcmdfcGFkZGluZyBfLCBBcmdfcHJlY2lzaW9uICAgLT5cbiAgICAgICAgY29uc3QgKGNvbnN0IChjb25zdCAobWFrZV9pcHJpbnRmIGsgbyBmbXQpKSlcbmFuZCBmbl9vZl9jdXN0b21fYXJpdHkgOiB0eXBlIHggeSBhIGIgYyBkIGUgZiBzdGF0ZS5cbiAgKHN0YXRlIC0+IGYpIC0+XG4gIHN0YXRlIC0+IChhLCBiLCBjLCBkLCBlLCBmKSBmbXQgLT4gKGEsIHgsIHkpIGN1c3RvbV9hcml0eSAtPiB5ID1cbiAgZnVuIGsgbyBmbXQgLT4gZnVuY3Rpb25cbiAgICB8IEN1c3RvbV96ZXJvIC0+XG4gICAgICAgIG1ha2VfaXByaW50ZiBrIG8gZm10XG4gICAgfCBDdXN0b21fc3VjYyBhcml0eSAtPlxuICAgICAgICBjb25zdCAoZm5fb2ZfY3VzdG9tX2FyaXR5IGsgbyBmbXQgYXJpdHkpXG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICgqIENvbnRpbnVhdGlvbnMgZm9yIG1ha2VfcHJpbnRmICopXG5cbigqIFJlY3Vyc2l2ZWx5IG91dHB1dCBhbiBcImFjY3VtdWxhdG9yXCIgY29udGFpbmluZyBhIHJldmVyc2VkIGxpc3Qgb2ZcbiAgIHByaW50aW5nIGVudGl0aWVzIChzdHJpbmcsIGNoYXIsIGZsdXMsIC4uLikgaW4gYW4gb3V0cHV0X3N0cmVhbS4gKilcbigqIFVzZWQgYXMgYSBjb250aW51YXRpb24gb2YgbWFrZV9wcmludGYuICopXG5sZXQgcmVjIG91dHB1dF9hY2MgbyBhY2MgPSBtYXRjaCBhY2Mgd2l0aFxuICB8IEFjY19mb3JtYXR0aW5nX2xpdCAocCwgZm10aW5nX2xpdCkgLT5cbiAgICBsZXQgcyA9IHN0cmluZ19vZl9mb3JtYXR0aW5nX2xpdCBmbXRpbmdfbGl0IGluXG4gICAgb3V0cHV0X2FjYyBvIHA7IG91dHB1dF9zdHJpbmcgbyBzO1xuICB8IEFjY19mb3JtYXR0aW5nX2dlbiAocCwgQWNjX29wZW5fdGFnIGFjYycpIC0+XG4gICAgb3V0cHV0X2FjYyBvIHA7IG91dHB1dF9zdHJpbmcgbyBcIkB7XCI7IG91dHB1dF9hY2MgbyBhY2MnO1xuICB8IEFjY19mb3JtYXR0aW5nX2dlbiAocCwgQWNjX29wZW5fYm94IGFjYycpIC0+XG4gICAgb3V0cHV0X2FjYyBvIHA7IG91dHB1dF9zdHJpbmcgbyBcIkBbXCI7IG91dHB1dF9hY2MgbyBhY2MnO1xuICB8IEFjY19zdHJpbmdfbGl0ZXJhbCAocCwgcylcbiAgfCBBY2NfZGF0YV9zdHJpbmcgKHAsIHMpICAgLT4gb3V0cHV0X2FjYyBvIHA7IG91dHB1dF9zdHJpbmcgbyBzXG4gIHwgQWNjX2NoYXJfbGl0ZXJhbCAocCwgYylcbiAgfCBBY2NfZGF0YV9jaGFyIChwLCBjKSAgICAgLT4gb3V0cHV0X2FjYyBvIHA7IG91dHB1dF9jaGFyIG8gY1xuICB8IEFjY19kZWxheSAocCwgZikgICAgICAgICAtPiBvdXRwdXRfYWNjIG8gcDsgZiBvXG4gIHwgQWNjX2ZsdXNoIHAgICAgICAgICAgICAgIC0+IG91dHB1dF9hY2MgbyBwOyBmbHVzaCBvXG4gIHwgQWNjX2ludmFsaWRfYXJnIChwLCBtc2cpIC0+IG91dHB1dF9hY2MgbyBwOyBpbnZhbGlkX2FyZyBtc2c7XG4gIHwgRW5kX29mX2FjYyAgICAgICAgICAgICAgIC0+ICgpXG5cbigqIFJlY3Vyc2l2ZWx5IG91dHB1dCBhbiBcImFjY3VtdWxhdG9yXCIgY29udGFpbmluZyBhIHJldmVyc2VkIGxpc3Qgb2ZcbiAgIHByaW50aW5nIGVudGl0aWVzIChzdHJpbmcsIGNoYXIsIGZsdXMsIC4uLikgaW4gYSBidWZmZXIuICopXG4oKiBVc2VkIGFzIGEgY29udGludWF0aW9uIG9mIG1ha2VfcHJpbnRmLiAqKVxubGV0IHJlYyBidWZwdXRfYWNjIGIgYWNjID0gbWF0Y2ggYWNjIHdpdGhcbiAgfCBBY2NfZm9ybWF0dGluZ19saXQgKHAsIGZtdGluZ19saXQpIC0+XG4gICAgbGV0IHMgPSBzdHJpbmdfb2ZfZm9ybWF0dGluZ19saXQgZm10aW5nX2xpdCBpblxuICAgIGJ1ZnB1dF9hY2MgYiBwOyBCdWZmZXIuYWRkX3N0cmluZyBiIHM7XG4gIHwgQWNjX2Zvcm1hdHRpbmdfZ2VuIChwLCBBY2Nfb3Blbl90YWcgYWNjJykgLT5cbiAgICBidWZwdXRfYWNjIGIgcDsgQnVmZmVyLmFkZF9zdHJpbmcgYiBcIkB7XCI7IGJ1ZnB1dF9hY2MgYiBhY2MnO1xuICB8IEFjY19mb3JtYXR0aW5nX2dlbiAocCwgQWNjX29wZW5fYm94IGFjYycpIC0+XG4gICAgYnVmcHV0X2FjYyBiIHA7IEJ1ZmZlci5hZGRfc3RyaW5nIGIgXCJAW1wiOyBidWZwdXRfYWNjIGIgYWNjJztcbiAgfCBBY2Nfc3RyaW5nX2xpdGVyYWwgKHAsIHMpXG4gIHwgQWNjX2RhdGFfc3RyaW5nIChwLCBzKSAgIC0+IGJ1ZnB1dF9hY2MgYiBwOyBCdWZmZXIuYWRkX3N0cmluZyBiIHNcbiAgfCBBY2NfY2hhcl9saXRlcmFsIChwLCBjKVxuICB8IEFjY19kYXRhX2NoYXIgKHAsIGMpICAgICAtPiBidWZwdXRfYWNjIGIgcDsgQnVmZmVyLmFkZF9jaGFyIGIgY1xuICB8IEFjY19kZWxheSAocCwgZikgICAgICAgICAtPiBidWZwdXRfYWNjIGIgcDsgZiBiXG4gIHwgQWNjX2ZsdXNoIHAgICAgICAgICAgICAgIC0+IGJ1ZnB1dF9hY2MgYiBwO1xuICB8IEFjY19pbnZhbGlkX2FyZyAocCwgbXNnKSAtPiBidWZwdXRfYWNjIGIgcDsgaW52YWxpZF9hcmcgbXNnO1xuICB8IEVuZF9vZl9hY2MgICAgICAgICAgICAgICAtPiAoKVxuXG4oKiBSZWN1cnNpdmVseSBvdXRwdXQgYW4gXCJhY2N1bXVsYXRvclwiIGNvbnRhaW5pbmcgYSByZXZlcnNlZCBsaXN0IG9mXG4gICBwcmludGluZyBlbnRpdGllcyAoc3RyaW5nLCBjaGFyLCBmbHVzLCAuLi4pIGluIGEgYnVmZmVyLiAqKVxuKCogRGlmZmVyIGZyb20gYnVmcHV0X2FjYyBieSB0aGUgaW50ZXJwcmV0YXRpb24gb2YgJWEgYW5kICV0LiAqKVxuKCogVXNlZCBhcyBhIGNvbnRpbnVhdGlvbiBvZiBtYWtlX3ByaW50Zi4gKilcbmxldCByZWMgc3RycHV0X2FjYyBiIGFjYyA9IG1hdGNoIGFjYyB3aXRoXG4gIHwgQWNjX2Zvcm1hdHRpbmdfbGl0IChwLCBmbXRpbmdfbGl0KSAtPlxuICAgIGxldCBzID0gc3RyaW5nX29mX2Zvcm1hdHRpbmdfbGl0IGZtdGluZ19saXQgaW5cbiAgICBzdHJwdXRfYWNjIGIgcDsgQnVmZmVyLmFkZF9zdHJpbmcgYiBzO1xuICB8IEFjY19mb3JtYXR0aW5nX2dlbiAocCwgQWNjX29wZW5fdGFnIGFjYycpIC0+XG4gICAgc3RycHV0X2FjYyBiIHA7IEJ1ZmZlci5hZGRfc3RyaW5nIGIgXCJAe1wiOyBzdHJwdXRfYWNjIGIgYWNjJztcbiAgfCBBY2NfZm9ybWF0dGluZ19nZW4gKHAsIEFjY19vcGVuX2JveCBhY2MnKSAtPlxuICAgIHN0cnB1dF9hY2MgYiBwOyBCdWZmZXIuYWRkX3N0cmluZyBiIFwiQFtcIjsgc3RycHV0X2FjYyBiIGFjYyc7XG4gIHwgQWNjX3N0cmluZ19saXRlcmFsIChwLCBzKVxuICB8IEFjY19kYXRhX3N0cmluZyAocCwgcykgICAtPiBzdHJwdXRfYWNjIGIgcDsgQnVmZmVyLmFkZF9zdHJpbmcgYiBzXG4gIHwgQWNjX2NoYXJfbGl0ZXJhbCAocCwgYylcbiAgfCBBY2NfZGF0YV9jaGFyIChwLCBjKSAgICAgLT4gc3RycHV0X2FjYyBiIHA7IEJ1ZmZlci5hZGRfY2hhciBiIGNcbiAgfCBBY2NfZGVsYXkgKHAsIGYpICAgICAgICAgLT4gc3RycHV0X2FjYyBiIHA7IEJ1ZmZlci5hZGRfc3RyaW5nIGIgKGYgKCkpXG4gIHwgQWNjX2ZsdXNoIHAgICAgICAgICAgICAgIC0+IHN0cnB1dF9hY2MgYiBwO1xuICB8IEFjY19pbnZhbGlkX2FyZyAocCwgbXNnKSAtPiBzdHJwdXRfYWNjIGIgcDsgaW52YWxpZF9hcmcgbXNnO1xuICB8IEVuZF9vZl9hY2MgICAgICAgICAgICAgICAtPiAoKVxuXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBFcnJvciBtYW5hZ2VtZW50ICopXG5cbigqIFJhaXNlIFtGYWlsdXJlXSB3aXRoIGEgcHJldHR5LXByaW50ZWQgZXJyb3IgbWVzc2FnZS4gKilcbmxldCBmYWlsd2l0aF9tZXNzYWdlIChGb3JtYXQgKGZtdCwgXykpID1cbiAgbGV0IGJ1ZiA9IEJ1ZmZlci5jcmVhdGUgMjU2IGluXG4gIGxldCBrIGFjYyA9IHN0cnB1dF9hY2MgYnVmIGFjYzsgZmFpbHdpdGggKEJ1ZmZlci5jb250ZW50cyBidWYpIGluXG4gIG1ha2VfcHJpbnRmIGsgRW5kX29mX2FjYyBmbXRcblxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBGb3JtYXR0aW5nIHRvb2xzICopXG5cbigqIENvbnZlcnQgYSBzdHJpbmcgdG8gYW4gb3BlbiBibG9jayBkZXNjcmlwdGlvbiAoaW5kZW50LCBibG9ja190eXBlKSAqKVxubGV0IG9wZW5fYm94X29mX3N0cmluZyBzdHIgPVxuICBpZiBzdHIgPSBcIlwiIHRoZW4gKDAsIFBwX2JveCkgZWxzZVxuICAgIGxldCBsZW4gPSBTdHJpbmcubGVuZ3RoIHN0ciBpblxuICAgIGxldCBpbnZhbGlkX2JveCAoKSA9IGZhaWx3aXRoX21lc3NhZ2UgXCJpbnZhbGlkIGJveCBkZXNjcmlwdGlvbiAlU1wiIHN0ciBpblxuICAgIGxldCByZWMgcGFyc2Vfc3BhY2VzIGkgPVxuICAgICAgaWYgaSA9IGxlbiB0aGVuIGkgZWxzZVxuICAgICAgICBtYXRjaCBzdHIuW2ldIHdpdGhcbiAgICAgICAgfCAnICcgfCAnXFx0JyAtPiBwYXJzZV9zcGFjZXMgKGkgKyAxKVxuICAgICAgICB8IF8gLT4gaVxuICAgIGFuZCBwYXJzZV9sd29yZCBpIGogPVxuICAgICAgaWYgaiA9IGxlbiB0aGVuIGogZWxzZVxuICAgICAgICBtYXRjaCBzdHIuW2pdIHdpdGhcbiAgICAgICAgfCAnYScgLi4gJ3onIC0+IHBhcnNlX2x3b3JkIGkgKGogKyAxKVxuICAgICAgICB8IF8gLT4galxuICAgIGFuZCBwYXJzZV9pbnQgaSBqID1cbiAgICAgIGlmIGogPSBsZW4gdGhlbiBqIGVsc2VcbiAgICAgICAgbWF0Y2ggc3RyLltqXSB3aXRoXG4gICAgICAgIHwgJzAnIC4uICc5JyB8ICctJyAtPiBwYXJzZV9pbnQgaSAoaiArIDEpXG4gICAgICAgIHwgXyAtPiBqIGluXG4gICAgbGV0IHdzdGFydCA9IHBhcnNlX3NwYWNlcyAwIGluXG4gICAgbGV0IHdlbmQgPSBwYXJzZV9sd29yZCB3c3RhcnQgd3N0YXJ0IGluXG4gICAgbGV0IGJveF9uYW1lID0gU3RyaW5nLnN1YiBzdHIgd3N0YXJ0ICh3ZW5kIC0gd3N0YXJ0KSBpblxuICAgIGxldCBuc3RhcnQgPSBwYXJzZV9zcGFjZXMgd2VuZCBpblxuICAgIGxldCBuZW5kID0gcGFyc2VfaW50IG5zdGFydCBuc3RhcnQgaW5cbiAgICBsZXQgaW5kZW50ID1cbiAgICAgIGlmIG5zdGFydCA9IG5lbmQgdGhlbiAwIGVsc2VcbiAgICAgICAgdHJ5IGludF9vZl9zdHJpbmcgKFN0cmluZy5zdWIgc3RyIG5zdGFydCAobmVuZCAtIG5zdGFydCkpXG4gICAgICAgIHdpdGggRmFpbHVyZSBfIC0+IGludmFsaWRfYm94ICgpIGluXG4gICAgbGV0IGV4cF9lbmQgPSBwYXJzZV9zcGFjZXMgbmVuZCBpblxuICAgIGlmIGV4cF9lbmQgPD4gbGVuIHRoZW4gaW52YWxpZF9ib3ggKCk7XG4gICAgbGV0IGJveF90eXBlID0gbWF0Y2ggYm94X25hbWUgd2l0aFxuICAgICAgfCBcIlwiIHwgXCJiXCIgLT4gUHBfYm94XG4gICAgICB8IFwiaFwiICAgICAgLT4gUHBfaGJveFxuICAgICAgfCBcInZcIiAgICAgIC0+IFBwX3Zib3hcbiAgICAgIHwgXCJodlwiICAgICAtPiBQcF9odmJveFxuICAgICAgfCBcImhvdlwiICAgIC0+IFBwX2hvdmJveFxuICAgICAgfCBfICAgICAgICAtPiBpbnZhbGlkX2JveCAoKSBpblxuICAgIChpbmRlbnQsIGJveF90eXBlKVxuXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIFBhcnNpbmcgdG9vbHMgKilcblxuKCogQ3JlYXRlIGEgcGFkZGluZ19mbXRfZWJiIGZyb20gYSBwYWRkaW5nIGFuZCBhIGZvcm1hdC4gKilcbigqIENvcHkgdGhlIHBhZGRpbmcgdG8gZGlzam9pbiB0aGUgdHlwZSBwYXJhbWV0ZXJzIG9mIGFyZ3VtZW50IGFuZCByZXN1bHQuICopXG5sZXQgbWFrZV9wYWRkaW5nX2ZtdF9lYmIgOiB0eXBlIHggeSAuXG4gICAgKHgsIHkpIHBhZGRpbmcgLT4gKF8sIF8sIF8sIF8sIF8sIF8pIGZtdCAtPlxuICAgICAgKF8sIF8sIF8sIF8sIF8pIHBhZGRpbmdfZm10X2ViYiA9XG5mdW4gcGFkIGZtdCAtPiBtYXRjaCBwYWQgd2l0aFxuICB8IE5vX3BhZGRpbmcgICAgICAgICAtPiBQYWRkaW5nX2ZtdF9FQkIgKE5vX3BhZGRpbmcsIGZtdClcbiAgfCBMaXRfcGFkZGluZyAocywgdykgLT4gUGFkZGluZ19mbXRfRUJCIChMaXRfcGFkZGluZyAocywgdyksIGZtdClcbiAgfCBBcmdfcGFkZGluZyBzICAgICAgLT4gUGFkZGluZ19mbXRfRUJCIChBcmdfcGFkZGluZyBzLCBmbXQpXG5cbigqIENyZWF0ZSBhIHByZWNpc2lvbl9mbXRfZWJiIGZyb20gYSBwcmVjaXNpb24gYW5kIGEgZm9ybWF0LiAqKVxuKCogQ29weSB0aGUgcHJlY2lzaW9uIHRvIGRpc2pvaW4gdGhlIHR5cGUgcGFyYW1ldGVycyBvZiBhcmd1bWVudCBhbmQgcmVzdWx0LiAqKVxubGV0IG1ha2VfcHJlY2lzaW9uX2ZtdF9lYmIgOiB0eXBlIHggeSAuXG4gICAgKHgsIHkpIHByZWNpc2lvbiAtPiAoXywgXywgXywgXywgXywgXykgZm10IC0+XG4gICAgICAoXywgXywgXywgXywgXykgcHJlY2lzaW9uX2ZtdF9lYmIgPVxuZnVuIHByZWMgZm10IC0+IG1hdGNoIHByZWMgd2l0aFxuICB8IE5vX3ByZWNpc2lvbiAgICAtPiBQcmVjaXNpb25fZm10X0VCQiAoTm9fcHJlY2lzaW9uLCBmbXQpXG4gIHwgTGl0X3ByZWNpc2lvbiBwIC0+IFByZWNpc2lvbl9mbXRfRUJCIChMaXRfcHJlY2lzaW9uIHAsIGZtdClcbiAgfCBBcmdfcHJlY2lzaW9uICAgLT4gUHJlY2lzaW9uX2ZtdF9FQkIgKEFyZ19wcmVjaXNpb24sIGZtdClcblxuKCogQ3JlYXRlIGEgcGFkcHJlY19mbXRfZWJiIGZyb20gYSBwYWRkaW5nLCBhIHByZWNpc2lvbiBhbmQgYSBmb3JtYXQuICopXG4oKiBDb3B5IHRoZSBwYWRkaW5nIGFuZCB0aGUgcHJlY2lzaW9uIHRvIGRpc2pvaW4gdHlwZSBwYXJhbWV0ZXJzIG9mIGFyZ3VtZW50c1xuICAgYW5kIHJlc3VsdC4gKilcbmxldCBtYWtlX3BhZHByZWNfZm10X2ViYiA6IHR5cGUgeCB5IHogdCAuXG4gICAgKHgsIHkpIHBhZGRpbmcgLT4gKHosIHQpIHByZWNpc2lvbiAtPlxuICAgIChfLCBfLCBfLCBfLCBfLCBfKSBmbXQgLT5cbiAgICAoXywgXywgXywgXywgXykgcGFkcHJlY19mbXRfZWJiID1cbmZ1biBwYWQgcHJlYyBmbXQgLT5cbiAgbGV0IFByZWNpc2lvbl9mbXRfRUJCIChwcmVjLCBmbXQnKSA9IG1ha2VfcHJlY2lzaW9uX2ZtdF9lYmIgcHJlYyBmbXQgaW5cbiAgbWF0Y2ggcGFkIHdpdGhcbiAgfCBOb19wYWRkaW5nICAgICAgICAgLT4gUGFkcHJlY19mbXRfRUJCIChOb19wYWRkaW5nLCBwcmVjLCBmbXQnKVxuICB8IExpdF9wYWRkaW5nIChzLCB3KSAtPiBQYWRwcmVjX2ZtdF9FQkIgKExpdF9wYWRkaW5nIChzLCB3KSwgcHJlYywgZm10JylcbiAgfCBBcmdfcGFkZGluZyBzICAgICAgLT4gUGFkcHJlY19mbXRfRUJCIChBcmdfcGFkZGluZyBzLCBwcmVjLCBmbXQnKVxuXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBGb3JtYXQgcGFyc2luZyAqKVxuXG4oKiBQYXJzZSBhIHN0cmluZyByZXByZXNlbnRpbmcgYSBmb3JtYXQgYW5kIGNyZWF0ZSBhIGZtdF9lYmIuICopXG4oKiBSYWlzZSBbRmFpbHVyZV0gaW4gY2FzZSBvZiBpbnZhbGlkIGZvcm1hdC4gKilcbmxldCBmbXRfZWJiX29mX3N0cmluZyA/bGVnYWN5X2JlaGF2aW9yIHN0ciA9XG4gICgqIFBhcmFtZXRlcnMgbmFtaW5nIGNvbnZlbnRpb246ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbiAgKCogICAtIGxpdF9zdGFydDogc3RhcnQgb2YgdGhlIGxpdGVyYWwgc2VxdWVuY2UuICAgICAgICAgICAgICAgICAgICAqKVxuICAoKiAgIC0gc3RyX2luZDogY3VycmVudCBpbmRleCBpbiB0aGUgc3RyaW5nLiAgICAgICAgICAgICAgICAgICAgICAgICopXG4gICgqICAgLSBlbmRfaW5kOiBlbmQgb2YgdGhlIGN1cnJlbnQgKHN1Yi0pZm9ybWF0LiAgICAgICAgICAgICAgICAgICAgKilcbiAgKCogICAtIHBjdF9pbmQ6IGluZGV4IG9mIHRoZSAnJScgaW4gdGhlIGN1cnJlbnQgbWljcm8tZm9ybWF0LiAgICAgICAqKVxuICAoKiAgIC0gemVybzogIGlzIHRoZSAnMCcgZmxhZyBkZWZpbmVkIGluIHRoZSBjdXJyZW50IG1pY3JvLWZvcm1hdC4gICopXG4gICgqICAgLSBtaW51czogaXMgdGhlICctJyBmbGFnIGRlZmluZWQgaW4gdGhlIGN1cnJlbnQgbWljcm8tZm9ybWF0LiAgKilcbiAgKCogICAtIHBsdXM6ICBpcyB0aGUgJysnIGZsYWcgZGVmaW5lZCBpbiB0aGUgY3VycmVudCBtaWNyby1mb3JtYXQuICAqKVxuICAoKiAgIC0gaGFzaDogIGlzIHRoZSAnIycgZmxhZyBkZWZpbmVkIGluIHRoZSBjdXJyZW50IG1pY3JvLWZvcm1hdC4gICopXG4gICgqICAgLSBzcGFjZTogaXMgdGhlICcgJyBmbGFnIGRlZmluZWQgaW4gdGhlIGN1cnJlbnQgbWljcm8tZm9ybWF0LiAgKilcbiAgKCogICAtIGlnbjogICBpcyB0aGUgJ18nIGZsYWcgZGVmaW5lZCBpbiB0aGUgY3VycmVudCBtaWNyby1mb3JtYXQuICAqKVxuICAoKiAgIC0gcGFkOiBwYWRkaW5nIG9mIHRoZSBjdXJyZW50IG1pY3JvLWZvcm1hdC4gICAgICAgICAgICAgICAgICAgICopXG4gICgqICAgLSBwcmVjOiBwcmVjaXNpb24gb2YgdGhlIGN1cnJlbnQgbWljcm8tZm9ybWF0LiAgICAgICAgICAgICAgICAgKilcbiAgKCogICAtIHN5bWI6IGNoYXIgcmVwcmVzZW50aW5nIHRoZSBjb252ZXJzaW9uICgnYycsICdzJywgJ2QnLCAuLi4pLiAqKVxuICAoKiAgIC0gY2hhcl9zZXQ6IHNldCBvZiBjaGFyYWN0ZXJzIGFzIGJpdG1hcCAoc2VlIHNjYW5mICVbLi4uXSkuICAgICopXG5cbiAgbGV0IGxlZ2FjeV9iZWhhdmlvciA9IG1hdGNoIGxlZ2FjeV9iZWhhdmlvciB3aXRoXG4gICAgfCBTb21lIGZsYWcgLT4gZmxhZ1xuICAgIHwgTm9uZSAtPiB0cnVlXG4gICgqICBXaGVuIHRoaXMgZmxhZyBpcyBlbmFibGVkLCB0aGUgZm9ybWF0IHBhcnNlciB0cmllcyB0byBiZWhhdmUgYXNcbiAgICAgIHRoZSA8NC4wMiBpbXBsZW1lbnRhdGlvbnMsIGluIHBhcnRpY3VsYXIgaXQgaWdub3JlcyBtb3N0IGJlbmluZVxuICAgICAgbm9uc2Vuc2ljYWwgZm9ybWF0LiBXaGVuIHRoZSBmbGFnIGlzIGRpc2FibGVkLCBpdCB3aWxsIHJlamVjdCBhbnlcbiAgICAgIGZvcm1hdCB0aGF0IGlzIG5vdCBhY2NlcHRlZCBieSB0aGUgc3BlY2lmaWNhdGlvbi5cblxuICAgICAgQSB0eXBpY2FsIGV4YW1wbGUgd291bGQgYmUgXCIlKyBkXCI6IHNwZWNpZnlpbmcgYm90aCAnKycgKGlmIHRoZVxuICAgICAgbnVtYmVyIGlzIHBvc2l0aXZlLCBwYWQgd2l0aCBhICcrJyB0byBnZXQgdGhlIHNhbWUgd2lkdGggYXNcbiAgICAgIG5lZ2F0aXZlIG51bWJlcnMpIGFuZCAnICcgKGlmIHRoZSBudW1iZXIgaXMgcG9zaXRpdmUsIHBhZCB3aXRoXG4gICAgICBhIHNwYWNlKSBkb2VzIG5vdCBtYWtlIHNlbnNlLCBidXQgdGhlIGxlZ2FjeSAoPCA0LjAyKVxuICAgICAgaW1wbGVtZW50YXRpb24gd2FzIGhhcHB5IHRvIGp1c3QgaWdub3JlIHRoZSBzcGFjZS5cbiAgKilcbiAgaW5cblxuICAoKiBSYWlzZSBbRmFpbHVyZV0gd2l0aCBhIGZyaWVuZGx5IGVycm9yIG1lc3NhZ2UuICopXG4gIGxldCBpbnZhbGlkX2Zvcm1hdF9tZXNzYWdlIHN0cl9pbmQgbXNnID1cbiAgICBmYWlsd2l0aF9tZXNzYWdlXG4gICAgICBcImludmFsaWQgZm9ybWF0ICVTOiBhdCBjaGFyYWN0ZXIgbnVtYmVyICVkLCAlc1wiXG4gICAgICBzdHIgc3RyX2luZCBtc2dcbiAgaW5cblxuICAoKiBVc2VkIHdoZW4gdGhlIGVuZCBvZiB0aGUgZm9ybWF0IChvciB0aGUgY3VycmVudCBzdWItZm9ybWF0KSB3YXMgZW5jb3VudGVyZWRcbiAgICAgIHVuZXhwZWN0ZWRseS4gKilcbiAgbGV0IHVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCBlbmRfaW5kID1cbiAgICBpbnZhbGlkX2Zvcm1hdF9tZXNzYWdlIGVuZF9pbmRcbiAgICAgIFwidW5leHBlY3RlZCBlbmQgb2YgZm9ybWF0XCJcbiAgaW5cblxuICAoKiBVc2VkIGZvciAlMGM6IG5vIG90aGVyIHdpZHRocyBhcmUgaW1wbGVtZW50ZWQgKilcbiAgbGV0IGludmFsaWRfbm9ubnVsbF9jaGFyX3dpZHRoIHN0cl9pbmQgPVxuICAgIGludmFsaWRfZm9ybWF0X21lc3NhZ2Ugc3RyX2luZFxuICAgICAgXCJub24temVybyB3aWR0aHMgYXJlIHVuc3VwcG9ydGVkIGZvciAlYyBjb252ZXJzaW9uc1wiXG4gIGluXG4gICgqIFJhaXNlIFtGYWlsdXJlXSB3aXRoIGEgZnJpZW5kbHkgZXJyb3IgbWVzc2FnZSBhYm91dCBhbiBvcHRpb24gZGVwZW5kZW5jeVxuICAgICBwcm9ibGVtLiAqKVxuICBsZXQgaW52YWxpZF9mb3JtYXRfd2l0aG91dCBzdHJfaW5kIGMgcyA9XG4gICAgZmFpbHdpdGhfbWVzc2FnZVxuICAgICAgXCJpbnZhbGlkIGZvcm1hdCAlUzogYXQgY2hhcmFjdGVyIG51bWJlciAlZCwgJyVjJyB3aXRob3V0ICVzXCJcbiAgICAgIHN0ciBzdHJfaW5kIGMgc1xuICBpblxuXG4gICgqIFJhaXNlIFtGYWlsdXJlXSB3aXRoIGEgZnJpZW5kbHkgZXJyb3IgbWVzc2FnZSBhYm91dCBhbiB1bmV4cGVjdGVkXG4gICAgIGNoYXJhY3Rlci4gKilcbiAgbGV0IGV4cGVjdGVkX2NoYXJhY3RlciBzdHJfaW5kIGV4cGVjdGVkIHJlYWQgPVxuICAgIGZhaWx3aXRoX21lc3NhZ2VcbiAgICAgXCJpbnZhbGlkIGZvcm1hdCAlUzogYXQgY2hhcmFjdGVyIG51bWJlciAlZCwgJXMgZXhwZWN0ZWQsIHJlYWQgJUNcIlxuICAgICAgc3RyIHN0cl9pbmQgZXhwZWN0ZWQgcmVhZFxuICBpblxuXG4gICgqIFBhcnNlIHRoZSBzdHJpbmcgZnJvbSBiZWdfaW5kIChpbmNsdWRlZCkgdG8gZW5kX2luZCAoZXhjbHVkZWQpLiAqKVxuICBsZXQgcmVjIHBhcnNlIDogdHlwZSBlIGYgLiBpbnQgLT4gaW50IC0+IChfLCBfLCBlLCBmKSBmbXRfZWJiID1cbiAgZnVuIGJlZ19pbmQgZW5kX2luZCAtPiBwYXJzZV9saXRlcmFsIGJlZ19pbmQgYmVnX2luZCBlbmRfaW5kXG5cbiAgKCogUmVhZCBsaXRlcmFsIGNoYXJhY3RlcnMgdXAgdG8gJyUnIG9yICdAJyBzcGVjaWFsIGNoYXJhY3RlcnMuICopXG4gIGFuZCBwYXJzZV9saXRlcmFsIDogdHlwZSBlIGYgLiBpbnQgLT4gaW50IC0+IGludCAtPiAoXywgXywgZSwgZikgZm10X2ViYiA9XG4gIGZ1biBsaXRfc3RhcnQgc3RyX2luZCBlbmRfaW5kIC0+XG4gICAgaWYgc3RyX2luZCA9IGVuZF9pbmQgdGhlbiBhZGRfbGl0ZXJhbCBsaXRfc3RhcnQgc3RyX2luZCBFbmRfb2ZfZm9ybWF0IGVsc2VcbiAgICAgIG1hdGNoIHN0ci5bc3RyX2luZF0gd2l0aFxuICAgICAgfCAnJScgLT5cbiAgICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZV9mb3JtYXQgc3RyX2luZCBlbmRfaW5kIGluXG4gICAgICAgIGFkZF9saXRlcmFsIGxpdF9zdGFydCBzdHJfaW5kIGZtdF9yZXN0XG4gICAgICB8ICdAJyAtPlxuICAgICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlX2FmdGVyX2F0IChzdHJfaW5kICsgMSkgZW5kX2luZCBpblxuICAgICAgICBhZGRfbGl0ZXJhbCBsaXRfc3RhcnQgc3RyX2luZCBmbXRfcmVzdFxuICAgICAgfCBfIC0+XG4gICAgICAgIHBhcnNlX2xpdGVyYWwgbGl0X3N0YXJ0IChzdHJfaW5kICsgMSkgZW5kX2luZFxuXG4gICgqIFBhcnNlIGEgZm9ybWF0IGFmdGVyICclJyAqKVxuICBhbmQgcGFyc2VfZm9ybWF0IDogdHlwZSBlIGYgLiBpbnQgLT4gaW50IC0+IChfLCBfLCBlLCBmKSBmbXRfZWJiID1cbiAgZnVuIHBjdF9pbmQgZW5kX2luZCAtPiBwYXJzZV9pZ24gcGN0X2luZCAocGN0X2luZCArIDEpIGVuZF9pbmRcblxuICBhbmQgcGFyc2VfaWduIDogdHlwZSBlIGYgLiBpbnQgLT4gaW50IC0+IGludCAtPiAoXywgXywgZSwgZikgZm10X2ViYiA9XG4gIGZ1biBwY3RfaW5kIHN0cl9pbmQgZW5kX2luZCAtPlxuICAgIGlmIHN0cl9pbmQgPSBlbmRfaW5kIHRoZW4gdW5leHBlY3RlZF9lbmRfb2ZfZm9ybWF0IGVuZF9pbmQ7XG4gICAgbWF0Y2ggc3RyLltzdHJfaW5kXSB3aXRoXG4gICAgICB8ICdfJyAtPiBwYXJzZV9mbGFncyBwY3RfaW5kIChzdHJfaW5kKzEpIGVuZF9pbmQgdHJ1ZVxuICAgICAgfCBfIC0+IHBhcnNlX2ZsYWdzIHBjdF9pbmQgc3RyX2luZCBlbmRfaW5kIGZhbHNlXG5cbiAgYW5kIHBhcnNlX2ZsYWdzIDogdHlwZSBlIGYgLiBpbnQgLT4gaW50IC0+IGludCAtPiBib29sIC0+IChfLCBfLCBlLCBmKSBmbXRfZWJiXG4gID1cbiAgZnVuIHBjdF9pbmQgc3RyX2luZCBlbmRfaW5kIGlnbiAtPlxuICAgIGxldCB6ZXJvID0gcmVmIGZhbHNlIGFuZCBtaW51cyA9IHJlZiBmYWxzZVxuICAgIGFuZCBwbHVzID0gcmVmIGZhbHNlIGFuZCBzcGFjZSA9IHJlZiBmYWxzZVxuICAgIGFuZCBoYXNoID0gcmVmIGZhbHNlIGluXG4gICAgbGV0IHNldF9mbGFnIHN0cl9pbmQgZmxhZyA9XG4gICAgICAoKiBpbiBsZWdhY3kgbW9kZSwgZHVwbGljYXRlIGZsYWdzIGFyZSBhY2NlcHRlZCAqKVxuICAgICAgaWYgIWZsYWcgJiYgbm90IGxlZ2FjeV9iZWhhdmlvciB0aGVuXG4gICAgICAgIGZhaWx3aXRoX21lc3NhZ2VcbiAgICAgICAgICBcImludmFsaWQgZm9ybWF0ICVTOiBhdCBjaGFyYWN0ZXIgbnVtYmVyICVkLCBkdXBsaWNhdGUgZmxhZyAlQ1wiXG4gICAgICAgICAgc3RyIHN0cl9pbmQgc3RyLltzdHJfaW5kXTtcbiAgICAgIGZsYWcgOj0gdHJ1ZTtcbiAgICBpblxuICAgIGxldCByZWMgcmVhZF9mbGFncyBzdHJfaW5kID1cbiAgICAgIGlmIHN0cl9pbmQgPSBlbmRfaW5kIHRoZW4gdW5leHBlY3RlZF9lbmRfb2ZfZm9ybWF0IGVuZF9pbmQ7XG4gICAgICBiZWdpbiBtYXRjaCBzdHIuW3N0cl9pbmRdIHdpdGhcbiAgICAgIHwgJzAnIC0+IHNldF9mbGFnIHN0cl9pbmQgemVybzsgIHJlYWRfZmxhZ3MgKHN0cl9pbmQgKyAxKVxuICAgICAgfCAnLScgLT4gc2V0X2ZsYWcgc3RyX2luZCBtaW51czsgcmVhZF9mbGFncyAoc3RyX2luZCArIDEpXG4gICAgICB8ICcrJyAtPiBzZXRfZmxhZyBzdHJfaW5kIHBsdXM7ICByZWFkX2ZsYWdzIChzdHJfaW5kICsgMSlcbiAgICAgIHwgJyMnIC0+IHNldF9mbGFnIHN0cl9pbmQgaGFzaDsgcmVhZF9mbGFncyAoc3RyX2luZCArIDEpXG4gICAgICB8ICcgJyAtPiBzZXRfZmxhZyBzdHJfaW5kIHNwYWNlOyByZWFkX2ZsYWdzIChzdHJfaW5kICsgMSlcbiAgICAgIHwgXyAtPlxuICAgICAgICBwYXJzZV9wYWRkaW5nIHBjdF9pbmQgc3RyX2luZCBlbmRfaW5kXG4gICAgICAgICAgIXplcm8gIW1pbnVzICFwbHVzICFoYXNoICFzcGFjZSBpZ25cbiAgICAgIGVuZFxuICAgIGluXG4gICAgcmVhZF9mbGFncyBzdHJfaW5kXG5cbiAgKCogVHJ5IHRvIHJlYWQgYSBkaWdpdGFsIG9yIGEgJyonIHBhZGRpbmcuICopXG4gIGFuZCBwYXJzZV9wYWRkaW5nIDogdHlwZSBlIGYgLlxuICAgICAgaW50IC0+IGludCAtPiBpbnQgLT4gYm9vbCAtPiBib29sIC0+IGJvb2wgLT4gYm9vbCAtPiBib29sIC0+IGJvb2wgLT5cbiAgICAgICAgKF8sIF8sIGUsIGYpIGZtdF9lYmIgPVxuICBmdW4gcGN0X2luZCBzdHJfaW5kIGVuZF9pbmQgemVybyBtaW51cyBwbHVzIGhhc2ggc3BhY2UgaWduIC0+XG4gICAgaWYgc3RyX2luZCA9IGVuZF9pbmQgdGhlbiB1bmV4cGVjdGVkX2VuZF9vZl9mb3JtYXQgZW5kX2luZDtcbiAgICBsZXQgcGFkdHkgPSBtYXRjaCB6ZXJvLCBtaW51cyB3aXRoXG4gICAgICB8IGZhbHNlLCBmYWxzZSAtPiBSaWdodFxuICAgICAgfCBmYWxzZSwgdHJ1ZSAgLT4gTGVmdFxuICAgICAgfCAgdHJ1ZSwgZmFsc2UgLT4gWmVyb3NcbiAgICAgIHwgIHRydWUsIHRydWUgIC0+XG4gICAgICAgIGlmIGxlZ2FjeV9iZWhhdmlvciB0aGVuIExlZnRcbiAgICAgICAgZWxzZSBpbmNvbXBhdGlibGVfZmxhZyBwY3RfaW5kIHN0cl9pbmQgJy0nIFwiMFwiIGluXG4gICAgbWF0Y2ggc3RyLltzdHJfaW5kXSB3aXRoXG4gICAgfCAnMCcgLi4gJzknIC0+XG4gICAgICBsZXQgbmV3X2luZCwgd2lkdGggPSBwYXJzZV9wb3NpdGl2ZSBzdHJfaW5kIGVuZF9pbmQgMCBpblxuICAgICAgcGFyc2VfYWZ0ZXJfcGFkZGluZyBwY3RfaW5kIG5ld19pbmQgZW5kX2luZCBtaW51cyBwbHVzIGhhc2ggc3BhY2UgaWduXG4gICAgICAgIChMaXRfcGFkZGluZyAocGFkdHksIHdpZHRoKSlcbiAgICB8ICcqJyAtPlxuICAgICAgcGFyc2VfYWZ0ZXJfcGFkZGluZyBwY3RfaW5kIChzdHJfaW5kICsgMSkgZW5kX2luZCBtaW51cyBwbHVzIGhhc2ggc3BhY2VcbiAgICAgICAgaWduIChBcmdfcGFkZGluZyBwYWR0eSlcbiAgICB8IF8gLT5cbiAgICAgIGJlZ2luIG1hdGNoIHBhZHR5IHdpdGhcbiAgICAgIHwgTGVmdCAgLT5cbiAgICAgICAgaWYgbm90IGxlZ2FjeV9iZWhhdmlvciB0aGVuXG4gICAgICAgICAgaW52YWxpZF9mb3JtYXRfd2l0aG91dCAoc3RyX2luZCAtIDEpICctJyBcInBhZGRpbmdcIjtcbiAgICAgICAgcGFyc2VfYWZ0ZXJfcGFkZGluZyBwY3RfaW5kIHN0cl9pbmQgZW5kX2luZCBtaW51cyBwbHVzIGhhc2ggc3BhY2UgaWduXG4gICAgICAgICAgTm9fcGFkZGluZ1xuICAgICAgfCBaZXJvcyAtPlxuICAgICAgICAgKCogYSAnMCcgcGFkZGluZyBpbmRpY2F0aW9uIG5vdCBmb2xsb3dlZCBieSBhbnl0aGluZyBzaG91bGRcbiAgICAgICAgICAgYmUgaW50ZXJwcmV0ZWQgYXMgYSBSaWdodCBwYWRkaW5nIG9mIHdpZHRoIDAuIFRoaXMgaXMgdXNlZFxuICAgICAgICAgICBieSBzY2FubmluZyBjb252ZXJzaW9ucyAlMHMgYW5kICUwYyAqKVxuICAgICAgICBwYXJzZV9hZnRlcl9wYWRkaW5nIHBjdF9pbmQgc3RyX2luZCBlbmRfaW5kIG1pbnVzIHBsdXMgaGFzaCBzcGFjZSBpZ25cbiAgICAgICAgICAoTGl0X3BhZGRpbmcgKFJpZ2h0LCAwKSlcbiAgICAgIHwgUmlnaHQgLT5cbiAgICAgICAgcGFyc2VfYWZ0ZXJfcGFkZGluZyBwY3RfaW5kIHN0cl9pbmQgZW5kX2luZCBtaW51cyBwbHVzIGhhc2ggc3BhY2UgaWduXG4gICAgICAgICAgTm9fcGFkZGluZ1xuICAgICAgZW5kXG5cbiAgKCogSXMgcHJlY2lzaW9uIGRlZmluZWQ/ICopXG4gIGFuZCBwYXJzZV9hZnRlcl9wYWRkaW5nIDogdHlwZSB4IGUgZiAuXG4gICAgICBpbnQgLT4gaW50IC0+IGludCAtPiBib29sIC0+IGJvb2wgLT4gYm9vbCAtPiBib29sIC0+IGJvb2wgLT5cbiAgICAgICAgKHgsIF8pIHBhZGRpbmcgLT4gKF8sIF8sIGUsIGYpIGZtdF9lYmIgPVxuICBmdW4gcGN0X2luZCBzdHJfaW5kIGVuZF9pbmQgbWludXMgcGx1cyBoYXNoIHNwYWNlIGlnbiBwYWQgLT5cbiAgICBpZiBzdHJfaW5kID0gZW5kX2luZCB0aGVuIHVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCBlbmRfaW5kO1xuICAgIG1hdGNoIHN0ci5bc3RyX2luZF0gd2l0aFxuICAgIHwgJy4nIC0+XG4gICAgICBwYXJzZV9wcmVjaXNpb24gcGN0X2luZCAoc3RyX2luZCArIDEpIGVuZF9pbmQgbWludXMgcGx1cyBoYXNoIHNwYWNlIGlnblxuICAgICAgICBwYWRcbiAgICB8IHN5bWIgLT5cbiAgICAgIHBhcnNlX2NvbnZlcnNpb24gcGN0X2luZCAoc3RyX2luZCArIDEpIGVuZF9pbmQgcGx1cyBoYXNoIHNwYWNlIGlnbiBwYWRcbiAgICAgICAgTm9fcHJlY2lzaW9uIHBhZCBzeW1iXG5cbiAgKCogUmVhZCB0aGUgZGlnaXRhbCBvciAnKicgcHJlY2lzaW9uLiAqKVxuICBhbmQgcGFyc2VfcHJlY2lzaW9uIDogdHlwZSB4IGUgZiAuXG4gICAgICBpbnQgLT4gaW50IC0+IGludCAtPiBib29sIC0+IGJvb2wgLT4gYm9vbCAtPiBib29sIC0+IGJvb2wgLT5cbiAgICAgICAgKHgsIF8pIHBhZGRpbmcgLT4gKF8sIF8sIGUsIGYpIGZtdF9lYmIgPVxuICBmdW4gcGN0X2luZCBzdHJfaW5kIGVuZF9pbmQgbWludXMgcGx1cyBoYXNoIHNwYWNlIGlnbiBwYWQgLT5cbiAgICBpZiBzdHJfaW5kID0gZW5kX2luZCB0aGVuIHVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCBlbmRfaW5kO1xuICAgIGxldCBwYXJzZV9saXRlcmFsIG1pbnVzIHN0cl9pbmQgPVxuICAgICAgbGV0IG5ld19pbmQsIHByZWMgPSBwYXJzZV9wb3NpdGl2ZSBzdHJfaW5kIGVuZF9pbmQgMCBpblxuICAgICAgcGFyc2VfYWZ0ZXJfcHJlY2lzaW9uIHBjdF9pbmQgbmV3X2luZCBlbmRfaW5kIG1pbnVzIHBsdXMgaGFzaCBzcGFjZSBpZ25cbiAgICAgICAgcGFkIChMaXRfcHJlY2lzaW9uIHByZWMpIGluXG4gICAgbWF0Y2ggc3RyLltzdHJfaW5kXSB3aXRoXG4gICAgfCAnMCcgLi4gJzknIC0+IHBhcnNlX2xpdGVyYWwgbWludXMgc3RyX2luZFxuICAgIHwgKCcrJyB8ICctJykgYXMgc3ltYiB3aGVuIGxlZ2FjeV9iZWhhdmlvciAtPlxuICAgICAgKCogTGVnYWN5IG1vZGUgd291bGQgYWNjZXB0IGFuZCBpZ25vcmUgJysnIG9yICctJyBiZWZvcmUgdGhlXG4gICAgICAgICBpbnRlZ2VyIGRlc2NyaWJpbmcgdGhlIGRlc2lyZWQgcHJlY2lzaW9uOyBub3RlIHRoYXQgdGhpc1xuICAgICAgICAgY2Fubm90IGhhcHBlbiBmb3IgcGFkZGluZyB3aWR0aCwgYXMgJysnIGFuZCAnLScgYWxyZWFkeSBoYXZlXG4gICAgICAgICBhIHNlbWFudGljcyB0aGVyZS5cblxuICAgICAgICAgVGhhdCBzYWlkLCB0aGUgaWRlYSAoc3VwcG9ydGVkIGJ5IHRoaXMgdHdlYWspIHRoYXQgd2lkdGggYW5kXG4gICAgICAgICBwcmVjaXNpb24gbGl0ZXJhbHMgYXJlIFwiaW50ZWdlciBsaXRlcmFsc1wiIGluIHRoZSBPQ2FtbCBzZW5zZSBpc1xuICAgICAgICAgc3RpbGwgYmxhdGFudGx5IHdyb25nLCBhcyAxMjNfNDU2IG9yIDB4RkYgYXJlIHJlamVjdGVkLiAqKVxuICAgICAgcGFyc2VfbGl0ZXJhbCAobWludXMgfHwgc3ltYiA9ICctJykgKHN0cl9pbmQgKyAxKVxuICAgIHwgJyonIC0+XG4gICAgICBwYXJzZV9hZnRlcl9wcmVjaXNpb24gcGN0X2luZCAoc3RyX2luZCArIDEpIGVuZF9pbmQgbWludXMgcGx1cyBoYXNoIHNwYWNlXG4gICAgICAgIGlnbiBwYWQgQXJnX3ByZWNpc2lvblxuICAgIHwgXyAtPlxuICAgICAgaWYgbGVnYWN5X2JlaGF2aW9yIHRoZW5cbiAgICAgICAgKCogbm90ZSB0aGF0IGxlZ2FjeSBpbXBsZW1lbnRhdGlvbiBkaWQgbm90IGlnbm9yZSAnLicgd2l0aG91dFxuICAgICAgICAgICBhIG51bWJlciAoYXMgaXQgZG9lcyBmb3IgcGFkZGluZyBpbmRpY2F0aW9ucyksIGJ1dFxuICAgICAgICAgICBpbnRlcnByZXRzIGl0IGFzICcuMCcgKilcbiAgICAgICAgcGFyc2VfYWZ0ZXJfcHJlY2lzaW9uIHBjdF9pbmQgc3RyX2luZCBlbmRfaW5kIG1pbnVzIHBsdXMgaGFzaCBzcGFjZSBpZ25cbiAgICAgICAgICBwYWQgKExpdF9wcmVjaXNpb24gMClcbiAgICAgIGVsc2VcbiAgICAgICAgaW52YWxpZF9mb3JtYXRfd2l0aG91dCAoc3RyX2luZCAtIDEpICcuJyBcInByZWNpc2lvblwiXG5cbiAgKCogVHJ5IHRvIHJlYWQgdGhlIGNvbnZlcnNpb24uICopXG4gIGFuZCBwYXJzZV9hZnRlcl9wcmVjaXNpb24gOiB0eXBlIHggeSB6IHQgZSBmIC5cbiAgICAgIGludCAtPiBpbnQgLT4gaW50IC0+IGJvb2wgLT4gYm9vbCAtPiBib29sIC0+IGJvb2wgLT4gYm9vbCAtPlxuICAgICAgICAoeCwgeSkgcGFkZGluZyAtPiAoeiwgdCkgcHJlY2lzaW9uIC0+IChfLCBfLCBlLCBmKSBmbXRfZWJiID1cbiAgZnVuIHBjdF9pbmQgc3RyX2luZCBlbmRfaW5kIG1pbnVzIHBsdXMgaGFzaCBzcGFjZSBpZ24gcGFkIHByZWMgLT5cbiAgICBpZiBzdHJfaW5kID0gZW5kX2luZCB0aGVuIHVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCBlbmRfaW5kO1xuICAgIGxldCBwYXJzZV9jb252ICh0eXBlIHUpICh0eXBlIHYpIChwYWRwcmVjIDogKHUsIHYpIHBhZGRpbmcpID1cbiAgICAgIHBhcnNlX2NvbnZlcnNpb24gcGN0X2luZCAoc3RyX2luZCArIDEpIGVuZF9pbmQgcGx1cyBoYXNoIHNwYWNlIGlnbiBwYWRcbiAgICAgICAgcHJlYyBwYWRwcmVjIHN0ci5bc3RyX2luZF0gaW5cbiAgICAoKiBpbiBsZWdhY3kgbW9kZSwgc29tZSBmb3JtYXRzICglcyBhbmQgJVMpIGFjY2VwdCBhIHdlaXJkIG1peCBvZlxuICAgICAgIHBhZGRpbmcgYW5kIHByZWNpc2lvbiwgd2hpY2ggaXMgbWVyZ2VkIGFzIGEgc2luZ2xlIHBhZGRpbmdcbiAgICAgICBpbmZvcm1hdGlvbi4gRm9yIGV4YW1wbGUsIGluICUuMTBzIHRoZSBwcmVjaXNpb24gaXMgaW1wbGljaXRseVxuICAgICAgIHVuZGVyc3Rvb2QgYXMgcGFkZGluZyAlMTBzLCBidXQgdGhlIGxlZnQtcGFkZGluZyBjb21wb25lbnQgbWF5XG4gICAgICAgYmUgc3BlY2lmaWVkIGVpdGhlciBhcyBhIGxlZnQgcGFkZGluZyBvciBhIG5lZ2F0aXZlIHByZWNpc2lvbjpcbiAgICAgICAlLS4zcyBhbmQgJS4tM3MgYXJlIGVxdWl2YWxlbnQgdG8gJS0zcyAqKVxuICAgIG1hdGNoIHBhZCB3aXRoXG4gICAgfCBOb19wYWRkaW5nIC0+IChcbiAgICAgIG1hdGNoIG1pbnVzLCBwcmVjIHdpdGhcbiAgICAgICAgfCBfLCBOb19wcmVjaXNpb24gLT4gcGFyc2VfY29udiBOb19wYWRkaW5nXG4gICAgICAgIHwgZmFsc2UsIExpdF9wcmVjaXNpb24gbiAtPiBwYXJzZV9jb252IChMaXRfcGFkZGluZyAoUmlnaHQsIG4pKVxuICAgICAgICB8IHRydWUsIExpdF9wcmVjaXNpb24gbiAtPiBwYXJzZV9jb252IChMaXRfcGFkZGluZyAoTGVmdCwgbikpXG4gICAgICAgIHwgZmFsc2UsIEFyZ19wcmVjaXNpb24gLT4gcGFyc2VfY29udiAoQXJnX3BhZGRpbmcgUmlnaHQpXG4gICAgICAgIHwgdHJ1ZSwgQXJnX3ByZWNpc2lvbiAtPiBwYXJzZV9jb252IChBcmdfcGFkZGluZyBMZWZ0KVxuICAgIClcbiAgICB8IHBhZCAtPiBwYXJzZV9jb252IHBhZFxuXG4gICgqIENhc2UgYW5hbHlzaXMgb24gY29udmVyc2lvbi4gKilcbiAgYW5kIHBhcnNlX2NvbnZlcnNpb24gOiB0eXBlIHggeSB6IHQgdSB2IGUgZiAuXG4gICAgICBpbnQgLT4gaW50IC0+IGludCAtPiBib29sIC0+IGJvb2wgLT4gYm9vbCAtPiBib29sIC0+ICh4LCB5KSBwYWRkaW5nIC0+XG4gICAgICAgICh6LCB0KSBwcmVjaXNpb24gLT4gKHUsIHYpIHBhZGRpbmcgLT4gY2hhciAtPiAoXywgXywgZSwgZikgZm10X2ViYiA9XG4gIGZ1biBwY3RfaW5kIHN0cl9pbmQgZW5kX2luZCBwbHVzIGhhc2ggc3BhY2UgaWduIHBhZCBwcmVjIHBhZHByZWMgc3ltYiAtPlxuICAgICgqIEZsYWdzIHVzZWQgdG8gY2hlY2sgb3B0aW9uIHVzYWdlcy9jb21wYXRpYmlsaXRpZXMuICopXG4gICAgbGV0IHBsdXNfdXNlZCAgPSByZWYgZmFsc2UgYW5kIGhhc2hfdXNlZCA9IHJlZiBmYWxzZVxuICAgIGFuZCBzcGFjZV91c2VkID0gcmVmIGZhbHNlIGFuZCBpZ25fdXNlZCAgID0gcmVmIGZhbHNlXG4gICAgYW5kIHBhZF91c2VkICAgPSByZWYgZmFsc2UgYW5kIHByZWNfdXNlZCAgPSByZWYgZmFsc2UgaW5cblxuICAgICgqIEFjY2VzcyB0byBvcHRpb25zLCB1cGRhdGUgZmxhZ3MuICopXG4gICAgbGV0IGdldF9wbHVzICAgICgpID0gcGx1c191c2VkICA6PSB0cnVlOyBwbHVzXG4gICAgYW5kIGdldF9oYXNoICAgKCkgPSBoYXNoX3VzZWQgOj0gdHJ1ZTsgaGFzaFxuICAgIGFuZCBnZXRfc3BhY2UgICAoKSA9IHNwYWNlX3VzZWQgOj0gdHJ1ZTsgc3BhY2VcbiAgICBhbmQgZ2V0X2lnbiAgICAgKCkgPSBpZ25fdXNlZCAgIDo9IHRydWU7IGlnblxuICAgIGFuZCBnZXRfcGFkICAgICAoKSA9IHBhZF91c2VkICAgOj0gdHJ1ZTsgcGFkXG4gICAgYW5kIGdldF9wcmVjICAgICgpID0gcHJlY191c2VkICA6PSB0cnVlOyBwcmVjXG4gICAgYW5kIGdldF9wYWRwcmVjICgpID0gcGFkX3VzZWQgICA6PSB0cnVlOyBwYWRwcmVjIGluXG5cbiAgICBsZXQgZ2V0X2ludF9wYWQgKCkgOiAoeCx5KSBwYWRkaW5nID1cbiAgICAgICgqICU1LjNkIGlzIGFjY2VwdGVkIGFuZCBtZWFuaW5nZnVsOiBwYWQgdG8gbGVuZ3RoIDUgd2l0aFxuICAgICAgICAgc3BhY2VzLCBidXQgZmlyc3QgcGFkIHdpdGggemVyb3MgdXB0byBsZW5ndGggMyAoMC1wYWRkaW5nXG4gICAgICAgICBpcyB0aGUgaW50ZXJwcmV0YXRpb24gb2YgXCJwcmVjaXNpb25cIiBmb3IgaW50ZWdlciBmb3JtYXRzKS5cblxuICAgICAgICAgJTA1LjNkIGlzIHJlZHVuZGFudDogcGFkIHRvIGxlbmd0aCA1ICp3aXRoIHplcm9zKiwgYnV0XG4gICAgICAgICBmaXJzdCBwYWQgd2l0aCB6ZXJvcy4uLiBUbyBhZGQgaW5zdWx0IHRvIHRoZSBpbmp1cnksIHRoZVxuICAgICAgICAgbGVnYWN5IGltcGxlbWVudGF0aW9uIGlnbm9yZXMgdGhlIDAtcGFkZGluZyBpbmRpY2F0aW9uIGFuZFxuICAgICAgICAgZG9lcyB0aGUgNSBwYWRkaW5nIHdpdGggc3BhY2VzIGluc3RlYWQuIFdlIHJldXNlIHRoaXNcbiAgICAgICAgIGludGVycHJldGF0aW9uIGZvciBjb21wYXRpYmlsaXR5LCBidXQgc3RhdGljYWxseSByZWplY3QgdGhpc1xuICAgICAgICAgZm9ybWF0IHdoZW4gdGhlIGxlZ2FjeSBtb2RlIGlzIGRpc2FibGVkLCB0byBwcm90ZWN0IHN0cmljdFxuICAgICAgICAgdXNlcnMgZnJvbSB0aGlzIGNvcm5lciBjYXNlLiAqKVxuICAgICAgIG1hdGNoIGdldF9wYWQgKCksIGdldF9wcmVjICgpIHdpdGhcbiAgICAgICAgIHwgcGFkLCBOb19wcmVjaXNpb24gLT4gcGFkXG4gICAgICAgICB8IE5vX3BhZGRpbmcsIF8gICAgIC0+IE5vX3BhZGRpbmdcbiAgICAgICAgIHwgTGl0X3BhZGRpbmcgKFplcm9zLCBuKSwgXyAtPlxuICAgICAgICAgICBpZiBsZWdhY3lfYmVoYXZpb3IgdGhlbiBMaXRfcGFkZGluZyAoUmlnaHQsIG4pXG4gICAgICAgICAgIGVsc2UgaW5jb21wYXRpYmxlX2ZsYWcgcGN0X2luZCBzdHJfaW5kICcwJyBcInByZWNpc2lvblwiXG4gICAgICAgICB8IEFyZ19wYWRkaW5nIFplcm9zLCBfIC0+XG4gICAgICAgICAgIGlmIGxlZ2FjeV9iZWhhdmlvciB0aGVuIEFyZ19wYWRkaW5nIFJpZ2h0XG4gICAgICAgICAgIGVsc2UgaW5jb21wYXRpYmxlX2ZsYWcgcGN0X2luZCBzdHJfaW5kICcwJyBcInByZWNpc2lvblwiXG4gICAgICAgICB8IExpdF9wYWRkaW5nIF8gYXMgcGFkLCBfIC0+IHBhZFxuICAgICAgICAgfCBBcmdfcGFkZGluZyBfIGFzIHBhZCwgXyAtPiBwYWQgaW5cblxuICAgICgqIENoZWNrIHRoYXQgcGFkdHkgPD4gWmVyb3MuICopXG4gICAgbGV0IGNoZWNrX25vXzAgc3ltYiAodHlwZSBhIGIpIChwYWQgOiAoYSwgYikgcGFkZGluZykgOiAoYSxiKSBwYWRkaW5nID1cbiAgICAgIG1hdGNoIHBhZCB3aXRoXG4gICAgICB8IE5vX3BhZGRpbmcgLT4gcGFkXG4gICAgICB8IExpdF9wYWRkaW5nICgoTGVmdCB8IFJpZ2h0KSwgXykgLT4gcGFkXG4gICAgICB8IEFyZ19wYWRkaW5nIChMZWZ0IHwgUmlnaHQpIC0+IHBhZFxuICAgICAgfCBMaXRfcGFkZGluZyAoWmVyb3MsIHdpZHRoKSAtPlxuICAgICAgICBpZiBsZWdhY3lfYmVoYXZpb3IgdGhlbiBMaXRfcGFkZGluZyAoUmlnaHQsIHdpZHRoKVxuICAgICAgICBlbHNlIGluY29tcGF0aWJsZV9mbGFnIHBjdF9pbmQgc3RyX2luZCBzeW1iIFwiMFwiXG4gICAgICB8IEFyZ19wYWRkaW5nIFplcm9zIC0+XG4gICAgICAgIGlmIGxlZ2FjeV9iZWhhdmlvciB0aGVuIEFyZ19wYWRkaW5nIFJpZ2h0XG4gICAgICAgIGVsc2UgaW5jb21wYXRpYmxlX2ZsYWcgcGN0X2luZCBzdHJfaW5kIHN5bWIgXCIwXCJcbiAgICBpblxuXG4gICAgKCogR2V0IHBhZGRpbmcgYXMgYSBwYWRfb3B0aW9uIChzZWUgXCIlX1wiLCBcIiV7XCIsIFwiJShcIiBhbmQgXCIlW1wiKS5cbiAgICAgICAobm8gbmVlZCBmb3IgbGVnYWN5IG1vZGUgdHdlYWtpbmcsIHRob3NlIHdlcmUgcmVqZWN0ZWQgYnkgdGhlXG4gICAgICAgbGVnYWN5IHBhcnNlciBhcyB3ZWxsKSAqKVxuICAgIGxldCBvcHRfb2ZfcGFkIGMgKHR5cGUgYSkgKHR5cGUgYikgKHBhZCA6IChhLCBiKSBwYWRkaW5nKSA9IG1hdGNoIHBhZCB3aXRoXG4gICAgICB8IE5vX3BhZGRpbmcgLT4gTm9uZVxuICAgICAgfCBMaXRfcGFkZGluZyAoUmlnaHQsIHdpZHRoKSAtPiBTb21lIHdpZHRoXG4gICAgICB8IExpdF9wYWRkaW5nIChaZXJvcywgd2lkdGgpIC0+XG4gICAgICAgIGlmIGxlZ2FjeV9iZWhhdmlvciB0aGVuIFNvbWUgd2lkdGhcbiAgICAgICAgZWxzZSBpbmNvbXBhdGlibGVfZmxhZyBwY3RfaW5kIHN0cl9pbmQgYyBcIicwJ1wiXG4gICAgICB8IExpdF9wYWRkaW5nIChMZWZ0LCB3aWR0aCkgLT5cbiAgICAgICAgaWYgbGVnYWN5X2JlaGF2aW9yIHRoZW4gU29tZSB3aWR0aFxuICAgICAgICBlbHNlIGluY29tcGF0aWJsZV9mbGFnIHBjdF9pbmQgc3RyX2luZCBjIFwiJy0nXCJcbiAgICAgIHwgQXJnX3BhZGRpbmcgXyAtPiBpbmNvbXBhdGlibGVfZmxhZyBwY3RfaW5kIHN0cl9pbmQgYyBcIicqJ1wiXG4gICAgaW5cbiAgICBsZXQgZ2V0X3BhZF9vcHQgYyA9IG9wdF9vZl9wYWQgYyAoZ2V0X3BhZCAoKSkgaW5cbiAgICBsZXQgZ2V0X3BhZHByZWNfb3B0IGMgPSBvcHRfb2ZfcGFkIGMgKGdldF9wYWRwcmVjICgpKSBpblxuXG4gICAgKCogR2V0IHByZWNpc2lvbiBhcyBhIHByZWNfb3B0aW9uIChzZWUgXCIlX2ZcIikuXG4gICAgICAgKG5vIG5lZWQgZm9yIGxlZ2FjeSBtb2RlIHR3ZWFraW5nLCB0aG9zZSB3ZXJlIHJlamVjdGVkIGJ5IHRoZVxuICAgICAgIGxlZ2FjeSBwYXJzZXIgYXMgd2VsbCkgKilcbiAgICBsZXQgZ2V0X3ByZWNfb3B0ICgpID0gbWF0Y2ggZ2V0X3ByZWMgKCkgd2l0aFxuICAgICAgfCBOb19wcmVjaXNpb24gICAgICAgLT4gTm9uZVxuICAgICAgfCBMaXRfcHJlY2lzaW9uIG5kZWMgLT4gU29tZSBuZGVjXG4gICAgICB8IEFyZ19wcmVjaXNpb24gICAgICAtPiBpbmNvbXBhdGlibGVfZmxhZyBwY3RfaW5kIHN0cl9pbmQgJ18nIFwiJyonXCJcbiAgICBpblxuXG4gICAgbGV0IGZtdF9yZXN1bHQgPSBtYXRjaCBzeW1iIHdpdGhcbiAgICB8ICcsJyAtPlxuICAgICAgcGFyc2Ugc3RyX2luZCBlbmRfaW5kXG4gICAgfCAnYycgLT5cbiAgICAgIGxldCBjaGFyX2Zvcm1hdCBmbXRfcmVzdCA9ICgqICVjICopXG4gICAgICAgIGlmIGdldF9pZ24gKClcbiAgICAgICAgdGhlbiBGbXRfRUJCIChJZ25vcmVkX3BhcmFtIChJZ25vcmVkX2NoYXIsIGZtdF9yZXN0KSlcbiAgICAgICAgZWxzZSBGbXRfRUJCIChDaGFyIGZtdF9yZXN0KVxuICAgICAgaW5cbiAgICAgIGxldCBzY2FuX2Zvcm1hdCBmbXRfcmVzdCA9ICgqICUwYyAqKVxuICAgICAgICBpZiBnZXRfaWduICgpXG4gICAgICAgIHRoZW4gRm10X0VCQiAoSWdub3JlZF9wYXJhbSAoSWdub3JlZF9zY2FuX25leHRfY2hhciwgZm10X3Jlc3QpKVxuICAgICAgICBlbHNlIEZtdF9FQkIgKFNjYW5fbmV4dF9jaGFyIGZtdF9yZXN0KVxuICAgICAgaW5cbiAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2Ugc3RyX2luZCBlbmRfaW5kIGluXG4gICAgICBiZWdpbiBtYXRjaCBnZXRfcGFkX29wdCAnYycgd2l0aFxuICAgICAgICB8IE5vbmUgLT4gY2hhcl9mb3JtYXQgZm10X3Jlc3RcbiAgICAgICAgfCBTb21lIDAgLT4gc2Nhbl9mb3JtYXQgZm10X3Jlc3RcbiAgICAgICAgfCBTb21lIF9uIC0+XG4gICAgICAgICAgIGlmIG5vdCBsZWdhY3lfYmVoYXZpb3JcbiAgICAgICAgICAgdGhlbiBpbnZhbGlkX25vbm51bGxfY2hhcl93aWR0aCBzdHJfaW5kXG4gICAgICAgICAgIGVsc2UgKCogbGVnYWN5IGlnbm9yZXMgJWMgd2lkdGhzICopIGNoYXJfZm9ybWF0IGZtdF9yZXN0XG4gICAgICBlbmRcbiAgICB8ICdDJyAtPlxuICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSBzdHJfaW5kIGVuZF9pbmQgaW5cbiAgICAgIGlmIGdldF9pZ24gKCkgdGhlbiBGbXRfRUJCIChJZ25vcmVkX3BhcmFtIChJZ25vcmVkX2NhbWxfY2hhcixmbXRfcmVzdCkpXG4gICAgICBlbHNlIEZtdF9FQkIgKENhbWxfY2hhciBmbXRfcmVzdClcbiAgICB8ICdzJyAtPlxuICAgICAgbGV0IHBhZCA9IGNoZWNrX25vXzAgc3ltYiAoZ2V0X3BhZHByZWMgKCkpIGluXG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIHN0cl9pbmQgZW5kX2luZCBpblxuICAgICAgaWYgZ2V0X2lnbiAoKSB0aGVuXG4gICAgICAgIGxldCBpZ25vcmVkID0gSWdub3JlZF9zdHJpbmcgKGdldF9wYWRwcmVjX29wdCAnXycpIGluXG4gICAgICAgIEZtdF9FQkIgKElnbm9yZWRfcGFyYW0gKGlnbm9yZWQsIGZtdF9yZXN0KSlcbiAgICAgIGVsc2VcbiAgICAgICAgbGV0IFBhZGRpbmdfZm10X0VCQiAocGFkJywgZm10X3Jlc3QnKSA9XG4gICAgICAgICAgbWFrZV9wYWRkaW5nX2ZtdF9lYmIgcGFkIGZtdF9yZXN0IGluXG4gICAgICAgIEZtdF9FQkIgKFN0cmluZyAocGFkJywgZm10X3Jlc3QnKSlcbiAgICB8ICdTJyAtPlxuICAgICAgbGV0IHBhZCA9IGNoZWNrX25vXzAgc3ltYiAoZ2V0X3BhZHByZWMgKCkpIGluXG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIHN0cl9pbmQgZW5kX2luZCBpblxuICAgICAgaWYgZ2V0X2lnbiAoKSB0aGVuXG4gICAgICAgIGxldCBpZ25vcmVkID0gSWdub3JlZF9jYW1sX3N0cmluZyAoZ2V0X3BhZHByZWNfb3B0ICdfJykgaW5cbiAgICAgICAgRm10X0VCQiAoSWdub3JlZF9wYXJhbSAoaWdub3JlZCwgZm10X3Jlc3QpKVxuICAgICAgZWxzZVxuICAgICAgICBsZXQgUGFkZGluZ19mbXRfRUJCIChwYWQnLCBmbXRfcmVzdCcpID1cbiAgICAgICAgICBtYWtlX3BhZGRpbmdfZm10X2ViYiBwYWQgZm10X3Jlc3QgaW5cbiAgICAgICAgRm10X0VCQiAoQ2FtbF9zdHJpbmcgKHBhZCcsIGZtdF9yZXN0JykpXG4gICAgfCAnZCcgfCAnaScgfCAneCcgfCAnWCcgfCAnbycgfCAndScgLT5cbiAgICAgIGxldCBpY29udiA9IGNvbXB1dGVfaW50X2NvbnYgcGN0X2luZCBzdHJfaW5kIChnZXRfcGx1cyAoKSkgKGdldF9oYXNoICgpKVxuICAgICAgICAoZ2V0X3NwYWNlICgpKSBzeW1iIGluXG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIHN0cl9pbmQgZW5kX2luZCBpblxuICAgICAgaWYgZ2V0X2lnbiAoKSB0aGVuXG4gICAgICAgIGxldCBpZ25vcmVkID0gSWdub3JlZF9pbnQgKGljb252LCBnZXRfcGFkX29wdCAnXycpIGluXG4gICAgICAgIEZtdF9FQkIgKElnbm9yZWRfcGFyYW0gKGlnbm9yZWQsIGZtdF9yZXN0KSlcbiAgICAgIGVsc2VcbiAgICAgICAgbGV0IFBhZHByZWNfZm10X0VCQiAocGFkJywgcHJlYycsIGZtdF9yZXN0JykgPVxuICAgICAgICAgIG1ha2VfcGFkcHJlY19mbXRfZWJiIChnZXRfaW50X3BhZCAoKSkgKGdldF9wcmVjICgpKSBmbXRfcmVzdCBpblxuICAgICAgICBGbXRfRUJCIChJbnQgKGljb252LCBwYWQnLCBwcmVjJywgZm10X3Jlc3QnKSlcbiAgICB8ICdOJyAtPlxuICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSBzdHJfaW5kIGVuZF9pbmQgaW5cbiAgICAgIGxldCBjb3VudGVyID0gVG9rZW5fY291bnRlciBpblxuICAgICAgaWYgZ2V0X2lnbiAoKSB0aGVuXG4gICAgICAgIGxldCBpZ25vcmVkID0gSWdub3JlZF9zY2FuX2dldF9jb3VudGVyIGNvdW50ZXIgaW5cbiAgICAgICAgRm10X0VCQiAoSWdub3JlZF9wYXJhbSAoaWdub3JlZCwgZm10X3Jlc3QpKVxuICAgICAgZWxzZVxuICAgICAgICBGbXRfRUJCIChTY2FuX2dldF9jb3VudGVyIChjb3VudGVyLCBmbXRfcmVzdCkpXG4gICAgfCAnbCcgfCAnbicgfCAnTCcgd2hlbiBzdHJfaW5kPWVuZF9pbmQgfHwgbm90IChpc19pbnRfYmFzZSBzdHIuW3N0cl9pbmRdKSAtPlxuICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSBzdHJfaW5kIGVuZF9pbmQgaW5cbiAgICAgIGxldCBjb3VudGVyID0gY291bnRlcl9vZl9jaGFyIHN5bWIgaW5cbiAgICAgIGlmIGdldF9pZ24gKCkgdGhlblxuICAgICAgICBsZXQgaWdub3JlZCA9IElnbm9yZWRfc2Nhbl9nZXRfY291bnRlciBjb3VudGVyIGluXG4gICAgICAgIEZtdF9FQkIgKElnbm9yZWRfcGFyYW0gKGlnbm9yZWQsIGZtdF9yZXN0KSlcbiAgICAgIGVsc2VcbiAgICAgICAgRm10X0VCQiAoU2Nhbl9nZXRfY291bnRlciAoY291bnRlciwgZm10X3Jlc3QpKVxuICAgIHwgJ2wnIC0+XG4gICAgICBsZXQgaWNvbnYgPVxuICAgICAgICBjb21wdXRlX2ludF9jb252IHBjdF9pbmQgKHN0cl9pbmQgKyAxKSAoZ2V0X3BsdXMgKCkpIChnZXRfaGFzaCAoKSlcbiAgICAgICAgICAoZ2V0X3NwYWNlICgpKSBzdHIuW3N0cl9pbmRdIGluXG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIChzdHJfaW5kICsgMSkgZW5kX2luZCBpblxuICAgICAgaWYgZ2V0X2lnbiAoKSB0aGVuXG4gICAgICAgIGxldCBpZ25vcmVkID0gSWdub3JlZF9pbnQzMiAoaWNvbnYsIGdldF9wYWRfb3B0ICdfJykgaW5cbiAgICAgICAgRm10X0VCQiAoSWdub3JlZF9wYXJhbSAoaWdub3JlZCwgZm10X3Jlc3QpKVxuICAgICAgZWxzZVxuICAgICAgICBsZXQgUGFkcHJlY19mbXRfRUJCIChwYWQnLCBwcmVjJywgZm10X3Jlc3QnKSA9XG4gICAgICAgICAgbWFrZV9wYWRwcmVjX2ZtdF9lYmIgKGdldF9pbnRfcGFkICgpKSAoZ2V0X3ByZWMgKCkpIGZtdF9yZXN0IGluXG4gICAgICAgIEZtdF9FQkIgKEludDMyIChpY29udiwgcGFkJywgcHJlYycsIGZtdF9yZXN0JykpXG4gICAgfCAnbicgLT5cbiAgICAgIGxldCBpY29udiA9XG4gICAgICAgIGNvbXB1dGVfaW50X2NvbnYgcGN0X2luZCAoc3RyX2luZCArIDEpIChnZXRfcGx1cyAoKSlcbiAgICAgICAgICAoZ2V0X2hhc2ggKCkpIChnZXRfc3BhY2UgKCkpIHN0ci5bc3RyX2luZF0gaW5cbiAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2UgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIGluXG4gICAgICBpZiBnZXRfaWduICgpIHRoZW5cbiAgICAgICAgbGV0IGlnbm9yZWQgPSBJZ25vcmVkX25hdGl2ZWludCAoaWNvbnYsIGdldF9wYWRfb3B0ICdfJykgaW5cbiAgICAgICAgRm10X0VCQiAoSWdub3JlZF9wYXJhbSAoaWdub3JlZCwgZm10X3Jlc3QpKVxuICAgICAgZWxzZVxuICAgICAgICBsZXQgUGFkcHJlY19mbXRfRUJCIChwYWQnLCBwcmVjJywgZm10X3Jlc3QnKSA9XG4gICAgICAgICAgbWFrZV9wYWRwcmVjX2ZtdF9lYmIgKGdldF9pbnRfcGFkICgpKSAoZ2V0X3ByZWMgKCkpIGZtdF9yZXN0IGluXG4gICAgICAgIEZtdF9FQkIgKE5hdGl2ZWludCAoaWNvbnYsIHBhZCcsIHByZWMnLCBmbXRfcmVzdCcpKVxuICAgIHwgJ0wnIC0+XG4gICAgICBsZXQgaWNvbnYgPVxuICAgICAgICBjb21wdXRlX2ludF9jb252IHBjdF9pbmQgKHN0cl9pbmQgKyAxKSAoZ2V0X3BsdXMgKCkpIChnZXRfaGFzaCAoKSlcbiAgICAgICAgICAoZ2V0X3NwYWNlICgpKSBzdHIuW3N0cl9pbmRdIGluXG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIChzdHJfaW5kICsgMSkgZW5kX2luZCBpblxuICAgICAgaWYgZ2V0X2lnbiAoKSB0aGVuXG4gICAgICAgIGxldCBpZ25vcmVkID0gSWdub3JlZF9pbnQ2NCAoaWNvbnYsIGdldF9wYWRfb3B0ICdfJykgaW5cbiAgICAgICAgRm10X0VCQiAoSWdub3JlZF9wYXJhbSAoaWdub3JlZCwgZm10X3Jlc3QpKVxuICAgICAgZWxzZVxuICAgICAgICBsZXQgUGFkcHJlY19mbXRfRUJCIChwYWQnLCBwcmVjJywgZm10X3Jlc3QnKSA9XG4gICAgICAgICAgbWFrZV9wYWRwcmVjX2ZtdF9lYmIgKGdldF9pbnRfcGFkICgpKSAoZ2V0X3ByZWMgKCkpIGZtdF9yZXN0IGluXG4gICAgICAgIEZtdF9FQkIgKEludDY0IChpY29udiwgcGFkJywgcHJlYycsIGZtdF9yZXN0JykpXG4gICAgfCAnZicgfCAnZScgfCAnRScgfCAnZycgfCAnRycgfCAnRicgfCAnaCcgfCAnSCcgLT5cbiAgICAgIGxldCBmY29udiA9XG4gICAgICAgIGNvbXB1dGVfZmxvYXRfY29udiBwY3RfaW5kIHN0cl9pbmRcbiAgICAgICAgICAoZ2V0X3BsdXMgKCkpIChnZXRfaGFzaCAoKSkgKGdldF9zcGFjZSAoKSkgc3ltYiBpblxuICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSBzdHJfaW5kIGVuZF9pbmQgaW5cbiAgICAgIGlmIGdldF9pZ24gKCkgdGhlblxuICAgICAgICBsZXQgaWdub3JlZCA9IElnbm9yZWRfZmxvYXQgKGdldF9wYWRfb3B0ICdfJywgZ2V0X3ByZWNfb3B0ICgpKSBpblxuICAgICAgICBGbXRfRUJCIChJZ25vcmVkX3BhcmFtIChpZ25vcmVkLCBmbXRfcmVzdCkpXG4gICAgICBlbHNlXG4gICAgICAgIGxldCBQYWRwcmVjX2ZtdF9FQkIgKHBhZCcsIHByZWMnLCBmbXRfcmVzdCcpID1cbiAgICAgICAgICBtYWtlX3BhZHByZWNfZm10X2ViYiAoZ2V0X3BhZCAoKSkgKGdldF9wcmVjICgpKSBmbXRfcmVzdCBpblxuICAgICAgICBGbXRfRUJCIChGbG9hdCAoZmNvbnYsIHBhZCcsIHByZWMnLCBmbXRfcmVzdCcpKVxuICAgIHwgJ2InIHwgJ0InIC0+XG4gICAgICBsZXQgcGFkID0gY2hlY2tfbm9fMCBzeW1iIChnZXRfcGFkcHJlYyAoKSkgaW5cbiAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2Ugc3RyX2luZCBlbmRfaW5kIGluXG4gICAgICBpZiBnZXRfaWduICgpIHRoZW5cbiAgICAgICAgbGV0IGlnbm9yZWQgPSBJZ25vcmVkX2Jvb2wgKGdldF9wYWRwcmVjX29wdCAnXycpIGluXG4gICAgICAgIEZtdF9FQkIgKElnbm9yZWRfcGFyYW0gKGlnbm9yZWQsIGZtdF9yZXN0KSlcbiAgICAgIGVsc2VcbiAgICAgICAgbGV0IFBhZGRpbmdfZm10X0VCQiAocGFkJywgZm10X3Jlc3QnKSA9XG4gICAgICAgICAgbWFrZV9wYWRkaW5nX2ZtdF9lYmIgcGFkIGZtdF9yZXN0IGluXG4gICAgICAgIEZtdF9FQkIgKEJvb2wgKHBhZCcsIGZtdF9yZXN0JykpXG4gICAgfCAnYScgLT5cbiAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2Ugc3RyX2luZCBlbmRfaW5kIGluXG4gICAgICBGbXRfRUJCIChBbHBoYSBmbXRfcmVzdClcbiAgICB8ICd0JyAtPlxuICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSBzdHJfaW5kIGVuZF9pbmQgaW5cbiAgICAgIEZtdF9FQkIgKFRoZXRhIGZtdF9yZXN0KVxuICAgIHwgJ3InIC0+XG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIHN0cl9pbmQgZW5kX2luZCBpblxuICAgICAgaWYgZ2V0X2lnbiAoKSB0aGVuIEZtdF9FQkIgKElnbm9yZWRfcGFyYW0gKElnbm9yZWRfcmVhZGVyLCBmbXRfcmVzdCkpXG4gICAgICBlbHNlIEZtdF9FQkIgKFJlYWRlciBmbXRfcmVzdClcbiAgICB8ICchJyAtPlxuICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSBzdHJfaW5kIGVuZF9pbmQgaW5cbiAgICAgIEZtdF9FQkIgKEZsdXNoIGZtdF9yZXN0KVxuICAgIHwgKCclJyB8ICdAJykgYXMgYyAtPlxuICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSBzdHJfaW5kIGVuZF9pbmQgaW5cbiAgICAgIEZtdF9FQkIgKENoYXJfbGl0ZXJhbCAoYywgZm10X3Jlc3QpKVxuICAgIHwgJ3snIC0+XG4gICAgICBsZXQgc3ViX2VuZCA9IHNlYXJjaF9zdWJmb3JtYXRfZW5kIHN0cl9pbmQgZW5kX2luZCAnfScgaW5cbiAgICAgIGxldCBGbXRfRUJCIHN1Yl9mbXQgPSBwYXJzZSBzdHJfaW5kIHN1Yl9lbmQgaW5cbiAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2UgKHN1Yl9lbmQgKyAyKSBlbmRfaW5kIGluXG4gICAgICBsZXQgc3ViX2ZtdHR5ID0gZm10dHlfb2ZfZm10IHN1Yl9mbXQgaW5cbiAgICAgIGlmIGdldF9pZ24gKCkgdGhlblxuICAgICAgICBsZXQgaWdub3JlZCA9IElnbm9yZWRfZm9ybWF0X2FyZyAoZ2V0X3BhZF9vcHQgJ18nLCBzdWJfZm10dHkpIGluXG4gICAgICAgIEZtdF9FQkIgKElnbm9yZWRfcGFyYW0gKGlnbm9yZWQsIGZtdF9yZXN0KSlcbiAgICAgIGVsc2VcbiAgICAgICAgRm10X0VCQiAoRm9ybWF0X2FyZyAoZ2V0X3BhZF9vcHQgJ3snLCBzdWJfZm10dHksIGZtdF9yZXN0KSlcbiAgICB8ICcoJyAtPlxuICAgICAgbGV0IHN1Yl9lbmQgPSBzZWFyY2hfc3ViZm9ybWF0X2VuZCBzdHJfaW5kIGVuZF9pbmQgJyknIGluXG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIChzdWJfZW5kICsgMikgZW5kX2luZCBpblxuICAgICAgbGV0IEZtdF9FQkIgc3ViX2ZtdCA9IHBhcnNlIHN0cl9pbmQgc3ViX2VuZCBpblxuICAgICAgbGV0IHN1Yl9mbXR0eSA9IGZtdHR5X29mX2ZtdCBzdWJfZm10IGluXG4gICAgICBpZiBnZXRfaWduICgpIHRoZW5cbiAgICAgICAgbGV0IGlnbm9yZWQgPSBJZ25vcmVkX2Zvcm1hdF9zdWJzdCAoZ2V0X3BhZF9vcHQgJ18nLCBzdWJfZm10dHkpIGluXG4gICAgICAgIEZtdF9FQkIgKElnbm9yZWRfcGFyYW0gKGlnbm9yZWQsIGZtdF9yZXN0KSlcbiAgICAgIGVsc2VcbiAgICAgICAgRm10X0VCQiAoRm9ybWF0X3N1YnN0IChnZXRfcGFkX29wdCAnKCcsIHN1Yl9mbXR0eSwgZm10X3Jlc3QpKVxuICAgIHwgJ1snIC0+XG4gICAgICBsZXQgbmV4dF9pbmQsIGNoYXJfc2V0ID0gcGFyc2VfY2hhcl9zZXQgc3RyX2luZCBlbmRfaW5kIGluXG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIG5leHRfaW5kIGVuZF9pbmQgaW5cbiAgICAgIGlmIGdldF9pZ24gKCkgdGhlblxuICAgICAgICBsZXQgaWdub3JlZCA9IElnbm9yZWRfc2Nhbl9jaGFyX3NldCAoZ2V0X3BhZF9vcHQgJ18nLCBjaGFyX3NldCkgaW5cbiAgICAgICAgRm10X0VCQiAoSWdub3JlZF9wYXJhbSAoaWdub3JlZCwgZm10X3Jlc3QpKVxuICAgICAgZWxzZVxuICAgICAgICBGbXRfRUJCIChTY2FuX2NoYXJfc2V0IChnZXRfcGFkX29wdCAnWycsIGNoYXJfc2V0LCBmbXRfcmVzdCkpXG4gICAgfCAnLScgfCAnKycgfCAnIycgfCAnICcgfCAnXycgLT5cbiAgICAgIGZhaWx3aXRoX21lc3NhZ2VcbiAgICAgICAgXCJpbnZhbGlkIGZvcm1hdCAlUzogYXQgY2hhcmFjdGVyIG51bWJlciAlZCwgXFxcbiAgICAgICAgIGZsYWcgJUMgaXMgb25seSBhbGxvd2VkIGFmdGVyIHRoZSAnJSUnLCBiZWZvcmUgcGFkZGluZyBhbmQgcHJlY2lzaW9uXCJcbiAgICAgICAgc3RyIHBjdF9pbmQgc3ltYlxuICAgIHwgXyAtPlxuICAgICAgZmFpbHdpdGhfbWVzc2FnZVxuICAgICAgICBcImludmFsaWQgZm9ybWF0ICVTOiBhdCBjaGFyYWN0ZXIgbnVtYmVyICVkLCBcXFxuICAgICAgICAgaW52YWxpZCBjb252ZXJzaW9uIFxcXCIlJSVjXFxcIlwiIHN0ciAoc3RyX2luZCAtIDEpIHN5bWJcbiAgICBpblxuICAgICgqIENoZWNrIGZvciB1bnVzZWQgb3B0aW9ucywgYW5kIHJlamVjdCB0aGVtIGFzIGluY29tcGF0aWJsZS5cblxuICAgICAgIFN1Y2ggY2hlY2tzIG5lZWQgdG8gYmUgZGlzYWJsZWQgaW4gbGVnYWN5IG1vZGUsIGFzIHRoZSBsZWdhY3lcbiAgICAgICBwYXJzZXIgc2lsZW50bHkgaWdub3JlZCBpbmNvbXBhdGlibGUgZmxhZ3MuICopXG4gICAgaWYgbm90IGxlZ2FjeV9iZWhhdmlvciB0aGVuIGJlZ2luXG4gICAgaWYgbm90ICFwbHVzX3VzZWQgJiYgcGx1cyB0aGVuXG4gICAgICBpbmNvbXBhdGlibGVfZmxhZyBwY3RfaW5kIHN0cl9pbmQgc3ltYiBcIicrJ1wiO1xuICAgIGlmIG5vdCAhaGFzaF91c2VkICYmIGhhc2ggdGhlblxuICAgICAgaW5jb21wYXRpYmxlX2ZsYWcgcGN0X2luZCBzdHJfaW5kIHN5bWIgXCInIydcIjtcbiAgICBpZiBub3QgIXNwYWNlX3VzZWQgJiYgc3BhY2UgdGhlblxuICAgICAgaW5jb21wYXRpYmxlX2ZsYWcgcGN0X2luZCBzdHJfaW5kIHN5bWIgXCInICdcIjtcbiAgICBpZiBub3QgIXBhZF91c2VkICAmJiBQYWRkaW5nX0VCQiBwYWQgPD4gUGFkZGluZ19FQkIgTm9fcGFkZGluZyB0aGVuXG4gICAgICBpbmNvbXBhdGlibGVfZmxhZyBwY3RfaW5kIHN0cl9pbmQgc3ltYiBcImBwYWRkaW5nJ1wiO1xuICAgIGlmIG5vdCAhcHJlY191c2VkICYmIFByZWNpc2lvbl9FQkIgcHJlYyA8PiBQcmVjaXNpb25fRUJCIE5vX3ByZWNpc2lvbiB0aGVuXG4gICAgICBpbmNvbXBhdGlibGVfZmxhZyBwY3RfaW5kIHN0cl9pbmQgKGlmIGlnbiB0aGVuICdfJyBlbHNlIHN5bWIpXG4gICAgICAgIFwiYHByZWNpc2lvbidcIjtcbiAgICBpZiBpZ24gJiYgcGx1cyB0aGVuIGluY29tcGF0aWJsZV9mbGFnIHBjdF9pbmQgc3RyX2luZCAnXycgXCInKydcIjtcbiAgICBlbmQ7XG4gICAgKCogdGhpcyBsYXN0IHRlc3QgbXVzdCBub3QgYmUgZGlzYWJsZWQgaW4gbGVnYWN5IG1vZGUsXG4gICAgICAgYXMgaWdub3JpbmcgaXQgd291bGQgdHlwaWNhbGx5IHJlc3VsdCBpbiBhIGRpZmZlcmVudCB0eXBpbmdcbiAgICAgICB0aGFuIHdoYXQgdGhlIGxlZ2FjeSBwYXJzZXIgdXNlZCAqKVxuICAgIGlmIG5vdCAhaWduX3VzZWQgJiYgaWduIHRoZW5cbiAgICAgIGJlZ2luIG1hdGNoIHN5bWIgd2l0aFxuICAgICAgICAoKiBhcmd1bWVudC1sZXNzIGZvcm1hdHMgY2FuIHNhZmVseSBiZSBpZ25vcmVkIGluIGxlZ2FjeSBtb2RlICopXG4gICAgICAgIHwgKCdAJyB8ICclJyB8ICchJyB8ICcsJykgd2hlbiBsZWdhY3lfYmVoYXZpb3IgLT4gKClcbiAgICAgICAgfCBfIC0+XG4gICAgICAgICAgaW5jb21wYXRpYmxlX2ZsYWcgcGN0X2luZCBzdHJfaW5kIHN5bWIgXCInXydcIlxuICAgICAgZW5kO1xuICAgIGZtdF9yZXN1bHRcblxuICAoKiBQYXJzZSBmb3JtYXR0aW5nIGluZm9ybWF0aW9uIChhZnRlciAnQCcpLiAqKVxuICBhbmQgcGFyc2VfYWZ0ZXJfYXQgOiB0eXBlIGUgZiAuIGludCAtPiBpbnQgLT4gKF8sIF8sIGUsIGYpIGZtdF9lYmIgPVxuICBmdW4gc3RyX2luZCBlbmRfaW5kIC0+XG4gICAgaWYgc3RyX2luZCA9IGVuZF9pbmQgdGhlbiBGbXRfRUJCIChDaGFyX2xpdGVyYWwgKCdAJywgRW5kX29mX2Zvcm1hdCkpXG4gICAgZWxzZVxuICAgICAgbWF0Y2ggc3RyLltzdHJfaW5kXSB3aXRoXG4gICAgICB8ICdbJyAtPlxuICAgICAgICBwYXJzZV90YWcgZmFsc2UgKHN0cl9pbmQgKyAxKSBlbmRfaW5kXG4gICAgICB8ICddJyAtPlxuICAgICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIChzdHJfaW5kICsgMSkgZW5kX2luZCBpblxuICAgICAgICBGbXRfRUJCIChGb3JtYXR0aW5nX2xpdCAoQ2xvc2VfYm94LCBmbXRfcmVzdCkpXG4gICAgICB8ICd7JyAtPlxuICAgICAgICBwYXJzZV90YWcgdHJ1ZSAoc3RyX2luZCArIDEpIGVuZF9pbmRcbiAgICAgIHwgJ30nIC0+XG4gICAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2UgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIGluXG4gICAgICAgIEZtdF9FQkIgKEZvcm1hdHRpbmdfbGl0IChDbG9zZV90YWcsIGZtdF9yZXN0KSlcbiAgICAgIHwgJywnIC0+XG4gICAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2UgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIGluXG4gICAgICAgIEZtdF9FQkIgKEZvcm1hdHRpbmdfbGl0IChCcmVhayAoXCJALFwiLCAwLCAwKSwgZm10X3Jlc3QpKVxuICAgICAgfCAnICcgLT5cbiAgICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSAoc3RyX2luZCArIDEpIGVuZF9pbmQgaW5cbiAgICAgICAgRm10X0VCQiAoRm9ybWF0dGluZ19saXQgKEJyZWFrIChcIkAgXCIsIDEsIDApLCBmbXRfcmVzdCkpXG4gICAgICB8ICc7JyAtPlxuICAgICAgICBwYXJzZV9nb29kX2JyZWFrIChzdHJfaW5kICsgMSkgZW5kX2luZFxuICAgICAgfCAnPycgLT5cbiAgICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSAoc3RyX2luZCArIDEpIGVuZF9pbmQgaW5cbiAgICAgICAgRm10X0VCQiAoRm9ybWF0dGluZ19saXQgKEZGbHVzaCwgZm10X3Jlc3QpKVxuICAgICAgfCAnXFxuJyAtPlxuICAgICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIChzdHJfaW5kICsgMSkgZW5kX2luZCBpblxuICAgICAgICBGbXRfRUJCIChGb3JtYXR0aW5nX2xpdCAoRm9yY2VfbmV3bGluZSwgZm10X3Jlc3QpKVxuICAgICAgfCAnLicgLT5cbiAgICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSAoc3RyX2luZCArIDEpIGVuZF9pbmQgaW5cbiAgICAgICAgRm10X0VCQiAoRm9ybWF0dGluZ19saXQgKEZsdXNoX25ld2xpbmUsIGZtdF9yZXN0KSlcbiAgICAgIHwgJzwnIC0+XG4gICAgICAgIHBhcnNlX21hZ2ljX3NpemUgKHN0cl9pbmQgKyAxKSBlbmRfaW5kXG4gICAgICB8ICdAJyAtPlxuICAgICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIChzdHJfaW5kICsgMSkgZW5kX2luZCBpblxuICAgICAgICBGbXRfRUJCIChGb3JtYXR0aW5nX2xpdCAoRXNjYXBlZF9hdCwgZm10X3Jlc3QpKVxuICAgICAgfCAnJScgd2hlbiBzdHJfaW5kICsgMSA8IGVuZF9pbmQgJiYgc3RyLltzdHJfaW5kICsgMV0gPSAnJScgLT5cbiAgICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSAoc3RyX2luZCArIDIpIGVuZF9pbmQgaW5cbiAgICAgICAgRm10X0VCQiAoRm9ybWF0dGluZ19saXQgKEVzY2FwZWRfcGVyY2VudCwgZm10X3Jlc3QpKVxuICAgICAgfCAnJScgLT5cbiAgICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSBzdHJfaW5kIGVuZF9pbmQgaW5cbiAgICAgICAgRm10X0VCQiAoQ2hhcl9saXRlcmFsICgnQCcsIGZtdF9yZXN0KSlcbiAgICAgIHwgYyAtPlxuICAgICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIChzdHJfaW5kICsgMSkgZW5kX2luZCBpblxuICAgICAgICBGbXRfRUJCIChGb3JtYXR0aW5nX2xpdCAoU2Nhbl9pbmRpYyBjLCBmbXRfcmVzdCkpXG5cbiAgKCogVHJ5IHRvIHJlYWQgdGhlIG9wdGlvbmFsIDxuYW1lPiBhZnRlciBcIkB7XCIgb3IgXCJAW1wiLiAqKVxuICBhbmQgcGFyc2VfdGFnIDogdHlwZSBlIGYgLiBib29sIC0+IGludCAtPiBpbnQgLT4gKF8sIF8sIGUsIGYpIGZtdF9lYmIgPVxuICBmdW4gaXNfb3Blbl90YWcgc3RyX2luZCBlbmRfaW5kIC0+XG4gICAgdHJ5XG4gICAgICBpZiBzdHJfaW5kID0gZW5kX2luZCB0aGVuIHJhaXNlIE5vdF9mb3VuZDtcbiAgICAgIG1hdGNoIHN0ci5bc3RyX2luZF0gd2l0aFxuICAgICAgfCAnPCcgLT5cbiAgICAgICAgbGV0IGluZCA9IFN0cmluZy5pbmRleF9mcm9tIHN0ciAoc3RyX2luZCArIDEpICc+JyBpblxuICAgICAgICBpZiBpbmQgPj0gZW5kX2luZCB0aGVuIHJhaXNlIE5vdF9mb3VuZDtcbiAgICAgICAgbGV0IHN1Yl9zdHIgPSBTdHJpbmcuc3ViIHN0ciBzdHJfaW5kIChpbmQgLSBzdHJfaW5kICsgMSkgaW5cbiAgICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSAoaW5kICsgMSkgZW5kX2luZCBpblxuICAgICAgICBsZXQgRm10X0VCQiBzdWJfZm10ID0gcGFyc2Ugc3RyX2luZCAoaW5kICsgMSkgaW5cbiAgICAgICAgbGV0IHN1Yl9mb3JtYXQgPSBGb3JtYXQgKHN1Yl9mbXQsIHN1Yl9zdHIpIGluXG4gICAgICAgIGxldCBmb3JtYXR0aW5nID1cbiAgICAgICAgICBpZiBpc19vcGVuX3RhZyB0aGVuIE9wZW5fdGFnIHN1Yl9mb3JtYXQgZWxzZSBPcGVuX2JveCBzdWJfZm9ybWF0IGluXG4gICAgICAgIEZtdF9FQkIgKEZvcm1hdHRpbmdfZ2VuIChmb3JtYXR0aW5nLCBmbXRfcmVzdCkpXG4gICAgICB8IF8gLT5cbiAgICAgICAgcmFpc2UgTm90X2ZvdW5kXG4gICAgd2l0aCBOb3RfZm91bmQgLT5cbiAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2Ugc3RyX2luZCBlbmRfaW5kIGluXG4gICAgICBsZXQgc3ViX2Zvcm1hdCA9IEZvcm1hdCAoRW5kX29mX2Zvcm1hdCwgXCJcIikgaW5cbiAgICAgIGxldCBmb3JtYXR0aW5nID1cbiAgICAgICAgaWYgaXNfb3Blbl90YWcgdGhlbiBPcGVuX3RhZyBzdWJfZm9ybWF0IGVsc2UgT3Blbl9ib3ggc3ViX2Zvcm1hdCBpblxuICAgICAgRm10X0VCQiAoRm9ybWF0dGluZ19nZW4gKGZvcm1hdHRpbmcsIGZtdF9yZXN0KSlcblxuICAoKiBUcnkgdG8gcmVhZCB0aGUgb3B0aW9uYWwgPHdpZHRoIG9mZnNldD4gYWZ0ZXIgXCJAO1wiLiAqKVxuICBhbmQgcGFyc2VfZ29vZF9icmVhayA6IHR5cGUgZSBmIC4gaW50IC0+IGludCAtPiAoXywgXywgZSwgZikgZm10X2ViYiA9XG4gIGZ1biBzdHJfaW5kIGVuZF9pbmQgLT5cbiAgICBsZXQgbmV4dF9pbmQsIGZvcm1hdHRpbmdfbGl0ID1cbiAgICAgIHRyeVxuICAgICAgICBpZiBzdHJfaW5kID0gZW5kX2luZCB8fCBzdHIuW3N0cl9pbmRdIDw+ICc8JyB0aGVuIHJhaXNlIE5vdF9mb3VuZDtcbiAgICAgICAgbGV0IHN0cl9pbmRfMSA9IHBhcnNlX3NwYWNlcyAoc3RyX2luZCArIDEpIGVuZF9pbmQgaW5cbiAgICAgICAgbWF0Y2ggc3RyLltzdHJfaW5kXzFdIHdpdGhcbiAgICAgICAgfCAnMCcgLi4gJzknIHwgJy0nIC0+IChcbiAgICAgICAgICBsZXQgc3RyX2luZF8yLCB3aWR0aCA9IHBhcnNlX2ludGVnZXIgc3RyX2luZF8xIGVuZF9pbmQgaW5cbiAgICAgICAgICAgIGxldCBzdHJfaW5kXzMgPSBwYXJzZV9zcGFjZXMgc3RyX2luZF8yIGVuZF9pbmQgaW5cbiAgICAgICAgICAgIG1hdGNoIHN0ci5bc3RyX2luZF8zXSB3aXRoXG4gICAgICAgICAgICAgIHwgJz4nIC0+XG4gICAgICAgICAgICAgICAgbGV0IHMgPSBTdHJpbmcuc3ViIHN0ciAoc3RyX2luZC0yKSAoc3RyX2luZF8zLXN0cl9pbmQrMykgaW5cbiAgICAgICAgICAgICAgICBzdHJfaW5kXzMgKyAxLCBCcmVhayAocywgd2lkdGgsIDApXG4gICAgICAgICAgICAgIHwgJzAnIC4uICc5JyB8ICctJyAtPlxuICAgICAgICAgICAgICAgIGxldCBzdHJfaW5kXzQsIG9mZnNldCA9IHBhcnNlX2ludGVnZXIgc3RyX2luZF8zIGVuZF9pbmQgaW5cbiAgICAgICAgICAgICAgICBsZXQgc3RyX2luZF81ID0gcGFyc2Vfc3BhY2VzIHN0cl9pbmRfNCBlbmRfaW5kIGluXG4gICAgICAgICAgICAgICAgaWYgc3RyLltzdHJfaW5kXzVdIDw+ICc+JyB0aGVuIHJhaXNlIE5vdF9mb3VuZDtcbiAgICAgICAgICAgICAgICBsZXQgcyA9IFN0cmluZy5zdWIgc3RyIChzdHJfaW5kLTIpIChzdHJfaW5kXzUtc3RyX2luZCszKSBpblxuICAgICAgICAgICAgICAgIHN0cl9pbmRfNSArIDEsIEJyZWFrIChzLCB3aWR0aCwgb2Zmc2V0KVxuICAgICAgICAgICAgICB8IF8gLT4gcmFpc2UgTm90X2ZvdW5kXG4gICAgICAgIClcbiAgICAgICAgfCBfIC0+IHJhaXNlIE5vdF9mb3VuZFxuICAgICAgd2l0aCBOb3RfZm91bmQgfCBGYWlsdXJlIF8gLT5cbiAgICAgICAgc3RyX2luZCwgQnJlYWsgKFwiQDtcIiwgMSwgMClcbiAgICBpblxuICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2UgbmV4dF9pbmQgZW5kX2luZCBpblxuICAgIEZtdF9FQkIgKEZvcm1hdHRpbmdfbGl0IChmb3JtYXR0aW5nX2xpdCwgZm10X3Jlc3QpKVxuXG4gICgqIFBhcnNlIHRoZSBzaXplIGluIGEgPG4+LiAqKVxuICBhbmQgcGFyc2VfbWFnaWNfc2l6ZSA6IHR5cGUgZSBmIC4gaW50IC0+IGludCAtPiAoXywgXywgZSwgZikgZm10X2ViYiA9XG4gIGZ1biBzdHJfaW5kIGVuZF9pbmQgLT5cbiAgICBtYXRjaFxuICAgICAgdHJ5XG4gICAgICAgIGxldCBzdHJfaW5kXzEgPSBwYXJzZV9zcGFjZXMgc3RyX2luZCBlbmRfaW5kIGluXG4gICAgICAgIG1hdGNoIHN0ci5bc3RyX2luZF8xXSB3aXRoXG4gICAgICAgIHwgJzAnIC4uICc5JyB8ICctJyAtPlxuICAgICAgICAgIGxldCBzdHJfaW5kXzIsIHNpemUgPSBwYXJzZV9pbnRlZ2VyIHN0cl9pbmRfMSBlbmRfaW5kIGluXG4gICAgICAgICAgbGV0IHN0cl9pbmRfMyA9IHBhcnNlX3NwYWNlcyBzdHJfaW5kXzIgZW5kX2luZCBpblxuICAgICAgICAgIGlmIHN0ci5bc3RyX2luZF8zXSA8PiAnPicgdGhlbiByYWlzZSBOb3RfZm91bmQ7XG4gICAgICAgICAgbGV0IHMgPSBTdHJpbmcuc3ViIHN0ciAoc3RyX2luZCAtIDIpIChzdHJfaW5kXzMgLSBzdHJfaW5kICsgMykgaW5cbiAgICAgICAgICBTb21lIChzdHJfaW5kXzMgKyAxLCBNYWdpY19zaXplIChzLCBzaXplKSlcbiAgICAgICAgfCBfIC0+IE5vbmVcbiAgICAgIHdpdGggTm90X2ZvdW5kIHwgRmFpbHVyZSBfIC0+XG4gICAgICAgIE5vbmVcbiAgICB3aXRoXG4gICAgfCBTb21lIChuZXh0X2luZCwgZm9ybWF0dGluZ19saXQpIC0+XG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIG5leHRfaW5kIGVuZF9pbmQgaW5cbiAgICAgIEZtdF9FQkIgKEZvcm1hdHRpbmdfbGl0IChmb3JtYXR0aW5nX2xpdCwgZm10X3Jlc3QpKVxuICAgIHwgTm9uZSAtPlxuICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSBzdHJfaW5kIGVuZF9pbmQgaW5cbiAgICAgIEZtdF9FQkIgKEZvcm1hdHRpbmdfbGl0IChTY2FuX2luZGljICc8JywgZm10X3Jlc3QpKVxuXG4gICgqIFBhcnNlIGFuZCBjb25zdHJ1Y3QgYSBjaGFyIHNldC4gKilcbiAgYW5kIHBhcnNlX2NoYXJfc2V0IHN0cl9pbmQgZW5kX2luZCA9XG4gICAgaWYgc3RyX2luZCA9IGVuZF9pbmQgdGhlbiB1bmV4cGVjdGVkX2VuZF9vZl9mb3JtYXQgZW5kX2luZDtcblxuICAgIGxldCBjaGFyX3NldCA9IGNyZWF0ZV9jaGFyX3NldCAoKSBpblxuICAgIGxldCBhZGRfY2hhciBjID1cbiAgICAgIGFkZF9pbl9jaGFyX3NldCBjaGFyX3NldCBjO1xuICAgIGluXG4gICAgbGV0IGFkZF9yYW5nZSBjIGMnID1cbiAgICAgIGZvciBpID0gaW50X29mX2NoYXIgYyB0byBpbnRfb2ZfY2hhciBjJyBkb1xuICAgICAgICBhZGRfaW5fY2hhcl9zZXQgY2hhcl9zZXQgKGNoYXJfb2ZfaW50IGkpO1xuICAgICAgZG9uZTtcbiAgICBpblxuXG4gICAgbGV0IGZhaWxfc2luZ2xlX3BlcmNlbnQgc3RyX2luZCA9XG4gICAgICBmYWlsd2l0aF9tZXNzYWdlXG4gICAgICAgIFwiaW52YWxpZCBmb3JtYXQgJVM6ICclJScgYWxvbmUgaXMgbm90IGFjY2VwdGVkIGluIGNoYXJhY3RlciBzZXRzLCBcXFxuICAgICAgICAgdXNlICUlJSUgaW5zdGVhZCBhdCBwb3NpdGlvbiAlZC5cIiBzdHIgc3RyX2luZFxuICAgIGluXG5cbiAgICAoKiBQYXJzZSB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIGEgY2hhciBzZXQuICopXG4gICAgbGV0IHJlYyBwYXJzZV9jaGFyX3NldF9zdGFydCBzdHJfaW5kIGVuZF9pbmQgPVxuICAgICAgaWYgc3RyX2luZCA9IGVuZF9pbmQgdGhlbiB1bmV4cGVjdGVkX2VuZF9vZl9mb3JtYXQgZW5kX2luZDtcbiAgICAgIGxldCBjID0gc3RyLltzdHJfaW5kXSBpblxuICAgICAgcGFyc2VfY2hhcl9zZXRfYWZ0ZXJfY2hhciAoc3RyX2luZCArIDEpIGVuZF9pbmQgY1xuXG4gICAgKCogUGFyc2UgdGhlIGNvbnRlbnQgb2YgYSBjaGFyIHNldCB1bnRpbCB0aGUgZmlyc3QgJ10nLiAqKVxuICAgIGFuZCBwYXJzZV9jaGFyX3NldF9jb250ZW50IHN0cl9pbmQgZW5kX2luZCA9XG4gICAgICBpZiBzdHJfaW5kID0gZW5kX2luZCB0aGVuIHVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCBlbmRfaW5kO1xuICAgICAgbWF0Y2ggc3RyLltzdHJfaW5kXSB3aXRoXG4gICAgICB8ICddJyAtPlxuICAgICAgICBzdHJfaW5kICsgMVxuICAgICAgfCAnLScgLT5cbiAgICAgICAgYWRkX2NoYXIgJy0nO1xuICAgICAgICBwYXJzZV9jaGFyX3NldF9jb250ZW50IChzdHJfaW5kICsgMSkgZW5kX2luZFxuICAgICAgfCBjIC0+XG4gICAgICAgIHBhcnNlX2NoYXJfc2V0X2FmdGVyX2NoYXIgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIGNcblxuICAgICgqIFRlc3QgZm9yIHJhbmdlIGluIGNoYXIgc2V0LiAqKVxuICAgIGFuZCBwYXJzZV9jaGFyX3NldF9hZnRlcl9jaGFyIHN0cl9pbmQgZW5kX2luZCBjID1cbiAgICAgIGlmIHN0cl9pbmQgPSBlbmRfaW5kIHRoZW4gdW5leHBlY3RlZF9lbmRfb2ZfZm9ybWF0IGVuZF9pbmQ7XG4gICAgICBtYXRjaCBzdHIuW3N0cl9pbmRdIHdpdGhcbiAgICAgIHwgJ10nIC0+XG4gICAgICAgIGFkZF9jaGFyIGM7XG4gICAgICAgIHN0cl9pbmQgKyAxXG4gICAgICB8ICctJyAtPlxuICAgICAgICBwYXJzZV9jaGFyX3NldF9hZnRlcl9taW51cyAoc3RyX2luZCArIDEpIGVuZF9pbmQgY1xuICAgICAgfCAoJyUnIHwgJ0AnKSBhcyBjJyB3aGVuIGMgPSAnJScgLT5cbiAgICAgICAgYWRkX2NoYXIgYyc7XG4gICAgICAgIHBhcnNlX2NoYXJfc2V0X2NvbnRlbnQgKHN0cl9pbmQgKyAxKSBlbmRfaW5kXG4gICAgICB8IGMnIC0+XG4gICAgICAgIGlmIGMgPSAnJScgdGhlbiBmYWlsX3NpbmdsZV9wZXJjZW50IHN0cl9pbmQ7XG4gICAgICAgICgqIG5vdGUgdGhhdCAnQCcgYWxvbmUgaXMgYWNjZXB0ZWQsIGFzIGRvbmUgYnkgdGhlIGxlZ2FjeVxuICAgICAgICAgICBpbXBsZW1lbnRhdGlvbjsgdGhlIGRvY3VtZW50YXRpb24gc3BlY2lmaWNhbGx5IHJlcXVpcmVzICVAXG4gICAgICAgICAgIHNvIHdlIGNvdWxkIHdhcm4gb24gdGhhdCAqKVxuICAgICAgICBhZGRfY2hhciBjO1xuICAgICAgICBwYXJzZV9jaGFyX3NldF9hZnRlcl9jaGFyIChzdHJfaW5kICsgMSkgZW5kX2luZCBjJ1xuXG4gICAgKCogTWFuYWdlIHJhbmdlIGluIGNoYXIgc2V0IChleGNlcHQgaWYgdGhlICctJyB0aGUgbGFzdCBjaGFyIGJlZm9yZSAnXScpICopXG4gICAgYW5kIHBhcnNlX2NoYXJfc2V0X2FmdGVyX21pbnVzIHN0cl9pbmQgZW5kX2luZCBjID1cbiAgICAgIGlmIHN0cl9pbmQgPSBlbmRfaW5kIHRoZW4gdW5leHBlY3RlZF9lbmRfb2ZfZm9ybWF0IGVuZF9pbmQ7XG4gICAgICBtYXRjaCBzdHIuW3N0cl9pbmRdIHdpdGhcbiAgICAgIHwgJ10nIC0+XG4gICAgICAgIGFkZF9jaGFyIGM7XG4gICAgICAgIGFkZF9jaGFyICctJztcbiAgICAgICAgc3RyX2luZCArIDFcbiAgICAgIHwgJyUnIC0+XG4gICAgICAgIGlmIHN0cl9pbmQgKyAxID0gZW5kX2luZCB0aGVuIHVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCBlbmRfaW5kO1xuICAgICAgICBiZWdpbiBtYXRjaCBzdHIuW3N0cl9pbmQgKyAxXSB3aXRoXG4gICAgICAgICAgfCAoJyUnIHwgJ0AnKSBhcyBjJyAtPlxuICAgICAgICAgICAgYWRkX3JhbmdlIGMgYyc7XG4gICAgICAgICAgICBwYXJzZV9jaGFyX3NldF9jb250ZW50IChzdHJfaW5kICsgMikgZW5kX2luZFxuICAgICAgICAgIHwgXyAtPiBmYWlsX3NpbmdsZV9wZXJjZW50IHN0cl9pbmRcbiAgICAgICAgZW5kXG4gICAgICB8IGMnIC0+XG4gICAgICAgIGFkZF9yYW5nZSBjIGMnO1xuICAgICAgICBwYXJzZV9jaGFyX3NldF9jb250ZW50IChzdHJfaW5kICsgMSkgZW5kX2luZFxuICAgIGluXG4gICAgbGV0IHN0cl9pbmQsIHJldmVyc2UgPVxuICAgICAgaWYgc3RyX2luZCA9IGVuZF9pbmQgdGhlbiB1bmV4cGVjdGVkX2VuZF9vZl9mb3JtYXQgZW5kX2luZDtcbiAgICAgIG1hdGNoIHN0ci5bc3RyX2luZF0gd2l0aFxuICAgICAgICB8ICdeJyAtPiBzdHJfaW5kICsgMSwgdHJ1ZVxuICAgICAgICB8IF8gLT4gc3RyX2luZCwgZmFsc2UgaW5cbiAgICBsZXQgbmV4dF9pbmQgPSBwYXJzZV9jaGFyX3NldF9zdGFydCBzdHJfaW5kIGVuZF9pbmQgaW5cbiAgICBsZXQgY2hhcl9zZXQgPSBmcmVlemVfY2hhcl9zZXQgY2hhcl9zZXQgaW5cbiAgICBuZXh0X2luZCwgKGlmIHJldmVyc2UgdGhlbiByZXZfY2hhcl9zZXQgY2hhcl9zZXQgZWxzZSBjaGFyX3NldClcblxuICAoKiBDb25zdW1lIGFsbCBuZXh0IHNwYWNlcywgcmFpc2UgYW4gRmFpbHVyZSBpZiBlbmRfaW5kIGlzIHJlYWNoZWQuICopXG4gIGFuZCBwYXJzZV9zcGFjZXMgc3RyX2luZCBlbmRfaW5kID1cbiAgICBpZiBzdHJfaW5kID0gZW5kX2luZCB0aGVuIHVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCBlbmRfaW5kO1xuICAgIGlmIHN0ci5bc3RyX2luZF0gPSAnICcgdGhlbiBwYXJzZV9zcGFjZXMgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIGVsc2Ugc3RyX2luZFxuXG4gICgqIFJlYWQgYSBwb3NpdGl2ZSBpbnRlZ2VyIGZyb20gdGhlIHN0cmluZywgcmFpc2UgYSBGYWlsdXJlIGlmIGVuZF9pbmQgaXNcbiAgICAgcmVhY2hlZC4gKilcbiAgYW5kIHBhcnNlX3Bvc2l0aXZlIHN0cl9pbmQgZW5kX2luZCBhY2MgPVxuICAgIGlmIHN0cl9pbmQgPSBlbmRfaW5kIHRoZW4gdW5leHBlY3RlZF9lbmRfb2ZfZm9ybWF0IGVuZF9pbmQ7XG4gICAgbWF0Y2ggc3RyLltzdHJfaW5kXSB3aXRoXG4gICAgfCAnMCcgLi4gJzknIGFzIGMgLT5cbiAgICAgIGxldCBuZXdfYWNjID0gYWNjICogMTAgKyAoaW50X29mX2NoYXIgYyAtIGludF9vZl9jaGFyICcwJykgaW5cbiAgICAgIGlmIG5ld19hY2MgPiBTeXMubWF4X3N0cmluZ19sZW5ndGggdGhlblxuICAgICAgICBmYWlsd2l0aF9tZXNzYWdlXG4gICAgICAgICAgXCJpbnZhbGlkIGZvcm1hdCAlUzogaW50ZWdlciAlZCBpcyBncmVhdGVyIHRoYW4gdGhlIGxpbWl0ICVkXCJcbiAgICAgICAgICBzdHIgbmV3X2FjYyBTeXMubWF4X3N0cmluZ19sZW5ndGhcbiAgICAgIGVsc2VcbiAgICAgICAgcGFyc2VfcG9zaXRpdmUgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIG5ld19hY2NcbiAgICB8IF8gLT4gc3RyX2luZCwgYWNjXG5cbiAgKCogUmVhZCBhIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIGludGVnZXIgZnJvbSB0aGUgc3RyaW5nLCByYWlzZSBhIEZhaWx1cmVcbiAgICAgaWYgZW5kX2luZCBpcyByZWFjaGVkLiAqKVxuICBhbmQgcGFyc2VfaW50ZWdlciBzdHJfaW5kIGVuZF9pbmQgPVxuICAgIGlmIHN0cl9pbmQgPSBlbmRfaW5kIHRoZW4gdW5leHBlY3RlZF9lbmRfb2ZfZm9ybWF0IGVuZF9pbmQ7XG4gICAgbWF0Y2ggc3RyLltzdHJfaW5kXSB3aXRoXG4gICAgfCAnMCcgLi4gJzknIC0+IHBhcnNlX3Bvc2l0aXZlIHN0cl9pbmQgZW5kX2luZCAwXG4gICAgfCAnLScgLT4gKFxuICAgICAgaWYgc3RyX2luZCArIDEgPSBlbmRfaW5kIHRoZW4gdW5leHBlY3RlZF9lbmRfb2ZfZm9ybWF0IGVuZF9pbmQ7XG4gICAgICBtYXRjaCBzdHIuW3N0cl9pbmQgKyAxXSB3aXRoXG4gICAgICB8ICcwJyAuLiAnOScgLT5cbiAgICAgICAgbGV0IG5leHRfaW5kLCBuID0gcGFyc2VfcG9zaXRpdmUgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIDAgaW5cbiAgICAgICAgbmV4dF9pbmQsIC1uXG4gICAgICB8IGMgLT5cbiAgICAgICAgZXhwZWN0ZWRfY2hhcmFjdGVyIChzdHJfaW5kICsgMSkgXCJkaWdpdFwiIGNcbiAgICApXG4gICAgfCBfIC0+IGFzc2VydCBmYWxzZVxuXG4gICgqIEFkZCBhIGxpdGVyYWwgdG8gYSBmb3JtYXQgZnJvbSBhIGxpdGVyYWwgY2hhcmFjdGVyIHN1Yi1zZXF1ZW5jZS4gKilcbiAgYW5kIGFkZF9saXRlcmFsIDogdHlwZSBhIGQgZSBmIC5cbiAgICAgIGludCAtPiBpbnQgLT4gKGEsIF8sIF8sIGQsIGUsIGYpIGZtdCAtPlxuICAgICAgKF8sIF8sIGUsIGYpIGZtdF9lYmIgPVxuICBmdW4gbGl0X3N0YXJ0IHN0cl9pbmQgZm10IC0+IG1hdGNoIHN0cl9pbmQgLSBsaXRfc3RhcnQgd2l0aFxuICAgIHwgMCAgICAtPiBGbXRfRUJCIGZtdFxuICAgIHwgMSAgICAtPiBGbXRfRUJCIChDaGFyX2xpdGVyYWwgKHN0ci5bbGl0X3N0YXJ0XSwgZm10KSlcbiAgICB8IHNpemUgLT4gRm10X0VCQiAoU3RyaW5nX2xpdGVyYWwgKFN0cmluZy5zdWIgc3RyIGxpdF9zdGFydCBzaXplLCBmbXQpKVxuXG4gICgqIFNlYXJjaCB0aGUgZW5kIG9mIHRoZSBjdXJyZW50IHN1Yi1mb3JtYXRcbiAgICAgKGkuZS4gdGhlIGNvcnJlc3BvbmRpbmcgXCIlfVwiIG9yIFwiJSlcIikgKilcbiAgYW5kIHNlYXJjaF9zdWJmb3JtYXRfZW5kIHN0cl9pbmQgZW5kX2luZCBjID1cbiAgICBpZiBzdHJfaW5kID0gZW5kX2luZCB0aGVuXG4gICAgICBmYWlsd2l0aF9tZXNzYWdlXG4gICAgICAgIFwiaW52YWxpZCBmb3JtYXQgJVM6IHVuY2xvc2VkIHN1Yi1mb3JtYXQsIFxcXG4gICAgICAgICBleHBlY3RlZCBcXFwiJSUlY1xcXCIgYXQgY2hhcmFjdGVyIG51bWJlciAlZFwiIHN0ciBjIGVuZF9pbmQ7XG4gICAgbWF0Y2ggc3RyLltzdHJfaW5kXSB3aXRoXG4gICAgfCAnJScgLT5cbiAgICAgIGlmIHN0cl9pbmQgKyAxID0gZW5kX2luZCB0aGVuIHVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCBlbmRfaW5kO1xuICAgICAgaWYgc3RyLltzdHJfaW5kICsgMV0gPSBjIHRoZW4gKCogRW5kIG9mIGZvcm1hdCBmb3VuZCAqKSBzdHJfaW5kIGVsc2VcbiAgICAgICAgYmVnaW4gbWF0Y2ggc3RyLltzdHJfaW5kICsgMV0gd2l0aFxuICAgICAgICB8ICdfJyAtPlxuICAgICAgICAgICgqIFNlYXJjaCBmb3IgXCIlXyhcIiBvciBcIiVfe1wiLiAqKVxuICAgICAgICAgIGlmIHN0cl9pbmQgKyAyID0gZW5kX2luZCB0aGVuIHVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCBlbmRfaW5kO1xuICAgICAgICAgIGJlZ2luIG1hdGNoIHN0ci5bc3RyX2luZCArIDJdIHdpdGhcbiAgICAgICAgICB8ICd7JyAtPlxuICAgICAgICAgICAgbGV0IHN1Yl9lbmQgPSBzZWFyY2hfc3ViZm9ybWF0X2VuZCAoc3RyX2luZCArIDMpIGVuZF9pbmQgJ30nIGluXG4gICAgICAgICAgICBzZWFyY2hfc3ViZm9ybWF0X2VuZCAoc3ViX2VuZCArIDIpIGVuZF9pbmQgY1xuICAgICAgICAgIHwgJygnIC0+XG4gICAgICAgICAgICBsZXQgc3ViX2VuZCA9IHNlYXJjaF9zdWJmb3JtYXRfZW5kIChzdHJfaW5kICsgMykgZW5kX2luZCAnKScgaW5cbiAgICAgICAgICAgIHNlYXJjaF9zdWJmb3JtYXRfZW5kIChzdWJfZW5kICsgMikgZW5kX2luZCBjXG4gICAgICAgICAgfCBfIC0+IHNlYXJjaF9zdWJmb3JtYXRfZW5kIChzdHJfaW5kICsgMykgZW5kX2luZCBjXG4gICAgICAgICAgZW5kXG4gICAgICAgIHwgJ3snIC0+XG4gICAgICAgICAgKCogJXsuLi4lfSBzdWItZm9ybWF0IGZvdW5kLiAqKVxuICAgICAgICAgIGxldCBzdWJfZW5kID0gc2VhcmNoX3N1YmZvcm1hdF9lbmQgKHN0cl9pbmQgKyAyKSBlbmRfaW5kICd9JyBpblxuICAgICAgICAgIHNlYXJjaF9zdWJmb3JtYXRfZW5kIChzdWJfZW5kICsgMikgZW5kX2luZCBjXG4gICAgICAgIHwgJygnIC0+XG4gICAgICAgICAgKCogJSguLi4lKSBzdWItZm9ybWF0IGZvdW5kLiAqKVxuICAgICAgICAgIGxldCBzdWJfZW5kID0gc2VhcmNoX3N1YmZvcm1hdF9lbmQgKHN0cl9pbmQgKyAyKSBlbmRfaW5kICcpJyBpblxuICAgICAgICAgIHNlYXJjaF9zdWJmb3JtYXRfZW5kIChzdWJfZW5kICsgMikgZW5kX2luZCBjXG4gICAgICAgIHwgJ30nIC0+XG4gICAgICAgICAgKCogRXJyb3I6ICUoLi4uJX0uICopXG4gICAgICAgICAgZXhwZWN0ZWRfY2hhcmFjdGVyIChzdHJfaW5kICsgMSkgXCJjaGFyYWN0ZXIgJyknXCIgJ30nXG4gICAgICAgIHwgJyknIC0+XG4gICAgICAgICAgKCogRXJyb3I6ICV7Li4uJSkuICopXG4gICAgICAgICAgZXhwZWN0ZWRfY2hhcmFjdGVyIChzdHJfaW5kICsgMSkgXCJjaGFyYWN0ZXIgJ30nXCIgJyknXG4gICAgICAgIHwgXyAtPlxuICAgICAgICAgIHNlYXJjaF9zdWJmb3JtYXRfZW5kIChzdHJfaW5kICsgMikgZW5kX2luZCBjXG4gICAgICAgIGVuZFxuICAgIHwgXyAtPiBzZWFyY2hfc3ViZm9ybWF0X2VuZCAoc3RyX2luZCArIDEpIGVuZF9pbmQgY1xuXG4gICgqIENoZWNrIGlmIHN5bWIgaXMgYSB2YWxpZCBpbnQgY29udmVyc2lvbiBhZnRlciBcIiVsXCIsIFwiJW5cIiBvciBcIiVMXCIgKilcbiAgYW5kIGlzX2ludF9iYXNlIHN5bWIgPSBtYXRjaCBzeW1iIHdpdGhcbiAgICB8ICdkJyB8ICdpJyB8ICd4JyB8ICdYJyB8ICdvJyB8ICd1JyAtPiB0cnVlXG4gICAgfCBfIC0+IGZhbHNlXG5cbiAgKCogQ29udmVydCBhIGNoYXIgKGwsIG4gb3IgTCkgdG8gaXRzIGFzc29jaWF0ZWQgY291bnRlci4gKilcbiAgYW5kIGNvdW50ZXJfb2ZfY2hhciBzeW1iID0gbWF0Y2ggc3ltYiB3aXRoXG4gICAgfCAnbCcgLT4gTGluZV9jb3VudGVyICB8ICduJyAtPiBDaGFyX2NvdW50ZXJcbiAgICB8ICdMJyAtPiBUb2tlbl9jb3VudGVyIHwgXyAtPiBhc3NlcnQgZmFsc2VcblxuICAoKiBDb252ZXJ0IChwbHVzLCBzeW1iKSB0byBpdHMgYXNzb2NpYXRlZCBpbnRfY29udi4gKilcbiAgYW5kIGNvbXB1dGVfaW50X2NvbnYgcGN0X2luZCBzdHJfaW5kIHBsdXMgaGFzaCBzcGFjZSBzeW1iID1cbiAgICBtYXRjaCBwbHVzLCBoYXNoLCBzcGFjZSwgc3ltYiB3aXRoXG4gICAgfCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAnZCcgLT4gSW50X2QgIHwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgJ2knIC0+IEludF9pXG4gICAgfCBmYWxzZSwgZmFsc2UsICB0cnVlLCAnZCcgLT4gSW50X3NkIHwgZmFsc2UsIGZhbHNlLCAgdHJ1ZSwgJ2knIC0+IEludF9zaVxuICAgIHwgIHRydWUsIGZhbHNlLCBmYWxzZSwgJ2QnIC0+IEludF9wZCB8ICB0cnVlLCBmYWxzZSwgZmFsc2UsICdpJyAtPiBJbnRfcGlcbiAgICB8IGZhbHNlLCBmYWxzZSwgZmFsc2UsICd4JyAtPiBJbnRfeCAgfCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAnWCcgLT4gSW50X1hcbiAgICB8IGZhbHNlLCAgdHJ1ZSwgZmFsc2UsICd4JyAtPiBJbnRfQ3ggfCBmYWxzZSwgIHRydWUsIGZhbHNlLCAnWCcgLT4gSW50X0NYXG4gICAgfCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAnbycgLT4gSW50X29cbiAgICB8IGZhbHNlLCAgdHJ1ZSwgZmFsc2UsICdvJyAtPiBJbnRfQ29cbiAgICB8IGZhbHNlLCBmYWxzZSwgZmFsc2UsICd1JyAtPiBJbnRfdVxuICAgIHwgZmFsc2UsICB0cnVlLCBmYWxzZSwgJ2QnIC0+IEludF9DZFxuICAgIHwgZmFsc2UsICB0cnVlLCBmYWxzZSwgJ2knIC0+IEludF9DaVxuICAgIHwgZmFsc2UsICB0cnVlLCBmYWxzZSwgJ3UnIC0+IEludF9DdVxuICAgIHwgXywgdHJ1ZSwgXywgJ3gnIHdoZW4gbGVnYWN5X2JlaGF2aW9yIC0+IEludF9DeFxuICAgIHwgXywgdHJ1ZSwgXywgJ1gnIHdoZW4gbGVnYWN5X2JlaGF2aW9yIC0+IEludF9DWFxuICAgIHwgXywgdHJ1ZSwgXywgJ28nIHdoZW4gbGVnYWN5X2JlaGF2aW9yIC0+IEludF9Db1xuICAgIHwgXywgdHJ1ZSwgXywgKCdkJyB8ICdpJyB8ICd1JykgLT5cbiAgICAgIGlmIGxlZ2FjeV9iZWhhdmlvciB0aGVuICgqIGlnbm9yZSAqKVxuICAgICAgICBjb21wdXRlX2ludF9jb252IHBjdF9pbmQgc3RyX2luZCBwbHVzIGZhbHNlIHNwYWNlIHN5bWJcbiAgICAgIGVsc2UgaW5jb21wYXRpYmxlX2ZsYWcgcGN0X2luZCBzdHJfaW5kIHN5bWIgXCInIydcIlxuICAgIHwgdHJ1ZSwgXywgdHJ1ZSwgXyAtPlxuICAgICAgaWYgbGVnYWN5X2JlaGF2aW9yIHRoZW5cbiAgICAgICAgKCogcGx1cyBhbmQgc3BhY2U6IGxlZ2FjeSBpbXBsZW1lbnRhdGlvbiBwcmVmZXJzIHBsdXMgKilcbiAgICAgICAgY29tcHV0ZV9pbnRfY29udiBwY3RfaW5kIHN0cl9pbmQgcGx1cyBoYXNoIGZhbHNlIHN5bWJcbiAgICAgIGVsc2UgaW5jb21wYXRpYmxlX2ZsYWcgcGN0X2luZCBzdHJfaW5kICcgJyBcIicrJ1wiXG4gICAgfCBmYWxzZSwgXywgdHJ1ZSwgXyAgICAtPlxuICAgICAgaWYgbGVnYWN5X2JlaGF2aW9yIHRoZW4gKCogaWdub3JlICopXG4gICAgICAgIGNvbXB1dGVfaW50X2NvbnYgcGN0X2luZCBzdHJfaW5kIHBsdXMgaGFzaCBmYWxzZSBzeW1iXG4gICAgICBlbHNlIGluY29tcGF0aWJsZV9mbGFnIHBjdF9pbmQgc3RyX2luZCBzeW1iIFwiJyAnXCJcbiAgICB8IHRydWUsIF8sIGZhbHNlLCBfICAgIC0+XG4gICAgICBpZiBsZWdhY3lfYmVoYXZpb3IgdGhlbiAoKiBpZ25vcmUgKilcbiAgICAgICAgY29tcHV0ZV9pbnRfY29udiBwY3RfaW5kIHN0cl9pbmQgZmFsc2UgaGFzaCBzcGFjZSBzeW1iXG4gICAgICBlbHNlIGluY29tcGF0aWJsZV9mbGFnIHBjdF9pbmQgc3RyX2luZCBzeW1iIFwiJysnXCJcbiAgICB8IGZhbHNlLCBfLCBmYWxzZSwgXyAtPiBhc3NlcnQgZmFsc2VcblxuICAoKiBDb252ZXJ0IChwbHVzLCBzcGFjZSwgc3ltYikgdG8gaXRzIGFzc29jaWF0ZWQgZmxvYXRfY29udi4gKilcbiAgYW5kIGNvbXB1dGVfZmxvYXRfY29udiBwY3RfaW5kIHN0cl9pbmQgcGx1cyBoYXNoIHNwYWNlIHN5bWIgPVxuICAgIGxldCBmbGFnID0gbWF0Y2ggcGx1cywgc3BhY2Ugd2l0aFxuICAgIHwgZmFsc2UsIGZhbHNlIC0+IEZsb2F0X2ZsYWdfXG4gICAgfCBmYWxzZSwgIHRydWUgLT4gRmxvYXRfZmxhZ19zXG4gICAgfCAgdHJ1ZSwgZmFsc2UgLT4gRmxvYXRfZmxhZ19wXG4gICAgfCAgdHJ1ZSwgIHRydWUgLT5cbiAgICAgICgqIHBsdXMgYW5kIHNwYWNlOiBsZWdhY3kgaW1wbGVtZW50YXRpb24gcHJlZmVycyBwbHVzICopXG4gICAgICBpZiBsZWdhY3lfYmVoYXZpb3IgdGhlbiBGbG9hdF9mbGFnX3BcbiAgICAgIGVsc2UgaW5jb21wYXRpYmxlX2ZsYWcgcGN0X2luZCBzdHJfaW5kICcgJyBcIicrJ1wiIGluXG4gICAgbGV0IGtpbmQgPSBtYXRjaCBoYXNoLCBzeW1iIHdpdGhcbiAgICB8IF8sICdmJyAtPiBGbG9hdF9mXG4gICAgfCBfLCAnZScgLT4gRmxvYXRfZVxuICAgIHwgXywgJ0UnIC0+IEZsb2F0X0VcbiAgICB8IF8sICdnJyAtPiBGbG9hdF9nXG4gICAgfCBfLCAnRycgLT4gRmxvYXRfR1xuICAgIHwgXywgJ2gnIC0+IEZsb2F0X2hcbiAgICB8IF8sICdIJyAtPiBGbG9hdF9IXG4gICAgfCBmYWxzZSwgJ0YnIC0+IEZsb2F0X0ZcbiAgICB8IHRydWUsICdGJyAtPiBGbG9hdF9DRlxuICAgIHwgXyAtPiBhc3NlcnQgZmFsc2UgaW5cbiAgICBmbGFnLCBraW5kXG5cbiAgKCogUmFpc2UgW0ZhaWx1cmVdIHdpdGggYSBmcmllbmRseSBlcnJvciBtZXNzYWdlIGFib3V0IGluY29tcGF0aWJsZSBvcHRpb25zLiopXG4gIGFuZCBpbmNvbXBhdGlibGVfZmxhZyA6IHR5cGUgYSAuIGludCAtPiBpbnQgLT4gY2hhciAtPiBzdHJpbmcgLT4gYSA9XG4gICAgZnVuIHBjdF9pbmQgc3RyX2luZCBzeW1iIG9wdGlvbiAtPlxuICAgICAgbGV0IHN1YmZtdCA9IFN0cmluZy5zdWIgc3RyIHBjdF9pbmQgKHN0cl9pbmQgLSBwY3RfaW5kKSBpblxuICAgICAgZmFpbHdpdGhfbWVzc2FnZVxuICAgICAgICBcImludmFsaWQgZm9ybWF0ICVTOiBhdCBjaGFyYWN0ZXIgbnVtYmVyICVkLCBcXFxuICAgICAgICAgJXMgaXMgaW5jb21wYXRpYmxlIHdpdGggJyVjJyBpbiBzdWItZm9ybWF0ICVTXCJcbiAgICAgICAgc3RyIHBjdF9pbmQgb3B0aW9uIHN5bWIgc3ViZm10XG5cbiAgaW4gcGFyc2UgMCAoU3RyaW5nLmxlbmd0aCBzdHIpXG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAgICAgICAoKiBHdWFyZGVkIHN0cmluZyB0byBmb3JtYXQgY29udmVyc2lvbnMgKilcblxuKCogQ29udmVydCBhIHN0cmluZyB0byBhIGZvcm1hdCBhY2NvcmRpbmcgdG8gYW4gZm10dHkuICopXG4oKiBSYWlzZSBbRmFpbHVyZV0gd2l0aCBhbiBlcnJvciBtZXNzYWdlIGluIGNhc2Ugb2YgdHlwZSBtaXNtYXRjaC4gKilcbmxldCBmb3JtYXRfb2Zfc3RyaW5nX2ZtdHR5IHN0ciBmbXR0eSA9XG4gIGxldCBGbXRfRUJCIGZtdCA9IGZtdF9lYmJfb2Zfc3RyaW5nIHN0ciBpblxuICB0cnkgRm9ybWF0ICh0eXBlX2Zvcm1hdCBmbXQgZm10dHksIHN0cilcbiAgd2l0aCBUeXBlX21pc21hdGNoIC0+XG4gICAgZmFpbHdpdGhfbWVzc2FnZVxuICAgICAgXCJiYWQgaW5wdXQ6IGZvcm1hdCB0eXBlIG1pc21hdGNoIGJldHdlZW4gJVMgYW5kICVTXCJcbiAgICAgIHN0ciAoc3RyaW5nX29mX2ZtdHR5IGZtdHR5KVxuXG4oKiBDb252ZXJ0IGEgc3RyaW5nIHRvIGEgZm9ybWF0IGNvbXBhdGlibGUgd2l0aCBhbiBvdGhlciBmb3JtYXQuICopXG4oKiBSYWlzZSBbRmFpbHVyZV0gd2l0aCBhbiBlcnJvciBtZXNzYWdlIGluIGNhc2Ugb2YgdHlwZSBtaXNtYXRjaC4gKilcbmxldCBmb3JtYXRfb2Zfc3RyaW5nX2Zvcm1hdCBzdHIgKEZvcm1hdCAoZm10Jywgc3RyJykpID1cbiAgbGV0IEZtdF9FQkIgZm10ID0gZm10X2ViYl9vZl9zdHJpbmcgc3RyIGluXG4gIHRyeSBGb3JtYXQgKHR5cGVfZm9ybWF0IGZtdCAoZm10dHlfb2ZfZm10IGZtdCcpLCBzdHIpXG4gIHdpdGggVHlwZV9taXNtYXRjaCAtPlxuICAgIGZhaWx3aXRoX21lc3NhZ2VcbiAgICAgIFwiYmFkIGlucHV0OiBmb3JtYXQgdHlwZSBtaXNtYXRjaCBiZXR3ZWVuICVTIGFuZCAlU1wiIHN0ciBzdHInXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIFhhdmllciBMZXJveSBhbmQgUGllcnJlIFdlaXMsIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbm9wZW4gQ2FtbGludGVybmFsRm9ybWF0QmFzaWNzXG5vcGVuIENhbWxpbnRlcm5hbEZvcm1hdFxuXG5sZXQga2ZwcmludGYgayBvIChGb3JtYXQgKGZtdCwgXykpID1cbiAgbWFrZV9wcmludGYgKGZ1biBhY2MgLT4gb3V0cHV0X2FjYyBvIGFjYzsgayBvKSBFbmRfb2ZfYWNjIGZtdFxubGV0IGticHJpbnRmIGsgYiAoRm9ybWF0IChmbXQsIF8pKSA9XG4gIG1ha2VfcHJpbnRmIChmdW4gYWNjIC0+IGJ1ZnB1dF9hY2MgYiBhY2M7IGsgYikgRW5kX29mX2FjYyBmbXRcbmxldCBpa2ZwcmludGYgayBvYyAoRm9ybWF0IChmbXQsIF8pKSA9XG4gIG1ha2VfaXByaW50ZiBrIG9jIGZtdFxubGV0IGlrYnByaW50ZiA9IGlrZnByaW50ZlxuXG5sZXQgZnByaW50ZiBvYyBmbXQgPSBrZnByaW50ZiBpZ25vcmUgb2MgZm10XG5sZXQgYnByaW50ZiBiIGZtdCA9IGticHJpbnRmIGlnbm9yZSBiIGZtdFxubGV0IGlmcHJpbnRmIG9jIGZtdCA9IGlrZnByaW50ZiBpZ25vcmUgb2MgZm10XG5sZXQgaWJwcmludGYgYiBmbXQgPSBpa2JwcmludGYgaWdub3JlIGIgZm10XG5sZXQgcHJpbnRmIGZtdCA9IGZwcmludGYgc3Rkb3V0IGZtdFxubGV0IGVwcmludGYgZm10ID0gZnByaW50ZiBzdGRlcnIgZm10XG5cbmxldCBrc3ByaW50ZiBrIChGb3JtYXQgKGZtdCwgXykpID1cbiAgbGV0IGsnIGFjYyA9XG4gICAgbGV0IGJ1ZiA9IEJ1ZmZlci5jcmVhdGUgNjQgaW5cbiAgICBzdHJwdXRfYWNjIGJ1ZiBhY2M7XG4gICAgayAoQnVmZmVyLmNvbnRlbnRzIGJ1ZikgaW5cbiAgbWFrZV9wcmludGYgaycgRW5kX29mX2FjYyBmbXRcblxubGV0IHNwcmludGYgZm10ID0ga3NwcmludGYgKGZ1biBzIC0+IHMpIGZtdFxuXG5sZXQga3ByaW50ZiA9IGtzcHJpbnRmXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgRGFtaWVuIERvbGlnZXosIHByb2pldCBQYXJhLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbnR5cGUga2V5ID0gc3RyaW5nXG50eXBlIGRvYyA9IHN0cmluZ1xudHlwZSB1c2FnZV9tc2cgPSBzdHJpbmdcbnR5cGUgYW5vbl9mdW4gPSAoc3RyaW5nIC0+IHVuaXQpXG5cbnR5cGUgc3BlYyA9XG4gIHwgVW5pdCBvZiAodW5pdCAtPiB1bml0KSAgICAgKCogQ2FsbCB0aGUgZnVuY3Rpb24gd2l0aCB1bml0IGFyZ3VtZW50ICopXG4gIHwgQm9vbCBvZiAoYm9vbCAtPiB1bml0KSAgICAgKCogQ2FsbCB0aGUgZnVuY3Rpb24gd2l0aCBhIGJvb2wgYXJndW1lbnQgKilcbiAgfCBTZXQgb2YgYm9vbCByZWYgICAgICAgICAgICAoKiBTZXQgdGhlIHJlZmVyZW5jZSB0byB0cnVlICopXG4gIHwgQ2xlYXIgb2YgYm9vbCByZWYgICAgICAgICAgKCogU2V0IHRoZSByZWZlcmVuY2UgdG8gZmFsc2UgKilcbiAgfCBTdHJpbmcgb2YgKHN0cmluZyAtPiB1bml0KSAoKiBDYWxsIHRoZSBmdW5jdGlvbiB3aXRoIGEgc3RyaW5nIGFyZ3VtZW50ICopXG4gIHwgU2V0X3N0cmluZyBvZiBzdHJpbmcgcmVmICAgKCogU2V0IHRoZSByZWZlcmVuY2UgdG8gdGhlIHN0cmluZyBhcmd1bWVudCAqKVxuICB8IEludCBvZiAoaW50IC0+IHVuaXQpICAgICAgICgqIENhbGwgdGhlIGZ1bmN0aW9uIHdpdGggYW4gaW50IGFyZ3VtZW50ICopXG4gIHwgU2V0X2ludCBvZiBpbnQgcmVmICAgICAgICAgKCogU2V0IHRoZSByZWZlcmVuY2UgdG8gdGhlIGludCBhcmd1bWVudCAqKVxuICB8IEZsb2F0IG9mIChmbG9hdCAtPiB1bml0KSAgICgqIENhbGwgdGhlIGZ1bmN0aW9uIHdpdGggYSBmbG9hdCBhcmd1bWVudCAqKVxuICB8IFNldF9mbG9hdCBvZiBmbG9hdCByZWYgICAgICgqIFNldCB0aGUgcmVmZXJlbmNlIHRvIHRoZSBmbG9hdCBhcmd1bWVudCAqKVxuICB8IFR1cGxlIG9mIHNwZWMgbGlzdCAgICAgICAgICgqIFRha2Ugc2V2ZXJhbCBhcmd1bWVudHMgYWNjb3JkaW5nIHRvIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWMgbGlzdCAqKVxuICB8IFN5bWJvbCBvZiBzdHJpbmcgbGlzdCAqIChzdHJpbmcgLT4gdW5pdClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBUYWtlIG9uZSBvZiB0aGUgc3ltYm9scyBhcyBhcmd1bWVudCBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsIHRoZSBmdW5jdGlvbiB3aXRoIHRoZSBzeW1ib2wuICopXG4gIHwgUmVzdCBvZiAoc3RyaW5nIC0+IHVuaXQpICAgKCogU3RvcCBpbnRlcnByZXRpbmcga2V5d29yZHMgYW5kIGNhbGwgdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gd2l0aCBlYWNoIHJlbWFpbmluZyBhcmd1bWVudCAqKVxuICB8IFJlc3RfYWxsIG9mIChzdHJpbmcgbGlzdCAtPiB1bml0KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIFN0b3AgaW50ZXJwcmV0aW5nIGtleXdvcmRzIGFuZCBjYWxsIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHdpdGggYWxsIHJlbWFpbmluZyBhcmd1bWVudHMuICopXG4gIHwgRXhwYW5kIG9mIChzdHJpbmcgLT4gc3RyaW5nIGFycmF5KSAoKiBJZiB0aGUgcmVtYWluaW5nIGFyZ3VtZW50cyB0byBwcm9jZXNzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmUgb2YgdGhlIGZvcm1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtbXCItZm9vXCI7IFwiYXJnXCJdIEAgcmVzdF0gd2hlcmUgXCJmb29cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXMgcmVnaXN0ZXJlZCBhcyBbRXhwYW5kIGZdLCB0aGVuIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJndW1lbnRzIFtmIFwiYXJnXCIgQCByZXN0XSBhcmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NlZC4gT25seSBhbGxvd2VkIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGFyc2VfYW5kX2V4cGFuZF9hcmd2X2R5bmFtaWNdLiAqKVxuXG5leGNlcHRpb24gQmFkIG9mIHN0cmluZ1xuZXhjZXB0aW9uIEhlbHAgb2Ygc3RyaW5nXG5cbnR5cGUgZXJyb3IgPVxuICB8IFVua25vd24gb2Ygc3RyaW5nXG4gIHwgV3Jvbmcgb2Ygc3RyaW5nICogc3RyaW5nICogc3RyaW5nICAoKiBvcHRpb24sIGFjdHVhbCwgZXhwZWN0ZWQgKilcbiAgfCBNaXNzaW5nIG9mIHN0cmluZ1xuICB8IE1lc3NhZ2Ugb2Ygc3RyaW5nXG5cbmV4Y2VwdGlvbiBTdG9wIG9mIGVycm9yICgqIHVzZWQgaW50ZXJuYWxseSAqKVxuXG5vcGVuIFByaW50ZlxuXG5sZXQgcmVjIGFzc29jMyB4IGwgPVxuICBtYXRjaCBsIHdpdGhcbiAgfCBbXSAtPiByYWlzZSBOb3RfZm91bmRcbiAgfCAoeTEsIHkyLCBfKSA6OiBfIHdoZW4geTEgPSB4IC0+IHkyXG4gIHwgXyA6OiB0IC0+IGFzc29jMyB4IHRcblxuXG5sZXQgc3BsaXQgcyA9XG4gIGxldCBpID0gU3RyaW5nLmluZGV4IHMgJz0nIGluXG4gIGxldCBsZW4gPSBTdHJpbmcubGVuZ3RoIHMgaW5cbiAgU3RyaW5nLnN1YiBzIDAgaSwgU3RyaW5nLnN1YiBzIChpKzEpIChsZW4tKGkrMSkpXG5cblxubGV0IG1ha2Vfc3ltbGlzdCBwcmVmaXggc2VwIHN1ZmZpeCBsID1cbiAgbWF0Y2ggbCB3aXRoXG4gIHwgW10gLT4gXCI8bm9uZT5cIlxuICB8IGg6OnQgLT4gKExpc3QuZm9sZF9sZWZ0IChmdW4geCB5IC0+IHggXiBzZXAgXiB5KSAocHJlZml4IF4gaCkgdCkgXiBzdWZmaXhcblxuXG5sZXQgcHJpbnRfc3BlYyBidWYgKGtleSwgc3BlYywgZG9jKSA9XG4gIGlmIFN0cmluZy5sZW5ndGggZG9jID4gMCB0aGVuXG4gICAgbWF0Y2ggc3BlYyB3aXRoXG4gICAgfCBTeW1ib2wgKGwsIF8pIC0+XG4gICAgICAgIGJwcmludGYgYnVmIFwiICAlcyAlcyVzXFxuXCIga2V5IChtYWtlX3N5bWxpc3QgXCJ7XCIgXCJ8XCIgXCJ9XCIgbCkgZG9jXG4gICAgfCBfIC0+XG4gICAgICAgIGJwcmludGYgYnVmIFwiICAlcyAlc1xcblwiIGtleSBkb2NcblxuXG5sZXQgaGVscF9hY3Rpb24gKCkgPSByYWlzZSAoU3RvcCAoVW5rbm93biBcIi1oZWxwXCIpKVxuXG5sZXQgYWRkX2hlbHAgc3BlY2xpc3QgPVxuICBsZXQgYWRkMSA9XG4gICAgdHJ5IGlnbm9yZSAoYXNzb2MzIFwiLWhlbHBcIiBzcGVjbGlzdCk7IFtdXG4gICAgd2l0aCBOb3RfZm91bmQgLT5cbiAgICAgICAgICAgIFtcIi1oZWxwXCIsIFVuaXQgaGVscF9hY3Rpb24sIFwiIERpc3BsYXkgdGhpcyBsaXN0IG9mIG9wdGlvbnNcIl1cbiAgYW5kIGFkZDIgPVxuICAgIHRyeSBpZ25vcmUgKGFzc29jMyBcIi0taGVscFwiIHNwZWNsaXN0KTsgW11cbiAgICB3aXRoIE5vdF9mb3VuZCAtPlxuICAgICAgICAgICAgW1wiLS1oZWxwXCIsIFVuaXQgaGVscF9hY3Rpb24sIFwiIERpc3BsYXkgdGhpcyBsaXN0IG9mIG9wdGlvbnNcIl1cbiAgaW5cbiAgc3BlY2xpc3QgQCAoYWRkMSBAIGFkZDIpXG5cblxubGV0IHVzYWdlX2IgYnVmIHNwZWNsaXN0IGVycm1zZyA9XG4gIGJwcmludGYgYnVmIFwiJXNcXG5cIiBlcnJtc2c7XG4gIExpc3QuaXRlciAocHJpbnRfc3BlYyBidWYpIChhZGRfaGVscCBzcGVjbGlzdClcblxuXG5sZXQgdXNhZ2Vfc3RyaW5nIHNwZWNsaXN0IGVycm1zZyA9XG4gIGxldCBiID0gQnVmZmVyLmNyZWF0ZSAyMDAgaW5cbiAgdXNhZ2VfYiBiIHNwZWNsaXN0IGVycm1zZztcbiAgQnVmZmVyLmNvbnRlbnRzIGJcblxuXG5sZXQgdXNhZ2Ugc3BlY2xpc3QgZXJybXNnID1cbiAgZXByaW50ZiBcIiVzXCIgKHVzYWdlX3N0cmluZyBzcGVjbGlzdCBlcnJtc2cpXG5cblxubGV0IGN1cnJlbnQgPSByZWYgMFxuXG5sZXQgYm9vbF9vZl9zdHJpbmdfb3B0IHggPVxuICB0cnkgU29tZSAoYm9vbF9vZl9zdHJpbmcgeClcbiAgd2l0aCBJbnZhbGlkX2FyZ3VtZW50IF8gLT4gTm9uZVxuXG5sZXQgaW50X29mX3N0cmluZ19vcHQgeCA9XG4gIHRyeSBTb21lIChpbnRfb2Zfc3RyaW5nIHgpXG4gIHdpdGggRmFpbHVyZSBfIC0+IE5vbmVcblxubGV0IGZsb2F0X29mX3N0cmluZ19vcHQgeCA9XG4gIHRyeSBTb21lIChmbG9hdF9vZl9zdHJpbmcgeClcbiAgd2l0aCBGYWlsdXJlIF8gLT4gTm9uZVxuXG5sZXQgcGFyc2VfYW5kX2V4cGFuZF9hcmd2X2R5bmFtaWNfYXV4IGFsbG93X2V4cGFuZCBjdXJyZW50IGFyZ3Ygc3BlY2xpc3QgYW5vbmZ1blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJtc2cgPVxuICBsZXQgaW5pdHBvcyA9ICFjdXJyZW50IGluXG4gIGxldCBjb252ZXJ0X2Vycm9yIGVycm9yID1cbiAgICAoKiBjb252ZXJ0IGFuIGludGVybmFsIGVycm9yIHRvIGEgQmFkL0hlbHAgZXhjZXB0aW9uXG4gICAgICAgKm9yKiBhZGQgdGhlIHByb2dyYW0gbmFtZSBhcyBhIHByZWZpeCBhbmQgdGhlIHVzYWdlIG1lc3NhZ2UgYXMgYSBzdWZmaXhcbiAgICAgICB0byBhbiB1c2VyLXJhaXNlZCBCYWQgZXhjZXB0aW9uLlxuICAgICopXG4gICAgbGV0IGIgPSBCdWZmZXIuY3JlYXRlIDIwMCBpblxuICAgIGxldCBwcm9nbmFtZSA9XG4gICAgICBpZiBpbml0cG9zIDwgKEFycmF5Lmxlbmd0aCAhYXJndikgdGhlbiAhYXJndi4oaW5pdHBvcykgZWxzZSBcIig/KVwiIGluXG4gICAgYmVnaW4gbWF0Y2ggZXJyb3Igd2l0aFxuICAgICAgfCBVbmtub3duIFwiLWhlbHBcIiAtPiAoKVxuICAgICAgfCBVbmtub3duIFwiLS1oZWxwXCIgLT4gKClcbiAgICAgIHwgVW5rbm93biBzIC0+XG4gICAgICAgICAgYnByaW50ZiBiIFwiJXM6IHVua25vd24gb3B0aW9uICclcycuXFxuXCIgcHJvZ25hbWUgc1xuICAgICAgfCBNaXNzaW5nIHMgLT5cbiAgICAgICAgICBicHJpbnRmIGIgXCIlczogb3B0aW9uICclcycgbmVlZHMgYW4gYXJndW1lbnQuXFxuXCIgcHJvZ25hbWUgc1xuICAgICAgfCBXcm9uZyAob3B0LCBhcmcsIGV4cGVjdGVkKSAtPlxuICAgICAgICAgIGJwcmludGYgYiBcIiVzOiB3cm9uZyBhcmd1bWVudCAnJXMnOyBvcHRpb24gJyVzJyBleHBlY3RzICVzLlxcblwiXG4gICAgICAgICAgICAgICAgICBwcm9nbmFtZSBhcmcgb3B0IGV4cGVjdGVkXG4gICAgICB8IE1lc3NhZ2UgcyAtPiAoKiB1c2VyIGVycm9yIG1lc3NhZ2UgKilcbiAgICAgICAgICBicHJpbnRmIGIgXCIlczogJXMuXFxuXCIgcHJvZ25hbWUgc1xuICAgIGVuZDtcbiAgICB1c2FnZV9iIGIgIXNwZWNsaXN0IGVycm1zZztcbiAgICBpZiBlcnJvciA9IFVua25vd24gXCItaGVscFwiIHx8IGVycm9yID0gVW5rbm93biBcIi0taGVscFwiXG4gICAgdGhlbiBIZWxwIChCdWZmZXIuY29udGVudHMgYilcbiAgICBlbHNlIEJhZCAoQnVmZmVyLmNvbnRlbnRzIGIpXG4gIGluXG4gIGluY3IgY3VycmVudDtcbiAgd2hpbGUgIWN1cnJlbnQgPCAoQXJyYXkubGVuZ3RoICFhcmd2KSBkb1xuICAgIGJlZ2luIHRyeVxuICAgICAgbGV0IHMgPSAhYXJndi4oIWN1cnJlbnQpIGluXG4gICAgICBpZiBTdHJpbmcubGVuZ3RoIHMgPj0gMSAmJiBzLlswXSA9ICctJyB0aGVuIGJlZ2luXG4gICAgICAgIGxldCBhY3Rpb24sIGZvbGxvdyA9XG4gICAgICAgICAgdHJ5IGFzc29jMyBzICFzcGVjbGlzdCwgTm9uZVxuICAgICAgICAgIHdpdGggTm90X2ZvdW5kIC0+XG4gICAgICAgICAgdHJ5XG4gICAgICAgICAgICBsZXQga2V5d29yZCwgYXJnID0gc3BsaXQgcyBpblxuICAgICAgICAgICAgYXNzb2MzIGtleXdvcmQgIXNwZWNsaXN0LCBTb21lIGFyZ1xuICAgICAgICAgIHdpdGggTm90X2ZvdW5kIC0+IHJhaXNlIChTdG9wIChVbmtub3duIHMpKVxuICAgICAgICBpblxuICAgICAgICBsZXQgbm9fYXJnICgpID1cbiAgICAgICAgICBtYXRjaCBmb2xsb3cgd2l0aFxuICAgICAgICAgIHwgTm9uZSAtPiAoKVxuICAgICAgICAgIHwgU29tZSBhcmcgLT4gcmFpc2UgKFN0b3AgKFdyb25nIChzLCBhcmcsIFwibm8gYXJndW1lbnRcIikpKSBpblxuICAgICAgICBsZXQgZ2V0X2FyZyAoKSA9XG4gICAgICAgICAgbWF0Y2ggZm9sbG93IHdpdGhcbiAgICAgICAgICB8IE5vbmUgLT5cbiAgICAgICAgICAgICAgaWYgIWN1cnJlbnQgKyAxIDwgKEFycmF5Lmxlbmd0aCAhYXJndikgdGhlbiAhYXJndi4oIWN1cnJlbnQgKyAxKVxuICAgICAgICAgICAgICBlbHNlIHJhaXNlIChTdG9wIChNaXNzaW5nIHMpKVxuICAgICAgICAgIHwgU29tZSBhcmcgLT4gYXJnXG4gICAgICAgIGluXG4gICAgICAgIGxldCBjb25zdW1lX2FyZyAoKSA9XG4gICAgICAgICAgbWF0Y2ggZm9sbG93IHdpdGhcbiAgICAgICAgICB8IE5vbmUgLT4gaW5jciBjdXJyZW50XG4gICAgICAgICAgfCBTb21lIF8gLT4gKClcbiAgICAgICAgaW5cbiAgICAgICAgbGV0IHJlYyB0cmVhdF9hY3Rpb24gPSBmdW5jdGlvblxuICAgICAgICB8IFVuaXQgZiAtPiBub19hcmcgKCk7IGYgKCk7XG4gICAgICAgIHwgQm9vbCBmIC0+XG4gICAgICAgICAgICBsZXQgYXJnID0gZ2V0X2FyZyAoKSBpblxuICAgICAgICAgICAgYmVnaW4gbWF0Y2ggYm9vbF9vZl9zdHJpbmdfb3B0IGFyZyB3aXRoXG4gICAgICAgICAgICB8IE5vbmUgLT4gcmFpc2UgKFN0b3AgKFdyb25nIChzLCBhcmcsIFwiYSBib29sZWFuXCIpKSlcbiAgICAgICAgICAgIHwgU29tZSBzIC0+IGYgc1xuICAgICAgICAgICAgZW5kO1xuICAgICAgICAgICAgY29uc3VtZV9hcmcgKCk7XG4gICAgICAgIHwgU2V0IHIgLT4gbm9fYXJnICgpOyByIDo9IHRydWU7XG4gICAgICAgIHwgQ2xlYXIgciAtPiBub19hcmcgKCk7IHIgOj0gZmFsc2U7XG4gICAgICAgIHwgU3RyaW5nIGYgLT5cbiAgICAgICAgICAgIGxldCBhcmcgPSBnZXRfYXJnICgpIGluXG4gICAgICAgICAgICBmIGFyZztcbiAgICAgICAgICAgIGNvbnN1bWVfYXJnICgpO1xuICAgICAgICB8IFN5bWJvbCAoc3ltYiwgZikgLT5cbiAgICAgICAgICAgIGxldCBhcmcgPSBnZXRfYXJnICgpIGluXG4gICAgICAgICAgICBpZiBMaXN0Lm1lbSBhcmcgc3ltYiB0aGVuIGJlZ2luXG4gICAgICAgICAgICAgIGYgYXJnO1xuICAgICAgICAgICAgICBjb25zdW1lX2FyZyAoKTtcbiAgICAgICAgICAgIGVuZCBlbHNlIGJlZ2luXG4gICAgICAgICAgICAgIHJhaXNlIChTdG9wIChXcm9uZyAocywgYXJnLCBcIm9uZSBvZjogXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gKG1ha2Vfc3ltbGlzdCBcIlwiIFwiIFwiIFwiXCIgc3ltYikpKSlcbiAgICAgICAgICAgIGVuZFxuICAgICAgICB8IFNldF9zdHJpbmcgciAtPlxuICAgICAgICAgICAgciA6PSBnZXRfYXJnICgpO1xuICAgICAgICAgICAgY29uc3VtZV9hcmcgKCk7XG4gICAgICAgIHwgSW50IGYgLT5cbiAgICAgICAgICAgIGxldCBhcmcgPSBnZXRfYXJnICgpIGluXG4gICAgICAgICAgICBiZWdpbiBtYXRjaCBpbnRfb2Zfc3RyaW5nX29wdCBhcmcgd2l0aFxuICAgICAgICAgICAgfCBOb25lIC0+IHJhaXNlIChTdG9wIChXcm9uZyAocywgYXJnLCBcImFuIGludGVnZXJcIikpKVxuICAgICAgICAgICAgfCBTb21lIHggLT4gZiB4XG4gICAgICAgICAgICBlbmQ7XG4gICAgICAgICAgICBjb25zdW1lX2FyZyAoKTtcbiAgICAgICAgfCBTZXRfaW50IHIgLT5cbiAgICAgICAgICAgIGxldCBhcmcgPSBnZXRfYXJnICgpIGluXG4gICAgICAgICAgICBiZWdpbiBtYXRjaCBpbnRfb2Zfc3RyaW5nX29wdCBhcmcgd2l0aFxuICAgICAgICAgICAgfCBOb25lIC0+IHJhaXNlIChTdG9wIChXcm9uZyAocywgYXJnLCBcImFuIGludGVnZXJcIikpKVxuICAgICAgICAgICAgfCBTb21lIHggLT4gciA6PSB4XG4gICAgICAgICAgICBlbmQ7XG4gICAgICAgICAgICBjb25zdW1lX2FyZyAoKTtcbiAgICAgICAgfCBGbG9hdCBmIC0+XG4gICAgICAgICAgICBsZXQgYXJnID0gZ2V0X2FyZyAoKSBpblxuICAgICAgICAgICAgYmVnaW4gbWF0Y2ggZmxvYXRfb2Zfc3RyaW5nX29wdCBhcmcgd2l0aFxuICAgICAgICAgICAgfCBOb25lIC0+IHJhaXNlIChTdG9wIChXcm9uZyAocywgYXJnLCBcImEgZmxvYXRcIikpKVxuICAgICAgICAgICAgfCBTb21lIHggLT4gZiB4XG4gICAgICAgICAgICBlbmQ7XG4gICAgICAgICAgICBjb25zdW1lX2FyZyAoKTtcbiAgICAgICAgfCBTZXRfZmxvYXQgciAtPlxuICAgICAgICAgICAgbGV0IGFyZyA9IGdldF9hcmcgKCkgaW5cbiAgICAgICAgICAgIGJlZ2luIG1hdGNoIGZsb2F0X29mX3N0cmluZ19vcHQgYXJnIHdpdGhcbiAgICAgICAgICAgIHwgTm9uZSAtPiByYWlzZSAoU3RvcCAoV3JvbmcgKHMsIGFyZywgXCJhIGZsb2F0XCIpKSlcbiAgICAgICAgICAgIHwgU29tZSB4IC0+IHIgOj0geFxuICAgICAgICAgICAgZW5kO1xuICAgICAgICAgICAgY29uc3VtZV9hcmcgKCk7XG4gICAgICAgIHwgVHVwbGUgc3BlY3MgLT5cbiAgICAgICAgICAgIG5vX2FyZyAoKTtcbiAgICAgICAgICAgIExpc3QuaXRlciB0cmVhdF9hY3Rpb24gc3BlY3M7XG4gICAgICAgIHwgUmVzdCBmIC0+XG4gICAgICAgICAgICBub19hcmcgKCk7XG4gICAgICAgICAgICB3aGlsZSAhY3VycmVudCA8IChBcnJheS5sZW5ndGggIWFyZ3YpIC0gMSBkb1xuICAgICAgICAgICAgICBmICFhcmd2LighY3VycmVudCArIDEpO1xuICAgICAgICAgICAgICBjb25zdW1lX2FyZyAoKTtcbiAgICAgICAgICAgIGRvbmU7XG4gICAgICAgIHwgUmVzdF9hbGwgZiAtPlxuICAgICAgICAgICAgbm9fYXJnICgpO1xuICAgICAgICAgICAgbGV0IGFjYyA9IHJlZiBbXSBpblxuICAgICAgICAgICAgd2hpbGUgIWN1cnJlbnQgPCBBcnJheS5sZW5ndGggIWFyZ3YgLSAxIGRvXG4gICAgICAgICAgICAgIGFjYyA6PSAhYXJndi4oIWN1cnJlbnQgKyAxKSA6OiAhYWNjO1xuICAgICAgICAgICAgICBjb25zdW1lX2FyZyAoKTtcbiAgICAgICAgICAgIGRvbmU7XG4gICAgICAgICAgICBmIChMaXN0LnJldiAhYWNjKVxuICAgICAgICB8IEV4cGFuZCBmIC0+XG4gICAgICAgICAgICBpZiBub3QgYWxsb3dfZXhwYW5kIHRoZW5cbiAgICAgICAgICAgICAgcmFpc2UgKEludmFsaWRfYXJndW1lbnQgXCJBcmcuRXhwYW5kIGlzIGlzIG9ubHkgYWxsb3dlZCB3aXRoIFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcmcucGFyc2VfYW5kX2V4cGFuZF9hcmd2X2R5bmFtaWNcIik7XG4gICAgICAgICAgICBsZXQgYXJnID0gZ2V0X2FyZyAoKSBpblxuICAgICAgICAgICAgbGV0IG5ld2FyZyA9IGYgYXJnIGluXG4gICAgICAgICAgICBjb25zdW1lX2FyZyAoKTtcbiAgICAgICAgICAgIGxldCBiZWZvcmUgPSBBcnJheS5zdWIgIWFyZ3YgMCAoIWN1cnJlbnQgKyAxKVxuICAgICAgICAgICAgYW5kIGFmdGVyID1cbiAgICAgICAgICAgICAgQXJyYXkuc3ViICFhcmd2ICghY3VycmVudCArIDEpXG4gICAgICAgICAgICAgICAgICAgICAgICAoKEFycmF5Lmxlbmd0aCAhYXJndikgLSAhY3VycmVudCAtIDEpIGluXG4gICAgICAgICAgICBhcmd2Oj0gQXJyYXkuY29uY2F0IFtiZWZvcmU7bmV3YXJnO2FmdGVyXTtcbiAgICAgICAgaW5cbiAgICAgICAgdHJlYXRfYWN0aW9uIGFjdGlvbiBlbmRcbiAgICAgIGVsc2UgYW5vbmZ1biBzXG4gICAgd2l0aCB8IEJhZCBtIC0+IHJhaXNlIChjb252ZXJ0X2Vycm9yIChNZXNzYWdlIG0pKTtcbiAgICAgICAgIHwgU3RvcCBlIC0+IHJhaXNlIChjb252ZXJ0X2Vycm9yIGUpO1xuICAgIGVuZDtcbiAgICBpbmNyIGN1cnJlbnRcbiAgZG9uZVxuXG5sZXQgcGFyc2VfYW5kX2V4cGFuZF9hcmd2X2R5bmFtaWMgY3VycmVudCBhcmd2IHNwZWNsaXN0IGFub25mdW4gZXJybXNnID1cbiAgcGFyc2VfYW5kX2V4cGFuZF9hcmd2X2R5bmFtaWNfYXV4IHRydWUgY3VycmVudCBhcmd2IHNwZWNsaXN0IGFub25mdW4gZXJybXNnXG5cbmxldCBwYXJzZV9hcmd2X2R5bmFtaWMgPyhjdXJyZW50PWN1cnJlbnQpIGFyZ3Ygc3BlY2xpc3QgYW5vbmZ1biBlcnJtc2cgPVxuICBwYXJzZV9hbmRfZXhwYW5kX2FyZ3ZfZHluYW1pY19hdXggZmFsc2UgY3VycmVudCAocmVmIGFyZ3YpIHNwZWNsaXN0IGFub25mdW5cbiAgICBlcnJtc2dcblxuXG5sZXQgcGFyc2VfYXJndiA/KGN1cnJlbnQ9Y3VycmVudCkgYXJndiBzcGVjbGlzdCBhbm9uZnVuIGVycm1zZyA9XG4gIHBhcnNlX2FyZ3ZfZHluYW1pYyB+Y3VycmVudDpjdXJyZW50IGFyZ3YgKHJlZiBzcGVjbGlzdCkgYW5vbmZ1biBlcnJtc2dcblxuXG5sZXQgcGFyc2UgbCBmIG1zZyA9XG4gIHRyeVxuICAgIHBhcnNlX2FyZ3YgU3lzLmFyZ3YgbCBmIG1zZ1xuICB3aXRoXG4gIHwgQmFkIG1zZyAtPiBlcHJpbnRmIFwiJXNcIiBtc2c7IGV4aXQgMlxuICB8IEhlbHAgbXNnIC0+IHByaW50ZiBcIiVzXCIgbXNnOyBleGl0IDBcblxuXG5sZXQgcGFyc2VfZHluYW1pYyBsIGYgbXNnID1cbiAgdHJ5XG4gICAgcGFyc2VfYXJndl9keW5hbWljIFN5cy5hcmd2IGwgZiBtc2dcbiAgd2l0aFxuICB8IEJhZCBtc2cgLT4gZXByaW50ZiBcIiVzXCIgbXNnOyBleGl0IDJcbiAgfCBIZWxwIG1zZyAtPiBwcmludGYgXCIlc1wiIG1zZzsgZXhpdCAwXG5cbmxldCBwYXJzZV9leHBhbmQgbCBmIG1zZyA9XG4gIHRyeVxuICAgIGxldCBhcmd2ID0gcmVmIFN5cy5hcmd2IGluXG4gICAgbGV0IHNwZWMgPSByZWYgbCBpblxuICAgIGxldCBjdXJyZW50ID0gcmVmICghY3VycmVudCkgaW5cbiAgICBwYXJzZV9hbmRfZXhwYW5kX2FyZ3ZfZHluYW1pYyBjdXJyZW50IGFyZ3Ygc3BlYyBmIG1zZ1xuICB3aXRoXG4gIHwgQmFkIG1zZyAtPiBlcHJpbnRmIFwiJXNcIiBtc2c7IGV4aXQgMlxuICB8IEhlbHAgbXNnIC0+IHByaW50ZiBcIiVzXCIgbXNnOyBleGl0IDBcblxuXG5sZXQgc2Vjb25kX3dvcmQgcyA9XG4gIGxldCBsZW4gPSBTdHJpbmcubGVuZ3RoIHMgaW5cbiAgbGV0IHJlYyBsb29wIG4gPVxuICAgIGlmIG4gPj0gbGVuIHRoZW4gbGVuXG4gICAgZWxzZSBpZiBzLltuXSA9ICcgJyB0aGVuIGxvb3AgKG4rMSlcbiAgICBlbHNlIG5cbiAgaW5cbiAgbWF0Y2ggU3RyaW5nLmluZGV4IHMgJ1xcdCcgd2l0aFxuICB8IG4gLT4gbG9vcCAobisxKVxuICB8IGV4Y2VwdGlvbiBOb3RfZm91bmQgLT5cbiAgICAgIGJlZ2luIG1hdGNoIFN0cmluZy5pbmRleCBzICcgJyB3aXRoXG4gICAgICB8IG4gLT4gbG9vcCAobisxKVxuICAgICAgfCBleGNlcHRpb24gTm90X2ZvdW5kIC0+IGxlblxuICAgICAgZW5kXG5cblxubGV0IG1heF9hcmdfbGVuIGN1ciAoa3dkLCBzcGVjLCBkb2MpID1cbiAgbWF0Y2ggc3BlYyB3aXRoXG4gIHwgU3ltYm9sIF8gLT4gSW50Lm1heCBjdXIgKFN0cmluZy5sZW5ndGgga3dkKVxuICB8IF8gLT4gSW50Lm1heCBjdXIgKFN0cmluZy5sZW5ndGgga3dkICsgc2Vjb25kX3dvcmQgZG9jKVxuXG5cbmxldCByZXBsYWNlX2xlYWRpbmdfdGFiIHMgPVxuICBsZXQgc2VlbiA9IHJlZiBmYWxzZSBpblxuICBTdHJpbmcubWFwIChmdW5jdGlvbiAnXFx0JyB3aGVuIG5vdCAhc2VlbiAtPiBzZWVuIDo9IHRydWU7ICcgJyB8IGMgLT4gYykgc1xuXG5sZXQgYWRkX3BhZGRpbmcgbGVuIGtzZCA9XG4gIG1hdGNoIGtzZCB3aXRoXG4gIHwgKF8sIF8sIFwiXCIpIC0+XG4gICAgICAoKiBEbyBub3QgcGFkIHVuZG9jdW1lbnRlZCBvcHRpb25zLCBzbyB0aGF0IHRoZXkgc3RpbGwgZG9uJ3Qgc2hvdyB1cCB3aGVuXG4gICAgICAgKiBydW4gdGhyb3VnaCBbdXNhZ2VdIG9yIFtwYXJzZV0uICopXG4gICAgICBrc2RcbiAgfCAoa3dkLCAoU3ltYm9sIF8gYXMgc3BlYyksIG1zZykgLT5cbiAgICAgIGxldCBjdXRjb2wgPSBzZWNvbmRfd29yZCBtc2cgaW5cbiAgICAgIGxldCBzcGFjZXMgPSBTdHJpbmcubWFrZSAoKEludC5tYXggMCAobGVuIC0gY3V0Y29sKSkgKyAzKSAnICcgaW5cbiAgICAgIChrd2QsIHNwZWMsIFwiXFxuXCIgXiBzcGFjZXMgXiByZXBsYWNlX2xlYWRpbmdfdGFiIG1zZylcbiAgfCAoa3dkLCBzcGVjLCBtc2cpIC0+XG4gICAgICBsZXQgY3V0Y29sID0gc2Vjb25kX3dvcmQgbXNnIGluXG4gICAgICBsZXQga3dkX2xlbiA9IFN0cmluZy5sZW5ndGgga3dkIGluXG4gICAgICBsZXQgZGlmZiA9IGxlbiAtIGt3ZF9sZW4gLSBjdXRjb2wgaW5cbiAgICAgIGlmIGRpZmYgPD0gMCB0aGVuXG4gICAgICAgIChrd2QsIHNwZWMsIHJlcGxhY2VfbGVhZGluZ190YWIgbXNnKVxuICAgICAgZWxzZVxuICAgICAgICBsZXQgc3BhY2VzID0gU3RyaW5nLm1ha2UgZGlmZiAnICcgaW5cbiAgICAgICAgbGV0IHByZWZpeCA9IFN0cmluZy5zdWIgKHJlcGxhY2VfbGVhZGluZ190YWIgbXNnKSAwIGN1dGNvbCBpblxuICAgICAgICBsZXQgc3VmZml4ID0gU3RyaW5nLnN1YiBtc2cgY3V0Y29sIChTdHJpbmcubGVuZ3RoIG1zZyAtIGN1dGNvbCkgaW5cbiAgICAgICAgKGt3ZCwgc3BlYywgcHJlZml4IF4gc3BhY2VzIF4gc3VmZml4KVxuXG5cbmxldCBhbGlnbiA/KGxpbWl0PW1heF9pbnQpIHNwZWNsaXN0ID1cbiAgbGV0IGNvbXBsZXRlZCA9IGFkZF9oZWxwIHNwZWNsaXN0IGluXG4gIGxldCBsZW4gPSBMaXN0LmZvbGRfbGVmdCBtYXhfYXJnX2xlbiAwIGNvbXBsZXRlZCBpblxuICBsZXQgbGVuID0gSW50Lm1pbiBsZW4gbGltaXQgaW5cbiAgTGlzdC5tYXAgKGFkZF9wYWRkaW5nIGxlbikgY29tcGxldGVkXG5cbmxldCB0cmltX2NyIHMgPVxuICBsZXQgbGVuID0gU3RyaW5nLmxlbmd0aCBzIGluXG4gIGlmIGxlbiA+IDAgJiYgU3RyaW5nLmdldCBzIChsZW4gLSAxKSA9ICdcXHInIHRoZW5cbiAgICBTdHJpbmcuc3ViIHMgMCAobGVuIC0gMSlcbiAgZWxzZVxuICAgIHNcblxubGV0IHJlYWRfYXV4IHRyaW0gc2VwIGZpbGUgPVxuICBsZXQgaWMgPSBvcGVuX2luX2JpbiBmaWxlIGluXG4gIGxldCBidWYgPSBCdWZmZXIuY3JlYXRlIDIwMCBpblxuICBsZXQgd29yZHMgPSByZWYgW10gaW5cbiAgbGV0IHN0YXNoICgpID1cbiAgICBsZXQgd29yZCA9IEJ1ZmZlci5jb250ZW50cyBidWYgaW5cbiAgICBsZXQgd29yZCA9IGlmIHRyaW0gdGhlbiB0cmltX2NyIHdvcmQgZWxzZSB3b3JkIGluXG4gICAgd29yZHMgOj0gd29yZCA6OiAhd29yZHM7XG4gICAgQnVmZmVyLmNsZWFyIGJ1ZlxuICBpblxuICBiZWdpblxuICAgIHRyeSB3aGlsZSB0cnVlIGRvXG4gICAgICAgIGxldCBjID0gaW5wdXRfY2hhciBpYyBpblxuICAgICAgICBpZiBjID0gc2VwIHRoZW4gc3Rhc2ggKCkgZWxzZSBCdWZmZXIuYWRkX2NoYXIgYnVmIGNcbiAgICAgIGRvbmVcbiAgICB3aXRoIEVuZF9vZl9maWxlIC0+ICgpXG4gIGVuZDtcbiAgaWYgQnVmZmVyLmxlbmd0aCBidWYgPiAwIHRoZW4gc3Rhc2ggKCk7XG4gIGNsb3NlX2luIGljO1xuICBBcnJheS5vZl9saXN0IChMaXN0LnJldiAhd29yZHMpXG5cbmxldCByZWFkX2FyZyA9IHJlYWRfYXV4IHRydWUgJ1xcbidcblxubGV0IHJlYWRfYXJnMCA9IHJlYWRfYXV4IGZhbHNlICdcXHgwMCdcblxubGV0IHdyaXRlX2F1eCBzZXAgZmlsZSBhcmdzID1cbiAgbGV0IG9jID0gb3Blbl9vdXRfYmluIGZpbGUgaW5cbiAgQXJyYXkuaXRlciAoZnVuIHMgLT4gZnByaW50ZiBvYyBcIiVzJWNcIiBzIHNlcCkgYXJncztcbiAgY2xvc2Vfb3V0IG9jXG5cbmxldCB3cml0ZV9hcmcgPSB3cml0ZV9hdXggJ1xcbidcblxubGV0IHdyaXRlX2FyZzAgPSB3cml0ZV9hdXggJ1xceDAwJ1xuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG5vcGVuIFByaW50ZlxuXG50eXBlIHQgPSBleG4gPSAuLlxuXG5sZXQgcHJpbnRlcnMgPSBBdG9taWMubWFrZSBbXVxuXG5sZXQgbG9jZm10ID0gZm9ybWF0X29mX3N0cmluZyBcIkZpbGUgXFxcIiVzXFxcIiwgbGluZSAlZCwgY2hhcmFjdGVycyAlZC0lZDogJXNcIlxuXG5sZXQgZmllbGQgeCBpID1cbiAgbGV0IGYgPSBPYmouZmllbGQgeCBpIGluXG4gIGlmIG5vdCAoT2JqLmlzX2Jsb2NrIGYpIHRoZW5cbiAgICBzcHJpbnRmIFwiJWRcIiAoT2JqLm1hZ2ljIGYgOiBpbnQpICAgICAgICAgICAoKiBjYW4gYWxzbyBiZSBhIGNoYXIgKilcbiAgZWxzZSBpZiBPYmoudGFnIGYgPSBPYmouc3RyaW5nX3RhZyB0aGVuXG4gICAgc3ByaW50ZiBcIiVTXCIgKE9iai5tYWdpYyBmIDogc3RyaW5nKVxuICBlbHNlIGlmIE9iai50YWcgZiA9IE9iai5kb3VibGVfdGFnIHRoZW5cbiAgICBzdHJpbmdfb2ZfZmxvYXQgKE9iai5tYWdpYyBmIDogZmxvYXQpXG4gIGVsc2VcbiAgICBcIl9cIlxuXG5sZXQgcmVjIG90aGVyX2ZpZWxkcyB4IGkgPVxuICBpZiBpID49IE9iai5zaXplIHggdGhlbiBcIlwiXG4gIGVsc2Ugc3ByaW50ZiBcIiwgJXMlc1wiIChmaWVsZCB4IGkpIChvdGhlcl9maWVsZHMgeCAoaSsxKSlcblxubGV0IGZpZWxkcyB4ID1cbiAgbWF0Y2ggT2JqLnNpemUgeCB3aXRoXG4gIHwgMCAtPiBcIlwiXG4gIHwgMSAtPiBcIlwiXG4gIHwgMiAtPiBzcHJpbnRmIFwiKCVzKVwiIChmaWVsZCB4IDEpXG4gIHwgXyAtPiBzcHJpbnRmIFwiKCVzJXMpXCIgKGZpZWxkIHggMSkgKG90aGVyX2ZpZWxkcyB4IDIpXG5cbmxldCB1c2VfcHJpbnRlcnMgeCA9XG4gIGxldCByZWMgY29udiA9IGZ1bmN0aW9uXG4gICAgfCBoZCA6OiB0bCAtPlxuICAgICAgICAobWF0Y2ggaGQgeCB3aXRoXG4gICAgICAgICB8IE5vbmUgfCBleGNlcHRpb24gXyAtPiBjb252IHRsXG4gICAgICAgICB8IFNvbWUgcyAtPiBTb21lIHMpXG4gICAgfCBbXSAtPiBOb25lIGluXG4gIGNvbnYgKEF0b21pYy5nZXQgcHJpbnRlcnMpXG5cbmxldCB0b19zdHJpbmdfZGVmYXVsdCA9IGZ1bmN0aW9uXG4gIHwgT3V0X29mX21lbW9yeSAtPiBcIk91dCBvZiBtZW1vcnlcIlxuICB8IFN0YWNrX292ZXJmbG93IC0+IFwiU3RhY2sgb3ZlcmZsb3dcIlxuICB8IE1hdGNoX2ZhaWx1cmUoZmlsZSwgbGluZSwgY2hhcikgLT5cbiAgICAgIHNwcmludGYgbG9jZm10IGZpbGUgbGluZSBjaGFyIChjaGFyKzUpIFwiUGF0dGVybiBtYXRjaGluZyBmYWlsZWRcIlxuICB8IEFzc2VydF9mYWlsdXJlKGZpbGUsIGxpbmUsIGNoYXIpIC0+XG4gICAgICBzcHJpbnRmIGxvY2ZtdCBmaWxlIGxpbmUgY2hhciAoY2hhcis2KSBcIkFzc2VydGlvbiBmYWlsZWRcIlxuICB8IFVuZGVmaW5lZF9yZWN1cnNpdmVfbW9kdWxlKGZpbGUsIGxpbmUsIGNoYXIpIC0+XG4gICAgICBzcHJpbnRmIGxvY2ZtdCBmaWxlIGxpbmUgY2hhciAoY2hhcis2KSBcIlVuZGVmaW5lZCByZWN1cnNpdmUgbW9kdWxlXCJcbiAgfCB4IC0+XG4gICAgICBsZXQgeCA9IE9iai5yZXByIHggaW5cbiAgICAgIGlmIE9iai50YWcgeCA8PiAwIHRoZW5cbiAgICAgICAgKE9iai5tYWdpYyAoT2JqLmZpZWxkIHggMCkgOiBzdHJpbmcpXG4gICAgICBlbHNlXG4gICAgICAgIGxldCBjb25zdHJ1Y3RvciA9XG4gICAgICAgICAgKE9iai5tYWdpYyAoT2JqLmZpZWxkIChPYmouZmllbGQgeCAwKSAwKSA6IHN0cmluZykgaW5cbiAgICAgICAgY29uc3RydWN0b3IgXiAoZmllbGRzIHgpXG5cbmxldCB0b19zdHJpbmcgZSA9XG4gIG1hdGNoIHVzZV9wcmludGVycyBlIHdpdGhcbiAgfCBTb21lIHMgLT4gc1xuICB8IE5vbmUgLT4gdG9fc3RyaW5nX2RlZmF1bHQgZVxuXG5sZXQgcHJpbnQgZmN0IGFyZyA9XG4gIHRyeVxuICAgIGZjdCBhcmdcbiAgd2l0aCB4IC0+XG4gICAgZXByaW50ZiBcIlVuY2F1Z2h0IGV4Y2VwdGlvbjogJXNcXG5cIiAodG9fc3RyaW5nIHgpO1xuICAgIGZsdXNoIHN0ZGVycjtcbiAgICByYWlzZSB4XG5cbmxldCBjYXRjaCBmY3QgYXJnID1cbiAgdHJ5XG4gICAgZmN0IGFyZ1xuICB3aXRoIHggLT5cbiAgICBmbHVzaCBzdGRvdXQ7XG4gICAgZXByaW50ZiBcIlVuY2F1Z2h0IGV4Y2VwdGlvbjogJXNcXG5cIiAodG9fc3RyaW5nIHgpO1xuICAgIGV4aXQgMlxuXG50eXBlIHJhd19iYWNrdHJhY2Vfc2xvdFxudHlwZSByYXdfYmFja3RyYWNlX2VudHJ5ID0gcHJpdmF0ZSBpbnRcbnR5cGUgcmF3X2JhY2t0cmFjZSA9IHJhd19iYWNrdHJhY2VfZW50cnkgYXJyYXlcblxubGV0IHJhd19iYWNrdHJhY2VfZW50cmllcyBidCA9IGJ0XG5cbmV4dGVybmFsIGdldF9yYXdfYmFja3RyYWNlOlxuICB1bml0IC0+IHJhd19iYWNrdHJhY2UgPSBcImNhbWxfZ2V0X2V4Y2VwdGlvbl9yYXdfYmFja3RyYWNlXCJcblxuZXh0ZXJuYWwgcmFpc2Vfd2l0aF9iYWNrdHJhY2U6IGV4biAtPiByYXdfYmFja3RyYWNlIC0+ICdhXG4gID0gXCIlcmFpc2Vfd2l0aF9iYWNrdHJhY2VcIlxuXG50eXBlIGJhY2t0cmFjZV9zbG90ID1cbiAgfCBLbm93bl9sb2NhdGlvbiBvZiB7XG4gICAgICBpc19yYWlzZSAgICA6IGJvb2w7XG4gICAgICBmaWxlbmFtZSAgICA6IHN0cmluZztcbiAgICAgIGxpbmVfbnVtYmVyIDogaW50O1xuICAgICAgc3RhcnRfY2hhciAgOiBpbnQ7XG4gICAgICBlbmRfY2hhciAgICA6IGludDtcbiAgICAgIGlzX2lubGluZSAgIDogYm9vbDtcbiAgICAgIGRlZm5hbWUgICAgIDogc3RyaW5nO1xuICAgIH1cbiAgfCBVbmtub3duX2xvY2F0aW9uIG9mIHtcbiAgICAgIGlzX3JhaXNlIDogYm9vbFxuICAgIH1cblxuKCogdG8gYXZvaWQgd2FybmluZyAqKVxubGV0IF8gPSBbS25vd25fbG9jYXRpb24geyBpc19yYWlzZSA9IGZhbHNlOyBmaWxlbmFtZSA9IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVfbnVtYmVyID0gMDsgc3RhcnRfY2hhciA9IDA7IGVuZF9jaGFyID0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaXNfaW5saW5lID0gZmFsc2U7IGRlZm5hbWUgPSBcIlwiIH07XG4gICAgICAgICBVbmtub3duX2xvY2F0aW9uIHsgaXNfcmFpc2UgPSBmYWxzZSB9XVxuXG5leHRlcm5hbCBjb252ZXJ0X3Jhd19iYWNrdHJhY2Vfc2xvdDpcbiAgcmF3X2JhY2t0cmFjZV9zbG90IC0+IGJhY2t0cmFjZV9zbG90ID0gXCJjYW1sX2NvbnZlcnRfcmF3X2JhY2t0cmFjZV9zbG90XCJcblxuZXh0ZXJuYWwgY29udmVydF9yYXdfYmFja3RyYWNlOlxuICByYXdfYmFja3RyYWNlIC0+IGJhY2t0cmFjZV9zbG90IGFycmF5ID0gXCJjYW1sX2NvbnZlcnRfcmF3X2JhY2t0cmFjZVwiXG5cbmxldCBjb252ZXJ0X3Jhd19iYWNrdHJhY2UgYnQgPVxuICB0cnkgU29tZSAoY29udmVydF9yYXdfYmFja3RyYWNlIGJ0KVxuICB3aXRoIEZhaWx1cmUgXyAtPiBOb25lXG5cbmxldCBmb3JtYXRfYmFja3RyYWNlX3Nsb3QgcG9zIHNsb3QgPVxuICBsZXQgaW5mbyBpc19yYWlzZSA9XG4gICAgaWYgaXNfcmFpc2UgdGhlblxuICAgICAgaWYgcG9zID0gMCB0aGVuIFwiUmFpc2VkIGF0XCIgZWxzZSBcIlJlLXJhaXNlZCBhdFwiXG4gICAgZWxzZVxuICAgICAgaWYgcG9zID0gMCB0aGVuIFwiUmFpc2VkIGJ5IHByaW1pdGl2ZSBvcGVyYXRpb24gYXRcIiBlbHNlIFwiQ2FsbGVkIGZyb21cIlxuICBpblxuICBtYXRjaCBzbG90IHdpdGhcbiAgfCBVbmtub3duX2xvY2F0aW9uIGwgLT5cbiAgICAgIGlmIGwuaXNfcmFpc2UgdGhlblxuICAgICAgICAoKiBjb21waWxlci1pbnNlcnRlZCByZS1yYWlzZSwgc2tpcHBlZCAqKSBOb25lXG4gICAgICBlbHNlXG4gICAgICAgIFNvbWUgKHNwcmludGYgXCIlcyB1bmtub3duIGxvY2F0aW9uXCIgKGluZm8gZmFsc2UpKVxuICB8IEtub3duX2xvY2F0aW9uIGwgLT5cbiAgICAgIFNvbWUgKHNwcmludGYgXCIlcyAlcyBpbiBmaWxlIFxcXCIlc1xcXCIlcywgbGluZSAlZCwgY2hhcmFjdGVycyAlZC0lZFwiXG4gICAgICAgICAgICAgIChpbmZvIGwuaXNfcmFpc2UpIGwuZGVmbmFtZSBsLmZpbGVuYW1lXG4gICAgICAgICAgICAgIChpZiBsLmlzX2lubGluZSB0aGVuIFwiIChpbmxpbmVkKVwiIGVsc2UgXCJcIilcbiAgICAgICAgICAgICAgbC5saW5lX251bWJlciBsLnN0YXJ0X2NoYXIgbC5lbmRfY2hhcilcblxubGV0IHByaW50X2V4Y2VwdGlvbl9iYWNrdHJhY2Ugb3V0Y2hhbiBiYWNrdHJhY2UgPVxuICBtYXRjaCBiYWNrdHJhY2Ugd2l0aFxuICB8IE5vbmUgLT5cbiAgICAgIGZwcmludGYgb3V0Y2hhblxuICAgICAgICBcIihQcm9ncmFtIG5vdCBsaW5rZWQgd2l0aCAtZywgY2Fubm90IHByaW50IHN0YWNrIGJhY2t0cmFjZSlcXG5cIlxuICB8IFNvbWUgYSAtPlxuICAgICAgZm9yIGkgPSAwIHRvIEFycmF5Lmxlbmd0aCBhIC0gMSBkb1xuICAgICAgICBtYXRjaCBmb3JtYXRfYmFja3RyYWNlX3Nsb3QgaSBhLihpKSB3aXRoXG4gICAgICAgICAgfCBOb25lIC0+ICgpXG4gICAgICAgICAgfCBTb21lIHN0ciAtPiBmcHJpbnRmIG91dGNoYW4gXCIlc1xcblwiIHN0clxuICAgICAgZG9uZVxuXG5sZXQgcHJpbnRfcmF3X2JhY2t0cmFjZSBvdXRjaGFuIHJhd19iYWNrdHJhY2UgPVxuICBwcmludF9leGNlcHRpb25fYmFja3RyYWNlIG91dGNoYW4gKGNvbnZlcnRfcmF3X2JhY2t0cmFjZSByYXdfYmFja3RyYWNlKVxuXG4oKiBjb25mdXNpbmdseSBuYW1lZDogcHJpbnRzIHRoZSBnbG9iYWwgY3VycmVudCBiYWNrdHJhY2UgKilcbmxldCBwcmludF9iYWNrdHJhY2Ugb3V0Y2hhbiA9XG4gIHByaW50X3Jhd19iYWNrdHJhY2Ugb3V0Y2hhbiAoZ2V0X3Jhd19iYWNrdHJhY2UgKCkpXG5cbmxldCBiYWNrdHJhY2VfdG9fc3RyaW5nIGJhY2t0cmFjZSA9XG4gIG1hdGNoIGJhY2t0cmFjZSB3aXRoXG4gIHwgTm9uZSAtPlxuICAgICBcIihQcm9ncmFtIG5vdCBsaW5rZWQgd2l0aCAtZywgY2Fubm90IHByaW50IHN0YWNrIGJhY2t0cmFjZSlcXG5cIlxuICB8IFNvbWUgYSAtPlxuICAgICAgbGV0IGIgPSBCdWZmZXIuY3JlYXRlIDEwMjQgaW5cbiAgICAgIGZvciBpID0gMCB0byBBcnJheS5sZW5ndGggYSAtIDEgZG9cbiAgICAgICAgbWF0Y2ggZm9ybWF0X2JhY2t0cmFjZV9zbG90IGkgYS4oaSkgd2l0aFxuICAgICAgICAgIHwgTm9uZSAtPiAoKVxuICAgICAgICAgIHwgU29tZSBzdHIgLT4gYnByaW50ZiBiIFwiJXNcXG5cIiBzdHJcbiAgICAgIGRvbmU7XG4gICAgICBCdWZmZXIuY29udGVudHMgYlxuXG5sZXQgcmF3X2JhY2t0cmFjZV90b19zdHJpbmcgcmF3X2JhY2t0cmFjZSA9XG4gIGJhY2t0cmFjZV90b19zdHJpbmcgKGNvbnZlcnRfcmF3X2JhY2t0cmFjZSByYXdfYmFja3RyYWNlKVxuXG5sZXQgYmFja3RyYWNlX3Nsb3RfaXNfcmFpc2UgPSBmdW5jdGlvblxuICB8IEtub3duX2xvY2F0aW9uIGwgLT4gbC5pc19yYWlzZVxuICB8IFVua25vd25fbG9jYXRpb24gbCAtPiBsLmlzX3JhaXNlXG5cbmxldCBiYWNrdHJhY2Vfc2xvdF9pc19pbmxpbmUgPSBmdW5jdGlvblxuICB8IEtub3duX2xvY2F0aW9uIGwgLT4gbC5pc19pbmxpbmVcbiAgfCBVbmtub3duX2xvY2F0aW9uIF8gLT4gZmFsc2VcblxudHlwZSBsb2NhdGlvbiA9IHtcbiAgZmlsZW5hbWUgOiBzdHJpbmc7XG4gIGxpbmVfbnVtYmVyIDogaW50O1xuICBzdGFydF9jaGFyIDogaW50O1xuICBlbmRfY2hhciA6IGludDtcbn1cblxubGV0IGJhY2t0cmFjZV9zbG90X2xvY2F0aW9uID0gZnVuY3Rpb25cbiAgfCBVbmtub3duX2xvY2F0aW9uIF8gLT4gTm9uZVxuICB8IEtub3duX2xvY2F0aW9uIGwgLT5cbiAgICBTb21lIHtcbiAgICAgIGZpbGVuYW1lICAgID0gbC5maWxlbmFtZTtcbiAgICAgIGxpbmVfbnVtYmVyID0gbC5saW5lX251bWJlcjtcbiAgICAgIHN0YXJ0X2NoYXIgID0gbC5zdGFydF9jaGFyO1xuICAgICAgZW5kX2NoYXIgICAgPSBsLmVuZF9jaGFyO1xuICAgIH1cblxubGV0IGJhY2t0cmFjZV9zbG90X2RlZm5hbWUgPSBmdW5jdGlvblxuICB8IFVua25vd25fbG9jYXRpb24gX1xuICB8IEtub3duX2xvY2F0aW9uIHsgZGVmbmFtZSA9IFwiXCIgfSAtPiBOb25lXG4gIHwgS25vd25fbG9jYXRpb24gbCAtPiBTb21lIGwuZGVmbmFtZVxuXG5sZXQgYmFja3RyYWNlX3Nsb3RzIHJhd19iYWNrdHJhY2UgPVxuICAoKiBUaGUgZG9jdW1lbnRhdGlvbiBvZiB0aGlzIGZ1bmN0aW9uIGd1YXJhbnRlZXMgdGhhdCBTb21lIGlzXG4gICAgIHJldHVybmVkIG9ubHkgaWYgYSBwYXJ0IG9mIHRoZSB0cmFjZSBpcyB1c2FibGUuIFRoaXMgZ2l2ZXMgdXNcbiAgICAgYSBiaXQgbW9yZSB3b3JrIHRoYW4ganVzdCBjb252ZXJ0X3Jhd19iYWNrdHJhY2UsIGJ1dCBpdCBtYWtlcyB0aGVcbiAgICAgQVBJIG1vcmUgdXNlci1mcmllbmRseSAtLSBvdGhlcndpc2UgbW9zdCB1c2VycyB3b3VsZCBoYXZlIHRvXG4gICAgIHJlaW1wbGVtZW50IHRoZSBcIlByb2dyYW0gbm90IGxpbmtlZCB3aXRoIC1nLCBzb3JyeVwiIGxvZ2ljXG4gICAgIHRoZW1zZWx2ZXMuICopXG4gIG1hdGNoIGNvbnZlcnRfcmF3X2JhY2t0cmFjZSByYXdfYmFja3RyYWNlIHdpdGhcbiAgICB8IE5vbmUgLT4gTm9uZVxuICAgIHwgU29tZSBiYWNrdHJhY2UgLT5cbiAgICAgIGxldCB1c2FibGVfc2xvdCA9IGZ1bmN0aW9uXG4gICAgICAgIHwgVW5rbm93bl9sb2NhdGlvbiBfIC0+IGZhbHNlXG4gICAgICAgIHwgS25vd25fbG9jYXRpb24gXyAtPiB0cnVlIGluXG4gICAgICBsZXQgcmVjIGV4aXN0c191c2FibGUgPSBmdW5jdGlvblxuICAgICAgICB8ICgtMSkgLT4gZmFsc2VcbiAgICAgICAgfCBpIC0+IHVzYWJsZV9zbG90IGJhY2t0cmFjZS4oaSkgfHwgZXhpc3RzX3VzYWJsZSAoaSAtIDEpIGluXG4gICAgICBpZiBleGlzdHNfdXNhYmxlIChBcnJheS5sZW5ndGggYmFja3RyYWNlIC0gMSlcbiAgICAgIHRoZW4gU29tZSBiYWNrdHJhY2VcbiAgICAgIGVsc2UgTm9uZVxuXG5sZXQgYmFja3RyYWNlX3Nsb3RzX29mX3Jhd19lbnRyeSBlbnRyeSA9XG4gIGJhY2t0cmFjZV9zbG90cyBbfCBlbnRyeSB8XVxuXG5tb2R1bGUgU2xvdCA9IHN0cnVjdFxuICB0eXBlIHQgPSBiYWNrdHJhY2Vfc2xvdFxuICBsZXQgZm9ybWF0ID0gZm9ybWF0X2JhY2t0cmFjZV9zbG90XG4gIGxldCBpc19yYWlzZSA9IGJhY2t0cmFjZV9zbG90X2lzX3JhaXNlXG4gIGxldCBpc19pbmxpbmUgPSBiYWNrdHJhY2Vfc2xvdF9pc19pbmxpbmVcbiAgbGV0IGxvY2F0aW9uID0gYmFja3RyYWNlX3Nsb3RfbG9jYXRpb25cbiAgbGV0IG5hbWUgPSBiYWNrdHJhY2Vfc2xvdF9kZWZuYW1lXG5lbmRcblxubGV0IHJhd19iYWNrdHJhY2VfbGVuZ3RoIGJ0ID0gQXJyYXkubGVuZ3RoIGJ0XG5cbmV4dGVybmFsIGdldF9yYXdfYmFja3RyYWNlX3Nsb3QgOlxuICByYXdfYmFja3RyYWNlIC0+IGludCAtPiByYXdfYmFja3RyYWNlX3Nsb3QgPSBcImNhbWxfcmF3X2JhY2t0cmFjZV9zbG90XCJcblxuZXh0ZXJuYWwgZ2V0X3Jhd19iYWNrdHJhY2VfbmV4dF9zbG90IDpcbiAgcmF3X2JhY2t0cmFjZV9zbG90IC0+IHJhd19iYWNrdHJhY2Vfc2xvdCBvcHRpb25cbiAgPSBcImNhbWxfcmF3X2JhY2t0cmFjZV9uZXh0X3Nsb3RcIlxuXG4oKiBjb25mdXNpbmdseSBuYW1lZDpcbiAgIHJldHVybnMgdGhlICpzdHJpbmcqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdsb2JhbCBjdXJyZW50IGJhY2t0cmFjZSAqKVxubGV0IGdldF9iYWNrdHJhY2UgKCkgPSByYXdfYmFja3RyYWNlX3RvX3N0cmluZyAoZ2V0X3Jhd19iYWNrdHJhY2UgKCkpXG5cbmV4dGVybmFsIHJlY29yZF9iYWNrdHJhY2U6IGJvb2wgLT4gdW5pdCA9IFwiY2FtbF9yZWNvcmRfYmFja3RyYWNlXCJcbmV4dGVybmFsIGJhY2t0cmFjZV9zdGF0dXM6IHVuaXQgLT4gYm9vbCA9IFwiY2FtbF9iYWNrdHJhY2Vfc3RhdHVzXCJcblxubGV0IHJlYyByZWdpc3Rlcl9wcmludGVyIGZuID1cbiAgbGV0IG9sZF9wcmludGVycyA9IEF0b21pYy5nZXQgcHJpbnRlcnMgaW5cbiAgbGV0IG5ld19wcmludGVycyA9IGZuIDo6IG9sZF9wcmludGVycyBpblxuICBsZXQgc3VjY2VzcyA9IEF0b21pYy5jb21wYXJlX2FuZF9zZXQgcHJpbnRlcnMgb2xkX3ByaW50ZXJzIG5ld19wcmludGVycyBpblxuICBpZiBub3Qgc3VjY2VzcyB0aGVuIHJlZ2lzdGVyX3ByaW50ZXIgZm5cblxuZXh0ZXJuYWwgZ2V0X2NhbGxzdGFjazogaW50IC0+IHJhd19iYWNrdHJhY2UgPSBcImNhbWxfZ2V0X2N1cnJlbnRfY2FsbHN0YWNrXCJcblxubGV0IGV4bl9zbG90IHggPVxuICBsZXQgeCA9IE9iai5yZXByIHggaW5cbiAgaWYgT2JqLnRhZyB4ID0gMCB0aGVuIE9iai5maWVsZCB4IDAgZWxzZSB4XG5cbmxldCBleG5fc2xvdF9pZCB4ID1cbiAgbGV0IHNsb3QgPSBleG5fc2xvdCB4IGluXG4gIChPYmoub2JqIChPYmouZmllbGQgc2xvdCAxKSA6IGludClcblxubGV0IGV4bl9zbG90X25hbWUgeCA9XG4gIGxldCBzbG90ID0gZXhuX3Nsb3QgeCBpblxuICAoT2JqLm9iaiAoT2JqLmZpZWxkIHNsb3QgMCkgOiBzdHJpbmcpXG5cbmV4dGVybmFsIGdldF9kZWJ1Z19pbmZvX3N0YXR1cyA6IHVuaXQgLT4gaW50ID0gXCJjYW1sX21sX2RlYnVnX2luZm9fc3RhdHVzXCJcblxuKCogRGVzY3JpcHRpb25zIGZvciBlcnJvcnMgaW4gc3RhcnR1cC5oLiBTZWUgYWxzbyBiYWNrdHJhY2UuYyAqKVxubGV0IGVycm9ycyA9IFt8IFwiXCI7XG4gICgqIEZJTEVfTk9UX0ZPVU5EICopXG4gIFwiKENhbm5vdCBwcmludCBsb2NhdGlvbnM6XFxuIFxcXG4gICAgICBieXRlY29kZSBleGVjdXRhYmxlIHByb2dyYW0gZmlsZSBub3QgZm91bmQpXCI7XG4gICgqIEJBRF9CWVRFQ09ERSAqKVxuICBcIihDYW5ub3QgcHJpbnQgbG9jYXRpb25zOlxcbiBcXFxuICAgICAgYnl0ZWNvZGUgZXhlY3V0YWJsZSBwcm9ncmFtIGZpbGUgYXBwZWFycyB0byBiZSBjb3JydXB0KVwiO1xuICAoKiBXUk9OR19NQUdJQyAqKVxuICBcIihDYW5ub3QgcHJpbnQgbG9jYXRpb25zOlxcbiBcXFxuICAgICAgYnl0ZWNvZGUgZXhlY3V0YWJsZSBwcm9ncmFtIGZpbGUgaGFzIHdyb25nIG1hZ2ljIG51bWJlcilcIjtcbiAgKCogTk9fRkRTICopXG4gIFwiKENhbm5vdCBwcmludCBsb2NhdGlvbnM6XFxuIFxcXG4gICAgICBieXRlY29kZSBleGVjdXRhYmxlIHByb2dyYW0gZmlsZSBjYW5ub3QgYmUgb3BlbmVkO1xcbiBcXFxuICAgICAgLS0gdG9vIG1hbnkgb3BlbiBmaWxlcy4gVHJ5IHJ1bm5pbmcgd2l0aCBPQ0FNTFJVTlBBUkFNPWI9MilcIlxufF1cblxubGV0IGRlZmF1bHRfdW5jYXVnaHRfZXhjZXB0aW9uX2hhbmRsZXIgZXhuIHJhd19iYWNrdHJhY2UgPVxuICBlcHJpbnRmIFwiRmF0YWwgZXJyb3I6IGV4Y2VwdGlvbiAlc1xcblwiICh0b19zdHJpbmcgZXhuKTtcbiAgcHJpbnRfcmF3X2JhY2t0cmFjZSBzdGRlcnIgcmF3X2JhY2t0cmFjZTtcbiAgbGV0IHN0YXR1cyA9IGdldF9kZWJ1Z19pbmZvX3N0YXR1cyAoKSBpblxuICBpZiBzdGF0dXMgPCAwIHRoZW5cbiAgICBwcmVycl9lbmRsaW5lIGVycm9ycy4oYWJzIHN0YXR1cyk7XG4gIGZsdXNoIHN0ZGVyclxuXG5sZXQgdW5jYXVnaHRfZXhjZXB0aW9uX2hhbmRsZXIgPSByZWYgZGVmYXVsdF91bmNhdWdodF9leGNlcHRpb25faGFuZGxlclxuXG5sZXQgc2V0X3VuY2F1Z2h0X2V4Y2VwdGlvbl9oYW5kbGVyIGZuID0gdW5jYXVnaHRfZXhjZXB0aW9uX2hhbmRsZXIgOj0gZm5cblxubGV0IGVtcHR5X2JhY2t0cmFjZSA6IHJhd19iYWNrdHJhY2UgPSBbfCB8XVxuXG5sZXQgdHJ5X2dldF9yYXdfYmFja3RyYWNlICgpID1cbiAgdHJ5XG4gICAgZ2V0X3Jhd19iYWNrdHJhY2UgKClcbiAgd2l0aCBfICgqIE91dF9vZl9tZW1vcnk/ICopIC0+XG4gICAgZW1wdHlfYmFja3RyYWNlXG5cbmxldCBoYW5kbGVfdW5jYXVnaHRfZXhjZXB0aW9uJyBleG4gZGVidWdnZXJfaW5fdXNlID1cbiAgdHJ5XG4gICAgKCogR2V0IHRoZSBiYWNrdHJhY2Ugbm93LCBpbiBjYXNlIG9uZSBvZiB0aGUgW2F0X2V4aXRdIGZ1bmN0aW9uXG4gICAgICAgZGVzdHJveXMgaXQuICopXG4gICAgbGV0IHJhd19iYWNrdHJhY2UgPVxuICAgICAgaWYgZGVidWdnZXJfaW5fdXNlICgqIFNhbWUgdGVzdCBhcyBpbiBbcnVudGltZS9wcmludGV4Yy5jXSAqKSB0aGVuXG4gICAgICAgIGVtcHR5X2JhY2t0cmFjZVxuICAgICAgZWxzZVxuICAgICAgICB0cnlfZ2V0X3Jhd19iYWNrdHJhY2UgKClcbiAgICBpblxuICAgICh0cnkgU3RkbGliLmRvX2F0X2V4aXQgKCkgd2l0aCBfIC0+ICgpKTtcbiAgICB0cnlcbiAgICAgICF1bmNhdWdodF9leGNlcHRpb25faGFuZGxlciBleG4gcmF3X2JhY2t0cmFjZVxuICAgIHdpdGggZXhuJyAtPlxuICAgICAgbGV0IHJhd19iYWNrdHJhY2UnID0gdHJ5X2dldF9yYXdfYmFja3RyYWNlICgpIGluXG4gICAgICBlcHJpbnRmIFwiRmF0YWwgZXJyb3I6IGV4Y2VwdGlvbiAlc1xcblwiICh0b19zdHJpbmcgZXhuKTtcbiAgICAgIHByaW50X3Jhd19iYWNrdHJhY2Ugc3RkZXJyIHJhd19iYWNrdHJhY2U7XG4gICAgICBlcHJpbnRmIFwiRmF0YWwgZXJyb3IgaW4gdW5jYXVnaHQgZXhjZXB0aW9uIGhhbmRsZXI6IGV4Y2VwdGlvbiAlc1xcblwiXG4gICAgICAgICh0b19zdHJpbmcgZXhuJyk7XG4gICAgICBwcmludF9yYXdfYmFja3RyYWNlIHN0ZGVyciByYXdfYmFja3RyYWNlJztcbiAgICAgIGZsdXNoIHN0ZGVyclxuICB3aXRoXG4gICAgfCBPdXRfb2ZfbWVtb3J5IC0+XG4gICAgICAgIHByZXJyX2VuZGxpbmVcbiAgICAgICAgICBcIkZhdGFsIGVycm9yOiBvdXQgb2YgbWVtb3J5IGluIHVuY2F1Z2h0IGV4Y2VwdGlvbiBoYW5kbGVyXCJcblxuKCogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgW2NhbWxfZmF0YWxfdW5jYXVnaHRfZXhjZXB0aW9uXSBpblxuICAgW3J1bnRpbWUvcHJpbnRleGMuY10gd2hpY2ggZXhwZWN0cyBubyBleGNlcHRpb24gaXMgcmFpc2VkLiAqKVxubGV0IGhhbmRsZV91bmNhdWdodF9leGNlcHRpb24gZXhuIGRlYnVnZ2VyX2luX3VzZSA9XG4gIHRyeVxuICAgIGhhbmRsZV91bmNhdWdodF9leGNlcHRpb24nIGV4biBkZWJ1Z2dlcl9pbl91c2VcbiAgd2l0aCBfIC0+XG4gICAgKCogVGhlcmUgaXMgbm90IG11Y2ggd2UgY2FuIGRvIGF0IHRoaXMgcG9pbnQgKilcbiAgICAoKVxuXG5leHRlcm5hbCByZWdpc3Rlcl9uYW1lZF92YWx1ZSA6IHN0cmluZyAtPiAnYSAtPiB1bml0XG4gID0gXCJjYW1sX3JlZ2lzdGVyX25hbWVkX3ZhbHVlXCJcblxubGV0ICgpID1cbiAgcmVnaXN0ZXJfbmFtZWRfdmFsdWUgXCJQcmludGV4Yy5oYW5kbGVfdW5jYXVnaHRfZXhjZXB0aW9uXCJcbiAgICBoYW5kbGVfdW5jYXVnaHRfZXhjZXB0aW9uXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgT0NhbWwgcHJvZ3JhbW1lcnMgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDE4IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbmV4dGVybmFsIGlkIDogJ2EgLT4gJ2EgPSBcIiVpZGVudGl0eVwiXG5sZXQgY29uc3QgYyBfID0gY1xubGV0IGZsaXAgZiB4IHkgPSBmIHkgeFxubGV0IG5lZ2F0ZSBwIHYgPSBub3QgKHAgdilcblxuZXhjZXB0aW9uIEZpbmFsbHlfcmFpc2VkIG9mIGV4blxuXG5sZXQgKCkgPSBQcmludGV4Yy5yZWdpc3Rlcl9wcmludGVyIEBAIGZ1bmN0aW9uXG58IEZpbmFsbHlfcmFpc2VkIGV4biAtPiBTb21lIChcIkZ1bi5GaW5hbGx5X3JhaXNlZDogXCIgXiBQcmludGV4Yy50b19zdHJpbmcgZXhuKVxufCBfIC0+IE5vbmVcblxubGV0IHByb3RlY3QgfihmaW5hbGx5IDogdW5pdCAtPiB1bml0KSB3b3JrID1cbiAgbGV0IGZpbmFsbHlfbm9fZXhuICgpID1cbiAgICB0cnkgZmluYWxseSAoKSB3aXRoIGUgLT5cbiAgICAgIGxldCBidCA9IFByaW50ZXhjLmdldF9yYXdfYmFja3RyYWNlICgpIGluXG4gICAgICBQcmludGV4Yy5yYWlzZV93aXRoX2JhY2t0cmFjZSAoRmluYWxseV9yYWlzZWQgZSkgYnRcbiAgaW5cbiAgbWF0Y2ggd29yayAoKSB3aXRoXG4gIHwgcmVzdWx0IC0+IGZpbmFsbHlfbm9fZXhuICgpIDsgcmVzdWx0XG4gIHwgZXhjZXB0aW9uIHdvcmtfZXhuIC0+XG4gICAgICBsZXQgd29ya19idCA9IFByaW50ZXhjLmdldF9yYXdfYmFja3RyYWNlICgpIGluXG4gICAgICBmaW5hbGx5X25vX2V4biAoKSA7XG4gICAgICBQcmludGV4Yy5yYWlzZV93aXRoX2JhY2t0cmFjZSB3b3JrX2V4biB3b3JrX2J0XG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgIERhbWllbiBEb2xpZ2V6LCBwcm9qZXQgUGFyYSwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgIEphY3F1ZXMtSGVucmkgSm91cmRhbiwgcHJvamV0IEdhbGxpdW0sIElOUklBIFBhcmlzICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2LTIwMTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSAgICopXG4oKiAgICAgZXQgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbnR5cGUgc3RhdCA9IHtcbiAgbWlub3Jfd29yZHMgOiBmbG9hdDtcbiAgcHJvbW90ZWRfd29yZHMgOiBmbG9hdDtcbiAgbWFqb3Jfd29yZHMgOiBmbG9hdDtcbiAgbWlub3JfY29sbGVjdGlvbnMgOiBpbnQ7XG4gIG1ham9yX2NvbGxlY3Rpb25zIDogaW50O1xuICBoZWFwX3dvcmRzIDogaW50O1xuICBoZWFwX2NodW5rcyA6IGludDtcbiAgbGl2ZV93b3JkcyA6IGludDtcbiAgbGl2ZV9ibG9ja3MgOiBpbnQ7XG4gIGZyZWVfd29yZHMgOiBpbnQ7XG4gIGZyZWVfYmxvY2tzIDogaW50O1xuICBsYXJnZXN0X2ZyZWUgOiBpbnQ7XG4gIGZyYWdtZW50cyA6IGludDtcbiAgY29tcGFjdGlvbnMgOiBpbnQ7XG4gIHRvcF9oZWFwX3dvcmRzIDogaW50O1xuICBzdGFja19zaXplIDogaW50O1xuICBmb3JjZWRfbWFqb3JfY29sbGVjdGlvbnM6IGludDtcbn1cblxudHlwZSBjb250cm9sID0ge1xuICBtdXRhYmxlIG1pbm9yX2hlYXBfc2l6ZSA6IGludDtcbiAgbXV0YWJsZSBtYWpvcl9oZWFwX2luY3JlbWVudCA6IGludDtcbiAgbXV0YWJsZSBzcGFjZV9vdmVyaGVhZCA6IGludDtcbiAgbXV0YWJsZSB2ZXJib3NlIDogaW50O1xuICBtdXRhYmxlIG1heF9vdmVyaGVhZCA6IGludDtcbiAgbXV0YWJsZSBzdGFja19saW1pdCA6IGludDtcbiAgbXV0YWJsZSBhbGxvY2F0aW9uX3BvbGljeSA6IGludDtcbiAgd2luZG93X3NpemUgOiBpbnQ7XG4gIGN1c3RvbV9tYWpvcl9yYXRpbyA6IGludDtcbiAgY3VzdG9tX21pbm9yX3JhdGlvIDogaW50O1xuICBjdXN0b21fbWlub3JfbWF4X3NpemUgOiBpbnQ7XG59XG5cbmV4dGVybmFsIHN0YXQgOiB1bml0IC0+IHN0YXQgPSBcImNhbWxfZ2Nfc3RhdFwiXG5leHRlcm5hbCBxdWlja19zdGF0IDogdW5pdCAtPiBzdGF0ID0gXCJjYW1sX2djX3F1aWNrX3N0YXRcIlxuZXh0ZXJuYWwgY291bnRlcnMgOiB1bml0IC0+IChmbG9hdCAqIGZsb2F0ICogZmxvYXQpID0gXCJjYW1sX2djX2NvdW50ZXJzXCJcbmV4dGVybmFsIG1pbm9yX3dvcmRzIDogdW5pdCAtPiAoZmxvYXQgW0B1bmJveGVkXSlcbiAgPSBcImNhbWxfZ2NfbWlub3Jfd29yZHNcIiBcImNhbWxfZ2NfbWlub3Jfd29yZHNfdW5ib3hlZFwiXG5leHRlcm5hbCBnZXQgOiB1bml0IC0+IGNvbnRyb2wgPSBcImNhbWxfZ2NfZ2V0XCJcbmV4dGVybmFsIHNldCA6IGNvbnRyb2wgLT4gdW5pdCA9IFwiY2FtbF9nY19zZXRcIlxuZXh0ZXJuYWwgbWlub3IgOiB1bml0IC0+IHVuaXQgPSBcImNhbWxfZ2NfbWlub3JcIlxuZXh0ZXJuYWwgbWFqb3Jfc2xpY2UgOiBpbnQgLT4gaW50ID0gXCJjYW1sX2djX21ham9yX3NsaWNlXCJcbmV4dGVybmFsIG1ham9yIDogdW5pdCAtPiB1bml0ID0gXCJjYW1sX2djX21ham9yXCJcbmV4dGVybmFsIGZ1bGxfbWFqb3IgOiB1bml0IC0+IHVuaXQgPSBcImNhbWxfZ2NfZnVsbF9tYWpvclwiXG5leHRlcm5hbCBjb21wYWN0IDogdW5pdCAtPiB1bml0ID0gXCJjYW1sX2djX2NvbXBhY3Rpb25cIlxuZXh0ZXJuYWwgZ2V0X21pbm9yX2ZyZWUgOiB1bml0IC0+IGludCA9IFwiY2FtbF9nZXRfbWlub3JfZnJlZVwiXG5leHRlcm5hbCBnZXRfYnVja2V0IDogaW50IC0+IGludCA9IFwiY2FtbF9nZXRfbWFqb3JfYnVja2V0XCIgW0BAbm9hbGxvY11cbmV4dGVybmFsIGdldF9jcmVkaXQgOiB1bml0IC0+IGludCA9IFwiY2FtbF9nZXRfbWFqb3JfY3JlZGl0XCIgW0BAbm9hbGxvY11cbmV4dGVybmFsIGh1Z2VfZmFsbGJhY2tfY291bnQgOiB1bml0IC0+IGludCA9IFwiY2FtbF9nY19odWdlX2ZhbGxiYWNrX2NvdW50XCJcbmV4dGVybmFsIGV2ZW50bG9nX3BhdXNlIDogdW5pdCAtPiB1bml0ID0gXCJjYW1sX2V2ZW50bG9nX3BhdXNlXCJcbmV4dGVybmFsIGV2ZW50bG9nX3Jlc3VtZSA6IHVuaXQgLT4gdW5pdCA9IFwiY2FtbF9ldmVudGxvZ19yZXN1bWVcIlxuXG5vcGVuIFByaW50ZlxuXG5sZXQgcHJpbnRfc3RhdCBjID1cbiAgbGV0IHN0ID0gc3RhdCAoKSBpblxuICBmcHJpbnRmIGMgXCJtaW5vcl9jb2xsZWN0aW9uczogICAgICAlZFxcblwiIHN0Lm1pbm9yX2NvbGxlY3Rpb25zO1xuICBmcHJpbnRmIGMgXCJtYWpvcl9jb2xsZWN0aW9uczogICAgICAlZFxcblwiIHN0Lm1ham9yX2NvbGxlY3Rpb25zO1xuICBmcHJpbnRmIGMgXCJjb21wYWN0aW9uczogICAgICAgICAgICAlZFxcblwiIHN0LmNvbXBhY3Rpb25zO1xuICBmcHJpbnRmIGMgXCJmb3JjZWRfbWFqb3JfY29sbGVjdGlvbnM6ICVkXFxuXCIgc3QuZm9yY2VkX21ham9yX2NvbGxlY3Rpb25zO1xuICBmcHJpbnRmIGMgXCJcXG5cIjtcbiAgbGV0IGwxID0gU3RyaW5nLmxlbmd0aCAoc3ByaW50ZiBcIiUuMGZcIiBzdC5taW5vcl93b3JkcykgaW5cbiAgZnByaW50ZiBjIFwibWlub3Jfd29yZHM6ICAgICUqLjBmXFxuXCIgbDEgc3QubWlub3Jfd29yZHM7XG4gIGZwcmludGYgYyBcInByb21vdGVkX3dvcmRzOiAlKi4wZlxcblwiIGwxIHN0LnByb21vdGVkX3dvcmRzO1xuICBmcHJpbnRmIGMgXCJtYWpvcl93b3JkczogICAgJSouMGZcXG5cIiBsMSBzdC5tYWpvcl93b3JkcztcbiAgZnByaW50ZiBjIFwiXFxuXCI7XG4gIGxldCBsMiA9IFN0cmluZy5sZW5ndGggKHNwcmludGYgXCIlZFwiIHN0LnRvcF9oZWFwX3dvcmRzKSBpblxuICBmcHJpbnRmIGMgXCJ0b3BfaGVhcF93b3JkczogJSpkXFxuXCIgbDIgc3QudG9wX2hlYXBfd29yZHM7XG4gIGZwcmludGYgYyBcImhlYXBfd29yZHM6ICAgICAlKmRcXG5cIiBsMiBzdC5oZWFwX3dvcmRzO1xuICBmcHJpbnRmIGMgXCJsaXZlX3dvcmRzOiAgICAgJSpkXFxuXCIgbDIgc3QubGl2ZV93b3JkcztcbiAgZnByaW50ZiBjIFwiZnJlZV93b3JkczogICAgICUqZFxcblwiIGwyIHN0LmZyZWVfd29yZHM7XG4gIGZwcmludGYgYyBcImxhcmdlc3RfZnJlZTogICAlKmRcXG5cIiBsMiBzdC5sYXJnZXN0X2ZyZWU7XG4gIGZwcmludGYgYyBcImZyYWdtZW50czogICAgICAlKmRcXG5cIiBsMiBzdC5mcmFnbWVudHM7XG4gIGZwcmludGYgYyBcIlxcblwiO1xuICBmcHJpbnRmIGMgXCJsaXZlX2Jsb2NrczogJWRcXG5cIiBzdC5saXZlX2Jsb2NrcztcbiAgZnByaW50ZiBjIFwiZnJlZV9ibG9ja3M6ICVkXFxuXCIgc3QuZnJlZV9ibG9ja3M7XG4gIGZwcmludGYgYyBcImhlYXBfY2h1bmtzOiAlZFxcblwiIHN0LmhlYXBfY2h1bmtzXG5cblxubGV0IGFsbG9jYXRlZF9ieXRlcyAoKSA9XG4gIGxldCAobWksIHBybywgbWEpID0gY291bnRlcnMgKCkgaW5cbiAgKG1pICsuIG1hIC0uIHBybykgKi4gZmxvYXRfb2ZfaW50IChTeXMud29yZF9zaXplIC8gOClcblxuXG5leHRlcm5hbCBmaW5hbGlzZSA6ICgnYSAtPiB1bml0KSAtPiAnYSAtPiB1bml0ID0gXCJjYW1sX2ZpbmFsX3JlZ2lzdGVyXCJcbmV4dGVybmFsIGZpbmFsaXNlX2xhc3QgOiAodW5pdCAtPiB1bml0KSAtPiAnYSAtPiB1bml0ID1cbiAgXCJjYW1sX2ZpbmFsX3JlZ2lzdGVyX2NhbGxlZF93aXRob3V0X3ZhbHVlXCJcbmV4dGVybmFsIGZpbmFsaXNlX3JlbGVhc2UgOiB1bml0IC0+IHVuaXQgPSBcImNhbWxfZmluYWxfcmVsZWFzZVwiXG5cblxudHlwZSBhbGFybSA9IGJvb2wgcmVmXG50eXBlIGFsYXJtX3JlYyA9IHthY3RpdmUgOiBhbGFybTsgZiA6IHVuaXQgLT4gdW5pdH1cblxubGV0IHJlYyBjYWxsX2FsYXJtIGFyZWMgPVxuICBpZiAhKGFyZWMuYWN0aXZlKSB0aGVuIGJlZ2luXG4gICAgZmluYWxpc2UgY2FsbF9hbGFybSBhcmVjO1xuICAgIGFyZWMuZiAoKTtcbiAgZW5kXG5cblxubGV0IGNyZWF0ZV9hbGFybSBmID1cbiAgbGV0IGFyZWMgPSB7IGFjdGl2ZSA9IHJlZiB0cnVlOyBmID0gZiB9IGluXG4gIGZpbmFsaXNlIGNhbGxfYWxhcm0gYXJlYztcbiAgYXJlYy5hY3RpdmVcblxuXG5sZXQgZGVsZXRlX2FsYXJtIGEgPSBhIDo9IGZhbHNlXG5cbm1vZHVsZSBNZW1wcm9mID1cbiAgc3RydWN0XG4gICAgdHlwZSBhbGxvY2F0aW9uX3NvdXJjZSA9IE5vcm1hbCB8IE1hcnNoYWwgfCBDdXN0b21cbiAgICB0eXBlIGFsbG9jYXRpb24gPVxuICAgICAgeyBuX3NhbXBsZXMgOiBpbnQ7XG4gICAgICAgIHNpemUgOiBpbnQ7XG4gICAgICAgIHNvdXJjZSA6IGFsbG9jYXRpb25fc291cmNlO1xuICAgICAgICBjYWxsc3RhY2sgOiBQcmludGV4Yy5yYXdfYmFja3RyYWNlIH1cblxuICAgIHR5cGUgKCdtaW5vciwgJ21ham9yKSB0cmFja2VyID0ge1xuICAgICAgYWxsb2NfbWlub3I6IGFsbG9jYXRpb24gLT4gJ21pbm9yIG9wdGlvbjtcbiAgICAgIGFsbG9jX21ham9yOiBhbGxvY2F0aW9uIC0+ICdtYWpvciBvcHRpb247XG4gICAgICBwcm9tb3RlOiAnbWlub3IgLT4gJ21ham9yIG9wdGlvbjtcbiAgICAgIGRlYWxsb2NfbWlub3I6ICdtaW5vciAtPiB1bml0O1xuICAgICAgZGVhbGxvY19tYWpvcjogJ21ham9yIC0+IHVuaXQ7XG4gICAgfVxuXG4gICAgbGV0IG51bGxfdHJhY2tlciA9IHtcbiAgICAgIGFsbG9jX21pbm9yID0gKGZ1biBfIC0+IE5vbmUpO1xuICAgICAgYWxsb2NfbWFqb3IgPSAoZnVuIF8gLT4gTm9uZSk7XG4gICAgICBwcm9tb3RlID0gKGZ1biBfIC0+IE5vbmUpO1xuICAgICAgZGVhbGxvY19taW5vciA9IChmdW4gXyAtPiAoKSk7XG4gICAgICBkZWFsbG9jX21ham9yID0gKGZ1biBfIC0+ICgpKTtcbiAgICB9XG5cbiAgICBleHRlcm5hbCBjX3N0YXJ0IDpcbiAgICAgIGZsb2F0IC0+IGludCAtPiAoJ21pbm9yLCAnbWFqb3IpIHRyYWNrZXIgLT4gdW5pdFxuICAgICAgPSBcImNhbWxfbWVtcHJvZl9zdGFydFwiXG5cbiAgICBsZXQgc3RhcnRcbiAgICAgIH5zYW1wbGluZ19yYXRlXG4gICAgICA/KGNhbGxzdGFja19zaXplID0gbWF4X2ludClcbiAgICAgIHRyYWNrZXIgPVxuICAgICAgY19zdGFydCBzYW1wbGluZ19yYXRlIGNhbGxzdGFja19zaXplIHRyYWNrZXJcblxuICAgIGV4dGVybmFsIHN0b3AgOiB1bml0IC0+IHVuaXQgPSBcImNhbWxfbWVtcHJvZl9zdG9wXCJcbiAgZW5kXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIE1lc3NhZ2UgZGlnZXN0IChNRDUpICopXG5cbnR5cGUgdCA9IHN0cmluZ1xuXG5sZXQgY29tcGFyZSA9IFN0cmluZy5jb21wYXJlXG5sZXQgZXF1YWwgPSBTdHJpbmcuZXF1YWxcblxuZXh0ZXJuYWwgdW5zYWZlX3N0cmluZzogc3RyaW5nIC0+IGludCAtPiBpbnQgLT4gdCA9IFwiY2FtbF9tZDVfc3RyaW5nXCJcbmV4dGVybmFsIGNoYW5uZWw6IGluX2NoYW5uZWwgLT4gaW50IC0+IHQgPSBcImNhbWxfbWQ1X2NoYW5cIlxuXG5sZXQgc3RyaW5nIHN0ciA9XG4gIHVuc2FmZV9zdHJpbmcgc3RyIDAgKFN0cmluZy5sZW5ndGggc3RyKVxuXG5sZXQgYnl0ZXMgYiA9IHN0cmluZyAoQnl0ZXMudW5zYWZlX3RvX3N0cmluZyBiKVxuXG5sZXQgc3Vic3RyaW5nIHN0ciBvZnMgbGVuID1cbiAgaWYgb2ZzIDwgMCB8fCBsZW4gPCAwIHx8IG9mcyA+IFN0cmluZy5sZW5ndGggc3RyIC0gbGVuXG4gIHRoZW4gaW52YWxpZF9hcmcgXCJEaWdlc3Quc3Vic3RyaW5nXCJcbiAgZWxzZSB1bnNhZmVfc3RyaW5nIHN0ciBvZnMgbGVuXG5cbmxldCBzdWJieXRlcyBiIG9mcyBsZW4gPSBzdWJzdHJpbmcgKEJ5dGVzLnVuc2FmZV90b19zdHJpbmcgYikgb2ZzIGxlblxuXG5sZXQgZmlsZSBmaWxlbmFtZSA9XG4gIGxldCBpYyA9IG9wZW5faW5fYmluIGZpbGVuYW1lIGluXG4gIG1hdGNoIGNoYW5uZWwgaWMgKC0xKSB3aXRoXG4gICAgfCBkIC0+IGNsb3NlX2luIGljOyBkXG4gICAgfCBleGNlcHRpb24gZSAtPiBjbG9zZV9pbiBpYzsgcmFpc2UgZVxuXG5sZXQgb3V0cHV0IGNoYW4gZGlnZXN0ID1cbiAgb3V0cHV0X3N0cmluZyBjaGFuIGRpZ2VzdFxuXG5sZXQgaW5wdXQgY2hhbiA9IHJlYWxseV9pbnB1dF9zdHJpbmcgY2hhbiAxNlxuXG5sZXQgY2hhcl9oZXggbiA9XG4gIENoYXIudW5zYWZlX2NociAobiArIGlmIG4gPCAxMCB0aGVuIENoYXIuY29kZSAnMCcgZWxzZSAoQ2hhci5jb2RlICdhJyAtIDEwKSlcblxubGV0IHRvX2hleCBkID1cbiAgaWYgU3RyaW5nLmxlbmd0aCBkIDw+IDE2IHRoZW4gaW52YWxpZF9hcmcgXCJEaWdlc3QudG9faGV4XCI7XG4gIGxldCByZXN1bHQgPSBCeXRlcy5jcmVhdGUgMzIgaW5cbiAgZm9yIGkgPSAwIHRvIDE1IGRvXG4gICAgbGV0IHggPSBDaGFyLmNvZGUgZC5baV0gaW5cbiAgICBCeXRlcy51bnNhZmVfc2V0IHJlc3VsdCAoaSoyKSAoY2hhcl9oZXggKHggbHNyIDQpKTtcbiAgICBCeXRlcy51bnNhZmVfc2V0IHJlc3VsdCAoaSoyKzEpIChjaGFyX2hleCAoeCBsYW5kIDB4MGYpKTtcbiAgZG9uZTtcbiAgQnl0ZXMudW5zYWZlX3RvX3N0cmluZyByZXN1bHRcblxubGV0IGZyb21faGV4IHMgPVxuICBpZiBTdHJpbmcubGVuZ3RoIHMgPD4gMzIgdGhlbiBpbnZhbGlkX2FyZyBcIkRpZ2VzdC5mcm9tX2hleFwiO1xuICBsZXQgZGlnaXQgYyA9XG4gICAgbWF0Y2ggYyB3aXRoXG4gICAgfCAnMCcuLic5JyAtPiBDaGFyLmNvZGUgYyAtIENoYXIuY29kZSAnMCdcbiAgICB8ICdBJy4uJ0YnIC0+IENoYXIuY29kZSBjIC0gQ2hhci5jb2RlICdBJyArIDEwXG4gICAgfCAnYScuLidmJyAtPiBDaGFyLmNvZGUgYyAtIENoYXIuY29kZSAnYScgKyAxMFxuICAgIHwgXyAtPiByYWlzZSAoSW52YWxpZF9hcmd1bWVudCBcIkRpZ2VzdC5mcm9tX2hleFwiKVxuICBpblxuICBsZXQgYnl0ZSBpID0gZGlnaXQgcy5baV0gbHNsIDQgKyBkaWdpdCBzLltpKzFdIGluXG4gIGxldCByZXN1bHQgPSBCeXRlcy5jcmVhdGUgMTYgaW5cbiAgZm9yIGkgPSAwIHRvIDE1IGRvXG4gICAgQnl0ZXMuc2V0IHJlc3VsdCBpIChDaGFyLmNociAoYnl0ZSAoMiAqIGkpKSk7XG4gIGRvbmU7XG4gIEJ5dGVzLnVuc2FmZV90b19zdHJpbmcgcmVzdWx0XG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgIERhbWllbiBEb2xpZ2V6LCBwcm9qZXQgUGFyYSwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIFBzZXVkby1yYW5kb20gbnVtYmVyIGdlbmVyYXRvclxuICAgVGhpcyBpcyBhIGxhZ2dlZC1GaWJvbmFjY2kgRig1NSwgMjQsICspIHdpdGggYSBtb2RpZmllZCBhZGRpdGlvblxuICAgZnVuY3Rpb24gdG8gZW5oYW5jZSB0aGUgbWl4aW5nIG9mIGJpdHMuXG4gICBJZiB3ZSB1c2Ugbm9ybWFsIGFkZGl0aW9uLCB0aGUgbG93LW9yZGVyIGJpdCBmYWlscyB0ZXN0cyAxIGFuZCA3XG4gICBvZiB0aGUgRGllaGFyZCB0ZXN0IHN1aXRlLCBhbmQgYml0cyAxIGFuZCAyIGFsc28gZmFpbCB0ZXN0IDcuXG4gICBJZiB3ZSB1c2UgbXVsdGlwbGljYXRpb24gYXMgc3VnZ2VzdGVkIGJ5IE1hcnNhZ2xpYSwgaXQgZG9lc24ndCBmYXJlXG4gICBtdWNoIGJldHRlci5cbiAgIEJ5IG1peGluZyB0aGUgYml0cyBvZiBvbmUgb2YgdGhlIG51bWJlcnMgYmVmb3JlIGFkZGl0aW9uIChYT1IgdGhlXG4gICA1IGhpZ2gtb3JkZXIgYml0cyBpbnRvIHRoZSBsb3ctb3JkZXIgYml0cyksIHdlIGdldCBhIGdlbmVyYXRvciB0aGF0XG4gICBwYXNzZXMgYWxsIHRoZSBEaWVoYXJkIHRlc3RzLlxuKilcblxuZXh0ZXJuYWwgcmFuZG9tX3NlZWQ6IHVuaXQgLT4gaW50IGFycmF5ID0gXCJjYW1sX3N5c19yYW5kb21fc2VlZFwiXG5cbm1vZHVsZSBTdGF0ZSA9IHN0cnVjdFxuXG4gIHR5cGUgdCA9IHsgc3QgOiBpbnQgYXJyYXk7IG11dGFibGUgaWR4IDogaW50IH1cblxuICBsZXQgbmV3X3N0YXRlICgpID0geyBzdCA9IEFycmF5Lm1ha2UgNTUgMDsgaWR4ID0gMCB9XG4gIGxldCBhc3NpZ24gc3QxIHN0MiA9XG4gICAgQXJyYXkuYmxpdCBzdDIuc3QgMCBzdDEuc3QgMCA1NTtcbiAgICBzdDEuaWR4IDwtIHN0Mi5pZHhcblxuXG4gIGxldCBmdWxsX2luaXQgcyBzZWVkID1cbiAgICBsZXQgY29tYmluZSBhY2N1IHggPSBEaWdlc3Quc3RyaW5nIChhY2N1IF4gSW50LnRvX3N0cmluZyB4KSBpblxuICAgIGxldCBleHRyYWN0IGQgPVxuICAgICAgQ2hhci5jb2RlIGQuWzBdICsgKENoYXIuY29kZSBkLlsxXSBsc2wgOCkgKyAoQ2hhci5jb2RlIGQuWzJdIGxzbCAxNilcbiAgICAgICsgKENoYXIuY29kZSBkLlszXSBsc2wgMjQpXG4gICAgaW5cbiAgICBsZXQgc2VlZCA9IGlmIEFycmF5Lmxlbmd0aCBzZWVkID0gMCB0aGVuIFt8IDAgfF0gZWxzZSBzZWVkIGluXG4gICAgbGV0IGwgPSBBcnJheS5sZW5ndGggc2VlZCBpblxuICAgIGZvciBpID0gMCB0byA1NCBkb1xuICAgICAgcy5zdC4oaSkgPC0gaTtcbiAgICBkb25lO1xuICAgIGxldCBhY2N1ID0gcmVmIFwieFwiIGluXG4gICAgZm9yIGkgPSAwIHRvIDU0ICsgSW50Lm1heCA1NSBsIGRvXG4gICAgICBsZXQgaiA9IGkgbW9kIDU1IGluXG4gICAgICBsZXQgayA9IGkgbW9kIGwgaW5cbiAgICAgIGFjY3UgOj0gY29tYmluZSAhYWNjdSBzZWVkLihrKTtcbiAgICAgIHMuc3QuKGopIDwtIChzLnN0LihqKSBseG9yIGV4dHJhY3QgIWFjY3UpIGxhbmQgMHgzRkZGRkZGRjsgICgqIFBSIzU1NzUgKilcbiAgICBkb25lO1xuICAgIHMuaWR4IDwtIDBcblxuXG4gIGxldCBtYWtlIHNlZWQgPVxuICAgIGxldCByZXN1bHQgPSBuZXdfc3RhdGUgKCkgaW5cbiAgICBmdWxsX2luaXQgcmVzdWx0IHNlZWQ7XG4gICAgcmVzdWx0XG5cblxuICBsZXQgbWFrZV9zZWxmX2luaXQgKCkgPSBtYWtlIChyYW5kb21fc2VlZCAoKSlcblxuICBsZXQgY29weSBzID1cbiAgICBsZXQgcmVzdWx0ID0gbmV3X3N0YXRlICgpIGluXG4gICAgYXNzaWduIHJlc3VsdCBzO1xuICAgIHJlc3VsdFxuXG5cbiAgKCogUmV0dXJucyAzMCByYW5kb20gYml0cyBhcyBhbiBpbnRlZ2VyIDAgPD0geCA8IDEwNzM3NDE4MjQgKilcbiAgbGV0IGJpdHMgcyA9XG4gICAgcy5pZHggPC0gKHMuaWR4ICsgMSkgbW9kIDU1O1xuICAgIGxldCBjdXJ2YWwgPSBzLnN0LihzLmlkeCkgaW5cbiAgICBsZXQgbmV3dmFsID0gcy5zdC4oKHMuaWR4ICsgMjQpIG1vZCA1NSlcbiAgICAgICAgICAgICAgICAgKyAoY3VydmFsIGx4b3IgKChjdXJ2YWwgbHNyIDI1KSBsYW5kIDB4MUYpKSBpblxuICAgIGxldCBuZXd2YWwzMCA9IG5ld3ZhbCBsYW5kIDB4M0ZGRkZGRkYgaW4gICgqIFBSIzU1NzUgKilcbiAgICBzLnN0LihzLmlkeCkgPC0gbmV3dmFsMzA7XG4gICAgbmV3dmFsMzBcblxuXG4gIGxldCByZWMgaW50YXV4IHMgbiA9XG4gICAgbGV0IHIgPSBiaXRzIHMgaW5cbiAgICBsZXQgdiA9IHIgbW9kIG4gaW5cbiAgICBpZiByIC0gdiA+IDB4M0ZGRkZGRkYgLSBuICsgMSB0aGVuIGludGF1eCBzIG4gZWxzZSB2XG5cbiAgbGV0IGludCBzIGJvdW5kID1cbiAgICBpZiBib3VuZCA+IDB4M0ZGRkZGRkYgfHwgYm91bmQgPD0gMFxuICAgIHRoZW4gaW52YWxpZF9hcmcgXCJSYW5kb20uaW50XCJcbiAgICBlbHNlIGludGF1eCBzIGJvdW5kXG5cbiAgbGV0IHJlYyBpbnQ2M2F1eCBzIG4gPVxuICAgIGxldCBtYXhfaW50XzMyID0gKDEgbHNsIDMwKSArIDB4M0ZGRkZGRkYgaW4gKCogMHg3RkZGRkZGRiAqKVxuICAgIGxldCBiMSA9IGJpdHMgcyBpblxuICAgIGxldCBiMiA9IGJpdHMgcyBpblxuICAgIGxldCAociwgbWF4X2ludCkgPVxuICAgICAgaWYgbiA8PSBtYXhfaW50XzMyIHRoZW5cbiAgICAgICAgKCogMzEgcmFuZG9tIGJpdHMgb24gYm90aCA2NC1iaXQgT0NhbWwgYW5kIEphdmFTY3JpcHQuXG4gICAgICAgICAgIFVzZSB1cHBlciAxNSBiaXRzIG9mIGIxIGFuZCAxNiBiaXRzIG9mIGIyLiAqKVxuICAgICAgICBsZXQgYnBvcyA9XG4gICAgICAgICAgKCgoYjIgbGFuZCAweDNGRkZDMDAwKSBsc2wgMSkgbG9yIChiMSBsc3IgMTUpKVxuICAgICAgICBpblxuICAgICAgICAgIChicG9zLCBtYXhfaW50XzMyKVxuICAgICAgZWxzZVxuICAgICAgICBsZXQgYjMgPSBiaXRzIHMgaW5cbiAgICAgICAgKCogNjIgcmFuZG9tIGJpdHMgb24gNjQtYml0IE9DYW1sOyB1bnJlYWNoYWJsZSBvbiBKYXZhU2NyaXB0LlxuICAgICAgICAgICBVc2UgdXBwZXIgMjAgYml0cyBvZiBiMSBhbmQgMjEgYml0cyBvZiBiMiBhbmQgYjMuICopXG4gICAgICAgIGxldCBicG9zID1cbiAgICAgICAgICAoKCgoYjMgbGFuZCAweDNGRkZGRTAwKSBsc2wgMTIpIGxvciAoYjIgbHNyIDkpKSBsc2wgMjApXG4gICAgICAgICAgICBsb3IgKGIxIGxzciAxMClcbiAgICAgICAgaW5cbiAgICAgICAgICAoYnBvcywgbWF4X2ludClcbiAgICBpblxuICAgIGxldCB2ID0gciBtb2QgbiBpblxuICAgIGlmIHIgLSB2ID4gbWF4X2ludCAtIG4gKyAxIHRoZW4gaW50NjNhdXggcyBuIGVsc2UgdlxuXG4gIGxldCBmdWxsX2ludCBzIGJvdW5kID1cbiAgICBpZiBib3VuZCA8PSAwIHRoZW5cbiAgICAgIGludmFsaWRfYXJnIFwiUmFuZG9tLmZ1bGxfaW50XCJcbiAgICBlbHNlIGlmIGJvdW5kID4gMHgzRkZGRkZGRiB0aGVuXG4gICAgICBpbnQ2M2F1eCBzIGJvdW5kXG4gICAgZWxzZVxuICAgICAgaW50YXV4IHMgYm91bmRcblxuXG4gIGxldCByZWMgaW50MzJhdXggcyBuID1cbiAgICBsZXQgYjEgPSBJbnQzMi5vZl9pbnQgKGJpdHMgcykgaW5cbiAgICBsZXQgYjIgPSBJbnQzMi5zaGlmdF9sZWZ0IChJbnQzMi5vZl9pbnQgKGJpdHMgcyBsYW5kIDEpKSAzMCBpblxuICAgIGxldCByID0gSW50MzIubG9nb3IgYjEgYjIgaW5cbiAgICBsZXQgdiA9IEludDMyLnJlbSByIG4gaW5cbiAgICBpZiBJbnQzMi5zdWIgciB2ID4gSW50MzIuYWRkIChJbnQzMi5zdWIgSW50MzIubWF4X2ludCBuKSAxbFxuICAgIHRoZW4gaW50MzJhdXggcyBuXG4gICAgZWxzZSB2XG5cbiAgbGV0IGludDMyIHMgYm91bmQgPVxuICAgIGlmIGJvdW5kIDw9IDBsXG4gICAgdGhlbiBpbnZhbGlkX2FyZyBcIlJhbmRvbS5pbnQzMlwiXG4gICAgZWxzZSBpbnQzMmF1eCBzIGJvdW5kXG5cblxuICBsZXQgcmVjIGludDY0YXV4IHMgbiA9XG4gICAgbGV0IGIxID0gSW50NjQub2ZfaW50IChiaXRzIHMpIGluXG4gICAgbGV0IGIyID0gSW50NjQuc2hpZnRfbGVmdCAoSW50NjQub2ZfaW50IChiaXRzIHMpKSAzMCBpblxuICAgIGxldCBiMyA9IEludDY0LnNoaWZ0X2xlZnQgKEludDY0Lm9mX2ludCAoYml0cyBzIGxhbmQgNykpIDYwIGluXG4gICAgbGV0IHIgPSBJbnQ2NC5sb2dvciBiMSAoSW50NjQubG9nb3IgYjIgYjMpIGluXG4gICAgbGV0IHYgPSBJbnQ2NC5yZW0gciBuIGluXG4gICAgaWYgSW50NjQuc3ViIHIgdiA+IEludDY0LmFkZCAoSW50NjQuc3ViIEludDY0Lm1heF9pbnQgbikgMUxcbiAgICB0aGVuIGludDY0YXV4IHMgblxuICAgIGVsc2UgdlxuXG4gIGxldCBpbnQ2NCBzIGJvdW5kID1cbiAgICBpZiBib3VuZCA8PSAwTFxuICAgIHRoZW4gaW52YWxpZF9hcmcgXCJSYW5kb20uaW50NjRcIlxuICAgIGVsc2UgaW50NjRhdXggcyBib3VuZFxuXG5cbiAgbGV0IG5hdGl2ZWludCA9XG4gICAgaWYgTmF0aXZlaW50LnNpemUgPSAzMlxuICAgIHRoZW4gZnVuIHMgYm91bmQgLT4gTmF0aXZlaW50Lm9mX2ludDMyIChpbnQzMiBzIChOYXRpdmVpbnQudG9faW50MzIgYm91bmQpKVxuICAgIGVsc2UgZnVuIHMgYm91bmQgLT4gSW50NjQudG9fbmF0aXZlaW50IChpbnQ2NCBzIChJbnQ2NC5vZl9uYXRpdmVpbnQgYm91bmQpKVxuXG5cbiAgKCogUmV0dXJucyBhIGZsb2F0IDAgPD0geCA8PSAxIHdpdGggYXQgbW9zdCA2MCBiaXRzIG9mIHByZWNpc2lvbi4gKilcbiAgbGV0IHJhd2Zsb2F0IHMgPVxuICAgIGxldCBzY2FsZSA9IDEwNzM3NDE4MjQuMCAgKCogMl4zMCAqKVxuICAgIGFuZCByMSA9IFN0ZGxpYi5mbG9hdCAoYml0cyBzKVxuICAgIGFuZCByMiA9IFN0ZGxpYi5mbG9hdCAoYml0cyBzKVxuICAgIGluIChyMSAvLiBzY2FsZSArLiByMikgLy4gc2NhbGVcblxuXG4gIGxldCBmbG9hdCBzIGJvdW5kID0gcmF3ZmxvYXQgcyAqLiBib3VuZFxuXG4gIGxldCBib29sIHMgPSAoYml0cyBzIGxhbmQgMSA9IDApXG5cbiAgbGV0IGJpdHMzMiBzID1cbiAgICBsZXQgYjEgPSBJbnQzMi4oc2hpZnRfcmlnaHRfbG9naWNhbCAob2ZfaW50IChiaXRzIHMpKSAxNCkgaW4gICgqIDE2IGJpdHMgKilcbiAgICBsZXQgYjIgPSBJbnQzMi4oc2hpZnRfcmlnaHRfbG9naWNhbCAob2ZfaW50IChiaXRzIHMpKSAxNCkgaW4gICgqIDE2IGJpdHMgKilcbiAgICBJbnQzMi4obG9nb3IgYjEgKHNoaWZ0X2xlZnQgYjIgMTYpKVxuXG4gIGxldCBiaXRzNjQgcyA9XG4gICAgbGV0IGIxID0gSW50NjQuKHNoaWZ0X3JpZ2h0X2xvZ2ljYWwgKG9mX2ludCAoYml0cyBzKSkgOSkgaW4gICgqIDIxIGJpdHMgKilcbiAgICBsZXQgYjIgPSBJbnQ2NC4oc2hpZnRfcmlnaHRfbG9naWNhbCAob2ZfaW50IChiaXRzIHMpKSA5KSBpbiAgKCogMjEgYml0cyAqKVxuICAgIGxldCBiMyA9IEludDY0LihzaGlmdF9yaWdodF9sb2dpY2FsIChvZl9pbnQgKGJpdHMgcykpIDgpIGluICAoKiAyMiBiaXRzICopXG4gICAgSW50NjQuKGxvZ29yIGIxIChsb2dvciAoc2hpZnRfbGVmdCBiMiAyMSkgKHNoaWZ0X2xlZnQgYjMgNDIpKSlcblxuICBsZXQgbmF0aXZlYml0cyA9XG4gICAgaWYgTmF0aXZlaW50LnNpemUgPSAzMlxuICAgIHRoZW4gZnVuIHMgLT4gTmF0aXZlaW50Lm9mX2ludDMyIChiaXRzMzIgcylcbiAgICBlbHNlIGZ1biBzIC0+IEludDY0LnRvX25hdGl2ZWludCAoYml0czY0IHMpXG5cbmVuZFxuXG4oKiBUaGlzIGlzIHRoZSBzdGF0ZSB5b3UgZ2V0IHdpdGggW2luaXQgMjcxODI4MThdIGFuZCB0aGVuIGFwcGx5aW5nXG4gICB0aGUgXCJsYW5kIDB4M0ZGRkZGRkZcIiBmaWx0ZXIgdG8gdGhlbS4gIFNlZSAjNTU3NSwgIzU3OTMsICM1OTc3LiAqKVxubGV0IGRlZmF1bHQgPSB7XG4gIFN0YXRlLnN0ID0gW3xcbiAgICAgIDB4M2FlMjUyMmI7IDB4MWQ4ZDQ2MzQ7IDB4MTViNGZhZDA7IDB4MThiMTRhY2U7IDB4MTJmOGEzYzQ7IDB4M2IwODZjNDc7XG4gICAgICAweDE2ZDQ2N2Q2OyAweDEwMWQ5MWM3OyAweDMyMWRmMTc3OyAweDAxNzZjMTkzOyAweDFmZjcyYmYxOyAweDFlODg5MTA5O1xuICAgICAgMHgwYjQ2NGIxODsgMHgyYjg2Yjk3YzsgMHgwODkxZGE0ODsgMHgwMzEzNzQ2MzsgMHgwODVhYzVhMTsgMHgxNWQ2MWYyZjtcbiAgICAgIDB4M2JjZWQzNTk7IDB4MjljMWMxMzI7IDB4M2E4Njc2NmU7IDB4MzY2ZDhjODY7IDB4MWY1YjYyMjI7IDB4M2NlMWI1OWY7XG4gICAgICAweDJlYmY3OGUxOyAweDI3Y2QxYjg2OyAweDI1OGYzZGMzOyAweDM4OWE4MTk0OyAweDAyZTRjNDRjOyAweDE4YzQzZjdkO1xuICAgICAgMHgwZjZlNTM0ZjsgMHgxZTdkZjM1OTsgMHgwNTVkMGI3ZTsgMHgxMGU4NGU3ZTsgMHgxMjYxOThlNDsgMHgwZTc3MjJjYjtcbiAgICAgIDB4MWNiZWRlMjg7IDB4MzM5MWI5NjQ7IDB4M2Q0MGU5MmE7IDB4MGM1OTkzM2Q7IDB4MGI4Y2QwYjc7IDB4MjRlZmZmMWM7XG4gICAgICAweDI4MDNmZGFhOyAweDA4ZWJjNzJlOyAweDBmNTIyZTMyOyAweDA1Mzk4ZWRjOyAweDIxNDRhMDRjOyAweDBhZWYzY2JkO1xuICAgICAgMHgwMWFkNDcxOTsgMHgzNWI5M2NkNjsgMHgyYTU1OWQ0ZjsgMHgxZTZmZDc2ODsgMHgyNmUyN2YzNjsgMHgxODZmMThjMztcbiAgICAgIDB4MmZiZjk2N2E7XG4gICAgfF07XG4gIFN0YXRlLmlkeCA9IDA7XG59XG5cbmxldCBiaXRzICgpID0gU3RhdGUuYml0cyBkZWZhdWx0XG5sZXQgaW50IGJvdW5kID0gU3RhdGUuaW50IGRlZmF1bHQgYm91bmRcbmxldCBmdWxsX2ludCBib3VuZCA9IFN0YXRlLmZ1bGxfaW50IGRlZmF1bHQgYm91bmRcbmxldCBpbnQzMiBib3VuZCA9IFN0YXRlLmludDMyIGRlZmF1bHQgYm91bmRcbmxldCBuYXRpdmVpbnQgYm91bmQgPSBTdGF0ZS5uYXRpdmVpbnQgZGVmYXVsdCBib3VuZFxubGV0IGludDY0IGJvdW5kID0gU3RhdGUuaW50NjQgZGVmYXVsdCBib3VuZFxubGV0IGZsb2F0IHNjYWxlID0gU3RhdGUuZmxvYXQgZGVmYXVsdCBzY2FsZVxubGV0IGJvb2wgKCkgPSBTdGF0ZS5ib29sIGRlZmF1bHRcbmxldCBiaXRzMzIgKCkgPSBTdGF0ZS5iaXRzMzIgZGVmYXVsdFxubGV0IGJpdHM2NCAoKSA9IFN0YXRlLmJpdHM2NCBkZWZhdWx0XG5sZXQgbmF0aXZlYml0cyAoKSA9IFN0YXRlLm5hdGl2ZWJpdHMgZGVmYXVsdFxuXG5sZXQgZnVsbF9pbml0IHNlZWQgPSBTdGF0ZS5mdWxsX2luaXQgZGVmYXVsdCBzZWVkXG5sZXQgaW5pdCBzZWVkID0gU3RhdGUuZnVsbF9pbml0IGRlZmF1bHQgW3wgc2VlZCB8XVxubGV0IHNlbGZfaW5pdCAoKSA9IGZ1bGxfaW5pdCAocmFuZG9tX3NlZWQoKSlcblxuKCogTWFuaXB1bGF0aW5nIHRoZSBjdXJyZW50IHN0YXRlLiAqKVxuXG5sZXQgZ2V0X3N0YXRlICgpID0gU3RhdGUuY29weSBkZWZhdWx0XG5sZXQgc2V0X3N0YXRlIHMgPSBTdGF0ZS5hc3NpZ24gZGVmYXVsdCBzXG5cbigqKioqKioqKioqKioqKioqKioqKlxuXG4oKiBUZXN0IGZ1bmN0aW9ucy4gIE5vdCBpbmNsdWRlZCBpbiB0aGUgbGlicmFyeS5cbiAgIFRoZSBbY2hpc3F1YXJlXSBmdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkIHdpdGggbiA+IDEwci5cbiAgIEl0IHJldHVybnMgYSB0cmlwbGUgKGxvdywgYWN0dWFsLCBoaWdoKS5cbiAgIElmIGxvdyA8PSBhY3R1YWwgPD0gaGlnaCwgdGhlIFtnXSBmdW5jdGlvbiBwYXNzZWQgdGhlIHRlc3QsXG4gICBvdGhlcndpc2UgaXQgZmFpbGVkLlxuXG4gIFNvbWUgcmVzdWx0czpcblxuaW5pdCAyNzE4MjgxODsgY2hpc3F1YXJlIGludCAxMDAwMDAgMTAwMFxuaW5pdCAyNzE4MjgxODsgY2hpc3F1YXJlIGludCAxMDAwMDAgMTAwXG5pbml0IDI3MTgyODE4OyBjaGlzcXVhcmUgaW50IDEwMDAwMCA1MDAwXG5pbml0IDI3MTgyODE4OyBjaGlzcXVhcmUgaW50IDEwMDAwMDAgMTAwMFxuaW5pdCAyNzE4MjgxODsgY2hpc3F1YXJlIGludCAxMDAwMDAgMTAyNFxuaW5pdCAyOTk3OTI2NDM7IGNoaXNxdWFyZSBpbnQgMTAwMDAwIDEwMjRcbmluaXQgMTQxNDIxMzY7IGNoaXNxdWFyZSBpbnQgMTAwMDAwIDEwMjRcbmluaXQgMjcxODI4MTg7IGluaXRfZGlmZiAxMDI0OyBjaGlzcXVhcmUgZGlmZiAxMDAwMDAgMTAyNFxuaW5pdCAyNzE4MjgxODsgaW5pdF9kaWZmIDEwMDsgY2hpc3F1YXJlIGRpZmYgMTAwMDAwIDEwMFxuaW5pdCAyNzE4MjgxODsgaW5pdF9kaWZmMiAxMDI0OyBjaGlzcXVhcmUgZGlmZjIgMTAwMDAwIDEwMjRcbmluaXQgMjcxODI4MTg7IGluaXRfZGlmZjIgMTAwOyBjaGlzcXVhcmUgZGlmZjIgMTAwMDAwIDEwMFxuaW5pdCAxNDE0MjEzNjsgaW5pdF9kaWZmMiAxMDA7IGNoaXNxdWFyZSBkaWZmMiAxMDAwMDAgMTAwXG5pbml0IDI5OTc5MjY0MzsgaW5pdF9kaWZmMiAxMDA7IGNoaXNxdWFyZSBkaWZmMiAxMDAwMDAgMTAwXG4tIDogZmxvYXQgKiBmbG9hdCAqIGZsb2F0ID0gKDkzNi43NTQ0NDY3OTY2MzI0NjUsIDk5Ny41LCAxMDYzLjI0NTU1MzIwMzM2NzU0KVxuIyAtIDogZmxvYXQgKiBmbG9hdCAqIGZsb2F0ID0gKDgwLiwgODkuNzQwMDAwMDAwMDA1MjM4NywgMTIwLilcbiMgLSA6IGZsb2F0ICogZmxvYXQgKiBmbG9hdCA9ICg0ODU4LjU3ODY0Mzc2MjY5LCA1MDQ1LjUsIDUxNDEuNDIxMzU2MjM3MzEpXG4jIC0gOiBmbG9hdCAqIGZsb2F0ICogZmxvYXQgPVxuKDkzNi43NTQ0NDY3OTY2MzI0NjUsIDk0NC44MDU5OTk5OTk5ODIzMDUsIDEwNjMuMjQ1NTUzMjAzMzY3NTQpXG4jIC0gOiBmbG9hdCAqIGZsb2F0ICogZmxvYXQgPSAoOTYwLiwgMTAxOS4xOTc0NDAwMDAwMDM1NSwgMTA4OC4pXG4jIC0gOiBmbG9hdCAqIGZsb2F0ICogZmxvYXQgPSAoOTYwLiwgMTA1OS4zMTc3NjAwMDAwMDUzNiwgMTA4OC4pXG4jIC0gOiBmbG9hdCAqIGZsb2F0ICogZmxvYXQgPSAoOTYwLiwgMTAzOS45ODQ2Mzk5OTk5OTUxMiwgMTA4OC4pXG4jIC0gOiBmbG9hdCAqIGZsb2F0ICogZmxvYXQgPSAoOTYwLiwgMTA1NC4zODIwNzk5OTk5OTU3NywgMTA4OC4pXG4jIC0gOiBmbG9hdCAqIGZsb2F0ICogZmxvYXQgPSAoODAuLCA5MC4wOTYwMDAwMDAwMDUsIDEyMC4pXG4jIC0gOiBmbG9hdCAqIGZsb2F0ICogZmxvYXQgPSAoOTYwLiwgMTA3Ni43ODcyMDAwMDAwMDYxMiwgMTA4OC4pXG4jIC0gOiBmbG9hdCAqIGZsb2F0ICogZmxvYXQgPSAoODAuLCA4NS4xNzYwMDAwMDAwMDY3NTIxLCAxMjAuKVxuIyAtIDogZmxvYXQgKiBmbG9hdCAqIGZsb2F0ID0gKDgwLiwgODUuMjE2MDAwMDAwMDAwMzQ5MiwgMTIwLilcbiMgLSA6IGZsb2F0ICogZmxvYXQgKiBmbG9hdCA9ICg4MC4sIDgwLjYyMjAwMDAwMDAwMzAyNjgsIDEyMC4pXG5cbiopXG5cbigqIFJldHVybiB0aGUgc3VtIG9mIHRoZSBzcXVhcmVzIG9mIHZbaTAsaTFbICopXG5sZXQgcmVjIHN1bXNxIHYgaTAgaTEgPVxuICBpZiBpMCA+PSBpMSB0aGVuIDAuMFxuICBlbHNlIGlmIGkxID0gaTAgKyAxIHRoZW4gU3RkbGliLmZsb2F0IHYuKGkwKSAqLiBTdGRsaWIuZmxvYXQgdi4oaTApXG4gIGVsc2Ugc3Vtc3EgdiBpMCAoKGkwK2kxKS8yKSArLiBzdW1zcSB2ICgoaTAraTEpLzIpIGkxXG5cblxubGV0IGNoaXNxdWFyZSBnIG4gciA9XG4gIGlmIG4gPD0gMTAgKiByIHRoZW4gaW52YWxpZF9hcmcgXCJjaGlzcXVhcmVcIjtcbiAgbGV0IGYgPSBBcnJheS5tYWtlIHIgMCBpblxuICBmb3IgaSA9IDEgdG8gbiBkb1xuICAgIGxldCB0ID0gZyByIGluXG4gICAgZi4odCkgPC0gZi4odCkgKyAxXG4gIGRvbmU7XG4gIGxldCB0ID0gc3Vtc3EgZiAwIHJcbiAgYW5kIHIgPSBTdGRsaWIuZmxvYXQgclxuICBhbmQgbiA9IFN0ZGxpYi5mbG9hdCBuIGluXG4gIGxldCBzciA9IDIuMCAqLiBzcXJ0IHIgaW5cbiAgKHIgLS4gc3IsICAgKHIgKi4gdCAvLiBuKSAtLiBuLCAgIHIgKy4gc3IpXG5cblxuKCogVGhpcyBpcyB0byB0ZXN0IGZvciBsaW5lYXIgZGVwZW5kZW5jaWVzIGJldHdlZW4gc3VjY2Vzc2l2ZSByYW5kb20gbnVtYmVycy5cbiopXG5sZXQgc3QgPSByZWYgMFxubGV0IGluaXRfZGlmZiByID0gc3QgOj0gaW50IHJcbmxldCBkaWZmIHIgPVxuICBsZXQgeDEgPSAhc3RcbiAgYW5kIHgyID0gaW50IHJcbiAgaW5cbiAgc3QgOj0geDI7XG4gIGlmIHgxID49IHgyIHRoZW5cbiAgICB4MSAtIHgyXG4gIGVsc2VcbiAgICByICsgeDEgLSB4MlxuXG5cbmxldCBzdDEgPSByZWYgMFxuYW5kIHN0MiA9IHJlZiAwXG5cblxuKCogVGhpcyBpcyB0byB0ZXN0IGZvciBxdWFkcmF0aWMgZGVwZW5kZW5jaWVzIGJldHdlZW4gc3VjY2Vzc2l2ZSByYW5kb21cbiAgIG51bWJlcnMuXG4qKVxubGV0IGluaXRfZGlmZjIgciA9IHN0MSA6PSBpbnQgcjsgc3QyIDo9IGludCByXG5sZXQgZGlmZjIgciA9XG4gIGxldCB4MSA9ICFzdDFcbiAgYW5kIHgyID0gIXN0MlxuICBhbmQgeDMgPSBpbnQgclxuICBpblxuICBzdDEgOj0geDI7XG4gIHN0MiA6PSB4MztcbiAgKHgzIC0geDIgLSB4MiArIHgxICsgMipyKSBtb2QgclxuXG5cbioqKioqKioqKioqKioqKioqKioqKVxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBIYXNoIHRhYmxlcyAqKVxuXG4oKiBXZSBkbyBkeW5hbWljIGhhc2hpbmcsIGFuZCByZXNpemUgdGhlIHRhYmxlIGFuZCByZWhhc2ggdGhlIGVsZW1lbnRzXG4gICB3aGVuIGJ1Y2tldHMgYmVjb21lIHRvbyBsb25nLiAqKVxuXG50eXBlICgnYSwgJ2IpIHQgPVxuICB7IG11dGFibGUgc2l6ZTogaW50OyAgICAgICAgICAgICAgICAgICAgICAgICgqIG51bWJlciBvZiBlbnRyaWVzICopXG4gICAgbXV0YWJsZSBkYXRhOiAoJ2EsICdiKSBidWNrZXRsaXN0IGFycmF5OyAgKCogdGhlIGJ1Y2tldHMgKilcbiAgICBzZWVkOiBpbnQ7ICAgICAgICAgICAgICAgICAgICAgICAgKCogZm9yIHJhbmRvbWl6YXRpb24gKilcbiAgICBtdXRhYmxlIGluaXRpYWxfc2l6ZTogaW50OyAgICAgICAgICAgICAgICAoKiBpbml0aWFsIGFycmF5IHNpemUgKilcbiAgfVxuXG5hbmQgKCdhLCAnYikgYnVja2V0bGlzdCA9XG4gICAgRW1wdHlcbiAgfCBDb25zIG9mIHsgbXV0YWJsZSBrZXk6ICdhO1xuICAgICAgICAgICAgICBtdXRhYmxlIGRhdGE6ICdiO1xuICAgICAgICAgICAgICBtdXRhYmxlIG5leHQ6ICgnYSwgJ2IpIGJ1Y2tldGxpc3QgfVxuXG4oKiBUaGUgc2lnbiBvZiBpbml0aWFsX3NpemUgZW5jb2RlcyB0aGUgZmFjdCB0aGF0IGEgdHJhdmVyc2FsIGlzXG4gICBvbmdvaW5nIG9yIG5vdC5cblxuICAgVGhpcyBkaXNhYmxlcyB0aGUgZWZmaWNpZW50IGluIHBsYWNlIGltcGxlbWVudGF0aW9uIG9mIHJlc2l6aW5nLlxuKilcblxubGV0IG9uZ29pbmdfdHJhdmVyc2FsIGggPVxuICBPYmouc2l6ZSAoT2JqLnJlcHIgaCkgPCA0ICgqIGNvbXBhdGliaWxpdHkgd2l0aCBvbGQgaGFzaCB0YWJsZXMgKilcbiAgfHwgaC5pbml0aWFsX3NpemUgPCAwXG5cbmxldCBmbGlwX29uZ29pbmdfdHJhdmVyc2FsIGggPVxuICBoLmluaXRpYWxfc2l6ZSA8LSAtIGguaW5pdGlhbF9zaXplXG5cbigqIFRvIHBpY2sgcmFuZG9tIHNlZWRzIGlmIHJlcXVlc3RlZCAqKVxuXG5sZXQgcmFuZG9taXplZF9kZWZhdWx0ID1cbiAgbGV0IHBhcmFtcyA9XG4gICAgdHJ5IFN5cy5nZXRlbnYgXCJPQ0FNTFJVTlBBUkFNXCIgd2l0aCBOb3RfZm91bmQgLT5cbiAgICB0cnkgU3lzLmdldGVudiBcIkNBTUxSVU5QQVJBTVwiIHdpdGggTm90X2ZvdW5kIC0+IFwiXCIgaW5cbiAgU3RyaW5nLmNvbnRhaW5zIHBhcmFtcyAnUidcblxubGV0IHJhbmRvbWl6ZWQgPSByZWYgcmFuZG9taXplZF9kZWZhdWx0XG5cbmxldCByYW5kb21pemUgKCkgPSByYW5kb21pemVkIDo9IHRydWVcbmxldCBpc19yYW5kb21pemVkICgpID0gIXJhbmRvbWl6ZWRcblxubGV0IHBybmcgPSBsYXp5IChSYW5kb20uU3RhdGUubWFrZV9zZWxmX2luaXQoKSlcblxuKCogRnVuY3Rpb25zIHdoaWNoIGFwcGVhciBiZWZvcmUgdGhlIGZ1bmN0b3JpYWwgaW50ZXJmYWNlIG11c3QgZWl0aGVyIGJlXG4gICBpbmRlcGVuZGVudCBvZiB0aGUgaGFzaCBmdW5jdGlvbiBvciB0YWtlIGl0IGFzIGEgcGFyYW1ldGVyIChzZWUgIzIyMDIgYW5kXG4gICBjb2RlIGJlbG93IHRoZSBmdW5jdG9yIGRlZmluaXRpb25zLiAqKVxuXG4oKiBDcmVhdGluZyBhIGZyZXNoLCBlbXB0eSB0YWJsZSAqKVxuXG5sZXQgcmVjIHBvd2VyXzJfYWJvdmUgeCBuID1cbiAgaWYgeCA+PSBuIHRoZW4geFxuICBlbHNlIGlmIHggKiAyID4gU3lzLm1heF9hcnJheV9sZW5ndGggdGhlbiB4XG4gIGVsc2UgcG93ZXJfMl9hYm92ZSAoeCAqIDIpIG5cblxubGV0IGNyZWF0ZSA/KHJhbmRvbSA9ICFyYW5kb21pemVkKSBpbml0aWFsX3NpemUgPVxuICBsZXQgcyA9IHBvd2VyXzJfYWJvdmUgMTYgaW5pdGlhbF9zaXplIGluXG4gIGxldCBzZWVkID0gaWYgcmFuZG9tIHRoZW4gUmFuZG9tLlN0YXRlLmJpdHMgKExhenkuZm9yY2UgcHJuZykgZWxzZSAwIGluXG4gIHsgaW5pdGlhbF9zaXplID0gczsgc2l6ZSA9IDA7IHNlZWQgPSBzZWVkOyBkYXRhID0gQXJyYXkubWFrZSBzIEVtcHR5IH1cblxubGV0IGNsZWFyIGggPVxuICBpZiBoLnNpemUgPiAwIHRoZW4gYmVnaW5cbiAgICBoLnNpemUgPC0gMDtcbiAgICBBcnJheS5maWxsIGguZGF0YSAwIChBcnJheS5sZW5ndGggaC5kYXRhKSBFbXB0eVxuICBlbmRcblxubGV0IHJlc2V0IGggPVxuICBsZXQgbGVuID0gQXJyYXkubGVuZ3RoIGguZGF0YSBpblxuICBpZiBPYmouc2l6ZSAoT2JqLnJlcHIgaCkgPCA0ICgqIGNvbXBhdGliaWxpdHkgd2l0aCBvbGQgaGFzaCB0YWJsZXMgKilcbiAgICB8fCBsZW4gPSBhYnMgaC5pbml0aWFsX3NpemUgdGhlblxuICAgIGNsZWFyIGhcbiAgZWxzZSBiZWdpblxuICAgIGguc2l6ZSA8LSAwO1xuICAgIGguZGF0YSA8LSBBcnJheS5tYWtlIChhYnMgaC5pbml0aWFsX3NpemUpIEVtcHR5XG4gIGVuZFxuXG5sZXQgY29weV9idWNrZXRsaXN0ID0gZnVuY3Rpb25cbiAgfCBFbXB0eSAtPiBFbXB0eVxuICB8IENvbnMge2tleTsgZGF0YTsgbmV4dH0gLT5cbiAgICAgIGxldCByZWMgbG9vcCBwcmVjID0gZnVuY3Rpb25cbiAgICAgICAgfCBFbXB0eSAtPiAoKVxuICAgICAgICB8IENvbnMge2tleTsgZGF0YTsgbmV4dH0gLT5cbiAgICAgICAgICAgIGxldCByID0gQ29ucyB7a2V5OyBkYXRhOyBuZXh0fSBpblxuICAgICAgICAgICAgYmVnaW4gbWF0Y2ggcHJlYyB3aXRoXG4gICAgICAgICAgICB8IEVtcHR5IC0+IGFzc2VydCBmYWxzZVxuICAgICAgICAgICAgfCBDb25zIHByZWMgLT4gIHByZWMubmV4dCA8LSByXG4gICAgICAgICAgICBlbmQ7XG4gICAgICAgICAgICBsb29wIHIgbmV4dFxuICAgICAgaW5cbiAgICAgIGxldCByID0gQ29ucyB7a2V5OyBkYXRhOyBuZXh0fSBpblxuICAgICAgbG9vcCByIG5leHQ7XG4gICAgICByXG5cbmxldCBjb3B5IGggPSB7IGggd2l0aCBkYXRhID0gQXJyYXkubWFwIGNvcHlfYnVja2V0bGlzdCBoLmRhdGEgfVxuXG5sZXQgbGVuZ3RoIGggPSBoLnNpemVcblxubGV0IGluc2VydF9hbGxfYnVja2V0cyBpbmRleGZ1biBpbnBsYWNlIG9kYXRhIG5kYXRhID1cbiAgbGV0IG5zaXplID0gQXJyYXkubGVuZ3RoIG5kYXRhIGluXG4gIGxldCBuZGF0YV90YWlsID0gQXJyYXkubWFrZSBuc2l6ZSBFbXB0eSBpblxuICBsZXQgcmVjIGluc2VydF9idWNrZXQgPSBmdW5jdGlvblxuICAgIHwgRW1wdHkgLT4gKClcbiAgICB8IENvbnMge2tleTsgZGF0YTsgbmV4dH0gYXMgY2VsbCAtPlxuICAgICAgICBsZXQgY2VsbCA9XG4gICAgICAgICAgaWYgaW5wbGFjZSB0aGVuIGNlbGxcbiAgICAgICAgICBlbHNlIENvbnMge2tleTsgZGF0YTsgbmV4dCA9IEVtcHR5fVxuICAgICAgICBpblxuICAgICAgICBsZXQgbmlkeCA9IGluZGV4ZnVuIGtleSBpblxuICAgICAgICBiZWdpbiBtYXRjaCBuZGF0YV90YWlsLihuaWR4KSB3aXRoXG4gICAgICAgIHwgRW1wdHkgLT4gbmRhdGEuKG5pZHgpIDwtIGNlbGw7XG4gICAgICAgIHwgQ29ucyB0YWlsIC0+IHRhaWwubmV4dCA8LSBjZWxsO1xuICAgICAgICBlbmQ7XG4gICAgICAgIG5kYXRhX3RhaWwuKG5pZHgpIDwtIGNlbGw7XG4gICAgICAgIGluc2VydF9idWNrZXQgbmV4dFxuICBpblxuICBmb3IgaSA9IDAgdG8gQXJyYXkubGVuZ3RoIG9kYXRhIC0gMSBkb1xuICAgIGluc2VydF9idWNrZXQgb2RhdGEuKGkpXG4gIGRvbmU7XG4gIGlmIGlucGxhY2UgdGhlblxuICAgIGZvciBpID0gMCB0byBuc2l6ZSAtIDEgZG9cbiAgICAgIG1hdGNoIG5kYXRhX3RhaWwuKGkpIHdpdGhcbiAgICAgIHwgRW1wdHkgLT4gKClcbiAgICAgIHwgQ29ucyB0YWlsIC0+IHRhaWwubmV4dCA8LSBFbXB0eVxuICAgIGRvbmVcblxubGV0IHJlc2l6ZSBpbmRleGZ1biBoID1cbiAgbGV0IG9kYXRhID0gaC5kYXRhIGluXG4gIGxldCBvc2l6ZSA9IEFycmF5Lmxlbmd0aCBvZGF0YSBpblxuICBsZXQgbnNpemUgPSBvc2l6ZSAqIDIgaW5cbiAgaWYgbnNpemUgPCBTeXMubWF4X2FycmF5X2xlbmd0aCB0aGVuIGJlZ2luXG4gICAgbGV0IG5kYXRhID0gQXJyYXkubWFrZSBuc2l6ZSBFbXB0eSBpblxuICAgIGxldCBpbnBsYWNlID0gbm90IChvbmdvaW5nX3RyYXZlcnNhbCBoKSBpblxuICAgIGguZGF0YSA8LSBuZGF0YTsgICAgICAgICAgKCogc28gdGhhdCBpbmRleGZ1biBzZWVzIHRoZSBuZXcgYnVja2V0IGNvdW50ICopXG4gICAgaW5zZXJ0X2FsbF9idWNrZXRzIChpbmRleGZ1biBoKSBpbnBsYWNlIG9kYXRhIG5kYXRhXG4gIGVuZFxuXG5sZXQgaXRlciBmIGggPVxuICBsZXQgcmVjIGRvX2J1Y2tldCA9IGZ1bmN0aW9uXG4gICAgfCBFbXB0eSAtPlxuICAgICAgICAoKVxuICAgIHwgQ29uc3trZXk7IGRhdGE7IG5leHR9IC0+XG4gICAgICAgIGYga2V5IGRhdGE7IGRvX2J1Y2tldCBuZXh0IGluXG4gIGxldCBvbGRfdHJhdiA9IG9uZ29pbmdfdHJhdmVyc2FsIGggaW5cbiAgaWYgbm90IG9sZF90cmF2IHRoZW4gZmxpcF9vbmdvaW5nX3RyYXZlcnNhbCBoO1xuICB0cnlcbiAgICBsZXQgZCA9IGguZGF0YSBpblxuICAgIGZvciBpID0gMCB0byBBcnJheS5sZW5ndGggZCAtIDEgZG9cbiAgICAgIGRvX2J1Y2tldCBkLihpKVxuICAgIGRvbmU7XG4gICAgaWYgbm90IG9sZF90cmF2IHRoZW4gZmxpcF9vbmdvaW5nX3RyYXZlcnNhbCBoO1xuICB3aXRoIGV4biB3aGVuIG5vdCBvbGRfdHJhdiAtPlxuICAgIGZsaXBfb25nb2luZ190cmF2ZXJzYWwgaDtcbiAgICByYWlzZSBleG5cblxubGV0IHJlYyBmaWx0ZXJfbWFwX2lucGxhY2VfYnVja2V0IGYgaCBpIHByZWMgPSBmdW5jdGlvblxuICB8IEVtcHR5IC0+XG4gICAgICBiZWdpbiBtYXRjaCBwcmVjIHdpdGhcbiAgICAgIHwgRW1wdHkgLT4gaC5kYXRhLihpKSA8LSBFbXB0eVxuICAgICAgfCBDb25zIGMgLT4gYy5uZXh0IDwtIEVtcHR5XG4gICAgICBlbmRcbiAgfCAoQ29ucyAoe2tleTsgZGF0YTsgbmV4dH0gYXMgYykpIGFzIHNsb3QgLT5cbiAgICAgIGJlZ2luIG1hdGNoIGYga2V5IGRhdGEgd2l0aFxuICAgICAgfCBOb25lIC0+XG4gICAgICAgICAgaC5zaXplIDwtIGguc2l6ZSAtIDE7XG4gICAgICAgICAgZmlsdGVyX21hcF9pbnBsYWNlX2J1Y2tldCBmIGggaSBwcmVjIG5leHRcbiAgICAgIHwgU29tZSBkYXRhIC0+XG4gICAgICAgICAgYmVnaW4gbWF0Y2ggcHJlYyB3aXRoXG4gICAgICAgICAgfCBFbXB0eSAtPiBoLmRhdGEuKGkpIDwtIHNsb3RcbiAgICAgICAgICB8IENvbnMgYyAtPiBjLm5leHQgPC0gc2xvdFxuICAgICAgICAgIGVuZDtcbiAgICAgICAgICBjLmRhdGEgPC0gZGF0YTtcbiAgICAgICAgICBmaWx0ZXJfbWFwX2lucGxhY2VfYnVja2V0IGYgaCBpIHNsb3QgbmV4dFxuICAgICAgZW5kXG5cbmxldCBmaWx0ZXJfbWFwX2lucGxhY2UgZiBoID1cbiAgbGV0IGQgPSBoLmRhdGEgaW5cbiAgbGV0IG9sZF90cmF2ID0gb25nb2luZ190cmF2ZXJzYWwgaCBpblxuICBpZiBub3Qgb2xkX3RyYXYgdGhlbiBmbGlwX29uZ29pbmdfdHJhdmVyc2FsIGg7XG4gIHRyeVxuICAgIGZvciBpID0gMCB0byBBcnJheS5sZW5ndGggZCAtIDEgZG9cbiAgICAgIGZpbHRlcl9tYXBfaW5wbGFjZV9idWNrZXQgZiBoIGkgRW1wdHkgaC5kYXRhLihpKVxuICAgIGRvbmU7XG4gICAgaWYgbm90IG9sZF90cmF2IHRoZW4gZmxpcF9vbmdvaW5nX3RyYXZlcnNhbCBoXG4gIHdpdGggZXhuIHdoZW4gbm90IG9sZF90cmF2IC0+XG4gICAgZmxpcF9vbmdvaW5nX3RyYXZlcnNhbCBoO1xuICAgIHJhaXNlIGV4blxuXG5sZXQgZm9sZCBmIGggaW5pdCA9XG4gIGxldCByZWMgZG9fYnVja2V0IGIgYWNjdSA9XG4gICAgbWF0Y2ggYiB3aXRoXG4gICAgICBFbXB0eSAtPlxuICAgICAgICBhY2N1XG4gICAgfCBDb25ze2tleTsgZGF0YTsgbmV4dH0gLT5cbiAgICAgICAgZG9fYnVja2V0IG5leHQgKGYga2V5IGRhdGEgYWNjdSkgaW5cbiAgbGV0IG9sZF90cmF2ID0gb25nb2luZ190cmF2ZXJzYWwgaCBpblxuICBpZiBub3Qgb2xkX3RyYXYgdGhlbiBmbGlwX29uZ29pbmdfdHJhdmVyc2FsIGg7XG4gIHRyeVxuICAgIGxldCBkID0gaC5kYXRhIGluXG4gICAgbGV0IGFjY3UgPSByZWYgaW5pdCBpblxuICAgIGZvciBpID0gMCB0byBBcnJheS5sZW5ndGggZCAtIDEgZG9cbiAgICAgIGFjY3UgOj0gZG9fYnVja2V0IGQuKGkpICFhY2N1XG4gICAgZG9uZTtcbiAgICBpZiBub3Qgb2xkX3RyYXYgdGhlbiBmbGlwX29uZ29pbmdfdHJhdmVyc2FsIGg7XG4gICAgIWFjY3VcbiAgd2l0aCBleG4gd2hlbiBub3Qgb2xkX3RyYXYgLT5cbiAgICBmbGlwX29uZ29pbmdfdHJhdmVyc2FsIGg7XG4gICAgcmFpc2UgZXhuXG5cbnR5cGUgc3RhdGlzdGljcyA9IHtcbiAgbnVtX2JpbmRpbmdzOiBpbnQ7XG4gIG51bV9idWNrZXRzOiBpbnQ7XG4gIG1heF9idWNrZXRfbGVuZ3RoOiBpbnQ7XG4gIGJ1Y2tldF9oaXN0b2dyYW06IGludCBhcnJheVxufVxuXG5sZXQgcmVjIGJ1Y2tldF9sZW5ndGggYWNjdSA9IGZ1bmN0aW9uXG4gIHwgRW1wdHkgLT4gYWNjdVxuICB8IENvbnN7bmV4dH0gLT4gYnVja2V0X2xlbmd0aCAoYWNjdSArIDEpIG5leHRcblxubGV0IHN0YXRzIGggPVxuICBsZXQgbWJsID1cbiAgICBBcnJheS5mb2xkX2xlZnQgKGZ1biBtIGIgLT4gSW50Lm1heCBtIChidWNrZXRfbGVuZ3RoIDAgYikpIDAgaC5kYXRhIGluXG4gIGxldCBoaXN0byA9IEFycmF5Lm1ha2UgKG1ibCArIDEpIDAgaW5cbiAgQXJyYXkuaXRlclxuICAgIChmdW4gYiAtPlxuICAgICAgbGV0IGwgPSBidWNrZXRfbGVuZ3RoIDAgYiBpblxuICAgICAgaGlzdG8uKGwpIDwtIGhpc3RvLihsKSArIDEpXG4gICAgaC5kYXRhO1xuICB7IG51bV9iaW5kaW5ncyA9IGguc2l6ZTtcbiAgICBudW1fYnVja2V0cyA9IEFycmF5Lmxlbmd0aCBoLmRhdGE7XG4gICAgbWF4X2J1Y2tldF9sZW5ndGggPSBtYmw7XG4gICAgYnVja2V0X2hpc3RvZ3JhbSA9IGhpc3RvIH1cblxuKCoqIHsxIEl0ZXJhdG9yc30gKilcblxubGV0IHRvX3NlcSB0YmwgPVxuICAoKiBjYXB0dXJlIGN1cnJlbnQgYXJyYXksIHNvIHRoYXQgZXZlbiBpZiB0aGUgdGFibGUgaXMgcmVzaXplZCB3ZVxuICAgICBrZWVwIGl0ZXJhdGluZyBvbiB0aGUgc2FtZSBhcnJheSAqKVxuICBsZXQgdGJsX2RhdGEgPSB0YmwuZGF0YSBpblxuICAoKiBzdGF0ZTogaW5kZXggKiBuZXh0IGJ1Y2tldCB0byB0cmF2ZXJzZSAqKVxuICBsZXQgcmVjIGF1eCBpIGJ1Y2sgKCkgPSBtYXRjaCBidWNrIHdpdGhcbiAgICB8IEVtcHR5IC0+XG4gICAgICAgIGlmIGkgPSBBcnJheS5sZW5ndGggdGJsX2RhdGFcbiAgICAgICAgdGhlbiBTZXEuTmlsXG4gICAgICAgIGVsc2UgYXV4KGkrMSkgdGJsX2RhdGEuKGkpICgpXG4gICAgfCBDb25zIHtrZXk7IGRhdGE7IG5leHR9IC0+XG4gICAgICAgIFNlcS5Db25zICgoa2V5LCBkYXRhKSwgYXV4IGkgbmV4dClcbiAgaW5cbiAgYXV4IDAgRW1wdHlcblxubGV0IHRvX3NlcV9rZXlzIG0gPSBTZXEubWFwIGZzdCAodG9fc2VxIG0pXG5cbmxldCB0b19zZXFfdmFsdWVzIG0gPSBTZXEubWFwIHNuZCAodG9fc2VxIG0pXG5cbigqIEZ1bmN0b3JpYWwgaW50ZXJmYWNlICopXG5cbm1vZHVsZSB0eXBlIEhhc2hlZFR5cGUgPVxuICBzaWdcbiAgICB0eXBlIHRcbiAgICB2YWwgZXF1YWw6IHQgLT4gdCAtPiBib29sXG4gICAgdmFsIGhhc2g6IHQgLT4gaW50XG4gIGVuZFxuXG5tb2R1bGUgdHlwZSBTZWVkZWRIYXNoZWRUeXBlID1cbiAgc2lnXG4gICAgdHlwZSB0XG4gICAgdmFsIGVxdWFsOiB0IC0+IHQgLT4gYm9vbFxuICAgIHZhbCBoYXNoOiBpbnQgLT4gdCAtPiBpbnRcbiAgZW5kXG5cbm1vZHVsZSB0eXBlIFMgPVxuICBzaWdcbiAgICB0eXBlIGtleVxuICAgIHR5cGUgISdhIHRcbiAgICB2YWwgY3JlYXRlOiBpbnQgLT4gJ2EgdFxuICAgIHZhbCBjbGVhciA6ICdhIHQgLT4gdW5pdFxuICAgIHZhbCByZXNldCA6ICdhIHQgLT4gdW5pdFxuICAgIHZhbCBjb3B5OiAnYSB0IC0+ICdhIHRcbiAgICB2YWwgYWRkOiAnYSB0IC0+IGtleSAtPiAnYSAtPiB1bml0XG4gICAgdmFsIHJlbW92ZTogJ2EgdCAtPiBrZXkgLT4gdW5pdFxuICAgIHZhbCBmaW5kOiAnYSB0IC0+IGtleSAtPiAnYVxuICAgIHZhbCBmaW5kX29wdDogJ2EgdCAtPiBrZXkgLT4gJ2Egb3B0aW9uXG4gICAgdmFsIGZpbmRfYWxsOiAnYSB0IC0+IGtleSAtPiAnYSBsaXN0XG4gICAgdmFsIHJlcGxhY2UgOiAnYSB0IC0+IGtleSAtPiAnYSAtPiB1bml0XG4gICAgdmFsIG1lbSA6ICdhIHQgLT4ga2V5IC0+IGJvb2xcbiAgICB2YWwgaXRlcjogKGtleSAtPiAnYSAtPiB1bml0KSAtPiAnYSB0IC0+IHVuaXRcbiAgICB2YWwgZmlsdGVyX21hcF9pbnBsYWNlOiAoa2V5IC0+ICdhIC0+ICdhIG9wdGlvbikgLT4gJ2EgdCAtPiB1bml0XG4gICAgdmFsIGZvbGQ6IChrZXkgLT4gJ2EgLT4gJ2IgLT4gJ2IpIC0+ICdhIHQgLT4gJ2IgLT4gJ2JcbiAgICB2YWwgbGVuZ3RoOiAnYSB0IC0+IGludFxuICAgIHZhbCBzdGF0czogJ2EgdCAtPiBzdGF0aXN0aWNzXG4gICAgdmFsIHRvX3NlcSA6ICdhIHQgLT4gKGtleSAqICdhKSBTZXEudFxuICAgIHZhbCB0b19zZXFfa2V5cyA6IF8gdCAtPiBrZXkgU2VxLnRcbiAgICB2YWwgdG9fc2VxX3ZhbHVlcyA6ICdhIHQgLT4gJ2EgU2VxLnRcbiAgICB2YWwgYWRkX3NlcSA6ICdhIHQgLT4gKGtleSAqICdhKSBTZXEudCAtPiB1bml0XG4gICAgdmFsIHJlcGxhY2Vfc2VxIDogJ2EgdCAtPiAoa2V5ICogJ2EpIFNlcS50IC0+IHVuaXRcbiAgICB2YWwgb2Zfc2VxIDogKGtleSAqICdhKSBTZXEudCAtPiAnYSB0XG4gIGVuZFxuXG5tb2R1bGUgdHlwZSBTZWVkZWRTID1cbiAgc2lnXG4gICAgdHlwZSBrZXlcbiAgICB0eXBlICEnYSB0XG4gICAgdmFsIGNyZWF0ZSA6ID9yYW5kb206Ym9vbCAtPiBpbnQgLT4gJ2EgdFxuICAgIHZhbCBjbGVhciA6ICdhIHQgLT4gdW5pdFxuICAgIHZhbCByZXNldCA6ICdhIHQgLT4gdW5pdFxuICAgIHZhbCBjb3B5IDogJ2EgdCAtPiAnYSB0XG4gICAgdmFsIGFkZCA6ICdhIHQgLT4ga2V5IC0+ICdhIC0+IHVuaXRcbiAgICB2YWwgcmVtb3ZlIDogJ2EgdCAtPiBrZXkgLT4gdW5pdFxuICAgIHZhbCBmaW5kIDogJ2EgdCAtPiBrZXkgLT4gJ2FcbiAgICB2YWwgZmluZF9vcHQ6ICdhIHQgLT4ga2V5IC0+ICdhIG9wdGlvblxuICAgIHZhbCBmaW5kX2FsbCA6ICdhIHQgLT4ga2V5IC0+ICdhIGxpc3RcbiAgICB2YWwgcmVwbGFjZSA6ICdhIHQgLT4ga2V5IC0+ICdhIC0+IHVuaXRcbiAgICB2YWwgbWVtIDogJ2EgdCAtPiBrZXkgLT4gYm9vbFxuICAgIHZhbCBpdGVyIDogKGtleSAtPiAnYSAtPiB1bml0KSAtPiAnYSB0IC0+IHVuaXRcbiAgICB2YWwgZmlsdGVyX21hcF9pbnBsYWNlOiAoa2V5IC0+ICdhIC0+ICdhIG9wdGlvbikgLT4gJ2EgdCAtPiB1bml0XG4gICAgdmFsIGZvbGQgOiAoa2V5IC0+ICdhIC0+ICdiIC0+ICdiKSAtPiAnYSB0IC0+ICdiIC0+ICdiXG4gICAgdmFsIGxlbmd0aCA6ICdhIHQgLT4gaW50XG4gICAgdmFsIHN0YXRzOiAnYSB0IC0+IHN0YXRpc3RpY3NcbiAgICB2YWwgdG9fc2VxIDogJ2EgdCAtPiAoa2V5ICogJ2EpIFNlcS50XG4gICAgdmFsIHRvX3NlcV9rZXlzIDogXyB0IC0+IGtleSBTZXEudFxuICAgIHZhbCB0b19zZXFfdmFsdWVzIDogJ2EgdCAtPiAnYSBTZXEudFxuICAgIHZhbCBhZGRfc2VxIDogJ2EgdCAtPiAoa2V5ICogJ2EpIFNlcS50IC0+IHVuaXRcbiAgICB2YWwgcmVwbGFjZV9zZXEgOiAnYSB0IC0+IChrZXkgKiAnYSkgU2VxLnQgLT4gdW5pdFxuICAgIHZhbCBvZl9zZXEgOiAoa2V5ICogJ2EpIFNlcS50IC0+ICdhIHRcbiAgZW5kXG5cbm1vZHVsZSBNYWtlU2VlZGVkKEg6IFNlZWRlZEhhc2hlZFR5cGUpOiAoU2VlZGVkUyB3aXRoIHR5cGUga2V5ID0gSC50KSA9XG4gIHN0cnVjdFxuICAgIHR5cGUga2V5ID0gSC50XG4gICAgdHlwZSAnYSBoYXNodGJsID0gKGtleSwgJ2EpIHRcbiAgICB0eXBlICdhIHQgPSAnYSBoYXNodGJsXG4gICAgbGV0IGNyZWF0ZSA9IGNyZWF0ZVxuICAgIGxldCBjbGVhciA9IGNsZWFyXG4gICAgbGV0IHJlc2V0ID0gcmVzZXRcbiAgICBsZXQgY29weSA9IGNvcHlcblxuICAgIGxldCBrZXlfaW5kZXggaCBrZXkgPVxuICAgICAgKEguaGFzaCBoLnNlZWQga2V5KSBsYW5kIChBcnJheS5sZW5ndGggaC5kYXRhIC0gMSlcblxuICAgIGxldCBhZGQgaCBrZXkgZGF0YSA9XG4gICAgICBsZXQgaSA9IGtleV9pbmRleCBoIGtleSBpblxuICAgICAgbGV0IGJ1Y2tldCA9IENvbnN7a2V5OyBkYXRhOyBuZXh0PWguZGF0YS4oaSl9IGluXG4gICAgICBoLmRhdGEuKGkpIDwtIGJ1Y2tldDtcbiAgICAgIGguc2l6ZSA8LSBoLnNpemUgKyAxO1xuICAgICAgaWYgaC5zaXplID4gQXJyYXkubGVuZ3RoIGguZGF0YSBsc2wgMSB0aGVuIHJlc2l6ZSBrZXlfaW5kZXggaFxuXG4gICAgbGV0IHJlYyByZW1vdmVfYnVja2V0IGggaSBrZXkgcHJlYyA9IGZ1bmN0aW9uXG4gICAgICB8IEVtcHR5IC0+XG4gICAgICAgICAgKClcbiAgICAgIHwgKENvbnMge2tleT1rOyBuZXh0fSkgYXMgYyAtPlxuICAgICAgICAgIGlmIEguZXF1YWwgayBrZXlcbiAgICAgICAgICB0aGVuIGJlZ2luXG4gICAgICAgICAgICBoLnNpemUgPC0gaC5zaXplIC0gMTtcbiAgICAgICAgICAgIG1hdGNoIHByZWMgd2l0aFxuICAgICAgICAgICAgfCBFbXB0eSAtPiBoLmRhdGEuKGkpIDwtIG5leHRcbiAgICAgICAgICAgIHwgQ29ucyBjIC0+IGMubmV4dCA8LSBuZXh0XG4gICAgICAgICAgZW5kXG4gICAgICAgICAgZWxzZSByZW1vdmVfYnVja2V0IGggaSBrZXkgYyBuZXh0XG5cbiAgICBsZXQgcmVtb3ZlIGgga2V5ID1cbiAgICAgIGxldCBpID0ga2V5X2luZGV4IGgga2V5IGluXG4gICAgICByZW1vdmVfYnVja2V0IGggaSBrZXkgRW1wdHkgaC5kYXRhLihpKVxuXG4gICAgbGV0IHJlYyBmaW5kX3JlYyBrZXkgPSBmdW5jdGlvblxuICAgICAgfCBFbXB0eSAtPlxuICAgICAgICAgIHJhaXNlIE5vdF9mb3VuZFxuICAgICAgfCBDb25ze2tleT1rOyBkYXRhOyBuZXh0fSAtPlxuICAgICAgICAgIGlmIEguZXF1YWwga2V5IGsgdGhlbiBkYXRhIGVsc2UgZmluZF9yZWMga2V5IG5leHRcblxuICAgIGxldCBmaW5kIGgga2V5ID1cbiAgICAgIG1hdGNoIGguZGF0YS4oa2V5X2luZGV4IGgga2V5KSB3aXRoXG4gICAgICB8IEVtcHR5IC0+IHJhaXNlIE5vdF9mb3VuZFxuICAgICAgfCBDb25ze2tleT1rMTsgZGF0YT1kMTsgbmV4dD1uZXh0MX0gLT5cbiAgICAgICAgICBpZiBILmVxdWFsIGtleSBrMSB0aGVuIGQxIGVsc2VcbiAgICAgICAgICBtYXRjaCBuZXh0MSB3aXRoXG4gICAgICAgICAgfCBFbXB0eSAtPiByYWlzZSBOb3RfZm91bmRcbiAgICAgICAgICB8IENvbnN7a2V5PWsyOyBkYXRhPWQyOyBuZXh0PW5leHQyfSAtPlxuICAgICAgICAgICAgICBpZiBILmVxdWFsIGtleSBrMiB0aGVuIGQyIGVsc2VcbiAgICAgICAgICAgICAgbWF0Y2ggbmV4dDIgd2l0aFxuICAgICAgICAgICAgICB8IEVtcHR5IC0+IHJhaXNlIE5vdF9mb3VuZFxuICAgICAgICAgICAgICB8IENvbnN7a2V5PWszOyBkYXRhPWQzOyBuZXh0PW5leHQzfSAtPlxuICAgICAgICAgICAgICAgICAgaWYgSC5lcXVhbCBrZXkgazMgdGhlbiBkMyBlbHNlIGZpbmRfcmVjIGtleSBuZXh0M1xuXG4gICAgbGV0IHJlYyBmaW5kX3JlY19vcHQga2V5ID0gZnVuY3Rpb25cbiAgICAgIHwgRW1wdHkgLT5cbiAgICAgICAgICBOb25lXG4gICAgICB8IENvbnN7a2V5PWs7IGRhdGE7IG5leHR9IC0+XG4gICAgICAgICAgaWYgSC5lcXVhbCBrZXkgayB0aGVuIFNvbWUgZGF0YSBlbHNlIGZpbmRfcmVjX29wdCBrZXkgbmV4dFxuXG4gICAgbGV0IGZpbmRfb3B0IGgga2V5ID1cbiAgICAgIG1hdGNoIGguZGF0YS4oa2V5X2luZGV4IGgga2V5KSB3aXRoXG4gICAgICB8IEVtcHR5IC0+IE5vbmVcbiAgICAgIHwgQ29uc3trZXk9azE7IGRhdGE9ZDE7IG5leHQ9bmV4dDF9IC0+XG4gICAgICAgICAgaWYgSC5lcXVhbCBrZXkgazEgdGhlbiBTb21lIGQxIGVsc2VcbiAgICAgICAgICBtYXRjaCBuZXh0MSB3aXRoXG4gICAgICAgICAgfCBFbXB0eSAtPiBOb25lXG4gICAgICAgICAgfCBDb25ze2tleT1rMjsgZGF0YT1kMjsgbmV4dD1uZXh0Mn0gLT5cbiAgICAgICAgICAgICAgaWYgSC5lcXVhbCBrZXkgazIgdGhlbiBTb21lIGQyIGVsc2VcbiAgICAgICAgICAgICAgbWF0Y2ggbmV4dDIgd2l0aFxuICAgICAgICAgICAgICB8IEVtcHR5IC0+IE5vbmVcbiAgICAgICAgICAgICAgfCBDb25ze2tleT1rMzsgZGF0YT1kMzsgbmV4dD1uZXh0M30gLT5cbiAgICAgICAgICAgICAgICAgIGlmIEguZXF1YWwga2V5IGszIHRoZW4gU29tZSBkMyBlbHNlIGZpbmRfcmVjX29wdCBrZXkgbmV4dDNcblxuICAgIGxldCBmaW5kX2FsbCBoIGtleSA9XG4gICAgICBsZXQgcmVjIGZpbmRfaW5fYnVja2V0ID0gZnVuY3Rpb25cbiAgICAgIHwgRW1wdHkgLT5cbiAgICAgICAgICBbXVxuICAgICAgfCBDb25ze2tleT1rOyBkYXRhPWQ7IG5leHR9IC0+XG4gICAgICAgICAgaWYgSC5lcXVhbCBrIGtleVxuICAgICAgICAgIHRoZW4gZCA6OiBmaW5kX2luX2J1Y2tldCBuZXh0XG4gICAgICAgICAgZWxzZSBmaW5kX2luX2J1Y2tldCBuZXh0IGluXG4gICAgICBmaW5kX2luX2J1Y2tldCBoLmRhdGEuKGtleV9pbmRleCBoIGtleSlcblxuICAgIGxldCByZWMgcmVwbGFjZV9idWNrZXQga2V5IGRhdGEgPSBmdW5jdGlvblxuICAgICAgfCBFbXB0eSAtPlxuICAgICAgICAgIHRydWVcbiAgICAgIHwgQ29ucyAoe2tleT1rOyBuZXh0fSBhcyBzbG90KSAtPlxuICAgICAgICAgIGlmIEguZXF1YWwgayBrZXlcbiAgICAgICAgICB0aGVuIChzbG90LmtleSA8LSBrZXk7IHNsb3QuZGF0YSA8LSBkYXRhOyBmYWxzZSlcbiAgICAgICAgICBlbHNlIHJlcGxhY2VfYnVja2V0IGtleSBkYXRhIG5leHRcblxuICAgIGxldCByZXBsYWNlIGgga2V5IGRhdGEgPVxuICAgICAgbGV0IGkgPSBrZXlfaW5kZXggaCBrZXkgaW5cbiAgICAgIGxldCBsID0gaC5kYXRhLihpKSBpblxuICAgICAgaWYgcmVwbGFjZV9idWNrZXQga2V5IGRhdGEgbCB0aGVuIGJlZ2luXG4gICAgICAgIGguZGF0YS4oaSkgPC0gQ29uc3trZXk7IGRhdGE7IG5leHQ9bH07XG4gICAgICAgIGguc2l6ZSA8LSBoLnNpemUgKyAxO1xuICAgICAgICBpZiBoLnNpemUgPiBBcnJheS5sZW5ndGggaC5kYXRhIGxzbCAxIHRoZW4gcmVzaXplIGtleV9pbmRleCBoXG4gICAgICBlbmRcblxuICAgIGxldCBtZW0gaCBrZXkgPVxuICAgICAgbGV0IHJlYyBtZW1faW5fYnVja2V0ID0gZnVuY3Rpb25cbiAgICAgIHwgRW1wdHkgLT5cbiAgICAgICAgICBmYWxzZVxuICAgICAgfCBDb25ze2tleT1rOyBuZXh0fSAtPlxuICAgICAgICAgIEguZXF1YWwgayBrZXkgfHwgbWVtX2luX2J1Y2tldCBuZXh0IGluXG4gICAgICBtZW1faW5fYnVja2V0IGguZGF0YS4oa2V5X2luZGV4IGgga2V5KVxuXG4gICAgbGV0IGFkZF9zZXEgdGJsIGkgPVxuICAgICAgU2VxLml0ZXIgKGZ1biAoayx2KSAtPiBhZGQgdGJsIGsgdikgaVxuXG4gICAgbGV0IHJlcGxhY2Vfc2VxIHRibCBpID1cbiAgICAgIFNlcS5pdGVyIChmdW4gKGssdikgLT4gcmVwbGFjZSB0YmwgayB2KSBpXG5cbiAgICBsZXQgb2Zfc2VxIGkgPVxuICAgICAgbGV0IHRibCA9IGNyZWF0ZSAxNiBpblxuICAgICAgcmVwbGFjZV9zZXEgdGJsIGk7XG4gICAgICB0YmxcblxuICAgIGxldCBpdGVyID0gaXRlclxuICAgIGxldCBmaWx0ZXJfbWFwX2lucGxhY2UgPSBmaWx0ZXJfbWFwX2lucGxhY2VcbiAgICBsZXQgZm9sZCA9IGZvbGRcbiAgICBsZXQgbGVuZ3RoID0gbGVuZ3RoXG4gICAgbGV0IHN0YXRzID0gc3RhdHNcbiAgICBsZXQgdG9fc2VxID0gdG9fc2VxXG4gICAgbGV0IHRvX3NlcV9rZXlzID0gdG9fc2VxX2tleXNcbiAgICBsZXQgdG9fc2VxX3ZhbHVlcyA9IHRvX3NlcV92YWx1ZXNcbiAgZW5kXG5cbm1vZHVsZSBNYWtlKEg6IEhhc2hlZFR5cGUpOiAoUyB3aXRoIHR5cGUga2V5ID0gSC50KSA9XG4gIHN0cnVjdFxuICAgIGluY2x1ZGUgTWFrZVNlZWRlZChzdHJ1Y3RcbiAgICAgICAgdHlwZSB0ID0gSC50XG4gICAgICAgIGxldCBlcXVhbCA9IEguZXF1YWxcbiAgICAgICAgbGV0IGhhc2ggKF9zZWVkOiBpbnQpIHggPSBILmhhc2ggeFxuICAgICAgZW5kKVxuICAgIGxldCBjcmVhdGUgc3ogPSBjcmVhdGUgfnJhbmRvbTpmYWxzZSBzelxuICAgIGxldCBvZl9zZXEgaSA9XG4gICAgICBsZXQgdGJsID0gY3JlYXRlIDE2IGluXG4gICAgICByZXBsYWNlX3NlcSB0YmwgaTtcbiAgICAgIHRibFxuICBlbmRcblxuKCogUG9seW1vcnBoaWMgaGFzaCBmdW5jdGlvbi1iYXNlZCB0YWJsZXMgKilcbigqIENvZGUgaW5jbHVkZWQgYmVsb3cgdGhlIGZ1bmN0b3JpYWwgaW50ZXJmYWNlIHRvIGd1YXJkIGFnYWluc3QgYWNjaWRlbnRhbFxuICAgdXNlIC0gc2VlICMyMjAyICopXG5cbmV4dGVybmFsIHNlZWRlZF9oYXNoX3BhcmFtIDpcbiAgaW50IC0+IGludCAtPiBpbnQgLT4gJ2EgLT4gaW50ID0gXCJjYW1sX2hhc2hcIiBbQEBub2FsbG9jXVxuXG5sZXQgaGFzaCB4ID0gc2VlZGVkX2hhc2hfcGFyYW0gMTAgMTAwIDAgeFxubGV0IGhhc2hfcGFyYW0gbjEgbjIgeCA9IHNlZWRlZF9oYXNoX3BhcmFtIG4xIG4yIDAgeFxubGV0IHNlZWRlZF9oYXNoIHNlZWQgeCA9IHNlZWRlZF9oYXNoX3BhcmFtIDEwIDEwMCBzZWVkIHhcblxubGV0IGtleV9pbmRleCBoIGtleSA9XG4gIGlmIE9iai5zaXplIChPYmoucmVwciBoKSA+PSA0XG4gIHRoZW4gKHNlZWRlZF9oYXNoX3BhcmFtIDEwIDEwMCBoLnNlZWQga2V5KSBsYW5kIChBcnJheS5sZW5ndGggaC5kYXRhIC0gMSlcbiAgZWxzZSBpbnZhbGlkX2FyZyBcIkhhc2h0Ymw6IHVuc3VwcG9ydGVkIGhhc2ggdGFibGUgZm9ybWF0XCJcblxubGV0IGFkZCBoIGtleSBkYXRhID1cbiAgbGV0IGkgPSBrZXlfaW5kZXggaCBrZXkgaW5cbiAgbGV0IGJ1Y2tldCA9IENvbnN7a2V5OyBkYXRhOyBuZXh0PWguZGF0YS4oaSl9IGluXG4gIGguZGF0YS4oaSkgPC0gYnVja2V0O1xuICBoLnNpemUgPC0gaC5zaXplICsgMTtcbiAgaWYgaC5zaXplID4gQXJyYXkubGVuZ3RoIGguZGF0YSBsc2wgMSB0aGVuIHJlc2l6ZSBrZXlfaW5kZXggaFxuXG5sZXQgcmVjIHJlbW92ZV9idWNrZXQgaCBpIGtleSBwcmVjID0gZnVuY3Rpb25cbiAgfCBFbXB0eSAtPlxuICAgICAgKClcbiAgfCAoQ29ucyB7a2V5PWs7IG5leHR9KSBhcyBjIC0+XG4gICAgICBpZiBjb21wYXJlIGsga2V5ID0gMFxuICAgICAgdGhlbiBiZWdpblxuICAgICAgICBoLnNpemUgPC0gaC5zaXplIC0gMTtcbiAgICAgICAgbWF0Y2ggcHJlYyB3aXRoXG4gICAgICAgIHwgRW1wdHkgLT4gaC5kYXRhLihpKSA8LSBuZXh0XG4gICAgICAgIHwgQ29ucyBjIC0+IGMubmV4dCA8LSBuZXh0XG4gICAgICBlbmRcbiAgICAgIGVsc2UgcmVtb3ZlX2J1Y2tldCBoIGkga2V5IGMgbmV4dFxuXG5sZXQgcmVtb3ZlIGgga2V5ID1cbiAgbGV0IGkgPSBrZXlfaW5kZXggaCBrZXkgaW5cbiAgcmVtb3ZlX2J1Y2tldCBoIGkga2V5IEVtcHR5IGguZGF0YS4oaSlcblxubGV0IHJlYyBmaW5kX3JlYyBrZXkgPSBmdW5jdGlvblxuICB8IEVtcHR5IC0+XG4gICAgICByYWlzZSBOb3RfZm91bmRcbiAgfCBDb25ze2tleT1rOyBkYXRhOyBuZXh0fSAtPlxuICAgICAgaWYgY29tcGFyZSBrZXkgayA9IDAgdGhlbiBkYXRhIGVsc2UgZmluZF9yZWMga2V5IG5leHRcblxubGV0IGZpbmQgaCBrZXkgPVxuICBtYXRjaCBoLmRhdGEuKGtleV9pbmRleCBoIGtleSkgd2l0aFxuICB8IEVtcHR5IC0+IHJhaXNlIE5vdF9mb3VuZFxuICB8IENvbnN7a2V5PWsxOyBkYXRhPWQxOyBuZXh0PW5leHQxfSAtPlxuICAgICAgaWYgY29tcGFyZSBrZXkgazEgPSAwIHRoZW4gZDEgZWxzZVxuICAgICAgbWF0Y2ggbmV4dDEgd2l0aFxuICAgICAgfCBFbXB0eSAtPiByYWlzZSBOb3RfZm91bmRcbiAgICAgIHwgQ29uc3trZXk9azI7IGRhdGE9ZDI7IG5leHQ9bmV4dDJ9IC0+XG4gICAgICAgICAgaWYgY29tcGFyZSBrZXkgazIgPSAwIHRoZW4gZDIgZWxzZVxuICAgICAgICAgIG1hdGNoIG5leHQyIHdpdGhcbiAgICAgICAgICB8IEVtcHR5IC0+IHJhaXNlIE5vdF9mb3VuZFxuICAgICAgICAgIHwgQ29uc3trZXk9azM7IGRhdGE9ZDM7IG5leHQ9bmV4dDN9IC0+XG4gICAgICAgICAgICAgIGlmIGNvbXBhcmUga2V5IGszID0gMCB0aGVuIGQzIGVsc2UgZmluZF9yZWMga2V5IG5leHQzXG5cbmxldCByZWMgZmluZF9yZWNfb3B0IGtleSA9IGZ1bmN0aW9uXG4gIHwgRW1wdHkgLT5cbiAgICAgIE5vbmVcbiAgfCBDb25ze2tleT1rOyBkYXRhOyBuZXh0fSAtPlxuICAgICAgaWYgY29tcGFyZSBrZXkgayA9IDAgdGhlbiBTb21lIGRhdGEgZWxzZSBmaW5kX3JlY19vcHQga2V5IG5leHRcblxubGV0IGZpbmRfb3B0IGgga2V5ID1cbiAgbWF0Y2ggaC5kYXRhLihrZXlfaW5kZXggaCBrZXkpIHdpdGhcbiAgfCBFbXB0eSAtPiBOb25lXG4gIHwgQ29uc3trZXk9azE7IGRhdGE9ZDE7IG5leHQ9bmV4dDF9IC0+XG4gICAgICBpZiBjb21wYXJlIGtleSBrMSA9IDAgdGhlbiBTb21lIGQxIGVsc2VcbiAgICAgIG1hdGNoIG5leHQxIHdpdGhcbiAgICAgIHwgRW1wdHkgLT4gTm9uZVxuICAgICAgfCBDb25ze2tleT1rMjsgZGF0YT1kMjsgbmV4dD1uZXh0Mn0gLT5cbiAgICAgICAgICBpZiBjb21wYXJlIGtleSBrMiA9IDAgdGhlbiBTb21lIGQyIGVsc2VcbiAgICAgICAgICBtYXRjaCBuZXh0MiB3aXRoXG4gICAgICAgICAgfCBFbXB0eSAtPiBOb25lXG4gICAgICAgICAgfCBDb25ze2tleT1rMzsgZGF0YT1kMzsgbmV4dD1uZXh0M30gLT5cbiAgICAgICAgICAgICAgaWYgY29tcGFyZSBrZXkgazMgPSAwIHRoZW4gU29tZSBkMyBlbHNlIGZpbmRfcmVjX29wdCBrZXkgbmV4dDNcblxubGV0IGZpbmRfYWxsIGgga2V5ID1cbiAgbGV0IHJlYyBmaW5kX2luX2J1Y2tldCA9IGZ1bmN0aW9uXG4gIHwgRW1wdHkgLT5cbiAgICAgIFtdXG4gIHwgQ29uc3trZXk9azsgZGF0YTsgbmV4dH0gLT5cbiAgICAgIGlmIGNvbXBhcmUgayBrZXkgPSAwXG4gICAgICB0aGVuIGRhdGEgOjogZmluZF9pbl9idWNrZXQgbmV4dFxuICAgICAgZWxzZSBmaW5kX2luX2J1Y2tldCBuZXh0IGluXG4gIGZpbmRfaW5fYnVja2V0IGguZGF0YS4oa2V5X2luZGV4IGgga2V5KVxuXG5sZXQgcmVjIHJlcGxhY2VfYnVja2V0IGtleSBkYXRhID0gZnVuY3Rpb25cbiAgfCBFbXB0eSAtPlxuICAgICAgdHJ1ZVxuICB8IENvbnMgKHtrZXk9azsgbmV4dH0gYXMgc2xvdCkgLT5cbiAgICAgIGlmIGNvbXBhcmUgayBrZXkgPSAwXG4gICAgICB0aGVuIChzbG90LmtleSA8LSBrZXk7IHNsb3QuZGF0YSA8LSBkYXRhOyBmYWxzZSlcbiAgICAgIGVsc2UgcmVwbGFjZV9idWNrZXQga2V5IGRhdGEgbmV4dFxuXG5sZXQgcmVwbGFjZSBoIGtleSBkYXRhID1cbiAgbGV0IGkgPSBrZXlfaW5kZXggaCBrZXkgaW5cbiAgbGV0IGwgPSBoLmRhdGEuKGkpIGluXG4gIGlmIHJlcGxhY2VfYnVja2V0IGtleSBkYXRhIGwgdGhlbiBiZWdpblxuICAgIGguZGF0YS4oaSkgPC0gQ29uc3trZXk7IGRhdGE7IG5leHQ9bH07XG4gICAgaC5zaXplIDwtIGguc2l6ZSArIDE7XG4gICAgaWYgaC5zaXplID4gQXJyYXkubGVuZ3RoIGguZGF0YSBsc2wgMSB0aGVuIHJlc2l6ZSBrZXlfaW5kZXggaFxuICBlbmRcblxubGV0IG1lbSBoIGtleSA9XG4gIGxldCByZWMgbWVtX2luX2J1Y2tldCA9IGZ1bmN0aW9uXG4gIHwgRW1wdHkgLT5cbiAgICAgIGZhbHNlXG4gIHwgQ29uc3trZXk9azsgbmV4dH0gLT5cbiAgICAgIGNvbXBhcmUgayBrZXkgPSAwIHx8IG1lbV9pbl9idWNrZXQgbmV4dCBpblxuICBtZW1faW5fYnVja2V0IGguZGF0YS4oa2V5X2luZGV4IGgga2V5KVxuXG5sZXQgYWRkX3NlcSB0YmwgaSA9XG4gIFNlcS5pdGVyIChmdW4gKGssdikgLT4gYWRkIHRibCBrIHYpIGlcblxubGV0IHJlcGxhY2Vfc2VxIHRibCBpID1cbiAgU2VxLml0ZXIgKGZ1biAoayx2KSAtPiByZXBsYWNlIHRibCBrIHYpIGlcblxubGV0IG9mX3NlcSBpID1cbiAgbGV0IHRibCA9IGNyZWF0ZSAxNiBpblxuICByZXBsYWNlX3NlcSB0YmwgaTtcbiAgdGJsXG5cbmxldCByZWJ1aWxkID8ocmFuZG9tID0gIXJhbmRvbWl6ZWQpIGggPVxuICBsZXQgcyA9IHBvd2VyXzJfYWJvdmUgMTYgKEFycmF5Lmxlbmd0aCBoLmRhdGEpIGluXG4gIGxldCBzZWVkID1cbiAgICBpZiByYW5kb20gdGhlbiBSYW5kb20uU3RhdGUuYml0cyAoTGF6eS5mb3JjZSBwcm5nKVxuICAgIGVsc2UgaWYgT2JqLnNpemUgKE9iai5yZXByIGgpID49IDQgdGhlbiBoLnNlZWRcbiAgICBlbHNlIDAgaW5cbiAgbGV0IGgnID0ge1xuICAgIHNpemUgPSBoLnNpemU7XG4gICAgZGF0YSA9IEFycmF5Lm1ha2UgcyBFbXB0eTtcbiAgICBzZWVkID0gc2VlZDtcbiAgICBpbml0aWFsX3NpemUgPSBpZiBPYmouc2l6ZSAoT2JqLnJlcHIgaCkgPj0gNCB0aGVuIGguaW5pdGlhbF9zaXplIGVsc2Ugc1xuICB9IGluXG4gIGluc2VydF9hbGxfYnVja2V0cyAoa2V5X2luZGV4IGgnKSBmYWxzZSBoLmRhdGEgaCcuZGF0YTtcbiAgaCdcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIERhbWllbiBEb2xpZ2V6LCBwcm9qZXQgUGFyYSwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTcgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCoqIFdlYWsgYXJyYXkgb3BlcmF0aW9ucyAqKVxuXG50eXBlICEnYSB0XG5cbmV4dGVybmFsIGNyZWF0ZSA6IGludCAtPiAnYSB0ID0gXCJjYW1sX3dlYWtfY3JlYXRlXCJcblxubGV0IGNyZWF0ZSBsID1cbiAgaWYgbm90ICgwIDw9IGwgJiYgbCA8PSBPYmouRXBoZW1lcm9uLm1heF9lcGhlX2xlbmd0aCkgdGhlblxuICAgIGludmFsaWRfYXJnKFwiV2Vhay5jcmVhdGVcIik7XG4gIGNyZWF0ZSBsXG5cbigqKiBudW1iZXIgb2YgYWRkaXRpb25hbCB2YWx1ZXMgaW4gYSB3ZWFrIHBvaW50ZXIgKilcbmxldCBhZGRpdGlvbmFsX3ZhbHVlcyA9IDJcblxubGV0IGxlbmd0aCB4ID0gT2JqLnNpemUoT2JqLnJlcHIgeCkgLSBhZGRpdGlvbmFsX3ZhbHVlc1xuXG5sZXQgcmFpc2VfaWZfaW52YWxpZF9vZmZzZXQgZSBvIG1zZyA9XG4gIGlmIG5vdCAoMCA8PSBvICYmIG8gPCBsZW5ndGggZSkgdGhlblxuICAgIGludmFsaWRfYXJnKG1zZylcblxuZXh0ZXJuYWwgc2V0JyA6ICdhIHQgLT4gaW50IC0+ICdhIC0+IHVuaXQgPSBcImNhbWxfZXBoZV9zZXRfa2V5XCJcbmV4dGVybmFsIHVuc2V0IDogJ2EgdCAtPiBpbnQgLT4gdW5pdCA9IFwiY2FtbF9lcGhlX3Vuc2V0X2tleVwiXG5sZXQgc2V0IGUgbyB4ID1cbiAgcmFpc2VfaWZfaW52YWxpZF9vZmZzZXQgZSBvIFwiV2Vhay5zZXRcIjtcbiAgbWF0Y2ggeCB3aXRoXG4gIHwgTm9uZSAtPiB1bnNldCBlIG9cbiAgfCBTb21lIHggLT4gc2V0JyBlIG8geFxuXG5leHRlcm5hbCBnZXQgOiAnYSB0IC0+IGludCAtPiAnYSBvcHRpb24gPSBcImNhbWxfd2Vha19nZXRcIlxubGV0IGdldCBlIG8gPVxuICByYWlzZV9pZl9pbnZhbGlkX29mZnNldCBlIG8gXCJXZWFrLmdldFwiO1xuICBnZXQgZSBvXG5cbmV4dGVybmFsIGdldF9jb3B5IDogJ2EgdCAtPiBpbnQgLT4gJ2Egb3B0aW9uID0gXCJjYW1sX3dlYWtfZ2V0X2NvcHlcIlxubGV0IGdldF9jb3B5IGUgbyA9XG4gIHJhaXNlX2lmX2ludmFsaWRfb2Zmc2V0IGUgbyBcIldlYWsuZ2V0X2NvcHlcIjtcbiAgZ2V0X2NvcHkgZSBvXG5cbmV4dGVybmFsIGNoZWNrIDogJ2EgdCAtPiBpbnQgLT4gYm9vbCA9IFwiY2FtbF93ZWFrX2NoZWNrXCJcbmxldCBjaGVjayBlIG8gPVxuICByYWlzZV9pZl9pbnZhbGlkX29mZnNldCBlIG8gXCJXZWFrLmNoZWNrXCI7XG4gIGNoZWNrIGUgb1xuXG5leHRlcm5hbCBibGl0IDogJ2EgdCAtPiBpbnQgLT4gJ2EgdCAtPiBpbnQgLT4gaW50IC0+IHVuaXQgPSBcImNhbWxfd2Vha19ibGl0XCJcblxuKCogYmxpdDogc3JjIHNyY29mZiBkc3QgZHN0b2ZmIGxlbiAqKVxubGV0IGJsaXQgZTEgbzEgZTIgbzIgbCA9XG4gIGlmIGwgPCAwIHx8IG8xIDwgMCB8fCBvMSA+IGxlbmd0aCBlMSAtIGxcbiAgICAgfHwgbzIgPCAwIHx8IG8yID4gbGVuZ3RoIGUyIC0gbFxuICB0aGVuIGludmFsaWRfYXJnIFwiV2Vhay5ibGl0XCJcbiAgZWxzZSBpZiBsIDw+IDAgdGhlbiBibGl0IGUxIG8xIGUyIG8yIGxcblxubGV0IGZpbGwgYXIgb2ZzIGxlbiB4ID1cbiAgaWYgb2ZzIDwgMCB8fCBsZW4gPCAwIHx8IG9mcyA+IGxlbmd0aCBhciAtIGxlblxuICB0aGVuIHJhaXNlIChJbnZhbGlkX2FyZ3VtZW50IFwiV2Vhay5maWxsXCIpXG4gIGVsc2UgYmVnaW5cbiAgICBmb3IgaSA9IG9mcyB0byAob2ZzICsgbGVuIC0gMSkgZG9cbiAgICAgIHNldCBhciBpIHhcbiAgICBkb25lXG4gIGVuZFxuXG5cbigqKiBXZWFrIGhhc2ggdGFibGVzICopXG5cbm1vZHVsZSB0eXBlIFMgPSBzaWdcbiAgdHlwZSBkYXRhXG4gIHR5cGUgdFxuICB2YWwgY3JlYXRlIDogaW50IC0+IHRcbiAgdmFsIGNsZWFyIDogdCAtPiB1bml0XG4gIHZhbCBtZXJnZSA6IHQgLT4gZGF0YSAtPiBkYXRhXG4gIHZhbCBhZGQgOiB0IC0+IGRhdGEgLT4gdW5pdFxuICB2YWwgcmVtb3ZlIDogdCAtPiBkYXRhIC0+IHVuaXRcbiAgdmFsIGZpbmQgOiB0IC0+IGRhdGEgLT4gZGF0YVxuICB2YWwgZmluZF9vcHQgOiB0IC0+IGRhdGEgLT4gZGF0YSBvcHRpb25cbiAgdmFsIGZpbmRfYWxsIDogdCAtPiBkYXRhIC0+IGRhdGEgbGlzdFxuICB2YWwgbWVtIDogdCAtPiBkYXRhIC0+IGJvb2xcbiAgdmFsIGl0ZXIgOiAoZGF0YSAtPiB1bml0KSAtPiB0IC0+IHVuaXRcbiAgdmFsIGZvbGQgOiAoZGF0YSAtPiAnYSAtPiAnYSkgLT4gdCAtPiAnYSAtPiAnYVxuICB2YWwgY291bnQgOiB0IC0+IGludFxuICB2YWwgc3RhdHMgOiB0IC0+IGludCAqIGludCAqIGludCAqIGludCAqIGludCAqIGludFxuZW5kXG5cbm1vZHVsZSBNYWtlIChIIDogSGFzaHRibC5IYXNoZWRUeXBlKSA6IChTIHdpdGggdHlwZSBkYXRhID0gSC50KSA9IHN0cnVjdFxuXG4gIHR5cGUgJ2Egd2Vha190ID0gJ2EgdFxuICBsZXQgd2Vha19jcmVhdGUgPSBjcmVhdGVcbiAgbGV0IGVtcHR5YnVja2V0ID0gd2Vha19jcmVhdGUgMFxuXG4gIHR5cGUgZGF0YSA9IEgudFxuXG4gIHR5cGUgdCA9IHtcbiAgICBtdXRhYmxlIHRhYmxlIDogZGF0YSB3ZWFrX3QgYXJyYXk7XG4gICAgbXV0YWJsZSBoYXNoZXMgOiBpbnQgYXJyYXkgYXJyYXk7XG4gICAgbXV0YWJsZSBsaW1pdCA6IGludDsgICAgICAgICAgICAgICAoKiBidWNrZXQgc2l6ZSBsaW1pdCAqKVxuICAgIG11dGFibGUgb3ZlcnNpemUgOiBpbnQ7ICAgICAgICAgICAgKCogbnVtYmVyIG9mIG92ZXJzaXplIGJ1Y2tldHMgKilcbiAgICBtdXRhYmxlIHJvdmVyIDogaW50OyAgICAgICAgICAgICAgICgqIGZvciBpbnRlcm5hbCBib29ra2VlcGluZyAqKVxuICB9XG5cbiAgbGV0IGdldF9pbmRleCB0IGggPSAoaCBsYW5kIG1heF9pbnQpIG1vZCAoQXJyYXkubGVuZ3RoIHQudGFibGUpXG5cbiAgbGV0IGxpbWl0ID0gN1xuICBsZXQgb3Zlcl9saW1pdCA9IDJcblxuICBsZXQgY3JlYXRlIHN6ID1cbiAgICBsZXQgc3ogPSBpZiBzeiA8IDcgdGhlbiA3IGVsc2Ugc3ogaW5cbiAgICBsZXQgc3ogPSBpZiBzeiA+IFN5cy5tYXhfYXJyYXlfbGVuZ3RoIHRoZW4gU3lzLm1heF9hcnJheV9sZW5ndGggZWxzZSBzeiBpblxuICAgIHtcbiAgICAgIHRhYmxlID0gQXJyYXkubWFrZSBzeiBlbXB0eWJ1Y2tldDtcbiAgICAgIGhhc2hlcyA9IEFycmF5Lm1ha2Ugc3ogW3wgfF07XG4gICAgICBsaW1pdCA9IGxpbWl0O1xuICAgICAgb3ZlcnNpemUgPSAwO1xuICAgICAgcm92ZXIgPSAwO1xuICAgIH1cblxuICBsZXQgY2xlYXIgdCA9XG4gICAgZm9yIGkgPSAwIHRvIEFycmF5Lmxlbmd0aCB0LnRhYmxlIC0gMSBkb1xuICAgICAgdC50YWJsZS4oaSkgPC0gZW1wdHlidWNrZXQ7XG4gICAgICB0Lmhhc2hlcy4oaSkgPC0gW3wgfF07XG4gICAgZG9uZTtcbiAgICB0LmxpbWl0IDwtIGxpbWl0O1xuICAgIHQub3ZlcnNpemUgPC0gMFxuXG5cbiAgbGV0IGZvbGQgZiB0IGluaXQgPVxuICAgIGxldCByZWMgZm9sZF9idWNrZXQgaSBiIGFjY3UgPVxuICAgICAgaWYgaSA+PSBsZW5ndGggYiB0aGVuIGFjY3UgZWxzZVxuICAgICAgbWF0Y2ggZ2V0IGIgaSB3aXRoXG4gICAgICB8IFNvbWUgdiAtPiBmb2xkX2J1Y2tldCAoaSsxKSBiIChmIHYgYWNjdSlcbiAgICAgIHwgTm9uZSAtPiBmb2xkX2J1Y2tldCAoaSsxKSBiIGFjY3VcbiAgICBpblxuICAgIEFycmF5LmZvbGRfcmlnaHQgKGZvbGRfYnVja2V0IDApIHQudGFibGUgaW5pdFxuXG5cbiAgbGV0IGl0ZXIgZiB0ID1cbiAgICBsZXQgcmVjIGl0ZXJfYnVja2V0IGkgYiA9XG4gICAgICBpZiBpID49IGxlbmd0aCBiIHRoZW4gKCkgZWxzZVxuICAgICAgbWF0Y2ggZ2V0IGIgaSB3aXRoXG4gICAgICB8IFNvbWUgdiAtPiBmIHY7IGl0ZXJfYnVja2V0IChpKzEpIGJcbiAgICAgIHwgTm9uZSAtPiBpdGVyX2J1Y2tldCAoaSsxKSBiXG4gICAgaW5cbiAgICBBcnJheS5pdGVyIChpdGVyX2J1Y2tldCAwKSB0LnRhYmxlXG5cblxuICBsZXQgaXRlcl93ZWFrIGYgdCA9XG4gICAgbGV0IHJlYyBpdGVyX2J1Y2tldCBpIGogYiA9XG4gICAgICBpZiBpID49IGxlbmd0aCBiIHRoZW4gKCkgZWxzZVxuICAgICAgbWF0Y2ggY2hlY2sgYiBpIHdpdGhcbiAgICAgIHwgdHJ1ZSAtPiBmIGIgdC5oYXNoZXMuKGopIGk7IGl0ZXJfYnVja2V0IChpKzEpIGogYlxuICAgICAgfCBmYWxzZSAtPiBpdGVyX2J1Y2tldCAoaSsxKSBqIGJcbiAgICBpblxuICAgIEFycmF5Lml0ZXJpIChpdGVyX2J1Y2tldCAwKSB0LnRhYmxlXG5cblxuICBsZXQgcmVjIGNvdW50X2J1Y2tldCBpIGIgYWNjdSA9XG4gICAgaWYgaSA+PSBsZW5ndGggYiB0aGVuIGFjY3UgZWxzZVxuICAgIGNvdW50X2J1Y2tldCAoaSsxKSBiIChhY2N1ICsgKGlmIGNoZWNrIGIgaSB0aGVuIDEgZWxzZSAwKSlcblxuXG4gIGxldCBjb3VudCB0ID1cbiAgICBBcnJheS5mb2xkX3JpZ2h0IChjb3VudF9idWNrZXQgMCkgdC50YWJsZSAwXG5cblxuICBsZXQgbmV4dF9zeiBuID0gSW50Lm1pbiAoMyAqIG4gLyAyICsgMykgU3lzLm1heF9hcnJheV9sZW5ndGhcbiAgbGV0IHByZXZfc3ogbiA9ICgobiAtIDMpICogMiArIDIpIC8gM1xuXG4gIGxldCB0ZXN0X3Nocmlua19idWNrZXQgdCA9XG4gICAgbGV0IGJ1Y2tldCA9IHQudGFibGUuKHQucm92ZXIpIGluXG4gICAgbGV0IGhidWNrZXQgPSB0Lmhhc2hlcy4odC5yb3ZlcikgaW5cbiAgICBsZXQgbGVuID0gbGVuZ3RoIGJ1Y2tldCBpblxuICAgIGxldCBwcmV2X2xlbiA9IHByZXZfc3ogbGVuIGluXG4gICAgbGV0IGxpdmUgPSBjb3VudF9idWNrZXQgMCBidWNrZXQgMCBpblxuICAgIGlmIGxpdmUgPD0gcHJldl9sZW4gdGhlbiBiZWdpblxuICAgICAgbGV0IHJlYyBsb29wIGkgaiA9XG4gICAgICAgIGlmIGogPj0gcHJldl9sZW4gdGhlbiBiZWdpblxuICAgICAgICAgIGlmIGNoZWNrIGJ1Y2tldCBpIHRoZW4gbG9vcCAoaSArIDEpIGpcbiAgICAgICAgICBlbHNlIGlmIGNoZWNrIGJ1Y2tldCBqIHRoZW4gYmVnaW5cbiAgICAgICAgICAgIGJsaXQgYnVja2V0IGogYnVja2V0IGkgMTtcbiAgICAgICAgICAgIGhidWNrZXQuKGkpIDwtIGhidWNrZXQuKGopO1xuICAgICAgICAgICAgbG9vcCAoaSArIDEpIChqIC0gMSk7XG4gICAgICAgICAgZW5kIGVsc2UgbG9vcCBpIChqIC0gMSk7XG4gICAgICAgIGVuZDtcbiAgICAgIGluXG4gICAgICBsb29wIDAgKGxlbmd0aCBidWNrZXQgLSAxKTtcbiAgICAgIGlmIHByZXZfbGVuID0gMCB0aGVuIGJlZ2luXG4gICAgICAgIHQudGFibGUuKHQucm92ZXIpIDwtIGVtcHR5YnVja2V0O1xuICAgICAgICB0Lmhhc2hlcy4odC5yb3ZlcikgPC0gW3wgfF07XG4gICAgICBlbmQgZWxzZSBiZWdpblxuICAgICAgICBsZXQgbmV3YnVja2V0ID0gd2Vha19jcmVhdGUgcHJldl9sZW4gaW5cbiAgICAgICAgYmxpdCBidWNrZXQgMCBuZXdidWNrZXQgMCBwcmV2X2xlbjtcbiAgICAgICAgdC50YWJsZS4odC5yb3ZlcikgPC0gbmV3YnVja2V0O1xuICAgICAgICB0Lmhhc2hlcy4odC5yb3ZlcikgPC0gQXJyYXkuc3ViIGhidWNrZXQgMCBwcmV2X2xlblxuICAgICAgZW5kO1xuICAgICAgaWYgbGVuID4gdC5saW1pdCAmJiBwcmV2X2xlbiA8PSB0LmxpbWl0IHRoZW4gdC5vdmVyc2l6ZSA8LSB0Lm92ZXJzaXplIC0gMTtcbiAgICBlbmQ7XG4gICAgdC5yb3ZlciA8LSAodC5yb3ZlciArIDEpIG1vZCAoQXJyYXkubGVuZ3RoIHQudGFibGUpXG5cblxuICBsZXQgcmVjIHJlc2l6ZSB0ID1cbiAgICBsZXQgb2xkbGVuID0gQXJyYXkubGVuZ3RoIHQudGFibGUgaW5cbiAgICBsZXQgbmV3bGVuID0gbmV4dF9zeiBvbGRsZW4gaW5cbiAgICBpZiBuZXdsZW4gPiBvbGRsZW4gdGhlbiBiZWdpblxuICAgICAgbGV0IG5ld3QgPSBjcmVhdGUgbmV3bGVuIGluXG4gICAgICBsZXQgYWRkX3dlYWsgb2Igb2ggb2kgPVxuICAgICAgICBsZXQgc2V0dGVyIG5iIG5pIF8gPSBibGl0IG9iIG9pIG5iIG5pIDEgaW5cbiAgICAgICAgbGV0IGggPSBvaC4ob2kpIGluXG4gICAgICAgIGFkZF9hdXggbmV3dCBzZXR0ZXIgTm9uZSBoIChnZXRfaW5kZXggbmV3dCBoKTtcbiAgICAgIGluXG4gICAgICBpdGVyX3dlYWsgYWRkX3dlYWsgdDtcbiAgICAgIHQudGFibGUgPC0gbmV3dC50YWJsZTtcbiAgICAgIHQuaGFzaGVzIDwtIG5ld3QuaGFzaGVzO1xuICAgICAgdC5saW1pdCA8LSBuZXd0LmxpbWl0O1xuICAgICAgdC5vdmVyc2l6ZSA8LSBuZXd0Lm92ZXJzaXplO1xuICAgICAgdC5yb3ZlciA8LSB0LnJvdmVyIG1vZCBBcnJheS5sZW5ndGggbmV3dC50YWJsZTtcbiAgICBlbmQgZWxzZSBiZWdpblxuICAgICAgdC5saW1pdCA8LSBtYXhfaW50OyAgICAgICAgICAgICAoKiBtYXhpbXVtIHNpemUgYWxyZWFkeSByZWFjaGVkICopXG4gICAgICB0Lm92ZXJzaXplIDwtIDA7XG4gICAgZW5kXG5cbiAgYW5kIGFkZF9hdXggdCBzZXR0ZXIgZCBoIGluZGV4ID1cbiAgICBsZXQgYnVja2V0ID0gdC50YWJsZS4oaW5kZXgpIGluXG4gICAgbGV0IGhhc2hlcyA9IHQuaGFzaGVzLihpbmRleCkgaW5cbiAgICBsZXQgc3ogPSBsZW5ndGggYnVja2V0IGluXG4gICAgbGV0IHJlYyBsb29wIGkgPVxuICAgICAgaWYgaSA+PSBzeiB0aGVuIGJlZ2luXG4gICAgICAgIGxldCBuZXdzeiA9XG4gICAgICAgICAgSW50Lm1pbiAoMyAqIHN6IC8gMiArIDMpIChTeXMubWF4X2FycmF5X2xlbmd0aCAtIGFkZGl0aW9uYWxfdmFsdWVzKVxuICAgICAgICBpblxuICAgICAgICBpZiBuZXdzeiA8PSBzeiB0aGVuIGZhaWx3aXRoIFwiV2Vhay5NYWtlOiBoYXNoIGJ1Y2tldCBjYW5ub3QgZ3JvdyBtb3JlXCI7XG4gICAgICAgIGxldCBuZXdidWNrZXQgPSB3ZWFrX2NyZWF0ZSBuZXdzeiBpblxuICAgICAgICBsZXQgbmV3aGFzaGVzID0gQXJyYXkubWFrZSBuZXdzeiAwIGluXG4gICAgICAgIGJsaXQgYnVja2V0IDAgbmV3YnVja2V0IDAgc3o7XG4gICAgICAgIEFycmF5LmJsaXQgaGFzaGVzIDAgbmV3aGFzaGVzIDAgc3o7XG4gICAgICAgIHNldHRlciBuZXdidWNrZXQgc3ogZDtcbiAgICAgICAgbmV3aGFzaGVzLihzeikgPC0gaDtcbiAgICAgICAgdC50YWJsZS4oaW5kZXgpIDwtIG5ld2J1Y2tldDtcbiAgICAgICAgdC5oYXNoZXMuKGluZGV4KSA8LSBuZXdoYXNoZXM7XG4gICAgICAgIGlmIHN6IDw9IHQubGltaXQgJiYgbmV3c3ogPiB0LmxpbWl0IHRoZW4gYmVnaW5cbiAgICAgICAgICB0Lm92ZXJzaXplIDwtIHQub3ZlcnNpemUgKyAxO1xuICAgICAgICAgIGZvciBfaSA9IDAgdG8gb3Zlcl9saW1pdCBkbyB0ZXN0X3Nocmlua19idWNrZXQgdCBkb25lO1xuICAgICAgICBlbmQ7XG4gICAgICAgIGlmIHQub3ZlcnNpemUgPiBBcnJheS5sZW5ndGggdC50YWJsZSAvIG92ZXJfbGltaXQgdGhlbiByZXNpemUgdDtcbiAgICAgIGVuZCBlbHNlIGlmIGNoZWNrIGJ1Y2tldCBpIHRoZW4gYmVnaW5cbiAgICAgICAgbG9vcCAoaSArIDEpXG4gICAgICBlbmQgZWxzZSBiZWdpblxuICAgICAgICBzZXR0ZXIgYnVja2V0IGkgZDtcbiAgICAgICAgaGFzaGVzLihpKSA8LSBoO1xuICAgICAgZW5kO1xuICAgIGluXG4gICAgbG9vcCAwXG5cblxuICBsZXQgYWRkIHQgZCA9XG4gICAgbGV0IGggPSBILmhhc2ggZCBpblxuICAgIGFkZF9hdXggdCBzZXQgKFNvbWUgZCkgaCAoZ2V0X2luZGV4IHQgaClcblxuXG4gIGxldCBmaW5kX29yIHQgZCBpZm5vdGZvdW5kID1cbiAgICBsZXQgaCA9IEguaGFzaCBkIGluXG4gICAgbGV0IGluZGV4ID0gZ2V0X2luZGV4IHQgaCBpblxuICAgIGxldCBidWNrZXQgPSB0LnRhYmxlLihpbmRleCkgaW5cbiAgICBsZXQgaGFzaGVzID0gdC5oYXNoZXMuKGluZGV4KSBpblxuICAgIGxldCBzeiA9IGxlbmd0aCBidWNrZXQgaW5cbiAgICBsZXQgcmVjIGxvb3AgaSA9XG4gICAgICBpZiBpID49IHN6IHRoZW4gaWZub3Rmb3VuZCBoIGluZGV4XG4gICAgICBlbHNlIGlmIGggPSBoYXNoZXMuKGkpIHRoZW4gYmVnaW5cbiAgICAgICAgbWF0Y2ggZ2V0X2NvcHkgYnVja2V0IGkgd2l0aFxuICAgICAgICB8IFNvbWUgdiB3aGVuIEguZXF1YWwgdiBkXG4gICAgICAgICAgIC0+IGJlZ2luIG1hdGNoIGdldCBidWNrZXQgaSB3aXRoXG4gICAgICAgICAgICAgIHwgU29tZSB2IC0+IHZcbiAgICAgICAgICAgICAgfCBOb25lIC0+IGxvb3AgKGkgKyAxKVxuICAgICAgICAgICAgICBlbmRcbiAgICAgICAgfCBfIC0+IGxvb3AgKGkgKyAxKVxuICAgICAgZW5kIGVsc2UgbG9vcCAoaSArIDEpXG4gICAgaW5cbiAgICBsb29wIDBcblxuXG4gIGxldCBtZXJnZSB0IGQgPVxuICAgIGZpbmRfb3IgdCBkIChmdW4gaCBpbmRleCAtPiBhZGRfYXV4IHQgc2V0IChTb21lIGQpIGggaW5kZXg7IGQpXG5cblxuICBsZXQgZmluZCB0IGQgPSBmaW5kX29yIHQgZCAoZnVuIF9oIF9pbmRleCAtPiByYWlzZSBOb3RfZm91bmQpXG5cbiAgbGV0IGZpbmRfb3B0IHQgZCA9XG4gICAgbGV0IGggPSBILmhhc2ggZCBpblxuICAgIGxldCBpbmRleCA9IGdldF9pbmRleCB0IGggaW5cbiAgICBsZXQgYnVja2V0ID0gdC50YWJsZS4oaW5kZXgpIGluXG4gICAgbGV0IGhhc2hlcyA9IHQuaGFzaGVzLihpbmRleCkgaW5cbiAgICBsZXQgc3ogPSBsZW5ndGggYnVja2V0IGluXG4gICAgbGV0IHJlYyBsb29wIGkgPVxuICAgICAgaWYgaSA+PSBzeiB0aGVuIE5vbmVcbiAgICAgIGVsc2UgaWYgaCA9IGhhc2hlcy4oaSkgdGhlbiBiZWdpblxuICAgICAgICBtYXRjaCBnZXRfY29weSBidWNrZXQgaSB3aXRoXG4gICAgICAgIHwgU29tZSB2IHdoZW4gSC5lcXVhbCB2IGRcbiAgICAgICAgICAgLT4gYmVnaW4gbWF0Y2ggZ2V0IGJ1Y2tldCBpIHdpdGhcbiAgICAgICAgICAgICAgfCBTb21lIF8gYXMgdiAtPiB2XG4gICAgICAgICAgICAgIHwgTm9uZSAtPiBsb29wIChpICsgMSlcbiAgICAgICAgICAgICAgZW5kXG4gICAgICAgIHwgXyAtPiBsb29wIChpICsgMSlcbiAgICAgIGVuZCBlbHNlIGxvb3AgKGkgKyAxKVxuICAgIGluXG4gICAgbG9vcCAwXG5cblxuICBsZXQgZmluZF9zaGFkb3cgdCBkIGlmZm91bmQgaWZub3Rmb3VuZCA9XG4gICAgbGV0IGggPSBILmhhc2ggZCBpblxuICAgIGxldCBpbmRleCA9IGdldF9pbmRleCB0IGggaW5cbiAgICBsZXQgYnVja2V0ID0gdC50YWJsZS4oaW5kZXgpIGluXG4gICAgbGV0IGhhc2hlcyA9IHQuaGFzaGVzLihpbmRleCkgaW5cbiAgICBsZXQgc3ogPSBsZW5ndGggYnVja2V0IGluXG4gICAgbGV0IHJlYyBsb29wIGkgPVxuICAgICAgaWYgaSA+PSBzeiB0aGVuIGlmbm90Zm91bmRcbiAgICAgIGVsc2UgaWYgaCA9IGhhc2hlcy4oaSkgdGhlbiBiZWdpblxuICAgICAgICBtYXRjaCBnZXRfY29weSBidWNrZXQgaSB3aXRoXG4gICAgICAgIHwgU29tZSB2IHdoZW4gSC5lcXVhbCB2IGQgLT4gaWZmb3VuZCBidWNrZXQgaVxuICAgICAgICB8IF8gLT4gbG9vcCAoaSArIDEpXG4gICAgICBlbmQgZWxzZSBsb29wIChpICsgMSlcbiAgICBpblxuICAgIGxvb3AgMFxuXG5cbiAgbGV0IHJlbW92ZSB0IGQgPSBmaW5kX3NoYWRvdyB0IGQgKGZ1biB3IGkgLT4gc2V0IHcgaSBOb25lKSAoKVxuXG5cbiAgbGV0IG1lbSB0IGQgPSBmaW5kX3NoYWRvdyB0IGQgKGZ1biBfdyBfaSAtPiB0cnVlKSBmYWxzZVxuXG5cbiAgbGV0IGZpbmRfYWxsIHQgZCA9XG4gICAgbGV0IGggPSBILmhhc2ggZCBpblxuICAgIGxldCBpbmRleCA9IGdldF9pbmRleCB0IGggaW5cbiAgICBsZXQgYnVja2V0ID0gdC50YWJsZS4oaW5kZXgpIGluXG4gICAgbGV0IGhhc2hlcyA9IHQuaGFzaGVzLihpbmRleCkgaW5cbiAgICBsZXQgc3ogPSBsZW5ndGggYnVja2V0IGluXG4gICAgbGV0IHJlYyBsb29wIGkgYWNjdSA9XG4gICAgICBpZiBpID49IHN6IHRoZW4gYWNjdVxuICAgICAgZWxzZSBpZiBoID0gaGFzaGVzLihpKSB0aGVuIGJlZ2luXG4gICAgICAgIG1hdGNoIGdldF9jb3B5IGJ1Y2tldCBpIHdpdGhcbiAgICAgICAgfCBTb21lIHYgd2hlbiBILmVxdWFsIHYgZFxuICAgICAgICAgICAtPiBiZWdpbiBtYXRjaCBnZXQgYnVja2V0IGkgd2l0aFxuICAgICAgICAgICAgICB8IFNvbWUgdiAtPiBsb29wIChpICsgMSkgKHYgOjogYWNjdSlcbiAgICAgICAgICAgICAgfCBOb25lIC0+IGxvb3AgKGkgKyAxKSBhY2N1XG4gICAgICAgICAgICAgIGVuZFxuICAgICAgICB8IF8gLT4gbG9vcCAoaSArIDEpIGFjY3VcbiAgICAgIGVuZCBlbHNlIGxvb3AgKGkgKyAxKSBhY2N1XG4gICAgaW5cbiAgICBsb29wIDAgW11cblxuXG4gIGxldCBzdGF0cyB0ID1cbiAgICBsZXQgbGVuID0gQXJyYXkubGVuZ3RoIHQudGFibGUgaW5cbiAgICBsZXQgbGVucyA9IEFycmF5Lm1hcCBsZW5ndGggdC50YWJsZSBpblxuICAgIEFycmF5LnNvcnQgY29tcGFyZSBsZW5zO1xuICAgIGxldCB0b3RsZW4gPSBBcnJheS5mb2xkX2xlZnQgKCArICkgMCBsZW5zIGluXG4gICAgKGxlbiwgY291bnQgdCwgdG90bGVuLCBsZW5zLigwKSwgbGVucy4obGVuLzIpLCBsZW5zLihsZW4tMSkpXG5cblxuZW5kXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBQaWVycmUgV2VpcywgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIEEgcHJldHR5LXByaW50aW5nIGZhY2lsaXR5IGFuZCBkZWZpbml0aW9uIG9mIGZvcm1hdHRlcnMgZm9yICdwYXJhbGxlbCdcbiAgIChpLmUuIHVucmVsYXRlZCBvciBpbmRlcGVuZGVudCkgcHJldHR5LXByaW50aW5nIG9uIG11bHRpcGxlIG91dCBjaGFubmVscy4gKilcblxuKCpcbiAgIFRoZSBwcmV0dHktcHJpbnRpbmcgZW5naW5lIGludGVybmFsIGRhdGEgc3RydWN0dXJlcy5cbiopXG5cbmxldCBpZCB4ID0geFxuXG4oKiBBIGRldm90ZWQgdHlwZSBmb3Igc2l6ZXMgdG8gYXZvaWQgY29uZnVzaW9uXG4gICBiZXR3ZWVuIHNpemVzIGFuZCBtZXJlIGludGVnZXJzLiAqKVxubW9kdWxlIFNpemUgOiBzaWdcbiAgdHlwZSB0XG5cbiAgdmFsIHRvX2ludCA6IHQgLT4gaW50XG4gIHZhbCBvZl9pbnQgOiBpbnQgLT4gdFxuICB2YWwgemVybyA6IHRcbiAgdmFsIHVua25vd24gOiB0XG4gIHZhbCBpc19rbm93biA6IHQgLT4gYm9vbFxuZW5kICA9IHN0cnVjdFxuICB0eXBlIHQgPSBpbnRcblxuICBsZXQgdG9faW50ID0gaWRcbiAgbGV0IG9mX2ludCA9IGlkXG4gIGxldCB6ZXJvID0gMFxuICBsZXQgdW5rbm93biA9IC0xXG4gIGxldCBpc19rbm93biBuID0gbiA+PSAwXG5lbmRcblxuXG5cbigqIFRoZSBwcmV0dHktcHJpbnRpbmcgYm94ZXMgZGVmaW5pdGlvbjpcbiAgIGEgcHJldHR5LXByaW50aW5nIGJveCBpcyBlaXRoZXJcbiAgIC0gaGJveDogaG9yaXpvbnRhbCBib3ggKG5vIGxpbmUgc3BsaXR0aW5nKVxuICAgLSB2Ym94OiB2ZXJ0aWNhbCBib3ggKGV2ZXJ5IGJyZWFrIGhpbnQgc3BsaXRzIHRoZSBsaW5lKVxuICAgLSBodmJveDogaG9yaXpvbnRhbC92ZXJ0aWNhbCBib3hcbiAgICAgKHRoZSBib3ggYmVoYXZlcyBhcyBhbiBob3Jpem9udGFsIGJveCBpZiBpdCBmaXRzIG9uXG4gICAgICB0aGUgY3VycmVudCBsaW5lLCBvdGhlcndpc2UgdGhlIGJveCBiZWhhdmVzIGFzIGEgdmVydGljYWwgYm94KVxuICAgLSBob3Zib3g6IGhvcml6b250YWwgb3IgdmVydGljYWwgY29tcGFjdGluZyBib3hcbiAgICAgKHRoZSBib3ggaXMgY29tcGFjdGluZyBtYXRlcmlhbCwgcHJpbnRpbmcgYXMgbXVjaCBtYXRlcmlhbCBhcyBwb3NzaWJsZVxuICAgICAgb24gZXZlcnkgbGluZXMpXG4gICAtIGJveDogaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbCBjb21wYWN0aW5nIGJveCB3aXRoIGVuaGFuY2VkIGJveCBzdHJ1Y3R1cmVcbiAgICAgKHRoZSBib3ggYmVoYXZlcyBhcyBhbiBob3Jpem9udGFsIG9yIHZlcnRpY2FsIGJveCBidXQgYnJlYWsgaGludHMgc3BsaXRcbiAgICAgIHRoZSBsaW5lIGlmIHNwbGl0dGluZyB3b3VsZCBtb3ZlIHRvIHRoZSBsZWZ0KVxuKilcbnR5cGUgYm94X3R5cGUgPSBDYW1saW50ZXJuYWxGb3JtYXRCYXNpY3MuYmxvY2tfdHlwZSA9XG4gIHwgUHBfaGJveCB8IFBwX3Zib3ggfCBQcF9odmJveCB8IFBwX2hvdmJveCB8IFBwX2JveCB8IFBwX2ZpdHNcblxuXG4oKiBUaGUgcHJldHR5LXByaW50aW5nIHRva2VucyBkZWZpbml0aW9uOlxuICAgYXJlIGVpdGhlciB0ZXh0IHRvIHByaW50IG9yIHByZXR0eSBwcmludGluZ1xuICAgZWxlbWVudHMgdGhhdCBkcml2ZSBpbmRlbnRhdGlvbiBhbmQgbGluZSBzcGxpdHRpbmcuICopXG50eXBlIHBwX3Rva2VuID1cbiAgfCBQcF90ZXh0IG9mIHN0cmluZyAgICAgICAgICAoKiBub3JtYWwgdGV4dCAqKVxuICB8IFBwX2JyZWFrIG9mIHsgICAgICAgICAgICAgICgqIGNvbXBsZXRlIGJyZWFrICopXG4gICAgICBmaXRzOiBzdHJpbmcgKiBpbnQgKiBzdHJpbmc7ICAgKCogbGluZSBpcyBub3Qgc3BsaXQgKilcbiAgICAgIGJyZWFrczogc3RyaW5nICogaW50ICogc3RyaW5nOyAoKiBsaW5lIGlzIHNwbGl0ICopXG4gICAgfVxuICB8IFBwX3RicmVhayBvZiBpbnQgKiBpbnQgICAgICgqIGdvIHRvIG5leHQgdGFidWxhdGlvbiAqKVxuICB8IFBwX3N0YWIgICAgICAgICAgICAgICAgICAgICgqIHNldCBhIHRhYnVsYXRpb24gKilcbiAgfCBQcF9iZWdpbiBvZiBpbnQgKiBib3hfdHlwZSAoKiBiZWdpbm5pbmcgb2YgYSBib3ggKilcbiAgfCBQcF9lbmQgICAgICAgICAgICAgICAgICAgICAoKiBlbmQgb2YgYSBib3ggKilcbiAgfCBQcF90YmVnaW4gb2YgdGJveCAgICAgICAgICAoKiBiZWdpbm5pbmcgb2YgYSB0YWJ1bGF0aW9uIGJveCAqKVxuICB8IFBwX3RlbmQgICAgICAgICAgICAgICAgICAgICgqIGVuZCBvZiBhIHRhYnVsYXRpb24gYm94ICopXG4gIHwgUHBfbmV3bGluZSAgICAgICAgICAgICAgICAgKCogdG8gZm9yY2UgYSBuZXdsaW5lIGluc2lkZSBhIGJveCAqKVxuICB8IFBwX2lmX25ld2xpbmUgICAgICAgICAgICAgICgqIHRvIGRvIHNvbWV0aGluZyBvbmx5IGlmIHRoaXMgdmVyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUgaGFzIGJlZW4gYnJva2VuICopXG4gIHwgUHBfb3Blbl90YWcgb2Ygc3RhZyAgICAgICAgICgqIG9wZW5pbmcgYSB0YWcgbmFtZSAqKVxuICB8IFBwX2Nsb3NlX3RhZyAgICAgICAgICAgICAgICgqIGNsb3NpbmcgdGhlIG1vc3QgcmVjZW50bHkgb3BlbiB0YWcgKilcblxuYW5kIHN0YWcgPSAuLlxuXG5hbmQgdGJveCA9IFBwX3Rib3ggb2YgaW50IGxpc3QgcmVmICAoKiBUYWJ1bGF0aW9uIGJveCAqKVxuXG50eXBlIHRhZyA9IHN0cmluZ1xudHlwZSBzdGFnICs9IFN0cmluZ190YWcgb2YgdGFnXG5cblxuKCogVGhlIHByZXR0eS1wcmludGVyIHF1ZXVlOlxuICAgcHJldHR5LXByaW50aW5nIG1hdGVyaWFsIGlzIG5vdCB3cml0dGVuIGluIHRoZSBvdXRwdXQgYXMgc29vbiBhcyBlbWl0dGVkO1xuICAgaW5zdGVhZCwgdGhlIG1hdGVyaWFsIGlzIHNpbXBseSByZWNvcmRlZCBpbiB0aGUgcHJldHR5LXByaW50ZXIgcXVldWUsXG4gICB1bnRpbCB0aGUgZW5jbG9zaW5nIGJveCBoYXMgYSBrbm93biBjb21wdXRlZCBzaXplIGFuZCBwcm9wZXIgc3BsaXR0aW5nXG4gICBkZWNpc2lvbnMgY2FuIGJlIG1hZGUuXG5cbiAgIFRoZSBwcmV0dHktcHJpbnRlciBxdWV1ZSBjb250YWlucyBmb3JtYXR0aW5nIGVsZW1lbnRzIHRvIGJlIHByaW50ZWQuXG4gICBFYWNoIGZvcm1hdHRpbmcgZWxlbWVudCBpcyBhIHR1cGxlIChzaXplLCB0b2tlbiwgbGVuZ3RoKSwgd2hlcmVcbiAgIC0gbGVuZ3RoIGlzIHRoZSBkZWNsYXJlZCBsZW5ndGggb2YgdGhlIHRva2VuLFxuICAgLSBzaXplIGlzIGVmZmVjdGl2ZSBzaXplIG9mIHRoZSB0b2tlbiB3aGVuIGl0IGlzIHByaW50ZWRcbiAgICAgKHNpemUgaXMgc2V0IHdoZW4gdGhlIHNpemUgb2YgdGhlIGJveCBpcyBrbm93biwgc28gdGhhdCBzaXplIG9mIGJyZWFrXG4gICAgICBoaW50cyBhcmUgZGVmaW5pdGl2ZSkuICopXG50eXBlIHBwX3F1ZXVlX2VsZW0gPSB7XG4gIG11dGFibGUgc2l6ZSA6IFNpemUudDtcbiAgdG9rZW4gOiBwcF90b2tlbjtcbiAgbGVuZ3RoIDogaW50O1xufVxuXG5cbigqIFRoZSBwcmV0dHktcHJpbnRlciBxdWV1ZSBkZWZpbml0aW9uLiAqKVxudHlwZSBwcF9xdWV1ZSA9IHBwX3F1ZXVlX2VsZW0gUXVldWUudFxuXG4oKiBUaGUgcHJldHR5LXByaW50ZXIgc2Nhbm5pbmcgc3RhY2suICopXG5cbigqIFRoZSBwcmV0dHktcHJpbnRlciBzY2FubmluZyBzdGFjazogc2Nhbm5pbmcgZWxlbWVudCBkZWZpbml0aW9uLiAqKVxudHlwZSBwcF9zY2FuX2VsZW0gPSB7XG4gIGxlZnRfdG90YWwgOiBpbnQ7ICgqIFZhbHVlIG9mIHBwX2xlZnRfdG90YWwgd2hlbiB0aGUgZWxlbWVudCB3YXMgZW5xdWV1ZWQuICopXG4gIHF1ZXVlX2VsZW0gOiBwcF9xdWV1ZV9lbGVtXG59XG5cbigqIFRoZSBwcmV0dHktcHJpbnRlciBmb3JtYXR0aW5nIHN0YWNrOlxuICAgdGhlIGZvcm1hdHRpbmcgc3RhY2sgY29udGFpbnMgdGhlIGRlc2NyaXB0aW9uIG9mIGFsbCB0aGUgY3VycmVudGx5IGFjdGl2ZVxuICAgYm94ZXM7IHRoZSBwcmV0dHktcHJpbnRlciBmb3JtYXR0aW5nIHN0YWNrIGlzIHVzZWQgdG8gc3BsaXQgdGhlIGxpbmVzXG4gICB3aGlsZSBwcmludGluZyB0b2tlbnMuICopXG5cbigqIFRoZSBwcmV0dHktcHJpbnRlciBmb3JtYXR0aW5nIHN0YWNrOiBmb3JtYXR0aW5nIHN0YWNrIGVsZW1lbnQgZGVmaW5pdGlvbi5cbiAgIEVhY2ggc3RhY2sgZWxlbWVudCBkZXNjcmliZXMgYSBwcmV0dHktcHJpbnRpbmcgYm94LiAqKVxudHlwZSBwcF9mb3JtYXRfZWxlbSA9IHsgYm94X3R5cGUgOiBib3hfdHlwZTsgd2lkdGggOiBpbnQgfVxuXG4oKiBUaGUgZm9ybWF0dGVyIGRlZmluaXRpb24uXG4gICBFYWNoIGZvcm1hdHRlciB2YWx1ZSBpcyBhIHByZXR0eS1wcmludGVyIGluc3RhbmNlIHdpdGggYWxsIGl0c1xuICAgbWFjaGluZXJ5LiAqKVxudHlwZSBmb3JtYXR0ZXIgPSB7XG4gICgqIFRoZSBwcmV0dHktcHJpbnRlciBzY2FubmluZyBzdGFjay4gKilcbiAgcHBfc2Nhbl9zdGFjayA6IHBwX3NjYW5fZWxlbSBTdGFjay50O1xuICAoKiBUaGUgcHJldHR5LXByaW50ZXIgZm9ybWF0dGluZyBzdGFjay4gKilcbiAgcHBfZm9ybWF0X3N0YWNrIDogcHBfZm9ybWF0X2VsZW0gU3RhY2sudDtcbiAgcHBfdGJveF9zdGFjayA6IHRib3ggU3RhY2sudDtcbiAgKCogVGhlIHByZXR0eS1wcmludGVyIHNlbWFudGljcyB0YWcgc3RhY2suICopXG4gIHBwX3RhZ19zdGFjayA6IHN0YWcgU3RhY2sudDtcbiAgcHBfbWFya19zdGFjayA6IHN0YWcgU3RhY2sudDtcbiAgKCogVmFsdWUgb2YgcmlnaHQgbWFyZ2luLiAqKVxuICBtdXRhYmxlIHBwX21hcmdpbiA6IGludDtcbiAgKCogTWluaW1hbCBzcGFjZSBsZWZ0IGJlZm9yZSBtYXJnaW4sIHdoZW4gb3BlbmluZyBhIGJveC4gKilcbiAgbXV0YWJsZSBwcF9taW5fc3BhY2VfbGVmdCA6IGludDtcbiAgKCogTWF4aW11bSB2YWx1ZSBvZiBpbmRlbnRhdGlvbjpcbiAgICAgbm8gYm94IGNhbiBiZSBvcGVuZWQgZnVydGhlci4gKilcbiAgbXV0YWJsZSBwcF9tYXhfaW5kZW50IDogaW50O1xuICAoKiBTcGFjZSByZW1haW5pbmcgb24gdGhlIGN1cnJlbnQgbGluZS4gKilcbiAgbXV0YWJsZSBwcF9zcGFjZV9sZWZ0IDogaW50O1xuICAoKiBDdXJyZW50IHZhbHVlIG9mIGluZGVudGF0aW9uLiAqKVxuICBtdXRhYmxlIHBwX2N1cnJlbnRfaW5kZW50IDogaW50O1xuICAoKiBUcnVlIHdoZW4gdGhlIGxpbmUgaGFzIGJlZW4gYnJva2VuIGJ5IHRoZSBwcmV0dHktcHJpbnRlci4gKilcbiAgbXV0YWJsZSBwcF9pc19uZXdfbGluZSA6IGJvb2w7XG4gICgqIFRvdGFsIHdpZHRoIG9mIHRva2VucyBhbHJlYWR5IHByaW50ZWQuICopXG4gIG11dGFibGUgcHBfbGVmdF90b3RhbCA6IGludDtcbiAgKCogVG90YWwgd2lkdGggb2YgdG9rZW5zIGV2ZXIgcHV0IGluIHF1ZXVlLiAqKVxuICBtdXRhYmxlIHBwX3JpZ2h0X3RvdGFsIDogaW50O1xuICAoKiBDdXJyZW50IG51bWJlciBvZiBvcGVuIGJveGVzLiAqKVxuICBtdXRhYmxlIHBwX2N1cnJfZGVwdGggOiBpbnQ7XG4gICgqIE1heGltdW0gbnVtYmVyIG9mIGJveGVzIHdoaWNoIGNhbiBiZSBzaW11bHRhbmVvdXNseSBvcGVuLiAqKVxuICBtdXRhYmxlIHBwX21heF9ib3hlcyA6IGludDtcbiAgKCogRWxsaXBzaXMgc3RyaW5nLiAqKVxuICBtdXRhYmxlIHBwX2VsbGlwc2lzIDogc3RyaW5nO1xuICAoKiBPdXRwdXQgZnVuY3Rpb24uICopXG4gIG11dGFibGUgcHBfb3V0X3N0cmluZyA6IHN0cmluZyAtPiBpbnQgLT4gaW50IC0+IHVuaXQ7XG4gICgqIEZsdXNoaW5nIGZ1bmN0aW9uLiAqKVxuICBtdXRhYmxlIHBwX291dF9mbHVzaCA6IHVuaXQgLT4gdW5pdDtcbiAgKCogT3V0cHV0IG9mIG5ldyBsaW5lcy4gKilcbiAgbXV0YWJsZSBwcF9vdXRfbmV3bGluZSA6IHVuaXQgLT4gdW5pdDtcbiAgKCogT3V0cHV0IG9mIGJyZWFrIGhpbnRzIHNwYWNlcy4gKilcbiAgbXV0YWJsZSBwcF9vdXRfc3BhY2VzIDogaW50IC0+IHVuaXQ7XG4gICgqIE91dHB1dCBvZiBpbmRlbnRhdGlvbiBvZiBuZXcgbGluZXMuICopXG4gIG11dGFibGUgcHBfb3V0X2luZGVudCA6IGludCAtPiB1bml0O1xuICAoKiBBcmUgdGFncyBwcmludGVkID8gKilcbiAgbXV0YWJsZSBwcF9wcmludF90YWdzIDogYm9vbDtcbiAgKCogQXJlIHRhZ3MgbWFya2VkID8gKilcbiAgbXV0YWJsZSBwcF9tYXJrX3RhZ3MgOiBib29sO1xuICAoKiBGaW5kIG9wZW5pbmcgYW5kIGNsb3NpbmcgbWFya2VycyBvZiB0YWdzLiAqKVxuICBtdXRhYmxlIHBwX21hcmtfb3Blbl90YWcgOiBzdGFnIC0+IHN0cmluZztcbiAgbXV0YWJsZSBwcF9tYXJrX2Nsb3NlX3RhZyA6IHN0YWcgLT4gc3RyaW5nO1xuICBtdXRhYmxlIHBwX3ByaW50X29wZW5fdGFnIDogc3RhZyAtPiB1bml0O1xuICBtdXRhYmxlIHBwX3ByaW50X2Nsb3NlX3RhZyA6IHN0YWcgLT4gdW5pdDtcbiAgKCogVGhlIHByZXR0eS1wcmludGVyIHF1ZXVlLiAqKVxuICBwcF9xdWV1ZSA6IHBwX3F1ZXVlO1xufVxuXG5cbigqIFRoZSBmb3JtYXR0ZXIgc3BlY2lmaWMgdGFnIGhhbmRsaW5nIGZ1bmN0aW9ucy4gKilcbnR5cGUgZm9ybWF0dGVyX3N0YWdfZnVuY3Rpb25zID0ge1xuICBtYXJrX29wZW5fc3RhZyA6IHN0YWcgLT4gc3RyaW5nO1xuICBtYXJrX2Nsb3NlX3N0YWcgOiBzdGFnIC0+IHN0cmluZztcbiAgcHJpbnRfb3Blbl9zdGFnIDogc3RhZyAtPiB1bml0O1xuICBwcmludF9jbG9zZV9zdGFnIDogc3RhZyAtPiB1bml0O1xufVxuXG5cbigqIFRoZSBmb3JtYXR0ZXIgZnVuY3Rpb25zIHRvIG91dHB1dCBtYXRlcmlhbC4gKilcbnR5cGUgZm9ybWF0dGVyX291dF9mdW5jdGlvbnMgPSB7XG4gIG91dF9zdHJpbmcgOiBzdHJpbmcgLT4gaW50IC0+IGludCAtPiB1bml0O1xuICBvdXRfZmx1c2ggOiB1bml0IC0+IHVuaXQ7XG4gIG91dF9uZXdsaW5lIDogdW5pdCAtPiB1bml0O1xuICBvdXRfc3BhY2VzIDogaW50IC0+IHVuaXQ7XG4gIG91dF9pbmRlbnQgOiBpbnQgLT4gdW5pdDtcbn1cblxuXG4oKlxuXG4gIEF1eGlsaWFyaWVzIGFuZCBiYXNpYyBmdW5jdGlvbnMuXG5cbiopXG5cbigqIEVudGVyIGEgdG9rZW4gaW4gdGhlIHByZXR0eS1wcmludGVyIHF1ZXVlLiAqKVxubGV0IHBwX2VucXVldWUgc3RhdGUgdG9rZW4gPVxuICBzdGF0ZS5wcF9yaWdodF90b3RhbCA8LSBzdGF0ZS5wcF9yaWdodF90b3RhbCArIHRva2VuLmxlbmd0aDtcbiAgUXVldWUuYWRkIHRva2VuIHN0YXRlLnBwX3F1ZXVlXG5cblxubGV0IHBwX2NsZWFyX3F1ZXVlIHN0YXRlID1cbiAgc3RhdGUucHBfbGVmdF90b3RhbCA8LSAxOyBzdGF0ZS5wcF9yaWdodF90b3RhbCA8LSAxO1xuICBRdWV1ZS5jbGVhciBzdGF0ZS5wcF9xdWV1ZVxuXG5cbigqIFBwX2luZmluaXR5OiBsYXJnZSB2YWx1ZSBmb3IgZGVmYXVsdCB0b2tlbnMgc2l6ZS5cblxuICAgUHBfaW5maW5pdHkgaXMgZG9jdW1lbnRlZCBhcyBiZWluZyBncmVhdGVyIHRoYW4gMWUxMDsgdG8gYXZvaWRcbiAgIGNvbmZ1c2lvbiBhYm91dCB0aGUgd29yZCAnZ3JlYXRlcicsIHdlIGNob29zZSBwcF9pbmZpbml0eSBncmVhdGVyXG4gICB0aGFuIDFlMTAgKyAxOyBmb3IgY29ycmVjdCBoYW5kbGluZyBvZiB0ZXN0cyBpbiB0aGUgYWxnb3JpdGhtLFxuICAgcHBfaW5maW5pdHkgbXVzdCBiZSBldmVuIG9uZSBtb3JlIHRoYW4gMWUxMCArIDE7IGxldCdzIHN0YW5kIG9uIHRoZVxuICAgc2FmZSBzaWRlIGJ5IGNob29zaW5nIDEuZTEwKzEwLlxuXG4gICBQcF9pbmZpbml0eSBjb3VsZCBwcm9iYWJseSBiZSAxMDczNzQxODIzIHRoYXQgaXMgMl4zMCAtIDEsIHRoYXQgaXNcbiAgIHRoZSBtaW5pbWFsIHVwcGVyIGJvdW5kIGZvciBpbnRlZ2Vyczsgbm93IHRoYXQgbWF4X2ludCBpcyBkZWZpbmVkLFxuICAgdGhpcyBsaW1pdCBjb3VsZCBhbHNvIGJlIGRlZmluZWQgYXMgbWF4X2ludCAtIDEuXG5cbiAgIEhvd2V2ZXIsIGJlZm9yZSBzZXR0aW5nIHBwX2luZmluaXR5IHRvIHNvbWV0aGluZyBhcm91bmQgbWF4X2ludCwgd2VcbiAgIG11c3QgY2FyZWZ1bGx5IGRvdWJsZS1jaGVjayBhbGwgdGhlIGludGVnZXIgYXJpdGhtZXRpYyBvcGVyYXRpb25zXG4gICB0aGF0IGludm9sdmUgcHBfaW5maW5pdHksIHNpbmNlIGFueSBvdmVyZmxvdyB3b3VsZCB3cmVjayBoYXZvYyB0aGVcbiAgIHByZXR0eS1wcmludGluZyBhbGdvcml0aG0ncyBpbnZhcmlhbnRzLiBHaXZlbiB0aGF0IHRoaXMgYXJpdGhtZXRpY1xuICAgY29ycmVjdG5lc3MgY2hlY2sgaXMgZGlmZmljdWx0IGFuZCBlcnJvciBwcm9uZSBhbmQgZ2l2ZW4gdGhhdCAxZTEwXG4gICArIDEgaXMgaW4gcHJhY3RpY2UgbGFyZ2UgZW5vdWdoLCB0aGVyZSBpcyBubyBuZWVkIHRvIGF0dGVtcHQgdG8gc2V0XG4gICBwcF9pbmZpbml0eSB0byB0aGUgdGhlb3JldGljYWxseSBtYXhpbXVtIGxpbWl0LiBJdCBpcyBub3Qgd29ydGggdGhlXG4gICBidXJkZW4gISAqKVxubGV0IHBwX2luZmluaXR5ID0gMTAwMDAwMDAxMFxuXG4oKiBPdXRwdXQgZnVuY3Rpb25zIGZvciB0aGUgZm9ybWF0dGVyLiAqKVxubGV0IHBwX291dHB1dF9zdHJpbmcgc3RhdGUgcyA9IHN0YXRlLnBwX291dF9zdHJpbmcgcyAwIChTdHJpbmcubGVuZ3RoIHMpXG5hbmQgcHBfb3V0cHV0X25ld2xpbmUgc3RhdGUgPSBzdGF0ZS5wcF9vdXRfbmV3bGluZSAoKVxuYW5kIHBwX291dHB1dF9zcGFjZXMgc3RhdGUgbiA9IHN0YXRlLnBwX291dF9zcGFjZXMgblxuYW5kIHBwX291dHB1dF9pbmRlbnQgc3RhdGUgbiA9IHN0YXRlLnBwX291dF9pbmRlbnQgblxuXG4oKiBGb3JtYXQgYSB0ZXh0dWFsIHRva2VuICopXG5sZXQgZm9ybWF0X3BwX3RleHQgc3RhdGUgc2l6ZSB0ZXh0ID1cbiAgc3RhdGUucHBfc3BhY2VfbGVmdCA8LSBzdGF0ZS5wcF9zcGFjZV9sZWZ0IC0gc2l6ZTtcbiAgcHBfb3V0cHV0X3N0cmluZyBzdGF0ZSB0ZXh0O1xuICBzdGF0ZS5wcF9pc19uZXdfbGluZSA8LSBmYWxzZVxuXG4oKiBGb3JtYXQgYSBzdHJpbmcgYnkgaXRzIGxlbmd0aCwgaWYgbm90IGVtcHR5ICopXG5sZXQgZm9ybWF0X3N0cmluZyBzdGF0ZSBzID1cbiAgaWYgcyA8PiBcIlwiIHRoZW4gZm9ybWF0X3BwX3RleHQgc3RhdGUgKFN0cmluZy5sZW5ndGggcykgc1xuXG4oKiBUbyBmb3JtYXQgYSBicmVhaywgaW5kZW50aW5nIGEgbmV3IGxpbmUuICopXG5sZXQgYnJlYWtfbmV3X2xpbmUgc3RhdGUgKGJlZm9yZSwgb2Zmc2V0LCBhZnRlcikgd2lkdGggPVxuICBmb3JtYXRfc3RyaW5nIHN0YXRlIGJlZm9yZTtcbiAgcHBfb3V0cHV0X25ld2xpbmUgc3RhdGU7XG4gIHN0YXRlLnBwX2lzX25ld19saW5lIDwtIHRydWU7XG4gIGxldCBpbmRlbnQgPSBzdGF0ZS5wcF9tYXJnaW4gLSB3aWR0aCArIG9mZnNldCBpblxuICAoKiBEb24ndCBpbmRlbnQgbW9yZSB0aGFuIHBwX21heF9pbmRlbnQuICopXG4gIGxldCByZWFsX2luZGVudCA9IEludC5taW4gc3RhdGUucHBfbWF4X2luZGVudCBpbmRlbnQgaW5cbiAgc3RhdGUucHBfY3VycmVudF9pbmRlbnQgPC0gcmVhbF9pbmRlbnQ7XG4gIHN0YXRlLnBwX3NwYWNlX2xlZnQgPC0gc3RhdGUucHBfbWFyZ2luIC0gc3RhdGUucHBfY3VycmVudF9pbmRlbnQ7XG4gIHBwX291dHB1dF9pbmRlbnQgc3RhdGUgc3RhdGUucHBfY3VycmVudF9pbmRlbnQ7XG4gIGZvcm1hdF9zdHJpbmcgc3RhdGUgYWZ0ZXJcblxuXG4oKiBUbyBmb3JjZSBhIGxpbmUgYnJlYWsgaW5zaWRlIGEgYm94OiBubyBvZmZzZXQgaXMgYWRkZWQuICopXG5sZXQgYnJlYWtfbGluZSBzdGF0ZSB3aWR0aCA9IGJyZWFrX25ld19saW5lIHN0YXRlIChcIlwiLCAwLCBcIlwiKSB3aWR0aFxuXG4oKiBUbyBmb3JtYXQgYSBicmVhayB0aGF0IGZpdHMgb24gdGhlIGN1cnJlbnQgbGluZS4gKilcbmxldCBicmVha19zYW1lX2xpbmUgc3RhdGUgKGJlZm9yZSwgd2lkdGgsIGFmdGVyKSA9XG4gIGZvcm1hdF9zdHJpbmcgc3RhdGUgYmVmb3JlO1xuICBzdGF0ZS5wcF9zcGFjZV9sZWZ0IDwtIHN0YXRlLnBwX3NwYWNlX2xlZnQgLSB3aWR0aDtcbiAgcHBfb3V0cHV0X3NwYWNlcyBzdGF0ZSB3aWR0aDtcbiAgZm9ybWF0X3N0cmluZyBzdGF0ZSBhZnRlclxuXG5cbigqIFRvIGluZGVudCBubyBtb3JlIHRoYW4gcHBfbWF4X2luZGVudCwgaWYgb25lIHRyaWVzIHRvIG9wZW4gYSBib3hcbiAgIGJleW9uZCBwcF9tYXhfaW5kZW50LCB0aGVuIHRoZSBib3ggaXMgcmVqZWN0ZWQgb24gdGhlIGxlZnRcbiAgIGJ5IHNpbXVsYXRpbmcgYSBicmVhay4gKilcbmxldCBwcF9mb3JjZV9icmVha19saW5lIHN0YXRlID1cbiAgbWF0Y2ggU3RhY2sudG9wX29wdCBzdGF0ZS5wcF9mb3JtYXRfc3RhY2sgd2l0aFxuICB8IE5vbmUgLT4gcHBfb3V0cHV0X25ld2xpbmUgc3RhdGVcbiAgfCBTb21lIHsgYm94X3R5cGU7IHdpZHRoIH0gLT5cbiAgICBpZiB3aWR0aCA+IHN0YXRlLnBwX3NwYWNlX2xlZnQgdGhlblxuICAgICAgbWF0Y2ggYm94X3R5cGUgd2l0aFxuICAgICAgfCBQcF9maXRzIHwgUHBfaGJveCAtPiAoKVxuICAgICAgfCBQcF92Ym94IHwgUHBfaHZib3ggfCBQcF9ob3Zib3ggfCBQcF9ib3ggLT4gYnJlYWtfbGluZSBzdGF0ZSB3aWR0aFxuXG5cbigqIFRvIHNraXAgYSB0b2tlbiwgaWYgdGhlIHByZXZpb3VzIGxpbmUgaGFzIGJlZW4gYnJva2VuLiAqKVxubGV0IHBwX3NraXBfdG9rZW4gc3RhdGUgPVxuICBtYXRjaCBRdWV1ZS50YWtlX29wdCBzdGF0ZS5wcF9xdWV1ZSB3aXRoXG4gIHwgTm9uZSAtPiAoKSAoKiBwcmludF9pZl9uZXdsaW5lIG11c3QgaGF2ZSBiZWVuIHRoZSBsYXN0IHByaW50aW5nIGNvbW1hbmQgKilcbiAgfCBTb21lIHsgc2l6ZTsgbGVuZ3RoOyBfIH0gLT5cbiAgICBzdGF0ZS5wcF9sZWZ0X3RvdGFsIDwtIHN0YXRlLnBwX2xlZnRfdG90YWwgLSBsZW5ndGg7XG4gICAgc3RhdGUucHBfc3BhY2VfbGVmdCA8LSBzdGF0ZS5wcF9zcGFjZV9sZWZ0ICsgU2l6ZS50b19pbnQgc2l6ZVxuXG5cbigqXG5cbiAgVGhlIG1haW4gcHJldHR5IHByaW50aW5nIGZ1bmN0aW9ucy5cblxuKilcblxuKCogRm9ybWF0dGluZyBhIHRva2VuIHdpdGggYSBnaXZlbiBzaXplLiAqKVxubGV0IGZvcm1hdF9wcF90b2tlbiBzdGF0ZSBzaXplID0gZnVuY3Rpb25cblxuICB8IFBwX3RleHQgcyAtPlxuICAgIGZvcm1hdF9wcF90ZXh0IHN0YXRlIHNpemUgc1xuXG4gIHwgUHBfYmVnaW4gKG9mZiwgdHkpIC0+XG4gICAgbGV0IGluc2VydGlvbl9wb2ludCA9IHN0YXRlLnBwX21hcmdpbiAtIHN0YXRlLnBwX3NwYWNlX2xlZnQgaW5cbiAgICBpZiBpbnNlcnRpb25fcG9pbnQgPiBzdGF0ZS5wcF9tYXhfaW5kZW50IHRoZW5cbiAgICAgICgqIGNhbiBub3Qgb3BlbiBhIGJveCByaWdodCB0aGVyZS4gKilcbiAgICAgIGJlZ2luIHBwX2ZvcmNlX2JyZWFrX2xpbmUgc3RhdGUgZW5kO1xuICAgIGxldCB3aWR0aCA9IHN0YXRlLnBwX3NwYWNlX2xlZnQgLSBvZmYgaW5cbiAgICBsZXQgYm94X3R5cGUgPVxuICAgICAgbWF0Y2ggdHkgd2l0aFxuICAgICAgfCBQcF92Ym94IC0+IFBwX3Zib3hcbiAgICAgIHwgUHBfaGJveCB8IFBwX2h2Ym94IHwgUHBfaG92Ym94IHwgUHBfYm94IHwgUHBfZml0cyAtPlxuICAgICAgICBpZiBzaXplID4gc3RhdGUucHBfc3BhY2VfbGVmdCB0aGVuIHR5IGVsc2UgUHBfZml0cyBpblxuICAgIFN0YWNrLnB1c2ggeyBib3hfdHlwZTsgd2lkdGggfSBzdGF0ZS5wcF9mb3JtYXRfc3RhY2tcblxuICB8IFBwX2VuZCAtPlxuICAgIFN0YWNrLnBvcF9vcHQgc3RhdGUucHBfZm9ybWF0X3N0YWNrIHw+IGlnbm9yZVxuXG4gIHwgUHBfdGJlZ2luIChQcF90Ym94IF8gYXMgdGJveCkgLT5cbiAgICBTdGFjay5wdXNoIHRib3ggc3RhdGUucHBfdGJveF9zdGFja1xuXG4gIHwgUHBfdGVuZCAtPlxuICAgIFN0YWNrLnBvcF9vcHQgc3RhdGUucHBfdGJveF9zdGFjayB8PiBpZ25vcmVcblxuICB8IFBwX3N0YWIgLT5cbiAgICBiZWdpbiBtYXRjaCBTdGFjay50b3Bfb3B0IHN0YXRlLnBwX3Rib3hfc3RhY2sgd2l0aFxuICAgIHwgTm9uZSAtPiAoKSAoKiBObyBvcGVuIHRhYnVsYXRpb24gYm94LiAqKVxuICAgIHwgU29tZSAoUHBfdGJveCB0YWJzKSAtPlxuICAgICAgbGV0IHJlYyBhZGRfdGFiIG4gPSBmdW5jdGlvblxuICAgICAgICB8IFtdIC0+IFtuXVxuICAgICAgICB8IHggOjogbCBhcyBscyAtPiBpZiBuIDwgeCB0aGVuIG4gOjogbHMgZWxzZSB4IDo6IGFkZF90YWIgbiBsIGluXG4gICAgICB0YWJzIDo9IGFkZF90YWIgKHN0YXRlLnBwX21hcmdpbiAtIHN0YXRlLnBwX3NwYWNlX2xlZnQpICF0YWJzXG4gICAgZW5kXG5cbiAgfCBQcF90YnJlYWsgKG4sIG9mZikgLT5cbiAgICBsZXQgaW5zZXJ0aW9uX3BvaW50ID0gc3RhdGUucHBfbWFyZ2luIC0gc3RhdGUucHBfc3BhY2VfbGVmdCBpblxuICAgIGJlZ2luIG1hdGNoIFN0YWNrLnRvcF9vcHQgc3RhdGUucHBfdGJveF9zdGFjayB3aXRoXG4gICAgfCBOb25lIC0+ICgpICgqIE5vIG9wZW4gdGFidWxhdGlvbiBib3guICopXG4gICAgfCBTb21lIChQcF90Ym94IHRhYnMpIC0+XG4gICAgICBsZXQgdGFiID1cbiAgICAgICAgbWF0Y2ggIXRhYnMgd2l0aFxuICAgICAgICB8IFtdIC0+IGluc2VydGlvbl9wb2ludFxuICAgICAgICB8IGZpcnN0IDo6IF8gLT5cbiAgICAgICAgICBsZXQgcmVjIGZpbmQgPSBmdW5jdGlvblxuICAgICAgICAgICAgfCBoZWFkIDo6IHRhaWwgLT5cbiAgICAgICAgICAgICAgaWYgaGVhZCA+PSBpbnNlcnRpb25fcG9pbnQgdGhlbiBoZWFkIGVsc2UgZmluZCB0YWlsXG4gICAgICAgICAgICB8IFtdIC0+IGZpcnN0IGluXG4gICAgICAgICAgZmluZCAhdGFicyBpblxuICAgICAgbGV0IG9mZnNldCA9IHRhYiAtIGluc2VydGlvbl9wb2ludCBpblxuICAgICAgaWYgb2Zmc2V0ID49IDBcbiAgICAgIHRoZW4gYnJlYWtfc2FtZV9saW5lIHN0YXRlIChcIlwiLCBvZmZzZXQgKyBuLCBcIlwiKVxuICAgICAgZWxzZSBicmVha19uZXdfbGluZSBzdGF0ZSAoXCJcIiwgdGFiICsgb2ZmLCBcIlwiKSBzdGF0ZS5wcF9tYXJnaW5cbiAgICBlbmRcblxuICB8IFBwX25ld2xpbmUgLT5cbiAgICBiZWdpbiBtYXRjaCBTdGFjay50b3Bfb3B0IHN0YXRlLnBwX2Zvcm1hdF9zdGFjayB3aXRoXG4gICAgfCBOb25lIC0+IHBwX291dHB1dF9uZXdsaW5lIHN0YXRlICgqIE5vIG9wZW4gYm94LiAqKVxuICAgIHwgU29tZSB7IHdpZHRoOyBffSAtPiBicmVha19saW5lIHN0YXRlIHdpZHRoXG4gICAgZW5kXG5cbiAgfCBQcF9pZl9uZXdsaW5lIC0+XG4gICAgaWYgc3RhdGUucHBfY3VycmVudF9pbmRlbnQgIT0gc3RhdGUucHBfbWFyZ2luIC0gc3RhdGUucHBfc3BhY2VfbGVmdFxuICAgIHRoZW4gcHBfc2tpcF90b2tlbiBzdGF0ZVxuXG4gIHwgUHBfYnJlYWsgeyBmaXRzOyBicmVha3MgfSAtPlxuICAgIGxldCBiZWZvcmUsIG9mZiwgXyA9IGJyZWFrcyBpblxuICAgIGJlZ2luIG1hdGNoIFN0YWNrLnRvcF9vcHQgc3RhdGUucHBfZm9ybWF0X3N0YWNrIHdpdGhcbiAgICB8IE5vbmUgLT4gKCkgKCogTm8gb3BlbiBib3guICopXG4gICAgfCBTb21lIHsgYm94X3R5cGU7IHdpZHRoIH0gLT5cbiAgICAgIGJlZ2luIG1hdGNoIGJveF90eXBlIHdpdGhcbiAgICAgIHwgUHBfaG92Ym94IC0+XG4gICAgICAgIGlmIHNpemUgKyBTdHJpbmcubGVuZ3RoIGJlZm9yZSA+IHN0YXRlLnBwX3NwYWNlX2xlZnRcbiAgICAgICAgdGhlbiBicmVha19uZXdfbGluZSBzdGF0ZSBicmVha3Mgd2lkdGhcbiAgICAgICAgZWxzZSBicmVha19zYW1lX2xpbmUgc3RhdGUgZml0c1xuICAgICAgfCBQcF9ib3ggLT5cbiAgICAgICAgKCogSGF2ZSB0aGUgbGluZSBqdXN0IGJlZW4gYnJva2VuIGhlcmUgPyAqKVxuICAgICAgICBpZiBzdGF0ZS5wcF9pc19uZXdfbGluZSB0aGVuIGJyZWFrX3NhbWVfbGluZSBzdGF0ZSBmaXRzIGVsc2VcbiAgICAgICAgaWYgc2l6ZSArIFN0cmluZy5sZW5ndGggYmVmb3JlID4gc3RhdGUucHBfc3BhY2VfbGVmdFxuICAgICAgICAgIHRoZW4gYnJlYWtfbmV3X2xpbmUgc3RhdGUgYnJlYWtzIHdpZHRoIGVsc2VcbiAgICAgICAgKCogYnJlYWsgdGhlIGxpbmUgaGVyZSBsZWFkcyB0byBuZXcgaW5kZW50YXRpb24gPyAqKVxuICAgICAgICBpZiBzdGF0ZS5wcF9jdXJyZW50X2luZGVudCA+IHN0YXRlLnBwX21hcmdpbiAtIHdpZHRoICsgb2ZmXG4gICAgICAgIHRoZW4gYnJlYWtfbmV3X2xpbmUgc3RhdGUgYnJlYWtzIHdpZHRoXG4gICAgICAgIGVsc2UgYnJlYWtfc2FtZV9saW5lIHN0YXRlIGZpdHNcbiAgICAgIHwgUHBfaHZib3ggLT4gYnJlYWtfbmV3X2xpbmUgc3RhdGUgYnJlYWtzIHdpZHRoXG4gICAgICB8IFBwX2ZpdHMgLT4gYnJlYWtfc2FtZV9saW5lIHN0YXRlIGZpdHNcbiAgICAgIHwgUHBfdmJveCAtPiBicmVha19uZXdfbGluZSBzdGF0ZSBicmVha3Mgd2lkdGhcbiAgICAgIHwgUHBfaGJveCAtPiBicmVha19zYW1lX2xpbmUgc3RhdGUgZml0c1xuICAgICAgZW5kXG4gICAgZW5kXG5cbiAgIHwgUHBfb3Blbl90YWcgdGFnX25hbWUgLT5cbiAgICAgbGV0IG1hcmtlciA9IHN0YXRlLnBwX21hcmtfb3Blbl90YWcgdGFnX25hbWUgaW5cbiAgICAgcHBfb3V0cHV0X3N0cmluZyBzdGF0ZSBtYXJrZXI7XG4gICAgIFN0YWNrLnB1c2ggdGFnX25hbWUgc3RhdGUucHBfbWFya19zdGFja1xuXG4gICB8IFBwX2Nsb3NlX3RhZyAtPlxuICAgICBiZWdpbiBtYXRjaCBTdGFjay5wb3Bfb3B0IHN0YXRlLnBwX21hcmtfc3RhY2sgd2l0aFxuICAgICB8IE5vbmUgLT4gKCkgKCogTm8gbW9yZSB0YWcgdG8gY2xvc2UuICopXG4gICAgIHwgU29tZSB0YWdfbmFtZSAtPlxuICAgICAgIGxldCBtYXJrZXIgPSBzdGF0ZS5wcF9tYXJrX2Nsb3NlX3RhZyB0YWdfbmFtZSBpblxuICAgICAgIHBwX291dHB1dF9zdHJpbmcgc3RhdGUgbWFya2VyXG4gICAgIGVuZFxuXG5cbigqIFByaW50IGlmIHRva2VuIHNpemUgaXMga25vd24gZWxzZSBwcmludGluZyBpcyBkZWxheWVkLlxuICAgUHJpbnRpbmcgaXMgZGVsYXllZCB3aGVuIHRoZSB0ZXh0IHdhaXRpbmcgaW4gdGhlIHF1ZXVlIHJlcXVpcmVzXG4gICBtb3JlIHJvb20gdG8gZm9ybWF0IHRoYW4gZXhpc3RzIG9uIHRoZSBjdXJyZW50IGxpbmUuICopXG5sZXQgcmVjIGFkdmFuY2VfbGVmdCBzdGF0ZSA9XG4gIG1hdGNoIFF1ZXVlLnBlZWtfb3B0IHN0YXRlLnBwX3F1ZXVlIHdpdGhcbiAgfCBOb25lIC0+ICgpICgqIE5vIHRva2VucyB0byBwcmludCAqKVxuICB8IFNvbWUgeyBzaXplOyB0b2tlbjsgbGVuZ3RoIH0gLT5cbiAgICBsZXQgcGVuZGluZ19jb3VudCA9IHN0YXRlLnBwX3JpZ2h0X3RvdGFsIC0gc3RhdGUucHBfbGVmdF90b3RhbCBpblxuICAgIGlmIFNpemUuaXNfa25vd24gc2l6ZSB8fCBwZW5kaW5nX2NvdW50ID49IHN0YXRlLnBwX3NwYWNlX2xlZnQgdGhlbiBiZWdpblxuICAgICAgUXVldWUudGFrZSBzdGF0ZS5wcF9xdWV1ZSB8PiBpZ25vcmU7ICgqIE5vdCBlbXB0eTogd2UgcGVlayBpbnRvIGl0ICopXG4gICAgICBsZXQgc2l6ZSA9IGlmIFNpemUuaXNfa25vd24gc2l6ZSB0aGVuIFNpemUudG9faW50IHNpemUgZWxzZSBwcF9pbmZpbml0eSBpblxuICAgICAgZm9ybWF0X3BwX3Rva2VuIHN0YXRlIHNpemUgdG9rZW47XG4gICAgICBzdGF0ZS5wcF9sZWZ0X3RvdGFsIDwtIGxlbmd0aCArIHN0YXRlLnBwX2xlZnRfdG90YWw7XG4gICAgICAoYWR2YW5jZV9sZWZ0IFtAdGFpbGNhbGxdKSBzdGF0ZVxuICAgIGVuZFxuXG5cbigqIFRvIGVucXVldWUgYSB0b2tlbiA6IHRyeSB0byBhZHZhbmNlLiAqKVxubGV0IGVucXVldWVfYWR2YW5jZSBzdGF0ZSB0b2sgPSBwcF9lbnF1ZXVlIHN0YXRlIHRvazsgYWR2YW5jZV9sZWZ0IHN0YXRlXG5cblxuKCogVG8gZW5xdWV1ZSBzdHJpbmdzLiAqKVxubGV0IGVucXVldWVfc3RyaW5nX2FzIHN0YXRlIHNpemUgcyA9XG4gIGVucXVldWVfYWR2YW5jZSBzdGF0ZSB7IHNpemU7IHRva2VuID0gUHBfdGV4dCBzOyBsZW5ndGggPSBTaXplLnRvX2ludCBzaXplIH1cblxuXG5sZXQgZW5xdWV1ZV9zdHJpbmcgc3RhdGUgcyA9XG4gIGVucXVldWVfc3RyaW5nX2FzIHN0YXRlIChTaXplLm9mX2ludCAoU3RyaW5nLmxlbmd0aCBzKSkgc1xuXG5cbigqIFJvdXRpbmVzIGZvciBzY2FuIHN0YWNrXG4gICBkZXRlcm1pbmUgc2l6ZSBvZiBib3hlcy4gKilcblxuKCogVGhlIHNjYW5fc3RhY2sgaXMgbmV2ZXIgZW1wdHkuICopXG5sZXQgaW5pdGlhbGl6ZV9zY2FuX3N0YWNrIHN0YWNrID1cbiAgU3RhY2suY2xlYXIgc3RhY2s7XG4gIGxldCBxdWV1ZV9lbGVtID0geyBzaXplID0gU2l6ZS51bmtub3duOyB0b2tlbiA9IFBwX3RleHQgXCJcIjsgbGVuZ3RoID0gMCB9IGluXG4gIFN0YWNrLnB1c2ggeyBsZWZ0X3RvdGFsID0gLTE7IHF1ZXVlX2VsZW0gfSBzdGFja1xuXG4oKiBTZXR0aW5nIHRoZSBzaXplIG9mIGJveGVzIG9uIHNjYW4gc3RhY2s6XG4gICBpZiB0eSA9IHRydWUgdGhlbiBzaXplIG9mIGJyZWFrIGlzIHNldCBlbHNlIHNpemUgb2YgYm94IGlzIHNldDtcbiAgIGluIGVhY2ggY2FzZSBwcF9zY2FuX3N0YWNrIGlzIHBvcHBlZC5cblxuICAgTm90ZTpcbiAgIFBhdHRlcm4gbWF0Y2hpbmcgb24gc2NhbiBzdGFjayBpcyBleGhhdXN0aXZlLCBzaW5jZSBzY2FuX3N0YWNrIGlzIG5ldmVyXG4gICBlbXB0eS5cbiAgIFBhdHRlcm4gbWF0Y2hpbmcgb24gdG9rZW4gaW4gc2NhbiBzdGFjayBpcyBhbHNvIGV4aGF1c3RpdmUsXG4gICBzaW5jZSBzY2FuX3B1c2ggaXMgdXNlZCBvbiBicmVha3MgYW5kIG9wZW5pbmcgb2YgYm94ZXMuICopXG5sZXQgc2V0X3NpemUgc3RhdGUgdHkgPVxuICBtYXRjaCBTdGFjay50b3Bfb3B0IHN0YXRlLnBwX3NjYW5fc3RhY2sgd2l0aFxuICB8IE5vbmUgLT4gKCkgKCogc2Nhbl9zdGFjayBpcyBuZXZlciBlbXB0eS4gKilcbiAgfCBTb21lIHsgbGVmdF90b3RhbDsgcXVldWVfZWxlbSB9IC0+XG4gICAgbGV0IHNpemUgPSBTaXplLnRvX2ludCBxdWV1ZV9lbGVtLnNpemUgaW5cbiAgICAoKiB0ZXN0IGlmIHNjYW4gc3RhY2sgY29udGFpbnMgYW55IGRhdGEgdGhhdCBpcyBub3Qgb2Jzb2xldGUuICopXG4gICAgaWYgbGVmdF90b3RhbCA8IHN0YXRlLnBwX2xlZnRfdG90YWwgdGhlblxuICAgICAgaW5pdGlhbGl6ZV9zY2FuX3N0YWNrIHN0YXRlLnBwX3NjYW5fc3RhY2tcbiAgICBlbHNlXG4gICAgICBtYXRjaCBxdWV1ZV9lbGVtLnRva2VuIHdpdGhcbiAgICAgIHwgUHBfYnJlYWsgXyB8IFBwX3RicmVhayAoXywgXykgLT5cbiAgICAgICAgaWYgdHkgdGhlbiBiZWdpblxuICAgICAgICAgIHF1ZXVlX2VsZW0uc2l6ZSA8LSBTaXplLm9mX2ludCAoc3RhdGUucHBfcmlnaHRfdG90YWwgKyBzaXplKTtcbiAgICAgICAgICBTdGFjay5wb3Bfb3B0IHN0YXRlLnBwX3NjYW5fc3RhY2sgfD4gaWdub3JlXG4gICAgICAgIGVuZFxuICAgICAgfCBQcF9iZWdpbiAoXywgXykgLT5cbiAgICAgICAgaWYgbm90IHR5IHRoZW4gYmVnaW5cbiAgICAgICAgICBxdWV1ZV9lbGVtLnNpemUgPC0gU2l6ZS5vZl9pbnQgKHN0YXRlLnBwX3JpZ2h0X3RvdGFsICsgc2l6ZSk7XG4gICAgICAgICAgU3RhY2sucG9wX29wdCBzdGF0ZS5wcF9zY2FuX3N0YWNrIHw+IGlnbm9yZVxuICAgICAgICBlbmRcbiAgICAgIHwgUHBfdGV4dCBfIHwgUHBfc3RhYiB8IFBwX3RiZWdpbiBfIHwgUHBfdGVuZCB8IFBwX2VuZFxuICAgICAgfCBQcF9uZXdsaW5lIHwgUHBfaWZfbmV3bGluZSB8IFBwX29wZW5fdGFnIF8gfCBQcF9jbG9zZV90YWcgLT5cbiAgICAgICAgKCkgKCogc2Nhbl9wdXNoIGlzIG9ubHkgdXNlZCBmb3IgYnJlYWtzIGFuZCBib3hlcy4gKilcblxuXG4oKiBQdXNoIGEgdG9rZW4gb24gcHJldHR5LXByaW50ZXIgc2Nhbm5pbmcgc3RhY2suXG4gICBJZiBiIGlzIHRydWUgc2V0X3NpemUgaXMgY2FsbGVkLiAqKVxubGV0IHNjYW5fcHVzaCBzdGF0ZSBiIHRva2VuID1cbiAgcHBfZW5xdWV1ZSBzdGF0ZSB0b2tlbjtcbiAgaWYgYiB0aGVuIHNldF9zaXplIHN0YXRlIHRydWU7XG4gIGxldCBlbGVtID0geyBsZWZ0X3RvdGFsID0gc3RhdGUucHBfcmlnaHRfdG90YWw7IHF1ZXVlX2VsZW0gPSB0b2tlbiB9IGluXG4gIFN0YWNrLnB1c2ggZWxlbSBzdGF0ZS5wcF9zY2FuX3N0YWNrXG5cblxuKCogVG8gb3BlbiBhIG5ldyBib3ggOlxuICAgdGhlIHVzZXIgbWF5IHNldCB0aGUgZGVwdGggYm91bmQgcHBfbWF4X2JveGVzXG4gICBhbnkgdGV4dCBuZXN0ZWQgZGVlcGVyIGlzIHByaW50ZWQgYXMgdGhlIGVsbGlwc2lzIHN0cmluZy4gKilcbmxldCBwcF9vcGVuX2JveF9nZW4gc3RhdGUgaW5kZW50IGJyX3R5ID1cbiAgc3RhdGUucHBfY3Vycl9kZXB0aCA8LSBzdGF0ZS5wcF9jdXJyX2RlcHRoICsgMTtcbiAgaWYgc3RhdGUucHBfY3Vycl9kZXB0aCA8IHN0YXRlLnBwX21heF9ib3hlcyB0aGVuXG4gICAgbGV0IHNpemUgPSBTaXplLm9mX2ludCAoLSBzdGF0ZS5wcF9yaWdodF90b3RhbCkgaW5cbiAgICBsZXQgZWxlbSA9IHsgc2l6ZTsgdG9rZW4gPSBQcF9iZWdpbiAoaW5kZW50LCBicl90eSk7IGxlbmd0aCA9IDAgfSBpblxuICAgIHNjYW5fcHVzaCBzdGF0ZSBmYWxzZSBlbGVtIGVsc2VcbiAgaWYgc3RhdGUucHBfY3Vycl9kZXB0aCA9IHN0YXRlLnBwX21heF9ib3hlc1xuICB0aGVuIGVucXVldWVfc3RyaW5nIHN0YXRlIHN0YXRlLnBwX2VsbGlwc2lzXG5cblxuKCogVGhlIGJveCB3aGljaCBpcyBhbHdheXMgb3Blbi4gKilcbmxldCBwcF9vcGVuX3N5c19ib3ggc3RhdGUgPSBwcF9vcGVuX2JveF9nZW4gc3RhdGUgMCBQcF9ob3Zib3hcblxuKCogQ2xvc2UgYSBib3gsIHNldHRpbmcgc2l6ZXMgb2YgaXRzIHN1YiBib3hlcy4gKilcbmxldCBwcF9jbG9zZV9ib3ggc3RhdGUgKCkgPVxuICBpZiBzdGF0ZS5wcF9jdXJyX2RlcHRoID4gMSB0aGVuXG4gIGJlZ2luXG4gICAgaWYgc3RhdGUucHBfY3Vycl9kZXB0aCA8IHN0YXRlLnBwX21heF9ib3hlcyB0aGVuXG4gICAgYmVnaW5cbiAgICAgIHBwX2VucXVldWUgc3RhdGUgeyBzaXplID0gU2l6ZS56ZXJvOyB0b2tlbiA9IFBwX2VuZDsgbGVuZ3RoID0gMCB9O1xuICAgICAgc2V0X3NpemUgc3RhdGUgdHJ1ZTsgc2V0X3NpemUgc3RhdGUgZmFsc2VcbiAgICBlbmQ7XG4gICAgc3RhdGUucHBfY3Vycl9kZXB0aCA8LSBzdGF0ZS5wcF9jdXJyX2RlcHRoIC0gMTtcbiAgZW5kXG5cblxuKCogT3BlbiBhIHRhZywgcHVzaGluZyBpdCBvbiB0aGUgdGFnIHN0YWNrLiAqKVxubGV0IHBwX29wZW5fc3RhZyBzdGF0ZSB0YWdfbmFtZSA9XG4gIGlmIHN0YXRlLnBwX3ByaW50X3RhZ3MgdGhlblxuICBiZWdpblxuICAgIFN0YWNrLnB1c2ggdGFnX25hbWUgc3RhdGUucHBfdGFnX3N0YWNrO1xuICAgIHN0YXRlLnBwX3ByaW50X29wZW5fdGFnIHRhZ19uYW1lXG4gIGVuZDtcbiAgaWYgc3RhdGUucHBfbWFya190YWdzIHRoZW5cbiAgICBsZXQgdG9rZW4gPSBQcF9vcGVuX3RhZyB0YWdfbmFtZSBpblxuICAgIHBwX2VucXVldWUgc3RhdGUgeyBzaXplID0gU2l6ZS56ZXJvOyB0b2tlbjsgbGVuZ3RoID0gMCB9XG5cblxuKCogQ2xvc2UgYSB0YWcsIHBvcHBpbmcgaXQgZnJvbSB0aGUgdGFnIHN0YWNrLiAqKVxubGV0IHBwX2Nsb3NlX3N0YWcgc3RhdGUgKCkgPVxuICBpZiBzdGF0ZS5wcF9tYXJrX3RhZ3MgdGhlblxuICAgIHBwX2VucXVldWUgc3RhdGUgeyBzaXplID0gU2l6ZS56ZXJvOyB0b2tlbiA9IFBwX2Nsb3NlX3RhZzsgbGVuZ3RoID0gMCB9O1xuICBpZiBzdGF0ZS5wcF9wcmludF90YWdzIHRoZW5cbiAgICBtYXRjaCBTdGFjay5wb3Bfb3B0IHN0YXRlLnBwX3RhZ19zdGFjayB3aXRoXG4gICAgfCBOb25lIC0+ICgpICgqIE5vIG1vcmUgdGFnIHRvIGNsb3NlLiAqKVxuICAgIHwgU29tZSB0YWdfbmFtZSAtPlxuICAgICAgc3RhdGUucHBfcHJpbnRfY2xvc2VfdGFnIHRhZ19uYW1lXG5cbmxldCBwcF9vcGVuX3RhZyBzdGF0ZSBzID0gcHBfb3Blbl9zdGFnIHN0YXRlIChTdHJpbmdfdGFnIHMpXG5sZXQgcHBfY2xvc2VfdGFnIHN0YXRlICgpID0gcHBfY2xvc2Vfc3RhZyBzdGF0ZSAoKVxuXG5sZXQgcHBfc2V0X3ByaW50X3RhZ3Mgc3RhdGUgYiA9IHN0YXRlLnBwX3ByaW50X3RhZ3MgPC0gYlxubGV0IHBwX3NldF9tYXJrX3RhZ3Mgc3RhdGUgYiA9IHN0YXRlLnBwX21hcmtfdGFncyA8LSBiXG5sZXQgcHBfZ2V0X3ByaW50X3RhZ3Mgc3RhdGUgKCkgPSBzdGF0ZS5wcF9wcmludF90YWdzXG5sZXQgcHBfZ2V0X21hcmtfdGFncyBzdGF0ZSAoKSA9IHN0YXRlLnBwX21hcmtfdGFnc1xubGV0IHBwX3NldF90YWdzIHN0YXRlIGIgPVxuICBwcF9zZXRfcHJpbnRfdGFncyBzdGF0ZSBiOyBwcF9zZXRfbWFya190YWdzIHN0YXRlIGJcblxuXG4oKiBIYW5kbGluZyB0YWcgaGFuZGxpbmcgZnVuY3Rpb25zOiBnZXQvc2V0IGZ1bmN0aW9ucy4gKilcbmxldCBwcF9nZXRfZm9ybWF0dGVyX3N0YWdfZnVuY3Rpb25zIHN0YXRlICgpID0ge1xuICBtYXJrX29wZW5fc3RhZyA9IHN0YXRlLnBwX21hcmtfb3Blbl90YWc7XG4gIG1hcmtfY2xvc2Vfc3RhZyA9IHN0YXRlLnBwX21hcmtfY2xvc2VfdGFnO1xuICBwcmludF9vcGVuX3N0YWcgPSBzdGF0ZS5wcF9wcmludF9vcGVuX3RhZztcbiAgcHJpbnRfY2xvc2Vfc3RhZyA9IHN0YXRlLnBwX3ByaW50X2Nsb3NlX3RhZztcbn1cblxuXG5sZXQgcHBfc2V0X2Zvcm1hdHRlcl9zdGFnX2Z1bmN0aW9ucyBzdGF0ZSB7XG4gICAgIG1hcmtfb3Blbl9zdGFnID0gbW90O1xuICAgICBtYXJrX2Nsb3NlX3N0YWcgPSBtY3Q7XG4gICAgIHByaW50X29wZW5fc3RhZyA9IHBvdDtcbiAgICAgcHJpbnRfY2xvc2Vfc3RhZyA9IHBjdDtcbiAgfSA9XG4gIHN0YXRlLnBwX21hcmtfb3Blbl90YWcgPC0gbW90O1xuICBzdGF0ZS5wcF9tYXJrX2Nsb3NlX3RhZyA8LSBtY3Q7XG4gIHN0YXRlLnBwX3ByaW50X29wZW5fdGFnIDwtIHBvdDtcbiAgc3RhdGUucHBfcHJpbnRfY2xvc2VfdGFnIDwtIHBjdFxuXG5cbigqIEluaXRpYWxpemUgcHJldHR5LXByaW50ZXIuICopXG5sZXQgcHBfcmluaXQgc3RhdGUgPVxuICBwcF9jbGVhcl9xdWV1ZSBzdGF0ZTtcbiAgaW5pdGlhbGl6ZV9zY2FuX3N0YWNrIHN0YXRlLnBwX3NjYW5fc3RhY2s7XG4gIFN0YWNrLmNsZWFyIHN0YXRlLnBwX2Zvcm1hdF9zdGFjaztcbiAgU3RhY2suY2xlYXIgc3RhdGUucHBfdGJveF9zdGFjaztcbiAgU3RhY2suY2xlYXIgc3RhdGUucHBfdGFnX3N0YWNrO1xuICBTdGFjay5jbGVhciBzdGF0ZS5wcF9tYXJrX3N0YWNrO1xuICBzdGF0ZS5wcF9jdXJyZW50X2luZGVudCA8LSAwO1xuICBzdGF0ZS5wcF9jdXJyX2RlcHRoIDwtIDA7XG4gIHN0YXRlLnBwX3NwYWNlX2xlZnQgPC0gc3RhdGUucHBfbWFyZ2luO1xuICBwcF9vcGVuX3N5c19ib3ggc3RhdGVcblxubGV0IGNsZWFyX3RhZ19zdGFjayBzdGF0ZSA9XG4gIFN0YWNrLml0ZXIgKGZ1biBfIC0+IHBwX2Nsb3NlX3RhZyBzdGF0ZSAoKSkgc3RhdGUucHBfdGFnX3N0YWNrXG5cblxuKCogRmx1c2hpbmcgcHJldHR5LXByaW50ZXIgcXVldWUuICopXG5sZXQgcHBfZmx1c2hfcXVldWUgc3RhdGUgYiA9XG4gIGNsZWFyX3RhZ19zdGFjayBzdGF0ZTtcbiAgd2hpbGUgc3RhdGUucHBfY3Vycl9kZXB0aCA+IDEgZG9cbiAgICBwcF9jbG9zZV9ib3ggc3RhdGUgKClcbiAgZG9uZTtcbiAgc3RhdGUucHBfcmlnaHRfdG90YWwgPC0gcHBfaW5maW5pdHk7XG4gIGFkdmFuY2VfbGVmdCBzdGF0ZTtcbiAgaWYgYiB0aGVuIHBwX291dHB1dF9uZXdsaW5lIHN0YXRlO1xuICBwcF9yaW5pdCBzdGF0ZVxuXG4oKlxuXG4gIFByb2NlZHVyZXMgdG8gZm9ybWF0IHZhbHVlcyBhbmQgdXNlIGJveGVzLlxuXG4qKVxuXG4oKiBUbyBmb3JtYXQgYSBzdHJpbmcuICopXG5sZXQgcHBfcHJpbnRfYXNfc2l6ZSBzdGF0ZSBzaXplIHMgPVxuICBpZiBzdGF0ZS5wcF9jdXJyX2RlcHRoIDwgc3RhdGUucHBfbWF4X2JveGVzXG4gIHRoZW4gZW5xdWV1ZV9zdHJpbmdfYXMgc3RhdGUgc2l6ZSBzXG5cblxubGV0IHBwX3ByaW50X2FzIHN0YXRlIGlzaXplIHMgPVxuICBwcF9wcmludF9hc19zaXplIHN0YXRlIChTaXplLm9mX2ludCBpc2l6ZSkgc1xuXG5cbmxldCBwcF9wcmludF9zdHJpbmcgc3RhdGUgcyA9XG4gIHBwX3ByaW50X2FzIHN0YXRlIChTdHJpbmcubGVuZ3RoIHMpIHNcblxubGV0IHBwX3ByaW50X2J5dGVzIHN0YXRlIHMgPVxuICBwcF9wcmludF9hcyBzdGF0ZSAoQnl0ZXMubGVuZ3RoIHMpIChCeXRlcy50b19zdHJpbmcgcylcblxuKCogVG8gZm9ybWF0IGFuIGludGVnZXIuICopXG5sZXQgcHBfcHJpbnRfaW50IHN0YXRlIGkgPSBwcF9wcmludF9zdHJpbmcgc3RhdGUgKEludC50b19zdHJpbmcgaSlcblxuKCogVG8gZm9ybWF0IGEgZmxvYXQuICopXG5sZXQgcHBfcHJpbnRfZmxvYXQgc3RhdGUgZiA9IHBwX3ByaW50X3N0cmluZyBzdGF0ZSAoc3RyaW5nX29mX2Zsb2F0IGYpXG5cbigqIFRvIGZvcm1hdCBhIGJvb2xlYW4uICopXG5sZXQgcHBfcHJpbnRfYm9vbCBzdGF0ZSBiID0gcHBfcHJpbnRfc3RyaW5nIHN0YXRlIChzdHJpbmdfb2ZfYm9vbCBiKVxuXG4oKiBUbyBmb3JtYXQgYSBjaGFyLiAqKVxubGV0IHBwX3ByaW50X2NoYXIgc3RhdGUgYyA9XG4gIHBwX3ByaW50X2FzIHN0YXRlIDEgKFN0cmluZy5tYWtlIDEgYylcblxuXG4oKiBPcGVuaW5nIGJveGVzLiAqKVxubGV0IHBwX29wZW5faGJveCBzdGF0ZSAoKSA9IHBwX29wZW5fYm94X2dlbiBzdGF0ZSAwIFBwX2hib3hcbmFuZCBwcF9vcGVuX3Zib3ggc3RhdGUgaW5kZW50ID0gcHBfb3Blbl9ib3hfZ2VuIHN0YXRlIGluZGVudCBQcF92Ym94XG5cbmFuZCBwcF9vcGVuX2h2Ym94IHN0YXRlIGluZGVudCA9IHBwX29wZW5fYm94X2dlbiBzdGF0ZSBpbmRlbnQgUHBfaHZib3hcbmFuZCBwcF9vcGVuX2hvdmJveCBzdGF0ZSBpbmRlbnQgPSBwcF9vcGVuX2JveF9nZW4gc3RhdGUgaW5kZW50IFBwX2hvdmJveFxuYW5kIHBwX29wZW5fYm94IHN0YXRlIGluZGVudCA9IHBwX29wZW5fYm94X2dlbiBzdGF0ZSBpbmRlbnQgUHBfYm94XG5cblxuKCogUHJpbnRpbmcgcXVldWVkIHRleHQuXG5cbiAgIFtwcF9wcmludF9mbHVzaF0gcHJpbnRzIGFsbCBwZW5kaW5nIGl0ZW1zIGluIHRoZSBwcmV0dHktcHJpbnRlciBxdWV1ZSBhbmRcbiAgIHRoZW4gZmx1c2hlcyB0aGUgbG93IGxldmVsIG91dHB1dCBkZXZpY2Ugb2YgdGhlIGZvcm1hdHRlciB0byBhY3R1YWxseVxuICAgZGlzcGxheSBwcmludGluZyBtYXRlcmlhbC5cblxuICAgW3BwX3ByaW50X25ld2xpbmVdIGJlaGF2ZXMgYXMgW3BwX3ByaW50X2ZsdXNoXSBhZnRlciBwcmludGluZyBhbiBhZGRpdGlvbmFsXG4gICBuZXcgbGluZS4gKilcbmxldCBwcF9wcmludF9uZXdsaW5lIHN0YXRlICgpID1cbiAgcHBfZmx1c2hfcXVldWUgc3RhdGUgdHJ1ZTsgc3RhdGUucHBfb3V0X2ZsdXNoICgpXG5hbmQgcHBfcHJpbnRfZmx1c2ggc3RhdGUgKCkgPVxuICBwcF9mbHVzaF9xdWV1ZSBzdGF0ZSBmYWxzZTsgc3RhdGUucHBfb3V0X2ZsdXNoICgpXG5cblxuKCogVG8gZ2V0IGEgbmV3bGluZSB3aGVuIG9uZSBkb2VzIG5vdCB3YW50IHRvIGNsb3NlIHRoZSBjdXJyZW50IGJveC4gKilcbmxldCBwcF9mb3JjZV9uZXdsaW5lIHN0YXRlICgpID1cbiAgaWYgc3RhdGUucHBfY3Vycl9kZXB0aCA8IHN0YXRlLnBwX21heF9ib3hlcyB0aGVuXG4gICAgZW5xdWV1ZV9hZHZhbmNlIHN0YXRlIHsgc2l6ZSA9IFNpemUuemVybzsgdG9rZW4gPSBQcF9uZXdsaW5lOyBsZW5ndGggPSAwIH1cblxuXG4oKiBUbyBmb3JtYXQgc29tZXRoaW5nLCBvbmx5IGluIGNhc2UgdGhlIGxpbmUgaGFzIGp1c3QgYmVlbiBicm9rZW4uICopXG5sZXQgcHBfcHJpbnRfaWZfbmV3bGluZSBzdGF0ZSAoKSA9XG4gIGlmIHN0YXRlLnBwX2N1cnJfZGVwdGggPCBzdGF0ZS5wcF9tYXhfYm94ZXMgdGhlblxuICAgIGVucXVldWVfYWR2YW5jZSBzdGF0ZVxuICAgICAgeyBzaXplID0gU2l6ZS56ZXJvOyB0b2tlbiA9IFBwX2lmX25ld2xpbmU7IGxlbmd0aCA9IDAgfVxuXG5cbigqIEdlbmVyYWxpemVkIGJyZWFrIGhpbnQgdGhhdCBhbGxvd3MgcHJpbnRpbmcgc3RyaW5ncyBiZWZvcmUvYWZ0ZXJcbiAgIHNhbWUtbGluZSBvZmZzZXQgKHdpZHRoKSBvciBuZXctbGluZSBvZmZzZXQgKilcbmxldCBwcF9wcmludF9jdXN0b21fYnJlYWsgc3RhdGUgfmZpdHMgfmJyZWFrcyA9XG4gIGxldCBiZWZvcmUsIHdpZHRoLCBhZnRlciA9IGZpdHMgaW5cbiAgaWYgc3RhdGUucHBfY3Vycl9kZXB0aCA8IHN0YXRlLnBwX21heF9ib3hlcyB0aGVuXG4gICAgbGV0IHNpemUgPSBTaXplLm9mX2ludCAoLSBzdGF0ZS5wcF9yaWdodF90b3RhbCkgaW5cbiAgICBsZXQgdG9rZW4gPSBQcF9icmVhayB7IGZpdHM7IGJyZWFrcyB9IGluXG4gICAgbGV0IGxlbmd0aCA9IFN0cmluZy5sZW5ndGggYmVmb3JlICsgd2lkdGggKyBTdHJpbmcubGVuZ3RoIGFmdGVyIGluXG4gICAgbGV0IGVsZW0gPSB7IHNpemU7IHRva2VuOyBsZW5ndGggfSBpblxuICAgIHNjYW5fcHVzaCBzdGF0ZSB0cnVlIGVsZW1cblxuKCogUHJpbnRpbmcgYnJlYWsgaGludHM6XG4gICBBIGJyZWFrIGhpbnQgaW5kaWNhdGVzIHdoZXJlIGEgYm94IG1heSBiZSBicm9rZW4uXG4gICBJZiBsaW5lIGlzIGJyb2tlbiB0aGVuIG9mZnNldCBpcyBhZGRlZCB0byB0aGUgaW5kZW50YXRpb24gb2YgdGhlIGN1cnJlbnRcbiAgIGJveCBlbHNlICh0aGUgdmFsdWUgb2YpIHdpZHRoIGJsYW5rcyBhcmUgcHJpbnRlZC4gKilcbmxldCBwcF9wcmludF9icmVhayBzdGF0ZSB3aWR0aCBvZmZzZXQgPVxuICBwcF9wcmludF9jdXN0b21fYnJlYWsgc3RhdGVcbiAgICB+Zml0czooXCJcIiwgd2lkdGgsIFwiXCIpIH5icmVha3M6KFwiXCIsIG9mZnNldCwgXCJcIilcblxuXG4oKiBQcmludCBhIHNwYWNlIDpcbiAgIGEgc3BhY2UgaXMgYSBicmVhayBoaW50IHRoYXQgcHJpbnRzIGEgc2luZ2xlIHNwYWNlIGlmIHRoZSBicmVhayBkb2VzIG5vdFxuICAgc3BsaXQgdGhlIGxpbmU7XG4gICBhIGN1dCBpcyBhIGJyZWFrIGhpbnQgdGhhdCBwcmludHMgbm90aGluZyBpZiB0aGUgYnJlYWsgZG9lcyBub3Qgc3BsaXQgdGhlXG4gICBsaW5lLiAqKVxubGV0IHBwX3ByaW50X3NwYWNlIHN0YXRlICgpID0gcHBfcHJpbnRfYnJlYWsgc3RhdGUgMSAwXG5hbmQgcHBfcHJpbnRfY3V0IHN0YXRlICgpID0gcHBfcHJpbnRfYnJlYWsgc3RhdGUgMCAwXG5cblxuKCogVGFidWxhdGlvbiBib3hlcy4gKilcbmxldCBwcF9vcGVuX3Rib3ggc3RhdGUgKCkgPVxuICBzdGF0ZS5wcF9jdXJyX2RlcHRoIDwtIHN0YXRlLnBwX2N1cnJfZGVwdGggKyAxO1xuICBpZiBzdGF0ZS5wcF9jdXJyX2RlcHRoIDwgc3RhdGUucHBfbWF4X2JveGVzIHRoZW5cbiAgICBsZXQgc2l6ZSA9IFNpemUuemVybyBpblxuICAgIGxldCBlbGVtID0geyBzaXplOyB0b2tlbiA9IFBwX3RiZWdpbiAoUHBfdGJveCAocmVmIFtdKSk7IGxlbmd0aCA9IDAgfSBpblxuICAgIGVucXVldWVfYWR2YW5jZSBzdGF0ZSBlbGVtXG5cblxuKCogQ2xvc2UgYSB0YWJ1bGF0aW9uIGJveC4gKilcbmxldCBwcF9jbG9zZV90Ym94IHN0YXRlICgpID1cbiAgaWYgc3RhdGUucHBfY3Vycl9kZXB0aCA+IDEgdGhlblxuICBiZWdpblxuICAgaWYgc3RhdGUucHBfY3Vycl9kZXB0aCA8IHN0YXRlLnBwX21heF9ib3hlcyB0aGVuXG4gICAgIGxldCBlbGVtID0geyBzaXplID0gU2l6ZS56ZXJvOyB0b2tlbiA9IFBwX3RlbmQ7IGxlbmd0aCA9IDAgfSBpblxuICAgICBlbnF1ZXVlX2FkdmFuY2Ugc3RhdGUgZWxlbTtcbiAgICAgc3RhdGUucHBfY3Vycl9kZXB0aCA8LSBzdGF0ZS5wcF9jdXJyX2RlcHRoIC0gMVxuICBlbmRcblxuXG4oKiBQcmludCBhIHRhYnVsYXRpb24gYnJlYWsuICopXG5sZXQgcHBfcHJpbnRfdGJyZWFrIHN0YXRlIHdpZHRoIG9mZnNldCA9XG4gIGlmIHN0YXRlLnBwX2N1cnJfZGVwdGggPCBzdGF0ZS5wcF9tYXhfYm94ZXMgdGhlblxuICAgIGxldCBzaXplID0gU2l6ZS5vZl9pbnQgKC0gc3RhdGUucHBfcmlnaHRfdG90YWwpIGluXG4gICAgbGV0IGVsZW0gPSB7IHNpemU7IHRva2VuID0gUHBfdGJyZWFrICh3aWR0aCwgb2Zmc2V0KTsgbGVuZ3RoID0gd2lkdGggfSBpblxuICAgIHNjYW5fcHVzaCBzdGF0ZSB0cnVlIGVsZW1cblxuXG5sZXQgcHBfcHJpbnRfdGFiIHN0YXRlICgpID0gcHBfcHJpbnRfdGJyZWFrIHN0YXRlIDAgMFxuXG5sZXQgcHBfc2V0X3RhYiBzdGF0ZSAoKSA9XG4gIGlmIHN0YXRlLnBwX2N1cnJfZGVwdGggPCBzdGF0ZS5wcF9tYXhfYm94ZXMgdGhlblxuICAgIGxldCBlbGVtID0geyBzaXplID0gU2l6ZS56ZXJvOyB0b2tlbiA9IFBwX3N0YWI7IGxlbmd0aCA9IDAgfSBpblxuICAgIGVucXVldWVfYWR2YW5jZSBzdGF0ZSBlbGVtXG5cblxuKCpcblxuICBQcm9jZWR1cmVzIHRvIGNvbnRyb2wgdGhlIHByZXR0eS1wcmludGVyc1xuXG4qKVxuXG4oKiBTZXRfbWF4X2JveGVzLiAqKVxubGV0IHBwX3NldF9tYXhfYm94ZXMgc3RhdGUgbiA9IGlmIG4gPiAxIHRoZW4gc3RhdGUucHBfbWF4X2JveGVzIDwtIG5cblxuKCogVG8ga25vdyB0aGUgY3VycmVudCBtYXhpbXVtIG51bWJlciBvZiBib3hlcyBhbGxvd2VkLiAqKVxubGV0IHBwX2dldF9tYXhfYm94ZXMgc3RhdGUgKCkgPSBzdGF0ZS5wcF9tYXhfYm94ZXNcblxubGV0IHBwX292ZXJfbWF4X2JveGVzIHN0YXRlICgpID0gc3RhdGUucHBfY3Vycl9kZXB0aCA9IHN0YXRlLnBwX21heF9ib3hlc1xuXG4oKiBFbGxpcHNpcy4gKilcbmxldCBwcF9zZXRfZWxsaXBzaXNfdGV4dCBzdGF0ZSBzID0gc3RhdGUucHBfZWxsaXBzaXMgPC0gc1xuYW5kIHBwX2dldF9lbGxpcHNpc190ZXh0IHN0YXRlICgpID0gc3RhdGUucHBfZWxsaXBzaXNcblxuXG4oKiBUbyBzZXQgdGhlIG1hcmdpbiBvZiBwcmV0dHktcHJpbnRlci4gKilcbmxldCBwcF9saW1pdCBuID1cbiAgaWYgbiA8IHBwX2luZmluaXR5IHRoZW4gbiBlbHNlIHByZWQgcHBfaW5maW5pdHlcblxuXG4oKiBJbnRlcm5hbCBwcmV0dHktcHJpbnRlciBmdW5jdGlvbnMuICopXG5sZXQgcHBfc2V0X21pbl9zcGFjZV9sZWZ0IHN0YXRlIG4gPVxuICBpZiBuID49IDEgdGhlblxuICAgIGxldCBuID0gcHBfbGltaXQgbiBpblxuICAgIHN0YXRlLnBwX21pbl9zcGFjZV9sZWZ0IDwtIG47XG4gICAgc3RhdGUucHBfbWF4X2luZGVudCA8LSBzdGF0ZS5wcF9tYXJnaW4gLSBzdGF0ZS5wcF9taW5fc3BhY2VfbGVmdDtcbiAgICBwcF9yaW5pdCBzdGF0ZVxuXG5cbigqIEluaXRpYWxseSwgd2UgaGF2ZSA6XG4gICBwcF9tYXhfaW5kZW50ID0gcHBfbWFyZ2luIC0gcHBfbWluX3NwYWNlX2xlZnQsIGFuZFxuICAgcHBfc3BhY2VfbGVmdCA9IHBwX21hcmdpbi4gKilcbmxldCBwcF9zZXRfbWF4X2luZGVudCBzdGF0ZSBuID1cbiAgaWYgbiA+IDEgdGhlblxuICAgIHBwX3NldF9taW5fc3BhY2VfbGVmdCBzdGF0ZSAoc3RhdGUucHBfbWFyZ2luIC0gbilcblxuXG5sZXQgcHBfZ2V0X21heF9pbmRlbnQgc3RhdGUgKCkgPSBzdGF0ZS5wcF9tYXhfaW5kZW50XG5cbmxldCBwcF9zZXRfbWFyZ2luIHN0YXRlIG4gPVxuICBpZiBuID49IDEgdGhlblxuICAgIGxldCBuID0gcHBfbGltaXQgbiBpblxuICAgIHN0YXRlLnBwX21hcmdpbiA8LSBuO1xuICAgIGxldCBuZXdfbWF4X2luZGVudCA9XG4gICAgICAoKiBUcnkgdG8gbWFpbnRhaW4gbWF4X2luZGVudCB0byBpdHMgYWN0dWFsIHZhbHVlLiAqKVxuICAgICAgaWYgc3RhdGUucHBfbWF4X2luZGVudCA8PSBzdGF0ZS5wcF9tYXJnaW5cbiAgICAgIHRoZW4gc3RhdGUucHBfbWF4X2luZGVudCBlbHNlXG4gICAgICAoKiBJZiBwb3NzaWJsZSBtYWludGFpbiBwcF9taW5fc3BhY2VfbGVmdCB0byBpdHMgYWN0dWFsIHZhbHVlLFxuICAgICAgICAgaWYgdGhpcyBsZWFkcyB0byBhIHRvbyBzbWFsbCBtYXhfaW5kZW50LCB0YWtlIGhhbGYgb2YgdGhlXG4gICAgICAgICBuZXcgbWFyZ2luLCBpZiBpdCBpcyBncmVhdGVyIHRoYW4gMS4gKilcbiAgICAgICBJbnQubWF4IChJbnQubWF4IChzdGF0ZS5wcF9tYXJnaW4gLSBzdGF0ZS5wcF9taW5fc3BhY2VfbGVmdClcbiAgICAgICAgICAgICAgICAoc3RhdGUucHBfbWFyZ2luIC8gMikpIDEgaW5cbiAgICAoKiBSZWJ1aWxkIGludmFyaWFudHMuICopXG4gICAgcHBfc2V0X21heF9pbmRlbnQgc3RhdGUgbmV3X21heF9pbmRlbnRcblxuXG4oKiogR2VvbWV0cnkgZnVuY3Rpb25zIGFuZCB0eXBlcyAqKVxudHlwZSBnZW9tZXRyeSA9IHsgbWF4X2luZGVudDppbnQ7IG1hcmdpbjogaW50fVxuXG5sZXQgdmFsaWRhdGVfZ2VvbWV0cnkge21hcmdpbjsgbWF4X2luZGVudH0gPVxuICBpZiBtYXhfaW5kZW50IDwgMiB0aGVuXG4gICAgRXJyb3IgXCJtYXhfaW5kZW50IDwgMlwiXG4gIGVsc2UgaWYgbWFyZ2luIDw9IG1heF9pbmRlbnQgdGhlblxuICAgIEVycm9yIFwibWFyZ2luIDw9IG1heF9pbmRlbnRcIlxuICBlbHNlIE9rICgpXG5cbmxldCBjaGVja19nZW9tZXRyeSBnZW9tZXRyeSA9XG4gIG1hdGNoIHZhbGlkYXRlX2dlb21ldHJ5IGdlb21ldHJ5IHdpdGhcbiAgfCBPayAoKSAtPiB0cnVlXG4gIHwgRXJyb3IgXyAtPiBmYWxzZVxuXG5sZXQgcHBfZ2V0X21hcmdpbiBzdGF0ZSAoKSA9IHN0YXRlLnBwX21hcmdpblxuXG5sZXQgcHBfc2V0X2Z1bGxfZ2VvbWV0cnkgc3RhdGUge21hcmdpbjsgbWF4X2luZGVudH0gPVxuICBwcF9zZXRfbWFyZ2luIHN0YXRlIG1hcmdpbjtcbiAgcHBfc2V0X21heF9pbmRlbnQgc3RhdGUgbWF4X2luZGVudDtcbiAgKClcblxubGV0IHBwX3NldF9nZW9tZXRyeSBzdGF0ZSB+bWF4X2luZGVudCB+bWFyZ2luID1cbiAgbGV0IGdlb21ldHJ5ID0geyBtYXhfaW5kZW50OyBtYXJnaW4gfSBpblxuICBtYXRjaCB2YWxpZGF0ZV9nZW9tZXRyeSBnZW9tZXRyeSB3aXRoXG4gIHwgRXJyb3IgbXNnIC0+XG4gICAgcmFpc2UgKEludmFsaWRfYXJndW1lbnQgKFwiRm9ybWF0LnBwX3NldF9nZW9tZXRyeTogXCIgXiBtc2cpKVxuICB8IE9rICgpIC0+XG4gICAgcHBfc2V0X2Z1bGxfZ2VvbWV0cnkgc3RhdGUgZ2VvbWV0cnlcblxubGV0IHBwX3NhZmVfc2V0X2dlb21ldHJ5IHN0YXRlIH5tYXhfaW5kZW50IH5tYXJnaW4gPVxuICBsZXQgZ2VvbWV0cnkgPSB7IG1heF9pbmRlbnQ7IG1hcmdpbiB9IGluXG4gIG1hdGNoIHZhbGlkYXRlX2dlb21ldHJ5IGdlb21ldHJ5IHdpdGhcbiAgfCBFcnJvciBfbXNnIC0+XG4gICAgICgpXG4gIHwgT2sgKCkgLT5cbiAgICBwcF9zZXRfZnVsbF9nZW9tZXRyeSBzdGF0ZSBnZW9tZXRyeVxuXG5sZXQgcHBfZ2V0X2dlb21ldHJ5IHN0YXRlICgpID1cbiAgeyBtYXJnaW4gPSBwcF9nZXRfbWFyZ2luIHN0YXRlICgpOyBtYXhfaW5kZW50ID0gcHBfZ2V0X21heF9pbmRlbnQgc3RhdGUgKCkgfVxuXG5sZXQgcHBfdXBkYXRlX2dlb21ldHJ5IHN0YXRlIHVwZGF0ZSA9XG4gIGxldCBnZW9tZXRyeSA9IHBwX2dldF9nZW9tZXRyeSBzdGF0ZSAoKSBpblxuICBwcF9zZXRfZnVsbF9nZW9tZXRyeSBzdGF0ZSAodXBkYXRlIGdlb21ldHJ5KVxuXG4oKiBTZXR0aW5nIGEgZm9ybWF0dGVyIGJhc2ljIG91dHB1dCBmdW5jdGlvbnMuICopXG5sZXQgcHBfc2V0X2Zvcm1hdHRlcl9vdXRfZnVuY3Rpb25zIHN0YXRlIHtcbiAgICAgIG91dF9zdHJpbmcgPSBmO1xuICAgICAgb3V0X2ZsdXNoID0gZztcbiAgICAgIG91dF9uZXdsaW5lID0gaDtcbiAgICAgIG91dF9zcGFjZXMgPSBpO1xuICAgICAgb3V0X2luZGVudCA9IGo7XG4gICAgfSA9XG4gIHN0YXRlLnBwX291dF9zdHJpbmcgPC0gZjtcbiAgc3RhdGUucHBfb3V0X2ZsdXNoIDwtIGc7XG4gIHN0YXRlLnBwX291dF9uZXdsaW5lIDwtIGg7XG4gIHN0YXRlLnBwX291dF9zcGFjZXMgPC0gaTtcbiAgc3RhdGUucHBfb3V0X2luZGVudCA8LSBqXG5cbmxldCBwcF9nZXRfZm9ybWF0dGVyX291dF9mdW5jdGlvbnMgc3RhdGUgKCkgPSB7XG4gIG91dF9zdHJpbmcgPSBzdGF0ZS5wcF9vdXRfc3RyaW5nO1xuICBvdXRfZmx1c2ggPSBzdGF0ZS5wcF9vdXRfZmx1c2g7XG4gIG91dF9uZXdsaW5lID0gc3RhdGUucHBfb3V0X25ld2xpbmU7XG4gIG91dF9zcGFjZXMgPSBzdGF0ZS5wcF9vdXRfc3BhY2VzO1xuICBvdXRfaW5kZW50ID0gc3RhdGUucHBfb3V0X2luZGVudDtcbn1cblxuXG4oKiBTZXR0aW5nIGEgZm9ybWF0dGVyIGJhc2ljIHN0cmluZyBvdXRwdXQgYW5kIGZsdXNoIGZ1bmN0aW9ucy4gKilcbmxldCBwcF9zZXRfZm9ybWF0dGVyX291dHB1dF9mdW5jdGlvbnMgc3RhdGUgZiBnID1cbiAgc3RhdGUucHBfb3V0X3N0cmluZyA8LSBmOyBzdGF0ZS5wcF9vdXRfZmx1c2ggPC0gZ1xuXG5sZXQgcHBfZ2V0X2Zvcm1hdHRlcl9vdXRwdXRfZnVuY3Rpb25zIHN0YXRlICgpID1cbiAgKHN0YXRlLnBwX291dF9zdHJpbmcsIHN0YXRlLnBwX291dF9mbHVzaClcblxuXG4oKiBUaGUgZGVmYXVsdCBmdW5jdGlvbiB0byBvdXRwdXQgbmV3IGxpbmVzLiAqKVxubGV0IGRpc3BsYXlfbmV3bGluZSBzdGF0ZSAoKSA9IHN0YXRlLnBwX291dF9zdHJpbmcgXCJcXG5cIiAwICAxXG5cbigqIFRoZSBkZWZhdWx0IGZ1bmN0aW9uIHRvIG91dHB1dCBzcGFjZXMuICopXG5sZXQgYmxhbmtfbGluZSA9IFN0cmluZy5tYWtlIDgwICcgJ1xubGV0IHJlYyBkaXNwbGF5X2JsYW5rcyBzdGF0ZSBuID1cbiAgaWYgbiA+IDAgdGhlblxuICBpZiBuIDw9IDgwIHRoZW4gc3RhdGUucHBfb3V0X3N0cmluZyBibGFua19saW5lIDAgbiBlbHNlXG4gIGJlZ2luXG4gICAgc3RhdGUucHBfb3V0X3N0cmluZyBibGFua19saW5lIDAgODA7XG4gICAgZGlzcGxheV9ibGFua3Mgc3RhdGUgKG4gLSA4MClcbiAgZW5kXG5cblxuKCogVGhlIGRlZmF1bHQgZnVuY3Rpb24gdG8gb3V0cHV0IGluZGVudGF0aW9uIG9mIG5ldyBsaW5lcy4gKilcbmxldCBkaXNwbGF5X2luZGVudCA9IGRpc3BsYXlfYmxhbmtzXG5cbigqIFNldHRpbmcgYSBmb3JtYXR0ZXIgYmFzaWMgb3V0cHV0IGZ1bmN0aW9ucyBhcyBwcmludGluZyB0byBhIGdpdmVuXG4gICBbUGVydmFzaXZlLm91dF9jaGFubmVsXSB2YWx1ZS4gKilcbmxldCBwcF9zZXRfZm9ybWF0dGVyX291dF9jaGFubmVsIHN0YXRlIG9jID1cbiAgc3RhdGUucHBfb3V0X3N0cmluZyA8LSBvdXRwdXRfc3Vic3RyaW5nIG9jO1xuICBzdGF0ZS5wcF9vdXRfZmx1c2ggPC0gKGZ1biAoKSAtPiBmbHVzaCBvYyk7XG4gIHN0YXRlLnBwX291dF9uZXdsaW5lIDwtIGRpc3BsYXlfbmV3bGluZSBzdGF0ZTtcbiAgc3RhdGUucHBfb3V0X3NwYWNlcyA8LSBkaXNwbGF5X2JsYW5rcyBzdGF0ZTtcbiAgc3RhdGUucHBfb3V0X2luZGVudCA8LSBkaXNwbGF5X2luZGVudCBzdGF0ZVxuXG4oKlxuXG4gIERlZmluaW5nIHNwZWNpZmljIGZvcm1hdHRlcnNcblxuKilcblxubGV0IGRlZmF1bHRfcHBfbWFya19vcGVuX3RhZyA9IGZ1bmN0aW9uXG4gIHwgU3RyaW5nX3RhZyBzIC0+IFwiPFwiIF4gcyBeIFwiPlwiXG4gIHwgXyAtPiBcIlwiXG5sZXQgZGVmYXVsdF9wcF9tYXJrX2Nsb3NlX3RhZyA9IGZ1bmN0aW9uXG4gIHwgU3RyaW5nX3RhZyBzIC0+IFwiPC9cIiBeIHMgXiBcIj5cIlxuICB8IF8gLT4gXCJcIlxuXG5sZXQgZGVmYXVsdF9wcF9wcmludF9vcGVuX3RhZyA9IGlnbm9yZVxubGV0IGRlZmF1bHRfcHBfcHJpbnRfY2xvc2VfdGFnID0gaWdub3JlXG5cbigqIEJ1aWxkaW5nIGEgZm9ybWF0dGVyIGdpdmVuIGl0cyBiYXNpYyBvdXRwdXQgZnVuY3Rpb25zLlxuICAgT3RoZXIgZmllbGRzIGdldCByZWFzb25hYmxlIGRlZmF1bHQgdmFsdWVzLiAqKVxubGV0IHBwX21ha2VfZm9ybWF0dGVyIGYgZyBoIGkgaiA9XG4gICgqIFRoZSBpbml0aWFsIHN0YXRlIG9mIHRoZSBmb3JtYXR0ZXIgY29udGFpbnMgYSBkdW1teSBib3guICopXG4gIGxldCBwcF9xdWV1ZSA9IFF1ZXVlLmNyZWF0ZSAoKSBpblxuICBsZXQgc3lzX3RvayA9XG4gICAgeyBzaXplID0gU2l6ZS51bmtub3duOyB0b2tlbiA9IFBwX2JlZ2luICgwLCBQcF9ob3Zib3gpOyBsZW5ndGggPSAwIH0gaW5cbiAgUXVldWUuYWRkIHN5c190b2sgcHBfcXVldWU7XG4gIGxldCBzY2FuX3N0YWNrID0gU3RhY2suY3JlYXRlICgpIGluXG4gIGluaXRpYWxpemVfc2Nhbl9zdGFjayBzY2FuX3N0YWNrO1xuICBTdGFjay5wdXNoIHsgbGVmdF90b3RhbCA9IDE7IHF1ZXVlX2VsZW0gPSBzeXNfdG9rIH0gc2Nhbl9zdGFjaztcbiAgbGV0IHBwX21hcmdpbiA9IDc4XG4gIGFuZCBwcF9taW5fc3BhY2VfbGVmdCA9IDEwIGluXG4gIHtcbiAgICBwcF9zY2FuX3N0YWNrID0gc2Nhbl9zdGFjaztcbiAgICBwcF9mb3JtYXRfc3RhY2sgPSBTdGFjay5jcmVhdGUgKCk7XG4gICAgcHBfdGJveF9zdGFjayA9IFN0YWNrLmNyZWF0ZSAoKTtcbiAgICBwcF90YWdfc3RhY2sgPSBTdGFjay5jcmVhdGUgKCk7XG4gICAgcHBfbWFya19zdGFjayA9IFN0YWNrLmNyZWF0ZSAoKTtcbiAgICBwcF9tYXJnaW4gPSBwcF9tYXJnaW47XG4gICAgcHBfbWluX3NwYWNlX2xlZnQgPSBwcF9taW5fc3BhY2VfbGVmdDtcbiAgICBwcF9tYXhfaW5kZW50ID0gcHBfbWFyZ2luIC0gcHBfbWluX3NwYWNlX2xlZnQ7XG4gICAgcHBfc3BhY2VfbGVmdCA9IHBwX21hcmdpbjtcbiAgICBwcF9jdXJyZW50X2luZGVudCA9IDA7XG4gICAgcHBfaXNfbmV3X2xpbmUgPSB0cnVlO1xuICAgIHBwX2xlZnRfdG90YWwgPSAxO1xuICAgIHBwX3JpZ2h0X3RvdGFsID0gMTtcbiAgICBwcF9jdXJyX2RlcHRoID0gMTtcbiAgICBwcF9tYXhfYm94ZXMgPSBtYXhfaW50O1xuICAgIHBwX2VsbGlwc2lzID0gXCIuXCI7XG4gICAgcHBfb3V0X3N0cmluZyA9IGY7XG4gICAgcHBfb3V0X2ZsdXNoID0gZztcbiAgICBwcF9vdXRfbmV3bGluZSA9IGg7XG4gICAgcHBfb3V0X3NwYWNlcyA9IGk7XG4gICAgcHBfb3V0X2luZGVudCA9IGo7XG4gICAgcHBfcHJpbnRfdGFncyA9IGZhbHNlO1xuICAgIHBwX21hcmtfdGFncyA9IGZhbHNlO1xuICAgIHBwX21hcmtfb3Blbl90YWcgPSBkZWZhdWx0X3BwX21hcmtfb3Blbl90YWc7XG4gICAgcHBfbWFya19jbG9zZV90YWcgPSBkZWZhdWx0X3BwX21hcmtfY2xvc2VfdGFnO1xuICAgIHBwX3ByaW50X29wZW5fdGFnID0gZGVmYXVsdF9wcF9wcmludF9vcGVuX3RhZztcbiAgICBwcF9wcmludF9jbG9zZV90YWcgPSBkZWZhdWx0X3BwX3ByaW50X2Nsb3NlX3RhZztcbiAgICBwcF9xdWV1ZSA9IHBwX3F1ZXVlO1xuICB9XG5cblxuKCogQnVpbGQgYSBmb3JtYXR0ZXIgb3V0IG9mIGl0cyBvdXQgZnVuY3Rpb25zLiAqKVxubGV0IGZvcm1hdHRlcl9vZl9vdXRfZnVuY3Rpb25zIG91dF9mdW5zID1cbiAgcHBfbWFrZV9mb3JtYXR0ZXJcbiAgICBvdXRfZnVucy5vdXRfc3RyaW5nXG4gICAgb3V0X2Z1bnMub3V0X2ZsdXNoXG4gICAgb3V0X2Z1bnMub3V0X25ld2xpbmVcbiAgICBvdXRfZnVucy5vdXRfc3BhY2VzXG4gICAgb3V0X2Z1bnMub3V0X2luZGVudFxuXG5cbigqIE1ha2UgYSBmb3JtYXR0ZXIgd2l0aCBkZWZhdWx0IGZ1bmN0aW9ucyB0byBvdXRwdXQgc3BhY2VzLFxuICBpbmRlbnRhdGlvbiwgYW5kIG5ldyBsaW5lcy4gKilcbmxldCBtYWtlX2Zvcm1hdHRlciBvdXRwdXQgZmx1c2ggPVxuICBsZXQgcHBmID0gcHBfbWFrZV9mb3JtYXR0ZXIgb3V0cHV0IGZsdXNoIGlnbm9yZSBpZ25vcmUgaWdub3JlIGluXG4gIHBwZi5wcF9vdXRfbmV3bGluZSA8LSBkaXNwbGF5X25ld2xpbmUgcHBmO1xuICBwcGYucHBfb3V0X3NwYWNlcyA8LSBkaXNwbGF5X2JsYW5rcyBwcGY7XG4gIHBwZi5wcF9vdXRfaW5kZW50IDwtIGRpc3BsYXlfaW5kZW50IHBwZjtcbiAgcHBmXG5cblxuKCogTWFrZSBhIGZvcm1hdHRlciB3cml0aW5nIHRvIGEgZ2l2ZW4gW1BlcnZhc2l2ZS5vdXRfY2hhbm5lbF0gdmFsdWUuICopXG5sZXQgZm9ybWF0dGVyX29mX291dF9jaGFubmVsIG9jID1cbiAgbWFrZV9mb3JtYXR0ZXIgKG91dHB1dF9zdWJzdHJpbmcgb2MpIChmdW4gKCkgLT4gZmx1c2ggb2MpXG5cblxuKCogTWFrZSBhIGZvcm1hdHRlciB3cml0aW5nIHRvIGEgZ2l2ZW4gW0J1ZmZlci50XSB2YWx1ZS4gKilcbmxldCBmb3JtYXR0ZXJfb2ZfYnVmZmVyIGIgPVxuICBtYWtlX2Zvcm1hdHRlciAoQnVmZmVyLmFkZF9zdWJzdHJpbmcgYikgaWdub3JlXG5cblxuKCogQWxsb2NhdGluZyBidWZmZXIgZm9yIHByZXR0eS1wcmludGluZyBwdXJwb3Nlcy5cbiAgIERlZmF1bHQgYnVmZmVyIHNpemUgaXMgcHBfYnVmZmVyX3NpemUgb3IgNTEyLlxuKilcbmxldCBwcF9idWZmZXJfc2l6ZSA9IDUxMlxubGV0IHBwX21ha2VfYnVmZmVyICgpID0gQnVmZmVyLmNyZWF0ZSBwcF9idWZmZXJfc2l6ZVxuXG4oKiBUaGUgc3RhbmRhcmQgKHNoYXJlZCkgYnVmZmVyLiAqKVxubGV0IHN0ZGJ1ZiA9IHBwX21ha2VfYnVmZmVyICgpXG5cbigqIFByZWRlZmluZWQgZm9ybWF0dGVycyBzdGFuZGFyZCBmb3JtYXR0ZXIgdG8gcHJpbnRcbiAgIHRvIFtTdGRsaWIuc3Rkb3V0XSwgW1N0ZGxpYi5zdGRlcnJdLCBhbmQgeyFzdGRidWZ9LiAqKVxubGV0IHN0ZF9mb3JtYXR0ZXIgPSBmb3JtYXR0ZXJfb2Zfb3V0X2NoYW5uZWwgU3RkbGliLnN0ZG91dFxuYW5kIGVycl9mb3JtYXR0ZXIgPSBmb3JtYXR0ZXJfb2Zfb3V0X2NoYW5uZWwgU3RkbGliLnN0ZGVyclxuYW5kIHN0cl9mb3JtYXR0ZXIgPSBmb3JtYXR0ZXJfb2ZfYnVmZmVyIHN0ZGJ1ZlxuXG5cbigqIFtmbHVzaF9idWZmZXJfZm9ybWF0dGVyIGJ1ZiBwcGZdIGZsdXNoZXMgZm9ybWF0dGVyIFtwcGZdLFxuICAgdGhlbiByZXR1cm5zIHRoZSBjb250ZW50cyBvZiBidWZmZXIgW2J1Zl0gdGhhdCBpcyByZXNldC5cbiAgIEZvcm1hdHRlciBbcHBmXSBpcyBzdXBwb3NlZCB0byBwcmludCB0byBidWZmZXIgW2J1Zl0sIG90aGVyd2lzZSB0aGlzXG4gICBmdW5jdGlvbiBpcyBub3QgcmVhbGx5IHVzZWZ1bC4gKilcbmxldCBmbHVzaF9idWZmZXJfZm9ybWF0dGVyIGJ1ZiBwcGYgPVxuICBwcF9mbHVzaF9xdWV1ZSBwcGYgZmFsc2U7XG4gIGxldCBzID0gQnVmZmVyLmNvbnRlbnRzIGJ1ZiBpblxuICBCdWZmZXIucmVzZXQgYnVmO1xuICBzXG5cblxuKCogRmx1c2ggW3N0cl9mb3JtYXR0ZXJdIGFuZCBnZXQgdGhlIGNvbnRlbnRzIG9mIFtzdGRidWZdLiAqKVxubGV0IGZsdXNoX3N0cl9mb3JtYXR0ZXIgKCkgPSBmbHVzaF9idWZmZXJfZm9ybWF0dGVyIHN0ZGJ1ZiBzdHJfZm9ybWF0dGVyXG5cbigqXG4gIFN5bWJvbGljIHByZXR0eS1wcmludGluZ1xuKilcblxuKCpcbiAgU3ltYm9saWMgcHJldHR5LXByaW50aW5nIGlzIHByZXR0eS1wcmludGluZyB3aXRoIG5vIGxvdyBsZXZlbCBvdXRwdXQuXG5cbiAgV2hlbiB1c2luZyBhIHN5bWJvbGljIGZvcm1hdHRlciwgYWxsIHJlZ3VsYXIgcHJldHR5LXByaW50aW5nIGFjdGl2aXRpZXNcbiAgb2NjdXIgYnV0IG91dHB1dCBtYXRlcmlhbCBpcyBzeW1ib2xpYyBhbmQgc3RvcmVkIGluIGEgYnVmZmVyIG9mIG91dHB1dFxuICBpdGVtcy4gQXQgdGhlIGVuZCBvZiBwcmV0dHktcHJpbnRpbmcsIGZsdXNoaW5nIHRoZSBvdXRwdXQgYnVmZmVyIGFsbG93c1xuICBwb3N0LXByb2Nlc3Npbmcgb2Ygc3ltYm9saWMgb3V0cHV0IGJlZm9yZSBsb3cgbGV2ZWwgb3V0cHV0IG9wZXJhdGlvbnMuXG4qKVxuXG50eXBlIHN5bWJvbGljX291dHB1dF9pdGVtID1cbiAgfCBPdXRwdXRfZmx1c2hcbiAgfCBPdXRwdXRfbmV3bGluZVxuICB8IE91dHB1dF9zdHJpbmcgb2Ygc3RyaW5nXG4gIHwgT3V0cHV0X3NwYWNlcyBvZiBpbnRcbiAgfCBPdXRwdXRfaW5kZW50IG9mIGludFxuXG50eXBlIHN5bWJvbGljX291dHB1dF9idWZmZXIgPSB7XG4gIG11dGFibGUgc3ltYm9saWNfb3V0cHV0X2NvbnRlbnRzIDogc3ltYm9saWNfb3V0cHV0X2l0ZW0gbGlzdDtcbn1cblxubGV0IG1ha2Vfc3ltYm9saWNfb3V0cHV0X2J1ZmZlciAoKSA9XG4gIHsgc3ltYm9saWNfb3V0cHV0X2NvbnRlbnRzID0gW10gfVxuXG5sZXQgY2xlYXJfc3ltYm9saWNfb3V0cHV0X2J1ZmZlciBzb2IgPVxuICBzb2Iuc3ltYm9saWNfb3V0cHV0X2NvbnRlbnRzIDwtIFtdXG5cbmxldCBnZXRfc3ltYm9saWNfb3V0cHV0X2J1ZmZlciBzb2IgPVxuICBMaXN0LnJldiBzb2Iuc3ltYm9saWNfb3V0cHV0X2NvbnRlbnRzXG5cbmxldCBmbHVzaF9zeW1ib2xpY19vdXRwdXRfYnVmZmVyIHNvYiA9XG4gIGxldCBpdGVtcyA9IGdldF9zeW1ib2xpY19vdXRwdXRfYnVmZmVyIHNvYiBpblxuICBjbGVhcl9zeW1ib2xpY19vdXRwdXRfYnVmZmVyIHNvYjtcbiAgaXRlbXNcblxubGV0IGFkZF9zeW1ib2xpY19vdXRwdXRfaXRlbSBzb2IgaXRlbSA9XG4gIHNvYi5zeW1ib2xpY19vdXRwdXRfY29udGVudHMgPC0gaXRlbSA6OiBzb2Iuc3ltYm9saWNfb3V0cHV0X2NvbnRlbnRzXG5cbmxldCBmb3JtYXR0ZXJfb2Zfc3ltYm9saWNfb3V0cHV0X2J1ZmZlciBzb2IgPVxuICBsZXQgc3ltYm9saWNfZmx1c2ggc29iICgpID1cbiAgICBhZGRfc3ltYm9saWNfb3V0cHV0X2l0ZW0gc29iIE91dHB1dF9mbHVzaFxuICBhbmQgc3ltYm9saWNfbmV3bGluZSBzb2IgKCkgPVxuICAgIGFkZF9zeW1ib2xpY19vdXRwdXRfaXRlbSBzb2IgT3V0cHV0X25ld2xpbmVcbiAgYW5kIHN5bWJvbGljX3N0cmluZyBzb2IgcyBpIG4gPVxuICAgIGFkZF9zeW1ib2xpY19vdXRwdXRfaXRlbSBzb2IgKE91dHB1dF9zdHJpbmcgKFN0cmluZy5zdWIgcyBpIG4pKVxuICBhbmQgc3ltYm9saWNfc3BhY2VzIHNvYiBuID1cbiAgICBhZGRfc3ltYm9saWNfb3V0cHV0X2l0ZW0gc29iIChPdXRwdXRfc3BhY2VzIG4pXG4gIGFuZCBzeW1ib2xpY19pbmRlbnQgc29iIG4gPVxuICAgIGFkZF9zeW1ib2xpY19vdXRwdXRfaXRlbSBzb2IgKE91dHB1dF9pbmRlbnQgbikgaW5cblxuICBsZXQgZiA9IHN5bWJvbGljX3N0cmluZyBzb2JcbiAgYW5kIGcgPSBzeW1ib2xpY19mbHVzaCBzb2JcbiAgYW5kIGggPSBzeW1ib2xpY19uZXdsaW5lIHNvYlxuICBhbmQgaSA9IHN5bWJvbGljX3NwYWNlcyBzb2JcbiAgYW5kIGogPSBzeW1ib2xpY19pbmRlbnQgc29iIGluXG4gIHBwX21ha2VfZm9ybWF0dGVyIGYgZyBoIGkgalxuXG4oKlxuXG4gIEJhc2ljIGZ1bmN0aW9ucyBvbiB0aGUgJ3N0YW5kYXJkJyBmb3JtYXR0ZXJcbiAgKHRoZSBmb3JtYXR0ZXIgdGhhdCBwcmludHMgdG8gW1N0ZGxpYi5zdGRvdXRdKS5cblxuKilcblxubGV0IG9wZW5faGJveCA9IHBwX29wZW5faGJveCBzdGRfZm9ybWF0dGVyXG5hbmQgb3Blbl92Ym94ID0gcHBfb3Blbl92Ym94IHN0ZF9mb3JtYXR0ZXJcbmFuZCBvcGVuX2h2Ym94ID0gcHBfb3Blbl9odmJveCBzdGRfZm9ybWF0dGVyXG5hbmQgb3Blbl9ob3Zib3ggPSBwcF9vcGVuX2hvdmJveCBzdGRfZm9ybWF0dGVyXG5hbmQgb3Blbl9ib3ggPSBwcF9vcGVuX2JveCBzdGRfZm9ybWF0dGVyXG5hbmQgY2xvc2VfYm94ID0gcHBfY2xvc2VfYm94IHN0ZF9mb3JtYXR0ZXJcbmFuZCBvcGVuX3RhZyA9IHBwX29wZW5fdGFnIHN0ZF9mb3JtYXR0ZXJcbmFuZCBjbG9zZV90YWcgPSBwcF9jbG9zZV90YWcgc3RkX2Zvcm1hdHRlclxuYW5kIG9wZW5fc3RhZyA9IHBwX29wZW5fc3RhZyBzdGRfZm9ybWF0dGVyXG5hbmQgY2xvc2Vfc3RhZyA9IHBwX2Nsb3NlX3N0YWcgc3RkX2Zvcm1hdHRlclxuYW5kIHByaW50X2FzID0gcHBfcHJpbnRfYXMgc3RkX2Zvcm1hdHRlclxuYW5kIHByaW50X3N0cmluZyA9IHBwX3ByaW50X3N0cmluZyBzdGRfZm9ybWF0dGVyXG5hbmQgcHJpbnRfYnl0ZXMgPSBwcF9wcmludF9ieXRlcyBzdGRfZm9ybWF0dGVyXG5hbmQgcHJpbnRfaW50ID0gcHBfcHJpbnRfaW50IHN0ZF9mb3JtYXR0ZXJcbmFuZCBwcmludF9mbG9hdCA9IHBwX3ByaW50X2Zsb2F0IHN0ZF9mb3JtYXR0ZXJcbmFuZCBwcmludF9jaGFyID0gcHBfcHJpbnRfY2hhciBzdGRfZm9ybWF0dGVyXG5hbmQgcHJpbnRfYm9vbCA9IHBwX3ByaW50X2Jvb2wgc3RkX2Zvcm1hdHRlclxuYW5kIHByaW50X2JyZWFrID0gcHBfcHJpbnRfYnJlYWsgc3RkX2Zvcm1hdHRlclxuYW5kIHByaW50X2N1dCA9IHBwX3ByaW50X2N1dCBzdGRfZm9ybWF0dGVyXG5hbmQgcHJpbnRfc3BhY2UgPSBwcF9wcmludF9zcGFjZSBzdGRfZm9ybWF0dGVyXG5hbmQgZm9yY2VfbmV3bGluZSA9IHBwX2ZvcmNlX25ld2xpbmUgc3RkX2Zvcm1hdHRlclxuYW5kIHByaW50X2ZsdXNoID0gcHBfcHJpbnRfZmx1c2ggc3RkX2Zvcm1hdHRlclxuYW5kIHByaW50X25ld2xpbmUgPSBwcF9wcmludF9uZXdsaW5lIHN0ZF9mb3JtYXR0ZXJcbmFuZCBwcmludF9pZl9uZXdsaW5lID0gcHBfcHJpbnRfaWZfbmV3bGluZSBzdGRfZm9ybWF0dGVyXG5cbmFuZCBvcGVuX3Rib3ggPSBwcF9vcGVuX3Rib3ggc3RkX2Zvcm1hdHRlclxuYW5kIGNsb3NlX3Rib3ggPSBwcF9jbG9zZV90Ym94IHN0ZF9mb3JtYXR0ZXJcbmFuZCBwcmludF90YnJlYWsgPSBwcF9wcmludF90YnJlYWsgc3RkX2Zvcm1hdHRlclxuXG5hbmQgc2V0X3RhYiA9IHBwX3NldF90YWIgc3RkX2Zvcm1hdHRlclxuYW5kIHByaW50X3RhYiA9IHBwX3ByaW50X3RhYiBzdGRfZm9ybWF0dGVyXG5cbmFuZCBzZXRfbWFyZ2luID0gcHBfc2V0X21hcmdpbiBzdGRfZm9ybWF0dGVyXG5hbmQgZ2V0X21hcmdpbiA9IHBwX2dldF9tYXJnaW4gc3RkX2Zvcm1hdHRlclxuXG5hbmQgc2V0X21heF9pbmRlbnQgPSBwcF9zZXRfbWF4X2luZGVudCBzdGRfZm9ybWF0dGVyXG5hbmQgZ2V0X21heF9pbmRlbnQgPSBwcF9nZXRfbWF4X2luZGVudCBzdGRfZm9ybWF0dGVyXG5cbmFuZCBzZXRfZ2VvbWV0cnkgPSBwcF9zZXRfZ2VvbWV0cnkgc3RkX2Zvcm1hdHRlclxuYW5kIHNhZmVfc2V0X2dlb21ldHJ5ID0gcHBfc2FmZV9zZXRfZ2VvbWV0cnkgc3RkX2Zvcm1hdHRlclxuYW5kIGdldF9nZW9tZXRyeSA9IHBwX2dldF9nZW9tZXRyeSBzdGRfZm9ybWF0dGVyXG5hbmQgdXBkYXRlX2dlb21ldHJ5ID0gcHBfdXBkYXRlX2dlb21ldHJ5IHN0ZF9mb3JtYXR0ZXJcblxuYW5kIHNldF9tYXhfYm94ZXMgPSBwcF9zZXRfbWF4X2JveGVzIHN0ZF9mb3JtYXR0ZXJcbmFuZCBnZXRfbWF4X2JveGVzID0gcHBfZ2V0X21heF9ib3hlcyBzdGRfZm9ybWF0dGVyXG5hbmQgb3Zlcl9tYXhfYm94ZXMgPSBwcF9vdmVyX21heF9ib3hlcyBzdGRfZm9ybWF0dGVyXG5cbmFuZCBzZXRfZWxsaXBzaXNfdGV4dCA9IHBwX3NldF9lbGxpcHNpc190ZXh0IHN0ZF9mb3JtYXR0ZXJcbmFuZCBnZXRfZWxsaXBzaXNfdGV4dCA9IHBwX2dldF9lbGxpcHNpc190ZXh0IHN0ZF9mb3JtYXR0ZXJcblxuYW5kIHNldF9mb3JtYXR0ZXJfb3V0X2NoYW5uZWwgPVxuICBwcF9zZXRfZm9ybWF0dGVyX291dF9jaGFubmVsIHN0ZF9mb3JtYXR0ZXJcblxuYW5kIHNldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyA9XG4gIHBwX3NldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyBzdGRfZm9ybWF0dGVyXG5hbmQgZ2V0X2Zvcm1hdHRlcl9vdXRfZnVuY3Rpb25zID1cbiAgcHBfZ2V0X2Zvcm1hdHRlcl9vdXRfZnVuY3Rpb25zIHN0ZF9mb3JtYXR0ZXJcblxuYW5kIHNldF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyA9XG4gIHBwX3NldF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyBzdGRfZm9ybWF0dGVyXG5hbmQgZ2V0X2Zvcm1hdHRlcl9vdXRwdXRfZnVuY3Rpb25zID1cbiAgcHBfZ2V0X2Zvcm1hdHRlcl9vdXRwdXRfZnVuY3Rpb25zIHN0ZF9mb3JtYXR0ZXJcblxuYW5kIHNldF9mb3JtYXR0ZXJfc3RhZ19mdW5jdGlvbnMgPVxuICBwcF9zZXRfZm9ybWF0dGVyX3N0YWdfZnVuY3Rpb25zIHN0ZF9mb3JtYXR0ZXJcbmFuZCBnZXRfZm9ybWF0dGVyX3N0YWdfZnVuY3Rpb25zID1cbiAgcHBfZ2V0X2Zvcm1hdHRlcl9zdGFnX2Z1bmN0aW9ucyBzdGRfZm9ybWF0dGVyXG5hbmQgc2V0X3ByaW50X3RhZ3MgPVxuICBwcF9zZXRfcHJpbnRfdGFncyBzdGRfZm9ybWF0dGVyXG5hbmQgZ2V0X3ByaW50X3RhZ3MgPVxuICBwcF9nZXRfcHJpbnRfdGFncyBzdGRfZm9ybWF0dGVyXG5hbmQgc2V0X21hcmtfdGFncyA9XG4gIHBwX3NldF9tYXJrX3RhZ3Mgc3RkX2Zvcm1hdHRlclxuYW5kIGdldF9tYXJrX3RhZ3MgPVxuICBwcF9nZXRfbWFya190YWdzIHN0ZF9mb3JtYXR0ZXJcbmFuZCBzZXRfdGFncyA9XG4gIHBwX3NldF90YWdzIHN0ZF9mb3JtYXR0ZXJcblxuXG4oKiBDb252ZW5pZW5jZSBmdW5jdGlvbnMgKilcblxuKCogVG8gZm9ybWF0IGEgbGlzdCAqKVxubGV0IHJlYyBwcF9wcmludF9saXN0ID8ocHBfc2VwID0gcHBfcHJpbnRfY3V0KSBwcF92IHBwZiA9IGZ1bmN0aW9uXG4gIHwgW10gLT4gKClcbiAgfCBbdl0gLT4gcHBfdiBwcGYgdlxuICB8IHYgOjogdnMgLT5cbiAgICBwcF92IHBwZiB2O1xuICAgIHBwX3NlcCBwcGYgKCk7XG4gICAgcHBfcHJpbnRfbGlzdCB+cHBfc2VwIHBwX3YgcHBmIHZzXG5cbigqIFRvIGZvcm1hdCBhIHNlcXVlbmNlICopXG5sZXQgcmVjIHBwX3ByaW50X3NlcV9pbiB+cHBfc2VwIHBwX3YgcHBmIHNlcSA9XG4gIG1hdGNoIHNlcSAoKSB3aXRoXG4gIHwgU2VxLk5pbCAtPiAoKVxuICB8IFNlcS5Db25zICh2LCBzZXEpIC0+XG4gICAgcHBfc2VwIHBwZiAoKTtcbiAgICBwcF92IHBwZiB2O1xuICAgIHBwX3ByaW50X3NlcV9pbiB+cHBfc2VwIHBwX3YgcHBmIHNlcVxuXG5sZXQgcHBfcHJpbnRfc2VxID8ocHBfc2VwID0gcHBfcHJpbnRfY3V0KSBwcF92IHBwZiBzZXEgPVxuICBtYXRjaCBzZXEgKCkgd2l0aFxuICB8IFNlcS5OaWwgLT4gKClcbiAgfCBTZXEuQ29ucyAodiwgc2VxKSAtPlxuICAgIHBwX3YgcHBmIHY7XG4gICAgcHBfcHJpbnRfc2VxX2luIH5wcF9zZXAgcHBfdiBwcGYgc2VxXG5cbigqIFRvIGZvcm1hdCBmcmVlLWZsb3dpbmcgdGV4dCAqKVxubGV0IHBwX3ByaW50X3RleHQgcHBmIHMgPVxuICBsZXQgbGVuID0gU3RyaW5nLmxlbmd0aCBzIGluXG4gIGxldCBsZWZ0ID0gcmVmIDAgaW5cbiAgbGV0IHJpZ2h0ID0gcmVmIDAgaW5cbiAgbGV0IGZsdXNoICgpID1cbiAgICBwcF9wcmludF9zdHJpbmcgcHBmIChTdHJpbmcuc3ViIHMgIWxlZnQgKCFyaWdodCAtICFsZWZ0KSk7XG4gICAgaW5jciByaWdodDsgbGVmdCA6PSAhcmlnaHQ7XG4gIGluXG4gIHdoaWxlICghcmlnaHQgPD4gbGVuKSBkb1xuICAgIG1hdGNoIHMuWyFyaWdodF0gd2l0aFxuICAgICAgfCAnXFxuJyAtPlxuICAgICAgICBmbHVzaCAoKTtcbiAgICAgICAgcHBfZm9yY2VfbmV3bGluZSBwcGYgKClcbiAgICAgIHwgJyAnIC0+XG4gICAgICAgIGZsdXNoICgpOyBwcF9wcmludF9zcGFjZSBwcGYgKClcbiAgICAgICgqIHRoZXJlIGlzIG5vIHNwZWNpZmljIHN1cHBvcnQgZm9yICdcXHQnXG4gICAgICAgICBhcyBpdCBpcyB1bmNsZWFyIHdoYXQgYSByaWdodCBzZW1hbnRpY3Mgd291bGQgYmUgKilcbiAgICAgIHwgXyAtPiBpbmNyIHJpZ2h0XG4gIGRvbmU7XG4gIGlmICFsZWZ0IDw+IGxlbiB0aGVuIGZsdXNoICgpXG5cbmxldCBwcF9wcmludF9vcHRpb24gPyhub25lID0gZnVuIF8gKCkgLT4gKCkpIHBwX3YgcHBmID0gZnVuY3Rpb25cbnwgTm9uZSAtPiBub25lIHBwZiAoKVxufCBTb21lIHYgLT4gcHBfdiBwcGYgdlxuXG5sZXQgcHBfcHJpbnRfcmVzdWx0IH5vayB+ZXJyb3IgcHBmID0gZnVuY3Rpb25cbnwgT2sgdiAtPiBvayBwcGYgdlxufCBFcnJvciBlIC0+IGVycm9yIHBwZiBlXG5cbmxldCBwcF9wcmludF9laXRoZXIgfmxlZnQgfnJpZ2h0IHBwZiA9IGZ1bmN0aW9uXG58IEVpdGhlci5MZWZ0IGwgLT4gbGVmdCBwcGYgbFxufCBFaXRoZXIuUmlnaHQgciAtPiByaWdodCBwcGYgclxuXG4gKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG5sZXQgY29tcHV0ZV90YWcgb3V0cHV0IHRhZ19hY2MgPVxuICBsZXQgYnVmID0gQnVmZmVyLmNyZWF0ZSAxNiBpblxuICBsZXQgcHBmID0gZm9ybWF0dGVyX29mX2J1ZmZlciBidWYgaW5cbiAgb3V0cHV0IHBwZiB0YWdfYWNjO1xuICBwcF9wcmludF9mbHVzaCBwcGYgKCk7XG4gIGxldCBsZW4gPSBCdWZmZXIubGVuZ3RoIGJ1ZiBpblxuICBpZiBsZW4gPCAyIHRoZW4gQnVmZmVyLmNvbnRlbnRzIGJ1ZlxuICBlbHNlIEJ1ZmZlci5zdWIgYnVmIDEgKGxlbiAtIDIpXG5cbiAoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuICBEZWZpbmluZyBjb250aW51YXRpb25zIHRvIGJlIHBhc3NlZCBhcyBhcmd1bWVudHMgb2ZcbiAgQ2FtbGludGVybmFsRm9ybWF0Lm1ha2VfcHJpbnRmLlxuXG4gICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG5vcGVuIENhbWxpbnRlcm5hbEZvcm1hdEJhc2ljc1xub3BlbiBDYW1saW50ZXJuYWxGb3JtYXRcblxuKCogSW50ZXJwcmV0IGEgZm9ybWF0dGluZyBlbnRpdHkgb24gYSBmb3JtYXR0ZXIuICopXG5sZXQgb3V0cHV0X2Zvcm1hdHRpbmdfbGl0IHBwZiBmbXRpbmdfbGl0ID0gbWF0Y2ggZm10aW5nX2xpdCB3aXRoXG4gIHwgQ2xvc2VfYm94ICAgICAgICAgICAgICAgICAtPiBwcF9jbG9zZV9ib3ggcHBmICgpXG4gIHwgQ2xvc2VfdGFnICAgICAgICAgICAgICAgICAtPiBwcF9jbG9zZV90YWcgcHBmICgpXG4gIHwgQnJlYWsgKF8sIHdpZHRoLCBvZmZzZXQpICAtPiBwcF9wcmludF9icmVhayBwcGYgd2lkdGggb2Zmc2V0XG4gIHwgRkZsdXNoICAgICAgICAgICAgICAgICAgICAtPiBwcF9wcmludF9mbHVzaCBwcGYgKClcbiAgfCBGb3JjZV9uZXdsaW5lICAgICAgICAgICAgIC0+IHBwX2ZvcmNlX25ld2xpbmUgcHBmICgpXG4gIHwgRmx1c2hfbmV3bGluZSAgICAgICAgICAgICAtPiBwcF9wcmludF9uZXdsaW5lIHBwZiAoKVxuICB8IE1hZ2ljX3NpemUgKF8sIF8pICAgICAgICAgLT4gKClcbiAgfCBFc2NhcGVkX2F0ICAgICAgICAgICAgICAgIC0+IHBwX3ByaW50X2NoYXIgcHBmICdAJ1xuICB8IEVzY2FwZWRfcGVyY2VudCAgICAgICAgICAgLT4gcHBfcHJpbnRfY2hhciBwcGYgJyUnXG4gIHwgU2Nhbl9pbmRpYyBjICAgICAgICAgICAgICAtPiBwcF9wcmludF9jaGFyIHBwZiAnQCc7IHBwX3ByaW50X2NoYXIgcHBmIGNcblxuKCogUmVjdXJzaXZlbHkgb3V0cHV0IGFuIFwiYWNjdW11bGF0b3JcIiBjb250YWluaW5nIGEgcmV2ZXJzZWQgbGlzdCBvZlxuICAgcHJpbnRpbmcgZW50aXRpZXMgKHN0cmluZywgY2hhciwgZmx1cywgLi4uKSBpbiBhbiBvdXRwdXRfc3RyZWFtLiAqKVxuKCogRGlmZmVyIGZyb20gUHJpbnRmLm91dHB1dF9hY2MgYnkgdGhlIGludGVycHJldGF0aW9uIG9mIGZvcm1hdHRpbmcuICopXG4oKiBVc2VkIGFzIGEgY29udGludWF0aW9uIG9mIENhbWxpbnRlcm5hbEZvcm1hdC5tYWtlX3ByaW50Zi4gKilcbmxldCByZWMgb3V0cHV0X2FjYyBwcGYgYWNjID0gbWF0Y2ggYWNjIHdpdGhcbiAgfCBBY2Nfc3RyaW5nX2xpdGVyYWwgKEFjY19mb3JtYXR0aW5nX2xpdCAocCwgTWFnaWNfc2l6ZSAoXywgc2l6ZSkpLCBzKVxuICB8IEFjY19kYXRhX3N0cmluZyAoQWNjX2Zvcm1hdHRpbmdfbGl0IChwLCBNYWdpY19zaXplIChfLCBzaXplKSksIHMpIC0+XG4gICAgb3V0cHV0X2FjYyBwcGYgcDtcbiAgICBwcF9wcmludF9hc19zaXplIHBwZiAoU2l6ZS5vZl9pbnQgc2l6ZSkgcztcbiAgfCBBY2NfY2hhcl9saXRlcmFsIChBY2NfZm9ybWF0dGluZ19saXQgKHAsIE1hZ2ljX3NpemUgKF8sIHNpemUpKSwgYylcbiAgfCBBY2NfZGF0YV9jaGFyIChBY2NfZm9ybWF0dGluZ19saXQgKHAsIE1hZ2ljX3NpemUgKF8sIHNpemUpKSwgYykgLT5cbiAgICBvdXRwdXRfYWNjIHBwZiBwO1xuICAgIHBwX3ByaW50X2FzX3NpemUgcHBmIChTaXplLm9mX2ludCBzaXplKSAoU3RyaW5nLm1ha2UgMSBjKTtcbiAgfCBBY2NfZm9ybWF0dGluZ19saXQgKHAsIGYpIC0+XG4gICAgb3V0cHV0X2FjYyBwcGYgcDtcbiAgICBvdXRwdXRfZm9ybWF0dGluZ19saXQgcHBmIGY7XG4gIHwgQWNjX2Zvcm1hdHRpbmdfZ2VuIChwLCBBY2Nfb3Blbl90YWcgYWNjJykgLT5cbiAgICBvdXRwdXRfYWNjIHBwZiBwO1xuICAgIHBwX29wZW5fc3RhZyBwcGYgKFN0cmluZ190YWcgKGNvbXB1dGVfdGFnIG91dHB1dF9hY2MgYWNjJykpXG4gIHwgQWNjX2Zvcm1hdHRpbmdfZ2VuIChwLCBBY2Nfb3Blbl9ib3ggYWNjJykgLT5cbiAgICBvdXRwdXRfYWNjIHBwZiBwO1xuICAgIGxldCAoaW5kZW50LCBidHkpID0gb3Blbl9ib3hfb2Zfc3RyaW5nIChjb21wdXRlX3RhZyBvdXRwdXRfYWNjIGFjYycpIGluXG4gICAgcHBfb3Blbl9ib3hfZ2VuIHBwZiBpbmRlbnQgYnR5XG4gIHwgQWNjX3N0cmluZ19saXRlcmFsIChwLCBzKVxuICB8IEFjY19kYXRhX3N0cmluZyAocCwgcykgICAtPiBvdXRwdXRfYWNjIHBwZiBwOyBwcF9wcmludF9zdHJpbmcgcHBmIHM7XG4gIHwgQWNjX2NoYXJfbGl0ZXJhbCAocCwgYylcbiAgfCBBY2NfZGF0YV9jaGFyIChwLCBjKSAgICAgLT4gb3V0cHV0X2FjYyBwcGYgcDsgcHBfcHJpbnRfY2hhciBwcGYgYztcbiAgfCBBY2NfZGVsYXkgKHAsIGYpICAgICAgICAgLT4gb3V0cHV0X2FjYyBwcGYgcDsgZiBwcGY7XG4gIHwgQWNjX2ZsdXNoIHAgICAgICAgICAgICAgIC0+IG91dHB1dF9hY2MgcHBmIHA7IHBwX3ByaW50X2ZsdXNoIHBwZiAoKTtcbiAgfCBBY2NfaW52YWxpZF9hcmcgKHAsIG1zZykgLT4gb3V0cHV0X2FjYyBwcGYgcDsgaW52YWxpZF9hcmcgbXNnO1xuICB8IEVuZF9vZl9hY2MgICAgICAgICAgICAgICAtPiAoKVxuXG4oKiBSZWN1cnNpdmVseSBvdXRwdXQgYW4gXCJhY2N1bXVsYXRvclwiIGNvbnRhaW5pbmcgYSByZXZlcnNlZCBsaXN0IG9mXG4gICBwcmludGluZyBlbnRpdGllcyAoc3RyaW5nLCBjaGFyLCBmbHVzLCAuLi4pIGluIGEgYnVmZmVyLiAqKVxuKCogRGlmZmVyIGZyb20gUHJpbnRmLmJ1ZnB1dF9hY2MgYnkgdGhlIGludGVycHJldGF0aW9uIG9mIGZvcm1hdHRpbmcuICopXG4oKiBVc2VkIGFzIGEgY29udGludWF0aW9uIG9mIENhbWxpbnRlcm5hbEZvcm1hdC5tYWtlX3ByaW50Zi4gKilcbmxldCByZWMgc3RycHV0X2FjYyBwcGYgYWNjID0gbWF0Y2ggYWNjIHdpdGhcbiAgfCBBY2Nfc3RyaW5nX2xpdGVyYWwgKEFjY19mb3JtYXR0aW5nX2xpdCAocCwgTWFnaWNfc2l6ZSAoXywgc2l6ZSkpLCBzKVxuICB8IEFjY19kYXRhX3N0cmluZyAoQWNjX2Zvcm1hdHRpbmdfbGl0IChwLCBNYWdpY19zaXplIChfLCBzaXplKSksIHMpIC0+XG4gICAgc3RycHV0X2FjYyBwcGYgcDtcbiAgICBwcF9wcmludF9hc19zaXplIHBwZiAoU2l6ZS5vZl9pbnQgc2l6ZSkgcztcbiAgfCBBY2NfY2hhcl9saXRlcmFsIChBY2NfZm9ybWF0dGluZ19saXQgKHAsIE1hZ2ljX3NpemUgKF8sIHNpemUpKSwgYylcbiAgfCBBY2NfZGF0YV9jaGFyIChBY2NfZm9ybWF0dGluZ19saXQgKHAsIE1hZ2ljX3NpemUgKF8sIHNpemUpKSwgYykgLT5cbiAgICBzdHJwdXRfYWNjIHBwZiBwO1xuICAgIHBwX3ByaW50X2FzX3NpemUgcHBmIChTaXplLm9mX2ludCBzaXplKSAoU3RyaW5nLm1ha2UgMSBjKTtcbiAgfCBBY2NfZGVsYXkgKEFjY19mb3JtYXR0aW5nX2xpdCAocCwgTWFnaWNfc2l6ZSAoXywgc2l6ZSkpLCBmKSAtPlxuICAgIHN0cnB1dF9hY2MgcHBmIHA7XG4gICAgcHBfcHJpbnRfYXNfc2l6ZSBwcGYgKFNpemUub2ZfaW50IHNpemUpIChmICgpKTtcbiAgfCBBY2NfZm9ybWF0dGluZ19saXQgKHAsIGYpIC0+XG4gICAgc3RycHV0X2FjYyBwcGYgcDtcbiAgICBvdXRwdXRfZm9ybWF0dGluZ19saXQgcHBmIGY7XG4gIHwgQWNjX2Zvcm1hdHRpbmdfZ2VuIChwLCBBY2Nfb3Blbl90YWcgYWNjJykgLT5cbiAgICBzdHJwdXRfYWNjIHBwZiBwO1xuICAgIHBwX29wZW5fc3RhZyBwcGYgKFN0cmluZ190YWcgKGNvbXB1dGVfdGFnIHN0cnB1dF9hY2MgYWNjJykpXG4gIHwgQWNjX2Zvcm1hdHRpbmdfZ2VuIChwLCBBY2Nfb3Blbl9ib3ggYWNjJykgLT5cbiAgICBzdHJwdXRfYWNjIHBwZiBwO1xuICAgIGxldCAoaW5kZW50LCBidHkpID0gb3Blbl9ib3hfb2Zfc3RyaW5nIChjb21wdXRlX3RhZyBzdHJwdXRfYWNjIGFjYycpIGluXG4gICAgcHBfb3Blbl9ib3hfZ2VuIHBwZiBpbmRlbnQgYnR5XG4gIHwgQWNjX3N0cmluZ19saXRlcmFsIChwLCBzKVxuICB8IEFjY19kYXRhX3N0cmluZyAocCwgcykgICAtPiBzdHJwdXRfYWNjIHBwZiBwOyBwcF9wcmludF9zdHJpbmcgcHBmIHM7XG4gIHwgQWNjX2NoYXJfbGl0ZXJhbCAocCwgYylcbiAgfCBBY2NfZGF0YV9jaGFyIChwLCBjKSAgICAgLT4gc3RycHV0X2FjYyBwcGYgcDsgcHBfcHJpbnRfY2hhciBwcGYgYztcbiAgfCBBY2NfZGVsYXkgKHAsIGYpICAgICAgICAgLT4gc3RycHV0X2FjYyBwcGYgcDsgcHBfcHJpbnRfc3RyaW5nIHBwZiAoZiAoKSk7XG4gIHwgQWNjX2ZsdXNoIHAgICAgICAgICAgICAgIC0+IHN0cnB1dF9hY2MgcHBmIHA7IHBwX3ByaW50X2ZsdXNoIHBwZiAoKTtcbiAgfCBBY2NfaW52YWxpZF9hcmcgKHAsIG1zZykgLT4gc3RycHV0X2FjYyBwcGYgcDsgaW52YWxpZF9hcmcgbXNnO1xuICB8IEVuZF9vZl9hY2MgICAgICAgICAgICAgICAtPiAoKVxuXG4oKlxuXG4gIERlZmluaW5nIFtmcHJpbnRmXSBhbmQgdmFyaW91cyBmbGF2b3JzIG9mIFtmcHJpbnRmXS5cblxuKilcblxubGV0IGtmcHJpbnRmIGsgcHBmIChGb3JtYXQgKGZtdCwgXykpID1cbiAgbWFrZV9wcmludGZcbiAgICAoZnVuIGFjYyAtPiBvdXRwdXRfYWNjIHBwZiBhY2M7IGsgcHBmKVxuICAgIEVuZF9vZl9hY2MgZm10XG5cbmFuZCBpa2ZwcmludGYgayBwcGYgKEZvcm1hdCAoZm10LCBfKSkgPVxuICBtYWtlX2lwcmludGYgayBwcGYgZm10XG5cbmxldCBpZnByaW50ZiBfcHBmIChGb3JtYXQgKGZtdCwgXykpID1cbiAgbWFrZV9pcHJpbnRmIGlnbm9yZSAoKSBmbXRcblxubGV0IGZwcmludGYgcHBmID0ga2ZwcmludGYgaWdub3JlIHBwZlxubGV0IHByaW50ZiBmbXQgPSBmcHJpbnRmIHN0ZF9mb3JtYXR0ZXIgZm10XG5sZXQgZXByaW50ZiBmbXQgPSBmcHJpbnRmIGVycl9mb3JtYXR0ZXIgZm10XG5cbmxldCBrZHByaW50ZiBrIChGb3JtYXQgKGZtdCwgXykpID1cbiAgbWFrZV9wcmludGZcbiAgICAoZnVuIGFjYyAtPiBrIChmdW4gcHBmIC0+IG91dHB1dF9hY2MgcHBmIGFjYykpXG4gICAgRW5kX29mX2FjYyBmbXRcblxubGV0IGRwcmludGYgZm10ID0ga2RwcmludGYgKGZ1biBpIC0+IGkpIGZtdFxuXG5sZXQga3NwcmludGYgayAoRm9ybWF0IChmbXQsIF8pKSA9XG4gIGxldCBiID0gcHBfbWFrZV9idWZmZXIgKCkgaW5cbiAgbGV0IHBwZiA9IGZvcm1hdHRlcl9vZl9idWZmZXIgYiBpblxuICBsZXQgayBhY2MgPVxuICAgIHN0cnB1dF9hY2MgcHBmIGFjYztcbiAgICBrIChmbHVzaF9idWZmZXJfZm9ybWF0dGVyIGIgcHBmKSBpblxuICBtYWtlX3ByaW50ZiBrIEVuZF9vZl9hY2MgZm10XG5cblxubGV0IHNwcmludGYgZm10ID0ga3NwcmludGYgaWQgZm10XG5cbmxldCBrYXNwcmludGYgayAoRm9ybWF0IChmbXQsIF8pKSA9XG4gIGxldCBiID0gcHBfbWFrZV9idWZmZXIgKCkgaW5cbiAgbGV0IHBwZiA9IGZvcm1hdHRlcl9vZl9idWZmZXIgYiBpblxuICBsZXQgayBhY2MgPVxuICAgIG91dHB1dF9hY2MgcHBmIGFjYztcbiAgICBrIChmbHVzaF9idWZmZXJfZm9ybWF0dGVyIGIgcHBmKSBpblxuICBtYWtlX3ByaW50ZiBrIEVuZF9vZl9hY2MgZm10XG5cblxubGV0IGFzcHJpbnRmIGZtdCA9IGthc3ByaW50ZiBpZCBmbXRcblxuKCogRmx1c2hpbmcgc3RhbmRhcmQgZm9ybWF0dGVycyBhdCBlbmQgb2YgZXhlY3V0aW9uLiAqKVxuXG5sZXQgZmx1c2hfc3RhbmRhcmRfZm9ybWF0dGVycyAoKSA9XG4gIHBwX3ByaW50X2ZsdXNoIHN0ZF9mb3JtYXR0ZXIgKCk7XG4gIHBwX3ByaW50X2ZsdXNoIGVycl9mb3JtYXR0ZXIgKClcblxubGV0ICgpID0gYXRfZXhpdCBmbHVzaF9zdGFuZGFyZF9mb3JtYXR0ZXJzXG5cbigqXG5cbiAgRGVwcmVjYXRlZCBzdHVmZi5cblxuKilcblxuKCogRGVwcmVjYXRlZCA6IHN1YnN1bWVkIGJ5IHBwX3NldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyAqKVxubGV0IHBwX3NldF9hbGxfZm9ybWF0dGVyX291dHB1dF9mdW5jdGlvbnMgc3RhdGVcbiAgICB+b3V0OmYgfmZsdXNoOmcgfm5ld2xpbmU6aCB+c3BhY2VzOmkgPVxuICBwcF9zZXRfZm9ybWF0dGVyX291dHB1dF9mdW5jdGlvbnMgc3RhdGUgZiBnO1xuICBzdGF0ZS5wcF9vdXRfbmV3bGluZSA8LSBoO1xuICBzdGF0ZS5wcF9vdXRfc3BhY2VzIDwtIGlcblxuKCogRGVwcmVjYXRlZCA6IHN1YnN1bWVkIGJ5IHBwX2dldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyAqKVxubGV0IHBwX2dldF9hbGxfZm9ybWF0dGVyX291dHB1dF9mdW5jdGlvbnMgc3RhdGUgKCkgPVxuICAoc3RhdGUucHBfb3V0X3N0cmluZywgc3RhdGUucHBfb3V0X2ZsdXNoLFxuICAgc3RhdGUucHBfb3V0X25ld2xpbmUsIHN0YXRlLnBwX291dF9zcGFjZXMpXG5cblxuKCogRGVwcmVjYXRlZCA6IHN1YnN1bWVkIGJ5IHNldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyAqKVxubGV0IHNldF9hbGxfZm9ybWF0dGVyX291dHB1dF9mdW5jdGlvbnMgPVxuICBwcF9zZXRfYWxsX2Zvcm1hdHRlcl9vdXRwdXRfZnVuY3Rpb25zIHN0ZF9mb3JtYXR0ZXJcblxuXG4oKiBEZXByZWNhdGVkIDogc3Vic3VtZWQgYnkgZ2V0X2Zvcm1hdHRlcl9vdXRfZnVuY3Rpb25zICopXG5sZXQgZ2V0X2FsbF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyA9XG4gIHBwX2dldF9hbGxfZm9ybWF0dGVyX291dHB1dF9mdW5jdGlvbnMgc3RkX2Zvcm1hdHRlclxuXG5cbigqIERlcHJlY2F0ZWQgOiBlcnJvciBwcm9uZSBmdW5jdGlvbiwgZG8gbm90IHVzZSBpdC5cbiAgIFRoaXMgZnVuY3Rpb24gaXMgbmVpdGhlciBjb21wb3NpdGlvbmFsIG5vciBpbmNyZW1lbnRhbCwgc2luY2UgaXQgZmx1c2hlc1xuICAgdGhlIHByZXR0eS1wcmludGVyIHF1ZXVlIGF0IGVhY2ggY2FsbC5cbiAgIFRvIGdldCB0aGUgc2FtZSBmdW5jdGlvbmFsaXR5LCBkZWZpbmUgYSBmb3JtYXR0ZXIgb2YgeW91ciBvd24gd3JpdGluZyB0b1xuICAgdGhlIGJ1ZmZlciBhcmd1bWVudCwgYXMgaW5cbiAgIGxldCBwcGYgPSBmb3JtYXR0ZXJfb2ZfYnVmZmVyIGJcbiAgIHRoZW4gdXNlIHshZnByaW50ZiBwcGZ9IGFzIHVzdWFsLiAqKVxubGV0IGJwcmludGYgYiAoRm9ybWF0IChmbXQsIF8pIDogKCdhLCBmb3JtYXR0ZXIsIHVuaXQpIGZvcm1hdCkgPVxuICBsZXQgcHBmID0gZm9ybWF0dGVyX29mX2J1ZmZlciBiIGluXG4gIGxldCBrIGFjYyA9IG91dHB1dF9hY2MgcHBmIGFjYzsgcHBfZmx1c2hfcXVldWUgcHBmIGZhbHNlIGluXG4gIG1ha2VfcHJpbnRmIGsgRW5kX29mX2FjYyBmbXRcblxuXG4oKiBEZXByZWNhdGVkIDogYWxpYXMgZm9yIGtzcHJpbnRmLiAqKVxubGV0IGtwcmludGYgPSBrc3ByaW50ZlxuXG5cblxuKCogRGVwcmVjYXRlZCB0YWcgZnVuY3Rpb25zICopXG5cbnR5cGUgZm9ybWF0dGVyX3RhZ19mdW5jdGlvbnMgPSB7XG4gIG1hcmtfb3Blbl90YWcgOiB0YWcgLT4gc3RyaW5nO1xuICBtYXJrX2Nsb3NlX3RhZyA6IHRhZyAtPiBzdHJpbmc7XG4gIHByaW50X29wZW5fdGFnIDogdGFnIC0+IHVuaXQ7XG4gIHByaW50X2Nsb3NlX3RhZyA6IHRhZyAtPiB1bml0O1xufVxuXG5cbmxldCBwcF9zZXRfZm9ybWF0dGVyX3RhZ19mdW5jdGlvbnMgc3RhdGUge1xuICAgICBtYXJrX29wZW5fdGFnID0gbW90O1xuICAgICBtYXJrX2Nsb3NlX3RhZyA9IG1jdDtcbiAgICAgcHJpbnRfb3Blbl90YWcgPSBwb3Q7XG4gICAgIHByaW50X2Nsb3NlX3RhZyA9IHBjdDtcbiAgIH0gPVxuICBsZXQgc3RyaW5naWZ5IGYgZSA9IGZ1bmN0aW9uIFN0cmluZ190YWcgcyAtPiBmIHMgfCBfIC0+IGUgaW5cbiAgc3RhdGUucHBfbWFya19vcGVuX3RhZyA8LSBzdHJpbmdpZnkgbW90IFwiXCI7XG4gIHN0YXRlLnBwX21hcmtfY2xvc2VfdGFnIDwtIHN0cmluZ2lmeSBtY3QgXCJcIjtcbiAgc3RhdGUucHBfcHJpbnRfb3Blbl90YWcgPC0gc3RyaW5naWZ5IHBvdCAoKTtcbiAgc3RhdGUucHBfcHJpbnRfY2xvc2VfdGFnIDwtIHN0cmluZ2lmeSBwY3QgKClcblxubGV0IHBwX2dldF9mb3JtYXR0ZXJfdGFnX2Z1bmN0aW9ucyBmbXQgKCkgPVxuICBsZXQgZnVucyA9IHBwX2dldF9mb3JtYXR0ZXJfc3RhZ19mdW5jdGlvbnMgZm10ICgpIGluXG4gIGxldCBtYXJrX29wZW5fdGFnIHMgPSBmdW5zLm1hcmtfb3Blbl9zdGFnIChTdHJpbmdfdGFnIHMpIGluXG4gIGxldCBtYXJrX2Nsb3NlX3RhZyBzID0gZnVucy5tYXJrX2Nsb3NlX3N0YWcgKFN0cmluZ190YWcgcykgaW5cbiAgbGV0IHByaW50X29wZW5fdGFnIHMgPSBmdW5zLnByaW50X29wZW5fc3RhZyAoU3RyaW5nX3RhZyBzKSBpblxuICBsZXQgcHJpbnRfY2xvc2VfdGFnIHMgPSBmdW5zLnByaW50X2Nsb3NlX3N0YWcgKFN0cmluZ190YWcgcykgaW5cbiAge21hcmtfb3Blbl90YWc7IG1hcmtfY2xvc2VfdGFnOyBwcmludF9vcGVuX3RhZzsgcHJpbnRfY2xvc2VfdGFnfVxuXG5sZXQgc2V0X2Zvcm1hdHRlcl90YWdfZnVuY3Rpb25zID1cbiAgcHBfc2V0X2Zvcm1hdHRlcl90YWdfZnVuY3Rpb25zIHN0ZF9mb3JtYXR0ZXJcbmFuZCBnZXRfZm9ybWF0dGVyX3RhZ19mdW5jdGlvbnMgPVxuICBwcF9nZXRfZm9ybWF0dGVyX3RhZ19mdW5jdGlvbnMgc3RkX2Zvcm1hdHRlclxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgUGllcnJlIFdlaXMsIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAwMiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG5vcGVuIENhbWxpbnRlcm5hbEZvcm1hdEJhc2ljc1xub3BlbiBDYW1saW50ZXJuYWxGb3JtYXRcblxuKCogYWxpYXMgdG8gYXZvaWQgd2FybmluZyBmb3IgYW1iaWd1aXR5IGJldHdlZW5cbiAgIFN0ZGxpYi5mb3JtYXQ2XG4gICBhbmQgQ2FtbGludGVybmFsRm9ybWF0QmFzaWNzLmZvcm1hdDZcblxuICAgKHRoZSBmb3JtZXIgaXMgaW4gZmFjdCBhbiBhbGlhcyBmb3IgdGhlIGxhdHRlcixcbiAgICBidXQgdGhlIGFtYmlndWl0eSB3YXJuaW5nIGRvZXNuJ3QgY2FyZSlcbiopXG50eXBlICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmb3JtYXQ2ID1cbiAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIFN0ZGxpYi5mb3JtYXQ2XG5cblxuKCogVGhlIHJ1bi10aW1lIGxpYnJhcnkgZm9yIHNjYW5uZXJzLiAqKVxuXG4oKiBTY2FubmluZyBidWZmZXJzLiAqKVxubW9kdWxlIHR5cGUgU0NBTk5JTkcgPSBzaWdcblxuICB0eXBlIGluX2NoYW5uZWxcblxuICB0eXBlIHNjYW5idWYgPSBpbl9jaGFubmVsXG5cbiAgdHlwZSBmaWxlX25hbWUgPSBzdHJpbmdcblxuICB2YWwgc3RkaW4gOiBpbl9jaGFubmVsXG4gICgqIFRoZSBzY2FubmluZyBidWZmZXIgcmVhZGluZyBmcm9tIFtTdGRsaWIuc3RkaW5dLlxuICAgICBbc3RkaWJdIGlzIGVxdWl2YWxlbnQgdG8gW1NjYW5uaW5nLmZyb21fY2hhbm5lbCBTdGRsaWIuc3RkaW5dLiAqKVxuXG4gIHZhbCBzdGRpYiA6IGluX2NoYW5uZWxcbiAgKCogQW4gYWxpYXMgZm9yIFtTY2FuZi5zdGRpbl0sIHRoZSBzY2FubmluZyBidWZmZXIgcmVhZGluZyBmcm9tXG4gICAgIFtTdGRsaWIuc3RkaW5dLiAqKVxuXG4gIHZhbCBuZXh0X2NoYXIgOiBzY2FuYnVmIC0+IGNoYXJcbiAgKCogW1NjYW5uaW5nLm5leHRfY2hhciBpYl0gYWR2YW5jZSB0aGUgc2Nhbm5pbmcgYnVmZmVyIGZvclxuICAgICBvbmUgY2hhcmFjdGVyLlxuICAgICBJZiBubyBtb3JlIGNoYXJhY3RlciBjYW4gYmUgcmVhZCwgc2V0cyBhIGVuZCBvZiBmaWxlIGNvbmRpdGlvbiBhbmRcbiAgICAgcmV0dXJucyAnXFwwMDAnLiAqKVxuXG4gIHZhbCBpbnZhbGlkYXRlX2N1cnJlbnRfY2hhciA6IHNjYW5idWYgLT4gdW5pdFxuICAoKiBbU2Nhbm5pbmcuaW52YWxpZGF0ZV9jdXJyZW50X2NoYXIgaWJdIG1hcmsgdGhlIGN1cnJlbnRfY2hhciBhcyBhbHJlYWR5XG4gICAgIHNjYW5uZWQuICopXG5cbiAgdmFsIHBlZWtfY2hhciA6IHNjYW5idWYgLT4gY2hhclxuICAoKiBbU2Nhbm5pbmcucGVla19jaGFyIGliXSByZXR1cm5zIHRoZSBjdXJyZW50IGNoYXIgYXZhaWxhYmxlIGluXG4gICAgIHRoZSBidWZmZXIgb3IgcmVhZHMgb25lIGlmIG5lY2Vzc2FyeSAod2hlbiB0aGUgY3VycmVudCBjaGFyYWN0ZXIgaXNcbiAgICAgYWxyZWFkeSBzY2FubmVkKS5cbiAgICAgSWYgbm8gY2hhcmFjdGVyIGNhbiBiZSByZWFkLCBzZXRzIGFuIGVuZCBvZiBmaWxlIGNvbmRpdGlvbiBhbmRcbiAgICAgcmV0dXJucyAnXFwwMDAnLiAqKVxuXG4gIHZhbCBjaGVja2VkX3BlZWtfY2hhciA6IHNjYW5idWYgLT4gY2hhclxuICAoKiBTYW1lIGFzIFtTY2FubmluZy5wZWVrX2NoYXJdIGFib3ZlIGJ1dCBhbHdheXMgcmV0dXJucyBhIHZhbGlkIGNoYXIgb3JcbiAgICAgZmFpbHM6IGluc3RlYWQgb2YgcmV0dXJuaW5nIGEgbnVsbCBjaGFyIHdoZW4gdGhlIHJlYWRpbmcgbWV0aG9kIG9mIHRoZVxuICAgICBpbnB1dCBidWZmZXIgaGFzIHJlYWNoZWQgYW4gZW5kIG9mIGZpbGUsIHRoZSBmdW5jdGlvbiByYWlzZXMgZXhjZXB0aW9uXG4gICAgIFtFbmRfb2ZfZmlsZV0uICopXG5cbiAgdmFsIHN0b3JlX2NoYXIgOiBpbnQgLT4gc2NhbmJ1ZiAtPiBjaGFyIC0+IGludFxuICAoKiBbU2Nhbm5pbmcuc3RvcmVfY2hhciBsaW0gaWIgY10gYWRkcyBbY10gdG8gdGhlIHRva2VuIGJ1ZmZlclxuICAgICBvZiB0aGUgc2Nhbm5pbmcgYnVmZmVyIFtpYl0uIEl0IGFsc28gYWR2YW5jZXMgdGhlIHNjYW5uaW5nIGJ1ZmZlciBmb3JcbiAgICAgb25lIGNoYXJhY3RlciBhbmQgcmV0dXJucyBbbGltIC0gMV0sIGluZGljYXRpbmcgdGhlIG5ldyBsaW1pdCBmb3IgdGhlXG4gICAgIGxlbmd0aCBvZiB0aGUgY3VycmVudCB0b2tlbi4gKilcblxuICB2YWwgc2tpcF9jaGFyIDogaW50IC0+IHNjYW5idWYgLT4gaW50XG4gICgqIFtTY2FubmluZy5za2lwX2NoYXIgbGltIGliXSBpZ25vcmVzIHRoZSBjdXJyZW50IGNoYXJhY3Rlci4gKilcblxuICB2YWwgaWdub3JlX2NoYXIgOiBpbnQgLT4gc2NhbmJ1ZiAtPiBpbnRcbiAgKCogW1NjYW5uaW5nLmlnbm9yZV9jaGFyIGliIGxpbV0gaWdub3JlcyB0aGUgY3VycmVudCBjaGFyYWN0ZXIgYW5kXG4gICAgIGRlY3JlbWVudHMgdGhlIGxpbWl0LiAqKVxuXG4gIHZhbCB0b2tlbiA6IHNjYW5idWYgLT4gc3RyaW5nXG4gICgqIFtTY2FubmluZy50b2tlbiBpYl0gcmV0dXJucyB0aGUgc3RyaW5nIHN0b3JlZCBpbnRvIHRoZSB0b2tlblxuICAgICBidWZmZXIgb2YgdGhlIHNjYW5uaW5nIGJ1ZmZlcjogaXQgcmV0dXJucyB0aGUgdG9rZW4gbWF0Y2hlZCBieSB0aGVcbiAgICAgZm9ybWF0LiAqKVxuXG4gIHZhbCByZXNldF90b2tlbiA6IHNjYW5idWYgLT4gdW5pdFxuICAoKiBbU2Nhbm5pbmcucmVzZXRfdG9rZW4gaWJdIHJlc2V0cyB0aGUgdG9rZW4gYnVmZmVyIG9mXG4gICAgIHRoZSBnaXZlbiBzY2FubmluZyBidWZmZXIuICopXG5cbiAgdmFsIGNoYXJfY291bnQgOiBzY2FuYnVmIC0+IGludFxuICAoKiBbU2Nhbm5pbmcuY2hhcl9jb3VudCBpYl0gcmV0dXJucyB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnNcbiAgICAgcmVhZCBzbyBmYXIgZnJvbSB0aGUgZ2l2ZW4gYnVmZmVyLiAqKVxuXG4gIHZhbCBsaW5lX2NvdW50IDogc2NhbmJ1ZiAtPiBpbnRcbiAgKCogW1NjYW5uaW5nLmxpbmVfY291bnQgaWJdIHJldHVybnMgdGhlIG51bWJlciBvZiBuZXcgbGluZVxuICAgICBjaGFyYWN0ZXJzIHJlYWQgc28gZmFyIGZyb20gdGhlIGdpdmVuIGJ1ZmZlci4gKilcblxuICB2YWwgdG9rZW5fY291bnQgOiBzY2FuYnVmIC0+IGludFxuICAoKiBbU2Nhbm5pbmcudG9rZW5fY291bnQgaWJdIHJldHVybnMgdGhlIG51bWJlciBvZiB0b2tlbnMgcmVhZFxuICAgICBzbyBmYXIgZnJvbSBbaWJdLiAqKVxuXG4gIHZhbCBlb2YgOiBzY2FuYnVmIC0+IGJvb2xcbiAgKCogW1NjYW5uaW5nLmVvZiBpYl0gcmV0dXJucyB0aGUgZW5kIG9mIGlucHV0IGNvbmRpdGlvblxuICAgICBvZiB0aGUgZ2l2ZW4gYnVmZmVyLiAqKVxuXG4gIHZhbCBlbmRfb2ZfaW5wdXQgOiBzY2FuYnVmIC0+IGJvb2xcbiAgKCogW1NjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYl0gdGVzdHMgdGhlIGVuZCBvZiBpbnB1dCBjb25kaXRpb25cbiAgICAgb2YgdGhlIGdpdmVuIGJ1ZmZlciAoaWYgbm8gY2hhciBoYXMgZXZlciBiZWVuIHJlYWQsIGFuIGF0dGVtcHQgdG9cbiAgICAgcmVhZCBvbmUgaXMgcGVyZm9ybWVkKS4gKilcblxuICB2YWwgYmVnaW5uaW5nX29mX2lucHV0IDogc2NhbmJ1ZiAtPiBib29sXG4gICgqIFtTY2FubmluZy5iZWdpbm5pbmdfb2ZfaW5wdXQgaWJdIHRlc3RzIHRoZSBiZWdpbm5pbmcgb2YgaW5wdXRcbiAgICAgY29uZGl0aW9uIG9mIHRoZSBnaXZlbiBidWZmZXIuICopXG5cbiAgdmFsIG5hbWVfb2ZfaW5wdXQgOiBzY2FuYnVmIC0+IHN0cmluZ1xuICAoKiBbU2Nhbm5pbmcubmFtZV9vZl9pbnB1dCBpYl0gcmV0dXJucyB0aGUgbmFtZSBvZiB0aGUgY2hhcmFjdGVyXG4gICAgIHNvdXJjZSBmb3IgaW5wdXQgYnVmZmVyIFtpYl0uICopXG5cbiAgdmFsIG9wZW5faW4gOiBmaWxlX25hbWUgLT4gaW5fY2hhbm5lbFxuICB2YWwgb3Blbl9pbl9iaW4gOiBmaWxlX25hbWUgLT4gaW5fY2hhbm5lbFxuICB2YWwgZnJvbV9maWxlIDogZmlsZV9uYW1lIC0+IGluX2NoYW5uZWxcbiAgdmFsIGZyb21fZmlsZV9iaW4gOiBmaWxlX25hbWUgLT4gaW5fY2hhbm5lbFxuICB2YWwgZnJvbV9zdHJpbmcgOiBzdHJpbmcgLT4gaW5fY2hhbm5lbFxuICB2YWwgZnJvbV9mdW5jdGlvbiA6ICh1bml0IC0+IGNoYXIpIC0+IGluX2NoYW5uZWxcbiAgdmFsIGZyb21fY2hhbm5lbCA6IFN0ZGxpYi5pbl9jaGFubmVsIC0+IGluX2NoYW5uZWxcblxuICB2YWwgY2xvc2VfaW4gOiBpbl9jaGFubmVsIC0+IHVuaXRcblxuICB2YWwgbWVtb19mcm9tX2NoYW5uZWwgOiBTdGRsaWIuaW5fY2hhbm5lbCAtPiBpbl9jaGFubmVsXG4gICgqIE9ic29sZXRlLiAqKVxuXG5lbmRcblxuXG5tb2R1bGUgU2Nhbm5pbmcgOiBTQ0FOTklORyA9IHN0cnVjdFxuXG4gICgqIFRoZSBydW4tdGltZSBsaWJyYXJ5IGZvciBzY2FuZi4gKilcblxuICB0eXBlIGZpbGVfbmFtZSA9IHN0cmluZ1xuXG4gIHR5cGUgaW5fY2hhbm5lbF9uYW1lID1cbiAgICB8IEZyb21fY2hhbm5lbCBvZiBTdGRsaWIuaW5fY2hhbm5lbFxuICAgIHwgRnJvbV9maWxlIG9mIGZpbGVfbmFtZSAqIFN0ZGxpYi5pbl9jaGFubmVsXG4gICAgfCBGcm9tX2Z1bmN0aW9uXG4gICAgfCBGcm9tX3N0cmluZ1xuXG5cbiAgdHlwZSBpbl9jaGFubmVsID0ge1xuICAgIG11dGFibGUgaWNfZW9mIDogYm9vbDtcbiAgICBtdXRhYmxlIGljX2N1cnJlbnRfY2hhciA6IGNoYXI7XG4gICAgbXV0YWJsZSBpY19jdXJyZW50X2NoYXJfaXNfdmFsaWQgOiBib29sO1xuICAgIG11dGFibGUgaWNfY2hhcl9jb3VudCA6IGludDtcbiAgICBtdXRhYmxlIGljX2xpbmVfY291bnQgOiBpbnQ7XG4gICAgbXV0YWJsZSBpY190b2tlbl9jb3VudCA6IGludDtcbiAgICBpY19nZXRfbmV4dF9jaGFyIDogdW5pdCAtPiBjaGFyO1xuICAgIGljX3Rva2VuX2J1ZmZlciA6IEJ1ZmZlci50O1xuICAgIGljX2lucHV0X25hbWUgOiBpbl9jaGFubmVsX25hbWU7XG4gIH1cblxuXG4gIHR5cGUgc2NhbmJ1ZiA9IGluX2NoYW5uZWxcblxuICBsZXQgbnVsbF9jaGFyID0gJ1xcMDAwJ1xuXG4gICgqIFJlYWRzIGEgbmV3IGNoYXJhY3RlciBmcm9tIGlucHV0IGJ1ZmZlci5cbiAgICAgTmV4dF9jaGFyIG5ldmVyIGZhaWxzLCBldmVuIGluIGNhc2Ugb2YgZW5kIG9mIGlucHV0OlxuICAgICBpdCB0aGVuIHNpbXBseSBzZXRzIHRoZSBlbmQgb2YgZmlsZSBjb25kaXRpb24uICopXG4gIGxldCBuZXh0X2NoYXIgaWIgPVxuICAgIHRyeVxuICAgICAgbGV0IGMgPSBpYi5pY19nZXRfbmV4dF9jaGFyICgpIGluXG4gICAgICBpYi5pY19jdXJyZW50X2NoYXIgPC0gYztcbiAgICAgIGliLmljX2N1cnJlbnRfY2hhcl9pc192YWxpZCA8LSB0cnVlO1xuICAgICAgaWIuaWNfY2hhcl9jb3VudCA8LSBzdWNjIGliLmljX2NoYXJfY291bnQ7XG4gICAgICBpZiBjID0gJ1xcbicgdGhlbiBpYi5pY19saW5lX2NvdW50IDwtIHN1Y2MgaWIuaWNfbGluZV9jb3VudDtcbiAgICAgIGMgd2l0aFxuICAgIHwgRW5kX29mX2ZpbGUgLT5cbiAgICAgIGxldCBjID0gbnVsbF9jaGFyIGluXG4gICAgICBpYi5pY19jdXJyZW50X2NoYXIgPC0gYztcbiAgICAgIGliLmljX2N1cnJlbnRfY2hhcl9pc192YWxpZCA8LSBmYWxzZTtcbiAgICAgIGliLmljX2VvZiA8LSB0cnVlO1xuICAgICAgY1xuXG5cbiAgbGV0IHBlZWtfY2hhciBpYiA9XG4gICAgaWYgaWIuaWNfY3VycmVudF9jaGFyX2lzX3ZhbGlkXG4gICAgdGhlbiBpYi5pY19jdXJyZW50X2NoYXJcbiAgICBlbHNlIG5leHRfY2hhciBpYlxuXG5cbiAgKCogUmV0dXJucyBhIHZhbGlkIGN1cnJlbnQgY2hhciBmb3IgdGhlIGlucHV0IGJ1ZmZlci4gSW4gcGFydGljdWxhclxuICAgICBubyBpcnJlbGV2YW50IG51bGwgY2hhcmFjdGVyIChhcyBzZXQgYnkgW25leHRfY2hhcl0gaW4gY2FzZSBvZiBlbmRcbiAgICAgb2YgaW5wdXQpIGlzIHJldHVybmVkLCBzaW5jZSBbRW5kX29mX2ZpbGVdIGlzIHJhaXNlZCB3aGVuXG4gICAgIFtuZXh0X2NoYXJdIHNldHMgdGhlIGVuZCBvZiBmaWxlIGNvbmRpdGlvbiB3aGlsZSB0cnlpbmcgdG8gcmVhZCBhXG4gICAgIG5ldyBjaGFyYWN0ZXIuICopXG4gIGxldCBjaGVja2VkX3BlZWtfY2hhciBpYiA9XG4gICAgbGV0IGMgPSBwZWVrX2NoYXIgaWIgaW5cbiAgICBpZiBpYi5pY19lb2YgdGhlbiByYWlzZSBFbmRfb2ZfZmlsZTtcbiAgICBjXG5cblxuICBsZXQgZW5kX29mX2lucHV0IGliID1cbiAgICBpZ25vcmUgKHBlZWtfY2hhciBpYik7XG4gICAgaWIuaWNfZW9mXG5cblxuICBsZXQgZW9mIGliID0gaWIuaWNfZW9mXG5cbiAgbGV0IGJlZ2lubmluZ19vZl9pbnB1dCBpYiA9IGliLmljX2NoYXJfY291bnQgPSAwXG5cbiAgbGV0IG5hbWVfb2ZfaW5wdXQgaWIgPVxuICAgIG1hdGNoIGliLmljX2lucHV0X25hbWUgd2l0aFxuICAgIHwgRnJvbV9jaGFubmVsIF9pYyAtPiBcInVubmFtZWQgU3RkbGliIGlucHV0IGNoYW5uZWxcIlxuICAgIHwgRnJvbV9maWxlIChmbmFtZSwgX2ljKSAtPiBmbmFtZVxuICAgIHwgRnJvbV9mdW5jdGlvbiAtPiBcInVubmFtZWQgZnVuY3Rpb25cIlxuICAgIHwgRnJvbV9zdHJpbmcgLT4gXCJ1bm5hbWVkIGNoYXJhY3RlciBzdHJpbmdcIlxuXG5cbiAgbGV0IGNoYXJfY291bnQgaWIgPVxuICAgIGlmIGliLmljX2N1cnJlbnRfY2hhcl9pc192YWxpZFxuICAgIHRoZW4gaWIuaWNfY2hhcl9jb3VudCAtIDFcbiAgICBlbHNlIGliLmljX2NoYXJfY291bnRcblxuXG4gIGxldCBsaW5lX2NvdW50IGliID0gaWIuaWNfbGluZV9jb3VudFxuXG4gIGxldCByZXNldF90b2tlbiBpYiA9IEJ1ZmZlci5yZXNldCBpYi5pY190b2tlbl9idWZmZXJcblxuICBsZXQgaW52YWxpZGF0ZV9jdXJyZW50X2NoYXIgaWIgPSBpYi5pY19jdXJyZW50X2NoYXJfaXNfdmFsaWQgPC0gZmFsc2VcblxuICBsZXQgdG9rZW4gaWIgPVxuICAgIGxldCB0b2tlbl9idWZmZXIgPSBpYi5pY190b2tlbl9idWZmZXIgaW5cbiAgICBsZXQgdG9rID0gQnVmZmVyLmNvbnRlbnRzIHRva2VuX2J1ZmZlciBpblxuICAgIEJ1ZmZlci5jbGVhciB0b2tlbl9idWZmZXI7XG4gICAgaWIuaWNfdG9rZW5fY291bnQgPC0gc3VjYyBpYi5pY190b2tlbl9jb3VudDtcbiAgICB0b2tcblxuXG4gIGxldCB0b2tlbl9jb3VudCBpYiA9IGliLmljX3Rva2VuX2NvdW50XG5cbiAgbGV0IHNraXBfY2hhciB3aWR0aCBpYiA9XG4gICAgaW52YWxpZGF0ZV9jdXJyZW50X2NoYXIgaWI7XG4gICAgd2lkdGhcblxuXG4gIGxldCBpZ25vcmVfY2hhciB3aWR0aCBpYiA9IHNraXBfY2hhciAod2lkdGggLSAxKSBpYlxuXG4gIGxldCBzdG9yZV9jaGFyIHdpZHRoIGliIGMgPVxuICAgIEJ1ZmZlci5hZGRfY2hhciBpYi5pY190b2tlbl9idWZmZXIgYztcbiAgICBpZ25vcmVfY2hhciB3aWR0aCBpYlxuXG5cbiAgbGV0IGRlZmF1bHRfdG9rZW5fYnVmZmVyX3NpemUgPSAxMDI0XG5cbiAgbGV0IGNyZWF0ZSBpbmFtZSBuZXh0ID0ge1xuICAgIGljX2VvZiA9IGZhbHNlO1xuICAgIGljX2N1cnJlbnRfY2hhciA9IG51bGxfY2hhcjtcbiAgICBpY19jdXJyZW50X2NoYXJfaXNfdmFsaWQgPSBmYWxzZTtcbiAgICBpY19jaGFyX2NvdW50ID0gMDtcbiAgICBpY19saW5lX2NvdW50ID0gMDtcbiAgICBpY190b2tlbl9jb3VudCA9IDA7XG4gICAgaWNfZ2V0X25leHRfY2hhciA9IG5leHQ7XG4gICAgaWNfdG9rZW5fYnVmZmVyID0gQnVmZmVyLmNyZWF0ZSBkZWZhdWx0X3Rva2VuX2J1ZmZlcl9zaXplO1xuICAgIGljX2lucHV0X25hbWUgPSBpbmFtZTtcbiAgfVxuXG5cbiAgbGV0IGZyb21fc3RyaW5nIHMgPVxuICAgIGxldCBpID0gcmVmIDAgaW5cbiAgICBsZXQgbGVuID0gU3RyaW5nLmxlbmd0aCBzIGluXG4gICAgbGV0IG5leHQgKCkgPVxuICAgICAgaWYgIWkgPj0gbGVuIHRoZW4gcmFpc2UgRW5kX29mX2ZpbGUgZWxzZVxuICAgICAgbGV0IGMgPSBzLlshaV0gaW5cbiAgICAgIGluY3IgaTtcbiAgICAgIGMgaW5cbiAgICBjcmVhdGUgRnJvbV9zdHJpbmcgbmV4dFxuXG5cbiAgbGV0IGZyb21fZnVuY3Rpb24gPSBjcmVhdGUgRnJvbV9mdW5jdGlvblxuXG4gICgqIFNjYW5uaW5nIGZyb20gYW4gaW5wdXQgY2hhbm5lbC4gKilcblxuICAoKiBQb3NpdGlvbiBvZiB0aGUgcHJvYmxlbTpcblxuICAgICBXZSBjYW5ub3QgcHJldmVudCB0aGUgc2Nhbm5pbmcgbWVjaGFuaXNtIHRvIHVzZSBvbmUgbG9va2FoZWFkIGNoYXJhY3RlcixcbiAgICAgaWYgbmVlZGVkIGJ5IHRoZSBzZW1hbnRpY3Mgb2YgdGhlIGZvcm1hdCBzdHJpbmcgc3BlY2lmaWNhdGlvbnMgKGUuZy4gYVxuICAgICB0cmFpbGluZyAnc2tpcCBzcGFjZScgc3BlY2lmaWNhdGlvbiBpbiB0aGUgZm9ybWF0IHN0cmluZyk7IGluIHRoaXMgY2FzZSxcbiAgICAgdGhlIG1hbmRhdG9yeSBsb29rYWhlYWQgY2hhcmFjdGVyIGlzIGluZGVlZCByZWFkIGZyb20gdGhlIGlucHV0IGFuZCBub3RcbiAgICAgdXNlZCB0byByZXR1cm4gdGhlIHRva2VuIHJlYWQuIEl0IGlzIHRodXMgbWFuZGF0b3J5IHRvIGJlIGFibGUgdG8gc3RvcmVcbiAgICAgYW4gdW51c2VkIGxvb2thaGVhZCBjaGFyYWN0ZXIgc29tZXdoZXJlIHRvIGdldCBpdCBhcyB0aGUgZmlyc3QgY2hhcmFjdGVyXG4gICAgIG9mIHRoZSBuZXh0IHNjYW4uXG5cbiAgICAgVG8gY2lyY3VtdmVudCB0aGlzIHByb2JsZW0sIGFsbCB0aGUgc2Nhbm5pbmcgZnVuY3Rpb25zIGdldCBhIGxvdyBsZXZlbFxuICAgICBpbnB1dCBidWZmZXIgYXJndW1lbnQgd2hlcmUgdGhleSBzdG9yZSB0aGUgbG9va2FoZWFkIGNoYXJhY3RlciB3aGVuXG4gICAgIG5lZWRlZDsgYWRkaXRpb25hbGx5LCB0aGUgaW5wdXQgYnVmZmVyIGlzIHRoZSBvbmx5IHNvdXJjZSBvZiBjaGFyYWN0ZXIgb2ZcbiAgICAgYSBzY2FubmVyLiBUaGUgW3NjYW5idWZdIGlucHV0IGJ1ZmZlcnMgYXJlIGRlZmluZWQgaW4gbW9kdWxlIHshU2Nhbm5pbmd9LlxuXG4gICAgIE5vdyB3ZSB1bmRlcnN0YW5kIHRoYXQgaXQgaXMgZXh0cmVtZWx5IGltcG9ydGFudCB0aGF0IHJlbGF0ZWQgYW5kXG4gICAgIHN1Y2Nlc3NpdmUgY2FsbHMgdG8gc2Nhbm5lcnMgaW5kZWVkIHJlYWQgZnJvbSB0aGUgc2FtZSBpbnB1dCBidWZmZXIuXG4gICAgIEluIGVmZmVjdCwgaWYgYSBzY2FubmVyIFtzY2FuMV0gaXMgcmVhZGluZyBmcm9tIFtpYjFdIGFuZCBzdG9yZXMgYW5cbiAgICAgdW51c2VkIGxvb2thaGVhZCBjaGFyYWN0ZXIgW2MxXSBpbnRvIGl0cyBpbnB1dCBidWZmZXIgW2liMV0sIHRoZW5cbiAgICAgYW5vdGhlciBzY2FubmVyIFtzY2FuMl0gbm90IHJlYWRpbmcgZnJvbSB0aGUgc2FtZSBidWZmZXIgW2liMV0gd2lsbCBtaXNzXG4gICAgIHRoZSBjaGFyYWN0ZXIgW2MxXSwgc2VlbWluZ2x5IHZhbmlzaGVkIGluIHRoZSBhaXIgZnJvbSB0aGUgcG9pbnQgb2Ygdmlld1xuICAgICBvZiBbc2NhbjJdLlxuXG4gICAgIFRoaXMgbWVjaGFuaXNtIHdvcmtzIHBlcmZlY3RseSB0byByZWFkIGZyb20gc3RyaW5ncywgZnJvbSBmaWxlcywgYW5kIGZyb21cbiAgICAgZnVuY3Rpb25zLCBzaW5jZSBpbiB0aG9zZSBjYXNlcywgYWxsb2NhdGluZyB0d28gYnVmZmVycyByZWFkaW5nIGZyb20gdGhlXG4gICAgIHNhbWUgc291cmNlIGlzIHVubmF0dXJhbC5cblxuICAgICBTdGlsbCwgdGhlcmUgaXMgYSBkaWZmaWN1bHR5IGluIHRoZSBjYXNlIG9mIHNjYW5uaW5nIGZyb20gYW4gaW5wdXRcbiAgICAgY2hhbm5lbC4gSW4gZWZmZWN0LCB3aGVuIHNjYW5uaW5nIGZyb20gYW4gaW5wdXQgY2hhbm5lbCBbaWNdLCB0aGlzIGNoYW5uZWxcbiAgICAgbWF5IG5vdCBoYXZlIGJlZW4gYWxsb2NhdGVkIGZyb20gd2l0aGluIHRoaXMgbGlicmFyeS4gSGVuY2UsIGl0IG1heSBiZVxuICAgICBzaGFyZWQgKHR3byBmdW5jdGlvbnMgb2YgdGhlIHVzZXIncyBwcm9ncmFtIG1heSBzdWNjZXNzaXZlbHkgcmVhZCBmcm9tXG4gICAgIFtpY10pLiBUaGlzIGlzIGhpZ2hseSBlcnJvciBwcm9uZSBzaW5jZSwgb25lIG9mIHRoZSBmdW5jdGlvbiBtYXkgc2VlayB0aGVcbiAgICAgaW5wdXQgY2hhbm5lbCwgd2hpbGUgdGhlIG90aGVyIGZ1bmN0aW9uIGhhcyBzdGlsbCBhbiB1bnVzZWQgbG9va2FoZWFkXG4gICAgIGNoYXJhY3RlciBpbiBpdHMgaW5wdXQgYnVmZmVyLiBJbiBjb25jbHVzaW9uLCB5b3Ugc2hvdWxkIG5ldmVyIG1peCBkaXJlY3RcbiAgICAgbG93IGxldmVsIHJlYWRpbmcgYW5kIGhpZ2ggbGV2ZWwgc2Nhbm5pbmcgZnJvbSB0aGUgc2FtZSBpbnB1dCBjaGFubmVsLlxuXG4gICopXG5cbiAgKCogUGVyZm9ybSBidWZmZXJpemVkIGlucHV0IHRvIGltcHJvdmUgZWZmaWNpZW5jeS4gKilcbiAgbGV0IGZpbGVfYnVmZmVyX3NpemUgPSByZWYgMTAyNFxuXG4gICgqIFRoZSBzY2FubmVyIGNsb3NlcyB0aGUgaW5wdXQgY2hhbm5lbCBhdCBlbmQgb2YgaW5wdXQuICopXG4gIGxldCBzY2FuX2Nsb3NlX2F0X2VuZCBpYyA9IFN0ZGxpYi5jbG9zZV9pbiBpYzsgcmFpc2UgRW5kX29mX2ZpbGVcblxuICAoKiBUaGUgc2Nhbm5lciBkb2VzIG5vdCBjbG9zZSB0aGUgaW5wdXQgY2hhbm5lbCBhdCBlbmQgb2YgaW5wdXQ6XG4gICAgIGl0IGp1c3QgcmFpc2VzIFtFbmRfb2ZfZmlsZV0uICopXG4gIGxldCBzY2FuX3JhaXNlX2F0X2VuZCBfaWMgPSByYWlzZSBFbmRfb2ZfZmlsZVxuXG4gIGxldCBmcm9tX2ljIHNjYW5fY2xvc2VfaWMgaW5hbWUgaWMgPVxuICAgIGxldCBsZW4gPSAhZmlsZV9idWZmZXJfc2l6ZSBpblxuICAgIGxldCBidWYgPSBCeXRlcy5jcmVhdGUgbGVuIGluXG4gICAgbGV0IGkgPSByZWYgMCBpblxuICAgIGxldCBsaW0gPSByZWYgMCBpblxuICAgIGxldCBlb2YgPSByZWYgZmFsc2UgaW5cbiAgICBsZXQgbmV4dCAoKSA9XG4gICAgICBpZiAhaSA8ICFsaW0gdGhlbiBiZWdpbiBsZXQgYyA9IEJ5dGVzLmdldCBidWYgIWkgaW4gaW5jciBpOyBjIGVuZCBlbHNlXG4gICAgICBpZiAhZW9mIHRoZW4gcmFpc2UgRW5kX29mX2ZpbGUgZWxzZSBiZWdpblxuICAgICAgICBsaW0gOj0gaW5wdXQgaWMgYnVmIDAgbGVuO1xuICAgICAgICBpZiAhbGltID0gMCB0aGVuIGJlZ2luIGVvZiA6PSB0cnVlOyBzY2FuX2Nsb3NlX2ljIGljIGVuZCBlbHNlIGJlZ2luXG4gICAgICAgICAgaSA6PSAxO1xuICAgICAgICAgIEJ5dGVzLmdldCBidWYgMFxuICAgICAgICBlbmRcbiAgICAgIGVuZCBpblxuICAgIGNyZWF0ZSBpbmFtZSBuZXh0XG5cblxuICBsZXQgZnJvbV9pY19jbG9zZV9hdF9lbmQgPSBmcm9tX2ljIHNjYW5fY2xvc2VfYXRfZW5kXG4gIGxldCBmcm9tX2ljX3JhaXNlX2F0X2VuZCA9IGZyb21faWMgc2Nhbl9yYWlzZV9hdF9lbmRcblxuICAoKiBUaGUgc2Nhbm5pbmcgYnVmZmVyIHJlYWRpbmcgZnJvbSBbU3RkbGliLnN0ZGluXS5cbiAgICAgT25lIGNvdWxkIHRyeSB0byBkZWZpbmUgW3N0ZGliXSBhcyBhIHNjYW5uaW5nIGJ1ZmZlciByZWFkaW5nIGEgY2hhcmFjdGVyXG4gICAgIGF0IGEgdGltZSAobm8gYnVmZmVyaXphdGlvbiBhdCBhbGwpLCBidXQgdW5mb3J0dW5hdGVseSB0aGUgdG9wLWxldmVsXG4gICAgIGludGVyYWN0aW9uIHdvdWxkIGJlIHdyb25nLiBUaGlzIGlzIGR1ZSB0byBzb21lIGtpbmQgb2ZcbiAgICAgJ3JhY2UgY29uZGl0aW9uJyB3aGVuIHJlYWRpbmcgZnJvbSBbU3RkbGliLnN0ZGluXSxcbiAgICAgc2luY2UgdGhlIGludGVyYWN0aXZlIGNvbXBpbGVyIGFuZCBbU2NhbmYuc2NhbmZdIHdpbGwgc2ltdWx0YW5lb3VzbHlcbiAgICAgcmVhZCB0aGUgbWF0ZXJpYWwgdGhleSBuZWVkIGZyb20gW1N0ZGxpYi5zdGRpbl07IHRoZW4sIGNvbmZ1c2lvblxuICAgICB3aWxsIHJlc3VsdCBmcm9tIHdoYXQgc2hvdWxkIGJlIHJlYWQgYnkgdGhlIHRvcC1sZXZlbCBhbmQgd2hhdCBzaG91bGQgYmVcbiAgICAgcmVhZCBieSBbU2NhbmYuc2NhbmZdLlxuICAgICBUaGlzIGlzIGV2ZW4gbW9yZSBjb21wbGljYXRlZCBieSB0aGUgb25lIGNoYXJhY3RlciBsb29rYWhlYWQgdGhhdFxuICAgICBbU2NhbmYuc2NhbmZdIGlzIHNvbWV0aW1lcyBvYmxpZ2VkIHRvIG1haW50YWluOiB0aGUgbG9va2FoZWFkIGNoYXJhY3RlclxuICAgICB3aWxsIGJlIGF2YWlsYWJsZSBmb3IgdGhlIG5leHQgW1NjYW5mLnNjYW5mXSBlbnRyeSwgc2VlbWluZ2x5IGNvbWluZyBmcm9tXG4gICAgIG5vd2hlcmUuXG4gICAgIEFsc28gbm8gW0VuZF9vZl9maWxlXSBpcyByYWlzZWQgd2hlbiByZWFkaW5nIGZyb20gc3RkaW46IGlmIG5vdCBlbm91Z2hcbiAgICAgY2hhcmFjdGVycyBoYXZlIGJlZW4gcmVhZCwgd2Ugc2ltcGx5IGFzayB0byByZWFkIG1vcmUuICopXG4gIGxldCBzdGRpbiA9XG4gICAgZnJvbV9pYyBzY2FuX3JhaXNlX2F0X2VuZFxuICAgICAgKEZyb21fZmlsZSAoXCItXCIsIFN0ZGxpYi5zdGRpbikpIFN0ZGxpYi5zdGRpblxuXG5cbiAgbGV0IHN0ZGliID0gc3RkaW5cblxuICBsZXQgb3Blbl9pbl9maWxlIG9wZW5faW4gZm5hbWUgPVxuICAgIG1hdGNoIGZuYW1lIHdpdGhcbiAgICB8IFwiLVwiIC0+IHN0ZGluXG4gICAgfCBmbmFtZSAtPlxuICAgICAgbGV0IGljID0gb3Blbl9pbiBmbmFtZSBpblxuICAgICAgZnJvbV9pY19jbG9zZV9hdF9lbmQgKEZyb21fZmlsZSAoZm5hbWUsIGljKSkgaWNcblxuXG4gIGxldCBvcGVuX2luID0gb3Blbl9pbl9maWxlIFN0ZGxpYi5vcGVuX2luXG4gIGxldCBvcGVuX2luX2JpbiA9IG9wZW5faW5fZmlsZSBTdGRsaWIub3Blbl9pbl9iaW5cblxuICBsZXQgZnJvbV9maWxlID0gb3Blbl9pblxuICBsZXQgZnJvbV9maWxlX2JpbiA9IG9wZW5faW5fYmluXG5cbiAgbGV0IGZyb21fY2hhbm5lbCBpYyA9XG4gICAgZnJvbV9pY19yYWlzZV9hdF9lbmQgKEZyb21fY2hhbm5lbCBpYykgaWNcblxuXG4gIGxldCBjbG9zZV9pbiBpYiA9XG4gICAgbWF0Y2ggaWIuaWNfaW5wdXRfbmFtZSB3aXRoXG4gICAgfCBGcm9tX2NoYW5uZWwgaWMgLT5cbiAgICAgIFN0ZGxpYi5jbG9zZV9pbiBpY1xuICAgIHwgRnJvbV9maWxlIChfZm5hbWUsIGljKSAtPiBTdGRsaWIuY2xvc2VfaW4gaWNcbiAgICB8IEZyb21fZnVuY3Rpb24gfCBGcm9tX3N0cmluZyAtPiAoKVxuXG5cbiAgKCpcbiAgICAgT2Jzb2xldGU6IGEgbWVtbyBbZnJvbV9jaGFubmVsXSB2ZXJzaW9uIHRvIGJ1aWxkIGEgW1NjYW5uaW5nLmluX2NoYW5uZWxdXG4gICAgIHNjYW5uaW5nIGJ1ZmZlciBvdXQgb2YgYSBbU3RkbGliLmluX2NoYW5uZWxdLlxuICAgICBUaGlzIGZ1bmN0aW9uIHdhcyB1c2VkIHRvIHRyeSB0byBwcmVzZXJ2ZSB0aGUgc2Nhbm5pbmdcbiAgICAgc2VtYW50aWNzIGZvciB0aGUgKG5vdyBvYnNvbGV0ZSkgZnVuY3Rpb24gW2ZzY2FuZl0uXG4gICAgIEdpdmVuIHRoYXQgYWxsIHNjYW5uZXIgbXVzdCByZWFkIGZyb20gYSBbU2Nhbm5pbmcuaW5fY2hhbm5lbF0gc2Nhbm5pbmdcbiAgICAgYnVmZmVyLCBbZnNjYW5mXSBtdXN0IHJlYWQgZnJvbSBvbmUhXG4gICAgIE1vcmUgcHJlY2lzZWx5LCBnaXZlbiBbaWNdLCBhbGwgc3VjY2Vzc2l2ZSBjYWxscyBbZnNjYW5mIGljXSBtdXN0IHJlYWRcbiAgICAgZnJvbSB0aGUgc2FtZSBzY2FubmluZyBidWZmZXIuXG4gICAgIFRoaXMgb2JsaWdlZCB0aGlzIGxpYnJhcnkgdG8gYWxsb2NhdGVkIHNjYW5uaW5nIGJ1ZmZlcnMgdGhhdCB3ZXJlXG4gICAgIG5vdCBwcm9wZXJseSBnYXJiYWdlIGNvbGxlY3RhYmxlLCBoZW5jZSBsZWFkaW5nIHRvIG1lbW9yeSBsZWFrcy5cbiAgICAgSWYgeW91IG5lZWQgdG8gcmVhZCBmcm9tIGEgW1N0ZGxpYi5pbl9jaGFubmVsXSBpbnB1dCBjaGFubmVsXG4gICAgIFtpY10sIHNpbXBseSBkZWZpbmUgYSBbU2Nhbm5pbmcuaW5fY2hhbm5lbF0gZm9ybWF0dGVkIGlucHV0IGNoYW5uZWwgYXMgaW5cbiAgICAgW2xldCBpYiA9IFNjYW5uaW5nLmZyb21fY2hhbm5lbCBpY10sIHRoZW4gdXNlIFtTY2FuZi5ic2NhbmYgaWJdIGFzIHVzdWFsLlxuICAqKVxuICBsZXQgbWVtb19mcm9tX2ljID1cbiAgICBsZXQgbWVtbyA9IHJlZiBbXSBpblxuICAgIChmdW4gc2Nhbl9jbG9zZV9pYyBpYyAtPlxuICAgICB0cnkgTGlzdC5hc3NxIGljICFtZW1vIHdpdGhcbiAgICAgfCBOb3RfZm91bmQgLT5cbiAgICAgICBsZXQgaWIgPVxuICAgICAgICAgZnJvbV9pYyBzY2FuX2Nsb3NlX2ljIChGcm9tX2NoYW5uZWwgaWMpIGljIGluXG4gICAgICAgbWVtbyA6PSAoaWMsIGliKSA6OiAhbWVtbztcbiAgICAgICBpYilcblxuXG4gICgqIE9ic29sZXRlOiBzZWUgeyFtZW1vX2Zyb21faWN9IGFib3ZlLiAqKVxuICBsZXQgbWVtb19mcm9tX2NoYW5uZWwgPSBtZW1vX2Zyb21faWMgc2Nhbl9yYWlzZV9hdF9lbmRcblxuZW5kXG5cblxuKCogRm9ybWF0dGVkIGlucHV0IGZ1bmN0aW9ucy4gKilcblxudHlwZSAoJ2EsICdiLCAnYywgJ2QpIHNjYW5uZXIgPVxuICAgICAoJ2EsIFNjYW5uaW5nLmluX2NoYW5uZWwsICdiLCAnYywgJ2EgLT4gJ2QsICdkKSBmb3JtYXQ2IC0+ICdjXG5cblxuKCogUmVwb3J0aW5nIGVycm9ycy4gKilcbmV4Y2VwdGlvbiBTY2FuX2ZhaWx1cmUgb2Ygc3RyaW5nXG5cbmxldCBiYWRfaW5wdXQgcyA9IHJhaXNlIChTY2FuX2ZhaWx1cmUgcylcblxubGV0IGJhZF9pbnB1dF9lc2NhcGUgYyA9XG4gIGJhZF9pbnB1dCAoUHJpbnRmLnNwcmludGYgXCJpbGxlZ2FsIGVzY2FwZSBjaGFyYWN0ZXIgJUNcIiBjKVxuXG5cbmxldCBiYWRfdG9rZW5fbGVuZ3RoIG1lc3NhZ2UgPVxuICBiYWRfaW5wdXRcbiAgICAoUHJpbnRmLnNwcmludGZcbiAgICAgICBcInNjYW5uaW5nIG9mICVzIGZhaWxlZDogXFxcbiAgICAgICAgdGhlIHNwZWNpZmllZCBsZW5ndGggd2FzIHRvbyBzaG9ydCBmb3IgdG9rZW5cIlxuICAgICAgIG1lc3NhZ2UpXG5cblxubGV0IGJhZF9lbmRfb2ZfaW5wdXQgbWVzc2FnZSA9XG4gIGJhZF9pbnB1dFxuICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgIFwic2Nhbm5pbmcgb2YgJXMgZmFpbGVkOiBcXFxuICAgICAgICBwcmVtYXR1cmUgZW5kIG9mIGZpbGUgb2NjdXJyZWQgYmVmb3JlIGVuZCBvZiB0b2tlblwiXG4gICAgICAgbWVzc2FnZSlcblxuXG5sZXQgYmFkX2Zsb2F0ICgpID1cbiAgYmFkX2lucHV0IFwibm8gZG90IG9yIGV4cG9uZW50IHBhcnQgZm91bmQgaW4gZmxvYXQgdG9rZW5cIlxuXG5cbmxldCBiYWRfaGV4X2Zsb2F0ICgpID1cbiAgYmFkX2lucHV0IFwibm90IGEgdmFsaWQgZmxvYXQgaW4gaGV4YWRlY2ltYWwgbm90YXRpb25cIlxuXG5cbmxldCBjaGFyYWN0ZXJfbWlzbWF0Y2hfZXJyIGMgY2kgPVxuICBQcmludGYuc3ByaW50ZiBcImxvb2tpbmcgZm9yICVDLCBmb3VuZCAlQ1wiIGMgY2lcblxuXG5sZXQgY2hhcmFjdGVyX21pc21hdGNoIGMgY2kgPVxuICBiYWRfaW5wdXQgKGNoYXJhY3Rlcl9taXNtYXRjaF9lcnIgYyBjaSlcblxuXG5sZXQgcmVjIHNraXBfd2hpdGVzIGliID1cbiAgbGV0IGMgPSBTY2FubmluZy5wZWVrX2NoYXIgaWIgaW5cbiAgaWYgbm90IChTY2FubmluZy5lb2YgaWIpIHRoZW4gYmVnaW5cbiAgICBtYXRjaCBjIHdpdGhcbiAgICB8ICcgJyB8ICdcXHQnIHwgJ1xcbicgfCAnXFxyJyAtPlxuICAgICAgU2Nhbm5pbmcuaW52YWxpZGF0ZV9jdXJyZW50X2NoYXIgaWI7IHNraXBfd2hpdGVzIGliXG4gICAgfCBfIC0+ICgpXG4gIGVuZFxuXG5cbigqIENoZWNraW5nIHRoYXQgW2NdIGlzIGluZGVlZCBpbiB0aGUgaW5wdXQsIHRoZW4gc2tpcHMgaXQuXG4gICBJbiB0aGlzIGNhc2UsIHRoZSBjaGFyYWN0ZXIgW2NdIGhhcyBiZWVuIGV4cGxpY2l0bHkgc3BlY2lmaWVkIGluIHRoZVxuICAgZm9ybWF0IGFzIGJlaW5nIG1hbmRhdG9yeSBpbiB0aGUgaW5wdXQ7IGhlbmNlIHdlIHNob3VsZCBmYWlsIHdpdGhcbiAgIFtFbmRfb2ZfZmlsZV0gaW4gY2FzZSBvZiBlbmRfb2ZfaW5wdXQuXG4gICAoUmVtZW1iZXIgdGhhdCBbU2Nhbl9mYWlsdXJlXSBpcyByYWlzZWQgb25seSB3aGVuICh3ZSBjYW4gcHJvdmUgYnlcbiAgIGV2aWRlbmNlKSB0aGF0IHRoZSBpbnB1dCBkb2VzIG5vdCBtYXRjaCB0aGUgZm9ybWF0IHN0cmluZyBnaXZlbi4gV2UgbXVzdFxuICAgdGh1cyBkaWZmZXJlbnRpYXRlIFtFbmRfb2ZfZmlsZV0gYXMgYW4gZXJyb3IgZHVlIHRvIGxhY2sgb2YgaW5wdXQsIGFuZFxuICAgW1NjYW5fZmFpbHVyZV0gd2hpY2ggaXMgZHVlIHRvIHByb3ZhYmx5IHdyb25nIGlucHV0LiBJIGFtIG5vdCBzdXJlIHRoaXMgaXNcbiAgIHdvcnRoIHRoZSBidXJkZW46IGl0IGlzIGNvbXBsZXggYW5kIHNvbWVob3cgc3VibGltaW5hbDsgc2hvdWxkIGJlIGNsZWFyZXJcbiAgIHRvIGZhaWwgd2l0aCBTY2FuX2ZhaWx1cmUgXCJOb3QgZW5vdWdoIGlucHV0IHRvIGNvbXBsZXRlIHNjYW5uaW5nXCIhKVxuXG4gICBUaGF0J3Mgd2h5LCB3YWl0aW5nIGZvciBhIGJldHRlciBzb2x1dGlvbiwgd2UgdXNlIGNoZWNrZWRfcGVla19jaGFyIGhlcmUuXG4gICBXZSBhcmUgYWxzbyBjYXJlZnVsIHRvIHRyZWF0IFwiXFxyXFxuXCIgaW4gdGhlIGlucHV0IGFzIGFuIGVuZCBvZiBsaW5lIG1hcmtlcjpcbiAgIGl0IGFsd2F5cyBtYXRjaGVzIGEgJ1xcbicgc3BlY2lmaWNhdGlvbiBpbiB0aGUgaW5wdXQgZm9ybWF0IHN0cmluZy4gKilcbmxldCByZWMgY2hlY2tfY2hhciBpYiBjID1cbiAgbWF0Y2ggYyB3aXRoXG4gIHwgJyAnIC0+IHNraXBfd2hpdGVzIGliXG4gIHwgJ1xcbicgLT4gY2hlY2tfbmV3bGluZSBpYlxuICB8IGMgLT4gY2hlY2tfdGhpc19jaGFyIGliIGNcblxuYW5kIGNoZWNrX3RoaXNfY2hhciBpYiBjID1cbiAgbGV0IGNpID0gU2Nhbm5pbmcuY2hlY2tlZF9wZWVrX2NoYXIgaWIgaW5cbiAgaWYgY2kgPSBjIHRoZW4gU2Nhbm5pbmcuaW52YWxpZGF0ZV9jdXJyZW50X2NoYXIgaWIgZWxzZVxuICBjaGFyYWN0ZXJfbWlzbWF0Y2ggYyBjaVxuXG5hbmQgY2hlY2tfbmV3bGluZSBpYiA9XG4gIGxldCBjaSA9IFNjYW5uaW5nLmNoZWNrZWRfcGVla19jaGFyIGliIGluXG4gIG1hdGNoIGNpIHdpdGhcbiAgfCAnXFxuJyAtPiBTY2FubmluZy5pbnZhbGlkYXRlX2N1cnJlbnRfY2hhciBpYlxuICB8ICdcXHInIC0+IFNjYW5uaW5nLmludmFsaWRhdGVfY3VycmVudF9jaGFyIGliOyBjaGVja190aGlzX2NoYXIgaWIgJ1xcbidcbiAgfCBfIC0+IGNoYXJhY3Rlcl9taXNtYXRjaCAnXFxuJyBjaVxuXG5cbigqIEV4dHJhY3RpbmcgdG9rZW5zIGZyb20gdGhlIG91dHB1dCB0b2tlbiBidWZmZXIuICopXG5cbmxldCB0b2tlbl9jaGFyIGliID0gKFNjYW5uaW5nLnRva2VuIGliKS5bMF1cblxubGV0IHRva2VuX3N0cmluZyA9IFNjYW5uaW5nLnRva2VuXG5cbmxldCB0b2tlbl9ib29sIGliID1cbiAgbWF0Y2ggU2Nhbm5pbmcudG9rZW4gaWIgd2l0aFxuICB8IFwidHJ1ZVwiIC0+IHRydWVcbiAgfCBcImZhbHNlXCIgLT4gZmFsc2VcbiAgfCBzIC0+IGJhZF9pbnB1dCAoUHJpbnRmLnNwcmludGYgXCJpbnZhbGlkIGJvb2xlYW4gJyVzJ1wiIHMpXG5cblxuKCogVGhlIHR5cGUgb2YgaW50ZWdlciBjb252ZXJzaW9ucy4gKilcbnR5cGUgaW50ZWdlcl9jb252ZXJzaW9uID1cbiAgfCBCX2NvbnZlcnNpb24gKCogVW5zaWduZWQgYmluYXJ5IGNvbnZlcnNpb24gKilcbiAgfCBEX2NvbnZlcnNpb24gKCogU2lnbmVkIGRlY2ltYWwgY29udmVyc2lvbiAqKVxuICB8IElfY29udmVyc2lvbiAoKiBTaWduZWQgaW50ZWdlciBjb252ZXJzaW9uICopXG4gIHwgT19jb252ZXJzaW9uICgqIFVuc2lnbmVkIG9jdGFsIGNvbnZlcnNpb24gKilcbiAgfCBVX2NvbnZlcnNpb24gKCogVW5zaWduZWQgZGVjaW1hbCBjb252ZXJzaW9uICopXG4gIHwgWF9jb252ZXJzaW9uICgqIFVuc2lnbmVkIGhleGFkZWNpbWFsIGNvbnZlcnNpb24gKilcblxuXG5sZXQgaW50ZWdlcl9jb252ZXJzaW9uX29mX2NoYXIgPSBmdW5jdGlvblxuICB8ICdiJyAtPiBCX2NvbnZlcnNpb25cbiAgfCAnZCcgLT4gRF9jb252ZXJzaW9uXG4gIHwgJ2knIC0+IElfY29udmVyc2lvblxuICB8ICdvJyAtPiBPX2NvbnZlcnNpb25cbiAgfCAndScgLT4gVV9jb252ZXJzaW9uXG4gIHwgJ3gnIHwgJ1gnIC0+IFhfY29udmVyc2lvblxuICB8IF8gLT4gYXNzZXJ0IGZhbHNlXG5cblxuKCogRXh0cmFjdCBhbiBpbnRlZ2VyIGxpdGVyYWwgdG9rZW4uXG4gICBTaW5jZSB0aGUgZnVuY3Rpb25zIFN0ZGxpYi4qaW50Kl9vZl9zdHJpbmcgZG8gbm90IGFjY2VwdCBhIGxlYWRpbmcgKyxcbiAgIHdlIHNraXAgaXQgaWYgbmVjZXNzYXJ5LiAqKVxubGV0IHRva2VuX2ludF9saXRlcmFsIGNvbnYgaWIgPVxuICBsZXQgdG9rID1cbiAgICBtYXRjaCBjb252IHdpdGhcbiAgICB8IERfY29udmVyc2lvbiB8IElfY29udmVyc2lvbiAtPiBTY2FubmluZy50b2tlbiBpYlxuICAgIHwgVV9jb252ZXJzaW9uIC0+IFwiMHVcIiBeIFNjYW5uaW5nLnRva2VuIGliXG4gICAgfCBPX2NvbnZlcnNpb24gLT4gXCIwb1wiIF4gU2Nhbm5pbmcudG9rZW4gaWJcbiAgICB8IFhfY29udmVyc2lvbiAtPiBcIjB4XCIgXiBTY2FubmluZy50b2tlbiBpYlxuICAgIHwgQl9jb252ZXJzaW9uIC0+IFwiMGJcIiBeIFNjYW5uaW5nLnRva2VuIGliIGluXG4gIGxldCBsID0gU3RyaW5nLmxlbmd0aCB0b2sgaW5cbiAgaWYgbCA9IDAgfHwgdG9rLlswXSA8PiAnKycgdGhlbiB0b2sgZWxzZSBTdHJpbmcuc3ViIHRvayAxIChsIC0gMSlcblxuXG4oKiBBbGwgdGhlIGZ1bmN0aW9ucyB0aGF0IGNvbnZlcnQgYSBzdHJpbmcgdG8gYSBudW1iZXIgcmFpc2UgdGhlIGV4Y2VwdGlvblxuICAgRmFpbHVyZSB3aGVuIHRoZSBjb252ZXJzaW9uIGlzIG5vdCBwb3NzaWJsZS5cbiAgIFRoaXMgZXhjZXB0aW9uIGlzIHRoZW4gdHJhcHBlZCBpbiBba3NjYW5mXS4gKilcbmxldCB0b2tlbl9pbnQgY29udiBpYiA9IGludF9vZl9zdHJpbmcgKHRva2VuX2ludF9saXRlcmFsIGNvbnYgaWIpXG5cbmxldCB0b2tlbl9mbG9hdCBpYiA9IGZsb2F0X29mX3N0cmluZyAoU2Nhbm5pbmcudG9rZW4gaWIpXG5cbigqIFRvIHNjYW4gbmF0aXZlIGludHMsIGludDMyIGFuZCBpbnQ2NCBpbnRlZ2Vycy5cbiAgIFdlIGNhbm5vdCBhY2Nlc3MgdG8gY29udmVyc2lvbnMgdG8vZnJvbSBzdHJpbmdzIGZvciB0aG9zZSB0eXBlcyxcbiAgIE5hdGl2ZWludC5vZl9zdHJpbmcsIEludDMyLm9mX3N0cmluZywgYW5kIEludDY0Lm9mX3N0cmluZyxcbiAgIHNpbmNlIHRob3NlIG1vZHVsZXMgYXJlIG5vdCBhdmFpbGFibGUgdG8gW1NjYW5mXS5cbiAgIEhvd2V2ZXIsIHdlIGNhbiBiaW5kIGFuZCB1c2UgdGhlIGNvcnJlc3BvbmRpbmcgcHJpbWl0aXZlcyB0aGF0IGFyZVxuICAgYXZhaWxhYmxlIGluIHRoZSBydW50aW1lLiAqKVxuZXh0ZXJuYWwgbmF0aXZlaW50X29mX3N0cmluZyA6IHN0cmluZyAtPiBuYXRpdmVpbnRcbiAgPSBcImNhbWxfbmF0aXZlaW50X29mX3N0cmluZ1wiXG5cbmV4dGVybmFsIGludDMyX29mX3N0cmluZyA6IHN0cmluZyAtPiBpbnQzMlxuICA9IFwiY2FtbF9pbnQzMl9vZl9zdHJpbmdcIlxuXG5leHRlcm5hbCBpbnQ2NF9vZl9zdHJpbmcgOiBzdHJpbmcgLT4gaW50NjRcbiAgPSBcImNhbWxfaW50NjRfb2Zfc3RyaW5nXCJcblxuXG5sZXQgdG9rZW5fbmF0aXZlaW50IGNvbnYgaWIgPSBuYXRpdmVpbnRfb2Zfc3RyaW5nICh0b2tlbl9pbnRfbGl0ZXJhbCBjb252IGliKVxubGV0IHRva2VuX2ludDMyIGNvbnYgaWIgPSBpbnQzMl9vZl9zdHJpbmcgKHRva2VuX2ludF9saXRlcmFsIGNvbnYgaWIpXG5sZXQgdG9rZW5faW50NjQgY29udiBpYiA9IGludDY0X29mX3N0cmluZyAodG9rZW5faW50X2xpdGVyYWwgY29udiBpYilcblxuKCogU2Nhbm5pbmcgbnVtYmVycy4gKilcblxuKCogRGlnaXRzIHNjYW5uaW5nIGZ1bmN0aW9ucyBzdXBwb3NlIHRoYXQgb25lIGNoYXJhY3RlciBoYXMgYmVlbiBjaGVja2VkIGFuZFxuICAgaXMgYXZhaWxhYmxlLCBzaW5jZSB0aGV5IHJldHVybiBhdCBlbmQgb2YgZmlsZSB3aXRoIHRoZSBjdXJyZW50bHkgZm91bmRcbiAgIHRva2VuIHNlbGVjdGVkLlxuXG4gICBQdXQgaXQgaW4gYW5vdGhlciB3YXksIHRoZSBkaWdpdHMgc2Nhbm5pbmcgZnVuY3Rpb25zIHNjYW4gZm9yIGEgcG9zc2libHlcbiAgIGVtcHR5IHNlcXVlbmNlIG9mIGRpZ2l0cywgKGhlbmNlLCBhIHN1Y2Nlc3NmdWwgc2Nhbm5pbmcgZnJvbSBvbmUgb2YgdGhvc2VcbiAgIGZ1bmN0aW9ucyBkb2VzIG5vdCBpbXBseSB0aGF0IHRoZSB0b2tlbiBpcyBhIHdlbGwtZm9ybWVkIG51bWJlcjogdG8gZ2V0IGFcbiAgIHRydWUgbnVtYmVyLCBpdCBpcyBtYW5kYXRvcnkgdG8gY2hlY2sgdGhhdCBhdCBsZWFzdCBvbmUgdmFsaWQgZGlnaXQgaXNcbiAgIGF2YWlsYWJsZSBiZWZvcmUgY2FsbGluZyBvbmUgb2YgdGhlIGRpZ2l0IHNjYW5uaW5nIGZ1bmN0aW9ucykuICopXG5cbigqIFRoZSBkZWNpbWFsIGNhc2UgaXMgdHJlYXRlZCBlc3BlY2lhbGx5IGZvciBvcHRpbWl6YXRpb24gcHVycG9zZXMuICopXG5sZXQgcmVjIHNjYW5fZGVjaW1hbF9kaWdpdF9zdGFyIHdpZHRoIGliID1cbiAgaWYgd2lkdGggPSAwIHRoZW4gd2lkdGggZWxzZVxuICBsZXQgYyA9IFNjYW5uaW5nLnBlZWtfY2hhciBpYiBpblxuICBpZiBTY2FubmluZy5lb2YgaWIgdGhlbiB3aWR0aCBlbHNlXG4gIG1hdGNoIGMgd2l0aFxuICB8ICcwJyAuLiAnOScgYXMgYyAtPlxuICAgIGxldCB3aWR0aCA9IFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYyBpblxuICAgIHNjYW5fZGVjaW1hbF9kaWdpdF9zdGFyIHdpZHRoIGliXG4gIHwgJ18nIC0+XG4gICAgbGV0IHdpZHRoID0gU2Nhbm5pbmcuaWdub3JlX2NoYXIgd2lkdGggaWIgaW5cbiAgICBzY2FuX2RlY2ltYWxfZGlnaXRfc3RhciB3aWR0aCBpYlxuICB8IF8gLT4gd2lkdGhcblxuXG5sZXQgc2Nhbl9kZWNpbWFsX2RpZ2l0X3BsdXMgd2lkdGggaWIgPVxuICBpZiB3aWR0aCA9IDAgdGhlbiBiYWRfdG9rZW5fbGVuZ3RoIFwiZGVjaW1hbCBkaWdpdHNcIiBlbHNlXG4gIGxldCBjID0gU2Nhbm5pbmcuY2hlY2tlZF9wZWVrX2NoYXIgaWIgaW5cbiAgbWF0Y2ggYyB3aXRoXG4gIHwgJzAnIC4uICc5JyAtPlxuICAgIGxldCB3aWR0aCA9IFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYyBpblxuICAgIHNjYW5fZGVjaW1hbF9kaWdpdF9zdGFyIHdpZHRoIGliXG4gIHwgYyAtPlxuICAgIGJhZF9pbnB1dCAoUHJpbnRmLnNwcmludGYgXCJjaGFyYWN0ZXIgJUMgaXMgbm90IGEgZGVjaW1hbCBkaWdpdFwiIGMpXG5cblxuKCogVG8gc2NhbiBudW1iZXJzIGZyb20gb3RoZXIgYmFzZXMsIHdlIHVzZSBhIHByZWRpY2F0ZSBhcmd1bWVudCB0b1xuICAgc2NhbiBkaWdpdHMuICopXG5sZXQgc2Nhbl9kaWdpdF9zdGFyIGRpZ2l0cCB3aWR0aCBpYiA9XG4gIGxldCByZWMgc2Nhbl9kaWdpdHMgd2lkdGggaWIgPVxuICAgIGlmIHdpZHRoID0gMCB0aGVuIHdpZHRoIGVsc2VcbiAgICBsZXQgYyA9IFNjYW5uaW5nLnBlZWtfY2hhciBpYiBpblxuICAgIGlmIFNjYW5uaW5nLmVvZiBpYiB0aGVuIHdpZHRoIGVsc2VcbiAgICBtYXRjaCBjIHdpdGhcbiAgICB8IGMgd2hlbiBkaWdpdHAgYyAtPlxuICAgICAgbGV0IHdpZHRoID0gU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjIGluXG4gICAgICBzY2FuX2RpZ2l0cyB3aWR0aCBpYlxuICAgIHwgJ18nIC0+XG4gICAgICBsZXQgd2lkdGggPSBTY2FubmluZy5pZ25vcmVfY2hhciB3aWR0aCBpYiBpblxuICAgICAgc2Nhbl9kaWdpdHMgd2lkdGggaWJcbiAgICB8IF8gLT4gd2lkdGggaW5cbiAgc2Nhbl9kaWdpdHMgd2lkdGggaWJcblxuXG5sZXQgc2Nhbl9kaWdpdF9wbHVzIGJhc2lzIGRpZ2l0cCB3aWR0aCBpYiA9XG4gICgqIEVuc3VyZSB3ZSBoYXZlIGdvdCBlbm91Z2ggd2lkdGggbGVmdCxcbiAgICAgYW5kIHJlYWQgYXQgbGVhc3Qgb25lIGRpZ2l0LiAqKVxuICBpZiB3aWR0aCA9IDAgdGhlbiBiYWRfdG9rZW5fbGVuZ3RoIFwiZGlnaXRzXCIgZWxzZVxuICBsZXQgYyA9IFNjYW5uaW5nLmNoZWNrZWRfcGVla19jaGFyIGliIGluXG4gIGlmIGRpZ2l0cCBjIHRoZW5cbiAgICBsZXQgd2lkdGggPSBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMgaW5cbiAgICBzY2FuX2RpZ2l0X3N0YXIgZGlnaXRwIHdpZHRoIGliXG4gIGVsc2VcbiAgICBiYWRfaW5wdXQgKFByaW50Zi5zcHJpbnRmIFwiY2hhcmFjdGVyICVDIGlzIG5vdCBhIHZhbGlkICVzIGRpZ2l0XCIgYyBiYXNpcylcblxuXG5sZXQgaXNfYmluYXJ5X2RpZ2l0ID0gZnVuY3Rpb25cbiAgfCAnMCcgLi4gJzEnIC0+IHRydWVcbiAgfCBfIC0+IGZhbHNlXG5cblxubGV0IHNjYW5fYmluYXJ5X2ludCA9IHNjYW5fZGlnaXRfcGx1cyBcImJpbmFyeVwiIGlzX2JpbmFyeV9kaWdpdFxuXG5sZXQgaXNfb2N0YWxfZGlnaXQgPSBmdW5jdGlvblxuICB8ICcwJyAuLiAnNycgLT4gdHJ1ZVxuICB8IF8gLT4gZmFsc2VcblxuXG5sZXQgc2Nhbl9vY3RhbF9pbnQgPSBzY2FuX2RpZ2l0X3BsdXMgXCJvY3RhbFwiIGlzX29jdGFsX2RpZ2l0XG5cbmxldCBpc19oZXhhX2RpZ2l0ID0gZnVuY3Rpb25cbiAgfCAnMCcgLi4gJzknIHwgJ2EnIC4uICdmJyB8ICdBJyAuLiAnRicgLT4gdHJ1ZVxuICB8IF8gLT4gZmFsc2VcblxuXG5sZXQgc2Nhbl9oZXhhZGVjaW1hbF9pbnQgPSBzY2FuX2RpZ2l0X3BsdXMgXCJoZXhhZGVjaW1hbFwiIGlzX2hleGFfZGlnaXRcblxuKCogU2NhbiBhIGRlY2ltYWwgaW50ZWdlci4gKilcbmxldCBzY2FuX3Vuc2lnbmVkX2RlY2ltYWxfaW50ID0gc2Nhbl9kZWNpbWFsX2RpZ2l0X3BsdXNcblxubGV0IHNjYW5fc2lnbiB3aWR0aCBpYiA9XG4gIGxldCBjID0gU2Nhbm5pbmcuY2hlY2tlZF9wZWVrX2NoYXIgaWIgaW5cbiAgbWF0Y2ggYyB3aXRoXG4gIHwgJysnIC0+IFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgY1xuICB8ICctJyAtPiBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGNcbiAgfCBfIC0+IHdpZHRoXG5cblxubGV0IHNjYW5fb3B0aW9uYWxseV9zaWduZWRfZGVjaW1hbF9pbnQgd2lkdGggaWIgPVxuICBsZXQgd2lkdGggPSBzY2FuX3NpZ24gd2lkdGggaWIgaW5cbiAgc2Nhbl91bnNpZ25lZF9kZWNpbWFsX2ludCB3aWR0aCBpYlxuXG5cbigqIFNjYW4gYW4gdW5zaWduZWQgaW50ZWdlciB0aGF0IGNvdWxkIGJlIGdpdmVuIGluIGFueSAoY29tbW9uKSBiYXNpcy5cbiAgIElmIGRpZ2l0cyBhcmUgcHJlZml4ZWQgYnkgb25lIG9mIDB4LCAwWCwgMG8sIG9yIDBiLCB0aGUgbnVtYmVyIGlzXG4gICBhc3N1bWVkIHRvIGJlIHdyaXR0ZW4gcmVzcGVjdGl2ZWx5IGluIGhleGFkZWNpbWFsLCBoZXhhZGVjaW1hbCxcbiAgIG9jdGFsLCBvciBiaW5hcnkuICopXG5sZXQgc2Nhbl91bnNpZ25lZF9pbnQgd2lkdGggaWIgPVxuICBtYXRjaCBTY2FubmluZy5jaGVja2VkX3BlZWtfY2hhciBpYiB3aXRoXG4gIHwgJzAnIGFzIGMgLT5cbiAgICBsZXQgd2lkdGggPSBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMgaW5cbiAgICBpZiB3aWR0aCA9IDAgdGhlbiB3aWR0aCBlbHNlXG4gICAgbGV0IGMgPSBTY2FubmluZy5wZWVrX2NoYXIgaWIgaW5cbiAgICBpZiBTY2FubmluZy5lb2YgaWIgdGhlbiB3aWR0aCBlbHNlXG4gICAgYmVnaW4gbWF0Y2ggYyB3aXRoXG4gICAgfCAneCcgfCAnWCcgLT4gc2Nhbl9oZXhhZGVjaW1hbF9pbnQgKFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYykgaWJcbiAgICB8ICdvJyAtPiBzY2FuX29jdGFsX2ludCAoU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjKSBpYlxuICAgIHwgJ2InIC0+IHNjYW5fYmluYXJ5X2ludCAoU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjKSBpYlxuICAgIHwgXyAtPiBzY2FuX2RlY2ltYWxfZGlnaXRfc3RhciB3aWR0aCBpYiBlbmRcbiAgfCBfIC0+IHNjYW5fdW5zaWduZWRfZGVjaW1hbF9pbnQgd2lkdGggaWJcblxuXG5sZXQgc2Nhbl9vcHRpb25hbGx5X3NpZ25lZF9pbnQgd2lkdGggaWIgPVxuICBsZXQgd2lkdGggPSBzY2FuX3NpZ24gd2lkdGggaWIgaW5cbiAgc2Nhbl91bnNpZ25lZF9pbnQgd2lkdGggaWJcblxuXG5sZXQgc2Nhbl9pbnRfY29udmVyc2lvbiBjb252IHdpZHRoIGliID1cbiAgbWF0Y2ggY29udiB3aXRoXG4gIHwgQl9jb252ZXJzaW9uIC0+IHNjYW5fYmluYXJ5X2ludCB3aWR0aCBpYlxuICB8IERfY29udmVyc2lvbiAtPiBzY2FuX29wdGlvbmFsbHlfc2lnbmVkX2RlY2ltYWxfaW50IHdpZHRoIGliXG4gIHwgSV9jb252ZXJzaW9uIC0+IHNjYW5fb3B0aW9uYWxseV9zaWduZWRfaW50IHdpZHRoIGliXG4gIHwgT19jb252ZXJzaW9uIC0+IHNjYW5fb2N0YWxfaW50IHdpZHRoIGliXG4gIHwgVV9jb252ZXJzaW9uIC0+IHNjYW5fdW5zaWduZWRfZGVjaW1hbF9pbnQgd2lkdGggaWJcbiAgfCBYX2NvbnZlcnNpb24gLT4gc2Nhbl9oZXhhZGVjaW1hbF9pbnQgd2lkdGggaWJcblxuXG4oKiBTY2FubmluZyBmbG9hdGluZyBwb2ludCBudW1iZXJzLiAqKVxuXG4oKiBGcmFjdGlvbmFsIHBhcnQgaXMgb3B0aW9uYWwgYW5kIGNhbiBiZSByZWR1Y2VkIHRvIDAgZGlnaXRzLiAqKVxubGV0IHNjYW5fZnJhY3Rpb25hbF9wYXJ0IHdpZHRoIGliID1cbiAgaWYgd2lkdGggPSAwIHRoZW4gd2lkdGggZWxzZVxuICBsZXQgYyA9IFNjYW5uaW5nLnBlZWtfY2hhciBpYiBpblxuICBpZiBTY2FubmluZy5lb2YgaWIgdGhlbiB3aWR0aCBlbHNlXG4gIG1hdGNoIGMgd2l0aFxuICB8ICcwJyAuLiAnOScgYXMgYyAtPlxuICAgIHNjYW5fZGVjaW1hbF9kaWdpdF9zdGFyIChTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMpIGliXG4gIHwgXyAtPiB3aWR0aFxuXG5cbigqIEV4cCBwYXJ0IGlzIG9wdGlvbmFsIGFuZCBjYW4gYmUgcmVkdWNlZCB0byAwIGRpZ2l0cy4gKilcbmxldCBzY2FuX2V4cG9uZW50X3BhcnQgd2lkdGggaWIgPVxuICBpZiB3aWR0aCA9IDAgdGhlbiB3aWR0aCBlbHNlXG4gIGxldCBjID0gU2Nhbm5pbmcucGVla19jaGFyIGliIGluXG4gIGlmIFNjYW5uaW5nLmVvZiBpYiB0aGVuIHdpZHRoIGVsc2VcbiAgbWF0Y2ggYyB3aXRoXG4gIHwgJ2UnIHwgJ0UnIGFzIGMgLT5cbiAgICBzY2FuX29wdGlvbmFsbHlfc2lnbmVkX2RlY2ltYWxfaW50IChTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMpIGliXG4gIHwgXyAtPiB3aWR0aFxuXG5cbigqIFNjYW4gdGhlIGludGVnZXIgcGFydCBvZiBhIGZsb2F0aW5nIHBvaW50IG51bWJlciwgKG5vdCB1c2luZyB0aGVcbiAgIE9DYW1sIGxleGljYWwgY29udmVudGlvbiBzaW5jZSB0aGUgaW50ZWdlciBwYXJ0IGNhbiBiZSBlbXB0eSk6XG4gICBhbiBvcHRpb25hbCBzaWduLCBmb2xsb3dlZCBieSBhIHBvc3NpYmx5IGVtcHR5IHNlcXVlbmNlIG9mIGRlY2ltYWxcbiAgIGRpZ2l0cyAoZS5nLiAtLjEpLiAqKVxubGV0IHNjYW5faW50ZWdlcl9wYXJ0IHdpZHRoIGliID1cbiAgbGV0IHdpZHRoID0gc2Nhbl9zaWduIHdpZHRoIGliIGluXG4gIHNjYW5fZGVjaW1hbF9kaWdpdF9zdGFyIHdpZHRoIGliXG5cblxuKCpcbiAgIEZvciB0aGUgdGltZSBiZWluZyB3ZSBoYXZlIChhcyBmb3VuZCBpbiBzY2FuZi5tbGkpOlxuICAgdGhlIGZpZWxkIHdpZHRoIGlzIGNvbXBvc2VkIG9mIGFuIG9wdGlvbmFsIGludGVnZXIgbGl0ZXJhbFxuICAgaW5kaWNhdGluZyB0aGUgbWF4aW1hbCB3aWR0aCBvZiB0aGUgdG9rZW4gdG8gcmVhZC5cbiAgIFVuZm9ydHVuYXRlbHksIHRoZSB0eXBlLWNoZWNrZXIgbGV0IHRoZSB1c2VyIHdyaXRlIGFuIG9wdGlvbmFsIHByZWNpc2lvbixcbiAgIHNpbmNlIHRoaXMgaXMgdmFsaWQgZm9yIHByaW50ZiBmb3JtYXQgc3RyaW5ncy5cblxuICAgVGh1cywgdGhlIG5leHQgc3RlcCBmb3IgU2NhbmYgaXMgdG8gc3VwcG9ydCBhIGZ1bGwgd2lkdGggYW5kIHByZWNpc2lvblxuICAgaW5kaWNhdGlvbiwgbW9yZSBvciBsZXNzIHNpbWlsYXIgdG8gdGhlIG9uZSBmb3IgcHJpbnRmLCBwb3NzaWJseSBleHRlbmRlZFxuICAgdG8gdGhlIHNwZWNpZmljYXRpb24gb2YgYSBbbWF4LCBtaW5dIHJhbmdlIGZvciB0aGUgd2lkdGggb2YgdGhlIHRva2VuIHJlYWRcbiAgIGZvciBzdHJpbmdzLiBTb21ldGhpbmcgbGlrZSB0aGUgZm9sbG93aW5nIHNwZWMgZm9yIHNjYW5mLm1saTpcblxuICAgVGhlIG9wdGlvbmFsIFt3aWR0aF0gaXMgYW4gaW50ZWdlciBpbmRpY2F0aW5nIHRoZSBtYXhpbWFsXG4gICB3aWR0aCBvZiB0aGUgdG9rZW4gcmVhZC4gRm9yIGluc3RhbmNlLCBbJTZkXSByZWFkcyBhbiBpbnRlZ2VyLFxuICAgaGF2aW5nIGF0IG1vc3QgNiBjaGFyYWN0ZXJzLlxuXG4gICBUaGUgb3B0aW9uYWwgW3ByZWNpc2lvbl0gaXMgYSBkb3QgWy5dIGZvbGxvd2VkIGJ5IGFuIGludGVnZXI6XG5cbiAgIC0gaW4gdGhlIGZsb2F0aW5nIHBvaW50IG51bWJlciBjb252ZXJzaW9ucyAoWyVmXSwgWyVlXSwgWyVnXSwgWyVGXSwgWyVFXSxcbiAgIGFuZCBbJUZdIGNvbnZlcnNpb25zLCB0aGUgW3ByZWNpc2lvbl0gaW5kaWNhdGVzIHRoZSBtYXhpbXVtIG51bWJlciBvZlxuICAgZGlnaXRzIHRoYXQgbWF5IGZvbGxvdyB0aGUgZGVjaW1hbCBwb2ludC4gRm9yIGluc3RhbmNlLCBbJS40Zl0gcmVhZHMgYVxuICAgW2Zsb2F0XSB3aXRoIGF0IG1vc3QgNCBmcmFjdGlvbmFsIGRpZ2l0cyxcblxuICAgLSBpbiB0aGUgc3RyaW5nIGNvbnZlcnNpb25zIChbJXNdLCBbJVNdLCBbJVxcWyByYW5nZSBcXF1dKSwgYW5kIGluIHRoZVxuICAgaW50ZWdlciBudW1iZXIgY29udmVyc2lvbnMgKFslaV0sIFslZF0sIFsldV0sIFsleF0sIFslb10sIGFuZCB0aGVpclxuICAgW2ludDMyXSwgW2ludDY0XSwgYW5kIFtuYXRpdmVfaW50XSBjb3JyZXNwb25kZW50KSwgdGhlIFtwcmVjaXNpb25dXG4gICBpbmRpY2F0ZXMgdGhlIHJlcXVpcmVkIG1pbmltdW0gd2lkdGggb2YgdGhlIHRva2VuIHJlYWQsXG5cbiAgIC0gb24gYWxsIG90aGVyIGNvbnZlcnNpb25zLCB0aGUgd2lkdGggYW5kIHByZWNpc2lvbiBzcGVjaWZ5IHRoZSBbbWF4LCBtaW5dXG4gICByYW5nZSBmb3IgdGhlIHdpZHRoIG9mIHRoZSB0b2tlbiByZWFkLlxuKilcbmxldCBzY2FuX2Zsb2F0IHdpZHRoIHByZWNpc2lvbiBpYiA9XG4gIGxldCB3aWR0aCA9IHNjYW5faW50ZWdlcl9wYXJ0IHdpZHRoIGliIGluXG4gIGlmIHdpZHRoID0gMCB0aGVuIHdpZHRoLCBwcmVjaXNpb24gZWxzZVxuICBsZXQgYyA9IFNjYW5uaW5nLnBlZWtfY2hhciBpYiBpblxuICBpZiBTY2FubmluZy5lb2YgaWIgdGhlbiB3aWR0aCwgcHJlY2lzaW9uIGVsc2VcbiAgbWF0Y2ggYyB3aXRoXG4gIHwgJy4nIC0+XG4gICAgbGV0IHdpZHRoID0gU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjIGluXG4gICAgbGV0IHByZWNpc2lvbiA9IEludC5taW4gd2lkdGggcHJlY2lzaW9uIGluXG4gICAgbGV0IHdpZHRoID0gd2lkdGggLSAocHJlY2lzaW9uIC0gc2Nhbl9mcmFjdGlvbmFsX3BhcnQgcHJlY2lzaW9uIGliKSBpblxuICAgIHNjYW5fZXhwb25lbnRfcGFydCB3aWR0aCBpYiwgcHJlY2lzaW9uXG4gIHwgXyAtPlxuICAgIHNjYW5fZXhwb25lbnRfcGFydCB3aWR0aCBpYiwgcHJlY2lzaW9uXG5cblxubGV0IGNoZWNrX2Nhc2VfaW5zZW5zaXRpdmVfc3RyaW5nIHdpZHRoIGliIGVycm9yIHN0ciA9XG4gIGxldCBsb3dlcmNhc2UgYyA9XG4gICAgbWF0Y2ggYyB3aXRoXG4gICAgfCAnQScgLi4gJ1onIC0+XG4gICAgICBjaGFyX29mX2ludCAoaW50X29mX2NoYXIgYyAtIGludF9vZl9jaGFyICdBJyArIGludF9vZl9jaGFyICdhJylcbiAgICB8IF8gLT4gYyBpblxuICBsZXQgbGVuID0gU3RyaW5nLmxlbmd0aCBzdHIgaW5cbiAgbGV0IHdpZHRoID0gcmVmIHdpZHRoIGluXG4gIGZvciBpID0gMCB0byBsZW4gLSAxIGRvXG4gICAgbGV0IGMgPSBTY2FubmluZy5wZWVrX2NoYXIgaWIgaW5cbiAgICBpZiBsb3dlcmNhc2UgYyA8PiBsb3dlcmNhc2Ugc3RyLltpXSB0aGVuIGVycm9yICgpO1xuICAgIGlmICF3aWR0aCA9IDAgdGhlbiBlcnJvciAoKTtcbiAgICB3aWR0aCA6PSBTY2FubmluZy5zdG9yZV9jaGFyICF3aWR0aCBpYiBjO1xuICBkb25lO1xuICAhd2lkdGhcblxuXG5sZXQgc2Nhbl9oZXhfZmxvYXQgd2lkdGggcHJlY2lzaW9uIGliID1cbiAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIGJhZF9oZXhfZmxvYXQgKCk7XG4gIGxldCB3aWR0aCA9IHNjYW5fc2lnbiB3aWR0aCBpYiBpblxuICBpZiB3aWR0aCA9IDAgfHwgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gYmFkX2hleF9mbG9hdCAoKTtcbiAgbWF0Y2ggU2Nhbm5pbmcucGVla19jaGFyIGliIHdpdGhcbiAgfCAnMCcgYXMgYyAtPiAoXG4gICAgbGV0IHdpZHRoID0gU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjIGluXG4gICAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIGJhZF9oZXhfZmxvYXQgKCk7XG4gICAgbGV0IHdpZHRoID0gY2hlY2tfY2FzZV9pbnNlbnNpdGl2ZV9zdHJpbmcgd2lkdGggaWIgYmFkX2hleF9mbG9hdCBcInhcIiBpblxuICAgIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiB3aWR0aCBlbHNlXG4gICAgICBsZXQgd2lkdGggPSBtYXRjaCBTY2FubmluZy5wZWVrX2NoYXIgaWIgd2l0aFxuICAgICAgICB8ICcuJyB8ICdwJyB8ICdQJyAtPiB3aWR0aFxuICAgICAgICB8IF8gLT4gc2Nhbl9oZXhhZGVjaW1hbF9pbnQgd2lkdGggaWIgaW5cbiAgICAgIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiB3aWR0aCBlbHNlXG4gICAgICAgIGxldCB3aWR0aCA9IG1hdGNoIFNjYW5uaW5nLnBlZWtfY2hhciBpYiB3aXRoXG4gICAgICAgICAgfCAnLicgYXMgYyAtPiAoXG4gICAgICAgICAgICBsZXQgd2lkdGggPSBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMgaW5cbiAgICAgICAgICAgIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiB3aWR0aCBlbHNlXG4gICAgICAgICAgICAgIG1hdGNoIFNjYW5uaW5nLnBlZWtfY2hhciBpYiB3aXRoXG4gICAgICAgICAgICAgIHwgJ3AnIHwgJ1AnIC0+IHdpZHRoXG4gICAgICAgICAgICAgIHwgXyAtPlxuICAgICAgICAgICAgICAgIGxldCBwcmVjaXNpb24gPSBJbnQubWluIHdpZHRoIHByZWNpc2lvbiBpblxuICAgICAgICAgICAgICAgIHdpZHRoIC0gKHByZWNpc2lvbiAtIHNjYW5faGV4YWRlY2ltYWxfaW50IHByZWNpc2lvbiBpYilcbiAgICAgICAgICApXG4gICAgICAgICAgfCBfIC0+IHdpZHRoIGluXG4gICAgICAgIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiB3aWR0aCBlbHNlXG4gICAgICAgICAgbWF0Y2ggU2Nhbm5pbmcucGVla19jaGFyIGliIHdpdGhcbiAgICAgICAgICB8ICdwJyB8ICdQJyBhcyBjIC0+XG4gICAgICAgICAgICBsZXQgd2lkdGggPSBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMgaW5cbiAgICAgICAgICAgIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiBiYWRfaGV4X2Zsb2F0ICgpO1xuICAgICAgICAgICAgc2Nhbl9vcHRpb25hbGx5X3NpZ25lZF9kZWNpbWFsX2ludCB3aWR0aCBpYlxuICAgICAgICAgIHwgXyAtPiB3aWR0aFxuICApXG4gIHwgJ24nIHwgJ04nIGFzIGMgLT5cbiAgICBsZXQgd2lkdGggPSBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMgaW5cbiAgICBpZiB3aWR0aCA9IDAgfHwgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gYmFkX2hleF9mbG9hdCAoKTtcbiAgICBjaGVja19jYXNlX2luc2Vuc2l0aXZlX3N0cmluZyB3aWR0aCBpYiBiYWRfaGV4X2Zsb2F0IFwiYW5cIlxuICB8ICdpJyB8ICdJJyBhcyBjIC0+XG4gICAgbGV0IHdpZHRoID0gU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjIGluXG4gICAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIGJhZF9oZXhfZmxvYXQgKCk7XG4gICAgY2hlY2tfY2FzZV9pbnNlbnNpdGl2ZV9zdHJpbmcgd2lkdGggaWIgYmFkX2hleF9mbG9hdCBcIm5maW5pdHlcIlxuICB8IF8gLT4gYmFkX2hleF9mbG9hdCAoKVxuXG5cbmxldCBzY2FuX2NhbWxfZmxvYXRfcmVzdCB3aWR0aCBwcmVjaXNpb24gaWIgPVxuICBpZiB3aWR0aCA9IDAgfHwgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gYmFkX2Zsb2F0ICgpO1xuICBsZXQgd2lkdGggPSBzY2FuX2RlY2ltYWxfZGlnaXRfc3RhciB3aWR0aCBpYiBpblxuICBpZiB3aWR0aCA9IDAgfHwgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gYmFkX2Zsb2F0ICgpO1xuICBsZXQgYyA9IFNjYW5uaW5nLnBlZWtfY2hhciBpYiBpblxuICBtYXRjaCBjIHdpdGhcbiAgfCAnLicgLT5cbiAgICBsZXQgd2lkdGggPSBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMgaW5cbiAgICAoKiBUaGUgZWZmZWN0aXZlIHdpZHRoIGF2YWlsYWJsZSBmb3Igc2Nhbm5pbmcgdGhlIGZyYWN0aW9uYWwgcGFydCBpc1xuICAgICAgIHRoZSBtaW5pbXVtIG9mIGRlY2xhcmVkIHByZWNpc2lvbiBhbmQgd2lkdGggbGVmdC4gKilcbiAgICBsZXQgcHJlY2lzaW9uID0gSW50Lm1pbiB3aWR0aCBwcmVjaXNpb24gaW5cbiAgICAoKiBBZnRlciBzY2FubmluZyB0aGUgZnJhY3Rpb25hbCBwYXJ0IHdpdGggW3ByZWNpc2lvbl0gcHJvdmlzaW9uYWwgd2lkdGgsXG4gICAgICAgW3dpZHRoX3ByZWNpc2lvbl0gaXMgbGVmdC4gKilcbiAgICBsZXQgd2lkdGhfcHJlY2lzaW9uID0gc2Nhbl9mcmFjdGlvbmFsX3BhcnQgcHJlY2lzaW9uIGliIGluXG4gICAgKCogSGVuY2UsIHNjYW5uaW5nIHRoZSBmcmFjdGlvbmFsIHBhcnQgdG9vayBleGFjdGx5XG4gICAgICAgW3ByZWNpc2lvbiAtIHdpZHRoX3ByZWNpc2lvbl0gY2hhcnMuICopXG4gICAgbGV0IGZyYWNfd2lkdGggPSBwcmVjaXNpb24gLSB3aWR0aF9wcmVjaXNpb24gaW5cbiAgICAoKiBBbmQgbmV3IHByb3Zpc2lvbmFsIHdpZHRoIGlzIFt3aWR0aCAtIHdpZHRoX3ByZWNpc2lvbi4gKilcbiAgICBsZXQgd2lkdGggPSB3aWR0aCAtIGZyYWNfd2lkdGggaW5cbiAgICBzY2FuX2V4cG9uZW50X3BhcnQgd2lkdGggaWJcbiAgfCAnZScgfCAnRScgLT5cbiAgICBzY2FuX2V4cG9uZW50X3BhcnQgd2lkdGggaWJcbiAgfCBfIC0+IGJhZF9mbG9hdCAoKVxuXG5cbmxldCBzY2FuX2NhbWxfZmxvYXQgd2lkdGggcHJlY2lzaW9uIGliID1cbiAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIGJhZF9mbG9hdCAoKTtcbiAgbGV0IHdpZHRoID0gc2Nhbl9zaWduIHdpZHRoIGliIGluXG4gIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiBiYWRfZmxvYXQgKCk7XG4gIG1hdGNoIFNjYW5uaW5nLnBlZWtfY2hhciBpYiB3aXRoXG4gIHwgJzAnIGFzIGMgLT4gKFxuICAgIGxldCB3aWR0aCA9IFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYyBpblxuICAgIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiBiYWRfZmxvYXQgKCk7XG4gICAgbWF0Y2ggU2Nhbm5pbmcucGVla19jaGFyIGliIHdpdGhcbiAgICB8ICd4JyB8ICdYJyBhcyBjIC0+IChcbiAgICAgIGxldCB3aWR0aCA9IFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYyBpblxuICAgICAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIGJhZF9mbG9hdCAoKTtcbiAgICAgIGxldCB3aWR0aCA9IHNjYW5faGV4YWRlY2ltYWxfaW50IHdpZHRoIGliIGluXG4gICAgICBpZiB3aWR0aCA9IDAgfHwgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gYmFkX2Zsb2F0ICgpO1xuICAgICAgbGV0IHdpZHRoID0gbWF0Y2ggU2Nhbm5pbmcucGVla19jaGFyIGliIHdpdGhcbiAgICAgICAgfCAnLicgYXMgYyAtPiAoXG4gICAgICAgICAgbGV0IHdpZHRoID0gU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjIGluXG4gICAgICAgICAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIHdpZHRoIGVsc2VcbiAgICAgICAgICAgIG1hdGNoIFNjYW5uaW5nLnBlZWtfY2hhciBpYiB3aXRoXG4gICAgICAgICAgICB8ICdwJyB8ICdQJyAtPiB3aWR0aFxuICAgICAgICAgICAgfCBfIC0+XG4gICAgICAgICAgICAgIGxldCBwcmVjaXNpb24gPSBJbnQubWluIHdpZHRoIHByZWNpc2lvbiBpblxuICAgICAgICAgICAgICB3aWR0aCAtIChwcmVjaXNpb24gLSBzY2FuX2hleGFkZWNpbWFsX2ludCBwcmVjaXNpb24gaWIpXG4gICAgICAgIClcbiAgICAgICAgfCAncCcgfCAnUCcgLT4gd2lkdGhcbiAgICAgICAgfCBfIC0+IGJhZF9mbG9hdCAoKSBpblxuICAgICAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIHdpZHRoIGVsc2VcbiAgICAgICAgbWF0Y2ggU2Nhbm5pbmcucGVla19jaGFyIGliIHdpdGhcbiAgICAgICAgfCAncCcgfCAnUCcgYXMgYyAtPlxuICAgICAgICAgIGxldCB3aWR0aCA9IFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYyBpblxuICAgICAgICAgIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiBiYWRfaGV4X2Zsb2F0ICgpO1xuICAgICAgICAgIHNjYW5fb3B0aW9uYWxseV9zaWduZWRfZGVjaW1hbF9pbnQgd2lkdGggaWJcbiAgICAgICAgfCBfIC0+IHdpZHRoXG4gICAgKVxuICAgIHwgXyAtPlxuICAgICAgc2Nhbl9jYW1sX2Zsb2F0X3Jlc3Qgd2lkdGggcHJlY2lzaW9uIGliXG4gIClcbiAgfCAnMScgLi4gJzknIGFzIGMgLT5cbiAgICBsZXQgd2lkdGggPSBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMgaW5cbiAgICBpZiB3aWR0aCA9IDAgfHwgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gYmFkX2Zsb2F0ICgpO1xuICAgIHNjYW5fY2FtbF9mbG9hdF9yZXN0IHdpZHRoIHByZWNpc2lvbiBpYlxuKCogU3BlY2lhbCBjYXNlIG9mIG5hbiBhbmQgaW5maW5pdHk6XG4gIHwgJ2knIC0+XG4gIHwgJ24nIC0+XG4qKVxuICB8IF8gLT4gYmFkX2Zsb2F0ICgpXG5cblxuKCogU2NhbiBhIHJlZ3VsYXIgc3RyaW5nOlxuICAgc3RvcHMgd2hlbiBlbmNvdW50ZXJpbmcgYSBzcGFjZSwgaWYgbm8gc2Nhbm5pbmcgaW5kaWNhdGlvbiBoYXMgYmVlbiBnaXZlbjtcbiAgIG90aGVyd2lzZSwgc3RvcHMgd2hlbiBlbmNvdW50ZXJpbmcgdGhlIGNoYXJhY3RlcnMgaW4gdGhlIHNjYW5uaW5nXG4gICBpbmRpY2F0aW9uIFtzdHBdLlxuICAgSXQgYWxzbyBzdG9wcyBhdCBlbmQgb2YgZmlsZSBvciB3aGVuIHRoZSBtYXhpbXVtIG51bWJlciBvZiBjaGFyYWN0ZXJzIGhhc1xuICAgYmVlbiByZWFkLiAqKVxubGV0IHNjYW5fc3RyaW5nIHN0cCB3aWR0aCBpYiA9XG4gIGxldCByZWMgbG9vcCB3aWR0aCA9XG4gICAgaWYgd2lkdGggPSAwIHRoZW4gd2lkdGggZWxzZVxuICAgIGxldCBjID0gU2Nhbm5pbmcucGVla19jaGFyIGliIGluXG4gICAgaWYgU2Nhbm5pbmcuZW9mIGliIHRoZW4gd2lkdGggZWxzZVxuICAgICAgbWF0Y2ggc3RwIHdpdGhcbiAgICAgIHwgU29tZSBjJyB3aGVuIGMgPSBjJyAtPiBTY2FubmluZy5za2lwX2NoYXIgd2lkdGggaWJcbiAgICAgIHwgU29tZSBfIC0+IGxvb3AgKFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYylcbiAgICAgIHwgTm9uZSAtPlxuICAgICAgICBtYXRjaCBjIHdpdGhcbiAgICAgICAgfCAnICcgfCAnXFx0JyB8ICdcXG4nIHwgJ1xccicgLT4gd2lkdGhcbiAgICAgICAgfCBfIC0+IGxvb3AgKFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYykgaW5cbiAgbG9vcCB3aWR0aFxuXG5cbigqIFNjYW4gYSBjaGFyOiBwZWVrIHN0cmljdGx5IG9uZSBjaGFyYWN0ZXIgaW4gdGhlIGlucHV0LCB3aGF0c29ldmVyLiAqKVxubGV0IHNjYW5fY2hhciB3aWR0aCBpYiA9XG4gICgqIFRoZSBjYXNlIHdpZHRoID0gMCBjb3VsZCBub3QgaGFwcGVuIGhlcmUsIHNpbmNlIGl0IGlzIHRlc3RlZCBiZWZvcmVcbiAgICAgY2FsbGluZyBzY2FuX2NoYXIsIGluIHRoZSBtYWluIHNjYW5uaW5nIGZ1bmN0aW9uLlxuICAgIGlmIHdpZHRoID0gMCB0aGVuIGJhZF90b2tlbl9sZW5ndGggXCJhIGNoYXJhY3RlclwiIGVsc2UgKilcbiAgU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiAoU2Nhbm5pbmcuY2hlY2tlZF9wZWVrX2NoYXIgaWIpXG5cblxubGV0IGNoYXJfZm9yX2JhY2tzbGFzaCA9IGZ1bmN0aW9uXG4gIHwgJ24nIC0+ICdcXDAxMCdcbiAgfCAncicgLT4gJ1xcMDEzJ1xuICB8ICdiJyAtPiAnXFwwMDgnXG4gIHwgJ3QnIC0+ICdcXDAwOSdcbiAgfCBjIC0+IGNcblxuXG4oKiBUaGUgaW50ZWdlciB2YWx1ZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBmYWNpYWwgdmFsdWUgb2YgYSB2YWxpZFxuICAgZGVjaW1hbCBkaWdpdCBjaGFyYWN0ZXIuICopXG5sZXQgZGVjaW1hbF92YWx1ZV9vZl9jaGFyIGMgPSBpbnRfb2ZfY2hhciBjIC0gaW50X29mX2NoYXIgJzAnXG5cbmxldCBjaGFyX2Zvcl9kZWNpbWFsX2NvZGUgYzAgYzEgYzIgPVxuICBsZXQgYyA9XG4gICAgMTAwICogZGVjaW1hbF92YWx1ZV9vZl9jaGFyIGMwICtcbiAgICAgMTAgKiBkZWNpbWFsX3ZhbHVlX29mX2NoYXIgYzEgK1xuICAgICAgICAgIGRlY2ltYWxfdmFsdWVfb2ZfY2hhciBjMiBpblxuICBpZiBjIDwgMCB8fCBjID4gMjU1IHRoZW5cbiAgICBiYWRfaW5wdXRcbiAgICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgICAgXCJiYWQgY2hhcmFjdGVyIGRlY2ltYWwgZW5jb2RpbmcgXFxcXCVjJWMlY1wiIGMwIGMxIGMyKSBlbHNlXG4gIGNoYXJfb2ZfaW50IGNcblxuXG4oKiBUaGUgaW50ZWdlciB2YWx1ZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBmYWNpYWwgdmFsdWUgb2YgYSB2YWxpZFxuICAgaGV4YWRlY2ltYWwgZGlnaXQgY2hhcmFjdGVyLiAqKVxubGV0IGhleGFkZWNpbWFsX3ZhbHVlX29mX2NoYXIgYyA9XG4gIGxldCBkID0gaW50X29mX2NoYXIgYyBpblxuICAoKiBDb3VsZCBhbHNvIGJlOlxuICAgIGlmIGQgPD0gaW50X29mX2NoYXIgJzknIHRoZW4gZCAtIGludF9vZl9jaGFyICcwJyBlbHNlXG4gICAgaWYgZCA8PSBpbnRfb2ZfY2hhciAnRicgdGhlbiAxMCArIGQgLSBpbnRfb2ZfY2hhciAnQScgZWxzZVxuICAgIGlmIGQgPD0gaW50X29mX2NoYXIgJ2YnIHRoZW4gMTAgKyBkIC0gaW50X29mX2NoYXIgJ2EnIGVsc2UgYXNzZXJ0IGZhbHNlXG4gICopXG4gIGlmIGQgPj0gaW50X29mX2NoYXIgJ2EnIHRoZW5cbiAgICBkIC0gODcgKCogMTAgKyBpbnRfb2ZfY2hhciBjIC0gaW50X29mX2NoYXIgJ2EnICopIGVsc2VcbiAgaWYgZCA+PSBpbnRfb2ZfY2hhciAnQScgdGhlblxuICAgIGQgLSA1NSAgKCogMTAgKyBpbnRfb2ZfY2hhciBjIC0gaW50X29mX2NoYXIgJ0EnICopIGVsc2VcbiAgICBkIC0gaW50X29mX2NoYXIgJzAnXG5cblxubGV0IGNoYXJfZm9yX2hleGFkZWNpbWFsX2NvZGUgYzEgYzIgPVxuICBsZXQgYyA9XG4gICAgMTYgKiBoZXhhZGVjaW1hbF92YWx1ZV9vZl9jaGFyIGMxICtcbiAgICAgICAgIGhleGFkZWNpbWFsX3ZhbHVlX29mX2NoYXIgYzIgaW5cbiAgaWYgYyA8IDAgfHwgYyA+IDI1NSB0aGVuXG4gICAgYmFkX2lucHV0XG4gICAgICAoUHJpbnRmLnNwcmludGYgXCJiYWQgY2hhcmFjdGVyIGhleGFkZWNpbWFsIGVuY29kaW5nIFxcXFwlYyVjXCIgYzEgYzIpIGVsc2VcbiAgY2hhcl9vZl9pbnQgY1xuXG5cbigqIENhbGxlZCBpbiBwYXJ0aWN1bGFyIHdoZW4gZW5jb3VudGVyaW5nICdcXFxcJyBhcyBzdGFydGVyIG9mIGEgY2hhci5cbiAgIFN0b3BzIGJlZm9yZSB0aGUgY29ycmVzcG9uZGluZyAnXFwnJy4gKilcbmxldCBjaGVja19uZXh0X2NoYXIgbWVzc2FnZSB3aWR0aCBpYiA9XG4gIGlmIHdpZHRoID0gMCB0aGVuIGJhZF90b2tlbl9sZW5ndGggbWVzc2FnZSBlbHNlXG4gIGxldCBjID0gU2Nhbm5pbmcucGVla19jaGFyIGliIGluXG4gIGlmIFNjYW5uaW5nLmVvZiBpYiB0aGVuIGJhZF9lbmRfb2ZfaW5wdXQgbWVzc2FnZSBlbHNlXG4gIGNcblxuXG5sZXQgY2hlY2tfbmV4dF9jaGFyX2Zvcl9jaGFyID0gY2hlY2tfbmV4dF9jaGFyIFwiYSBDaGFyXCJcbmxldCBjaGVja19uZXh0X2NoYXJfZm9yX3N0cmluZyA9IGNoZWNrX25leHRfY2hhciBcImEgU3RyaW5nXCJcblxubGV0IHNjYW5fYmFja3NsYXNoX2NoYXIgd2lkdGggaWIgPVxuICBtYXRjaCBjaGVja19uZXh0X2NoYXJfZm9yX2NoYXIgd2lkdGggaWIgd2l0aFxuICB8ICdcXFxcJyB8ICdcXCcnIHwgJ1xcXCInIHwgJ24nIHwgJ3QnIHwgJ2InIHwgJ3InIGFzIGMgLT5cbiAgICBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIChjaGFyX2Zvcl9iYWNrc2xhc2ggYylcbiAgfCAnMCcgLi4gJzknIGFzIGMgLT5cbiAgICBsZXQgZ2V0X2RpZ2l0ICgpID1cbiAgICAgIGxldCBjID0gU2Nhbm5pbmcubmV4dF9jaGFyIGliIGluXG4gICAgICBtYXRjaCBjIHdpdGhcbiAgICAgIHwgJzAnIC4uICc5JyBhcyBjIC0+IGNcbiAgICAgIHwgYyAtPiBiYWRfaW5wdXRfZXNjYXBlIGMgaW5cbiAgICBsZXQgYzAgPSBjIGluXG4gICAgbGV0IGMxID0gZ2V0X2RpZ2l0ICgpIGluXG4gICAgbGV0IGMyID0gZ2V0X2RpZ2l0ICgpIGluXG4gICAgU2Nhbm5pbmcuc3RvcmVfY2hhciAod2lkdGggLSAyKSBpYiAoY2hhcl9mb3JfZGVjaW1hbF9jb2RlIGMwIGMxIGMyKVxuICB8ICd4JyAtPlxuICAgIGxldCBnZXRfZGlnaXQgKCkgPVxuICAgICAgbGV0IGMgPSBTY2FubmluZy5uZXh0X2NoYXIgaWIgaW5cbiAgICAgIG1hdGNoIGMgd2l0aFxuICAgICAgfCAnMCcgLi4gJzknIHwgJ0EnIC4uICdGJyB8ICdhJyAuLiAnZicgYXMgYyAtPiBjXG4gICAgICB8IGMgLT4gYmFkX2lucHV0X2VzY2FwZSBjIGluXG4gICAgbGV0IGMxID0gZ2V0X2RpZ2l0ICgpIGluXG4gICAgbGV0IGMyID0gZ2V0X2RpZ2l0ICgpIGluXG4gICAgU2Nhbm5pbmcuc3RvcmVfY2hhciAod2lkdGggLSAyKSBpYiAoY2hhcl9mb3JfaGV4YWRlY2ltYWxfY29kZSBjMSBjMilcbiAgfCBjIC0+XG4gICAgYmFkX2lucHV0X2VzY2FwZSBjXG5cblxuKCogU2NhbiBhIGNoYXJhY3RlciAoYW4gT0NhbWwgdG9rZW4pLiAqKVxubGV0IHNjYW5fY2FtbF9jaGFyIHdpZHRoIGliID1cblxuICBsZXQgcmVjIGZpbmRfc3RhcnQgd2lkdGggPVxuICAgIG1hdGNoIFNjYW5uaW5nLmNoZWNrZWRfcGVla19jaGFyIGliIHdpdGhcbiAgICB8ICdcXCcnIC0+IGZpbmRfY2hhciAoU2Nhbm5pbmcuaWdub3JlX2NoYXIgd2lkdGggaWIpXG4gICAgfCBjIC0+IGNoYXJhY3Rlcl9taXNtYXRjaCAnXFwnJyBjXG5cbiAgYW5kIGZpbmRfY2hhciB3aWR0aCA9XG4gICAgbWF0Y2ggY2hlY2tfbmV4dF9jaGFyX2Zvcl9jaGFyIHdpZHRoIGliIHdpdGhcbiAgICB8ICdcXFxcJyAtPlxuICAgICAgZmluZF9zdG9wIChzY2FuX2JhY2tzbGFzaF9jaGFyIChTY2FubmluZy5pZ25vcmVfY2hhciB3aWR0aCBpYikgaWIpXG4gICAgfCBjIC0+XG4gICAgICBmaW5kX3N0b3AgKFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYylcblxuICBhbmQgZmluZF9zdG9wIHdpZHRoID1cbiAgICBtYXRjaCBjaGVja19uZXh0X2NoYXJfZm9yX2NoYXIgd2lkdGggaWIgd2l0aFxuICAgIHwgJ1xcJycgLT4gU2Nhbm5pbmcuaWdub3JlX2NoYXIgd2lkdGggaWJcbiAgICB8IGMgLT4gY2hhcmFjdGVyX21pc21hdGNoICdcXCcnIGMgaW5cblxuICBmaW5kX3N0YXJ0IHdpZHRoXG5cblxuKCogU2NhbiBhIGRlbGltaXRlZCBzdHJpbmcgKGFuIE9DYW1sIHRva2VuKS4gKilcbmxldCBzY2FuX2NhbWxfc3RyaW5nIHdpZHRoIGliID1cblxuICBsZXQgcmVjIGZpbmRfc3RhcnQgd2lkdGggPVxuICAgIG1hdGNoIFNjYW5uaW5nLmNoZWNrZWRfcGVla19jaGFyIGliIHdpdGhcbiAgICB8ICdcXFwiJyAtPiBmaW5kX3N0b3AgKFNjYW5uaW5nLmlnbm9yZV9jaGFyIHdpZHRoIGliKVxuICAgIHwgYyAtPiBjaGFyYWN0ZXJfbWlzbWF0Y2ggJ1xcXCInIGNcblxuICBhbmQgZmluZF9zdG9wIHdpZHRoID1cbiAgICBtYXRjaCBjaGVja19uZXh0X2NoYXJfZm9yX3N0cmluZyB3aWR0aCBpYiB3aXRoXG4gICAgfCAnXFxcIicgLT4gU2Nhbm5pbmcuaWdub3JlX2NoYXIgd2lkdGggaWJcbiAgICB8ICdcXFxcJyAtPiBzY2FuX2JhY2tzbGFzaCAoU2Nhbm5pbmcuaWdub3JlX2NoYXIgd2lkdGggaWIpXG4gICAgfCBjIC0+IGZpbmRfc3RvcCAoU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjKVxuXG4gIGFuZCBzY2FuX2JhY2tzbGFzaCB3aWR0aCA9XG4gICAgbWF0Y2ggY2hlY2tfbmV4dF9jaGFyX2Zvcl9zdHJpbmcgd2lkdGggaWIgd2l0aFxuICAgIHwgJ1xccicgLT4gc2tpcF9uZXdsaW5lIChTY2FubmluZy5pZ25vcmVfY2hhciB3aWR0aCBpYilcbiAgICB8ICdcXG4nIC0+IHNraXBfc3BhY2VzIChTY2FubmluZy5pZ25vcmVfY2hhciB3aWR0aCBpYilcbiAgICB8IF8gLT4gZmluZF9zdG9wIChzY2FuX2JhY2tzbGFzaF9jaGFyIHdpZHRoIGliKVxuXG4gIGFuZCBza2lwX25ld2xpbmUgd2lkdGggPVxuICAgIG1hdGNoIGNoZWNrX25leHRfY2hhcl9mb3Jfc3RyaW5nIHdpZHRoIGliIHdpdGhcbiAgICB8ICdcXG4nIC0+IHNraXBfc3BhY2VzIChTY2FubmluZy5pZ25vcmVfY2hhciB3aWR0aCBpYilcbiAgICB8IF8gLT4gZmluZF9zdG9wIChTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliICdcXHInKVxuXG4gIGFuZCBza2lwX3NwYWNlcyB3aWR0aCA9XG4gICAgbWF0Y2ggY2hlY2tfbmV4dF9jaGFyX2Zvcl9zdHJpbmcgd2lkdGggaWIgd2l0aFxuICAgIHwgJyAnIC0+IHNraXBfc3BhY2VzIChTY2FubmluZy5pZ25vcmVfY2hhciB3aWR0aCBpYilcbiAgICB8IF8gLT4gZmluZF9zdG9wIHdpZHRoIGluXG5cbiAgZmluZF9zdGFydCB3aWR0aFxuXG5cbigqIFNjYW4gYSBib29sZWFuIChhbiBPQ2FtbCB0b2tlbikuICopXG5sZXQgc2Nhbl9ib29sIGliID1cbiAgbGV0IGMgPSBTY2FubmluZy5jaGVja2VkX3BlZWtfY2hhciBpYiBpblxuICBsZXQgbSA9XG4gICAgbWF0Y2ggYyB3aXRoXG4gICAgfCAndCcgLT4gNFxuICAgIHwgJ2YnIC0+IDVcbiAgICB8IGMgLT5cbiAgICAgIGJhZF9pbnB1dFxuICAgICAgICAoUHJpbnRmLnNwcmludGYgXCJ0aGUgY2hhcmFjdGVyICVDIGNhbm5vdCBzdGFydCBhIGJvb2xlYW5cIiBjKSBpblxuICBzY2FuX3N0cmluZyBOb25lIG0gaWJcblxuXG4oKiBTY2FuIGEgc3RyaW5nIGNvbnRhaW5pbmcgZWxlbWVudHMgaW4gY2hhcl9zZXQgYW5kIHRlcm1pbmF0ZWQgYnkgc2Nhbl9pbmRpY1xuICAgaWYgcHJvdmlkZWQuICopXG5sZXQgc2Nhbl9jaGFyc19pbl9jaGFyX3NldCBjaGFyX3NldCBzY2FuX2luZGljIHdpZHRoIGliID1cbiAgbGV0IHJlYyBzY2FuX2NoYXJzIGkgc3RwID1cbiAgICBsZXQgYyA9IFNjYW5uaW5nLnBlZWtfY2hhciBpYiBpblxuICAgIGlmIGkgPiAwICYmIG5vdCAoU2Nhbm5pbmcuZW9mIGliKSAmJlxuICAgICAgIGlzX2luX2NoYXJfc2V0IGNoYXJfc2V0IGMgJiZcbiAgICAgICBpbnRfb2ZfY2hhciBjIDw+IHN0cCB0aGVuXG4gICAgICBsZXQgXyA9IFNjYW5uaW5nLnN0b3JlX2NoYXIgbWF4X2ludCBpYiBjIGluXG4gICAgICBzY2FuX2NoYXJzIChpIC0gMSkgc3RwIGluXG4gIG1hdGNoIHNjYW5faW5kaWMgd2l0aFxuICB8IE5vbmUgLT4gc2Nhbl9jaGFycyB3aWR0aCAoLTEpO1xuICB8IFNvbWUgYyAtPlxuICAgIHNjYW5fY2hhcnMgd2lkdGggKGludF9vZl9jaGFyIGMpO1xuICAgIGlmIG5vdCAoU2Nhbm5pbmcuZW9mIGliKSB0aGVuXG4gICAgICBsZXQgY2kgPSBTY2FubmluZy5wZWVrX2NoYXIgaWIgaW5cbiAgICAgIGlmIGMgPSBjaVxuICAgICAgdGhlbiBTY2FubmluZy5pbnZhbGlkYXRlX2N1cnJlbnRfY2hhciBpYlxuICAgICAgZWxzZSBjaGFyYWN0ZXJfbWlzbWF0Y2ggYyBjaVxuXG5cbigqIFRoZSBnbG9iYWwgZXJyb3IgcmVwb3J0IGZ1bmN0aW9uIGZvciBbU2NhbmZdLiAqKVxubGV0IHNjYW5mX2JhZF9pbnB1dCBpYiA9IGZ1bmN0aW9uXG4gIHwgU2Nhbl9mYWlsdXJlIHMgfCBGYWlsdXJlIHMgLT5cbiAgICBsZXQgaSA9IFNjYW5uaW5nLmNoYXJfY291bnQgaWIgaW5cbiAgICBiYWRfaW5wdXQgKFByaW50Zi5zcHJpbnRmIFwic2NhbmY6IGJhZCBpbnB1dCBhdCBjaGFyIG51bWJlciAlaTogJXNcIiBpIHMpXG4gIHwgeCAtPiByYWlzZSB4XG5cblxuKCogR2V0IHRoZSBjb250ZW50IG9mIGEgY291bnRlciBmcm9tIGFuIGlucHV0IGJ1ZmZlci4gKilcbmxldCBnZXRfY291bnRlciBpYiBjb3VudGVyID1cbiAgbWF0Y2ggY291bnRlciB3aXRoXG4gIHwgTGluZV9jb3VudGVyIC0+IFNjYW5uaW5nLmxpbmVfY291bnQgaWJcbiAgfCBDaGFyX2NvdW50ZXIgLT4gU2Nhbm5pbmcuY2hhcl9jb3VudCBpYlxuICB8IFRva2VuX2NvdW50ZXIgLT4gU2Nhbm5pbmcudG9rZW5fY291bnQgaWJcblxuXG4oKiBDb21wdXRlIHRoZSB3aWR0aCBvZiBhIHBhZGRpbmcgb3B0aW9uIChzZWUgXCIlNDJ7XCIgYW5kIFwiJTEyMyhcIikuICopXG5sZXQgd2lkdGhfb2ZfcGFkX29wdCBwYWRfb3B0ID0gbWF0Y2ggcGFkX29wdCB3aXRoXG4gIHwgTm9uZSAtPiBtYXhfaW50XG4gIHwgU29tZSB3aWR0aCAtPiB3aWR0aFxuXG5cbmxldCBzdG9wcGVyX29mX2Zvcm1hdHRpbmdfbGl0IGZtdGluZyA9XG4gIGlmIGZtdGluZyA9IEVzY2FwZWRfcGVyY2VudCB0aGVuICclJywgXCJcIiBlbHNlXG4gICAgbGV0IHN0ciA9IHN0cmluZ19vZl9mb3JtYXR0aW5nX2xpdCBmbXRpbmcgaW5cbiAgICBsZXQgc3RwID0gc3RyLlsxXSBpblxuICAgIGxldCBzdWJfc3RyID0gU3RyaW5nLnN1YiBzdHIgMiAoU3RyaW5nLmxlbmd0aCBzdHIgLSAyKSBpblxuICAgIHN0cCwgc3ViX3N0clxuXG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBSZWFkZXIgbWFuYWdlbWVudCAqKVxuXG4oKiBBIGNhbGwgdG8gdGFrZV9mb3JtYXRfcmVhZGVycyBvbiBhIGZvcm1hdCBpcyBldmFsdWF0ZWQgaW50byBmdW5jdGlvbnNcbiAgIHRha2luZyByZWFkZXJzIGFzIGFyZ3VtZW50cyBhbmQgYWdncmVnYXRlIHRoZW0gaW50byBhbiBoZXRlcm9nZW5lb3VzIGxpc3QgKilcbigqIFdoZW4gYWxsIHJlYWRlcnMgYXJlIHRha2VuLCBmaW5hbGx5IHBhc3MgdGhlIGxpc3Qgb2YgdGhlIHJlYWRlcnMgdG8gdGhlXG4gICBjb250aW51YXRpb24gay4gKilcbmxldCByZWMgdGFrZV9mb3JtYXRfcmVhZGVycyA6IHR5cGUgYSBjIGQgZSBmIC5cbiAgICAoKGQsIGUpIGhldGVyX2xpc3QgLT4gZSkgLT4gKGEsIFNjYW5uaW5nLmluX2NoYW5uZWwsIGMsIGQsIGUsIGYpIGZtdCAtPlxuICAgIGQgPVxuZnVuIGsgZm10IC0+IG1hdGNoIGZtdCB3aXRoXG4gIHwgUmVhZGVyIGZtdF9yZXN0IC0+XG4gICAgZnVuIHJlYWRlciAtPlxuICAgICAgbGV0IG5ld19rIHJlYWRlcnNfcmVzdCA9IGsgKENvbnMgKHJlYWRlciwgcmVhZGVyc19yZXN0KSkgaW5cbiAgICAgIHRha2VfZm9ybWF0X3JlYWRlcnMgbmV3X2sgZm10X3Jlc3RcbiAgfCBDaGFyIHJlc3QgICAgICAgICAgICAgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuICB8IENhbWxfY2hhciByZXN0ICAgICAgICAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayByZXN0XG4gIHwgU3RyaW5nIChfLCByZXN0KSAgICAgICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIHJlc3RcbiAgfCBDYW1sX3N0cmluZyAoXywgcmVzdCkgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuICB8IEludCAoXywgXywgXywgcmVzdCkgICAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayByZXN0XG4gIHwgSW50MzIgKF8sIF8sIF8sIHJlc3QpICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIHJlc3RcbiAgfCBOYXRpdmVpbnQgKF8sIF8sIF8sIHJlc3QpICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuICB8IEludDY0IChfLCBfLCBfLCByZXN0KSAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayByZXN0XG4gIHwgRmxvYXQgKF8sIF8sIF8sIHJlc3QpICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIHJlc3RcbiAgfCBCb29sIChfLCByZXN0KSAgICAgICAgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuICB8IEFscGhhIHJlc3QgICAgICAgICAgICAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayByZXN0XG4gIHwgVGhldGEgcmVzdCAgICAgICAgICAgICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIHJlc3RcbiAgfCBGbHVzaCByZXN0ICAgICAgICAgICAgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuICB8IFN0cmluZ19saXRlcmFsIChfLCByZXN0KSAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayByZXN0XG4gIHwgQ2hhcl9saXRlcmFsIChfLCByZXN0KSAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIHJlc3RcbiAgfCBDdXN0b20gKF8sIF8sIHJlc3QpICAgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuXG4gIHwgU2Nhbl9jaGFyX3NldCAoXywgXywgcmVzdCkgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIHJlc3RcbiAgfCBTY2FuX2dldF9jb3VudGVyIChfLCByZXN0KSAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuICB8IFNjYW5fbmV4dF9jaGFyIHJlc3QgICAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayByZXN0XG5cbiAgfCBGb3JtYXR0aW5nX2xpdCAoXywgcmVzdCkgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuICB8IEZvcm1hdHRpbmdfZ2VuIChPcGVuX3RhZyAoRm9ybWF0IChmbXQsIF8pKSwgcmVzdCkgLT5cbiAgICAgIHRha2VfZm9ybWF0X3JlYWRlcnMgayAoY29uY2F0X2ZtdCBmbXQgcmVzdClcbiAgfCBGb3JtYXR0aW5nX2dlbiAoT3Blbl9ib3ggKEZvcm1hdCAoZm10LCBfKSksIHJlc3QpIC0+XG4gICAgICB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgKGNvbmNhdF9mbXQgZm10IHJlc3QpXG5cbiAgfCBGb3JtYXRfYXJnIChfLCBfLCByZXN0KSAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuICB8IEZvcm1hdF9zdWJzdCAoXywgZm10dHksIHJlc3QpICAgIC0+XG4gICAgIHRha2VfZm10dHlfZm9ybWF0X3JlYWRlcnMgayAoZXJhc2VfcmVsIChzeW1tIGZtdHR5KSkgcmVzdFxuICB8IElnbm9yZWRfcGFyYW0gKGlnbiwgcmVzdCkgICAgICAgIC0+IHRha2VfaWdub3JlZF9mb3JtYXRfcmVhZGVycyBrIGlnbiByZXN0XG5cbiAgfCBFbmRfb2ZfZm9ybWF0ICAgICAgICAgICAgICAgICAgICAtPiBrIE5pbFxuXG4oKiBUYWtlIHJlYWRlcnMgYXNzb2NpYXRlZCB0byBhbiBmbXR0eSBjb21pbmcgZnJvbSBhIEZvcm1hdF9zdWJzdCBcIiUoLi4uJSlcIi4gKilcbmFuZCB0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIDogdHlwZSB4IHkgYSBjIGQgZSBmIC5cbiAgICAoKGQsIGUpIGhldGVyX2xpc3QgLT4gZSkgLT4gKGEsIFNjYW5uaW5nLmluX2NoYW5uZWwsIGMsIGQsIHgsIHkpIGZtdHR5IC0+XG4gICAgICAoeSwgU2Nhbm5pbmcuaW5fY2hhbm5lbCwgYywgeCwgZSwgZikgZm10IC0+IGQgPVxuZnVuIGsgZm10dHkgZm10IC0+IG1hdGNoIGZtdHR5IHdpdGhcbiAgfCBSZWFkZXJfdHkgZm10X3Jlc3QgLT5cbiAgICBmdW4gcmVhZGVyIC0+XG4gICAgICBsZXQgbmV3X2sgcmVhZGVyc19yZXN0ID0gayAoQ29ucyAocmVhZGVyLCByZWFkZXJzX3Jlc3QpKSBpblxuICAgICAgdGFrZV9mbXR0eV9mb3JtYXRfcmVhZGVycyBuZXdfayBmbXRfcmVzdCBmbXRcbiAgfCBJZ25vcmVkX3JlYWRlcl90eSBmbXRfcmVzdCAtPlxuICAgIGZ1biByZWFkZXIgLT5cbiAgICAgIGxldCBuZXdfayByZWFkZXJzX3Jlc3QgPSBrIChDb25zIChyZWFkZXIsIHJlYWRlcnNfcmVzdCkpIGluXG4gICAgICB0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIG5ld19rIGZtdF9yZXN0IGZtdFxuICB8IENoYXJfdHkgcmVzdCAgICAgICAgICAgICAgICAtPiB0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIGsgcmVzdCBmbXRcbiAgfCBTdHJpbmdfdHkgcmVzdCAgICAgICAgICAgICAgLT4gdGFrZV9mbXR0eV9mb3JtYXRfcmVhZGVycyBrIHJlc3QgZm10XG4gIHwgSW50X3R5IHJlc3QgICAgICAgICAgICAgICAgIC0+IHRha2VfZm10dHlfZm9ybWF0X3JlYWRlcnMgayByZXN0IGZtdFxuICB8IEludDMyX3R5IHJlc3QgICAgICAgICAgICAgICAtPiB0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIGsgcmVzdCBmbXRcbiAgfCBOYXRpdmVpbnRfdHkgcmVzdCAgICAgICAgICAgLT4gdGFrZV9mbXR0eV9mb3JtYXRfcmVhZGVycyBrIHJlc3QgZm10XG4gIHwgSW50NjRfdHkgcmVzdCAgICAgICAgICAgICAgIC0+IHRha2VfZm10dHlfZm9ybWF0X3JlYWRlcnMgayByZXN0IGZtdFxuICB8IEZsb2F0X3R5IHJlc3QgICAgICAgICAgICAgICAtPiB0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIGsgcmVzdCBmbXRcbiAgfCBCb29sX3R5IHJlc3QgICAgICAgICAgICAgICAgLT4gdGFrZV9mbXR0eV9mb3JtYXRfcmVhZGVycyBrIHJlc3QgZm10XG4gIHwgQWxwaGFfdHkgcmVzdCAgICAgICAgICAgICAgIC0+IHRha2VfZm10dHlfZm9ybWF0X3JlYWRlcnMgayByZXN0IGZtdFxuICB8IFRoZXRhX3R5IHJlc3QgICAgICAgICAgICAgICAtPiB0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIGsgcmVzdCBmbXRcbiAgfCBBbnlfdHkgcmVzdCAgICAgICAgICAgICAgICAgLT4gdGFrZV9mbXR0eV9mb3JtYXRfcmVhZGVycyBrIHJlc3QgZm10XG4gIHwgRm9ybWF0X2FyZ190eSAoXywgcmVzdCkgICAgIC0+IHRha2VfZm10dHlfZm9ybWF0X3JlYWRlcnMgayByZXN0IGZtdFxuICB8IEVuZF9vZl9mbXR0eSAgICAgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgZm10XG4gIHwgRm9ybWF0X3N1YnN0X3R5ICh0eTEsIHR5MiwgcmVzdCkgLT5cbiAgICBsZXQgdHkgPSB0cmFucyAoc3ltbSB0eTEpIHR5MiBpblxuICAgIHRha2VfZm10dHlfZm9ybWF0X3JlYWRlcnMgayAoY29uY2F0X2ZtdHR5IHR5IHJlc3QpIGZtdFxuXG4oKiBUYWtlIHJlYWRlcnMgYXNzb2NpYXRlZCB0byBhbiBpZ25vcmVkIHBhcmFtZXRlci4gKilcbmFuZCB0YWtlX2lnbm9yZWRfZm9ybWF0X3JlYWRlcnMgOiB0eXBlIHggeSBhIGMgZCBlIGYgLlxuICAgICgoZCwgZSkgaGV0ZXJfbGlzdCAtPiBlKSAtPiAoYSwgU2Nhbm5pbmcuaW5fY2hhbm5lbCwgYywgZCwgeCwgeSkgaWdub3JlZCAtPlxuICAgICAgKHksIFNjYW5uaW5nLmluX2NoYW5uZWwsIGMsIHgsIGUsIGYpIGZtdCAtPiBkID1cbmZ1biBrIGlnbiBmbXQgLT4gbWF0Y2ggaWduIHdpdGhcbiAgfCBJZ25vcmVkX3JlYWRlciAtPlxuICAgIGZ1biByZWFkZXIgLT5cbiAgICAgIGxldCBuZXdfayByZWFkZXJzX3Jlc3QgPSBrIChDb25zIChyZWFkZXIsIHJlYWRlcnNfcmVzdCkpIGluXG4gICAgICB0YWtlX2Zvcm1hdF9yZWFkZXJzIG5ld19rIGZtdFxuICB8IElnbm9yZWRfY2hhciAgICAgICAgICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIGZtdFxuICB8IElnbm9yZWRfY2FtbF9jaGFyICAgICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIGZtdFxuICB8IElnbm9yZWRfc3RyaW5nIF8gICAgICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIGZtdFxuICB8IElnbm9yZWRfY2FtbF9zdHJpbmcgXyAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIGZtdFxuICB8IElnbm9yZWRfaW50IChfLCBfKSAgICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIGZtdFxuICB8IElnbm9yZWRfaW50MzIgKF8sIF8pICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIGZtdFxuICB8IElnbm9yZWRfbmF0aXZlaW50IChfLCBfKSAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIGZtdFxuICB8IElnbm9yZWRfaW50NjQgKF8sIF8pICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIGZtdFxuICB8IElnbm9yZWRfZmxvYXQgKF8sIF8pICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIGZtdFxuICB8IElnbm9yZWRfYm9vbCBfICAgICAgICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIGZtdFxuICB8IElnbm9yZWRfZm9ybWF0X2FyZyBfICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIGZtdFxuICB8IElnbm9yZWRfZm9ybWF0X3N1YnN0IChfLCBmbXR0eSkgLT4gdGFrZV9mbXR0eV9mb3JtYXRfcmVhZGVycyBrIGZtdHR5IGZtdFxuICB8IElnbm9yZWRfc2Nhbl9jaGFyX3NldCBfICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIGZtdFxuICB8IElnbm9yZWRfc2Nhbl9nZXRfY291bnRlciBfICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIGZtdFxuICB8IElnbm9yZWRfc2Nhbl9uZXh0X2NoYXIgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIGZtdFxuXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBHZW5lcmljIHNjYW5uaW5nICopXG5cbigqIE1ha2UgYSBnZW5lcmljIHNjYW5uaW5nIGZ1bmN0aW9uLiAqKVxuKCogU2NhbiBhIHN0cmVhbSBhY2NvcmRpbmcgdG8gYSBmb3JtYXQgYW5kIHJlYWRlcnMgb2J0YWluZWQgYnlcbiAgIHRha2VfZm9ybWF0X3JlYWRlcnMsIGFuZCBhZ2dyZWdhdGUgc2Nhbm5lZCB2YWx1ZXMgaW50byBhblxuICAgaGV0ZXJvZ2VuZW91cyBsaXN0LiAqKVxuKCogUmV0dXJuIHRoZSBoZXRlcm9nZW5lb3VzIGxpc3Qgb2Ygc2Nhbm5lZCB2YWx1ZXMuICopXG5sZXQgcmVjIG1ha2Vfc2NhbmYgOiB0eXBlIGEgYyBkIGUgZi5cbiAgICBTY2FubmluZy5pbl9jaGFubmVsIC0+IChhLCBTY2FubmluZy5pbl9jaGFubmVsLCBjLCBkLCBlLCBmKSBmbXQgLT5cbiAgICAgIChkLCBlKSBoZXRlcl9saXN0IC0+IChhLCBmKSBoZXRlcl9saXN0ID1cbmZ1biBpYiBmbXQgcmVhZGVycyAtPiBtYXRjaCBmbXQgd2l0aFxuICB8IENoYXIgcmVzdCAtPlxuICAgIGxldCBfID0gc2Nhbl9jaGFyIDAgaWIgaW5cbiAgICBsZXQgYyA9IHRva2VuX2NoYXIgaWIgaW5cbiAgICBDb25zIChjLCBtYWtlX3NjYW5mIGliIHJlc3QgcmVhZGVycylcbiAgfCBDYW1sX2NoYXIgcmVzdCAtPlxuICAgIGxldCBfID0gc2Nhbl9jYW1sX2NoYXIgMCBpYiBpblxuICAgIGxldCBjID0gdG9rZW5fY2hhciBpYiBpblxuICAgIENvbnMgKGMsIG1ha2Vfc2NhbmYgaWIgcmVzdCByZWFkZXJzKVxuXG4gIHwgU3RyaW5nIChwYWQsIEZvcm1hdHRpbmdfbGl0IChmbXRpbmdfbGl0LCByZXN0KSkgLT5cbiAgICBsZXQgc3RwLCBzdHIgPSBzdG9wcGVyX29mX2Zvcm1hdHRpbmdfbGl0IGZtdGluZ19saXQgaW5cbiAgICBsZXQgc2NhbiB3aWR0aCBfIGliID0gc2Nhbl9zdHJpbmcgKFNvbWUgc3RwKSB3aWR0aCBpYiBpblxuICAgIGxldCBzdHJfcmVzdCA9IFN0cmluZ19saXRlcmFsIChzdHIsIHJlc3QpIGluXG4gICAgcGFkX3ByZWNfc2NhbmYgaWIgc3RyX3Jlc3QgcmVhZGVycyBwYWQgTm9fcHJlY2lzaW9uIHNjYW4gdG9rZW5fc3RyaW5nXG4gIHwgU3RyaW5nIChwYWQsIEZvcm1hdHRpbmdfZ2VuIChPcGVuX3RhZyAoRm9ybWF0IChmbXQnLCBfKSksIHJlc3QpKSAtPlxuICAgIGxldCBzY2FuIHdpZHRoIF8gaWIgPSBzY2FuX3N0cmluZyAoU29tZSAneycpIHdpZHRoIGliIGluXG4gICAgcGFkX3ByZWNfc2NhbmYgaWIgKGNvbmNhdF9mbXQgZm10JyByZXN0KSByZWFkZXJzIHBhZCBOb19wcmVjaXNpb24gc2NhblxuICAgICAgICAgICAgICAgICAgIHRva2VuX3N0cmluZ1xuICB8IFN0cmluZyAocGFkLCBGb3JtYXR0aW5nX2dlbiAoT3Blbl9ib3ggKEZvcm1hdCAoZm10JywgXykpLCByZXN0KSkgLT5cbiAgICBsZXQgc2NhbiB3aWR0aCBfIGliID0gc2Nhbl9zdHJpbmcgKFNvbWUgJ1snKSB3aWR0aCBpYiBpblxuICAgIHBhZF9wcmVjX3NjYW5mIGliIChjb25jYXRfZm10IGZtdCcgcmVzdCkgcmVhZGVycyBwYWQgTm9fcHJlY2lzaW9uIHNjYW5cbiAgICAgICAgICAgICAgICAgICB0b2tlbl9zdHJpbmdcbiAgfCBTdHJpbmcgKHBhZCwgcmVzdCkgLT5cbiAgICBsZXQgc2NhbiB3aWR0aCBfIGliID0gc2Nhbl9zdHJpbmcgTm9uZSB3aWR0aCBpYiBpblxuICAgIHBhZF9wcmVjX3NjYW5mIGliIHJlc3QgcmVhZGVycyBwYWQgTm9fcHJlY2lzaW9uIHNjYW4gdG9rZW5fc3RyaW5nXG5cbiAgfCBDYW1sX3N0cmluZyAocGFkLCByZXN0KSAtPlxuICAgIGxldCBzY2FuIHdpZHRoIF8gaWIgPSBzY2FuX2NhbWxfc3RyaW5nIHdpZHRoIGliIGluXG4gICAgcGFkX3ByZWNfc2NhbmYgaWIgcmVzdCByZWFkZXJzIHBhZCBOb19wcmVjaXNpb24gc2NhbiB0b2tlbl9zdHJpbmdcbiAgfCBJbnQgKGljb252LCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgbGV0IGMgPSBpbnRlZ2VyX2NvbnZlcnNpb25fb2ZfY2hhciAoY2hhcl9vZl9pY29udiBpY29udikgaW5cbiAgICBsZXQgc2NhbiB3aWR0aCBfIGliID0gc2Nhbl9pbnRfY29udmVyc2lvbiBjIHdpZHRoIGliIGluXG4gICAgcGFkX3ByZWNfc2NhbmYgaWIgcmVzdCByZWFkZXJzIHBhZCBwcmVjIHNjYW4gKHRva2VuX2ludCBjKVxuICB8IEludDMyIChpY29udiwgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIGxldCBjID0gaW50ZWdlcl9jb252ZXJzaW9uX29mX2NoYXIgKGNoYXJfb2ZfaWNvbnYgaWNvbnYpIGluXG4gICAgbGV0IHNjYW4gd2lkdGggXyBpYiA9IHNjYW5faW50X2NvbnZlcnNpb24gYyB3aWR0aCBpYiBpblxuICAgIHBhZF9wcmVjX3NjYW5mIGliIHJlc3QgcmVhZGVycyBwYWQgcHJlYyBzY2FuICh0b2tlbl9pbnQzMiBjKVxuICB8IE5hdGl2ZWludCAoaWNvbnYsIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICBsZXQgYyA9IGludGVnZXJfY29udmVyc2lvbl9vZl9jaGFyIChjaGFyX29mX2ljb252IGljb252KSBpblxuICAgIGxldCBzY2FuIHdpZHRoIF8gaWIgPSBzY2FuX2ludF9jb252ZXJzaW9uIGMgd2lkdGggaWIgaW5cbiAgICBwYWRfcHJlY19zY2FuZiBpYiByZXN0IHJlYWRlcnMgcGFkIHByZWMgc2NhbiAodG9rZW5fbmF0aXZlaW50IGMpXG4gIHwgSW50NjQgKGljb252LCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgbGV0IGMgPSBpbnRlZ2VyX2NvbnZlcnNpb25fb2ZfY2hhciAoY2hhcl9vZl9pY29udiBpY29udikgaW5cbiAgICBsZXQgc2NhbiB3aWR0aCBfIGliID0gc2Nhbl9pbnRfY29udmVyc2lvbiBjIHdpZHRoIGliIGluXG4gICAgcGFkX3ByZWNfc2NhbmYgaWIgcmVzdCByZWFkZXJzIHBhZCBwcmVjIHNjYW4gKHRva2VuX2ludDY0IGMpXG4gIHwgRmxvYXQgKChfLCAoRmxvYXRfRiB8IEZsb2F0X0NGKSksIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICBwYWRfcHJlY19zY2FuZiBpYiByZXN0IHJlYWRlcnMgcGFkIHByZWMgc2Nhbl9jYW1sX2Zsb2F0IHRva2VuX2Zsb2F0XG4gIHwgRmxvYXQgKChfLCAoRmxvYXRfZiB8IEZsb2F0X2UgfCBGbG9hdF9FIHwgRmxvYXRfZyB8IEZsb2F0X0cpKSxcbiAgICAgICAgICAgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIHBhZF9wcmVjX3NjYW5mIGliIHJlc3QgcmVhZGVycyBwYWQgcHJlYyBzY2FuX2Zsb2F0IHRva2VuX2Zsb2F0XG4gIHwgRmxvYXQgKChfLCAoRmxvYXRfaCB8IEZsb2F0X0gpKSwgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIHBhZF9wcmVjX3NjYW5mIGliIHJlc3QgcmVhZGVycyBwYWQgcHJlYyBzY2FuX2hleF9mbG9hdCB0b2tlbl9mbG9hdFxuICB8IEJvb2wgKHBhZCwgcmVzdCkgLT5cbiAgICBsZXQgc2NhbiBfIF8gaWIgPSBzY2FuX2Jvb2wgaWIgaW5cbiAgICBwYWRfcHJlY19zY2FuZiBpYiByZXN0IHJlYWRlcnMgcGFkIE5vX3ByZWNpc2lvbiBzY2FuIHRva2VuX2Jvb2xcbiAgfCBBbHBoYSBfIC0+XG4gICAgaW52YWxpZF9hcmcgXCJzY2FuZjogYmFkIGNvbnZlcnNpb24gXFxcIiVhXFxcIlwiXG4gIHwgVGhldGEgXyAtPlxuICAgIGludmFsaWRfYXJnIFwic2NhbmY6IGJhZCBjb252ZXJzaW9uIFxcXCIldFxcXCJcIlxuICB8IEN1c3RvbSBfIC0+XG4gICAgaW52YWxpZF9hcmcgXCJzY2FuZjogYmFkIGNvbnZlcnNpb24gXFxcIiU/XFxcIiAoY3VzdG9tIGNvbnZlcnRlcilcIlxuICB8IFJlYWRlciBmbXRfcmVzdCAtPlxuICAgIGJlZ2luIG1hdGNoIHJlYWRlcnMgd2l0aFxuICAgIHwgQ29ucyAocmVhZGVyLCByZWFkZXJzX3Jlc3QpIC0+XG4gICAgICAgIGxldCB4ID0gcmVhZGVyIGliIGluXG4gICAgICAgIENvbnMgKHgsIG1ha2Vfc2NhbmYgaWIgZm10X3Jlc3QgcmVhZGVyc19yZXN0KVxuICAgIHwgTmlsIC0+XG4gICAgICAgIGludmFsaWRfYXJnIFwic2NhbmY6IG1pc3NpbmcgcmVhZGVyXCJcbiAgICBlbmRcbiAgfCBGbHVzaCByZXN0IC0+XG4gICAgaWYgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gbWFrZV9zY2FuZiBpYiByZXN0IHJlYWRlcnNcbiAgICBlbHNlIGJhZF9pbnB1dCBcImVuZCBvZiBpbnB1dCBub3QgZm91bmRcIlxuXG4gIHwgU3RyaW5nX2xpdGVyYWwgKHN0ciwgcmVzdCkgLT5cbiAgICBTdHJpbmcuaXRlciAoY2hlY2tfY2hhciBpYikgc3RyO1xuICAgIG1ha2Vfc2NhbmYgaWIgcmVzdCByZWFkZXJzXG4gIHwgQ2hhcl9saXRlcmFsIChjaHIsIHJlc3QpIC0+XG4gICAgY2hlY2tfY2hhciBpYiBjaHI7XG4gICAgbWFrZV9zY2FuZiBpYiByZXN0IHJlYWRlcnNcblxuICB8IEZvcm1hdF9hcmcgKHBhZF9vcHQsIGZtdHR5LCByZXN0KSAtPlxuICAgIGxldCBfID0gc2Nhbl9jYW1sX3N0cmluZyAod2lkdGhfb2ZfcGFkX29wdCBwYWRfb3B0KSBpYiBpblxuICAgIGxldCBzID0gdG9rZW5fc3RyaW5nIGliIGluXG4gICAgbGV0IGZtdCA9XG4gICAgICB0cnkgZm9ybWF0X29mX3N0cmluZ19mbXR0eSBzIGZtdHR5XG4gICAgICB3aXRoIEZhaWx1cmUgbXNnIC0+IGJhZF9pbnB1dCBtc2dcbiAgICBpblxuICAgIENvbnMgKGZtdCwgbWFrZV9zY2FuZiBpYiByZXN0IHJlYWRlcnMpXG4gIHwgRm9ybWF0X3N1YnN0IChwYWRfb3B0LCBmbXR0eSwgcmVzdCkgLT5cbiAgICBsZXQgXyA9IHNjYW5fY2FtbF9zdHJpbmcgKHdpZHRoX29mX3BhZF9vcHQgcGFkX29wdCkgaWIgaW5cbiAgICBsZXQgcyA9IHRva2VuX3N0cmluZyBpYiBpblxuICAgIGxldCBmbXQsIGZtdCcgPVxuICAgICAgdHJ5XG4gICAgICAgIGxldCBGbXRfRUJCIGZtdCA9IGZtdF9lYmJfb2Zfc3RyaW5nIHMgaW5cbiAgICAgICAgbGV0IEZtdF9FQkIgZm10JyA9IGZtdF9lYmJfb2Zfc3RyaW5nIHMgaW5cbiAgICAgICAgKCogVE9ETzogZmluZCBhIHdheSB0byBhdm9pZCByZXBhcnNpbmcgdHdpY2UgKilcblxuICAgICAgICAoKiBUT0RPOiB0aGVzZSB0eXBlLWNoZWNrcyBiZWxvdyAqY2FuKiBmYWlsIGJlY2F1c2Ugb2YgdHlwZVxuICAgICAgICAgICBhbWJpZ3VpdHkgaW4gcHJlc2VuY2Ugb2YgaWdub3JlZC1yZWFkZXJzOiBcIiVfciVkXCIgYW5kIFwiJWQlX3JcIlxuICAgICAgICAgICBhcmUgdHlwZWQgaW4gdGhlIHNhbWUgd2F5LlxuXG4gICAgICAgICAgICMgU2NhbmYuc3NjYW5mIFwiXFxcIiVfciVkXFxcIjNcIiBcIiUoJWQlX3IlKVwiIGlnbm9yZVxuICAgICAgICAgICAgIChmdW4gZm10IG4gLT4gc3RyaW5nX29mX2Zvcm1hdCBmbXQsIG4pXG4gICAgICAgICAgIEV4Y2VwdGlvbjogQ2FtbGludGVybmFsRm9ybWF0LlR5cGVfbWlzbWF0Y2guXG5cbiAgICAgICAgICAgV2Ugc2hvdWxkIHByb3Blcmx5IGNhdGNoIHRoaXMgZXhjZXB0aW9uLlxuICAgICAgICAqKVxuICAgICAgICB0eXBlX2Zvcm1hdCBmbXQgKGVyYXNlX3JlbCBmbXR0eSksXG4gICAgICAgIHR5cGVfZm9ybWF0IGZtdCcgKGVyYXNlX3JlbCAoc3ltbSBmbXR0eSkpXG4gICAgICB3aXRoIEZhaWx1cmUgbXNnIC0+IGJhZF9pbnB1dCBtc2dcbiAgICBpblxuICAgIENvbnMgKEZvcm1hdCAoZm10LCBzKSxcbiAgICAgICAgICBtYWtlX3NjYW5mIGliIChjb25jYXRfZm10IGZtdCcgcmVzdCkgcmVhZGVycylcblxuICB8IFNjYW5fY2hhcl9zZXQgKHdpZHRoX29wdCwgY2hhcl9zZXQsIEZvcm1hdHRpbmdfbGl0IChmbXRpbmdfbGl0LCByZXN0KSkgLT5cbiAgICBsZXQgc3RwLCBzdHIgPSBzdG9wcGVyX29mX2Zvcm1hdHRpbmdfbGl0IGZtdGluZ19saXQgaW5cbiAgICBsZXQgd2lkdGggPSB3aWR0aF9vZl9wYWRfb3B0IHdpZHRoX29wdCBpblxuICAgIHNjYW5fY2hhcnNfaW5fY2hhcl9zZXQgY2hhcl9zZXQgKFNvbWUgc3RwKSB3aWR0aCBpYjtcbiAgICBsZXQgcyA9IHRva2VuX3N0cmluZyBpYiBpblxuICAgIGxldCBzdHJfcmVzdCA9IFN0cmluZ19saXRlcmFsIChzdHIsIHJlc3QpIGluXG4gICAgQ29ucyAocywgbWFrZV9zY2FuZiBpYiBzdHJfcmVzdCByZWFkZXJzKVxuICB8IFNjYW5fY2hhcl9zZXQgKHdpZHRoX29wdCwgY2hhcl9zZXQsIHJlc3QpIC0+XG4gICAgbGV0IHdpZHRoID0gd2lkdGhfb2ZfcGFkX29wdCB3aWR0aF9vcHQgaW5cbiAgICBzY2FuX2NoYXJzX2luX2NoYXJfc2V0IGNoYXJfc2V0IE5vbmUgd2lkdGggaWI7XG4gICAgbGV0IHMgPSB0b2tlbl9zdHJpbmcgaWIgaW5cbiAgICBDb25zIChzLCBtYWtlX3NjYW5mIGliIHJlc3QgcmVhZGVycylcbiAgfCBTY2FuX2dldF9jb3VudGVyIChjb3VudGVyLCByZXN0KSAtPlxuICAgIGxldCBjb3VudCA9IGdldF9jb3VudGVyIGliIGNvdW50ZXIgaW5cbiAgICBDb25zIChjb3VudCwgbWFrZV9zY2FuZiBpYiByZXN0IHJlYWRlcnMpXG4gIHwgU2Nhbl9uZXh0X2NoYXIgcmVzdCAtPlxuICAgIGxldCBjID0gU2Nhbm5pbmcuY2hlY2tlZF9wZWVrX2NoYXIgaWIgaW5cbiAgICBDb25zIChjLCBtYWtlX3NjYW5mIGliIHJlc3QgcmVhZGVycylcblxuICB8IEZvcm1hdHRpbmdfbGl0IChmb3JtYXR0aW5nX2xpdCwgcmVzdCkgLT5cbiAgICBTdHJpbmcuaXRlciAoY2hlY2tfY2hhciBpYikgKHN0cmluZ19vZl9mb3JtYXR0aW5nX2xpdCBmb3JtYXR0aW5nX2xpdCk7XG4gICAgbWFrZV9zY2FuZiBpYiByZXN0IHJlYWRlcnNcbiAgfCBGb3JtYXR0aW5nX2dlbiAoT3Blbl90YWcgKEZvcm1hdCAoZm10JywgXykpLCByZXN0KSAtPlxuICAgIGNoZWNrX2NoYXIgaWIgJ0AnOyBjaGVja19jaGFyIGliICd7JztcbiAgICBtYWtlX3NjYW5mIGliIChjb25jYXRfZm10IGZtdCcgcmVzdCkgcmVhZGVyc1xuICB8IEZvcm1hdHRpbmdfZ2VuIChPcGVuX2JveCAoRm9ybWF0IChmbXQnLCBfKSksIHJlc3QpIC0+XG4gICAgY2hlY2tfY2hhciBpYiAnQCc7IGNoZWNrX2NoYXIgaWIgJ1snO1xuICAgIG1ha2Vfc2NhbmYgaWIgKGNvbmNhdF9mbXQgZm10JyByZXN0KSByZWFkZXJzXG5cbiAgfCBJZ25vcmVkX3BhcmFtIChpZ24sIHJlc3QpIC0+XG4gICAgbGV0IFBhcmFtX2Zvcm1hdF9FQkIgZm10JyA9IHBhcmFtX2Zvcm1hdF9vZl9pZ25vcmVkX2Zvcm1hdCBpZ24gcmVzdCBpblxuICAgIGJlZ2luIG1hdGNoIG1ha2Vfc2NhbmYgaWIgZm10JyByZWFkZXJzIHdpdGhcbiAgICB8IENvbnMgKF8sIGFyZ19yZXN0KSAtPiBhcmdfcmVzdFxuICAgIHwgTmlsIC0+IGFzc2VydCBmYWxzZVxuICAgIGVuZFxuXG4gIHwgRW5kX29mX2Zvcm1hdCAtPlxuICAgIE5pbFxuXG4oKiBDYXNlIGFuYWx5c2lzIG9uIHBhZGRpbmcgYW5kIHByZWNpc2lvbi4gKilcbigqIFJlamVjdCBmb3JtYXRzIGNvbnRhaW5pbmcgXCIlKlwiIG9yIFwiJS4qXCIuICopXG4oKiBQYXNzIHBhZGRpbmcgYW5kIHByZWNpc2lvbiB0byB0aGUgZ2VuZXJpYyBzY2FubmVyIGBzY2FuJy4gKilcbmFuZCBwYWRfcHJlY19zY2FuZiA6IHR5cGUgYSBjIGQgZSBmIHggeSB6IHQgLlxuICAgIFNjYW5uaW5nLmluX2NoYW5uZWwgLT4gKGEsIFNjYW5uaW5nLmluX2NoYW5uZWwsIGMsIGQsIGUsIGYpIGZtdCAtPlxuICAgICAgKGQsIGUpIGhldGVyX2xpc3QgLT4gKHgsIHkpIHBhZGRpbmcgLT4gKHksIHogLT4gYSkgcHJlY2lzaW9uIC0+XG4gICAgICAoaW50IC0+IGludCAtPiBTY2FubmluZy5pbl9jaGFubmVsIC0+IHQpIC0+XG4gICAgICAoU2Nhbm5pbmcuaW5fY2hhbm5lbCAtPiB6KSAtPlxuICAgICAgKHgsIGYpIGhldGVyX2xpc3QgPVxuZnVuIGliIGZtdCByZWFkZXJzIHBhZCBwcmVjIHNjYW4gdG9rZW4gLT4gbWF0Y2ggcGFkLCBwcmVjIHdpdGhcbiAgfCBOb19wYWRkaW5nLCBOb19wcmVjaXNpb24gLT5cbiAgICBsZXQgXyA9IHNjYW4gbWF4X2ludCBtYXhfaW50IGliIGluXG4gICAgbGV0IHggPSB0b2tlbiBpYiBpblxuICAgIENvbnMgKHgsIG1ha2Vfc2NhbmYgaWIgZm10IHJlYWRlcnMpXG4gIHwgTm9fcGFkZGluZywgTGl0X3ByZWNpc2lvbiBwIC0+XG4gICAgbGV0IF8gPSBzY2FuIG1heF9pbnQgcCBpYiBpblxuICAgIGxldCB4ID0gdG9rZW4gaWIgaW5cbiAgICBDb25zICh4LCBtYWtlX3NjYW5mIGliIGZtdCByZWFkZXJzKVxuICB8IExpdF9wYWRkaW5nICgoUmlnaHQgfCBaZXJvcyksIHcpLCBOb19wcmVjaXNpb24gLT5cbiAgICBsZXQgXyA9IHNjYW4gdyBtYXhfaW50IGliIGluXG4gICAgbGV0IHggPSB0b2tlbiBpYiBpblxuICAgIENvbnMgKHgsIG1ha2Vfc2NhbmYgaWIgZm10IHJlYWRlcnMpXG4gIHwgTGl0X3BhZGRpbmcgKChSaWdodCB8IFplcm9zKSwgdyksIExpdF9wcmVjaXNpb24gcCAtPlxuICAgIGxldCBfID0gc2NhbiB3IHAgaWIgaW5cbiAgICBsZXQgeCA9IHRva2VuIGliIGluXG4gICAgQ29ucyAoeCwgbWFrZV9zY2FuZiBpYiBmbXQgcmVhZGVycylcbiAgfCBMaXRfcGFkZGluZyAoTGVmdCwgXyksIF8gLT5cbiAgICBpbnZhbGlkX2FyZyBcInNjYW5mOiBiYWQgY29udmVyc2lvbiBcXFwiJS1cXFwiXCJcbiAgfCBMaXRfcGFkZGluZyAoKFJpZ2h0IHwgWmVyb3MpLCBfKSwgQXJnX3ByZWNpc2lvbiAtPlxuICAgIGludmFsaWRfYXJnIFwic2NhbmY6IGJhZCBjb252ZXJzaW9uIFxcXCIlKlxcXCJcIlxuICB8IEFyZ19wYWRkaW5nIF8sIF8gLT5cbiAgICBpbnZhbGlkX2FyZyBcInNjYW5mOiBiYWQgY29udmVyc2lvbiBcXFwiJSpcXFwiXCJcbiAgfCBOb19wYWRkaW5nLCBBcmdfcHJlY2lzaW9uIC0+XG4gICAgaW52YWxpZF9hcmcgXCJzY2FuZjogYmFkIGNvbnZlcnNpb24gXFxcIiUqXFxcIlwiXG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAoKiBEZWZpbmluZyBbc2NhbmZdIGFuZCB2YXJpb3VzIGZsYXZvcnMgb2YgW3NjYW5mXSAqKVxuXG50eXBlICdhIGtzY2FuZl9yZXN1bHQgPSBBcmdzIG9mICdhIHwgRXhjIG9mIGV4blxuXG5sZXQga3NjYW5mIGliIGVmIChGb3JtYXQgKGZtdCwgc3RyKSkgPVxuICBsZXQgcmVjIGFwcGx5IDogdHlwZSBhIGIgLiBhIC0+IChhLCBiKSBoZXRlcl9saXN0IC0+IGIgPVxuICAgIGZ1biBmIGFyZ3MgLT4gbWF0Y2ggYXJncyB3aXRoXG4gICAgfCBDb25zICh4LCByKSAtPiBhcHBseSAoZiB4KSByXG4gICAgfCBOaWwgLT4gZlxuICBpblxuICBsZXQgayByZWFkZXJzIGYgPVxuICAgIFNjYW5uaW5nLnJlc2V0X3Rva2VuIGliO1xuICAgIG1hdGNoIHRyeSBBcmdzIChtYWtlX3NjYW5mIGliIGZtdCByZWFkZXJzKSB3aXRoXG4gICAgICB8IChTY2FuX2ZhaWx1cmUgXyB8IEZhaWx1cmUgXyB8IEVuZF9vZl9maWxlKSBhcyBleGMgLT4gRXhjIGV4Y1xuICAgICAgfCBJbnZhbGlkX2FyZ3VtZW50IG1zZyAtPlxuICAgICAgICBpbnZhbGlkX2FyZyAobXNnIF4gXCIgaW4gZm9ybWF0IFxcXCJcIiBeIFN0cmluZy5lc2NhcGVkIHN0ciBeIFwiXFxcIlwiKVxuICAgIHdpdGhcbiAgICAgIHwgQXJncyBhcmdzIC0+IGFwcGx5IGYgYXJnc1xuICAgICAgfCBFeGMgZXhjIC0+IGVmIGliIGV4Y1xuICBpblxuICB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgZm10XG5cbigqKiopXG5cbmxldCBrYnNjYW5mID0ga3NjYW5mXG5sZXQgYnNjYW5mIGliIGZtdCA9IGtic2NhbmYgaWIgc2NhbmZfYmFkX2lucHV0IGZtdFxuXG5sZXQga3NzY2FuZiBzIGVmIGZtdCA9IGtic2NhbmYgKFNjYW5uaW5nLmZyb21fc3RyaW5nIHMpIGVmIGZtdFxubGV0IHNzY2FuZiBzIGZtdCA9IGtic2NhbmYgKFNjYW5uaW5nLmZyb21fc3RyaW5nIHMpIHNjYW5mX2JhZF9pbnB1dCBmbXRcblxubGV0IHNjYW5mIGZtdCA9IGtzY2FuZiBTY2FubmluZy5zdGRpYiBzY2FuZl9iYWRfaW5wdXQgZm10XG5cbigqKiopXG5cbigqIFNjYW5uaW5nIGZvcm1hdCBzdHJpbmdzLiAqKVxubGV0IGJzY2FuZl9mb3JtYXQgOlxuICBTY2FubmluZy5pbl9jaGFubmVsIC0+ICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmb3JtYXQ2IC0+XG4gICgoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm9ybWF0NiAtPiAnZykgLT4gJ2cgPVxuICBmdW4gaWIgZm9ybWF0IGYgLT5cbiAgICBsZXQgXyA9IHNjYW5fY2FtbF9zdHJpbmcgbWF4X2ludCBpYiBpblxuICAgIGxldCBzdHIgPSB0b2tlbl9zdHJpbmcgaWIgaW5cbiAgICBsZXQgZm10JyA9XG4gICAgICB0cnkgZm9ybWF0X29mX3N0cmluZ19mb3JtYXQgc3RyIGZvcm1hdFxuICAgICAgd2l0aCBGYWlsdXJlIG1zZyAtPiBiYWRfaW5wdXQgbXNnIGluXG4gICAgZiBmbXQnXG5cblxubGV0IHNzY2FuZl9mb3JtYXQgOlxuICBzdHJpbmcgLT4gKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZvcm1hdDYgLT5cbiAgKCgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmb3JtYXQ2IC0+ICdnKSAtPiAnZyA9XG4gIGZ1biBzIGZvcm1hdCBmIC0+IGJzY2FuZl9mb3JtYXQgKFNjYW5uaW5nLmZyb21fc3RyaW5nIHMpIGZvcm1hdCBmXG5cblxubGV0IGZvcm1hdF9mcm9tX3N0cmluZyBzIGZtdCA9XG4gIHNzY2FuZl9mb3JtYXQgKFwiXFxcIlwiIF4gU3RyaW5nLmVzY2FwZWQgcyBeIFwiXFxcIlwiKSBmbXQgKGZ1biB4IC0+IHgpXG5cblxubGV0IHVuZXNjYXBlZCBzID1cbiAgc3NjYW5mIChcIlxcXCJcIiBeIHMgXiBcIlxcXCJcIikgXCIlUyUhXCIgKGZ1biB4IC0+IHgpXG5cblxuKCogRGVwcmVjYXRlZCAqKVxubGV0IGtmc2NhbmYgaWMgZWYgZm10ID0ga2JzY2FuZiAoU2Nhbm5pbmcubWVtb19mcm9tX2NoYW5uZWwgaWMpIGVmIGZtdFxubGV0IGZzY2FuZiBpYyBmbXQgPSBrc2NhbmYgKFNjYW5uaW5nLm1lbW9fZnJvbV9jaGFubmVsIGljKSBzY2FuZl9iYWRfaW5wdXQgZm10XG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIFJlZ2lzdGVyaW5nIE9DYW1sIHZhbHVlcyB3aXRoIHRoZSBDIHJ1bnRpbWUgZm9yIGxhdGVyIGNhbGxiYWNrcyAqKVxuXG5leHRlcm5hbCByZWdpc3Rlcl9uYW1lZF92YWx1ZSA6IHN0cmluZyAtPiBPYmoudCAtPiB1bml0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IFwiY2FtbF9yZWdpc3Rlcl9uYW1lZF92YWx1ZVwiXG5cbmxldCByZWdpc3RlciBuYW1lIHYgPVxuICByZWdpc3Rlcl9uYW1lZF92YWx1ZSBuYW1lIChPYmoucmVwciB2KVxuXG5sZXQgcmVnaXN0ZXJfZXhjZXB0aW9uIG5hbWUgKGV4biA6IGV4bikgPVxuICBsZXQgZXhuID0gT2JqLnJlcHIgZXhuIGluXG4gIGxldCBzbG90ID0gaWYgT2JqLnRhZyBleG4gPSBPYmoub2JqZWN0X3RhZyB0aGVuIGV4biBlbHNlIE9iai5maWVsZCBleG4gMCBpblxuICByZWdpc3Rlcl9uYW1lZF92YWx1ZSBuYW1lIHNsb3RcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgIEplcm9tZSBWb3VpbGxvbiwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMDIgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxub3BlbiBPYmpcblxuKCoqKiogT2JqZWN0IHJlcHJlc2VudGF0aW9uICoqKiopXG5cbmV4dGVybmFsIHNldF9pZDogJ2EgLT4gJ2EgPSBcImNhbWxfc2V0X29vX2lkXCIgW0BAbm9hbGxvY11cblxuKCoqKiogT2JqZWN0IGNvcHkgKioqKilcblxubGV0IGNvcHkgbyA9XG4gIGxldCBvID0gKE9iai5vYmogKE9iai5kdXAgKE9iai5yZXByIG8pKSkgaW5cbiAgc2V0X2lkIG9cblxuKCoqKiogQ29tcHJlc3Npb24gb3B0aW9ucyAqKioqKVxuKCogUGFyYW1ldGVycyAqKVxudHlwZSBwYXJhbXMgPSB7XG4gICAgbXV0YWJsZSBjb21wYWN0X3RhYmxlIDogYm9vbDtcbiAgICBtdXRhYmxlIGNvcHlfcGFyZW50IDogYm9vbDtcbiAgICBtdXRhYmxlIGNsZWFuX3doZW5fY29weWluZyA6IGJvb2w7XG4gICAgbXV0YWJsZSByZXRyeV9jb3VudCA6IGludDtcbiAgICBtdXRhYmxlIGJ1Y2tldF9zbWFsbF9zaXplIDogaW50XG4gIH1cblxubGV0IHBhcmFtcyA9IHtcbiAgY29tcGFjdF90YWJsZSA9IHRydWU7XG4gIGNvcHlfcGFyZW50ID0gdHJ1ZTtcbiAgY2xlYW5fd2hlbl9jb3B5aW5nID0gdHJ1ZTtcbiAgcmV0cnlfY291bnQgPSAzO1xuICBidWNrZXRfc21hbGxfc2l6ZSA9IDE2XG59XG5cbigqKioqIFBhcmFtZXRlcnMgKioqKilcblxubGV0IGluaXRpYWxfb2JqZWN0X3NpemUgPSAyXG5cbigqKioqIEl0ZW1zICoqKiopXG5cbnR5cGUgaXRlbSA9IER1bW15QSB8IER1bW15QiB8IER1bW15QyBvZiBpbnRcbmxldCBfID0gW0R1bW15QTsgRHVtbXlCOyBEdW1teUMgMF0gKCogdG8gYXZvaWQgd2FybmluZ3MgKilcblxubGV0IGR1bW15X2l0ZW0gPSAobWFnaWMgKCkgOiBpdGVtKVxuXG4oKioqKiBUeXBlcyAqKioqKVxuXG50eXBlIHRhZ1xudHlwZSBsYWJlbCA9IGludFxudHlwZSBjbG9zdXJlID0gaXRlbVxudHlwZSB0ID0gRHVtbXlBIHwgRHVtbXlCIHwgRHVtbXlDIG9mIGludFxubGV0IF8gPSBbRHVtbXlBOyBEdW1teUI7IER1bW15QyAwXSAoKiB0byBhdm9pZCB3YXJuaW5ncyAqKVxuXG50eXBlIG9iaiA9IHQgYXJyYXlcbmV4dGVybmFsIHJldCA6IChvYmogLT4gJ2EpIC0+IGNsb3N1cmUgPSBcIiVpZGVudGl0eVwiXG5cbigqKioqIExhYmVscyAqKioqKVxuXG5sZXQgcHVibGljX21ldGhvZF9sYWJlbCBzIDogdGFnID1cbiAgbGV0IGFjY3UgPSByZWYgMCBpblxuICBmb3IgaSA9IDAgdG8gU3RyaW5nLmxlbmd0aCBzIC0gMSBkb1xuICAgIGFjY3UgOj0gMjIzICogIWFjY3UgKyBDaGFyLmNvZGUgcy5baV1cbiAgZG9uZTtcbiAgKCogcmVkdWNlIHRvIDMxIGJpdHMgKilcbiAgYWNjdSA6PSAhYWNjdSBsYW5kICgxIGxzbCAzMSAtIDEpO1xuICAoKiBtYWtlIGl0IHNpZ25lZCBmb3IgNjQgYml0cyBhcmNoaXRlY3R1cmVzICopXG4gIGxldCB0YWcgPSBpZiAhYWNjdSA+IDB4M0ZGRkZGRkYgdGhlbiAhYWNjdSAtICgxIGxzbCAzMSkgZWxzZSAhYWNjdSBpblxuICAoKiBQcmludGYuZXByaW50ZiBcIiVzID0gJWRcXG5cIiBzIHRhZzsgZmx1c2ggc3RkZXJyOyAqKVxuICBtYWdpYyB0YWdcblxuKCoqKiogU3BhcnNlIGFycmF5ICoqKiopXG5cbm1vZHVsZSBWYXJzID1cbiAgTWFwLk1ha2Uoc3RydWN0IHR5cGUgdCA9IHN0cmluZyBsZXQgY29tcGFyZSAoeDp0KSB5ID0gY29tcGFyZSB4IHkgZW5kKVxudHlwZSB2YXJzID0gaW50IFZhcnMudFxuXG5tb2R1bGUgTWV0aHMgPVxuICBNYXAuTWFrZShzdHJ1Y3QgdHlwZSB0ID0gc3RyaW5nIGxldCBjb21wYXJlICh4OnQpIHkgPSBjb21wYXJlIHggeSBlbmQpXG50eXBlIG1ldGhzID0gbGFiZWwgTWV0aHMudFxubW9kdWxlIExhYnMgPVxuICBNYXAuTWFrZShzdHJ1Y3QgdHlwZSB0ID0gbGFiZWwgbGV0IGNvbXBhcmUgKHg6dCkgeSA9IGNvbXBhcmUgeCB5IGVuZClcbnR5cGUgbGFicyA9IGJvb2wgTGFicy50XG5cbigqIFRoZSBjb21waWxlciBhc3N1bWVzIHRoYXQgdGhlIGZpcnN0IGZpZWxkIG9mIHRoaXMgc3RydWN0dXJlIGlzIFtzaXplXS4gKilcbnR5cGUgdGFibGUgPVxuIHsgbXV0YWJsZSBzaXplOiBpbnQ7XG4gICBtdXRhYmxlIG1ldGhvZHM6IGNsb3N1cmUgYXJyYXk7XG4gICBtdXRhYmxlIG1ldGhvZHNfYnlfbmFtZTogbWV0aHM7XG4gICBtdXRhYmxlIG1ldGhvZHNfYnlfbGFiZWw6IGxhYnM7XG4gICBtdXRhYmxlIHByZXZpb3VzX3N0YXRlczpcbiAgICAgKG1ldGhzICogbGFicyAqIChsYWJlbCAqIGl0ZW0pIGxpc3QgKiB2YXJzICpcbiAgICAgIGxhYmVsIGxpc3QgKiBzdHJpbmcgbGlzdCkgbGlzdDtcbiAgIG11dGFibGUgaGlkZGVuX21ldGhzOiAobGFiZWwgKiBpdGVtKSBsaXN0O1xuICAgbXV0YWJsZSB2YXJzOiB2YXJzO1xuICAgbXV0YWJsZSBpbml0aWFsaXplcnM6IChvYmogLT4gdW5pdCkgbGlzdCB9XG5cbmxldCBkdW1teV90YWJsZSA9XG4gIHsgbWV0aG9kcyA9IFt8IGR1bW15X2l0ZW0gfF07XG4gICAgbWV0aG9kc19ieV9uYW1lID0gTWV0aHMuZW1wdHk7XG4gICAgbWV0aG9kc19ieV9sYWJlbCA9IExhYnMuZW1wdHk7XG4gICAgcHJldmlvdXNfc3RhdGVzID0gW107XG4gICAgaGlkZGVuX21ldGhzID0gW107XG4gICAgdmFycyA9IFZhcnMuZW1wdHk7XG4gICAgaW5pdGlhbGl6ZXJzID0gW107XG4gICAgc2l6ZSA9IDAgfVxuXG5sZXQgdGFibGVfY291bnQgPSByZWYgMFxuXG4oKiBkdW1teV9tZXQgc2hvdWxkIGJlIGEgcG9pbnRlciwgc28gdXNlIGFuIGF0b20gKilcbmxldCBkdW1teV9tZXQgOiBpdGVtID0gb2JqIChPYmoubmV3X2Jsb2NrIDAgMClcbigqIGlmIGRlYnVnZ2luZyBpcyBuZWVkZWQsIHRoaXMgY291bGQgYmUgYSBnb29kIGlkZWE6ICopXG4oKiBsZXQgZHVtbXlfbWV0ICgpID0gZmFpbHdpdGggXCJVbmRlZmluZWQgbWV0aG9kXCIgKilcblxubGV0IHJlYyBmaXRfc2l6ZSBuID1cbiAgaWYgbiA8PSAyIHRoZW4gbiBlbHNlXG4gIGZpdF9zaXplICgobisxKS8yKSAqIDJcblxubGV0IG5ld190YWJsZSBwdWJfbGFiZWxzID1cbiAgaW5jciB0YWJsZV9jb3VudDtcbiAgbGV0IGxlbiA9IEFycmF5Lmxlbmd0aCBwdWJfbGFiZWxzIGluXG4gIGxldCBtZXRob2RzID0gQXJyYXkubWFrZSAobGVuKjIrMikgZHVtbXlfbWV0IGluXG4gIG1ldGhvZHMuKDApIDwtIG1hZ2ljIGxlbjtcbiAgbWV0aG9kcy4oMSkgPC0gbWFnaWMgKGZpdF9zaXplIGxlbiAqIFN5cy53b3JkX3NpemUgLyA4IC0gMSk7XG4gIGZvciBpID0gMCB0byBsZW4gLSAxIGRvIG1ldGhvZHMuKGkqMiszKSA8LSBtYWdpYyBwdWJfbGFiZWxzLihpKSBkb25lO1xuICB7IG1ldGhvZHMgPSBtZXRob2RzO1xuICAgIG1ldGhvZHNfYnlfbmFtZSA9IE1ldGhzLmVtcHR5O1xuICAgIG1ldGhvZHNfYnlfbGFiZWwgPSBMYWJzLmVtcHR5O1xuICAgIHByZXZpb3VzX3N0YXRlcyA9IFtdO1xuICAgIGhpZGRlbl9tZXRocyA9IFtdO1xuICAgIHZhcnMgPSBWYXJzLmVtcHR5O1xuICAgIGluaXRpYWxpemVycyA9IFtdO1xuICAgIHNpemUgPSBpbml0aWFsX29iamVjdF9zaXplIH1cblxubGV0IHJlc2l6ZSBhcnJheSBuZXdfc2l6ZSA9XG4gIGxldCBvbGRfc2l6ZSA9IEFycmF5Lmxlbmd0aCBhcnJheS5tZXRob2RzIGluXG4gIGlmIG5ld19zaXplID4gb2xkX3NpemUgdGhlbiBiZWdpblxuICAgIGxldCBuZXdfYnVjayA9IEFycmF5Lm1ha2UgbmV3X3NpemUgZHVtbXlfbWV0IGluXG4gICAgQXJyYXkuYmxpdCBhcnJheS5tZXRob2RzIDAgbmV3X2J1Y2sgMCBvbGRfc2l6ZTtcbiAgICBhcnJheS5tZXRob2RzIDwtIG5ld19idWNrXG4gZW5kXG5cbmxldCBwdXQgYXJyYXkgbGFiZWwgZWxlbWVudCA9XG4gIHJlc2l6ZSBhcnJheSAobGFiZWwgKyAxKTtcbiAgYXJyYXkubWV0aG9kcy4obGFiZWwpIDwtIGVsZW1lbnRcblxuKCoqKiogQ2xhc3NlcyAqKioqKVxuXG5sZXQgbWV0aG9kX2NvdW50ID0gcmVmIDBcbmxldCBpbnN0X3Zhcl9jb3VudCA9IHJlZiAwXG5cbigqIHR5cGUgdCAqKVxudHlwZSBtZXRoID0gaXRlbVxuXG5sZXQgbmV3X21ldGhvZCB0YWJsZSA9XG4gIGxldCBpbmRleCA9IEFycmF5Lmxlbmd0aCB0YWJsZS5tZXRob2RzIGluXG4gIHJlc2l6ZSB0YWJsZSAoaW5kZXggKyAxKTtcbiAgaW5kZXhcblxubGV0IGdldF9tZXRob2RfbGFiZWwgdGFibGUgbmFtZSA9XG4gIHRyeVxuICAgIE1ldGhzLmZpbmQgbmFtZSB0YWJsZS5tZXRob2RzX2J5X25hbWVcbiAgd2l0aCBOb3RfZm91bmQgLT5cbiAgICBsZXQgbGFiZWwgPSBuZXdfbWV0aG9kIHRhYmxlIGluXG4gICAgdGFibGUubWV0aG9kc19ieV9uYW1lIDwtIE1ldGhzLmFkZCBuYW1lIGxhYmVsIHRhYmxlLm1ldGhvZHNfYnlfbmFtZTtcbiAgICB0YWJsZS5tZXRob2RzX2J5X2xhYmVsIDwtIExhYnMuYWRkIGxhYmVsIHRydWUgdGFibGUubWV0aG9kc19ieV9sYWJlbDtcbiAgICBsYWJlbFxuXG5sZXQgZ2V0X21ldGhvZF9sYWJlbHMgdGFibGUgbmFtZXMgPVxuICBBcnJheS5tYXAgKGdldF9tZXRob2RfbGFiZWwgdGFibGUpIG5hbWVzXG5cbmxldCBzZXRfbWV0aG9kIHRhYmxlIGxhYmVsIGVsZW1lbnQgPVxuICBpbmNyIG1ldGhvZF9jb3VudDtcbiAgaWYgTGFicy5maW5kIGxhYmVsIHRhYmxlLm1ldGhvZHNfYnlfbGFiZWwgdGhlblxuICAgIHB1dCB0YWJsZSBsYWJlbCBlbGVtZW50XG4gIGVsc2VcbiAgICB0YWJsZS5oaWRkZW5fbWV0aHMgPC0gKGxhYmVsLCBlbGVtZW50KSA6OiB0YWJsZS5oaWRkZW5fbWV0aHNcblxubGV0IGdldF9tZXRob2QgdGFibGUgbGFiZWwgPVxuICB0cnkgTGlzdC5hc3NvYyBsYWJlbCB0YWJsZS5oaWRkZW5fbWV0aHNcbiAgd2l0aCBOb3RfZm91bmQgLT4gdGFibGUubWV0aG9kcy4obGFiZWwpXG5cbmxldCB0b19saXN0IGFyciA9XG4gIGlmIGFyciA9PSBtYWdpYyAwIHRoZW4gW10gZWxzZSBBcnJheS50b19saXN0IGFyclxuXG5sZXQgbmFycm93IHRhYmxlIHZhcnMgdmlydF9tZXRocyBjb25jcl9tZXRocyA9XG4gIGxldCB2YXJzID0gdG9fbGlzdCB2YXJzXG4gIGFuZCB2aXJ0X21ldGhzID0gdG9fbGlzdCB2aXJ0X21ldGhzXG4gIGFuZCBjb25jcl9tZXRocyA9IHRvX2xpc3QgY29uY3JfbWV0aHMgaW5cbiAgbGV0IHZpcnRfbWV0aF9sYWJzID0gTGlzdC5tYXAgKGdldF9tZXRob2RfbGFiZWwgdGFibGUpIHZpcnRfbWV0aHMgaW5cbiAgbGV0IGNvbmNyX21ldGhfbGFicyA9IExpc3QubWFwIChnZXRfbWV0aG9kX2xhYmVsIHRhYmxlKSBjb25jcl9tZXRocyBpblxuICB0YWJsZS5wcmV2aW91c19zdGF0ZXMgPC1cbiAgICAgKHRhYmxlLm1ldGhvZHNfYnlfbmFtZSwgdGFibGUubWV0aG9kc19ieV9sYWJlbCwgdGFibGUuaGlkZGVuX21ldGhzLFxuICAgICAgdGFibGUudmFycywgdmlydF9tZXRoX2xhYnMsIHZhcnMpXG4gICAgIDo6IHRhYmxlLnByZXZpb3VzX3N0YXRlcztcbiAgdGFibGUudmFycyA8LVxuICAgIFZhcnMuZm9sZFxuICAgICAgKGZ1biBsYWIgaW5mbyB0dmFycyAtPlxuICAgICAgICBpZiBMaXN0Lm1lbSBsYWIgdmFycyB0aGVuIFZhcnMuYWRkIGxhYiBpbmZvIHR2YXJzIGVsc2UgdHZhcnMpXG4gICAgICB0YWJsZS52YXJzIFZhcnMuZW1wdHk7XG4gIGxldCBieV9uYW1lID0gcmVmIE1ldGhzLmVtcHR5IGluXG4gIGxldCBieV9sYWJlbCA9IHJlZiBMYWJzLmVtcHR5IGluXG4gIExpc3QuaXRlcjJcbiAgICAoZnVuIG1ldCBsYWJlbCAtPlxuICAgICAgIGJ5X25hbWUgOj0gTWV0aHMuYWRkIG1ldCBsYWJlbCAhYnlfbmFtZTtcbiAgICAgICBieV9sYWJlbCA6PVxuICAgICAgICAgIExhYnMuYWRkIGxhYmVsXG4gICAgICAgICAgICAodHJ5IExhYnMuZmluZCBsYWJlbCB0YWJsZS5tZXRob2RzX2J5X2xhYmVsIHdpdGggTm90X2ZvdW5kIC0+IHRydWUpXG4gICAgICAgICAgICAhYnlfbGFiZWwpXG4gICAgY29uY3JfbWV0aHMgY29uY3JfbWV0aF9sYWJzO1xuICBMaXN0Lml0ZXIyXG4gICAgKGZ1biBtZXQgbGFiZWwgLT5cbiAgICAgICBieV9uYW1lIDo9IE1ldGhzLmFkZCBtZXQgbGFiZWwgIWJ5X25hbWU7XG4gICAgICAgYnlfbGFiZWwgOj0gTGFicy5hZGQgbGFiZWwgZmFsc2UgIWJ5X2xhYmVsKVxuICAgIHZpcnRfbWV0aHMgdmlydF9tZXRoX2xhYnM7XG4gIHRhYmxlLm1ldGhvZHNfYnlfbmFtZSA8LSAhYnlfbmFtZTtcbiAgdGFibGUubWV0aG9kc19ieV9sYWJlbCA8LSAhYnlfbGFiZWw7XG4gIHRhYmxlLmhpZGRlbl9tZXRocyA8LVxuICAgICBMaXN0LmZvbGRfcmlnaHRcbiAgICAgICAoZnVuICgobGFiLCBfKSBhcyBtZXQpIGhtIC0+XG4gICAgICAgICAgaWYgTGlzdC5tZW0gbGFiIHZpcnRfbWV0aF9sYWJzIHRoZW4gaG0gZWxzZSBtZXQ6OmhtKVxuICAgICAgIHRhYmxlLmhpZGRlbl9tZXRoc1xuICAgICAgIFtdXG5cbmxldCB3aWRlbiB0YWJsZSA9XG4gIGxldCAoYnlfbmFtZSwgYnlfbGFiZWwsIHNhdmVkX2hpZGRlbl9tZXRocywgc2F2ZWRfdmFycywgdmlydF9tZXRocywgdmFycykgPVxuICAgIExpc3QuaGQgdGFibGUucHJldmlvdXNfc3RhdGVzXG4gIGluXG4gIHRhYmxlLnByZXZpb3VzX3N0YXRlcyA8LSBMaXN0LnRsIHRhYmxlLnByZXZpb3VzX3N0YXRlcztcbiAgdGFibGUudmFycyA8LVxuICAgICBMaXN0LmZvbGRfbGVmdFxuICAgICAgIChmdW4gcyB2IC0+IFZhcnMuYWRkIHYgKFZhcnMuZmluZCB2IHRhYmxlLnZhcnMpIHMpXG4gICAgICAgc2F2ZWRfdmFycyB2YXJzO1xuICB0YWJsZS5tZXRob2RzX2J5X25hbWUgPC0gYnlfbmFtZTtcbiAgdGFibGUubWV0aG9kc19ieV9sYWJlbCA8LSBieV9sYWJlbDtcbiAgdGFibGUuaGlkZGVuX21ldGhzIDwtXG4gICAgIExpc3QuZm9sZF9yaWdodFxuICAgICAgIChmdW4gKChsYWIsIF8pIGFzIG1ldCkgaG0gLT5cbiAgICAgICAgICBpZiBMaXN0Lm1lbSBsYWIgdmlydF9tZXRocyB0aGVuIGhtIGVsc2UgbWV0OjpobSlcbiAgICAgICB0YWJsZS5oaWRkZW5fbWV0aHNcbiAgICAgICBzYXZlZF9oaWRkZW5fbWV0aHNcblxubGV0IG5ld19zbG90IHRhYmxlID1cbiAgbGV0IGluZGV4ID0gdGFibGUuc2l6ZSBpblxuICB0YWJsZS5zaXplIDwtIGluZGV4ICsgMTtcbiAgaW5kZXhcblxubGV0IG5ld192YXJpYWJsZSB0YWJsZSBuYW1lID1cbiAgdHJ5IFZhcnMuZmluZCBuYW1lIHRhYmxlLnZhcnNcbiAgd2l0aCBOb3RfZm91bmQgLT5cbiAgICBsZXQgaW5kZXggPSBuZXdfc2xvdCB0YWJsZSBpblxuICAgIGlmIG5hbWUgPD4gXCJcIiB0aGVuIHRhYmxlLnZhcnMgPC0gVmFycy5hZGQgbmFtZSBpbmRleCB0YWJsZS52YXJzO1xuICAgIGluZGV4XG5cbmxldCB0b19hcnJheSBhcnIgPVxuICBpZiBhcnIgPSBPYmoubWFnaWMgMCB0aGVuIFt8fF0gZWxzZSBhcnJcblxubGV0IG5ld19tZXRob2RzX3ZhcmlhYmxlcyB0YWJsZSBtZXRocyB2YWxzID1cbiAgbGV0IG1ldGhzID0gdG9fYXJyYXkgbWV0aHMgaW5cbiAgbGV0IG5tZXRocyA9IEFycmF5Lmxlbmd0aCBtZXRocyBhbmQgbnZhbHMgPSBBcnJheS5sZW5ndGggdmFscyBpblxuICBsZXQgcmVzID0gQXJyYXkubWFrZSAobm1ldGhzICsgbnZhbHMpIDAgaW5cbiAgZm9yIGkgPSAwIHRvIG5tZXRocyAtIDEgZG9cbiAgICByZXMuKGkpIDwtIGdldF9tZXRob2RfbGFiZWwgdGFibGUgbWV0aHMuKGkpXG4gIGRvbmU7XG4gIGZvciBpID0gMCB0byBudmFscyAtIDEgZG9cbiAgICByZXMuKGkrbm1ldGhzKSA8LSBuZXdfdmFyaWFibGUgdGFibGUgdmFscy4oaSlcbiAgZG9uZTtcbiAgcmVzXG5cbmxldCBnZXRfdmFyaWFibGUgdGFibGUgbmFtZSA9XG4gIHRyeSBWYXJzLmZpbmQgbmFtZSB0YWJsZS52YXJzIHdpdGggTm90X2ZvdW5kIC0+IGFzc2VydCBmYWxzZVxuXG5sZXQgZ2V0X3ZhcmlhYmxlcyB0YWJsZSBuYW1lcyA9XG4gIEFycmF5Lm1hcCAoZ2V0X3ZhcmlhYmxlIHRhYmxlKSBuYW1lc1xuXG5sZXQgYWRkX2luaXRpYWxpemVyIHRhYmxlIGYgPVxuICB0YWJsZS5pbml0aWFsaXplcnMgPC0gZjo6dGFibGUuaW5pdGlhbGl6ZXJzXG5cbigqXG5tb2R1bGUgS2V5cyA9XG4gIE1hcC5NYWtlKHN0cnVjdCB0eXBlIHQgPSB0YWcgYXJyYXkgbGV0IGNvbXBhcmUgKHg6dCkgeSA9IGNvbXBhcmUgeCB5IGVuZClcbmxldCBrZXlfbWFwID0gcmVmIEtleXMuZW1wdHlcbmxldCBnZXRfa2V5IHRhZ3MgOiBpdGVtID1cbiAgdHJ5IG1hZ2ljIChLZXlzLmZpbmQgdGFncyAha2V5X21hcCA6IHRhZyBhcnJheSlcbiAgd2l0aCBOb3RfZm91bmQgLT5cbiAgICBrZXlfbWFwIDo9IEtleXMuYWRkIHRhZ3MgdGFncyAha2V5X21hcDtcbiAgICBtYWdpYyB0YWdzXG4qKVxuXG5sZXQgY3JlYXRlX3RhYmxlIHB1YmxpY19tZXRob2RzID1cbiAgaWYgcHVibGljX21ldGhvZHMgPT0gbWFnaWMgMCB0aGVuIG5ld190YWJsZSBbfHxdIGVsc2VcbiAgKCogW3B1YmxpY19tZXRob2RzXSBtdXN0IGJlIGluIGFzY2VuZGluZyBvcmRlciBmb3IgYnl0ZWNvZGUgKilcbiAgbGV0IHRhZ3MgPSBBcnJheS5tYXAgcHVibGljX21ldGhvZF9sYWJlbCBwdWJsaWNfbWV0aG9kcyBpblxuICBsZXQgdGFibGUgPSBuZXdfdGFibGUgdGFncyBpblxuICBBcnJheS5pdGVyaVxuICAgIChmdW4gaSBtZXQgLT5cbiAgICAgIGxldCBsYWIgPSBpKjIrMiBpblxuICAgICAgdGFibGUubWV0aG9kc19ieV9uYW1lICA8LSBNZXRocy5hZGQgbWV0IGxhYiB0YWJsZS5tZXRob2RzX2J5X25hbWU7XG4gICAgICB0YWJsZS5tZXRob2RzX2J5X2xhYmVsIDwtIExhYnMuYWRkIGxhYiB0cnVlIHRhYmxlLm1ldGhvZHNfYnlfbGFiZWwpXG4gICAgcHVibGljX21ldGhvZHM7XG4gIHRhYmxlXG5cbmxldCBpbml0X2NsYXNzIHRhYmxlID1cbiAgaW5zdF92YXJfY291bnQgOj0gIWluc3RfdmFyX2NvdW50ICsgdGFibGUuc2l6ZSAtIDE7XG4gIHRhYmxlLmluaXRpYWxpemVycyA8LSBMaXN0LnJldiB0YWJsZS5pbml0aWFsaXplcnM7XG4gIHJlc2l6ZSB0YWJsZSAoMyArIG1hZ2ljIHRhYmxlLm1ldGhvZHMuKDEpICogMTYgLyBTeXMud29yZF9zaXplKVxuXG5sZXQgaW5oZXJpdHMgY2xhIHZhbHMgdmlydF9tZXRocyBjb25jcl9tZXRocyAoXywgc3VwZXIsIF8sIGVudikgdG9wID1cbiAgbmFycm93IGNsYSB2YWxzIHZpcnRfbWV0aHMgY29uY3JfbWV0aHM7XG4gIGxldCBpbml0ID1cbiAgICBpZiB0b3AgdGhlbiBzdXBlciBjbGEgZW52IGVsc2UgT2JqLnJlcHIgKHN1cGVyIGNsYSkgaW5cbiAgd2lkZW4gY2xhO1xuICBBcnJheS5jb25jYXRcbiAgICBbW3wgcmVwciBpbml0IHxdO1xuICAgICBtYWdpYyAoQXJyYXkubWFwIChnZXRfdmFyaWFibGUgY2xhKSAodG9fYXJyYXkgdmFscykgOiBpbnQgYXJyYXkpO1xuICAgICBBcnJheS5tYXBcbiAgICAgICAoZnVuIG5tIC0+IHJlcHIgKGdldF9tZXRob2QgY2xhIChnZXRfbWV0aG9kX2xhYmVsIGNsYSBubSkgOiBjbG9zdXJlKSlcbiAgICAgICAodG9fYXJyYXkgY29uY3JfbWV0aHMpIF1cblxubGV0IG1ha2VfY2xhc3MgcHViX21ldGhzIGNsYXNzX2luaXQgPVxuICBsZXQgdGFibGUgPSBjcmVhdGVfdGFibGUgcHViX21ldGhzIGluXG4gIGxldCBlbnZfaW5pdCA9IGNsYXNzX2luaXQgdGFibGUgaW5cbiAgaW5pdF9jbGFzcyB0YWJsZTtcbiAgKGVudl9pbml0IChPYmoucmVwciAwKSwgY2xhc3NfaW5pdCwgZW52X2luaXQsIE9iai5yZXByIDApXG5cbnR5cGUgaW5pdF90YWJsZSA9IHsgbXV0YWJsZSBlbnZfaW5pdDogdDsgbXV0YWJsZSBjbGFzc19pbml0OiB0YWJsZSAtPiB0IH1cbltAQHdhcm5pbmcgXCItdW51c2VkLWZpZWxkXCJdXG5cbmxldCBtYWtlX2NsYXNzX3N0b3JlIHB1Yl9tZXRocyBjbGFzc19pbml0IGluaXRfdGFibGUgPVxuICBsZXQgdGFibGUgPSBjcmVhdGVfdGFibGUgcHViX21ldGhzIGluXG4gIGxldCBlbnZfaW5pdCA9IGNsYXNzX2luaXQgdGFibGUgaW5cbiAgaW5pdF9jbGFzcyB0YWJsZTtcbiAgaW5pdF90YWJsZS5jbGFzc19pbml0IDwtIGNsYXNzX2luaXQ7XG4gIGluaXRfdGFibGUuZW52X2luaXQgPC0gZW52X2luaXRcblxubGV0IGR1bW15X2NsYXNzIGxvYyA9XG4gIGxldCB1bmRlZiA9IGZ1biBfIC0+IHJhaXNlIChVbmRlZmluZWRfcmVjdXJzaXZlX21vZHVsZSBsb2MpIGluXG4gIChPYmoubWFnaWMgdW5kZWYsIHVuZGVmLCB1bmRlZiwgT2JqLnJlcHIgMClcblxuKCoqKiogT2JqZWN0cyAqKioqKVxuXG5sZXQgY3JlYXRlX29iamVjdCB0YWJsZSA9XG4gICgqIFhYWCBBcHBlbCBkZSBbb2JqX2Jsb2NrXSB8IENhbGwgdG8gW29ial9ibG9ja10gICopXG4gIGxldCBvYmogPSBPYmoubmV3X2Jsb2NrIE9iai5vYmplY3RfdGFnIHRhYmxlLnNpemUgaW5cbiAgKCogWFhYIEFwcGVsIGRlIFtjYW1sX21vZGlmeV0gfCBDYWxsIHRvIFtjYW1sX21vZGlmeV0gKilcbiAgT2JqLnNldF9maWVsZCBvYmogMCAoT2JqLnJlcHIgdGFibGUubWV0aG9kcyk7XG4gIE9iai5vYmogKHNldF9pZCBvYmopXG5cbmxldCBjcmVhdGVfb2JqZWN0X29wdCBvYmpfMCB0YWJsZSA9XG4gIGlmIChPYmoubWFnaWMgb2JqXzAgOiBib29sKSB0aGVuIG9ial8wIGVsc2UgYmVnaW5cbiAgICAoKiBYWFggQXBwZWwgZGUgW29ial9ibG9ja10gfCBDYWxsIHRvIFtvYmpfYmxvY2tdICAqKVxuICAgIGxldCBvYmogPSBPYmoubmV3X2Jsb2NrIE9iai5vYmplY3RfdGFnIHRhYmxlLnNpemUgaW5cbiAgICAoKiBYWFggQXBwZWwgZGUgW2NhbWxfbW9kaWZ5XSB8IENhbGwgdG8gW2NhbWxfbW9kaWZ5XSAqKVxuICAgIE9iai5zZXRfZmllbGQgb2JqIDAgKE9iai5yZXByIHRhYmxlLm1ldGhvZHMpO1xuICAgIE9iai5vYmogKHNldF9pZCBvYmopXG4gIGVuZFxuXG5sZXQgcmVjIGl0ZXJfZiBvYmogPVxuICBmdW5jdGlvblxuICAgIFtdICAgLT4gKClcbiAgfCBmOjpsIC0+IGYgb2JqOyBpdGVyX2Ygb2JqIGxcblxubGV0IHJ1bl9pbml0aWFsaXplcnMgb2JqIHRhYmxlID1cbiAgbGV0IGluaXRzID0gdGFibGUuaW5pdGlhbGl6ZXJzIGluXG4gIGlmIGluaXRzIDw+IFtdIHRoZW5cbiAgICBpdGVyX2Ygb2JqIGluaXRzXG5cbmxldCBydW5faW5pdGlhbGl6ZXJzX29wdCBvYmpfMCBvYmogdGFibGUgPVxuICBpZiAoT2JqLm1hZ2ljIG9ial8wIDogYm9vbCkgdGhlbiBvYmogZWxzZSBiZWdpblxuICAgIGxldCBpbml0cyA9IHRhYmxlLmluaXRpYWxpemVycyBpblxuICAgIGlmIGluaXRzIDw+IFtdIHRoZW4gaXRlcl9mIG9iaiBpbml0cztcbiAgICBvYmpcbiAgZW5kXG5cbmxldCBjcmVhdGVfb2JqZWN0X2FuZF9ydW5faW5pdGlhbGl6ZXJzIG9ial8wIHRhYmxlID1cbiAgaWYgKE9iai5tYWdpYyBvYmpfMCA6IGJvb2wpIHRoZW4gb2JqXzAgZWxzZSBiZWdpblxuICAgIGxldCBvYmogPSBjcmVhdGVfb2JqZWN0IHRhYmxlIGluXG4gICAgcnVuX2luaXRpYWxpemVycyBvYmogdGFibGU7XG4gICAgb2JqXG4gIGVuZFxuXG4oKiBFcXVpdmFsZW50IHByaW1pdGl2ZSBiZWxvd1xubGV0IHNlbmRzZWxmIG9iaiBsYWIgPVxuICAobWFnaWMgb2JqIDogKG9iaiAtPiB0KSBhcnJheSBhcnJheSkuKDApLihsYWIpIG9ialxuKilcbmV4dGVybmFsIHNlbmQgOiBvYmogLT4gdGFnIC0+ICdhID0gXCIlc2VuZFwiXG5leHRlcm5hbCBzZW5kY2FjaGUgOiBvYmogLT4gdGFnIC0+IHQgLT4gaW50IC0+ICdhID0gXCIlc2VuZGNhY2hlXCJcbmV4dGVybmFsIHNlbmRzZWxmIDogb2JqIC0+IGxhYmVsIC0+ICdhID0gXCIlc2VuZHNlbGZcIlxuZXh0ZXJuYWwgZ2V0X3B1YmxpY19tZXRob2QgOiBvYmogLT4gdGFnIC0+IGNsb3N1cmVcbiAgICA9IFwiY2FtbF9nZXRfcHVibGljX21ldGhvZFwiIFtAQG5vYWxsb2NdXG5cbigqKioqIHRhYmxlIGNvbGxlY3Rpb24gYWNjZXNzICoqKiopXG5cbnR5cGUgdGFibGVzID1cbiAgfCBFbXB0eVxuICB8IENvbnMgb2Yge2tleSA6IGNsb3N1cmU7IG11dGFibGUgZGF0YTogdGFibGVzOyBtdXRhYmxlIG5leHQ6IHRhYmxlc31cblxubGV0IHNldF9kYXRhIHRhYmxlcyB2ID0gbWF0Y2ggdGFibGVzIHdpdGhcbiAgfCBFbXB0eSAtPiBhc3NlcnQgZmFsc2VcbiAgfCBDb25zIHRhYmxlcyAtPiB0YWJsZXMuZGF0YSA8LSB2XG5sZXQgc2V0X25leHQgdGFibGVzIHYgPSBtYXRjaCB0YWJsZXMgd2l0aFxuICB8IEVtcHR5IC0+IGFzc2VydCBmYWxzZVxuICB8IENvbnMgdGFibGVzIC0+IHRhYmxlcy5uZXh0IDwtIHZcbmxldCBnZXRfa2V5ID0gZnVuY3Rpb25cbiAgfCBFbXB0eSAtPiBhc3NlcnQgZmFsc2VcbiAgfCBDb25zIHRhYmxlcyAtPiB0YWJsZXMua2V5XG5sZXQgZ2V0X2RhdGEgPSBmdW5jdGlvblxuICB8IEVtcHR5IC0+IGFzc2VydCBmYWxzZVxuICB8IENvbnMgdGFibGVzIC0+IHRhYmxlcy5kYXRhXG5sZXQgZ2V0X25leHQgPSBmdW5jdGlvblxuICB8IEVtcHR5IC0+IGFzc2VydCBmYWxzZVxuICB8IENvbnMgdGFibGVzIC0+IHRhYmxlcy5uZXh0XG5cbmxldCBidWlsZF9wYXRoIG4ga2V5cyB0YWJsZXMgPVxuICBsZXQgcmVzID0gQ29ucyB7a2V5ID0gT2JqLm1hZ2ljIDA7IGRhdGEgPSBFbXB0eTsgbmV4dCA9IEVtcHR5fSBpblxuICBsZXQgciA9IHJlZiByZXMgaW5cbiAgZm9yIGkgPSAwIHRvIG4gZG9cbiAgICByIDo9IENvbnMge2tleSA9IGtleXMuKGkpOyBkYXRhID0gIXI7IG5leHQgPSBFbXB0eX1cbiAgZG9uZTtcbiAgc2V0X2RhdGEgdGFibGVzICFyO1xuICByZXNcblxubGV0IHJlYyBsb29rdXBfa2V5cyBpIGtleXMgdGFibGVzID1cbiAgaWYgaSA8IDAgdGhlbiB0YWJsZXMgZWxzZVxuICBsZXQga2V5ID0ga2V5cy4oaSkgaW5cbiAgbGV0IHJlYyBsb29rdXBfa2V5ICh0YWJsZXM6dGFibGVzKSA9XG4gICAgaWYgZ2V0X2tleSB0YWJsZXMgPT0ga2V5IHRoZW5cbiAgICAgIG1hdGNoIGdldF9kYXRhIHRhYmxlcyB3aXRoXG4gICAgICB8IEVtcHR5IC0+IGFzc2VydCBmYWxzZVxuICAgICAgfCBDb25zIF8gYXMgdGFibGVzX2RhdGEgLT5cbiAgICAgICAgICBsb29rdXBfa2V5cyAoaS0xKSBrZXlzIHRhYmxlc19kYXRhXG4gICAgZWxzZVxuICAgICAgbWF0Y2ggZ2V0X25leHQgdGFibGVzIHdpdGhcbiAgICAgIHwgQ29ucyBfIGFzIG5leHQgLT4gbG9va3VwX2tleSBuZXh0XG4gICAgICB8IEVtcHR5IC0+XG4gICAgICAgICAgbGV0IG5leHQgOiB0YWJsZXMgPSBDb25zIHtrZXk7IGRhdGEgPSBFbXB0eTsgbmV4dCA9IEVtcHR5fSBpblxuICAgICAgICAgIHNldF9uZXh0IHRhYmxlcyBuZXh0O1xuICAgICAgICAgIGJ1aWxkX3BhdGggKGktMSkga2V5cyBuZXh0XG4gIGluXG4gIGxvb2t1cF9rZXkgdGFibGVzXG5cbmxldCBsb29rdXBfdGFibGVzIHJvb3Qga2V5cyA9XG4gIG1hdGNoIGdldF9kYXRhIHJvb3Qgd2l0aFxuICB8IENvbnMgXyBhcyByb290X2RhdGEgLT5cbiAgICBsb29rdXBfa2V5cyAoQXJyYXkubGVuZ3RoIGtleXMgLSAxKSBrZXlzIHJvb3RfZGF0YVxuICB8IEVtcHR5IC0+XG4gICAgYnVpbGRfcGF0aCAoQXJyYXkubGVuZ3RoIGtleXMgLSAxKSBrZXlzIHJvb3RcblxuKCoqKiogYnVpbHRpbiBtZXRob2RzICoqKiopXG5cbmxldCBnZXRfY29uc3QgeCA9IHJldCAoZnVuIF9vYmogLT4geClcbmxldCBnZXRfdmFyIG4gICA9IHJldCAoZnVuIG9iaiAtPiBBcnJheS51bnNhZmVfZ2V0IG9iaiBuKVxubGV0IGdldF9lbnYgZSBuID1cbiAgcmV0IChmdW4gb2JqIC0+XG4gICAgQXJyYXkudW5zYWZlX2dldCAoT2JqLm1hZ2ljIChBcnJheS51bnNhZmVfZ2V0IG9iaiBlKSA6IG9iaikgbilcbmxldCBnZXRfbWV0aCBuICA9IHJldCAoZnVuIG9iaiAtPiBzZW5kc2VsZiBvYmogbilcbmxldCBzZXRfdmFyIG4gICA9IHJldCAoZnVuIG9iaiB4IC0+IEFycmF5LnVuc2FmZV9zZXQgb2JqIG4geClcbmxldCBhcHBfY29uc3QgZiB4ID0gcmV0IChmdW4gX29iaiAtPiBmIHgpXG5sZXQgYXBwX3ZhciBmIG4gICA9IHJldCAoZnVuIG9iaiAtPiBmIChBcnJheS51bnNhZmVfZ2V0IG9iaiBuKSlcbmxldCBhcHBfZW52IGYgZSBuID1cbiAgcmV0IChmdW4gb2JqIC0+XG4gICAgZiAoQXJyYXkudW5zYWZlX2dldCAoT2JqLm1hZ2ljIChBcnJheS51bnNhZmVfZ2V0IG9iaiBlKSA6IG9iaikgbikpXG5sZXQgYXBwX21ldGggZiBuICA9IHJldCAoZnVuIG9iaiAtPiBmIChzZW5kc2VsZiBvYmogbikpXG5sZXQgYXBwX2NvbnN0X2NvbnN0IGYgeCB5ID0gcmV0IChmdW4gX29iaiAtPiBmIHggeSlcbmxldCBhcHBfY29uc3RfdmFyIGYgeCBuICAgPSByZXQgKGZ1biBvYmogLT4gZiB4IChBcnJheS51bnNhZmVfZ2V0IG9iaiBuKSlcbmxldCBhcHBfY29uc3RfbWV0aCBmIHggbiA9IHJldCAoZnVuIG9iaiAtPiBmIHggKHNlbmRzZWxmIG9iaiBuKSlcbmxldCBhcHBfdmFyX2NvbnN0IGYgbiB4ID0gcmV0IChmdW4gb2JqIC0+IGYgKEFycmF5LnVuc2FmZV9nZXQgb2JqIG4pIHgpXG5sZXQgYXBwX21ldGhfY29uc3QgZiBuIHggPSByZXQgKGZ1biBvYmogLT4gZiAoc2VuZHNlbGYgb2JqIG4pIHgpXG5sZXQgYXBwX2NvbnN0X2VudiBmIHggZSBuID1cbiAgcmV0IChmdW4gb2JqIC0+XG4gICAgZiB4IChBcnJheS51bnNhZmVfZ2V0IChPYmoubWFnaWMgKEFycmF5LnVuc2FmZV9nZXQgb2JqIGUpIDogb2JqKSBuKSlcbmxldCBhcHBfZW52X2NvbnN0IGYgZSBuIHggPVxuICByZXQgKGZ1biBvYmogLT5cbiAgICBmIChBcnJheS51bnNhZmVfZ2V0IChPYmoubWFnaWMgKEFycmF5LnVuc2FmZV9nZXQgb2JqIGUpIDogb2JqKSBuKSB4KVxubGV0IG1ldGhfYXBwX2NvbnN0IG4geCA9IHJldCAoZnVuIG9iaiAtPiAoc2VuZHNlbGYgb2JqIG4gOiBfIC0+IF8pIHgpXG5sZXQgbWV0aF9hcHBfdmFyIG4gbSA9XG4gIHJldCAoZnVuIG9iaiAtPiAoc2VuZHNlbGYgb2JqIG4gOiBfIC0+IF8pIChBcnJheS51bnNhZmVfZ2V0IG9iaiBtKSlcbmxldCBtZXRoX2FwcF9lbnYgbiBlIG0gPVxuICByZXQgKGZ1biBvYmogLT4gKHNlbmRzZWxmIG9iaiBuIDogXyAtPiBfKVxuICAgICAgKEFycmF5LnVuc2FmZV9nZXQgKE9iai5tYWdpYyAoQXJyYXkudW5zYWZlX2dldCBvYmogZSkgOiBvYmopIG0pKVxubGV0IG1ldGhfYXBwX21ldGggbiBtID1cbiAgcmV0IChmdW4gb2JqIC0+IChzZW5kc2VsZiBvYmogbiA6IF8gLT4gXykgKHNlbmRzZWxmIG9iaiBtKSlcbmxldCBzZW5kX2NvbnN0IG0geCBjID1cbiAgcmV0IChmdW4gb2JqIC0+IHNlbmRjYWNoZSB4IG0gKEFycmF5LnVuc2FmZV9nZXQgb2JqIDApIGMpXG5sZXQgc2VuZF92YXIgbSBuIGMgPVxuICByZXQgKGZ1biBvYmogLT5cbiAgICBzZW5kY2FjaGUgKE9iai5tYWdpYyAoQXJyYXkudW5zYWZlX2dldCBvYmogbikgOiBvYmopIG1cbiAgICAgIChBcnJheS51bnNhZmVfZ2V0IG9iaiAwKSBjKVxubGV0IHNlbmRfZW52IG0gZSBuIGMgPVxuICByZXQgKGZ1biBvYmogLT5cbiAgICBzZW5kY2FjaGVcbiAgICAgIChPYmoubWFnaWMgKEFycmF5LnVuc2FmZV9nZXRcbiAgICAgICAgICAgICAgICAgICAgKE9iai5tYWdpYyAoQXJyYXkudW5zYWZlX2dldCBvYmogZSkgOiBvYmopIG4pIDogb2JqKVxuICAgICAgbSAoQXJyYXkudW5zYWZlX2dldCBvYmogMCkgYylcbmxldCBzZW5kX21ldGggbSBuIGMgPVxuICByZXQgKGZ1biBvYmogLT5cbiAgICBzZW5kY2FjaGUgKHNlbmRzZWxmIG9iaiBuKSBtIChBcnJheS51bnNhZmVfZ2V0IG9iaiAwKSBjKVxubGV0IG5ld19jYWNoZSB0YWJsZSA9XG4gIGxldCBuID0gbmV3X21ldGhvZCB0YWJsZSBpblxuICBsZXQgbiA9XG4gICAgaWYgbiBtb2QgMiA9IDAgfHwgbiA+IDIgKyBtYWdpYyB0YWJsZS5tZXRob2RzLigxKSAqIDE2IC8gU3lzLndvcmRfc2l6ZVxuICAgIHRoZW4gbiBlbHNlIG5ld19tZXRob2QgdGFibGVcbiAgaW5cbiAgdGFibGUubWV0aG9kcy4obikgPC0gT2JqLm1hZ2ljIDA7XG4gIG5cblxudHlwZSBpbXBsID1cbiAgICBHZXRDb25zdFxuICB8IEdldFZhclxuICB8IEdldEVudlxuICB8IEdldE1ldGhcbiAgfCBTZXRWYXJcbiAgfCBBcHBDb25zdFxuICB8IEFwcFZhclxuICB8IEFwcEVudlxuICB8IEFwcE1ldGhcbiAgfCBBcHBDb25zdENvbnN0XG4gIHwgQXBwQ29uc3RWYXJcbiAgfCBBcHBDb25zdEVudlxuICB8IEFwcENvbnN0TWV0aFxuICB8IEFwcFZhckNvbnN0XG4gIHwgQXBwRW52Q29uc3RcbiAgfCBBcHBNZXRoQ29uc3RcbiAgfCBNZXRoQXBwQ29uc3RcbiAgfCBNZXRoQXBwVmFyXG4gIHwgTWV0aEFwcEVudlxuICB8IE1ldGhBcHBNZXRoXG4gIHwgU2VuZENvbnN0XG4gIHwgU2VuZFZhclxuICB8IFNlbmRFbnZcbiAgfCBTZW5kTWV0aFxuICB8IENsb3N1cmUgb2YgY2xvc3VyZVxuXG5sZXQgbWV0aG9kX2ltcGwgdGFibGUgaSBhcnIgPVxuICBsZXQgbmV4dCAoKSA9IGluY3IgaTsgbWFnaWMgYXJyLighaSkgaW5cbiAgbWF0Y2ggbmV4dCgpIHdpdGhcbiAgICBHZXRDb25zdCAtPiBsZXQgeCA6IHQgPSBuZXh0KCkgaW4gZ2V0X2NvbnN0IHhcbiAgfCBHZXRWYXIgICAtPiBsZXQgbiA9IG5leHQoKSBpbiBnZXRfdmFyIG5cbiAgfCBHZXRFbnYgICAtPiBsZXQgZSA9IG5leHQoKSBpbiBsZXQgbiA9IG5leHQoKSBpbiBnZXRfZW52IGUgblxuICB8IEdldE1ldGggIC0+IGxldCBuID0gbmV4dCgpIGluIGdldF9tZXRoIG5cbiAgfCBTZXRWYXIgICAtPiBsZXQgbiA9IG5leHQoKSBpbiBzZXRfdmFyIG5cbiAgfCBBcHBDb25zdCAtPiBsZXQgZiA9IG5leHQoKSBpbiBsZXQgeCA9IG5leHQoKSBpbiBhcHBfY29uc3QgZiB4XG4gIHwgQXBwVmFyICAgLT4gbGV0IGYgPSBuZXh0KCkgaW4gbGV0IG4gPSBuZXh0ICgpIGluIGFwcF92YXIgZiBuXG4gIHwgQXBwRW52ICAgLT5cbiAgICAgIGxldCBmID0gbmV4dCgpIGluICBsZXQgZSA9IG5leHQoKSBpbiBsZXQgbiA9IG5leHQoKSBpblxuICAgICAgYXBwX2VudiBmIGUgblxuICB8IEFwcE1ldGggIC0+IGxldCBmID0gbmV4dCgpIGluIGxldCBuID0gbmV4dCAoKSBpbiBhcHBfbWV0aCBmIG5cbiAgfCBBcHBDb25zdENvbnN0IC0+XG4gICAgICBsZXQgZiA9IG5leHQoKSBpbiBsZXQgeCA9IG5leHQoKSBpbiBsZXQgeSA9IG5leHQoKSBpblxuICAgICAgYXBwX2NvbnN0X2NvbnN0IGYgeCB5XG4gIHwgQXBwQ29uc3RWYXIgLT5cbiAgICAgIGxldCBmID0gbmV4dCgpIGluIGxldCB4ID0gbmV4dCgpIGluIGxldCBuID0gbmV4dCgpIGluXG4gICAgICBhcHBfY29uc3RfdmFyIGYgeCBuXG4gIHwgQXBwQ29uc3RFbnYgLT5cbiAgICAgIGxldCBmID0gbmV4dCgpIGluIGxldCB4ID0gbmV4dCgpIGluIGxldCBlID0gbmV4dCAoKSBpbiBsZXQgbiA9IG5leHQoKSBpblxuICAgICAgYXBwX2NvbnN0X2VudiBmIHggZSBuXG4gIHwgQXBwQ29uc3RNZXRoIC0+XG4gICAgICBsZXQgZiA9IG5leHQoKSBpbiBsZXQgeCA9IG5leHQoKSBpbiBsZXQgbiA9IG5leHQoKSBpblxuICAgICAgYXBwX2NvbnN0X21ldGggZiB4IG5cbiAgfCBBcHBWYXJDb25zdCAtPlxuICAgICAgbGV0IGYgPSBuZXh0KCkgaW4gbGV0IG4gPSBuZXh0KCkgaW4gbGV0IHggPSBuZXh0KCkgaW5cbiAgICAgIGFwcF92YXJfY29uc3QgZiBuIHhcbiAgfCBBcHBFbnZDb25zdCAtPlxuICAgICAgbGV0IGYgPSBuZXh0KCkgaW4gbGV0IGUgPSBuZXh0ICgpIGluIGxldCBuID0gbmV4dCgpIGluIGxldCB4ID0gbmV4dCgpIGluXG4gICAgICBhcHBfZW52X2NvbnN0IGYgZSBuIHhcbiAgfCBBcHBNZXRoQ29uc3QgLT5cbiAgICAgIGxldCBmID0gbmV4dCgpIGluIGxldCBuID0gbmV4dCgpIGluIGxldCB4ID0gbmV4dCgpIGluXG4gICAgICBhcHBfbWV0aF9jb25zdCBmIG4geFxuICB8IE1ldGhBcHBDb25zdCAtPlxuICAgICAgbGV0IG4gPSBuZXh0KCkgaW4gbGV0IHggPSBuZXh0KCkgaW4gbWV0aF9hcHBfY29uc3QgbiB4XG4gIHwgTWV0aEFwcFZhciAtPlxuICAgICAgbGV0IG4gPSBuZXh0KCkgaW4gbGV0IG0gPSBuZXh0KCkgaW4gbWV0aF9hcHBfdmFyIG4gbVxuICB8IE1ldGhBcHBFbnYgLT5cbiAgICAgIGxldCBuID0gbmV4dCgpIGluIGxldCBlID0gbmV4dCgpIGluIGxldCBtID0gbmV4dCgpIGluXG4gICAgICBtZXRoX2FwcF9lbnYgbiBlIG1cbiAgfCBNZXRoQXBwTWV0aCAtPlxuICAgICAgbGV0IG4gPSBuZXh0KCkgaW4gbGV0IG0gPSBuZXh0KCkgaW4gbWV0aF9hcHBfbWV0aCBuIG1cbiAgfCBTZW5kQ29uc3QgLT5cbiAgICAgIGxldCBtID0gbmV4dCgpIGluIGxldCB4ID0gbmV4dCgpIGluIHNlbmRfY29uc3QgbSB4IChuZXdfY2FjaGUgdGFibGUpXG4gIHwgU2VuZFZhciAtPlxuICAgICAgbGV0IG0gPSBuZXh0KCkgaW4gbGV0IG4gPSBuZXh0ICgpIGluIHNlbmRfdmFyIG0gbiAobmV3X2NhY2hlIHRhYmxlKVxuICB8IFNlbmRFbnYgLT5cbiAgICAgIGxldCBtID0gbmV4dCgpIGluIGxldCBlID0gbmV4dCgpIGluIGxldCBuID0gbmV4dCgpIGluXG4gICAgICBzZW5kX2VudiBtIGUgbiAobmV3X2NhY2hlIHRhYmxlKVxuICB8IFNlbmRNZXRoIC0+XG4gICAgICBsZXQgbSA9IG5leHQoKSBpbiBsZXQgbiA9IG5leHQgKCkgaW4gc2VuZF9tZXRoIG0gbiAobmV3X2NhY2hlIHRhYmxlKVxuICB8IENsb3N1cmUgXyBhcyBjbG8gLT4gbWFnaWMgY2xvXG5cbmxldCBzZXRfbWV0aG9kcyB0YWJsZSBtZXRob2RzID1cbiAgbGV0IGxlbiA9IEFycmF5Lmxlbmd0aCBtZXRob2RzIGluIGxldCBpID0gcmVmIDAgaW5cbiAgd2hpbGUgIWkgPCBsZW4gZG9cbiAgICBsZXQgbGFiZWwgPSBtZXRob2RzLighaSkgaW4gbGV0IGNsbyA9IG1ldGhvZF9pbXBsIHRhYmxlIGkgbWV0aG9kcyBpblxuICAgIHNldF9tZXRob2QgdGFibGUgbGFiZWwgY2xvO1xuICAgIGluY3IgaVxuICBkb25lXG5cbigqKioqIFN0YXRpc3RpY3MgKioqKilcblxudHlwZSBzdGF0cyA9XG4gIHsgY2xhc3NlczogaW50OyBtZXRob2RzOiBpbnQ7IGluc3RfdmFyczogaW50OyB9XG5cbmxldCBzdGF0cyAoKSA9XG4gIHsgY2xhc3NlcyA9ICF0YWJsZV9jb3VudDtcbiAgICBtZXRob2RzID0gIW1ldGhvZF9jb3VudDsgaW5zdF92YXJzID0gIWluc3RfdmFyX2NvdW50OyB9XG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDA0IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbnR5cGUgc2hhcGUgPVxuICB8IEZ1bmN0aW9uXG4gIHwgTGF6eVxuICB8IENsYXNzXG4gIHwgTW9kdWxlIG9mIHNoYXBlIGFycmF5XG4gIHwgVmFsdWUgb2YgT2JqLnRcblxubGV0IHJlYyBpbml0X21vZF9maWVsZCBtb2R1IGkgbG9jIHNoYXBlID1cbiAgbGV0IGluaXQgPVxuICAgIG1hdGNoIHNoYXBlIHdpdGhcbiAgICB8IEZ1bmN0aW9uIC0+XG4gICAgICAgbGV0IHJlYyBmbiAoeCA6ICdhKSA9XG4gICAgICAgICBsZXQgZm4nIDogJ2EgLT4gJ2IgPSBPYmoub2JqIChPYmouZmllbGQgbW9kdSBpKSBpblxuICAgICAgICAgaWYgZm4gPT0gZm4nIHRoZW5cbiAgICAgICAgICAgcmFpc2UgKFVuZGVmaW5lZF9yZWN1cnNpdmVfbW9kdWxlIGxvYylcbiAgICAgICAgIGVsc2VcbiAgICAgICAgICAgZm4nIHggaW5cbiAgICAgICBPYmoucmVwciBmblxuICAgIHwgTGF6eSAtPlxuICAgICAgIGxldCByZWMgbCA9XG4gICAgICAgICBsYXp5IChcbiAgICAgICAgICAgbGV0IGwnID0gT2JqLm9iaiAoT2JqLmZpZWxkIG1vZHUgaSkgaW5cbiAgICAgICAgICAgaWYgbCA9PSBsJyB0aGVuXG4gICAgICAgICAgICAgcmFpc2UgKFVuZGVmaW5lZF9yZWN1cnNpdmVfbW9kdWxlIGxvYylcbiAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgIExhenkuZm9yY2UgbCcpIGluXG4gICAgICAgT2JqLnJlcHIgbFxuICAgIHwgQ2xhc3MgLT5cbiAgICAgICBPYmoucmVwciAoQ2FtbGludGVybmFsT08uZHVtbXlfY2xhc3MgbG9jKVxuICAgIHwgTW9kdWxlIGNvbXBzIC0+XG4gICAgICAgT2JqLnJlcHIgKGluaXRfbW9kX2Jsb2NrIGxvYyBjb21wcylcbiAgICB8IFZhbHVlIHYgLT4gdlxuICBpblxuICBPYmouc2V0X2ZpZWxkIG1vZHUgaSBpbml0XG5cbmFuZCBpbml0X21vZF9ibG9jayBsb2MgY29tcHMgPVxuICBsZXQgbGVuZ3RoID0gQXJyYXkubGVuZ3RoIGNvbXBzIGluXG4gIGxldCBtb2R1ID0gT2JqLm5ld19ibG9jayAwIGxlbmd0aCBpblxuICBmb3IgaSA9IDAgdG8gbGVuZ3RoIC0gMSBkb1xuICAgIGluaXRfbW9kX2ZpZWxkIG1vZHUgaSBsb2MgY29tcHMuKGkpXG4gIGRvbmU7XG4gIG1vZHVcblxubGV0IGluaXRfbW9kIGxvYyBzaGFwZSA9XG4gIG1hdGNoIHNoYXBlIHdpdGhcbiAgfCBNb2R1bGUgY29tcHMgLT5cbiAgICAgT2JqLnJlcHIgKGluaXRfbW9kX2Jsb2NrIGxvYyBjb21wcylcbiAgfCBfIC0+IGZhaWx3aXRoIFwiQ2FtbGludGVybmFsTW9kLmluaXRfbW9kOiBub3QgYSBtb2R1bGVcIlxuXG5sZXQgcmVjIHVwZGF0ZV9tb2RfZmllbGQgbW9kdSBpIHNoYXBlIG4gPVxuICBtYXRjaCBzaGFwZSB3aXRoXG4gIHwgRnVuY3Rpb24gfCBMYXp5IC0+XG4gICAgIE9iai5zZXRfZmllbGQgbW9kdSBpIG5cbiAgfCBWYWx1ZSBfIC0+XG4gICAgICgpICgqIHRoZSB2YWx1ZSBpcyBhbHJlYWR5IHRoZXJlICopXG4gIHwgQ2xhc3MgLT5cbiAgICAgYXNzZXJ0IChPYmoudGFnIG4gPSAwICYmIE9iai5zaXplIG4gPSA0KTtcbiAgICAgbGV0IGNsID0gT2JqLmZpZWxkIG1vZHUgaSBpblxuICAgICBmb3IgaiA9IDAgdG8gMyBkb1xuICAgICAgIE9iai5zZXRfZmllbGQgY2wgaiAoT2JqLmZpZWxkIG4gailcbiAgICAgZG9uZVxuICB8IE1vZHVsZSBjb21wcyAtPlxuICAgICB1cGRhdGVfbW9kX2Jsb2NrIGNvbXBzIChPYmouZmllbGQgbW9kdSBpKSBuXG5cbmFuZCB1cGRhdGVfbW9kX2Jsb2NrIGNvbXBzIG8gbiA9XG4gIGFzc2VydCAoT2JqLnRhZyBuID0gMCAmJiBPYmouc2l6ZSBuID49IEFycmF5Lmxlbmd0aCBjb21wcyk7XG4gIGZvciBpID0gMCB0byBBcnJheS5sZW5ndGggY29tcHMgLSAxIGRvXG4gICAgdXBkYXRlX21vZF9maWVsZCBvIGkgY29tcHMuKGkpIChPYmouZmllbGQgbiBpKVxuICBkb25lXG5cbmxldCB1cGRhdGVfbW9kIHNoYXBlIG8gbiA9XG4gIG1hdGNoIHNoYXBlIHdpdGhcbiAgfCBNb2R1bGUgY29tcHMgLT5cbiAgICAgdXBkYXRlX21vZF9ibG9jayBjb21wcyBvIG5cbiAgfCBfIC0+IGZhaWx3aXRoIFwiQ2FtbGludGVybmFsTW9kLnVwZGF0ZV9tb2Q6IG5vdCBhIG1vZHVsZVwiXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbltAQEBvY2FtbC53YXJuaW5nIFwiLTNcIl0gKCogaWdub3JlIGRlcHJlY2F0aW9uIHdhcm5pbmcgYWJvdXQgbW9kdWxlIFN0cmVhbSAqKVxuXG50eXBlIHRva2VuID1cbiAgICBLd2Qgb2Ygc3RyaW5nXG4gIHwgSWRlbnQgb2Ygc3RyaW5nXG4gIHwgSW50IG9mIGludFxuICB8IEZsb2F0IG9mIGZsb2F0XG4gIHwgU3RyaW5nIG9mIHN0cmluZ1xuICB8IENoYXIgb2YgY2hhclxuXG4oKiBUaGUgc3RyaW5nIGJ1ZmZlcmluZyBtYWNoaW5lcnkgKilcblxubGV0IGluaXRpYWxfYnVmZmVyID0gQnl0ZXMuY3JlYXRlIDMyXG5cbmxldCBidWZmZXIgPSByZWYgaW5pdGlhbF9idWZmZXJcbmxldCBidWZwb3MgPSByZWYgMFxuXG5sZXQgcmVzZXRfYnVmZmVyICgpID0gYnVmZmVyIDo9IGluaXRpYWxfYnVmZmVyOyBidWZwb3MgOj0gMFxuXG5sZXQgc3RvcmUgYyA9XG4gIGlmICFidWZwb3MgPj0gQnl0ZXMubGVuZ3RoICFidWZmZXIgdGhlbiBiZWdpblxuICAgIGxldCBuZXdidWZmZXIgPSBCeXRlcy5jcmVhdGUgKDIgKiAhYnVmcG9zKSBpblxuICAgIEJ5dGVzLmJsaXQgIWJ1ZmZlciAwIG5ld2J1ZmZlciAwICFidWZwb3M7XG4gICAgYnVmZmVyIDo9IG5ld2J1ZmZlclxuICBlbmQ7XG4gIEJ5dGVzLnNldCAhYnVmZmVyICFidWZwb3MgYztcbiAgaW5jciBidWZwb3NcblxubGV0IGdldF9zdHJpbmcgKCkgPVxuICBsZXQgcyA9IEJ5dGVzLnN1Yl9zdHJpbmcgIWJ1ZmZlciAwICFidWZwb3MgaW4gYnVmZmVyIDo9IGluaXRpYWxfYnVmZmVyOyBzXG5cbigqIFRoZSBsZXhlciAqKVxuXG5sZXQgbWFrZV9sZXhlciBrZXl3b3JkcyA9XG4gIGxldCBrd2RfdGFibGUgPSBIYXNodGJsLmNyZWF0ZSAxNyBpblxuICBMaXN0Lml0ZXIgKGZ1biBzIC0+IEhhc2h0YmwuYWRkIGt3ZF90YWJsZSBzIChLd2QgcykpIGtleXdvcmRzO1xuICBsZXQgaWRlbnRfb3Jfa2V5d29yZCBpZCA9XG4gICAgdHJ5IEhhc2h0YmwuZmluZCBrd2RfdGFibGUgaWQgd2l0aFxuICAgICAgTm90X2ZvdW5kIC0+IElkZW50IGlkXG4gIGFuZCBrZXl3b3JkX29yX2Vycm9yIGMgPVxuICAgIGxldCBzID0gU3RyaW5nLm1ha2UgMSBjIGluXG4gICAgdHJ5IEhhc2h0YmwuZmluZCBrd2RfdGFibGUgcyB3aXRoXG4gICAgICBOb3RfZm91bmQgLT4gcmFpc2UgKFN0cmVhbS5FcnJvciAoXCJJbGxlZ2FsIGNoYXJhY3RlciBcIiBeIHMpKVxuICBpblxuICBsZXQgcmVjIG5leHRfdG9rZW4gKHN0cm1fXyA6IF8gU3RyZWFtLnQpID1cbiAgICBtYXRjaCBTdHJlYW0ucGVlayBzdHJtX18gd2l0aFxuICAgICAgU29tZSAoJyAnIHwgJ1xcMDEwJyB8ICdcXDAxMycgfCAnXFwwMDknIHwgJ1xcMDI2JyB8ICdcXDAxMicpIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXzsgbmV4dF90b2tlbiBzdHJtX19cbiAgICB8IFNvbWUgKCdBJy4uJ1onIHwgJ2EnLi4neicgfCAnXycgfCAnXFwxOTInLi4nXFwyNTUnIGFzIGMpIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXztcbiAgICAgICAgbGV0IHMgPSBzdHJtX18gaW4gcmVzZXRfYnVmZmVyICgpOyBzdG9yZSBjOyBpZGVudCBzXG4gICAgfCBTb21lXG4gICAgICAgICgnIScgfCAnJScgfCAnJicgfCAnJCcgfCAnIycgfCAnKycgfCAnLycgfCAnOicgfCAnPCcgfCAnPScgfCAnPicgfFxuICAgICAgICAgJz8nIHwgJ0AnIHwgJ1xcXFwnIHwgJ34nIHwgJ14nIHwgJ3wnIHwgJyonIGFzIGMpIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXztcbiAgICAgICAgbGV0IHMgPSBzdHJtX18gaW4gcmVzZXRfYnVmZmVyICgpOyBzdG9yZSBjOyBpZGVudDIgc1xuICAgIHwgU29tZSAoJzAnLi4nOScgYXMgYykgLT5cbiAgICAgICAgU3RyZWFtLmp1bmsgc3RybV9fO1xuICAgICAgICBsZXQgcyA9IHN0cm1fXyBpbiByZXNldF9idWZmZXIgKCk7IHN0b3JlIGM7IG51bWJlciBzXG4gICAgfCBTb21lICdcXCcnIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXztcbiAgICAgICAgbGV0IGMgPVxuICAgICAgICAgIHRyeSBjaGFyIHN0cm1fXyB3aXRoXG4gICAgICAgICAgICBTdHJlYW0uRmFpbHVyZSAtPiByYWlzZSAoU3RyZWFtLkVycm9yIFwiXCIpXG4gICAgICAgIGluXG4gICAgICAgIGJlZ2luIG1hdGNoIFN0cmVhbS5wZWVrIHN0cm1fXyB3aXRoXG4gICAgICAgICAgU29tZSAnXFwnJyAtPiBTdHJlYW0uanVuayBzdHJtX187IFNvbWUgKENoYXIgYylcbiAgICAgICAgfCBfIC0+IHJhaXNlIChTdHJlYW0uRXJyb3IgXCJcIilcbiAgICAgICAgZW5kXG4gICAgfCBTb21lICdcXFwiJyAtPlxuICAgICAgICBTdHJlYW0uanVuayBzdHJtX187XG4gICAgICAgIGxldCBzID0gc3RybV9fIGluIHJlc2V0X2J1ZmZlciAoKTsgU29tZSAoU3RyaW5nIChzdHJpbmcgcykpXG4gICAgfCBTb21lICctJyAtPiBTdHJlYW0uanVuayBzdHJtX187IG5lZ19udW1iZXIgc3RybV9fXG4gICAgfCBTb21lICcoJyAtPiBTdHJlYW0uanVuayBzdHJtX187IG1heWJlX2NvbW1lbnQgc3RybV9fXG4gICAgfCBTb21lIGMgLT4gU3RyZWFtLmp1bmsgc3RybV9fOyBTb21lIChrZXl3b3JkX29yX2Vycm9yIGMpXG4gICAgfCBfIC0+IE5vbmVcbiAgYW5kIGlkZW50IChzdHJtX18gOiBfIFN0cmVhbS50KSA9XG4gICAgbWF0Y2ggU3RyZWFtLnBlZWsgc3RybV9fIHdpdGhcbiAgICAgIFNvbWVcbiAgICAgICAgKCdBJy4uJ1onIHwgJ2EnLi4neicgfCAnXFwxOTInLi4nXFwyNTUnIHwgJzAnLi4nOScgfCAnXycgfCAnXFwnJyBhcyBjKSAtPlxuICAgICAgICBTdHJlYW0uanVuayBzdHJtX187IGxldCBzID0gc3RybV9fIGluIHN0b3JlIGM7IGlkZW50IHNcbiAgICB8IF8gLT4gU29tZSAoaWRlbnRfb3Jfa2V5d29yZCAoZ2V0X3N0cmluZyAoKSkpXG4gIGFuZCBpZGVudDIgKHN0cm1fXyA6IF8gU3RyZWFtLnQpID1cbiAgICBtYXRjaCBTdHJlYW0ucGVlayBzdHJtX18gd2l0aFxuICAgICAgU29tZVxuICAgICAgICAoJyEnIHwgJyUnIHwgJyYnIHwgJyQnIHwgJyMnIHwgJysnIHwgJy0nIHwgJy8nIHwgJzonIHwgJzwnIHwgJz0nIHxcbiAgICAgICAgICc+JyB8ICc/JyB8ICdAJyB8ICdcXFxcJyB8ICd+JyB8ICdeJyB8ICd8JyB8ICcqJyBhcyBjKSAtPlxuICAgICAgICBTdHJlYW0uanVuayBzdHJtX187IGxldCBzID0gc3RybV9fIGluIHN0b3JlIGM7IGlkZW50MiBzXG4gICAgfCBfIC0+IFNvbWUgKGlkZW50X29yX2tleXdvcmQgKGdldF9zdHJpbmcgKCkpKVxuICBhbmQgbmVnX251bWJlciAoc3RybV9fIDogXyBTdHJlYW0udCkgPVxuICAgIG1hdGNoIFN0cmVhbS5wZWVrIHN0cm1fXyB3aXRoXG4gICAgICBTb21lICgnMCcuLic5JyBhcyBjKSAtPlxuICAgICAgICBTdHJlYW0uanVuayBzdHJtX187XG4gICAgICAgIGxldCBzID0gc3RybV9fIGluIHJlc2V0X2J1ZmZlciAoKTsgc3RvcmUgJy0nOyBzdG9yZSBjOyBudW1iZXIgc1xuICAgIHwgXyAtPiBsZXQgcyA9IHN0cm1fXyBpbiByZXNldF9idWZmZXIgKCk7IHN0b3JlICctJzsgaWRlbnQyIHNcbiAgYW5kIG51bWJlciAoc3RybV9fIDogXyBTdHJlYW0udCkgPVxuICAgIG1hdGNoIFN0cmVhbS5wZWVrIHN0cm1fXyB3aXRoXG4gICAgICBTb21lICgnMCcuLic5JyBhcyBjKSAtPlxuICAgICAgICBTdHJlYW0uanVuayBzdHJtX187IGxldCBzID0gc3RybV9fIGluIHN0b3JlIGM7IG51bWJlciBzXG4gICAgfCBTb21lICcuJyAtPlxuICAgICAgICBTdHJlYW0uanVuayBzdHJtX187IGxldCBzID0gc3RybV9fIGluIHN0b3JlICcuJzsgZGVjaW1hbF9wYXJ0IHNcbiAgICB8IFNvbWUgKCdlJyB8ICdFJykgLT5cbiAgICAgICAgU3RyZWFtLmp1bmsgc3RybV9fOyBsZXQgcyA9IHN0cm1fXyBpbiBzdG9yZSAnRSc7IGV4cG9uZW50X3BhcnQgc1xuICAgIHwgXyAtPiBTb21lIChJbnQgKGludF9vZl9zdHJpbmcgKGdldF9zdHJpbmcgKCkpKSlcbiAgYW5kIGRlY2ltYWxfcGFydCAoc3RybV9fIDogXyBTdHJlYW0udCkgPVxuICAgIG1hdGNoIFN0cmVhbS5wZWVrIHN0cm1fXyB3aXRoXG4gICAgICBTb21lICgnMCcuLic5JyBhcyBjKSAtPlxuICAgICAgICBTdHJlYW0uanVuayBzdHJtX187IGxldCBzID0gc3RybV9fIGluIHN0b3JlIGM7IGRlY2ltYWxfcGFydCBzXG4gICAgfCBTb21lICgnZScgfCAnRScpIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXzsgbGV0IHMgPSBzdHJtX18gaW4gc3RvcmUgJ0UnOyBleHBvbmVudF9wYXJ0IHNcbiAgICB8IF8gLT4gU29tZSAoRmxvYXQgKGZsb2F0X29mX3N0cmluZyAoZ2V0X3N0cmluZyAoKSkpKVxuICBhbmQgZXhwb25lbnRfcGFydCAoc3RybV9fIDogXyBTdHJlYW0udCkgPVxuICAgIG1hdGNoIFN0cmVhbS5wZWVrIHN0cm1fXyB3aXRoXG4gICAgICBTb21lICgnKycgfCAnLScgYXMgYykgLT5cbiAgICAgICAgU3RyZWFtLmp1bmsgc3RybV9fOyBsZXQgcyA9IHN0cm1fXyBpbiBzdG9yZSBjOyBlbmRfZXhwb25lbnRfcGFydCBzXG4gICAgfCBfIC0+IGVuZF9leHBvbmVudF9wYXJ0IHN0cm1fX1xuICBhbmQgZW5kX2V4cG9uZW50X3BhcnQgKHN0cm1fXyA6IF8gU3RyZWFtLnQpID1cbiAgICBtYXRjaCBTdHJlYW0ucGVlayBzdHJtX18gd2l0aFxuICAgICAgU29tZSAoJzAnLi4nOScgYXMgYykgLT5cbiAgICAgICAgU3RyZWFtLmp1bmsgc3RybV9fOyBsZXQgcyA9IHN0cm1fXyBpbiBzdG9yZSBjOyBlbmRfZXhwb25lbnRfcGFydCBzXG4gICAgfCBfIC0+IFNvbWUgKEZsb2F0IChmbG9hdF9vZl9zdHJpbmcgKGdldF9zdHJpbmcgKCkpKSlcbiAgYW5kIHN0cmluZyAoc3RybV9fIDogXyBTdHJlYW0udCkgPVxuICAgIG1hdGNoIFN0cmVhbS5wZWVrIHN0cm1fXyB3aXRoXG4gICAgICBTb21lICdcXFwiJyAtPiBTdHJlYW0uanVuayBzdHJtX187IGdldF9zdHJpbmcgKClcbiAgICB8IFNvbWUgJ1xcXFwnIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXztcbiAgICAgICAgbGV0IGMgPVxuICAgICAgICAgIHRyeSBlc2NhcGUgc3RybV9fIHdpdGhcbiAgICAgICAgICAgIFN0cmVhbS5GYWlsdXJlIC0+IHJhaXNlIChTdHJlYW0uRXJyb3IgXCJcIilcbiAgICAgICAgaW5cbiAgICAgICAgbGV0IHMgPSBzdHJtX18gaW4gc3RvcmUgYzsgc3RyaW5nIHNcbiAgICB8IFNvbWUgYyAtPiBTdHJlYW0uanVuayBzdHJtX187IGxldCBzID0gc3RybV9fIGluIHN0b3JlIGM7IHN0cmluZyBzXG4gICAgfCBfIC0+IHJhaXNlIFN0cmVhbS5GYWlsdXJlXG4gIGFuZCBjaGFyIChzdHJtX18gOiBfIFN0cmVhbS50KSA9XG4gICAgbWF0Y2ggU3RyZWFtLnBlZWsgc3RybV9fIHdpdGhcbiAgICAgIFNvbWUgJ1xcXFwnIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXztcbiAgICAgICAgYmVnaW4gdHJ5IGVzY2FwZSBzdHJtX18gd2l0aFxuICAgICAgICAgIFN0cmVhbS5GYWlsdXJlIC0+IHJhaXNlIChTdHJlYW0uRXJyb3IgXCJcIilcbiAgICAgICAgZW5kXG4gICAgfCBTb21lIGMgLT4gU3RyZWFtLmp1bmsgc3RybV9fOyBjXG4gICAgfCBfIC0+IHJhaXNlIFN0cmVhbS5GYWlsdXJlXG4gIGFuZCBlc2NhcGUgKHN0cm1fXyA6IF8gU3RyZWFtLnQpID1cbiAgICBtYXRjaCBTdHJlYW0ucGVlayBzdHJtX18gd2l0aFxuICAgICAgU29tZSAnbicgLT4gU3RyZWFtLmp1bmsgc3RybV9fOyAnXFxuJ1xuICAgIHwgU29tZSAncicgLT4gU3RyZWFtLmp1bmsgc3RybV9fOyAnXFxyJ1xuICAgIHwgU29tZSAndCcgLT4gU3RyZWFtLmp1bmsgc3RybV9fOyAnXFx0J1xuICAgIHwgU29tZSAoJzAnLi4nOScgYXMgYzEpIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXztcbiAgICAgICAgYmVnaW4gbWF0Y2ggU3RyZWFtLnBlZWsgc3RybV9fIHdpdGhcbiAgICAgICAgICBTb21lICgnMCcuLic5JyBhcyBjMikgLT5cbiAgICAgICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXztcbiAgICAgICAgICAgIGJlZ2luIG1hdGNoIFN0cmVhbS5wZWVrIHN0cm1fXyB3aXRoXG4gICAgICAgICAgICAgIFNvbWUgKCcwJy4uJzknIGFzIGMzKSAtPlxuICAgICAgICAgICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXztcbiAgICAgICAgICAgICAgICBDaGFyLmNoclxuICAgICAgICAgICAgICAgICAgKChDaGFyLmNvZGUgYzEgLSA0OCkgKiAxMDAgKyAoQ2hhci5jb2RlIGMyIC0gNDgpICogMTAgK1xuICAgICAgICAgICAgICAgICAgICAgKENoYXIuY29kZSBjMyAtIDQ4KSlcbiAgICAgICAgICAgIHwgXyAtPiByYWlzZSAoU3RyZWFtLkVycm9yIFwiXCIpXG4gICAgICAgICAgICBlbmRcbiAgICAgICAgfCBfIC0+IHJhaXNlIChTdHJlYW0uRXJyb3IgXCJcIilcbiAgICAgICAgZW5kXG4gICAgfCBTb21lIGMgLT4gU3RyZWFtLmp1bmsgc3RybV9fOyBjXG4gICAgfCBfIC0+IHJhaXNlIFN0cmVhbS5GYWlsdXJlXG4gIGFuZCBtYXliZV9jb21tZW50IChzdHJtX18gOiBfIFN0cmVhbS50KSA9XG4gICAgbWF0Y2ggU3RyZWFtLnBlZWsgc3RybV9fIHdpdGhcbiAgICAgIFNvbWUgJyonIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXzsgbGV0IHMgPSBzdHJtX18gaW4gY29tbWVudCBzOyBuZXh0X3Rva2VuIHNcbiAgICB8IF8gLT4gU29tZSAoa2V5d29yZF9vcl9lcnJvciAnKCcpXG4gIGFuZCBjb21tZW50IChzdHJtX18gOiBfIFN0cmVhbS50KSA9XG4gICAgbWF0Y2ggU3RyZWFtLnBlZWsgc3RybV9fIHdpdGhcbiAgICAgIFNvbWUgJygnIC0+IFN0cmVhbS5qdW5rIHN0cm1fXzsgbWF5YmVfbmVzdGVkX2NvbW1lbnQgc3RybV9fXG4gICAgfCBTb21lICcqJyAtPiBTdHJlYW0uanVuayBzdHJtX187IG1heWJlX2VuZF9jb21tZW50IHN0cm1fX1xuICAgIHwgU29tZSBfIC0+IFN0cmVhbS5qdW5rIHN0cm1fXzsgY29tbWVudCBzdHJtX19cbiAgICB8IF8gLT4gcmFpc2UgU3RyZWFtLkZhaWx1cmVcbiAgYW5kIG1heWJlX25lc3RlZF9jb21tZW50IChzdHJtX18gOiBfIFN0cmVhbS50KSA9XG4gICAgbWF0Y2ggU3RyZWFtLnBlZWsgc3RybV9fIHdpdGhcbiAgICAgIFNvbWUgJyonIC0+IFN0cmVhbS5qdW5rIHN0cm1fXzsgbGV0IHMgPSBzdHJtX18gaW4gY29tbWVudCBzOyBjb21tZW50IHNcbiAgICB8IFNvbWUgXyAtPiBTdHJlYW0uanVuayBzdHJtX187IGNvbW1lbnQgc3RybV9fXG4gICAgfCBfIC0+IHJhaXNlIFN0cmVhbS5GYWlsdXJlXG4gIGFuZCBtYXliZV9lbmRfY29tbWVudCAoc3RybV9fIDogXyBTdHJlYW0udCkgPVxuICAgIG1hdGNoIFN0cmVhbS5wZWVrIHN0cm1fXyB3aXRoXG4gICAgICBTb21lICcpJyAtPiBTdHJlYW0uanVuayBzdHJtX187ICgpXG4gICAgfCBTb21lICcqJyAtPiBTdHJlYW0uanVuayBzdHJtX187IG1heWJlX2VuZF9jb21tZW50IHN0cm1fX1xuICAgIHwgU29tZSBfIC0+IFN0cmVhbS5qdW5rIHN0cm1fXzsgY29tbWVudCBzdHJtX19cbiAgICB8IF8gLT4gcmFpc2UgU3RyZWFtLkZhaWx1cmVcbiAgaW5cbiAgZnVuIGlucHV0IC0+IFN0cmVhbS5mcm9tIChmdW4gX2NvdW50IC0+IG5leHRfdG9rZW4gaW5wdXQpXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBEYW1pZW4gRG9saWdleiwgcHJvamV0IFBhcmEsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk3IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbltAQEBvY2FtbC53YXJuaW5nIFwiLTMyXCJdXG5cbm1vZHVsZSB0eXBlIFNlZWRlZFMgPSBzaWdcblxuICB0eXBlIGtleVxuICB0eXBlICEnYSB0XG4gIHZhbCBjcmVhdGUgOiA/cmFuZG9tICgqdGh3YXJ0IHRvb2xzL3N5bmNfc3RkbGliX2RvY3MqKSA6IGJvb2wgLT4gaW50IC0+ICdhIHRcbiAgdmFsIGNsZWFyIDogJ2EgdCAtPiB1bml0XG4gIHZhbCByZXNldCA6ICdhIHQgLT4gdW5pdFxuICB2YWwgY29weSA6ICdhIHQgLT4gJ2EgdFxuICB2YWwgYWRkIDogJ2EgdCAtPiBrZXkgLT4gJ2EgLT4gdW5pdFxuICB2YWwgcmVtb3ZlIDogJ2EgdCAtPiBrZXkgLT4gdW5pdFxuICB2YWwgZmluZCA6ICdhIHQgLT4ga2V5IC0+ICdhXG4gIHZhbCBmaW5kX29wdCA6ICdhIHQgLT4ga2V5IC0+ICdhIG9wdGlvblxuICB2YWwgZmluZF9hbGwgOiAnYSB0IC0+IGtleSAtPiAnYSBsaXN0XG4gIHZhbCByZXBsYWNlIDogJ2EgdCAtPiBrZXkgLT4gJ2EgLT4gdW5pdFxuICB2YWwgbWVtIDogJ2EgdCAtPiBrZXkgLT4gYm9vbFxuICB2YWwgaXRlciA6IChrZXkgLT4gJ2EgLT4gdW5pdCkgLT4gJ2EgdCAtPiB1bml0XG4gICAgW0BAYWxlcnQgb2xkX2VwaGVtZXJvbl9hcGkgXCJUaGlzIGZ1bmN0aW9uIHdvbid0IGJlIGF2YWlsYWJsZSBpbiA1LjBcIl1cbiAgdmFsIGZpbHRlcl9tYXBfaW5wbGFjZSA6IChrZXkgLT4gJ2EgLT4gJ2Egb3B0aW9uKSAtPiAnYSB0IC0+IHVuaXRcbiAgICBbQEBhbGVydCBvbGRfZXBoZW1lcm9uX2FwaSBcIlRoaXMgZnVuY3Rpb24gd29uJ3QgYmUgYXZhaWxhYmxlIGluIDUuMFwiXVxuICB2YWwgZm9sZCA6IChrZXkgLT4gJ2EgLT4gJ2IgLT4gJ2IpIC0+ICdhIHQgLT4gJ2IgLT4gJ2JcbiAgICBbQEBhbGVydCBvbGRfZXBoZW1lcm9uX2FwaSBcIlRoaXMgZnVuY3Rpb24gd29uJ3QgYmUgYXZhaWxhYmxlIGluIDUuMFwiXVxuICB2YWwgbGVuZ3RoIDogJ2EgdCAtPiBpbnRcbiAgdmFsIHN0YXRzIDogJ2EgdCAtPiBIYXNodGJsLnN0YXRpc3RpY3NcbiAgdmFsIHRvX3NlcSA6ICdhIHQgLT4gKGtleSAqICdhKSBTZXEudFxuICAgIFtAQGFsZXJ0IG9sZF9lcGhlbWVyb25fYXBpIFwiVGhpcyBmdW5jdGlvbiB3b24ndCBiZSBhdmFpbGFibGUgaW4gNS4wXCJdXG4gIHZhbCB0b19zZXFfa2V5cyA6IF8gdCAtPiBrZXkgU2VxLnRcbiAgICBbQEBhbGVydCBvbGRfZXBoZW1lcm9uX2FwaSBcIlRoaXMgZnVuY3Rpb24gd29uJ3QgYmUgYXZhaWxhYmxlIGluIDUuMFwiXVxuICB2YWwgdG9fc2VxX3ZhbHVlcyA6ICdhIHQgLT4gJ2EgU2VxLnRcbiAgICBbQEBhbGVydCBvbGRfZXBoZW1lcm9uX2FwaSBcIlRoaXMgZnVuY3Rpb24gd29uJ3QgYmUgYXZhaWxhYmxlIGluIDUuMFwiXVxuICB2YWwgYWRkX3NlcSA6ICdhIHQgLT4gKGtleSAqICdhKSBTZXEudCAtPiB1bml0XG4gIHZhbCByZXBsYWNlX3NlcSA6ICdhIHQgLT4gKGtleSAqICdhKSBTZXEudCAtPiB1bml0XG4gIHZhbCBvZl9zZXEgOiAoa2V5ICogJ2EpIFNlcS50IC0+ICdhIHRcbiAgdmFsIGNsZWFuOiAnYSB0IC0+IHVuaXRcbiAgdmFsIHN0YXRzX2FsaXZlOiAnYSB0IC0+IEhhc2h0Ymwuc3RhdGlzdGljc1xuICAgICgqKiBzYW1lIGFzIHshc3RhdHN9IGJ1dCBvbmx5IGNvdW50IHRoZSBhbGl2ZSBiaW5kaW5ncyAqKVxuZW5kXG5cbm1vZHVsZSB0eXBlIFMgPSBzaWdcblxuICB0eXBlIGtleVxuICB0eXBlICEnYSB0XG4gIHZhbCBjcmVhdGUgOiBpbnQgLT4gJ2EgdFxuICB2YWwgY2xlYXIgOiAnYSB0IC0+IHVuaXRcbiAgdmFsIHJlc2V0IDogJ2EgdCAtPiB1bml0XG4gIHZhbCBjb3B5IDogJ2EgdCAtPiAnYSB0XG4gIHZhbCBhZGQgOiAnYSB0IC0+IGtleSAtPiAnYSAtPiB1bml0XG4gIHZhbCByZW1vdmUgOiAnYSB0IC0+IGtleSAtPiB1bml0XG4gIHZhbCBmaW5kIDogJ2EgdCAtPiBrZXkgLT4gJ2FcbiAgdmFsIGZpbmRfb3B0IDogJ2EgdCAtPiBrZXkgLT4gJ2Egb3B0aW9uXG4gIHZhbCBmaW5kX2FsbCA6ICdhIHQgLT4ga2V5IC0+ICdhIGxpc3RcbiAgdmFsIHJlcGxhY2UgOiAnYSB0IC0+IGtleSAtPiAnYSAtPiB1bml0XG4gIHZhbCBtZW0gOiAnYSB0IC0+IGtleSAtPiBib29sXG4gIHZhbCBpdGVyIDogKGtleSAtPiAnYSAtPiB1bml0KSAtPiAnYSB0IC0+IHVuaXRcbiAgICBbQEBhbGVydCBvbGRfZXBoZW1lcm9uX2FwaSBcIlRoaXMgZnVuY3Rpb24gd29uJ3QgYmUgYXZhaWxhYmxlIGluIDUuMFwiXVxuICB2YWwgZmlsdGVyX21hcF9pbnBsYWNlIDogKGtleSAtPiAnYSAtPiAnYSBvcHRpb24pIC0+ICdhIHQgLT4gdW5pdFxuICAgIFtAQGFsZXJ0IG9sZF9lcGhlbWVyb25fYXBpIFwiVGhpcyBmdW5jdGlvbiB3b24ndCBiZSBhdmFpbGFibGUgaW4gNS4wXCJdXG4gIHZhbCBmb2xkIDogKGtleSAtPiAnYSAtPiAnYiAtPiAnYikgLT4gJ2EgdCAtPiAnYiAtPiAnYlxuICAgIFtAQGFsZXJ0IG9sZF9lcGhlbWVyb25fYXBpIFwiVGhpcyBmdW5jdGlvbiB3b24ndCBiZSBhdmFpbGFibGUgaW4gNS4wXCJdXG4gIHZhbCBsZW5ndGggOiAnYSB0IC0+IGludFxuICB2YWwgc3RhdHMgOiAnYSB0IC0+IEhhc2h0Ymwuc3RhdGlzdGljc1xuICB2YWwgdG9fc2VxIDogJ2EgdCAtPiAoa2V5ICogJ2EpIFNlcS50XG4gICAgW0BAYWxlcnQgb2xkX2VwaGVtZXJvbl9hcGkgXCJUaGlzIGZ1bmN0aW9uIHdvbid0IGJlIGF2YWlsYWJsZSBpbiA1LjBcIl1cbiAgdmFsIHRvX3NlcV9rZXlzIDogXyB0IC0+IGtleSBTZXEudFxuICAgIFtAQGFsZXJ0IG9sZF9lcGhlbWVyb25fYXBpIFwiVGhpcyBmdW5jdGlvbiB3b24ndCBiZSBhdmFpbGFibGUgaW4gNS4wXCJdXG4gIHZhbCB0b19zZXFfdmFsdWVzIDogJ2EgdCAtPiAnYSBTZXEudFxuICAgIFtAQGFsZXJ0IG9sZF9lcGhlbWVyb25fYXBpIFwiVGhpcyBmdW5jdGlvbiB3b24ndCBiZSBhdmFpbGFibGUgaW4gNS4wXCJdXG4gIHZhbCBhZGRfc2VxIDogJ2EgdCAtPiAoa2V5ICogJ2EpIFNlcS50IC0+IHVuaXRcbiAgdmFsIHJlcGxhY2Vfc2VxIDogJ2EgdCAtPiAoa2V5ICogJ2EpIFNlcS50IC0+IHVuaXRcbiAgdmFsIG9mX3NlcSA6IChrZXkgKiAnYSkgU2VxLnQgLT4gJ2EgdFxuICB2YWwgY2xlYW46ICdhIHQgLT4gdW5pdFxuICB2YWwgc3RhdHNfYWxpdmU6ICdhIHQgLT4gSGFzaHRibC5zdGF0aXN0aWNzXG4gICAgKCoqIHNhbWUgYXMgeyFzdGF0c30gYnV0IG9ubHkgY291bnQgdGhlIGFsaXZlIGJpbmRpbmdzICopXG5lbmRcblxubW9kdWxlIEdlbkhhc2hUYWJsZSA9IHN0cnVjdFxuXG4gIHR5cGUgZXF1YWwgPVxuICB8IEVUcnVlIHwgRUZhbHNlXG4gIHwgRURlYWQgKCoqIHRoZSBnYXJiYWdlIGNvbGxlY3RvciByZWNsYWltZWQgdGhlIGRhdGEgKilcblxuICBtb2R1bGUgTWFrZVNlZWRlZChIOiBzaWdcbiAgICB0eXBlIHRcbiAgICB0eXBlICdhIGNvbnRhaW5lclxuICAgIHZhbCBjcmVhdGU6IHQgLT4gJ2EgLT4gJ2EgY29udGFpbmVyXG4gICAgdmFsIGhhc2g6IGludCAtPiB0IC0+IGludFxuICAgIHZhbCBlcXVhbDogJ2EgY29udGFpbmVyIC0+IHQgLT4gZXF1YWxcbiAgICB2YWwgZ2V0X2RhdGE6ICdhIGNvbnRhaW5lciAtPiAnYSBvcHRpb25cbiAgICB2YWwgZ2V0X2tleTogJ2EgY29udGFpbmVyIC0+IHQgb3B0aW9uXG4gICAgdmFsIHNldF9rZXlfZGF0YTogJ2EgY29udGFpbmVyIC0+IHQgLT4gJ2EgLT4gdW5pdFxuICAgIHZhbCBjaGVja19rZXk6ICdhIGNvbnRhaW5lciAtPiBib29sXG4gIGVuZCkgOiBTZWVkZWRTIHdpdGggdHlwZSBrZXkgPSBILnRcbiAgPSBzdHJ1Y3RcblxuICAgIHR5cGUgJ2EgdCA9XG4gICAgICB7IG11dGFibGUgc2l6ZTogaW50OyAgICAgICAgICAgICAgICAgICgqIG51bWJlciBvZiBlbnRyaWVzICopXG4gICAgICAgIG11dGFibGUgZGF0YTogJ2EgYnVja2V0bGlzdCBhcnJheTsgICgqIHRoZSBidWNrZXRzICopXG4gICAgICAgIHNlZWQ6IGludDsgICAgICAgICAgICAgICAgICAgICAgICAgICgqIGZvciByYW5kb21pemF0aW9uICopXG4gICAgICAgIGluaXRpYWxfc2l6ZTogaW50OyAgICAgICAgICAgICAgICAgICgqIGluaXRpYWwgYXJyYXkgc2l6ZSAqKVxuICAgICAgfVxuXG4gICAgYW5kICdhIGJ1Y2tldGxpc3QgPVxuICAgIHwgRW1wdHlcbiAgICB8IENvbnMgb2YgaW50ICgqIGhhc2ggb2YgdGhlIGtleSAqKSAqICdhIEguY29udGFpbmVyICogJ2EgYnVja2V0bGlzdFxuXG4gICAgKCoqIHRoZSBoYXNoIG9mIHRoZSBrZXkgaXMga2VwdCBpbiBvcmRlciB0byB0ZXN0IHRoZSBlcXVhbGl0eSBvZiB0aGUgaGFzaFxuICAgICAgYmVmb3JlIHRoZSBrZXkuIFNhbWUgcmVhc29uIGFzIGZvciBXZWFrLk1ha2UgKilcblxuICAgIHR5cGUga2V5ID0gSC50XG5cbiAgICBsZXQgcmVjIHBvd2VyXzJfYWJvdmUgeCBuID1cbiAgICAgIGlmIHggPj0gbiB0aGVuIHhcbiAgICAgIGVsc2UgaWYgeCAqIDIgPiBTeXMubWF4X2FycmF5X2xlbmd0aCB0aGVuIHhcbiAgICAgIGVsc2UgcG93ZXJfMl9hYm92ZSAoeCAqIDIpIG5cblxuICAgIGxldCBwcm5nID0gbGF6eSAoUmFuZG9tLlN0YXRlLm1ha2Vfc2VsZl9pbml0KCkpXG5cbiAgICBsZXQgY3JlYXRlID8ocmFuZG9tID0gKEhhc2h0YmwuaXNfcmFuZG9taXplZCAoKSkpIGluaXRpYWxfc2l6ZSA9XG4gICAgICBsZXQgcyA9IHBvd2VyXzJfYWJvdmUgMTYgaW5pdGlhbF9zaXplIGluXG4gICAgICBsZXQgc2VlZCA9IGlmIHJhbmRvbSB0aGVuIFJhbmRvbS5TdGF0ZS5iaXRzIChMYXp5LmZvcmNlIHBybmcpIGVsc2UgMCBpblxuICAgICAgeyBpbml0aWFsX3NpemUgPSBzOyBzaXplID0gMDsgc2VlZCA9IHNlZWQ7IGRhdGEgPSBBcnJheS5tYWtlIHMgRW1wdHkgfVxuXG4gICAgbGV0IGNsZWFyIGggPVxuICAgICAgaC5zaXplIDwtIDA7XG4gICAgICBsZXQgbGVuID0gQXJyYXkubGVuZ3RoIGguZGF0YSBpblxuICAgICAgZm9yIGkgPSAwIHRvIGxlbiAtIDEgZG9cbiAgICAgICAgaC5kYXRhLihpKSA8LSBFbXB0eVxuICAgICAgZG9uZVxuXG4gICAgbGV0IHJlc2V0IGggPVxuICAgICAgbGV0IGxlbiA9IEFycmF5Lmxlbmd0aCBoLmRhdGEgaW5cbiAgICAgIGlmIGxlbiA9IGguaW5pdGlhbF9zaXplIHRoZW5cbiAgICAgICAgY2xlYXIgaFxuICAgICAgZWxzZSBiZWdpblxuICAgICAgICBoLnNpemUgPC0gMDtcbiAgICAgICAgaC5kYXRhIDwtIEFycmF5Lm1ha2UgaC5pbml0aWFsX3NpemUgRW1wdHlcbiAgICAgIGVuZFxuXG4gICAgbGV0IGNvcHkgaCA9IHsgaCB3aXRoIGRhdGEgPSBBcnJheS5jb3B5IGguZGF0YSB9XG5cbiAgICBsZXQga2V5X2luZGV4IGggaGtleSA9XG4gICAgICBoa2V5IGxhbmQgKEFycmF5Lmxlbmd0aCBoLmRhdGEgLSAxKVxuXG4gICAgbGV0IGNsZWFuIGggPVxuICAgICAgbGV0IHJlYyBkb19idWNrZXQgPSBmdW5jdGlvblxuICAgICAgICB8IEVtcHR5IC0+XG4gICAgICAgICAgICBFbXB0eVxuICAgICAgICB8IENvbnMoXywgYywgcmVzdCkgd2hlbiBub3QgKEguY2hlY2tfa2V5IGMpIC0+XG4gICAgICAgICAgICBoLnNpemUgPC0gaC5zaXplIC0gMTtcbiAgICAgICAgICAgIGRvX2J1Y2tldCByZXN0XG4gICAgICAgIHwgQ29ucyhoa2V5LCBjLCByZXN0KSAtPlxuICAgICAgICAgICAgQ29ucyhoa2V5LCBjLCBkb19idWNrZXQgcmVzdClcbiAgICAgIGluXG4gICAgICBsZXQgZCA9IGguZGF0YSBpblxuICAgICAgZm9yIGkgPSAwIHRvIEFycmF5Lmxlbmd0aCBkIC0gMSBkb1xuICAgICAgICBkLihpKSA8LSBkb19idWNrZXQgZC4oaSlcbiAgICAgIGRvbmVcblxuICAgICgqKiByZXNpemUgaXMgdGhlIG9ubHkgZnVuY3Rpb24gdG8gZG8gdGhlIGFjdHVhbCBjbGVhbmluZyBvZiBkZWFkIGtleXNcbiAgICAgICAgKHJlbW92ZSBkb2VzIGl0IGp1c3QgYmVjYXVzZSBpdCBjb3VsZCkuXG5cbiAgICAgICAgVGhlIGdvYWwgaXMgdG86XG5cbiAgICAgICAgLSBub3QgcmVzaXplIGluZmluaXRlbHkgd2hlbiB0aGUgYWN0dWFsIG51bWJlciBvZiBhbGl2ZSBrZXlzIGlzXG4gICAgICAgIGJvdW5kZWQgYnV0IGtleXMgYXJlIGNvbnRpbnVvdXNseSBhZGRlZC4gVGhhdCB3b3VsZCBoYXBwZW4gaWZcbiAgICAgICAgdGhpcyBmdW5jdGlvbiBhbHdheXMgcmVzaXplLlxuICAgICAgICAtIG5vdCBjYWxsIHRoaXMgZnVuY3Rpb24gYWZ0ZXIgZWFjaCBhZGRpdGlvbiwgdGhhdCB3b3VsZCBoYXBwZW4gaWYgdGhpc1xuICAgICAgICBmdW5jdGlvbiBkb24ndCByZXNpemUgZXZlbiB3aGVuIG9ubHkgb25lIGtleSBpcyBkZWFkLlxuXG4gICAgICAgIFNvIHRoZSBhbGdvcml0aG06XG4gICAgICAgIC0gY2xlYW4gdGhlIGtleXMgYmVmb3JlIHJlc2l6aW5nXG4gICAgICAgIC0gaWYgdGhlIG51bWJlciBvZiByZW1haW5pbmcga2V5cyBpcyBsZXNzIHRoYW4gaGFsZiB0aGUgc2l6ZSBvZiB0aGVcbiAgICAgICAgYXJyYXksIGRvbid0IHJlc2l6ZS5cbiAgICAgICAgLSBpZiBpdCBpcyBtb3JlLCByZXNpemUuXG5cbiAgICAgICAgVGhlIHNlY29uZCBwcm9ibGVtIHJlbWFpbnMgaWYgdGhlIHRhYmxlIHJlYWNoZXMgeyFTeXMubWF4X2FycmF5X2xlbmd0aH0uXG5cbiAgICAqKVxuICAgIGxldCByZXNpemUgaCA9XG4gICAgICBsZXQgb2RhdGEgPSBoLmRhdGEgaW5cbiAgICAgIGxldCBvc2l6ZSA9IEFycmF5Lmxlbmd0aCBvZGF0YSBpblxuICAgICAgbGV0IG5zaXplID0gb3NpemUgKiAyIGluXG4gICAgICBjbGVhbiBoO1xuICAgICAgaWYgbnNpemUgPCBTeXMubWF4X2FycmF5X2xlbmd0aCAmJiBoLnNpemUgPj0gb3NpemUgbHNyIDEgdGhlbiBiZWdpblxuICAgICAgICBsZXQgbmRhdGEgPSBBcnJheS5tYWtlIG5zaXplIEVtcHR5IGluXG4gICAgICAgIGguZGF0YSA8LSBuZGF0YTsgICAgICAgKCogc28gdGhhdCBrZXlfaW5kZXggc2VlcyB0aGUgbmV3IGJ1Y2tldCBjb3VudCAqKVxuICAgICAgICBsZXQgcmVjIGluc2VydF9idWNrZXQgPSBmdW5jdGlvblxuICAgICAgICAgICAgRW1wdHkgLT4gKClcbiAgICAgICAgICB8IENvbnMoaGtleSwgZGF0YSwgcmVzdCkgLT5cbiAgICAgICAgICAgICAgaW5zZXJ0X2J1Y2tldCByZXN0OyAoKiBwcmVzZXJ2ZSBvcmlnaW5hbCBvcmRlciBvZiBlbGVtZW50cyAqKVxuICAgICAgICAgICAgICBsZXQgbmlkeCA9IGtleV9pbmRleCBoIGhrZXkgaW5cbiAgICAgICAgICAgICAgbmRhdGEuKG5pZHgpIDwtIENvbnMoaGtleSwgZGF0YSwgbmRhdGEuKG5pZHgpKSBpblxuICAgICAgICBmb3IgaSA9IDAgdG8gb3NpemUgLSAxIGRvXG4gICAgICAgICAgaW5zZXJ0X2J1Y2tldCBvZGF0YS4oaSlcbiAgICAgICAgZG9uZVxuICAgICAgZW5kXG5cbiAgICBsZXQgYWRkIGgga2V5IGluZm8gPVxuICAgICAgbGV0IGhrZXkgPSBILmhhc2ggaC5zZWVkIGtleSBpblxuICAgICAgbGV0IGkgPSBrZXlfaW5kZXggaCBoa2V5IGluXG4gICAgICBsZXQgY29udGFpbmVyID0gSC5jcmVhdGUga2V5IGluZm8gaW5cbiAgICAgIGxldCBidWNrZXQgPSBDb25zKGhrZXksIGNvbnRhaW5lciwgaC5kYXRhLihpKSkgaW5cbiAgICAgIGguZGF0YS4oaSkgPC0gYnVja2V0O1xuICAgICAgaC5zaXplIDwtIGguc2l6ZSArIDE7XG4gICAgICBpZiBoLnNpemUgPiBBcnJheS5sZW5ndGggaC5kYXRhIGxzbCAxIHRoZW4gcmVzaXplIGhcblxuICAgIGxldCByZW1vdmUgaCBrZXkgPVxuICAgICAgbGV0IGhrZXkgPSBILmhhc2ggaC5zZWVkIGtleSBpblxuICAgICAgbGV0IHJlYyByZW1vdmVfYnVja2V0ID0gZnVuY3Rpb25cbiAgICAgICAgfCBFbXB0eSAtPiBFbXB0eVxuICAgICAgICB8IENvbnMoaGssIGMsIG5leHQpIHdoZW4gaGtleSA9IGhrIC0+XG4gICAgICAgICAgICBiZWdpbiBtYXRjaCBILmVxdWFsIGMga2V5IHdpdGhcbiAgICAgICAgICAgIHwgRVRydWUgLT4gaC5zaXplIDwtIGguc2l6ZSAtIDE7IG5leHRcbiAgICAgICAgICAgIHwgRUZhbHNlIC0+IENvbnMoaGssIGMsIHJlbW92ZV9idWNrZXQgbmV4dClcbiAgICAgICAgICAgIHwgRURlYWQgLT5cbiAgICAgICAgICAgICAgICAoKiBUaGUgZGVhZCBrZXkgaXMgYXV0b21hdGljYWxseSByZW1vdmVkLiBJdCBpcyBhY2NlcHRhYmxlXG4gICAgICAgICAgICAgICAgICAgIGZvciB0aGlzIGZ1bmN0aW9uIHNpbmNlIGl0IGFscmVhZHkgcmVtb3ZlcyBhIGJpbmRpbmcgKilcbiAgICAgICAgICAgICAgICBoLnNpemUgPC0gaC5zaXplIC0gMTtcbiAgICAgICAgICAgICAgICByZW1vdmVfYnVja2V0IG5leHRcbiAgICAgICAgICAgIGVuZFxuICAgICAgICB8IENvbnMoaGssYyxuZXh0KSAtPiBDb25zKGhrLCBjLCByZW1vdmVfYnVja2V0IG5leHQpIGluXG4gICAgICBsZXQgaSA9IGtleV9pbmRleCBoIGhrZXkgaW5cbiAgICAgIGguZGF0YS4oaSkgPC0gcmVtb3ZlX2J1Y2tldCBoLmRhdGEuKGkpXG5cbiAgICAoKiogeyFmaW5kfSBkb24ndCByZW1vdmUgZGVhZCBrZXlzIGJlY2F1c2UgaXQgd291bGQgYmUgc3VycHJpc2luZyBmb3JcbiAgICAgICAgdGhlIHVzZXIgdGhhdCBhIHJlYWQtb25seSBmdW5jdGlvbiBtdXRhdGVzIHRoZSBzdGF0ZSAoZWcuIGNvbmN1cnJlbnRcbiAgICAgICAgYWNjZXNzKS4gU2FtZSBmb3IgeyFpdGVyfSwgeyFmb2xkfSwgeyFtZW19LlxuICAgICopXG4gICAgbGV0IHJlYyBmaW5kX3JlYyBrZXkgaGtleSA9IGZ1bmN0aW9uXG4gICAgICB8IEVtcHR5IC0+XG4gICAgICAgICAgcmFpc2UgTm90X2ZvdW5kXG4gICAgICB8IENvbnMoaGssIGMsIHJlc3QpIHdoZW4gaGtleSA9IGhrICAtPlxuICAgICAgICAgIGJlZ2luIG1hdGNoIEguZXF1YWwgYyBrZXkgd2l0aFxuICAgICAgICAgIHwgRVRydWUgLT5cbiAgICAgICAgICAgICAgYmVnaW4gbWF0Y2ggSC5nZXRfZGF0YSBjIHdpdGhcbiAgICAgICAgICAgICAgfCBOb25lIC0+XG4gICAgICAgICAgICAgICAgICAoKiBUaGlzIGNhc2UgaXMgbm90IGltcG9zc2libGUgYmVjYXVzZSB0aGUgZ2MgY2FuIHJ1biBiZXR3ZWVuXG4gICAgICAgICAgICAgICAgICAgICAgSC5lcXVhbCBhbmQgSC5nZXRfZGF0YSAqKVxuICAgICAgICAgICAgICAgICAgZmluZF9yZWMga2V5IGhrZXkgcmVzdFxuICAgICAgICAgICAgICB8IFNvbWUgZCAtPiBkXG4gICAgICAgICAgICAgIGVuZFxuICAgICAgICAgIHwgRUZhbHNlIC0+IGZpbmRfcmVjIGtleSBoa2V5IHJlc3RcbiAgICAgICAgICB8IEVEZWFkIC0+XG4gICAgICAgICAgICAgIGZpbmRfcmVjIGtleSBoa2V5IHJlc3RcbiAgICAgICAgICBlbmRcbiAgICAgIHwgQ29ucyhfLCBfLCByZXN0KSAtPlxuICAgICAgICAgIGZpbmRfcmVjIGtleSBoa2V5IHJlc3RcblxuICAgIGxldCBmaW5kIGgga2V5ID1cbiAgICAgIGxldCBoa2V5ID0gSC5oYXNoIGguc2VlZCBrZXkgaW5cbiAgICAgICgqIFRPRE8gaW5saW5lIDMgaXRlcmF0aW9ucyAqKVxuICAgICAgZmluZF9yZWMga2V5IGhrZXkgKGguZGF0YS4oa2V5X2luZGV4IGggaGtleSkpXG5cbiAgICBsZXQgcmVjIGZpbmRfcmVjX29wdCBrZXkgaGtleSA9IGZ1bmN0aW9uXG4gICAgICB8IEVtcHR5IC0+XG4gICAgICAgICAgTm9uZVxuICAgICAgfCBDb25zKGhrLCBjLCByZXN0KSB3aGVuIGhrZXkgPSBoayAgLT5cbiAgICAgICAgICBiZWdpbiBtYXRjaCBILmVxdWFsIGMga2V5IHdpdGhcbiAgICAgICAgICB8IEVUcnVlIC0+XG4gICAgICAgICAgICAgIGJlZ2luIG1hdGNoIEguZ2V0X2RhdGEgYyB3aXRoXG4gICAgICAgICAgICAgIHwgTm9uZSAtPlxuICAgICAgICAgICAgICAgICAgKCogVGhpcyBjYXNlIGlzIG5vdCBpbXBvc3NpYmxlIGJlY2F1c2UgdGhlIGdjIGNhbiBydW4gYmV0d2VlblxuICAgICAgICAgICAgICAgICAgICAgIEguZXF1YWwgYW5kIEguZ2V0X2RhdGEgKilcbiAgICAgICAgICAgICAgICAgIGZpbmRfcmVjX29wdCBrZXkgaGtleSByZXN0XG4gICAgICAgICAgICAgIHwgU29tZSBfIGFzIGQgLT4gZFxuICAgICAgICAgICAgICBlbmRcbiAgICAgICAgICB8IEVGYWxzZSAtPiBmaW5kX3JlY19vcHQga2V5IGhrZXkgcmVzdFxuICAgICAgICAgIHwgRURlYWQgLT5cbiAgICAgICAgICAgICAgZmluZF9yZWNfb3B0IGtleSBoa2V5IHJlc3RcbiAgICAgICAgICBlbmRcbiAgICAgIHwgQ29ucyhfLCBfLCByZXN0KSAtPlxuICAgICAgICAgIGZpbmRfcmVjX29wdCBrZXkgaGtleSByZXN0XG5cbiAgICBsZXQgZmluZF9vcHQgaCBrZXkgPVxuICAgICAgbGV0IGhrZXkgPSBILmhhc2ggaC5zZWVkIGtleSBpblxuICAgICAgKCogVE9ETyBpbmxpbmUgMyBpdGVyYXRpb25zICopXG4gICAgICBmaW5kX3JlY19vcHQga2V5IGhrZXkgKGguZGF0YS4oa2V5X2luZGV4IGggaGtleSkpXG5cbiAgICBsZXQgZmluZF9hbGwgaCBrZXkgPVxuICAgICAgbGV0IGhrZXkgPSBILmhhc2ggaC5zZWVkIGtleSBpblxuICAgICAgbGV0IHJlYyBmaW5kX2luX2J1Y2tldCA9IGZ1bmN0aW9uXG4gICAgICB8IEVtcHR5IC0+IFtdXG4gICAgICB8IENvbnMoaGssIGMsIHJlc3QpIHdoZW4gaGtleSA9IGhrICAtPlxuICAgICAgICAgIGJlZ2luIG1hdGNoIEguZXF1YWwgYyBrZXkgd2l0aFxuICAgICAgICAgIHwgRVRydWUgLT4gYmVnaW4gbWF0Y2ggSC5nZXRfZGF0YSBjIHdpdGhcbiAgICAgICAgICAgICAgfCBOb25lIC0+XG4gICAgICAgICAgICAgICAgICBmaW5kX2luX2J1Y2tldCByZXN0XG4gICAgICAgICAgICAgIHwgU29tZSBkIC0+IGQ6OmZpbmRfaW5fYnVja2V0IHJlc3RcbiAgICAgICAgICAgIGVuZFxuICAgICAgICAgIHwgRUZhbHNlIC0+IGZpbmRfaW5fYnVja2V0IHJlc3RcbiAgICAgICAgICB8IEVEZWFkIC0+XG4gICAgICAgICAgICAgIGZpbmRfaW5fYnVja2V0IHJlc3RcbiAgICAgICAgICBlbmRcbiAgICAgIHwgQ29ucyhfLCBfLCByZXN0KSAtPlxuICAgICAgICAgIGZpbmRfaW5fYnVja2V0IHJlc3QgaW5cbiAgICAgIGZpbmRfaW5fYnVja2V0IGguZGF0YS4oa2V5X2luZGV4IGggaGtleSlcblxuXG4gICAgbGV0IHJlcGxhY2UgaCBrZXkgaW5mbyA9XG4gICAgICBsZXQgaGtleSA9IEguaGFzaCBoLnNlZWQga2V5IGluXG4gICAgICBsZXQgcmVjIHJlcGxhY2VfYnVja2V0ID0gZnVuY3Rpb25cbiAgICAgICAgfCBFbXB0eSAtPiByYWlzZSBOb3RfZm91bmRcbiAgICAgICAgfCBDb25zKGhrLCBjLCBuZXh0KSB3aGVuIGhrZXkgPSBoayAtPlxuICAgICAgICAgICAgYmVnaW4gbWF0Y2ggSC5lcXVhbCBjIGtleSB3aXRoXG4gICAgICAgICAgICB8IEVUcnVlIC0+IEguc2V0X2tleV9kYXRhIGMga2V5IGluZm9cbiAgICAgICAgICAgIHwgRUZhbHNlIHwgRURlYWQgLT4gcmVwbGFjZV9idWNrZXQgbmV4dFxuICAgICAgICAgICAgZW5kXG4gICAgICAgIHwgQ29ucyhfLF8sbmV4dCkgLT4gcmVwbGFjZV9idWNrZXQgbmV4dFxuICAgICAgaW5cbiAgICAgIGxldCBpID0ga2V5X2luZGV4IGggaGtleSBpblxuICAgICAgbGV0IGwgPSBoLmRhdGEuKGkpIGluXG4gICAgICB0cnlcbiAgICAgICAgcmVwbGFjZV9idWNrZXQgbFxuICAgICAgd2l0aCBOb3RfZm91bmQgLT5cbiAgICAgICAgbGV0IGNvbnRhaW5lciA9IEguY3JlYXRlIGtleSBpbmZvIGluXG4gICAgICAgIGguZGF0YS4oaSkgPC0gQ29ucyhoa2V5LCBjb250YWluZXIsIGwpO1xuICAgICAgICBoLnNpemUgPC0gaC5zaXplICsgMTtcbiAgICAgICAgaWYgaC5zaXplID4gQXJyYXkubGVuZ3RoIGguZGF0YSBsc2wgMSB0aGVuIHJlc2l6ZSBoXG5cbiAgICBsZXQgbWVtIGgga2V5ID1cbiAgICAgIGxldCBoa2V5ID0gSC5oYXNoIGguc2VlZCBrZXkgaW5cbiAgICAgIGxldCByZWMgbWVtX2luX2J1Y2tldCA9IGZ1bmN0aW9uXG4gICAgICB8IEVtcHR5IC0+XG4gICAgICAgICAgZmFsc2VcbiAgICAgIHwgQ29ucyhoaywgYywgcmVzdCkgd2hlbiBoayA9IGhrZXkgLT5cbiAgICAgICAgICBiZWdpbiBtYXRjaCBILmVxdWFsIGMga2V5IHdpdGhcbiAgICAgICAgICB8IEVUcnVlIC0+IHRydWVcbiAgICAgICAgICB8IEVGYWxzZSB8IEVEZWFkIC0+IG1lbV9pbl9idWNrZXQgcmVzdFxuICAgICAgICAgIGVuZFxuICAgICAgfCBDb25zKF9oaywgX2MsIHJlc3QpIC0+IG1lbV9pbl9idWNrZXQgcmVzdCBpblxuICAgICAgbWVtX2luX2J1Y2tldCBoLmRhdGEuKGtleV9pbmRleCBoIGhrZXkpXG5cbiAgICBsZXQgaXRlciBmIGggPVxuICAgICAgbGV0IHJlYyBkb19idWNrZXQgPSBmdW5jdGlvblxuICAgICAgICB8IEVtcHR5IC0+XG4gICAgICAgICAgICAoKVxuICAgICAgICB8IENvbnMoXywgYywgcmVzdCkgLT5cbiAgICAgICAgICAgIGJlZ2luIG1hdGNoIEguZ2V0X2tleSBjLCBILmdldF9kYXRhIGMgd2l0aFxuICAgICAgICAgICAgfCBOb25lLCBfIHwgXywgTm9uZSAtPiAoKVxuICAgICAgICAgICAgfCBTb21lIGssIFNvbWUgZCAtPiBmIGsgZFxuICAgICAgICAgICAgZW5kOyBkb19idWNrZXQgcmVzdCBpblxuICAgICAgbGV0IGQgPSBoLmRhdGEgaW5cbiAgICAgIGZvciBpID0gMCB0byBBcnJheS5sZW5ndGggZCAtIDEgZG9cbiAgICAgICAgZG9fYnVja2V0IGQuKGkpXG4gICAgICBkb25lXG5cbiAgICBsZXQgZm9sZCBmIGggaW5pdCA9XG4gICAgICBsZXQgcmVjIGRvX2J1Y2tldCBiIGFjY3UgPVxuICAgICAgICBtYXRjaCBiIHdpdGhcbiAgICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgICAgYWNjdVxuICAgICAgICB8IENvbnMoXywgYywgcmVzdCkgLT5cbiAgICAgICAgICAgIGxldCBhY2N1ID0gYmVnaW4gbWF0Y2ggSC5nZXRfa2V5IGMsIEguZ2V0X2RhdGEgYyB3aXRoXG4gICAgICAgICAgICAgIHwgTm9uZSwgXyB8IF8sIE5vbmUgLT4gYWNjdVxuICAgICAgICAgICAgICB8IFNvbWUgaywgU29tZSBkIC0+IGYgayBkIGFjY3VcbiAgICAgICAgICAgIGVuZCBpblxuICAgICAgICAgICAgZG9fYnVja2V0IHJlc3QgYWNjdSAgaW5cbiAgICAgIGxldCBkID0gaC5kYXRhIGluXG4gICAgICBsZXQgYWNjdSA9IHJlZiBpbml0IGluXG4gICAgICBmb3IgaSA9IDAgdG8gQXJyYXkubGVuZ3RoIGQgLSAxIGRvXG4gICAgICAgIGFjY3UgOj0gZG9fYnVja2V0IGQuKGkpICFhY2N1XG4gICAgICBkb25lO1xuICAgICAgIWFjY3VcblxuICAgIGxldCBmaWx0ZXJfbWFwX2lucGxhY2UgZiBoID1cbiAgICAgIGxldCByZWMgZG9fYnVja2V0ID0gZnVuY3Rpb25cbiAgICAgICAgfCBFbXB0eSAtPlxuICAgICAgICAgICAgRW1wdHlcbiAgICAgICAgfCBDb25zKGhrLCBjLCByZXN0KSAtPlxuICAgICAgICAgICAgbWF0Y2ggSC5nZXRfa2V5IGMsIEguZ2V0X2RhdGEgYyB3aXRoXG4gICAgICAgICAgICB8IE5vbmUsIF8gfCBfLCBOb25lIC0+XG4gICAgICAgICAgICAgICAgZG9fYnVja2V0IHJlc3RcbiAgICAgICAgICAgIHwgU29tZSBrLCBTb21lIGQgLT5cbiAgICAgICAgICAgICAgICBtYXRjaCBmIGsgZCB3aXRoXG4gICAgICAgICAgICAgICAgfCBOb25lIC0+XG4gICAgICAgICAgICAgICAgICAgIGRvX2J1Y2tldCByZXN0XG4gICAgICAgICAgICAgICAgfCBTb21lIG5ld19kIC0+XG4gICAgICAgICAgICAgICAgICAgIEguc2V0X2tleV9kYXRhIGMgayBuZXdfZDtcbiAgICAgICAgICAgICAgICAgICAgQ29ucyhoaywgYywgZG9fYnVja2V0IHJlc3QpXG4gICAgICBpblxuICAgICAgbGV0IGQgPSBoLmRhdGEgaW5cbiAgICAgIGZvciBpID0gMCB0byBBcnJheS5sZW5ndGggZCAtIDEgZG9cbiAgICAgICAgZC4oaSkgPC0gZG9fYnVja2V0IGQuKGkpXG4gICAgICBkb25lXG5cbiAgICBsZXQgbGVuZ3RoIGggPSBoLnNpemVcblxuICAgIGxldCByZWMgYnVja2V0X2xlbmd0aCBhY2N1ID0gZnVuY3Rpb25cbiAgICAgIHwgRW1wdHkgLT4gYWNjdVxuICAgICAgfCBDb25zKF8sIF8sIHJlc3QpIC0+IGJ1Y2tldF9sZW5ndGggKGFjY3UgKyAxKSByZXN0XG5cbiAgICBsZXQgc3RhdHMgaCA9XG4gICAgICBsZXQgbWJsID1cbiAgICAgICAgQXJyYXkuZm9sZF9sZWZ0IChmdW4gbSBiIC0+IEludC5tYXggbSAoYnVja2V0X2xlbmd0aCAwIGIpKSAwIGguZGF0YSBpblxuICAgICAgbGV0IGhpc3RvID0gQXJyYXkubWFrZSAobWJsICsgMSkgMCBpblxuICAgICAgQXJyYXkuaXRlclxuICAgICAgICAoZnVuIGIgLT5cbiAgICAgICAgICAgbGV0IGwgPSBidWNrZXRfbGVuZ3RoIDAgYiBpblxuICAgICAgICAgICBoaXN0by4obCkgPC0gaGlzdG8uKGwpICsgMSlcbiAgICAgICAgaC5kYXRhO1xuICAgICAgeyBIYXNodGJsLm51bV9iaW5kaW5ncyA9IGguc2l6ZTtcbiAgICAgICAgbnVtX2J1Y2tldHMgPSBBcnJheS5sZW5ndGggaC5kYXRhO1xuICAgICAgICBtYXhfYnVja2V0X2xlbmd0aCA9IG1ibDtcbiAgICAgICAgYnVja2V0X2hpc3RvZ3JhbSA9IGhpc3RvIH1cblxuICAgIGxldCByZWMgYnVja2V0X2xlbmd0aF9hbGl2ZSBhY2N1ID0gZnVuY3Rpb25cbiAgICAgIHwgRW1wdHkgLT4gYWNjdVxuICAgICAgfCBDb25zKF8sIGMsIHJlc3QpIHdoZW4gSC5jaGVja19rZXkgYyAtPlxuICAgICAgICAgIGJ1Y2tldF9sZW5ndGhfYWxpdmUgKGFjY3UgKyAxKSByZXN0XG4gICAgICB8IENvbnMoXywgXywgcmVzdCkgLT4gYnVja2V0X2xlbmd0aF9hbGl2ZSBhY2N1IHJlc3RcblxuICAgIGxldCBzdGF0c19hbGl2ZSBoID1cbiAgICAgIGxldCBzaXplID0gcmVmIDAgaW5cbiAgICAgIGxldCBtYmwgPVxuICAgICAgICBBcnJheS5mb2xkX2xlZnRcbiAgICAgICAgICAoZnVuIG0gYiAtPiBJbnQubWF4IG0gKGJ1Y2tldF9sZW5ndGhfYWxpdmUgMCBiKSkgMCBoLmRhdGFcbiAgICAgIGluXG4gICAgICBsZXQgaGlzdG8gPSBBcnJheS5tYWtlIChtYmwgKyAxKSAwIGluXG4gICAgICBBcnJheS5pdGVyXG4gICAgICAgIChmdW4gYiAtPlxuICAgICAgICAgICBsZXQgbCA9IGJ1Y2tldF9sZW5ndGhfYWxpdmUgMCBiIGluXG4gICAgICAgICAgIHNpemUgOj0gIXNpemUgKyBsO1xuICAgICAgICAgICBoaXN0by4obCkgPC0gaGlzdG8uKGwpICsgMSlcbiAgICAgICAgaC5kYXRhO1xuICAgICAgeyBIYXNodGJsLm51bV9iaW5kaW5ncyA9ICFzaXplO1xuICAgICAgICBudW1fYnVja2V0cyA9IEFycmF5Lmxlbmd0aCBoLmRhdGE7XG4gICAgICAgIG1heF9idWNrZXRfbGVuZ3RoID0gbWJsO1xuICAgICAgICBidWNrZXRfaGlzdG9ncmFtID0gaGlzdG8gfVxuXG4gICAgbGV0IHRvX3NlcSB0YmwgPVxuICAgICAgKCogY2FwdHVyZSBjdXJyZW50IGFycmF5LCBzbyB0aGF0IGV2ZW4gaWYgdGhlIHRhYmxlIGlzIHJlc2l6ZWQgd2VcbiAgICAgICAgIGtlZXAgaXRlcmF0aW5nIG9uIHRoZSBzYW1lIGFycmF5ICopXG4gICAgICBsZXQgdGJsX2RhdGEgPSB0YmwuZGF0YSBpblxuICAgICAgKCogc3RhdGU6IGluZGV4ICogbmV4dCBidWNrZXQgdG8gdHJhdmVyc2UgKilcbiAgICAgIGxldCByZWMgYXV4IGkgYnVjayAoKSA9IG1hdGNoIGJ1Y2sgd2l0aFxuICAgICAgICB8IEVtcHR5IC0+XG4gICAgICAgICAgICBpZiBpID0gQXJyYXkubGVuZ3RoIHRibF9kYXRhXG4gICAgICAgICAgICB0aGVuIFNlcS5OaWxcbiAgICAgICAgICAgIGVsc2UgYXV4KGkrMSkgdGJsX2RhdGEuKGkpICgpXG4gICAgICAgIHwgQ29ucyAoXywgYywgbmV4dCkgLT5cbiAgICAgICAgICAgIGJlZ2luIG1hdGNoIEguZ2V0X2tleSBjLCBILmdldF9kYXRhIGMgd2l0aFxuICAgICAgICAgICAgICB8IE5vbmUsIF8gfCBfLCBOb25lIC0+IGF1eCBpIG5leHQgKClcbiAgICAgICAgICAgICAgfCBTb21lIGtleSwgU29tZSBkYXRhIC0+XG4gICAgICAgICAgICAgICAgICBTZXEuQ29ucyAoKGtleSwgZGF0YSksIGF1eCBpIG5leHQpXG4gICAgICAgICAgICBlbmRcbiAgICAgIGluXG4gICAgICBhdXggMCBFbXB0eVxuXG4gICAgbGV0IHRvX3NlcV9rZXlzIG0gPSBTZXEubWFwIGZzdCAodG9fc2VxIG0pXG5cbiAgICBsZXQgdG9fc2VxX3ZhbHVlcyBtID0gU2VxLm1hcCBzbmQgKHRvX3NlcSBtKVxuXG4gICAgbGV0IGFkZF9zZXEgdGJsIGkgPVxuICAgICAgU2VxLml0ZXIgKGZ1biAoayx2KSAtPiBhZGQgdGJsIGsgdikgaVxuXG4gICAgbGV0IHJlcGxhY2Vfc2VxIHRibCBpID1cbiAgICAgIFNlcS5pdGVyIChmdW4gKGssdikgLT4gcmVwbGFjZSB0YmwgayB2KSBpXG5cbiAgICBsZXQgb2Zfc2VxIGkgPVxuICAgICAgbGV0IHRibCA9IGNyZWF0ZSAxNiBpblxuICAgICAgcmVwbGFjZV9zZXEgdGJsIGk7XG4gICAgICB0YmxcblxuICBlbmRcbmVuZFxuXG5tb2R1bGUgT2JqRXBoID0gT2JqLkVwaGVtZXJvblxuXG5sZXQgX29ial9vcHQgOiBPYmoudCBvcHRpb24gLT4gJ2Egb3B0aW9uID0gZnVuIHggLT5cbiAgbWF0Y2ggeCB3aXRoXG4gIHwgTm9uZSAtPiB4XG4gIHwgU29tZSB2IC0+IFNvbWUgKE9iai5vYmogdilcblxuKCoqIFRoZSBwcmV2aW91cyBmdW5jdGlvbiBpcyB0eXBlZCBzbyB0aGlzIG9uZSBpcyBhbHNvIGNvcnJlY3QgKilcbmxldCBvYmpfb3B0IDogT2JqLnQgb3B0aW9uIC0+ICdhIG9wdGlvbiA9IGZ1biB4IC0+IE9iai5tYWdpYyB4XG5cblxubW9kdWxlIEsxID0gc3RydWN0XG4gIHR5cGUgKCdrLCdkKSB0ID0gT2JqRXBoLnRcblxuICBsZXQgY3JlYXRlICgpIDogKCdrLCdkKSB0ID0gT2JqRXBoLmNyZWF0ZSAxXG5cbiAgbGV0IGdldF9rZXkgKHQ6KCdrLCdkKSB0KSA6ICdrIG9wdGlvbiA9IG9ial9vcHQgKE9iakVwaC5nZXRfa2V5IHQgMClcbiAgbGV0IGdldF9rZXlfY29weSAodDooJ2ssJ2QpIHQpIDogJ2sgb3B0aW9uID0gb2JqX29wdCAoT2JqRXBoLmdldF9rZXlfY29weSB0IDApXG4gIGxldCBzZXRfa2V5ICh0OignaywnZCkgdCkgKGs6J2spIDogdW5pdCA9IE9iakVwaC5zZXRfa2V5IHQgMCAoT2JqLnJlcHIgaylcbiAgbGV0IHVuc2V0X2tleSAodDooJ2ssJ2QpIHQpIDogdW5pdCA9IE9iakVwaC51bnNldF9rZXkgdCAwXG4gIGxldCBjaGVja19rZXkgKHQ6KCdrLCdkKSB0KSA6IGJvb2wgPSBPYmpFcGguY2hlY2tfa2V5IHQgMFxuXG4gIGxldCBibGl0X2tleSAodDE6KCdrLCdkKSB0KSAodDI6KCdrLCdkKSB0KTogdW5pdCA9XG4gICAgT2JqRXBoLmJsaXRfa2V5IHQxIDAgdDIgMCAxXG5cbiAgbGV0IGdldF9kYXRhICh0OignaywnZCkgdCkgOiAnZCBvcHRpb24gPSBvYmpfb3B0IChPYmpFcGguZ2V0X2RhdGEgdClcbiAgbGV0IGdldF9kYXRhX2NvcHkgKHQ6KCdrLCdkKSB0KSA6ICdkIG9wdGlvbiA9IG9ial9vcHQgKE9iakVwaC5nZXRfZGF0YV9jb3B5IHQpXG4gIGxldCBzZXRfZGF0YSAodDooJ2ssJ2QpIHQpIChkOidkKSA6IHVuaXQgPSBPYmpFcGguc2V0X2RhdGEgdCAoT2JqLnJlcHIgZClcbiAgbGV0IHVuc2V0X2RhdGEgKHQ6KCdrLCdkKSB0KSA6IHVuaXQgPSBPYmpFcGgudW5zZXRfZGF0YSB0XG4gIGxldCBjaGVja19kYXRhICh0OignaywnZCkgdCkgOiBib29sID0gT2JqRXBoLmNoZWNrX2RhdGEgdFxuICBsZXQgYmxpdF9kYXRhICh0MTooXywnZCkgdCkgKHQyOihfLCdkKSB0KSA6IHVuaXQgPSBPYmpFcGguYmxpdF9kYXRhIHQxIHQyXG5cbiAgbGV0IG1ha2Uga2V5IGRhdGEgPVxuICAgIGxldCBlcGggPSBjcmVhdGUgKCkgaW5cbiAgICBzZXRfZGF0YSBlcGggZGF0YTtcbiAgICBzZXRfa2V5IGVwaCBrZXk7XG4gICAgZXBoXG5cbiAgbGV0IHF1ZXJ5IGVwaCBrZXkgPVxuICAgIG1hdGNoIGdldF9rZXkgZXBoIHdpdGhcbiAgICB8IE5vbmUgLT4gTm9uZVxuICAgIHwgU29tZSBrIHdoZW4gayA9PSBrZXkgLT4gZ2V0X2RhdGEgZXBoXG4gICAgfCBTb21lIF8gLT4gTm9uZVxuXG4gIG1vZHVsZSBNYWtlU2VlZGVkIChIOkhhc2h0YmwuU2VlZGVkSGFzaGVkVHlwZSkgPVxuICAgIEdlbkhhc2hUYWJsZS5NYWtlU2VlZGVkKHN0cnVjdFxuICAgICAgdHlwZSAnYSBjb250YWluZXIgPSAoSC50LCdhKSB0XG4gICAgICB0eXBlIHQgPSBILnRcbiAgICAgIGxldCBjcmVhdGUgayBkID1cbiAgICAgICAgbGV0IGMgPSBjcmVhdGUgKCkgaW5cbiAgICAgICAgc2V0X2RhdGEgYyBkO1xuICAgICAgICBzZXRfa2V5IGMgaztcbiAgICAgICAgY1xuICAgICAgbGV0IGhhc2ggPSBILmhhc2hcbiAgICAgIGxldCBlcXVhbCBjIGsgPVxuICAgICAgICAoKiB7IWdldF9rZXlfY29weX0gaXMgbm90IHVzZWQgYmVjYXVzZSB0aGUgZXF1YWxpdHkgb2YgdGhlIHVzZXIgY2FuIGJlXG4gICAgICAgICAgICB0aGUgcGh5c2ljYWwgZXF1YWxpdHkgKilcbiAgICAgICAgbWF0Y2ggZ2V0X2tleSBjIHdpdGhcbiAgICAgICAgfCBOb25lIC0+IEdlbkhhc2hUYWJsZS5FRGVhZFxuICAgICAgICB8IFNvbWUgaycgLT5cbiAgICAgICAgICAgIGlmIEguZXF1YWwgayBrJyB0aGVuIEdlbkhhc2hUYWJsZS5FVHJ1ZSBlbHNlIEdlbkhhc2hUYWJsZS5FRmFsc2VcbiAgICAgIGxldCBnZXRfZGF0YSA9IGdldF9kYXRhXG4gICAgICBsZXQgZ2V0X2tleSA9IGdldF9rZXlcbiAgICAgIGxldCBzZXRfa2V5X2RhdGEgYyBrIGQgPVxuICAgICAgICB1bnNldF9kYXRhIGM7XG4gICAgICAgIHNldF9rZXkgYyBrO1xuICAgICAgICBzZXRfZGF0YSBjIGRcbiAgICAgIGxldCBjaGVja19rZXkgPSBjaGVja19rZXlcbiAgICBlbmQpXG5cbiAgbW9kdWxlIE1ha2UoSDogSGFzaHRibC5IYXNoZWRUeXBlKTogKFMgd2l0aCB0eXBlIGtleSA9IEgudCkgPVxuICBzdHJ1Y3RcbiAgICBpbmNsdWRlIE1ha2VTZWVkZWQoc3RydWN0XG4gICAgICAgIHR5cGUgdCA9IEgudFxuICAgICAgICBsZXQgZXF1YWwgPSBILmVxdWFsXG4gICAgICAgIGxldCBoYXNoIChfc2VlZDogaW50KSB4ID0gSC5oYXNoIHhcbiAgICAgIGVuZClcbiAgICBsZXQgY3JlYXRlIHN6ID0gY3JlYXRlIH5yYW5kb206ZmFsc2Ugc3pcbiAgICBsZXQgb2Zfc2VxIGkgPVxuICAgICAgbGV0IHRibCA9IGNyZWF0ZSAxNiBpblxuICAgICAgcmVwbGFjZV9zZXEgdGJsIGk7XG4gICAgICB0YmxcbiAgZW5kXG5cbiAgbW9kdWxlIEJ1Y2tldCA9IHN0cnVjdFxuXG4gICAgdHlwZSBub25yZWMgKCdrLCAnZCkgdCA9ICgnaywgJ2QpIHQgbGlzdCByZWZcbiAgICBsZXQgazFfbWFrZSA9IG1ha2VcbiAgICBsZXQgbWFrZSAoKSA9IHJlZiBbXVxuICAgIGxldCBhZGQgYiBrIGQgPSBiIDo9IGsxX21ha2UgayBkIDo6ICFiXG5cbiAgICBsZXQgdGVzdF9rZXkgayBlID1cbiAgICAgIG1hdGNoIGdldF9rZXkgZSB3aXRoXG4gICAgICB8IFNvbWUgeCB3aGVuIHggPT0gayAtPiB0cnVlXG4gICAgICB8IF8gLT4gZmFsc2VcblxuICAgIGxldCByZW1vdmUgYiBrID1cbiAgICAgIGxldCByZWMgbG9vcCBsIGFjYyA9XG4gICAgICAgIG1hdGNoIGwgd2l0aFxuICAgICAgICB8IFtdIC0+ICgpXG4gICAgICAgIHwgaCA6OiB0IHdoZW4gdGVzdF9rZXkgayBoIC0+IGIgOj0gTGlzdC5yZXZfYXBwZW5kIGFjYyB0XG4gICAgICAgIHwgaCA6OiB0IC0+IGxvb3AgdCAoaCA6OiBhY2MpXG4gICAgICBpblxuICAgICAgbG9vcCAhYiBbXVxuXG4gICAgbGV0IGZpbmQgYiBrID1cbiAgICAgIG1hdGNoIExpc3QuZmluZF9vcHQgKHRlc3Rfa2V5IGspICFiIHdpdGhcbiAgICAgIHwgU29tZSBlIC0+IGdldF9kYXRhIGVcbiAgICAgIHwgTm9uZSAtPiBOb25lXG5cbiAgICBsZXQgbGVuZ3RoIGIgPSBMaXN0Lmxlbmd0aCAhYlxuICAgIGxldCBjbGVhciBiID0gYiA6PSBbXVxuXG4gIGVuZFxuXG5lbmRcblxubW9kdWxlIEsyID0gc3RydWN0XG4gIHR5cGUgKCdrMSwgJ2syLCAnZCkgdCA9IE9iakVwaC50XG5cbiAgbGV0IGNyZWF0ZSAoKSA6ICgnazEsJ2syLCdkKSB0ID0gT2JqRXBoLmNyZWF0ZSAyXG5cbiAgbGV0IGdldF9rZXkxICh0OignazEsJ2syLCdkKSB0KSA6ICdrMSBvcHRpb24gPSBvYmpfb3B0IChPYmpFcGguZ2V0X2tleSB0IDApXG4gIGxldCBnZXRfa2V5MV9jb3B5ICh0OignazEsJ2syLCdkKSB0KSA6ICdrMSBvcHRpb24gPVxuICAgIG9ial9vcHQgKE9iakVwaC5nZXRfa2V5X2NvcHkgdCAwKVxuICBsZXQgc2V0X2tleTEgKHQ6KCdrMSwnazIsJ2QpIHQpIChrOidrMSkgOiB1bml0ID1cbiAgICBPYmpFcGguc2V0X2tleSB0IDAgKE9iai5yZXByIGspXG4gIGxldCB1bnNldF9rZXkxICh0OignazEsJ2syLCdkKSB0KSA6IHVuaXQgPSBPYmpFcGgudW5zZXRfa2V5IHQgMFxuICBsZXQgY2hlY2tfa2V5MSAodDooJ2sxLCdrMiwnZCkgdCkgOiBib29sID0gT2JqRXBoLmNoZWNrX2tleSB0IDBcblxuICBsZXQgZ2V0X2tleTIgKHQ6KCdrMSwnazIsJ2QpIHQpIDogJ2syIG9wdGlvbiA9IG9ial9vcHQgKE9iakVwaC5nZXRfa2V5IHQgMSlcbiAgbGV0IGdldF9rZXkyX2NvcHkgKHQ6KCdrMSwnazIsJ2QpIHQpIDogJ2syIG9wdGlvbiA9XG4gICAgb2JqX29wdCAoT2JqRXBoLmdldF9rZXlfY29weSB0IDEpXG4gIGxldCBzZXRfa2V5MiAodDooJ2sxLCdrMiwnZCkgdCkgKGs6J2syKSA6IHVuaXQgPVxuICAgIE9iakVwaC5zZXRfa2V5IHQgMSAoT2JqLnJlcHIgaylcbiAgbGV0IHVuc2V0X2tleTIgKHQ6KCdrMSwnazIsJ2QpIHQpIDogdW5pdCA9IE9iakVwaC51bnNldF9rZXkgdCAxXG4gIGxldCBjaGVja19rZXkyICh0OignazEsJ2syLCdkKSB0KSA6IGJvb2wgPSBPYmpFcGguY2hlY2tfa2V5IHQgMVxuXG5cbiAgbGV0IGJsaXRfa2V5MSAodDE6KCdrMSxfLF8pIHQpICh0MjooJ2sxLF8sXykgdCkgOiB1bml0ID1cbiAgICBPYmpFcGguYmxpdF9rZXkgdDEgMCB0MiAwIDFcbiAgbGV0IGJsaXRfa2V5MiAodDE6KF8sJ2syLF8pIHQpICh0MjooXywnazIsXykgdCkgOiB1bml0ID1cbiAgICBPYmpFcGguYmxpdF9rZXkgdDEgMSB0MiAxIDFcbiAgbGV0IGJsaXRfa2V5MTIgKHQxOignazEsJ2syLF8pIHQpICh0MjooJ2sxLCdrMixfKSB0KSA6IHVuaXQgPVxuICAgIE9iakVwaC5ibGl0X2tleSB0MSAwIHQyIDAgMlxuXG4gIGxldCBnZXRfZGF0YSAodDooJ2sxLCdrMiwnZCkgdCkgOiAnZCBvcHRpb24gPSBvYmpfb3B0IChPYmpFcGguZ2V0X2RhdGEgdClcbiAgbGV0IGdldF9kYXRhX2NvcHkgKHQ6KCdrMSwnazIsJ2QpIHQpIDogJ2Qgb3B0aW9uID1cbiAgICBvYmpfb3B0IChPYmpFcGguZ2V0X2RhdGFfY29weSB0KVxuICBsZXQgc2V0X2RhdGEgKHQ6KCdrMSwnazIsJ2QpIHQpIChkOidkKSA6IHVuaXQgPVxuICAgIE9iakVwaC5zZXRfZGF0YSB0IChPYmoucmVwciBkKVxuICBsZXQgdW5zZXRfZGF0YSAodDooJ2sxLCdrMiwnZCkgdCkgOiB1bml0ID0gT2JqRXBoLnVuc2V0X2RhdGEgdFxuICBsZXQgY2hlY2tfZGF0YSAodDooJ2sxLCdrMiwnZCkgdCkgOiBib29sID0gT2JqRXBoLmNoZWNrX2RhdGEgdFxuICBsZXQgYmxpdF9kYXRhICh0MTooXyxfLCdkKSB0KSAodDI6KF8sXywnZCkgdCkgOiB1bml0ID0gT2JqRXBoLmJsaXRfZGF0YSB0MSB0MlxuXG4gIGxldCBtYWtlIGtleTEga2V5MiBkYXRhID1cbiAgICBsZXQgZXBoID0gY3JlYXRlICgpIGluXG4gICAgc2V0X2RhdGEgZXBoIGRhdGE7XG4gICAgc2V0X2tleTEgZXBoIGtleTE7XG4gICAgc2V0X2tleTIgZXBoIGtleTI7XG4gICAgaWdub3JlIChTeXMub3BhcXVlX2lkZW50aXR5IGtleTEpO1xuICAgIGVwaFxuXG4gIGxldCBxdWVyeSBlcGgga2V5MSBrZXkyID1cbiAgICBtYXRjaCBnZXRfa2V5MSBlcGggd2l0aFxuICAgIHwgTm9uZSAtPiBOb25lXG4gICAgfCBTb21lIGsgd2hlbiBrID09IGtleTEgLT5cbiAgICAgICAgYmVnaW4gbWF0Y2ggZ2V0X2tleTIgZXBoIHdpdGhcbiAgICAgICAgfCBOb25lIC0+IE5vbmVcbiAgICAgICAgfCBTb21lIGsgd2hlbiBrID09IGtleTIgLT4gZ2V0X2RhdGEgZXBoXG4gICAgICAgIHwgU29tZSBfIC0+IE5vbmVcbiAgICAgICAgZW5kXG4gICAgfCBTb21lIF8gLT4gTm9uZVxuXG4gIG1vZHVsZSBNYWtlU2VlZGVkXG4gICAgICAoSDE6SGFzaHRibC5TZWVkZWRIYXNoZWRUeXBlKVxuICAgICAgKEgyOkhhc2h0YmwuU2VlZGVkSGFzaGVkVHlwZSkgPVxuICAgIEdlbkhhc2hUYWJsZS5NYWtlU2VlZGVkKHN0cnVjdFxuICAgICAgdHlwZSAnYSBjb250YWluZXIgPSAoSDEudCxIMi50LCdhKSB0XG4gICAgICB0eXBlIHQgPSBIMS50ICogSDIudFxuICAgICAgbGV0IGNyZWF0ZSAoazEsazIpIGQgPVxuICAgICAgICBsZXQgYyA9IGNyZWF0ZSAoKSBpblxuICAgICAgICBzZXRfZGF0YSBjIGQ7XG4gICAgICAgIHNldF9rZXkxIGMgazE7IHNldF9rZXkyIGMgazI7XG4gICAgICAgIGNcbiAgICAgIGxldCBoYXNoIHNlZWQgKGsxLGsyKSA9XG4gICAgICAgIEgxLmhhc2ggc2VlZCBrMSArIEgyLmhhc2ggc2VlZCBrMiAqIDY1NTk5XG4gICAgICBsZXQgZXF1YWwgYyAoazEsazIpID1cbiAgICAgICAgbWF0Y2ggZ2V0X2tleTEgYywgZ2V0X2tleTIgYyB3aXRoXG4gICAgICAgIHwgTm9uZSwgXyB8IF8gLCBOb25lIC0+IEdlbkhhc2hUYWJsZS5FRGVhZFxuICAgICAgICB8IFNvbWUgazEnLCBTb21lIGsyJyAtPlxuICAgICAgICAgICAgaWYgSDEuZXF1YWwgazEgazEnICYmIEgyLmVxdWFsIGsyIGsyJ1xuICAgICAgICAgICAgdGhlbiBHZW5IYXNoVGFibGUuRVRydWUgZWxzZSBHZW5IYXNoVGFibGUuRUZhbHNlXG4gICAgICBsZXQgZ2V0X2RhdGEgPSBnZXRfZGF0YVxuICAgICAgbGV0IGdldF9rZXkgYyA9XG4gICAgICAgIG1hdGNoIGdldF9rZXkxIGMsIGdldF9rZXkyIGMgd2l0aFxuICAgICAgICB8IE5vbmUsIF8gfCBfICwgTm9uZSAtPiBOb25lXG4gICAgICAgIHwgU29tZSBrMScsIFNvbWUgazInIC0+IFNvbWUgKGsxJywgazInKVxuICAgICAgbGV0IHNldF9rZXlfZGF0YSBjIChrMSxrMikgZCA9XG4gICAgICAgIHVuc2V0X2RhdGEgYztcbiAgICAgICAgc2V0X2tleTEgYyBrMTsgc2V0X2tleTIgYyBrMjtcbiAgICAgICAgc2V0X2RhdGEgYyBkXG4gICAgICBsZXQgY2hlY2tfa2V5IGMgPSBjaGVja19rZXkxIGMgJiYgY2hlY2tfa2V5MiBjXG4gICAgZW5kKVxuXG4gIG1vZHVsZSBNYWtlKEgxOiBIYXNodGJsLkhhc2hlZFR5cGUpKEgyOiBIYXNodGJsLkhhc2hlZFR5cGUpOlxuICAgIChTIHdpdGggdHlwZSBrZXkgPSBIMS50ICogSDIudCkgPVxuICBzdHJ1Y3RcbiAgICBpbmNsdWRlIE1ha2VTZWVkZWRcbiAgICAgICAgKHN0cnVjdFxuICAgICAgICAgIHR5cGUgdCA9IEgxLnRcbiAgICAgICAgICBsZXQgZXF1YWwgPSBIMS5lcXVhbFxuICAgICAgICAgIGxldCBoYXNoIChfc2VlZDogaW50KSB4ID0gSDEuaGFzaCB4XG4gICAgICAgIGVuZClcbiAgICAgICAgKHN0cnVjdFxuICAgICAgICAgIHR5cGUgdCA9IEgyLnRcbiAgICAgICAgICBsZXQgZXF1YWwgPSBIMi5lcXVhbFxuICAgICAgICAgIGxldCBoYXNoIChfc2VlZDogaW50KSB4ID0gSDIuaGFzaCB4XG4gICAgICAgIGVuZClcbiAgICBsZXQgY3JlYXRlIHN6ID0gY3JlYXRlIH5yYW5kb206ZmFsc2Ugc3pcbiAgICBsZXQgb2Zfc2VxIGkgPVxuICAgICAgbGV0IHRibCA9IGNyZWF0ZSAxNiBpblxuICAgICAgcmVwbGFjZV9zZXEgdGJsIGk7XG4gICAgICB0YmxcbiAgZW5kXG5cbiAgbW9kdWxlIEJ1Y2tldCA9IHN0cnVjdFxuXG4gICAgdHlwZSBub25yZWMgKCdrMSwgJ2syLCAnZCkgdCA9ICgnazEsICdrMiwgJ2QpIHQgbGlzdCByZWZcbiAgICBsZXQgazJfbWFrZSA9IG1ha2VcbiAgICBsZXQgbWFrZSAoKSA9IHJlZiBbXVxuICAgIGxldCBhZGQgYiBrMSBrMiBkID0gYiA6PSBrMl9tYWtlIGsxIGsyIGQgOjogIWJcblxuICAgIGxldCB0ZXN0X2tleXMgazEgazIgZSA9XG4gICAgICBtYXRjaCBnZXRfa2V5MSBlLCBnZXRfa2V5MiBlIHdpdGhcbiAgICAgIHwgU29tZSB4MSwgU29tZSB4MiB3aGVuIHgxID09IGsxICYmIHgyID09IGsyIC0+IHRydWVcbiAgICAgIHwgXyAtPiBmYWxzZVxuXG4gICAgbGV0IHJlbW92ZSBiIGsxIGsyID1cbiAgICAgIGxldCByZWMgbG9vcCBsIGFjYyA9XG4gICAgICAgIG1hdGNoIGwgd2l0aFxuICAgICAgICB8IFtdIC0+ICgpXG4gICAgICAgIHwgaCA6OiB0IHdoZW4gdGVzdF9rZXlzIGsxIGsyIGggLT4gYiA6PSBMaXN0LnJldl9hcHBlbmQgYWNjIHRcbiAgICAgICAgfCBoIDo6IHQgLT4gbG9vcCB0IChoIDo6IGFjYylcbiAgICAgIGluXG4gICAgICBsb29wICFiIFtdXG5cbiAgICBsZXQgZmluZCBiIGsxIGsyID1cbiAgICAgIG1hdGNoIExpc3QuZmluZF9vcHQgKHRlc3Rfa2V5cyBrMSBrMikgIWIgd2l0aFxuICAgICAgfCBTb21lIGUgLT4gZ2V0X2RhdGEgZVxuICAgICAgfCBOb25lIC0+IE5vbmVcblxuICAgIGxldCBsZW5ndGggYiA9IExpc3QubGVuZ3RoICFiXG4gICAgbGV0IGNsZWFyIGIgPSBiIDo9IFtdXG5cbiAgZW5kXG5cbmVuZFxuXG5tb2R1bGUgS24gPSBzdHJ1Y3RcbiAgdHlwZSAoJ2ssJ2QpIHQgPSBPYmpFcGgudFxuXG4gIGxldCBjcmVhdGUgbiA6ICgnaywnZCkgdCA9IE9iakVwaC5jcmVhdGUgblxuICBsZXQgbGVuZ3RoIChrOignaywnZCkgdCkgOiBpbnQgPSBPYmpFcGgubGVuZ3RoIGtcblxuICBsZXQgZ2V0X2tleSAodDooJ2ssJ2QpIHQpIChuOmludCkgOiAnayBvcHRpb24gPSBvYmpfb3B0IChPYmpFcGguZ2V0X2tleSB0IG4pXG4gIGxldCBnZXRfa2V5X2NvcHkgKHQ6KCdrLCdkKSB0KSAobjppbnQpIDogJ2sgb3B0aW9uID1cbiAgICBvYmpfb3B0IChPYmpFcGguZ2V0X2tleV9jb3B5IHQgbilcbiAgbGV0IHNldF9rZXkgKHQ6KCdrLCdkKSB0KSAobjppbnQpIChrOidrKSA6IHVuaXQgPVxuICAgIE9iakVwaC5zZXRfa2V5IHQgbiAoT2JqLnJlcHIgaylcbiAgbGV0IHVuc2V0X2tleSAodDooJ2ssJ2QpIHQpIChuOmludCkgOiB1bml0ID0gT2JqRXBoLnVuc2V0X2tleSB0IG5cbiAgbGV0IGNoZWNrX2tleSAodDooJ2ssJ2QpIHQpIChuOmludCkgOiBib29sID0gT2JqRXBoLmNoZWNrX2tleSB0IG5cblxuICBsZXQgYmxpdF9rZXkgKHQxOignaywnZCkgdCkgKG8xOmludCkgKHQyOignaywnZCkgdCkgKG8yOmludCkgKGw6aW50KSA6IHVuaXQgPVxuICAgIE9iakVwaC5ibGl0X2tleSB0MSBvMSB0MiBvMiBsXG5cbiAgbGV0IGdldF9kYXRhICh0OignaywnZCkgdCkgOiAnZCBvcHRpb24gPSBvYmpfb3B0IChPYmpFcGguZ2V0X2RhdGEgdClcbiAgbGV0IGdldF9kYXRhX2NvcHkgKHQ6KCdrLCdkKSB0KSA6ICdkIG9wdGlvbiA9IG9ial9vcHQgKE9iakVwaC5nZXRfZGF0YV9jb3B5IHQpXG4gIGxldCBzZXRfZGF0YSAodDooJ2ssJ2QpIHQpIChkOidkKSA6IHVuaXQgPSBPYmpFcGguc2V0X2RhdGEgdCAoT2JqLnJlcHIgZClcbiAgbGV0IHVuc2V0X2RhdGEgKHQ6KCdrLCdkKSB0KSA6IHVuaXQgPSBPYmpFcGgudW5zZXRfZGF0YSB0XG4gIGxldCBjaGVja19kYXRhICh0OignaywnZCkgdCkgOiBib29sID0gT2JqRXBoLmNoZWNrX2RhdGEgdFxuICBsZXQgYmxpdF9kYXRhICh0MTooXywnZCkgdCkgKHQyOihfLCdkKSB0KSA6IHVuaXQgPSBPYmpFcGguYmxpdF9kYXRhIHQxIHQyXG5cbiAgbGV0IG1ha2Uga2V5cyBkYXRhID1cbiAgICBsZXQgbCA9IEFycmF5Lmxlbmd0aCBrZXlzIGluXG4gICAgbGV0IGVwaCA9IGNyZWF0ZSBsIGluXG4gICAgc2V0X2RhdGEgZXBoIGRhdGE7XG4gICAgZm9yIGkgPSAwIHRvIGwgLSAxIGRvIHNldF9rZXkgZXBoIGkga2V5cy4oaSkgZG9uZTtcbiAgICBlcGhcblxuICBsZXQgcXVlcnkgZXBoIGtleXMgPVxuICAgIGxldCBsID0gbGVuZ3RoIGVwaCBpblxuICAgIHRyeVxuICAgICAgaWYgbCA8PiBBcnJheS5sZW5ndGgga2V5cyB0aGVuIHJhaXNlIEV4aXQ7XG4gICAgICBmb3IgaSA9IDAgdG8gbCAtIDEgZG9cbiAgICAgICAgbWF0Y2ggZ2V0X2tleSBlcGggaSB3aXRoXG4gICAgICAgIHwgTm9uZSAtPiByYWlzZSBFeGl0XG4gICAgICAgIHwgU29tZSBrIHdoZW4gayA9PSBrZXlzLihpKSAtPiAoKVxuICAgICAgICB8IFNvbWUgXyAtPiByYWlzZSBFeGl0XG4gICAgICBkb25lO1xuICAgICAgZ2V0X2RhdGEgZXBoXG4gICAgd2l0aCBFeGl0IC0+IE5vbmVcblxuICBtb2R1bGUgTWFrZVNlZWRlZCAoSDpIYXNodGJsLlNlZWRlZEhhc2hlZFR5cGUpID1cbiAgICBHZW5IYXNoVGFibGUuTWFrZVNlZWRlZChzdHJ1Y3RcbiAgICAgIHR5cGUgJ2EgY29udGFpbmVyID0gKEgudCwnYSkgdFxuICAgICAgdHlwZSB0ID0gSC50IGFycmF5XG4gICAgICBsZXQgY3JlYXRlIGsgZCA9XG4gICAgICAgIGxldCBjID0gY3JlYXRlIChBcnJheS5sZW5ndGggaykgaW5cbiAgICAgICAgc2V0X2RhdGEgYyBkO1xuICAgICAgICBmb3IgaT0wIHRvIEFycmF5Lmxlbmd0aCBrIC0xIGRvXG4gICAgICAgICAgc2V0X2tleSBjIGkgay4oaSk7XG4gICAgICAgIGRvbmU7XG4gICAgICAgIGNcbiAgICAgIGxldCBoYXNoIHNlZWQgayA9XG4gICAgICAgIGxldCBoID0gcmVmIDAgaW5cbiAgICAgICAgZm9yIGk9MCB0byBBcnJheS5sZW5ndGggayAtMSBkb1xuICAgICAgICAgIGggOj0gSC5oYXNoIHNlZWQgay4oaSkgKiA2NTU5OSArICFoO1xuICAgICAgICBkb25lO1xuICAgICAgICAhaFxuICAgICAgbGV0IGVxdWFsIGMgayA9XG4gICAgICAgIGxldCBsZW4gID0gQXJyYXkubGVuZ3RoIGsgaW5cbiAgICAgICAgbGV0IGxlbicgPSBsZW5ndGggYyBpblxuICAgICAgICBpZiBsZW4gIT0gbGVuJyB0aGVuIEdlbkhhc2hUYWJsZS5FRmFsc2VcbiAgICAgICAgZWxzZVxuICAgICAgICAgIGxldCByZWMgZXF1YWxfYXJyYXkgayBjIGkgPVxuICAgICAgICAgICAgaWYgaSA8IDAgdGhlbiBHZW5IYXNoVGFibGUuRVRydWVcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgbWF0Y2ggZ2V0X2tleSBjIGkgd2l0aFxuICAgICAgICAgICAgICB8IE5vbmUgLT4gR2VuSGFzaFRhYmxlLkVEZWFkXG4gICAgICAgICAgICAgIHwgU29tZSBraSAtPlxuICAgICAgICAgICAgICAgICAgaWYgSC5lcXVhbCBrLihpKSBraVxuICAgICAgICAgICAgICAgICAgdGhlbiBlcXVhbF9hcnJheSBrIGMgKGktMSlcbiAgICAgICAgICAgICAgICAgIGVsc2UgR2VuSGFzaFRhYmxlLkVGYWxzZVxuICAgICAgICAgIGluXG4gICAgICAgICAgZXF1YWxfYXJyYXkgayBjIChsZW4tMSlcbiAgICAgIGxldCBnZXRfZGF0YSA9IGdldF9kYXRhXG4gICAgICBsZXQgZ2V0X2tleSBjID1cbiAgICAgICAgbGV0IGxlbiA9IGxlbmd0aCBjIGluXG4gICAgICAgIGlmIGxlbiA9IDAgdGhlbiBTb21lIFt8fF1cbiAgICAgICAgZWxzZVxuICAgICAgICAgIG1hdGNoIGdldF9rZXkgYyAwIHdpdGhcbiAgICAgICAgICB8IE5vbmUgLT4gTm9uZVxuICAgICAgICAgIHwgU29tZSBrMCAtPlxuICAgICAgICAgICAgICBsZXQgcmVjIGZpbGwgYSBpID1cbiAgICAgICAgICAgICAgICBpZiBpIDwgMSB0aGVuIFNvbWUgYVxuICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgIG1hdGNoIGdldF9rZXkgYyBpIHdpdGhcbiAgICAgICAgICAgICAgICAgIHwgTm9uZSAtPiBOb25lXG4gICAgICAgICAgICAgICAgICB8IFNvbWUga2kgLT5cbiAgICAgICAgICAgICAgICAgICAgICBhLihpKSA8LSBraTtcbiAgICAgICAgICAgICAgICAgICAgICBmaWxsIGEgKGktMSlcbiAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgbGV0IGEgPSBBcnJheS5tYWtlIGxlbiBrMCBpblxuICAgICAgICAgICAgICBmaWxsIGEgKGxlbi0xKVxuICAgICAgbGV0IHNldF9rZXlfZGF0YSBjIGsgZCA9XG4gICAgICAgIHVuc2V0X2RhdGEgYztcbiAgICAgICAgZm9yIGk9MCB0byBBcnJheS5sZW5ndGggayAtMSBkb1xuICAgICAgICAgIHNldF9rZXkgYyBpIGsuKGkpO1xuICAgICAgICBkb25lO1xuICAgICAgICBzZXRfZGF0YSBjIGRcbiAgICAgIGxldCBjaGVja19rZXkgYyA9XG4gICAgICAgIGxldCByZWMgY2hlY2sgYyBpID1cbiAgICAgICAgICBpIDwgMCB8fCAoY2hlY2tfa2V5IGMgaSAmJiBjaGVjayBjIChpLTEpKSBpblxuICAgICAgICBjaGVjayBjIChsZW5ndGggYyAtIDEpXG4gICAgZW5kKVxuXG4gIG1vZHVsZSBNYWtlKEg6IEhhc2h0YmwuSGFzaGVkVHlwZSk6IChTIHdpdGggdHlwZSBrZXkgPSBILnQgYXJyYXkpID1cbiAgc3RydWN0XG4gICAgaW5jbHVkZSBNYWtlU2VlZGVkKHN0cnVjdFxuICAgICAgICB0eXBlIHQgPSBILnRcbiAgICAgICAgbGV0IGVxdWFsID0gSC5lcXVhbFxuICAgICAgICBsZXQgaGFzaCAoX3NlZWQ6IGludCkgeCA9IEguaGFzaCB4XG4gICAgICBlbmQpXG4gICAgbGV0IGNyZWF0ZSBzeiA9IGNyZWF0ZSB+cmFuZG9tOmZhbHNlIHN6XG4gICAgbGV0IG9mX3NlcSBpID1cbiAgICAgIGxldCB0YmwgPSBjcmVhdGUgMTYgaW5cbiAgICAgIHJlcGxhY2Vfc2VxIHRibCBpO1xuICAgICAgdGJsXG4gIGVuZFxuXG4gIG1vZHVsZSBCdWNrZXQgPSBzdHJ1Y3RcblxuICAgIHR5cGUgbm9ucmVjICgnaywgJ2QpIHQgPSAoJ2ssICdkKSB0IGxpc3QgcmVmXG4gICAgbGV0IGtuX21ha2UgPSBtYWtlXG4gICAgbGV0IG1ha2UgKCkgPSByZWYgW11cbiAgICBsZXQgYWRkIGIgayBkID0gYiA6PSBrbl9tYWtlIGsgZCA6OiAhYlxuXG4gICAgbGV0IHRlc3Rfa2V5cyBrIGUgPVxuICAgICAgdHJ5XG4gICAgICAgIGlmIGxlbmd0aCBlIDw+IEFycmF5Lmxlbmd0aCBrIHRoZW4gcmFpc2UgRXhpdDtcbiAgICAgICAgZm9yIGkgPSAwIHRvIEFycmF5Lmxlbmd0aCBrIC0gMSBkb1xuICAgICAgICAgIG1hdGNoIGdldF9rZXkgZSBpIHdpdGhcbiAgICAgICAgICB8IFNvbWUgeCB3aGVuIHggPT0gay4oaSkgLT4gKClcbiAgICAgICAgICB8IF8gLT4gcmFpc2UgRXhpdFxuICAgICAgICBkb25lO1xuICAgICAgICB0cnVlXG4gICAgICB3aXRoIEV4aXQgLT4gZmFsc2VcblxuICAgIGxldCByZW1vdmUgYiBrID1cbiAgICAgIGxldCByZWMgbG9vcCBsIGFjYyA9XG4gICAgICAgIG1hdGNoIGwgd2l0aFxuICAgICAgICB8IFtdIC0+ICgpXG4gICAgICAgIHwgaCA6OiB0IHdoZW4gdGVzdF9rZXlzIGsgaCAtPiBiIDo9IExpc3QucmV2X2FwcGVuZCBhY2MgdFxuICAgICAgICB8IGggOjogdCAtPiBsb29wIHQgKGggOjogYWNjKVxuICAgICAgaW5cbiAgICAgIGxvb3AgIWIgW11cblxuICAgIGxldCBmaW5kIGIgayA9XG4gICAgICBtYXRjaCBMaXN0LmZpbmRfb3B0ICh0ZXN0X2tleXMgaykgIWIgd2l0aFxuICAgICAgfCBTb21lIGUgLT4gZ2V0X2RhdGEgZVxuICAgICAgfCBOb25lIC0+IE5vbmVcblxuICAgIGxldCBsZW5ndGggYiA9IExpc3QubGVuZ3RoICFiXG4gICAgbGV0IGNsZWFyIGIgPSBiIDo9IFtdXG5cbiAgZW5kXG5cbmVuZFxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgIFhhdmllciBMZXJveSBhbmQgRGFtaWVuIERvbGlnZXosIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG5sZXQgZ2VuZXJpY19xdW90ZSBxdW90ZXF1b3RlIHMgPVxuICBsZXQgbCA9IFN0cmluZy5sZW5ndGggcyBpblxuICBsZXQgYiA9IEJ1ZmZlci5jcmVhdGUgKGwgKyAyMCkgaW5cbiAgQnVmZmVyLmFkZF9jaGFyIGIgJ1xcJyc7XG4gIGZvciBpID0gMCB0byBsIC0gMSBkb1xuICAgIGlmIHMuW2ldID0gJ1xcJydcbiAgICB0aGVuIEJ1ZmZlci5hZGRfc3RyaW5nIGIgcXVvdGVxdW90ZVxuICAgIGVsc2UgQnVmZmVyLmFkZF9jaGFyIGIgIHMuW2ldXG4gIGRvbmU7XG4gIEJ1ZmZlci5hZGRfY2hhciBiICdcXCcnO1xuICBCdWZmZXIuY29udGVudHMgYlxuXG4oKiBUaGlzIGZ1bmN0aW9uIGltcGxlbWVudHMgdGhlIE9wZW4gR3JvdXAgc3BlY2lmaWNhdGlvbiBmb3VuZCBoZXJlOlxuICBbWzFdXSBodHRwOi8vcHVicy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvOTY5OTkxOTc5OS91dGlsaXRpZXMvYmFzZW5hbWUuaHRtbFxuICBJbiBzdGVwIDEgb2YgW1sxXV0sIHdlIGNob29zZSB0byByZXR1cm4gXCIuXCIgZm9yIGVtcHR5IGlucHV0LlxuICAgIChmb3IgY29tcGF0aWJpbGl0eSB3aXRoIHByZXZpb3VzIHZlcnNpb25zIG9mIE9DYW1sKVxuICBJbiBzdGVwIDIsIHdlIGNob29zZSB0byBwcm9jZXNzIFwiLy9cIiBub3JtYWxseS5cbiAgU3RlcCA2IGlzIG5vdCBpbXBsZW1lbnRlZDogd2UgY29uc2lkZXIgdGhhdCB0aGUgW3N1ZmZpeF0gb3BlcmFuZCBpc1xuICAgIGFsd2F5cyBhYnNlbnQuICBTdWZmaXhlcyBhcmUgaGFuZGxlZCBieSBbY2hvcF9zdWZmaXhdIGFuZCBbY2hvcF9leHRlbnNpb25dLlxuKilcbmxldCBnZW5lcmljX2Jhc2VuYW1lIGlzX2Rpcl9zZXAgY3VycmVudF9kaXJfbmFtZSBuYW1lID1cbiAgbGV0IHJlYyBmaW5kX2VuZCBuID1cbiAgICBpZiBuIDwgMCB0aGVuIFN0cmluZy5zdWIgbmFtZSAwIDFcbiAgICBlbHNlIGlmIGlzX2Rpcl9zZXAgbmFtZSBuIHRoZW4gZmluZF9lbmQgKG4gLSAxKVxuICAgIGVsc2UgZmluZF9iZWcgbiAobiArIDEpXG4gIGFuZCBmaW5kX2JlZyBuIHAgPVxuICAgIGlmIG4gPCAwIHRoZW4gU3RyaW5nLnN1YiBuYW1lIDAgcFxuICAgIGVsc2UgaWYgaXNfZGlyX3NlcCBuYW1lIG4gdGhlbiBTdHJpbmcuc3ViIG5hbWUgKG4gKyAxKSAocCAtIG4gLSAxKVxuICAgIGVsc2UgZmluZF9iZWcgKG4gLSAxKSBwXG4gIGluXG4gIGlmIG5hbWUgPSBcIlwiXG4gIHRoZW4gY3VycmVudF9kaXJfbmFtZVxuICBlbHNlIGZpbmRfZW5kIChTdHJpbmcubGVuZ3RoIG5hbWUgLSAxKVxuXG4oKiBUaGlzIGZ1bmN0aW9uIGltcGxlbWVudHMgdGhlIE9wZW4gR3JvdXAgc3BlY2lmaWNhdGlvbiBmb3VuZCBoZXJlOlxuICBbWzJdXSBodHRwOi8vcHVicy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvOTY5OTkxOTc5OS91dGlsaXRpZXMvZGlybmFtZS5odG1sXG4gIEluIHN0ZXAgNiBvZiBbWzJdXSwgd2UgY2hvb3NlIHRvIHByb2Nlc3MgXCIvL1wiIG5vcm1hbGx5LlxuKilcbmxldCBnZW5lcmljX2Rpcm5hbWUgaXNfZGlyX3NlcCBjdXJyZW50X2Rpcl9uYW1lIG5hbWUgPVxuICBsZXQgcmVjIHRyYWlsaW5nX3NlcCBuID1cbiAgICBpZiBuIDwgMCB0aGVuIFN0cmluZy5zdWIgbmFtZSAwIDFcbiAgICBlbHNlIGlmIGlzX2Rpcl9zZXAgbmFtZSBuIHRoZW4gdHJhaWxpbmdfc2VwIChuIC0gMSlcbiAgICBlbHNlIGJhc2UgblxuICBhbmQgYmFzZSBuID1cbiAgICBpZiBuIDwgMCB0aGVuIGN1cnJlbnRfZGlyX25hbWVcbiAgICBlbHNlIGlmIGlzX2Rpcl9zZXAgbmFtZSBuIHRoZW4gaW50ZXJtZWRpYXRlX3NlcCBuXG4gICAgZWxzZSBiYXNlIChuIC0gMSlcbiAgYW5kIGludGVybWVkaWF0ZV9zZXAgbiA9XG4gICAgaWYgbiA8IDAgdGhlbiBTdHJpbmcuc3ViIG5hbWUgMCAxXG4gICAgZWxzZSBpZiBpc19kaXJfc2VwIG5hbWUgbiB0aGVuIGludGVybWVkaWF0ZV9zZXAgKG4gLSAxKVxuICAgIGVsc2UgU3RyaW5nLnN1YiBuYW1lIDAgKG4gKyAxKVxuICBpblxuICBpZiBuYW1lID0gXCJcIlxuICB0aGVuIGN1cnJlbnRfZGlyX25hbWVcbiAgZWxzZSB0cmFpbGluZ19zZXAgKFN0cmluZy5sZW5ndGggbmFtZSAtIDEpXG5cbm1vZHVsZSB0eXBlIFNZU0RFUFMgPSBzaWdcbiAgdmFsIG51bGwgOiBzdHJpbmdcbiAgdmFsIGN1cnJlbnRfZGlyX25hbWUgOiBzdHJpbmdcbiAgdmFsIHBhcmVudF9kaXJfbmFtZSA6IHN0cmluZ1xuICB2YWwgZGlyX3NlcCA6IHN0cmluZ1xuICB2YWwgaXNfZGlyX3NlcCA6IHN0cmluZyAtPiBpbnQgLT4gYm9vbFxuICB2YWwgaXNfcmVsYXRpdmUgOiBzdHJpbmcgLT4gYm9vbFxuICB2YWwgaXNfaW1wbGljaXQgOiBzdHJpbmcgLT4gYm9vbFxuICB2YWwgY2hlY2tfc3VmZml4IDogc3RyaW5nIC0+IHN0cmluZyAtPiBib29sXG4gIHZhbCBjaG9wX3N1ZmZpeF9vcHQgOiBzdWZmaXg6c3RyaW5nIC0+IHN0cmluZyAtPiBzdHJpbmcgb3B0aW9uXG4gIHZhbCB0ZW1wX2Rpcl9uYW1lIDogc3RyaW5nXG4gIHZhbCBxdW90ZSA6IHN0cmluZyAtPiBzdHJpbmdcbiAgdmFsIHF1b3RlX2NvbW1hbmQgOlxuICAgIHN0cmluZyAtPiA/c3RkaW46IHN0cmluZyAtPiA/c3Rkb3V0OiBzdHJpbmcgLT4gP3N0ZGVycjogc3RyaW5nXG4gICAgICAgICAgIC0+IHN0cmluZyBsaXN0IC0+IHN0cmluZ1xuICB2YWwgYmFzZW5hbWUgOiBzdHJpbmcgLT4gc3RyaW5nXG4gIHZhbCBkaXJuYW1lIDogc3RyaW5nIC0+IHN0cmluZ1xuZW5kXG5cbm1vZHVsZSBVbml4IDogU1lTREVQUyA9IHN0cnVjdFxuICBsZXQgbnVsbCA9IFwiL2Rldi9udWxsXCJcbiAgbGV0IGN1cnJlbnRfZGlyX25hbWUgPSBcIi5cIlxuICBsZXQgcGFyZW50X2Rpcl9uYW1lID0gXCIuLlwiXG4gIGxldCBkaXJfc2VwID0gXCIvXCJcbiAgbGV0IGlzX2Rpcl9zZXAgcyBpID0gcy5baV0gPSAnLydcbiAgbGV0IGlzX3JlbGF0aXZlIG4gPSBTdHJpbmcubGVuZ3RoIG4gPCAxIHx8IG4uWzBdIDw+ICcvJ1xuICBsZXQgaXNfaW1wbGljaXQgbiA9XG4gICAgaXNfcmVsYXRpdmUgblxuICAgICYmIChTdHJpbmcubGVuZ3RoIG4gPCAyIHx8IFN0cmluZy5zdWIgbiAwIDIgPD4gXCIuL1wiKVxuICAgICYmIChTdHJpbmcubGVuZ3RoIG4gPCAzIHx8IFN0cmluZy5zdWIgbiAwIDMgPD4gXCIuLi9cIilcbiAgbGV0IGNoZWNrX3N1ZmZpeCBuYW1lIHN1ZmYgPVxuICAgIFN0cmluZy5lbmRzX3dpdGggfnN1ZmZpeDpzdWZmIG5hbWVcblxuICBsZXQgY2hvcF9zdWZmaXhfb3B0IH5zdWZmaXggZmlsZW5hbWUgPVxuICAgIGxldCBsZW5fcyA9IFN0cmluZy5sZW5ndGggc3VmZml4IGFuZCBsZW5fZiA9IFN0cmluZy5sZW5ndGggZmlsZW5hbWUgaW5cbiAgICBpZiBsZW5fZiA+PSBsZW5fcyB0aGVuXG4gICAgICBsZXQgciA9IFN0cmluZy5zdWIgZmlsZW5hbWUgKGxlbl9mIC0gbGVuX3MpIGxlbl9zIGluXG4gICAgICBpZiByID0gc3VmZml4IHRoZW5cbiAgICAgICAgU29tZSAoU3RyaW5nLnN1YiBmaWxlbmFtZSAwIChsZW5fZiAtIGxlbl9zKSlcbiAgICAgIGVsc2VcbiAgICAgICAgTm9uZVxuICAgIGVsc2VcbiAgICAgIE5vbmVcblxuICBsZXQgdGVtcF9kaXJfbmFtZSA9XG4gICAgdHJ5IFN5cy5nZXRlbnYgXCJUTVBESVJcIiB3aXRoIE5vdF9mb3VuZCAtPiBcIi90bXBcIlxuICBsZXQgcXVvdGUgPSBnZW5lcmljX3F1b3RlIFwiJ1xcXFwnJ1wiXG4gIGxldCBxdW90ZV9jb21tYW5kIGNtZCA/c3RkaW4gP3N0ZG91dCA/c3RkZXJyIGFyZ3MgPVxuICAgIFN0cmluZy5jb25jYXQgXCIgXCIgKExpc3QubWFwIHF1b3RlIChjbWQgOjogYXJncykpXG4gICAgXiAobWF0Y2ggc3RkaW4gIHdpdGggTm9uZSAtPiBcIlwiIHwgU29tZSBmIC0+IFwiIDxcIiBeIHF1b3RlIGYpXG4gICAgXiAobWF0Y2ggc3Rkb3V0IHdpdGggTm9uZSAtPiBcIlwiIHwgU29tZSBmIC0+IFwiID5cIiBeIHF1b3RlIGYpXG4gICAgXiAobWF0Y2ggc3RkZXJyIHdpdGggTm9uZSAtPiBcIlwiIHwgU29tZSBmIC0+IGlmIHN0ZGVyciA9IHN0ZG91dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbiBcIiAyPiYxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgXCIgMj5cIiBeIHF1b3RlIGYpXG4gIGxldCBiYXNlbmFtZSA9IGdlbmVyaWNfYmFzZW5hbWUgaXNfZGlyX3NlcCBjdXJyZW50X2Rpcl9uYW1lXG4gIGxldCBkaXJuYW1lID0gZ2VuZXJpY19kaXJuYW1lIGlzX2Rpcl9zZXAgY3VycmVudF9kaXJfbmFtZVxuZW5kXG5cbm1vZHVsZSBXaW4zMiA6IFNZU0RFUFMgPSBzdHJ1Y3RcbiAgbGV0IG51bGwgPSBcIk5VTFwiXG4gIGxldCBjdXJyZW50X2Rpcl9uYW1lID0gXCIuXCJcbiAgbGV0IHBhcmVudF9kaXJfbmFtZSA9IFwiLi5cIlxuICBsZXQgZGlyX3NlcCA9IFwiXFxcXFwiXG4gIGxldCBpc19kaXJfc2VwIHMgaSA9IGxldCBjID0gcy5baV0gaW4gYyA9ICcvJyB8fCBjID0gJ1xcXFwnIHx8IGMgPSAnOidcbiAgbGV0IGlzX3JlbGF0aXZlIG4gPVxuICAgIChTdHJpbmcubGVuZ3RoIG4gPCAxIHx8IG4uWzBdIDw+ICcvJylcbiAgICAmJiAoU3RyaW5nLmxlbmd0aCBuIDwgMSB8fCBuLlswXSA8PiAnXFxcXCcpXG4gICAgJiYgKFN0cmluZy5sZW5ndGggbiA8IDIgfHwgbi5bMV0gPD4gJzonKVxuICBsZXQgaXNfaW1wbGljaXQgbiA9XG4gICAgaXNfcmVsYXRpdmUgblxuICAgICYmIChTdHJpbmcubGVuZ3RoIG4gPCAyIHx8IFN0cmluZy5zdWIgbiAwIDIgPD4gXCIuL1wiKVxuICAgICYmIChTdHJpbmcubGVuZ3RoIG4gPCAyIHx8IFN0cmluZy5zdWIgbiAwIDIgPD4gXCIuXFxcXFwiKVxuICAgICYmIChTdHJpbmcubGVuZ3RoIG4gPCAzIHx8IFN0cmluZy5zdWIgbiAwIDMgPD4gXCIuLi9cIilcbiAgICAmJiAoU3RyaW5nLmxlbmd0aCBuIDwgMyB8fCBTdHJpbmcuc3ViIG4gMCAzIDw+IFwiLi5cXFxcXCIpXG4gIGxldCBjaGVja19zdWZmaXggbmFtZSBzdWZmID1cbiAgIFN0cmluZy5sZW5ndGggbmFtZSA+PSBTdHJpbmcubGVuZ3RoIHN1ZmYgJiZcbiAgIChsZXQgcyA9IFN0cmluZy5zdWIgbmFtZSAoU3RyaW5nLmxlbmd0aCBuYW1lIC0gU3RyaW5nLmxlbmd0aCBzdWZmKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChTdHJpbmcubGVuZ3RoIHN1ZmYpIGluXG4gICAgU3RyaW5nLmxvd2VyY2FzZV9hc2NpaSBzID0gU3RyaW5nLmxvd2VyY2FzZV9hc2NpaSBzdWZmKVxuXG4gIGxldCBjaG9wX3N1ZmZpeF9vcHQgfnN1ZmZpeCBmaWxlbmFtZSA9XG4gICAgbGV0IGxlbl9zID0gU3RyaW5nLmxlbmd0aCBzdWZmaXggYW5kIGxlbl9mID0gU3RyaW5nLmxlbmd0aCBmaWxlbmFtZSBpblxuICAgIGlmIGxlbl9mID49IGxlbl9zIHRoZW5cbiAgICAgIGxldCByID0gU3RyaW5nLnN1YiBmaWxlbmFtZSAobGVuX2YgLSBsZW5fcykgbGVuX3MgaW5cbiAgICAgIGlmIFN0cmluZy5sb3dlcmNhc2VfYXNjaWkgciA9IFN0cmluZy5sb3dlcmNhc2VfYXNjaWkgc3VmZml4IHRoZW5cbiAgICAgICAgU29tZSAoU3RyaW5nLnN1YiBmaWxlbmFtZSAwIChsZW5fZiAtIGxlbl9zKSlcbiAgICAgIGVsc2VcbiAgICAgICAgTm9uZVxuICAgIGVsc2VcbiAgICAgIE5vbmVcblxuXG4gIGxldCB0ZW1wX2Rpcl9uYW1lID1cbiAgICB0cnkgU3lzLmdldGVudiBcIlRFTVBcIiB3aXRoIE5vdF9mb3VuZCAtPiBcIi5cIlxuICBsZXQgcXVvdGUgcyA9XG4gICAgbGV0IGwgPSBTdHJpbmcubGVuZ3RoIHMgaW5cbiAgICBsZXQgYiA9IEJ1ZmZlci5jcmVhdGUgKGwgKyAyMCkgaW5cbiAgICBCdWZmZXIuYWRkX2NoYXIgYiAnXFxcIic7XG4gICAgbGV0IHJlYyBsb29wIGkgPVxuICAgICAgaWYgaSA9IGwgdGhlbiBCdWZmZXIuYWRkX2NoYXIgYiAnXFxcIicgZWxzZVxuICAgICAgbWF0Y2ggcy5baV0gd2l0aFxuICAgICAgfCAnXFxcIicgLT4gbG9vcF9icyAwIGk7XG4gICAgICB8ICdcXFxcJyAtPiBsb29wX2JzIDAgaTtcbiAgICAgIHwgYyAgICAtPiBCdWZmZXIuYWRkX2NoYXIgYiBjOyBsb29wIChpKzEpO1xuICAgIGFuZCBsb29wX2JzIG4gaSA9XG4gICAgICBpZiBpID0gbCB0aGVuIGJlZ2luXG4gICAgICAgIEJ1ZmZlci5hZGRfY2hhciBiICdcXFwiJztcbiAgICAgICAgYWRkX2JzIG47XG4gICAgICBlbmQgZWxzZSBiZWdpblxuICAgICAgICBtYXRjaCBzLltpXSB3aXRoXG4gICAgICAgIHwgJ1xcXCInIC0+IGFkZF9icyAoMipuKzEpOyBCdWZmZXIuYWRkX2NoYXIgYiAnXFxcIic7IGxvb3AgKGkrMSk7XG4gICAgICAgIHwgJ1xcXFwnIC0+IGxvb3BfYnMgKG4rMSkgKGkrMSk7XG4gICAgICAgIHwgXyAgICAtPiBhZGRfYnMgbjsgbG9vcCBpXG4gICAgICBlbmRcbiAgICBhbmQgYWRkX2JzIG4gPSBmb3IgX2ogPSAxIHRvIG4gZG8gQnVmZmVyLmFkZF9jaGFyIGIgJ1xcXFwnOyBkb25lXG4gICAgaW5cbiAgICBsb29wIDA7XG4gICAgQnVmZmVyLmNvbnRlbnRzIGJcbigqXG5RdW90aW5nIGNvbW1hbmRzIGZvciBleGVjdXRpb24gYnkgY21kLmV4ZSBpcyBkaWZmaWN1bHQuXG4xLSBFYWNoIGFyZ3VtZW50IGlzIGZpcnN0IHF1b3RlZCB1c2luZyB0aGUgXCJxdW90ZVwiIGZ1bmN0aW9uIGFib3ZlLCB0b1xuICAgcHJvdGVjdCBpdCBhZ2FpbnN0IHRoZSBwcm9jZXNzaW5nIHBlcmZvcm1lZCBieSB0aGUgQyBydW50aW1lIHN5c3RlbSxcbiAgIHRoZW4gY21kLmV4ZSdzIHNwZWNpYWwgY2hhcmFjdGVycyBhcmUgZXNjYXBlZCB3aXRoICdeJywgdXNpbmdcbiAgIHRoZSBcInF1b3RlX2NtZFwiIGZ1bmN0aW9uIGJlbG93LiAgRm9yIG1vcmUgZGV0YWlscywgc2VlXG4gICBodHRwczovL2Jsb2dzLm1zZG4ubWljcm9zb2Z0LmNvbS90d2lzdHlsaXR0bGVwYXNzYWdlc2FsbGFsaWtlLzIwMTEvMDQvMjNcbjItIFRoZSBjb21tYW5kIGFuZCB0aGUgcmVkaXJlY3Rpb24gZmlsZXMsIGlmIGFueSwgbXVzdCBiZSBkb3VibGUtcXVvdGVkXG4gICBpbiBjYXNlIHRoZXkgY29udGFpbiBzcGFjZXMuICBUaGlzIHF1b3RpbmcgaXMgaW50ZXJwcmV0ZWQgYnkgY21kLmV4ZSxcbiAgIG5vdCBieSB0aGUgQyBydW50aW1lIHN5c3RlbSwgaGVuY2UgdGhlIFwicXVvdGVcIiBmdW5jdGlvbiBhYm92ZVxuICAgY2Fubm90IGJlIHVzZWQuICBUaGUgdHdvIGNoYXJhY3RlcnMgd2UgZG9uJ3Qga25vdyBob3cgdG8gcXVvdGVcbiAgIGluc2lkZSBhIGRvdWJsZS1xdW90ZWQgY21kLmV4ZSBzdHJpbmcgYXJlIGRvdWJsZS1xdW90ZSBhbmQgcGVyY2VudC5cbiAgIFdlIGp1c3QgZmFpbCBpZiB0aGUgY29tbWFuZCBuYW1lIG9yIHRoZSByZWRpcmVjdGlvbiBmaWxlIG5hbWVzXG4gICBjb250YWluIGEgZG91YmxlIHF1b3RlIChub3QgYWxsb3dlZCBpbiBXaW5kb3dzIGZpbGUgbmFtZXMsIGFueXdheSlcbiAgIG9yIGEgcGVyY2VudC4gIFNlZSBmdW5jdGlvbiBcInF1b3RlX2NtZF9maWxlbmFtZVwiIGJlbG93LlxuMy0gVGhlIHdob2xlIHN0cmluZyBwYXNzZWQgdG8gU3lzLmNvbW1hbmQgaXMgdGhlbiBlbmNsb3NlZCBpbiBkb3VibGVcbiAgIHF1b3Rlcywgd2hpY2ggYXJlIGltbWVkaWF0ZWx5IHN0cmlwcGVkIGJ5IGNtZC5leGUuICBPdGhlcndpc2UsXG4gICBzb21lIG9mIHRoZSBkb3VibGUgcXVvdGVzIGZyb20gc3RlcCAyIGFib3ZlIGNhbiBiZSBtaXNwYXJzZWQuXG4gICBTZWUgZS5nLiBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvOTk2NTE0MVxuKilcbiAgbGV0IHF1b3RlX2NtZCBzID1cbiAgICBsZXQgYiA9IEJ1ZmZlci5jcmVhdGUgKFN0cmluZy5sZW5ndGggcyArIDIwKSBpblxuICAgIFN0cmluZy5pdGVyXG4gICAgICAoZnVuIGMgLT5cbiAgICAgICAgbWF0Y2ggYyB3aXRoXG4gICAgICAgIHwgJygnIHwgJyknIHwgJyEnIHwgJ14nIHwgJyUnIHwgJ1xcXCInIHwgJzwnIHwgJz4nIHwgJyYnIHwgJ3wnIC0+XG4gICAgICAgICAgICBCdWZmZXIuYWRkX2NoYXIgYiAnXic7IEJ1ZmZlci5hZGRfY2hhciBiIGNcbiAgICAgICAgfCBfIC0+XG4gICAgICAgICAgICBCdWZmZXIuYWRkX2NoYXIgYiBjKVxuICAgICAgcztcbiAgICBCdWZmZXIuY29udGVudHMgYlxuICBsZXQgcXVvdGVfY21kX2ZpbGVuYW1lIGYgPVxuICAgIGlmIFN0cmluZy5jb250YWlucyBmICdcXFwiJyB8fCBTdHJpbmcuY29udGFpbnMgZiAnJScgdGhlblxuICAgICAgZmFpbHdpdGggKFwiRmlsZW5hbWUucXVvdGVfY29tbWFuZDogYmFkIGZpbGUgbmFtZSBcIiBeIGYpXG4gICAgZWxzZSBpZiBTdHJpbmcuY29udGFpbnMgZiAnICcgdGhlblxuICAgICAgXCJcXFwiXCIgXiBmIF4gXCJcXFwiXCJcbiAgICBlbHNlXG4gICAgICBmXG4gICgqIFJlZGlyZWN0aW9ucyBpbiBjbWQuZXhlOiBzZWUgaHR0cHM6Ly9zczY0LmNvbS9udC9zeW50YXgtcmVkaXJlY3Rpb24uaHRtbFxuICAgICBhbmQgaHR0cHM6Ly9kb2NzLm1pY3Jvc29mdC5jb20vZW4tdXMvcHJldmlvdXMtdmVyc2lvbnMvd2luZG93cy9pdC1wcm8vd2luZG93cy14cC9iYjQ5MDk4Mih2PXRlY2huZXQuMTApXG4gICopXG4gIGxldCBxdW90ZV9jb21tYW5kIGNtZCA/c3RkaW4gP3N0ZG91dCA/c3RkZXJyIGFyZ3MgPVxuICAgIFN0cmluZy5jb25jYXQgXCJcIiBbXG4gICAgICBcIlxcXCJcIjtcbiAgICAgIHF1b3RlX2NtZF9maWxlbmFtZSBjbWQ7XG4gICAgICBcIiBcIjtcbiAgICAgIHF1b3RlX2NtZCAoU3RyaW5nLmNvbmNhdCBcIiBcIiAoTGlzdC5tYXAgcXVvdGUgYXJncykpO1xuICAgICAgKG1hdGNoIHN0ZGluICB3aXRoIE5vbmUgLT4gXCJcIiB8IFNvbWUgZiAtPiBcIiA8XCIgXiBxdW90ZV9jbWRfZmlsZW5hbWUgZik7XG4gICAgICAobWF0Y2ggc3Rkb3V0IHdpdGggTm9uZSAtPiBcIlwiIHwgU29tZSBmIC0+IFwiID5cIiBeIHF1b3RlX2NtZF9maWxlbmFtZSBmKTtcbiAgICAgIChtYXRjaCBzdGRlcnIgd2l0aCBOb25lIC0+IFwiXCIgfCBTb21lIGYgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBzdGRlcnIgPSBzdGRvdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuIFwiIDI+JjFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgXCIgMj5cIiBeIHF1b3RlX2NtZF9maWxlbmFtZSBmKTtcbiAgICAgIFwiXFxcIlwiXG4gICAgXVxuICBsZXQgaGFzX2RyaXZlIHMgPVxuICAgIGxldCBpc19sZXR0ZXIgPSBmdW5jdGlvblxuICAgICAgfCAnQScgLi4gJ1onIHwgJ2EnIC4uICd6JyAtPiB0cnVlXG4gICAgICB8IF8gLT4gZmFsc2VcbiAgICBpblxuICAgIFN0cmluZy5sZW5ndGggcyA+PSAyICYmIGlzX2xldHRlciBzLlswXSAmJiBzLlsxXSA9ICc6J1xuICBsZXQgZHJpdmVfYW5kX3BhdGggcyA9XG4gICAgaWYgaGFzX2RyaXZlIHNcbiAgICB0aGVuIChTdHJpbmcuc3ViIHMgMCAyLCBTdHJpbmcuc3ViIHMgMiAoU3RyaW5nLmxlbmd0aCBzIC0gMikpXG4gICAgZWxzZSAoXCJcIiwgcylcbiAgbGV0IGRpcm5hbWUgcyA9XG4gICAgbGV0IChkcml2ZSwgcGF0aCkgPSBkcml2ZV9hbmRfcGF0aCBzIGluXG4gICAgbGV0IGRpciA9IGdlbmVyaWNfZGlybmFtZSBpc19kaXJfc2VwIGN1cnJlbnRfZGlyX25hbWUgcGF0aCBpblxuICAgIGRyaXZlIF4gZGlyXG4gIGxldCBiYXNlbmFtZSBzID1cbiAgICBsZXQgKF9kcml2ZSwgcGF0aCkgPSBkcml2ZV9hbmRfcGF0aCBzIGluXG4gICAgZ2VuZXJpY19iYXNlbmFtZSBpc19kaXJfc2VwIGN1cnJlbnRfZGlyX25hbWUgcGF0aFxuZW5kXG5cbm1vZHVsZSBDeWd3aW4gOiBTWVNERVBTID0gc3RydWN0XG4gIGxldCBudWxsID0gXCIvZGV2L251bGxcIlxuICBsZXQgY3VycmVudF9kaXJfbmFtZSA9IFwiLlwiXG4gIGxldCBwYXJlbnRfZGlyX25hbWUgPSBcIi4uXCJcbiAgbGV0IGRpcl9zZXAgPSBcIi9cIlxuICBsZXQgaXNfZGlyX3NlcCA9IFdpbjMyLmlzX2Rpcl9zZXBcbiAgbGV0IGlzX3JlbGF0aXZlID0gV2luMzIuaXNfcmVsYXRpdmVcbiAgbGV0IGlzX2ltcGxpY2l0ID0gV2luMzIuaXNfaW1wbGljaXRcbiAgbGV0IGNoZWNrX3N1ZmZpeCA9IFdpbjMyLmNoZWNrX3N1ZmZpeFxuICBsZXQgY2hvcF9zdWZmaXhfb3B0ID0gV2luMzIuY2hvcF9zdWZmaXhfb3B0XG4gIGxldCB0ZW1wX2Rpcl9uYW1lID0gVW5peC50ZW1wX2Rpcl9uYW1lXG4gIGxldCBxdW90ZSA9IFVuaXgucXVvdGVcbiAgbGV0IHF1b3RlX2NvbW1hbmQgPSBVbml4LnF1b3RlX2NvbW1hbmRcbiAgbGV0IGJhc2VuYW1lID0gZ2VuZXJpY19iYXNlbmFtZSBpc19kaXJfc2VwIGN1cnJlbnRfZGlyX25hbWVcbiAgbGV0IGRpcm5hbWUgPSBnZW5lcmljX2Rpcm5hbWUgaXNfZGlyX3NlcCBjdXJyZW50X2Rpcl9uYW1lXG5lbmRcblxubW9kdWxlIFN5c2RlcHMgPVxuICAodmFsIChtYXRjaCBTeXMub3NfdHlwZSB3aXRoXG4gICAgICAgfCBcIldpbjMyXCIgLT4gKG1vZHVsZSBXaW4zMjogU1lTREVQUylcbiAgICAgICB8IFwiQ3lnd2luXCIgLT4gKG1vZHVsZSBDeWd3aW46IFNZU0RFUFMpXG4gICAgICAgfCBfIC0+IChtb2R1bGUgVW5peDogU1lTREVQUykpKVxuXG5pbmNsdWRlIFN5c2RlcHNcblxubGV0IGNvbmNhdCBkaXJuYW1lIGZpbGVuYW1lID1cbiAgbGV0IGwgPSBTdHJpbmcubGVuZ3RoIGRpcm5hbWUgaW5cbiAgaWYgbCA9IDAgfHwgaXNfZGlyX3NlcCBkaXJuYW1lIChsLTEpXG4gIHRoZW4gZGlybmFtZSBeIGZpbGVuYW1lXG4gIGVsc2UgZGlybmFtZSBeIGRpcl9zZXAgXiBmaWxlbmFtZVxuXG5sZXQgY2hvcF9zdWZmaXggbmFtZSBzdWZmID1cbiAgaWYgY2hlY2tfc3VmZml4IG5hbWUgc3VmZlxuICB0aGVuIFN0cmluZy5zdWIgbmFtZSAwIChTdHJpbmcubGVuZ3RoIG5hbWUgLSBTdHJpbmcubGVuZ3RoIHN1ZmYpXG4gIGVsc2UgaW52YWxpZF9hcmcgXCJGaWxlbmFtZS5jaG9wX3N1ZmZpeFwiXG5cbmxldCBleHRlbnNpb25fbGVuIG5hbWUgPVxuICBsZXQgcmVjIGNoZWNrIGkwIGkgPVxuICAgIGlmIGkgPCAwIHx8IGlzX2Rpcl9zZXAgbmFtZSBpIHRoZW4gMFxuICAgIGVsc2UgaWYgbmFtZS5baV0gPSAnLicgdGhlbiBjaGVjayBpMCAoaSAtIDEpXG4gICAgZWxzZSBTdHJpbmcubGVuZ3RoIG5hbWUgLSBpMFxuICBpblxuICBsZXQgcmVjIHNlYXJjaF9kb3QgaSA9XG4gICAgaWYgaSA8IDAgfHwgaXNfZGlyX3NlcCBuYW1lIGkgdGhlbiAwXG4gICAgZWxzZSBpZiBuYW1lLltpXSA9ICcuJyB0aGVuIGNoZWNrIGkgKGkgLSAxKVxuICAgIGVsc2Ugc2VhcmNoX2RvdCAoaSAtIDEpXG4gIGluXG4gIHNlYXJjaF9kb3QgKFN0cmluZy5sZW5ndGggbmFtZSAtIDEpXG5cbmxldCBleHRlbnNpb24gbmFtZSA9XG4gIGxldCBsID0gZXh0ZW5zaW9uX2xlbiBuYW1lIGluXG4gIGlmIGwgPSAwIHRoZW4gXCJcIiBlbHNlIFN0cmluZy5zdWIgbmFtZSAoU3RyaW5nLmxlbmd0aCBuYW1lIC0gbCkgbFxuXG5sZXQgY2hvcF9leHRlbnNpb24gbmFtZSA9XG4gIGxldCBsID0gZXh0ZW5zaW9uX2xlbiBuYW1lIGluXG4gIGlmIGwgPSAwIHRoZW4gaW52YWxpZF9hcmcgXCJGaWxlbmFtZS5jaG9wX2V4dGVuc2lvblwiXG4gIGVsc2UgU3RyaW5nLnN1YiBuYW1lIDAgKFN0cmluZy5sZW5ndGggbmFtZSAtIGwpXG5cbmxldCByZW1vdmVfZXh0ZW5zaW9uIG5hbWUgPVxuICBsZXQgbCA9IGV4dGVuc2lvbl9sZW4gbmFtZSBpblxuICBpZiBsID0gMCB0aGVuIG5hbWUgZWxzZSBTdHJpbmcuc3ViIG5hbWUgMCAoU3RyaW5nLmxlbmd0aCBuYW1lIC0gbClcblxuZXh0ZXJuYWwgb3Blbl9kZXNjOiBzdHJpbmcgLT4gb3Blbl9mbGFnIGxpc3QgLT4gaW50IC0+IGludCA9IFwiY2FtbF9zeXNfb3BlblwiXG5leHRlcm5hbCBjbG9zZV9kZXNjOiBpbnQgLT4gdW5pdCA9IFwiY2FtbF9zeXNfY2xvc2VcIlxuXG5sZXQgcHJuZyA9IGxhenkoUmFuZG9tLlN0YXRlLm1ha2Vfc2VsZl9pbml0ICgpKVxuXG5sZXQgdGVtcF9maWxlX25hbWUgdGVtcF9kaXIgcHJlZml4IHN1ZmZpeCA9XG4gIGxldCBybmQgPSAoUmFuZG9tLlN0YXRlLmJpdHMgKExhenkuZm9yY2UgcHJuZykpIGxhbmQgMHhGRkZGRkYgaW5cbiAgY29uY2F0IHRlbXBfZGlyIChQcmludGYuc3ByaW50ZiBcIiVzJTA2eCVzXCIgcHJlZml4IHJuZCBzdWZmaXgpXG5cblxubGV0IGN1cnJlbnRfdGVtcF9kaXJfbmFtZSA9IHJlZiB0ZW1wX2Rpcl9uYW1lXG5cbmxldCBzZXRfdGVtcF9kaXJfbmFtZSBzID0gY3VycmVudF90ZW1wX2Rpcl9uYW1lIDo9IHNcbmxldCBnZXRfdGVtcF9kaXJfbmFtZSAoKSA9ICFjdXJyZW50X3RlbXBfZGlyX25hbWVcblxubGV0IHRlbXBfZmlsZSA/KHRlbXBfZGlyID0gIWN1cnJlbnRfdGVtcF9kaXJfbmFtZSkgcHJlZml4IHN1ZmZpeCA9XG4gIGxldCByZWMgdHJ5X25hbWUgY291bnRlciA9XG4gICAgbGV0IG5hbWUgPSB0ZW1wX2ZpbGVfbmFtZSB0ZW1wX2RpciBwcmVmaXggc3VmZml4IGluXG4gICAgdHJ5XG4gICAgICBjbG9zZV9kZXNjKG9wZW5fZGVzYyBuYW1lIFtPcGVuX3dyb25seTsgT3Blbl9jcmVhdDsgT3Blbl9leGNsXSAwbzYwMCk7XG4gICAgICBuYW1lXG4gICAgd2l0aCBTeXNfZXJyb3IgXyBhcyBlIC0+XG4gICAgICBpZiBjb3VudGVyID49IDEwMDAgdGhlbiByYWlzZSBlIGVsc2UgdHJ5X25hbWUgKGNvdW50ZXIgKyAxKVxuICBpbiB0cnlfbmFtZSAwXG5cbmxldCBvcGVuX3RlbXBfZmlsZSA/KG1vZGUgPSBbT3Blbl90ZXh0XSkgPyhwZXJtcyA9IDBvNjAwKVxuICAgICAgICAgICAgICAgICAgID8odGVtcF9kaXIgPSAhY3VycmVudF90ZW1wX2Rpcl9uYW1lKSBwcmVmaXggc3VmZml4ID1cbiAgbGV0IHJlYyB0cnlfbmFtZSBjb3VudGVyID1cbiAgICBsZXQgbmFtZSA9IHRlbXBfZmlsZV9uYW1lIHRlbXBfZGlyIHByZWZpeCBzdWZmaXggaW5cbiAgICB0cnlcbiAgICAgIChuYW1lLFxuICAgICAgIG9wZW5fb3V0X2dlbiAoT3Blbl93cm9ubHk6Ok9wZW5fY3JlYXQ6Ok9wZW5fZXhjbDo6bW9kZSkgcGVybXMgbmFtZSlcbiAgICB3aXRoIFN5c19lcnJvciBfIGFzIGUgLT5cbiAgICAgIGlmIGNvdW50ZXIgPj0gMTAwMCB0aGVuIHJhaXNlIGUgZWxzZSB0cnlfbmFtZSAoY291bnRlciArIDEpXG4gIGluIHRyeV9uYW1lIDBcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMDIgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogQ29tcGxleCBudW1iZXJzICopXG5cbnR5cGUgdCA9IHsgcmU6IGZsb2F0OyBpbTogZmxvYXQgfVxuXG5sZXQgemVybyA9IHsgcmUgPSAwLjA7IGltID0gMC4wIH1cbmxldCBvbmUgPSB7IHJlID0gMS4wOyBpbSA9IDAuMCB9XG5sZXQgaSA9IHsgcmUgPSAwLjA7IGltID0gMS4wIH1cblxubGV0IGFkZCB4IHkgPSB7IHJlID0geC5yZSArLiB5LnJlOyBpbSA9IHguaW0gKy4geS5pbSB9XG5cbmxldCBzdWIgeCB5ID0geyByZSA9IHgucmUgLS4geS5yZTsgaW0gPSB4LmltIC0uIHkuaW0gfVxuXG5sZXQgbmVnIHggPSB7IHJlID0gLS4geC5yZTsgaW0gPSAtLiB4LmltIH1cblxubGV0IGNvbmogeCA9IHsgcmUgPSB4LnJlOyBpbSA9IC0uIHguaW0gfVxuXG5sZXQgbXVsIHggeSA9IHsgcmUgPSB4LnJlICouIHkucmUgLS4geC5pbSAqLiB5LmltO1xuICAgICAgICAgICAgICAgIGltID0geC5yZSAqLiB5LmltICsuIHguaW0gKi4geS5yZSB9XG5cbmxldCBkaXYgeCB5ID1cbiAgaWYgYWJzX2Zsb2F0IHkucmUgPj0gYWJzX2Zsb2F0IHkuaW0gdGhlblxuICAgIGxldCByID0geS5pbSAvLiB5LnJlIGluXG4gICAgbGV0IGQgPSB5LnJlICsuIHIgKi4geS5pbSBpblxuICAgIHsgcmUgPSAoeC5yZSArLiByICouIHguaW0pIC8uIGQ7XG4gICAgICBpbSA9ICh4LmltIC0uIHIgKi4geC5yZSkgLy4gZCB9XG4gIGVsc2VcbiAgICBsZXQgciA9IHkucmUgLy4geS5pbSBpblxuICAgIGxldCBkID0geS5pbSArLiByICouIHkucmUgaW5cbiAgICB7IHJlID0gKHIgKi4geC5yZSArLiB4LmltKSAvLiBkO1xuICAgICAgaW0gPSAociAqLiB4LmltIC0uIHgucmUpIC8uIGQgfVxuXG5sZXQgaW52IHggPSBkaXYgb25lIHhcblxubGV0IG5vcm0yIHggPSB4LnJlICouIHgucmUgKy4geC5pbSAqLiB4LmltXG5cbmxldCBub3JtIHggPVxuICAoKiBXYXRjaCBvdXQgZm9yIG92ZXJmbG93IGluIGNvbXB1dGluZyByZV4yICsgaW1eMiAqKVxuICBsZXQgciA9IGFic19mbG9hdCB4LnJlIGFuZCBpID0gYWJzX2Zsb2F0IHguaW0gaW5cbiAgaWYgciA9IDAuMCB0aGVuIGlcbiAgZWxzZSBpZiBpID0gMC4wIHRoZW4gclxuICBlbHNlIGlmIHIgPj0gaSB0aGVuXG4gICAgbGV0IHEgPSBpIC8uIHIgaW4gciAqLiBzcXJ0KDEuMCArLiBxICouIHEpXG4gIGVsc2VcbiAgICBsZXQgcSA9IHIgLy4gaSBpbiBpICouIHNxcnQoMS4wICsuIHEgKi4gcSlcblxubGV0IGFyZyB4ID0gYXRhbjIgeC5pbSB4LnJlXG5cbmxldCBwb2xhciBuIGEgPSB7IHJlID0gY29zIGEgKi4gbjsgaW0gPSBzaW4gYSAqLiBuIH1cblxubGV0IHNxcnQgeCA9XG4gIGlmIHgucmUgPSAwLjAgJiYgeC5pbSA9IDAuMCB0aGVuIHsgcmUgPSAwLjA7IGltID0gMC4wIH1cbiAgZWxzZSBiZWdpblxuICAgIGxldCByID0gYWJzX2Zsb2F0IHgucmUgYW5kIGkgPSBhYnNfZmxvYXQgeC5pbSBpblxuICAgIGxldCB3ID1cbiAgICAgIGlmIHIgPj0gaSB0aGVuIGJlZ2luXG4gICAgICAgIGxldCBxID0gaSAvLiByIGluXG4gICAgICAgIHNxcnQocikgKi4gc3FydCgwLjUgKi4gKDEuMCArLiBzcXJ0KDEuMCArLiBxICouIHEpKSlcbiAgICAgIGVuZCBlbHNlIGJlZ2luXG4gICAgICAgIGxldCBxID0gciAvLiBpIGluXG4gICAgICAgIHNxcnQoaSkgKi4gc3FydCgwLjUgKi4gKHEgKy4gc3FydCgxLjAgKy4gcSAqLiBxKSkpXG4gICAgICBlbmQgaW5cbiAgICBpZiB4LnJlID49IDAuMFxuICAgIHRoZW4geyByZSA9IHc7ICBpbSA9IDAuNSAqLiB4LmltIC8uIHcgfVxuICAgIGVsc2UgeyByZSA9IDAuNSAqLiBpIC8uIHc7ICBpbSA9IGlmIHguaW0gPj0gMC4wIHRoZW4gdyBlbHNlIC0uIHcgfVxuICBlbmRcblxubGV0IGV4cCB4ID1cbiAgbGV0IGUgPSBleHAgeC5yZSBpbiB7IHJlID0gZSAqLiBjb3MgeC5pbTsgaW0gPSBlICouIHNpbiB4LmltIH1cblxubGV0IGxvZyB4ID0geyByZSA9IGxvZyAobm9ybSB4KTsgaW0gPSBhdGFuMiB4LmltIHgucmUgfVxuXG5sZXQgcG93IHggeSA9IGV4cCAobXVsIHkgKGxvZyB4KSlcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICBNYW51ZWwgU2VycmFubyBldCBYYXZpZXIgTGVyb3ksIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMDAgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogTW9kdWxlIFtCaWdhcnJheV06IGxhcmdlLCBtdWx0aS1kaW1lbnNpb25hbCwgbnVtZXJpY2FsIGFycmF5cyAqKVxuXG4oKiBUaGVzZSB0eXBlcyBpbiBtdXN0IGJlIGtlcHQgaW4gc3luYyB3aXRoIHRoZSB0YWJsZXMgaW5cbiAgIC4uL3R5cGluZy90eXBlb3B0Lm1sICopXG5cbnR5cGUgZmxvYXQzMl9lbHQgPSBGbG9hdDMyX2VsdFxudHlwZSBmbG9hdDY0X2VsdCA9IEZsb2F0NjRfZWx0XG50eXBlIGludDhfc2lnbmVkX2VsdCA9IEludDhfc2lnbmVkX2VsdFxudHlwZSBpbnQ4X3Vuc2lnbmVkX2VsdCA9IEludDhfdW5zaWduZWRfZWx0XG50eXBlIGludDE2X3NpZ25lZF9lbHQgPSBJbnQxNl9zaWduZWRfZWx0XG50eXBlIGludDE2X3Vuc2lnbmVkX2VsdCA9IEludDE2X3Vuc2lnbmVkX2VsdFxudHlwZSBpbnQzMl9lbHQgPSBJbnQzMl9lbHRcbnR5cGUgaW50NjRfZWx0ID0gSW50NjRfZWx0XG50eXBlIGludF9lbHQgPSBJbnRfZWx0XG50eXBlIG5hdGl2ZWludF9lbHQgPSBOYXRpdmVpbnRfZWx0XG50eXBlIGNvbXBsZXgzMl9lbHQgPSBDb21wbGV4MzJfZWx0XG50eXBlIGNvbXBsZXg2NF9lbHQgPSBDb21wbGV4NjRfZWx0XG5cbnR5cGUgKCdhLCAnYikga2luZCA9XG4gICAgRmxvYXQzMiA6IChmbG9hdCwgZmxvYXQzMl9lbHQpIGtpbmRcbiAgfCBGbG9hdDY0IDogKGZsb2F0LCBmbG9hdDY0X2VsdCkga2luZFxuICB8IEludDhfc2lnbmVkIDogKGludCwgaW50OF9zaWduZWRfZWx0KSBraW5kXG4gIHwgSW50OF91bnNpZ25lZCA6IChpbnQsIGludDhfdW5zaWduZWRfZWx0KSBraW5kXG4gIHwgSW50MTZfc2lnbmVkIDogKGludCwgaW50MTZfc2lnbmVkX2VsdCkga2luZFxuICB8IEludDE2X3Vuc2lnbmVkIDogKGludCwgaW50MTZfdW5zaWduZWRfZWx0KSBraW5kXG4gIHwgSW50MzIgOiAoaW50MzIsIGludDMyX2VsdCkga2luZFxuICB8IEludDY0IDogKGludDY0LCBpbnQ2NF9lbHQpIGtpbmRcbiAgfCBJbnQgOiAoaW50LCBpbnRfZWx0KSBraW5kXG4gIHwgTmF0aXZlaW50IDogKG5hdGl2ZWludCwgbmF0aXZlaW50X2VsdCkga2luZFxuICB8IENvbXBsZXgzMiA6IChDb21wbGV4LnQsIGNvbXBsZXgzMl9lbHQpIGtpbmRcbiAgfCBDb21wbGV4NjQgOiAoQ29tcGxleC50LCBjb21wbGV4NjRfZWx0KSBraW5kXG4gIHwgQ2hhciA6IChjaGFyLCBpbnQ4X3Vuc2lnbmVkX2VsdCkga2luZFxuXG50eXBlIGNfbGF5b3V0ID0gQ19sYXlvdXRfdHlwXG50eXBlIGZvcnRyYW5fbGF5b3V0ID0gRm9ydHJhbl9sYXlvdXRfdHlwICgqKilcblxudHlwZSAnYSBsYXlvdXQgPVxuICAgIENfbGF5b3V0OiBjX2xheW91dCBsYXlvdXRcbiAgfCBGb3J0cmFuX2xheW91dDogZm9ydHJhbl9sYXlvdXQgbGF5b3V0XG5cbigqIEtlZXAgdGhvc2UgY29uc3RhbnRzIGluIHN5bmMgd2l0aCB0aGUgY2FtbF9iYV9raW5kIGVudW1lcmF0aW9uXG4gICBpbiBiaWdhcnJheS5oICopXG5cbmxldCBmbG9hdDMyID0gRmxvYXQzMlxubGV0IGZsb2F0NjQgPSBGbG9hdDY0XG5sZXQgaW50OF9zaWduZWQgPSBJbnQ4X3NpZ25lZFxubGV0IGludDhfdW5zaWduZWQgPSBJbnQ4X3Vuc2lnbmVkXG5sZXQgaW50MTZfc2lnbmVkID0gSW50MTZfc2lnbmVkXG5sZXQgaW50MTZfdW5zaWduZWQgPSBJbnQxNl91bnNpZ25lZFxubGV0IGludDMyID0gSW50MzJcbmxldCBpbnQ2NCA9IEludDY0XG5sZXQgaW50ID0gSW50XG5sZXQgbmF0aXZlaW50ID0gTmF0aXZlaW50XG5sZXQgY29tcGxleDMyID0gQ29tcGxleDMyXG5sZXQgY29tcGxleDY0ID0gQ29tcGxleDY0XG5sZXQgY2hhciA9IENoYXJcblxubGV0IGtpbmRfc2l6ZV9pbl9ieXRlcyA6IHR5cGUgYSBiLiAoYSwgYikga2luZCAtPiBpbnQgPSBmdW5jdGlvblxuICB8IEZsb2F0MzIgLT4gNFxuICB8IEZsb2F0NjQgLT4gOFxuICB8IEludDhfc2lnbmVkIC0+IDFcbiAgfCBJbnQ4X3Vuc2lnbmVkIC0+IDFcbiAgfCBJbnQxNl9zaWduZWQgLT4gMlxuICB8IEludDE2X3Vuc2lnbmVkIC0+IDJcbiAgfCBJbnQzMiAtPiA0XG4gIHwgSW50NjQgLT4gOFxuICB8IEludCAtPiBTeXMud29yZF9zaXplIC8gOFxuICB8IE5hdGl2ZWludCAtPiBTeXMud29yZF9zaXplIC8gOFxuICB8IENvbXBsZXgzMiAtPiA4XG4gIHwgQ29tcGxleDY0IC0+IDE2XG4gIHwgQ2hhciAtPiAxXG5cbigqIEtlZXAgdGhvc2UgY29uc3RhbnRzIGluIHN5bmMgd2l0aCB0aGUgY2FtbF9iYV9sYXlvdXQgZW51bWVyYXRpb25cbiAgIGluIGJpZ2FycmF5LmggKilcblxubGV0IGNfbGF5b3V0ID0gQ19sYXlvdXRcbmxldCBmb3J0cmFuX2xheW91dCA9IEZvcnRyYW5fbGF5b3V0XG5cbm1vZHVsZSBHZW5hcnJheSA9IHN0cnVjdFxuICB0eXBlICghJ2EsICEnYiwgISdjKSB0XG4gIGV4dGVybmFsIGNyZWF0ZTogKCdhLCAnYikga2luZCAtPiAnYyBsYXlvdXQgLT4gaW50IGFycmF5IC0+ICgnYSwgJ2IsICdjKSB0XG4gICAgID0gXCJjYW1sX2JhX2NyZWF0ZVwiXG4gIGV4dGVybmFsIGdldDogKCdhLCAnYiwgJ2MpIHQgLT4gaW50IGFycmF5IC0+ICdhXG4gICAgID0gXCJjYW1sX2JhX2dldF9nZW5lcmljXCJcbiAgZXh0ZXJuYWwgc2V0OiAoJ2EsICdiLCAnYykgdCAtPiBpbnQgYXJyYXkgLT4gJ2EgLT4gdW5pdFxuICAgICA9IFwiY2FtbF9iYV9zZXRfZ2VuZXJpY1wiXG5cbiAgbGV0IHJlYyBjbG9vcCBhcnIgaWR4IGYgY29sIG1heCA9XG4gICAgaWYgY29sID0gQXJyYXkubGVuZ3RoIGlkeCB0aGVuIHNldCBhcnIgaWR4IChmIGlkeClcbiAgICBlbHNlIGZvciBqID0gMCB0byBwcmVkIG1heC4oY29sKSBkb1xuICAgICAgICAgICBpZHguKGNvbCkgPC0gajtcbiAgICAgICAgICAgY2xvb3AgYXJyIGlkeCBmIChzdWNjIGNvbCkgbWF4XG4gICAgICAgICBkb25lXG4gIGxldCByZWMgZmxvb3AgYXJyIGlkeCBmIGNvbCBtYXggPVxuICAgIGlmIGNvbCA8IDAgdGhlbiBzZXQgYXJyIGlkeCAoZiBpZHgpXG4gICAgZWxzZSBmb3IgaiA9IDEgdG8gbWF4Lihjb2wpIGRvXG4gICAgICAgICAgIGlkeC4oY29sKSA8LSBqO1xuICAgICAgICAgICBmbG9vcCBhcnIgaWR4IGYgKHByZWQgY29sKSBtYXhcbiAgICAgICAgIGRvbmVcbiAgbGV0IGluaXQgKHR5cGUgdCkga2luZCAobGF5b3V0IDogdCBsYXlvdXQpIGRpbXMgZiA9XG4gICAgbGV0IGFyciA9IGNyZWF0ZSBraW5kIGxheW91dCBkaW1zIGluXG4gICAgbWF0Y2ggQXJyYXkubGVuZ3RoIGRpbXMsIGxheW91dCB3aXRoXG4gICAgfCAwLCBfIC0+IGFyclxuICAgIHwgZGxlbiwgQ19sYXlvdXQgLT4gY2xvb3AgYXJyIChBcnJheS5tYWtlIGRsZW4gMCkgZiAwIGRpbXM7IGFyclxuICAgIHwgZGxlbiwgRm9ydHJhbl9sYXlvdXQgLT4gZmxvb3AgYXJyIChBcnJheS5tYWtlIGRsZW4gMSkgZiAocHJlZCBkbGVuKSBkaW1zO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyXG5cbiAgZXh0ZXJuYWwgbnVtX2RpbXM6ICgnYSwgJ2IsICdjKSB0IC0+IGludCA9IFwiY2FtbF9iYV9udW1fZGltc1wiXG4gIGV4dGVybmFsIG50aF9kaW06ICgnYSwgJ2IsICdjKSB0IC0+IGludCAtPiBpbnQgPSBcImNhbWxfYmFfZGltXCJcbiAgbGV0IGRpbXMgYSA9XG4gICAgbGV0IG4gPSBudW1fZGltcyBhIGluXG4gICAgbGV0IGQgPSBBcnJheS5tYWtlIG4gMCBpblxuICAgIGZvciBpID0gMCB0byBuLTEgZG8gZC4oaSkgPC0gbnRoX2RpbSBhIGkgZG9uZTtcbiAgICBkXG5cbiAgZXh0ZXJuYWwga2luZDogKCdhLCAnYiwgJ2MpIHQgLT4gKCdhLCAnYikga2luZCA9IFwiY2FtbF9iYV9raW5kXCJcbiAgZXh0ZXJuYWwgbGF5b3V0OiAoJ2EsICdiLCAnYykgdCAtPiAnYyBsYXlvdXQgPSBcImNhbWxfYmFfbGF5b3V0XCJcbiAgZXh0ZXJuYWwgY2hhbmdlX2xheW91dDogKCdhLCAnYiwgJ2MpIHQgLT4gJ2QgbGF5b3V0IC0+ICgnYSwgJ2IsICdkKSB0XG4gICAgID0gXCJjYW1sX2JhX2NoYW5nZV9sYXlvdXRcIlxuXG4gIGxldCBzaXplX2luX2J5dGVzIGFyciA9XG4gICAgKGtpbmRfc2l6ZV9pbl9ieXRlcyAoa2luZCBhcnIpKSAqIChBcnJheS5mb2xkX2xlZnQgKCAqICkgMSAoZGltcyBhcnIpKVxuXG4gIGV4dGVybmFsIHN1Yl9sZWZ0OiAoJ2EsICdiLCBjX2xheW91dCkgdCAtPiBpbnQgLT4gaW50IC0+ICgnYSwgJ2IsIGNfbGF5b3V0KSB0XG4gICAgID0gXCJjYW1sX2JhX3N1YlwiXG4gIGV4dGVybmFsIHN1Yl9yaWdodDogKCdhLCAnYiwgZm9ydHJhbl9sYXlvdXQpIHQgLT4gaW50IC0+IGludCAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAoJ2EsICdiLCBmb3J0cmFuX2xheW91dCkgdFxuICAgICA9IFwiY2FtbF9iYV9zdWJcIlxuICBleHRlcm5hbCBzbGljZV9sZWZ0OiAoJ2EsICdiLCBjX2xheW91dCkgdCAtPiBpbnQgYXJyYXkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKCdhLCAnYiwgY19sYXlvdXQpIHRcbiAgICAgPSBcImNhbWxfYmFfc2xpY2VcIlxuICBleHRlcm5hbCBzbGljZV9yaWdodDogKCdhLCAnYiwgZm9ydHJhbl9sYXlvdXQpIHQgLT4gaW50IGFycmF5IC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICgnYSwgJ2IsIGZvcnRyYW5fbGF5b3V0KSB0XG4gICAgID0gXCJjYW1sX2JhX3NsaWNlXCJcbiAgZXh0ZXJuYWwgYmxpdDogKCdhLCAnYiwgJ2MpIHQgLT4gKCdhLCAnYiwgJ2MpIHQgLT4gdW5pdFxuICAgICA9IFwiY2FtbF9iYV9ibGl0XCJcbiAgZXh0ZXJuYWwgZmlsbDogKCdhLCAnYiwgJ2MpIHQgLT4gJ2EgLT4gdW5pdCA9IFwiY2FtbF9iYV9maWxsXCJcbmVuZFxuXG5tb2R1bGUgQXJyYXkwID0gc3RydWN0XG4gIHR5cGUgKCEnYSwgISdiLCAhJ2MpIHQgPSAoJ2EsICdiLCAnYykgR2VuYXJyYXkudFxuICBsZXQgY3JlYXRlIGtpbmQgbGF5b3V0ID1cbiAgICBHZW5hcnJheS5jcmVhdGUga2luZCBsYXlvdXQgW3x8XVxuICBsZXQgZ2V0IGFyciA9IEdlbmFycmF5LmdldCBhcnIgW3x8XVxuICBsZXQgc2V0IGFyciA9IEdlbmFycmF5LnNldCBhcnIgW3x8XVxuICBleHRlcm5hbCBraW5kOiAoJ2EsICdiLCAnYykgdCAtPiAoJ2EsICdiKSBraW5kID0gXCJjYW1sX2JhX2tpbmRcIlxuICBleHRlcm5hbCBsYXlvdXQ6ICgnYSwgJ2IsICdjKSB0IC0+ICdjIGxheW91dCA9IFwiY2FtbF9iYV9sYXlvdXRcIlxuXG4gIGV4dGVybmFsIGNoYW5nZV9sYXlvdXQ6ICgnYSwgJ2IsICdjKSB0IC0+ICdkIGxheW91dCAtPiAoJ2EsICdiLCAnZCkgdFxuICAgID0gXCJjYW1sX2JhX2NoYW5nZV9sYXlvdXRcIlxuXG4gIGxldCBzaXplX2luX2J5dGVzIGFyciA9IGtpbmRfc2l6ZV9pbl9ieXRlcyAoa2luZCBhcnIpXG5cbiAgZXh0ZXJuYWwgYmxpdDogKCdhLCAnYiwgJ2MpIHQgLT4gKCdhLCAnYiwgJ2MpIHQgLT4gdW5pdCA9IFwiY2FtbF9iYV9ibGl0XCJcbiAgZXh0ZXJuYWwgZmlsbDogKCdhLCAnYiwgJ2MpIHQgLT4gJ2EgLT4gdW5pdCA9IFwiY2FtbF9iYV9maWxsXCJcblxuICBsZXQgb2ZfdmFsdWUga2luZCBsYXlvdXQgdiA9XG4gICAgbGV0IGEgPSBjcmVhdGUga2luZCBsYXlvdXQgaW5cbiAgICBzZXQgYSB2O1xuICAgIGFcbiAgbGV0IGluaXQgPSBvZl92YWx1ZVxuZW5kXG5cbm1vZHVsZSBBcnJheTEgPSBzdHJ1Y3RcbiAgdHlwZSAoISdhLCAhJ2IsICEnYykgdCA9ICgnYSwgJ2IsICdjKSBHZW5hcnJheS50XG4gIGxldCBjcmVhdGUga2luZCBsYXlvdXQgZGltID1cbiAgICBHZW5hcnJheS5jcmVhdGUga2luZCBsYXlvdXQgW3xkaW18XVxuICBleHRlcm5hbCBnZXQ6ICgnYSwgJ2IsICdjKSB0IC0+IGludCAtPiAnYSA9IFwiJWNhbWxfYmFfcmVmXzFcIlxuICBleHRlcm5hbCBzZXQ6ICgnYSwgJ2IsICdjKSB0IC0+IGludCAtPiAnYSAtPiB1bml0ID0gXCIlY2FtbF9iYV9zZXRfMVwiXG4gIGV4dGVybmFsIHVuc2FmZV9nZXQ6ICgnYSwgJ2IsICdjKSB0IC0+IGludCAtPiAnYSA9IFwiJWNhbWxfYmFfdW5zYWZlX3JlZl8xXCJcbiAgZXh0ZXJuYWwgdW5zYWZlX3NldDogKCdhLCAnYiwgJ2MpIHQgLT4gaW50IC0+ICdhIC0+IHVuaXRcbiAgICAgPSBcIiVjYW1sX2JhX3Vuc2FmZV9zZXRfMVwiXG4gIGV4dGVybmFsIGRpbTogKCdhLCAnYiwgJ2MpIHQgLT4gaW50ID0gXCIlY2FtbF9iYV9kaW1fMVwiXG4gIGV4dGVybmFsIGtpbmQ6ICgnYSwgJ2IsICdjKSB0IC0+ICgnYSwgJ2IpIGtpbmQgPSBcImNhbWxfYmFfa2luZFwiXG4gIGV4dGVybmFsIGxheW91dDogKCdhLCAnYiwgJ2MpIHQgLT4gJ2MgbGF5b3V0ID0gXCJjYW1sX2JhX2xheW91dFwiXG5cbiAgZXh0ZXJuYWwgY2hhbmdlX2xheW91dDogKCdhLCAnYiwgJ2MpIHQgLT4gJ2QgbGF5b3V0IC0+ICgnYSwgJ2IsICdkKSB0XG4gICAgPSBcImNhbWxfYmFfY2hhbmdlX2xheW91dFwiXG5cbiAgbGV0IHNpemVfaW5fYnl0ZXMgYXJyID1cbiAgICAoa2luZF9zaXplX2luX2J5dGVzIChraW5kIGFycikpICogKGRpbSBhcnIpXG5cbiAgZXh0ZXJuYWwgc3ViOiAoJ2EsICdiLCAnYykgdCAtPiBpbnQgLT4gaW50IC0+ICgnYSwgJ2IsICdjKSB0ID0gXCJjYW1sX2JhX3N1YlwiXG4gIGxldCBzbGljZSAodHlwZSB0KSAoYSA6IChfLCBfLCB0KSBHZW5hcnJheS50KSBuID1cbiAgICBtYXRjaCBsYXlvdXQgYSB3aXRoXG4gICAgfCBDX2xheW91dCAtPiAoR2VuYXJyYXkuc2xpY2VfbGVmdCBhIFt8bnxdIDogKF8sIF8sIHQpIEdlbmFycmF5LnQpXG4gICAgfCBGb3J0cmFuX2xheW91dCAtPiAoR2VuYXJyYXkuc2xpY2VfcmlnaHQgYSBbfG58XTogKF8sIF8sIHQpIEdlbmFycmF5LnQpXG4gIGV4dGVybmFsIGJsaXQ6ICgnYSwgJ2IsICdjKSB0IC0+ICgnYSwgJ2IsICdjKSB0IC0+IHVuaXQgPSBcImNhbWxfYmFfYmxpdFwiXG4gIGV4dGVybmFsIGZpbGw6ICgnYSwgJ2IsICdjKSB0IC0+ICdhIC0+IHVuaXQgPSBcImNhbWxfYmFfZmlsbFwiXG4gIGxldCBjX2luaXQgYXJyIGRpbSBmID1cbiAgICBmb3IgaSA9IDAgdG8gcHJlZCBkaW0gZG8gdW5zYWZlX3NldCBhcnIgaSAoZiBpKSBkb25lXG4gIGxldCBmb3J0cmFuX2luaXQgYXJyIGRpbSBmID1cbiAgICBmb3IgaSA9IDEgdG8gZGltIGRvIHVuc2FmZV9zZXQgYXJyIGkgKGYgaSkgZG9uZVxuICBsZXQgaW5pdCAodHlwZSB0KSBraW5kIChsYXlvdXQgOiB0IGxheW91dCkgZGltIGYgPVxuICAgIGxldCBhcnIgPSBjcmVhdGUga2luZCBsYXlvdXQgZGltIGluXG4gICAgbWF0Y2ggbGF5b3V0IHdpdGhcbiAgICB8IENfbGF5b3V0IC0+IGNfaW5pdCBhcnIgZGltIGY7IGFyclxuICAgIHwgRm9ydHJhbl9sYXlvdXQgLT4gZm9ydHJhbl9pbml0IGFyciBkaW0gZjsgYXJyXG4gIGxldCBvZl9hcnJheSAodHlwZSB0KSBraW5kIChsYXlvdXQ6IHQgbGF5b3V0KSBkYXRhID1cbiAgICBsZXQgYmEgPSBjcmVhdGUga2luZCBsYXlvdXQgKEFycmF5Lmxlbmd0aCBkYXRhKSBpblxuICAgIGxldCBvZnMgPVxuICAgICAgbWF0Y2ggbGF5b3V0IHdpdGhcbiAgICAgICAgQ19sYXlvdXQgLT4gMFxuICAgICAgfCBGb3J0cmFuX2xheW91dCAtPiAxXG4gICAgaW5cbiAgICBmb3IgaSA9IDAgdG8gQXJyYXkubGVuZ3RoIGRhdGEgLSAxIGRvIHVuc2FmZV9zZXQgYmEgKGkgKyBvZnMpIGRhdGEuKGkpIGRvbmU7XG4gICAgYmFcbmVuZFxuXG5tb2R1bGUgQXJyYXkyID0gc3RydWN0XG4gIHR5cGUgKCEnYSwgISdiLCAhJ2MpIHQgPSAoJ2EsICdiLCAnYykgR2VuYXJyYXkudFxuICBsZXQgY3JlYXRlIGtpbmQgbGF5b3V0IGRpbTEgZGltMiA9XG4gICAgR2VuYXJyYXkuY3JlYXRlIGtpbmQgbGF5b3V0IFt8ZGltMTsgZGltMnxdXG4gIGV4dGVybmFsIGdldDogKCdhLCAnYiwgJ2MpIHQgLT4gaW50IC0+IGludCAtPiAnYSA9IFwiJWNhbWxfYmFfcmVmXzJcIlxuICBleHRlcm5hbCBzZXQ6ICgnYSwgJ2IsICdjKSB0IC0+IGludCAtPiBpbnQgLT4gJ2EgLT4gdW5pdCA9IFwiJWNhbWxfYmFfc2V0XzJcIlxuICBleHRlcm5hbCB1bnNhZmVfZ2V0OiAoJ2EsICdiLCAnYykgdCAtPiBpbnQgLT4gaW50IC0+ICdhXG4gICAgID0gXCIlY2FtbF9iYV91bnNhZmVfcmVmXzJcIlxuICBleHRlcm5hbCB1bnNhZmVfc2V0OiAoJ2EsICdiLCAnYykgdCAtPiBpbnQgLT4gaW50IC0+ICdhIC0+IHVuaXRcbiAgICAgPSBcIiVjYW1sX2JhX3Vuc2FmZV9zZXRfMlwiXG4gIGV4dGVybmFsIGRpbTE6ICgnYSwgJ2IsICdjKSB0IC0+IGludCA9IFwiJWNhbWxfYmFfZGltXzFcIlxuICBleHRlcm5hbCBkaW0yOiAoJ2EsICdiLCAnYykgdCAtPiBpbnQgPSBcIiVjYW1sX2JhX2RpbV8yXCJcbiAgZXh0ZXJuYWwga2luZDogKCdhLCAnYiwgJ2MpIHQgLT4gKCdhLCAnYikga2luZCA9IFwiY2FtbF9iYV9raW5kXCJcbiAgZXh0ZXJuYWwgbGF5b3V0OiAoJ2EsICdiLCAnYykgdCAtPiAnYyBsYXlvdXQgPSBcImNhbWxfYmFfbGF5b3V0XCJcblxuICBleHRlcm5hbCBjaGFuZ2VfbGF5b3V0OiAoJ2EsICdiLCAnYykgdCAtPiAnZCBsYXlvdXQgLT4gKCdhLCAnYiwgJ2QpIHRcbiAgICA9IFwiY2FtbF9iYV9jaGFuZ2VfbGF5b3V0XCJcblxuICBsZXQgc2l6ZV9pbl9ieXRlcyBhcnIgPVxuICAgIChraW5kX3NpemVfaW5fYnl0ZXMgKGtpbmQgYXJyKSkgKiAoZGltMSBhcnIpICogKGRpbTIgYXJyKVxuXG4gIGV4dGVybmFsIHN1Yl9sZWZ0OiAoJ2EsICdiLCBjX2xheW91dCkgdCAtPiBpbnQgLT4gaW50IC0+ICgnYSwgJ2IsIGNfbGF5b3V0KSB0XG4gICAgID0gXCJjYW1sX2JhX3N1YlwiXG4gIGV4dGVybmFsIHN1Yl9yaWdodDpcbiAgICAoJ2EsICdiLCBmb3J0cmFuX2xheW91dCkgdCAtPiBpbnQgLT4gaW50IC0+ICgnYSwgJ2IsIGZvcnRyYW5fbGF5b3V0KSB0XG4gICAgID0gXCJjYW1sX2JhX3N1YlwiXG4gIGxldCBzbGljZV9sZWZ0IGEgbiA9IEdlbmFycmF5LnNsaWNlX2xlZnQgYSBbfG58XVxuICBsZXQgc2xpY2VfcmlnaHQgYSBuID0gR2VuYXJyYXkuc2xpY2VfcmlnaHQgYSBbfG58XVxuICBleHRlcm5hbCBibGl0OiAoJ2EsICdiLCAnYykgdCAtPiAoJ2EsICdiLCAnYykgdCAtPiB1bml0ID0gXCJjYW1sX2JhX2JsaXRcIlxuICBleHRlcm5hbCBmaWxsOiAoJ2EsICdiLCAnYykgdCAtPiAnYSAtPiB1bml0ID0gXCJjYW1sX2JhX2ZpbGxcIlxuICBsZXQgY19pbml0IGFyciBkaW0xIGRpbTIgZiA9XG4gICAgZm9yIGkgPSAwIHRvIHByZWQgZGltMSBkb1xuICAgICAgZm9yIGogPSAwIHRvIHByZWQgZGltMiBkb1xuICAgICAgICB1bnNhZmVfc2V0IGFyciBpIGogKGYgaSBqKVxuICAgICAgZG9uZVxuICAgIGRvbmVcbiAgbGV0IGZvcnRyYW5faW5pdCBhcnIgZGltMSBkaW0yIGYgPVxuICAgIGZvciBqID0gMSB0byBkaW0yIGRvXG4gICAgICBmb3IgaSA9IDEgdG8gZGltMSBkb1xuICAgICAgICB1bnNhZmVfc2V0IGFyciBpIGogKGYgaSBqKVxuICAgICAgZG9uZVxuICAgIGRvbmVcbiAgbGV0IGluaXQgKHR5cGUgdCkga2luZCAobGF5b3V0IDogdCBsYXlvdXQpIGRpbTEgZGltMiBmID1cbiAgICBsZXQgYXJyID0gY3JlYXRlIGtpbmQgbGF5b3V0IGRpbTEgZGltMiBpblxuICAgIG1hdGNoIGxheW91dCB3aXRoXG4gICAgfCBDX2xheW91dCAtPiBjX2luaXQgYXJyIGRpbTEgZGltMiBmOyBhcnJcbiAgICB8IEZvcnRyYW5fbGF5b3V0IC0+IGZvcnRyYW5faW5pdCBhcnIgZGltMSBkaW0yIGY7IGFyclxuICBsZXQgb2ZfYXJyYXkgKHR5cGUgdCkga2luZCAobGF5b3V0OiB0IGxheW91dCkgZGF0YSA9XG4gICAgbGV0IGRpbTEgPSBBcnJheS5sZW5ndGggZGF0YSBpblxuICAgIGxldCBkaW0yID0gaWYgZGltMSA9IDAgdGhlbiAwIGVsc2UgQXJyYXkubGVuZ3RoIGRhdGEuKDApIGluXG4gICAgbGV0IGJhID0gY3JlYXRlIGtpbmQgbGF5b3V0IGRpbTEgZGltMiBpblxuICAgIGxldCBvZnMgPVxuICAgICAgbWF0Y2ggbGF5b3V0IHdpdGhcbiAgICAgICAgQ19sYXlvdXQgLT4gMFxuICAgICAgfCBGb3J0cmFuX2xheW91dCAtPiAxXG4gICAgaW5cbiAgICBmb3IgaSA9IDAgdG8gZGltMSAtIDEgZG9cbiAgICAgIGxldCByb3cgPSBkYXRhLihpKSBpblxuICAgICAgaWYgQXJyYXkubGVuZ3RoIHJvdyA8PiBkaW0yIHRoZW5cbiAgICAgICAgaW52YWxpZF9hcmcoXCJCaWdhcnJheS5BcnJheTIub2ZfYXJyYXk6IG5vbi1yZWN0YW5ndWxhciBkYXRhXCIpO1xuICAgICAgZm9yIGogPSAwIHRvIGRpbTIgLSAxIGRvXG4gICAgICAgIHVuc2FmZV9zZXQgYmEgKGkgKyBvZnMpIChqICsgb2ZzKSByb3cuKGopXG4gICAgICBkb25lXG4gICAgZG9uZTtcbiAgICBiYVxuZW5kXG5cbm1vZHVsZSBBcnJheTMgPSBzdHJ1Y3RcbiAgdHlwZSAoISdhLCAhJ2IsICEnYykgdCA9ICgnYSwgJ2IsICdjKSBHZW5hcnJheS50XG4gIGxldCBjcmVhdGUga2luZCBsYXlvdXQgZGltMSBkaW0yIGRpbTMgPVxuICAgIEdlbmFycmF5LmNyZWF0ZSBraW5kIGxheW91dCBbfGRpbTE7IGRpbTI7IGRpbTN8XVxuICBleHRlcm5hbCBnZXQ6ICgnYSwgJ2IsICdjKSB0IC0+IGludCAtPiBpbnQgLT4gaW50IC0+ICdhID0gXCIlY2FtbF9iYV9yZWZfM1wiXG4gIGV4dGVybmFsIHNldDogKCdhLCAnYiwgJ2MpIHQgLT4gaW50IC0+IGludCAtPiBpbnQgLT4gJ2EgLT4gdW5pdFxuICAgICA9IFwiJWNhbWxfYmFfc2V0XzNcIlxuICBleHRlcm5hbCB1bnNhZmVfZ2V0OiAoJ2EsICdiLCAnYykgdCAtPiBpbnQgLT4gaW50IC0+IGludCAtPiAnYVxuICAgICA9IFwiJWNhbWxfYmFfdW5zYWZlX3JlZl8zXCJcbiAgZXh0ZXJuYWwgdW5zYWZlX3NldDogKCdhLCAnYiwgJ2MpIHQgLT4gaW50IC0+IGludCAtPiBpbnQgLT4gJ2EgLT4gdW5pdFxuICAgICA9IFwiJWNhbWxfYmFfdW5zYWZlX3NldF8zXCJcbiAgZXh0ZXJuYWwgZGltMTogKCdhLCAnYiwgJ2MpIHQgLT4gaW50ID0gXCIlY2FtbF9iYV9kaW1fMVwiXG4gIGV4dGVybmFsIGRpbTI6ICgnYSwgJ2IsICdjKSB0IC0+IGludCA9IFwiJWNhbWxfYmFfZGltXzJcIlxuICBleHRlcm5hbCBkaW0zOiAoJ2EsICdiLCAnYykgdCAtPiBpbnQgPSBcIiVjYW1sX2JhX2RpbV8zXCJcbiAgZXh0ZXJuYWwga2luZDogKCdhLCAnYiwgJ2MpIHQgLT4gKCdhLCAnYikga2luZCA9IFwiY2FtbF9iYV9raW5kXCJcbiAgZXh0ZXJuYWwgbGF5b3V0OiAoJ2EsICdiLCAnYykgdCAtPiAnYyBsYXlvdXQgPSBcImNhbWxfYmFfbGF5b3V0XCJcblxuICBleHRlcm5hbCBjaGFuZ2VfbGF5b3V0OiAoJ2EsICdiLCAnYykgdCAtPiAnZCBsYXlvdXQgLT4gKCdhLCAnYiwgJ2QpIHRcbiAgICA9IFwiY2FtbF9iYV9jaGFuZ2VfbGF5b3V0XCJcblxuICBsZXQgc2l6ZV9pbl9ieXRlcyBhcnIgPVxuICAgIChraW5kX3NpemVfaW5fYnl0ZXMgKGtpbmQgYXJyKSkgKiAoZGltMSBhcnIpICogKGRpbTIgYXJyKSAqIChkaW0zIGFycilcblxuICBleHRlcm5hbCBzdWJfbGVmdDogKCdhLCAnYiwgY19sYXlvdXQpIHQgLT4gaW50IC0+IGludCAtPiAoJ2EsICdiLCBjX2xheW91dCkgdFxuICAgICA9IFwiY2FtbF9iYV9zdWJcIlxuICBleHRlcm5hbCBzdWJfcmlnaHQ6XG4gICAgICgnYSwgJ2IsIGZvcnRyYW5fbGF5b3V0KSB0IC0+IGludCAtPiBpbnQgLT4gKCdhLCAnYiwgZm9ydHJhbl9sYXlvdXQpIHRcbiAgICAgPSBcImNhbWxfYmFfc3ViXCJcbiAgbGV0IHNsaWNlX2xlZnRfMSBhIG4gbSA9IEdlbmFycmF5LnNsaWNlX2xlZnQgYSBbfG47IG18XVxuICBsZXQgc2xpY2VfcmlnaHRfMSBhIG4gbSA9IEdlbmFycmF5LnNsaWNlX3JpZ2h0IGEgW3xuOyBtfF1cbiAgbGV0IHNsaWNlX2xlZnRfMiBhIG4gPSBHZW5hcnJheS5zbGljZV9sZWZ0IGEgW3xufF1cbiAgbGV0IHNsaWNlX3JpZ2h0XzIgYSBuID0gR2VuYXJyYXkuc2xpY2VfcmlnaHQgYSBbfG58XVxuICBleHRlcm5hbCBibGl0OiAoJ2EsICdiLCAnYykgdCAtPiAoJ2EsICdiLCAnYykgdCAtPiB1bml0ID0gXCJjYW1sX2JhX2JsaXRcIlxuICBleHRlcm5hbCBmaWxsOiAoJ2EsICdiLCAnYykgdCAtPiAnYSAtPiB1bml0ID0gXCJjYW1sX2JhX2ZpbGxcIlxuICBsZXQgY19pbml0IGFyciBkaW0xIGRpbTIgZGltMyBmID1cbiAgICBmb3IgaSA9IDAgdG8gcHJlZCBkaW0xIGRvXG4gICAgICBmb3IgaiA9IDAgdG8gcHJlZCBkaW0yIGRvXG4gICAgICAgIGZvciBrID0gMCB0byBwcmVkIGRpbTMgZG9cbiAgICAgICAgICB1bnNhZmVfc2V0IGFyciBpIGogayAoZiBpIGogaylcbiAgICAgICAgZG9uZVxuICAgICAgZG9uZVxuICAgIGRvbmVcbiAgbGV0IGZvcnRyYW5faW5pdCBhcnIgZGltMSBkaW0yIGRpbTMgZiA9XG4gICAgZm9yIGsgPSAxIHRvIGRpbTMgZG9cbiAgICAgIGZvciBqID0gMSB0byBkaW0yIGRvXG4gICAgICAgIGZvciBpID0gMSB0byBkaW0xIGRvXG4gICAgICAgICAgdW5zYWZlX3NldCBhcnIgaSBqIGsgKGYgaSBqIGspXG4gICAgICAgIGRvbmVcbiAgICAgIGRvbmVcbiAgICBkb25lXG4gIGxldCBpbml0ICh0eXBlIHQpIGtpbmQgKGxheW91dCA6IHQgbGF5b3V0KSBkaW0xIGRpbTIgZGltMyBmID1cbiAgICBsZXQgYXJyID0gY3JlYXRlIGtpbmQgbGF5b3V0IGRpbTEgZGltMiBkaW0zIGluXG4gICAgbWF0Y2ggbGF5b3V0IHdpdGhcbiAgICB8IENfbGF5b3V0IC0+IGNfaW5pdCBhcnIgZGltMSBkaW0yIGRpbTMgZjsgYXJyXG4gICAgfCBGb3J0cmFuX2xheW91dCAtPiBmb3J0cmFuX2luaXQgYXJyIGRpbTEgZGltMiBkaW0zIGY7IGFyclxuICBsZXQgb2ZfYXJyYXkgKHR5cGUgdCkga2luZCAobGF5b3V0OiB0IGxheW91dCkgZGF0YSA9XG4gICAgbGV0IGRpbTEgPSBBcnJheS5sZW5ndGggZGF0YSBpblxuICAgIGxldCBkaW0yID0gaWYgZGltMSA9IDAgdGhlbiAwIGVsc2UgQXJyYXkubGVuZ3RoIGRhdGEuKDApIGluXG4gICAgbGV0IGRpbTMgPSBpZiBkaW0yID0gMCB0aGVuIDAgZWxzZSBBcnJheS5sZW5ndGggZGF0YS4oMCkuKDApIGluXG4gICAgbGV0IGJhID0gY3JlYXRlIGtpbmQgbGF5b3V0IGRpbTEgZGltMiBkaW0zIGluXG4gICAgbGV0IG9mcyA9XG4gICAgICBtYXRjaCBsYXlvdXQgd2l0aFxuICAgICAgICBDX2xheW91dCAtPiAwXG4gICAgICB8IEZvcnRyYW5fbGF5b3V0IC0+IDFcbiAgICBpblxuICAgIGZvciBpID0gMCB0byBkaW0xIC0gMSBkb1xuICAgICAgbGV0IHJvdyA9IGRhdGEuKGkpIGluXG4gICAgICBpZiBBcnJheS5sZW5ndGggcm93IDw+IGRpbTIgdGhlblxuICAgICAgICBpbnZhbGlkX2FyZyhcIkJpZ2FycmF5LkFycmF5My5vZl9hcnJheTogbm9uLWN1YmljIGRhdGFcIik7XG4gICAgICBmb3IgaiA9IDAgdG8gZGltMiAtIDEgZG9cbiAgICAgICAgbGV0IGNvbCA9IHJvdy4oaikgaW5cbiAgICAgICAgaWYgQXJyYXkubGVuZ3RoIGNvbCA8PiBkaW0zIHRoZW5cbiAgICAgICAgICBpbnZhbGlkX2FyZyhcIkJpZ2FycmF5LkFycmF5My5vZl9hcnJheTogbm9uLWN1YmljIGRhdGFcIik7XG4gICAgICAgIGZvciBrID0gMCB0byBkaW0zIC0gMSBkb1xuICAgICAgICAgIHVuc2FmZV9zZXQgYmEgKGkgKyBvZnMpIChqICsgb2ZzKSAoayArIG9mcykgY29sLihrKVxuICAgICAgICBkb25lXG4gICAgICBkb25lXG4gICAgZG9uZTtcbiAgICBiYVxuZW5kXG5cbmV4dGVybmFsIGdlbmFycmF5X29mX2FycmF5MDogKCdhLCAnYiwgJ2MpIEFycmF5MC50IC0+ICgnYSwgJ2IsICdjKSBHZW5hcnJheS50XG4gICA9IFwiJWlkZW50aXR5XCJcbmV4dGVybmFsIGdlbmFycmF5X29mX2FycmF5MTogKCdhLCAnYiwgJ2MpIEFycmF5MS50IC0+ICgnYSwgJ2IsICdjKSBHZW5hcnJheS50XG4gICA9IFwiJWlkZW50aXR5XCJcbmV4dGVybmFsIGdlbmFycmF5X29mX2FycmF5MjogKCdhLCAnYiwgJ2MpIEFycmF5Mi50IC0+ICgnYSwgJ2IsICdjKSBHZW5hcnJheS50XG4gICA9IFwiJWlkZW50aXR5XCJcbmV4dGVybmFsIGdlbmFycmF5X29mX2FycmF5MzogKCdhLCAnYiwgJ2MpIEFycmF5My50IC0+ICgnYSwgJ2IsICdjKSBHZW5hcnJheS50XG4gICA9IFwiJWlkZW50aXR5XCJcbmxldCBhcnJheTBfb2ZfZ2VuYXJyYXkgYSA9XG4gIGlmIEdlbmFycmF5Lm51bV9kaW1zIGEgPSAwIHRoZW4gYVxuICBlbHNlIGludmFsaWRfYXJnIFwiQmlnYXJyYXkuYXJyYXkwX29mX2dlbmFycmF5XCJcbmxldCBhcnJheTFfb2ZfZ2VuYXJyYXkgYSA9XG4gIGlmIEdlbmFycmF5Lm51bV9kaW1zIGEgPSAxIHRoZW4gYVxuICBlbHNlIGludmFsaWRfYXJnIFwiQmlnYXJyYXkuYXJyYXkxX29mX2dlbmFycmF5XCJcbmxldCBhcnJheTJfb2ZfZ2VuYXJyYXkgYSA9XG4gIGlmIEdlbmFycmF5Lm51bV9kaW1zIGEgPSAyIHRoZW4gYVxuICBlbHNlIGludmFsaWRfYXJnIFwiQmlnYXJyYXkuYXJyYXkyX29mX2dlbmFycmF5XCJcbmxldCBhcnJheTNfb2ZfZ2VuYXJyYXkgYSA9XG4gIGlmIEdlbmFycmF5Lm51bV9kaW1zIGEgPSAzIHRoZW4gYVxuICBlbHNlIGludmFsaWRfYXJnIFwiQmlnYXJyYXkuYXJyYXkzX29mX2dlbmFycmF5XCJcblxuZXh0ZXJuYWwgcmVzaGFwZTpcbiAgICgnYSwgJ2IsICdjKSBHZW5hcnJheS50IC0+IGludCBhcnJheSAtPiAoJ2EsICdiLCAnYykgR2VuYXJyYXkudFxuICAgPSBcImNhbWxfYmFfcmVzaGFwZVwiXG5sZXQgcmVzaGFwZV8wIGEgPSByZXNoYXBlIGEgW3x8XVxubGV0IHJlc2hhcGVfMSBhIGRpbTEgPSByZXNoYXBlIGEgW3xkaW0xfF1cbmxldCByZXNoYXBlXzIgYSBkaW0xIGRpbTIgPSByZXNoYXBlIGEgW3xkaW0xO2RpbTJ8XVxubGV0IHJlc2hhcGVfMyBhIGRpbTEgZGltMiBkaW0zID0gcmVzaGFwZSBhIFt8ZGltMTtkaW0yO2RpbTN8XVxuXG4oKiBGb3JjZSBjYW1sX2JhX2dldF97MSwyLDMsTn0gdG8gYmUgbGlua2VkIGluLCBzaW5jZSB3ZSBkb24ndCByZWZlclxuICAgdG8gdGhvc2UgcHJpbWl0aXZlcyBkaXJlY3RseSBpbiB0aGlzIGZpbGUgKilcblxubGV0IF8gPVxuICBsZXQgXyA9IEdlbmFycmF5LmdldCBpblxuICBsZXQgXyA9IEFycmF5MS5nZXQgaW5cbiAgbGV0IF8gPSBBcnJheTIuZ2V0IGluXG4gIGxldCBfID0gQXJyYXkzLmdldCBpblxuICAoKVxuXG5bQEBAb2NhbWwud2FybmluZyBcIi0zMlwiXVxuZXh0ZXJuYWwgZ2V0MTogdW5pdCAtPiB1bml0ID0gXCJjYW1sX2JhX2dldF8xXCJcbmV4dGVybmFsIGdldDI6IHVuaXQgLT4gdW5pdCA9IFwiY2FtbF9iYV9nZXRfMlwiXG5leHRlcm5hbCBnZXQzOiB1bml0IC0+IHVuaXQgPSBcImNhbWxfYmFfZ2V0XzNcIlxuZXh0ZXJuYWwgc2V0MTogdW5pdCAtPiB1bml0ID0gXCJjYW1sX2JhX3NldF8xXCJcbmV4dGVybmFsIHNldDI6IHVuaXQgLT4gdW5pdCA9IFwiY2FtbF9iYV9zZXRfMlwiXG5leHRlcm5hbCBzZXQzOiB1bml0IC0+IHVuaXQgPSBcImNhbWxfYmFfc2V0XzNcIlxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAyMSBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG50eXBlIHQgPSBpbl9jaGFubmVsXG5cbnR5cGUgb3Blbl9mbGFnID0gU3RkbGliLm9wZW5fZmxhZyA9XG4gIHwgT3Blbl9yZG9ubHlcbiAgfCBPcGVuX3dyb25seVxuICB8IE9wZW5fYXBwZW5kXG4gIHwgT3Blbl9jcmVhdFxuICB8IE9wZW5fdHJ1bmNcbiAgfCBPcGVuX2V4Y2xcbiAgfCBPcGVuX2JpbmFyeVxuICB8IE9wZW5fdGV4dFxuICB8IE9wZW5fbm9uYmxvY2tcblxubGV0IHN0ZGluID0gU3RkbGliLnN0ZGluXG5sZXQgb3Blbl9iaW4gPSBTdGRsaWIub3Blbl9pbl9iaW5cbmxldCBvcGVuX3RleHQgPSBTdGRsaWIub3Blbl9pblxubGV0IG9wZW5fZ2VuID0gU3RkbGliLm9wZW5faW5fZ2VuXG5cbmxldCB3aXRoX29wZW4gb3BlbmZ1biBzIGYgPVxuICBsZXQgaWMgPSBvcGVuZnVuIHMgaW5cbiAgRnVuLnByb3RlY3QgfmZpbmFsbHk6KGZ1biAoKSAtPiBTdGRsaWIuY2xvc2VfaW5fbm9lcnIgaWMpXG4gICAgKGZ1biAoKSAtPiBmIGljKVxuXG5sZXQgd2l0aF9vcGVuX2JpbiBzIGYgPVxuICB3aXRoX29wZW4gU3RkbGliLm9wZW5faW5fYmluIHMgZlxuXG5sZXQgd2l0aF9vcGVuX3RleHQgcyBmID1cbiAgd2l0aF9vcGVuIFN0ZGxpYi5vcGVuX2luIHMgZlxuXG5sZXQgd2l0aF9vcGVuX2dlbiBmbGFncyBwZXJtIHMgZiA9XG4gIHdpdGhfb3BlbiAoU3RkbGliLm9wZW5faW5fZ2VuIGZsYWdzIHBlcm0pIHMgZlxuXG5sZXQgc2VlayA9IFN0ZGxpYi5MYXJnZUZpbGUuc2Vla19pblxubGV0IHBvcyA9IFN0ZGxpYi5MYXJnZUZpbGUucG9zX2luXG5sZXQgbGVuZ3RoID0gU3RkbGliLkxhcmdlRmlsZS5pbl9jaGFubmVsX2xlbmd0aFxubGV0IGNsb3NlID0gU3RkbGliLmNsb3NlX2luXG5sZXQgY2xvc2Vfbm9lcnIgPSBTdGRsaWIuY2xvc2VfaW5fbm9lcnJcblxubGV0IGlucHV0X2NoYXIgaWMgPVxuICBtYXRjaCBTdGRsaWIuaW5wdXRfY2hhciBpYyB3aXRoXG4gIHwgYyAtPiBTb21lIGNcbiAgfCBleGNlcHRpb24gRW5kX29mX2ZpbGUgLT4gTm9uZVxuXG5sZXQgaW5wdXRfYnl0ZSBpYyA9XG4gIG1hdGNoIFN0ZGxpYi5pbnB1dF9ieXRlIGljIHdpdGhcbiAgfCBuIC0+IFNvbWUgblxuICB8IGV4Y2VwdGlvbiBFbmRfb2ZfZmlsZSAtPiBOb25lXG5cbmxldCBpbnB1dF9saW5lIGljID1cbiAgbWF0Y2ggU3RkbGliLmlucHV0X2xpbmUgaWMgd2l0aFxuICB8IHMgLT4gU29tZSBzXG4gIHwgZXhjZXB0aW9uIEVuZF9vZl9maWxlIC0+IE5vbmVcblxubGV0IGlucHV0ID0gU3RkbGliLmlucHV0XG5cbmxldCByZWFsbHlfaW5wdXQgaWMgYnVmIHBvcyBsZW4gPVxuICBtYXRjaCBTdGRsaWIucmVhbGx5X2lucHV0IGljIGJ1ZiBwb3MgbGVuIHdpdGhcbiAgfCAoKSAtPiBTb21lICgpXG4gIHwgZXhjZXB0aW9uIEVuZF9vZl9maWxlIC0+IE5vbmVcblxubGV0IHJlYWxseV9pbnB1dF9zdHJpbmcgaWMgbGVuID1cbiAgbWF0Y2ggU3RkbGliLnJlYWxseV9pbnB1dF9zdHJpbmcgaWMgbGVuIHdpdGhcbiAgfCBzIC0+IFNvbWUgc1xuICB8IGV4Y2VwdGlvbiBFbmRfb2ZfZmlsZSAtPiBOb25lXG5cbigqIFJlYWQgdXAgdG8gW2xlbl0gYnl0ZXMgaW50byBbYnVmXSwgc3RhcnRpbmcgYXQgW29mc10uIFJldHVybiB0b3RhbCBieXRlc1xuICAgcmVhZC4gKilcbmxldCByZWFkX3VwdG8gaWMgYnVmIG9mcyBsZW4gPVxuICBsZXQgcmVjIGxvb3Agb2ZzIGxlbiA9XG4gICAgaWYgbGVuID0gMCB0aGVuIG9mc1xuICAgIGVsc2UgYmVnaW5cbiAgICAgIGxldCByID0gU3RkbGliLmlucHV0IGljIGJ1ZiBvZnMgbGVuIGluXG4gICAgICBpZiByID0gMCB0aGVuXG4gICAgICAgIG9mc1xuICAgICAgZWxzZVxuICAgICAgICBsb29wIChvZnMgKyByKSAobGVuIC0gcilcbiAgICBlbmRcbiAgaW5cbiAgbG9vcCBvZnMgbGVuIC0gb2ZzXG5cbigqIEJlc3QgZWZmb3J0IGF0dGVtcHQgdG8gcmV0dXJuIGEgYnVmZmVyIHdpdGggPj0gKG9mcyArIG4pIGJ5dGVzIG9mIHN0b3JhZ2UsXG4gICBhbmQgc3VjaCB0aGF0IGl0IGNvaW5jaWRlcyB3aXRoIFtidWZdIGF0IGluZGljZXMgPCBbb2ZzXS5cblxuICAgVGhlIHJldHVybmVkIGJ1ZmZlciBpcyBlcXVhbCB0byBbYnVmXSBpdHNlbGYgaWYgaXQgYWxyZWFkeSBoYXMgc3VmZmljaWVudFxuICAgZnJlZSBzcGFjZS5cblxuICAgVGhlIHJldHVybmVkIGJ1ZmZlciBtYXkgaGF2ZSAqZmV3ZXIqIHRoYW4gW29mcyArIG5dIGJ5dGVzIG9mIHN0b3JhZ2UgaWYgdGhpc1xuICAgbnVtYmVyIGlzID4gW1N5cy5tYXhfc3RyaW5nX2xlbmd0aF0uIEhvd2V2ZXIgdGhlIHJldHVybmVkIGJ1ZmZlciB3aWxsXG4gICAqYWx3YXlzKiBoYXZlID4gW29mc10gYnl0ZXMgb2Ygc3RvcmFnZS4gSW4gdGhlIGxpbWl0aW5nIGNhc2Ugd2hlbiBbb2ZzID0gbGVuXG4gICA9IFN5cy5tYXhfc3RyaW5nX2xlbmd0aF0gKHNvIHRoYXQgaXQgaXMgbm90IHBvc3NpYmxlIHRvIHJlc2l6ZSB0aGUgYnVmZmVyIGF0XG4gICBhbGwpLCBhbiBleGNlcHRpb24gaXMgcmFpc2VkLiAqKVxuXG5sZXQgZW5zdXJlIGJ1ZiBvZnMgbiA9XG4gIGxldCBsZW4gPSBCeXRlcy5sZW5ndGggYnVmIGluXG4gIGlmIGxlbiA+PSBvZnMgKyBuIHRoZW4gYnVmXG4gIGVsc2UgYmVnaW5cbiAgICBsZXQgbmV3X2xlbiA9IHJlZiBsZW4gaW5cbiAgICB3aGlsZSAhbmV3X2xlbiA8IG9mcyArIG4gZG9cbiAgICAgIG5ld19sZW4gOj0gMiAqICFuZXdfbGVuICsgMVxuICAgIGRvbmU7XG4gICAgbGV0IG5ld19sZW4gPSAhbmV3X2xlbiBpblxuICAgIGxldCBuZXdfbGVuID1cbiAgICAgIGlmIG5ld19sZW4gPD0gU3lzLm1heF9zdHJpbmdfbGVuZ3RoIHRoZW5cbiAgICAgICAgbmV3X2xlblxuICAgICAgZWxzZSBpZiBvZnMgPCBTeXMubWF4X3N0cmluZ19sZW5ndGggdGhlblxuICAgICAgICBTeXMubWF4X3N0cmluZ19sZW5ndGhcbiAgICAgIGVsc2VcbiAgICAgICAgZmFpbHdpdGggXCJJbl9jaGFubmVsLmlucHV0X2FsbDogY2hhbm5lbCBjb250ZW50IFxcXG4gICAgICAgICAgICAgICAgICBpcyBsYXJnZXIgdGhhbiBtYXhpbXVtIHN0cmluZyBsZW5ndGhcIlxuICAgIGluXG4gICAgbGV0IG5ld19idWYgPSBCeXRlcy5jcmVhdGUgbmV3X2xlbiBpblxuICAgIEJ5dGVzLmJsaXQgYnVmIDAgbmV3X2J1ZiAwIG9mcztcbiAgICBuZXdfYnVmXG4gIGVuZFxuXG5sZXQgaW5wdXRfYWxsIGljID1cbiAgbGV0IGNodW5rX3NpemUgPSA2NTUzNiBpbiAoKiBJT19CVUZGRVJfU0laRSAqKVxuICBsZXQgaW5pdGlhbF9zaXplID1cbiAgICB0cnlcbiAgICAgIFN0ZGxpYi5pbl9jaGFubmVsX2xlbmd0aCBpYyAtIFN0ZGxpYi5wb3NfaW4gaWNcbiAgICB3aXRoIFN5c19lcnJvciBfIC0+XG4gICAgICAtMVxuICBpblxuICBsZXQgaW5pdGlhbF9zaXplID0gaWYgaW5pdGlhbF9zaXplIDwgMCB0aGVuIGNodW5rX3NpemUgZWxzZSBpbml0aWFsX3NpemUgaW5cbiAgbGV0IGluaXRpYWxfc2l6ZSA9XG4gICAgaWYgaW5pdGlhbF9zaXplIDw9IFN5cy5tYXhfc3RyaW5nX2xlbmd0aCB0aGVuXG4gICAgICBpbml0aWFsX3NpemVcbiAgICBlbHNlXG4gICAgICBTeXMubWF4X3N0cmluZ19sZW5ndGhcbiAgaW5cbiAgbGV0IGJ1ZiA9IEJ5dGVzLmNyZWF0ZSBpbml0aWFsX3NpemUgaW5cbiAgbGV0IG5yZWFkID0gcmVhZF91cHRvIGljIGJ1ZiAwIGluaXRpYWxfc2l6ZSBpblxuICBpZiBucmVhZCA8IGluaXRpYWxfc2l6ZSB0aGVuICgqIEVPRiByZWFjaGVkLCBidWZmZXIgcGFydGlhbGx5IGZpbGxlZCAqKVxuICAgIEJ5dGVzLnN1Yl9zdHJpbmcgYnVmIDAgbnJlYWRcbiAgZWxzZSBiZWdpbiAoKiBucmVhZCA9IGluaXRpYWxfc2l6ZSwgbWF5YmUgRU9GIHJlYWNoZWQgKilcbiAgICBtYXRjaCBTdGRsaWIuaW5wdXRfY2hhciBpYyB3aXRoXG4gICAgfCBleGNlcHRpb24gRW5kX29mX2ZpbGUgLT5cbiAgICAgICAgKCogRU9GIHJlYWNoZWQsIGJ1ZmZlciBpcyBjb21wbGV0ZWx5IGZpbGxlZCAqKVxuICAgICAgICBCeXRlcy51bnNhZmVfdG9fc3RyaW5nIGJ1ZlxuICAgIHwgYyAtPlxuICAgICAgICAoKiBFT0Ygbm90IHJlYWNoZWQgKilcbiAgICAgICAgbGV0IHJlYyBsb29wIGJ1ZiBvZnMgPVxuICAgICAgICAgIGxldCBidWYgPSBlbnN1cmUgYnVmIG9mcyBjaHVua19zaXplIGluXG4gICAgICAgICAgbGV0IHJlbSA9IEJ5dGVzLmxlbmd0aCBidWYgLSBvZnMgaW5cbiAgICAgICAgICAoKiBbcmVtXSBjYW4gYmUgPCBbY2h1bmtfc2l6ZV0gaWYgYnVmZmVyIHNpemUgY2xvc2UgdG9cbiAgICAgICAgICAgICBbU3lzLm1heF9zdHJpbmdfbGVuZ3RoXSAqKVxuICAgICAgICAgIGxldCByID0gcmVhZF91cHRvIGljIGJ1ZiBvZnMgcmVtIGluXG4gICAgICAgICAgaWYgciA8IHJlbSB0aGVuICgqIEVPRiByZWFjaGVkICopXG4gICAgICAgICAgICBCeXRlcy5zdWJfc3RyaW5nIGJ1ZiAwIChvZnMgKyByKVxuICAgICAgICAgIGVsc2UgKCogciA9IHJlbSAqKVxuICAgICAgICAgICAgbG9vcCBidWYgKG9mcyArIHJlbSlcbiAgICAgICAgaW5cbiAgICAgICAgbGV0IGJ1ZiA9IGVuc3VyZSBidWYgbnJlYWQgKGNodW5rX3NpemUgKyAxKSBpblxuICAgICAgICBCeXRlcy5zZXQgYnVmIG5yZWFkIGM7XG4gICAgICAgIGxvb3AgYnVmIChucmVhZCArIDEpXG4gIGVuZFxuXG5sZXQgc2V0X2JpbmFyeV9tb2RlID0gU3RkbGliLnNldF9iaW5hcnlfbW9kZV9pblxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAyMSBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG50eXBlIHQgPSBvdXRfY2hhbm5lbFxuXG50eXBlIG9wZW5fZmxhZyA9IFN0ZGxpYi5vcGVuX2ZsYWcgPVxuICB8IE9wZW5fcmRvbmx5XG4gIHwgT3Blbl93cm9ubHlcbiAgfCBPcGVuX2FwcGVuZFxuICB8IE9wZW5fY3JlYXRcbiAgfCBPcGVuX3RydW5jXG4gIHwgT3Blbl9leGNsXG4gIHwgT3Blbl9iaW5hcnlcbiAgfCBPcGVuX3RleHRcbiAgfCBPcGVuX25vbmJsb2NrXG5cbmxldCBzdGRvdXQgPSBTdGRsaWIuc3Rkb3V0XG5sZXQgc3RkZXJyID0gU3RkbGliLnN0ZGVyclxubGV0IG9wZW5fYmluID0gU3RkbGliLm9wZW5fb3V0X2JpblxubGV0IG9wZW5fdGV4dCA9IFN0ZGxpYi5vcGVuX291dFxubGV0IG9wZW5fZ2VuID0gU3RkbGliLm9wZW5fb3V0X2dlblxuXG5sZXQgd2l0aF9vcGVuIG9wZW5mdW4gcyBmID1cbiAgbGV0IG9jID0gb3BlbmZ1biBzIGluXG4gIEZ1bi5wcm90ZWN0IH5maW5hbGx5OihmdW4gKCkgLT4gU3RkbGliLmNsb3NlX291dF9ub2VyciBvYylcbiAgICAoZnVuICgpIC0+IGYgb2MpXG5cbmxldCB3aXRoX29wZW5fYmluIHMgZiA9XG4gIHdpdGhfb3BlbiBTdGRsaWIub3Blbl9vdXRfYmluIHMgZlxuXG5sZXQgd2l0aF9vcGVuX3RleHQgcyBmID1cbiAgd2l0aF9vcGVuIFN0ZGxpYi5vcGVuX291dCBzIGZcblxubGV0IHdpdGhfb3Blbl9nZW4gZmxhZ3MgcGVybSBzIGYgPVxuICB3aXRoX29wZW4gKFN0ZGxpYi5vcGVuX291dF9nZW4gZmxhZ3MgcGVybSkgcyBmXG5cbmxldCBzZWVrID0gU3RkbGliLkxhcmdlRmlsZS5zZWVrX291dFxubGV0IHBvcyA9IFN0ZGxpYi5MYXJnZUZpbGUucG9zX291dFxubGV0IGxlbmd0aCA9IFN0ZGxpYi5MYXJnZUZpbGUub3V0X2NoYW5uZWxfbGVuZ3RoXG5sZXQgY2xvc2UgPSBTdGRsaWIuY2xvc2Vfb3V0XG5sZXQgY2xvc2Vfbm9lcnIgPSBTdGRsaWIuY2xvc2Vfb3V0X25vZXJyXG5sZXQgZmx1c2ggPSBTdGRsaWIuZmx1c2hcbmxldCBmbHVzaF9hbGwgPSBTdGRsaWIuZmx1c2hfYWxsXG5sZXQgb3V0cHV0X2NoYXIgPSBTdGRsaWIub3V0cHV0X2NoYXJcbmxldCBvdXRwdXRfYnl0ZSA9IFN0ZGxpYi5vdXRwdXRfYnl0ZVxubGV0IG91dHB1dF9zdHJpbmcgPSBTdGRsaWIub3V0cHV0X3N0cmluZ1xubGV0IG91dHB1dF9ieXRlcyA9IFN0ZGxpYi5vdXRwdXRfYnl0ZXNcbmxldCBvdXRwdXQgPSBTdGRsaWIub3V0cHV0XG5sZXQgb3V0cHV0X3N1YnN0cmluZyA9IFN0ZGxpYi5vdXRwdXRfc3Vic3RyaW5nXG5sZXQgc2V0X2JpbmFyeV9tb2RlID0gU3RkbGliLnNldF9iaW5hcnlfbW9kZV9vdXRcblxuZXh0ZXJuYWwgc2V0X2J1ZmZlcmVkIDogdCAtPiBib29sIC0+IHVuaXQgPSBcImNhbWxfbWxfc2V0X2J1ZmZlcmVkXCJcblxuZXh0ZXJuYWwgaXNfYnVmZmVyZWQgOiB0IC0+IGJvb2wgPSBcImNhbWxfbWxfaXNfYnVmZmVyZWRcIlxuIiwiKCogZ2VuZXJhdGVkIGJ5IGR1bmUgKilcblxuKCoqIEBjYW5vbmljYWwgSnNvb19ydW50aW1lLlJ1bnRpbWVfdmVyc2lvbiAqKVxubW9kdWxlIFJ1bnRpbWVfdmVyc2lvbiA9IEpzb29fcnVudGltZV9fUnVudGltZV92ZXJzaW9uXG5cbm1vZHVsZSBKc29vX3J1bnRpbWVfXyA9IHN0cnVjdCBlbmRcbltAQGRlcHJlY2F0ZWQgXCJ0aGlzIG1vZHVsZSBpcyBzaGFkb3dlZFwiXVxuIiwibW9kdWxlIEpzID0gc3RydWN0XG4gIHR5cGUgdFxuXG4gIHR5cGUgJ2EganNfYXJyYXkgPSB0XG5cbiAgdHlwZSAoJ2EsICdiKSBtZXRoX2NhbGxiYWNrID0gdFxuXG4gIGV4dGVybmFsIHN0cmluZyA6IHN0cmluZyAtPiB0ID0gXCJjYW1sX2pzc3RyaW5nX29mX3N0cmluZ1wiXG5cbiAgZXh0ZXJuYWwgdG9fc3RyaW5nIDogdCAtPiBzdHJpbmcgPSBcImNhbWxfc3RyaW5nX29mX2pzc3RyaW5nXCJcblxuICBleHRlcm5hbCBieXRlc3RyaW5nIDogc3RyaW5nIC0+IHQgPSBcImNhbWxfanNieXRlc19vZl9zdHJpbmdcIlxuXG4gIGV4dGVybmFsIHRvX2J5dGVzdHJpbmcgOiB0IC0+IHN0cmluZyA9IFwiY2FtbF9zdHJpbmdfb2ZfanNieXRlc1wiXG5cbiAgZXh0ZXJuYWwgYm9vbCA6IGJvb2wgLT4gdCA9IFwiY2FtbF9qc19mcm9tX2Jvb2xcIlxuXG4gIGV4dGVybmFsIHRvX2Jvb2wgOiB0IC0+IGJvb2wgPSBcImNhbWxfanNfdG9fYm9vbFwiXG5cbiAgZXh0ZXJuYWwgYXJyYXkgOiAnYSBhcnJheSAtPiB0ID0gXCJjYW1sX2pzX2Zyb21fYXJyYXlcIlxuXG4gIGV4dGVybmFsIHRvX2FycmF5IDogdCAtPiAnYSBhcnJheSA9IFwiY2FtbF9qc190b19hcnJheVwiXG5cbiAgZXh0ZXJuYWwgbnVtYmVyX29mX2Zsb2F0IDogZmxvYXQgLT4gdCA9IFwiY2FtbF9qc19mcm9tX2Zsb2F0XCJcblxuICBleHRlcm5hbCBmbG9hdF9vZl9udW1iZXIgOiB0IC0+IGZsb2F0ID0gXCJjYW1sX2pzX3RvX2Zsb2F0XCJcblxuICBleHRlcm5hbCB0eXBlb2YgOiB0IC0+IHQgPSBcImNhbWxfanNfdHlwZW9mXCJcblxuICBleHRlcm5hbCBpbnN0YW5jZW9mIDogdCAtPiB0IC0+IGJvb2wgPSBcImNhbWxfanNfaW5zdGFuY2VvZlwiXG5cbiAgZXh0ZXJuYWwgZGVidWdnZXIgOiB1bml0IC0+IHVuaXQgPSBcImRlYnVnZ2VyXCJcblxuICBleHRlcm5hbCBnZXQgOiB0IC0+IHQgLT4gdCA9IFwiY2FtbF9qc19nZXRcIlxuXG4gIGV4dGVybmFsIHNldCA6IHQgLT4gdCAtPiB0IC0+IHVuaXQgPSBcImNhbWxfanNfc2V0XCJcblxuICBleHRlcm5hbCBkZWxldGUgOiB0IC0+IHQgLT4gdW5pdCA9IFwiY2FtbF9qc19kZWxldGVcIlxuXG4gIGV4dGVybmFsIGNhbGwgOiB0IC0+IHQgLT4gdCBhcnJheSAtPiB0ID0gXCJjYW1sX2pzX2NhbGxcIlxuXG4gIGV4dGVybmFsIGZ1bl9jYWxsIDogdCAtPiB0IGFycmF5IC0+IHQgPSBcImNhbWxfanNfZnVuX2NhbGxcIlxuXG4gIGV4dGVybmFsIG1ldGhfY2FsbCA6IHQgLT4gc3RyaW5nIC0+IHQgYXJyYXkgLT4gdCA9IFwiY2FtbF9qc19tZXRoX2NhbGxcIlxuXG4gIGV4dGVybmFsIG5ld19vYmogOiB0IC0+IHQgYXJyYXkgLT4gdCA9IFwiY2FtbF9qc19uZXdcIlxuXG4gIGV4dGVybmFsIG5ld19vYmpfYXJyIDogdCAtPiB0IGpzX2FycmF5IC0+IHQgPSBcImNhbWxfb2pzX25ld19hcnJcIlxuXG4gIGV4dGVybmFsIG9iaiA6IChzdHJpbmcgKiB0KSBhcnJheSAtPiB0ID0gXCJjYW1sX2pzX29iamVjdFwiXG5cbiAgZXh0ZXJuYWwgZXF1YWxzIDogdCAtPiB0IC0+IGJvb2wgPSBcImNhbWxfanNfZXF1YWxzXCJcblxuICBleHRlcm5hbCBwdXJlX2V4cHIgOiAodW5pdCAtPiAnYSkgLT4gJ2EgPSBcImNhbWxfanNfcHVyZV9leHByXCJcblxuICBleHRlcm5hbCBldmFsX3N0cmluZyA6IHN0cmluZyAtPiAnYSA9IFwiY2FtbF9qc19ldmFsX3N0cmluZ1wiXG5cbiAgZXh0ZXJuYWwganNfZXhwciA6IHN0cmluZyAtPiAnYSA9IFwiY2FtbF9qc19leHByXCJcblxuICBleHRlcm5hbCBwdXJlX2pzX2V4cHIgOiBzdHJpbmcgLT4gJ2EgPSBcImNhbWxfcHVyZV9qc19leHByXCJcblxuICBleHRlcm5hbCBjYWxsYmFjayA6ICgnYiAtPiAnYSkgLT4gKCdiLCAnYSkgbWV0aF9jYWxsYmFja1xuICAgID0gXCJjYW1sX2pzX3dyYXBfY2FsbGJhY2tfdW5zYWZlXCJcblxuICBleHRlcm5hbCBjYWxsYmFja193aXRoX2FyZ3VtZW50cyA6XG4gICAgKHQganNfYXJyYXkgLT4gJ2IpIC0+ICgnYywgdCBqc19hcnJheSAtPiAnYikgbWV0aF9jYWxsYmFja1xuICAgID0gXCJjYW1sX2pzX3dyYXBfY2FsbGJhY2tfYXJndW1lbnRzXCJcblxuICBleHRlcm5hbCBjYWxsYmFja193aXRoX2FyaXR5IDogaW50IC0+ICgnYSAtPiAnYikgLT4gKCdjLCAnYSAtPiAnYikgbWV0aF9jYWxsYmFja1xuICAgID0gXCJjYW1sX2pzX3dyYXBfY2FsbGJhY2tfc3RyaWN0XCJcblxuICBleHRlcm5hbCBtZXRoX2NhbGxiYWNrIDogKCdiIC0+ICdhKSAtPiAoJ2IsICdhKSBtZXRoX2NhbGxiYWNrXG4gICAgPSBcImNhbWxfanNfd3JhcF9tZXRoX2NhbGxiYWNrX3Vuc2FmZVwiXG5cbiAgZXh0ZXJuYWwgbWV0aF9jYWxsYmFja193aXRoX2FyaXR5IDogaW50IC0+ICgnYiAtPiAnYSkgLT4gKCdiLCAnYSkgbWV0aF9jYWxsYmFja1xuICAgID0gXCJjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFja19zdHJpY3RcIlxuXG4gIGV4dGVybmFsIG1ldGhfY2FsbGJhY2tfd2l0aF9hcmd1bWVudHMgOlxuICAgICgnYiAtPiB0IGpzX2FycmF5IC0+ICdhKSAtPiAoJ2IsIHQganNfYXJyYXkgLT4gJ2EpIG1ldGhfY2FsbGJhY2tcbiAgICA9IFwiY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2tfYXJndW1lbnRzXCJcblxuICBleHRlcm5hbCB3cmFwX2NhbGxiYWNrIDogKCdhIC0+ICdiKSAtPiAoJ2MsICdhIC0+ICdiKSBtZXRoX2NhbGxiYWNrXG4gICAgPSBcImNhbWxfanNfd3JhcF9jYWxsYmFja1wiXG5cbiAgZXh0ZXJuYWwgd3JhcF9tZXRoX2NhbGxiYWNrIDogKCdhIC0+ICdiKSAtPiAoJ2EsICdiKSBtZXRoX2NhbGxiYWNrXG4gICAgPSBcImNhbWxfanNfd3JhcF9tZXRoX2NhbGxiYWNrXCJcbmVuZFxuXG5tb2R1bGUgU3lzID0gc3RydWN0XG4gIHR5cGUgJ2EgY2FsbGJhY2sgPSAnYVxuXG4gIGV4dGVybmFsIGNyZWF0ZV9maWxlIDogbmFtZTpzdHJpbmcgLT4gY29udGVudDpzdHJpbmcgLT4gdW5pdCA9IFwiY2FtbF9jcmVhdGVfZmlsZVwiXG5cbiAgZXh0ZXJuYWwgcmVhZF9maWxlIDogbmFtZTpzdHJpbmcgLT4gc3RyaW5nID0gXCJjYW1sX3JlYWRfZmlsZV9jb250ZW50XCJcblxuICBleHRlcm5hbCBzZXRfY2hhbm5lbF9vdXRwdXQnIDogb3V0X2NoYW5uZWwgLT4gKGpzX3N0cmluZzpKcy50IC0+IHVuaXQpIGNhbGxiYWNrIC0+IHVuaXRcbiAgICA9IFwiY2FtbF9tbF9zZXRfY2hhbm5lbF9vdXRwdXRcIlxuXG4gIGV4dGVybmFsIHNldF9jaGFubmVsX2lucHV0JyA6IGluX2NoYW5uZWwgLT4gKHVuaXQgLT4gc3RyaW5nKSBjYWxsYmFjayAtPiB1bml0XG4gICAgPSBcImNhbWxfbWxfc2V0X2NoYW5uZWxfcmVmaWxsXCJcblxuICBleHRlcm5hbCBtb3VudF9wb2ludCA6IHVuaXQgLT4gc3RyaW5nIGxpc3QgPSBcImNhbWxfbGlzdF9tb3VudF9wb2ludFwiXG5cbiAgZXh0ZXJuYWwgbW91bnRfYXV0b2xvYWQgOiBzdHJpbmcgLT4gKHN0cmluZyAtPiBzdHJpbmcgLT4gc3RyaW5nIG9wdGlvbikgY2FsbGJhY2sgLT4gdW5pdFxuICAgID0gXCJjYW1sX21vdW50X2F1dG9sb2FkXCJcblxuICBleHRlcm5hbCB1bm1vdW50IDogc3RyaW5nIC0+IHVuaXQgPSBcImNhbWxfdW5tb3VudFwiXG5cbiAgbW9kdWxlIENvbmZpZyA9IHN0cnVjdFxuICAgIGV4dGVybmFsIHVzZV9qc19zdHJpbmcgOiB1bml0IC0+IGJvb2wgPSBcImNhbWxfanNvb19mbGFnc191c2VfanNfc3RyaW5nXCJcblxuICAgIGV4dGVybmFsIGVmZmVjdHMgOiB1bml0IC0+IGJvb2wgPSBcImNhbWxfanNvb19mbGFnc19lZmZlY3RzXCJcbiAgZW5kXG5cbiAgbGV0IHZlcnNpb24gPSBSdW50aW1lX3ZlcnNpb24uc1xuXG4gIGxldCBnaXRfdmVyc2lvbiA9IFJ1bnRpbWVfdmVyc2lvbi5naXRfdmVyc2lvblxuZW5kXG5cbm1vZHVsZSBFcnJvciA6IHNpZ1xuICB0eXBlIHRcblxuICB2YWwgcmFpc2VfIDogdCAtPiAnYVxuXG4gIHZhbCBhdHRhY2hfanNfYmFja3RyYWNlIDogZXhuIC0+IGZvcmNlOmJvb2wgLT4gZXhuXG4gICgqKiBBdHRhY2ggYSBKYXZhc1NjcmlwdCBlcnJvciB0byBhbiBPQ2FtbCBleGNlcHRpb24uICBpZiBbZm9yY2UgPSBmYWxzZV0gYW5kIGFcbiAgICBKYXZhc1NjcmlwdCBlcnJvciBpcyBhbHJlYWR5IGF0dGFjaGVkLCBpdCB3aWxsIGRvIG5vdGhpbmcuIFRoaXMgZnVuY3Rpb24gaXMgdXNlZnVsIHRvXG4gICAgc3RvcmUgYW5kIHJldHJpZXZlIGluZm9ybWF0aW9uIGFib3V0IEphdmFTY3JpcHQgc3RhY2sgdHJhY2VzLlxuXG4gICAgQXR0YWNoaW5nIEphdmFzU2NyaXB0IGVycm9ycyB3aWxsIGhhcHBlbiBhdXRvbWF0aWNhbGx5IHdoZW4gY29tcGlsaW5nIHdpdGhcbiAgICBbLS1lbmFibGUgd2l0aC1qcy1lcnJvcl0uICopXG5cbiAgdmFsIG9mX2V4biA6IGV4biAtPiB0IG9wdGlvblxuICAoKiogRXh0cmFjdCBhIEphdmFTY3JpcHQgZXJyb3IgYXR0YWNoZWQgdG8gYW4gT0NhbWwgZXhjZXB0aW9uLCBpZiBhbnkuICBUaGlzIGlzIHVzZWZ1bCB0b1xuICAgICAgaW5zcGVjdCBhbiBldmVudHVhbCBzdGFjayBzdHJhY2UsIGVzcGVjaWFsbHkgd2hlbiBzb3VyY2VtYXAgaXMgZW5hYmxlZC4gKilcblxuICBleGNlcHRpb24gRXhuIG9mIHRcbiAgKCoqIFRoZSBbRXJyb3JdIGV4Y2VwdGlvbiB3cmFwIGphdmFzY3JpcHQgZXhjZXB0aW9ucyB3aGVuIGNhdWdodCBieSBPQ2FtbCBjb2RlLlxuICAgICAgSW4gY2FzZSB0aGUgamF2YXNjcmlwdCBleGNlcHRpb24gaXMgbm90IGFuIGluc3RhbmNlIG9mIGphdmFzY3JpcHQgW0Vycm9yXSxcbiAgICAgIGl0IHdpbGwgYmUgc2VyaWFsaXplZCBhbmQgd3JhcHBlZCBpbnRvIGEgW0ZhaWx1cmVdIGV4Y2VwdGlvbi5cbiAgKilcbmVuZCA9IHN0cnVjdFxuICB0eXBlIHRcblxuICBleGNlcHRpb24gRXhuIG9mIHRcblxuICBsZXQgXyA9IENhbGxiYWNrLnJlZ2lzdGVyX2V4Y2VwdGlvbiBcImpzRXJyb3JcIiAoRXhuIChPYmoubWFnaWMgW3x8XSkpXG5cbiAgbGV0IHJhaXNlXyA6IHQgLT4gJ2EgPSBKcy5qc19leHByIFwiKGZ1bmN0aW9uIChleG4pIHsgdGhyb3cgZXhuIH0pXCJcblxuICBleHRlcm5hbCBvZl9leG4gOiBleG4gLT4gdCBvcHRpb24gPSBcImNhbWxfanNfZXJyb3Jfb3B0aW9uX29mX2V4Y2VwdGlvblwiXG5cbiAgZXh0ZXJuYWwgYXR0YWNoX2pzX2JhY2t0cmFjZSA6IGV4biAtPiBmb3JjZTpib29sIC0+IGV4biA9IFwiY2FtbF9leG5fd2l0aF9qc19iYWNrdHJhY2VcIlxuZW5kXG5cbltAQEBvY2FtbC53YXJuaW5nIFwiLTMyLTYwXCJdXG5cbm1vZHVsZSBGb3JfY29tcGF0aWJpbGl0eV9vbmx5ID0gc3RydWN0XG4gICgqIEFkZCBwcmltaXRpdmVzIGZvciBjb21wYXRpYmlsaXR5IHJlYXNvbnMuIEV4aXN0aW5nIHVzZXJzIG1pZ2h0XG4gICAgIGRlcGVuZCBvbiBpdCAoZS5nLiBnZW5fanNfYXBpKSwgd2UgZG9udCB3YW50IHRoZSBvY2FtbCBjb21waWxlclxuICAgICB0byBjb21wbGFpbiBhYm91dCB0aGVzZXMgbWlzc2luZyBwcmltaXRpdmVzLiAqKVxuXG4gIGV4dGVybmFsIGNhbWxfanNfZnJvbV9zdHJpbmcgOiBzdHJpbmcgLT4gSnMudCA9IFwiY2FtbF9qc19mcm9tX3N0cmluZ1wiXG5cbiAgZXh0ZXJuYWwgY2FtbF9qc190b19ieXRlX3N0cmluZyA6IEpzLnQgLT4gc3RyaW5nID0gXCJjYW1sX2pzX3RvX2J5dGVfc3RyaW5nXCJcblxuICBleHRlcm5hbCBjYW1sX2pzX3RvX3N0cmluZyA6IEpzLnQgLT4gc3RyaW5nID0gXCJjYW1sX2pzX3RvX3N0cmluZ1wiXG5cbiAgZXh0ZXJuYWwgY2FtbF9saXN0X29mX2pzX2FycmF5IDogJ2EgSnMuanNfYXJyYXkgLT4gJ2EgbGlzdCA9IFwiY2FtbF9saXN0X29mX2pzX2FycmF5XCJcblxuICBleHRlcm5hbCBjYW1sX2xpc3RfdG9fanNfYXJyYXkgOiAnYSBsaXN0IC0+ICdhIEpzLmpzX2FycmF5ID0gXCJjYW1sX2xpc3RfdG9fanNfYXJyYXlcIlxuXG4gIGV4dGVybmFsIHZhcmlhYmxlIDogc3RyaW5nIC0+ICdhID0gXCJjYW1sX2pzX3ZhclwiXG5lbmRcblxubW9kdWxlIFR5cGVkX2FycmF5ID0gc3RydWN0XG4gIHR5cGUgKCdhLCAnYikgdHlwZWRBcnJheSA9IEpzLnRcblxuICB0eXBlIGFycmF5QnVmZmVyID0gSnMudFxuXG4gIHR5cGUgdWludDhBcnJheSA9IEpzLnRcblxuICBleHRlcm5hbCBraW5kIDogKCdhLCAnYikgdHlwZWRBcnJheSAtPiAoJ2EsICdiKSBCaWdhcnJheS5raW5kXG4gICAgPSBcImNhbWxfYmFfa2luZF9vZl90eXBlZF9hcnJheVwiXG5cbiAgZXh0ZXJuYWwgZnJvbV9nZW5hcnJheSA6XG4gICAgKCdhLCAnYiwgQmlnYXJyYXkuY19sYXlvdXQpIEJpZ2FycmF5LkdlbmFycmF5LnQgLT4gKCdhLCAnYikgdHlwZWRBcnJheVxuICAgID0gXCJjYW1sX2JhX3RvX3R5cGVkX2FycmF5XCJcblxuICBleHRlcm5hbCB0b19nZW5hcnJheSA6XG4gICAgKCdhLCAnYikgdHlwZWRBcnJheSAtPiAoJ2EsICdiLCBCaWdhcnJheS5jX2xheW91dCkgQmlnYXJyYXkuR2VuYXJyYXkudFxuICAgID0gXCJjYW1sX2JhX2Zyb21fdHlwZWRfYXJyYXlcIlxuXG4gIG1vZHVsZSBCaWdzdHJpbmcgPSBzdHJ1Y3RcbiAgICB0eXBlIHQgPSAoY2hhciwgQmlnYXJyYXkuaW50OF91bnNpZ25lZF9lbHQsIEJpZ2FycmF5LmNfbGF5b3V0KSBCaWdhcnJheS5BcnJheTEudFxuXG4gICAgZXh0ZXJuYWwgdG9fYXJyYXlCdWZmZXIgOiB0IC0+IGFycmF5QnVmZmVyID0gXCJiaWdzdHJpbmdfdG9fYXJyYXlfYnVmZmVyXCJcblxuICAgIGV4dGVybmFsIHRvX3VpbnQ4QXJyYXkgOiB0IC0+IHVpbnQ4QXJyYXkgPSBcImJpZ3N0cmluZ190b190eXBlZF9hcnJheVwiXG5cbiAgICBleHRlcm5hbCBvZl9hcnJheUJ1ZmZlciA6IGFycmF5QnVmZmVyIC0+IHQgPSBcImJpZ3N0cmluZ19vZl9hcnJheV9idWZmZXJcIlxuXG4gICAgZXh0ZXJuYWwgb2ZfdWludDhBcnJheSA6IHVpbnQ4QXJyYXkgLT4gdCA9IFwiYmlnc3RyaW5nX29mX3R5cGVkX2FycmF5XCJcbiAgZW5kXG5cbiAgZXh0ZXJuYWwgb2ZfdWludDhBcnJheSA6IHVpbnQ4QXJyYXkgLT4gc3RyaW5nID0gXCJjYW1sX3N0cmluZ19vZl9hcnJheVwiXG5lbmRcblxubW9kdWxlIEludDY0ID0gc3RydWN0XG4gIGV4dGVybmFsIGNyZWF0ZV9pbnQ2NF9sb19taV9oaSA6IGludCAtPiBpbnQgLT4gaW50IC0+IEludDY0LnRcbiAgICA9IFwiY2FtbF9pbnQ2NF9jcmVhdGVfbG9fbWlfaGlcIlxuZW5kXG4iLCIoKiBnZW5lcmF0ZWQgYnkgZHVuZSAqKVxuXG4oKiogQGNhbm9uaWNhbCBKc19vZl9vY2FtbC5DU1MgKilcbm1vZHVsZSBDU1MgPSBKc19vZl9vY2FtbF9fQ1NTXG5cbigqKiBAY2Fub25pY2FsIEpzX29mX29jYW1sLkRvbSAqKVxubW9kdWxlIERvbSA9IEpzX29mX29jYW1sX19Eb21cblxuKCoqIEBjYW5vbmljYWwgSnNfb2Zfb2NhbWwuRG9tX2V2ZW50cyAqKVxubW9kdWxlIERvbV9ldmVudHMgPSBKc19vZl9vY2FtbF9fRG9tX2V2ZW50c1xuXG4oKiogQGNhbm9uaWNhbCBKc19vZl9vY2FtbC5Eb21faHRtbCAqKVxubW9kdWxlIERvbV9odG1sID0gSnNfb2Zfb2NhbWxfX0RvbV9odG1sXG5cbigqKiBAY2Fub25pY2FsIEpzX29mX29jYW1sLkRvbV9zdmcgKilcbm1vZHVsZSBEb21fc3ZnID0gSnNfb2Zfb2NhbWxfX0RvbV9zdmdcblxuKCoqIEBjYW5vbmljYWwgSnNfb2Zfb2NhbWwuRXZlbnRTb3VyY2UgKilcbm1vZHVsZSBFdmVudFNvdXJjZSA9IEpzX29mX29jYW1sX19FdmVudFNvdXJjZVxuXG4oKiogQGNhbm9uaWNhbCBKc19vZl9vY2FtbC5GaWxlICopXG5tb2R1bGUgRmlsZSA9IEpzX29mX29jYW1sX19GaWxlXG5cbigqKiBAY2Fub25pY2FsIEpzX29mX29jYW1sLkZpcmVidWcgKilcbm1vZHVsZSBGaXJlYnVnID0gSnNfb2Zfb2NhbWxfX0ZpcmVidWdcblxuKCoqIEBjYW5vbmljYWwgSnNfb2Zfb2NhbWwuRm9ybSAqKVxubW9kdWxlIEZvcm0gPSBKc19vZl9vY2FtbF9fRm9ybVxuXG4oKiogQGNhbm9uaWNhbCBKc19vZl9vY2FtbC5HZW9sb2NhdGlvbiAqKVxubW9kdWxlIEdlb2xvY2F0aW9uID0gSnNfb2Zfb2NhbWxfX0dlb2xvY2F0aW9uXG5cbigqKiBAY2Fub25pY2FsIEpzX29mX29jYW1sLkltcG9ydCAqKVxubW9kdWxlIEltcG9ydCA9IEpzX29mX29jYW1sX19JbXBvcnRcblxuKCoqIEBjYW5vbmljYWwgSnNfb2Zfb2NhbWwuSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgKilcbm1vZHVsZSBJbnRlcnNlY3Rpb25PYnNlcnZlciA9IEpzX29mX29jYW1sX19JbnRlcnNlY3Rpb25PYnNlcnZlclxuXG4oKiogQGNhbm9uaWNhbCBKc19vZl9vY2FtbC5JbnRsICopXG5tb2R1bGUgSW50bCA9IEpzX29mX29jYW1sX19JbnRsXG5cbigqKiBAY2Fub25pY2FsIEpzX29mX29jYW1sLkpzICopXG5tb2R1bGUgSnMgPSBKc19vZl9vY2FtbF9fSnNcblxuKCoqIEBjYW5vbmljYWwgSnNfb2Zfb2NhbWwuSnNvbiAqKVxubW9kdWxlIEpzb24gPSBKc19vZl9vY2FtbF9fSnNvblxuXG4oKiogQGNhbm9uaWNhbCBKc19vZl9vY2FtbC5Kc3RhYmxlICopXG5tb2R1bGUgSnN0YWJsZSA9IEpzX29mX29jYW1sX19Kc3RhYmxlXG5cbigqKiBAY2Fub25pY2FsIEpzX29mX29jYW1sLkxpYl92ZXJzaW9uICopXG5tb2R1bGUgTGliX3ZlcnNpb24gPSBKc19vZl9vY2FtbF9fTGliX3ZlcnNpb25cblxuKCoqIEBjYW5vbmljYWwgSnNfb2Zfb2NhbWwuTXV0YXRpb25PYnNlcnZlciAqKVxubW9kdWxlIE11dGF0aW9uT2JzZXJ2ZXIgPSBKc19vZl9vY2FtbF9fTXV0YXRpb25PYnNlcnZlclxuXG4oKiogQGNhbm9uaWNhbCBKc19vZl9vY2FtbC5QZXJmb3JtYW5jZU9ic2VydmVyICopXG5tb2R1bGUgUGVyZm9ybWFuY2VPYnNlcnZlciA9IEpzX29mX29jYW1sX19QZXJmb3JtYW5jZU9ic2VydmVyXG5cbigqKiBAY2Fub25pY2FsIEpzX29mX29jYW1sLlJlZ2V4cCAqKVxubW9kdWxlIFJlZ2V4cCA9IEpzX29mX29jYW1sX19SZWdleHBcblxuKCoqIEBjYW5vbmljYWwgSnNfb2Zfb2NhbWwuUmVzaXplT2JzZXJ2ZXIgKilcbm1vZHVsZSBSZXNpemVPYnNlcnZlciA9IEpzX29mX29jYW1sX19SZXNpemVPYnNlcnZlclxuXG4oKiogQGNhbm9uaWNhbCBKc19vZl9vY2FtbC5TeXNfanMgKilcbm1vZHVsZSBTeXNfanMgPSBKc19vZl9vY2FtbF9fU3lzX2pzXG5cbigqKiBAY2Fub25pY2FsIEpzX29mX29jYW1sLlR5cGVkX2FycmF5ICopXG5tb2R1bGUgVHlwZWRfYXJyYXkgPSBKc19vZl9vY2FtbF9fVHlwZWRfYXJyYXlcblxuKCoqIEBjYW5vbmljYWwgSnNfb2Zfb2NhbWwuVXJsICopXG5tb2R1bGUgVXJsID0gSnNfb2Zfb2NhbWxfX1VybFxuXG4oKiogQGNhbm9uaWNhbCBKc19vZl9vY2FtbC5XZWJHTCAqKVxubW9kdWxlIFdlYkdMID0gSnNfb2Zfb2NhbWxfX1dlYkdMXG5cbigqKiBAY2Fub25pY2FsIEpzX29mX29jYW1sLldlYlNvY2tldHMgKilcbm1vZHVsZSBXZWJTb2NrZXRzID0gSnNfb2Zfb2NhbWxfX1dlYlNvY2tldHNcblxuKCoqIEBjYW5vbmljYWwgSnNfb2Zfb2NhbWwuV29ya2VyICopXG5tb2R1bGUgV29ya2VyID0gSnNfb2Zfb2NhbWxfX1dvcmtlclxuXG4oKiogQGNhbm9uaWNhbCBKc19vZl9vY2FtbC5YbWxIdHRwUmVxdWVzdCAqKVxubW9kdWxlIFhtbEh0dHBSZXF1ZXN0ID0gSnNfb2Zfb2NhbWxfX1htbEh0dHBSZXF1ZXN0XG5cbm1vZHVsZSBKc19vZl9vY2FtbF9fID0gc3RydWN0IGVuZFxuW0BAZGVwcmVjYXRlZCBcInRoaXMgbW9kdWxlIGlzIHNoYWRvd2VkXCJdXG4iLCIoKiBKc19vZl9vY2FtbFxuICogaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuICogZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG4gKilcblxubW9kdWxlIFBvbHkgPSBzdHJ1Y3RcbiAgZXh0ZXJuYWwgKCA8ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlbGVzc3RoYW5cIlxuXG4gIGV4dGVybmFsICggPD0gKSA6ICdhIC0+ICdhIC0+IGJvb2wgPSBcIiVsZXNzZXF1YWxcIlxuXG4gIGV4dGVybmFsICggPD4gKSA6ICdhIC0+ICdhIC0+IGJvb2wgPSBcIiVub3RlcXVhbFwiXG5cbiAgZXh0ZXJuYWwgKCA9ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlZXF1YWxcIlxuXG4gIGV4dGVybmFsICggPiApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJWdyZWF0ZXJ0aGFuXCJcblxuICBleHRlcm5hbCAoID49ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlZ3JlYXRlcmVxdWFsXCJcblxuICBleHRlcm5hbCBjb21wYXJlIDogJ2EgLT4gJ2EgLT4gaW50ID0gXCIlY29tcGFyZVwiXG5cbiAgZXh0ZXJuYWwgZXF1YWwgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlZXF1YWxcIlxuZW5kXG5cbm1vZHVsZSBJbnRfcmVwbGFjZV9wb2x5bW9ycGhpY19jb21wYXJlID0gc3RydWN0XG4gIGV4dGVybmFsICggPCApIDogaW50IC0+IGludCAtPiBib29sID0gXCIlbGVzc3RoYW5cIlxuXG4gIGV4dGVybmFsICggPD0gKSA6IGludCAtPiBpbnQgLT4gYm9vbCA9IFwiJWxlc3NlcXVhbFwiXG5cbiAgZXh0ZXJuYWwgKCA8PiApIDogaW50IC0+IGludCAtPiBib29sID0gXCIlbm90ZXF1YWxcIlxuXG4gIGV4dGVybmFsICggPSApIDogaW50IC0+IGludCAtPiBib29sID0gXCIlZXF1YWxcIlxuXG4gIGV4dGVybmFsICggPiApIDogaW50IC0+IGludCAtPiBib29sID0gXCIlZ3JlYXRlcnRoYW5cIlxuXG4gIGV4dGVybmFsICggPj0gKSA6IGludCAtPiBpbnQgLT4gYm9vbCA9IFwiJWdyZWF0ZXJlcXVhbFwiXG5cbiAgZXh0ZXJuYWwgY29tcGFyZSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlY29tcGFyZVwiXG5cbiAgZXh0ZXJuYWwgZXF1YWwgOiBpbnQgLT4gaW50IC0+IGJvb2wgPSBcIiVlcXVhbFwiXG5cbiAgbGV0IG1heCAoeCA6IGludCkgeSA9IGlmIHggPj0geSB0aGVuIHggZWxzZSB5XG5cbiAgbGV0IG1pbiAoeCA6IGludCkgeSA9IGlmIHggPD0geSB0aGVuIHggZWxzZSB5XG5lbmRcblxubW9kdWxlIFN0cmluZyA9IHN0cnVjdFxuICBpbmNsdWRlIFN0cmluZ1xuXG4gIGxldCBlcXVhbCAoeCA6IHN0cmluZykgKHkgOiBzdHJpbmcpID0gUG9seS5lcXVhbCB4IHlcbmVuZFxuXG5tb2R1bGUgQ2hhciA9IHN0cnVjdFxuICBpbmNsdWRlIENoYXJcblxuICBsZXQgZXF1YWwgKHggOiBjaGFyKSAoeSA6IGNoYXIpID0gUG9seS5lcXVhbCB4IHlcbmVuZFxuXG5pbmNsdWRlIEludF9yZXBsYWNlX3BvbHltb3JwaGljX2NvbXBhcmVcbiIsIigqIEpzX29mX29jYW1sIGxpYnJhcnlcbiAqIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTAgSsOpcsO0bWUgVm91aWxsb25cbiAqIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4gKiBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cbiAqKVxub3BlbiEgSW1wb3J0XG5cbigqIFRoaXMgbG9jYWwgbW9kdWxlIFtKc10gaXMgbmVlZGVkIHNvIHRoYXQgdGhlIHBweF9qcyBleHRlbnNpb24gd29yayB3aXRoaW4gdGhhdCBmaWxlLiAqKVxubW9kdWxlIEpzID0gc3RydWN0XG4gIHR5cGUgKydhIHRcblxuICB0eXBlICgtJ2EsICsnYikgbWV0aF9jYWxsYmFja1xuXG4gIG1vZHVsZSBVbnNhZmUgPSBzdHJ1Y3RcbiAgICB0eXBlIHRvcFxuXG4gICAgdHlwZSBhbnkgPSB0b3AgdFxuXG4gICAgdHlwZSBhbnlfanNfYXJyYXkgPSBhbnlcblxuICAgIGV4dGVybmFsIGluamVjdCA6ICdhIC0+IGFueSA9IFwiJWlkZW50aXR5XCJcblxuICAgIGV4dGVybmFsIGNvZXJjZSA6IF8gdCAtPiBfIHQgPSBcIiVpZGVudGl0eVwiXG5cbiAgICBleHRlcm5hbCBnZXQgOiAnYSAtPiAnYiAtPiAnYyA9IFwiY2FtbF9qc19nZXRcIlxuXG4gICAgZXh0ZXJuYWwgc2V0IDogJ2EgLT4gJ2IgLT4gJ2MgLT4gdW5pdCA9IFwiY2FtbF9qc19zZXRcIlxuXG4gICAgZXh0ZXJuYWwgZGVsZXRlIDogJ2EgLT4gJ2IgLT4gdW5pdCA9IFwiY2FtbF9qc19kZWxldGVcIlxuXG4gICAgZXh0ZXJuYWwgY2FsbCA6ICdhIC0+ICdiIC0+IGFueSBhcnJheSAtPiAnYyA9IFwiY2FtbF9qc19jYWxsXCJcblxuICAgIGV4dGVybmFsIGZ1bl9jYWxsIDogJ2EgLT4gYW55IGFycmF5IC0+ICdiID0gXCJjYW1sX2pzX2Z1bl9jYWxsXCJcblxuICAgIGV4dGVybmFsIG1ldGhfY2FsbCA6ICdhIC0+IHN0cmluZyAtPiBhbnkgYXJyYXkgLT4gJ2IgPSBcImNhbWxfanNfbWV0aF9jYWxsXCJcblxuICAgIGV4dGVybmFsIG5ld19vYmogOiAnYSAtPiBhbnkgYXJyYXkgLT4gJ2IgPSBcImNhbWxfanNfbmV3XCJcblxuICAgIGV4dGVybmFsIG5ld19vYmpfYXJyIDogJ2EgLT4gYW55X2pzX2FycmF5IC0+ICdiID0gXCJjYW1sX29qc19uZXdfYXJyXCJcblxuICAgIGV4dGVybmFsIG9iaiA6IChzdHJpbmcgKiBhbnkpIGFycmF5IC0+ICdhID0gXCJjYW1sX2pzX29iamVjdFwiXG5cbiAgICBleHRlcm5hbCBlcXVhbHMgOiAnYSAtPiAnYiAtPiBib29sID0gXCJjYW1sX2pzX2VxdWFsc1wiXG5cbiAgICBleHRlcm5hbCBwdXJlX2V4cHIgOiAodW5pdCAtPiAnYSkgLT4gJ2EgPSBcImNhbWxfanNfcHVyZV9leHByXCJcblxuICAgIGV4dGVybmFsIGV2YWxfc3RyaW5nIDogc3RyaW5nIC0+ICdhID0gXCJjYW1sX2pzX2V2YWxfc3RyaW5nXCJcblxuICAgIGV4dGVybmFsIGpzX2V4cHIgOiBzdHJpbmcgLT4gJ2EgPSBcImNhbWxfanNfZXhwclwiXG5cbiAgICBleHRlcm5hbCBwdXJlX2pzX2V4cHIgOiBzdHJpbmcgLT4gJ2EgPSBcImNhbWxfcHVyZV9qc19leHByXCJcblxuICAgIGxldCBnbG9iYWwgPSBwdXJlX2pzX2V4cHIgXCJnbG9iYWxUaGlzXCJcblxuICAgIGV4dGVybmFsIGNhbGxiYWNrIDogKCdhIC0+ICdiKSAtPiAoJ2MsICdhIC0+ICdiKSBtZXRoX2NhbGxiYWNrXG4gICAgICA9IFwiY2FtbF9qc193cmFwX2NhbGxiYWNrX3Vuc2FmZVwiXG5cbiAgICBleHRlcm5hbCBjYWxsYmFja193aXRoX2FyZ3VtZW50cyA6XG4gICAgICAoYW55X2pzX2FycmF5IC0+ICdiKSAtPiAoJ2MsIGFueV9qc19hcnJheSAtPiAnYikgbWV0aF9jYWxsYmFja1xuICAgICAgPSBcImNhbWxfanNfd3JhcF9jYWxsYmFja19hcmd1bWVudHNcIlxuXG4gICAgZXh0ZXJuYWwgY2FsbGJhY2tfd2l0aF9hcml0eSA6IGludCAtPiAoJ2EgLT4gJ2IpIC0+ICgnYywgJ2EgLT4gJ2IpIG1ldGhfY2FsbGJhY2tcbiAgICAgID0gXCJjYW1sX2pzX3dyYXBfY2FsbGJhY2tfc3RyaWN0XCJcblxuICAgIGV4dGVybmFsIG1ldGhfY2FsbGJhY2sgOiAoJ2IgLT4gJ2EpIC0+ICgnYiwgJ2EpIG1ldGhfY2FsbGJhY2tcbiAgICAgID0gXCJjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFja191bnNhZmVcIlxuXG4gICAgZXh0ZXJuYWwgbWV0aF9jYWxsYmFja193aXRoX2FyaXR5IDogaW50IC0+ICgnYiAtPiAnYSkgLT4gKCdiLCAnYSkgbWV0aF9jYWxsYmFja1xuICAgICAgPSBcImNhbWxfanNfd3JhcF9tZXRoX2NhbGxiYWNrX3N0cmljdFwiXG5cbiAgICBleHRlcm5hbCBtZXRoX2NhbGxiYWNrX3dpdGhfYXJndW1lbnRzIDpcbiAgICAgICgnYiAtPiBhbnlfanNfYXJyYXkgLT4gJ2EpIC0+ICgnYiwgYW55X2pzX2FycmF5IC0+ICdhKSBtZXRoX2NhbGxiYWNrXG4gICAgICA9IFwiY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2tfYXJndW1lbnRzXCJcblxuICAgICgqIERFUFJFQ0FURUQgKilcbiAgICBleHRlcm5hbCB2YXJpYWJsZSA6IHN0cmluZyAtPiAnYSA9IFwiY2FtbF9qc192YXJcIlxuICBlbmRcblxuICAoKioqKilcblxuICB0eXBlICdhIG9wdCA9ICdhXG5cbiAgdHlwZSAnYSBvcHRkZWYgPSAnYVxuXG4gIGV4dGVybmFsIGRlYnVnZ2VyIDogdW5pdCAtPiB1bml0ID0gXCJkZWJ1Z2dlclwiXG5cbiAgbGV0IG51bGwgOiAnYSBvcHQgPSBVbnNhZmUucHVyZV9qc19leHByIFwibnVsbFwiXG5cbiAgZXh0ZXJuYWwgc29tZSA6ICdhIC0+ICdhIG9wdCA9IFwiJWlkZW50aXR5XCJcblxuICBsZXQgdW5kZWZpbmVkIDogJ2Egb3B0ZGVmID0gVW5zYWZlLnB1cmVfanNfZXhwciBcInVuZGVmaW5lZFwiXG5cbiAgZXh0ZXJuYWwgZGVmIDogJ2EgLT4gJ2Egb3B0ZGVmID0gXCIlaWRlbnRpdHlcIlxuXG4gIG1vZHVsZSB0eXBlIE9QVCA9IHNpZ1xuICAgIHR5cGUgJ2EgdFxuXG4gICAgdmFsIGVtcHR5IDogJ2EgdFxuXG4gICAgdmFsIHJldHVybiA6ICdhIC0+ICdhIHRcblxuICAgIHZhbCBtYXAgOiAnYSB0IC0+ICgnYSAtPiAnYikgLT4gJ2IgdFxuXG4gICAgdmFsIGJpbmQgOiAnYSB0IC0+ICgnYSAtPiAnYiB0KSAtPiAnYiB0XG5cbiAgICB2YWwgdGVzdCA6ICdhIHQgLT4gYm9vbFxuXG4gICAgdmFsIGl0ZXIgOiAnYSB0IC0+ICgnYSAtPiB1bml0KSAtPiB1bml0XG5cbiAgICB2YWwgY2FzZSA6ICdhIHQgLT4gKHVuaXQgLT4gJ2IpIC0+ICgnYSAtPiAnYikgLT4gJ2JcblxuICAgIHZhbCBnZXQgOiAnYSB0IC0+ICh1bml0IC0+ICdhKSAtPiAnYVxuXG4gICAgdmFsIG9wdGlvbiA6ICdhIG9wdGlvbiAtPiAnYSB0XG5cbiAgICB2YWwgdG9fb3B0aW9uIDogJ2EgdCAtPiAnYSBvcHRpb25cbiAgZW5kXG5cbiAgbW9kdWxlIE9wdCA6IE9QVCB3aXRoIHR5cGUgJ2EgdCA9ICdhIG9wdCA9IHN0cnVjdFxuICAgIHR5cGUgJ2EgdCA9ICdhIG9wdFxuXG4gICAgbGV0IGVtcHR5ID0gbnVsbFxuXG4gICAgbGV0IHJldHVybiA9IHNvbWVcblxuICAgIGxldCBtYXAgeCBmID0gaWYgVW5zYWZlLmVxdWFscyB4IG51bGwgdGhlbiBudWxsIGVsc2UgcmV0dXJuIChmIHgpXG5cbiAgICBsZXQgYmluZCB4IGYgPSBpZiBVbnNhZmUuZXF1YWxzIHggbnVsbCB0aGVuIG51bGwgZWxzZSBmIHhcblxuICAgIGxldCB0ZXN0IHggPSBub3QgKFVuc2FmZS5lcXVhbHMgeCBudWxsKVxuXG4gICAgbGV0IGl0ZXIgeCBmID0gaWYgbm90IChVbnNhZmUuZXF1YWxzIHggbnVsbCkgdGhlbiBmIHhcblxuICAgIGxldCBjYXNlIHggZiBnID0gaWYgVW5zYWZlLmVxdWFscyB4IG51bGwgdGhlbiBmICgpIGVsc2UgZyB4XG5cbiAgICBsZXQgZ2V0IHggZiA9IGlmIFVuc2FmZS5lcXVhbHMgeCBudWxsIHRoZW4gZiAoKSBlbHNlIHhcblxuICAgIGxldCBvcHRpb24geCA9XG4gICAgICBtYXRjaCB4IHdpdGhcbiAgICAgIHwgTm9uZSAtPiBlbXB0eVxuICAgICAgfCBTb21lIHggLT4gcmV0dXJuIHhcblxuICAgIGxldCB0b19vcHRpb24geCA9IGNhc2UgeCAoZnVuICgpIC0+IE5vbmUpIChmdW4geCAtPiBTb21lIHgpXG4gIGVuZFxuXG4gIG1vZHVsZSBPcHRkZWYgOiBPUFQgd2l0aCB0eXBlICdhIHQgPSAnYSBvcHRkZWYgPSBzdHJ1Y3RcbiAgICB0eXBlICdhIHQgPSAnYSBvcHRkZWZcblxuICAgIGxldCBlbXB0eSA9IHVuZGVmaW5lZFxuXG4gICAgbGV0IHJldHVybiA9IGRlZlxuXG4gICAgbGV0IG1hcCB4IGYgPSBpZiB4ID09IHVuZGVmaW5lZCB0aGVuIHVuZGVmaW5lZCBlbHNlIHJldHVybiAoZiB4KVxuXG4gICAgbGV0IGJpbmQgeCBmID0gaWYgeCA9PSB1bmRlZmluZWQgdGhlbiB1bmRlZmluZWQgZWxzZSBmIHhcblxuICAgIGxldCB0ZXN0IHggPSB4ICE9IHVuZGVmaW5lZFxuXG4gICAgbGV0IGl0ZXIgeCBmID0gaWYgeCAhPSB1bmRlZmluZWQgdGhlbiBmIHhcblxuICAgIGxldCBjYXNlIHggZiBnID0gaWYgeCA9PSB1bmRlZmluZWQgdGhlbiBmICgpIGVsc2UgZyB4XG5cbiAgICBsZXQgZ2V0IHggZiA9IGlmIHggPT0gdW5kZWZpbmVkIHRoZW4gZiAoKSBlbHNlIHhcblxuICAgIGxldCBvcHRpb24geCA9XG4gICAgICBtYXRjaCB4IHdpdGhcbiAgICAgIHwgTm9uZSAtPiBlbXB0eVxuICAgICAgfCBTb21lIHggLT4gcmV0dXJuIHhcblxuICAgIGxldCB0b19vcHRpb24geCA9IGNhc2UgeCAoZnVuICgpIC0+IE5vbmUpIChmdW4geCAtPiBTb21lIHgpXG4gIGVuZFxuXG4gICgqKioqKVxuXG4gIGxldCBjb2VyY2UgeCBmIGcgPSBPcHQuZ2V0IChmIHgpIChmdW4gKCkgLT4gZyB4KVxuXG4gIGxldCBjb2VyY2Vfb3B0IHggZiBnID0gT3B0LmdldCAoT3B0LmJpbmQgeCBmKSAoZnVuICgpIC0+IGcgeClcblxuICAoKioqKilcblxuICB0eXBlICsnYSBtZXRoXG5cbiAgdHlwZSArJ2EgZ2VuX3Byb3BcblxuICB0eXBlICdhIHJlYWRvbmx5X3Byb3AgPSA8IGdldCA6ICdhID4gZ2VuX3Byb3BcblxuICB0eXBlICdhIHdyaXRlb25seV9wcm9wID0gPCBzZXQgOiAnYSAtPiB1bml0ID4gZ2VuX3Byb3BcblxuICB0eXBlICdhIHByb3AgPSA8IGdldCA6ICdhIDsgc2V0IDogJ2EgLT4gdW5pdCA+IGdlbl9wcm9wXG5cbiAgdHlwZSAnYSBvcHRkZWZfcHJvcCA9IDwgZ2V0IDogJ2Egb3B0ZGVmIDsgc2V0IDogJ2EgLT4gdW5pdCA+IGdlbl9wcm9wXG5cbiAgdHlwZSArJ2EgY29uc3RyXG5cbiAgKCoqKiopXG5cbiAgdHlwZSAnYSBjYWxsYmFjayA9ICh1bml0LCAnYSkgbWV0aF9jYWxsYmFja1xuXG4gIGV4dGVybmFsIHdyYXBfY2FsbGJhY2sgOiAoJ2EgLT4gJ2IpIC0+ICgnYywgJ2EgLT4gJ2IpIG1ldGhfY2FsbGJhY2tcbiAgICA9IFwiY2FtbF9qc193cmFwX2NhbGxiYWNrXCJcblxuICBleHRlcm5hbCB3cmFwX21ldGhfY2FsbGJhY2sgOiAoJ2EgLT4gJ2IpIC0+ICgnYSwgJ2IpIG1ldGhfY2FsbGJhY2tcbiAgICA9IFwiY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2tcIlxuXG4gICgqKioqKVxuXG4gIGxldCBfdHJ1ZSA9IFVuc2FmZS5wdXJlX2pzX2V4cHIgXCJ0cnVlXCJcblxuICBsZXQgX2ZhbHNlID0gVW5zYWZlLnB1cmVfanNfZXhwciBcImZhbHNlXCJcblxuICB0eXBlIG1hdGNoX3Jlc3VsdF9oYW5kbGVcblxuICB0eXBlIHN0cmluZ19hcnJheVxuXG4gIGNsYXNzIHR5cGUganNfc3RyaW5nID1cbiAgICBvYmplY3RcbiAgICAgIG1ldGhvZCB0b1N0cmluZyA6IGpzX3N0cmluZyB0IG1ldGhcblxuICAgICAgbWV0aG9kIHZhbHVlT2YgOiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICAgIG1ldGhvZCBjaGFyQXQgOiBpbnQgLT4ganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgICBtZXRob2QgY2hhckNvZGVBdCA6IGludCAtPiBmbG9hdCBtZXRoXG5cbiAgICAgICgqIFRoaXMgbWF5IHJldHVybiBOYU4uLi4gKilcbiAgICAgIG1ldGhvZCBjb25jYXQgOiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICAgIG1ldGhvZCBjb25jYXRfMiA6IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IG1ldGhcblxuICAgICAgbWV0aG9kIGNvbmNhdF8zIDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgICBtZXRob2QgY29uY2F0XzQgOlxuICAgICAgICBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICAgIG1ldGhvZCBpbmRleE9mIDoganNfc3RyaW5nIHQgLT4gaW50IG1ldGhcblxuICAgICAgbWV0aG9kIGluZGV4T2ZfZnJvbSA6IGpzX3N0cmluZyB0IC0+IGludCAtPiBpbnQgbWV0aFxuXG4gICAgICBtZXRob2QgbGFzdEluZGV4T2YgOiBqc19zdHJpbmcgdCAtPiBpbnQgbWV0aFxuXG4gICAgICBtZXRob2QgbGFzdEluZGV4T2ZfZnJvbSA6IGpzX3N0cmluZyB0IC0+IGludCAtPiBpbnQgbWV0aFxuXG4gICAgICBtZXRob2QgbG9jYWxlQ29tcGFyZSA6IGpzX3N0cmluZyB0IC0+IGZsb2F0IG1ldGhcblxuICAgICAgbWV0aG9kIF9tYXRjaCA6IHJlZ0V4cCB0IC0+IG1hdGNoX3Jlc3VsdF9oYW5kbGUgdCBvcHQgbWV0aFxuXG4gICAgICBtZXRob2Qgbm9ybWFsaXplIDoganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgICBtZXRob2Qgbm9ybWFsaXplX2Zvcm0gOiBub3JtYWxpemF0aW9uIHQgLT4ganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgICBtZXRob2QgcmVwbGFjZSA6IHJlZ0V4cCB0IC0+IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IG1ldGhcblxuICAgICAgbWV0aG9kIHJlcGxhY2Vfc3RyaW5nIDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgICBtZXRob2Qgc2VhcmNoIDogcmVnRXhwIHQgLT4gaW50IG1ldGhcblxuICAgICAgbWV0aG9kIHNsaWNlIDogaW50IC0+IGludCAtPiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICAgIG1ldGhvZCBzbGljZV9lbmQgOiBpbnQgLT4ganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgICBtZXRob2Qgc3BsaXQgOiBqc19zdHJpbmcgdCAtPiBzdHJpbmdfYXJyYXkgdCBtZXRoXG5cbiAgICAgIG1ldGhvZCBzcGxpdF9saW1pdGVkIDoganNfc3RyaW5nIHQgLT4gaW50IC0+IHN0cmluZ19hcnJheSB0IG1ldGhcblxuICAgICAgbWV0aG9kIHNwbGl0X3JlZ0V4cCA6IHJlZ0V4cCB0IC0+IHN0cmluZ19hcnJheSB0IG1ldGhcblxuICAgICAgbWV0aG9kIHNwbGl0X3JlZ0V4cExpbWl0ZWQgOiByZWdFeHAgdCAtPiBpbnQgLT4gc3RyaW5nX2FycmF5IHQgbWV0aFxuXG4gICAgICBtZXRob2Qgc3Vic3RyaW5nIDogaW50IC0+IGludCAtPiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICAgIG1ldGhvZCBzdWJzdHJpbmdfdG9FbmQgOiBpbnQgLT4ganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgICBtZXRob2QgdG9Mb3dlckNhc2UgOiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICAgIG1ldGhvZCB0b0xvY2FsZUxvd2VyQ2FzZSA6IGpzX3N0cmluZyB0IG1ldGhcblxuICAgICAgbWV0aG9kIHRvVXBwZXJDYXNlIDoganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgICBtZXRob2QgdG9Mb2NhbGVVcHBlckNhc2UgOiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICAgIG1ldGhvZCB0cmltIDoganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgICBtZXRob2QgbGVuZ3RoIDogaW50IHJlYWRvbmx5X3Byb3BcbiAgICBlbmRcblxuICBhbmQgcmVnRXhwID1cbiAgICBvYmplY3RcbiAgICAgIG1ldGhvZCBleGVjIDoganNfc3RyaW5nIHQgLT4gbWF0Y2hfcmVzdWx0X2hhbmRsZSB0IG9wdCBtZXRoXG5cbiAgICAgIG1ldGhvZCB0ZXN0IDoganNfc3RyaW5nIHQgLT4gYm9vbCB0IG1ldGhcblxuICAgICAgbWV0aG9kIHRvU3RyaW5nIDoganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgICBtZXRob2Qgc291cmNlIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgICBtZXRob2QgZ2xvYmFsIDogYm9vbCB0IHJlYWRvbmx5X3Byb3BcblxuICAgICAgbWV0aG9kIGlnbm9yZUNhc2UgOiBib29sIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgICBtZXRob2QgbXVsdGlsaW5lIDogYm9vbCB0IHJlYWRvbmx5X3Byb3BcblxuICAgICAgbWV0aG9kIGxhc3RJbmRleCA6IGludCBwcm9wXG4gICAgZW5kXG5cbiAgYW5kIG5vcm1hbGl6YXRpb24gPSBqc19zdHJpbmdcblxuICAoKiBzdHJpbmcgaXMgdXNlZCBieSBwcHhfanMsIGl0IG5lZWRzIHRvIGNvbWUgYmVmb3JlIGFueSB1c2Ugb2YgdGhlXG4gICAgIG5ldyBzeW50YXggaW4gdGhpcyBmaWxlICopXG4gIGV4dGVybmFsIHN0cmluZyA6IHN0cmluZyAtPiBqc19zdHJpbmcgdCA9IFwiY2FtbF9qc3N0cmluZ19vZl9zdHJpbmdcIlxuXG4gIGV4dGVybmFsIHRvX3N0cmluZyA6IGpzX3N0cmluZyB0IC0+IHN0cmluZyA9IFwiY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmdcIlxuXG4gIGxldCBuZmMgPSBzdHJpbmcgXCJORkNcIlxuXG4gIGxldCBuZmQgPSBzdHJpbmcgXCJORkRcIlxuXG4gIGxldCBuZmtjID0gc3RyaW5nIFwiTkZLQ1wiXG5cbiAgbGV0IG5ma2QgPSBzdHJpbmcgXCJORktEXCJcbmVuZFxuXG5pbmNsdWRlIEpzXG5cbmNsYXNzIHR5cGUgc3RyaW5nX2NvbnN0ciA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBmcm9tQ2hhckNvZGUgOiBpbnQgLT4ganNfc3RyaW5nIHQgbWV0aFxuICBlbmRcblxubGV0IHN0cmluZ19jb25zdHIgPSBVbnNhZmUuZ2xvYmFsIyMuX1N0cmluZ1xuXG5sZXQgcmVnRXhwID0gVW5zYWZlLmdsb2JhbCMjLl9SZWdFeHBcblxubGV0IHJlZ0V4cF9jb3B5ID0gcmVnRXhwXG5cbmxldCByZWdFeHBfd2l0aEZsYWdzID0gcmVnRXhwXG5cbmNsYXNzIHR5cGUgWydhXSBqc19hcnJheSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCB0b1N0cmluZyA6IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCB0b0xvY2FsZVN0cmluZyA6IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCBjb25jYXQgOiAnYSBqc19hcnJheSB0IC0+ICdhIGpzX2FycmF5IHQgbWV0aFxuXG4gICAgbWV0aG9kIGpvaW4gOiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICBtZXRob2QgcG9wIDogJ2Egb3B0ZGVmIG1ldGhcblxuICAgIG1ldGhvZCBwdXNoIDogJ2EgLT4gaW50IG1ldGhcblxuICAgIG1ldGhvZCBwdXNoXzIgOiAnYSAtPiAnYSAtPiBpbnQgbWV0aFxuXG4gICAgbWV0aG9kIHB1c2hfMyA6ICdhIC0+ICdhIC0+ICdhIC0+IGludCBtZXRoXG5cbiAgICBtZXRob2QgcHVzaF80IDogJ2EgLT4gJ2EgLT4gJ2EgLT4gJ2EgLT4gaW50IG1ldGhcblxuICAgIG1ldGhvZCByZXZlcnNlIDogJ2EganNfYXJyYXkgdCBtZXRoXG5cbiAgICBtZXRob2Qgc2hpZnQgOiAnYSBvcHRkZWYgbWV0aFxuXG4gICAgbWV0aG9kIHNsaWNlIDogaW50IC0+IGludCAtPiAnYSBqc19hcnJheSB0IG1ldGhcblxuICAgIG1ldGhvZCBzbGljZV9lbmQgOiBpbnQgLT4gJ2EganNfYXJyYXkgdCBtZXRoXG5cbiAgICBtZXRob2Qgc29ydCA6ICgnYSAtPiAnYSAtPiBmbG9hdCkgY2FsbGJhY2sgLT4gJ2EganNfYXJyYXkgdCBtZXRoXG5cbiAgICBtZXRob2Qgc29ydF9hc1N0cmluZ3MgOiAnYSBqc19hcnJheSB0IG1ldGhcblxuICAgIG1ldGhvZCBzcGxpY2UgOiBpbnQgLT4gaW50IC0+ICdhIGpzX2FycmF5IHQgbWV0aFxuXG4gICAgbWV0aG9kIHNwbGljZV8xIDogaW50IC0+IGludCAtPiAnYSAtPiAnYSBqc19hcnJheSB0IG1ldGhcblxuICAgIG1ldGhvZCBzcGxpY2VfMiA6IGludCAtPiBpbnQgLT4gJ2EgLT4gJ2EgLT4gJ2EganNfYXJyYXkgdCBtZXRoXG5cbiAgICBtZXRob2Qgc3BsaWNlXzMgOiBpbnQgLT4gaW50IC0+ICdhIC0+ICdhIC0+ICdhIC0+ICdhIGpzX2FycmF5IHQgbWV0aFxuXG4gICAgbWV0aG9kIHNwbGljZV80IDogaW50IC0+IGludCAtPiAnYSAtPiAnYSAtPiAnYSAtPiAnYSAtPiAnYSBqc19hcnJheSB0IG1ldGhcblxuICAgIG1ldGhvZCB1bnNoaWZ0IDogJ2EgLT4gaW50IG1ldGhcblxuICAgIG1ldGhvZCB1bnNoaWZ0XzIgOiAnYSAtPiAnYSAtPiBpbnQgbWV0aFxuXG4gICAgbWV0aG9kIHVuc2hpZnRfMyA6ICdhIC0+ICdhIC0+ICdhIC0+IGludCBtZXRoXG5cbiAgICBtZXRob2QgdW5zaGlmdF80IDogJ2EgLT4gJ2EgLT4gJ2EgLT4gJ2EgLT4gaW50IG1ldGhcblxuICAgIG1ldGhvZCBzb21lIDogKCdhIC0+IGludCAtPiAnYSBqc19hcnJheSB0IC0+IGJvb2wgdCkgY2FsbGJhY2sgLT4gYm9vbCB0IG1ldGhcblxuICAgIG1ldGhvZCBldmVyeSA6ICgnYSAtPiBpbnQgLT4gJ2EganNfYXJyYXkgdCAtPiBib29sIHQpIGNhbGxiYWNrIC0+IGJvb2wgdCBtZXRoXG5cbiAgICBtZXRob2QgZm9yRWFjaCA6ICgnYSAtPiBpbnQgLT4gJ2EganNfYXJyYXkgdCAtPiB1bml0KSBjYWxsYmFjayAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBtYXAgOiAoJ2EgLT4gaW50IC0+ICdhIGpzX2FycmF5IHQgLT4gJ2IpIGNhbGxiYWNrIC0+ICdiIGpzX2FycmF5IHQgbWV0aFxuXG4gICAgbWV0aG9kIGZpbHRlciA6ICgnYSAtPiBpbnQgLT4gJ2EganNfYXJyYXkgdCAtPiBib29sIHQpIGNhbGxiYWNrIC0+ICdhIGpzX2FycmF5IHQgbWV0aFxuXG4gICAgbWV0aG9kIHJlZHVjZV9pbml0IDpcbiAgICAgICgnYiAtPiAnYSAtPiBpbnQgLT4gJ2EganNfYXJyYXkgdCAtPiAnYikgY2FsbGJhY2sgLT4gJ2IgLT4gJ2IgbWV0aFxuXG4gICAgbWV0aG9kIHJlZHVjZSA6ICgnYSAtPiAnYSAtPiBpbnQgLT4gJ2EganNfYXJyYXkgdCAtPiAnYSkgY2FsbGJhY2sgLT4gJ2EgbWV0aFxuXG4gICAgbWV0aG9kIHJlZHVjZVJpZ2h0X2luaXQgOlxuICAgICAgKCdiIC0+ICdhIC0+IGludCAtPiAnYSBqc19hcnJheSB0IC0+ICdiKSBjYWxsYmFjayAtPiAnYiAtPiAnYiBtZXRoXG5cbiAgICBtZXRob2QgcmVkdWNlUmlnaHQgOiAoJ2EgLT4gJ2EgLT4gaW50IC0+ICdhIGpzX2FycmF5IHQgLT4gJ2EpIGNhbGxiYWNrIC0+ICdhIG1ldGhcblxuICAgIG1ldGhvZCBsZW5ndGggOiBpbnQgcHJvcFxuICBlbmRcblxubGV0IG9iamVjdF9jb25zdHJ1Y3RvciA9IFVuc2FmZS5nbG9iYWwjIy5fT2JqZWN0XG5cbmxldCBvYmplY3Rfa2V5cyBvIDoganNfc3RyaW5nIHQganNfYXJyYXkgdCA9IG9iamVjdF9jb25zdHJ1Y3RvciMja2V5cyBvXG5cbmxldCBhcnJheV9jb25zdHJ1Y3RvciA9IFVuc2FmZS5nbG9iYWwjIy5fQXJyYXlcblxubGV0IGFycmF5X2VtcHR5ID0gYXJyYXlfY29uc3RydWN0b3JcblxubGV0IGFycmF5X2xlbmd0aCA9IGFycmF5X2NvbnN0cnVjdG9yXG5cbmxldCBhcnJheV9nZXQgOiAnYSAjanNfYXJyYXkgdCAtPiBpbnQgLT4gJ2Egb3B0ZGVmID0gVW5zYWZlLmdldFxuXG5sZXQgYXJyYXlfc2V0IDogJ2EgI2pzX2FycmF5IHQgLT4gaW50IC0+ICdhIC0+IHVuaXQgPSBVbnNhZmUuc2V0XG5cbmxldCBhcnJheV9tYXBfcG9seSA6XG4gICAgJ2EgI2pzX2FycmF5IHQgLT4gKCdhIC0+IGludCAtPiAnYSAjanNfYXJyYXkgdCAtPiAnYikgY2FsbGJhY2sgLT4gJ2IgI2pzX2FycmF5IHQgPVxuIGZ1biBhIGNiIC0+IChVbnNhZmUuY29lcmNlIGEpIyNtYXAgY2JcblxubGV0IGFycmF5X21hcCBmIGEgPSBhcnJheV9tYXBfcG9seSBhICh3cmFwX2NhbGxiYWNrIChmdW4geCBfaWR4IF8gLT4gZiB4KSlcblxubGV0IGFycmF5X21hcGkgZiBhID0gYXJyYXlfbWFwX3BvbHkgYSAod3JhcF9jYWxsYmFjayAoZnVuIHggaWR4IF8gLT4gZiBpZHggeCkpXG5cbmNsYXNzIHR5cGUgbWF0Y2hfcmVzdWx0ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBbanNfc3RyaW5nIHRdIGpzX2FycmF5XG5cbiAgICBtZXRob2QgaW5kZXggOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGlucHV0IDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IHN0cl9hcnJheSA6IHN0cmluZ19hcnJheSB0IC0+IGpzX3N0cmluZyB0IGpzX2FycmF5IHQgPSBVbnNhZmUuY29lcmNlXG5cbmxldCBtYXRjaF9yZXN1bHQgOiBtYXRjaF9yZXN1bHRfaGFuZGxlIHQgLT4gbWF0Y2hfcmVzdWx0IHQgPSBVbnNhZmUuY29lcmNlXG5cbmNsYXNzIHR5cGUgbnVtYmVyID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHRvU3RyaW5nIDoganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgbWV0aG9kIHRvU3RyaW5nX3JhZGl4IDogaW50IC0+IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCB0b0xvY2FsZVN0cmluZyA6IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCB0b0ZpeGVkIDogaW50IC0+IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCB0b0V4cG9uZW50aWFsIDoganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgbWV0aG9kIHRvRXhwb25lbnRpYWxfZGlnaXRzIDogaW50IC0+IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCB0b1ByZWNpc2lvbiA6IGludCAtPiBqc19zdHJpbmcgdCBtZXRoXG4gIGVuZFxuXG5leHRlcm5hbCBudW1iZXJfb2ZfZmxvYXQgOiBmbG9hdCAtPiBudW1iZXIgdCA9IFwiY2FtbF9qc19mcm9tX2Zsb2F0XCJcblxuZXh0ZXJuYWwgZmxvYXRfb2ZfbnVtYmVyIDogbnVtYmVyIHQgLT4gZmxvYXQgPSBcImNhbWxfanNfdG9fZmxvYXRcIlxuXG5jbGFzcyB0eXBlIGRhdGUgPVxuICBvYmplY3RcbiAgICBtZXRob2QgdG9TdHJpbmcgOiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICBtZXRob2QgdG9EYXRlU3RyaW5nIDoganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgbWV0aG9kIHRvVGltZVN0cmluZyA6IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCB0b0xvY2FsZVN0cmluZyA6IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCB0b0xvY2FsZURhdGVTdHJpbmcgOiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICBtZXRob2QgdG9Mb2NhbGVUaW1lU3RyaW5nIDoganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgbWV0aG9kIHZhbHVlT2YgOiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0VGltZSA6IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRGdWxsWWVhciA6IGludCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0VVRDRnVsbFllYXIgOiBpbnQgbWV0aFxuXG4gICAgbWV0aG9kIGdldE1vbnRoIDogaW50IG1ldGhcblxuICAgIG1ldGhvZCBnZXRVVENNb250aCA6IGludCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0RGF0ZSA6IGludCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0VVRDRGF0ZSA6IGludCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0RGF5IDogaW50IG1ldGhcblxuICAgIG1ldGhvZCBnZXRVVENEYXkgOiBpbnQgbWV0aFxuXG4gICAgbWV0aG9kIGdldEhvdXJzIDogaW50IG1ldGhcblxuICAgIG1ldGhvZCBnZXRVVENIb3VycyA6IGludCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0TWludXRlcyA6IGludCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0VVRDTWludXRlcyA6IGludCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0U2Vjb25kcyA6IGludCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0VVRDU2Vjb25kcyA6IGludCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0TWlsbGlzZWNvbmRzIDogaW50IG1ldGhcblxuICAgIG1ldGhvZCBnZXRVVENNaWxsaXNlY29uZHMgOiBpbnQgbWV0aFxuXG4gICAgbWV0aG9kIGdldFRpbWV6b25lT2Zmc2V0IDogaW50IG1ldGhcblxuICAgIG1ldGhvZCBzZXRUaW1lIDogZmxvYXQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldEZ1bGxZZWFyIDogaW50IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRVVENGdWxsWWVhciA6IGludCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0TW9udGggOiBpbnQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldFVUQ01vbnRoIDogaW50IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBzZXREYXRlIDogaW50IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRVVENEYXRlIDogaW50IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBzZXREYXkgOiBpbnQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldFVUQ0RheSA6IGludCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0SG91cnMgOiBpbnQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldFVUQ0hvdXJzIDogaW50IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRNaW51dGVzIDogaW50IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRVVENNaW51dGVzIDogaW50IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRTZWNvbmRzIDogaW50IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRVVENTZWNvbmRzIDogaW50IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRNaWxsaXNlY29uZHMgOiBpbnQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldFVUQ01pbGxpc2Vjb25kcyA6IGludCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgdG9VVENTdHJpbmcgOiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICBtZXRob2QgdG9JU09TdHJpbmcgOiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICBtZXRob2QgdG9KU09OIDogJ2EgLT4ganNfc3RyaW5nIHQgbWV0aFxuICBlbmRcblxuY2xhc3MgdHlwZSBkYXRlX2NvbnN0ciA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBwYXJzZSA6IGpzX3N0cmluZyB0IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBfVVRDX21vbnRoIDogaW50IC0+IGludCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgX1VUQ19kYXkgOiBpbnQgLT4gaW50IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBfVVRDX2hvdXIgOiBpbnQgLT4gaW50IC0+IGludCAtPiBpbnQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIF9VVENfbWluIDogaW50IC0+IGludCAtPiBpbnQgLT4gaW50IC0+IGludCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgX1VUQ19zZWMgOiBpbnQgLT4gaW50IC0+IGludCAtPiBpbnQgLT4gaW50IC0+IGludCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgX1VUQ19tcyA6IGludCAtPiBpbnQgLT4gaW50IC0+IGludCAtPiBpbnQgLT4gaW50IC0+IGludCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2Qgbm93IDogZmxvYXQgbWV0aFxuICBlbmRcblxubGV0IGRhdGVfY29uc3RyID0gVW5zYWZlLmdsb2JhbCMjLl9EYXRlXG5cbmxldCBkYXRlIDogZGF0ZV9jb25zdHIgdCA9IGRhdGVfY29uc3RyXG5cbmxldCBkYXRlX25vdyA6IGRhdGUgdCBjb25zdHIgPSBkYXRlX2NvbnN0clxuXG5sZXQgZGF0ZV9mcm9tVGltZVZhbHVlIDogKGZsb2F0IC0+IGRhdGUgdCkgY29uc3RyID0gZGF0ZV9jb25zdHJcblxubGV0IGRhdGVfbW9udGggOiAoaW50IC0+IGludCAtPiBkYXRlIHQpIGNvbnN0ciA9IGRhdGVfY29uc3RyXG5cbmxldCBkYXRlX2RheSA6IChpbnQgLT4gaW50IC0+IGludCAtPiBkYXRlIHQpIGNvbnN0ciA9IGRhdGVfY29uc3RyXG5cbmxldCBkYXRlX2hvdXIgOiAoaW50IC0+IGludCAtPiBpbnQgLT4gaW50IC0+IGRhdGUgdCkgY29uc3RyID0gZGF0ZV9jb25zdHJcblxubGV0IGRhdGVfbWluIDogKGludCAtPiBpbnQgLT4gaW50IC0+IGludCAtPiBpbnQgLT4gZGF0ZSB0KSBjb25zdHIgPSBkYXRlX2NvbnN0clxuXG5sZXQgZGF0ZV9zZWMgOiAoaW50IC0+IGludCAtPiBpbnQgLT4gaW50IC0+IGludCAtPiBpbnQgLT4gZGF0ZSB0KSBjb25zdHIgPSBkYXRlX2NvbnN0clxuXG5sZXQgZGF0ZV9tcyA6IChpbnQgLT4gaW50IC0+IGludCAtPiBpbnQgLT4gaW50IC0+IGludCAtPiBpbnQgLT4gZGF0ZSB0KSBjb25zdHIgPVxuICBkYXRlX2NvbnN0clxuXG5jbGFzcyB0eXBlIG1hdGggPVxuICBvYmplY3RcbiAgICBtZXRob2QgX0UgOiBmbG9hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0xOMiA6IGZsb2F0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTE4xMCA6IGZsb2F0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTE9HMkUgOiBmbG9hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0xPRzEwRSA6IGZsb2F0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfUEkgOiBmbG9hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NRUlQxXzJfIDogZmxvYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TUVJUMiA6IGZsb2F0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBhYnMgOiBmbG9hdCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgYWNvcyA6IGZsb2F0IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBhc2luIDogZmxvYXQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIGF0YW4gOiBmbG9hdCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgYXRhbjIgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgY2VpbCA6IGZsb2F0IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBjb3MgOiBmbG9hdCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgZXhwIDogZmxvYXQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIGZsb29yIDogZmxvYXQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIGxvZyA6IGZsb2F0IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBtYXggOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgbWF4XzMgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgbWF4XzQgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgbWluIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIG1pbl8zIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIG1pbl80IDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIHBvdyA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCByYW5kb20gOiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2Qgcm91bmQgOiBmbG9hdCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2Qgc2luIDogZmxvYXQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIHNxcnQgOiBmbG9hdCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgdGFuIDogZmxvYXQgLT4gZmxvYXQgbWV0aFxuICBlbmRcblxubGV0IG1hdGggPSBVbnNhZmUuZ2xvYmFsIyMuX01hdGhcblxuY2xhc3MgdHlwZSBlcnJvciA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBuYW1lIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG1lc3NhZ2UgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgc3RhY2sgOiBqc19zdHJpbmcgdCBvcHRkZWYgcHJvcFxuXG4gICAgbWV0aG9kIHRvU3RyaW5nIDoganNfc3RyaW5nIHQgbWV0aFxuICBlbmRcblxubGV0IGVycm9yX2NvbnN0ciA9IFVuc2FmZS5nbG9iYWwjIy5fRXJyb3JcblxubW9kdWxlIEpzX2Vycm9yID0gc3RydWN0XG4gIHR5cGUgZXJyb3JfdCA9IGVycm9yIHRcblxuICBpbmNsdWRlIEpzb29fcnVudGltZS5FcnJvclxuXG4gIGV4dGVybmFsIG9mX2Vycm9yIDogZXJyb3JfdCAtPiB0ID0gXCIlaWRlbnRpdHlcIlxuXG4gIGV4dGVybmFsIHRvX2Vycm9yIDogdCAtPiBlcnJvcl90ID0gXCIlaWRlbnRpdHlcIlxuXG4gIGxldCBuYW1lIGUgPSB0b19zdHJpbmcgKHRvX2Vycm9yIGUpIyMubmFtZVxuXG4gIGxldCBtZXNzYWdlIGUgPSB0b19zdHJpbmcgKHRvX2Vycm9yIGUpIyMubWVzc2FnZVxuXG4gIGxldCBzdGFjayAoZSA6IHQpIDogc3RyaW5nIG9wdGlvbiA9XG4gICAgT3B0LnRvX29wdGlvbiAoT3B0Lm1hcCAodG9fZXJyb3IgZSkjIy5zdGFjayB0b19zdHJpbmcpXG5cbiAgbGV0IHRvX3N0cmluZyBlID0gdG9fc3RyaW5nICh0b19lcnJvciBlKSMjdG9TdHJpbmdcbmVuZFxuXG5tb2R1bGUgTWFnaWMgPSBzdHJ1Y3RcbiAgbW9kdWxlIHR5cGUgVCA9IHNpZ1xuICAgIGV4Y2VwdGlvbiBFcnJvciBvZiBlcnJvciB0XG4gIGVuZFxuXG4gIHR5cGUgKCdhLCAnYikgZXEgPSBFcSA6ICgnYSwgJ2EpIGVxXG5cbiAgbGV0IChlcSA6IChlcnJvciB0LCBKc19lcnJvci50KSBlcSkgPSBPYmoubWFnaWMgRXFcblxuICBsZXQgbSA9XG4gICAgbWF0Y2ggZXEgd2l0aFxuICAgIHwgRXEgLT5cbiAgICAgICAgKG1vZHVsZSBzdHJ1Y3RcbiAgICAgICAgICBleGNlcHRpb24gRXJyb3IgPSBKc19lcnJvci5FeG5cbiAgICAgICAgZW5kIDogVClcblxuICBtb2R1bGUgRXJyb3IgPSAodmFsIG0gOiBUKVxuZW5kXG5cbmluY2x1ZGUgTWFnaWMuRXJyb3JcblxubGV0IHJhaXNlX2pzX2Vycm9yIGUgPSBKc19lcnJvci5yYWlzZV8gKEpzX2Vycm9yLm9mX2Vycm9yIGUpXG5cbmxldCBzdHJpbmdfb2ZfZXJyb3IgZSA9IEpzX2Vycm9yLnRvX3N0cmluZyAoSnNfZXJyb3Iub2ZfZXJyb3IgZSlcblxubGV0IGV4bl93aXRoX2pzX2JhY2t0cmFjZSA9IEpzX2Vycm9yLmF0dGFjaF9qc19iYWNrdHJhY2VcblxuZXh0ZXJuYWwganNfZXJyb3Jfb2ZfZXhuIDogZXhuIC0+IGVycm9yIHQgb3B0ID0gXCJjYW1sX2pzX2Vycm9yX29mX2V4Y2VwdGlvblwiXG5cbmNsYXNzIHR5cGUganNvbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBwYXJzZSA6IGpzX3N0cmluZyB0IC0+ICdhIG1ldGhcblxuICAgIG1ldGhvZCBzdHJpbmdpZnkgOiAnYSAtPiBqc19zdHJpbmcgdCBtZXRoXG4gIGVuZFxuXG5sZXQgX0pTT04gOiBqc29uIHQgPSBVbnNhZmUuZ2xvYmFsIyMuX0pTT05cblxubGV0IGRlY29kZVVSSSAocyA6IGpzX3N0cmluZyB0KSA6IGpzX3N0cmluZyB0ID1cbiAgVW5zYWZlLmZ1bl9jYWxsIFVuc2FmZS5nbG9iYWwjIy5kZWNvZGVVUkkgW3wgVW5zYWZlLmluamVjdCBzIHxdXG5cbmxldCBkZWNvZGVVUklDb21wb25lbnQgKHMgOiBqc19zdHJpbmcgdCkgOiBqc19zdHJpbmcgdCA9XG4gIFVuc2FmZS5mdW5fY2FsbCBVbnNhZmUuZ2xvYmFsIyMuZGVjb2RlVVJJQ29tcG9uZW50IFt8IFVuc2FmZS5pbmplY3QgcyB8XVxuXG5sZXQgZW5jb2RlVVJJIChzIDoganNfc3RyaW5nIHQpIDoganNfc3RyaW5nIHQgPVxuICBVbnNhZmUuZnVuX2NhbGwgVW5zYWZlLmdsb2JhbCMjLmVuY29kZVVSSSBbfCBVbnNhZmUuaW5qZWN0IHMgfF1cblxubGV0IGVuY29kZVVSSUNvbXBvbmVudCAocyA6IGpzX3N0cmluZyB0KSA6IGpzX3N0cmluZyB0ID1cbiAgVW5zYWZlLmZ1bl9jYWxsIFVuc2FmZS5nbG9iYWwjIy5lbmNvZGVVUklDb21wb25lbnQgW3wgVW5zYWZlLmluamVjdCBzIHxdXG5cbmxldCBlc2NhcGUgKHMgOiBqc19zdHJpbmcgdCkgOiBqc19zdHJpbmcgdCA9XG4gIFVuc2FmZS5mdW5fY2FsbCBVbnNhZmUuZ2xvYmFsIyMuZXNjYXBlIFt8IFVuc2FmZS5pbmplY3QgcyB8XVxuXG5sZXQgdW5lc2NhcGUgKHMgOiBqc19zdHJpbmcgdCkgOiBqc19zdHJpbmcgdCA9XG4gIFVuc2FmZS5mdW5fY2FsbCBVbnNhZmUuZ2xvYmFsIyMudW5lc2NhcGUgW3wgVW5zYWZlLmluamVjdCBzIHxdXG5cbmV4dGVybmFsIGJvb2wgOiBib29sIC0+IGJvb2wgdCA9IFwiY2FtbF9qc19mcm9tX2Jvb2xcIlxuXG5leHRlcm5hbCB0b19ib29sIDogYm9vbCB0IC0+IGJvb2wgPSBcImNhbWxfanNfdG9fYm9vbFwiXG5cbmV4dGVybmFsIGFycmF5IDogJ2EgYXJyYXkgLT4gJ2EganNfYXJyYXkgdCA9IFwiY2FtbF9qc19mcm9tX2FycmF5XCJcblxuZXh0ZXJuYWwgdG9fYXJyYXkgOiAnYSBqc19hcnJheSB0IC0+ICdhIGFycmF5ID0gXCJjYW1sX2pzX3RvX2FycmF5XCJcblxuZXh0ZXJuYWwgYnl0ZXN0cmluZyA6IHN0cmluZyAtPiBqc19zdHJpbmcgdCA9IFwiY2FtbF9qc2J5dGVzX29mX3N0cmluZ1wiXG5cbmV4dGVybmFsIHRvX2J5dGVzdHJpbmcgOiBqc19zdHJpbmcgdCAtPiBzdHJpbmcgPSBcImNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcIlxuXG5leHRlcm5hbCB0eXBlb2YgOiBfIHQgLT4ganNfc3RyaW5nIHQgPSBcImNhbWxfanNfdHlwZW9mXCJcblxuZXh0ZXJuYWwgaW5zdGFuY2VvZiA6IF8gdCAtPiBfIGNvbnN0ciAtPiBib29sID0gXCJjYW1sX2pzX2luc3RhbmNlb2ZcIlxuXG5sZXQgaXNOYU4gKGkgOiAnYSkgOiBib29sID1cbiAgdG9fYm9vbCAoVW5zYWZlLmZ1bl9jYWxsIFVuc2FmZS5nbG9iYWwjIy5pc05hTiBbfCBVbnNhZmUuaW5qZWN0IGkgfF0pXG5cbmxldCBwYXJzZUludCAocyA6IGpzX3N0cmluZyB0KSA6IGludCA9XG4gIGxldCBzID0gVW5zYWZlLmZ1bl9jYWxsIFVuc2FmZS5nbG9iYWwjIy5wYXJzZUludCBbfCBVbnNhZmUuaW5qZWN0IHMgfF0gaW5cbiAgaWYgaXNOYU4gcyB0aGVuIGZhaWx3aXRoIFwicGFyc2VJbnRcIiBlbHNlIHNcblxubGV0IHBhcnNlRmxvYXQgKHMgOiBqc19zdHJpbmcgdCkgOiBmbG9hdCA9XG4gIGxldCBzID0gVW5zYWZlLmZ1bl9jYWxsIFVuc2FmZS5nbG9iYWwjIy5wYXJzZUZsb2F0IFt8IFVuc2FmZS5pbmplY3QgcyB8XSBpblxuICBpZiBpc05hTiBzIHRoZW4gZmFpbHdpdGggXCJwYXJzZUZsb2F0XCIgZWxzZSBzXG5cbmxldCBfID1cbiAgUHJpbnRleGMucmVnaXN0ZXJfcHJpbnRlciAoZnVuY3Rpb25cbiAgICAgIHwgSnNfZXJyb3IuRXhuIGUgLT4gU29tZSAoSnNfZXJyb3IudG9fc3RyaW5nIGUpXG4gICAgICB8IF8gLT4gTm9uZSlcblxubGV0IF8gPVxuICBQcmludGV4Yy5yZWdpc3Rlcl9wcmludGVyIChmdW4gZSAtPlxuICAgICAgbGV0IGUgOiA8IC4uID4gdCA9IE9iai5tYWdpYyBlIGluXG4gICAgICBpZiBpbnN0YW5jZW9mIGUgYXJyYXlfY29uc3RydWN0b3IgdGhlbiBOb25lIGVsc2UgU29tZSAodG9fc3RyaW5nIGUjI3RvU3RyaW5nKSlcblxubGV0IGV4cG9ydF9qcyAoZmllbGQgOiBqc19zdHJpbmcgdCkgeCA9XG4gIFVuc2FmZS5zZXRcbiAgICAoVW5zYWZlLnB1cmVfanNfZXhwciBcImpzb29fZXhwb3J0c1wiKVxuICAgIGZpZWxkXG4gICAgKGlmIFN0cmluZy5lcXVhbCAoSnMudG9fc3RyaW5nICh0eXBlb2YgKE9iai5tYWdpYyB4KSkpIFwiZnVuY3Rpb25cIlxuICAgICAgICAoKiBmdW5jdGlvbiB3aXRoIGFyaXR5L2xlbmd0aCBlcXVhbCB0byB6ZXJvIGFyZSBhbHJlYWR5IHdyYXBwZWQgKilcbiAgICAgICAgJiYgVW5zYWZlLmdldCAoT2JqLm1hZ2ljIHgpIChKcy5zdHJpbmcgXCJsZW5ndGhcIikgPiAwXG4gICAgIHRoZW4gT2JqLm1hZ2ljICh3cmFwX2NhbGxiYWNrIChPYmoubWFnaWMgeCkpXG4gICAgIGVsc2UgeClcblxubGV0IGV4cG9ydCBmaWVsZCB4ID0gZXhwb3J0X2pzIChzdHJpbmcgZmllbGQpIHhcblxubGV0IGV4cG9ydF9hbGwgb2JqID1cbiAgbGV0IGtleXMgPSBvYmplY3Rfa2V5cyBvYmogaW5cbiAga2V5cyMjZm9yRWFjaFxuICAgICh3cmFwX2NhbGxiYWNrIChmdW4gKGtleSA6IGpzX3N0cmluZyB0KSBfIF8gLT4gZXhwb3J0X2pzIGtleSAoVW5zYWZlLmdldCBvYmoga2V5KSkpXG5cbigqKioqKVxuXG4oKiBERVBSRUNBVEVEICopXG5cbnR5cGUgZmxvYXRfcHJvcCA9IGZsb2F0IHByb3BcblxuZXh0ZXJuYWwgZmxvYXQgOiBmbG9hdCAtPiBmbG9hdCA9IFwiJWlkZW50aXR5XCJcblxuZXh0ZXJuYWwgdG9fZmxvYXQgOiBmbG9hdCAtPiBmbG9hdCA9IFwiJWlkZW50aXR5XCJcbiIsIigqIEpzX29mX29jYW1sIGxpYnJhcnlcbiAqIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTAgSsOpcsO0bWUgVm91aWxsb25cbiAqIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4gKiBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cbiAqKVxuXG5vcGVuIEpzXG5vcGVuISBJbXBvcnRcblxuY2xhc3MgdHlwZSBbJ25vZGVdIG5vZGVMaXN0ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGl0ZW0gOiBpbnQgLT4gJ25vZGUgdCBvcHQgbWV0aFxuXG4gICAgbWV0aG9kIGxlbmd0aCA6IGludCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgbGlzdF9vZl9ub2RlTGlzdCAobm9kZUxpc3QgOiAnYSBub2RlTGlzdCB0KSA9XG4gIGxldCBsZW5ndGggPSBub2RlTGlzdCMjLmxlbmd0aCBpblxuICBsZXQgcmVjIGFkZF9pdGVtIGFjYyBpID1cbiAgICBpZiBpIDwgbGVuZ3RoXG4gICAgdGhlblxuICAgICAgbWF0Y2ggT3B0LnRvX29wdGlvbiAobm9kZUxpc3QjI2l0ZW0gaSkgd2l0aFxuICAgICAgfCBOb25lIC0+IGFkZF9pdGVtIGFjYyAoaSArIDEpXG4gICAgICB8IFNvbWUgZSAtPiBhZGRfaXRlbSAoZSA6OiBhY2MpIChpICsgMSlcbiAgICBlbHNlIExpc3QucmV2IGFjY1xuICBpblxuICBhZGRfaXRlbSBbXSAwXG5cbnR5cGUgbm9kZVR5cGUgPVxuICB8IE9USEVSXG4gICgqIFdpbGwgbm90IGhhcHBlbiAqKVxuICB8IEVMRU1FTlRcbiAgfCBBVFRSSUJVVEVcbiAgfCBURVhUXG4gIHwgQ0RBVEFfU0VDVElPTlxuICB8IEVOVElUWV9SRUZFUkVOQ0VcbiAgfCBFTlRJVFlcbiAgfCBQUk9DRVNTSU5HX0lOU1RSVUNUSU9OXG4gIHwgQ09NTUVOVFxuICB8IERPQ1VNRU5UXG4gIHwgRE9DVU1FTlRfVFlQRVxuICB8IERPQ1VNRU5UX0ZSQUdNRU5UXG4gIHwgTk9UQVRJT05cblxubW9kdWxlIERvY3VtZW50UG9zaXRpb24gPSBzdHJ1Y3RcbiAgdHlwZSB0ID0gaW50XG5cbiAgdHlwZSBtYXNrID0gaW50XG5cbiAgbGV0IGRpc2Nvbm5lY3RlZCA9IDB4MDFcblxuICBsZXQgcHJlY2VkaW5nID0gMHgwMlxuXG4gIGxldCBmb2xsb3dpbmcgPSAweDA0XG5cbiAgbGV0IGNvbnRhaW5zID0gMHgwOFxuXG4gIGxldCBjb250YWluZWRfYnkgPSAweDEwXG5cbiAgbGV0IGltcGxlbWVudGF0aW9uX3NwZWNpZmljID0gMHgyMFxuXG4gIGxldCBoYXMgdCBtYXNrID0gdCBsYW5kIG1hc2sgPSBtYXNrXG5cbiAgbGV0IGFkZCB4IHkgPSB4IGxvciB5XG5cbiAgbGV0ICggKyApID0gYWRkXG5lbmRcblxuY2xhc3MgdHlwZSBub2RlID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIG5vZGVOYW1lIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG5vZGVWYWx1ZSA6IGpzX3N0cmluZyB0IG9wdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgbm9kZVR5cGUgOiBub2RlVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcGFyZW50Tm9kZSA6IG5vZGUgdCBvcHQgcHJvcFxuXG4gICAgbWV0aG9kIGNoaWxkTm9kZXMgOiBub2RlIG5vZGVMaXN0IHQgcHJvcFxuXG4gICAgbWV0aG9kIGZpcnN0Q2hpbGQgOiBub2RlIHQgb3B0IHByb3BcblxuICAgIG1ldGhvZCBsYXN0Q2hpbGQgOiBub2RlIHQgb3B0IHByb3BcblxuICAgIG1ldGhvZCBwcmV2aW91c1NpYmxpbmcgOiBub2RlIHQgb3B0IHByb3BcblxuICAgIG1ldGhvZCBuZXh0U2libGluZyA6IG5vZGUgdCBvcHQgcHJvcFxuXG4gICAgbWV0aG9kIG5hbWVzcGFjZVVSSSA6IGpzX3N0cmluZyB0IG9wdCBwcm9wXG5cbiAgICBtZXRob2QgaW5zZXJ0QmVmb3JlIDogbm9kZSB0IC0+IG5vZGUgdCBvcHQgLT4gbm9kZSB0IG1ldGhcblxuICAgIG1ldGhvZCByZXBsYWNlQ2hpbGQgOiBub2RlIHQgLT4gbm9kZSB0IC0+IG5vZGUgdCBtZXRoXG5cbiAgICBtZXRob2QgcmVtb3ZlQ2hpbGQgOiBub2RlIHQgLT4gbm9kZSB0IG1ldGhcblxuICAgIG1ldGhvZCBhcHBlbmRDaGlsZCA6IG5vZGUgdCAtPiBub2RlIHQgbWV0aFxuXG4gICAgbWV0aG9kIGhhc0NoaWxkTm9kZXMgOiBib29sIHQgbWV0aFxuXG4gICAgbWV0aG9kIGNsb25lTm9kZSA6IGJvb2wgdCAtPiBub2RlIHQgbWV0aFxuXG4gICAgbWV0aG9kIGNvbXBhcmVEb2N1bWVudFBvc2l0aW9uIDogbm9kZSB0IC0+IERvY3VtZW50UG9zaXRpb24udCBtZXRoXG5cbiAgICBtZXRob2QgbG9va3VwTmFtZXNwYWNlVVJJIDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgb3B0IG1ldGhcblxuICAgIG1ldGhvZCBsb29rdXBQcmVmaXggOiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCBvcHQgbWV0aFxuICBlbmRcblxubGV0IGFwcGVuZENoaWxkIChwIDogI25vZGUgdCkgKG4gOiAjbm9kZSB0KSA9IGlnbm9yZSAocCMjYXBwZW5kQ2hpbGQgKG4gOj4gbm9kZSB0KSlcblxubGV0IHJlbW92ZUNoaWxkIChwIDogI25vZGUgdCkgKG4gOiAjbm9kZSB0KSA9IGlnbm9yZSAocCMjcmVtb3ZlQ2hpbGQgKG4gOj4gbm9kZSB0KSlcblxubGV0IHJlcGxhY2VDaGlsZCAocCA6ICNub2RlIHQpIChuIDogI25vZGUgdCkgKG8gOiAjbm9kZSB0KSA9XG4gIGlnbm9yZSAocCMjcmVwbGFjZUNoaWxkIChuIDo+IG5vZGUgdCkgKG8gOj4gbm9kZSB0KSlcblxubGV0IGluc2VydEJlZm9yZSAocCA6ICNub2RlIHQpIChuIDogI25vZGUgdCkgKG8gOiAjbm9kZSB0IG9wdCkgPVxuICBpZ25vcmUgKHAjI2luc2VydEJlZm9yZSAobiA6PiBub2RlIHQpIChvIDo+IG5vZGUgdCBvcHQpKVxuXG4oKiogU3BlY2lmaWNhdGlvbiBvZiBbQXR0cl0gb2JqZWN0cy4gKilcbmNsYXNzIHR5cGUgYXR0ciA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgbm9kZVxuXG4gICAgbWV0aG9kIG5hbWUgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc3BlY2lmaWVkIDogYm9vbCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB2YWx1ZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBvd25lckVsZW1lbnQgOiBlbGVtZW50IHQgcHJvcFxuICBlbmRcblxuKCoqIFNwZWNpZmljYXRpb24gb2YgW05hbWVkTm9kZU1hcF0gb2JqZWN0cy4gKilcbmFuZCBbJ25vZGVdIG5hbWVkTm9kZU1hcCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBnZXROYW1lZEl0ZW0gOiBqc19zdHJpbmcgdCAtPiAnbm9kZSB0IG9wdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0TmFtZWRJdGVtIDogJ25vZGUgdCAtPiAnbm9kZSB0IG9wdCBtZXRoXG5cbiAgICBtZXRob2QgcmVtb3ZlTmFtZWRJdGVtIDoganNfc3RyaW5nIHQgLT4gJ25vZGUgdCBvcHQgbWV0aFxuXG4gICAgbWV0aG9kIGl0ZW0gOiBpbnQgLT4gJ25vZGUgdCBvcHQgbWV0aFxuXG4gICAgbWV0aG9kIGxlbmd0aCA6IGludCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG4oKiogU3BlY2lmaWNhdGlvbiBvZiBbRWxlbWVudF0gb2JqZWN0cy4gKilcbmFuZCBlbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBub2RlXG5cbiAgICBtZXRob2QgdGFnTmFtZSA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBnZXRBdHRyaWJ1dGUgOiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCBvcHQgbWV0aFxuXG4gICAgbWV0aG9kIHNldEF0dHJpYnV0ZSA6IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHJlbW92ZUF0dHJpYnV0ZSA6IGpzX3N0cmluZyB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGhhc0F0dHJpYnV0ZSA6IGpzX3N0cmluZyB0IC0+IGJvb2wgdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0QXR0cmlidXRlTlMgOiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCBvcHQgbWV0aFxuXG4gICAgbWV0aG9kIHNldEF0dHJpYnV0ZU5TIDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgcmVtb3ZlQXR0cmlidXRlTlMgOiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBoYXNBdHRyaWJ1dGVOUyA6IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IC0+IGJvb2wgdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0QXR0cmlidXRlTm9kZSA6IGpzX3N0cmluZyB0IC0+IGF0dHIgdCBvcHQgbWV0aFxuXG4gICAgbWV0aG9kIHNldEF0dHJpYnV0ZU5vZGUgOiBhdHRyIHQgLT4gYXR0ciB0IG9wdCBtZXRoXG5cbiAgICBtZXRob2QgcmVtb3ZlQXR0cmlidXRlTm9kZSA6IGF0dHIgdCAtPiBhdHRyIHQgbWV0aFxuXG4gICAgbWV0aG9kIGdldEF0dHJpYnV0ZU5vZGVOUyA6IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IC0+IGF0dHIgdCBvcHQgbWV0aFxuXG4gICAgbWV0aG9kIHNldEF0dHJpYnV0ZU5vZGVOUyA6IGF0dHIgdCAtPiBhdHRyIHQgb3B0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRFbGVtZW50c0J5VGFnTmFtZSA6IGpzX3N0cmluZyB0IC0+IGVsZW1lbnQgbm9kZUxpc3QgdCBtZXRoXG5cbiAgICBtZXRob2QgYXR0cmlidXRlcyA6IGF0dHIgbmFtZWROb2RlTWFwIHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBjaGFyYWN0ZXJEYXRhID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBub2RlXG5cbiAgICBtZXRob2QgZGF0YSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBsZW5ndGggOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHN1YmpzX3N0cmluZ0RhdGEgOiBpbnQgLT4gaW50IC0+IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCBhcHBlbmREYXRhIDoganNfc3RyaW5nIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgaW5zZXJ0RGF0YSA6IGludCAtPiBqc19zdHJpbmcgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBkZWxldGVEYXRhIDogaW50IC0+IGludCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCByZXBsYWNlRGF0YSA6IGludCAtPiBpbnQgLT4ganNfc3RyaW5nIHQgLT4gdW5pdCBtZXRoXG4gIGVuZFxuXG5jbGFzcyB0eXBlIGNvbW1lbnQgPSBjaGFyYWN0ZXJEYXRhXG5cbmNsYXNzIHR5cGUgdGV4dCA9IGNoYXJhY3RlckRhdGFcblxuY2xhc3MgdHlwZSBkb2N1bWVudEZyYWdtZW50ID0gbm9kZVxuXG5jbGFzcyB0eXBlIFsnZWxlbWVudF0gZG9jdW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IG5vZGVcblxuICAgIG1ldGhvZCBkb2N1bWVudEVsZW1lbnQgOiAnZWxlbWVudCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjcmVhdGVEb2N1bWVudEZyYWdtZW50IDogZG9jdW1lbnRGcmFnbWVudCB0IG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVFbGVtZW50IDoganNfc3RyaW5nIHQgLT4gJ2VsZW1lbnQgdCBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlRWxlbWVudE5TIDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgLT4gJ2VsZW1lbnQgdCBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlVGV4dE5vZGUgOiBqc19zdHJpbmcgdCAtPiB0ZXh0IHQgbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZUF0dHJpYnV0ZSA6IGpzX3N0cmluZyB0IC0+IGF0dHIgdCBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlQ29tbWVudCA6IGpzX3N0cmluZyB0IC0+IGNvbW1lbnQgdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0RWxlbWVudEJ5SWQgOiBqc19zdHJpbmcgdCAtPiAnZWxlbWVudCB0IG9wdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0RWxlbWVudHNCeVRhZ05hbWUgOiBqc19zdHJpbmcgdCAtPiAnZWxlbWVudCBub2RlTGlzdCB0IG1ldGhcblxuICAgIG1ldGhvZCBpbXBvcnROb2RlIDogZWxlbWVudCB0IC0+IGJvb2wgdCAtPiAnZWxlbWVudCB0IG1ldGhcblxuICAgIG1ldGhvZCBhZG9wdE5vZGUgOiBlbGVtZW50IHQgLT4gJ2VsZW1lbnQgdCBtZXRoXG4gIGVuZFxuXG50eXBlIG5vZGVfdHlwZSA9XG4gIHwgRWxlbWVudCBvZiBlbGVtZW50IHRcbiAgfCBBdHRyIG9mIGF0dHIgdFxuICB8IFRleHQgb2YgdGV4dCB0XG4gIHwgT3RoZXIgb2Ygbm9kZSB0XG5cbmxldCBub2RlVHlwZSBlID1cbiAgbWF0Y2ggZSMjLm5vZGVUeXBlIHdpdGhcbiAgfCBFTEVNRU5UIC0+IEVsZW1lbnQgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgfCBBVFRSSUJVVEUgLT4gQXR0ciAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICB8IENEQVRBX1NFQ1RJT04gfCBURVhUIC0+IFRleHQgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgfCBfIC0+IE90aGVyIChlIDo+IG5vZGUgdClcblxubW9kdWxlIENvZXJjZVRvID0gc3RydWN0XG4gIGxldCBjYXN0IChlIDogI25vZGUgSnMudCkgdCA9XG4gICAgaWYgZSMjLm5vZGVUeXBlID09IHQgdGhlbiBKcy5zb21lIChKcy5VbnNhZmUuY29lcmNlIGUpIGVsc2UgSnMubnVsbFxuXG4gIGxldCBlbGVtZW50IGUgOiBlbGVtZW50IEpzLnQgSnMub3B0ID0gY2FzdCBlIEVMRU1FTlRcblxuICBsZXQgdGV4dCBlIDogdGV4dCBKcy50IEpzLm9wdCA9XG4gICAgaWYgZSMjLm5vZGVUeXBlID09IFRFWFQgfHwgZSMjLm5vZGVUeXBlID09IENEQVRBX1NFQ1RJT05cbiAgICB0aGVuIEpzLnNvbWUgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICBlbHNlIEpzLm51bGxcblxuICBsZXQgYXR0ciBlIDogYXR0ciBKcy50IEpzLm9wdCA9IGNhc3QgZSBBVFRSSUJVVEVcbmVuZFxuXG50eXBlICgnYSwgJ2IpIGV2ZW50X2xpc3RlbmVyID0gKCdhLCAnYiAtPiBib29sIHQpIG1ldGhfY2FsbGJhY2sgb3B0XG4oKiogVGhlIHR5cGUgb2YgZXZlbnQgbGlzdGVuZXIgZnVuY3Rpb25zLiAgVGhlIGZpcnN0IHR5cGUgcGFyYW1ldGVyXG4gICAgICBbJ2FdIGlzIHRoZSB0eXBlIG9mIHRoZSB0YXJnZXQgb2JqZWN0OyB0aGUgc2Vjb25kIHBhcmFtZXRlclxuICAgICAgWydiXSBpcyB0aGUgdHlwZSBvZiB0aGUgZXZlbnQgb2JqZWN0LiAqKVxuXG5jbGFzcyB0eXBlIFsnYV0gZXZlbnQgPVxuICBvYmplY3RcbiAgICBtZXRob2QgX3R5cGUgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgdGFyZ2V0IDogJ2EgdCBvcHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGN1cnJlbnRUYXJnZXQgOiAnYSB0IG9wdCByZWFkb25seV9wcm9wXG5cbiAgICAoKiBMZWdhY3kgbWV0aG9kcyAqKVxuICAgIG1ldGhvZCBzcmNFbGVtZW50IDogJ2EgdCBvcHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBbJ2EsICdiXSBjdXN0b21FdmVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgWydhXSBldmVudFxuXG4gICAgbWV0aG9kIGRldGFpbCA6ICdiIEpzLm9wdCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgbm9faGFuZGxlciA6ICgnYSwgJ2IpIGV2ZW50X2xpc3RlbmVyID0gSnMubnVsbFxuXG5sZXQgd2luZG93X2V2ZW50ICgpIDogJ2EgI2V2ZW50IHQgPSBKcy5VbnNhZmUucHVyZV9qc19leHByIFwiZXZlbnRcIlxuXG4oKiBUaGUgZnVuY3Rpb24gcHJldmVudERlZmF1bHQgbXVzdCBiZSBjYWxsZWQgZXhwbGljaXRseSB3aGVuXG4gICB1c2luZyBhZGRFdmVudExpc3RlbmVyLi4uICopXG5sZXQgaGFuZGxlciBmID1cbiAgSnMuc29tZVxuICAgIChKcy5VbnNhZmUuY2FsbGJhY2sgKGZ1biBlIC0+XG4gICAgICAgICAoKiBkZXBlbmRpbmcgb24gdGhlIGludGVybmV0IGV4cGxvcmVyIHZlcnNpb24sIGUgY2FuIGJlIG51bGwgb3IgdW5kZWZpbmVkLiAqKVxuICAgICAgICAgaWYgbm90IChKcy5PcHQudGVzdCAoc29tZSBlKSlcbiAgICAgICAgIHRoZW4gKFxuICAgICAgICAgICBsZXQgZSA9IHdpbmRvd19ldmVudCAoKSBpblxuICAgICAgICAgICBsZXQgcmVzID0gZiBlIGluXG4gICAgICAgICAgIGlmIG5vdCAoSnMudG9fYm9vbCByZXMpIHRoZW4gZSMjLnJldHVyblZhbHVlIDo9IHJlcztcbiAgICAgICAgICAgcmVzKVxuICAgICAgICAgZWxzZVxuICAgICAgICAgICBsZXQgcmVzID0gZiBlIGluXG4gICAgICAgICAgIGlmIG5vdCAoSnMudG9fYm9vbCByZXMpIHRoZW4gKEpzLlVuc2FmZS5jb2VyY2UgZSkjI3ByZXZlbnREZWZhdWx0O1xuICAgICAgICAgICByZXMpKVxuXG5sZXQgZnVsbF9oYW5kbGVyIGYgPVxuICBKcy5zb21lXG4gICAgKEpzLlVuc2FmZS5tZXRoX2NhbGxiYWNrIChmdW4gdGhpcyBlIC0+XG4gICAgICAgICAoKiBkZXBlbmRpbmcgb24gdGhlIGludGVybmV0IGV4cGxvcmVyIHZlcnNpb24sIGUgY2FuIGJlIG51bGwgb3IgdW5kZWZpbmVkICopXG4gICAgICAgICBpZiBub3QgKEpzLk9wdC50ZXN0IChzb21lIGUpKVxuICAgICAgICAgdGhlbiAoXG4gICAgICAgICAgIGxldCBlID0gd2luZG93X2V2ZW50ICgpIGluXG4gICAgICAgICAgIGxldCByZXMgPSBmIHRoaXMgZSBpblxuICAgICAgICAgICBpZiBub3QgKEpzLnRvX2Jvb2wgcmVzKSB0aGVuIGUjIy5yZXR1cm5WYWx1ZSA6PSByZXM7XG4gICAgICAgICAgIHJlcylcbiAgICAgICAgIGVsc2VcbiAgICAgICAgICAgbGV0IHJlcyA9IGYgdGhpcyBlIGluXG4gICAgICAgICAgIGlmIG5vdCAoSnMudG9fYm9vbCByZXMpIHRoZW4gKEpzLlVuc2FmZS5jb2VyY2UgZSkjI3ByZXZlbnREZWZhdWx0O1xuICAgICAgICAgICByZXMpKVxuXG5sZXQgaW52b2tlX2hhbmRsZXIgKGYgOiAoJ2EsICdiKSBldmVudF9saXN0ZW5lcikgKHRoaXMgOiAnYSkgKGV2ZW50IDogJ2IpIDogYm9vbCB0ID1cbiAgSnMuVW5zYWZlLmNhbGwgZiB0aGlzIFt8IEpzLlVuc2FmZS5pbmplY3QgZXZlbnQgfF1cblxubGV0IGV2ZW50VGFyZ2V0IChlIDogKDwgLi4gPiBhcyAnYSkgI2V2ZW50IHQpIDogJ2EgdCA9XG4gIGxldCB0YXJnZXQgPVxuICAgIE9wdC5nZXQgZSMjLnRhcmdldCAoZnVuICgpIC0+IE9wdC5nZXQgZSMjLnNyY0VsZW1lbnQgKGZ1biAoKSAtPiByYWlzZSBOb3RfZm91bmQpKVxuICBpblxuICBpZiBKcy5pbnN0YW5jZW9mIHRhcmdldCBKcy5VbnNhZmUuZ2xvYmFsIyMuX05vZGVcbiAgdGhlblxuICAgICgqIFdvcmthcm91bmQgZm9yIFNhZmFyaSBidWcgKilcbiAgICBsZXQgdGFyZ2V0JyA6IG5vZGUgSnMudCA9IEpzLlVuc2FmZS5jb2VyY2UgdGFyZ2V0IGluXG4gICAgaWYgdGFyZ2V0JyMjLm5vZGVUeXBlID09IFRFWFRcbiAgICB0aGVuIEpzLlVuc2FmZS5jb2VyY2UgKE9wdC5nZXQgdGFyZ2V0JyMjLnBhcmVudE5vZGUgKGZ1biAoKSAtPiBhc3NlcnQgZmFsc2UpKVxuICAgIGVsc2UgdGFyZ2V0XG4gIGVsc2UgdGFyZ2V0XG5cbm1vZHVsZSBFdmVudCA9IHN0cnVjdFxuICB0eXBlICdhIHR5cCA9IEpzLmpzX3N0cmluZyBKcy50XG5cbiAgbGV0IG1ha2UgcyA9IEpzLnN0cmluZyBzXG5lbmRcblxudHlwZSBldmVudF9saXN0ZW5lcl9pZCA9IHVuaXQgLT4gdW5pdFxuXG5jbGFzcyB0eXBlIGV2ZW50X2xpc3RlbmVyX29wdGlvbnMgPVxuICBvYmplY3RcbiAgICBtZXRob2QgY2FwdHVyZSA6IGJvb2wgdCB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9uY2UgOiBib29sIHQgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBwYXNzaXZlIDogYm9vbCB0IHdyaXRlb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgYWRkRXZlbnRMaXN0ZW5lcldpdGhPcHRpb25zIChlIDogKDwgLi4gPiBhcyAnYSkgdCkgdHlwID9jYXB0dXJlID9vbmNlID9wYXNzaXZlIGggPVxuICBpZiAoSnMuVW5zYWZlLmNvZXJjZSBlKSMjLmFkZEV2ZW50TGlzdGVuZXIgPT0gSnMudW5kZWZpbmVkXG4gIHRoZW5cbiAgICBsZXQgZXYgPSAoSnMuc3RyaW5nIFwib25cIikjI2NvbmNhdCB0eXAgaW5cbiAgICBsZXQgY2FsbGJhY2sgZSA9IEpzLlVuc2FmZS5jYWxsIChoLCBlLCBbfHxdKSBpblxuICAgIGxldCAoKSA9IChKcy5VbnNhZmUuY29lcmNlIGUpIyNhdHRhY2hFdmVudCBldiBjYWxsYmFjayBpblxuICAgIGZ1biAoKSAtPiAoSnMuVW5zYWZlLmNvZXJjZSBlKSMjZGV0YWNoRXZlbnQgZXYgY2FsbGJhY2tcbiAgZWxzZVxuICAgIGxldCBvcHRzIDogZXZlbnRfbGlzdGVuZXJfb3B0aW9ucyB0ID0gSnMuVW5zYWZlLm9iaiBbfHxdIGluXG4gICAgbGV0IGl0ZXIgdCBmID1cbiAgICAgIG1hdGNoIHQgd2l0aFxuICAgICAgfCBOb25lIC0+ICgpXG4gICAgICB8IFNvbWUgYiAtPiBmIGJcbiAgICBpblxuICAgIGl0ZXIgY2FwdHVyZSAoZnVuIGIgLT4gb3B0cyMjLmNhcHR1cmUgOj0gYik7XG4gICAgaXRlciBvbmNlIChmdW4gYiAtPiBvcHRzIyMub25jZSA6PSBiKTtcbiAgICBpdGVyIHBhc3NpdmUgKGZ1biBiIC0+IG9wdHMjIy5wYXNzaXZlIDo9IGIpO1xuICAgIGxldCAoKSA9IChKcy5VbnNhZmUuY29lcmNlIGUpIyNhZGRFdmVudExpc3RlbmVyIHR5cCBoIG9wdHMgaW5cbiAgICBmdW4gKCkgLT4gKEpzLlVuc2FmZS5jb2VyY2UgZSkjI3JlbW92ZUV2ZW50TGlzdGVuZXIgdHlwIGggb3B0c1xuXG5sZXQgYWRkRXZlbnRMaXN0ZW5lciAoZSA6ICg8IC4uID4gYXMgJ2EpIHQpIHR5cCBoIGNhcHQgPVxuICBhZGRFdmVudExpc3RlbmVyV2l0aE9wdGlvbnMgZSB0eXAgfmNhcHR1cmU6Y2FwdCBoXG5cbmxldCByZW1vdmVFdmVudExpc3RlbmVyIGlkID0gaWQgKClcblxubGV0IHByZXZlbnREZWZhdWx0IGV2ID1cbiAgaWYgSnMuT3B0ZGVmLnRlc3QgKEpzLlVuc2FmZS5jb2VyY2UgZXYpIyMucHJldmVudERlZmF1bHQgKCogSUUgaGFjayAqKVxuICB0aGVuIChKcy5VbnNhZmUuY29lcmNlIGV2KSMjcHJldmVudERlZmF1bHRcbiAgZWxzZSAoSnMuVW5zYWZlLmNvZXJjZSBldikjIy5yZXR1cm5WYWx1ZSA6PSBKcy5ib29sIGZhbHNlXG5cbmxldCBjcmVhdGVDdXN0b21FdmVudCA/YnViYmxlcyA/Y2FuY2VsYWJsZSA/ZGV0YWlsIHR5cCA9XG4gIGxldCBvcHRfaXRlciBmID0gZnVuY3Rpb25cbiAgICB8IE5vbmUgLT4gKClcbiAgICB8IFNvbWUgeCAtPiBmIHhcbiAgaW5cbiAgbGV0IG9wdHMgPSBVbnNhZmUub2JqIFt8fF0gaW5cbiAgb3B0X2l0ZXIgKGZ1biB4IC0+IG9wdHMjIy5idWJibGVzIDo9IGJvb2wgeCkgYnViYmxlcztcbiAgb3B0X2l0ZXIgKGZ1biB4IC0+IG9wdHMjIy5jYW5jZWxhYmxlIDo9IGJvb2wgeCkgY2FuY2VsYWJsZTtcbiAgb3B0X2l0ZXIgKGZ1biB4IC0+IG9wdHMjIy5kZXRhaWwgOj0gc29tZSB4KSBkZXRhaWw7XG4gIGxldCBjb25zdHIgOlxuICAgICAgKCAgICgnYSwgJ2IpICNjdXN0b21FdmVudCBKcy50IEV2ZW50LnR5cFxuICAgICAgIC0+IDwgZGV0YWlsIDogJ2Igb3B0IHByb3AgPiB0XG4gICAgICAgLT4gKCdhLCAnYikgY3VzdG9tRXZlbnQgdClcbiAgICAgIGNvbnN0ciA9XG4gICAgVW5zYWZlLmdsb2JhbCMjLl9DdXN0b21FdmVudFxuICBpblxuICBuZXclanMgY29uc3RyIHR5cCBvcHRzXG5cbigqIElFIDwgOSAqKVxuXG5jbGFzcyB0eXBlIHN0cmluZ0xpc3QgPVxuICBvYmplY3RcbiAgICBtZXRob2QgaXRlbSA6IGludCAtPiBqc19zdHJpbmcgdCBvcHQgbWV0aFxuXG4gICAgbWV0aG9kIGxlbmd0aCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY29udGFpbnMgOiBqc19zdHJpbmcgdCAtPiBib29sIHQgbWV0aFxuICBlbmRcbiIsIigqIEpzX29mX29jYW1sIGxpYnJhcnlcbiAqIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTIgSsOpcsO0bWUgVm91aWxsb25cbiAqIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4gKiBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cbiAqKVxub3BlbiEgSW1wb3J0XG5vcGVuIEpzXG5cbnR5cGUgdWludDMyID0gZmxvYXRcblxuY2xhc3MgdHlwZSBhcnJheUJ1ZmZlciA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBieXRlTGVuZ3RoIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzbGljZSA6IGludCAtPiBpbnQgLT4gYXJyYXlCdWZmZXIgdCBtZXRoXG5cbiAgICBtZXRob2Qgc2xpY2VfdG9FbmQgOiBpbnQgLT4gYXJyYXlCdWZmZXIgdCBtZXRoXG4gIGVuZFxuXG5sZXQgYXJyYXlCdWZmZXIgOiAoaW50IC0+IGFycmF5QnVmZmVyIHQpIGNvbnN0ciA9IEpzLlVuc2FmZS5nbG9iYWwjIy5fQXJyYXlCdWZmZXJcblxuY2xhc3MgdHlwZSBhcnJheUJ1ZmZlclZpZXcgPVxuICBvYmplY3RcbiAgICBtZXRob2QgYnVmZmVyIDogYXJyYXlCdWZmZXIgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYnl0ZU9mZnNldCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYnl0ZUxlbmd0aCA6IGludCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIFsnYSwgJ2JdIHR5cGVkQXJyYXkgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGFycmF5QnVmZmVyVmlld1xuXG4gICAgbWV0aG9kIF9CWVRFU19QRVJfRUxFTUVOVCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgbGVuZ3RoIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzZXRfZnJvbUFycmF5IDogJ2EganNfYXJyYXkgdCAtPiBpbnQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0X2Zyb21UeXBlZEFycmF5IDogKCdhLCAnYikgdHlwZWRBcnJheSB0IC0+IGludCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzdWJhcnJheSA6IGludCAtPiBpbnQgLT4gKCdhLCAnYikgdHlwZWRBcnJheSB0IG1ldGhcblxuICAgIG1ldGhvZCBzdWJhcnJheV90b0VuZCA6IGludCAtPiAoJ2EsICdiKSB0eXBlZEFycmF5IHQgbWV0aFxuXG4gICAgbWV0aG9kIHNsaWNlIDogaW50IC0+IGludCAtPiAoJ2EsICdiKSB0eXBlZEFycmF5IHQgbWV0aFxuXG4gICAgbWV0aG9kIHNsaWNlX3RvRW5kIDogaW50IC0+ICgnYSwgJ2IpIHR5cGVkQXJyYXkgdCBtZXRoXG5cbiAgICAoKiBUaGlzIGZha2UgbWV0aG9kIGlzIG5lZWRlZCBmb3IgdHlwaW5nIHB1cnBvc2VzLlxuICAgICAgIFdpdGhvdXQgaXQsIFsnYl0gd291bGQgbm90IGJlIGNvbnN0cmFpbmVkLiAqKVxuICAgIG1ldGhvZCBfY29udGVudF90eXBlXyA6ICdiIG9wdGRlZiByZWFkb25seV9wcm9wXG4gIGVuZFxuXG50eXBlIGludDhBcnJheSA9IChpbnQsIEJpZ2FycmF5LmludDhfc2lnbmVkX2VsdCkgdHlwZWRBcnJheVxuXG50eXBlIHVpbnQ4QXJyYXkgPSAoaW50LCBCaWdhcnJheS5pbnQ4X3Vuc2lnbmVkX2VsdCkgdHlwZWRBcnJheVxuXG50eXBlIGludDE2QXJyYXkgPSAoaW50LCBCaWdhcnJheS5pbnQxNl9zaWduZWRfZWx0KSB0eXBlZEFycmF5XG5cbnR5cGUgdWludDE2QXJyYXkgPSAoaW50LCBCaWdhcnJheS5pbnQxNl91bnNpZ25lZF9lbHQpIHR5cGVkQXJyYXlcblxudHlwZSBpbnQzMkFycmF5ID0gKGludDMyLCBCaWdhcnJheS5pbnQzMl9lbHQpIHR5cGVkQXJyYXlcblxudHlwZSB1aW50MzJBcnJheSA9IChpbnQzMiwgQmlnYXJyYXkuaW50MzJfZWx0KSB0eXBlZEFycmF5XG5cbnR5cGUgZmxvYXQzMkFycmF5ID0gKGZsb2F0LCBCaWdhcnJheS5mbG9hdDMyX2VsdCkgdHlwZWRBcnJheVxuXG50eXBlIGZsb2F0NjRBcnJheSA9IChmbG9hdCwgQmlnYXJyYXkuZmxvYXQ2NF9lbHQpIHR5cGVkQXJyYXlcblxuZXh0ZXJuYWwga2luZCA6ICgnYSwgJ2IpIHR5cGVkQXJyYXkgdCAtPiAoJ2EsICdiKSBCaWdhcnJheS5raW5kXG4gID0gXCJjYW1sX2JhX2tpbmRfb2ZfdHlwZWRfYXJyYXlcIlxuXG5leHRlcm5hbCBmcm9tX2dlbmFycmF5IDpcbiAgKCdhLCAnYiwgQmlnYXJyYXkuY19sYXlvdXQpIEJpZ2FycmF5LkdlbmFycmF5LnQgLT4gKCdhLCAnYikgdHlwZWRBcnJheSB0XG4gID0gXCJjYW1sX2JhX3RvX3R5cGVkX2FycmF5XCJcblxuZXh0ZXJuYWwgdG9fZ2VuYXJyYXkgOlxuICAoJ2EsICdiKSB0eXBlZEFycmF5IHQgLT4gKCdhLCAnYiwgQmlnYXJyYXkuY19sYXlvdXQpIEJpZ2FycmF5LkdlbmFycmF5LnRcbiAgPSBcImNhbWxfYmFfZnJvbV90eXBlZF9hcnJheVwiXG5cbmxldCBpbnQ4QXJyYXkgPSBKcy5VbnNhZmUuZ2xvYmFsIyMuX0ludDhBcnJheVxuXG5sZXQgaW50OEFycmF5X2Zyb21BcnJheSA9IGludDhBcnJheVxuXG5sZXQgaW50OEFycmF5X2Zyb21UeXBlZEFycmF5ID0gaW50OEFycmF5XG5cbmxldCBpbnQ4QXJyYXlfZnJvbUJ1ZmZlciA9IGludDhBcnJheVxuXG5sZXQgaW50OEFycmF5X2luQnVmZmVyID0gaW50OEFycmF5XG5cbmxldCB1aW50OEFycmF5ID0gSnMuVW5zYWZlLmdsb2JhbCMjLl9VaW50OEFycmF5XG5cbmxldCB1aW50OEFycmF5X2Zyb21BcnJheSA9IHVpbnQ4QXJyYXlcblxubGV0IHVpbnQ4QXJyYXlfZnJvbVR5cGVkQXJyYXkgPSB1aW50OEFycmF5XG5cbmxldCB1aW50OEFycmF5X2Zyb21CdWZmZXIgPSB1aW50OEFycmF5XG5cbmxldCB1aW50OEFycmF5X2luQnVmZmVyID0gdWludDhBcnJheVxuXG5sZXQgaW50MTZBcnJheSA9IEpzLlVuc2FmZS5nbG9iYWwjIy5fSW50MTZBcnJheVxuXG5sZXQgaW50MTZBcnJheV9mcm9tQXJyYXkgPSBpbnQxNkFycmF5XG5cbmxldCBpbnQxNkFycmF5X2Zyb21UeXBlZEFycmF5ID0gaW50MTZBcnJheVxuXG5sZXQgaW50MTZBcnJheV9mcm9tQnVmZmVyID0gaW50MTZBcnJheVxuXG5sZXQgaW50MTZBcnJheV9pbkJ1ZmZlciA9IGludDE2QXJyYXlcblxubGV0IHVpbnQxNkFycmF5ID0gSnMuVW5zYWZlLmdsb2JhbCMjLl9VaW50MTZBcnJheVxuXG5sZXQgdWludDE2QXJyYXlfZnJvbUFycmF5ID0gdWludDE2QXJyYXlcblxubGV0IHVpbnQxNkFycmF5X2Zyb21UeXBlZEFycmF5ID0gdWludDE2QXJyYXlcblxubGV0IHVpbnQxNkFycmF5X2Zyb21CdWZmZXIgPSB1aW50MTZBcnJheVxuXG5sZXQgdWludDE2QXJyYXlfaW5CdWZmZXIgPSB1aW50MTZBcnJheVxuXG5sZXQgaW50MzJBcnJheSA9IEpzLlVuc2FmZS5nbG9iYWwjIy5fSW50MzJBcnJheVxuXG5sZXQgaW50MzJBcnJheV9mcm9tQXJyYXkgPSBpbnQzMkFycmF5XG5cbmxldCBpbnQzMkFycmF5X2Zyb21UeXBlZEFycmF5ID0gaW50MzJBcnJheVxuXG5sZXQgaW50MzJBcnJheV9mcm9tQnVmZmVyID0gaW50MzJBcnJheVxuXG5sZXQgaW50MzJBcnJheV9pbkJ1ZmZlciA9IGludDMyQXJyYXlcblxubGV0IHVpbnQzMkFycmF5ID0gSnMuVW5zYWZlLmdsb2JhbCMjLl9VaW50MzJBcnJheVxuXG5sZXQgdWludDMyQXJyYXlfZnJvbUFycmF5ID0gdWludDMyQXJyYXlcblxubGV0IHVpbnQzMkFycmF5X2Zyb21UeXBlZEFycmF5ID0gdWludDMyQXJyYXlcblxubGV0IHVpbnQzMkFycmF5X2Zyb21CdWZmZXIgPSB1aW50MzJBcnJheVxuXG5sZXQgdWludDMyQXJyYXlfaW5CdWZmZXIgPSB1aW50MzJBcnJheVxuXG5sZXQgZmxvYXQzMkFycmF5ID0gSnMuVW5zYWZlLmdsb2JhbCMjLl9GbG9hdDMyQXJyYXlcblxubGV0IGZsb2F0MzJBcnJheV9mcm9tQXJyYXkgPSBmbG9hdDMyQXJyYXlcblxubGV0IGZsb2F0MzJBcnJheV9mcm9tVHlwZWRBcnJheSA9IGZsb2F0MzJBcnJheVxuXG5sZXQgZmxvYXQzMkFycmF5X2Zyb21CdWZmZXIgPSBmbG9hdDMyQXJyYXlcblxubGV0IGZsb2F0MzJBcnJheV9pbkJ1ZmZlciA9IGZsb2F0MzJBcnJheVxuXG5sZXQgZmxvYXQ2NEFycmF5ID0gSnMuVW5zYWZlLmdsb2JhbCMjLl9GbG9hdDY0QXJyYXlcblxubGV0IGZsb2F0NjRBcnJheV9mcm9tQXJyYXkgPSBmbG9hdDY0QXJyYXlcblxubGV0IGZsb2F0NjRBcnJheV9mcm9tVHlwZWRBcnJheSA9IGZsb2F0NjRBcnJheVxuXG5sZXQgZmxvYXQ2NEFycmF5X2Zyb21CdWZmZXIgPSBmbG9hdDY0QXJyYXlcblxubGV0IGZsb2F0NjRBcnJheV9pbkJ1ZmZlciA9IGZsb2F0NjRBcnJheVxuXG5sZXQgc2V0IDogKCdhLCAnYikgdHlwZWRBcnJheSB0IC0+IGludCAtPiAnYSAtPiB1bml0ID1cbiBmdW4gYSBpIHYgLT4gYXJyYXlfc2V0IChVbnNhZmUuY29lcmNlIGEpIGkgdlxuXG5sZXQgZ2V0IDogKCdhLCAnYikgdHlwZWRBcnJheSB0IC0+IGludCAtPiAnYSBvcHRkZWYgPSBmdW4gYSBpIC0+IEpzLlVuc2FmZS5nZXQgYSBpXG5cbmxldCB1bnNhZmVfZ2V0IDogKCdhLCAnYikgdHlwZWRBcnJheSB0IC0+IGludCAtPiAnYSA9IGZ1biBhIGkgLT4gSnMuVW5zYWZlLmdldCBhIGlcblxuY2xhc3MgdHlwZSBkYXRhVmlldyA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgYXJyYXlCdWZmZXJWaWV3XG5cbiAgICBtZXRob2QgZ2V0SW50OCA6IGludCAtPiBpbnQgbWV0aFxuXG4gICAgbWV0aG9kIGdldFVpbnQ4IDogaW50IC0+IGludCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0SW50MTYgOiBpbnQgLT4gaW50IG1ldGhcblxuICAgIG1ldGhvZCBnZXRJbnQxNl8gOiBpbnQgLT4gYm9vbCB0IC0+IGludCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0VWludDE2IDogaW50IC0+IGludCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0VWludDE2XyA6IGludCAtPiBib29sIHQgLT4gaW50IG1ldGhcblxuICAgIG1ldGhvZCBnZXRJbnQzMiA6IGludCAtPiBpbnQgbWV0aFxuXG4gICAgbWV0aG9kIGdldEludDMyXyA6IGludCAtPiBib29sIHQgLT4gaW50IG1ldGhcblxuICAgIG1ldGhvZCBnZXRVaW50MzIgOiBpbnQgLT4gdWludDMyIG1ldGhcblxuICAgIG1ldGhvZCBnZXRVaW50MzJfIDogaW50IC0+IGJvb2wgdCAtPiB1aW50MzIgbWV0aFxuXG4gICAgbWV0aG9kIGdldEZsb2F0MzIgOiBpbnQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIGdldEZsb2F0MzJfIDogaW50IC0+IGJvb2wgdCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0RmxvYXQ2NCA6IGludCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0RmxvYXQ2NF8gOiBpbnQgLT4gYm9vbCB0IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRJbnQ4IDogaW50IC0+IGludCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRVaW50OCA6IGludCAtPiBpbnQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0SW50MTYgOiBpbnQgLT4gaW50IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldEludDE2XyA6IGludCAtPiBpbnQgLT4gYm9vbCB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldFVpbnQxNiA6IGludCAtPiBpbnQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0VWludDE2XyA6IGludCAtPiBpbnQgLT4gYm9vbCB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldEludDMyIDogaW50IC0+IGludCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRJbnQzMl8gOiBpbnQgLT4gaW50IC0+IGJvb2wgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRVaW50MzIgOiBpbnQgLT4gdWludDMyIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldFVpbnQzMl8gOiBpbnQgLT4gdWludDMyIC0+IGJvb2wgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRGbG9hdDMyIDogaW50IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldEZsb2F0MzJfIDogaW50IC0+IGZsb2F0IC0+IGJvb2wgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRGbG9hdDY0IDogaW50IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldEZsb2F0NjRfIDogaW50IC0+IGZsb2F0IC0+IGJvb2wgdCAtPiB1bml0IG1ldGhcbiAgZW5kXG5cbmxldCBkYXRhVmlldyA9IEpzLlVuc2FmZS5nbG9iYWwjIy5fRGF0YVZpZXdcblxubGV0IGRhdGFWaWV3X2luQnVmZmVyID0gZGF0YVZpZXdcblxubW9kdWxlIEJpZ3N0cmluZyA9IHN0cnVjdFxuICB0eXBlIHQgPSAoY2hhciwgQmlnYXJyYXkuaW50OF91bnNpZ25lZF9lbHQsIEJpZ2FycmF5LmNfbGF5b3V0KSBCaWdhcnJheS5BcnJheTEudFxuXG4gIGV4dGVybmFsIHRvX2FycmF5QnVmZmVyIDogdCAtPiBhcnJheUJ1ZmZlciBKcy50ID0gXCJiaWdzdHJpbmdfdG9fYXJyYXlfYnVmZmVyXCJcblxuICBleHRlcm5hbCB0b191aW50OEFycmF5IDogdCAtPiB1aW50OEFycmF5IEpzLnQgPSBcImJpZ3N0cmluZ190b190eXBlZF9hcnJheVwiXG5cbiAgZXh0ZXJuYWwgb2ZfYXJyYXlCdWZmZXIgOiBhcnJheUJ1ZmZlciBKcy50IC0+IHQgPSBcImJpZ3N0cmluZ19vZl9hcnJheV9idWZmZXJcIlxuXG4gIGV4dGVybmFsIG9mX3VpbnQ4QXJyYXkgOiB1aW50OEFycmF5IEpzLnQgLT4gdCA9IFwiYmlnc3RyaW5nX29mX3R5cGVkX2FycmF5XCJcbmVuZFxuXG5tb2R1bGUgU3RyaW5nID0gc3RydWN0XG4gIGV4dGVybmFsIG9mX3VpbnQ4QXJyYXkgOiB1aW50OEFycmF5IEpzLnQgLT4gc3RyaW5nID0gXCJjYW1sX3N0cmluZ19vZl9hcnJheVwiXG5cbiAgbGV0IG9mX2FycmF5QnVmZmVyIGFiID1cbiAgICBsZXQgdWludDggPSBuZXclanMgdWludDhBcnJheV9mcm9tQnVmZmVyIGFiIGluXG4gICAgb2ZfdWludDhBcnJheSB1aW50OFxuZW5kXG4iLCIoKiBKc19vZl9vY2FtbCBsaWJyYXJ5XG4gKiBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuICogQ29weXJpZ2h0IChDKSAyMDExIFBpZXJyZSBDaGFtYmFydFxuICogTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbiAqIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4gKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuICopXG5cbm9wZW4gSnNcbm9wZW4gRG9tXG5vcGVuISBJbXBvcnRcblxuY2xhc3MgdHlwZSBibG9iID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHNpemUgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF90eXBlIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHNsaWNlIDogaW50IC0+IGludCAtPiBibG9iIHQgbWV0aFxuXG4gICAgbWV0aG9kIHNsaWNlX3dpdGhDb250ZW50VHlwZSA6IGludCAtPiBpbnQgLT4ganNfc3RyaW5nIHQgLT4gYmxvYiB0IG1ldGhcbiAgZW5kXG5cbmxldCBibG9iX2NvbnN0ciA9IFVuc2FmZS5nbG9iYWwjIy5fQmxvYlxuXG50eXBlICdhIG1ha2VfYmxvYiA9XG4gID9jb250ZW50VHlwZTpzdHJpbmcgLT4gP2VuZGluZ3M6WyBgVHJhbnNwYXJlbnQgfCBgTmF0aXZlIF0gLT4gJ2EgLT4gYmxvYiB0XG5cbmxldCByZWMgZmlsdGVyX21hcCBmID0gZnVuY3Rpb25cbiAgfCBbXSAtPiBbXVxuICB8IHYgOjogcSAtPiAoXG4gICAgICBtYXRjaCBmIHYgd2l0aFxuICAgICAgfCBOb25lIC0+IGZpbHRlcl9tYXAgZiBxXG4gICAgICB8IFNvbWUgdicgLT4gdicgOjogZmlsdGVyX21hcCBmIHEpXG5cbmxldCBtYWtlX2Jsb2Jfb3B0aW9ucyBjb250ZW50VHlwZSBlbmRpbmdzID1cbiAgbGV0IG9wdGlvbnMgPVxuICAgIGZpbHRlcl9tYXBcbiAgICAgIChmdW4gKG5hbWUsIHYpIC0+XG4gICAgICAgIG1hdGNoIHYgd2l0aFxuICAgICAgICB8IE5vbmUgLT4gTm9uZVxuICAgICAgICB8IFNvbWUgdiAtPiBTb21lIChuYW1lLCBVbnNhZmUuaW5qZWN0IChzdHJpbmcgdikpKVxuICAgICAgWyBcInR5cGVcIiwgY29udGVudFR5cGVcbiAgICAgIDsgKCBcImVuZGluZ3NcIlxuICAgICAgICAsIG1hdGNoIGVuZGluZ3Mgd2l0aFxuICAgICAgICAgIHwgTm9uZSAtPiBOb25lXG4gICAgICAgICAgfCBTb21lIGBUcmFuc3BhcmVudCAtPiBTb21lIFwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgIHwgU29tZSBgTmF0aXZlIC0+IFNvbWUgXCJuYXRpdmVcIiApXG4gICAgICBdXG4gIGluXG4gIG1hdGNoIG9wdGlvbnMgd2l0aFxuICB8IFtdIC0+IHVuZGVmaW5lZFxuICB8IGwgLT4gVW5zYWZlLm9iaiAoQXJyYXkub2ZfbGlzdCBsKVxuXG5sZXQgYmxvYl9yYXcgP2NvbnRlbnRUeXBlID9lbmRpbmdzIGEgPVxuICBsZXQgb3B0aW9ucyA9IG1ha2VfYmxvYl9vcHRpb25zIGNvbnRlbnRUeXBlIGVuZGluZ3MgaW5cbiAgbmV3JWpzIGJsb2JfY29uc3RyIChhcnJheSBhKSBvcHRpb25zXG5cbmxldCBibG9iX2Zyb21fc3RyaW5nID9jb250ZW50VHlwZSA/ZW5kaW5ncyBzID1cbiAgYmxvYl9yYXcgP2NvbnRlbnRUeXBlID9lbmRpbmdzIFt8IHN0cmluZyBzIHxdXG5cbmxldCBibG9iX2Zyb21fYW55ID9jb250ZW50VHlwZSA/ZW5kaW5ncyBsID1cbiAgbGV0IGwgPVxuICAgIExpc3QubWFwXG4gICAgICAoZnVuY3Rpb25cbiAgICAgICAgfCBgYXJyYXlCdWZmZXIgYSAtPiBVbnNhZmUuaW5qZWN0IGFcbiAgICAgICAgfCBgYXJyYXlCdWZmZXJWaWV3IGEgLT4gVW5zYWZlLmluamVjdCBhXG4gICAgICAgIHwgYHN0cmluZyBzIC0+IFVuc2FmZS5pbmplY3QgKHN0cmluZyBzKVxuICAgICAgICB8IGBqc19zdHJpbmcgcyAtPiBVbnNhZmUuaW5qZWN0IHNcbiAgICAgICAgfCBgYmxvYiBiIC0+IFVuc2FmZS5pbmplY3QgYilcbiAgICAgIGxcbiAgaW5cbiAgYmxvYl9yYXcgP2NvbnRlbnRUeXBlID9lbmRpbmdzIChBcnJheS5vZl9saXN0IGwpXG5cbmNsYXNzIHR5cGUgZmlsZSA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgYmxvYlxuXG4gICAgbWV0aG9kIG5hbWUgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgbGFzdE1vZGlmaWVkRGF0ZSA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbigqIGluIGZpcmVmb3ggMy4wLTMuNSBmaWxlLm5hbWUgaXMgbm90IGF2YWlsYWJsZSwgd2UgdXNlIHRoZSBub25zdGFuZGFyZCBmaWxlTmFtZSBpbnN0ZWFkICopXG5jbGFzcyB0eXBlIGZpbGVfbmFtZV9vbmx5ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIG5hbWUgOiBqc19zdHJpbmcgdCBvcHRkZWYgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGZpbGVOYW1lIDoganNfc3RyaW5nIHQgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCBmaWxlbmFtZSBmaWxlID1cbiAgbGV0IGZpbGUgOiBmaWxlX25hbWVfb25seSB0ID0gSnMuVW5zYWZlLmNvZXJjZSBmaWxlIGluXG4gIG1hdGNoIE9wdGRlZi50b19vcHRpb24gZmlsZSMjLm5hbWUgd2l0aFxuICB8IE5vbmUgLT4gKFxuICAgICAgbWF0Y2ggT3B0ZGVmLnRvX29wdGlvbiBmaWxlIyMuZmlsZU5hbWUgd2l0aFxuICAgICAgfCBOb25lIC0+IGZhaWx3aXRoIFwiY2FuJ3QgcmV0cmlldmUgZmlsZSBuYW1lOiBub3QgaW1wbGVtZW50ZWRcIlxuICAgICAgfCBTb21lIG5hbWUgLT4gbmFtZSlcbiAgfCBTb21lIG5hbWUgLT4gbmFtZVxuXG50eXBlIGZpbGVfYW55ID0gPCA+IHRcblxubGV0IGRvY19jb25zdHIgPSBVbnNhZmUuZ2xvYmFsIyMuX0RvY3VtZW50XG5cbm1vZHVsZSBDb2VyY2VUbyA9IHN0cnVjdFxuICBleHRlcm5hbCBqc29uIDogZmlsZV9hbnkgLT4gJ2EgT3B0LnQgPSBcIiVpZGVudGl0eVwiXG5cbiAgbGV0IGRvY3VtZW50IChlIDogZmlsZV9hbnkpID1cbiAgICBpZiBpbnN0YW5jZW9mIGUgZG9jX2NvbnN0clxuICAgIHRoZW4gSnMuc29tZSAoVW5zYWZlLmNvZXJjZSBlIDogZWxlbWVudCBkb2N1bWVudCB0KVxuICAgIGVsc2UgSnMubnVsbFxuXG4gIGxldCBibG9iIChlIDogZmlsZV9hbnkpID1cbiAgICBpZiBpbnN0YW5jZW9mIGUgYmxvYl9jb25zdHIgdGhlbiBKcy5zb21lIChVbnNhZmUuY29lcmNlIGUgOiAjYmxvYiB0KSBlbHNlIEpzLm51bGxcblxuICBsZXQgc3RyaW5nIChlIDogZmlsZV9hbnkpID1cbiAgICBpZiB0eXBlb2YgZSA9PSBzdHJpbmcgXCJzdHJpbmdcIlxuICAgIHRoZW4gSnMuc29tZSAoVW5zYWZlLmNvZXJjZSBlIDoganNfc3RyaW5nIHQpXG4gICAgZWxzZSBKcy5udWxsXG5cbiAgbGV0IGFycmF5QnVmZmVyIChlIDogZmlsZV9hbnkpID1cbiAgICBpZiBpbnN0YW5jZW9mIGUgVHlwZWRfYXJyYXkuYXJyYXlCdWZmZXJcbiAgICB0aGVuIEpzLnNvbWUgKFVuc2FmZS5jb2VyY2UgZSA6IFR5cGVkX2FycmF5LmFycmF5QnVmZmVyIHQpXG4gICAgZWxzZSBKcy5udWxsXG5lbmRcblxuY2xhc3MgdHlwZSBmaWxlTGlzdCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgW2ZpbGVdIERvbS5ub2RlTGlzdFxuICBlbmRcblxuY2xhc3MgdHlwZSBmaWxlRXJyb3IgPVxuICBvYmplY3RcbiAgICBtZXRob2QgY29kZSA6IGludCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIFsnYV0gcHJvZ3Jlc3NFdmVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgWydhXSBldmVudFxuXG4gICAgbWV0aG9kIGxlbmd0aENvbXB1dGFibGUgOiBib29sIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGxvYWRlZCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgdG90YWwgOiBpbnQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBwcm9ncmVzc0V2ZW50VGFyZ2V0ID1cbiAgb2JqZWN0ICgnc2VsZilcbiAgICBtZXRob2Qgb25sb2Fkc3RhcnQgOiAoJ3NlbGYgdCwgJ3NlbGYgcHJvZ3Jlc3NFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9ucHJvZ3Jlc3MgOiAoJ3NlbGYgdCwgJ3NlbGYgcHJvZ3Jlc3NFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9ubG9hZCA6ICgnc2VsZiB0LCAnc2VsZiBwcm9ncmVzc0V2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25hYm9ydCA6ICgnc2VsZiB0LCAnc2VsZiBwcm9ncmVzc0V2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25lcnJvciA6ICgnc2VsZiB0LCAnc2VsZiBwcm9ncmVzc0V2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25sb2FkZW5kIDogKCdzZWxmIHQsICdzZWxmIHByb2dyZXNzRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcbiAgZW5kXG5cbnR5cGUgcmVhZHlTdGF0ZSA9XG4gIHwgRU1QVFlcbiAgfCBMT0FESU5HXG4gIHwgRE9ORVxuXG5jbGFzcyB0eXBlIGZpbGVSZWFkZXIgPVxuICBvYmplY3QgKCdzZWxmKVxuICAgIG1ldGhvZCByZWFkQXNBcnJheUJ1ZmZlciA6ICNibG9iIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgcmVhZEFzQmluYXJ5U3RyaW5nIDogI2Jsb2IgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCByZWFkQXNUZXh0IDogI2Jsb2IgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCByZWFkQXNUZXh0X3dpdGhFbmNvZGluZyA6ICNibG9iIHQgLT4ganNfc3RyaW5nIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgcmVhZEFzRGF0YVVSTCA6ICNibG9iIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgYWJvcnQgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCByZWFkeVN0YXRlIDogcmVhZHlTdGF0ZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcmVzdWx0IDogZmlsZV9hbnkgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGVycm9yIDogZmlsZUVycm9yIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgaW5oZXJpdCBwcm9ncmVzc0V2ZW50VGFyZ2V0XG4gIGVuZFxuXG5tb2R1bGUgUmVhZGVyRXZlbnQgPSBzdHJ1Y3RcbiAgdHlwZSB0eXAgPSBmaWxlUmVhZGVyIHByb2dyZXNzRXZlbnQgdCBEb20uRXZlbnQudHlwXG5cbiAgbGV0IGxvYWRzdGFydCA9IEV2ZW50Lm1ha2UgXCJsb2Fkc3RhcnRcIlxuXG4gIGxldCBwcm9ncmVzcyA9IEV2ZW50Lm1ha2UgXCJwcm9ncmVzc1wiXG5cbiAgbGV0IGFib3J0ID0gRXZlbnQubWFrZSBcImFib3J0XCJcblxuICBsZXQgZXJyb3IgPSBFdmVudC5tYWtlIFwiZXJyb3JcIlxuXG4gIGxldCBsb2FkID0gRXZlbnQubWFrZSBcImxvYWRcIlxuXG4gIGxldCBsb2FkZW5kID0gRXZlbnQubWFrZSBcImxvYWRlbmRcIlxuZW5kXG5cbmxldCBmaWxlUmVhZGVyIDogZmlsZVJlYWRlciB0IGNvbnN0ciA9IEpzLlVuc2FmZS5nbG9iYWwjIy5fRmlsZVJlYWRlclxuXG5sZXQgYWRkRXZlbnRMaXN0ZW5lciA9IERvbS5hZGRFdmVudExpc3RlbmVyXG4iLCIoKiBKc19vZl9vY2FtbCBsaWJyYXJ5XG4gKiBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuICogQ29weXJpZ2h0IChDKSAyMDEwIErDqXLDtG1lIFZvdWlsbG9uXG4gKiBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3RcbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuICogZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG4gKilcblxub3BlbiBKc1xub3BlbiEgSW1wb3J0XG5cbmV4dGVybmFsIGNhbWxfanNfb25faWUgOiB1bml0IC0+IGJvb2wgdCA9IFwiY2FtbF9qc19vbl9pZVwiXG5cbmxldCBvbklFID0gSnMudG9fYm9vbCAoY2FtbF9qc19vbl9pZSAoKSlcblxuZXh0ZXJuYWwgaHRtbF9lc2NhcGUgOiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCA9IFwiY2FtbF9qc19odG1sX2VzY2FwZVwiXG5cbmV4dGVybmFsIGRlY29kZV9odG1sX2VudGl0aWVzIDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgPSBcImNhbWxfanNfaHRtbF9lbnRpdGllc1wiXG5cbmNsYXNzIHR5cGUgY3NzU3R5bGVEZWNsYXJhdGlvbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBzZXRQcm9wZXJ0eSA6XG4gICAgICBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCBvcHRkZWYgLT4ganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgbWV0aG9kIGdldFByb3BlcnR5VmFsdWUgOiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0UHJvcGVydHlQcmlvcml0eSA6IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCByZW1vdmVQcm9wZXJ0eSA6IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCBhbmltYXRpb24gOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYW5pbWF0aW9uRGVsYXkgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYW5pbWF0aW9uRGlyZWN0aW9uIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGFuaW1hdGlvbkR1cmF0aW9uIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGFuaW1hdGlvbkZpbGxNb2RlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGFuaW1hdGlvbk5hbWUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYW5pbWF0aW9uUGxheVN0YXRlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJhY2tncm91bmQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYmFja2dyb3VuZEF0dGFjaG1lbnQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYmFja2dyb3VuZENvbG9yIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJhY2tncm91bmRJbWFnZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBiYWNrZ3JvdW5kUG9zaXRpb24gOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYmFja2dyb3VuZFJlcGVhdCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBib3JkZXIgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYm9yZGVyQm90dG9tIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJvcmRlckJvdHRvbUNvbG9yIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJvcmRlckJvdHRvbVN0eWxlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJvcmRlckJvdHRvbVdpZHRoIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJvcmRlckNvbGxhcHNlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJvcmRlckNvbG9yIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJvcmRlckxlZnQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYm9yZGVyTGVmdENvbG9yIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJvcmRlckxlZnRTdHlsZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBib3JkZXJMZWZ0V2lkdGggOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYm9yZGVyUmFkaXVzIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJvcmRlclJpZ2h0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJvcmRlclJpZ2h0Q29sb3IgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYm9yZGVyUmlnaHRTdHlsZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBib3JkZXJSaWdodFdpZHRoIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJvcmRlclNwYWNpbmcgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYm9yZGVyU3R5bGUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYm9yZGVyVG9wIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJvcmRlclRvcENvbG9yIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJvcmRlclRvcFN0eWxlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJvcmRlclRvcFdpZHRoIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJvcmRlcldpZHRoIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJvdHRvbSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjYXB0aW9uU2lkZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjbGVhciA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjbGlwIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNvbG9yIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNvbnRlbnQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgY291bnRlckluY3JlbWVudCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjb3VudGVyUmVzZXQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgY3NzRmxvYXQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgY3NzVGV4dCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjdXJzb3IgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgZGlyZWN0aW9uIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGRpc3BsYXkgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgZW1wdHlDZWxscyA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBmaWxsIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGZvbnQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgZm9udEZhbWlseSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBmb250U2l6ZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBmb250U3R5bGUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgZm9udFZhcmlhbnQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgZm9udFdlaWdodCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBoZWlnaHQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbGVmdCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBsZXR0ZXJTcGFjaW5nIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGxpbmVIZWlnaHQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbGlzdFN0eWxlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGxpc3RTdHlsZUltYWdlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGxpc3RTdHlsZVBvc2l0aW9uIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGxpc3RTdHlsZVR5cGUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbWFyZ2luIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG1hcmdpbkJvdHRvbSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBtYXJnaW5MZWZ0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG1hcmdpblJpZ2h0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG1hcmdpblRvcCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBtYXhIZWlnaHQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbWF4V2lkdGggOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbWluSGVpZ2h0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG1pbldpZHRoIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG9wYWNpdHkgOiBqc19zdHJpbmcgdCBvcHRkZWYgcHJvcFxuXG4gICAgbWV0aG9kIG91dGxpbmUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgb3V0bGluZUNvbG9yIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG91dGxpbmVPZmZzZXQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgb3V0bGluZVN0eWxlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG91dGxpbmVXaWR0aCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBvdmVyZmxvdyA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBvdmVyZmxvd1ggOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgb3ZlcmZsb3dZIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHBhZGRpbmcgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgcGFkZGluZ0JvdHRvbSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBwYWRkaW5nTGVmdCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBwYWRkaW5nUmlnaHQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgcGFkZGluZ1RvcCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBwYWdlQnJlYWtBZnRlciA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBwYWdlQnJlYWtCZWZvcmUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgcG9pbnRlckV2ZW50cyA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBwb3NpdGlvbiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCByaWdodCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBzdHJva2UgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgc3Ryb2tlV2lkdGggOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgdGFibGVMYXlvdXQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgdGV4dEFsaWduIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHRleHRBbmNob3IgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgdGV4dERlY29yYXRpb24gOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgdGV4dEluZGVudCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB0ZXh0VHJhbnNmb3JtIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHRvcCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB0cmFuc2Zvcm0gOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgdmVydGljYWxBbGlnbiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB2aXNpYmlsaXR5IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHdoaXRlU3BhY2UgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgd2lkdGggOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgd29yZFNwYWNpbmcgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgekluZGV4IDoganNfc3RyaW5nIHQgcHJvcFxuICBlbmRcblxudHlwZSAoJ2EsICdiKSBldmVudF9saXN0ZW5lciA9ICgnYSwgJ2IpIERvbS5ldmVudF9saXN0ZW5lclxuXG50eXBlIG1vdXNlX2J1dHRvbiA9XG4gIHwgTm9fYnV0dG9uXG4gIHwgTGVmdF9idXR0b25cbiAgfCBNaWRkbGVfYnV0dG9uXG4gIHwgUmlnaHRfYnV0dG9uXG5cbnR5cGUgZGVsdGFfbW9kZSA9XG4gIHwgRGVsdGFfcGl4ZWxcbiAgfCBEZWx0YV9saW5lXG4gIHwgRGVsdGFfcGFnZVxuXG5jbGFzcyB0eXBlIGV2ZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBbZWxlbWVudF0gRG9tLmV2ZW50XG4gIGVuZFxuXG5hbmQgWydhXSBjdXN0b21FdmVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgW2VsZW1lbnQsICdhXSBEb20uY3VzdG9tRXZlbnRcbiAgZW5kXG5cbmFuZCBmb2N1c0V2ZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBldmVudFxuXG4gICAgbWV0aG9kIHJlbGF0ZWRUYXJnZXQgOiBlbGVtZW50IHQgb3B0IG9wdGRlZiByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5hbmQgbW91c2VFdmVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZXZlbnRcblxuICAgIG1ldGhvZCByZWxhdGVkVGFyZ2V0IDogZWxlbWVudCB0IG9wdCBvcHRkZWYgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGNsaWVudFggOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGNsaWVudFkgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHNjcmVlblggOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHNjcmVlblkgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9mZnNldFggOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9mZnNldFkgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGN0cmxLZXkgOiBib29sIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHNoaWZ0S2V5IDogYm9vbCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBhbHRLZXkgOiBib29sIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG1ldGFLZXkgOiBib29sIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGJ1dHRvbiA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgd2hpY2ggOiBtb3VzZV9idXR0b24gb3B0ZGVmIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBmcm9tRWxlbWVudCA6IGVsZW1lbnQgdCBvcHQgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB0b0VsZW1lbnQgOiBlbGVtZW50IHQgb3B0IG9wdGRlZiByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcGFnZVggOiBpbnQgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBwYWdlWSA6IGludCBvcHRkZWYgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuYW5kIGtleWJvYXJkRXZlbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGV2ZW50XG5cbiAgICBtZXRob2QgYWx0S2V5IDogYm9vbCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzaGlmdEtleSA6IGJvb2wgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY3RybEtleSA6IGJvb2wgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgbWV0YUtleSA6IGJvb2wgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgbG9jYXRpb24gOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGtleSA6IGpzX3N0cmluZyB0IG9wdGRlZiByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY29kZSA6IGpzX3N0cmluZyB0IG9wdGRlZiByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgd2hpY2ggOiBpbnQgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjaGFyQ29kZSA6IGludCBvcHRkZWYgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGtleUNvZGUgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGdldE1vZGlmaWVyU3RhdGUgOiBqc19zdHJpbmcgdCAtPiBib29sIHQgbWV0aFxuXG4gICAgbWV0aG9kIGtleUlkZW50aWZpZXIgOiBqc19zdHJpbmcgdCBvcHRkZWYgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuYW5kIG1vdXNld2hlZWxFdmVudCA9XG4gIG9iamVjdFxuICAgICgqIEFsbCBtb2Rlcm4gYnJvd3NlcnMgKilcbiAgICBpbmhlcml0IG1vdXNlRXZlbnRcblxuICAgIG1ldGhvZCB3aGVlbERlbHRhIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB3aGVlbERlbHRhWCA6IGludCBvcHRkZWYgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHdoZWVsRGVsdGFZIDogaW50IG9wdGRlZiByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZGVsdGFYIDogZmxvYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGRlbHRhWSA6IGZsb2F0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBkZWx0YVogOiBmbG9hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZGVsdGFNb2RlIDogZGVsdGFfbW9kZSByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5hbmQgbW91c2VTY3JvbGxFdmVudCA9XG4gIG9iamVjdFxuICAgICgqIEZpcmVmb3ggKilcbiAgICBpbmhlcml0IG1vdXNlRXZlbnRcblxuICAgIG1ldGhvZCBkZXRhaWwgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGF4aXMgOiBpbnQgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfSE9SSVpPTlRBTF9BWElTIDogaW50IG9wdGRlZiByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1ZFUlRJQ0FMX0FYSVMgOiBpbnQgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmFuZCB0b3VjaEV2ZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBldmVudFxuXG4gICAgbWV0aG9kIHRvdWNoZXMgOiB0b3VjaExpc3QgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgdGFyZ2V0VG91Y2hlcyA6IHRvdWNoTGlzdCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjaGFuZ2VkVG91Y2hlcyA6IHRvdWNoTGlzdCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjdHJsS2V5IDogYm9vbCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzaGlmdEtleSA6IGJvb2wgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYWx0S2V5IDogYm9vbCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBtZXRhS2V5IDogYm9vbCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCByZWxhdGVkVGFyZ2V0IDogZWxlbWVudCB0IG9wdCBvcHRkZWYgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuYW5kIHRvdWNoTGlzdCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBsZW5ndGggOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGl0ZW0gOiBpbnQgLT4gdG91Y2ggdCBvcHRkZWYgbWV0aFxuICBlbmRcblxuYW5kIHRvdWNoID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGlkZW50aWZpZXIgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHRhcmdldCA6IGVsZW1lbnQgdCBvcHRkZWYgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHNjcmVlblggOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHNjcmVlblkgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGNsaWVudFggOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGNsaWVudFkgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHBhZ2VYIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBwYWdlWSA6IGludCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5hbmQgc3VibWl0RXZlbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGV2ZW50XG5cbiAgICBtZXRob2Qgc3VibWl0dGVyIDogZWxlbWVudCB0IG9wdGRlZiByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5hbmQgZHJhZ0V2ZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBtb3VzZUV2ZW50XG5cbiAgICBtZXRob2QgZGF0YVRyYW5zZmVyIDogZGF0YVRyYW5zZmVyIHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuYW5kIGNsaXBib2FyZEV2ZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBldmVudFxuXG4gICAgbWV0aG9kIGNsaXBib2FyZERhdGEgOiBkYXRhVHJhbnNmZXIgdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5hbmQgZGF0YVRyYW5zZmVyID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGRyb3BFZmZlY3QgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgZWZmZWN0QWxsb3dlZCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBmaWxlcyA6IEZpbGUuZmlsZUxpc3QgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgdHlwZXMgOiBqc19zdHJpbmcgdCBqc19hcnJheSB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBhZGRFbGVtZW50IDogZWxlbWVudCB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNsZWFyRGF0YSA6IGpzX3N0cmluZyB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNsZWFyRGF0YV9hbGwgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBnZXREYXRhIDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgbWV0aG9kIHNldERhdGEgOiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZXREcmFnSW1hZ2UgOiBlbGVtZW50IHQgLT4gaW50IC0+IGludCAtPiB1bml0IG1ldGhcbiAgZW5kXG5cbmFuZCBldmVudFRhcmdldCA9XG4gIG9iamVjdCAoJ3NlbGYpXG4gICAgbWV0aG9kIG9uY2xpY2sgOiAoJ3NlbGYgdCwgbW91c2VFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9uZGJsY2xpY2sgOiAoJ3NlbGYgdCwgbW91c2VFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9ubW91c2Vkb3duIDogKCdzZWxmIHQsIG1vdXNlRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbm1vdXNldXAgOiAoJ3NlbGYgdCwgbW91c2VFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9ubW91c2VvdmVyIDogKCdzZWxmIHQsIG1vdXNlRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbm1vdXNlbW92ZSA6ICgnc2VsZiB0LCBtb3VzZUV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25tb3VzZW91dCA6ICgnc2VsZiB0LCBtb3VzZUV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25rZXlwcmVzcyA6ICgnc2VsZiB0LCBrZXlib2FyZEV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25rZXlkb3duIDogKCdzZWxmIHQsIGtleWJvYXJkRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbmtleXVwIDogKCdzZWxmIHQsIGtleWJvYXJkRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbnNjcm9sbCA6ICgnc2VsZiB0LCBldmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9ud2hlZWwgOiAoJ3NlbGYgdCwgbW91c2V3aGVlbEV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25kcmFnc3RhcnQgOiAoJ3NlbGYgdCwgZHJhZ0V2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25kcmFnZW5kIDogKCdzZWxmIHQsIGRyYWdFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9uZHJhZ2VudGVyIDogKCdzZWxmIHQsIGRyYWdFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9uZHJhZ292ZXIgOiAoJ3NlbGYgdCwgZHJhZ0V2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25kcmFnbGVhdmUgOiAoJ3NlbGYgdCwgZHJhZ0V2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25kcmFnIDogKCdzZWxmIHQsIGRyYWdFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9uZHJvcCA6ICgnc2VsZiB0LCBkcmFnRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbmFuaW1hdGlvbnN0YXJ0IDogKCdzZWxmIHQsIGFuaW1hdGlvbkV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25hbmltYXRpb25lbmQgOiAoJ3NlbGYgdCwgYW5pbWF0aW9uRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbmFuaW1hdGlvbml0ZXJhdGlvbiA6XG4gICAgICAoJ3NlbGYgdCwgYW5pbWF0aW9uRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbmFuaW1hdGlvbmNhbmNlbCA6ICgnc2VsZiB0LCBhbmltYXRpb25FdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9udHJhbnNpdGlvbnJ1biA6ICgnc2VsZiB0LCB0cmFuc2l0aW9uRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbnRyYW5zaXRpb25zdGFydCA6ICgnc2VsZiB0LCB0cmFuc2l0aW9uRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbnRyYW5zaXRpb25lbmQgOiAoJ3NlbGYgdCwgdHJhbnNpdGlvbkV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb250cmFuc2l0aW9uY2FuY2VsIDogKCdzZWxmIHQsIHRyYW5zaXRpb25FdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9uZ290cG9pbnRlcmNhcHR1cmUgOiAoJ3NlbGYgdCwgcG9pbnRlckV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25sb3N0cG9pbnRlcmNhcHR1cmUgOiAoJ3NlbGYgdCwgcG9pbnRlckV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25wb2ludGVyZW50ZXIgOiAoJ3NlbGYgdCwgcG9pbnRlckV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25wb2ludGVyY2FuY2VsIDogKCdzZWxmIHQsIHBvaW50ZXJFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9ucG9pbnRlcmRvd24gOiAoJ3NlbGYgdCwgcG9pbnRlckV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25wb2ludGVybGVhdmUgOiAoJ3NlbGYgdCwgcG9pbnRlckV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25wb2ludGVybW92ZSA6ICgnc2VsZiB0LCBwb2ludGVyRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbnBvaW50ZXJvdXQgOiAoJ3NlbGYgdCwgcG9pbnRlckV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25wb2ludGVyb3ZlciA6ICgnc2VsZiB0LCBwb2ludGVyRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbnBvaW50ZXJ1cCA6ICgnc2VsZiB0LCBwb2ludGVyRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBkaXNwYXRjaEV2ZW50IDogZXZlbnQgdCAtPiBib29sIHQgbWV0aFxuICBlbmRcblxuYW5kIHBvcFN0YXRlRXZlbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGV2ZW50XG5cbiAgICBtZXRob2Qgc3RhdGUgOiBKcy5VbnNhZmUuYW55IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmFuZCBwb2ludGVyRXZlbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IG1vdXNlRXZlbnRcblxuICAgIG1ldGhvZCBwb2ludGVySWQgOiBpbnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHdpZHRoIDogZmxvYXQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGhlaWdodCA6IGZsb2F0IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBwcmVzc3VyZSA6IGZsb2F0IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB0YW5nZW50aWFsUHJlc3N1cmUgOiBmbG9hdCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgdGlsdFggOiBpbnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHRpbHRZIDogaW50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB0d2lzdCA6IGludCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcG9pbnRlclR5cGUgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgaXNQcmltYXJ5IDogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmFuZCBzdG9yYWdlRXZlbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGV2ZW50XG5cbiAgICBtZXRob2Qga2V5IDoganNfc3RyaW5nIHQgb3B0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbGRWYWx1ZSA6IGpzX3N0cmluZyB0IG9wdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgbmV3VmFsdWUgOiBqc19zdHJpbmcgdCBvcHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHVybCA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzdG9yYWdlQXJlYSA6IHN0b3JhZ2UgdCBvcHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuYW5kIHN0b3JhZ2UgPVxuICBvYmplY3RcbiAgICBtZXRob2QgbGVuZ3RoIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBrZXkgOiBpbnQgLT4ganNfc3RyaW5nIHQgb3B0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRJdGVtIDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgb3B0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRJdGVtIDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgcmVtb3ZlSXRlbSA6IGpzX3N0cmluZyB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNsZWFyIDogdW5pdCBtZXRoXG4gIGVuZFxuXG5hbmQgaGFzaENoYW5nZUV2ZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBldmVudFxuXG4gICAgbWV0aG9kIG9sZFVSTCA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBuZXdVUkwgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5hbmQgYW5pbWF0aW9uRXZlbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGV2ZW50XG5cbiAgICBtZXRob2QgYW5pbWF0aW9uTmFtZSA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBlbGFwc2VkVGltZSA6IGZsb2F0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBwc2V1ZG9FbGVtZW50IDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuYW5kIHRyYW5zaXRpb25FdmVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZXZlbnRcblxuICAgIG1ldGhvZCBwcm9wZXJ0eU5hbWUgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZWxhcHNlZFRpbWUgOiBmbG9hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcHNldWRvRWxlbWVudCA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmFuZCBtZWRpYUV2ZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBldmVudFxuICBlbmRcblxuYW5kIG1lc3NhZ2VFdmVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZXZlbnRcblxuICAgIG1ldGhvZCBkYXRhIDogVW5zYWZlLmFueSBvcHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHNvdXJjZSA6IFVuc2FmZS5hbnkgb3B0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmFuZCBub2RlU2VsZWN0b3IgPVxuICBvYmplY3RcbiAgICBtZXRob2QgcXVlcnlTZWxlY3RvciA6IGpzX3N0cmluZyB0IC0+IGVsZW1lbnQgdCBvcHQgbWV0aFxuXG4gICAgbWV0aG9kIHF1ZXJ5U2VsZWN0b3JBbGwgOiBqc19zdHJpbmcgdCAtPiBlbGVtZW50IERvbS5ub2RlTGlzdCB0IG1ldGhcbiAgZW5kXG5cbmFuZCB0b2tlbkxpc3QgPVxuICBvYmplY3RcbiAgICBtZXRob2QgbGVuZ3RoIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBpdGVtIDogaW50IC0+IGpzX3N0cmluZyB0IG9wdGRlZiBtZXRoXG5cbiAgICBtZXRob2QgY29udGFpbnMgOiBqc19zdHJpbmcgdCAtPiBib29sIHQgbWV0aFxuXG4gICAgbWV0aG9kIGFkZCA6IGpzX3N0cmluZyB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHJlbW92ZSA6IGpzX3N0cmluZyB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHRvZ2dsZSA6IGpzX3N0cmluZyB0IC0+IGJvb2wgdCBtZXRoXG5cbiAgICBtZXRob2Qgc3RyaW5naWZpZXIgOiBqc19zdHJpbmcgdCBwcm9wXG4gIGVuZFxuXG5hbmQgZWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgRG9tLmVsZW1lbnRcblxuICAgIGluaGVyaXQgbm9kZVNlbGVjdG9yXG5cbiAgICBtZXRob2QgaWQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgdGl0bGUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbGFuZyA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBkaXIgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgY2xhc3NOYW1lIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNsYXNzTGlzdCA6IHRva2VuTGlzdCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjbG9zZXN0IDoganNfc3RyaW5nIHQgLT4gZWxlbWVudCB0IG9wdCBtZXRoXG5cbiAgICBtZXRob2Qgc3R5bGUgOiBjc3NTdHlsZURlY2xhcmF0aW9uIHQgcHJvcFxuXG4gICAgbWV0aG9kIGlubmVySFRNTCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBvdXRlckhUTUwgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgdGV4dENvbnRlbnQgOiBqc19zdHJpbmcgdCBvcHQgcHJvcFxuXG4gICAgbWV0aG9kIGlubmVyVGV4dCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjbGllbnRMZWZ0IDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjbGllbnRUb3AgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGNsaWVudFdpZHRoIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjbGllbnRIZWlnaHQgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9mZnNldExlZnQgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9mZnNldFRvcCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb2Zmc2V0UGFyZW50IDogZWxlbWVudCB0IG9wdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb2Zmc2V0V2lkdGggOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9mZnNldEhlaWdodCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc2Nyb2xsTGVmdCA6IGludCBwcm9wXG5cbiAgICBtZXRob2Qgc2Nyb2xsVG9wIDogaW50IHByb3BcblxuICAgIG1ldGhvZCBzY3JvbGxXaWR0aCA6IGludCBwcm9wXG5cbiAgICBtZXRob2Qgc2Nyb2xsSGVpZ2h0IDogaW50IHByb3BcblxuICAgIG1ldGhvZCBnZXRDbGllbnRSZWN0cyA6IGNsaWVudFJlY3RMaXN0IHQgbWV0aFxuXG4gICAgbWV0aG9kIGdldEJvdW5kaW5nQ2xpZW50UmVjdCA6IGNsaWVudFJlY3QgdCBtZXRoXG5cbiAgICBtZXRob2Qgc2Nyb2xsSW50b1ZpZXcgOiBib29sIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgY2xpY2sgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBmb2N1cyA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGJsdXIgOiB1bml0IG1ldGhcblxuICAgIGluaGVyaXQgZXZlbnRUYXJnZXRcbiAgZW5kXG5cbmFuZCBjbGllbnRSZWN0ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHRvcCA6IGZsb2F0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCByaWdodCA6IGZsb2F0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBib3R0b20gOiBmbG9hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgbGVmdCA6IGZsb2F0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB3aWR0aCA6IGZsb2F0IG9wdGRlZiByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgaGVpZ2h0IDogZmxvYXQgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmFuZCBjbGllbnRSZWN0TGlzdCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBsZW5ndGggOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGl0ZW0gOiBpbnQgLT4gY2xpZW50UmVjdCB0IG9wdCBtZXRoXG4gIGVuZFxuXG5sZXQgbm9faGFuZGxlciA6ICgnYSwgJ2IpIGV2ZW50X2xpc3RlbmVyID0gRG9tLm5vX2hhbmRsZXJcblxubGV0IGhhbmRsZXIgPSBEb20uaGFuZGxlclxuXG5sZXQgZnVsbF9oYW5kbGVyID0gRG9tLmZ1bGxfaGFuZGxlclxuXG5sZXQgaW52b2tlX2hhbmRsZXIgPSBEb20uaW52b2tlX2hhbmRsZXJcblxubW9kdWxlIEV2ZW50ID0gc3RydWN0XG4gIHR5cGUgJ2EgdHlwID0gJ2EgRG9tLkV2ZW50LnR5cFxuXG4gIGxldCBjbGljayA9IERvbS5FdmVudC5tYWtlIFwiY2xpY2tcIlxuXG4gIGxldCBjb3B5ID0gRG9tLkV2ZW50Lm1ha2UgXCJjb3B5XCJcblxuICBsZXQgY3V0ID0gRG9tLkV2ZW50Lm1ha2UgXCJjdXRcIlxuXG4gIGxldCBwYXN0ZSA9IERvbS5FdmVudC5tYWtlIFwicGFzdGVcIlxuXG4gIGxldCBkYmxjbGljayA9IERvbS5FdmVudC5tYWtlIFwiZGJsY2xpY2tcIlxuXG4gIGxldCBtb3VzZWRvd24gPSBEb20uRXZlbnQubWFrZSBcIm1vdXNlZG93blwiXG5cbiAgbGV0IG1vdXNldXAgPSBEb20uRXZlbnQubWFrZSBcIm1vdXNldXBcIlxuXG4gIGxldCBtb3VzZW92ZXIgPSBEb20uRXZlbnQubWFrZSBcIm1vdXNlb3ZlclwiXG5cbiAgbGV0IG1vdXNlbW92ZSA9IERvbS5FdmVudC5tYWtlIFwibW91c2Vtb3ZlXCJcblxuICBsZXQgbW91c2VvdXQgPSBEb20uRXZlbnQubWFrZSBcIm1vdXNlb3V0XCJcblxuICBsZXQga2V5cHJlc3MgPSBEb20uRXZlbnQubWFrZSBcImtleXByZXNzXCJcblxuICBsZXQga2V5ZG93biA9IERvbS5FdmVudC5tYWtlIFwia2V5ZG93blwiXG5cbiAgbGV0IGtleXVwID0gRG9tLkV2ZW50Lm1ha2UgXCJrZXl1cFwiXG5cbiAgbGV0IG1vdXNld2hlZWwgPSBEb20uRXZlbnQubWFrZSBcIm1vdXNld2hlZWxcIlxuXG4gIGxldCB3aGVlbCA9IERvbS5FdmVudC5tYWtlIFwid2hlZWxcIlxuXG4gIGxldCBfRE9NTW91c2VTY3JvbGwgPSBEb20uRXZlbnQubWFrZSBcIkRPTU1vdXNlU2Nyb2xsXCJcblxuICBsZXQgdG91Y2hzdGFydCA9IERvbS5FdmVudC5tYWtlIFwidG91Y2hzdGFydFwiXG5cbiAgbGV0IHRvdWNobW92ZSA9IERvbS5FdmVudC5tYWtlIFwidG91Y2htb3ZlXCJcblxuICBsZXQgdG91Y2hlbmQgPSBEb20uRXZlbnQubWFrZSBcInRvdWNoZW5kXCJcblxuICBsZXQgdG91Y2hjYW5jZWwgPSBEb20uRXZlbnQubWFrZSBcInRvdWNoY2FuY2VsXCJcblxuICBsZXQgZHJhZ3N0YXJ0ID0gRG9tLkV2ZW50Lm1ha2UgXCJkcmFnc3RhcnRcIlxuXG4gIGxldCBkcmFnZW5kID0gRG9tLkV2ZW50Lm1ha2UgXCJkcmFnZW5kXCJcblxuICBsZXQgZHJhZ2VudGVyID0gRG9tLkV2ZW50Lm1ha2UgXCJkcmFnZW50ZXJcIlxuXG4gIGxldCBkcmFnb3ZlciA9IERvbS5FdmVudC5tYWtlIFwiZHJhZ292ZXJcIlxuXG4gIGxldCBkcmFnbGVhdmUgPSBEb20uRXZlbnQubWFrZSBcImRyYWdsZWF2ZVwiXG5cbiAgbGV0IGRyYWcgPSBEb20uRXZlbnQubWFrZSBcImRyYWdcIlxuXG4gIGxldCBkcm9wID0gRG9tLkV2ZW50Lm1ha2UgXCJkcm9wXCJcblxuICBsZXQgaGFzaGNoYW5nZSA9IERvbS5FdmVudC5tYWtlIFwiaGFzaGNoYW5nZVwiXG5cbiAgbGV0IGNoYW5nZSA9IERvbS5FdmVudC5tYWtlIFwiY2hhbmdlXCJcblxuICBsZXQgaW5wdXQgPSBEb20uRXZlbnQubWFrZSBcImlucHV0XCJcblxuICBsZXQgdGltZXVwZGF0ZSA9IERvbS5FdmVudC5tYWtlIFwidGltZXVwZGF0ZVwiXG5cbiAgbGV0IHN1Ym1pdCA9IERvbS5FdmVudC5tYWtlIFwic3VibWl0XCJcblxuICBsZXQgc2Nyb2xsID0gRG9tLkV2ZW50Lm1ha2UgXCJzY3JvbGxcIlxuXG4gIGxldCBmb2N1cyA9IERvbS5FdmVudC5tYWtlIFwiZm9jdXNcIlxuXG4gIGxldCBibHVyID0gRG9tLkV2ZW50Lm1ha2UgXCJibHVyXCJcblxuICBsZXQgbG9hZCA9IERvbS5FdmVudC5tYWtlIFwibG9hZFwiXG5cbiAgbGV0IHVubG9hZCA9IERvbS5FdmVudC5tYWtlIFwidW5sb2FkXCJcblxuICBsZXQgYmVmb3JldW5sb2FkID0gRG9tLkV2ZW50Lm1ha2UgXCJiZWZvcmV1bmxvYWRcIlxuXG4gIGxldCByZXNpemUgPSBEb20uRXZlbnQubWFrZSBcInJlc2l6ZVwiXG5cbiAgbGV0IG9yaWVudGF0aW9uY2hhbmdlID0gRG9tLkV2ZW50Lm1ha2UgXCJvcmllbnRhdGlvbmNoYW5nZVwiXG5cbiAgbGV0IHBvcHN0YXRlID0gRG9tLkV2ZW50Lm1ha2UgXCJwb3BzdGF0ZVwiXG5cbiAgbGV0IGVycm9yID0gRG9tLkV2ZW50Lm1ha2UgXCJlcnJvclwiXG5cbiAgbGV0IGFib3J0ID0gRG9tLkV2ZW50Lm1ha2UgXCJhYm9ydFwiXG5cbiAgbGV0IHNlbGVjdCA9IERvbS5FdmVudC5tYWtlIFwic2VsZWN0XCJcblxuICBsZXQgb25saW5lID0gRG9tLkV2ZW50Lm1ha2UgXCJvbmxpbmVcIlxuXG4gIGxldCBvZmZsaW5lID0gRG9tLkV2ZW50Lm1ha2UgXCJvZmZsaW5lXCJcblxuICBsZXQgY2hlY2tpbmcgPSBEb20uRXZlbnQubWFrZSBcImNoZWNraW5nXCJcblxuICBsZXQgbm91cGRhdGUgPSBEb20uRXZlbnQubWFrZSBcIm5vdXBkYXRlXCJcblxuICBsZXQgZG93bmxvYWRpbmcgPSBEb20uRXZlbnQubWFrZSBcImRvd25sb2FkaW5nXCJcblxuICBsZXQgcHJvZ3Jlc3MgPSBEb20uRXZlbnQubWFrZSBcInByb2dyZXNzXCJcblxuICBsZXQgdXBkYXRlcmVhZHkgPSBEb20uRXZlbnQubWFrZSBcInVwZGF0ZXJlYWR5XCJcblxuICBsZXQgY2FjaGVkID0gRG9tLkV2ZW50Lm1ha2UgXCJjYWNoZWRcIlxuXG4gIGxldCBvYnNvbGV0ZSA9IERvbS5FdmVudC5tYWtlIFwib2Jzb2xldGVcIlxuXG4gIGxldCBkb21Db250ZW50TG9hZGVkID0gRG9tLkV2ZW50Lm1ha2UgXCJET01Db250ZW50TG9hZGVkXCJcblxuICBsZXQgYW5pbWF0aW9uc3RhcnQgPSBEb20uRXZlbnQubWFrZSBcImFuaW1hdGlvbnN0YXJ0XCJcblxuICBsZXQgYW5pbWF0aW9uZW5kID0gRG9tLkV2ZW50Lm1ha2UgXCJhbmltYXRpb25lbmRcIlxuXG4gIGxldCBhbmltYXRpb25pdGVyYXRpb24gPSBEb20uRXZlbnQubWFrZSBcImFuaW1hdGlvbml0ZXJhdGlvblwiXG5cbiAgbGV0IGFuaW1hdGlvbmNhbmNlbCA9IERvbS5FdmVudC5tYWtlIFwiYW5pbWF0aW9uY2FuY2VsXCJcblxuICBsZXQgdHJhbnNpdGlvbnJ1biA9IERvbS5FdmVudC5tYWtlIFwidHJhbnNpdGlvbnJ1blwiXG5cbiAgbGV0IHRyYW5zaXRpb25zdGFydCA9IERvbS5FdmVudC5tYWtlIFwidHJhbnNpdGlvbnN0YXJ0XCJcblxuICBsZXQgdHJhbnNpdGlvbmVuZCA9IERvbS5FdmVudC5tYWtlIFwidHJhbnNpdGlvbmVuZFwiXG5cbiAgbGV0IHRyYW5zaXRpb25jYW5jZWwgPSBEb20uRXZlbnQubWFrZSBcInRyYW5zaXRpb25jYW5jZWxcIlxuXG4gIGxldCBjYW5wbGF5ID0gRG9tLkV2ZW50Lm1ha2UgXCJjYW5wbGF5XCJcblxuICBsZXQgY2FucGxheXRocm91Z2ggPSBEb20uRXZlbnQubWFrZSBcImNhbnBsYXl0aHJvdWdoXCJcblxuICBsZXQgZHVyYXRpb25jaGFuZ2UgPSBEb20uRXZlbnQubWFrZSBcImR1cmF0aW9uY2hhbmdlXCJcblxuICBsZXQgZW1wdGllZCA9IERvbS5FdmVudC5tYWtlIFwiZW1wdGllZFwiXG5cbiAgbGV0IGVuZGVkID0gRG9tLkV2ZW50Lm1ha2UgXCJlbmRlZFwiXG5cbiAgbGV0IGdvdHBvaW50ZXJjYXB0dXJlID0gRG9tLkV2ZW50Lm1ha2UgXCJnb3Rwb2ludGVyY2FwdHVyZVwiXG5cbiAgbGV0IGxvYWRlZGRhdGEgPSBEb20uRXZlbnQubWFrZSBcImxvYWRlZGRhdGFcIlxuXG4gIGxldCBsb2FkZWRtZXRhZGF0YSA9IERvbS5FdmVudC5tYWtlIFwibG9hZGVkbWV0YWRhdGFcIlxuXG4gIGxldCBsb2Fkc3RhcnQgPSBEb20uRXZlbnQubWFrZSBcImxvYWRzdGFydFwiXG5cbiAgbGV0IGxvc3Rwb2ludGVyY2FwdHVyZSA9IERvbS5FdmVudC5tYWtlIFwibG9zdHBvaW50ZXJjYXB0dXJlXCJcblxuICBsZXQgbWVzc2FnZSA9IERvbS5FdmVudC5tYWtlIFwibWVzc2FnZVwiXG5cbiAgbGV0IHBhdXNlID0gRG9tLkV2ZW50Lm1ha2UgXCJwYXVzZVwiXG5cbiAgbGV0IHBsYXkgPSBEb20uRXZlbnQubWFrZSBcInBsYXlcIlxuXG4gIGxldCBwbGF5aW5nID0gRG9tLkV2ZW50Lm1ha2UgXCJwbGF5aW5nXCJcblxuICBsZXQgcG9pbnRlcmVudGVyID0gRG9tLkV2ZW50Lm1ha2UgXCJwb2ludGVyZW50ZXJcIlxuXG4gIGxldCBwb2ludGVyY2FuY2VsID0gRG9tLkV2ZW50Lm1ha2UgXCJwb2ludGVyY2FuY2VsXCJcblxuICBsZXQgcG9pbnRlcmRvd24gPSBEb20uRXZlbnQubWFrZSBcInBvaW50ZXJkb3duXCJcblxuICBsZXQgcG9pbnRlcmxlYXZlID0gRG9tLkV2ZW50Lm1ha2UgXCJwb2ludGVybGVhdmVcIlxuXG4gIGxldCBwb2ludGVybW92ZSA9IERvbS5FdmVudC5tYWtlIFwicG9pbnRlcm1vdmVcIlxuXG4gIGxldCBwb2ludGVyb3V0ID0gRG9tLkV2ZW50Lm1ha2UgXCJwb2ludGVyb3V0XCJcblxuICBsZXQgcG9pbnRlcm92ZXIgPSBEb20uRXZlbnQubWFrZSBcInBvaW50ZXJvdmVyXCJcblxuICBsZXQgcG9pbnRlcnVwID0gRG9tLkV2ZW50Lm1ha2UgXCJwb2ludGVydXBcIlxuXG4gIGxldCByYXRlY2hhbmdlID0gRG9tLkV2ZW50Lm1ha2UgXCJyYXRlY2hhbmdlXCJcblxuICBsZXQgc2Vla2VkID0gRG9tLkV2ZW50Lm1ha2UgXCJzZWVrZWRcIlxuXG4gIGxldCBzZWVraW5nID0gRG9tLkV2ZW50Lm1ha2UgXCJzZWVraW5nXCJcblxuICBsZXQgc3RhbGxlZCA9IERvbS5FdmVudC5tYWtlIFwic3RhbGxlZFwiXG5cbiAgbGV0IHN1c3BlbmQgPSBEb20uRXZlbnQubWFrZSBcInN1c3BlbmRcIlxuXG4gIGxldCB2b2x1bWVjaGFuZ2UgPSBEb20uRXZlbnQubWFrZSBcInZvbHVtZWNoYW5nZVwiXG5cbiAgbGV0IHdhaXRpbmcgPSBEb20uRXZlbnQubWFrZSBcIndhaXRpbmdcIlxuXG4gIGxldCBtYWtlID0gRG9tLkV2ZW50Lm1ha2VcbmVuZFxuXG50eXBlIGV2ZW50X2xpc3RlbmVyX2lkID0gRG9tLmV2ZW50X2xpc3RlbmVyX2lkXG5cbmxldCBhZGRFdmVudExpc3RlbmVyID0gRG9tLmFkZEV2ZW50TGlzdGVuZXJcblxubGV0IGFkZEV2ZW50TGlzdGVuZXJXaXRoT3B0aW9ucyA9IERvbS5hZGRFdmVudExpc3RlbmVyV2l0aE9wdGlvbnNcblxubGV0IHJlbW92ZUV2ZW50TGlzdGVuZXIgPSBEb20ucmVtb3ZlRXZlbnRMaXN0ZW5lclxuXG5sZXQgY3JlYXRlQ3VzdG9tRXZlbnQgPSBEb20uY3JlYXRlQ3VzdG9tRXZlbnRcblxuY2xhc3MgdHlwZSBbJ25vZGVdIGNvbGxlY3Rpb24gPVxuICBvYmplY3RcbiAgICBtZXRob2QgbGVuZ3RoIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBpdGVtIDogaW50IC0+ICdub2RlIHQgb3B0IG1ldGhcblxuICAgIG1ldGhvZCBuYW1lZEl0ZW0gOiBqc19zdHJpbmcgdCAtPiAnbm9kZSB0IG9wdCBtZXRoXG4gIGVuZFxuXG5jbGFzcyB0eXBlIGh0bWxFbGVtZW50ID0gZWxlbWVudFxuXG5jbGFzcyB0eXBlIGhlYWRFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2QgcHJvZmlsZSA6IGpzX3N0cmluZyB0IHByb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgbGlua0VsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIG1ldGhvZCBkaXNhYmxlZCA6IGJvb2wgdCBwcm9wXG5cbiAgICBtZXRob2QgY2hhcnNldCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjcm9zc29yaWdpbiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBocmVmIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGhyZWZsYW5nIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG1lZGlhIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHJlbCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCByZXYgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgdGFyZ2V0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIF90eXBlIDoganNfc3RyaW5nIHQgcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSB0aXRsZUVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIG1ldGhvZCB0ZXh0IDoganNfc3RyaW5nIHQgcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBtZXRhRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgbWV0aG9kIGNvbnRlbnQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgaHR0cEVxdWl2IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG5hbWUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgc2NoZW1lIDoganNfc3RyaW5nIHQgcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBiYXNlRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgbWV0aG9kIGhyZWYgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgdGFyZ2V0IDoganNfc3RyaW5nIHQgcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBzdHlsZUVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIG1ldGhvZCBkaXNhYmxlZCA6IGJvb2wgdCBwcm9wXG5cbiAgICBtZXRob2QgbWVkaWEgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgX3R5cGUgOiBqc19zdHJpbmcgdCBwcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIGJvZHlFbGVtZW50ID0gZWxlbWVudFxuXG5jbGFzcyB0eXBlIGZvcm1FbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2QgZWxlbWVudHMgOiBlbGVtZW50IGNvbGxlY3Rpb24gdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgbGVuZ3RoIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBhY2NlcHRDaGFyc2V0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGFjdGlvbiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBlbmN0eXBlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIF9tZXRob2QgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgdGFyZ2V0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHN1Ym1pdCA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHJlc2V0IDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgb25zdWJtaXQgOiAoJ3NlbGYgdCwgc3VibWl0RXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgb3B0R3JvdXBFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2QgZGlzYWJsZWQgOiBib29sIHQgcHJvcFxuXG4gICAgbWV0aG9kIGxhYmVsIDoganNfc3RyaW5nIHQgcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBvcHRpb25FbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBvcHRHcm91cEVsZW1lbnRcblxuICAgIG1ldGhvZCBmb3JtIDogZm9ybUVsZW1lbnQgdCBvcHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGRlZmF1bHRTZWxlY3RlZCA6IGJvb2wgdCBwcm9wXG5cbiAgICBtZXRob2QgdGV4dCA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBpbmRleCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc2VsZWN0ZWQgOiBib29sIHQgcHJvcFxuXG4gICAgbWV0aG9kIHZhbHVlIDoganNfc3RyaW5nIHQgcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBzZWxlY3RFbGVtZW50ID1cbiAgb2JqZWN0ICgnc2VsZilcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIG1ldGhvZCBfdHlwZSA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzZWxlY3RlZEluZGV4IDogaW50IHByb3BcblxuICAgIG1ldGhvZCB2YWx1ZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBsZW5ndGggOiBpbnQgcHJvcFxuXG4gICAgbWV0aG9kIGZvcm0gOiBmb3JtRWxlbWVudCB0IG9wdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb3B0aW9ucyA6IG9wdGlvbkVsZW1lbnQgY29sbGVjdGlvbiB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBkaXNhYmxlZCA6IGJvb2wgdCBwcm9wXG5cbiAgICBtZXRob2QgbXVsdGlwbGUgOiBib29sIHQgcHJvcFxuXG4gICAgbWV0aG9kIG5hbWUgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc2l6ZSA6IGludCBwcm9wXG5cbiAgICBtZXRob2QgdGFiSW5kZXggOiBpbnQgcHJvcFxuXG4gICAgbWV0aG9kIGFkZCA6ICNvcHRHcm91cEVsZW1lbnQgdCAtPiAjb3B0R3JvdXBFbGVtZW50IHQgb3B0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHJlbW92ZSA6IGludCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCByZXF1aXJlZCA6IGJvb2wgdCB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9uY2hhbmdlIDogKCdzZWxmIHQsIGV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHByb3BcblxuICAgIG1ldGhvZCBvbmlucHV0IDogKCdzZWxmIHQsIGV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHByb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgaW5wdXRFbGVtZW50ID1cbiAgb2JqZWN0ICgnc2VsZilcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIG1ldGhvZCBkZWZhdWx0VmFsdWUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgZGVmYXVsdENoZWNrZWQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgZm9ybSA6IGZvcm1FbGVtZW50IHQgb3B0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBhY2NlcHQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYWNjZXNzS2V5IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGFsaWduIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGFsdCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjaGVja2VkIDogYm9vbCB0IHByb3BcblxuICAgIG1ldGhvZCBkaXNhYmxlZCA6IGJvb2wgdCBwcm9wXG5cbiAgICBtZXRob2QgbWF4TGVuZ3RoIDogaW50IHByb3BcblxuICAgIG1ldGhvZCBuYW1lIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHJlYWRPbmx5IDogYm9vbCB0IHByb3BcblxuICAgIG1ldGhvZCByZXF1aXJlZCA6IGJvb2wgdCB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHNpemUgOiBpbnQgcHJvcFxuXG4gICAgbWV0aG9kIHNyYyA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB0YWJJbmRleCA6IGludCBwcm9wXG5cbiAgICBtZXRob2QgX3R5cGUgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgdXNlTWFwIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHZhbHVlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHNlbGVjdCA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGZpbGVzIDogRmlsZS5maWxlTGlzdCB0IG9wdGRlZiByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcGxhY2Vob2xkZXIgOiBqc19zdHJpbmcgdCB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHNlbGVjdGlvbkRpcmVjdGlvbiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBzZWxlY3Rpb25TdGFydCA6IGludCBwcm9wXG5cbiAgICBtZXRob2Qgc2VsZWN0aW9uRW5kIDogaW50IHByb3BcblxuICAgIG1ldGhvZCBvbnNlbGVjdCA6ICgnc2VsZiB0LCBldmVudCB0KSBldmVudF9saXN0ZW5lciBwcm9wXG5cbiAgICBtZXRob2Qgb25jaGFuZ2UgOiAoJ3NlbGYgdCwgZXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgcHJvcFxuXG4gICAgbWV0aG9kIG9uaW5wdXQgOiAoJ3NlbGYgdCwgZXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgcHJvcFxuXG4gICAgbWV0aG9kIG9uYmx1ciA6ICgnc2VsZiB0LCBmb2N1c0V2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHByb3BcblxuICAgIG1ldGhvZCBvbmZvY3VzIDogKCdzZWxmIHQsIGZvY3VzRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSB0ZXh0QXJlYUVsZW1lbnQgPVxuICBvYmplY3QgKCdzZWxmKVxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgbWV0aG9kIGRlZmF1bHRWYWx1ZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBmb3JtIDogZm9ybUVsZW1lbnQgdCBvcHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGFjY2Vzc0tleSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjb2xzIDogaW50IHByb3BcblxuICAgIG1ldGhvZCBkaXNhYmxlZCA6IGJvb2wgdCBwcm9wXG5cbiAgICBtZXRob2QgbmFtZSA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCByZWFkT25seSA6IGJvb2wgdCBwcm9wXG5cbiAgICBtZXRob2Qgcm93cyA6IGludCBwcm9wXG5cbiAgICBtZXRob2Qgc2VsZWN0aW9uRGlyZWN0aW9uIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHNlbGVjdGlvbkVuZCA6IGludCBwcm9wXG5cbiAgICBtZXRob2Qgc2VsZWN0aW9uU3RhcnQgOiBpbnQgcHJvcFxuXG4gICAgbWV0aG9kIHRhYkluZGV4IDogaW50IHByb3BcblxuICAgIG1ldGhvZCBfdHlwZSA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB2YWx1ZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBzZWxlY3QgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCByZXF1aXJlZCA6IGJvb2wgdCB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHBsYWNlaG9sZGVyIDoganNfc3RyaW5nIHQgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbnNlbGVjdCA6ICgnc2VsZiB0LCBldmVudCB0KSBldmVudF9saXN0ZW5lciBwcm9wXG5cbiAgICBtZXRob2Qgb25jaGFuZ2UgOiAoJ3NlbGYgdCwgZXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgcHJvcFxuXG4gICAgbWV0aG9kIG9uaW5wdXQgOiAoJ3NlbGYgdCwgZXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgcHJvcFxuXG4gICAgbWV0aG9kIG9uYmx1ciA6ICgnc2VsZiB0LCBmb2N1c0V2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHByb3BcblxuICAgIG1ldGhvZCBvbmZvY3VzIDogKCdzZWxmIHQsIGZvY3VzRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBidXR0b25FbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2QgZm9ybSA6IGZvcm1FbGVtZW50IHQgb3B0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBhY2Nlc3NLZXkgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgZGlzYWJsZWQgOiBib29sIHQgcHJvcFxuXG4gICAgbWV0aG9kIG5hbWUgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgdGFiSW5kZXggOiBpbnQgcHJvcFxuXG4gICAgbWV0aG9kIF90eXBlIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHZhbHVlIDoganNfc3RyaW5nIHQgcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBsYWJlbEVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIG1ldGhvZCBmb3JtIDogZm9ybUVsZW1lbnQgdCBvcHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGFjY2Vzc0tleSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBodG1sRm9yIDoganNfc3RyaW5nIHQgcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBmaWVsZFNldEVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIG1ldGhvZCBmb3JtIDogZm9ybUVsZW1lbnQgdCBvcHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBsZWdlbmRFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2QgZm9ybSA6IGZvcm1FbGVtZW50IHQgb3B0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBhY2Nlc3NLZXkgOiBqc19zdHJpbmcgdCBwcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIHVMaXN0RWxlbWVudCA9IGVsZW1lbnRcblxuY2xhc3MgdHlwZSBvTGlzdEVsZW1lbnQgPSBlbGVtZW50XG5cbmNsYXNzIHR5cGUgZExpc3RFbGVtZW50ID0gZWxlbWVudFxuXG5jbGFzcyB0eXBlIGxpRWxlbWVudCA9IGVsZW1lbnRcblxuY2xhc3MgdHlwZSBkaXZFbGVtZW50ID0gZWxlbWVudFxuXG5jbGFzcyB0eXBlIHBhcmFncmFwaEVsZW1lbnQgPSBlbGVtZW50XG5cbmNsYXNzIHR5cGUgaGVhZGluZ0VsZW1lbnQgPSBlbGVtZW50XG5cbmNsYXNzIHR5cGUgcXVvdGVFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2QgY2l0ZSA6IGpzX3N0cmluZyB0IHByb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgcHJlRWxlbWVudCA9IGVsZW1lbnRcblxuY2xhc3MgdHlwZSBickVsZW1lbnQgPSBlbGVtZW50XG5cbmNsYXNzIHR5cGUgaHJFbGVtZW50ID0gZWxlbWVudFxuXG5jbGFzcyB0eXBlIG1vZEVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIG1ldGhvZCBjaXRlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGRhdGVUaW1lIDoganNfc3RyaW5nIHQgcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBhbmNob3JFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2QgYWNjZXNzS2V5IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNoYXJzZXQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgY29vcmRzIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGhyZWYgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgaHJlZmxhbmcgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbmFtZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCByZWwgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgcmV2IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHNoYXBlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHRhYkluZGV4IDogaW50IHByb3BcblxuICAgIG1ldGhvZCB0YXJnZXQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgX3R5cGUgOiBqc19zdHJpbmcgdCBwcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIGltYWdlRWxlbWVudCA9XG4gIG9iamVjdCAoJ3NlbGYpXG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2QgYWx0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHNyYyA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB1c2VNYXAgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgaXNNYXAgOiBib29sIHQgcHJvcFxuXG4gICAgbWV0aG9kIHdpZHRoIDogaW50IHByb3BcblxuICAgIG1ldGhvZCBoZWlnaHQgOiBpbnQgcHJvcFxuXG4gICAgbWV0aG9kIG5hdHVyYWxXaWR0aCA6IGludCBvcHRkZWYgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG5hdHVyYWxIZWlnaHQgOiBpbnQgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjb21wbGV0ZSA6IGJvb2wgdCBwcm9wXG5cbiAgICBtZXRob2Qgb25sb2FkIDogKCdzZWxmIHQsIGV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHByb3BcblxuICAgIG1ldGhvZCBvbmVycm9yIDogKCdzZWxmIHQsIGV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHByb3BcblxuICAgIG1ldGhvZCBvbmFib3J0IDogKCdzZWxmIHQsIGV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHByb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgb2JqZWN0RWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgbWV0aG9kIGZvcm0gOiBmb3JtRWxlbWVudCB0IG9wdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY29kZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBhcmNoaXZlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNvZGVCYXNlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNvZGVUeXBlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGRhdGEgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgZGVjbGFyZSA6IGJvb2wgdCBwcm9wXG5cbiAgICBtZXRob2QgaGVpZ2h0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG5hbWUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgc3RhbmRieSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB0YWJJbmRleCA6IGludCBwcm9wXG5cbiAgICBtZXRob2QgX3R5cGUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgdXNlTWFwIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHdpZHRoIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGRvY3VtZW50IDogRG9tLmVsZW1lbnQgRG9tLmRvY3VtZW50IHQgb3B0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgcGFyYW1FbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2QgbmFtZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBfdHlwZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB2YWx1ZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB2YWx1ZVR5cGUgOiBqc19zdHJpbmcgdCBwcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIGFyZWFFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2QgYWNjZXNzS2V5IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGFsdCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjb29yZHMgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgaHJlZiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBub0hyZWYgOiBib29sIHQgcHJvcFxuXG4gICAgbWV0aG9kIHNoYXBlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHRhYkluZGV4IDogaW50IHByb3BcblxuICAgIG1ldGhvZCB0YXJnZXQgOiBqc19zdHJpbmcgdCBwcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIG1hcEVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIG1ldGhvZCBhcmVhcyA6IGFyZWFFbGVtZW50IGNvbGxlY3Rpb24gdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgbmFtZSA6IGpzX3N0cmluZyB0IHByb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgc2NyaXB0RWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgbWV0aG9kIHRleHQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgY2hhcnNldCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBkZWZlciA6IGJvb2wgdCBwcm9wXG5cbiAgICBtZXRob2Qgc3JjIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIF90eXBlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGFzeW5jIDogYm9vbCB0IHByb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgZW1iZWRFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2Qgc3JjIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGhlaWdodCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB3aWR0aCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBfdHlwZSA6IGpzX3N0cmluZyB0IHByb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgdGFibGVDZWxsRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgbWV0aG9kIGNlbGxJbmRleCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYWJiciA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBhbGlnbiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBheGlzIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNoIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNoT2ZmIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNvbFNwYW4gOiBpbnQgcHJvcFxuXG4gICAgbWV0aG9kIGhlYWRlcnMgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgcm93U3BhbiA6IGludCBwcm9wXG5cbiAgICBtZXRob2Qgc2NvcGUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgdkFsaWduIDoganNfc3RyaW5nIHQgcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSB0YWJsZVJvd0VsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIG1ldGhvZCByb3dJbmRleCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc2VjdGlvblJvd0luZGV4IDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjZWxscyA6IHRhYmxlQ2VsbEVsZW1lbnQgY29sbGVjdGlvbiB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBhbGlnbiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjaCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjaE9mZiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB2QWxpZ24gOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgaW5zZXJ0Q2VsbCA6IGludCAtPiB0YWJsZUNlbGxFbGVtZW50IHQgbWV0aFxuXG4gICAgbWV0aG9kIGRlbGV0ZUNlbGwgOiBpbnQgLT4gdW5pdCBtZXRoXG4gIGVuZFxuXG5jbGFzcyB0eXBlIHRhYmxlQ29sRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgbWV0aG9kIGFsaWduIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNoIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNoT2ZmIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHNwYW4gOiBpbnQgcHJvcFxuXG4gICAgbWV0aG9kIHZBbGlnbiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB3aWR0aCA6IGpzX3N0cmluZyB0IHByb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgdGFibGVTZWN0aW9uRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgbWV0aG9kIGFsaWduIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNoIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNoT2ZmIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHZBbGlnbiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCByb3dzIDogdGFibGVSb3dFbGVtZW50IGNvbGxlY3Rpb24gdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgaW5zZXJ0Um93IDogaW50IC0+IHRhYmxlUm93RWxlbWVudCB0IG1ldGhcblxuICAgIG1ldGhvZCBkZWxldGVSb3cgOiBpbnQgLT4gdW5pdCBtZXRoXG4gIGVuZFxuXG5jbGFzcyB0eXBlIHRhYmxlQ2FwdGlvbkVsZW1lbnQgPSBlbGVtZW50XG5cbmNsYXNzIHR5cGUgdGFibGVFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2QgY2FwdGlvbiA6IHRhYmxlQ2FwdGlvbkVsZW1lbnQgdCBwcm9wXG5cbiAgICBtZXRob2QgdEhlYWQgOiB0YWJsZVNlY3Rpb25FbGVtZW50IHQgcHJvcFxuXG4gICAgbWV0aG9kIHRGb290IDogdGFibGVTZWN0aW9uRWxlbWVudCB0IHByb3BcblxuICAgIG1ldGhvZCByb3dzIDogdGFibGVSb3dFbGVtZW50IGNvbGxlY3Rpb24gdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgdEJvZGllcyA6IHRhYmxlU2VjdGlvbkVsZW1lbnQgY29sbGVjdGlvbiB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBhbGlnbiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBib3JkZXIgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgY2VsbFBhZGRpbmcgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgY2VsbFNwYWNpbmcgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgZnJhbWUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgcnVsZXMgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgc3VtbWFyeSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB3aWR0aCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjcmVhdGVUSGVhZCA6IHRhYmxlU2VjdGlvbkVsZW1lbnQgdCBtZXRoXG5cbiAgICBtZXRob2QgZGVsZXRlVEhlYWQgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVURm9vdCA6IHRhYmxlU2VjdGlvbkVsZW1lbnQgdCBtZXRoXG5cbiAgICBtZXRob2QgZGVsZXRlVEZvb3QgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVDYXB0aW9uIDogdGFibGVDYXB0aW9uRWxlbWVudCB0IG1ldGhcblxuICAgIG1ldGhvZCBkZWxldGVDYXB0aW9uIDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgaW5zZXJ0Um93IDogaW50IC0+IHRhYmxlUm93RWxlbWVudCB0IG1ldGhcblxuICAgIG1ldGhvZCBkZWxldGVSb3cgOiBpbnQgLT4gdW5pdCBtZXRoXG4gIGVuZFxuXG5jbGFzcyB0eXBlIHRpbWVSYW5nZXMgPVxuICBvYmplY3RcbiAgICBtZXRob2QgbGVuZ3RoIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzdGFydCA6IGludCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgZW5kXyA6IGludCAtPiBmbG9hdCBtZXRoXG4gIGVuZFxuXG50eXBlIG5ldHdvcmtTdGF0ZSA9XG4gIHwgTkVUV09SS19FTVBUWVxuICB8IE5FVFdPUktfSURMRVxuICB8IE5FVFdPUktfTE9BRElOR1xuICB8IE5FVFdPUktfTk9fU09VUkNFXG5cbnR5cGUgcmVhZHlTdGF0ZSA9XG4gIHwgSEFWRV9OT1RISU5HXG4gIHwgSEFWRV9NRVRBREFUQVxuICB8IEhBVkVfQ1VSUkVOVF9EQVRBXG4gIHwgSEFWRV9GVVRVUkVfREFUQVxuICB8IEhBVkVfRU5PVUdIX0RBVEFcblxuKCogaHR0cDovL3d3dy53M3NjaG9vbHMuY29tL3RhZ3MvcmVmX2F2X2RvbS5hc3AgKilcbigqIG9ubHkgZmVhdHVyZXMgc3VwcG9ydGVkIGJ5IGFsbCBicm93c2VyLiAoSUU5KykgKilcbmNsYXNzIHR5cGUgbWVkaWFFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2QgY2FuUGxheVR5cGUgOiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICBtZXRob2QgbG9hZCA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHBsYXkgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBwYXVzZSA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGF1dG9wbGF5IDogYm9vbCB0IHByb3BcblxuICAgIG1ldGhvZCBidWZmZXJlZCA6IHRpbWVSYW5nZXMgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY29udHJvbHMgOiBib29sIHQgcHJvcFxuXG4gICAgbWV0aG9kIGN1cnJlbnRTcmMgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY3VycmVudFRpbWUgOiBmbG9hdCBwcm9wXG5cbiAgICBtZXRob2QgZHVyYXRpb24gOiBmbG9hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZW5kZWQgOiBib29sIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGxvb3AgOiBib29sIHQgcHJvcFxuXG4gICAgbWV0aG9kIG1lZGlhZ3JvdXAgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbXV0ZWQgOiBib29sIHQgcHJvcFxuXG4gICAgbWV0aG9kIG5ldHdvcmtTdGF0ZV9pbnQgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG5ldHdvcmtTdGF0ZSA6IG5ldHdvcmtTdGF0ZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcGF1c2VkIDogYm9vbCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBwbGF5YmFja1JhdGUgOiBmbG9hdCBwcm9wXG5cbiAgICBtZXRob2QgcGxheWVkIDogdGltZVJhbmdlcyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBwcmVsb2FkIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHJlYWR5U3RhdGVfaW50IDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCByZWFkeVN0YXRlIDogcmVhZHlTdGF0ZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc2Vla2FibGUgOiB0aW1lUmFuZ2VzIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHNlZWtpbmcgOiBib29sIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHNyYyA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB2b2x1bWUgOiBmbG9hdCBwcm9wXG5cbiAgICBtZXRob2Qgb25jYW5wbGF5IDogKCdzZWxmIHQsIG1lZGlhRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbmNhbnBsYXl0aHJvdWdoIDogKCdzZWxmIHQsIG1lZGlhRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbmR1cmF0aW9uY2hhbmdlIDogKCdzZWxmIHQsIG1lZGlhRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbmVtcHRpZWQgOiAoJ3NlbGYgdCwgbWVkaWFFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9uZW5kZWQgOiAoJ3NlbGYgdCwgbWVkaWFFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9ubG9hZGVkZGF0YSA6ICgnc2VsZiB0LCBtZWRpYUV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25sb2FkZWRtZXRhZGF0YSA6ICgnc2VsZiB0LCBtZWRpYUV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25sb2Fkc3RhcnQgOiAoJ3NlbGYgdCwgbWVkaWFFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9ucGF1c2UgOiAoJ3NlbGYgdCwgbWVkaWFFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9ucGxheSA6ICgnc2VsZiB0LCBtZWRpYUV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25wbGF5aW5nIDogKCdzZWxmIHQsIG1lZGlhRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbnJhdGVjaGFuZ2UgOiAoJ3NlbGYgdCwgbWVkaWFFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9uc2Vla2VkIDogKCdzZWxmIHQsIG1lZGlhRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbnNlZWtpbmcgOiAoJ3NlbGYgdCwgbWVkaWFFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9uc3RhbGxlZCA6ICgnc2VsZiB0LCBtZWRpYUV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25zdXNwZW5kIDogKCdzZWxmIHQsIG1lZGlhRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbnZvbHVtZWNoYW5nZSA6ICgnc2VsZiB0LCBtZWRpYUV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb253YWl0aW5nIDogKCdzZWxmIHQsIG1lZGlhRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgYXVkaW9FbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBtZWRpYUVsZW1lbnRcbiAgZW5kXG5cbmNsYXNzIHR5cGUgdmlkZW9FbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBtZWRpYUVsZW1lbnRcbiAgZW5kXG5cbnR5cGUgY29udGV4dCA9IGpzX3N0cmluZyB0XG5cbmxldCBfMmRfID0gSnMuc3RyaW5nIFwiMmRcIlxuXG50eXBlIGNhbnZhc1BhdHRlcm5cblxuY2xhc3MgdHlwZSBjYW52YXNFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2Qgd2lkdGggOiBpbnQgcHJvcFxuXG4gICAgbWV0aG9kIGhlaWdodCA6IGludCBwcm9wXG5cbiAgICBtZXRob2QgdG9EYXRhVVJMIDoganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgbWV0aG9kIHRvRGF0YVVSTF90eXBlIDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgbWV0aG9kIHRvRGF0YVVSTF90eXBlX2NvbXByZXNzaW9uIDoganNfc3RyaW5nIHQgLT4gZmxvYXQgLT4ganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgbWV0aG9kIGdldENvbnRleHQgOiBqc19zdHJpbmcgdCAtPiBjYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgdCBtZXRoXG4gIGVuZFxuXG5hbmQgY2FudmFzUmVuZGVyaW5nQ29udGV4dDJEID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGNhbnZhcyA6IGNhbnZhc0VsZW1lbnQgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc2F2ZSA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHJlc3RvcmUgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzY2FsZSA6IGZsb2F0IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHJvdGF0ZSA6IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHRyYW5zbGF0ZSA6IGZsb2F0IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHRyYW5zZm9ybSA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldFRyYW5zZm9ybSA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGdsb2JhbEFscGhhIDogZmxvYXQgcHJvcFxuXG4gICAgbWV0aG9kIGdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBzdHJva2VTdHlsZSA6IGpzX3N0cmluZyB0IHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc3Ryb2tlU3R5bGVfZ3JhZGllbnQgOiBjYW52YXNHcmFkaWVudCB0IHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc3Ryb2tlU3R5bGVfcGF0dGVybiA6IGNhbnZhc1BhdHRlcm4gdCB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGZpbGxTdHlsZSA6IGpzX3N0cmluZyB0IHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2QgZmlsbFN0eWxlX2dyYWRpZW50IDogY2FudmFzR3JhZGllbnQgdCB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGZpbGxTdHlsZV9wYXR0ZXJuIDogY2FudmFzUGF0dGVybiB0IHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2QgY3JlYXRlTGluZWFyR3JhZGllbnQgOlxuICAgICAgZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gY2FudmFzR3JhZGllbnQgdCBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlUmFkaWFsR3JhZGllbnQgOlxuICAgICAgZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gY2FudmFzR3JhZGllbnQgdCBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlUGF0dGVybiA6IGltYWdlRWxlbWVudCB0IC0+IGpzX3N0cmluZyB0IC0+IGNhbnZhc1BhdHRlcm4gdCBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlUGF0dGVybl9mcm9tQ2FudmFzIDpcbiAgICAgIGNhbnZhc0VsZW1lbnQgdCAtPiBqc19zdHJpbmcgdCAtPiBjYW52YXNQYXR0ZXJuIHQgbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZVBhdHRlcm5fZnJvbVZpZGVvIDogdmlkZW9FbGVtZW50IHQgLT4ganNfc3RyaW5nIHQgLT4gY2FudmFzUGF0dGVybiB0IG1ldGhcblxuICAgIG1ldGhvZCBsaW5lV2lkdGggOiBmbG9hdCBwcm9wXG5cbiAgICBtZXRob2QgbGluZUNhcCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBsaW5lSm9pbiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBtaXRlckxpbWl0IDogZmxvYXQgcHJvcFxuXG4gICAgbWV0aG9kIHNoYWRvd09mZnNldFggOiBmbG9hdCBwcm9wXG5cbiAgICBtZXRob2Qgc2hhZG93T2Zmc2V0WSA6IGZsb2F0IHByb3BcblxuICAgIG1ldGhvZCBzaGFkb3dCbHVyIDogZmxvYXQgcHJvcFxuXG4gICAgbWV0aG9kIHNoYWRvd0NvbG9yIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNsZWFyUmVjdCA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGZpbGxSZWN0IDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc3Ryb2tlUmVjdCA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGJlZ2luUGF0aCA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNsb3NlUGF0aCA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIG1vdmVUbyA6IGZsb2F0IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGxpbmVUbyA6IGZsb2F0IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHF1YWRyYXRpY0N1cnZlVG8gOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBiZXppZXJDdXJ2ZVRvIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgYXJjVG8gOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCByZWN0IDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgYXJjIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gYm9vbCB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGZpbGwgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzdHJva2UgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjbGlwIDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgaXNQb2ludEluUGF0aCA6IGZsb2F0IC0+IGZsb2F0IC0+IGJvb2wgdCBtZXRoXG5cbiAgICBtZXRob2QgZHJhd0ZvY3VzUmluZyA6ICNlbGVtZW50IHQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gYm9vbCB0IC0+IGJvb2wgdCBtZXRoXG5cbiAgICBtZXRob2QgZm9udCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB0ZXh0QWxpZ24gOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgdGV4dEJhc2VsaW5lIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGZpbGxUZXh0IDoganNfc3RyaW5nIHQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZmlsbFRleHRfd2l0aFdpZHRoIDoganNfc3RyaW5nIHQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc3Ryb2tlVGV4dCA6IGpzX3N0cmluZyB0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHN0cm9rZVRleHRfd2l0aFdpZHRoIDoganNfc3RyaW5nIHQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgbWVhc3VyZVRleHQgOiBqc19zdHJpbmcgdCAtPiB0ZXh0TWV0cmljcyB0IG1ldGhcblxuICAgIG1ldGhvZCBkcmF3SW1hZ2UgOiBpbWFnZUVsZW1lbnQgdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBkcmF3SW1hZ2Vfd2l0aFNpemUgOlxuICAgICAgaW1hZ2VFbGVtZW50IHQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZHJhd0ltYWdlX2Z1bGwgOlxuICAgICAgICAgaW1hZ2VFbGVtZW50IHRcbiAgICAgIC0+IGZsb2F0XG4gICAgICAtPiBmbG9hdFxuICAgICAgLT4gZmxvYXRcbiAgICAgIC0+IGZsb2F0XG4gICAgICAtPiBmbG9hdFxuICAgICAgLT4gZmxvYXRcbiAgICAgIC0+IGZsb2F0XG4gICAgICAtPiBmbG9hdFxuICAgICAgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZHJhd0ltYWdlX2Zyb21DYW52YXMgOiBjYW52YXNFbGVtZW50IHQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZHJhd0ltYWdlX2Zyb21DYW52YXNXaXRoU2l6ZSA6XG4gICAgICBjYW52YXNFbGVtZW50IHQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZHJhd0ltYWdlX2Z1bGxGcm9tQ2FudmFzIDpcbiAgICAgICAgIGNhbnZhc0VsZW1lbnQgdFxuICAgICAgLT4gZmxvYXRcbiAgICAgIC0+IGZsb2F0XG4gICAgICAtPiBmbG9hdFxuICAgICAgLT4gZmxvYXRcbiAgICAgIC0+IGZsb2F0XG4gICAgICAtPiBmbG9hdFxuICAgICAgLT4gZmxvYXRcbiAgICAgIC0+IGZsb2F0XG4gICAgICAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBkcmF3SW1hZ2VfZnJvbVZpZGVvV2l0aFZpZGVvIDogdmlkZW9FbGVtZW50IHQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZHJhd0ltYWdlX2Zyb21WaWRlb1dpdGhTaXplIDpcbiAgICAgIHZpZGVvRWxlbWVudCB0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGRyYXdJbWFnZV9mdWxsRnJvbVZpZGVvIDpcbiAgICAgICAgIHZpZGVvRWxlbWVudCB0XG4gICAgICAtPiBmbG9hdFxuICAgICAgLT4gZmxvYXRcbiAgICAgIC0+IGZsb2F0XG4gICAgICAtPiBmbG9hdFxuICAgICAgLT4gZmxvYXRcbiAgICAgIC0+IGZsb2F0XG4gICAgICAtPiBmbG9hdFxuICAgICAgLT4gZmxvYXRcbiAgICAgIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZUltYWdlRGF0YSA6IGludCAtPiBpbnQgLT4gaW1hZ2VEYXRhIHQgbWV0aFxuXG4gICAgbWV0aG9kIGdldEltYWdlRGF0YSA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGltYWdlRGF0YSB0IG1ldGhcblxuICAgIG1ldGhvZCBwdXRJbWFnZURhdGEgOiBpbWFnZURhdGEgdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiB1bml0IG1ldGhcbiAgZW5kXG5cbmFuZCBjYW52YXNHcmFkaWVudCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBhZGRDb2xvclN0b3AgOiBmbG9hdCAtPiBqc19zdHJpbmcgdCAtPiB1bml0IG1ldGhcbiAgZW5kXG5cbmFuZCB0ZXh0TWV0cmljcyA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCB3aWR0aCA6IGZsb2F0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmFuZCBpbWFnZURhdGEgPVxuICBvYmplY3RcbiAgICBtZXRob2Qgd2lkdGggOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGhlaWdodCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZGF0YSA6IGNhbnZhc1BpeGVsQXJyYXkgdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5hbmQgY2FudmFzUGl4ZWxBcnJheSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBsZW5ndGggOiBpbnQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuZXh0ZXJuYWwgcGl4ZWxfZ2V0IDogY2FudmFzUGl4ZWxBcnJheSB0IC0+IGludCAtPiBpbnQgPSBcImNhbWxfanNfZ2V0XCJcblxuZXh0ZXJuYWwgcGl4ZWxfc2V0IDogY2FudmFzUGl4ZWxBcnJheSB0IC0+IGludCAtPiBpbnQgLT4gdW5pdCA9IFwiY2FtbF9qc19zZXRcIlxuXG5jbGFzcyB0eXBlIHJhbmdlID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGNvbGxhcHNlZCA6IGJvb2wgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc3RhcnRPZmZzZXQgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGVuZE9mZnNldCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc3RhcnRDb250YWluZXIgOiBEb20ubm9kZSB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBlbmRDb250YWluZXIgOiBEb20ubm9kZSB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzZXRTdGFydCA6IERvbS5ub2RlIHQgLT4gaW50IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldEVuZCA6IERvbS5ub2RlIHQgLT4gaW50IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldFN0YXJ0QmVmb3JlIDogRG9tLm5vZGUgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRFbmRCZWZvcmUgOiBEb20ubm9kZSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldFN0YXJ0QWZ0ZXIgOiBEb20ubm9kZSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldEVuZEFmdGVyIDogRG9tLm5vZGUgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZWxlY3ROb2RlIDogRG9tLm5vZGUgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZWxlY3ROb2RlQ29udGVudHMgOiBEb20ubm9kZSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNvbGxhcHNlIDogYm9vbCB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNsb25lQ29udGVudHMgOiBEb20uZG9jdW1lbnRGcmFnbWVudCB0IG1ldGhcblxuICAgIG1ldGhvZCBleHRyYWN0Q29udGVudHMgOiBEb20uZG9jdW1lbnRGcmFnbWVudCB0IG1ldGhcblxuICAgIG1ldGhvZCBkZWxldGVDb250ZW50cyA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGluc2VydE5vZGUgOiBEb20ubm9kZSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHN1cnJvdW5kQ29udGVudHMgOiBEb20ubm9kZSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNsb25lUmFuZ2UgOiByYW5nZSB0IG1ldGhcblxuICAgIG1ldGhvZCB0b1N0cmluZyA6IGpzX3N0cmluZyB0IG1ldGhcbiAgZW5kXG5cbigqKiBJbmZvcm1hdGlvbiBvbiBjdXJyZW50IHNlbGVjdGlvbiAqKVxuY2xhc3MgdHlwZSBzZWxlY3Rpb24gPVxuICBvYmplY3RcbiAgICBtZXRob2QgYW5jaG9yTm9kZSA6IERvbS5ub2RlIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGFuY2hvck9mZnNldCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZm9jdXNOb2RlIDogRG9tLm5vZGUgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZm9jdXNPZmZzZXQgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGlzQ29sbGFwc2VkIDogYm9vbCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCByYW5nZUNvdW50IDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBnZXRSYW5nZUF0IDogaW50IC0+IHJhbmdlIHQgbWV0aFxuXG4gICAgbWV0aG9kIGNvbGxhcHNlIDogYm9vbCB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGV4dGVuZCA6IERvbS5ub2RlIHQgLT4gaW50IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIG1vZGlmeSA6IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNvbGxhcHNlVG9TdGFydCA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNvbGxhcHNlVG9FbmQgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZWxlY3RBbGxDaGlsZHJlbiA6IERvbS5ub2RlIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgYWRkUmFuZ2UgOiByYW5nZSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHJlbW92ZVJhbmdlIDogcmFuZ2UgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCByZW1vdmVBbGxSYW5nZXMgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBkZWxldGVGcm9tRG9jdW1lbnQgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjb250YWluc05vZGUgOiBEb20ubm9kZSB0IC0+IGJvb2wgdCAtPiBib29sIHQgbWV0aFxuXG4gICAgbWV0aG9kIHRvU3RyaW5nIDoganNfc3RyaW5nIHQgbWV0aFxuICBlbmRcblxuY2xhc3MgdHlwZSBkb2N1bWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgW2VsZW1lbnRdIERvbS5kb2N1bWVudFxuXG4gICAgaW5oZXJpdCBub2RlU2VsZWN0b3JcblxuICAgIGluaGVyaXQgZXZlbnRUYXJnZXRcblxuICAgIG1ldGhvZCB0aXRsZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCByZWZlcnJlciA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBkb21haW4gOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgX1VSTCA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBoZWFkIDogaGVhZEVsZW1lbnQgdCBwcm9wXG5cbiAgICBtZXRob2QgYm9keSA6IGJvZHlFbGVtZW50IHQgcHJvcFxuXG4gICAgbWV0aG9kIGRvY3VtZW50RWxlbWVudCA6IGh0bWxFbGVtZW50IHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGltYWdlcyA6IGltYWdlRWxlbWVudCBjb2xsZWN0aW9uIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGFwcGxldHMgOiBlbGVtZW50IGNvbGxlY3Rpb24gdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgbGlua3MgOiBlbGVtZW50IGNvbGxlY3Rpb24gdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZm9ybXMgOiBmb3JtRWxlbWVudCBjb2xsZWN0aW9uIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGFuY2hvcnMgOiBlbGVtZW50IGNvbGxlY3Rpb24gdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY29va2llIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGRlc2lnbk1vZGUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgb3Blbl8gOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjbG9zZSA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHdyaXRlIDoganNfc3RyaW5nIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZXhlY0NvbW1hbmQgOiBqc19zdHJpbmcgdCAtPiBib29sIHQgLT4ganNfc3RyaW5nIHQgb3B0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZVJhbmdlIDogcmFuZ2UgdCBtZXRoXG5cbiAgICBtZXRob2QgcmVhZHlTdGF0ZSA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBnZXRFbGVtZW50c0J5Q2xhc3NOYW1lIDoganNfc3RyaW5nIHQgLT4gZWxlbWVudCBEb20ubm9kZUxpc3QgdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0RWxlbWVudHNCeU5hbWUgOiBqc19zdHJpbmcgdCAtPiBlbGVtZW50IERvbS5ub2RlTGlzdCB0IG1ldGhcblxuICAgIG1ldGhvZCBhY3RpdmVFbGVtZW50IDogZWxlbWVudCB0IG9wdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgaGlkZGVuIDogYm9vbCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbmZ1bGxzY3JlZW5jaGFuZ2UgOiAoZG9jdW1lbnQgdCwgZXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbndlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UgOiAoZG9jdW1lbnQgdCwgZXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIGluaGVyaXQgZXZlbnRUYXJnZXRcbiAgZW5kXG5cbnR5cGUgaW50ZXJ2YWxfaWRcblxudHlwZSB0aW1lb3V0X2lkXG5cbnR5cGUgYW5pbWF0aW9uX2ZyYW1lX3JlcXVlc3RfaWRcblxuY2xhc3MgdHlwZSBsb2NhdGlvbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBocmVmIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHByb3RvY29sIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGhvc3QgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgaG9zdG5hbWUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgb3JpZ2luIDoganNfc3RyaW5nIHQgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBwb3J0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHBhdGhuYW1lIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHNlYXJjaCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBoYXNoIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGFzc2lnbiA6IGpzX3N0cmluZyB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHJlcGxhY2UgOiBqc19zdHJpbmcgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCByZWxvYWQgOiB1bml0IG1ldGhcbiAgZW5kXG5cbmxldCBsb2NhdGlvbl9vcmlnaW4gKGxvYyA6IGxvY2F0aW9uIHQpID1cbiAgT3B0ZGVmLmNhc2VcbiAgICBsb2MjIy5vcmlnaW5cbiAgICAoZnVuICgpIC0+XG4gICAgICBsZXQgcHJvdG9jb2wgPSBsb2MjIy5wcm90b2NvbCBpblxuICAgICAgbGV0IGhvc3RuYW1lID0gbG9jIyMuaG9zdG5hbWUgaW5cbiAgICAgIGxldCBwb3J0ID0gbG9jIyMucG9ydCBpblxuICAgICAgaWYgcHJvdG9jb2wjIy5sZW5ndGggPSAwICYmIGhvc3RuYW1lIyMubGVuZ3RoID0gMFxuICAgICAgdGhlbiBKcy5zdHJpbmcgXCJcIlxuICAgICAgZWxzZVxuICAgICAgICBsZXQgb3JpZ2luID0gcHJvdG9jb2wjI2NvbmNhdF8yIChKcy5zdHJpbmcgXCIvL1wiKSBob3N0bmFtZSBpblxuICAgICAgICBpZiBwb3J0IyMubGVuZ3RoID4gMCB0aGVuIG9yaWdpbiMjY29uY2F0XzIgKEpzLnN0cmluZyBcIjpcIikgbG9jIyMucG9ydCBlbHNlIG9yaWdpbilcbiAgICAoZnVuIG8gLT4gbylcblxuY2xhc3MgdHlwZSBoaXN0b3J5ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGxlbmd0aCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc3RhdGUgOiBKcy5VbnNhZmUuYW55IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBnbyA6IGludCBvcHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgYmFjayA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGZvcndhcmQgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBwdXNoU3RhdGUgOiAnYS4gJ2EgLT4ganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgb3B0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHJlcGxhY2VTdGF0ZSA6ICdhLiAnYSAtPiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCBvcHQgLT4gdW5pdCBtZXRoXG4gIGVuZFxuXG5jbGFzcyB0eXBlIHVuZG9NYW5hZ2VyID0gb2JqZWN0IGVuZFxuXG5jbGFzcyB0eXBlIG5hdmlnYXRvciA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBhcHBDb2RlTmFtZSA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBhcHBOYW1lIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGFwcFZlcnNpb24gOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY29va2llRW5hYmxlZCA6IGJvb2wgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25MaW5lIDogYm9vbCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBwbGF0Zm9ybSA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB2ZW5kb3IgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgdXNlckFnZW50IDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGxhbmd1YWdlIDoganNfc3RyaW5nIHQgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB1c2VyTGFuZ3VhZ2UgOiBqc19zdHJpbmcgdCBvcHRkZWYgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG1heFRvdWNoUG9pbnRzIDogaW50IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgc2NyZWVuID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHdpZHRoIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBoZWlnaHQgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGF2YWlsV2lkdGggOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGF2YWlsSGVpZ2h0IDogaW50IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgYXBwbGljYXRpb25DYWNoZSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBzdGF0dXMgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHVwZGF0ZSA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGFib3J0IDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc3dhcENhY2hlIDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgb25jaGVja2luZyA6IChhcHBsaWNhdGlvbkNhY2hlIHQsIGV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHByb3BcblxuICAgIG1ldGhvZCBvbmVycm9yIDogKGFwcGxpY2F0aW9uQ2FjaGUgdCwgZXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgcHJvcFxuXG4gICAgbWV0aG9kIG9ubm91cGRhdGUgOiAoYXBwbGljYXRpb25DYWNoZSB0LCBldmVudCB0KSBldmVudF9saXN0ZW5lciBwcm9wXG5cbiAgICBtZXRob2Qgb25kb3dubG9hZGluZyA6IChhcHBsaWNhdGlvbkNhY2hlIHQsIGV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHByb3BcblxuICAgIG1ldGhvZCBvbnByb2dyZXNzIDogKGFwcGxpY2F0aW9uQ2FjaGUgdCwgZXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgcHJvcFxuXG4gICAgbWV0aG9kIG9udXBkYXRlcmVhZHkgOiAoYXBwbGljYXRpb25DYWNoZSB0LCBldmVudCB0KSBldmVudF9saXN0ZW5lciBwcm9wXG5cbiAgICBtZXRob2Qgb25jYWNoZWQgOiAoYXBwbGljYXRpb25DYWNoZSB0LCBldmVudCB0KSBldmVudF9saXN0ZW5lciBwcm9wXG5cbiAgICBtZXRob2Qgb25vYnNvbGV0ZSA6IChhcHBsaWNhdGlvbkNhY2hlIHQsIGV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHByb3BcblxuICAgIGluaGVyaXQgZXZlbnRUYXJnZXRcbiAgZW5kXG5cbmNsYXNzIHR5cGUgX1VSTCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBjcmVhdGVPYmplY3RVUkwgOiAjRmlsZS5ibG9iIHQgLT4ganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgbWV0aG9kIHJldm9rZU9iamVjdFVSTCA6IGpzX3N0cmluZyB0IC0+IHVuaXQgbWV0aFxuICBlbmRcblxuY2xhc3MgdHlwZSB3aW5kb3cgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGV2ZW50VGFyZ2V0XG5cbiAgICBtZXRob2QgZG9jdW1lbnQgOiBkb2N1bWVudCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBhcHBsaWNhdGlvbkNhY2hlIDogYXBwbGljYXRpb25DYWNoZSB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBuYW1lIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGxvY2F0aW9uIDogbG9jYXRpb24gdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgaGlzdG9yeSA6IGhpc3RvcnkgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgdW5kb01hbmFnZXIgOiB1bmRvTWFuYWdlciB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBuYXZpZ2F0b3IgOiBuYXZpZ2F0b3IgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZ2V0U2VsZWN0aW9uIDogc2VsZWN0aW9uIHQgbWV0aFxuXG4gICAgbWV0aG9kIGNsb3NlIDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgY2xvc2VkIDogYm9vbCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzdG9wIDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZm9jdXMgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBibHVyIDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2Nyb2xsIDogaW50IC0+IGludCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzY3JvbGxCeSA6IGludCAtPiBpbnQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2Vzc2lvblN0b3JhZ2UgOiBzdG9yYWdlIHQgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBsb2NhbFN0b3JhZ2UgOiBzdG9yYWdlIHQgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB0b3AgOiB3aW5kb3cgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcGFyZW50IDogd2luZG93IHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGZyYW1lRWxlbWVudCA6IGVsZW1lbnQgdCBvcHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9wZW5fIDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgb3B0IC0+IHdpbmRvdyB0IG9wdCBtZXRoXG5cbiAgICBtZXRob2QgYWxlcnQgOiBqc19zdHJpbmcgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjb25maXJtIDoganNfc3RyaW5nIHQgLT4gYm9vbCB0IG1ldGhcblxuICAgIG1ldGhvZCBwcm9tcHQgOiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCBvcHQgbWV0aFxuXG4gICAgbWV0aG9kIHByaW50IDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0SW50ZXJ2YWwgOiAodW5pdCAtPiB1bml0KSBKcy5jYWxsYmFjayAtPiBmbG9hdCAtPiBpbnRlcnZhbF9pZCBtZXRoXG5cbiAgICBtZXRob2QgY2xlYXJJbnRlcnZhbCA6IGludGVydmFsX2lkIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldFRpbWVvdXQgOiAodW5pdCAtPiB1bml0KSBKcy5jYWxsYmFjayAtPiBmbG9hdCAtPiB0aW1lb3V0X2lkIG1ldGhcblxuICAgIG1ldGhvZCBjbGVhclRpbWVvdXQgOiB0aW1lb3V0X2lkIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHJlcXVlc3RBbmltYXRpb25GcmFtZSA6XG4gICAgICAoZmxvYXQgLT4gdW5pdCkgSnMuY2FsbGJhY2sgLT4gYW5pbWF0aW9uX2ZyYW1lX3JlcXVlc3RfaWQgbWV0aFxuXG4gICAgbWV0aG9kIGNhbmNlbEFuaW1hdGlvbkZyYW1lIDogYW5pbWF0aW9uX2ZyYW1lX3JlcXVlc3RfaWQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2NyZWVuIDogc2NyZWVuIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGlubmVyV2lkdGggOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGlubmVySGVpZ2h0IDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvdXRlcldpZHRoIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvdXRlckhlaWdodCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZ2V0Q29tcHV0ZWRTdHlsZSA6ICNlbGVtZW50IHQgLT4gY3NzU3R5bGVEZWNsYXJhdGlvbiB0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRDb21wdXRlZFN0eWxlX3BzZXVkb0VsdCA6XG4gICAgICAjZWxlbWVudCB0IC0+IGpzX3N0cmluZyB0IC0+IGNzc1N0eWxlRGVjbGFyYXRpb24gdCBtZXRoXG5cbiAgICBtZXRob2QgYXRvYiA6IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCBidG9hIDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgbWV0aG9kIG9ubG9hZCA6ICh3aW5kb3cgdCwgZXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgcHJvcFxuXG4gICAgbWV0aG9kIG9udW5sb2FkIDogKHdpbmRvdyB0LCBldmVudCB0KSBldmVudF9saXN0ZW5lciBwcm9wXG5cbiAgICBtZXRob2Qgb25iZWZvcmV1bmxvYWQgOiAod2luZG93IHQsIGV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHByb3BcblxuICAgIG1ldGhvZCBvbmJsdXIgOiAod2luZG93IHQsIGZvY3VzRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgcHJvcFxuXG4gICAgbWV0aG9kIG9uZm9jdXMgOiAod2luZG93IHQsIGZvY3VzRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgcHJvcFxuXG4gICAgbWV0aG9kIG9ucmVzaXplIDogKHdpbmRvdyB0LCBldmVudCB0KSBldmVudF9saXN0ZW5lciBwcm9wXG5cbiAgICBtZXRob2Qgb25vcmllbnRhdGlvbmNoYW5nZSA6ICh3aW5kb3cgdCwgZXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgcHJvcFxuXG4gICAgbWV0aG9kIG9ucG9wc3RhdGUgOiAod2luZG93IHQsIHBvcFN0YXRlRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgcHJvcFxuXG4gICAgbWV0aG9kIG9uaGFzaGNoYW5nZSA6ICh3aW5kb3cgdCwgaGFzaENoYW5nZUV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHByb3BcblxuICAgIG1ldGhvZCBvbm9ubGluZSA6ICh3aW5kb3cgdCwgZXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbm9mZmxpbmUgOiAod2luZG93IHQsIGV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1VSTCA6IF9VUkwgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZGV2aWNlUGl4ZWxSYXRpbyA6IGZsb2F0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCB3aW5kb3cgOiB3aW5kb3cgdCA9IEpzLlVuc2FmZS5nbG9iYWxcblxuKCogVGhlIHRvcGxldmVsIG9iamVjdCAqKVxuXG5sZXQgZG9jdW1lbnQgPSB3aW5kb3cjIy5kb2N1bWVudFxuXG5sZXQgZ2V0RWxlbWVudEJ5SWQgaWQgPVxuICBKcy5PcHQuY2FzZVxuICAgIChkb2N1bWVudCMjZ2V0RWxlbWVudEJ5SWQgKEpzLnN0cmluZyBpZCkpXG4gICAgKGZ1biAoKSAtPiByYWlzZSBOb3RfZm91bmQpXG4gICAgKGZ1biBwbm9kZSAtPiBwbm9kZSlcblxubGV0IGdldEVsZW1lbnRCeUlkX2V4biBpZCA9XG4gIEpzLk9wdC5jYXNlXG4gICAgKGRvY3VtZW50IyNnZXRFbGVtZW50QnlJZCAoSnMuc3RyaW5nIGlkKSlcbiAgICAoZnVuICgpIC0+IGZhaWx3aXRoIChQcmludGYuc3ByaW50ZiBcImdldEVsZW1lbnRCeUlkX2V4bjogJVMgbm90IGZvdW5kXCIgaWQpKVxuICAgIChmdW4gcG5vZGUgLT4gcG5vZGUpXG5cbmxldCBnZXRFbGVtZW50QnlJZF9vcHQgaWQgPSBKcy5PcHQudG9fb3B0aW9uIChkb2N1bWVudCMjZ2V0RWxlbWVudEJ5SWQgKEpzLnN0cmluZyBpZCkpXG5cbmxldCBnZXRFbGVtZW50QnlJZF9jb2VyY2UgaWQgY29lcmNlID1cbiAgSnMuT3B0LmNhc2VcbiAgICAoZG9jdW1lbnQjI2dldEVsZW1lbnRCeUlkIChKcy5zdHJpbmcgaWQpKVxuICAgIChmdW4gKCkgLT4gTm9uZSlcbiAgICAoZnVuIGUgLT4gSnMuT3B0LnRvX29wdGlvbiAoY29lcmNlIGUpKVxuXG4oKioqKilcblxuY2xhc3MgdHlwZSBmcmFtZVNldEVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIG1ldGhvZCBjb2xzIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHJvd3MgOiBqc19zdHJpbmcgdCBwcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIGZyYW1lRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgbWV0aG9kIGZyYW1lQm9yZGVyIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGxvbmdEZXNjIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG1hcmdpbkhlaWdodCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBtYXJnaW5XaWR0aCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBuYW1lIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG5vUmVzaXplIDogYm9vbCB0IHByb3BcblxuICAgIG1ldGhvZCBzY3JvbGxpbmcgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgc3JjIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNvbnRlbnREb2N1bWVudCA6IGRvY3VtZW50IHQgb3B0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgaUZyYW1lRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgbWV0aG9kIGZyYW1lQm9yZGVyIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGhlaWdodCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB3aWR0aCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBsb25nRGVzYyA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBtYXJnaW5IZWlnaHQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbWFyZ2luV2lkdGggOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbmFtZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBzY3JvbGxpbmcgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgc3JjIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNvbnRlbnREb2N1bWVudCA6IGRvY3VtZW50IHQgb3B0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjb250ZW50V2luZG93IDogd2luZG93IHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuKCoqKiopXG5cbigqWFhYIFNob3VsZCBwcm92aWRlIGNyZWF0aW9uIGZ1bmN0aW9ucyBhIGxhIGxhYmxndGsuLi4gKilcblxubGV0IG9wdF9pdGVyIHggZiA9XG4gIG1hdGNoIHggd2l0aFxuICB8IE5vbmUgLT4gKClcbiAgfCBTb21lIHYgLT4gZiB2XG5cbmxldCBjcmVhdGVFbGVtZW50IChkb2MgOiBkb2N1bWVudCB0KSBuYW1lID0gZG9jIyNjcmVhdGVFbGVtZW50IChKcy5zdHJpbmcgbmFtZSlcblxubGV0IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIG5hbWUgPSBKcy5VbnNhZmUuY29lcmNlIChjcmVhdGVFbGVtZW50IGRvYyBuYW1lKVxuXG5sZXQgY3JlYXRlRWxlbWVudFN5bnRheCA9IHJlZiBgVW5rbm93blxuXG5sZXQgcmVjIHVuc2FmZUNyZWF0ZUVsZW1lbnRFeCA/X3R5cGUgP25hbWUgZG9jIGVsdCA9XG4gIGlmIFBvbHkuKF90eXBlID0gTm9uZSkgJiYgUG9seS4obmFtZSA9IE5vbmUpXG4gIHRoZW4gSnMuVW5zYWZlLmNvZXJjZSAoY3JlYXRlRWxlbWVudCBkb2MgZWx0KVxuICBlbHNlXG4gICAgbWF0Y2ggIWNyZWF0ZUVsZW1lbnRTeW50YXggd2l0aFxuICAgIHwgYFN0YW5kYXJkIC0+XG4gICAgICAgIGxldCByZXMgPSBKcy5VbnNhZmUuY29lcmNlIChjcmVhdGVFbGVtZW50IGRvYyBlbHQpIGluXG4gICAgICAgIG9wdF9pdGVyIF90eXBlIChmdW4gdCAtPiByZXMjIy5fdHlwZSA6PSB0KTtcbiAgICAgICAgb3B0X2l0ZXIgbmFtZSAoZnVuIG4gLT4gcmVzIyMubmFtZSA6PSBuKTtcbiAgICAgICAgcmVzXG4gICAgfCBgRXh0ZW5kZWQgLT5cbiAgICAgICAgbGV0IGEgPSBuZXclanMgSnMuYXJyYXlfZW1wdHkgaW5cbiAgICAgICAgaWdub3JlIChhIyNwdXNoXzIgKEpzLnN0cmluZyBcIjxcIikgKEpzLnN0cmluZyBlbHQpKTtcbiAgICAgICAgb3B0X2l0ZXIgX3R5cGUgKGZ1biB0IC0+XG4gICAgICAgICAgICBpZ25vcmUgKGEjI3B1c2hfMyAoSnMuc3RyaW5nIFwiIHR5cGU9XFxcIlwiKSAoaHRtbF9lc2NhcGUgdCkgKEpzLnN0cmluZyBcIlxcXCJcIikpKTtcbiAgICAgICAgb3B0X2l0ZXIgbmFtZSAoZnVuIG4gLT5cbiAgICAgICAgICAgIGlnbm9yZSAoYSMjcHVzaF8zIChKcy5zdHJpbmcgXCIgbmFtZT1cXFwiXCIpIChodG1sX2VzY2FwZSBuKSAoSnMuc3RyaW5nIFwiXFxcIlwiKSkpO1xuICAgICAgICBpZ25vcmUgKGEjI3B1c2ggKEpzLnN0cmluZyBcIj5cIikpO1xuICAgICAgICBKcy5VbnNhZmUuY29lcmNlIChkb2MjI2NyZWF0ZUVsZW1lbnQgKGEjI2pvaW4gKEpzLnN0cmluZyBcIlwiKSkpXG4gICAgfCBgVW5rbm93biAtPlxuICAgICAgICBjcmVhdGVFbGVtZW50U3ludGF4IDo9XG4gICAgICAgICAgaWYgdHJ5XG4gICAgICAgICAgICAgICBsZXQgZWwgOiBpbnB1dEVsZW1lbnQgSnMudCA9XG4gICAgICAgICAgICAgICAgIEpzLlVuc2FmZS5jb2VyY2VcbiAgICAgICAgICAgICAgICAgICAoZG9jdW1lbnQjI2NyZWF0ZUVsZW1lbnQgKEpzLnN0cmluZyBcIjxpbnB1dCBuYW1lPVxcXCJ4XFxcIj5cIikpXG4gICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgZWwjIy50YWdOYW1lIyN0b0xvd2VyQ2FzZSA9PSBKcy5zdHJpbmcgXCJpbnB1dFwiXG4gICAgICAgICAgICAgICAmJiBlbCMjLm5hbWUgPT0gSnMuc3RyaW5nIFwieFwiXG4gICAgICAgICAgICAgd2l0aCBfIC0+IGZhbHNlXG4gICAgICAgICAgdGhlbiBgRXh0ZW5kZWRcbiAgICAgICAgICBlbHNlIGBTdGFuZGFyZDtcbiAgICAgICAgdW5zYWZlQ3JlYXRlRWxlbWVudEV4ID9fdHlwZSA/bmFtZSBkb2MgZWx0XG5cbmxldCBjcmVhdGVIdG1sIGRvYyA6IGh0bWxFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImh0bWxcIlxuXG5sZXQgY3JlYXRlSGVhZCBkb2MgOiBoZWFkRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJoZWFkXCJcblxubGV0IGNyZWF0ZUxpbmsgZG9jIDogbGlua0VsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwibGlua1wiXG5cbmxldCBjcmVhdGVUaXRsZSBkb2MgOiB0aXRsZUVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwidGl0bGVcIlxuXG5sZXQgY3JlYXRlTWV0YSBkb2MgOiBtZXRhRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJtZXRhXCJcblxubGV0IGNyZWF0ZUJhc2UgZG9jIDogYmFzZUVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiYmFzZVwiXG5cbmxldCBjcmVhdGVTdHlsZSBkb2MgOiBzdHlsZUVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwic3R5bGVcIlxuXG5sZXQgY3JlYXRlQm9keSBkb2MgOiBib2R5RWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJib2R5XCJcblxubGV0IGNyZWF0ZUZvcm0gZG9jIDogZm9ybUVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiZm9ybVwiXG5cbmxldCBjcmVhdGVPcHRncm91cCBkb2MgOiBvcHRHcm91cEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwib3B0Z3JvdXBcIlxuXG5sZXQgY3JlYXRlT3B0aW9uIGRvYyA6IG9wdGlvbkVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwib3B0aW9uXCJcblxubGV0IGNyZWF0ZVNlbGVjdCA/X3R5cGUgP25hbWUgZG9jIDogc2VsZWN0RWxlbWVudCB0ID1cbiAgdW5zYWZlQ3JlYXRlRWxlbWVudEV4ID9fdHlwZSA/bmFtZSBkb2MgXCJzZWxlY3RcIlxuXG5sZXQgY3JlYXRlSW5wdXQgP190eXBlID9uYW1lIGRvYyA6IGlucHV0RWxlbWVudCB0ID1cbiAgdW5zYWZlQ3JlYXRlRWxlbWVudEV4ID9fdHlwZSA/bmFtZSBkb2MgXCJpbnB1dFwiXG5cbmxldCBjcmVhdGVUZXh0YXJlYSA/X3R5cGUgP25hbWUgZG9jIDogdGV4dEFyZWFFbGVtZW50IHQgPVxuICB1bnNhZmVDcmVhdGVFbGVtZW50RXggP190eXBlID9uYW1lIGRvYyBcInRleHRhcmVhXCJcblxubGV0IGNyZWF0ZUJ1dHRvbiA/X3R5cGUgP25hbWUgZG9jIDogYnV0dG9uRWxlbWVudCB0ID1cbiAgdW5zYWZlQ3JlYXRlRWxlbWVudEV4ID9fdHlwZSA/bmFtZSBkb2MgXCJidXR0b25cIlxuXG5sZXQgY3JlYXRlTGFiZWwgZG9jIDogbGFiZWxFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImxhYmVsXCJcblxubGV0IGNyZWF0ZUZpZWxkc2V0IGRvYyA6IGZpZWxkU2V0RWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJmaWVsZHNldFwiXG5cbmxldCBjcmVhdGVMZWdlbmQgZG9jIDogbGVnZW5kRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJsZWdlbmRcIlxuXG5sZXQgY3JlYXRlVWwgZG9jIDogdUxpc3RFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInVsXCJcblxubGV0IGNyZWF0ZU9sIGRvYyA6IG9MaXN0RWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJvbFwiXG5cbmxldCBjcmVhdGVEbCBkb2MgOiBkTGlzdEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiZGxcIlxuXG5sZXQgY3JlYXRlTGkgZG9jIDogbGlFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImxpXCJcblxubGV0IGNyZWF0ZURpdiBkb2MgOiBkaXZFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImRpdlwiXG5cbmxldCBjcmVhdGVFbWJlZCBkb2MgOiBlbWJlZEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiZW1iZWRcIlxuXG5sZXQgY3JlYXRlUCBkb2MgOiBwYXJhZ3JhcGhFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInBcIlxuXG5sZXQgY3JlYXRlSDEgZG9jIDogaGVhZGluZ0VsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiaDFcIlxuXG5sZXQgY3JlYXRlSDIgZG9jIDogaGVhZGluZ0VsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiaDJcIlxuXG5sZXQgY3JlYXRlSDMgZG9jIDogaGVhZGluZ0VsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiaDNcIlxuXG5sZXQgY3JlYXRlSDQgZG9jIDogaGVhZGluZ0VsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiaDRcIlxuXG5sZXQgY3JlYXRlSDUgZG9jIDogaGVhZGluZ0VsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiaDVcIlxuXG5sZXQgY3JlYXRlSDYgZG9jIDogaGVhZGluZ0VsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiaDZcIlxuXG5sZXQgY3JlYXRlUSBkb2MgOiBxdW90ZUVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwicVwiXG5cbmxldCBjcmVhdGVCbG9ja3F1b3RlIGRvYyA6IHF1b3RlRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJibG9ja3F1b3RlXCJcblxubGV0IGNyZWF0ZVByZSBkb2MgOiBwcmVFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInByZVwiXG5cbmxldCBjcmVhdGVCciBkb2MgOiBickVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiYnJcIlxuXG5sZXQgY3JlYXRlSHIgZG9jIDogaHJFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImhyXCJcblxubGV0IGNyZWF0ZUlucyBkb2MgOiBtb2RFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImluc1wiXG5cbmxldCBjcmVhdGVEZWwgZG9jIDogbW9kRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJkZWxcIlxuXG5sZXQgY3JlYXRlQSBkb2MgOiBhbmNob3JFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImFcIlxuXG5sZXQgY3JlYXRlSW1nIGRvYyA6IGltYWdlRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJpbWdcIlxuXG5sZXQgY3JlYXRlT2JqZWN0IGRvYyA6IG9iamVjdEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwib2JqZWN0XCJcblxubGV0IGNyZWF0ZVBhcmFtIGRvYyA6IHBhcmFtRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJwYXJhbVwiXG5cbmxldCBjcmVhdGVNYXAgZG9jIDogbWFwRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJtYXBcIlxuXG5sZXQgY3JlYXRlQXJlYSBkb2MgOiBhcmVhRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJhcmVhXCJcblxubGV0IGNyZWF0ZVNjcmlwdCBkb2MgOiBzY3JpcHRFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInNjcmlwdFwiXG5cbmxldCBjcmVhdGVUYWJsZSBkb2MgOiB0YWJsZUVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwidGFibGVcIlxuXG5sZXQgY3JlYXRlQ2FwdGlvbiBkb2MgOiB0YWJsZUNhcHRpb25FbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImNhcHRpb25cIlxuXG5sZXQgY3JlYXRlQ29sIGRvYyA6IHRhYmxlQ29sRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJjb2xcIlxuXG5sZXQgY3JlYXRlQ29sZ3JvdXAgZG9jIDogdGFibGVDb2xFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImNvbGdyb3VwXCJcblxubGV0IGNyZWF0ZVRoZWFkIGRvYyA6IHRhYmxlU2VjdGlvbkVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwidGhlYWRcIlxuXG5sZXQgY3JlYXRlVGZvb3QgZG9jIDogdGFibGVTZWN0aW9uRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJ0Zm9vdFwiXG5cbmxldCBjcmVhdGVUYm9keSBkb2MgOiB0YWJsZVNlY3Rpb25FbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInRib2R5XCJcblxubGV0IGNyZWF0ZVRyIGRvYyA6IHRhYmxlUm93RWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJ0clwiXG5cbmxldCBjcmVhdGVUaCBkb2MgOiB0YWJsZUNlbGxFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInRoXCJcblxubGV0IGNyZWF0ZVRkIGRvYyA6IHRhYmxlQ2VsbEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwidGRcIlxuXG5sZXQgY3JlYXRlU3ViIGRvYyA9IGNyZWF0ZUVsZW1lbnQgZG9jIFwic3ViXCJcblxubGV0IGNyZWF0ZVN1cCBkb2MgPSBjcmVhdGVFbGVtZW50IGRvYyBcInN1cFwiXG5cbmxldCBjcmVhdGVTcGFuIGRvYyA9IGNyZWF0ZUVsZW1lbnQgZG9jIFwic3BhblwiXG5cbmxldCBjcmVhdGVUdCBkb2MgPSBjcmVhdGVFbGVtZW50IGRvYyBcInR0XCJcblxubGV0IGNyZWF0ZUkgZG9jID0gY3JlYXRlRWxlbWVudCBkb2MgXCJpXCJcblxubGV0IGNyZWF0ZUIgZG9jID0gY3JlYXRlRWxlbWVudCBkb2MgXCJiXCJcblxubGV0IGNyZWF0ZUJpZyBkb2MgPSBjcmVhdGVFbGVtZW50IGRvYyBcImJpZ1wiXG5cbmxldCBjcmVhdGVTbWFsbCBkb2MgPSBjcmVhdGVFbGVtZW50IGRvYyBcInNtYWxsXCJcblxubGV0IGNyZWF0ZUVtIGRvYyA9IGNyZWF0ZUVsZW1lbnQgZG9jIFwiZW1cIlxuXG5sZXQgY3JlYXRlU3Ryb25nIGRvYyA9IGNyZWF0ZUVsZW1lbnQgZG9jIFwic3Ryb25nXCJcblxubGV0IGNyZWF0ZUNpdGUgZG9jID0gY3JlYXRlRWxlbWVudCBkb2MgXCJjaXRlXCJcblxubGV0IGNyZWF0ZURmbiBkb2MgPSBjcmVhdGVFbGVtZW50IGRvYyBcImRmblwiXG5cbmxldCBjcmVhdGVDb2RlIGRvYyA9IGNyZWF0ZUVsZW1lbnQgZG9jIFwiY29kZVwiXG5cbmxldCBjcmVhdGVTYW1wIGRvYyA9IGNyZWF0ZUVsZW1lbnQgZG9jIFwic2FtcFwiXG5cbmxldCBjcmVhdGVLYmQgZG9jID0gY3JlYXRlRWxlbWVudCBkb2MgXCJrYmRcIlxuXG5sZXQgY3JlYXRlVmFyIGRvYyA9IGNyZWF0ZUVsZW1lbnQgZG9jIFwidmFyXCJcblxubGV0IGNyZWF0ZUFiYnIgZG9jID0gY3JlYXRlRWxlbWVudCBkb2MgXCJhYmJyXCJcblxubGV0IGNyZWF0ZURkIGRvYyA9IGNyZWF0ZUVsZW1lbnQgZG9jIFwiZGRcIlxuXG5sZXQgY3JlYXRlRHQgZG9jID0gY3JlYXRlRWxlbWVudCBkb2MgXCJkdFwiXG5cbmxldCBjcmVhdGVOb3NjcmlwdCBkb2MgPSBjcmVhdGVFbGVtZW50IGRvYyBcIm5vc2NyaXB0XCJcblxubGV0IGNyZWF0ZUFkZHJlc3MgZG9jID0gY3JlYXRlRWxlbWVudCBkb2MgXCJhZGRyZXNzXCJcblxubGV0IGNyZWF0ZUZyYW1lc2V0IGRvYyA6IGZyYW1lU2V0RWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJmcmFtZXNldFwiXG5cbmxldCBjcmVhdGVGcmFtZSBkb2MgOiBmcmFtZUVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiZnJhbWVcIlxuXG5sZXQgY3JlYXRlSWZyYW1lIGRvYyA6IGlGcmFtZUVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiaWZyYW1lXCJcblxubGV0IGNyZWF0ZUF1ZGlvIGRvYyA6IGF1ZGlvRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJhdWRpb1wiXG5cbmxldCBjcmVhdGVWaWRlbyBkb2MgOiBhdWRpb0VsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwidmlkZW9cIlxuXG5leGNlcHRpb24gQ2FudmFzX25vdF9hdmFpbGFibGVcblxubGV0IGNyZWF0ZUNhbnZhcyBkb2MgOiBjYW52YXNFbGVtZW50IHQgPVxuICBsZXQgYyA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiY2FudmFzXCIgaW5cbiAgaWYgbm90IChPcHQudGVzdCBjIyMuZ2V0Q29udGV4dCkgdGhlbiByYWlzZSBDYW52YXNfbm90X2F2YWlsYWJsZTtcbiAgY1xuXG5sZXQgaHRtbF9lbGVtZW50IDogaHRtbEVsZW1lbnQgdCBjb25zdHIgPSBKcy5VbnNhZmUuZ2xvYmFsIyMuX0hUTUxFbGVtZW50XG5cbm1vZHVsZSBDb2VyY2VUbyA9IHN0cnVjdFxuICBsZXQgZWxlbWVudCA6ICNEb20ubm9kZSBKcy50IC0+IGVsZW1lbnQgSnMudCBKcy5vcHQgPVxuICAgIGlmIGRlZiBodG1sX2VsZW1lbnQgPT0gdW5kZWZpbmVkXG4gICAgdGhlblxuICAgICAgKCogaWUgPCA5IGRvZXMgbm90IGhhdmUgSFRNTEVsZW1lbnQ6IHdlIGhhdmUgdG8gY2hlYXQgdG8gY2hlY2tcbiAgICAgICAgIHRoYXQgc29tZXRoaW5nIGlzIGFuIGh0bWwgZWxlbWVudCAqKVxuICAgICAgZnVuIGUgLT5cbiAgICAgIGlmIGRlZiAoSnMuVW5zYWZlLmNvZXJjZSBlKSMjLmlubmVySFRNTCA9PSB1bmRlZmluZWRcbiAgICAgIHRoZW4gSnMubnVsbFxuICAgICAgZWxzZSBKcy5zb21lIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgZWxzZVxuICAgICAgZnVuIGUgLT5cbiAgICAgIGlmIEpzLmluc3RhbmNlb2YgZSBodG1sX2VsZW1lbnQgdGhlbiBKcy5zb21lIChKcy5VbnNhZmUuY29lcmNlIGUpIGVsc2UgSnMubnVsbFxuXG4gIGxldCB1bnNhZmVDb2VyY2UgdGFnIChlIDogI2VsZW1lbnQgdCkgPVxuICAgIGlmIGUjIy50YWdOYW1lIyN0b0xvd2VyQ2FzZSA9PSBKcy5zdHJpbmcgdGFnXG4gICAgdGhlbiBKcy5zb21lIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgZWxzZSBKcy5udWxsXG5cbiAgbGV0IGEgZSA9IHVuc2FmZUNvZXJjZSBcImFcIiBlXG5cbiAgbGV0IGFyZWEgZSA9IHVuc2FmZUNvZXJjZSBcImFyZWFcIiBlXG5cbiAgbGV0IGJhc2UgZSA9IHVuc2FmZUNvZXJjZSBcImJhc2VcIiBlXG5cbiAgbGV0IGJsb2NrcXVvdGUgZSA9IHVuc2FmZUNvZXJjZSBcImJsb2NrcXVvdGVcIiBlXG5cbiAgbGV0IGJvZHkgZSA9IHVuc2FmZUNvZXJjZSBcImJvZHlcIiBlXG5cbiAgbGV0IGJyIGUgPSB1bnNhZmVDb2VyY2UgXCJiclwiIGVcblxuICBsZXQgYnV0dG9uIGUgPSB1bnNhZmVDb2VyY2UgXCJidXR0b25cIiBlXG5cbiAgbGV0IGNhbnZhcyBlID0gdW5zYWZlQ29lcmNlIFwiY2FudmFzXCIgZVxuXG4gIGxldCBjYXB0aW9uIGUgPSB1bnNhZmVDb2VyY2UgXCJjYXB0aW9uXCIgZVxuXG4gIGxldCBjb2wgZSA9IHVuc2FmZUNvZXJjZSBcImNvbFwiIGVcblxuICBsZXQgY29sZ3JvdXAgZSA9IHVuc2FmZUNvZXJjZSBcImNvbGdyb3VwXCIgZVxuXG4gIGxldCBkZWwgZSA9IHVuc2FmZUNvZXJjZSBcImRlbFwiIGVcblxuICBsZXQgZGl2IGUgPSB1bnNhZmVDb2VyY2UgXCJkaXZcIiBlXG5cbiAgbGV0IGRsIGUgPSB1bnNhZmVDb2VyY2UgXCJkbFwiIGVcblxuICBsZXQgZmllbGRzZXQgZSA9IHVuc2FmZUNvZXJjZSBcImZpZWxkc2V0XCIgZVxuXG4gIGxldCBlbWJlZCBlID0gdW5zYWZlQ29lcmNlIFwiZW1iZWRcIiBlXG5cbiAgbGV0IGZvcm0gZSA9IHVuc2FmZUNvZXJjZSBcImZvcm1cIiBlXG5cbiAgbGV0IGZyYW1lc2V0IGUgPSB1bnNhZmVDb2VyY2UgXCJmcmFtZXNldFwiIGVcblxuICBsZXQgZnJhbWUgZSA9IHVuc2FmZUNvZXJjZSBcImZyYW1lXCIgZVxuXG4gIGxldCBoMSBlID0gdW5zYWZlQ29lcmNlIFwiaDFcIiBlXG5cbiAgbGV0IGgyIGUgPSB1bnNhZmVDb2VyY2UgXCJoMlwiIGVcblxuICBsZXQgaDMgZSA9IHVuc2FmZUNvZXJjZSBcImgzXCIgZVxuXG4gIGxldCBoNCBlID0gdW5zYWZlQ29lcmNlIFwiaDRcIiBlXG5cbiAgbGV0IGg1IGUgPSB1bnNhZmVDb2VyY2UgXCJoNVwiIGVcblxuICBsZXQgaDYgZSA9IHVuc2FmZUNvZXJjZSBcImg2XCIgZVxuXG4gIGxldCBoZWFkIGUgPSB1bnNhZmVDb2VyY2UgXCJoZWFkXCIgZVxuXG4gIGxldCBociBlID0gdW5zYWZlQ29lcmNlIFwiaHJcIiBlXG5cbiAgbGV0IGh0bWwgZSA9IHVuc2FmZUNvZXJjZSBcImh0bWxcIiBlXG5cbiAgbGV0IGlmcmFtZSBlID0gdW5zYWZlQ29lcmNlIFwiaWZyYW1lXCIgZVxuXG4gIGxldCBpbWcgZSA9IHVuc2FmZUNvZXJjZSBcImltZ1wiIGVcblxuICBsZXQgaW5wdXQgZSA9IHVuc2FmZUNvZXJjZSBcImlucHV0XCIgZVxuXG4gIGxldCBpbnMgZSA9IHVuc2FmZUNvZXJjZSBcImluc1wiIGVcblxuICBsZXQgbGFiZWwgZSA9IHVuc2FmZUNvZXJjZSBcImxhYmVsXCIgZVxuXG4gIGxldCBsZWdlbmQgZSA9IHVuc2FmZUNvZXJjZSBcImxlZ2VuZFwiIGVcblxuICBsZXQgbGkgZSA9IHVuc2FmZUNvZXJjZSBcImxpXCIgZVxuXG4gIGxldCBsaW5rIGUgPSB1bnNhZmVDb2VyY2UgXCJsaW5rXCIgZVxuXG4gIGxldCBtYXAgZSA9IHVuc2FmZUNvZXJjZSBcIm1hcFwiIGVcblxuICBsZXQgbWV0YSBlID0gdW5zYWZlQ29lcmNlIFwibWV0YVwiIGVcblxuICBsZXQgX29iamVjdCBlID0gdW5zYWZlQ29lcmNlIFwib2JqZWN0XCIgZVxuXG4gIGxldCBvbCBlID0gdW5zYWZlQ29lcmNlIFwib2xcIiBlXG5cbiAgbGV0IG9wdGdyb3VwIGUgPSB1bnNhZmVDb2VyY2UgXCJvcHRncm91cFwiIGVcblxuICBsZXQgb3B0aW9uIGUgPSB1bnNhZmVDb2VyY2UgXCJvcHRpb25cIiBlXG5cbiAgbGV0IHAgZSA9IHVuc2FmZUNvZXJjZSBcInBcIiBlXG5cbiAgbGV0IHBhcmFtIGUgPSB1bnNhZmVDb2VyY2UgXCJwYXJhbVwiIGVcblxuICBsZXQgcHJlIGUgPSB1bnNhZmVDb2VyY2UgXCJwcmVcIiBlXG5cbiAgbGV0IHEgZSA9IHVuc2FmZUNvZXJjZSBcInFcIiBlXG5cbiAgbGV0IHNjcmlwdCBlID0gdW5zYWZlQ29lcmNlIFwic2NyaXB0XCIgZVxuXG4gIGxldCBzZWxlY3QgZSA9IHVuc2FmZUNvZXJjZSBcInNlbGVjdFwiIGVcblxuICBsZXQgc3R5bGUgZSA9IHVuc2FmZUNvZXJjZSBcInN0eWxlXCIgZVxuXG4gIGxldCB0YWJsZSBlID0gdW5zYWZlQ29lcmNlIFwidGFibGVcIiBlXG5cbiAgbGV0IHRib2R5IGUgPSB1bnNhZmVDb2VyY2UgXCJ0Ym9keVwiIGVcblxuICBsZXQgdGQgZSA9IHVuc2FmZUNvZXJjZSBcInRkXCIgZVxuXG4gIGxldCB0ZXh0YXJlYSBlID0gdW5zYWZlQ29lcmNlIFwidGV4dGFyZWFcIiBlXG5cbiAgbGV0IHRmb290IGUgPSB1bnNhZmVDb2VyY2UgXCJ0Zm9vdFwiIGVcblxuICBsZXQgdGggZSA9IHVuc2FmZUNvZXJjZSBcInRoXCIgZVxuXG4gIGxldCB0aGVhZCBlID0gdW5zYWZlQ29lcmNlIFwidGhlYWRcIiBlXG5cbiAgbGV0IHRpdGxlIGUgPSB1bnNhZmVDb2VyY2UgXCJ0aXRsZVwiIGVcblxuICBsZXQgdHIgZSA9IHVuc2FmZUNvZXJjZSBcInRyXCIgZVxuXG4gIGxldCB1bCBlID0gdW5zYWZlQ29lcmNlIFwidWxcIiBlXG5cbiAgbGV0IGF1ZGlvIGUgPSB1bnNhZmVDb2VyY2UgXCJhdWRpb1wiIGVcblxuICBsZXQgdmlkZW8gZSA9IHVuc2FmZUNvZXJjZSBcInZpZGVvXCIgZVxuXG4gIGxldCB1bnNhZmVDb2VyY2VFdmVudCBjb25zdHIgKGV2IDogI2V2ZW50IHQpID1cbiAgICBpZiBkZWYgY29uc3RyICE9IHVuZGVmaW5lZCAmJiBKcy5pbnN0YW5jZW9mIGV2IGNvbnN0clxuICAgIHRoZW4gSnMuc29tZSAoSnMuVW5zYWZlLmNvZXJjZSBldilcbiAgICBlbHNlIEpzLm51bGxcblxuICBsZXQgbW91c2VFdmVudCBldiA9IHVuc2FmZUNvZXJjZUV2ZW50IEpzLlVuc2FmZS5nbG9iYWwjIy5fTW91c2VFdmVudCBldlxuXG4gIGxldCBrZXlib2FyZEV2ZW50IGV2ID0gdW5zYWZlQ29lcmNlRXZlbnQgSnMuVW5zYWZlLmdsb2JhbCMjLl9LZXlib2FyZEV2ZW50IGV2XG5cbiAgbGV0IHdoZWVsRXZlbnQgZXYgPSB1bnNhZmVDb2VyY2VFdmVudCBKcy5VbnNhZmUuZ2xvYmFsIyMuX1doZWVsRXZlbnQgZXZcblxuICBsZXQgbW91c2VTY3JvbGxFdmVudCBldiA9IHVuc2FmZUNvZXJjZUV2ZW50IEpzLlVuc2FmZS5nbG9iYWwjIy5fTW91c2VTY3JvbGxFdmVudCBldlxuXG4gIGxldCBwb3BTdGF0ZUV2ZW50IGV2ID0gdW5zYWZlQ29lcmNlRXZlbnQgSnMuVW5zYWZlLmdsb2JhbCMjLl9Qb3BTdGF0ZUV2ZW50IGV2XG5cbiAgbGV0IG1lc3NhZ2VFdmVudCBldiA9IHVuc2FmZUNvZXJjZUV2ZW50IEpzLlVuc2FmZS5nbG9iYWwjIy5fTWVzc2FnZUV2ZW50IGV2XG5lbmRcblxuKCoqKiopXG5cbmxldCBldmVudFRhcmdldCA9IERvbS5ldmVudFRhcmdldFxuXG5sZXQgZXZlbnRSZWxhdGVkVGFyZ2V0IChlIDogI21vdXNlRXZlbnQgdCkgPVxuICBPcHRkZWYuZ2V0IGUjIy5yZWxhdGVkVGFyZ2V0IChmdW4gKCkgLT5cbiAgICAgIG1hdGNoIEpzLnRvX3N0cmluZyBlIyMuX3R5cGUgd2l0aFxuICAgICAgfCBcIm1vdXNlb3ZlclwiIC0+IE9wdGRlZi5nZXQgZSMjLmZyb21FbGVtZW50IChmdW4gKCkgLT4gYXNzZXJ0IGZhbHNlKVxuICAgICAgfCBcIm1vdXNlb3V0XCIgLT4gT3B0ZGVmLmdldCBlIyMudG9FbGVtZW50IChmdW4gKCkgLT4gYXNzZXJ0IGZhbHNlKVxuICAgICAgfCBfIC0+IEpzLm51bGwpXG5cbmxldCBldmVudEFic29sdXRlUG9zaXRpb24nIChlIDogI21vdXNlRXZlbnQgdCkgPVxuICBsZXQgYm9keSA9IGRvY3VtZW50IyMuYm9keSBpblxuICBsZXQgaHRtbCA9IGRvY3VtZW50IyMuZG9jdW1lbnRFbGVtZW50IGluXG4gICggZSMjLmNsaWVudFggKyBib2R5IyMuc2Nyb2xsTGVmdCArIGh0bWwjIy5zY3JvbGxMZWZ0XG4gICwgZSMjLmNsaWVudFkgKyBib2R5IyMuc2Nyb2xsVG9wICsgaHRtbCMjLnNjcm9sbFRvcCApXG5cbmxldCBldmVudEFic29sdXRlUG9zaXRpb24gKGUgOiAjbW91c2VFdmVudCB0KSA9XG4gIE9wdGRlZi5jYXNlXG4gICAgZSMjLnBhZ2VYXG4gICAgKGZ1biAoKSAtPiBldmVudEFic29sdXRlUG9zaXRpb24nIGUpXG4gICAgKGZ1biB4IC0+IE9wdGRlZi5jYXNlIGUjIy5wYWdlWSAoZnVuICgpIC0+IGV2ZW50QWJzb2x1dGVQb3NpdGlvbicgZSkgKGZ1biB5IC0+IHgsIHkpKVxuXG5sZXQgZWxlbWVudENsaWVudFBvc2l0aW9uIChlIDogI2VsZW1lbnQgdCkgPVxuICBsZXQgciA9IGUjI2dldEJvdW5kaW5nQ2xpZW50UmVjdCBpblxuICBsZXQgYm9keSA9IGRvY3VtZW50IyMuYm9keSBpblxuICBsZXQgaHRtbCA9IGRvY3VtZW50IyMuZG9jdW1lbnRFbGVtZW50IGluXG4gICggdHJ1bmNhdGUgciMjLmxlZnQgLSBib2R5IyMuY2xpZW50TGVmdCAtIGh0bWwjIy5jbGllbnRMZWZ0XG4gICwgdHJ1bmNhdGUgciMjLnRvcCAtIGJvZHkjIy5jbGllbnRUb3AgLSBodG1sIyMuY2xpZW50VG9wIClcblxubGV0IGdldERvY3VtZW50U2Nyb2xsICgpID1cbiAgbGV0IGJvZHkgPSBkb2N1bWVudCMjLmJvZHkgaW5cbiAgbGV0IGh0bWwgPSBkb2N1bWVudCMjLmRvY3VtZW50RWxlbWVudCBpblxuICBib2R5IyMuc2Nyb2xsTGVmdCArIGh0bWwjIy5zY3JvbGxMZWZ0LCBib2R5IyMuc2Nyb2xsVG9wICsgaHRtbCMjLnNjcm9sbFRvcFxuXG5sZXQgYnV0dG9uUHJlc3NlZCAoZXYgOiAjbW91c2VFdmVudCBKcy50KSA9XG4gIEpzLk9wdGRlZi5jYXNlXG4gICAgZXYjIy53aGljaFxuICAgIChmdW4gKCkgLT5cbiAgICAgIG1hdGNoIGV2IyMuYnV0dG9uIHdpdGhcbiAgICAgIHwgMSAtPiBMZWZ0X2J1dHRvblxuICAgICAgfCAyIC0+IFJpZ2h0X2J1dHRvblxuICAgICAgfCA0IC0+IE1pZGRsZV9idXR0b25cbiAgICAgIHwgXyAtPiBOb19idXR0b24pXG4gICAgKGZ1biB4IC0+IHgpXG5cbmxldCBhZGRNb3VzZXdoZWVsRXZlbnRMaXN0ZW5lcldpdGhPcHRpb25zIGUgP2NhcHR1cmUgP29uY2UgP3Bhc3NpdmUgaCA9XG4gIGFkZEV2ZW50TGlzdGVuZXJXaXRoT3B0aW9uc1xuICAgID9jYXB0dXJlXG4gICAgP29uY2VcbiAgICA/cGFzc2l2ZVxuICAgIGVcbiAgICBFdmVudC53aGVlbFxuICAgIChoYW5kbGVyIChmdW4gKGUgOiBtb3VzZXdoZWVsRXZlbnQgdCkgLT5cbiAgICAgICAgIGxldCBkeCA9IC1PcHRkZWYuZ2V0IGUjIy53aGVlbERlbHRhWCAoZnVuICgpIC0+IDApIC8gNDAgaW5cbiAgICAgICAgIGxldCBkeSA9IC1PcHRkZWYuZ2V0IGUjIy53aGVlbERlbHRhWSAoZnVuICgpIC0+IGUjIy53aGVlbERlbHRhKSAvIDQwIGluXG4gICAgICAgICBoIChlIDo+IG1vdXNlRXZlbnQgdCkgfmR4IH5keSkpXG5cbmxldCBhZGRNb3VzZXdoZWVsRXZlbnRMaXN0ZW5lciBlIGggY2FwdCA9XG4gIGFkZE1vdXNld2hlZWxFdmVudExpc3RlbmVyV2l0aE9wdGlvbnMgfmNhcHR1cmU6Y2FwdCBlIGhcblxuKCoqKioqKVxuXG5tb2R1bGUgS2V5Ym9hcmRfY29kZSA9IHN0cnVjdFxuICB0eXBlIHQgPVxuICAgIHwgVW5pZGVudGlmaWVkXG4gICAgKCogQWxwaGFiZXRpYyBDaGFyYWN0ZXJzICopXG4gICAgfCBLZXlBXG4gICAgfCBLZXlCXG4gICAgfCBLZXlDXG4gICAgfCBLZXlEXG4gICAgfCBLZXlFXG4gICAgfCBLZXlGXG4gICAgfCBLZXlHXG4gICAgfCBLZXlIXG4gICAgfCBLZXlJXG4gICAgfCBLZXlKXG4gICAgfCBLZXlLXG4gICAgfCBLZXlMXG4gICAgfCBLZXlNXG4gICAgfCBLZXlOXG4gICAgfCBLZXlPXG4gICAgfCBLZXlQXG4gICAgfCBLZXlRXG4gICAgfCBLZXlSXG4gICAgfCBLZXlTXG4gICAgfCBLZXlUXG4gICAgfCBLZXlVXG4gICAgfCBLZXlWXG4gICAgfCBLZXlXXG4gICAgfCBLZXlYXG4gICAgfCBLZXlZXG4gICAgfCBLZXlaXG4gICAgKCogRGlnaXRzICopXG4gICAgfCBEaWdpdDBcbiAgICB8IERpZ2l0MVxuICAgIHwgRGlnaXQyXG4gICAgfCBEaWdpdDNcbiAgICB8IERpZ2l0NFxuICAgIHwgRGlnaXQ1XG4gICAgfCBEaWdpdDZcbiAgICB8IERpZ2l0N1xuICAgIHwgRGlnaXQ4XG4gICAgfCBEaWdpdDlcbiAgICB8IE1pbnVzXG4gICAgfCBFcXVhbFxuICAgICgqIFdoaXRlc3BhY2UgKilcbiAgICB8IFRhYlxuICAgIHwgRW50ZXJcbiAgICB8IFNwYWNlXG4gICAgKCogRWRpdGluZyAqKVxuICAgIHwgRXNjYXBlXG4gICAgfCBCYWNrc3BhY2VcbiAgICB8IEluc2VydFxuICAgIHwgRGVsZXRlXG4gICAgfCBDYXBzTG9ja1xuICAgICgqIE1pc2MgUHJpbnRhYmxlICopXG4gICAgfCBCcmFja2V0TGVmdFxuICAgIHwgQnJhY2tldFJpZ2h0XG4gICAgfCBTZW1pY29sb25cbiAgICB8IFF1b3RlXG4gICAgfCBCYWNrcXVvdGVcbiAgICB8IEJhY2tzbGFzaFxuICAgIHwgQ29tbWFcbiAgICB8IFBlcmlvZFxuICAgIHwgU2xhc2hcbiAgICAoKiBGdW5jdGlvbiBrZXlzICopXG4gICAgfCBGMVxuICAgIHwgRjJcbiAgICB8IEYzXG4gICAgfCBGNFxuICAgIHwgRjVcbiAgICB8IEY2XG4gICAgfCBGN1xuICAgIHwgRjhcbiAgICB8IEY5XG4gICAgfCBGMTBcbiAgICB8IEYxMVxuICAgIHwgRjEyXG4gICAgKCogTnVtcGFkIGtleXMgKilcbiAgICB8IE51bXBhZDBcbiAgICB8IE51bXBhZDFcbiAgICB8IE51bXBhZDJcbiAgICB8IE51bXBhZDNcbiAgICB8IE51bXBhZDRcbiAgICB8IE51bXBhZDVcbiAgICB8IE51bXBhZDZcbiAgICB8IE51bXBhZDdcbiAgICB8IE51bXBhZDhcbiAgICB8IE51bXBhZDlcbiAgICB8IE51bXBhZE11bHRpcGx5XG4gICAgfCBOdW1wYWRTdWJ0cmFjdFxuICAgIHwgTnVtcGFkQWRkXG4gICAgfCBOdW1wYWREZWNpbWFsXG4gICAgfCBOdW1wYWRFcXVhbFxuICAgIHwgTnVtcGFkRW50ZXJcbiAgICB8IE51bXBhZERpdmlkZVxuICAgIHwgTnVtTG9ja1xuICAgICgqIE1vZGlmaWVyIGtleXMgKilcbiAgICB8IENvbnRyb2xMZWZ0XG4gICAgfCBDb250cm9sUmlnaHRcbiAgICB8IE1ldGFMZWZ0XG4gICAgfCBNZXRhUmlnaHRcbiAgICB8IFNoaWZ0TGVmdFxuICAgIHwgU2hpZnRSaWdodFxuICAgIHwgQWx0TGVmdFxuICAgIHwgQWx0UmlnaHRcbiAgICAoKiBBcnJvdyBrZXlzICopXG4gICAgfCBBcnJvd0xlZnRcbiAgICB8IEFycm93UmlnaHRcbiAgICB8IEFycm93VXBcbiAgICB8IEFycm93RG93blxuICAgICgqIE5hdmlnYXRpb24gKilcbiAgICB8IFBhZ2VVcFxuICAgIHwgUGFnZURvd25cbiAgICB8IEhvbWVcbiAgICB8IEVuZFxuICAgICgqIFNvdW5kICopXG4gICAgfCBWb2x1bWVNdXRlXG4gICAgfCBWb2x1bWVEb3duXG4gICAgfCBWb2x1bWVVcFxuICAgICgqIE1lZGlhICopXG4gICAgfCBNZWRpYVRyYWNrUHJldmlvdXNcbiAgICB8IE1lZGlhVHJhY2tOZXh0XG4gICAgfCBNZWRpYVBsYXlQYXVzZVxuICAgIHwgTWVkaWFTdG9wXG4gICAgKCogQnJvd3NlciBzcGVjaWFsICopXG4gICAgfCBDb250ZXh0TWVudVxuICAgIHwgQnJvd3NlclNlYXJjaFxuICAgIHwgQnJvd3NlckhvbWVcbiAgICB8IEJyb3dzZXJGYXZvcml0ZXNcbiAgICB8IEJyb3dzZXJSZWZyZXNoXG4gICAgfCBCcm93c2VyU3RvcFxuICAgIHwgQnJvd3NlckZvcndhcmRcbiAgICB8IEJyb3dzZXJCYWNrXG4gICAgKCogTWlzYyAqKVxuICAgIHwgT1NMZWZ0XG4gICAgfCBPU1JpZ2h0XG4gICAgfCBTY3JvbGxMb2NrXG4gICAgfCBQcmludFNjcmVlblxuICAgIHwgSW50bEJhY2tzbGFzaFxuICAgIHwgSW50bFllblxuICAgIHwgUGF1c2VcblxuICBsZXQgdHJ5X2NvZGUgdiA9XG4gICAgbWF0Y2ggSnMudG9fc3RyaW5nIHYgd2l0aFxuICAgICgqIEFscGhhYmV0aWMgQ2hhcmFjdGVycyAqKVxuICAgIHwgXCJLZXlBXCIgLT4gS2V5QVxuICAgIHwgXCJLZXlCXCIgLT4gS2V5QlxuICAgIHwgXCJLZXlDXCIgLT4gS2V5Q1xuICAgIHwgXCJLZXlEXCIgLT4gS2V5RFxuICAgIHwgXCJLZXlFXCIgLT4gS2V5RVxuICAgIHwgXCJLZXlGXCIgLT4gS2V5RlxuICAgIHwgXCJLZXlHXCIgLT4gS2V5R1xuICAgIHwgXCJLZXlIXCIgLT4gS2V5SFxuICAgIHwgXCJLZXlJXCIgLT4gS2V5SVxuICAgIHwgXCJLZXlKXCIgLT4gS2V5SlxuICAgIHwgXCJLZXlLXCIgLT4gS2V5S1xuICAgIHwgXCJLZXlMXCIgLT4gS2V5TFxuICAgIHwgXCJLZXlNXCIgLT4gS2V5TVxuICAgIHwgXCJLZXlOXCIgLT4gS2V5TlxuICAgIHwgXCJLZXlPXCIgLT4gS2V5T1xuICAgIHwgXCJLZXlQXCIgLT4gS2V5UFxuICAgIHwgXCJLZXlRXCIgLT4gS2V5UVxuICAgIHwgXCJLZXlSXCIgLT4gS2V5UlxuICAgIHwgXCJLZXlTXCIgLT4gS2V5U1xuICAgIHwgXCJLZXlUXCIgLT4gS2V5VFxuICAgIHwgXCJLZXlVXCIgLT4gS2V5VVxuICAgIHwgXCJLZXlWXCIgLT4gS2V5VlxuICAgIHwgXCJLZXlXXCIgLT4gS2V5V1xuICAgIHwgXCJLZXlYXCIgLT4gS2V5WFxuICAgIHwgXCJLZXlZXCIgLT4gS2V5WVxuICAgIHwgXCJLZXlaXCIgLT4gS2V5WlxuICAgICgqIERpZ2l0cyAqKVxuICAgIHwgXCJEaWdpdDBcIiAtPiBEaWdpdDBcbiAgICB8IFwiRGlnaXQxXCIgLT4gRGlnaXQxXG4gICAgfCBcIkRpZ2l0MlwiIC0+IERpZ2l0MlxuICAgIHwgXCJEaWdpdDNcIiAtPiBEaWdpdDNcbiAgICB8IFwiRGlnaXQ0XCIgLT4gRGlnaXQ0XG4gICAgfCBcIkRpZ2l0NVwiIC0+IERpZ2l0NVxuICAgIHwgXCJEaWdpdDZcIiAtPiBEaWdpdDZcbiAgICB8IFwiRGlnaXQ3XCIgLT4gRGlnaXQ3XG4gICAgfCBcIkRpZ2l0OFwiIC0+IERpZ2l0OFxuICAgIHwgXCJEaWdpdDlcIiAtPiBEaWdpdDlcbiAgICB8IFwiTWludXNcIiAtPiBNaW51c1xuICAgIHwgXCJFcXVhbFwiIC0+IEVxdWFsXG4gICAgKCogV2hpdGVzcGFjZSAqKVxuICAgIHwgXCJUYWJcIiAtPiBUYWJcbiAgICB8IFwiRW50ZXJcIiAtPiBFbnRlclxuICAgIHwgXCJTcGFjZVwiIC0+IFNwYWNlXG4gICAgKCogRWRpdGluZyAqKVxuICAgIHwgXCJFc2NhcGVcIiAtPiBFc2NhcGVcbiAgICB8IFwiQmFja3NwYWNlXCIgLT4gQmFja3NwYWNlXG4gICAgfCBcIkluc2VydFwiIC0+IEluc2VydFxuICAgIHwgXCJEZWxldGVcIiAtPiBEZWxldGVcbiAgICB8IFwiQ2Fwc0xvY2tcIiAtPiBDYXBzTG9ja1xuICAgICgqIE1pc2MgUHJpbnRhYmxlICopXG4gICAgfCBcIkJyYWNrZXRMZWZ0XCIgLT4gQnJhY2tldExlZnRcbiAgICB8IFwiQnJhY2tldFJpZ2h0XCIgLT4gQnJhY2tldFJpZ2h0XG4gICAgfCBcIlNlbWljb2xvblwiIC0+IFNlbWljb2xvblxuICAgIHwgXCJRdW90ZVwiIC0+IFF1b3RlXG4gICAgfCBcIkJhY2txdW90ZVwiIC0+IEJhY2txdW90ZVxuICAgIHwgXCJCYWNrc2xhc2hcIiAtPiBCYWNrc2xhc2hcbiAgICB8IFwiQ29tbWFcIiAtPiBDb21tYVxuICAgIHwgXCJQZXJpb2RcIiAtPiBQZXJpb2RcbiAgICB8IFwiU2xhc2hcIiAtPiBTbGFzaFxuICAgICgqIEZ1bmN0aW9uIGtleXMgKilcbiAgICB8IFwiRjFcIiAtPiBGMVxuICAgIHwgXCJGMlwiIC0+IEYyXG4gICAgfCBcIkYzXCIgLT4gRjNcbiAgICB8IFwiRjRcIiAtPiBGNFxuICAgIHwgXCJGNVwiIC0+IEY1XG4gICAgfCBcIkY2XCIgLT4gRjZcbiAgICB8IFwiRjdcIiAtPiBGN1xuICAgIHwgXCJGOFwiIC0+IEY4XG4gICAgfCBcIkY5XCIgLT4gRjlcbiAgICB8IFwiRjEwXCIgLT4gRjEwXG4gICAgfCBcIkYxMVwiIC0+IEYxMVxuICAgIHwgXCJGMTJcIiAtPiBGMTJcbiAgICAoKiBOdW1wYWQga2V5cyAqKVxuICAgIHwgXCJOdW1wYWQwXCIgLT4gTnVtcGFkMFxuICAgIHwgXCJOdW1wYWQxXCIgLT4gTnVtcGFkMVxuICAgIHwgXCJOdW1wYWQyXCIgLT4gTnVtcGFkMlxuICAgIHwgXCJOdW1wYWQzXCIgLT4gTnVtcGFkM1xuICAgIHwgXCJOdW1wYWQ0XCIgLT4gTnVtcGFkNFxuICAgIHwgXCJOdW1wYWQ1XCIgLT4gTnVtcGFkNVxuICAgIHwgXCJOdW1wYWQ2XCIgLT4gTnVtcGFkNlxuICAgIHwgXCJOdW1wYWQ3XCIgLT4gTnVtcGFkN1xuICAgIHwgXCJOdW1wYWQ4XCIgLT4gTnVtcGFkOFxuICAgIHwgXCJOdW1wYWQ5XCIgLT4gTnVtcGFkOVxuICAgIHwgXCJOdW1wYWRNdWx0aXBseVwiIC0+IE51bXBhZE11bHRpcGx5XG4gICAgfCBcIk51bXBhZFN1YnRyYWN0XCIgLT4gTnVtcGFkU3VidHJhY3RcbiAgICB8IFwiTnVtcGFkQWRkXCIgLT4gTnVtcGFkQWRkXG4gICAgfCBcIk51bXBhZERlY2ltYWxcIiAtPiBOdW1wYWREZWNpbWFsXG4gICAgfCBcIk51bXBhZEVxdWFsXCIgLT4gTnVtcGFkRXF1YWxcbiAgICB8IFwiTnVtcGFkRW50ZXJcIiAtPiBOdW1wYWRFbnRlclxuICAgIHwgXCJOdW1wYWREaXZpZGVcIiAtPiBOdW1wYWREaXZpZGVcbiAgICB8IFwiTnVtTG9ja1wiIC0+IE51bUxvY2tcbiAgICAoKiBNb2RpZmllciBrZXlzICopXG4gICAgfCBcIkNvbnRyb2xMZWZ0XCIgLT4gQ29udHJvbExlZnRcbiAgICB8IFwiQ29udHJvbFJpZ2h0XCIgLT4gQ29udHJvbFJpZ2h0XG4gICAgfCBcIk1ldGFMZWZ0XCIgLT4gTWV0YUxlZnRcbiAgICB8IFwiTWV0YVJpZ2h0XCIgLT4gTWV0YVJpZ2h0XG4gICAgfCBcIlNoaWZ0TGVmdFwiIC0+IFNoaWZ0TGVmdFxuICAgIHwgXCJTaGlmdFJpZ2h0XCIgLT4gU2hpZnRSaWdodFxuICAgIHwgXCJBbHRMZWZ0XCIgLT4gQWx0TGVmdFxuICAgIHwgXCJBbHRSaWdodFwiIC0+IEFsdFJpZ2h0XG4gICAgKCogQXJyb3cga2V5cyAqKVxuICAgIHwgXCJBcnJvd0xlZnRcIiAtPiBBcnJvd0xlZnRcbiAgICB8IFwiQXJyb3dSaWdodFwiIC0+IEFycm93UmlnaHRcbiAgICB8IFwiQXJyb3dVcFwiIC0+IEFycm93VXBcbiAgICB8IFwiQXJyb3dEb3duXCIgLT4gQXJyb3dEb3duXG4gICAgKCogTmF2aWdhdGlvbiAqKVxuICAgIHwgXCJQYWdlVXBcIiAtPiBQYWdlVXBcbiAgICB8IFwiUGFnZURvd25cIiAtPiBQYWdlRG93blxuICAgIHwgXCJIb21lXCIgLT4gSG9tZVxuICAgIHwgXCJFbmRcIiAtPiBFbmRcbiAgICAoKiBTb3VuZCAqKVxuICAgIHwgXCJWb2x1bWVNdXRlXCIgLT4gVm9sdW1lTXV0ZVxuICAgIHwgXCJWb2x1bWVEb3duXCIgLT4gVm9sdW1lRG93blxuICAgIHwgXCJWb2x1bWVVcFwiIC0+IFZvbHVtZVVwXG4gICAgKCogTWVkaWEgKilcbiAgICB8IFwiTWVkaWFUcmFja1ByZXZpb3VzXCIgLT4gTWVkaWFUcmFja1ByZXZpb3VzXG4gICAgfCBcIk1lZGlhVHJhY2tOZXh0XCIgLT4gTWVkaWFUcmFja05leHRcbiAgICB8IFwiTWVkaWFQbGF5UGF1c2VcIiAtPiBNZWRpYVBsYXlQYXVzZVxuICAgIHwgXCJNZWRpYVN0b3BcIiAtPiBNZWRpYVN0b3BcbiAgICAoKiBCcm93c2VyIHNwZWNpYWwgKilcbiAgICB8IFwiQ29udGV4dE1lbnVcIiAtPiBDb250ZXh0TWVudVxuICAgIHwgXCJCcm93c2VyU2VhcmNoXCIgLT4gQnJvd3NlclNlYXJjaFxuICAgIHwgXCJCcm93c2VySG9tZVwiIC0+IEJyb3dzZXJIb21lXG4gICAgfCBcIkJyb3dzZXJGYXZvcml0ZXNcIiAtPiBCcm93c2VyRmF2b3JpdGVzXG4gICAgfCBcIkJyb3dzZXJSZWZyZXNoXCIgLT4gQnJvd3NlclJlZnJlc2hcbiAgICB8IFwiQnJvd3NlclN0b3BcIiAtPiBCcm93c2VyU3RvcFxuICAgIHwgXCJCcm93c2VyRm9yd2FyZFwiIC0+IEJyb3dzZXJGb3J3YXJkXG4gICAgfCBcIkJyb3dzZXJCYWNrXCIgLT4gQnJvd3NlckJhY2tcbiAgICAoKiBNaXNjICopXG4gICAgfCBcIk9TTGVmdFwiIC0+IE9TTGVmdFxuICAgIHwgXCJPU1JpZ2h0XCIgLT4gT1NSaWdodFxuICAgIHwgXCJTY3JvbGxMb2NrXCIgLT4gU2Nyb2xsTG9ja1xuICAgIHwgXCJQcmludFNjcmVlblwiIC0+IFByaW50U2NyZWVuXG4gICAgfCBcIkludGxCYWNrc2xhc2hcIiAtPiBJbnRsQmFja3NsYXNoXG4gICAgfCBcIkludGxZZW5cIiAtPiBJbnRsWWVuXG4gICAgfCBcIlBhdXNlXCIgLT4gUGF1c2VcbiAgICB8IF8gLT4gVW5pZGVudGlmaWVkXG5cbiAgbGV0IHRyeV9rZXlfY29kZV9sZWZ0ID0gZnVuY3Rpb25cbiAgICB8IDE2IC0+IFNoaWZ0TGVmdFxuICAgIHwgMTcgLT4gQ29udHJvbExlZnRcbiAgICB8IDE4IC0+IEFsdExlZnRcbiAgICB8IDkxIC0+IE1ldGFMZWZ0XG4gICAgfCBfIC0+IFVuaWRlbnRpZmllZFxuXG4gIGxldCB0cnlfa2V5X2NvZGVfcmlnaHQgPSBmdW5jdGlvblxuICAgIHwgMTYgLT4gU2hpZnRSaWdodFxuICAgIHwgMTcgLT4gQ29udHJvbFJpZ2h0XG4gICAgfCAxOCAtPiBBbHRSaWdodFxuICAgIHwgOTEgLT4gTWV0YVJpZ2h0XG4gICAgfCBfIC0+IFVuaWRlbnRpZmllZFxuXG4gIGxldCB0cnlfa2V5X2NvZGVfbnVtcGFkID0gZnVuY3Rpb25cbiAgICB8IDQ2IC0+IE51bXBhZERlY2ltYWxcbiAgICB8IDQ1IC0+IE51bXBhZDBcbiAgICB8IDM1IC0+IE51bXBhZDFcbiAgICB8IDQwIC0+IE51bXBhZDJcbiAgICB8IDM0IC0+IE51bXBhZDNcbiAgICB8IDM3IC0+IE51bXBhZDRcbiAgICB8IDEyIC0+IE51bXBhZDVcbiAgICB8IDM5IC0+IE51bXBhZDZcbiAgICB8IDM2IC0+IE51bXBhZDdcbiAgICB8IDM4IC0+IE51bXBhZDhcbiAgICB8IDMzIC0+IE51bXBhZDlcbiAgICB8IDEzIC0+IE51bXBhZEVudGVyXG4gICAgfCAxMTEgLT4gTnVtcGFkRGl2aWRlXG4gICAgfCAxMDcgLT4gTnVtcGFkQWRkXG4gICAgfCAxMDkgLT4gTnVtcGFkU3VidHJhY3RcbiAgICB8IDEwNiAtPiBOdW1wYWRNdWx0aXBseVxuICAgIHwgMTEwIC0+IE51bXBhZERlY2ltYWxcbiAgICB8IDk2IC0+IE51bXBhZDBcbiAgICB8IDk3IC0+IE51bXBhZDFcbiAgICB8IDk4IC0+IE51bXBhZDJcbiAgICB8IDk5IC0+IE51bXBhZDNcbiAgICB8IDEwMCAtPiBOdW1wYWQ0XG4gICAgfCAxMDEgLT4gTnVtcGFkNVxuICAgIHwgMTAyIC0+IE51bXBhZDZcbiAgICB8IDEwMyAtPiBOdW1wYWQ3XG4gICAgfCAxMDQgLT4gTnVtcGFkOFxuICAgIHwgMTA1IC0+IE51bXBhZDlcbiAgICB8IF8gLT4gVW5pZGVudGlmaWVkXG5cbiAgbGV0IHRyeV9rZXlfY29kZV9ub3JtYWwgPSBmdW5jdGlvblxuICAgIHwgMjcgLT4gRXNjYXBlXG4gICAgfCAxMTIgLT4gRjFcbiAgICB8IDExMyAtPiBGMlxuICAgIHwgMTE0IC0+IEYzXG4gICAgfCAxMTUgLT4gRjRcbiAgICB8IDExNiAtPiBGNVxuICAgIHwgMTE3IC0+IEY2XG4gICAgfCAxMTggLT4gRjdcbiAgICB8IDExOSAtPiBGOFxuICAgIHwgMTIwIC0+IEY5XG4gICAgfCAxMjEgLT4gRjEwXG4gICAgfCAxMjIgLT4gRjExXG4gICAgfCAxMjMgLT4gRjEyXG4gICAgfCA0MiAtPiBQcmludFNjcmVlblxuICAgIHwgMTQ1IC0+IFNjcm9sbExvY2tcbiAgICB8IDE5IC0+IFBhdXNlXG4gICAgfCAxOTIgLT4gQmFja3F1b3RlXG4gICAgfCA0OSAtPiBEaWdpdDFcbiAgICB8IDUwIC0+IERpZ2l0MlxuICAgIHwgNTEgLT4gRGlnaXQzXG4gICAgfCA1MiAtPiBEaWdpdDRcbiAgICB8IDUzIC0+IERpZ2l0NVxuICAgIHwgNTQgLT4gRGlnaXQ2XG4gICAgfCA1NSAtPiBEaWdpdDdcbiAgICB8IDU2IC0+IERpZ2l0OFxuICAgIHwgNTcgLT4gRGlnaXQ5XG4gICAgfCA0OCAtPiBEaWdpdDBcbiAgICB8IDE4OSAtPiBNaW51c1xuICAgIHwgMTg3IC0+IEVxdWFsXG4gICAgfCA4IC0+IEJhY2tzcGFjZVxuICAgIHwgOSAtPiBUYWJcbiAgICB8IDgxIC0+IEtleVFcbiAgICB8IDg3IC0+IEtleVdcbiAgICB8IDY5IC0+IEtleUVcbiAgICB8IDgyIC0+IEtleVJcbiAgICB8IDg0IC0+IEtleVRcbiAgICB8IDg5IC0+IEtleVlcbiAgICB8IDg1IC0+IEtleVVcbiAgICB8IDczIC0+IEtleUlcbiAgICB8IDc5IC0+IEtleU9cbiAgICB8IDgwIC0+IEtleVBcbiAgICB8IDIxOSAtPiBCcmFja2V0TGVmdFxuICAgIHwgMjIxIC0+IEJyYWNrZXRSaWdodFxuICAgIHwgMjIwIC0+IEJhY2tzbGFzaFxuICAgIHwgMjAgLT4gQ2Fwc0xvY2tcbiAgICB8IDY1IC0+IEtleUFcbiAgICB8IDgzIC0+IEtleVNcbiAgICB8IDY4IC0+IEtleURcbiAgICB8IDcwIC0+IEtleUZcbiAgICB8IDcxIC0+IEtleUdcbiAgICB8IDcyIC0+IEtleUhcbiAgICB8IDc0IC0+IEtleUpcbiAgICB8IDc1IC0+IEtleUtcbiAgICB8IDc2IC0+IEtleUxcbiAgICB8IDE4NiAtPiBTZW1pY29sb25cbiAgICB8IDIyMiAtPiBRdW90ZVxuICAgIHwgMTMgLT4gRW50ZXJcbiAgICB8IDkwIC0+IEtleVpcbiAgICB8IDg4IC0+IEtleVhcbiAgICB8IDY3IC0+IEtleUNcbiAgICB8IDg2IC0+IEtleVZcbiAgICB8IDY2IC0+IEtleUJcbiAgICB8IDc4IC0+IEtleU5cbiAgICB8IDc3IC0+IEtleU1cbiAgICB8IDE4OCAtPiBDb21tYVxuICAgIHwgMTkwIC0+IFBlcmlvZFxuICAgIHwgMTkxIC0+IFNsYXNoXG4gICAgfCAzMiAtPiBTcGFjZVxuICAgIHwgOTMgLT4gQ29udGV4dE1lbnVcbiAgICB8IDQ1IC0+IEluc2VydFxuICAgIHwgMzYgLT4gSG9tZVxuICAgIHwgMzMgLT4gUGFnZVVwXG4gICAgfCA0NiAtPiBEZWxldGVcbiAgICB8IDM1IC0+IEVuZFxuICAgIHwgMzQgLT4gUGFnZURvd25cbiAgICB8IDM3IC0+IEFycm93TGVmdFxuICAgIHwgNDAgLT4gQXJyb3dEb3duXG4gICAgfCAzOSAtPiBBcnJvd1JpZ2h0XG4gICAgfCAzOCAtPiBBcnJvd1VwXG4gICAgfCBfIC0+IFVuaWRlbnRpZmllZFxuXG4gIGxldCBtYWtlX3VuaWRlbnRpZmllZCBfID0gVW5pZGVudGlmaWVkXG5cbiAgbGV0IHRyeV9uZXh0IHZhbHVlIGYgPSBmdW5jdGlvblxuICAgIHwgVW5pZGVudGlmaWVkIC0+IE9wdGRlZi5jYXNlIHZhbHVlIG1ha2VfdW5pZGVudGlmaWVkIGZcbiAgICB8IHYgLT4gdlxuXG4gIGxldCBydW5fbmV4dCB2YWx1ZSBmID0gZnVuY3Rpb25cbiAgICB8IFVuaWRlbnRpZmllZCAtPiBmIHZhbHVlXG4gICAgfCB2IC0+IHZcblxuICBsZXQgZ2V0X2tleV9jb2RlIGV2dCA9IGV2dCMjLmtleUNvZGVcblxuICBsZXQgdHJ5X2tleV9sb2NhdGlvbiBldnQgPVxuICAgIG1hdGNoIGV2dCMjLmxvY2F0aW9uIHdpdGhcbiAgICB8IDEgLT4gcnVuX25leHQgKGdldF9rZXlfY29kZSBldnQpIHRyeV9rZXlfY29kZV9sZWZ0XG4gICAgfCAyIC0+IHJ1bl9uZXh0IChnZXRfa2V5X2NvZGUgZXZ0KSB0cnlfa2V5X2NvZGVfcmlnaHRcbiAgICB8IDMgLT4gcnVuX25leHQgKGdldF9rZXlfY29kZSBldnQpIHRyeV9rZXlfY29kZV9udW1wYWRcbiAgICB8IF8gLT4gbWFrZV91bmlkZW50aWZpZWRcblxuICBsZXQgKCB8PiApIHggZiA9IGYgeFxuXG4gIGxldCBvZl9ldmVudCBldnQgPVxuICAgIFVuaWRlbnRpZmllZFxuICAgIHw+IHRyeV9uZXh0IGV2dCMjLmNvZGUgdHJ5X2NvZGVcbiAgICB8PiB0cnlfa2V5X2xvY2F0aW9uIGV2dFxuICAgIHw+IHJ1bl9uZXh0IChnZXRfa2V5X2NvZGUgZXZ0KSB0cnlfa2V5X2NvZGVfbm9ybWFsXG5cbiAgbGV0IG9mX2tleV9jb2RlID0gdHJ5X2tleV9jb2RlX25vcm1hbFxuZW5kXG5cbm1vZHVsZSBLZXlib2FyZF9rZXkgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0gVWNoYXIudCBvcHRpb25cblxuICBsZXQgY2hhcl9vZl9pbnQgdmFsdWUgPVxuICAgIGlmIDAgPCB2YWx1ZSB0aGVuIHRyeSBTb21lIChVY2hhci5vZl9pbnQgdmFsdWUpIHdpdGggXyAtPiBOb25lIGVsc2UgTm9uZVxuXG4gIGxldCBlbXB0eV9zdHJpbmcgXyA9IEpzLnN0cmluZyBcIlwiXG5cbiAgbGV0IG5vbmUgXyA9IE5vbmVcblxuICBsZXQgb2ZfZXZlbnQgZXZ0ID1cbiAgICBsZXQga2V5ID0gT3B0ZGVmLmdldCBldnQjIy5rZXkgZW1wdHlfc3RyaW5nIGluXG4gICAgbWF0Y2gga2V5IyMubGVuZ3RoIHdpdGhcbiAgICB8IDAgLT4gT3B0ZGVmLmNhc2UgZXZ0IyMuY2hhckNvZGUgbm9uZSBjaGFyX29mX2ludFxuICAgIHwgMSAtPiBjaGFyX29mX2ludCAoaW50X29mX2Zsb2F0IChrZXkjI2NoYXJDb2RlQXQgMCkpXG4gICAgfCBfIC0+IE5vbmVcbmVuZFxuXG4oKioqKiopXG5cbmxldCBlbGVtZW50IDogI0RvbS5lbGVtZW50IHQgLT4gZWxlbWVudCB0ID0gSnMuVW5zYWZlLmNvZXJjZVxuXG50eXBlIHRhZ2dlZEVsZW1lbnQgPVxuICB8IEEgb2YgYW5jaG9yRWxlbWVudCB0XG4gIHwgQXJlYSBvZiBhcmVhRWxlbWVudCB0XG4gIHwgQXVkaW8gb2YgYXVkaW9FbGVtZW50IHRcbiAgfCBCYXNlIG9mIGJhc2VFbGVtZW50IHRcbiAgfCBCbG9ja3F1b3RlIG9mIHF1b3RlRWxlbWVudCB0XG4gIHwgQm9keSBvZiBib2R5RWxlbWVudCB0XG4gIHwgQnIgb2YgYnJFbGVtZW50IHRcbiAgfCBCdXR0b24gb2YgYnV0dG9uRWxlbWVudCB0XG4gIHwgQ2FudmFzIG9mIGNhbnZhc0VsZW1lbnQgdFxuICB8IENhcHRpb24gb2YgdGFibGVDYXB0aW9uRWxlbWVudCB0XG4gIHwgQ29sIG9mIHRhYmxlQ29sRWxlbWVudCB0XG4gIHwgQ29sZ3JvdXAgb2YgdGFibGVDb2xFbGVtZW50IHRcbiAgfCBEZWwgb2YgbW9kRWxlbWVudCB0XG4gIHwgRGl2IG9mIGRpdkVsZW1lbnQgdFxuICB8IERsIG9mIGRMaXN0RWxlbWVudCB0XG4gIHwgRW1iZWQgb2YgZW1iZWRFbGVtZW50IHRcbiAgfCBGaWVsZHNldCBvZiBmaWVsZFNldEVsZW1lbnQgdFxuICB8IEZvcm0gb2YgZm9ybUVsZW1lbnQgdFxuICB8IEZyYW1lc2V0IG9mIGZyYW1lU2V0RWxlbWVudCB0XG4gIHwgRnJhbWUgb2YgZnJhbWVFbGVtZW50IHRcbiAgfCBIMSBvZiBoZWFkaW5nRWxlbWVudCB0XG4gIHwgSDIgb2YgaGVhZGluZ0VsZW1lbnQgdFxuICB8IEgzIG9mIGhlYWRpbmdFbGVtZW50IHRcbiAgfCBINCBvZiBoZWFkaW5nRWxlbWVudCB0XG4gIHwgSDUgb2YgaGVhZGluZ0VsZW1lbnQgdFxuICB8IEg2IG9mIGhlYWRpbmdFbGVtZW50IHRcbiAgfCBIZWFkIG9mIGhlYWRFbGVtZW50IHRcbiAgfCBIciBvZiBockVsZW1lbnQgdFxuICB8IEh0bWwgb2YgaHRtbEVsZW1lbnQgdFxuICB8IElmcmFtZSBvZiBpRnJhbWVFbGVtZW50IHRcbiAgfCBJbWcgb2YgaW1hZ2VFbGVtZW50IHRcbiAgfCBJbnB1dCBvZiBpbnB1dEVsZW1lbnQgdFxuICB8IElucyBvZiBtb2RFbGVtZW50IHRcbiAgfCBMYWJlbCBvZiBsYWJlbEVsZW1lbnQgdFxuICB8IExlZ2VuZCBvZiBsZWdlbmRFbGVtZW50IHRcbiAgfCBMaSBvZiBsaUVsZW1lbnQgdFxuICB8IExpbmsgb2YgbGlua0VsZW1lbnQgdFxuICB8IE1hcCBvZiBtYXBFbGVtZW50IHRcbiAgfCBNZXRhIG9mIG1ldGFFbGVtZW50IHRcbiAgfCBPYmplY3Qgb2Ygb2JqZWN0RWxlbWVudCB0XG4gIHwgT2wgb2Ygb0xpc3RFbGVtZW50IHRcbiAgfCBPcHRncm91cCBvZiBvcHRHcm91cEVsZW1lbnQgdFxuICB8IE9wdGlvbiBvZiBvcHRpb25FbGVtZW50IHRcbiAgfCBQIG9mIHBhcmFtRWxlbWVudCB0XG4gIHwgUGFyYW0gb2YgcGFyYW1FbGVtZW50IHRcbiAgfCBQcmUgb2YgcHJlRWxlbWVudCB0XG4gIHwgUSBvZiBxdW90ZUVsZW1lbnQgdFxuICB8IFNjcmlwdCBvZiBzY3JpcHRFbGVtZW50IHRcbiAgfCBTZWxlY3Qgb2Ygc2VsZWN0RWxlbWVudCB0XG4gIHwgU3R5bGUgb2Ygc3R5bGVFbGVtZW50IHRcbiAgfCBUYWJsZSBvZiB0YWJsZUVsZW1lbnQgdFxuICB8IFRib2R5IG9mIHRhYmxlU2VjdGlvbkVsZW1lbnQgdFxuICB8IFRkIG9mIHRhYmxlQ2VsbEVsZW1lbnQgdFxuICB8IFRleHRhcmVhIG9mIHRleHRBcmVhRWxlbWVudCB0XG4gIHwgVGZvb3Qgb2YgdGFibGVTZWN0aW9uRWxlbWVudCB0XG4gIHwgVGggb2YgdGFibGVDZWxsRWxlbWVudCB0XG4gIHwgVGhlYWQgb2YgdGFibGVTZWN0aW9uRWxlbWVudCB0XG4gIHwgVGl0bGUgb2YgdGl0bGVFbGVtZW50IHRcbiAgfCBUciBvZiB0YWJsZVJvd0VsZW1lbnQgdFxuICB8IFVsIG9mIHVMaXN0RWxlbWVudCB0XG4gIHwgVmlkZW8gb2YgdmlkZW9FbGVtZW50IHRcbiAgfCBPdGhlciBvZiBlbGVtZW50IHRcblxubGV0IG90aGVyIGUgPSBPdGhlciAoZSA6ICNlbGVtZW50IHQgOj4gZWxlbWVudCB0KVxuXG5sZXQgdGFnZ2VkIChlIDogI2VsZW1lbnQgdCkgPVxuICBsZXQgdGFnID0gSnMudG9fYnl0ZXN0cmluZyBlIyMudGFnTmFtZSMjdG9Mb3dlckNhc2UgaW5cbiAgaWYgU3RyaW5nLmxlbmd0aCB0YWcgPSAwXG4gIHRoZW4gb3RoZXIgZVxuICBlbHNlXG4gICAgbWF0Y2ggU3RyaW5nLnVuc2FmZV9nZXQgdGFnIDAgd2l0aFxuICAgIHwgJ2EnIC0+IChcbiAgICAgICAgbWF0Y2ggdGFnIHdpdGhcbiAgICAgICAgfCBcImFcIiAtPiBBIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJhcmVhXCIgLT4gQXJlYSAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwiYXVkaW9cIiAtPiBBdWRpbyAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IF8gLT4gb3RoZXIgZSlcbiAgICB8ICdiJyAtPiAoXG4gICAgICAgIG1hdGNoIHRhZyB3aXRoXG4gICAgICAgIHwgXCJiYXNlXCIgLT4gQmFzZSAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwiYmxvY2txdW90ZVwiIC0+IEJsb2NrcXVvdGUgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcImJvZHlcIiAtPiBCb2R5IChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJiclwiIC0+IEJyIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJidXR0b25cIiAtPiBCdXR0b24gKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBfIC0+IG90aGVyIGUpXG4gICAgfCAnYycgLT4gKFxuICAgICAgICBtYXRjaCB0YWcgd2l0aFxuICAgICAgICB8IFwiY2FudmFzXCIgLT4gQ2FudmFzIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJjYXB0aW9uXCIgLT4gQ2FwdGlvbiAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwiY29sXCIgLT4gQ29sIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJjb2xncm91cFwiIC0+IENvbGdyb3VwIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXyAtPiBvdGhlciBlKVxuICAgIHwgJ2QnIC0+IChcbiAgICAgICAgbWF0Y2ggdGFnIHdpdGhcbiAgICAgICAgfCBcImRlbFwiIC0+IERlbCAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwiZGl2XCIgLT4gRGl2IChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJkbFwiIC0+IERsIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXyAtPiBvdGhlciBlKVxuICAgIHwgJ2UnIC0+IChcbiAgICAgICAgbWF0Y2ggdGFnIHdpdGhcbiAgICAgICAgfCBcImVtYmVkXCIgLT4gRW1iZWQgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBfIC0+IG90aGVyIGUpXG4gICAgfCAnZicgLT4gKFxuICAgICAgICBtYXRjaCB0YWcgd2l0aFxuICAgICAgICB8IFwiZmllbGRzZXRcIiAtPiBGaWVsZHNldCAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwiZm9ybVwiIC0+IEZvcm0gKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcImZyYW1lc2V0XCIgLT4gRnJhbWVzZXQgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcImZyYW1lXCIgLT4gRnJhbWUgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBfIC0+IG90aGVyIGUpXG4gICAgfCAnaCcgLT4gKFxuICAgICAgICBtYXRjaCB0YWcgd2l0aFxuICAgICAgICB8IFwiaDFcIiAtPiBIMSAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwiaDJcIiAtPiBIMiAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwiaDNcIiAtPiBIMyAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwiaDRcIiAtPiBINCAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwiaDVcIiAtPiBINSAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwiaDZcIiAtPiBINiAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwiaGVhZFwiIC0+IEhlYWQgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcImhyXCIgLT4gSHIgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcImh0bWxcIiAtPiBIdG1sIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXyAtPiBvdGhlciBlKVxuICAgIHwgJ2knIC0+IChcbiAgICAgICAgbWF0Y2ggdGFnIHdpdGhcbiAgICAgICAgfCBcImlmcmFtZVwiIC0+IElmcmFtZSAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwiaW1nXCIgLT4gSW1nIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJpbnB1dFwiIC0+IElucHV0IChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJpbnNcIiAtPiBJbnMgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBfIC0+IG90aGVyIGUpXG4gICAgfCAnbCcgLT4gKFxuICAgICAgICBtYXRjaCB0YWcgd2l0aFxuICAgICAgICB8IFwibGFiZWxcIiAtPiBMYWJlbCAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwibGVnZW5kXCIgLT4gTGVnZW5kIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJsaVwiIC0+IExpIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJsaW5rXCIgLT4gTGluayAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IF8gLT4gb3RoZXIgZSlcbiAgICB8ICdtJyAtPiAoXG4gICAgICAgIG1hdGNoIHRhZyB3aXRoXG4gICAgICAgIHwgXCJtYXBcIiAtPiBNYXAgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcIm1ldGFcIiAtPiBNZXRhIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXyAtPiBvdGhlciBlKVxuICAgIHwgJ28nIC0+IChcbiAgICAgICAgbWF0Y2ggdGFnIHdpdGhcbiAgICAgICAgfCBcIm9iamVjdFwiIC0+IE9iamVjdCAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwib2xcIiAtPiBPbCAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwib3B0Z3JvdXBcIiAtPiBPcHRncm91cCAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwib3B0aW9uXCIgLT4gT3B0aW9uIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXyAtPiBvdGhlciBlKVxuICAgIHwgJ3AnIC0+IChcbiAgICAgICAgbWF0Y2ggdGFnIHdpdGhcbiAgICAgICAgfCBcInBcIiAtPiBQIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJwYXJhbVwiIC0+IFBhcmFtIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJwcmVcIiAtPiBQcmUgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBfIC0+IG90aGVyIGUpXG4gICAgfCAncScgLT4gKFxuICAgICAgICBtYXRjaCB0YWcgd2l0aFxuICAgICAgICB8IFwicVwiIC0+IFEgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBfIC0+IG90aGVyIGUpXG4gICAgfCAncycgLT4gKFxuICAgICAgICBtYXRjaCB0YWcgd2l0aFxuICAgICAgICB8IFwic2NyaXB0XCIgLT4gU2NyaXB0IChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJzZWxlY3RcIiAtPiBTZWxlY3QgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcInN0eWxlXCIgLT4gU3R5bGUgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBfIC0+IG90aGVyIGUpXG4gICAgfCAndCcgLT4gKFxuICAgICAgICBtYXRjaCB0YWcgd2l0aFxuICAgICAgICB8IFwidGFibGVcIiAtPiBUYWJsZSAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwidGJvZHlcIiAtPiBUYm9keSAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwidGRcIiAtPiBUZCAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwidGV4dGFyZWFcIiAtPiBUZXh0YXJlYSAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwidGZvb3RcIiAtPiBUZm9vdCAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwidGhcIiAtPiBUaCAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwidGhlYWRcIiAtPiBUaGVhZCAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwidGl0bGVcIiAtPiBUaXRsZSAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwidHJcIiAtPiBUciAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IF8gLT4gb3RoZXIgZSlcbiAgICB8ICd1JyAtPiAoXG4gICAgICAgIG1hdGNoIHRhZyB3aXRoXG4gICAgICAgIHwgXCJ1bFwiIC0+IFVsIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXyAtPiBvdGhlciBlKVxuICAgIHwgJ3YnIC0+IChcbiAgICAgICAgbWF0Y2ggdGFnIHdpdGhcbiAgICAgICAgfCBcInZpZGVvXCIgLT4gVmlkZW8gKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBfIC0+IG90aGVyIGUpXG4gICAgfCBfIC0+IG90aGVyIGVcblxubGV0IG9wdF90YWdnZWQgZSA9IE9wdC5jYXNlIGUgKGZ1biAoKSAtPiBOb25lKSAoZnVuIGUgLT4gU29tZSAodGFnZ2VkIGUpKVxuXG50eXBlIHRhZ2dlZEV2ZW50ID1cbiAgfCBNb3VzZUV2ZW50IG9mIG1vdXNlRXZlbnQgdFxuICB8IEtleWJvYXJkRXZlbnQgb2Yga2V5Ym9hcmRFdmVudCB0XG4gIHwgTWVzc2FnZUV2ZW50IG9mIG1lc3NhZ2VFdmVudCB0XG4gIHwgTW91c2V3aGVlbEV2ZW50IG9mIG1vdXNld2hlZWxFdmVudCB0XG4gIHwgTW91c2VTY3JvbGxFdmVudCBvZiBtb3VzZVNjcm9sbEV2ZW50IHRcbiAgfCBQb3BTdGF0ZUV2ZW50IG9mIHBvcFN0YXRlRXZlbnQgdFxuICB8IE90aGVyRXZlbnQgb2YgZXZlbnQgdFxuXG5sZXQgdGFnZ2VkRXZlbnQgKGV2IDogI2V2ZW50IEpzLnQpID1cbiAgSnMuT3B0LmNhc2VcbiAgICAoQ29lcmNlVG8ubW91c2VFdmVudCBldilcbiAgICAoZnVuICgpIC0+XG4gICAgICBKcy5PcHQuY2FzZVxuICAgICAgICAoQ29lcmNlVG8ua2V5Ym9hcmRFdmVudCBldilcbiAgICAgICAgKGZ1biAoKSAtPlxuICAgICAgICAgIEpzLk9wdC5jYXNlXG4gICAgICAgICAgICAoQ29lcmNlVG8ud2hlZWxFdmVudCBldilcbiAgICAgICAgICAgIChmdW4gKCkgLT5cbiAgICAgICAgICAgICAgSnMuT3B0LmNhc2VcbiAgICAgICAgICAgICAgICAoQ29lcmNlVG8ubW91c2VTY3JvbGxFdmVudCBldilcbiAgICAgICAgICAgICAgICAoZnVuICgpIC0+XG4gICAgICAgICAgICAgICAgICBKcy5PcHQuY2FzZVxuICAgICAgICAgICAgICAgICAgICAoQ29lcmNlVG8ucG9wU3RhdGVFdmVudCBldilcbiAgICAgICAgICAgICAgICAgICAgKGZ1biAoKSAtPlxuICAgICAgICAgICAgICAgICAgICAgIEpzLk9wdC5jYXNlXG4gICAgICAgICAgICAgICAgICAgICAgICAoQ29lcmNlVG8ubWVzc2FnZUV2ZW50IGV2KVxuICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoKSAtPiBPdGhlckV2ZW50IChldiA6PiBldmVudCB0KSlcbiAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gZXYgLT4gTWVzc2FnZUV2ZW50IGV2KSlcbiAgICAgICAgICAgICAgICAgICAgKGZ1biBldiAtPiBQb3BTdGF0ZUV2ZW50IGV2KSlcbiAgICAgICAgICAgICAgICAoZnVuIGV2IC0+IE1vdXNlU2Nyb2xsRXZlbnQgZXYpKVxuICAgICAgICAgICAgKGZ1biBldiAtPiBNb3VzZXdoZWVsRXZlbnQgZXYpKVxuICAgICAgICAoZnVuIGV2IC0+IEtleWJvYXJkRXZlbnQgZXYpKVxuICAgIChmdW4gZXYgLT4gTW91c2VFdmVudCBldilcblxubGV0IG9wdF90YWdnZWRFdmVudCBldiA9IE9wdC5jYXNlIGV2IChmdW4gKCkgLT4gTm9uZSkgKGZ1biBldiAtPiBTb21lICh0YWdnZWRFdmVudCBldikpXG5cbmxldCBzdG9wUHJvcGFnYXRpb24gZXYgPVxuICBsZXQgZSA9IEpzLlVuc2FmZS5jb2VyY2UgZXYgaW5cbiAgT3B0ZGVmLmNhc2VcbiAgICBlIyMuc3RvcFByb3BhZ2F0aW9uXG4gICAgKGZ1biAoKSAtPiBlIyMuY2FuY2VsQnViYmxlIDo9IEpzLl90cnVlKVxuICAgIChmdW4gXyAtPiBlIyNfc3RvcFByb3BhZ2F0aW9uKVxuXG5sZXQgX3JlcXVlc3RBbmltYXRpb25GcmFtZSA6ICh1bml0IC0+IHVuaXQpIEpzLmNhbGxiYWNrIC0+IHVuaXQgPVxuICBKcy5VbnNhZmUucHVyZV9leHByIChmdW4gXyAtPlxuICAgICAgbGV0IHcgPSBKcy5VbnNhZmUuY29lcmNlIHdpbmRvdyBpblxuICAgICAgbGV0IGwgPVxuICAgICAgICBbIHcjIy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWVcbiAgICAgICAgOyB3IyMubW96UmVxdWVzdEFuaW1hdGlvbkZyYW1lXG4gICAgICAgIDsgdyMjLndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZVxuICAgICAgICA7IHcjIy5vUmVxdWVzdEFuaW1hdGlvbkZyYW1lXG4gICAgICAgIDsgdyMjLm1zUmVxdWVzdEFuaW1hdGlvbkZyYW1lXG4gICAgICAgIF1cbiAgICAgIGluXG4gICAgICB0cnlcbiAgICAgICAgbGV0IHJlcSA9IExpc3QuZmluZCAoZnVuIGMgLT4gSnMuT3B0ZGVmLnRlc3QgYykgbCBpblxuICAgICAgICBmdW4gY2FsbGJhY2sgLT4gSnMuVW5zYWZlLmZ1bl9jYWxsIHJlcSBbfCBKcy5VbnNhZmUuaW5qZWN0IGNhbGxiYWNrIHxdXG4gICAgICB3aXRoIE5vdF9mb3VuZCAtPlxuICAgICAgICBsZXQgbm93ICgpID0gKG5ldyVqcyBKcy5kYXRlX25vdykjI2dldFRpbWUgaW5cbiAgICAgICAgbGV0IGxhc3QgPSByZWYgKG5vdyAoKSkgaW5cbiAgICAgICAgZnVuIGNhbGxiYWNrIC0+XG4gICAgICAgICAgbGV0IHQgPSBub3cgKCkgaW5cbiAgICAgICAgICBsZXQgZHQgPSAhbGFzdCArLiAoMTAwMC4gLy4gNjAuKSAtLiB0IGluXG4gICAgICAgICAgbGV0IGR0ID0gaWYgUG9seS4oZHQgPCAwLikgdGhlbiAwLiBlbHNlIGR0IGluXG4gICAgICAgICAgbGFzdCA6PSB0O1xuICAgICAgICAgIGlnbm9yZSAod2luZG93IyNzZXRUaW1lb3V0IGNhbGxiYWNrIGR0KSlcblxuKCoqKiopXG5cbmxldCBoYXNQdXNoU3RhdGUgKCkgPSBKcy5PcHRkZWYudGVzdCAoSnMuVW5zYWZlLmNvZXJjZSB3aW5kb3cjIy5oaXN0b3J5KSMjLnB1c2hTdGF0ZVxuXG5sZXQgaGFzUGxhY2Vob2xkZXIgKCkgPVxuICBsZXQgaSA9IGNyZWF0ZUlucHV0IGRvY3VtZW50IGluXG4gIEpzLk9wdGRlZi50ZXN0IChKcy5VbnNhZmUuY29lcmNlIGkpIyMucGxhY2Vob2xkZXJcblxubGV0IGhhc1JlcXVpcmVkICgpID1cbiAgbGV0IGkgPSBjcmVhdGVJbnB1dCBkb2N1bWVudCBpblxuICBKcy5PcHRkZWYudGVzdCAoSnMuVW5zYWZlLmNvZXJjZSBpKSMjLnJlcXVpcmVkXG5cbmxldCBvdmVyZmxvd19saW1pdCA9IDIxNDc0ODNfMDAwLlxuXG4oKiBtcyAqKVxuXG50eXBlIHRpbWVvdXRfaWRfc2FmZSA9IHRpbWVvdXRfaWQgb3B0aW9uIHJlZlxuXG5sZXQgc2V0VGltZW91dCBjYWxsYmFjayBkIDogdGltZW91dF9pZF9zYWZlID1cbiAgbGV0IGlkID0gcmVmIE5vbmUgaW5cbiAgbGV0IHJlYyBsb29wIGQgKCkgPVxuICAgIGxldCBzdGVwLCByZW1haW4gPVxuICAgICAgaWYgUG9seS4oZCA+IG92ZXJmbG93X2xpbWl0KSB0aGVuIG92ZXJmbG93X2xpbWl0LCBkIC0uIG92ZXJmbG93X2xpbWl0IGVsc2UgZCwgMC5cbiAgICBpblxuICAgIGxldCBjYiA9IGlmIFBvbHkuKHJlbWFpbiA9IDAuKSB0aGVuIGNhbGxiYWNrIGVsc2UgbG9vcCByZW1haW4gaW5cbiAgICBpZCA6PSBTb21lICh3aW5kb3cjI3NldFRpbWVvdXQgKEpzLndyYXBfY2FsbGJhY2sgY2IpIHN0ZXApXG4gIGluXG4gIGxvb3AgZCAoKTtcbiAgaWRcblxubGV0IGNsZWFyVGltZW91dCAoaWQgOiB0aW1lb3V0X2lkX3NhZmUpID1cbiAgbWF0Y2ggIWlkIHdpdGhcbiAgfCBOb25lIC0+ICgpXG4gIHwgU29tZSB4IC0+XG4gICAgICBpZCA6PSBOb25lO1xuICAgICAgd2luZG93IyNjbGVhclRpbWVvdXQgeFxuXG5sZXQganNfYXJyYXlfb2ZfY29sbGVjdGlvbiAoYyA6ICNlbGVtZW50IGNvbGxlY3Rpb24gSnMudCkgOiAjZWxlbWVudCBKcy50IEpzLmpzX2FycmF5IEpzLnRcbiAgICA9XG4gIEpzLlVuc2FmZS4obWV0aF9jYWxsIChqc19leHByIFwiW10uc2xpY2VcIikgXCJjYWxsXCIgW3wgaW5qZWN0IGMgfF0pXG4iLCIoKiBKc19vZl9vY2FtbCBsaWJyYXJ5XG4gKiBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuICogQ29weXJpZ2h0IChDKSAyMDExIFBpZXJyZSBDaGFtYmFydFxuICogTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbiAqIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4gKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuICopXG5cbm9wZW4gSnNcbm9wZW4gRG9tX2h0bWxcbm9wZW4hIEltcG9ydFxuXG5jbGFzcyB0eXBlIGZvcm1EYXRhID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGFwcGVuZCA6IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGFwcGVuZF9ibG9iIDoganNfc3RyaW5nIHQgLT4gRmlsZS5ibG9iIHQgLT4gdW5pdCBtZXRoXG4gIGVuZFxuXG5sZXQgZm9ybURhdGEgOiBmb3JtRGF0YSB0IGNvbnN0ciA9IEpzLlVuc2FmZS5nbG9iYWwjIy5fRm9ybURhdGFcblxubGV0IGZvcm1EYXRhX2Zvcm0gOiAoZm9ybUVsZW1lbnQgdCAtPiBmb3JtRGF0YSB0KSBjb25zdHIgPSBKcy5VbnNhZmUuZ2xvYmFsIyMuX0Zvcm1EYXRhXG5cbnR5cGUgZm9ybV9lbHQgPVxuICBbIGBTdHJpbmcgb2YganNfc3RyaW5nIHRcbiAgfCBgRmlsZSBvZiBGaWxlLmZpbGUgdFxuICBdXG5cbnR5cGUgZm9ybV9jb250ZW50cyA9XG4gIFsgYEZpZWxkcyBvZiAoc3RyaW5nICogZm9ybV9lbHQpIGxpc3QgcmVmXG4gIHwgYEZvcm1EYXRhIG9mIGZvcm1EYXRhIHRcbiAgXVxuXG5sZXQgcmVjIGZpbHRlcl9tYXAgZiA9IGZ1bmN0aW9uXG4gIHwgW10gLT4gW11cbiAgfCB2IDo6IHEgLT4gKFxuICAgICAgbWF0Y2ggZiB2IHdpdGhcbiAgICAgIHwgTm9uZSAtPiBmaWx0ZXJfbWFwIGYgcVxuICAgICAgfCBTb21lIHYnIC0+IHYnIDo6IGZpbHRlcl9tYXAgZiBxKVxuXG5jbGFzcyB0eXBlIHN1Ym1pdHRhYmxlRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBkaXNhYmxlZCA6IGJvb2wgdCBwcm9wXG5cbiAgICBtZXRob2QgbmFtZSA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB2YWx1ZSA6IGpzX3N0cmluZyB0IHByb3BcbiAgZW5kXG5cbmxldCBoYXZlX2NvbnRlbnQgKGVsdCA6IHN1Ym1pdHRhYmxlRWxlbWVudCB0KSA9XG4gIGVsdCMjLm5hbWUjIy5sZW5ndGggPiAwICYmIG5vdCAoSnMudG9fYm9vbCBlbHQjIy5kaXNhYmxlZClcblxubGV0IGdldF90ZXh0YXJlYV92YWwgKGVsdCA6IHRleHRBcmVhRWxlbWVudCB0KSA9XG4gIGlmIGhhdmVfY29udGVudCAoZWx0IDo+IHN1Ym1pdHRhYmxlRWxlbWVudCB0KVxuICB0aGVuXG4gICAgbGV0IG5hbWUgPSB0b19zdHJpbmcgZWx0IyMubmFtZSBpblxuICAgIFsgbmFtZSwgYFN0cmluZyBlbHQjIy52YWx1ZSBdXG4gIGVsc2UgW11cblxubGV0IGdldF9zZWxlY3RfdmFsIChlbHQgOiBzZWxlY3RFbGVtZW50IHQpID1cbiAgaWYgaGF2ZV9jb250ZW50IChlbHQgOj4gc3VibWl0dGFibGVFbGVtZW50IHQpXG4gIHRoZW5cbiAgICBsZXQgbmFtZSA9IHRvX3N0cmluZyBlbHQjIy5uYW1lIGluXG4gICAgaWYgdG9fYm9vbCBlbHQjIy5tdWx0aXBsZVxuICAgIHRoZW5cbiAgICAgIGxldCBvcHRpb25zID1cbiAgICAgICAgQXJyYXkuaW5pdCBlbHQjIy5vcHRpb25zIyMubGVuZ3RoIChmdW4gaSAtPiBPcHQudG9fb3B0aW9uIChlbHQjIy5vcHRpb25zIyNpdGVtIGkpKVxuICAgICAgaW5cbiAgICAgIGZpbHRlcl9tYXBcbiAgICAgICAgKGZ1bmN0aW9uXG4gICAgICAgICAgfCBOb25lIC0+IE5vbmVcbiAgICAgICAgICB8IFNvbWUgZSAtPlxuICAgICAgICAgICAgICBpZiBKcy50b19ib29sIGUjIy5zZWxlY3RlZCB0aGVuIFNvbWUgKG5hbWUsIGBTdHJpbmcgZSMjLnZhbHVlKSBlbHNlIE5vbmUpXG4gICAgICAgIChBcnJheS50b19saXN0IG9wdGlvbnMpXG4gICAgZWxzZSBbIG5hbWUsIGBTdHJpbmcgZWx0IyMudmFsdWUgXVxuICBlbHNlIFtdXG5cbmNsYXNzIHR5cGUgZmlsZV9pbnB1dCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgaW5wdXRFbGVtZW50XG5cbiAgICBtZXRob2QgZmlsZXMgOiBGaWxlLmZpbGVMaXN0IHQgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBtdWx0aXBsZSA6IGJvb2wgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCBnZXRfaW5wdXRfdmFsID8oZ2V0ID0gZmFsc2UpIChlbHQgOiBpbnB1dEVsZW1lbnQgdCkgPVxuICBpZiBoYXZlX2NvbnRlbnQgKGVsdCA6PiBzdWJtaXR0YWJsZUVsZW1lbnQgdClcbiAgdGhlblxuICAgIGxldCBuYW1lID0gdG9fc3RyaW5nIGVsdCMjLm5hbWUgaW5cbiAgICBsZXQgdmFsdWUgPSBlbHQjIy52YWx1ZSBpblxuICAgIG1hdGNoIHRvX2J5dGVzdHJpbmcgZWx0IyMuX3R5cGUjI3RvTG93ZXJDYXNlIHdpdGhcbiAgICB8IFwiY2hlY2tib3hcIiB8IFwicmFkaW9cIiAtPlxuICAgICAgICBpZiB0b19ib29sIGVsdCMjLmNoZWNrZWQgdGhlbiBbIG5hbWUsIGBTdHJpbmcgdmFsdWUgXSBlbHNlIFtdXG4gICAgfCBcInN1Ym1pdFwiIHwgXCJyZXNldFwiIC0+IFtdXG4gICAgfCBcInRleHRcIiB8IFwicGFzc3dvcmRcIiAtPiBbIG5hbWUsIGBTdHJpbmcgdmFsdWUgXVxuICAgIHwgXCJmaWxlXCIgLT4gKFxuICAgICAgICBpZiBnZXRcbiAgICAgICAgdGhlbiBbIG5hbWUsIGBTdHJpbmcgdmFsdWUgXVxuICAgICAgICBlbHNlXG4gICAgICAgICAgbGV0IGVsdCA6IGZpbGVfaW5wdXQgdCA9IFVuc2FmZS5jb2VyY2UgZWx0IGluXG4gICAgICAgICAgbWF0Y2ggT3B0ZGVmLnRvX29wdGlvbiBlbHQjIy5maWxlcyB3aXRoXG4gICAgICAgICAgfCBOb25lIC0+IFtdXG4gICAgICAgICAgfCBTb21lIGxpc3QgLT4gKFxuICAgICAgICAgICAgICBpZiBsaXN0IyMubGVuZ3RoID0gMFxuICAgICAgICAgICAgICB0aGVuIFsgbmFtZSwgYFN0cmluZyAoSnMuc3RyaW5nIFwiXCIpIF1cbiAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIG1hdGNoIE9wdGRlZi50b19vcHRpb24gZWx0IyMubXVsdGlwbGUgd2l0aFxuICAgICAgICAgICAgICAgIHwgTm9uZSB8IFNvbWUgZmFsc2UgLT4gKFxuICAgICAgICAgICAgICAgICAgICBtYXRjaCBPcHQudG9fb3B0aW9uIChsaXN0IyNpdGVtIDApIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgfCBOb25lIC0+IFtdXG4gICAgICAgICAgICAgICAgICAgIHwgU29tZSBmaWxlIC0+IFsgbmFtZSwgYEZpbGUgZmlsZSBdKVxuICAgICAgICAgICAgICAgIHwgU29tZSB0cnVlIC0+XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcl9tYXBcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIGYgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIE9wdC50b19vcHRpb24gZiB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICB8IE5vbmUgLT4gTm9uZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBTb21lIGZpbGUgLT4gU29tZSAobmFtZSwgYEZpbGUgZmlsZSkpXG4gICAgICAgICAgICAgICAgICAgICAgKEFycmF5LnRvX2xpc3QgKEFycmF5LmluaXQgbGlzdCMjLmxlbmd0aCAoZnVuIGkgLT4gbGlzdCMjaXRlbSBpKSkpKSlcbiAgICB8IF8gLT4gWyBuYW1lLCBgU3RyaW5nIHZhbHVlIF1cbiAgZWxzZSBbXVxuXG5sZXQgZ2V0X2Zvcm1fZWxlbWVudHMgKGZvcm0gOiBmb3JtRWxlbWVudCB0KSA9XG4gIGxldCByZWMgbG9vcCBhY2MgaSA9XG4gICAgaWYgaSA8IDBcbiAgICB0aGVuIGFjY1xuICAgIGVsc2VcbiAgICAgIG1hdGNoIE9wdC50b19vcHRpb24gKGZvcm0jIy5lbGVtZW50cyMjaXRlbSBpKSB3aXRoXG4gICAgICB8IE5vbmUgLT4gbG9vcCBhY2MgKGkgLSBpKVxuICAgICAgfCBTb21lIHggLT4gbG9vcCAoeCA6OiBhY2MpIChpIC0gMSlcbiAgaW5cbiAgbG9vcCBbXSAoZm9ybSMjLmVsZW1lbnRzIyMubGVuZ3RoIC0gMSlcblxubGV0IGdldF9lbGVtZW50X2NvbnRlbnQgP2dldCB2ID1cbiAgbWF0Y2ggdGFnZ2VkIHYgd2l0aFxuICB8IFNlbGVjdCB2IC0+IGdldF9zZWxlY3RfdmFsIHZcbiAgfCBJbnB1dCB2IC0+IGdldF9pbnB1dF92YWwgP2dldCB2XG4gIHwgVGV4dGFyZWEgdiAtPiBnZXRfdGV4dGFyZWFfdmFsIHZcbiAgfCBfIC0+IFtdXG5cbmxldCBmb3JtX2VsZW1lbnRzID9nZXQgKGZvcm0gOiBmb3JtRWxlbWVudCB0KSA9XG4gIExpc3QuZmxhdHRlbiAoTGlzdC5tYXAgKGZ1biB2IC0+IGdldF9lbGVtZW50X2NvbnRlbnQgP2dldCB2KSAoZ2V0X2Zvcm1fZWxlbWVudHMgZm9ybSkpXG5cbmxldCBhcHBlbmQgKGZvcm1fY29udGVudHMgOiBmb3JtX2NvbnRlbnRzKSAoZm9ybV9lbHQgOiBzdHJpbmcgKiBmb3JtX2VsdCkgPVxuICBtYXRjaCBmb3JtX2NvbnRlbnRzIHdpdGhcbiAgfCBgRmllbGRzIGxpc3QgLT4gbGlzdCA6PSBmb3JtX2VsdCA6OiAhbGlzdFxuICB8IGBGb3JtRGF0YSBmIC0+IChcbiAgICAgIG1hdGNoIGZvcm1fZWx0IHdpdGhcbiAgICAgIHwgbmFtZSwgYFN0cmluZyBzIC0+IGYjI2FwcGVuZCAoc3RyaW5nIG5hbWUpIHNcbiAgICAgIHwgbmFtZSwgYEZpbGUgZmlsZSAtPiBmIyNhcHBlbmRfYmxvYiAoc3RyaW5nIG5hbWUpIChmaWxlIDo+IEZpbGUuYmxvYiB0KSlcblxubGV0IGVtcHR5X2Zvcm1fY29udGVudHMgKCkgPVxuICBtYXRjaCBPcHRkZWYudG9fb3B0aW9uIChKcy5kZWYgZm9ybURhdGEpIHdpdGhcbiAgfCBOb25lIC0+IGBGaWVsZHMgKHJlZiBbXSlcbiAgfCBTb21lIGNvbnN0ciAtPiBgRm9ybURhdGEgKG5ldyVqcyBjb25zdHIpXG5cbmxldCBwb3N0X2Zvcm1fY29udGVudHMgZm9ybSA9XG4gIGxldCBjb250ZW50cyA9IGVtcHR5X2Zvcm1fY29udGVudHMgKCkgaW5cbiAgTGlzdC5pdGVyIChhcHBlbmQgY29udGVudHMpIChmb3JtX2VsZW1lbnRzIGZvcm0pO1xuICBjb250ZW50c1xuXG5sZXQgZ2V0X2Zvcm1fY29udGVudHMgZm9ybSA9XG4gIExpc3QubWFwXG4gICAgKGZ1bmN0aW9uXG4gICAgICB8IG5hbWUsIGBTdHJpbmcgcyAtPiBuYW1lLCB0b19zdHJpbmcgc1xuICAgICAgfCBfIC0+IGFzc2VydCBmYWxzZSlcbiAgICAoZm9ybV9lbGVtZW50cyB+Z2V0OnRydWUgZm9ybSlcbiIsIigqIEpzX29mX29jYW1sIGxpYnJhcnlcbiAqIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTAgSsOpcsO0bWUgVm91aWxsb25cbiAqIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4gKiBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cbiAqKVxuXG5vcGVuIEpzXG5vcGVuISBJbXBvcnRcblxudHlwZSByZWFkeVN0YXRlID1cbiAgfCBVTlNFTlRcbiAgfCBPUEVORURcbiAgfCBIRUFERVJTX1JFQ0VJVkVEXG4gIHwgTE9BRElOR1xuICB8IERPTkVcblxudHlwZSBfIHJlc3BvbnNlID1cbiAgfCBBcnJheUJ1ZmZlciA6IFR5cGVkX2FycmF5LmFycmF5QnVmZmVyIHQgT3B0LnQgcmVzcG9uc2VcbiAgfCBCbG9iIDogI0ZpbGUuYmxvYiB0IE9wdC50IHJlc3BvbnNlXG4gIHwgRG9jdW1lbnQgOiBEb20uZWxlbWVudCBEb20uZG9jdW1lbnQgdCBPcHQudCByZXNwb25zZVxuICB8IEpTT04gOiAnYSBPcHQudCByZXNwb25zZVxuICB8IFRleHQgOiBqc19zdHJpbmcgdCByZXNwb25zZVxuICB8IERlZmF1bHQgOiBzdHJpbmcgcmVzcG9uc2VcblxuY2xhc3MgdHlwZSB4bWxIdHRwUmVxdWVzdCA9XG4gIG9iamVjdCAoJ3NlbGYpXG4gICAgbWV0aG9kIG9ucmVhZHlzdGF0ZWNoYW5nZSA6ICh1bml0IC0+IHVuaXQpIEpzLmNhbGxiYWNrIEpzLndyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2QgcmVhZHlTdGF0ZSA6IHJlYWR5U3RhdGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9vcGVuIDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgLT4gYm9vbCB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIF9vcGVuX2Z1bGwgOlxuICAgICAgICAganNfc3RyaW5nIHRcbiAgICAgIC0+IGpzX3N0cmluZyB0XG4gICAgICAtPiBib29sIHRcbiAgICAgIC0+IGpzX3N0cmluZyB0IG9wdFxuICAgICAgLT4ganNfc3RyaW5nIHQgb3B0XG4gICAgICAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRSZXF1ZXN0SGVhZGVyIDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgb3ZlcnJpZGVNaW1lVHlwZSA6IGpzX3N0cmluZyB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNlbmQgOiBqc19zdHJpbmcgdCBvcHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2VuZF9ibG9iIDogI0ZpbGUuYmxvYiB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNlbmRfZG9jdW1lbnQgOiBEb20uZWxlbWVudCBEb20uZG9jdW1lbnQgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZW5kX2Zvcm1EYXRhIDogRm9ybS5mb3JtRGF0YSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGFib3J0IDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc3RhdHVzIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzdGF0dXNUZXh0IDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGdldFJlc3BvbnNlSGVhZGVyIDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgb3B0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRBbGxSZXNwb25zZUhlYWRlcnMgOiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICBtZXRob2QgcmVzcG9uc2UgOiBGaWxlLmZpbGVfYW55IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCByZXNwb25zZVRleHQgOiBqc19zdHJpbmcgdCBvcHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHJlc3BvbnNlWE1MIDogRG9tLmVsZW1lbnQgRG9tLmRvY3VtZW50IHQgb3B0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCByZXNwb25zZVR5cGUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgd2l0aENyZWRlbnRpYWxzIDogYm9vbCB0IHdyaXRlb25seV9wcm9wXG5cbiAgICBpbmhlcml0IEZpbGUucHJvZ3Jlc3NFdmVudFRhcmdldFxuXG4gICAgbWV0aG9kIG9udGltZW91dCA6XG4gICAgICAoJ3NlbGYgdCwgJ3NlbGYgRmlsZS5wcm9ncmVzc0V2ZW50IHQpIERvbS5ldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHVwbG9hZCA6IHhtbEh0dHBSZXF1ZXN0VXBsb2FkIHQgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmFuZCB4bWxIdHRwUmVxdWVzdFVwbG9hZCA9XG4gIG9iamVjdCAoJ3NlbGYpXG4gICAgaW5oZXJpdCBGaWxlLnByb2dyZXNzRXZlbnRUYXJnZXRcbiAgZW5kXG5cbm1vZHVsZSBFdmVudCA9IHN0cnVjdFxuICB0eXBlIHR5cCA9IHhtbEh0dHBSZXF1ZXN0IEZpbGUucHJvZ3Jlc3NFdmVudCB0IERvbS5FdmVudC50eXBcblxuICBsZXQgcmVhZHlzdGF0ZWNoYW5nZSA9IERvbS5FdmVudC5tYWtlIFwicmVhZHlzdGF0ZWNoYW5nZVwiXG5cbiAgbGV0IGxvYWRzdGFydCA9IERvbS5FdmVudC5tYWtlIFwibG9hZHN0YXJ0XCJcblxuICBsZXQgcHJvZ3Jlc3MgPSBEb20uRXZlbnQubWFrZSBcInByb2dyZXNzXCJcblxuICBsZXQgYWJvcnQgPSBEb20uRXZlbnQubWFrZSBcImFib3J0XCJcblxuICBsZXQgZXJyb3IgPSBEb20uRXZlbnQubWFrZSBcImVycm9yXCJcblxuICBsZXQgbG9hZCA9IERvbS5FdmVudC5tYWtlIFwibG9hZFwiXG5cbiAgbGV0IHRpbWVvdXQgPSBEb20uRXZlbnQubWFrZSBcInRpbWVvdXRcIlxuXG4gIGxldCBsb2FkZW5kID0gRG9tLkV2ZW50Lm1ha2UgXCJsb2FkZW5kXCJcbmVuZFxuXG5leHRlcm5hbCBjcmVhdGUgOiB1bml0IC0+IHhtbEh0dHBSZXF1ZXN0IEpzLnQgPSBcImNhbWxfeG1saHR0cHJlcXVlc3RfY3JlYXRlXCJcbiIsIigqIEpzX29mX29jYW1sIGxpYnJhcnlcbiAqIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgT0NhbWxQcm86IEdyw6lnb2lyZSBIZW5yeSwgw4dhxJ9kYcWfIEJvem1hbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuICogZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG4gKilcblxub3BlbiBKc1xub3BlbiBEb21faHRtbFxub3BlbiEgSW1wb3J0XG5cbmNsYXNzIHR5cGUgWydhLCAnYl0gd29ya2VyID1cbiAgb2JqZWN0ICgnc2VsZilcbiAgICBpbmhlcml0IGV2ZW50VGFyZ2V0XG5cbiAgICBtZXRob2Qgb25lcnJvciA6ICgnc2VsZiB0LCBlcnJvckV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25tZXNzYWdlIDogKCdzZWxmIHQsICdiIG1lc3NhZ2VFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHBvc3RNZXNzYWdlIDogJ2EgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdGVybWluYXRlIDogdW5pdCBtZXRoXG4gIGVuZFxuXG5hbmQgZXJyb3JFdmVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZXZlbnRcblxuICAgIG1ldGhvZCBtZXNzYWdlIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGZpbGVuYW1lIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGxpbmVubyA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY29sbm8gOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGVycm9yIDogVW5zYWZlLmFueSByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5hbmQgWydhXSBtZXNzYWdlRXZlbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGV2ZW50XG5cbiAgICBtZXRob2QgZGF0YSA6ICdhIHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCB3b3JrZXIgPSBVbnNhZmUuZ2xvYmFsIyMuX1dvcmtlclxuXG5sZXQgY3JlYXRlIHNjcmlwdCA9IG5ldyVqcyB3b3JrZXIgKHN0cmluZyBzY3JpcHQpXG5cbmxldCBpbXBvcnRfc2NyaXB0cyBzY3JpcHRzIDogdW5pdCA9XG4gIGlmIFVuc2FmZS5nbG9iYWwjIy5pbXBvcnRTY3JpcHRzID09IHVuZGVmaW5lZFxuICB0aGVuIGludmFsaWRfYXJnIFwiV29ya2VyLmltcG9ydF9zY3JpcHRzIGlzIHVuZGVmaW5lZFwiO1xuICBVbnNhZmUuZnVuX2NhbGxcbiAgICBVbnNhZmUuZ2xvYmFsIyMuaW1wb3J0U2NyaXB0c1xuICAgIChBcnJheS5tYXAgKGZ1biBzIC0+IFVuc2FmZS5pbmplY3QgKHN0cmluZyBzKSkgKEFycmF5Lm9mX2xpc3Qgc2NyaXB0cykpXG5cbmxldCBzZXRfb25tZXNzYWdlIGhhbmRsZXIgPVxuICBpZiBVbnNhZmUuZ2xvYmFsIyMub25tZXNzYWdlID09IHVuZGVmaW5lZFxuICB0aGVuIGludmFsaWRfYXJnIFwiV29ya2VyLm9ubWVzc2FnZSBpcyB1bmRlZmluZWRcIjtcbiAgbGV0IGpzX2hhbmRsZXIgKGV2IDogJ2EgbWVzc2FnZUV2ZW50IEpzLnQpID0gaGFuZGxlciBldiMjLmRhdGEgaW5cbiAgVW5zYWZlLmdsb2JhbCMjLm9ubWVzc2FnZSA6PSB3cmFwX2NhbGxiYWNrIGpzX2hhbmRsZXJcblxubGV0IHBvc3RfbWVzc2FnZSBtc2cgPVxuICBpZiBVbnNhZmUuZ2xvYmFsIyMucG9zdE1lc3NhZ2UgPT0gdW5kZWZpbmVkXG4gIHRoZW4gaW52YWxpZF9hcmcgXCJXb3JrZXIub25tZXNzYWdlIGlzIHVuZGVmaW5lZFwiO1xuICBVbnNhZmUuZ2xvYmFsIyNwb3N0TWVzc2FnZSBtc2dcbiIsIigqIEpzX29mX29jYW1sIGxpYnJhcnlcbiAqIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTIgSmFjcXVlcy1QYXNjYWwgRGVwbGFpeFxuICogTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbiAqIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4gKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuICopXG5cbm9wZW4hIEltcG9ydFxuXG50eXBlIHJlYWR5U3RhdGUgPVxuICB8IENPTk5FQ1RJTkdcbiAgfCBPUEVOXG4gIHwgQ0xPU0lOR1xuICB8IENMT1NFRFxuXG5jbGFzcyB0eXBlIFsnYV0gY2xvc2VFdmVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgWydhXSBEb20uZXZlbnRcblxuICAgIG1ldGhvZCBjb2RlIDogaW50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCByZWFzb24gOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgd2FzQ2xlYW4gOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBbJ2FdIG1lc3NhZ2VFdmVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgWydhXSBEb20uZXZlbnRcblxuICAgIG1ldGhvZCBkYXRhIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGRhdGFfYnVmZmVyIDogVHlwZWRfYXJyYXkuYXJyYXlCdWZmZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZGF0YV9ibG9iIDogRmlsZS5ibG9iIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSB3ZWJTb2NrZXQgPVxuICBvYmplY3QgKCdzZWxmKVxuICAgIGluaGVyaXQgRG9tX2h0bWwuZXZlbnRUYXJnZXRcblxuICAgIG1ldGhvZCB1cmwgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcmVhZHlTdGF0ZSA6IHJlYWR5U3RhdGUgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGJ1ZmZlcmVkQW1vdW50IDogaW50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbm9wZW4gOlxuICAgICAgKCdzZWxmIEpzLnQsICdzZWxmIERvbS5ldmVudCBKcy50KSBEb20uZXZlbnRfbGlzdGVuZXIgSnMud3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbmNsb3NlIDpcbiAgICAgICgnc2VsZiBKcy50LCAnc2VsZiBjbG9zZUV2ZW50IEpzLnQpIERvbS5ldmVudF9saXN0ZW5lciBKcy53cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9uZXJyb3IgOlxuICAgICAgKCdzZWxmIEpzLnQsICdzZWxmIERvbS5ldmVudCBKcy50KSBEb20uZXZlbnRfbGlzdGVuZXIgSnMud3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBleHRlbnNpb25zIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHByb3RvY29sIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGNsb3NlIDogdW5pdCBKcy5tZXRoXG5cbiAgICBtZXRob2QgY2xvc2Vfd2l0aENvZGUgOiBpbnQgLT4gdW5pdCBKcy5tZXRoXG5cbiAgICBtZXRob2QgY2xvc2Vfd2l0aENvZGVBbmRSZWFzb24gOiBpbnQgLT4gSnMuanNfc3RyaW5nIEpzLnQgLT4gdW5pdCBKcy5tZXRoXG5cbiAgICBtZXRob2Qgb25tZXNzYWdlIDpcbiAgICAgICgnc2VsZiBKcy50LCAnc2VsZiBtZXNzYWdlRXZlbnQgSnMudCkgRG9tLmV2ZW50X2xpc3RlbmVyIEpzLndyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2QgYmluYXJ5VHlwZSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnByb3BcblxuICAgIG1ldGhvZCBzZW5kIDogSnMuanNfc3RyaW5nIEpzLnQgLT4gdW5pdCBKcy5tZXRoXG5cbiAgICBtZXRob2Qgc2VuZF9idWZmZXIgOiBUeXBlZF9hcnJheS5hcnJheUJ1ZmZlciBKcy50IC0+IHVuaXQgSnMubWV0aFxuXG4gICAgbWV0aG9kIHNlbmRfYmxvYiA6IEZpbGUuYmxvYiBKcy50IC0+IHVuaXQgSnMubWV0aFxuICBlbmRcblxubGV0IHdlYlNvY2tldCA9IEpzLlVuc2FmZS5nbG9iYWwjIy5fV2ViU29ja2V0XG5cbmxldCB3ZWJTb2NrZXRfd2l0aFByb3RvY29sID0gd2ViU29ja2V0XG5cbmxldCB3ZWJTb2NrZXRfd2l0aFByb3RvY29scyA9IHdlYlNvY2tldFxuXG5sZXQgaXNfc3VwcG9ydGVkICgpID0gSnMuT3B0ZGVmLnRlc3Qgd2ViU29ja2V0XG4iLCIoKiBKc19vZl9vY2FtbCBsaWJyYXJ5XG4gKiBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuICogQ29weXJpZ2h0IChDKSAyMDEyIErDqXLDtG1lIFZvdWlsbG9uXG4gKiBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3RcbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuICogZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG4gKilcblxub3BlbiBKc1xub3BlbiEgSW1wb3J0XG5cbigqKiA1LjEgVHlwZXMgKilcblxudHlwZSBzaXplaSA9IGludFxuXG50eXBlIHNpemVpcHRyID0gaW50XG5cbnR5cGUgaW50cHRyID0gaW50XG5cbnR5cGUgdWludCA9IGludFxuXG50eXBlIGNsYW1wZiA9IGZsb2F0XG5cbnR5cGUgdm9pZFxuXG50eXBlIGNsZWFyQnVmZmVyTWFzayA9IGludFxuXG50eXBlIGJlZ2luTW9kZVxuXG50eXBlIGJsZW5kaW5nRmFjdG9yXG5cbnR5cGUgYmxlbmRNb2RlXG5cbnR5cGUgYnVmZmVyVGFyZ2V0XG5cbnR5cGUgYnVmZmVyVXNhZ2VcblxudHlwZSBjdWxsRmFjZU1vZGVcblxudHlwZSBkZXB0aEZ1bmN0aW9uXG5cbnR5cGUgZW5hYmxlQ2FwXG5cbnR5cGUgZXJyb3JDb2RlXG5cbnR5cGUgZnJvbnRGYWNlRGlyXG5cbnR5cGUgaGludFRhcmdldFxuXG50eXBlIGhpbnRNb2RlXG5cbnR5cGUgdGV4dHVyZVVuaXQgPSBpbnRcblxudHlwZSAnYSBwaXhlbFN0b3JlUGFyYW1cblxudHlwZSBzdGVuY2lsT3BcblxudHlwZSBmYlRhcmdldFxuXG50eXBlIGF0dGFjaG1lbnRQb2ludFxuXG50eXBlIHJiVGFyZ2V0XG5cbnR5cGUgdGV4VGFyZ2V0XG5cbnR5cGUgJ2EgcGFyYW1ldGVyXG5cbnR5cGUgJ2EgYnVmZmVyUGFyYW1ldGVyXG5cbnR5cGUgJ2EgdmVydGV4QXR0cmliUGFyYW1cblxudHlwZSB2ZXJ0ZXhBdHRyaWJQb2ludGVyUGFyYW1cblxudHlwZSAnYSBhdHRhY2hQYXJhbVxuXG50eXBlIGZyYW1lYnVmZmVyU3RhdHVzXG5cbnR5cGUgJ2EgcmVuZGVyYnVmZmVyUGFyYW1cblxudHlwZSBmb3JtYXRcblxudHlwZSBwaXhlbEZvcm1hdFxuXG50eXBlIHBpeGVsVHlwZVxuXG50eXBlICdhIHRleFBhcmFtXG5cbnR5cGUgZGF0YVR5cGVcblxudHlwZSBzaGFkZXJUeXBlXG5cbnR5cGUgJ2EgcHJvZ3JhbVBhcmFtXG5cbnR5cGUgJ2Egc2hhZGVyUGFyYW1cblxudHlwZSB0ZXh0dXJlRmlsdGVyXG5cbnR5cGUgd3JhcE1vZGVcblxudHlwZSB0ZXhGaWx0ZXJcblxudHlwZSB1bmlmb3JtVHlwZVxuXG50eXBlIGNvbG9yc3BhY2VDb252ZXJzaW9uXG5cbnR5cGUgc2hhZGVyUHJlY2lzaW9uVHlwZVxuXG50eXBlIG9iamVjdFR5cGVcblxuKCoqIDUuMiBXZWJHTENvbnRleHRBdHRyaWJ1dGVzICopXG5jbGFzcyB0eXBlIGNvbnRleHRBdHRyaWJ1dGVzID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGFscGhhIDogYm9vbCB0IHByb3BcblxuICAgIG1ldGhvZCBkZXB0aCA6IGJvb2wgdCBwcm9wXG5cbiAgICBtZXRob2Qgc3RlbmNpbCA6IGJvb2wgdCBwcm9wXG5cbiAgICBtZXRob2QgYW50aWFsaWFzIDogYm9vbCB0IHByb3BcblxuICAgIG1ldGhvZCBwcmVtdWx0aXBsaWVkQWxwaGEgOiBib29sIHQgcHJvcFxuXG4gICAgbWV0aG9kIHByZXNlcnZlRHJhd2luZ0J1ZmZlciA6IGJvb2wgdCBwcm9wXG5cbiAgICBtZXRob2QgcHJlZmVyTG93UG93ZXJUb0hpZ2hQZXJmb3JtYW5jZSA6IGJvb2wgdCBwcm9wXG5cbiAgICBtZXRob2QgZmFpbElmTWFqb3JQZXJmb3JtYW5jZUNhdmVhdCA6IGJvb2wgdCBwcm9wXG4gIGVuZFxuXG5sZXQgZGVmYXVsdENvbnRleHRBdHRyaWJ1dGVzID1cbiAgSnMuVW5zYWZlLihcbiAgICBvYmpcbiAgICAgIFt8IFwiYWxwaGFcIiwgaW5qZWN0IF90cnVlXG4gICAgICAgOyBcImRlcHRoXCIsIGluamVjdCBfdHJ1ZVxuICAgICAgIDsgXCJzdGVuY2lsXCIsIGluamVjdCBfZmFsc2VcbiAgICAgICA7IFwiYW50aWFsaWFzXCIsIGluamVjdCBfdHJ1ZVxuICAgICAgIDsgXCJwcmVtdWx0aXBsaWVkQWxwaGFcIiwgaW5qZWN0IF9mYWxzZVxuICAgICAgIDsgXCJwcmVzZXJ2ZURyYXdpbmdCdWZmZXJcIiwgaW5qZWN0IF9mYWxzZVxuICAgICAgIDsgXCJwcmVmZXJMb3dQb3dlclRvSGlnaFBlcmZvcm1hbmNlXCIsIGluamVjdCBfZmFsc2VcbiAgICAgICA7IFwiZmFpbElmTWFqb3JQZXJmb3JtYW5jZUNhdmVhdFwiLCBpbmplY3QgX2ZhbHNlXG4gICAgICB8XSlcblxudHlwZSBidWZmZXJcblxudHlwZSBmcmFtZWJ1ZmZlclxuXG50eXBlIHByb2dyYW1cblxudHlwZSByZW5kZXJidWZmZXJcblxudHlwZSBzaGFkZXJcblxudHlwZSB0ZXh0dXJlXG5cbnR5cGUgJ2EgdW5pZm9ybUxvY2F0aW9uXG5cbmNsYXNzIHR5cGUgYWN0aXZlSW5mbyA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBzaXplIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfdHlwZSA6IHVuaWZvcm1UeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBuYW1lIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBzaGFkZXJQcmVjaXNpb25Gb3JtYXQgPVxuICBvYmplY3RcbiAgICBtZXRob2QgcmFuZ2VNaW4gOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHJhbmdlTWF4IDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBwcmVjaXNpb24gOiBpbnQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSByZW5kZXJpbmdDb250ZXh0ID1cbiAgb2JqZWN0XG5cbiAgICAoKiogNS4xMy4xIEF0dHJpYnV0ZXMgKilcblxuICAgIG1ldGhvZCBjYW52YXMgOiBEb21faHRtbC5jYW52YXNFbGVtZW50IHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGRyYXdpbmdCdWZmZXJXaWR0aCA6IHNpemVpIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBkcmF3aW5nQnVmZmVySGVpZ2h0IDogc2l6ZWkgcmVhZG9ubHlfcHJvcFxuXG4gICAgKCoqIDUuMTMuMiBHZXR0aW5nIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjb250ZXh0ICopXG5cbiAgICBtZXRob2QgZ2V0Q29udGV4dEF0dHJpYnV0ZXMgOiBjb250ZXh0QXR0cmlidXRlcyB0IG1ldGhcblxuICAgICgqKiA1LjEzLjMgU2V0dGluZyBhbmQgZ2V0dGluZyBzdGF0ZSAqKVxuXG4gICAgbWV0aG9kIGFjdGl2ZVRleHR1cmUgOiB0ZXh0dXJlVW5pdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBibGVuZENvbG9yIDogY2xhbXBmIC0+IGNsYW1wZiAtPiBjbGFtcGYgLT4gY2xhbXBmIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGJsZW5kRXF1YXRpb24gOiBibGVuZE1vZGUgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgYmxlbmRFcXVhdGlvblNlcGFyYXRlIDogYmxlbmRNb2RlIC0+IGJsZW5kTW9kZSAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBibGVuZEZ1bmMgOiBibGVuZGluZ0ZhY3RvciAtPiBibGVuZGluZ0ZhY3RvciAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBibGVuZEZ1bmNTZXBhcmF0ZSA6XG4gICAgICBibGVuZGluZ0ZhY3RvciAtPiBibGVuZGluZ0ZhY3RvciAtPiBibGVuZGluZ0ZhY3RvciAtPiBibGVuZGluZ0ZhY3RvciAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjbGVhckNvbG9yIDogY2xhbXBmIC0+IGNsYW1wZiAtPiBjbGFtcGYgLT4gY2xhbXBmIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNsZWFyRGVwdGggOiBjbGFtcGYgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgY2xlYXJTdGVuY2lsIDogaW50IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNvbG9yTWFzayA6IGJvb2wgdCAtPiBib29sIHQgLT4gYm9vbCB0IC0+IGJvb2wgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjdWxsRmFjZSA6IGN1bGxGYWNlTW9kZSAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBkZXB0aEZ1bmMgOiBkZXB0aEZ1bmN0aW9uIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGRlcHRoTWFzayA6IGJvb2wgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBkZXB0aFJhbmdlIDogY2xhbXBmIC0+IGNsYW1wZiAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBkaXNhYmxlIDogZW5hYmxlQ2FwIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGVuYWJsZSA6IGVuYWJsZUNhcCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBmcm9udEZhY2UgOiBmcm9udEZhY2VEaXIgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0UGFyYW1ldGVyIDogJ2EuICdhIHBhcmFtZXRlciAtPiAnYSBtZXRoXG5cbiAgICBtZXRob2QgZ2V0RXJyb3IgOiBlcnJvckNvZGUgbWV0aFxuXG4gICAgbWV0aG9kIGhpbnQgOiBoaW50VGFyZ2V0IC0+IGhpbnRNb2RlIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGlzRW5hYmxlZCA6IGVuYWJsZUNhcCAtPiBib29sIHQgbWV0aFxuXG4gICAgbWV0aG9kIGxpbmVXaWR0aCA6IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHBpeGVsU3RvcmVpIDogJ2EuICdhIHBpeGVsU3RvcmVQYXJhbSAtPiAnYSAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBwb2x5Z29uT2Zmc2V0IDogZmxvYXQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2FtcGxlQ292ZXJhZ2UgOiBjbGFtcGYgLT4gYm9vbCB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHN0ZW5jaWxGdW5jIDogZGVwdGhGdW5jdGlvbiAtPiBpbnQgLT4gdWludCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzdGVuY2lsRnVuY1NlcGFyYXRlIDogY3VsbEZhY2VNb2RlIC0+IGRlcHRoRnVuY3Rpb24gLT4gaW50IC0+IHVpbnQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc3RlbmNpbE1hc2sgOiB1aW50IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHN0ZW5jaWxNYXNrU2VwYXJhdGUgOiBjdWxsRmFjZU1vZGUgLT4gdWludCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzdGVuY2lsT3AgOiBzdGVuY2lsT3AgLT4gc3RlbmNpbE9wIC0+IHN0ZW5jaWxPcCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzdGVuY2lsT3BTZXBhcmF0ZSA6XG4gICAgICBjdWxsRmFjZU1vZGUgLT4gc3RlbmNpbE9wIC0+IHN0ZW5jaWxPcCAtPiBzdGVuY2lsT3AgLT4gdW5pdCBtZXRoXG5cbiAgICAoKiogNS4xMy40IFZpZXdpbmcgYW5kIGNsaXBwaW5nICopXG5cbiAgICBtZXRob2Qgc2Npc3NvciA6IGludCAtPiBpbnQgLT4gc2l6ZWkgLT4gc2l6ZWkgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgdmlld3BvcnQgOiBpbnQgLT4gaW50IC0+IHNpemVpIC0+IHNpemVpIC0+IHVuaXQgbWV0aFxuXG4gICAgKCoqIDUuMTMuNSBCdWZmZXIgb2JqZWN0cyAqKVxuXG4gICAgbWV0aG9kIGJpbmRCdWZmZXIgOiBidWZmZXJUYXJnZXQgLT4gYnVmZmVyIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgYmluZEJ1ZmZlcl8gOiBidWZmZXJUYXJnZXQgLT4gYnVmZmVyIHQgb3B0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGJ1ZmZlckRhdGFfY3JlYXRlIDogYnVmZmVyVGFyZ2V0IC0+IHNpemVpcHRyIC0+IGJ1ZmZlclVzYWdlIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGJ1ZmZlckRhdGEgOlxuICAgICAgYnVmZmVyVGFyZ2V0IC0+ICNUeXBlZF9hcnJheS5hcnJheUJ1ZmZlclZpZXcgdCAtPiBidWZmZXJVc2FnZSAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBidWZmZXJEYXRhX3JhdyA6XG4gICAgICBidWZmZXJUYXJnZXQgLT4gVHlwZWRfYXJyYXkuYXJyYXlCdWZmZXIgdCAtPiBidWZmZXJVc2FnZSAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBidWZmZXJTdWJEYXRhIDpcbiAgICAgIGJ1ZmZlclRhcmdldCAtPiBpbnRwdHIgLT4gI1R5cGVkX2FycmF5LmFycmF5QnVmZmVyVmlldyB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGJ1ZmZlclN1YkRhdGFfcmF3IDpcbiAgICAgIGJ1ZmZlclRhcmdldCAtPiBpbnRwdHIgLT4gVHlwZWRfYXJyYXkuYXJyYXlCdWZmZXIgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVCdWZmZXIgOiBidWZmZXIgdCBtZXRoXG5cbiAgICBtZXRob2QgZGVsZXRlQnVmZmVyIDogYnVmZmVyIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0QnVmZmVyUGFyYW1ldGVyIDogJ2EuIGJ1ZmZlclRhcmdldCAtPiAnYSBidWZmZXJQYXJhbWV0ZXIgLT4gJ2EgbWV0aFxuXG4gICAgbWV0aG9kIGlzQnVmZmVyIDogYnVmZmVyIHQgLT4gYm9vbCB0IG1ldGhcblxuICAgICgqKiA1LjEzLjYgRnJhbWVidWZmZXIgb2JqZWN0cyAqKVxuXG4gICAgbWV0aG9kIGJpbmRGcmFtZWJ1ZmZlciA6IGZiVGFyZ2V0IC0+IGZyYW1lYnVmZmVyIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgYmluZEZyYW1lYnVmZmVyXyA6IGZiVGFyZ2V0IC0+IGZyYW1lYnVmZmVyIHQgb3B0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNoZWNrRnJhbWVidWZmZXJTdGF0dXMgOiBmYlRhcmdldCAtPiBmcmFtZWJ1ZmZlclN0YXR1cyBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlRnJhbWVidWZmZXIgOiBmcmFtZWJ1ZmZlciB0IG1ldGhcblxuICAgIG1ldGhvZCBkZWxldGVGcmFtZWJ1ZmZlciA6IGZyYW1lYnVmZmVyIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZnJhbWVidWZmZXJSZW5kZXJidWZmZXIgOlxuICAgICAgZmJUYXJnZXQgLT4gYXR0YWNobWVudFBvaW50IC0+IHJiVGFyZ2V0IC0+IHJlbmRlcmJ1ZmZlciB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGZyYW1lYnVmZmVyVGV4dHVyZTJEIDpcbiAgICAgIGZiVGFyZ2V0IC0+IGF0dGFjaG1lbnRQb2ludCAtPiB0ZXhUYXJnZXQgLT4gdGV4dHVyZSB0IC0+IGludCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIgOlxuICAgICAgJ2EuIGZiVGFyZ2V0IC0+IGF0dGFjaG1lbnRQb2ludCAtPiAnYSBhdHRhY2hQYXJhbSAtPiAnYSBtZXRoXG5cbiAgICBtZXRob2QgaXNGcmFtZWJ1ZmZlciA6IGZyYW1lYnVmZmVyIHQgLT4gYm9vbCB0IG1ldGhcblxuICAgICgqKiA1LjEzLjcgUmVuZGVyYnVmZmVyIG9iamVjdHMgKilcblxuICAgIG1ldGhvZCBiaW5kUmVuZGVyYnVmZmVyIDogcmJUYXJnZXQgLT4gcmVuZGVyYnVmZmVyIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgYmluZFJlbmRlcmJ1ZmZlcl8gOiByYlRhcmdldCAtPiByZW5kZXJidWZmZXIgdCBvcHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlUmVuZGVyYnVmZmVyIDogcmVuZGVyYnVmZmVyIHQgbWV0aFxuXG4gICAgbWV0aG9kIGRlbGV0ZVJlbmRlcmJ1ZmZlciA6IHJlbmRlcmJ1ZmZlciB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlciA6ICdhLiByYlRhcmdldCAtPiAnYSByZW5kZXJidWZmZXJQYXJhbSAtPiAnYSBtZXRoXG5cbiAgICBtZXRob2QgaXNSZW5kZXJidWZmZXIgOiByZW5kZXJidWZmZXIgdCAtPiBib29sIHQgbWV0aFxuXG4gICAgbWV0aG9kIHJlbmRlcmJ1ZmZlclN0b3JhZ2UgOiByYlRhcmdldCAtPiBmb3JtYXQgLT4gc2l6ZWkgLT4gc2l6ZWkgLT4gdW5pdCBtZXRoXG5cbiAgICAoKiogNS4xMy44IFRleHR1cmUgb2JqZWN0cyAqKVxuXG4gICAgbWV0aG9kIGJpbmRUZXh0dXJlIDogdGV4VGFyZ2V0IC0+IHRleHR1cmUgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBiaW5kVGV4dHVyZV8gOiB0ZXhUYXJnZXQgLT4gdGV4dHVyZSB0IG9wdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjb21wcmVzc2VkVGV4SW1hZ2UyRCA6XG4gICAgICAgICB0ZXhUYXJnZXRcbiAgICAgIC0+IGludFxuICAgICAgLT4gcGl4ZWxGb3JtYXRcbiAgICAgIC0+IHNpemVpXG4gICAgICAtPiBzaXplaVxuICAgICAgLT4gaW50XG4gICAgICAtPiAjVHlwZWRfYXJyYXkuYXJyYXlCdWZmZXJWaWV3IHRcbiAgICAgIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNvbXByZXNzZWRUZXhTdWJJbWFnZTJEIDpcbiAgICAgICAgIHRleFRhcmdldFxuICAgICAgLT4gaW50XG4gICAgICAtPiBpbnRcbiAgICAgIC0+IGludFxuICAgICAgLT4gc2l6ZWlcbiAgICAgIC0+IHNpemVpXG4gICAgICAtPiBwaXhlbEZvcm1hdFxuICAgICAgLT4gI1R5cGVkX2FycmF5LmFycmF5QnVmZmVyVmlldyB0XG4gICAgICAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjb3B5VGV4SW1hZ2UyRCA6XG4gICAgICB0ZXhUYXJnZXQgLT4gaW50IC0+IHBpeGVsRm9ybWF0IC0+IGludCAtPiBpbnQgLT4gc2l6ZWkgLT4gc2l6ZWkgLT4gaW50IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNvcHlUZXhTdWJJbWFnZTJEIDpcbiAgICAgIHRleFRhcmdldCAtPiBpbnQgLT4gaW50IC0+IGludCAtPiBpbnQgLT4gaW50IC0+IHNpemVpIC0+IHNpemVpIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZVRleHR1cmUgOiB0ZXh0dXJlIHQgbWV0aFxuXG4gICAgbWV0aG9kIGRlbGV0ZVRleHR1cmUgOiB0ZXh0dXJlIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZ2VuZXJhdGVNaXBtYXAgOiB0ZXhUYXJnZXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0VGV4UGFyYW1ldGVyIDogdGV4VGFyZ2V0IC0+ICdhIHRleFBhcmFtIC0+ICdhIG1ldGhcblxuICAgIG1ldGhvZCBpc1RleHR1cmUgOiB0ZXh0dXJlIHQgLT4gYm9vbCB0IG1ldGhcblxuICAgIG1ldGhvZCB0ZXhJbWFnZTJEX25ldyA6XG4gICAgICAgICB0ZXhUYXJnZXRcbiAgICAgIC0+IGludFxuICAgICAgLT4gcGl4ZWxGb3JtYXRcbiAgICAgIC0+IHNpemVpXG4gICAgICAtPiBzaXplaVxuICAgICAgLT4gaW50XG4gICAgICAtPiBwaXhlbEZvcm1hdFxuICAgICAgLT4gcGl4ZWxUeXBlXG4gICAgICAtPiB2b2lkIG9wdFxuICAgICAgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdGV4SW1hZ2UyRF9mcm9tVmlldyA6XG4gICAgICAgICB0ZXhUYXJnZXRcbiAgICAgIC0+IGludFxuICAgICAgLT4gcGl4ZWxGb3JtYXRcbiAgICAgIC0+IHNpemVpXG4gICAgICAtPiBzaXplaVxuICAgICAgLT4gaW50XG4gICAgICAtPiBwaXhlbEZvcm1hdFxuICAgICAgLT4gcGl4ZWxUeXBlXG4gICAgICAtPiAjVHlwZWRfYXJyYXkuYXJyYXlCdWZmZXJWaWV3IHRcbiAgICAgIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHRleEltYWdlMkRfZnJvbUltYWdlRGF0YSA6XG4gICAgICAgICB0ZXhUYXJnZXRcbiAgICAgIC0+IGludFxuICAgICAgLT4gcGl4ZWxGb3JtYXRcbiAgICAgIC0+IHBpeGVsRm9ybWF0XG4gICAgICAtPiBwaXhlbFR5cGVcbiAgICAgIC0+IERvbV9odG1sLmltYWdlRGF0YSB0XG4gICAgICAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB0ZXhJbWFnZTJEX2Zyb21JbWFnZSA6XG4gICAgICAgICB0ZXhUYXJnZXRcbiAgICAgIC0+IGludFxuICAgICAgLT4gcGl4ZWxGb3JtYXRcbiAgICAgIC0+IHBpeGVsRm9ybWF0XG4gICAgICAtPiBwaXhlbFR5cGVcbiAgICAgIC0+IERvbV9odG1sLmltYWdlRWxlbWVudCB0XG4gICAgICAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB0ZXhJbWFnZTJEX2Zyb21DYW52YXMgOlxuICAgICAgICAgdGV4VGFyZ2V0XG4gICAgICAtPiBpbnRcbiAgICAgIC0+IHBpeGVsRm9ybWF0XG4gICAgICAtPiBwaXhlbEZvcm1hdFxuICAgICAgLT4gcGl4ZWxUeXBlXG4gICAgICAtPiBEb21faHRtbC5jYW52YXNFbGVtZW50IHRcbiAgICAgIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHRleEltYWdlMkRfZnJvbVZpZGVvIDpcbiAgICAgICAgIHRleFRhcmdldFxuICAgICAgLT4gaW50XG4gICAgICAtPiBwaXhlbEZvcm1hdFxuICAgICAgLT4gcGl4ZWxGb3JtYXRcbiAgICAgIC0+IHBpeGVsVHlwZVxuICAgICAgLT4gRG9tX2h0bWwudmlkZW9FbGVtZW50IHRcbiAgICAgIC0+IHVuaXQgbWV0aFxuXG4gICAgKCoge1tcbiAgICAgICAgbWV0aG9kIHRleFBhcmFtZXRlcmYgOiB0ZXhUYXJnZXQgLT4gdGV4UGFyYW0gLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG4gICAgICAgXX1cbiAgICAqKVxuICAgIG1ldGhvZCB0ZXhQYXJhbWV0ZXJpIDogdGV4VGFyZ2V0IC0+ICdhIHRleFBhcmFtIC0+ICdhIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHRleFN1YkltYWdlMkRfZnJvbVZpZXcgOlxuICAgICAgICAgdGV4VGFyZ2V0XG4gICAgICAtPiBpbnRcbiAgICAgIC0+IGludFxuICAgICAgLT4gaW50XG4gICAgICAtPiBzaXplaVxuICAgICAgLT4gc2l6ZWlcbiAgICAgIC0+IHBpeGVsRm9ybWF0XG4gICAgICAtPiBwaXhlbFR5cGVcbiAgICAgIC0+ICNUeXBlZF9hcnJheS5hcnJheUJ1ZmZlclZpZXcgdFxuICAgICAgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdGV4U3ViSW1hZ2UyRF9mcm9tSW1hZ2VEYXRhIDpcbiAgICAgICAgIHRleFRhcmdldFxuICAgICAgLT4gaW50XG4gICAgICAtPiBpbnRcbiAgICAgIC0+IGludFxuICAgICAgLT4gcGl4ZWxGb3JtYXRcbiAgICAgIC0+IHBpeGVsVHlwZVxuICAgICAgLT4gRG9tX2h0bWwuaW1hZ2VEYXRhIHRcbiAgICAgIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHRleFN1YkltYWdlMkRfZnJvbUltYWdlIDpcbiAgICAgICAgIHRleFRhcmdldFxuICAgICAgLT4gaW50XG4gICAgICAtPiBpbnRcbiAgICAgIC0+IGludFxuICAgICAgLT4gcGl4ZWxGb3JtYXRcbiAgICAgIC0+IHBpeGVsVHlwZVxuICAgICAgLT4gRG9tX2h0bWwuaW1hZ2VFbGVtZW50IHRcbiAgICAgIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHRleFN1YkltYWdlMkRfZnJvbUNhbnZhcyA6XG4gICAgICAgICB0ZXhUYXJnZXRcbiAgICAgIC0+IGludFxuICAgICAgLT4gaW50XG4gICAgICAtPiBpbnRcbiAgICAgIC0+IHBpeGVsRm9ybWF0XG4gICAgICAtPiBwaXhlbFR5cGVcbiAgICAgIC0+IERvbV9odG1sLmNhbnZhc0VsZW1lbnQgdFxuICAgICAgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdGV4U3ViSW1hZ2UyRF9mcm9tVmlkZW8gOlxuICAgICAgICAgdGV4VGFyZ2V0XG4gICAgICAtPiBpbnRcbiAgICAgIC0+IGludFxuICAgICAgLT4gaW50XG4gICAgICAtPiBwaXhlbEZvcm1hdFxuICAgICAgLT4gcGl4ZWxUeXBlXG4gICAgICAtPiBEb21faHRtbC52aWRlb0VsZW1lbnQgdFxuICAgICAgLT4gdW5pdCBtZXRoXG5cbiAgICAoKiogNS4xMy45IFByb2dyYW1zIGFuZCBTaGFkZXJzICopXG5cbiAgICBtZXRob2QgYXR0YWNoU2hhZGVyIDogcHJvZ3JhbSB0IC0+IHNoYWRlciB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGJpbmRBdHRyaWJMb2NhdGlvbiA6IHByb2dyYW0gdCAtPiB1aW50IC0+IGpzX3N0cmluZyB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNvbXBpbGVTaGFkZXIgOiBzaGFkZXIgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVQcm9ncmFtIDogcHJvZ3JhbSB0IG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVTaGFkZXIgOiBzaGFkZXJUeXBlIC0+IHNoYWRlciB0IG1ldGhcblxuICAgIG1ldGhvZCBkZWxldGVQcm9ncmFtIDogcHJvZ3JhbSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGRlbGV0ZVNoYWRlciA6IHNoYWRlciB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGRldGFjaFNoYWRlciA6IHByb2dyYW0gdCAtPiBzaGFkZXIgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRBdHRhY2hlZFNoYWRlcnMgOiBwcm9ncmFtIHQgLT4gc2hhZGVyIHQganNfYXJyYXkgdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0UHJvZ3JhbVBhcmFtZXRlciA6ICdhLiBwcm9ncmFtIHQgLT4gJ2EgcHJvZ3JhbVBhcmFtIC0+ICdhIG1ldGhcblxuICAgIG1ldGhvZCBnZXRQcm9ncmFtSW5mb0xvZyA6IHByb2dyYW0gdCAtPiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0U2hhZGVyUGFyYW1ldGVyIDogJ2EuIHNoYWRlciB0IC0+ICdhIHNoYWRlclBhcmFtIC0+ICdhIG1ldGhcblxuICAgIG1ldGhvZCBnZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQgOlxuICAgICAgc2hhZGVyVHlwZSAtPiBzaGFkZXJQcmVjaXNpb25UeXBlIC0+IHNoYWRlclByZWNpc2lvbkZvcm1hdCB0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRTaGFkZXJJbmZvTG9nIDogc2hhZGVyIHQgLT4ganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgbWV0aG9kIGdldFNoYWRlclNvdXJjZSA6IHNoYWRlciB0IC0+IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCBpc1Byb2dyYW0gOiBwcm9ncmFtIHQgLT4gYm9vbCB0IG1ldGhcblxuICAgIG1ldGhvZCBpc1NoYWRlciA6IHNoYWRlciB0IC0+IGJvb2wgdCBtZXRoXG5cbiAgICBtZXRob2QgbGlua1Byb2dyYW0gOiBwcm9ncmFtIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2hhZGVyU291cmNlIDogc2hhZGVyIHQgLT4ganNfc3RyaW5nIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdXNlUHJvZ3JhbSA6IHByb2dyYW0gdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB2YWxpZGF0ZVByb2dyYW0gOiBwcm9ncmFtIHQgLT4gdW5pdCBtZXRoXG5cbiAgICAoKiogNS4xMy4xMCBVbmlmb3JtcyBhbmQgYXR0cmlidXRlcyAqKVxuXG4gICAgbWV0aG9kIGRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheSA6IHVpbnQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZW5hYmxlVmVydGV4QXR0cmliQXJyYXkgOiB1aW50IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGdldEFjdGl2ZUF0dHJpYiA6IHByb2dyYW0gdCAtPiB1aW50IC0+IGFjdGl2ZUluZm8gdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0QWN0aXZlVW5pZm9ybSA6IHByb2dyYW0gdCAtPiB1aW50IC0+IGFjdGl2ZUluZm8gdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0QXR0cmliTG9jYXRpb24gOiBwcm9ncmFtIHQgLT4ganNfc3RyaW5nIHQgLT4gaW50IG1ldGhcblxuICAgIG1ldGhvZCBnZXRVbmlmb3JtIDogJ2EgJ2IuIHByb2dyYW0gdCAtPiAnYSB1bmlmb3JtTG9jYXRpb24gdCAtPiAnYiBtZXRoXG5cbiAgICBtZXRob2QgZ2V0VW5pZm9ybUxvY2F0aW9uIDogJ2EuIHByb2dyYW0gdCAtPiBqc19zdHJpbmcgdCAtPiAnYSB1bmlmb3JtTG9jYXRpb24gdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0VmVydGV4QXR0cmliIDogJ2EuIHVpbnQgLT4gJ2EgdmVydGV4QXR0cmliUGFyYW0gLT4gJ2EgbWV0aFxuXG4gICAgbWV0aG9kIGdldFZlcnRleEF0dHJpYk9mZnNldCA6IHVpbnQgLT4gdmVydGV4QXR0cmliUG9pbnRlclBhcmFtIC0+IHNpemVpcHRyIG1ldGhcblxuICAgIG1ldGhvZCB1bmlmb3JtMWYgOiBmbG9hdCB1bmlmb3JtTG9jYXRpb24gdCAtPiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB1bmlmb3JtMWZ2X3R5cGVkIDpcbiAgICAgIGZsb2F0IHVuaWZvcm1Mb2NhdGlvbiB0IC0+IFR5cGVkX2FycmF5LmZsb2F0MzJBcnJheSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHVuaWZvcm0xZnYgOiBmbG9hdCB1bmlmb3JtTG9jYXRpb24gdCAtPiBmbG9hdCBqc19hcnJheSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHVuaWZvcm0xaSA6IGludCB1bmlmb3JtTG9jYXRpb24gdCAtPiBpbnQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdW5pZm9ybTFpdl90eXBlZCA6XG4gICAgICBpbnQgdW5pZm9ybUxvY2F0aW9uIHQgLT4gVHlwZWRfYXJyYXkuaW50MzJBcnJheSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHVuaWZvcm0xaXYgOiBpbnQgdW5pZm9ybUxvY2F0aW9uIHQgLT4gaW50IGpzX2FycmF5IHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdW5pZm9ybTJmIDogWyBgdmVjMiBdIHVuaWZvcm1Mb2NhdGlvbiB0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHVuaWZvcm0yZnZfdHlwZWQgOlxuICAgICAgWyBgdmVjMiBdIHVuaWZvcm1Mb2NhdGlvbiB0IC0+IFR5cGVkX2FycmF5LmZsb2F0MzJBcnJheSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHVuaWZvcm0yZnYgOiBbIGB2ZWMyIF0gdW5pZm9ybUxvY2F0aW9uIHQgLT4gZmxvYXQganNfYXJyYXkgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB1bmlmb3JtMmkgOiBbIGBpdmVjMiBdIHVuaWZvcm1Mb2NhdGlvbiB0IC0+IGludCAtPiBpbnQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdW5pZm9ybTJpdiA6IFsgYGl2ZWMyIF0gdW5pZm9ybUxvY2F0aW9uIHQgLT4gaW50IGpzX2FycmF5IHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdW5pZm9ybTJpdl90eXBlZCA6XG4gICAgICBbIGBpdmVjMiBdIHVuaWZvcm1Mb2NhdGlvbiB0IC0+IFR5cGVkX2FycmF5LmludDMyQXJyYXkgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB1bmlmb3JtM2YgOiBbIGB2ZWMzIF0gdW5pZm9ybUxvY2F0aW9uIHQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdW5pZm9ybTNmdl90eXBlZCA6XG4gICAgICBbIGB2ZWMzIF0gdW5pZm9ybUxvY2F0aW9uIHQgLT4gVHlwZWRfYXJyYXkuZmxvYXQzMkFycmF5IHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdW5pZm9ybTNmdiA6IFsgYHZlYzMgXSB1bmlmb3JtTG9jYXRpb24gdCAtPiBmbG9hdCBqc19hcnJheSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHVuaWZvcm0zaSA6IFsgYGl2ZWMzIF0gdW5pZm9ybUxvY2F0aW9uIHQgLT4gaW50IC0+IGludCAtPiBpbnQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdW5pZm9ybTNpdiA6IFsgYGl2ZWMzIF0gdW5pZm9ybUxvY2F0aW9uIHQgLT4gaW50IGpzX2FycmF5IHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdW5pZm9ybTNpdl90eXBlZCA6XG4gICAgICBbIGBpdmVjMyBdIHVuaWZvcm1Mb2NhdGlvbiB0IC0+IFR5cGVkX2FycmF5LmludDMyQXJyYXkgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB1bmlmb3JtNGYgOlxuICAgICAgWyBgdmVjNCBdIHVuaWZvcm1Mb2NhdGlvbiB0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHVuaWZvcm00ZnZfdHlwZWQgOlxuICAgICAgWyBgdmVjNCBdIHVuaWZvcm1Mb2NhdGlvbiB0IC0+IFR5cGVkX2FycmF5LmZsb2F0MzJBcnJheSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHVuaWZvcm00ZnYgOiBbIGB2ZWM0IF0gdW5pZm9ybUxvY2F0aW9uIHQgLT4gZmxvYXQganNfYXJyYXkgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB1bmlmb3JtNGkgOlxuICAgICAgWyBgaXZlYzQgXSB1bmlmb3JtTG9jYXRpb24gdCAtPiBpbnQgLT4gaW50IC0+IGludCAtPiBpbnQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdW5pZm9ybTRpdiA6IFsgYGl2ZWM0IF0gdW5pZm9ybUxvY2F0aW9uIHQgLT4gaW50IGpzX2FycmF5IHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdW5pZm9ybTRpdl90eXBlZCA6XG4gICAgICBbIGBpdmVjNCBdIHVuaWZvcm1Mb2NhdGlvbiB0IC0+IFR5cGVkX2FycmF5LmludDMyQXJyYXkgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB1bmlmb3JtTWF0cml4MmZ2IDpcbiAgICAgIFsgYG1hdDIgXSB1bmlmb3JtTG9jYXRpb24gdCAtPiBib29sIHQgLT4gZmxvYXQganNfYXJyYXkgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB1bmlmb3JtTWF0cml4MmZ2X3R5cGVkIDpcbiAgICAgIFsgYG1hdDIgXSB1bmlmb3JtTG9jYXRpb24gdCAtPiBib29sIHQgLT4gVHlwZWRfYXJyYXkuZmxvYXQzMkFycmF5IHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdW5pZm9ybU1hdHJpeDNmdiA6XG4gICAgICBbIGBtYXQzIF0gdW5pZm9ybUxvY2F0aW9uIHQgLT4gYm9vbCB0IC0+IGZsb2F0IGpzX2FycmF5IHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdW5pZm9ybU1hdHJpeDNmdl90eXBlZCA6XG4gICAgICBbIGBtYXQzIF0gdW5pZm9ybUxvY2F0aW9uIHQgLT4gYm9vbCB0IC0+IFR5cGVkX2FycmF5LmZsb2F0MzJBcnJheSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHVuaWZvcm1NYXRyaXg0ZnYgOlxuICAgICAgWyBgbWF0NCBdIHVuaWZvcm1Mb2NhdGlvbiB0IC0+IGJvb2wgdCAtPiBmbG9hdCBqc19hcnJheSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHVuaWZvcm1NYXRyaXg0ZnZfdHlwZWQgOlxuICAgICAgWyBgbWF0NCBdIHVuaWZvcm1Mb2NhdGlvbiB0IC0+IGJvb2wgdCAtPiBUeXBlZF9hcnJheS5mbG9hdDMyQXJyYXkgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB2ZXJ0ZXhBdHRyaWIxZiA6IHVpbnQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdmVydGV4QXR0cmliMWZ2IDogdWludCAtPiBmbG9hdCBqc19hcnJheSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHZlcnRleEF0dHJpYjFmdl90eXBlZCA6IHVpbnQgLT4gVHlwZWRfYXJyYXkuZmxvYXQzMkFycmF5IHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdmVydGV4QXR0cmliMmYgOiB1aW50IC0+IGZsb2F0IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHZlcnRleEF0dHJpYjJmdiA6IHVpbnQgLT4gZmxvYXQganNfYXJyYXkgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB2ZXJ0ZXhBdHRyaWIyZnZfdHlwZWQgOiB1aW50IC0+IFR5cGVkX2FycmF5LmZsb2F0MzJBcnJheSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHZlcnRleEF0dHJpYjNmIDogdWludCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB2ZXJ0ZXhBdHRyaWIzZnYgOiB1aW50IC0+IGZsb2F0IGpzX2FycmF5IHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdmVydGV4QXR0cmliM2Z2X3R5cGVkIDogdWludCAtPiBUeXBlZF9hcnJheS5mbG9hdDMyQXJyYXkgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB2ZXJ0ZXhBdHRyaWI0ZiA6IHVpbnQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdmVydGV4QXR0cmliNGZ2IDogdWludCAtPiBmbG9hdCBqc19hcnJheSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHZlcnRleEF0dHJpYjRmdl90eXBlZCA6IHVpbnQgLT4gVHlwZWRfYXJyYXkuZmxvYXQzMkFycmF5IHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdmVydGV4QXR0cmliUG9pbnRlciA6XG4gICAgICB1aW50IC0+IGludCAtPiBkYXRhVHlwZSAtPiBib29sIHQgLT4gc2l6ZWkgLT4gaW50cHRyIC0+IHVuaXQgbWV0aFxuXG4gICAgKCoqIDUuMTMuMTEgV3JpdGluZyB0byB0aGUgZHJhd2luZyBidWZmZXIgKilcblxuICAgIG1ldGhvZCBjbGVhciA6IGNsZWFyQnVmZmVyTWFzayAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBkcmF3QXJyYXlzIDogYmVnaW5Nb2RlIC0+IGludCAtPiBzaXplaSAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBkcmF3RWxlbWVudHMgOiBiZWdpbk1vZGUgLT4gc2l6ZWkgLT4gZGF0YVR5cGUgLT4gaW50cHRyIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGZpbmlzaCA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGZsdXNoIDogdW5pdCBtZXRoXG5cbiAgICAoKiogNS4xMy4xMiBSZWFkaW5nIGJhY2sgcGl4ZWxzICopXG5cbiAgICBtZXRob2QgcmVhZFBpeGVscyA6XG4gICAgICAgICBpbnRcbiAgICAgIC0+IGludFxuICAgICAgLT4gc2l6ZWlcbiAgICAgIC0+IHNpemVpXG4gICAgICAtPiBwaXhlbEZvcm1hdFxuICAgICAgLT4gcGl4ZWxUeXBlXG4gICAgICAtPiAjVHlwZWRfYXJyYXkuYXJyYXlCdWZmZXJWaWV3IHRcbiAgICAgIC0+IHVuaXQgbWV0aFxuXG4gICAgKCoqIDUuMTMuMTMgRGV0ZWN0aW5nIGNvbnRleHQgbG9zdCBldmVudHMgKilcblxuICAgIG1ldGhvZCBpc0NvbnRleHRMb3N0IDogYm9vbCB0IG1ldGhcblxuICAgICgqKiA1LjEzLjE0IERldGVjdGluZyBhbmQgZW5hYmxpbmcgZXh0ZW5zaW9ucyAqKVxuXG4gICAgbWV0aG9kIGdldFN1cHBvcnRlZEV4dGVuc2lvbnMgOiBqc19zdHJpbmcgdCBqc19hcnJheSB0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRFeHRlbnNpb24gOiAnYS4ganNfc3RyaW5nIHQgLT4gJ2EgdCBvcHQgbWV0aFxuXG4gICAgKCogVW50eXBlZCEgKilcbiAgICAoKiogQ29uc3RhbnRzICopXG5cbiAgICBtZXRob2QgX0RFUFRIX0JVRkZFUl9CSVRfIDogY2xlYXJCdWZmZXJNYXNrIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU1RFTkNJTF9CVUZGRVJfQklUXyA6IGNsZWFyQnVmZmVyTWFzayByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0NPTE9SX0JVRkZFUl9CSVRfIDogY2xlYXJCdWZmZXJNYXNrIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfUE9JTlRTIDogYmVnaW5Nb2RlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTElORVMgOiBiZWdpbk1vZGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9MSU5FX0xPT1BfIDogYmVnaW5Nb2RlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTElORV9TVFJJUF8gOiBiZWdpbk1vZGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9UUklBTkdMRVMgOiBiZWdpbk1vZGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9UUklBTkdMRV9TVFJJUF8gOiBiZWdpbk1vZGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9UUklBTkdMRV9GQU5fIDogYmVnaW5Nb2RlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfWkVSTyA6IGJsZW5kaW5nRmFjdG9yIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfT05FIDogYmxlbmRpbmdGYWN0b3IgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TUkNfQ09MT1JfIDogYmxlbmRpbmdGYWN0b3IgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9PTkVfTUlOVVNfU1JDX0NPTE9SXyA6IGJsZW5kaW5nRmFjdG9yIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU1JDX0FMUEhBXyA6IGJsZW5kaW5nRmFjdG9yIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfT05FX01JTlVTX1NSQ19BTFBIQV8gOiBibGVuZGluZ0ZhY3RvciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0RTVF9BTFBIQV8gOiBibGVuZGluZ0ZhY3RvciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX09ORV9NSU5VU19EU1RfQUxQSEFfIDogYmxlbmRpbmdGYWN0b3IgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9EU1RfQ09MT1JfIDogYmxlbmRpbmdGYWN0b3IgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9PTkVfTUlOVVNfRFNUX0NPTE9SXyA6IGJsZW5kaW5nRmFjdG9yIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU1JDX0FMUEhBX1NBVFVSQVRFXyA6IGJsZW5kaW5nRmFjdG9yIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRlVOQ19BRERfIDogYmxlbmRNb2RlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRlVOQ19TVUJUUkFDVF8gOiBibGVuZE1vZGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9GVU5DX1JFVkVSU0VfU1VCVFJBQ1RfIDogYmxlbmRNb2RlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQ09OU1RBTlRfQ09MT1JfIDogYmxlbmRNb2RlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfT05FX01JTlVTX0NPTlNUQU5UX0NPTE9SXyA6IGJsZW5kTW9kZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0NPTlNUQU5UX0FMUEhBXyA6IGJsZW5kTW9kZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX09ORV9NSU5VU19DT05TVEFOVF9BTFBIQV8gOiBibGVuZE1vZGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9BUlJBWV9CVUZGRVJfIDogYnVmZmVyVGFyZ2V0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRUxFTUVOVF9BUlJBWV9CVUZGRVJfIDogYnVmZmVyVGFyZ2V0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU1RSRUFNX0RSQVdfIDogYnVmZmVyVXNhZ2UgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TVEFUSUNfRFJBV18gOiBidWZmZXJVc2FnZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0RZTkFNSUNfRFJBV18gOiBidWZmZXJVc2FnZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0ZST05UIDogY3VsbEZhY2VNb2RlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQkFDSyA6IGN1bGxGYWNlTW9kZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0ZST05UX0FORF9CQUNLXyA6IGN1bGxGYWNlTW9kZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0NVTExfRkFDRV8gOiBlbmFibGVDYXAgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9CTEVORCA6IGVuYWJsZUNhcCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0RJVEhFUiA6IGVuYWJsZUNhcCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NURU5DSUxfVEVTVF8gOiBlbmFibGVDYXAgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9ERVBUSF9URVNUXyA6IGVuYWJsZUNhcCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NDSVNTT1JfVEVTVF8gOiBlbmFibGVDYXAgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9QT0xZR09OX09GRlNFVF9GSUxMXyA6IGVuYWJsZUNhcCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NBTVBMRV9BTFBIQV9UT19DT1ZFUkFHRV8gOiBlbmFibGVDYXAgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TQU1QTEVfQ09WRVJBR0VfIDogZW5hYmxlQ2FwIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTk9fRVJST1JfIDogZXJyb3JDb2RlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfSU5WQUxJRF9FTlVNXyA6IGVycm9yQ29kZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0lOVkFMSURfVkFMVUVfIDogZXJyb3JDb2RlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfSU5WQUxJRF9PUEVSQVRJT05fIDogZXJyb3JDb2RlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfT1VUX09GX01FTU9SWV8gOiBlcnJvckNvZGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9DT05URVhUX0xPU1RfV0VCR0xfIDogZXJyb3JDb2RlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT05fIDogZXJyb3JDb2RlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQ1cgOiBmcm9udEZhY2VEaXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9DQ1cgOiBmcm9udEZhY2VEaXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9ET05UX0NBUkVfIDogaGludE1vZGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9GQVNURVNUIDogaGludE1vZGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9OSUNFU1QgOiBoaW50TW9kZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0dFTkVSQVRFX01JUE1BUF9ISU5UXyA6IGhpbnRUYXJnZXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9CTEVORF9FUVVBVElPTl8gOiBibGVuZE1vZGUgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQkxFTkRfRVFVQVRJT05fUkdCXyA6IGJsZW5kTW9kZSBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9CTEVORF9FUVVBVElPTl9BTFBIQV8gOiBibGVuZE1vZGUgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQkxFTkRfRFNUX1JHQl8gOiBibGVuZGluZ0ZhY3RvciBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9CTEVORF9TUkNfUkdCXyA6IGJsZW5kaW5nRmFjdG9yIHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0JMRU5EX0RTVF9BTFBIQV8gOiBibGVuZGluZ0ZhY3RvciBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9CTEVORF9TUkNfQUxQSEFfIDogYmxlbmRpbmdGYWN0b3IgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQkxFTkRfQ09MT1JfIDogVHlwZWRfYXJyYXkuZmxvYXQzMkFycmF5IHQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQVJSQVlfQlVGRkVSX0JJTkRJTkdfIDogYnVmZmVyIHQgb3B0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0VMRU1FTlRfQVJSQVlfQlVGRkVSX0JJTkRJTkdfIDogYnVmZmVyIHQgb3B0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0NVTExfRkFDRV9QQVJBTSA6IGJvb2wgdCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9CTEVORF9QQVJBTSA6IGJvb2wgdCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9ESVRIRVJfUEFSQU0gOiBib29sIHQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU1RFTkNJTF9URVNUX1BBUkFNIDogYm9vbCB0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0RFUFRIX1RFU1RfUEFSQU0gOiBib29sIHQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU0NJU1NPUl9URVNUX1BBUkFNIDogYm9vbCB0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1BPTFlHT05fT0ZGU0VUX0ZJTExfUEFSQU0gOiBib29sIHQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTElORV9XSURUSF8gOiBmbG9hdCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9BTElBU0VEX1BPSU5UX1NJWkVfUkFOR0VfIDogVHlwZWRfYXJyYXkuZmxvYXQzMkFycmF5IHQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQUxJQVNFRF9MSU5FX1dJRFRIX1JBTkdFXyA6IFR5cGVkX2FycmF5LmZsb2F0MzJBcnJheSB0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0NVTExfRkFDRV9NT0RFXyA6IGN1bGxGYWNlTW9kZSBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9GUk9OVF9GQUNFXyA6IGZyb250RmFjZURpciBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9ERVBUSF9SQU5HRV8gOiBUeXBlZF9hcnJheS5mbG9hdDMyQXJyYXkgdCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9ERVBUSF9XUklURU1BU0tfIDogYm9vbCB0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0RFUFRIX0NMRUFSX1ZBTFVFXyA6IGZsb2F0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0RFUFRIX0ZVTkNfIDogZGVwdGhGdW5jdGlvbiBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TVEVOQ0lMX0NMRUFSX1ZBTFVFXyA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TVEVOQ0lMX0ZVTkNfIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NURU5DSUxfRkFJTF8gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU1RFTkNJTF9QQVNTX0RFUFRIX0ZBSUxfIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NURU5DSUxfUEFTU19ERVBUSF9QQVNTXyA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TVEVOQ0lMX1JFRl8gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU1RFTkNJTF9WQUxVRV9NQVNLXyA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TVEVOQ0lMX1dSSVRFTUFTS18gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU1RFTkNJTF9CQUNLX0ZVTkNfIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NURU5DSUxfQkFDS19GQUlMXyA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TVEVOQ0lMX0JBQ0tfUEFTU19ERVBUSF9GQUlMXyA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TVEVOQ0lMX0JBQ0tfUEFTU19ERVBUSF9QQVNTXyA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TVEVOQ0lMX0JBQ0tfUkVGXyA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TVEVOQ0lMX0JBQ0tfVkFMVUVfTUFTS18gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU1RFTkNJTF9CQUNLX1dSSVRFTUFTS18gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVklFV1BPUlQgOiBUeXBlZF9hcnJheS5pbnQzMkFycmF5IHQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU0NJU1NPUl9CT1hfIDogVHlwZWRfYXJyYXkuaW50MzJBcnJheSB0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0NPTE9SX0NMRUFSX1ZBTFVFXyA6IFR5cGVkX2FycmF5LmZsb2F0MzJBcnJheSB0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0NPTE9SX1dSSVRFTUFTS18gOiBib29sIHQganNfYXJyYXkgdCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9VTlBBQ0tfQUxJR05NRU5UX1BBUkFNIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1BBQ0tfQUxJR05NRU5UXyA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9NQVhfVEVYVFVSRV9TSVpFXyA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9NQVhfVklFV1BPUlRfRElNU18gOiBUeXBlZF9hcnJheS5pbnQzMkFycmF5IHQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU1VCUElYRUxfQklUU18gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfUkVEX0JJVFNfIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0dSRUVOX0JJVFNfIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0JMVUVfQklUU18gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQUxQSEFfQklUU18gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfREVQVEhfQklUU18gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU1RFTkNJTF9CSVRTXyA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9QT0xZR09OX09GRlNFVF9VTklUU18gOiBmbG9hdCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9QT0xZR09OX09GRlNFVF9GQUNUT1JfIDogZmxvYXQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRV9CSU5ESU5HXzJEXyA6IHRleHR1cmUgdCBvcHQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRV9CSU5ESU5HX0NVQkVfTUFQXyA6IHRleHR1cmUgdCBvcHQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU0FNUExFX0JVRkZFUlNfIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NBTVBMRVNfIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NBTVBMRV9DT1ZFUkFHRV9WQUxVRV8gOiBmbG9hdCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TQU1QTEVfQ09WRVJBR0VfSU5WRVJUXyA6IGJvb2wgdCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9OVU1fQ09NUFJFU1NFRF9URVhUVVJFX0ZPUk1BVFNfIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0NPTVBSRVNTRURfVEVYVFVSRV9GT1JNQVRTXyA6XG4gICAgICBUeXBlZF9hcnJheS51aW50MzJBcnJheSB0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0dFTkVSQVRFX01JUE1BUF9ISU5UX1BBUkFNXyA6IGhpbnRNb2RlIHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0JVRkZFUl9TSVpFXyA6IGludCBidWZmZXJQYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9CVUZGRVJfVVNBR0VfIDogYnVmZmVyVXNhZ2UgYnVmZmVyUGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQllURSA6IGRhdGFUeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVU5TSUdORURfQllURV9EVCA6IGRhdGFUeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU0hPUlQgOiBkYXRhVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1VOU0lHTkVEX1NIT1JUXyA6IGRhdGFUeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfSU5UIDogZGF0YVR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9VTlNJR05FRF9JTlRfIDogZGF0YVR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9GTE9BVCA6IGRhdGFUeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVU5TSUdORURfQllURV8gOiBwaXhlbFR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9VTlNJR05FRF9TSE9SVF80XzRfNF80XyA6IHBpeGVsVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1VOU0lHTkVEX1NIT1JUXzVfNV81XzFfIDogcGl4ZWxUeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVU5TSUdORURfU0hPUlRfNV82XzVfIDogcGl4ZWxUeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQUxQSEEgOiBwaXhlbEZvcm1hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1JHQiA6IHBpeGVsRm9ybWF0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfUkdCQSA6IHBpeGVsRm9ybWF0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTFVNSU5BTkNFIDogcGl4ZWxGb3JtYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9MVU1JTkFOQ0VfQUxQSEFfIDogcGl4ZWxGb3JtYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TVEVOQ0lMX0lOREVYXyA6IHBpeGVsRm9ybWF0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfREVQVEhfU1RFTkNJTF8gOiBwaXhlbEZvcm1hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0RFUFRIX0NPTVBPTkVOVF8gOiBwaXhlbEZvcm1hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0ZSQUdNRU5UX1NIQURFUl8gOiBzaGFkZXJUeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVkVSVEVYX1NIQURFUl8gOiBzaGFkZXJUeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTUFYX1ZFUlRFWF9BVFRSSUJTXyA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9NQVhfVkVSVEVYX1VOSUZPUk1fVkVDVE9SU18gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTUFYX1ZBUllJTkdfVkVDVE9SU18gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTUFYX0NPTUJJTkVEX1RFWFRVUkVfSU1BR0VfVU5JVFNfIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX01BWF9WRVJURVhfVEVYVFVSRV9JTUFHRV9VTklUU18gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTUFYX1RFWFRVUkVfSU1BR0VfVU5JVFNfIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX01BWF9GUkFHTUVOVF9VTklGT1JNX1ZFQ1RPUlNfIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NIQURFUl9UWVBFXyA6IHNoYWRlclR5cGUgc2hhZGVyUGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9ERUxFVEVfU1RBVFVTXyA6IGJvb2wgdCBzaGFkZXJQYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0NPTVBJTEVfU1RBVFVTXyA6IGJvb2wgdCBzaGFkZXJQYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0RFTEVURV9TVEFUVVNfUFJPRyA6IGJvb2wgdCBwcm9ncmFtUGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9MSU5LX1NUQVRVU18gOiBib29sIHQgcHJvZ3JhbVBhcmFtIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVkFMSURBVEVfU1RBVFVTXyA6IGJvb2wgdCBwcm9ncmFtUGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9BVFRBQ0hFRF9TSEFERVJTXyA6IGludCBwcm9ncmFtUGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9BQ1RJVkVfVU5JRk9STVNfIDogaW50IHByb2dyYW1QYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0FDVElWRV9BVFRSSUJVVEVTXyA6IGludCBwcm9ncmFtUGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TSEFESU5HX0xBTkdVQUdFX1ZFUlNJT05fIDoganNfc3RyaW5nIHQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQ1VSUkVOVF9QUk9HUkFNXyA6IHByb2dyYW0gdCBvcHQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVkVORE9SIDoganNfc3RyaW5nIHQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfUkVOREVSRVIgOiBqc19zdHJpbmcgdCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9WRVJTSU9OIDoganNfc3RyaW5nIHQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTUFYX0NVQkVfTUFQX1RFWFRVUkVfU0laRV8gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQUNUSVZFX1RFWFRVUkVfIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0ZSQU1FQlVGRkVSX0JJTkRJTkdfIDogZnJhbWVidWZmZXIgdCBvcHQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfUkVOREVSQlVGRkVSX0JJTkRJTkdfIDogcmVuZGVyYnVmZmVyIHQgb3B0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX01BWF9SRU5ERVJCVUZGRVJfU0laRSA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9ORVZFUiA6IGRlcHRoRnVuY3Rpb24gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9MRVNTIDogZGVwdGhGdW5jdGlvbiByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0VRVUFMIDogZGVwdGhGdW5jdGlvbiByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0xFUVVBTCA6IGRlcHRoRnVuY3Rpb24gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9HUkVBVEVSIDogZGVwdGhGdW5jdGlvbiByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX05PVEVRVUFMIDogZGVwdGhGdW5jdGlvbiByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0dFUVVBTCA6IGRlcHRoRnVuY3Rpb24gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9BTFdBWVMgOiBkZXB0aEZ1bmN0aW9uIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfS0VFUCA6IHN0ZW5jaWxPcCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1JFUExBQ0UgOiBzdGVuY2lsT3AgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9JTkNSIDogc3RlbmNpbE9wIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfREVDUiA6IHN0ZW5jaWxPcCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0lOVkVSVCA6IHN0ZW5jaWxPcCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0lOQ1JfV1JBUF8gOiBzdGVuY2lsT3AgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9ERUNSX1dSQVBfIDogc3RlbmNpbE9wIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfWkVST18gOiBzdGVuY2lsT3AgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9ORUFSRVNUIDogdGV4RmlsdGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTElORUFSIDogdGV4RmlsdGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTkVBUkVTVF9NSVBNQVBfTkVBUkVTVF8gOiB0ZXhGaWx0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9MSU5FQVJfTUlQTUFQX05FQVJFU1RfIDogdGV4RmlsdGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTkVBUkVTVF9NSVBNQVBfTElORUFSXyA6IHRleEZpbHRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0xJTkVBUl9NSVBNQVBfTElORUFSXyA6IHRleEZpbHRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkVfTUFHX0ZJTFRFUl8gOiB0ZXhGaWx0ZXIgdGV4UGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFX01JTl9GSUxURVJfIDogdGV4RmlsdGVyIHRleFBhcmFtIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRV9XUkFQX1NfIDogd3JhcE1vZGUgdGV4UGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFX1dSQVBfVF8gOiB3cmFwTW9kZSB0ZXhQYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX05PTkVfT1QgOiBvYmplY3RUeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRV9PVCA6IG9iamVjdFR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9SRU5ERVJCVUZGRVJfT1QgOiBvYmplY3RUeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRV8yRF8gOiB0ZXhUYXJnZXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFX0NVQkVfTUFQXyA6IHRleFRhcmdldCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWF8gOiB0ZXhUYXJnZXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1hfIDogdGV4VGFyZ2V0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9ZXyA6IHRleFRhcmdldCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWV8gOiB0ZXhUYXJnZXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1pfIDogdGV4VGFyZ2V0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9aXyA6IHRleFRhcmdldCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkUwIDogdGV4dHVyZVVuaXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFMSA6IHRleHR1cmVVbml0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRTIgOiB0ZXh0dXJlVW5pdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkUzIDogdGV4dHVyZVVuaXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFNCA6IHRleHR1cmVVbml0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRTUgOiB0ZXh0dXJlVW5pdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkU2IDogdGV4dHVyZVVuaXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFNyA6IHRleHR1cmVVbml0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRTggOiB0ZXh0dXJlVW5pdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkU5IDogdGV4dHVyZVVuaXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFMTAgOiB0ZXh0dXJlVW5pdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkUxMSA6IHRleHR1cmVVbml0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRTEyIDogdGV4dHVyZVVuaXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFMTMgOiB0ZXh0dXJlVW5pdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkUxNCA6IHRleHR1cmVVbml0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRTE1IDogdGV4dHVyZVVuaXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFMTYgOiB0ZXh0dXJlVW5pdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkUxNyA6IHRleHR1cmVVbml0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRTE4IDogdGV4dHVyZVVuaXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFMTkgOiB0ZXh0dXJlVW5pdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkUyMCA6IHRleHR1cmVVbml0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRTIxIDogdGV4dHVyZVVuaXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFMjIgOiB0ZXh0dXJlVW5pdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkUyMyA6IHRleHR1cmVVbml0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRTI0IDogdGV4dHVyZVVuaXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFMjUgOiB0ZXh0dXJlVW5pdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkUyNiA6IHRleHR1cmVVbml0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRTI3IDogdGV4dHVyZVVuaXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFMjggOiB0ZXh0dXJlVW5pdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkUyOSA6IHRleHR1cmVVbml0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRTMwIDogdGV4dHVyZVVuaXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFMzEgOiB0ZXh0dXJlVW5pdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1JFUEVBVCA6IHdyYXBNb2RlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQ0xBTVBfVE9fRURHRV8gOiB3cmFwTW9kZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX01JUlJPUkVEX1JFUEVBVF8gOiB3cmFwTW9kZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0ZMT0FUXyA6IHVuaWZvcm1UeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRkxPQVRfVkVDMl8gOiB1bmlmb3JtVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0ZMT0FUX1ZFQzNfIDogdW5pZm9ybVR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9GTE9BVF9WRUM0XyA6IHVuaWZvcm1UeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfSU5UXyA6IHVuaWZvcm1UeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfSU5UX1ZFQzJfIDogdW5pZm9ybVR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9JTlRfVkVDM18gOiB1bmlmb3JtVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0lOVF9WRUM0XyA6IHVuaWZvcm1UeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQk9PTF8gOiB1bmlmb3JtVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0JPT0xfVkVDMl8gOiB1bmlmb3JtVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0JPT0xfVkVDM18gOiB1bmlmb3JtVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0JPT0xfVkVDNF8gOiB1bmlmb3JtVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0ZMT0FUX01BVDJfIDogdW5pZm9ybVR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9GTE9BVF9NQVQzXyA6IHVuaWZvcm1UeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRkxPQVRfTUFUNF8gOiB1bmlmb3JtVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NBTVBMRVJfMkRfIDogdW5pZm9ybVR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TQU1QTEVSX0NVQkVfIDogdW5pZm9ybVR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9WRVJURVhfQVRUUklCX0FSUkFZX0VOQUJMRURfIDogYm9vbCB0IHZlcnRleEF0dHJpYlBhcmFtIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVkVSVEVYX0FUVFJJQl9BUlJBWV9TSVpFXyA6IGludCB2ZXJ0ZXhBdHRyaWJQYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1ZFUlRFWF9BVFRSSUJfQVJSQVlfU1RSSURFXyA6IGludCB2ZXJ0ZXhBdHRyaWJQYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1ZFUlRFWF9BVFRSSUJfQVJSQVlfVFlQRV8gOiBpbnQgdmVydGV4QXR0cmliUGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9WRVJURVhfQVRUUklCX0FSUkFZX05PUk1BTElaRURfIDogYm9vbCB0IHZlcnRleEF0dHJpYlBhcmFtIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVkVSVEVYX0FUVFJJQl9BUlJBWV9QT0lOVEVSXyA6IHZlcnRleEF0dHJpYlBvaW50ZXJQYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1ZFUlRFWF9BVFRSSUJfQVJSQVlfQlVGRkVSX0JJTkRJTkdfIDpcbiAgICAgIGJ1ZmZlciB0IG9wdCB2ZXJ0ZXhBdHRyaWJQYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0NVUlJFTlRfVkVSVEVYX0FUVFJJQl8gOlxuICAgICAgVHlwZWRfYXJyYXkuZmxvYXQzMkFycmF5IHQgdmVydGV4QXR0cmliUGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9MT1dfRkxPQVRfIDogc2hhZGVyUHJlY2lzaW9uVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX01FRElVTV9GTE9BVF8gOiBzaGFkZXJQcmVjaXNpb25UeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfSElHSF9GTE9BVF8gOiBzaGFkZXJQcmVjaXNpb25UeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTE9XX0lOVF8gOiBzaGFkZXJQcmVjaXNpb25UeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTUVESVVNX0lOVF8gOiBzaGFkZXJQcmVjaXNpb25UeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfSElHSF9JTlRfIDogc2hhZGVyUHJlY2lzaW9uVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0ZSQU1FQlVGRkVSIDogZmJUYXJnZXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9SRU5ERVJCVUZGRVIgOiByYlRhcmdldCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1JHQkE0IDogZm9ybWF0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfUkdCNV9BMV8gOiBmb3JtYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9SR0I1NjUgOiBmb3JtYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9ERVBUSF9DT01QT05FTlQxNl8gOiBmb3JtYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TVEVOQ0lMX0lOREVYOF8gOiBmb3JtYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9SRU5ERVJCVUZGRVJfV0lEVEhfIDogaW50IHJlbmRlcmJ1ZmZlclBhcmFtIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfUkVOREVSQlVGRkVSX0hFSUdIVF8gOiBpbnQgcmVuZGVyYnVmZmVyUGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9SRU5ERVJCVUZGRVJfSU5URVJOQUxfRk9STUFUXyA6IGZvcm1hdCByZW5kZXJidWZmZXJQYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1JFTkRFUkJVRkZFUl9SRURfU0laRV8gOiBpbnQgcmVuZGVyYnVmZmVyUGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9SRU5ERVJCVUZGRVJfR1JFRU5fU0laRV8gOiBpbnQgcmVuZGVyYnVmZmVyUGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9SRU5ERVJCVUZGRVJfQkxVRV9TSVpFXyA6IGludCByZW5kZXJidWZmZXJQYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1JFTkRFUkJVRkZFUl9BTFBIQV9TSVpFXyA6IGludCByZW5kZXJidWZmZXJQYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1JFTkRFUkJVRkZFUl9ERVBUSF9TSVpFXyA6IGludCByZW5kZXJidWZmZXJQYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1JFTkRFUkJVRkZFUl9TVEVOQ0lMX1NJWkVfIDogaW50IHJlbmRlcmJ1ZmZlclBhcmFtIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRV8gOiBvYmplY3RUeXBlIGF0dGFjaFBhcmFtIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfTkFNRV9SRU5ERVJCVUZGRVIgOlxuICAgICAgcmVuZGVyYnVmZmVyIHQgYXR0YWNoUGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9OQU1FX1RFWFRVUkUgOlxuICAgICAgdGV4dHVyZSB0IGF0dGFjaFBhcmFtIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9URVhUVVJFX0xFVkVMXyA6IGludCBhdHRhY2hQYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0ZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfVEVYVFVSRV9DVUJFX01BUF9GQUNFXyA6IGludCBhdHRhY2hQYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0NPTE9SX0FUVEFDSE1FTlQwXyA6IGF0dGFjaG1lbnRQb2ludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0RFUFRIX0FUVEFDSE1FTlRfIDogYXR0YWNobWVudFBvaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU1RFTkNJTF9BVFRBQ0hNRU5UXyA6IGF0dGFjaG1lbnRQb2ludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0RFUFRIX1NURU5DSUxfQVRUQUNITUVOVF8gOiBhdHRhY2htZW50UG9pbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9GUkFNRUJVRkZFUl9DT01QTEVURV8gOiBmcmFtZWJ1ZmZlclN0YXR1cyByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0ZSQU1FQlVGRkVSX0lOQ09NUExFVEVfQVRUQUNITUVOVF8gOiBmcmFtZWJ1ZmZlclN0YXR1cyByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0ZSQU1FQlVGRkVSX0lOQ09NUExFVEVfTUlTU0lOR19BVFRBQ0hNRU5UXyA6IGZyYW1lYnVmZmVyU3RhdHVzIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRlJBTUVCVUZGRVJfSU5DT01QTEVURV9ESU1FTlNJT05TXyA6IGZyYW1lYnVmZmVyU3RhdHVzIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRlJBTUVCVUZGRVJfVU5TVVBQT1JURURfIDogZnJhbWVidWZmZXJTdGF0dXMgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9VTlBBQ0tfRkxJUF9ZX1dFQkdMX1BBUkFNIDogYm9vbCB0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1VOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTF9QQVJBTSA6IGJvb2wgdCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9VTlBBQ0tfQ09MT1JTUEFDRV9DT05WRVJTSU9OX1dFQkdMX1BBUkFNIDpcbiAgICAgIGNvbG9yc3BhY2VDb252ZXJzaW9uIHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX05PTkUgOiBjb2xvcnNwYWNlQ29udmVyc2lvbiByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0JST1dTRVJfREVGQVVMVF9XRUJHTF8gOiBjb2xvcnNwYWNlQ29udmVyc2lvbiByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1VOUEFDS19BTElHTk1FTlRfIDogaW50IHBpeGVsU3RvcmVQYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1VOUEFDS19GTElQX1lfV0VCR0xfIDogYm9vbCB0IHBpeGVsU3RvcmVQYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1VOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTF8gOiBib29sIHQgcGl4ZWxTdG9yZVBhcmFtIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVU5QQUNLX0NPTE9SU1BBQ0VfQ09OVkVSU0lPTl9XRUJHTF8gOiBpbnQgcGl4ZWxTdG9yZVBhcmFtIHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbigqKiA1LjE0IFdlYkdMQ29udGV4dEV2ZW50ICopXG5cbmNsYXNzIHR5cGUgY29udGV4dEV2ZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBEb21faHRtbC5ldmVudFxuXG4gICAgbWV0aG9kIHN0YXR1c01lc3NhZ2UgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5tb2R1bGUgRXZlbnQgPSBzdHJ1Y3RcbiAgbGV0IHdlYmdsY29udGV4dGxvc3QgPSBEb21faHRtbC5FdmVudC5tYWtlIFwid2ViZ2xjb250ZXh0bG9zdFwiXG5cbiAgbGV0IHdlYmdsY29udGV4dHJlc3RvcmVkID0gRG9tX2h0bWwuRXZlbnQubWFrZSBcIndlYmdsY29udGV4dHJlc3RvcmVkXCJcblxuICBsZXQgd2ViZ2xjb250ZXh0Y3JlYXRpb25lcnJvciA9IERvbV9odG1sLkV2ZW50Lm1ha2UgXCJ3ZWJnbGNvbnRleHRjcmVhdGlvbmVycm9yXCJcbmVuZFxuXG4oKioqKilcblxuY2xhc3MgdHlwZSBjYW52YXNFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGdldENvbnRleHQgOiBqc19zdHJpbmcgdCAtPiByZW5kZXJpbmdDb250ZXh0IHQgb3B0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRDb250ZXh0XyA6IGpzX3N0cmluZyB0IC0+IGNvbnRleHRBdHRyaWJ1dGVzIHQgLT4gcmVuZGVyaW5nQ29udGV4dCB0IG9wdCBtZXRoXG4gIGVuZFxuXG5sZXQgZ2V0Q29udGV4dCAoYyA6IERvbV9odG1sLmNhbnZhc0VsZW1lbnQgdCkgPVxuICBsZXQgYyA6IGNhbnZhc0VsZW1lbnQgdCA9IEpzLlVuc2FmZS5jb2VyY2UgYyBpblxuICBsZXQgY3R4ID0gYyMjZ2V0Q29udGV4dCAoSnMuc3RyaW5nIFwid2ViZ2xcIikgaW5cbiAgaWYgT3B0LnRlc3QgY3R4IHRoZW4gY3R4IGVsc2UgYyAjIyAoZ2V0Q29udGV4dCAoSnMuc3RyaW5nIFwiZXhwZXJpbWVudGFsLXdlYmdsXCIpKVxuXG5sZXQgZ2V0Q29udGV4dFdpdGhBdHRyaWJ1dGVzIChjIDogRG9tX2h0bWwuY2FudmFzRWxlbWVudCB0KSBhdHRyaWJzID1cbiAgbGV0IGMgOiBjYW52YXNFbGVtZW50IHQgPSBKcy5VbnNhZmUuY29lcmNlIGMgaW5cbiAgbGV0IGN0eCA9IGMjI2dldENvbnRleHRfIChKcy5zdHJpbmcgXCJ3ZWJnbFwiKSBhdHRyaWJzIGluXG4gIGlmIE9wdC50ZXN0IGN0eCB0aGVuIGN0eCBlbHNlIGMjI2dldENvbnRleHRfIChKcy5zdHJpbmcgXCJleHBlcmltZW50YWwtd2ViZ2xcIikgYXR0cmlic1xuIiwiKCogSnNfb2Zfb2NhbWwgbGlicmFyeVxuICogaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbiAqIENvcHlyaWdodCAoQykgMjAxMCBSYXBoYcOrbCBQcm91c3QsIErDqXLDtG1lIFZvdWlsbG9uXG4gKiBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3RcbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuICogZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG4gKilcbm9wZW4hIEltcG9ydFxuXG50eXBlIHJlZ2V4cCA9IEpzLnJlZ0V4cCBKcy50XG5cbnR5cGUgcmVzdWx0ID0gSnMubWF0Y2hfcmVzdWx0IEpzLnRcblxubGV0IHJlZ2V4cCBzID0gbmV3JWpzIEpzLnJlZ0V4cF93aXRoRmxhZ3MgKEpzLmJ5dGVzdHJpbmcgcykgKEpzLnN0cmluZyBcImdcIilcblxubGV0IHJlZ2V4cF9jYXNlX2ZvbGQgcyA9IG5ldyVqcyBKcy5yZWdFeHBfd2l0aEZsYWdzIChKcy5ieXRlc3RyaW5nIHMpIChKcy5zdHJpbmcgXCJnaVwiKVxuXG5sZXQgcmVnZXhwX3dpdGhfZmxhZyBzIGYgPVxuICBuZXclanMgSnMucmVnRXhwX3dpdGhGbGFncyAoSnMuYnl0ZXN0cmluZyBzKSAoSnMuc3RyaW5nIChcImdcIiBeIGYpKVxuXG5sZXQgYmx1bnRfc3RyX2FycmF5X2dldCBhIGkgPVxuICBKcy50b19ieXRlc3RyaW5nIChKcy5PcHRkZWYuZ2V0IChKcy5hcnJheV9nZXQgYSBpKSAoZnVuICgpIC0+IGFzc2VydCBmYWxzZSkpXG5cbmxldCBzdHJpbmdfbWF0Y2ggciBzIGkgPVxuICByIyMubGFzdEluZGV4IDo9IGk7XG4gIEpzLk9wdC50b19vcHRpb24gKEpzLk9wdC5tYXAgKHIjI2V4ZWMgKEpzLmJ5dGVzdHJpbmcgcykpIEpzLm1hdGNoX3Jlc3VsdClcblxubGV0IHNlYXJjaCByIHMgaSA9XG4gIHIjIy5sYXN0SW5kZXggOj0gaTtcbiAgSnMuT3B0LnRvX29wdGlvblxuICAgIChKcy5PcHQubWFwXG4gICAgICAgKHIjI2V4ZWMgKEpzLmJ5dGVzdHJpbmcgcykpXG4gICAgICAgKGZ1biByZXNfcHJlIC0+XG4gICAgICAgICBsZXQgcmVzID0gSnMubWF0Y2hfcmVzdWx0IHJlc19wcmUgaW5cbiAgICAgICAgIHJlcyMjLmluZGV4LCByZXMpKVxuXG5sZXQgc2VhcmNoX2ZvcndhcmQgPSBzZWFyY2hcblxubGV0IG1hdGNoZWRfc3RyaW5nIHIgPSBibHVudF9zdHJfYXJyYXlfZ2V0IHIgMFxuXG5sZXQgbWF0Y2hlZF9ncm91cCByIGkgPVxuICBKcy5PcHRkZWYudG9fb3B0aW9uIChKcy5PcHRkZWYubWFwIChKcy5hcnJheV9nZXQgciBpKSBKcy50b19ieXRlc3RyaW5nKVxuXG5sZXQgcXVvdGVfcmVwbF9yZSA9IG5ldyVqcyBKcy5yZWdFeHBfd2l0aEZsYWdzIChKcy5zdHJpbmcgXCJbJF1cIikgKEpzLnN0cmluZyBcImdcIilcblxubGV0IHF1b3RlX3JlcGwgcyA9IChKcy5ieXRlc3RyaW5nIHMpIyNyZXBsYWNlIHF1b3RlX3JlcGxfcmUgKEpzLnN0cmluZyBcIiQkJCRcIilcblxubGV0IGdsb2JhbF9yZXBsYWNlIHIgcyBzX2J5ID1cbiAgciMjLmxhc3RJbmRleCA6PSAwO1xuICBKcy50b19ieXRlc3RyaW5nIChKcy5ieXRlc3RyaW5nIHMpICMjIChyZXBsYWNlIHIgKHF1b3RlX3JlcGwgc19ieSkpXG5cbmxldCByZXBsYWNlX2ZpcnN0IHIgcyBzX2J5ID1cbiAgbGV0IGZsYWdzID1cbiAgICBtYXRjaCBKcy50b19ib29sIHIjIy5pZ25vcmVDYXNlLCBKcy50b19ib29sIHIjIy5tdWx0aWxpbmUgd2l0aFxuICAgIHwgZmFsc2UsIGZhbHNlIC0+IEpzLnN0cmluZyBcIlwiXG4gICAgfCBmYWxzZSwgdHJ1ZSAtPiBKcy5zdHJpbmcgXCJtXCJcbiAgICB8IHRydWUsIGZhbHNlIC0+IEpzLnN0cmluZyBcImlcIlxuICAgIHwgdHJ1ZSwgdHJ1ZSAtPiBKcy5zdHJpbmcgXCJtaVwiXG4gIGluXG4gIGxldCByJyA9IG5ldyVqcyBKcy5yZWdFeHBfd2l0aEZsYWdzIHIjIy5zb3VyY2UgZmxhZ3MgaW5cbiAgSnMudG9fYnl0ZXN0cmluZyAoSnMuYnl0ZXN0cmluZyBzKSAjIyAocmVwbGFjZSByJyAocXVvdGVfcmVwbCBzX2J5KSlcblxubGV0IGxpc3Rfb2ZfanNfYXJyYXkgYSA9XG4gIGxldCByZWMgYXV4IGFjY3UgaWR4ID1cbiAgICBpZiBpZHggPCAwIHRoZW4gYWNjdSBlbHNlIGF1eCAoYmx1bnRfc3RyX2FycmF5X2dldCBhIGlkeCA6OiBhY2N1KSAoaWR4IC0gMSlcbiAgaW5cbiAgYXV4IFtdIChhIyMubGVuZ3RoIC0gMSlcblxubGV0IHNwbGl0IHIgcyA9XG4gIHIjIy5sYXN0SW5kZXggOj0gMDtcbiAgbGlzdF9vZl9qc19hcnJheSAoSnMuc3RyX2FycmF5IChKcy5ieXRlc3RyaW5nIHMpICMjIChzcGxpdF9yZWdFeHAgcikpXG5cbmxldCBib3VuZGVkX3NwbGl0IHIgcyBpID1cbiAgciMjLmxhc3RJbmRleCA6PSAwO1xuICBsaXN0X29mX2pzX2FycmF5IChKcy5zdHJfYXJyYXkgKEpzLmJ5dGVzdHJpbmcgcykgIyMgKHNwbGl0X3JlZ0V4cExpbWl0ZWQgciBpKSlcblxuKCogTW9yZSBjb25zdHJ1Y3RvcnMgKilcblxubGV0IHF1b3RlX3JlID0gcmVnZXhwIFwiW1xcXFxdWygpXFxcXFxcXFx8KyouP3t9XiRdXCJcblxubGV0IHF1b3RlIHMgPSBKcy50b19ieXRlc3RyaW5nIChKcy5ieXRlc3RyaW5nIHMpICMjIChyZXBsYWNlIHF1b3RlX3JlIChKcy5zdHJpbmcgXCJcXFxcJCZcIikpXG5cbmxldCByZWdleHBfc3RyaW5nIHMgPSByZWdleHAgKHF1b3RlIHMpXG5cbmxldCByZWdleHBfc3RyaW5nX2Nhc2VfZm9sZCBzID0gcmVnZXhwX2Nhc2VfZm9sZCAocXVvdGUgcylcbiIsIigqIEpzX29mX29jYW1sIGxpYnJhcnlcbiAqIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTAgUmFwaGHDq2wgUHJvdXN0XG4gKiBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3RcbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuICogZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG4gKilcbm9wZW4hIEltcG9ydFxuXG4oKiBVcmwgdGFtcGVyaW5nLiAqKVxuXG5sZXQgc3BsaXQgYyBzID0gSnMuc3RyX2FycmF5IChzIyNzcGxpdCAoSnMuc3RyaW5nIChTdHJpbmcubWFrZSAxIGMpKSlcblxubGV0IHNwbGl0XzIgYyBzID1cbiAgbGV0IGluZGV4ID0gcyMjaW5kZXhPZiAoSnMuc3RyaW5nIChTdHJpbmcubWFrZSAxIGMpKSBpblxuICBpZiBpbmRleCA8IDAgdGhlbiBKcy51bmRlZmluZWQgZWxzZSBKcy5kZWYgKHMjI3NsaWNlIDAgaW5kZXgsIHMjI3NsaWNlX2VuZCAoaW5kZXggKyAxKSlcblxuZXhjZXB0aW9uIExvY2FsX2V4blxuXG5sZXQgaW50ZXJydXB0ICgpID0gcmFpc2UgTG9jYWxfZXhuXG5cbigqIHVybCAoQUtBIHBlcmNlbnQpIGVuY29kaW5nL2RlY29kaW5nICopXG5cbmxldCBwbHVzX3JlID0gUmVnZXhwLnJlZ2V4cF9zdHJpbmcgXCIrXCJcblxubGV0IGVzY2FwZV9wbHVzIHMgPSBSZWdleHAuZ2xvYmFsX3JlcGxhY2UgcGx1c19yZSBzIFwiJTJCXCJcblxubGV0IHVuZXNjYXBlX3BsdXMgcyA9IFJlZ2V4cC5nbG9iYWxfcmVwbGFjZSBwbHVzX3JlIHMgXCIgXCJcblxubGV0IHBsdXNfcmVfanNfc3RyaW5nID0gbmV3JWpzIEpzLnJlZ0V4cF93aXRoRmxhZ3MgKEpzLnN0cmluZyBcIlxcXFwrXCIpIChKcy5zdHJpbmcgXCJnXCIpXG5cbmxldCB1bmVzY2FwZV9wbHVzX2pzX3N0cmluZyBzID1cbiAgcGx1c19yZV9qc19zdHJpbmcjIy5sYXN0SW5kZXggOj0gMDtcbiAgcyMjcmVwbGFjZSBwbHVzX3JlX2pzX3N0cmluZyAoSnMuc3RyaW5nIFwiIFwiKVxuXG5sZXQgdXJsZGVjb2RlX2pzX3N0cmluZ19zdHJpbmcgcyA9XG4gIEpzLnRvX2J5dGVzdHJpbmcgKEpzLnVuZXNjYXBlICh1bmVzY2FwZV9wbHVzX2pzX3N0cmluZyBzKSlcblxubGV0IHVybGRlY29kZSBzID0gSnMudG9fYnl0ZXN0cmluZyAoSnMudW5lc2NhcGUgKEpzLmJ5dGVzdHJpbmcgKHVuZXNjYXBlX3BsdXMgcykpKVxuXG4oKmxldCB1cmxlbmNvZGVfanNfc3RyaW5nX3N0cmluZyBzID1cbiAgSnMudG9fYnl0ZXN0cmluZyAoSnMuZXNjYXBlIHMpKilcblxubGV0IHVybGVuY29kZSA/KHdpdGhfcGx1cyA9IHRydWUpIHMgPVxuICBpZiB3aXRoX3BsdXNcbiAgdGhlbiBlc2NhcGVfcGx1cyAoSnMudG9fYnl0ZXN0cmluZyAoSnMuZXNjYXBlIChKcy5ieXRlc3RyaW5nIHMpKSlcbiAgZWxzZSBKcy50b19ieXRlc3RyaW5nIChKcy5lc2NhcGUgKEpzLmJ5dGVzdHJpbmcgcykpXG5cbnR5cGUgaHR0cF91cmwgPVxuICB7IGh1X2hvc3QgOiBzdHJpbmcgICgqKiBUaGUgaG9zdCBwYXJ0IG9mIHRoZSB1cmwuICopXG4gIDsgaHVfcG9ydCA6IGludCAgKCoqIFRoZSBwb3J0IGZvciB0aGUgY29ubmVjdGlvbiBpZiBhbnkuICopXG4gIDsgaHVfcGF0aCA6IHN0cmluZyBsaXN0ICAoKiogVGhlIHBhdGggc3BsaXQgb24gWycvJ10gY2hhcmFjdGVycy4gKilcbiAgOyBodV9wYXRoX3N0cmluZyA6IHN0cmluZyAgKCoqIFRoZSBvcmlnaW5hbCBlbnRpcmUgcGF0aC4gKilcbiAgOyBodV9hcmd1bWVudHMgOiAoc3RyaW5nICogc3RyaW5nKSBsaXN0XG4gICAgICAgICgqKiBBcmd1bWVudHMgYXMgYSBmaWVsZC12YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzb2NpYXRpb24gbGlzdC4qKVxuICA7IGh1X2ZyYWdtZW50IDogc3RyaW5nICAoKiogVGhlIGZyYWdtZW50IHBhcnQgKGFmdGVyIHRoZSBbJyMnXSBjaGFyYWN0ZXIpLiAqKVxuICB9XG4oKiogVGhlIHR5cGUgZm9yIEhUVFAgdXJsLiAqKVxuXG50eXBlIGZpbGVfdXJsID1cbiAgeyBmdV9wYXRoIDogc3RyaW5nIGxpc3RcbiAgOyBmdV9wYXRoX3N0cmluZyA6IHN0cmluZ1xuICA7IGZ1X2FyZ3VtZW50cyA6IChzdHJpbmcgKiBzdHJpbmcpIGxpc3RcbiAgOyBmdV9mcmFnbWVudCA6IHN0cmluZ1xuICB9XG4oKiogVGhlIHR5cGUgZm9yIGxvY2FsIGZpbGUgdXJscy4gKilcblxudHlwZSB1cmwgPVxuICB8IEh0dHAgb2YgaHR0cF91cmxcbiAgfCBIdHRwcyBvZiBodHRwX3VybFxuICB8IEZpbGUgb2YgZmlsZV91cmxcbiAgICAgICgqKiBUaGUgdHlwZSBmb3IgdXJscy4gW0ZpbGVdIGlzIGZvciBsb2NhbCBmaWxlcyBhbmQgW0V4b3RpYyBzXSBpcyBmb3JcbiAgICB1bmtub3duL3Vuc3VwcG9ydGVkIHByb3RvY29scy4gKilcblxuZXhjZXB0aW9uIE5vdF9hbl9odHRwX3Byb3RvY29sXG5cbmxldCBpc19zZWN1cmUgcHJvdF9zdHJpbmcgPVxuICBtYXRjaCBKcy50b19ieXRlc3RyaW5nIHByb3Rfc3RyaW5nIyN0b0xvd2VyQ2FzZSB3aXRoXG4gIHwgXCJodHRwczpcIiB8IFwiaHR0cHNcIiAtPiB0cnVlXG4gIHwgXCJodHRwOlwiIHwgXCJodHRwXCIgLT4gZmFsc2VcbiAgfCBcImZpbGU6XCIgfCBcImZpbGVcIiB8IF8gLT4gcmFpc2UgTm90X2FuX2h0dHBfcHJvdG9jb2xcblxuKCogcG9ydCBudW1iZXIgKilcbmxldCBkZWZhdWx0X2h0dHBfcG9ydCA9IDgwXG5cbmxldCBkZWZhdWx0X2h0dHBzX3BvcnQgPSA0NDNcblxuKCogcGF0aCAqKVxubGV0IHBhdGhfb2ZfcGF0aF9zdHJpbmcgcyA9XG4gIGxldCBsID0gU3RyaW5nLmxlbmd0aCBzIGluXG4gIGxldCByZWMgYXV4IGkgPVxuICAgIGxldCBqID0gdHJ5IFN0cmluZy5pbmRleF9mcm9tIHMgaSAnLycgd2l0aCBOb3RfZm91bmQgLT4gbCBpblxuICAgIGxldCB3b3JkID0gU3RyaW5nLnN1YiBzIGkgKGogLSBpKSBpblxuICAgIGlmIGogPj0gbCB0aGVuIFsgd29yZCBdIGVsc2Ugd29yZCA6OiBhdXggKGogKyAxKVxuICBpblxuICBtYXRjaCBhdXggMCB3aXRoXG4gIHwgWyBcIlwiIF0gLT4gW11cbiAgfCBbIFwiXCI7IFwiXCIgXSAtPiBbIFwiXCIgXVxuICB8IGEgLT4gYVxuXG4oKiBBcmd1bWVudHMgKilcbmxldCBlbmNvZGVfYXJndW1lbnRzIGwgPVxuICBTdHJpbmcuY29uY2F0IFwiJlwiIChMaXN0Lm1hcCAoZnVuIChuLCB2KSAtPiB1cmxlbmNvZGUgbiBeIFwiPVwiIF4gdXJsZW5jb2RlIHYpIGwpXG5cbmxldCBkZWNvZGVfYXJndW1lbnRzX2pzX3N0cmluZyBzID1cbiAgbGV0IGFyciA9IHNwbGl0ICcmJyBzIGluXG4gIGxldCBsZW4gPSBhcnIjIy5sZW5ndGggaW5cbiAgbGV0IG5hbWVfdmFsdWVfc3BsaXQgcyA9IHNwbGl0XzIgJz0nIHMgaW5cbiAgbGV0IHJlYyBhdXggYWNjIGlkeCA9XG4gICAgaWYgaWR4IDwgMFxuICAgIHRoZW4gYWNjXG4gICAgZWxzZVxuICAgICAgdHJ5XG4gICAgICAgIGF1eFxuICAgICAgICAgIChKcy5PcHRkZWYuY2FzZSAoSnMuYXJyYXlfZ2V0IGFyciBpZHgpIGludGVycnVwdCAoZnVuIHMgLT5cbiAgICAgICAgICAgICAgIEpzLk9wdGRlZi5jYXNlIChuYW1lX3ZhbHVlX3NwbGl0IHMpIGludGVycnVwdCAoZnVuICh4LCB5KSAtPlxuICAgICAgICAgICAgICAgICAgIGxldCBnZXQgPSB1cmxkZWNvZGVfanNfc3RyaW5nX3N0cmluZyBpblxuICAgICAgICAgICAgICAgICAgIGdldCB4LCBnZXQgeSkpXG4gICAgICAgICAgOjogYWNjKVxuICAgICAgICAgIChwcmVkIGlkeClcbiAgICAgIHdpdGggTG9jYWxfZXhuIC0+IGF1eCBhY2MgKHByZWQgaWR4KVxuICBpblxuICBhdXggW10gKGxlbiAtIDEpXG5cbmxldCBkZWNvZGVfYXJndW1lbnRzIHMgPSBkZWNvZGVfYXJndW1lbnRzX2pzX3N0cmluZyAoSnMuYnl0ZXN0cmluZyBzKVxuXG5sZXQgdXJsX3JlID1cbiAgbmV3JWpzIEpzLnJlZ0V4cFxuICAgIChKcy5ieXRlc3RyaW5nXG4gICAgICAgXCJeKFtIaF1bVHRdW1R0XVtQcF1bU3NdPyk6Ly8oWzAtOWEtekEtWi4tXSt8XFxcXFtbMC05YS16QS1aLi1dK1xcXFxdfFxcXFxbWzAtOUEtRmEtZjouXStcXFxcXSk/KDooWzAtOV0rKSk/KC8oW15cXFxcPyNdKikoXFxcXD8oW14jXSopKT8oIyguKikpPyk/JFwiKVxuXG5sZXQgZmlsZV9yZSA9XG4gIG5ldyVqcyBKcy5yZWdFeHBcbiAgICAoSnMuYnl0ZXN0cmluZyBcIl4oW0ZmXVtJaV1bTGxdW0VlXSk6Ly8oW15cXFxcPyNdKikoXFxcXD8oW14jXSopKT8oIyguKikpPyRcIilcblxubGV0IHVybF9vZl9qc19zdHJpbmcgcyA9XG4gIEpzLk9wdC5jYXNlXG4gICAgKHVybF9yZSMjZXhlYyBzKVxuICAgIChmdW4gKCkgLT5cbiAgICAgIEpzLk9wdC5jYXNlXG4gICAgICAgIChmaWxlX3JlIyNleGVjIHMpXG4gICAgICAgIChmdW4gKCkgLT4gTm9uZSlcbiAgICAgICAgKGZ1biBoYW5kbGUgLT5cbiAgICAgICAgICBsZXQgcmVzID0gSnMubWF0Y2hfcmVzdWx0IGhhbmRsZSBpblxuICAgICAgICAgIGxldCBwYXRoX3N0ciA9XG4gICAgICAgICAgICB1cmxkZWNvZGVfanNfc3RyaW5nX3N0cmluZyAoSnMuT3B0ZGVmLmdldCAoSnMuYXJyYXlfZ2V0IHJlcyAyKSBpbnRlcnJ1cHQpXG4gICAgICAgICAgaW5cbiAgICAgICAgICBTb21lXG4gICAgICAgICAgICAoRmlsZVxuICAgICAgICAgICAgICAgeyBmdV9wYXRoID0gcGF0aF9vZl9wYXRoX3N0cmluZyBwYXRoX3N0clxuICAgICAgICAgICAgICAgOyBmdV9wYXRoX3N0cmluZyA9IHBhdGhfc3RyXG4gICAgICAgICAgICAgICA7IGZ1X2FyZ3VtZW50cyA9XG4gICAgICAgICAgICAgICAgICAgZGVjb2RlX2FyZ3VtZW50c19qc19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgIChKcy5PcHRkZWYuZ2V0IChKcy5hcnJheV9nZXQgcmVzIDQpIChmdW4gKCkgLT4gSnMuYnl0ZXN0cmluZyBcIlwiKSlcbiAgICAgICAgICAgICAgIDsgZnVfZnJhZ21lbnQgPVxuICAgICAgICAgICAgICAgICAgIEpzLnRvX2J5dGVzdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgIChKcy5PcHRkZWYuZ2V0IChKcy5hcnJheV9nZXQgcmVzIDYpIChmdW4gKCkgLT4gSnMuYnl0ZXN0cmluZyBcIlwiKSlcbiAgICAgICAgICAgICAgIH0pKSlcbiAgICAoZnVuIGhhbmRsZSAtPlxuICAgICAgbGV0IHJlcyA9IEpzLm1hdGNoX3Jlc3VsdCBoYW5kbGUgaW5cbiAgICAgIGxldCBzc2wgPSBpc19zZWN1cmUgKEpzLk9wdGRlZi5nZXQgKEpzLmFycmF5X2dldCByZXMgMSkgaW50ZXJydXB0KSBpblxuICAgICAgbGV0IHBvcnRfb2Zfc3RyaW5nID0gZnVuY3Rpb25cbiAgICAgICAgfCBcIlwiIC0+IGlmIHNzbCB0aGVuIDQ0MyBlbHNlIDgwXG4gICAgICAgIHwgcyAtPiBpbnRfb2Zfc3RyaW5nIHNcbiAgICAgIGluXG4gICAgICBsZXQgcGF0aF9zdHIgPVxuICAgICAgICB1cmxkZWNvZGVfanNfc3RyaW5nX3N0cmluZ1xuICAgICAgICAgIChKcy5PcHRkZWYuZ2V0IChKcy5hcnJheV9nZXQgcmVzIDYpIChmdW4gKCkgLT4gSnMuYnl0ZXN0cmluZyBcIlwiKSlcbiAgICAgIGluXG4gICAgICBsZXQgdXJsID1cbiAgICAgICAgeyBodV9ob3N0ID1cbiAgICAgICAgICAgIHVybGRlY29kZV9qc19zdHJpbmdfc3RyaW5nIChKcy5PcHRkZWYuZ2V0IChKcy5hcnJheV9nZXQgcmVzIDIpIGludGVycnVwdClcbiAgICAgICAgOyBodV9wb3J0ID1cbiAgICAgICAgICAgIHBvcnRfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgIChKcy50b19ieXRlc3RyaW5nXG4gICAgICAgICAgICAgICAgIChKcy5PcHRkZWYuZ2V0IChKcy5hcnJheV9nZXQgcmVzIDQpIChmdW4gKCkgLT4gSnMuYnl0ZXN0cmluZyBcIlwiKSkpXG4gICAgICAgIDsgaHVfcGF0aCA9IHBhdGhfb2ZfcGF0aF9zdHJpbmcgcGF0aF9zdHJcbiAgICAgICAgOyBodV9wYXRoX3N0cmluZyA9IHBhdGhfc3RyXG4gICAgICAgIDsgaHVfYXJndW1lbnRzID1cbiAgICAgICAgICAgIGRlY29kZV9hcmd1bWVudHNfanNfc3RyaW5nXG4gICAgICAgICAgICAgIChKcy5PcHRkZWYuZ2V0IChKcy5hcnJheV9nZXQgcmVzIDgpIChmdW4gKCkgLT4gSnMuYnl0ZXN0cmluZyBcIlwiKSlcbiAgICAgICAgOyBodV9mcmFnbWVudCA9XG4gICAgICAgICAgICB1cmxkZWNvZGVfanNfc3RyaW5nX3N0cmluZ1xuICAgICAgICAgICAgICAoSnMuT3B0ZGVmLmdldCAoSnMuYXJyYXlfZ2V0IHJlcyAxMCkgKGZ1biAoKSAtPiBKcy5ieXRlc3RyaW5nIFwiXCIpKVxuICAgICAgICB9XG4gICAgICBpblxuICAgICAgU29tZSAoaWYgc3NsIHRoZW4gSHR0cHMgdXJsIGVsc2UgSHR0cCB1cmwpKVxuXG5sZXQgdXJsX29mX3N0cmluZyBzID0gdXJsX29mX2pzX3N0cmluZyAoSnMuYnl0ZXN0cmluZyBzKVxuXG5sZXQgc3RyaW5nX29mX3VybCA9IGZ1bmN0aW9uXG4gIHwgRmlsZSB7IGZ1X3BhdGggPSBwYXRoOyBmdV9hcmd1bWVudHMgPSBhcmdzOyBmdV9mcmFnbWVudCA9IGZyYWc7IF8gfSAtPiAoXG4gICAgICBcImZpbGU6Ly9cIlxuICAgICAgXiBTdHJpbmcuY29uY2F0IFwiL1wiIChMaXN0Lm1hcCAoZnVuIHggLT4gdXJsZW5jb2RlIHgpIHBhdGgpXG4gICAgICBeIChtYXRjaCBhcmdzIHdpdGhcbiAgICAgICAgfCBbXSAtPiBcIlwiXG4gICAgICAgIHwgbCAtPiBcIj9cIiBeIGVuY29kZV9hcmd1bWVudHMgbClcbiAgICAgIF5cbiAgICAgIG1hdGNoIGZyYWcgd2l0aFxuICAgICAgfCBcIlwiIC0+IFwiXCJcbiAgICAgIHwgcyAtPiBcIiNcIiBeIHVybGVuY29kZSBzKVxuICB8IEh0dHBcbiAgICAgIHsgaHVfaG9zdCA9IGhvc3RcbiAgICAgIDsgaHVfcG9ydCA9IHBvcnRcbiAgICAgIDsgaHVfcGF0aCA9IHBhdGhcbiAgICAgIDsgaHVfYXJndW1lbnRzID0gYXJnc1xuICAgICAgOyBodV9mcmFnbWVudCA9IGZyYWdcbiAgICAgIDsgX1xuICAgICAgfSAtPiAoXG4gICAgICBcImh0dHA6Ly9cIlxuICAgICAgXiB1cmxlbmNvZGUgaG9zdFxuICAgICAgXiAobWF0Y2ggcG9ydCB3aXRoXG4gICAgICAgIHwgODAgLT4gXCJcIlxuICAgICAgICB8IG4gLT4gXCI6XCIgXiBzdHJpbmdfb2ZfaW50IG4pXG4gICAgICBeIFwiL1wiXG4gICAgICBeIFN0cmluZy5jb25jYXQgXCIvXCIgKExpc3QubWFwIChmdW4geCAtPiB1cmxlbmNvZGUgeCkgcGF0aClcbiAgICAgIF4gKG1hdGNoIGFyZ3Mgd2l0aFxuICAgICAgICB8IFtdIC0+IFwiXCJcbiAgICAgICAgfCBsIC0+IFwiP1wiIF4gZW5jb2RlX2FyZ3VtZW50cyBsKVxuICAgICAgXlxuICAgICAgbWF0Y2ggZnJhZyB3aXRoXG4gICAgICB8IFwiXCIgLT4gXCJcIlxuICAgICAgfCBzIC0+IFwiI1wiIF4gdXJsZW5jb2RlIHMpXG4gIHwgSHR0cHNcbiAgICAgIHsgaHVfaG9zdCA9IGhvc3RcbiAgICAgIDsgaHVfcG9ydCA9IHBvcnRcbiAgICAgIDsgaHVfcGF0aCA9IHBhdGhcbiAgICAgIDsgaHVfYXJndW1lbnRzID0gYXJnc1xuICAgICAgOyBodV9mcmFnbWVudCA9IGZyYWdcbiAgICAgIDsgX1xuICAgICAgfSAtPiAoXG4gICAgICBcImh0dHBzOi8vXCJcbiAgICAgIF4gdXJsZW5jb2RlIGhvc3RcbiAgICAgIF4gKG1hdGNoIHBvcnQgd2l0aFxuICAgICAgICB8IDQ0MyAtPiBcIlwiXG4gICAgICAgIHwgbiAtPiBcIjpcIiBeIHN0cmluZ19vZl9pbnQgbilcbiAgICAgIF4gXCIvXCJcbiAgICAgIF4gU3RyaW5nLmNvbmNhdCBcIi9cIiAoTGlzdC5tYXAgKGZ1biB4IC0+IHVybGVuY29kZSB4KSBwYXRoKVxuICAgICAgXiAobWF0Y2ggYXJncyB3aXRoXG4gICAgICAgIHwgW10gLT4gXCJcIlxuICAgICAgICB8IGwgLT4gXCI/XCIgXiBlbmNvZGVfYXJndW1lbnRzIGwpXG4gICAgICBeXG4gICAgICBtYXRjaCBmcmFnIHdpdGhcbiAgICAgIHwgXCJcIiAtPiBcIlwiXG4gICAgICB8IHMgLT4gXCIjXCIgXiB1cmxlbmNvZGUgcylcblxubW9kdWxlIEN1cnJlbnQgPSBzdHJ1Y3RcbiAgbGV0IGwgPVxuICAgIGlmIEpzLk9wdGRlZi50ZXN0IChKcy5PcHRkZWYucmV0dXJuIERvbV9odG1sLndpbmRvdyMjLmxvY2F0aW9uKVxuICAgIHRoZW4gRG9tX2h0bWwud2luZG93IyMubG9jYXRpb25cbiAgICBlbHNlXG4gICAgICBsZXQgZW1wdHkgPSBKcy5zdHJpbmcgXCJcIiBpblxuICAgICAgb2JqZWN0JWpzXG4gICAgICAgIHZhbCBtdXRhYmxlIGhyZWYgPSBlbXB0eVxuXG4gICAgICAgIHZhbCBtdXRhYmxlIHByb3RvY29sID0gZW1wdHlcblxuICAgICAgICB2YWwgbXV0YWJsZSBob3N0ID0gZW1wdHlcblxuICAgICAgICB2YWwgbXV0YWJsZSBob3N0bmFtZSA9IGVtcHR5XG5cbiAgICAgICAgdmFsIG11dGFibGUgcG9ydCA9IGVtcHR5XG5cbiAgICAgICAgdmFsIG11dGFibGUgcGF0aG5hbWUgPSBlbXB0eVxuXG4gICAgICAgIHZhbCBtdXRhYmxlIHNlYXJjaCA9IGVtcHR5XG5cbiAgICAgICAgdmFsIG11dGFibGUgaGFzaCA9IGVtcHR5XG5cbiAgICAgICAgdmFsIG9yaWdpbiA9IEpzLnVuZGVmaW5lZFxuXG4gICAgICAgIG1ldGhvZCByZWxvYWQgPSAoKVxuXG4gICAgICAgIG1ldGhvZCByZXBsYWNlIF8gPSAoKVxuXG4gICAgICAgIG1ldGhvZCBhc3NpZ24gXyA9ICgpXG4gICAgICBlbmRcblxuICBsZXQgaG9zdCA9IHVybGRlY29kZV9qc19zdHJpbmdfc3RyaW5nIGwjIy5ob3N0bmFtZVxuXG4gIGxldCBwcm90b2NvbCA9IHVybGRlY29kZV9qc19zdHJpbmdfc3RyaW5nIGwjIy5wcm90b2NvbFxuXG4gIGxldCBwb3J0ID1cbiAgICAoZnVuICgpIC0+XG4gICAgICB0cnkgU29tZSAoaW50X29mX3N0cmluZyAoSnMudG9fYnl0ZXN0cmluZyBsIyMucG9ydCkpIHdpdGggRmFpbHVyZSBfIC0+IE5vbmUpXG4gICAgICAoKVxuXG4gIGxldCBwYXRoX3N0cmluZyA9IHVybGRlY29kZV9qc19zdHJpbmdfc3RyaW5nIGwjIy5wYXRobmFtZVxuXG4gIGxldCBwYXRoID0gcGF0aF9vZl9wYXRoX3N0cmluZyBwYXRoX3N0cmluZ1xuXG4gIGxldCBhcmd1bWVudHMgPVxuICAgIGRlY29kZV9hcmd1bWVudHNfanNfc3RyaW5nXG4gICAgICAoaWYgbCMjLnNlYXJjaCMjY2hhckF0IDAgPT0gSnMuc3RyaW5nIFwiP1wiXG4gICAgICAgdGhlbiBsIyMuc2VhcmNoIyNzbGljZV9lbmQgMVxuICAgICAgIGVsc2UgbCMjLnNlYXJjaClcblxuICBsZXQgZ2V0X2ZyYWdtZW50ICgpID1cbiAgICAoKiBsb2NhdGlvbi5oYXNoIGRvZXNuJ3QgaGF2ZSB0aGUgc2FtZSBiZWhhdmlvciBkZXBlbmRpbmcgb24gdGhlIGJyb3dzZXJcbiAgICAgICBGaXJlZm94IGJ1ZyA6IGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTQ4MzMwNCAqKVxuICAgICgqIGxldCBzID0gSnMudG9fYnl0ZXN0cmluZyAobCMjaGFzaCkgaW4gKilcbiAgICAoKiBpZiBTdHJpbmcubGVuZ3RoIHMgPiAwICYmIHMuWzBdID0gJyMnICopXG4gICAgKCogdGhlbiBTdHJpbmcuc3ViIHMgMSAoU3RyaW5nLmxlbmd0aCBzIC0gMSkgKilcbiAgICAoKiBlbHNlIHM7ICopXG4gICAgSnMuT3B0LmNhc2VcbiAgICAgIChsIyMuaHJlZiMjX21hdGNoIChuZXclanMgSnMucmVnRXhwIChKcy5zdHJpbmcgXCIjKC4qKVwiKSkpXG4gICAgICAoZnVuICgpIC0+IFwiXCIpXG4gICAgICAoZnVuIHJlcyAtPlxuICAgICAgICBsZXQgcmVzID0gSnMubWF0Y2hfcmVzdWx0IHJlcyBpblxuICAgICAgICBKcy50b19zdHJpbmcgKEpzLlVuc2FmZS5nZXQgcmVzIDEpKVxuXG4gIGxldCBzZXRfZnJhZ21lbnQgcyA9IGwjIy5oYXNoIDo9IEpzLmJ5dGVzdHJpbmcgKHVybGVuY29kZSBzKVxuXG4gIGxldCBnZXQgKCkgPSB1cmxfb2ZfanNfc3RyaW5nIGwjIy5ocmVmXG5cbiAgbGV0IHNldCB1ID0gbCMjLmhyZWYgOj0gSnMuYnl0ZXN0cmluZyAoc3RyaW5nX29mX3VybCB1KVxuXG4gIGxldCBhc19zdHJpbmcgPSB1cmxkZWNvZGVfanNfc3RyaW5nX3N0cmluZyBsIyMuaHJlZlxuZW5kXG4iLCIoKiBKc19vZl9vY2FtbCBsaWJyYXJ5XG4gKiBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuICogQ29weXJpZ2h0IChDKSAyMDE0IEh1Z28gSGV1emFyZFxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4gKiBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cbiAqKVxub3BlbiEgSW1wb3J0XG5cbmV4dGVybmFsIGNyZWF0ZV9maWxlIDogbmFtZTpzdHJpbmcgLT4gY29udGVudDpzdHJpbmcgLT4gdW5pdCA9IFwiY2FtbF9jcmVhdGVfZmlsZVwiXG5cbmV4dGVybmFsIHJlYWRfZmlsZSA6IG5hbWU6c3RyaW5nIC0+IHN0cmluZyA9IFwiY2FtbF9yZWFkX2ZpbGVfY29udGVudFwiXG5cbmxldCB1cGRhdGVfZmlsZSB+bmFtZSB+Y29udGVudCA9XG4gIGxldCBvYyA9IG9wZW5fb3V0IG5hbWUgaW5cbiAgb3V0cHV0X3N0cmluZyBvYyBjb250ZW50O1xuICBjbG9zZV9vdXQgb2NcblxuZXh0ZXJuYWwgc2V0X2NoYW5uZWxfb3V0cHV0JyA6XG4gIG91dF9jaGFubmVsIC0+IChKcy5qc19zdHJpbmcgSnMudCAtPiB1bml0KSBKcy5jYWxsYmFjayAtPiB1bml0XG4gID0gXCJjYW1sX21sX3NldF9jaGFubmVsX291dHB1dFwiXG5cbmV4dGVybmFsIHNldF9jaGFubmVsX2lucHV0JyA6IGluX2NoYW5uZWwgLT4gKHVuaXQgLT4gc3RyaW5nKSBKcy5jYWxsYmFjayAtPiB1bml0XG4gID0gXCJjYW1sX21sX3NldF9jaGFubmVsX3JlZmlsbFwiXG5cbmxldCBzZXRfY2hhbm5lbF9mbHVzaGVyIChvdXRfY2hhbm5lbCA6IG91dF9jaGFubmVsKSAoZiA6IHN0cmluZyAtPiB1bml0KSA9XG4gIGxldCBmJyA6IChKcy5qc19zdHJpbmcgSnMudCAtPiB1bml0KSBKcy5jYWxsYmFjayA9XG4gICAgSnMud3JhcF9jYWxsYmFjayAoZnVuIHMgLT4gZiAoSnMudG9fYnl0ZXN0cmluZyBzKSlcbiAgaW5cbiAgc2V0X2NoYW5uZWxfb3V0cHV0JyBvdXRfY2hhbm5lbCBmJ1xuXG5sZXQgc2V0X2NoYW5uZWxfZmlsbGVyIChpbl9jaGFubmVsIDogaW5fY2hhbm5lbCkgKGYgOiB1bml0IC0+IHN0cmluZykgPVxuICBsZXQgZicgOiAodW5pdCAtPiBzdHJpbmcpIEpzLmNhbGxiYWNrID0gSnMud3JhcF9jYWxsYmFjayBmIGluXG4gIHNldF9jaGFubmVsX2lucHV0JyBpbl9jaGFubmVsIGYnXG5cbmV4dGVybmFsIG1vdW50X3BvaW50IDogdW5pdCAtPiBzdHJpbmcgbGlzdCA9IFwiY2FtbF9saXN0X21vdW50X3BvaW50XCJcblxuZXh0ZXJuYWwgbW91bnRfYXV0b2xvYWQgOlxuICBzdHJpbmcgLT4gKHN0cmluZyAtPiBzdHJpbmcgLT4gc3RyaW5nIG9wdGlvbikgSnMuY2FsbGJhY2sgLT4gdW5pdFxuICA9IFwiY2FtbF9tb3VudF9hdXRvbG9hZFwiXG5cbmV4dGVybmFsIHVubW91bnQgOiBzdHJpbmcgLT4gdW5pdCA9IFwiY2FtbF91bm1vdW50XCJcblxubGV0IG1vdW50IH5wYXRoIGYgPVxuICBtb3VudF9hdXRvbG9hZCBwYXRoIChKcy53cmFwX2NhbGxiYWNrIChmdW4gcHJlZml4IHBhdGggLT4gZiB+cHJlZml4IH5wYXRoKSlcblxubGV0IHVubW91bnQgfnBhdGggPSB1bm1vdW50IHBhdGhcblxubGV0IGpzX29mX29jYW1sX3ZlcnNpb24gPVxuICBpZiBTdHJpbmcuZXF1YWwgTGliX3ZlcnNpb24uZ2l0X3ZlcnNpb24gXCJcIlxuICB0aGVuIExpYl92ZXJzaW9uLnNcbiAgZWxzZSBMaWJfdmVyc2lvbi5zIF4gXCIrXCIgXiBMaWJfdmVyc2lvbi5naXRfdmVyc2lvblxuIiwiKCogSnNfb2Zfb2NhbWwgbGlicmFyeVxuICogaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbiAqIENvcHlyaWdodCAoQykgMjAxOSBBbGV4YW5kZXIgWWFuaW5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuICogZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG4gKilcbm9wZW4hIEltcG9ydFxuXG5jbGFzcyB0eXBlIHJlc2l6ZU9ic2VydmVyU2l6ZSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBpbmxpbmVTaXplIDogZmxvYXQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGJsb2NrU2l6ZSA6IGZsb2F0IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgcmVzaXplT2JzZXJ2ZXJFbnRyeSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCB0YXJnZXQgOiBEb20ubm9kZSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjb250ZW50UmVjdCA6IERvbV9odG1sLmNsaWVudFJlY3QgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYm9yZGVyQm94U2l6ZSA6IHJlc2l6ZU9ic2VydmVyU2l6ZSBKcy50IEpzLmpzX2FycmF5IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGNvbnRlbnRCb3hTaXplIDogcmVzaXplT2JzZXJ2ZXJTaXplIEpzLnQgSnMuanNfYXJyYXkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIHJlc2l6ZU9ic2VydmVyT3B0aW9ucyA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBib3ggOiBKcy5qc19zdHJpbmcgSnMudCBKcy53cml0ZW9ubHlfcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSByZXNpemVPYnNlcnZlciA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBvYnNlcnZlIDogI0RvbS5ub2RlIEpzLnQgLT4gdW5pdCBKcy5tZXRoXG5cbiAgICBtZXRob2Qgb2JzZXJ2ZV93aXRoT3B0aW9ucyA6XG4gICAgICAjRG9tLm5vZGUgSnMudCAtPiByZXNpemVPYnNlcnZlck9wdGlvbnMgSnMudCAtPiB1bml0IEpzLm1ldGhcblxuICAgIG1ldGhvZCB1bm9ic2VydmUgOiAjRG9tLm5vZGUgSnMudCAtPiB1bml0IEpzLm1ldGhcblxuICAgIG1ldGhvZCBkaXNjb25uZWN0IDogdW5pdCBKcy5tZXRoXG4gIGVuZFxuXG5sZXQgZW1wdHlfcmVzaXplX29ic2VydmVyX29wdGlvbnMgKCkgOiByZXNpemVPYnNlcnZlck9wdGlvbnMgSnMudCA9IEpzLlVuc2FmZS5vYmogW3x8XVxuXG5sZXQgcmVzaXplT2JzZXJ2ZXIgPSBKcy5VbnNhZmUuZ2xvYmFsIyMuX1Jlc2l6ZU9ic2VydmVyXG5cbmxldCBpc19zdXBwb3J0ZWQgKCkgPSBKcy5PcHRkZWYudGVzdCByZXNpemVPYnNlcnZlclxuXG5sZXQgcmVzaXplT2JzZXJ2ZXIgOlxuICAgICggICAocmVzaXplT2JzZXJ2ZXJFbnRyeSBKcy50IEpzLmpzX2FycmF5IEpzLnQgLT4gcmVzaXplT2JzZXJ2ZXIgSnMudCAtPiB1bml0KVxuICAgICAgICBKcy5jYWxsYmFja1xuICAgICAtPiByZXNpemVPYnNlcnZlciBKcy50KVxuICAgIEpzLmNvbnN0ciA9XG4gIHJlc2l6ZU9ic2VydmVyXG5cbmxldCBvYnNlcnZlXG4gICAgfihub2RlIDogI0RvbS5ub2RlIEpzLnQpXG4gICAgfihmIDogcmVzaXplT2JzZXJ2ZXJFbnRyeSBKcy50IEpzLmpzX2FycmF5IEpzLnQgLT4gcmVzaXplT2JzZXJ2ZXIgSnMudCAtPiB1bml0KVxuICAgID8oYm94IDogSnMuanNfc3RyaW5nIEpzLnQgb3B0aW9uKVxuICAgICgpIDogcmVzaXplT2JzZXJ2ZXIgSnMudCA9XG4gIGxldCBvYnMgPSBuZXclanMgcmVzaXplT2JzZXJ2ZXIgKEpzLndyYXBfY2FsbGJhY2sgZikgaW5cbiAgKG1hdGNoIGJveCB3aXRoXG4gIHwgTm9uZSAtPiBvYnMjI29ic2VydmUgbm9kZVxuICB8IFNvbWUgYm94IC0+XG4gICAgICBsZXQgb3B0cyA9IGVtcHR5X3Jlc2l6ZV9vYnNlcnZlcl9vcHRpb25zICgpIGluXG4gICAgICBvcHRzIyMuYm94IDo9IGJveDtcbiAgICAgIG9icyMjb2JzZXJ2ZV93aXRoT3B0aW9ucyBub2RlIG9wdHMpO1xuICBvYnNcbiIsIigqIEpzX29mX29jYW1sIGxpYnJhcnlcbiAqIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4gKiBDb3B5cmlnaHQgKEMpIDIwMjEgUGhpbGlwIFdoaXRlXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbiAqIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4gKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuICopXG5cbm9wZW4hIEltcG9ydFxuXG5jbGFzcyB0eXBlIHBlcmZvcm1hbmNlT2JzZXJ2ZXJJbml0ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGVudHJ5VHlwZXMgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5qc19hcnJheSBKcy50IEpzLndyaXRlb25seV9wcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIHBlcmZvcm1hbmNlRW50cnkgPVxuICBvYmplY3RcbiAgICBtZXRob2QgbmFtZSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBlbnRyeVR5cGUgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc3RhcnRUaW1lIDogZmxvYXQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGR1cmF0aW9uIDogZmxvYXQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBwZXJmb3JtYW5jZU9ic2VydmVyRW50cnlMaXN0ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGdldEVudHJpZXMgOiBwZXJmb3JtYW5jZUVudHJ5IEpzLnQgSnMuanNfYXJyYXkgSnMudCBKcy5tZXRoXG4gIGVuZFxuXG5jbGFzcyB0eXBlIHBlcmZvcm1hbmNlT2JzZXJ2ZXIgPVxuICBvYmplY3RcbiAgICBtZXRob2Qgb2JzZXJ2ZSA6IHBlcmZvcm1hbmNlT2JzZXJ2ZXJJbml0IEpzLnQgLT4gdW5pdCBKcy5tZXRoXG5cbiAgICBtZXRob2QgZGlzY29ubmVjdCA6IHVuaXQgSnMubWV0aFxuXG4gICAgbWV0aG9kIHRha2VSZWNvcmRzIDogcGVyZm9ybWFuY2VFbnRyeSBKcy50IEpzLmpzX2FycmF5IEpzLnQgSnMubWV0aFxuICBlbmRcblxubGV0IHBlcmZvcm1hbmNlT2JzZXJ2ZXIgPSBKcy5VbnNhZmUuZ2xvYmFsIyMuX1BlcmZvcm1hbmNlT2JzZXJ2ZXJcblxubGV0IGlzX3N1cHBvcnRlZCAoKSA9IEpzLk9wdGRlZi50ZXN0IHBlcmZvcm1hbmNlT2JzZXJ2ZXJcblxubGV0IHBlcmZvcm1hbmNlT2JzZXJ2ZXIgOlxuICAgICggICAocGVyZm9ybWFuY2VPYnNlcnZlckVudHJ5TGlzdCBKcy50IC0+IHBlcmZvcm1hbmNlT2JzZXJ2ZXIgSnMudCAtPiB1bml0KSBKcy5jYWxsYmFja1xuICAgICAtPiBwZXJmb3JtYW5jZU9ic2VydmVyIEpzLnQpXG4gICAgSnMuY29uc3RyID1cbiAgcGVyZm9ybWFuY2VPYnNlcnZlclxuXG5sZXQgb2JzZXJ2ZSB+ZW50cnlfdHlwZXMgfmYgPVxuICBsZXQgZW50cnlfdHlwZXMgPSBlbnRyeV90eXBlcyB8PiBMaXN0Lm1hcCBKcy5zdHJpbmcgfD4gQXJyYXkub2ZfbGlzdCB8PiBKcy5hcnJheSBpblxuICBsZXQgcGVyZm9ybWFuY2Vfb2JzZXJ2ZXJfaW5pdCA6IHBlcmZvcm1hbmNlT2JzZXJ2ZXJJbml0IEpzLnQgPSBKcy5VbnNhZmUub2JqIFt8fF0gaW5cbiAgbGV0ICgpID0gcGVyZm9ybWFuY2Vfb2JzZXJ2ZXJfaW5pdCMjLmVudHJ5VHlwZXMgOj0gZW50cnlfdHlwZXMgaW5cbiAgbGV0IG9icyA9IG5ldyVqcyBwZXJmb3JtYW5jZU9ic2VydmVyIChKcy53cmFwX2NhbGxiYWNrIGYpIGluXG4gIGxldCAoKSA9IG9icyMjb2JzZXJ2ZSBwZXJmb3JtYW5jZV9vYnNlcnZlcl9pbml0IGluXG4gIG9ic1xuIiwiKCogSnNfb2Zfb2NhbWwgbGlicmFyeVxuICogaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbiAqIENvcHlyaWdodCAoQykgMjAxNSBTdMOpcGhhbmUgTGVncmFuZFxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4gKiBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cbiAqKVxub3BlbiEgSW1wb3J0XG5cbmNsYXNzIHR5cGUgbXV0YXRpb25PYnNlcnZlckluaXQgPVxuICBvYmplY3RcbiAgICBtZXRob2QgY2hpbGRMaXN0IDogYm9vbCBKcy53cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGF0dHJpYnV0ZXMgOiBib29sIEpzLndyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2QgY2hhcmFjdGVyRGF0YSA6IGJvb2wgSnMud3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzdWJ0cmVlIDogYm9vbCBKcy53cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGF0dHJpYnV0ZU9sZFZhbHVlIDogYm9vbCBKcy53cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGNoYXJhY3RlckRhdGFPbGRWYWx1ZSA6IGJvb2wgSnMud3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBhdHRyaWJ1dGVGaWx0ZXIgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5qc19hcnJheSBKcy50IEpzLndyaXRlb25seV9wcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIG11dGF0aW9uUmVjb3JkID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIF90eXBlIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHRhcmdldCA6IERvbS5ub2RlIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGFkZGVkTm9kZXMgOiBEb20ubm9kZSBEb20ubm9kZUxpc3QgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcmVtb3ZlZE5vZGVzIDogRG9tLm5vZGUgRG9tLm5vZGVMaXN0IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHByZXZpb3VzU2libGluZyA6IERvbS5ub2RlIEpzLnQgSnMub3B0IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBuZXh0U2libGluZyA6IERvbS5ub2RlIEpzLnQgSnMub3B0IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBhdHRyaWJ1dGVOYW1lIDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBhdHRyaWJ1dGVOYW1lc3BhY2UgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9sZFZhbHVlIDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgbXV0YXRpb25PYnNlcnZlciA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBvYnNlcnZlIDogI0RvbS5ub2RlIEpzLnQgLT4gbXV0YXRpb25PYnNlcnZlckluaXQgSnMudCAtPiB1bml0IEpzLm1ldGhcblxuICAgIG1ldGhvZCBkaXNjb25uZWN0IDogdW5pdCBKcy5tZXRoXG5cbiAgICBtZXRob2QgdGFrZVJlY29yZHMgOiBtdXRhdGlvblJlY29yZCBKcy50IEpzLmpzX2FycmF5IEpzLnQgSnMubWV0aFxuICBlbmRcblxubGV0IGVtcHR5X211dGF0aW9uX29ic2VydmVyX2luaXQgKCkgOiBtdXRhdGlvbk9ic2VydmVySW5pdCBKcy50ID0gSnMuVW5zYWZlLm9iaiBbfHxdXG5cbmxldCBtdXRhdGlvbk9ic2VydmVyID0gSnMuVW5zYWZlLmdsb2JhbCMjLl9NdXRhdGlvbk9ic2VydmVyXG5cbmxldCBpc19zdXBwb3J0ZWQgKCkgPSBKcy5PcHRkZWYudGVzdCBtdXRhdGlvbk9ic2VydmVyXG5cbmxldCBtdXRhdGlvbk9ic2VydmVyIDpcbiAgICAoICAgKG11dGF0aW9uUmVjb3JkIEpzLnQgSnMuanNfYXJyYXkgSnMudCAtPiBtdXRhdGlvbk9ic2VydmVyIEpzLnQgLT4gdW5pdCkgSnMuY2FsbGJhY2tcbiAgICAgLT4gbXV0YXRpb25PYnNlcnZlciBKcy50KVxuICAgIEpzLmNvbnN0ciA9XG4gIG11dGF0aW9uT2JzZXJ2ZXJcblxubGV0IG9ic2VydmVcbiAgICB+KG5vZGUgOiAjRG9tLm5vZGUgSnMudClcbiAgICB+KGYgOiBtdXRhdGlvblJlY29yZCBKcy50IEpzLmpzX2FycmF5IEpzLnQgLT4gbXV0YXRpb25PYnNlcnZlciBKcy50IC0+IHVuaXQpXG4gICAgPyhjaGlsZF9saXN0IDogYm9vbCBvcHRpb24pXG4gICAgPyhhdHRyaWJ1dGVzIDogYm9vbCBvcHRpb24pXG4gICAgPyhjaGFyYWN0ZXJfZGF0YSA6IGJvb2wgb3B0aW9uKVxuICAgID8oc3VidHJlZSA6IGJvb2wgb3B0aW9uKVxuICAgID8oYXR0cmlidXRlX29sZF92YWx1ZSA6IGJvb2wgb3B0aW9uKVxuICAgID8oY2hhcmFjdGVyX2RhdGFfb2xkX3ZhbHVlIDogYm9vbCBvcHRpb24pXG4gICAgPyhhdHRyaWJ1dGVfZmlsdGVyIDogSnMuanNfc3RyaW5nIEpzLnQgbGlzdCBvcHRpb24pXG4gICAgKCkgOiBtdXRhdGlvbk9ic2VydmVyIEpzLnQgPVxuICBsZXQgb3B0X2l0ZXIgeCBmID1cbiAgICBtYXRjaCB4IHdpdGhcbiAgICB8IE5vbmUgLT4gKClcbiAgICB8IFNvbWUgeCAtPiBmIHhcbiAgaW5cbiAgbGV0IG9icyA9IG5ldyVqcyBtdXRhdGlvbk9ic2VydmVyIChKcy53cmFwX2NhbGxiYWNrIGYpIGluXG4gIGxldCBjZmcgPSBlbXB0eV9tdXRhdGlvbl9vYnNlcnZlcl9pbml0ICgpIGluXG4gIGxldCAoKSA9IG9wdF9pdGVyIGNoaWxkX2xpc3QgKGZ1biB2IC0+IGNmZyMjLmNoaWxkTGlzdCA6PSB2KSBpblxuICBsZXQgKCkgPSBvcHRfaXRlciBhdHRyaWJ1dGVzIChmdW4gdiAtPiBjZmcjIy5hdHRyaWJ1dGVzIDo9IHYpIGluXG4gIGxldCAoKSA9IG9wdF9pdGVyIGNoYXJhY3Rlcl9kYXRhIChmdW4gdiAtPiBjZmcjIy5jaGFyYWN0ZXJEYXRhIDo9IHYpIGluXG4gIGxldCAoKSA9IG9wdF9pdGVyIHN1YnRyZWUgKGZ1biB2IC0+IGNmZyMjLnN1YnRyZWUgOj0gdikgaW5cbiAgbGV0ICgpID0gb3B0X2l0ZXIgYXR0cmlidXRlX29sZF92YWx1ZSAoZnVuIHYgLT4gY2ZnIyMuYXR0cmlidXRlT2xkVmFsdWUgOj0gdikgaW5cbiAgbGV0ICgpID1cbiAgICBvcHRfaXRlciBjaGFyYWN0ZXJfZGF0YV9vbGRfdmFsdWUgKGZ1biB2IC0+IGNmZyMjLmNoYXJhY3RlckRhdGFPbGRWYWx1ZSA6PSB2KVxuICBpblxuICBsZXQgKCkgPVxuICAgIG9wdF9pdGVyIGF0dHJpYnV0ZV9maWx0ZXIgKGZ1biBsIC0+XG4gICAgICAgIGNmZyMjLmF0dHJpYnV0ZUZpbHRlciA6PSBKcy5hcnJheSAoQXJyYXkub2ZfbGlzdCBsKSlcbiAgaW5cbiAgbGV0ICgpID0gb2JzIyNvYnNlcnZlIG5vZGUgY2ZnIGluXG4gIG9ic1xuIiwiKCogSnNfb2Zfb2NhbWwgbGlicmFyeVxuICogaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbiAqIENvcHlyaWdodCBQaWVycmUgQ2hhbWJhcnQgMjAxMi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuICogZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG4gKilcbm9wZW4hIEltcG9ydFxuXG50eXBlICdhIHQgPSA8ID4gSnMudFxuXG5sZXQgb2JqID0gSnMuVW5zYWZlLmdsb2JhbCMjLl9PYmplY3RcblxubGV0IGNyZWF0ZSAoKSA6ICdhIHQgPSBuZXclanMgb2JqXG5cbmxldCBhZGQgKHQgOiAnYSB0KSAoayA6IEpzLmpzX3N0cmluZyBKcy50KSAodiA6ICdhKSA9XG4gICgqICdfJyBpcyBhZGRlZCB0byBhdm9pZCBjb25mbGljdHMgd2l0aCBvYmplY3RzIG1ldGhvZHMgKilcbiAgSnMuVW5zYWZlLnNldCB0IChrIyNjb25jYXQgKEpzLnN0cmluZyBcIl9cIikpIHZcblxubGV0IHJlbW92ZSAodCA6ICdhIHQpIChrIDogSnMuanNfc3RyaW5nIEpzLnQpID1cbiAgSnMuVW5zYWZlLmRlbGV0ZSB0IChrIyNjb25jYXQgKEpzLnN0cmluZyBcIl9cIikpXG5cbmxldCBmaW5kICh0IDogJ2EgdCkgKGsgOiBKcy5qc19zdHJpbmcgSnMudCkgOiAnYSBKcy5PcHRkZWYudCA9XG4gIEpzLlVuc2FmZS5nZXQgdCAoayMjY29uY2F0IChKcy5zdHJpbmcgXCJfXCIpKVxuXG5sZXQga2V5cyAodCA6ICdhIHQpIDogSnMuanNfc3RyaW5nIEpzLnQgbGlzdCA9XG4gIGxldCBrZXlfYXJyYXkgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5qc19hcnJheSBKcy50ID1cbiAgICBKcy5VbnNhZmUuZ2xvYmFsIyMuX09iamVjdCMja2V5cyB0XG4gIGluXG4gIGxldCByZXMgPSByZWYgW10gaW5cbiAgZm9yIGkgPSAwIHRvIHByZWQga2V5X2FycmF5IyMubGVuZ3RoIGRvXG4gICAgbGV0IGtleSA9XG4gICAgICBKcy5PcHRkZWYuZ2V0IChKcy5hcnJheV9nZXQga2V5X2FycmF5IGkpIChmdW4gKCkgLT4gZmFpbHdpdGggXCJKc3RhYmxlLmtleXNcIilcbiAgICBpblxuICAgIHJlcyA6PSBrZXkjI3N1YnN0cmluZyAwIChwcmVkIGtleSMjLmxlbmd0aCkgOjogIXJlc1xuICBkb25lO1xuICBMaXN0LnJldiAhcmVzXG4iLCIoKiBKc19vZl9vY2FtbCBsaWJyYXJ5XG4gKiBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuICogQ29weXJpZ2h0IEdyw6lnb2lyZSBIZW5yeSAyMDEwLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4gKiBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cbiAqKVxuXG5vcGVuIEpzXG5vcGVuISBJbXBvcnRcblxuY2xhc3MgdHlwZSBqc29uID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHBhcnNlIDogJ2EuIGpzX3N0cmluZyB0IC0+ICdhIG1ldGhcblxuICAgIG1ldGhvZCBwYXJzZV8gOlxuICAgICAgJ2EgJ2IgJ2MgJ2QuIGpzX3N0cmluZyB0IC0+ICgnYiB0LCBqc19zdHJpbmcgdCAtPiAnYyAtPiAnZCkgbWV0aF9jYWxsYmFjayAtPiAnYSBtZXRoXG5cbiAgICBtZXRob2Qgc3RyaW5naWZ5IDogJ2EuICdhIC0+IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCBzdHJpbmdpZnlfIDpcbiAgICAgICdhICdiICdjICdkLiAnYSAtPiAoJ2IsIGpzX3N0cmluZyB0IC0+ICdjIC0+ICdkKSBtZXRoX2NhbGxiYWNrIC0+IGpzX3N0cmluZyB0IG1ldGhcbiAgZW5kXG5cbmxldCBqc29uIDoganNvbiBKcy50ID0gVW5zYWZlLmdsb2JhbCMjLl9KU09OXG5cbmxldCBpbnB1dF9yZXZpdmVyID1cbiAgbGV0IHJldml2ZXIgX3RoaXMgX2tleSAodmFsdWUgOiBVbnNhZmUuYW55KSA6IE9iai50ID1cbiAgICBpZiB0eXBlb2YgdmFsdWUgPT0gc3RyaW5nIFwic3RyaW5nXCJcbiAgICB0aGVuIE9iai5yZXByICh0b19ieXRlc3RyaW5nIChVbnNhZmUuY29lcmNlIHZhbHVlKSlcbiAgICBlbHNlIGlmIGluc3RhbmNlb2YgdmFsdWUgSnMuYXJyYXlfZW1wdHlcbiAgICAgICAgICAgICYmIChVbnNhZmUuY29lcmNlIHZhbHVlKSMjLmxlbmd0aCA9PSA0XG4gICAgICAgICAgICAmJiBVbnNhZmUuZ2V0IHZhbHVlIDAgPT0gMjU1XG4gICAgdGhlblxuICAgICAgT2JqLnJlcHJcbiAgICAgICAgKEpzb29fcnVudGltZS5JbnQ2NC5jcmVhdGVfaW50NjRfbG9fbWlfaGlcbiAgICAgICAgICAgKFVuc2FmZS5nZXQgdmFsdWUgMSlcbiAgICAgICAgICAgKFVuc2FmZS5nZXQgdmFsdWUgMilcbiAgICAgICAgICAgKFVuc2FmZS5nZXQgdmFsdWUgMykpXG4gICAgZWxzZSBPYmoucmVwciB2YWx1ZVxuICBpblxuICB3cmFwX21ldGhfY2FsbGJhY2sgcmV2aXZlclxuXG5sZXQgdW5zYWZlX2lucHV0IHMgPSBqc29uIyNwYXJzZV8gcyBpbnB1dF9yZXZpdmVyXG5cbmNsYXNzIHR5cGUgb2JqID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGNvbnN0cnVjdG9yIDogJ2EuICdhIGNvbnN0ciBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgbWxJbnQ2NF9jb25zdHIgPVxuICBsZXQgZHVtbXlfaW50NjQgPSAxTCBpblxuICBsZXQgZHVtbXlfb2JqIDogb2JqIHQgPSBPYmoubWFnaWMgZHVtbXlfaW50NjQgaW5cbiAgZHVtbXlfb2JqIyMuY29uc3RydWN0b3JcblxubGV0IG91dHB1dF9yZXZpdmVyIF9rZXkgKHZhbHVlIDogVW5zYWZlLmFueSkgOiBPYmoudCA9XG4gIGlmIE9iai50YWcgKE9iai5yZXByIHZhbHVlKSA9IE9iai5zdHJpbmdfdGFnXG4gIHRoZW4gT2JqLnJlcHIgKGJ5dGVzdHJpbmcgKE9iai5tYWdpYyB2YWx1ZSA6IHN0cmluZykpXG4gIGVsc2UgaWYgaW5zdGFuY2VvZiB2YWx1ZSBtbEludDY0X2NvbnN0clxuICB0aGVuXG4gICAgbGV0IHZhbHVlID0gVW5zYWZlLmNvZXJjZSB2YWx1ZSBpblxuICAgIE9iai5yZXByIChhcnJheSBbfCAyNTU7IHZhbHVlIyMubG87IHZhbHVlIyMubWk7IHZhbHVlIyMuaGkgfF0pXG4gIGVsc2UgT2JqLnJlcHIgdmFsdWVcblxubGV0IG91dHB1dCBvYmogPSBqc29uIyNzdHJpbmdpZnlfIG9iaiAoSnMud3JhcF9jYWxsYmFjayBvdXRwdXRfcmV2aXZlcilcbiIsIigqIEpzX29mX29jYW1sIGxpYnJhcnlcbiAqIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTAgUmFwaGHDq2wgUHJvdXN0XG4gKiBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3RcbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuICogZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG4gKilcblxub3BlbiEgSW1wb3J0XG5cbm1vZHVsZSBDb2xvciA9IHN0cnVjdFxuICAoKiBUaGUgdHlwZSBvZiBDU1MgY29sb3JzLiBGaXJzdCBieSBuYW1lIGFuZCB0aGVuIGJ5IGNvbnN0cnVjdG9yLiAqKVxuICB0eXBlIG5hbWUgPVxuICAgIHwgQWxpY2VibHVlXG4gICAgfCBBbnRpcXVld2hpdGVcbiAgICB8IEFxdWFcbiAgICB8IEFxdWFtYXJpbmVcbiAgICB8IEF6dXJlXG4gICAgfCBCZWlnZVxuICAgIHwgQmlzcXVlXG4gICAgfCBCbGFja1xuICAgIHwgQmxhbmNoZWRhbG1vbmRcbiAgICB8IEJsdWVcbiAgICB8IEJsdWV2aW9sZXRcbiAgICB8IEJyb3duXG4gICAgfCBCdXJseXdvb2RcbiAgICB8IENhZGV0Ymx1ZVxuICAgIHwgQ2hhcnRyZXVzZVxuICAgIHwgQ2hvY29sYXRlXG4gICAgfCBDb3JhbFxuICAgIHwgQ29ybmZsb3dlcmJsdWVcbiAgICB8IENvcm5zaWxrXG4gICAgfCBDcmltc29uXG4gICAgfCBDeWFuXG4gICAgfCBEYXJrYmx1ZVxuICAgIHwgRGFya2N5YW5cbiAgICB8IERhcmtnb2xkZW5yb2RcbiAgICB8IERhcmtncmF5XG4gICAgfCBEYXJrZ3JlZW5cbiAgICB8IERhcmtncmV5XG4gICAgfCBEYXJra2hha2lcbiAgICB8IERhcmttYWdlbnRhXG4gICAgfCBEYXJrb2xpdmVncmVlblxuICAgIHwgRGFya29yYW5nZVxuICAgIHwgRGFya29yY2hpZFxuICAgIHwgRGFya3JlZFxuICAgIHwgRGFya3NhbG1vblxuICAgIHwgRGFya3NlYWdyZWVuXG4gICAgfCBEYXJrc2xhdGVibHVlXG4gICAgfCBEYXJrc2xhdGVncmF5XG4gICAgfCBEYXJrc2xhdGVncmV5XG4gICAgfCBEYXJrdHVycXVvaXNlXG4gICAgfCBEYXJrdmlvbGV0XG4gICAgfCBEZWVwcGlua1xuICAgIHwgRGVlcHNreWJsdWVcbiAgICB8IERpbWdyYXlcbiAgICB8IERpbWdyZXlcbiAgICB8IERvZGdlcmJsdWVcbiAgICB8IEZpcmVicmlja1xuICAgIHwgRmxvcmFsd2hpdGVcbiAgICB8IEZvcmVzdGdyZWVuXG4gICAgfCBGdWNoc2lhXG4gICAgfCBHYWluc2Jvcm9cbiAgICB8IEdob3N0d2hpdGVcbiAgICB8IEdvbGRcbiAgICB8IEdvbGRlbnJvZFxuICAgIHwgR3JheVxuICAgIHwgR3JleVxuICAgIHwgR3JlZW5cbiAgICB8IEdyZWVueWVsbG93XG4gICAgfCBIb25leWRld1xuICAgIHwgSG90cGlua1xuICAgIHwgSW5kaWFucmVkXG4gICAgfCBJbmRpZ29cbiAgICB8IEl2b3J5XG4gICAgfCBLaGFraVxuICAgIHwgTGF2ZW5kZXJcbiAgICB8IExhdmVuZGVyYmx1c2hcbiAgICB8IExhd25ncmVlblxuICAgIHwgTGVtb25jaGlmZm9uXG4gICAgfCBMaWdodGJsdWVcbiAgICB8IExpZ2h0Y29yYWxcbiAgICB8IExpZ2h0Y3lhblxuICAgIHwgTGlnaHRnb2xkZW5yb2R5ZWxsb3dcbiAgICB8IExpZ2h0Z3JheVxuICAgIHwgTGlnaHRncmVlblxuICAgIHwgTGlnaHRncmV5XG4gICAgfCBMaWdodHBpbmtcbiAgICB8IExpZ2h0c2FsbW9uXG4gICAgfCBMaWdodHNlYWdyZWVuXG4gICAgfCBMaWdodHNreWJsdWVcbiAgICB8IExpZ2h0c2xhdGVncmF5XG4gICAgfCBMaWdodHNsYXRlZ3JleVxuICAgIHwgTGlnaHRzdGVlbGJsdWVcbiAgICB8IExpZ2h0eWVsbG93XG4gICAgfCBMaW1lXG4gICAgfCBMaW1lZ3JlZW5cbiAgICB8IExpbmVuXG4gICAgfCBNYWdlbnRhXG4gICAgfCBNYXJvb25cbiAgICB8IE1lZGl1bWFxdWFtYXJpbmVcbiAgICB8IE1lZGl1bWJsdWVcbiAgICB8IE1lZGl1bW9yY2hpZFxuICAgIHwgTWVkaXVtcHVycGxlXG4gICAgfCBNZWRpdW1zZWFncmVlblxuICAgIHwgTWVkaXVtc2xhdGVibHVlXG4gICAgfCBNZWRpdW1zcHJpbmdncmVlblxuICAgIHwgTWVkaXVtdHVycXVvaXNlXG4gICAgfCBNZWRpdW12aW9sZXRyZWRcbiAgICB8IE1pZG5pZ2h0Ymx1ZVxuICAgIHwgTWludGNyZWFtXG4gICAgfCBNaXN0eXJvc2VcbiAgICB8IE1vY2Nhc2luXG4gICAgfCBOYXZham93aGl0ZVxuICAgIHwgTmF2eVxuICAgIHwgT2xkbGFjZVxuICAgIHwgT2xpdmVcbiAgICB8IE9saXZlZHJhYlxuICAgIHwgT3JhbmdlXG4gICAgfCBPcmFuZ2VyZWRcbiAgICB8IE9yY2hpZFxuICAgIHwgUGFsZWdvbGRlbnJvZFxuICAgIHwgUGFsZWdyZWVuXG4gICAgfCBQYWxldHVycXVvaXNlXG4gICAgfCBQYWxldmlvbGV0cmVkXG4gICAgfCBQYXBheWF3aGlwXG4gICAgfCBQZWFjaHB1ZmZcbiAgICB8IFBlcnVcbiAgICB8IFBpbmtcbiAgICB8IFBsdW1cbiAgICB8IFBvd2RlcmJsdWVcbiAgICB8IFB1cnBsZVxuICAgIHwgUmVkXG4gICAgfCBSb3N5YnJvd25cbiAgICB8IFJveWFsYmx1ZVxuICAgIHwgU2FkZGxlYnJvd25cbiAgICB8IFNhbG1vblxuICAgIHwgU2FuZHlicm93blxuICAgIHwgU2VhZ3JlZW5cbiAgICB8IFNlYXNoZWxsXG4gICAgfCBTaWVubmFcbiAgICB8IFNpbHZlclxuICAgIHwgU2t5Ymx1ZVxuICAgIHwgU2xhdGVibHVlXG4gICAgfCBTbGF0ZWdyYXlcbiAgICB8IFNsYXRlZ3JleVxuICAgIHwgU25vd1xuICAgIHwgU3ByaW5nZ3JlZW5cbiAgICB8IFN0ZWVsYmx1ZVxuICAgIHwgVGFuXG4gICAgfCBUZWFsXG4gICAgfCBUaGlzdGxlXG4gICAgfCBUb21hdG9cbiAgICB8IFR1cnF1b2lzZVxuICAgIHwgVmlvbGV0XG4gICAgfCBXaGVhdFxuICAgIHwgV2hpdGVcbiAgICB8IFdoaXRlc21va2VcbiAgICB8IFllbGxvd1xuICAgIHwgWWVsbG93Z3JlZW5cblxuICBsZXQgc3RyaW5nX29mX25hbWUgPSBmdW5jdGlvblxuICAgIHwgQWxpY2VibHVlIC0+IFwiYWxpY2VibHVlXCJcbiAgICB8IEFudGlxdWV3aGl0ZSAtPiBcImFudGlxdWV3aGl0ZVwiXG4gICAgfCBBcXVhIC0+IFwiYXF1YVwiXG4gICAgfCBBcXVhbWFyaW5lIC0+IFwiYXF1YW1hcmluZVwiXG4gICAgfCBBenVyZSAtPiBcImF6dXJlXCJcbiAgICB8IEJlaWdlIC0+IFwiYmVpZ2VcIlxuICAgIHwgQmlzcXVlIC0+IFwiYmlzcXVlXCJcbiAgICB8IEJsYWNrIC0+IFwiYmxhY2tcIlxuICAgIHwgQmxhbmNoZWRhbG1vbmQgLT4gXCJibGFuY2hlZGFsbW9uZFwiXG4gICAgfCBCbHVlIC0+IFwiYmx1ZVwiXG4gICAgfCBCbHVldmlvbGV0IC0+IFwiYmx1ZXZpb2xldFwiXG4gICAgfCBCcm93biAtPiBcImJyb3duXCJcbiAgICB8IEJ1cmx5d29vZCAtPiBcImJ1cmx5d29vZFwiXG4gICAgfCBDYWRldGJsdWUgLT4gXCJjYWRldGJsdWVcIlxuICAgIHwgQ2hhcnRyZXVzZSAtPiBcImNoYXJ0cmV1c2VcIlxuICAgIHwgQ2hvY29sYXRlIC0+IFwiY2hvY29sYXRlXCJcbiAgICB8IENvcmFsIC0+IFwiY29yYWxcIlxuICAgIHwgQ29ybmZsb3dlcmJsdWUgLT4gXCJjb3JuZmxvd2VyYmx1ZVwiXG4gICAgfCBDb3Juc2lsayAtPiBcImNvcm5zaWxrXCJcbiAgICB8IENyaW1zb24gLT4gXCJjcmltc29uXCJcbiAgICB8IEN5YW4gLT4gXCJjeWFuXCJcbiAgICB8IERhcmtibHVlIC0+IFwiZGFya2JsdWVcIlxuICAgIHwgRGFya2N5YW4gLT4gXCJkYXJrY3lhblwiXG4gICAgfCBEYXJrZ29sZGVucm9kIC0+IFwiZGFya2dvbGRlbnJvZFwiXG4gICAgfCBEYXJrZ3JheSAtPiBcImRhcmtncmF5XCJcbiAgICB8IERhcmtncmVlbiAtPiBcImRhcmtncmVlblwiXG4gICAgfCBEYXJrZ3JleSAtPiBcImRhcmtncmV5XCJcbiAgICB8IERhcmtraGFraSAtPiBcImRhcmtraGFraVwiXG4gICAgfCBEYXJrbWFnZW50YSAtPiBcImRhcmttYWdlbnRhXCJcbiAgICB8IERhcmtvbGl2ZWdyZWVuIC0+IFwiZGFya29saXZlZ3JlZW5cIlxuICAgIHwgRGFya29yYW5nZSAtPiBcImRhcmtvcmFuZ2VcIlxuICAgIHwgRGFya29yY2hpZCAtPiBcImRhcmtvcmNoaWRcIlxuICAgIHwgRGFya3JlZCAtPiBcImRhcmtyZWRcIlxuICAgIHwgRGFya3NhbG1vbiAtPiBcImRhcmtzYWxtb25cIlxuICAgIHwgRGFya3NlYWdyZWVuIC0+IFwiZGFya3NlYWdyZWVuXCJcbiAgICB8IERhcmtzbGF0ZWJsdWUgLT4gXCJkYXJrc2xhdGVibHVlXCJcbiAgICB8IERhcmtzbGF0ZWdyYXkgLT4gXCJkYXJrc2xhdGVncmF5XCJcbiAgICB8IERhcmtzbGF0ZWdyZXkgLT4gXCJkYXJrc2xhdGVncmV5XCJcbiAgICB8IERhcmt0dXJxdW9pc2UgLT4gXCJkYXJrdHVycXVvaXNlXCJcbiAgICB8IERhcmt2aW9sZXQgLT4gXCJkYXJrdmlvbGV0XCJcbiAgICB8IERlZXBwaW5rIC0+IFwiZGVlcHBpbmtcIlxuICAgIHwgRGVlcHNreWJsdWUgLT4gXCJkZWVwc2t5Ymx1ZVwiXG4gICAgfCBEaW1ncmF5IC0+IFwiZGltZ3JheVwiXG4gICAgfCBEaW1ncmV5IC0+IFwiZGltZ3JleVwiXG4gICAgfCBEb2RnZXJibHVlIC0+IFwiZG9kZ2VyYmx1ZVwiXG4gICAgfCBGaXJlYnJpY2sgLT4gXCJmaXJlYnJpY2tcIlxuICAgIHwgRmxvcmFsd2hpdGUgLT4gXCJmbG9yYWx3aGl0ZVwiXG4gICAgfCBGb3Jlc3RncmVlbiAtPiBcImZvcmVzdGdyZWVuXCJcbiAgICB8IEZ1Y2hzaWEgLT4gXCJmdWNoc2lhXCJcbiAgICB8IEdhaW5zYm9ybyAtPiBcImdhaW5zYm9yb1wiXG4gICAgfCBHaG9zdHdoaXRlIC0+IFwiZ2hvc3R3aGl0ZVwiXG4gICAgfCBHb2xkIC0+IFwiZ29sZFwiXG4gICAgfCBHb2xkZW5yb2QgLT4gXCJnb2xkZW5yb2RcIlxuICAgIHwgR3JheSAtPiBcImdyYXlcIlxuICAgIHwgR3JlZW4gLT4gXCJncmVlblwiXG4gICAgfCBHcmVlbnllbGxvdyAtPiBcImdyZWVueWVsbG93XCJcbiAgICB8IEdyZXkgLT4gXCJncmV5XCJcbiAgICB8IEhvbmV5ZGV3IC0+IFwiaG9uZXlkZXdcIlxuICAgIHwgSG90cGluayAtPiBcImhvdHBpbmtcIlxuICAgIHwgSW5kaWFucmVkIC0+IFwiaW5kaWFucmVkXCJcbiAgICB8IEluZGlnbyAtPiBcImluZGlnb1wiXG4gICAgfCBJdm9yeSAtPiBcIml2b3J5XCJcbiAgICB8IEtoYWtpIC0+IFwia2hha2lcIlxuICAgIHwgTGF2ZW5kZXIgLT4gXCJsYXZlbmRlclwiXG4gICAgfCBMYXZlbmRlcmJsdXNoIC0+IFwibGF2ZW5kZXJibHVzaFwiXG4gICAgfCBMYXduZ3JlZW4gLT4gXCJsYXduZ3JlZW5cIlxuICAgIHwgTGVtb25jaGlmZm9uIC0+IFwibGVtb25jaGlmZm9uXCJcbiAgICB8IExpZ2h0Ymx1ZSAtPiBcImxpZ2h0Ymx1ZVwiXG4gICAgfCBMaWdodGNvcmFsIC0+IFwibGlnaHRjb3JhbFwiXG4gICAgfCBMaWdodGN5YW4gLT4gXCJsaWdodGN5YW5cIlxuICAgIHwgTGlnaHRnb2xkZW5yb2R5ZWxsb3cgLT4gXCJsaWdodGdvbGRlbnJvZHllbGxvd1wiXG4gICAgfCBMaWdodGdyYXkgLT4gXCJsaWdodGdyYXlcIlxuICAgIHwgTGlnaHRncmVlbiAtPiBcImxpZ2h0Z3JlZW5cIlxuICAgIHwgTGlnaHRncmV5IC0+IFwibGlnaHRncmV5XCJcbiAgICB8IExpZ2h0cGluayAtPiBcImxpZ2h0cGlua1wiXG4gICAgfCBMaWdodHNhbG1vbiAtPiBcImxpZ2h0c2FsbW9uXCJcbiAgICB8IExpZ2h0c2VhZ3JlZW4gLT4gXCJsaWdodHNlYWdyZWVuXCJcbiAgICB8IExpZ2h0c2t5Ymx1ZSAtPiBcImxpZ2h0c2t5Ymx1ZVwiXG4gICAgfCBMaWdodHNsYXRlZ3JheSAtPiBcImxpZ2h0c2xhdGVncmF5XCJcbiAgICB8IExpZ2h0c2xhdGVncmV5IC0+IFwibGlnaHRzbGF0ZWdyZXlcIlxuICAgIHwgTGlnaHRzdGVlbGJsdWUgLT4gXCJsaWdodHN0ZWVsYmx1ZVwiXG4gICAgfCBMaWdodHllbGxvdyAtPiBcImxpZ2h0eWVsbG93XCJcbiAgICB8IExpbWUgLT4gXCJsaW1lXCJcbiAgICB8IExpbWVncmVlbiAtPiBcImxpbWVncmVlblwiXG4gICAgfCBMaW5lbiAtPiBcImxpbmVuXCJcbiAgICB8IE1hZ2VudGEgLT4gXCJtYWdlbnRhXCJcbiAgICB8IE1hcm9vbiAtPiBcIm1hcm9vblwiXG4gICAgfCBNZWRpdW1hcXVhbWFyaW5lIC0+IFwibWVkaXVtYXF1YW1hcmluZVwiXG4gICAgfCBNZWRpdW1ibHVlIC0+IFwibWVkaXVtYmx1ZVwiXG4gICAgfCBNZWRpdW1vcmNoaWQgLT4gXCJtZWRpdW1vcmNoaWRcIlxuICAgIHwgTWVkaXVtcHVycGxlIC0+IFwibWVkaXVtcHVycGxlXCJcbiAgICB8IE1lZGl1bXNlYWdyZWVuIC0+IFwibWVkaXVtc2VhZ3JlZW5cIlxuICAgIHwgTWVkaXVtc2xhdGVibHVlIC0+IFwibWVkaXVtc2xhdGVibHVlXCJcbiAgICB8IE1lZGl1bXNwcmluZ2dyZWVuIC0+IFwibWVkaXVtc3ByaW5nZ3JlZW5cIlxuICAgIHwgTWVkaXVtdHVycXVvaXNlIC0+IFwibWVkaXVtdHVycXVvaXNlXCJcbiAgICB8IE1lZGl1bXZpb2xldHJlZCAtPiBcIm1lZGl1bXZpb2xldHJlZFwiXG4gICAgfCBNaWRuaWdodGJsdWUgLT4gXCJtaWRuaWdodGJsdWVcIlxuICAgIHwgTWludGNyZWFtIC0+IFwibWludGNyZWFtXCJcbiAgICB8IE1pc3R5cm9zZSAtPiBcIm1pc3R5cm9zZVwiXG4gICAgfCBNb2NjYXNpbiAtPiBcIm1vY2Nhc2luXCJcbiAgICB8IE5hdmFqb3doaXRlIC0+IFwibmF2YWpvd2hpdGVcIlxuICAgIHwgTmF2eSAtPiBcIm5hdnlcIlxuICAgIHwgT2xkbGFjZSAtPiBcIm9sZGxhY2VcIlxuICAgIHwgT2xpdmUgLT4gXCJvbGl2ZVwiXG4gICAgfCBPbGl2ZWRyYWIgLT4gXCJvbGl2ZWRyYWJcIlxuICAgIHwgT3JhbmdlIC0+IFwib3JhbmdlXCJcbiAgICB8IE9yYW5nZXJlZCAtPiBcIm9yYW5nZXJlZFwiXG4gICAgfCBPcmNoaWQgLT4gXCJvcmNoaWRcIlxuICAgIHwgUGFsZWdvbGRlbnJvZCAtPiBcInBhbGVnb2xkZW5yb2RcIlxuICAgIHwgUGFsZWdyZWVuIC0+IFwicGFsZWdyZWVuXCJcbiAgICB8IFBhbGV0dXJxdW9pc2UgLT4gXCJwYWxldHVycXVvaXNlXCJcbiAgICB8IFBhbGV2aW9sZXRyZWQgLT4gXCJwYWxldmlvbGV0cmVkXCJcbiAgICB8IFBhcGF5YXdoaXAgLT4gXCJwYXBheWF3aGlwXCJcbiAgICB8IFBlYWNocHVmZiAtPiBcInBlYWNocHVmZlwiXG4gICAgfCBQZXJ1IC0+IFwicGVydVwiXG4gICAgfCBQaW5rIC0+IFwicGlua1wiXG4gICAgfCBQbHVtIC0+IFwicGx1bVwiXG4gICAgfCBQb3dkZXJibHVlIC0+IFwicG93ZGVyYmx1ZVwiXG4gICAgfCBQdXJwbGUgLT4gXCJwdXJwbGVcIlxuICAgIHwgUmVkIC0+IFwicmVkXCJcbiAgICB8IFJvc3licm93biAtPiBcInJvc3licm93blwiXG4gICAgfCBSb3lhbGJsdWUgLT4gXCJyb3lhbGJsdWVcIlxuICAgIHwgU2FkZGxlYnJvd24gLT4gXCJzYWRkbGVicm93blwiXG4gICAgfCBTYWxtb24gLT4gXCJzYWxtb25cIlxuICAgIHwgU2FuZHlicm93biAtPiBcInNhbmR5YnJvd25cIlxuICAgIHwgU2VhZ3JlZW4gLT4gXCJzZWFncmVlblwiXG4gICAgfCBTZWFzaGVsbCAtPiBcInNlYXNoZWxsXCJcbiAgICB8IFNpZW5uYSAtPiBcInNpZW5uYVwiXG4gICAgfCBTaWx2ZXIgLT4gXCJzaWx2ZXJcIlxuICAgIHwgU2t5Ymx1ZSAtPiBcInNreWJsdWVcIlxuICAgIHwgU2xhdGVibHVlIC0+IFwic2xhdGVibHVlXCJcbiAgICB8IFNsYXRlZ3JheSAtPiBcInNsYXRlZ3JheVwiXG4gICAgfCBTbGF0ZWdyZXkgLT4gXCJzbGF0ZWdyZXlcIlxuICAgIHwgU25vdyAtPiBcInNub3dcIlxuICAgIHwgU3ByaW5nZ3JlZW4gLT4gXCJzcHJpbmdncmVlblwiXG4gICAgfCBTdGVlbGJsdWUgLT4gXCJzdGVlbGJsdWVcIlxuICAgIHwgVGFuIC0+IFwidGFuXCJcbiAgICB8IFRlYWwgLT4gXCJ0ZWFsXCJcbiAgICB8IFRoaXN0bGUgLT4gXCJ0aGlzdGxlXCJcbiAgICB8IFRvbWF0byAtPiBcInRvbWF0b1wiXG4gICAgfCBUdXJxdW9pc2UgLT4gXCJ0dXJxdW9pc2VcIlxuICAgIHwgVmlvbGV0IC0+IFwidmlvbGV0XCJcbiAgICB8IFdoZWF0IC0+IFwid2hlYXRcIlxuICAgIHwgV2hpdGUgLT4gXCJ3aGl0ZVwiXG4gICAgfCBXaGl0ZXNtb2tlIC0+IFwid2hpdGVzbW9rZVwiXG4gICAgfCBZZWxsb3cgLT4gXCJ5ZWxsb3dcIlxuICAgIHwgWWVsbG93Z3JlZW4gLT4gXCJ5ZWxsb3dncmVlblwiXG5cbiAgbGV0IG5hbWVfb2Zfc3RyaW5nID0gZnVuY3Rpb25cbiAgICB8IFwiYWxpY2VibHVlXCIgLT4gQWxpY2VibHVlXG4gICAgfCBcImFudGlxdWV3aGl0ZVwiIC0+IEFudGlxdWV3aGl0ZVxuICAgIHwgXCJhcXVhXCIgLT4gQXF1YVxuICAgIHwgXCJhcXVhbWFyaW5lXCIgLT4gQXF1YW1hcmluZVxuICAgIHwgXCJhenVyZVwiIC0+IEF6dXJlXG4gICAgfCBcImJlaWdlXCIgLT4gQmVpZ2VcbiAgICB8IFwiYmlzcXVlXCIgLT4gQmlzcXVlXG4gICAgfCBcImJsYWNrXCIgLT4gQmxhY2tcbiAgICB8IFwiYmxhbmNoZWRhbG1vbmRcIiAtPiBCbGFuY2hlZGFsbW9uZFxuICAgIHwgXCJibHVlXCIgLT4gQmx1ZVxuICAgIHwgXCJibHVldmlvbGV0XCIgLT4gQmx1ZXZpb2xldFxuICAgIHwgXCJicm93blwiIC0+IEJyb3duXG4gICAgfCBcImJ1cmx5d29vZFwiIC0+IEJ1cmx5d29vZFxuICAgIHwgXCJjYWRldGJsdWVcIiAtPiBDYWRldGJsdWVcbiAgICB8IFwiY2hhcnRyZXVzZVwiIC0+IENoYXJ0cmV1c2VcbiAgICB8IFwiY2hvY29sYXRlXCIgLT4gQ2hvY29sYXRlXG4gICAgfCBcImNvcmFsXCIgLT4gQ29yYWxcbiAgICB8IFwiY29ybmZsb3dlcmJsdWVcIiAtPiBDb3JuZmxvd2VyYmx1ZVxuICAgIHwgXCJjb3Juc2lsa1wiIC0+IENvcm5zaWxrXG4gICAgfCBcImNyaW1zb25cIiAtPiBDcmltc29uXG4gICAgfCBcImN5YW5cIiAtPiBDeWFuXG4gICAgfCBcImRhcmtibHVlXCIgLT4gRGFya2JsdWVcbiAgICB8IFwiZGFya2N5YW5cIiAtPiBEYXJrY3lhblxuICAgIHwgXCJkYXJrZ29sZGVucm9kXCIgLT4gRGFya2dvbGRlbnJvZFxuICAgIHwgXCJkYXJrZ3JheVwiIC0+IERhcmtncmF5XG4gICAgfCBcImRhcmtncmVlblwiIC0+IERhcmtncmVlblxuICAgIHwgXCJkYXJrZ3JleVwiIC0+IERhcmtncmV5XG4gICAgfCBcImRhcmtraGFraVwiIC0+IERhcmtraGFraVxuICAgIHwgXCJkYXJrbWFnZW50YVwiIC0+IERhcmttYWdlbnRhXG4gICAgfCBcImRhcmtvbGl2ZWdyZWVuXCIgLT4gRGFya29saXZlZ3JlZW5cbiAgICB8IFwiZGFya29yYW5nZVwiIC0+IERhcmtvcmFuZ2VcbiAgICB8IFwiZGFya29yY2hpZFwiIC0+IERhcmtvcmNoaWRcbiAgICB8IFwiZGFya3JlZFwiIC0+IERhcmtyZWRcbiAgICB8IFwiZGFya3NhbG1vblwiIC0+IERhcmtzYWxtb25cbiAgICB8IFwiZGFya3NlYWdyZWVuXCIgLT4gRGFya3NlYWdyZWVuXG4gICAgfCBcImRhcmtzbGF0ZWJsdWVcIiAtPiBEYXJrc2xhdGVibHVlXG4gICAgfCBcImRhcmtzbGF0ZWdyYXlcIiAtPiBEYXJrc2xhdGVncmF5XG4gICAgfCBcImRhcmtzbGF0ZWdyZXlcIiAtPiBEYXJrc2xhdGVncmV5XG4gICAgfCBcImRhcmt0dXJxdW9pc2VcIiAtPiBEYXJrdHVycXVvaXNlXG4gICAgfCBcImRhcmt2aW9sZXRcIiAtPiBEYXJrdmlvbGV0XG4gICAgfCBcImRlZXBwaW5rXCIgLT4gRGVlcHBpbmtcbiAgICB8IFwiZGVlcHNreWJsdWVcIiAtPiBEZWVwc2t5Ymx1ZVxuICAgIHwgXCJkaW1ncmF5XCIgLT4gRGltZ3JheVxuICAgIHwgXCJkaW1ncmV5XCIgLT4gRGltZ3JleVxuICAgIHwgXCJkb2RnZXJibHVlXCIgLT4gRG9kZ2VyYmx1ZVxuICAgIHwgXCJmaXJlYnJpY2tcIiAtPiBGaXJlYnJpY2tcbiAgICB8IFwiZmxvcmFsd2hpdGVcIiAtPiBGbG9yYWx3aGl0ZVxuICAgIHwgXCJmb3Jlc3RncmVlblwiIC0+IEZvcmVzdGdyZWVuXG4gICAgfCBcImZ1Y2hzaWFcIiAtPiBGdWNoc2lhXG4gICAgfCBcImdhaW5zYm9yb1wiIC0+IEdhaW5zYm9yb1xuICAgIHwgXCJnaG9zdHdoaXRlXCIgLT4gR2hvc3R3aGl0ZVxuICAgIHwgXCJnb2xkXCIgLT4gR29sZFxuICAgIHwgXCJnb2xkZW5yb2RcIiAtPiBHb2xkZW5yb2RcbiAgICB8IFwiZ3JheVwiIC0+IEdyYXlcbiAgICB8IFwiZ3JlZW5cIiAtPiBHcmVlblxuICAgIHwgXCJncmVlbnllbGxvd1wiIC0+IEdyZWVueWVsbG93XG4gICAgfCBcImdyZXlcIiAtPiBHcmV5XG4gICAgfCBcImhvbmV5ZGV3XCIgLT4gSG9uZXlkZXdcbiAgICB8IFwiaG90cGlua1wiIC0+IEhvdHBpbmtcbiAgICB8IFwiaW5kaWFucmVkXCIgLT4gSW5kaWFucmVkXG4gICAgfCBcImluZGlnb1wiIC0+IEluZGlnb1xuICAgIHwgXCJpdm9yeVwiIC0+IEl2b3J5XG4gICAgfCBcImtoYWtpXCIgLT4gS2hha2lcbiAgICB8IFwibGF2ZW5kZXJcIiAtPiBMYXZlbmRlclxuICAgIHwgXCJsYXZlbmRlcmJsdXNoXCIgLT4gTGF2ZW5kZXJibHVzaFxuICAgIHwgXCJsYXduZ3JlZW5cIiAtPiBMYXduZ3JlZW5cbiAgICB8IFwibGVtb25jaGlmZm9uXCIgLT4gTGVtb25jaGlmZm9uXG4gICAgfCBcImxpZ2h0Ymx1ZVwiIC0+IExpZ2h0Ymx1ZVxuICAgIHwgXCJsaWdodGNvcmFsXCIgLT4gTGlnaHRjb3JhbFxuICAgIHwgXCJsaWdodGN5YW5cIiAtPiBMaWdodGN5YW5cbiAgICB8IFwibGlnaHRnb2xkZW5yb2R5ZWxsb3dcIiAtPiBMaWdodGdvbGRlbnJvZHllbGxvd1xuICAgIHwgXCJsaWdodGdyYXlcIiAtPiBMaWdodGdyYXlcbiAgICB8IFwibGlnaHRncmVlblwiIC0+IExpZ2h0Z3JlZW5cbiAgICB8IFwibGlnaHRncmV5XCIgLT4gTGlnaHRncmV5XG4gICAgfCBcImxpZ2h0cGlua1wiIC0+IExpZ2h0cGlua1xuICAgIHwgXCJsaWdodHNhbG1vblwiIC0+IExpZ2h0c2FsbW9uXG4gICAgfCBcImxpZ2h0c2VhZ3JlZW5cIiAtPiBMaWdodHNlYWdyZWVuXG4gICAgfCBcImxpZ2h0c2t5Ymx1ZVwiIC0+IExpZ2h0c2t5Ymx1ZVxuICAgIHwgXCJsaWdodHNsYXRlZ3JheVwiIC0+IExpZ2h0c2xhdGVncmF5XG4gICAgfCBcImxpZ2h0c2xhdGVncmV5XCIgLT4gTGlnaHRzbGF0ZWdyZXlcbiAgICB8IFwibGlnaHRzdGVlbGJsdWVcIiAtPiBMaWdodHN0ZWVsYmx1ZVxuICAgIHwgXCJsaWdodHllbGxvd1wiIC0+IExpZ2h0eWVsbG93XG4gICAgfCBcImxpbWVcIiAtPiBMaW1lXG4gICAgfCBcImxpbWVncmVlblwiIC0+IExpbWVncmVlblxuICAgIHwgXCJsaW5lblwiIC0+IExpbmVuXG4gICAgfCBcIm1hZ2VudGFcIiAtPiBNYWdlbnRhXG4gICAgfCBcIm1hcm9vblwiIC0+IE1hcm9vblxuICAgIHwgXCJtZWRpdW1hcXVhbWFyaW5lXCIgLT4gTWVkaXVtYXF1YW1hcmluZVxuICAgIHwgXCJtZWRpdW1ibHVlXCIgLT4gTWVkaXVtYmx1ZVxuICAgIHwgXCJtZWRpdW1vcmNoaWRcIiAtPiBNZWRpdW1vcmNoaWRcbiAgICB8IFwibWVkaXVtcHVycGxlXCIgLT4gTWVkaXVtcHVycGxlXG4gICAgfCBcIm1lZGl1bXNlYWdyZWVuXCIgLT4gTWVkaXVtc2VhZ3JlZW5cbiAgICB8IFwibWVkaXVtc2xhdGVibHVlXCIgLT4gTWVkaXVtc2xhdGVibHVlXG4gICAgfCBcIm1lZGl1bXNwcmluZ2dyZWVuXCIgLT4gTWVkaXVtc3ByaW5nZ3JlZW5cbiAgICB8IFwibWVkaXVtdHVycXVvaXNlXCIgLT4gTWVkaXVtdHVycXVvaXNlXG4gICAgfCBcIm1lZGl1bXZpb2xldHJlZFwiIC0+IE1lZGl1bXZpb2xldHJlZFxuICAgIHwgXCJtaWRuaWdodGJsdWVcIiAtPiBNaWRuaWdodGJsdWVcbiAgICB8IFwibWludGNyZWFtXCIgLT4gTWludGNyZWFtXG4gICAgfCBcIm1pc3R5cm9zZVwiIC0+IE1pc3R5cm9zZVxuICAgIHwgXCJtb2NjYXNpblwiIC0+IE1vY2Nhc2luXG4gICAgfCBcIm5hdmFqb3doaXRlXCIgLT4gTmF2YWpvd2hpdGVcbiAgICB8IFwibmF2eVwiIC0+IE5hdnlcbiAgICB8IFwib2xkbGFjZVwiIC0+IE9sZGxhY2VcbiAgICB8IFwib2xpdmVcIiAtPiBPbGl2ZVxuICAgIHwgXCJvbGl2ZWRyYWJcIiAtPiBPbGl2ZWRyYWJcbiAgICB8IFwib3JhbmdlXCIgLT4gT3JhbmdlXG4gICAgfCBcIm9yYW5nZXJlZFwiIC0+IE9yYW5nZXJlZFxuICAgIHwgXCJvcmNoaWRcIiAtPiBPcmNoaWRcbiAgICB8IFwicGFsZWdvbGRlbnJvZFwiIC0+IFBhbGVnb2xkZW5yb2RcbiAgICB8IFwicGFsZWdyZWVuXCIgLT4gUGFsZWdyZWVuXG4gICAgfCBcInBhbGV0dXJxdW9pc2VcIiAtPiBQYWxldHVycXVvaXNlXG4gICAgfCBcInBhbGV2aW9sZXRyZWRcIiAtPiBQYWxldmlvbGV0cmVkXG4gICAgfCBcInBhcGF5YXdoaXBcIiAtPiBQYXBheWF3aGlwXG4gICAgfCBcInBlYWNocHVmZlwiIC0+IFBlYWNocHVmZlxuICAgIHwgXCJwZXJ1XCIgLT4gUGVydVxuICAgIHwgXCJwaW5rXCIgLT4gUGlua1xuICAgIHwgXCJwbHVtXCIgLT4gUGx1bVxuICAgIHwgXCJwb3dkZXJibHVlXCIgLT4gUG93ZGVyYmx1ZVxuICAgIHwgXCJwdXJwbGVcIiAtPiBQdXJwbGVcbiAgICB8IFwicmVkXCIgLT4gUmVkXG4gICAgfCBcInJvc3licm93blwiIC0+IFJvc3licm93blxuICAgIHwgXCJyb3lhbGJsdWVcIiAtPiBSb3lhbGJsdWVcbiAgICB8IFwic2FkZGxlYnJvd25cIiAtPiBTYWRkbGVicm93blxuICAgIHwgXCJzYWxtb25cIiAtPiBTYWxtb25cbiAgICB8IFwic2FuZHlicm93blwiIC0+IFNhbmR5YnJvd25cbiAgICB8IFwic2VhZ3JlZW5cIiAtPiBTZWFncmVlblxuICAgIHwgXCJzZWFzaGVsbFwiIC0+IFNlYXNoZWxsXG4gICAgfCBcInNpZW5uYVwiIC0+IFNpZW5uYVxuICAgIHwgXCJzaWx2ZXJcIiAtPiBTaWx2ZXJcbiAgICB8IFwic2t5Ymx1ZVwiIC0+IFNreWJsdWVcbiAgICB8IFwic2xhdGVibHVlXCIgLT4gU2xhdGVibHVlXG4gICAgfCBcInNsYXRlZ3JheVwiIC0+IFNsYXRlZ3JheVxuICAgIHwgXCJzbGF0ZWdyZXlcIiAtPiBTbGF0ZWdyZXlcbiAgICB8IFwic25vd1wiIC0+IFNub3dcbiAgICB8IFwic3ByaW5nZ3JlZW5cIiAtPiBTcHJpbmdncmVlblxuICAgIHwgXCJzdGVlbGJsdWVcIiAtPiBTdGVlbGJsdWVcbiAgICB8IFwidGFuXCIgLT4gVGFuXG4gICAgfCBcInRlYWxcIiAtPiBUZWFsXG4gICAgfCBcInRoaXN0bGVcIiAtPiBUaGlzdGxlXG4gICAgfCBcInRvbWF0b1wiIC0+IFRvbWF0b1xuICAgIHwgXCJ0dXJxdW9pc2VcIiAtPiBUdXJxdW9pc2VcbiAgICB8IFwidmlvbGV0XCIgLT4gVmlvbGV0XG4gICAgfCBcIndoZWF0XCIgLT4gV2hlYXRcbiAgICB8IFwid2hpdGVcIiAtPiBXaGl0ZVxuICAgIHwgXCJ3aGl0ZXNtb2tlXCIgLT4gV2hpdGVzbW9rZVxuICAgIHwgXCJ5ZWxsb3dcIiAtPiBZZWxsb3dcbiAgICB8IFwieWVsbG93Z3JlZW5cIiAtPiBZZWxsb3dncmVlblxuICAgIHwgcyAtPiByYWlzZSAoSW52YWxpZF9hcmd1bWVudCAocyBeIFwiIGlzIG5vdCBhIHZhbGlkIGNvbG9yIG5hbWVcIikpXG5cbiAgbGV0IHJnYl9vZl9uYW1lID0gZnVuY3Rpb25cbiAgICB8IEFsaWNlYmx1ZSAtPiAyNDAsIDI0OCwgMjU1XG4gICAgfCBBbnRpcXVld2hpdGUgLT4gMjUwLCAyMzUsIDIxNVxuICAgIHwgQXF1YSAtPiAwLCAyNTUsIDI1NVxuICAgIHwgQXF1YW1hcmluZSAtPiAxMjcsIDI1NSwgMjEyXG4gICAgfCBBenVyZSAtPiAyNDAsIDI1NSwgMjU1XG4gICAgfCBCZWlnZSAtPiAyNDUsIDI0NSwgMjIwXG4gICAgfCBCaXNxdWUgLT4gMjU1LCAyMjgsIDE5NlxuICAgIHwgQmxhY2sgLT4gMCwgMCwgMFxuICAgIHwgQmxhbmNoZWRhbG1vbmQgLT4gMjU1LCAyMzUsIDIwNVxuICAgIHwgQmx1ZSAtPiAwLCAwLCAyNTVcbiAgICB8IEJsdWV2aW9sZXQgLT4gMTM4LCA0MywgMjI2XG4gICAgfCBCcm93biAtPiAxNjUsIDQyLCA0MlxuICAgIHwgQnVybHl3b29kIC0+IDIyMiwgMTg0LCAxMzVcbiAgICB8IENhZGV0Ymx1ZSAtPiA5NSwgMTU4LCAxNjBcbiAgICB8IENoYXJ0cmV1c2UgLT4gMTI3LCAyNTUsIDBcbiAgICB8IENob2NvbGF0ZSAtPiAyMTAsIDEwNSwgMzBcbiAgICB8IENvcmFsIC0+IDI1NSwgMTI3LCA4MFxuICAgIHwgQ29ybmZsb3dlcmJsdWUgLT4gMTAwLCAxNDksIDIzN1xuICAgIHwgQ29ybnNpbGsgLT4gMjU1LCAyNDgsIDIyMFxuICAgIHwgQ3JpbXNvbiAtPiAyMjAsIDIwLCA2MFxuICAgIHwgQ3lhbiAtPiAwLCAyNTUsIDI1NVxuICAgIHwgRGFya2JsdWUgLT4gMCwgMCwgMTM5XG4gICAgfCBEYXJrY3lhbiAtPiAwLCAxMzksIDEzOVxuICAgIHwgRGFya2dvbGRlbnJvZCAtPiAxODQsIDEzNCwgMTFcbiAgICB8IERhcmtncmF5IC0+IDE2OSwgMTY5LCAxNjlcbiAgICB8IERhcmtncmVlbiAtPiAwLCAxMDAsIDBcbiAgICB8IERhcmtncmV5IC0+IDE2OSwgMTY5LCAxNjlcbiAgICB8IERhcmtraGFraSAtPiAxODksIDE4MywgMTA3XG4gICAgfCBEYXJrbWFnZW50YSAtPiAxMzksIDAsIDEzOVxuICAgIHwgRGFya29saXZlZ3JlZW4gLT4gODUsIDEwNywgNDdcbiAgICB8IERhcmtvcmFuZ2UgLT4gMjU1LCAxNDAsIDBcbiAgICB8IERhcmtvcmNoaWQgLT4gMTUzLCA1MCwgMjA0XG4gICAgfCBEYXJrcmVkIC0+IDEzOSwgMCwgMFxuICAgIHwgRGFya3NhbG1vbiAtPiAyMzMsIDE1MCwgMTIyXG4gICAgfCBEYXJrc2VhZ3JlZW4gLT4gMTQzLCAxODgsIDE0M1xuICAgIHwgRGFya3NsYXRlYmx1ZSAtPiA3MiwgNjEsIDEzOVxuICAgIHwgRGFya3NsYXRlZ3JheSAtPiA0NywgNzksIDc5XG4gICAgfCBEYXJrc2xhdGVncmV5IC0+IDQ3LCA3OSwgNzlcbiAgICB8IERhcmt0dXJxdW9pc2UgLT4gMCwgMjA2LCAyMDlcbiAgICB8IERhcmt2aW9sZXQgLT4gMTQ4LCAwLCAyMTFcbiAgICB8IERlZXBwaW5rIC0+IDI1NSwgMjAsIDE0N1xuICAgIHwgRGVlcHNreWJsdWUgLT4gMCwgMTkxLCAyNTVcbiAgICB8IERpbWdyYXkgLT4gMTA1LCAxMDUsIDEwNVxuICAgIHwgRGltZ3JleSAtPiAxMDUsIDEwNSwgMTA1XG4gICAgfCBEb2RnZXJibHVlIC0+IDMwLCAxNDQsIDI1NVxuICAgIHwgRmlyZWJyaWNrIC0+IDE3OCwgMzQsIDM0XG4gICAgfCBGbG9yYWx3aGl0ZSAtPiAyNTUsIDI1MCwgMjQwXG4gICAgfCBGb3Jlc3RncmVlbiAtPiAzNCwgMTM5LCAzNFxuICAgIHwgRnVjaHNpYSAtPiAyNTUsIDAsIDI1NVxuICAgIHwgR2FpbnNib3JvIC0+IDIyMCwgMjIwLCAyMjBcbiAgICB8IEdob3N0d2hpdGUgLT4gMjQ4LCAyNDgsIDI1NVxuICAgIHwgR29sZCAtPiAyNTUsIDIxNSwgMFxuICAgIHwgR29sZGVucm9kIC0+IDIxOCwgMTY1LCAzMlxuICAgIHwgR3JheSAtPiAxMjgsIDEyOCwgMTI4XG4gICAgfCBHcmVlbiAtPiAwLCAxMjgsIDBcbiAgICB8IEdyZWVueWVsbG93IC0+IDE3MywgMjU1LCA0N1xuICAgIHwgR3JleSAtPiAxMjgsIDEyOCwgMTI4XG4gICAgfCBIb25leWRldyAtPiAyNDAsIDI1NSwgMjQwXG4gICAgfCBIb3RwaW5rIC0+IDI1NSwgMTA1LCAxODBcbiAgICB8IEluZGlhbnJlZCAtPiAyMDUsIDkyLCA5MlxuICAgIHwgSW5kaWdvIC0+IDc1LCAwLCAxMzBcbiAgICB8IEl2b3J5IC0+IDI1NSwgMjU1LCAyNDBcbiAgICB8IEtoYWtpIC0+IDI0MCwgMjMwLCAxNDBcbiAgICB8IExhdmVuZGVyIC0+IDIzMCwgMjMwLCAyNTBcbiAgICB8IExhdmVuZGVyYmx1c2ggLT4gMjU1LCAyNDAsIDI0NVxuICAgIHwgTGF3bmdyZWVuIC0+IDEyNCwgMjUyLCAwXG4gICAgfCBMZW1vbmNoaWZmb24gLT4gMjU1LCAyNTAsIDIwNVxuICAgIHwgTGlnaHRibHVlIC0+IDE3MywgMjE2LCAyMzBcbiAgICB8IExpZ2h0Y29yYWwgLT4gMjQwLCAxMjgsIDEyOFxuICAgIHwgTGlnaHRjeWFuIC0+IDIyNCwgMjU1LCAyNTVcbiAgICB8IExpZ2h0Z29sZGVucm9keWVsbG93IC0+IDI1MCwgMjUwLCAyMTBcbiAgICB8IExpZ2h0Z3JheSAtPiAyMTEsIDIxMSwgMjExXG4gICAgfCBMaWdodGdyZWVuIC0+IDE0NCwgMjM4LCAxNDRcbiAgICB8IExpZ2h0Z3JleSAtPiAyMTEsIDIxMSwgMjExXG4gICAgfCBMaWdodHBpbmsgLT4gMjU1LCAxODIsIDE5M1xuICAgIHwgTGlnaHRzYWxtb24gLT4gMjU1LCAxNjAsIDEyMlxuICAgIHwgTGlnaHRzZWFncmVlbiAtPiAzMiwgMTc4LCAxNzBcbiAgICB8IExpZ2h0c2t5Ymx1ZSAtPiAxMzUsIDIwNiwgMjUwXG4gICAgfCBMaWdodHNsYXRlZ3JheSAtPiAxMTksIDEzNiwgMTUzXG4gICAgfCBMaWdodHNsYXRlZ3JleSAtPiAxMTksIDEzNiwgMTUzXG4gICAgfCBMaWdodHN0ZWVsYmx1ZSAtPiAxNzYsIDE5NiwgMjIyXG4gICAgfCBMaWdodHllbGxvdyAtPiAyNTUsIDI1NSwgMjI0XG4gICAgfCBMaW1lIC0+IDAsIDI1NSwgMFxuICAgIHwgTGltZWdyZWVuIC0+IDUwLCAyMDUsIDUwXG4gICAgfCBMaW5lbiAtPiAyNTAsIDI0MCwgMjMwXG4gICAgfCBNYWdlbnRhIC0+IDI1NSwgMCwgMjU1XG4gICAgfCBNYXJvb24gLT4gMTI4LCAwLCAwXG4gICAgfCBNZWRpdW1hcXVhbWFyaW5lIC0+IDEwMiwgMjA1LCAxNzBcbiAgICB8IE1lZGl1bWJsdWUgLT4gMCwgMCwgMjA1XG4gICAgfCBNZWRpdW1vcmNoaWQgLT4gMTg2LCA4NSwgMjExXG4gICAgfCBNZWRpdW1wdXJwbGUgLT4gMTQ3LCAxMTIsIDIxOVxuICAgIHwgTWVkaXVtc2VhZ3JlZW4gLT4gNjAsIDE3OSwgMTEzXG4gICAgfCBNZWRpdW1zbGF0ZWJsdWUgLT4gMTIzLCAxMDQsIDIzOFxuICAgIHwgTWVkaXVtc3ByaW5nZ3JlZW4gLT4gMCwgMjUwLCAxNTRcbiAgICB8IE1lZGl1bXR1cnF1b2lzZSAtPiA3MiwgMjA5LCAyMDRcbiAgICB8IE1lZGl1bXZpb2xldHJlZCAtPiAxOTksIDIxLCAxMzNcbiAgICB8IE1pZG5pZ2h0Ymx1ZSAtPiAyNSwgMjUsIDExMlxuICAgIHwgTWludGNyZWFtIC0+IDI0NSwgMjU1LCAyNTBcbiAgICB8IE1pc3R5cm9zZSAtPiAyNTUsIDIyOCwgMjI1XG4gICAgfCBNb2NjYXNpbiAtPiAyNTUsIDIyOCwgMTgxXG4gICAgfCBOYXZham93aGl0ZSAtPiAyNTUsIDIyMiwgMTczXG4gICAgfCBOYXZ5IC0+IDAsIDAsIDEyOFxuICAgIHwgT2xkbGFjZSAtPiAyNTMsIDI0NSwgMjMwXG4gICAgfCBPbGl2ZSAtPiAxMjgsIDEyOCwgMFxuICAgIHwgT2xpdmVkcmFiIC0+IDEwNywgMTQyLCAzNVxuICAgIHwgT3JhbmdlIC0+IDI1NSwgMTY1LCAwXG4gICAgfCBPcmFuZ2VyZWQgLT4gMjU1LCA2OSwgMFxuICAgIHwgT3JjaGlkIC0+IDIxOCwgMTEyLCAyMTRcbiAgICB8IFBhbGVnb2xkZW5yb2QgLT4gMjM4LCAyMzIsIDE3MFxuICAgIHwgUGFsZWdyZWVuIC0+IDE1MiwgMjUxLCAxNTJcbiAgICB8IFBhbGV0dXJxdW9pc2UgLT4gMTc1LCAyMzgsIDIzOFxuICAgIHwgUGFsZXZpb2xldHJlZCAtPiAyMTksIDExMiwgMTQ3XG4gICAgfCBQYXBheWF3aGlwIC0+IDI1NSwgMjM5LCAyMTNcbiAgICB8IFBlYWNocHVmZiAtPiAyNTUsIDIxOCwgMTg1XG4gICAgfCBQZXJ1IC0+IDIwNSwgMTMzLCA2M1xuICAgIHwgUGluayAtPiAyNTUsIDE5MiwgMjAzXG4gICAgfCBQbHVtIC0+IDIyMSwgMTYwLCAyMjFcbiAgICB8IFBvd2RlcmJsdWUgLT4gMTc2LCAyMjQsIDIzMFxuICAgIHwgUHVycGxlIC0+IDEyOCwgMCwgMTI4XG4gICAgfCBSZWQgLT4gMjU1LCAwLCAwXG4gICAgfCBSb3N5YnJvd24gLT4gMTg4LCAxNDMsIDE0M1xuICAgIHwgUm95YWxibHVlIC0+IDY1LCAxMDUsIDIyNVxuICAgIHwgU2FkZGxlYnJvd24gLT4gMTM5LCA2OSwgMTlcbiAgICB8IFNhbG1vbiAtPiAyNTAsIDEyOCwgMTE0XG4gICAgfCBTYW5keWJyb3duIC0+IDI0NCwgMTY0LCA5NlxuICAgIHwgU2VhZ3JlZW4gLT4gNDYsIDEzOSwgODdcbiAgICB8IFNlYXNoZWxsIC0+IDI1NSwgMjQ1LCAyMzhcbiAgICB8IFNpZW5uYSAtPiAxNjAsIDgyLCA0NVxuICAgIHwgU2lsdmVyIC0+IDE5MiwgMTkyLCAxOTJcbiAgICB8IFNreWJsdWUgLT4gMTM1LCAyMDYsIDIzNVxuICAgIHwgU2xhdGVibHVlIC0+IDEwNiwgOTAsIDIwNVxuICAgIHwgU2xhdGVncmF5IC0+IDExMiwgMTI4LCAxNDRcbiAgICB8IFNsYXRlZ3JleSAtPiAxMTIsIDEyOCwgMTQ0XG4gICAgfCBTbm93IC0+IDI1NSwgMjUwLCAyNTBcbiAgICB8IFNwcmluZ2dyZWVuIC0+IDAsIDI1NSwgMTI3XG4gICAgfCBTdGVlbGJsdWUgLT4gNzAsIDEzMCwgMTgwXG4gICAgfCBUYW4gLT4gMjEwLCAxODAsIDE0MFxuICAgIHwgVGVhbCAtPiAwLCAxMjgsIDEyOFxuICAgIHwgVGhpc3RsZSAtPiAyMTYsIDE5MSwgMjE2XG4gICAgfCBUb21hdG8gLT4gMjU1LCA5OSwgNzFcbiAgICB8IFR1cnF1b2lzZSAtPiA2NCwgMjI0LCAyMDhcbiAgICB8IFZpb2xldCAtPiAyMzgsIDEzMCwgMjM4XG4gICAgfCBXaGVhdCAtPiAyNDUsIDIyMiwgMTc5XG4gICAgfCBXaGl0ZSAtPiAyNTUsIDI1NSwgMjU1XG4gICAgfCBXaGl0ZXNtb2tlIC0+IDI0NSwgMjQ1LCAyNDVcbiAgICB8IFllbGxvdyAtPiAyNTUsIDI1NSwgMFxuICAgIHwgWWVsbG93Z3JlZW4gLT4gMTU0LCAyMDUsIDUwXG5cbiAgdHlwZSB0ID1cbiAgICB8IE5hbWUgb2YgbmFtZVxuICAgIHwgUkdCIG9mIChpbnQgKiBpbnQgKiBpbnQpXG4gICAgICAgICgqKiBSZWQsIEdyZWVuIGFuZCBCbHVlIHZhbHVlcy4gQ2xpcHBlZCB0byBbWzAuLjI1NV1dIGJ5IG1vc3QgKEFsbD8pXG4gICAgICAgICAgICBicm93c2Vycy4gKilcbiAgICB8IFJHQl9wZXJjZW50IG9mIChpbnQgKiBpbnQgKiBpbnQpXG4gICAgICAgICgqKiBSR0IgY2hhbm5lbHMgYXJlIHNwZWNpZmllZCBhcyBhIHBlcmNlbnRhZ2Ugb2YgdGhlaXIgbWF4aW1hbCB2YWx1ZS4gKilcbiAgICB8IFJHQkEgb2YgKGludCAqIGludCAqIGludCAqIGZsb2F0KVxuICAgICAgICAoKiogU2FtZSBhcyBSR0Igd2l0aCBhZGRpdGlvbmFsIHRyYW5zcGFyZW5jeSBhcmd1bWVudC4gT3BhY2l0eSBzaG91bGQgYmUgaW5cbiAgICAgICAgICAgIFswLl0gKGNvbXBsZXRlbHkgdHJhbnNwYXJlbnQpIGFuZCBbMS5dIChjb21wbGV0ZWx5IG9wYXF1ZSkuICopXG4gICAgfCBSR0JBX3BlcmNlbnQgb2YgKGludCAqIGludCAqIGludCAqIGZsb2F0KVxuICAgICAgICAoKiogUkdCIGNoYW5uZWxzIHNwZWNpZmllZCBhcyBwZXJjZW50YWdlIG9mIHRoZWlyIG1heGltYWwgdmFsdWUuIEFscGhhXG4gICAgICAgICAgICBjaGFubmVsIChvcGFjaXR5KSBpcyBzdGlsbCBhIFswLl0gdG8gWzEuXSBmbG9hdC4gKilcbiAgICB8IEhTTCBvZiAoaW50ICogaW50ICogaW50KVxuICAgICAgICAoKiogSHVlLCBTYXR1cmF0aW9uIGFuZCBMaWdodG5lc3MgdmFsdWVzLiBIdWUgaXMgYW4gYW5nbGUgaW4gZGVncmVlIChpblxuICAgICAgICAgICAgaW50ZXJ2YWwgW1swLi4zNjBbXSkuIFNhdHVyYXRpb24gaXMgYSBwZXJjZW50YWdlIChbWzAuLjEwMF1dKSB3aXRoIFswXVxuICAgICAgICAgICAgYmVpbmcgY29sb3JsZXNzLiBMaWdodG5lc3MgaXMgYWxzbyBhIHBlcmNlbnRhZ2UgKFtbMC4uMTAwXV0pIHdpdGggWzBdXG4gICAgICAgICAgICBiZWluZyBibGFjay4gKilcbiAgICB8IEhTTEEgb2YgKGludCAqIGludCAqIGludCAqIGZsb2F0KVxuICAgICAgICAoKiogU2FtZSBhcyBIU0wgd2l0aCBhbiBvcGFjaXR5IGFyZ3VtZW50IGJldHdlZW4gWzAuXSBhbmQgWzEuXS4gKilcblxuICBsZXQgcmdiID9hIHIgZyBiID1cbiAgICBtYXRjaCBhIHdpdGhcbiAgICB8IE5vbmUgLT4gUkdCIChyLCBnLCBiKVxuICAgIHwgU29tZSBhIC0+IFJHQkEgKHIsIGcsIGIsIGEpXG5cbiAgbGV0IGhzbCA/YSBoIHMgbCA9XG4gICAgbWF0Y2ggYSB3aXRoXG4gICAgfCBOb25lIC0+IEhTTCAoaCwgcywgbClcbiAgICB8IFNvbWUgYSAtPiBIU0xBIChoLCBzLCBsLCBhKVxuXG4gIGxldCBzdHJpbmdfb2ZfdCA9IGZ1bmN0aW9uXG4gICAgfCBOYW1lIG4gLT4gc3RyaW5nX29mX25hbWUgblxuICAgIHwgUkdCIChyLCBnLCBiKSAtPiBQcmludGYuc3ByaW50ZiBcInJnYiglZCwlZCwlZClcIiByIGcgYlxuICAgIHwgUkdCX3BlcmNlbnQgKHIsIGcsIGIpIC0+IFByaW50Zi5zcHJpbnRmIFwicmdiKCVkJSUsJWQlJSwlZCUlKVwiIHIgZyBiXG4gICAgfCBSR0JBIChyLCBnLCBiLCBhKSAtPiBQcmludGYuc3ByaW50ZiBcInJnYmEoJWQsJWQsJWQsJWYpXCIgciBnIGIgYVxuICAgIHwgUkdCQV9wZXJjZW50IChyLCBnLCBiLCBhKSAtPiBQcmludGYuc3ByaW50ZiBcInJnYmEoJWQlJSwlZCUlLCVkJSUsJWYpXCIgciBnIGIgYVxuICAgIHwgSFNMIChoLCBzLCBsKSAtPiBQcmludGYuc3ByaW50ZiBcImhzbCglZCwlZCUlLCVkJSUpXCIgaCBzIGxcbiAgICB8IEhTTEEgKGgsIHMsIGwsIGEpIC0+IFByaW50Zi5zcHJpbnRmIFwiaHNsYSglZCwlZCUlLCVkJSUsJWYpXCIgaCBzIGwgYVxuXG4gIGxldCBoZXhfb2ZfcmdiIChyZWQsIGdyZWVuLCBibHVlKSA9XG4gICAgbGV0IGluX3JhbmdlIGkgPVxuICAgICAgaWYgaSA8IDAgfHwgaSA+IDI1NVxuICAgICAgdGhlbiByYWlzZSAoSW52YWxpZF9hcmd1bWVudCAoc3RyaW5nX29mX2ludCBpIF4gXCIgaXMgb3V0IG9mIHZhbGlkIHJhbmdlXCIpKVxuICAgIGluXG4gICAgaW5fcmFuZ2UgcmVkO1xuICAgIGluX3JhbmdlIGdyZWVuO1xuICAgIGluX3JhbmdlIGJsdWU7XG4gICAgUHJpbnRmLnNwcmludGYgXCIjJTAyWCUwMlglMDJYXCIgcmVkIGdyZWVuIGJsdWVcblxuICAoKiBPY2FtbCA8LT4gSlMgcmVwcmVzZW50YXRpb24gKilcbiAgdHlwZSBqc190ID0gSnMuanNfc3RyaW5nIEpzLnRcblxuICAoKiBUT0RPPyBiZSBtb3JlIHJlc3RyaWN0aXZlLCBjbGlwIHZhbHVlcyBpbnRvIHN0YW5kYXJkIHJhbmdlICopXG4gIGxldCBqc190X29mX2pzX3N0cmluZyBzID1cbiAgICBsZXQgcmdiX3JlID1cbiAgICAgIG5ldyVqcyBKcy5yZWdFeHAgKEpzLmJ5dGVzdHJpbmcgXCJecmdiXFxcXChcXFxccypcXFxcZCosXFxcXHMqXFxcXGQqLFxcXFxzKlxcXFxkKlxcXFwpJFwiKVxuICAgIGluXG4gICAgbGV0IHJnYl9wY3RfcmUgPVxuICAgICAgbmV3JWpzIEpzLnJlZ0V4cCAoSnMuYnl0ZXN0cmluZyBcIl5yZ2JcXFxcKFxcXFxzKlxcXFxkKiUsXFxcXHMqXFxcXGQqJSxcXFxccypcXFxcZColXFxcXCkkXCIpXG4gICAgaW5cbiAgICBsZXQgcmdiYV9yZSA9XG4gICAgICBuZXclanMgSnMucmVnRXhwXG4gICAgICAgIChKcy5ieXRlc3RyaW5nIFwiXnJnYmFcXFxcKFxcXFxzKlxcXFxkKixcXFxccypcXFxcZCosXFxcXHMqXFxcXGQqLFxcXFxkKlxcXFwuP1xcXFxkKlxcXFwpJFwiKVxuICAgIGluXG4gICAgbGV0IHJnYmFfcGN0X3JlID1cbiAgICAgIG5ldyVqcyBKcy5yZWdFeHBcbiAgICAgICAgKEpzLmJ5dGVzdHJpbmcgXCJecmdiYVxcXFwoXFxcXHMqXFxcXGQqJSxcXFxccypcXFxcZColLFxcXFxzKlxcXFxkKiUsXFxcXGQqXFxcXC4/XFxcXGQqXFxcXCkkXCIpXG4gICAgaW5cbiAgICBsZXQgaHNsX3JlID1cbiAgICAgIG5ldyVqcyBKcy5yZWdFeHAgKEpzLmJ5dGVzdHJpbmcgXCJeaHNsXFxcXChcXFxccypcXFxcZCosXFxcXHMqXFxcXGQqJSxcXFxccypcXFxcZColXFxcXCkkXCIpXG4gICAgaW5cbiAgICBsZXQgaHNsYV9yZSA9XG4gICAgICBuZXclanMgSnMucmVnRXhwXG4gICAgICAgIChKcy5ieXRlc3RyaW5nIFwiXmhzbGFcXFxcKFxcXFxzKlxcXFxkKixcXFxccypcXFxcZColLFxcXFxzKlxcXFxkKiUsXFxcXGQqXFxcXC4/XFxcXGQqXFxcXCkkXCIpXG4gICAgaW5cbiAgICBpZiBKcy50b19ib29sIChyZ2JfcmUjI3Rlc3QgcylcbiAgICAgICB8fCBKcy50b19ib29sIChyZ2JhX3JlIyN0ZXN0IHMpXG4gICAgICAgfHwgSnMudG9fYm9vbCAocmdiX3BjdF9yZSMjdGVzdCBzKVxuICAgICAgIHx8IEpzLnRvX2Jvb2wgKHJnYmFfcGN0X3JlIyN0ZXN0IHMpXG4gICAgICAgfHwgSnMudG9fYm9vbCAoaHNsX3JlIyN0ZXN0IHMpXG4gICAgICAgfHwgSnMudG9fYm9vbCAoaHNsYV9yZSMjdGVzdCBzKVxuICAgIHRoZW4gc1xuICAgIGVsc2UgaWYgTGlzdC5tZW1cbiAgICAgICAgICAgICAgKEpzLnRvX3N0cmluZyBzKVxuICAgICAgICAgICAgICBbIFwiYWxpY2VibHVlXCJcbiAgICAgICAgICAgICAgOyBcImFudGlxdWV3aGl0ZVwiXG4gICAgICAgICAgICAgIDsgXCJhcXVhXCJcbiAgICAgICAgICAgICAgOyBcImFxdWFtYXJpbmVcIlxuICAgICAgICAgICAgICA7IFwiYXp1cmVcIlxuICAgICAgICAgICAgICA7IFwiYmVpZ2VcIlxuICAgICAgICAgICAgICA7IFwiYmlzcXVlXCJcbiAgICAgICAgICAgICAgOyBcImJsYWNrXCJcbiAgICAgICAgICAgICAgOyBcImJsYW5jaGVkYWxtb25kXCJcbiAgICAgICAgICAgICAgOyBcImJsdWVcIlxuICAgICAgICAgICAgICA7IFwiYmx1ZXZpb2xldFwiXG4gICAgICAgICAgICAgIDsgXCJicm93blwiXG4gICAgICAgICAgICAgIDsgXCJidXJseXdvb2RcIlxuICAgICAgICAgICAgICA7IFwiY2FkZXRibHVlXCJcbiAgICAgICAgICAgICAgOyBcImNoYXJ0cmV1c2VcIlxuICAgICAgICAgICAgICA7IFwiY2hvY29sYXRlXCJcbiAgICAgICAgICAgICAgOyBcImNvcmFsXCJcbiAgICAgICAgICAgICAgOyBcImNvcm5mbG93ZXJibHVlXCJcbiAgICAgICAgICAgICAgOyBcImNvcm5zaWxrXCJcbiAgICAgICAgICAgICAgOyBcImNyaW1zb25cIlxuICAgICAgICAgICAgICA7IFwiY3lhblwiXG4gICAgICAgICAgICAgIDsgXCJkYXJrYmx1ZVwiXG4gICAgICAgICAgICAgIDsgXCJkYXJrY3lhblwiXG4gICAgICAgICAgICAgIDsgXCJkYXJrZ29sZGVucm9kXCJcbiAgICAgICAgICAgICAgOyBcImRhcmtncmF5XCJcbiAgICAgICAgICAgICAgOyBcImRhcmtncmVlblwiXG4gICAgICAgICAgICAgIDsgXCJkYXJrZ3JleVwiXG4gICAgICAgICAgICAgIDsgXCJkYXJra2hha2lcIlxuICAgICAgICAgICAgICA7IFwiZGFya21hZ2VudGFcIlxuICAgICAgICAgICAgICA7IFwiZGFya29saXZlZ3JlZW5cIlxuICAgICAgICAgICAgICA7IFwiZGFya29yYW5nZVwiXG4gICAgICAgICAgICAgIDsgXCJkYXJrb3JjaGlkXCJcbiAgICAgICAgICAgICAgOyBcImRhcmtyZWRcIlxuICAgICAgICAgICAgICA7IFwiZGFya3NhbG1vblwiXG4gICAgICAgICAgICAgIDsgXCJkYXJrc2VhZ3JlZW5cIlxuICAgICAgICAgICAgICA7IFwiZGFya3NsYXRlYmx1ZVwiXG4gICAgICAgICAgICAgIDsgXCJkYXJrc2xhdGVncmF5XCJcbiAgICAgICAgICAgICAgOyBcImRhcmtzbGF0ZWdyZXlcIlxuICAgICAgICAgICAgICA7IFwiZGFya3R1cnF1b2lzZVwiXG4gICAgICAgICAgICAgIDsgXCJkYXJrdmlvbGV0XCJcbiAgICAgICAgICAgICAgOyBcImRlZXBwaW5rXCJcbiAgICAgICAgICAgICAgOyBcImRlZXBza3libHVlXCJcbiAgICAgICAgICAgICAgOyBcImRpbWdyYXlcIlxuICAgICAgICAgICAgICA7IFwiZGltZ3JleVwiXG4gICAgICAgICAgICAgIDsgXCJkb2RnZXJibHVlXCJcbiAgICAgICAgICAgICAgOyBcImZpcmVicmlja1wiXG4gICAgICAgICAgICAgIDsgXCJmbG9yYWx3aGl0ZVwiXG4gICAgICAgICAgICAgIDsgXCJmb3Jlc3RncmVlblwiXG4gICAgICAgICAgICAgIDsgXCJmdWNoc2lhXCJcbiAgICAgICAgICAgICAgOyBcImdhaW5zYm9yb1wiXG4gICAgICAgICAgICAgIDsgXCJnaG9zdHdoaXRlXCJcbiAgICAgICAgICAgICAgOyBcImdvbGRcIlxuICAgICAgICAgICAgICA7IFwiZ29sZGVucm9kXCJcbiAgICAgICAgICAgICAgOyBcImdyYXlcIlxuICAgICAgICAgICAgICA7IFwiZ3JlZW5cIlxuICAgICAgICAgICAgICA7IFwiZ3JlZW55ZWxsb3dcIlxuICAgICAgICAgICAgICA7IFwiZ3JleVwiXG4gICAgICAgICAgICAgIDsgXCJob25leWRld1wiXG4gICAgICAgICAgICAgIDsgXCJob3RwaW5rXCJcbiAgICAgICAgICAgICAgOyBcImluZGlhbnJlZFwiXG4gICAgICAgICAgICAgIDsgXCJpbmRpZ29cIlxuICAgICAgICAgICAgICA7IFwiaXZvcnlcIlxuICAgICAgICAgICAgICA7IFwia2hha2lcIlxuICAgICAgICAgICAgICA7IFwibGF2ZW5kZXJcIlxuICAgICAgICAgICAgICA7IFwibGF2ZW5kZXJibHVzaFwiXG4gICAgICAgICAgICAgIDsgXCJsYXduZ3JlZW5cIlxuICAgICAgICAgICAgICA7IFwibGVtb25jaGlmZm9uXCJcbiAgICAgICAgICAgICAgOyBcImxpZ2h0Ymx1ZVwiXG4gICAgICAgICAgICAgIDsgXCJsaWdodGNvcmFsXCJcbiAgICAgICAgICAgICAgOyBcImxpZ2h0Y3lhblwiXG4gICAgICAgICAgICAgIDsgXCJsaWdodGdvbGRlbnJvZHllbGxvd1wiXG4gICAgICAgICAgICAgIDsgXCJsaWdodGdyYXlcIlxuICAgICAgICAgICAgICA7IFwibGlnaHRncmVlblwiXG4gICAgICAgICAgICAgIDsgXCJsaWdodGdyZXlcIlxuICAgICAgICAgICAgICA7IFwibGlnaHRwaW5rXCJcbiAgICAgICAgICAgICAgOyBcImxpZ2h0c2FsbW9uXCJcbiAgICAgICAgICAgICAgOyBcImxpZ2h0c2VhZ3JlZW5cIlxuICAgICAgICAgICAgICA7IFwibGlnaHRza3libHVlXCJcbiAgICAgICAgICAgICAgOyBcImxpZ2h0c2xhdGVncmF5XCJcbiAgICAgICAgICAgICAgOyBcImxpZ2h0c2xhdGVncmV5XCJcbiAgICAgICAgICAgICAgOyBcImxpZ2h0c3RlZWxibHVlXCJcbiAgICAgICAgICAgICAgOyBcImxpZ2h0eWVsbG93XCJcbiAgICAgICAgICAgICAgOyBcImxpbWVcIlxuICAgICAgICAgICAgICA7IFwibGltZWdyZWVuXCJcbiAgICAgICAgICAgICAgOyBcImxpbmVuXCJcbiAgICAgICAgICAgICAgOyBcIm1hZ2VudGFcIlxuICAgICAgICAgICAgICA7IFwibWFyb29uXCJcbiAgICAgICAgICAgICAgOyBcIm1lZGl1bWFxdWFtYXJpbmVcIlxuICAgICAgICAgICAgICA7IFwibWVkaXVtYmx1ZVwiXG4gICAgICAgICAgICAgIDsgXCJtZWRpdW1vcmNoaWRcIlxuICAgICAgICAgICAgICA7IFwibWVkaXVtcHVycGxlXCJcbiAgICAgICAgICAgICAgOyBcIm1lZGl1bXNlYWdyZWVuXCJcbiAgICAgICAgICAgICAgOyBcIm1lZGl1bXNsYXRlYmx1ZVwiXG4gICAgICAgICAgICAgIDsgXCJtZWRpdW1zcHJpbmdncmVlblwiXG4gICAgICAgICAgICAgIDsgXCJtZWRpdW10dXJxdW9pc2VcIlxuICAgICAgICAgICAgICA7IFwibWVkaXVtdmlvbGV0cmVkXCJcbiAgICAgICAgICAgICAgOyBcIm1pZG5pZ2h0Ymx1ZVwiXG4gICAgICAgICAgICAgIDsgXCJtaW50Y3JlYW1cIlxuICAgICAgICAgICAgICA7IFwibWlzdHlyb3NlXCJcbiAgICAgICAgICAgICAgOyBcIm1vY2Nhc2luXCJcbiAgICAgICAgICAgICAgOyBcIm5hdmFqb3doaXRlXCJcbiAgICAgICAgICAgICAgOyBcIm5hdnlcIlxuICAgICAgICAgICAgICA7IFwib2xkbGFjZVwiXG4gICAgICAgICAgICAgIDsgXCJvbGl2ZVwiXG4gICAgICAgICAgICAgIDsgXCJvbGl2ZWRyYWJcIlxuICAgICAgICAgICAgICA7IFwib3JhbmdlXCJcbiAgICAgICAgICAgICAgOyBcIm9yYW5nZXJlZFwiXG4gICAgICAgICAgICAgIDsgXCJvcmNoaWRcIlxuICAgICAgICAgICAgICA7IFwicGFsZWdvbGRlbnJvZFwiXG4gICAgICAgICAgICAgIDsgXCJwYWxlZ3JlZW5cIlxuICAgICAgICAgICAgICA7IFwicGFsZXR1cnF1b2lzZVwiXG4gICAgICAgICAgICAgIDsgXCJwYWxldmlvbGV0cmVkXCJcbiAgICAgICAgICAgICAgOyBcInBhcGF5YXdoaXBcIlxuICAgICAgICAgICAgICA7IFwicGVhY2hwdWZmXCJcbiAgICAgICAgICAgICAgOyBcInBlcnVcIlxuICAgICAgICAgICAgICA7IFwicGlua1wiXG4gICAgICAgICAgICAgIDsgXCJwbHVtXCJcbiAgICAgICAgICAgICAgOyBcInBvd2RlcmJsdWVcIlxuICAgICAgICAgICAgICA7IFwicHVycGxlXCJcbiAgICAgICAgICAgICAgOyBcInJlZFwiXG4gICAgICAgICAgICAgIDsgXCJyb3N5YnJvd25cIlxuICAgICAgICAgICAgICA7IFwicm95YWxibHVlXCJcbiAgICAgICAgICAgICAgOyBcInNhZGRsZWJyb3duXCJcbiAgICAgICAgICAgICAgOyBcInNhbG1vblwiXG4gICAgICAgICAgICAgIDsgXCJzYW5keWJyb3duXCJcbiAgICAgICAgICAgICAgOyBcInNlYWdyZWVuXCJcbiAgICAgICAgICAgICAgOyBcInNlYXNoZWxsXCJcbiAgICAgICAgICAgICAgOyBcInNpZW5uYVwiXG4gICAgICAgICAgICAgIDsgXCJzaWx2ZXJcIlxuICAgICAgICAgICAgICA7IFwic2t5Ymx1ZVwiXG4gICAgICAgICAgICAgIDsgXCJzbGF0ZWJsdWVcIlxuICAgICAgICAgICAgICA7IFwic2xhdGVncmF5XCJcbiAgICAgICAgICAgICAgOyBcInNsYXRlZ3JleVwiXG4gICAgICAgICAgICAgIDsgXCJzbm93XCJcbiAgICAgICAgICAgICAgOyBcInNwcmluZ2dyZWVuXCJcbiAgICAgICAgICAgICAgOyBcInN0ZWVsYmx1ZVwiXG4gICAgICAgICAgICAgIDsgXCJ0YW5cIlxuICAgICAgICAgICAgICA7IFwidGVhbFwiXG4gICAgICAgICAgICAgIDsgXCJ0aGlzdGxlXCJcbiAgICAgICAgICAgICAgOyBcInRvbWF0b1wiXG4gICAgICAgICAgICAgIDsgXCJ0dXJxdW9pc2VcIlxuICAgICAgICAgICAgICA7IFwidmlvbGV0XCJcbiAgICAgICAgICAgICAgOyBcIndoZWF0XCJcbiAgICAgICAgICAgICAgOyBcIndoaXRlXCJcbiAgICAgICAgICAgICAgOyBcIndoaXRlc21va2VcIlxuICAgICAgICAgICAgICA7IFwieWVsbG93XCJcbiAgICAgICAgICAgICAgOyBcInllbGxvd2dyZWVuXCJcbiAgICAgICAgICAgICAgXVxuICAgIHRoZW4gc1xuICAgIGVsc2UgcmFpc2UgKEludmFsaWRfYXJndW1lbnQgKEpzLnRvX3N0cmluZyBzIF4gXCIgaXMgbm90IGEgdmFsaWQgY29sb3JcIikpXG5cbiAgbGV0IG5hbWUgY24gPSBKcy5zdHJpbmcgKHN0cmluZ19vZl9uYW1lIGNuKVxuXG4gIGxldCBqcyA9IGZ1bmN0aW9uXG4gICAgfCBOYW1lIG4gLT4gbmFtZSBuXG4gICAgfCAoUkdCIF8gfCBSR0JfcGVyY2VudCBfIHwgUkdCQSBfIHwgUkdCQV9wZXJjZW50IF8gfCBIU0wgXyB8IEhTTEEgXykgYXMgYyAtPlxuICAgICAgICBKcy5zdHJpbmcgKHN0cmluZ19vZl90IGMpXG5cbiAgbGV0IG1sIGMgPVxuICAgIGxldCBzID0gSnMudG9fc3RyaW5nIGMgaW5cbiAgICB0cnkgTmFtZSAobmFtZV9vZl9zdHJpbmcgcylcbiAgICB3aXRoIEludmFsaWRfYXJndW1lbnQgXyAtPiAoXG4gICAgICBsZXQgZmFpbCAoKSA9IHJhaXNlIChJbnZhbGlkX2FyZ3VtZW50IChzIF4gXCIgaXMgbm90IGEgdmFsaWQgY29sb3JcIikpIGluXG4gICAgICBsZXQgcmVfcmdiID1cbiAgICAgICAgUmVnZXhwLnJlZ2V4cCBcIihyZ2JhPylcXFxcKCg/OihcXFxcZCopLChcXFxcZCopLChcXFxcZCopKD86LChcXFxcZCooPzpcXFxcLlxcXFxkKik/KSk/KVxcXFwpXCJcbiAgICAgIGluXG4gICAgICBsZXQgcmVfcmdiX3BjdCA9XG4gICAgICAgIFJlZ2V4cC5yZWdleHAgXCIocmdiYT8pXFxcXCgoPzooXFxcXGQqKSUsKFxcXFxkKiklLChcXFxcZCopJSg/OiwoXFxcXGQqKD86XFxcXC5cXFxcZCopPykpPylcXFxcKVwiXG4gICAgICBpblxuICAgICAgbGV0IHJlX2hzbCA9XG4gICAgICAgIFJlZ2V4cC5yZWdleHAgXCIoaHNsYT8pXFxcXCgoPzooXFxcXGQqKSwoXFxcXGQqKSUsKFxcXFxkKiklKD86LChcXFxcZCooPzpcXFxcLlxcXFxkKik/KSk/KVxcXFwpXCJcbiAgICAgIGluXG4gICAgICBsZXQgaV9vZl9zX28gPSBmdW5jdGlvblxuICAgICAgICB8IE5vbmUgLT4gZmFpbCAoKVxuICAgICAgICB8IFNvbWUgaSAtPiAoXG4gICAgICAgICAgICB0cnkgaW50X29mX3N0cmluZyBpXG4gICAgICAgICAgICB3aXRoIEludmFsaWRfYXJndW1lbnQgcyB8IEZhaWx1cmUgcyAtPlxuICAgICAgICAgICAgICByYWlzZSAoSW52YWxpZF9hcmd1bWVudCAoXCJjb2xvciBjb252ZXJzaW9uIGVycm9yIChcIiBeIGkgXiBcIik6IFwiIF4gcykpKVxuICAgICAgaW5cbiAgICAgIGxldCBmX29mX3MgZiA9XG4gICAgICAgIHRyeSBmbG9hdF9vZl9zdHJpbmcgZlxuICAgICAgICB3aXRoIEludmFsaWRfYXJndW1lbnQgcyB8IEZhaWx1cmUgcyAtPlxuICAgICAgICAgIHJhaXNlIChJbnZhbGlkX2FyZ3VtZW50IChcImNvbG9yIGNvbnZlcnNpb24gZXJyb3IgKFwiIF4gZiBeIFwiKTogXCIgXiBzKSlcbiAgICAgIGluXG4gICAgICBtYXRjaCBSZWdleHAuc3RyaW5nX21hdGNoIHJlX3JnYiBzIDAgd2l0aFxuICAgICAgfCBTb21lIHIgLT4gKFxuICAgICAgICAgIGxldCByZWQgPSBSZWdleHAubWF0Y2hlZF9ncm91cCByIDIgaW5cbiAgICAgICAgICBsZXQgZ3JlZW4gPSBSZWdleHAubWF0Y2hlZF9ncm91cCByIDMgaW5cbiAgICAgICAgICBsZXQgYmx1ZSA9IFJlZ2V4cC5tYXRjaGVkX2dyb3VwIHIgNCBpblxuICAgICAgICAgIGxldCBhbHBoYSA9IFJlZ2V4cC5tYXRjaGVkX2dyb3VwIHIgNSBpblxuICAgICAgICAgIG1hdGNoIFJlZ2V4cC5tYXRjaGVkX2dyb3VwIHIgMSB3aXRoXG4gICAgICAgICAgfCBTb21lIFwicmdiXCIgLT4gKFxuICAgICAgICAgICAgICBtYXRjaCBhbHBoYSB3aXRoXG4gICAgICAgICAgICAgIHwgU29tZSBfIC0+IGZhaWwgKClcbiAgICAgICAgICAgICAgfCBOb25lIC0+IFJHQiAoaV9vZl9zX28gcmVkLCBpX29mX3NfbyBncmVlbiwgaV9vZl9zX28gYmx1ZSkpXG4gICAgICAgICAgfCBTb21lIFwicmdiYVwiIC0+IChcbiAgICAgICAgICAgICAgbWF0Y2ggYWxwaGEgd2l0aFxuICAgICAgICAgICAgICB8IE5vbmUgLT4gZmFpbCAoKVxuICAgICAgICAgICAgICB8IFNvbWUgYSAtPiBSR0JBIChpX29mX3NfbyByZWQsIGlfb2Zfc19vIGdyZWVuLCBpX29mX3NfbyBibHVlLCBmX29mX3MgYSkpXG4gICAgICAgICAgfCBTb21lIF8gfCBOb25lIC0+IGZhaWwgKCkpXG4gICAgICB8IE5vbmUgLT4gKFxuICAgICAgICAgIG1hdGNoIFJlZ2V4cC5zdHJpbmdfbWF0Y2ggcmVfcmdiX3BjdCBzIDAgd2l0aFxuICAgICAgICAgIHwgU29tZSByIC0+IChcbiAgICAgICAgICAgICAgbGV0IHJlZCA9IFJlZ2V4cC5tYXRjaGVkX2dyb3VwIHIgMiBpblxuICAgICAgICAgICAgICBsZXQgZ3JlZW4gPSBSZWdleHAubWF0Y2hlZF9ncm91cCByIDMgaW5cbiAgICAgICAgICAgICAgbGV0IGJsdWUgPSBSZWdleHAubWF0Y2hlZF9ncm91cCByIDQgaW5cbiAgICAgICAgICAgICAgbGV0IGFscGhhID0gUmVnZXhwLm1hdGNoZWRfZ3JvdXAgciA1IGluXG4gICAgICAgICAgICAgIG1hdGNoIFJlZ2V4cC5tYXRjaGVkX2dyb3VwIHIgMSB3aXRoXG4gICAgICAgICAgICAgIHwgU29tZSBcInJnYlwiIC0+IChcbiAgICAgICAgICAgICAgICAgIG1hdGNoIGFscGhhIHdpdGhcbiAgICAgICAgICAgICAgICAgIHwgU29tZSBfIC0+IGZhaWwgKClcbiAgICAgICAgICAgICAgICAgIHwgTm9uZSAtPiBSR0JfcGVyY2VudCAoaV9vZl9zX28gcmVkLCBpX29mX3NfbyBncmVlbiwgaV9vZl9zX28gYmx1ZSkpXG4gICAgICAgICAgICAgIHwgU29tZSBcInJnYmFcIiAtPiAoXG4gICAgICAgICAgICAgICAgICBtYXRjaCBhbHBoYSB3aXRoXG4gICAgICAgICAgICAgICAgICB8IE5vbmUgLT4gZmFpbCAoKVxuICAgICAgICAgICAgICAgICAgfCBTb21lIGEgLT5cbiAgICAgICAgICAgICAgICAgICAgICBSR0JBX3BlcmNlbnQgKGlfb2Zfc19vIHJlZCwgaV9vZl9zX28gZ3JlZW4sIGlfb2Zfc19vIGJsdWUsIGZfb2ZfcyBhKVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICB8IFNvbWUgXyB8IE5vbmUgLT4gZmFpbCAoKSlcbiAgICAgICAgICB8IE5vbmUgLT4gKFxuICAgICAgICAgICAgICBtYXRjaCBSZWdleHAuc3RyaW5nX21hdGNoIHJlX2hzbCBzIDAgd2l0aFxuICAgICAgICAgICAgICB8IFNvbWUgciAtPiAoXG4gICAgICAgICAgICAgICAgICBsZXQgcmVkID0gUmVnZXhwLm1hdGNoZWRfZ3JvdXAgciAyIGluXG4gICAgICAgICAgICAgICAgICBsZXQgZ3JlZW4gPSBSZWdleHAubWF0Y2hlZF9ncm91cCByIDMgaW5cbiAgICAgICAgICAgICAgICAgIGxldCBibHVlID0gUmVnZXhwLm1hdGNoZWRfZ3JvdXAgciA0IGluXG4gICAgICAgICAgICAgICAgICBsZXQgYWxwaGEgPSBSZWdleHAubWF0Y2hlZF9ncm91cCByIDUgaW5cbiAgICAgICAgICAgICAgICAgIG1hdGNoIFJlZ2V4cC5tYXRjaGVkX2dyb3VwIHIgMSB3aXRoXG4gICAgICAgICAgICAgICAgICB8IFNvbWUgXCJoc2xcIiAtPiAoXG4gICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggYWxwaGEgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgIHwgU29tZSBfIC0+IGZhaWwgKClcbiAgICAgICAgICAgICAgICAgICAgICB8IE5vbmUgLT4gSFNMIChpX29mX3NfbyByZWQsIGlfb2Zfc19vIGdyZWVuLCBpX29mX3NfbyBibHVlKSlcbiAgICAgICAgICAgICAgICAgIHwgU29tZSBcImhzbGFcIiAtPiAoXG4gICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggYWxwaGEgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgIHwgTm9uZSAtPiBmYWlsICgpXG4gICAgICAgICAgICAgICAgICAgICAgfCBTb21lIGEgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgSFNMQSAoaV9vZl9zX28gcmVkLCBpX29mX3NfbyBncmVlbiwgaV9vZl9zX28gYmx1ZSwgZl9vZl9zIGEpKVxuICAgICAgICAgICAgICAgICAgfCBTb21lIF8gfCBOb25lIC0+IGZhaWwgKCkpXG4gICAgICAgICAgICAgIHwgTm9uZSAtPiBmYWlsICgpKSkpXG5lbmRcblxubW9kdWxlIExlbmd0aCA9IHN0cnVjdFxuICAoKiBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLXZhbHVlcy8jbGVuZ3RocyAqKVxuXG4gICgqIFRPRE86XG4gICAgIHtbXG4gICAgICAgdHlwZSBqc190ID0gcHJpdmF0ZSBKcy5zdHJpbmcgSnMudFxuICAgICAgIHZhbCBqc190X29mX3RcbiAgICAgICB2YWwgdF9vZl9qc190XG4gICAgICAgdmFsIHRfb2Zfc3RyaW5nXG4gICAgIF19XG4gICopXG5cbiAgdHlwZSB0ID1cbiAgICB8IFplcm9cbiAgICAoKiByZWxhdGl2ZSAqKVxuICAgIHwgRW0gb2YgZmxvYXRcbiAgICB8IEV4IG9mIGZsb2F0XG4gICAgfCBQeCBvZiBmbG9hdFxuICAgIHwgR2Qgb2YgZmxvYXRcbiAgICB8IFJlbSBvZiBmbG9hdFxuICAgIHwgVncgb2YgZmxvYXRcbiAgICB8IFZoIG9mIGZsb2F0XG4gICAgfCBWbSBvZiBmbG9hdFxuICAgIHwgQ2ggb2YgZmxvYXRcbiAgICAoKiBhYnNvbHV0ZSAqKVxuICAgIHwgTW0gb2YgZmxvYXRcbiAgICB8IENtIG9mIGZsb2F0XG4gICAgfCBJbiBvZiBmbG9hdFxuICAgIHwgUHQgb2YgZmxvYXRcbiAgICB8IFBjIG9mIGZsb2F0XG5cbiAgbGV0IHN0cmluZ19vZl90ID0gZnVuY3Rpb25cbiAgICB8IFplcm8gLT4gXCIwXCJcbiAgICB8IEVtIGYgLT4gUHJpbnRmLnNwcmludGYgXCIlZiVzXCIgZiBcImVtXCJcbiAgICB8IEV4IGYgLT4gUHJpbnRmLnNwcmludGYgXCIlZiVzXCIgZiBcImV4XCJcbiAgICB8IFB4IGYgLT4gUHJpbnRmLnNwcmludGYgXCIlZiVzXCIgZiBcInB4XCJcbiAgICB8IEdkIGYgLT4gUHJpbnRmLnNwcmludGYgXCIlZiVzXCIgZiBcImdkXCJcbiAgICB8IFJlbSBmIC0+IFByaW50Zi5zcHJpbnRmIFwiJWYlc1wiIGYgXCJyZW1cIlxuICAgIHwgVncgZiAtPiBQcmludGYuc3ByaW50ZiBcIiVmJXNcIiBmIFwidndcIlxuICAgIHwgVmggZiAtPiBQcmludGYuc3ByaW50ZiBcIiVmJXNcIiBmIFwidmhcIlxuICAgIHwgVm0gZiAtPiBQcmludGYuc3ByaW50ZiBcIiVmJXNcIiBmIFwidm1cIlxuICAgIHwgQ2ggZiAtPiBQcmludGYuc3ByaW50ZiBcIiVmJXNcIiBmIFwiY2hcIlxuICAgIHwgTW0gZiAtPiBQcmludGYuc3ByaW50ZiBcIiVmJXNcIiBmIFwibW1cIlxuICAgIHwgQ20gZiAtPiBQcmludGYuc3ByaW50ZiBcIiVmJXNcIiBmIFwiY21cIlxuICAgIHwgSW4gZiAtPiBQcmludGYuc3ByaW50ZiBcIiVmJXNcIiBmIFwiaW5cIlxuICAgIHwgUHQgZiAtPiBQcmludGYuc3ByaW50ZiBcIiVmJXNcIiBmIFwicHRcIlxuICAgIHwgUGMgZiAtPiBQcmludGYuc3ByaW50ZiBcIiVmJXNcIiBmIFwicGNcIlxuXG4gIHR5cGUganNfdCA9IEpzLmpzX3N0cmluZyBKcy50XG5cbiAgbGV0IGpzIHQgPSBKcy5zdHJpbmcgKHN0cmluZ19vZl90IHQpXG5cbiAgbGV0IG1sIHQgPVxuICAgIGxldCBzID0gSnMudG9fc3RyaW5nIHQgaW5cbiAgICBpZiBTdHJpbmcuZXF1YWwgcyBcIjBcIlxuICAgIHRoZW4gWmVyb1xuICAgIGVsc2VcbiAgICAgIGxldCBmYWlsICgpID0gcmFpc2UgKEludmFsaWRfYXJndW1lbnQgKHMgXiBcIiBpcyBub3QgYSB2YWxpZCBsZW5ndGhcIikpIGluXG4gICAgICBsZXQgcmUgPSBSZWdleHAucmVnZXhwIFwiXihcXFxcZCooPzpcXFxcLlxcXFxkKik/KVxcXFxzKihcXFxcUyopJFwiIGluXG4gICAgICBtYXRjaCBSZWdleHAuc3RyaW5nX21hdGNoIHJlIHMgMCB3aXRoXG4gICAgICB8IE5vbmUgLT4gZmFpbCAoKVxuICAgICAgfCBTb21lIHIgLT4gKFxuICAgICAgICAgIGxldCBmID1cbiAgICAgICAgICAgIG1hdGNoIFJlZ2V4cC5tYXRjaGVkX2dyb3VwIHIgMSB3aXRoXG4gICAgICAgICAgICB8IE5vbmUgLT4gZmFpbCAoKVxuICAgICAgICAgICAgfCBTb21lIGYgLT4gKFxuICAgICAgICAgICAgICAgIHRyeSBmbG9hdF9vZl9zdHJpbmcgZlxuICAgICAgICAgICAgICAgIHdpdGggSW52YWxpZF9hcmd1bWVudCBzIC0+XG4gICAgICAgICAgICAgICAgICByYWlzZSAoSW52YWxpZF9hcmd1bWVudCAoXCJsZW5ndGggY29udmVyc2lvbiBlcnJvcjogXCIgXiBzKSkpXG4gICAgICAgICAgaW5cbiAgICAgICAgICBtYXRjaCBSZWdleHAubWF0Y2hlZF9ncm91cCByIDIgd2l0aFxuICAgICAgICAgIHwgTm9uZSAtPiBmYWlsICgpXG4gICAgICAgICAgfCBTb21lIFwiZW1cIiAtPiBFbSBmXG4gICAgICAgICAgfCBTb21lIFwiZXhcIiAtPiBFeCBmXG4gICAgICAgICAgfCBTb21lIFwicHhcIiAtPiBQeCBmXG4gICAgICAgICAgfCBTb21lIFwiZ2RcIiAtPiBHZCBmXG4gICAgICAgICAgfCBTb21lIFwicmVtXCIgLT4gUmVtIGZcbiAgICAgICAgICB8IFNvbWUgXCJ2d1wiIC0+IFZ3IGZcbiAgICAgICAgICB8IFNvbWUgXCJ2aFwiIC0+IFZoIGZcbiAgICAgICAgICB8IFNvbWUgXCJ2bVwiIC0+IFZtIGZcbiAgICAgICAgICB8IFNvbWUgXCJjaFwiIC0+IENoIGZcbiAgICAgICAgICB8IFNvbWUgXCJtbVwiIC0+IE1tIGZcbiAgICAgICAgICB8IFNvbWUgXCJjbVwiIC0+IENtIGZcbiAgICAgICAgICB8IFNvbWUgXCJpblwiIC0+IEluIGZcbiAgICAgICAgICB8IFNvbWUgXCJwdFwiIC0+IFB0IGZcbiAgICAgICAgICB8IFNvbWUgXCJwY1wiIC0+IFBjIGZcbiAgICAgICAgICB8IFNvbWUgXyAtPiBmYWlsICgpKVxuZW5kXG5cbm1vZHVsZSBBbmdsZSA9IHN0cnVjdFxuICB0eXBlIHQgPVxuICAgIHwgRGVnIG9mIGZsb2F0XG4gICAgfCBHcmFkIG9mIGZsb2F0XG4gICAgfCBSYWQgb2YgZmxvYXRcbiAgICB8IFR1cm5zIG9mIGZsb2F0XG5cbiAgbGV0IHN0cmluZ19vZl90ID0gZnVuY3Rpb25cbiAgICB8IERlZyBmIC0+IFByaW50Zi5zcHJpbnRmIFwiJWYlc1wiIGYgXCJkZWdcIlxuICAgIHwgR3JhZCBmIC0+IFByaW50Zi5zcHJpbnRmIFwiJWYlc1wiIGYgXCJncmFkXCJcbiAgICB8IFJhZCBmIC0+IFByaW50Zi5zcHJpbnRmIFwiJWYlc1wiIGYgXCJyYWRcIlxuICAgIHwgVHVybnMgZiAtPiBQcmludGYuc3ByaW50ZiBcIiVmJXNcIiBmIFwidHVybnNcIlxuXG4gIHR5cGUganNfdCA9IEpzLmpzX3N0cmluZyBKcy50XG5cbiAgbGV0IGpzIHQgPSBKcy5zdHJpbmcgKHN0cmluZ19vZl90IHQpXG5cbiAgbGV0IG1sIGogPVxuICAgIGxldCBzID0gSnMudG9fc3RyaW5nIGogaW5cbiAgICBsZXQgcmUgPSBSZWdleHAucmVnZXhwIFwiXihcXFxcZCooPzpcXFxcLlxcXFxkKikpKGRlZ3xncmFkfHJhZHx0dXJucykkXCIgaW5cbiAgICBsZXQgZmFpbCAoKSA9IHJhaXNlIChJbnZhbGlkX2FyZ3VtZW50IChzIF4gXCIgaXMgbm90IGEgdmFsaWQgbGVuZ3RoXCIpKSBpblxuICAgIG1hdGNoIFJlZ2V4cC5zdHJpbmdfbWF0Y2ggcmUgcyAwIHdpdGhcbiAgICB8IE5vbmUgLT4gZmFpbCAoKVxuICAgIHwgU29tZSByIC0+IChcbiAgICAgICAgbGV0IGYgPVxuICAgICAgICAgIG1hdGNoIFJlZ2V4cC5tYXRjaGVkX2dyb3VwIHIgMSB3aXRoXG4gICAgICAgICAgfCBOb25lIC0+IGZhaWwgKClcbiAgICAgICAgICB8IFNvbWUgZiAtPiAoXG4gICAgICAgICAgICAgIHRyeSBmbG9hdF9vZl9zdHJpbmcgZlxuICAgICAgICAgICAgICB3aXRoIEludmFsaWRfYXJndW1lbnQgcyAtPlxuICAgICAgICAgICAgICAgIHJhaXNlIChJbnZhbGlkX2FyZ3VtZW50IChcImxlbmd0aCBjb252ZXJzaW9uIGVycm9yOiBcIiBeIHMpKSlcbiAgICAgICAgaW5cbiAgICAgICAgbWF0Y2ggUmVnZXhwLm1hdGNoZWRfZ3JvdXAgciAyIHdpdGhcbiAgICAgICAgfCBTb21lIFwiZGVnXCIgLT4gRGVnIGZcbiAgICAgICAgfCBTb21lIFwiZ3JhZFwiIC0+IEdyYWQgZlxuICAgICAgICB8IFNvbWUgXCJyYWRcIiAtPiBSYWQgZlxuICAgICAgICB8IFNvbWUgXCJ0dXJuc1wiIC0+IFR1cm5zIGZcbiAgICAgICAgfCBTb21lIF8gfCBOb25lIC0+IGZhaWwgKCkpXG5lbmRcbiIsIigqIEpzX29mX29jYW1sIGxpYnJhcnlcbiAqIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTAgSsOpcsO0bWUgVm91aWxsb25cbiAqIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4gKiBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cbiAqKVxuXG4oKiogSmF2YXNjcmlwdCBldmVudHMuICopXG5cbm9wZW4hIEltcG9ydFxubW9kdWxlIFR5cCA9IERvbV9odG1sLkV2ZW50XG5cbnR5cGUgbGlzdGVuZXIgPSBEb21faHRtbC5ldmVudF9saXN0ZW5lcl9pZFxuXG5sZXQgbGlzdGVuID8oY2FwdHVyZSA9IGZhbHNlKSB0YXJnZXQgdHlwIGNiID1cbiAgRG9tX2h0bWwuYWRkRXZlbnRMaXN0ZW5lclxuICAgIHRhcmdldFxuICAgIHR5cFxuICAgIChEb21faHRtbC5mdWxsX2hhbmRsZXIgKGZ1biBuIGUgLT4gSnMuYm9vbCAoY2IgbiBlKSkpXG4gICAgKEpzLmJvb2wgY2FwdHVyZSlcblxubGV0IHN0b3BfbGlzdGVuID0gRG9tX2h0bWwucmVtb3ZlRXZlbnRMaXN0ZW5lclxuIiwiKCogSnNfb2Zfb2NhbWwgbGlicmFyeVxuICogaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbiAqIENvcHlyaWdodCAoQykgMjAxNCBIdWdvIEhldXphcmRcbiAqIENvcHlyaWdodCAoQykgMjAxNCBKw6lyw7RtZSBWb3VpbGxvblxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4gKiBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cbiAqKVxuXG5vcGVuIEpzXG5vcGVuISBJbXBvcnRcblxubGV0IHhtbG5zID0gSnMuc3RyaW5nIFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuXG4oKiB0cmFuc2xhdGUgc3BlYyBmcm9tIGh0dHA6Ly93d3cudzMub3JnL1RSL1NWRy9pZGwuaHRtbCAqKVxuKCogaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHL3N0cnVjdC5odG1sICopXG5cbnR5cGUgZXJyb3JfY29kZSA9XG4gIHwgV1JPTkdfVFlQRV9FUlJcbiAgfCBJTlZBTElEX1ZBTFVFX0VSUlxuICB8IE1BVFJJWF9OT1RfSU5WRVJUQUJMRVxuXG5jbGFzcyB0eXBlIHN2Z19lcnJvciA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgSnMuZXJyb3JcblxuICAgIG1ldGhvZCBjb2RlIDogZXJyb3JfY29kZSB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmV4Y2VwdGlvbiBTVkdFcnJvciBvZiBzdmdfZXJyb3JcblxudHlwZSBsZW5ndGhVbml0VHlwZSA9XG4gIHwgTEVOR1RIVFlQRV9VTktOT1dOXG4gIHwgTEVOR1RIVFlQRV9OVU1CRVJcbiAgfCBMRU5HVEhUWVBFX1BFUkNFTlRBR0VcbiAgfCBMRU5HVEhUWVBFX0VNU1xuICB8IExFTkdUSFRZUEVfRVhTXG4gIHwgTEVOR1RIVFlQRV9QWFxuICB8IExFTkdUSFRZUEVfQ01cbiAgfCBMRU5HVEhUWVBFX01NXG4gIHwgTEVOR1RIVFlQRV9JTlxuICB8IExFTkdUSFRZUEVfUFRcbiAgfCBMRU5HVEhUWVBFX1BDXG5cbnR5cGUgYW5nbGVVbml0VHlwZSA9XG4gIHwgQU5HTEVUWVBFX1VOS05PV05cbiAgfCBBTkdMRVRZUEVfVU5TUEVDSUZJRURcbiAgfCBBTkdMRVRZUEVfREVHXG4gIHwgQU5HTEVUWVBFX1JBRFxuICB8IEFOR0xFVFlQRV9HUkFEXG5cbnR5cGUgY29sb3JUeXBlID1cbiAgfCBDT0xPUlRZUEVfVU5LTk9XTlxuICB8IENPTE9SVFlQRV9SR0JDT0xPUlxuICB8IENPTE9SVFlQRV9SR0JDT0xPUl9JQ0NDT0xPUlxuICB8IENPTE9SVFlQRV9DVVJSRU5UQ09MT1JcblxudHlwZSBhbGlnbm1lbnRUeXBlID1cbiAgfCBQUkVTRVJWRUFTUEVDVFJBVElPX1VOS05PV05cbiAgfCBQUkVTRVJWRUFTUEVDVFJBVElPX05PTkVcbiAgfCBQUkVTRVJWRUFTUEVDVFJBVElPX1hNSU5ZTUlOXG4gIHwgUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlEWU1JTlxuICB8IFBSRVNFUlZFQVNQRUNUUkFUSU9fWE1BWFlNSU5cbiAgfCBQUkVTRVJWRUFTUEVDVFJBVElPX1hNSU5ZTUlEXG4gIHwgUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlEWU1JRFxuICB8IFBSRVNFUlZFQVNQRUNUUkFUSU9fWE1BWFlNSURcbiAgfCBQUkVTRVJWRUFTUEVDVFJBVElPX1hNSU5ZTUFYXG4gIHwgUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlEWU1BWFxuICB8IFBSRVNFUlZFQVNQRUNUUkFUSU9fWE1BWFlNQVhcblxudHlwZSBtZWV0T3JTbGljZVR5cGUgPVxuICB8IE1FRVRPUlNMSUNFX1VOS05PV05cbiAgfCBNRUVUT1JTTElDRV9NRUVUXG4gIHwgTUVFVE9SU0xJQ0VfU0xJQ0VcblxudHlwZSB0cmFuc2Zvcm1UeXBlID1cbiAgfCBUUkFOU0ZPUk1fVU5LTk9XTlxuICB8IFRSQU5TRk9STV9NQVRSSVhcbiAgfCBUUkFOU0ZPUk1fVFJBTlNMQVRFXG4gIHwgVFJBTlNGT1JNX1NDQUxFXG4gIHwgVFJBTlNGT1JNX1JPVEFURVxuICB8IFRSQU5TRk9STV9TS0VXWFxuICB8IFRSQU5TRk9STV9TS0VXWVxuXG50eXBlIHpvb21BbmRQYW5UeXBlID1cbiAgfCBaT09NQU5EUEFOX1VOS05PV05cbiAgfCBaT09NQU5EUEFOX0RJU0FCTEVcbiAgfCBaT09NQU5EUEFOX01BR05JRllcblxudHlwZSBsZW5ndGhBZGp1c3QgPVxuICB8IExFTkdUSEFESlVTVF9VTktOT1dOXG4gIHwgTEVOR1RIQURKVVNUX1NQQUNJTkdcbiAgfCBMRU5HVEhBREpVU1RfU1BBQ0lOR0FOREdMWVBIU1xuXG50eXBlIHVuaXRUeXBlID1cbiAgfCBVTklUX1RZUEVfVU5LTk9XTlxuICB8IFVOSVRfVFlQRV9VU0VSU1BBQ0VPTlVTRVxuICB8IFVOSVRfVFlQRV9PQkpFQ1RCT1VORElOR0JPWFxuXG4oKiBpbnRlcmZhY2UgU1ZHUmVuZGVyaW5nSW50ZW50ICopXG50eXBlIGludGVudFR5cGUgPVxuICB8IFJFTkRFUklOR19JTlRFTlRfVU5LTk9XTlxuICB8IFJFTkRFUklOR19JTlRFTlRfQVVUT1xuICB8IFJFTkRFUklOR19JTlRFTlRfUEVSQ0VQVFVBTFxuICB8IFJFTkRFUklOR19JTlRFTlRfUkVMQVRJVkVfQ09MT1JJTUVUUklDXG4gIHwgUkVOREVSSU5HX0lOVEVOVF9TQVRVUkFUSU9OXG4gIHwgUkVOREVSSU5HX0lOVEVOVF9BQlNPTFVURV9DT0xPUklNRVRSSUNcblxuKCogUGF0aCBTZWdtZW50IFR5cGVzICopXG50eXBlIHBhdGhTZWdtZW50VHlwZSA9XG4gIHwgUEFUSFNFR19VTktOT1dOXG4gIHwgUEFUSFNFR19DTE9TRVBBVEhcbiAgfCBQQVRIU0VHX01PVkVUT19BQlNcbiAgfCBQQVRIU0VHX01PVkVUT19SRUxcbiAgfCBQQVRIU0VHX0xJTkVUT19BQlNcbiAgfCBQQVRIU0VHX0xJTkVUT19SRUxcbiAgfCBQQVRIU0VHX0NVUlZFVE9fQ1VCSUNfQUJTXG4gIHwgUEFUSFNFR19DVVJWRVRPX0NVQklDX1JFTFxuICB8IFBBVEhTRUdfQ1VSVkVUT19RVUFEUkFUSUNfQUJTXG4gIHwgUEFUSFNFR19DVVJWRVRPX1FVQURSQVRJQ19SRUxcbiAgfCBQQVRIU0VHX0FSQ19BQlNcbiAgfCBQQVRIU0VHX0FSQ19SRUxcbiAgfCBQQVRIU0VHX0xJTkVUT19IT1JJWk9OVEFMX0FCU1xuICB8IFBBVEhTRUdfTElORVRPX0hPUklaT05UQUxfUkVMXG4gIHwgUEFUSFNFR19MSU5FVE9fVkVSVElDQUxfQUJTXG4gIHwgUEFUSFNFR19MSU5FVE9fVkVSVElDQUxfUkVMXG4gIHwgUEFUSFNFR19DVVJWRVRPX0NVQklDX1NNT09USF9BQlNcbiAgfCBQQVRIU0VHX0NVUlZFVE9fQ1VCSUNfU01PT1RIX1JFTFxuICB8IFBBVEhTRUdfQ1VSVkVUT19RVUFEUkFUSUNfU01PT1RIX0FCU1xuICB8IFBBVEhTRUdfQ1VSVkVUT19RVUFEUkFUSUNfU01PT1RIX1JFTFxuXG4oKiB0ZXh0UGF0aCBNZXRob2QgVHlwZXMgKilcbnR5cGUgdGV4dFBhdGhNZXRob2RUeXBlID1cbiAgfCBURVhUUEFUSF9NRVRIT0RUWVBFX1VOS05PV05cbiAgfCBURVhUUEFUSF9NRVRIT0RUWVBFX0FMSUdOXG4gIHwgVEVYVFBBVEhfTUVUSE9EVFlQRV9TVFJFVENIXG5cbigqIHRleHRQYXRoIFNwYWNpbmcgVHlwZXMgKilcbnR5cGUgdGV4dFBhdGhTcGFjaW5nVHlwZSA9XG4gIHwgVEVYVFBBVEhfU1BBQ0lOR1RZUEVfVU5LTk9XTlxuICB8IFRFWFRQQVRIX1NQQUNJTkdUWVBFX0FVVE9cbiAgfCBURVhUUEFUSF9TUEFDSU5HVFlQRV9FWEFDVFxuXG4oKiBTcHJlYWQgTWV0aG9kIFR5cGVzICopXG50eXBlIHNwcmVhZE1ldGhvZFR5cGUgPVxuICB8IFNQUkVBRE1FVEhPRF9VTktOT1dOXG4gIHwgU1BSRUFETUVUSE9EX1BBRFxuICB8IFNQUkVBRE1FVEhPRF9SRUZMRUNUXG4gIHwgU1BSRUFETUVUSE9EX1JFUEVBVFxuXG50eXBlIHN1c3BlbmRIYW5kbGVJRFxuXG4oKioqKilcblxuY2xhc3MgdHlwZSBbJ2FdIGFuaW1hdGVkID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGJhc2VWYWwgOiAnYSBwcm9wXG5cbiAgICBtZXRob2QgYW5pbVZhbCA6ICdhIHByb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgWydhXSBsaXN0ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIG51bWJlck9mSXRlbXMgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGNsZWFyIDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgaW5pdGlhbGl6ZSA6ICdhIC0+ICdhIG1ldGhcblxuICAgIG1ldGhvZCBnZXRJdGVtIDogaW50IC0+ICdhIG1ldGhcblxuICAgIG1ldGhvZCBpbnNlcnRJdGVtQmVmb3JlIDogJ2EgLT4gaW50IC0+ICdhIG1ldGhcblxuICAgIG1ldGhvZCByZXBsYWNlSXRlbSA6ICdhIC0+IGludCAtPiAnYSBtZXRoXG5cbiAgICBtZXRob2QgcmVtb3ZlSXRlbSA6IGludCAtPiAnYSBtZXRoXG5cbiAgICBtZXRob2QgYXBwZW5kSXRlbSA6ICdhIC0+ICdhIG1ldGhcbiAgZW5kXG5cbigqKioqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHRWxlbWVudCAqKVxuY2xhc3MgdHlwZSBlbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBEb20uZWxlbWVudFxuXG4gICAgbWV0aG9kIGlkIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHhtbGJhc2UgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgb3duZXJTVkdFbGVtZW50IDogc3ZnRWxlbWVudCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB2aWV3cG9ydEVsZW1lbnQgOiBlbGVtZW50IHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR0FuaW1hdGVkU3RyaW5nICopXG5hbmQgYW5pbWF0ZWRTdHJpbmcgPSBbanNfc3RyaW5nIHRdIGFuaW1hdGVkXG5cbigqIGludGVyZmFjZSBTVkdBbmltYXRlZEJvb2xlYW4gKilcbmFuZCBhbmltYXRlZEJvb2xlYW4gPSBbYm9vbCB0XSBhbmltYXRlZFxuXG4oKiBpbnRlcmZhY2UgU1ZHU3RyaW5nTGlzdCAqKVxuYW5kIHN0cmluZ0xpc3QgPSBbanNfc3RyaW5nIHRdIGxpc3RcblxuKCogaW50ZXJmYWNlIFNWR0FuaW1hdGVkRW51bWVyYXRpb24gKilcbmFuZCBhbmltYXRlZEVudW1lcmF0aW9uID0gW2ludCAoKnNob3J0KildIGFuaW1hdGVkXG5cbigqIGludGVyZmFjZSBTVkdBbmltYXRlZEludGVnZXIgKilcbmFuZCBhbmltYXRlZEludGVnZXIgPSBbaW50XSBhbmltYXRlZFxuXG4oKiBpbnRlcmZhY2UgU1ZHQW5pbWF0ZWROdW1iZXIgKilcbmFuZCBhbmltYXRlZE51bWJlciA9IFtmbG9hdF0gYW5pbWF0ZWRcblxuKCogaW50ZXJmYWNlIFNWR051bWJlckxpc3QgKilcbmFuZCBudW1iZXJMaXN0ID0gW251bWJlciB0XSBsaXN0XG5cbigqIGludGVyZmFjZSBTVkdBbmltYXRlZE51bWJlckxpc3QgKilcbmFuZCBhbmltYXRlZE51bWJlckxpc3QgPSBbbnVtYmVyTGlzdCB0XSBhbmltYXRlZFxuXG4oKiBpbnRlcmZhY2UgU1ZHTGVuZ3RoICopXG5hbmQgbGVuZ3RoID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHVuaXRUeXBlIDogbGVuZ3RoVW5pdFR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHZhbHVlIDogZmxvYXQgcHJvcFxuXG4gICAgbWV0aG9kIHZhbHVlSW5TcGVjaWZpZWRVbml0cyA6IGZsb2F0IHByb3BcblxuICAgIG1ldGhvZCB2YWx1ZUFzU3RyaW5nIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG5ld1ZhbHVlU3BlY2lmaWVkVW5pdHMgOiBsZW5ndGhVbml0VHlwZSAtPiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjb252ZXJ0VG9TcGVjaWZpZWRVbml0cyA6IGxlbmd0aFVuaXRUeXBlIC0+IHVuaXQgbWV0aFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR0FuaW1hdGVkTGVuZ3RoICopXG5hbmQgYW5pbWF0ZWRMZW5ndGggPSBbbGVuZ3RoIHRdIGFuaW1hdGVkXG5cbigqIGludGVyZmFjZSBTVkdMZW5ndGhMaXN0ICopXG5hbmQgbGVuZ3RoTGlzdCA9IFtsZW5ndGggdF0gbGlzdFxuXG4oKiBpbnRlcmZhY2UgU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0ICopXG5hbmQgYW5pbWF0ZWRMZW5ndGhMaXN0ID0gW2xlbmd0aExpc3QgdF0gYW5pbWF0ZWRcblxuKCogaW50ZXJmYWNlIFNWR0FuZ2xlICopXG5hbmQgYW5nbGUgPVxuICBvYmplY3RcbiAgICBtZXRob2QgdW5pdFR5cGUgOiBhbmdsZVVuaXRUeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB2YWx1ZSA6IGZsb2F0IHByb3BcblxuICAgIG1ldGhvZCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMgOiBmbG9hdCBwcm9wXG5cbiAgICBtZXRob2QgdmFsdWVBc1N0cmluZyA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBuZXdWYWx1ZVNwZWNpZmllZFVuaXRzIDogYW5nbGVVbml0VHlwZSAtPiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjb252ZXJ0VG9TcGVjaWZpZWRVbml0cyA6IGFuZ2xlVW5pdFR5cGUgLT4gdW5pdCBtZXRoXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHQW5pbWF0ZWRBbmdsZSAqKVxuYW5kIGFuaW1hdGVkQW5nbGUgPSBbYW5nbGUgdF0gYW5pbWF0ZWRcblxuKCogWFhYWFggTW92ZSBpdCAqKVxuYW5kIHJnYkNvbG9yID0gb2JqZWN0IGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHQ29sb3IgKilcbmFuZCBjb2xvciA9XG4gIG9iamVjdFxuICAgICgqIFhYWCBpbmhlcml0IGNzc1ZhbHVlICopXG4gICAgbWV0aG9kIGNvbG9yVHlwZSA6IGNvbG9yVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcmdiQ29sb3IgOiByZ2JDb2xvciB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBpY2NDb2xvciA6IGljY0NvbG9yIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHNldFJHQkNvbG9yIDoganNfc3RyaW5nIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0UkdCQ29sb3JJQ0NDb2xvciA6IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldENvbG9yIDogY29sb3JUeXBlIC0+IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IC0+IHVuaXQgbWV0aFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR0lDQ0NvbG9yICopXG5hbmQgaWNjQ29sb3IgPVxuICBvYmplY3RcbiAgICBtZXRob2QgY29sb3JQcm9maWxlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNvbG9ycyA6IG51bWJlckxpc3QgdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHUmVjdCAqKVxuYW5kIHJlY3QgPVxuICBvYmplY3RcbiAgICBtZXRob2QgeCA6IGZsb2F0IHByb3BcblxuICAgIG1ldGhvZCB5IDogZmxvYXQgcHJvcFxuXG4gICAgbWV0aG9kIHdpZHRoIDogZmxvYXQgcHJvcFxuXG4gICAgbWV0aG9kIGhlaWdodCA6IGZsb2F0IHByb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdBbmltYXRlZFJlY3QgKilcbmFuZCBhbmltYXRlZFJlY3QgPSBbcmVjdCB0XSBhbmltYXRlZFxuXG4oKiBpbnRlcmZhY2UgU1ZHU3R5bGFibGUgKilcbmFuZCBzdHlsYWJsZSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBjbGFzc05hbWUgOiBhbmltYXRlZFN0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzdHlsZSA6IERvbV9odG1sLmNzc1N0eWxlRGVjbGFyYXRpb24gdCByZWFkb25seV9wcm9wXG4gICAgKCogICBDU1NWYWx1ZSBnZXRQcmVzZW50YXRpb25BdHRyaWJ1dGUoaW4gRE9NU3RyaW5nIG5hbWUpOyAqKVxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR0xvY2F0YWJsZSAqKVxuYW5kIGxvY2F0YWJsZSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBuZWFyZXN0Vmlld3BvcnRFbGVtZW50IDogZWxlbWVudCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBmYXJ0aGVzdFZpZXdwb3J0RWxlbWVudCA6IGVsZW1lbnQgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZ2V0QkJveCA6IHJlY3QgdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0Q1RNIDogbWF0cml4IHQgbWV0aFxuXG4gICAgbWV0aG9kIGdldFNjcmVlbkNUTSA6IG1hdHJpeCB0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRUcmFuc2Zvcm1Ub0VsZW1lbnQgOiBlbGVtZW50IHQgLT4gbWF0cml4IHQgbWV0aFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1RyYW5zZm9ybWFibGUgKilcbmFuZCB0cmFuc2Zvcm1hYmxlID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBsb2NhdGFibGVcblxuICAgIG1ldGhvZCB0cmFuc2Zvcm0gOiBhbmltYXRlZFRyYW5zZm9ybUxpc3QgdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHVGVzdHMgKilcbmFuZCB0ZXN0cyA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCByZXF1aXJlZEZlYXR1cmVzIDogc3RyaW5nTGlzdCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCByZXF1aXJlZEV4dGVuc2lvbnMgOiBzdHJpbmdMaXN0IHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHN5c3RlbUxhbmd1YWdlIDogc3RyaW5nTGlzdCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBoYXNFeHRlbnNpb24gOiBqc19zdHJpbmcgdCAtPiBib29sIHQgbWV0aFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR0xhbmdTcGFjZSAqKVxuYW5kIGxhbmdTcGFjZSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCB4bWxsYW5nIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHhtbHNwYWNlIDoganNfc3RyaW5nIHQgcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQgKilcbmFuZCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQgOiBhbmltYXRlZEJvb2xlYW4gdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHRml0VG9WaWV3Qm94ICopXG5hbmQgZml0VG9WaWV3Qm94ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHZpZXdCb3ggOiBhbmltYXRlZFJlY3QgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcHJlc2VydmVBc3BlY3RSYXRpbyA6IGFuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbyB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdab29tQW5kUGFuICopXG5hbmQgem9vbUFuZFBhbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCB6b29tQW5kUGFuIDogem9vbUFuZFBhblR5cGUgcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1ZpZXdTcGVjICopXG5hbmQgdmlld1NwZWMgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IHpvb21BbmRQYW5cblxuICAgIGluaGVyaXQgZml0VG9WaWV3Qm94XG5cbiAgICBtZXRob2QgdHJhbnNmb3JtIDogdHJhbnNmb3JtTGlzdCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB2aWV3VGFyZ2V0IDogZWxlbWVudCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB2aWV3Qm94U3RyaW5nIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHByZXNlcnZlQXNwZWN0UmF0aW9TdHJpbmcgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgdHJhbnNmb3JtU3RyaW5nIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHZpZXdUYXJnZXRTdHJpbmcgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHVVJJUmVmZXJlbmNlICopXG5hbmQgdXJpUmVmZXJlbmNlID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGhyZWYgOiBhbmltYXRlZFN0cmluZyB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdDU1NSdWxlIDogQ1NTUnVsZSAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDT0xPUl9QUk9GSUxFX1JVTEUgPSA3OyAqKVxuKCogfTsgKilcblxuKCogaW50ZXJmYWNlIFNWR0RvY3VtZW50ICopXG5hbmQgZG9jdW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IFtlbGVtZW50XSBEb20uZG9jdW1lbnRcblxuICAgICgqWFhYIGluaGVyaXQgZG9jdW1lbnRFdmVudCAqKVxuICAgIG1ldGhvZCB0aXRsZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCByZWZlcnJlciA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBkb21haW4gOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgX1VSTCA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCByb290RWxlbWVudCA6IHN2Z0VsZW1lbnQgdCBvcHQgcmVhZG9ubHlfcHJvcFxuICAgICgqIHJvb3RFbGVtZW50IHdpbGwgYmUgbnVsbCBvciB1bmRlZmluZWQgaW4gYW4gaHRtbCBjb250ZXh0ICopXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHU1ZHRWxlbWVudCAqKVxuYW5kIHN2Z0VsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgdGVzdHNcblxuICAgIGluaGVyaXQgbGFuZ1NwYWNlXG5cbiAgICBpbmhlcml0IGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRcblxuICAgIGluaGVyaXQgc3R5bGFibGVcblxuICAgIGluaGVyaXQgbG9jYXRhYmxlXG5cbiAgICBpbmhlcml0IGZpdFRvVmlld0JveFxuXG4gICAgaW5oZXJpdCB6b29tQW5kUGFuXG5cbiAgICAoKlhYWCBpbmhlcml0IGRvY3VtZW50ZXZlbnQsIHZpZXdjc3MsIGRvY3VtZW50Y3NzICopXG4gICAgbWV0aG9kIHggOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB5IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgd2lkdGggOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBoZWlnaHQgOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjb250ZW50U2NyaXB0VHlwZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjb250ZW50U3R5bGVUeXBlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHZpZXdwb3J0IDogcmVjdCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBwaXhlbFVuaXRUb01pbGxpbWV0ZXJYIDogZmxvYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHBpeGVsVW5pdFRvTWlsbGltZXRlclkgOiBmbG9hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc2NyZWVuUGl4ZWxVbml0VG9NaWxsaW1ldGVyWCA6IGZsb2F0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzY3JlZW5QaXhlbFVuaXRUb01pbGxpbWV0ZXJZIDogZmxvYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHVzZUN1cnJlbnRWaWV3IDogYm9vbCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjdXJyZW50VmlldyA6IHZpZXdTcGVjIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGN1cnJlbnRTY2FsZSA6IGZsb2F0IHByb3BcblxuICAgIG1ldGhvZCBjdXJyZW50VHJhbnNsYXRlIDogcG9pbnQgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc3VzcGVuZFJlZHJhdyA6IGludCAtPiBzdXNwZW5kSGFuZGxlSUQgbWV0aFxuXG4gICAgbWV0aG9kIHVuc3VzcGVuZFJlZHJhdyA6IHN1c3BlbmRIYW5kbGVJRCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB1bnN1c3BlbmRSZWRyYXdBbGwgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBmb3JjZVJlZHJhdyA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHBhdXNlQW5pbWF0aW9ucyA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHVucGF1c2VBbmltYXRpb25zIDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgYW5pbWF0aW9uc1BhdXNlZCA6IGJvb2wgdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0Q3VycmVudFRpbWUgOiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0Q3VycmVudFRpbWUgOiBpbnQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0SW50ZXJzZWN0aW9uTGlzdCA6IHJlY3QgdCAtPiBlbGVtZW50IHQgLT4gZWxlbWVudCBEb20ubm9kZUxpc3QgdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0RW5jbG9zdXJlTGlzdCA6IHJlY3QgdCAtPiBlbGVtZW50IHQgLT4gZWxlbWVudCBEb20ubm9kZUxpc3QgdCBtZXRoXG5cbiAgICBtZXRob2QgY2hlY2tJbnRlcnNlY3Rpb24gOiBlbGVtZW50IHQgLT4gcmVjdCB0IC0+IGJvb2wgdFxuXG4gICAgbWV0aG9kIGNoZWNrRW5jbG9zdXJlIDogZWxlbWVudCB0IC0+IHJlY3QgdCAtPiBib29sIHRcblxuICAgIG1ldGhvZCBkZXNlbGVjdEFsbCA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZVNWR051bWJlciA6IG51bWJlciB0IG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVTVkdMZW5ndGggOiBsZW5ndGggdCBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlU1ZHQW5nbGUgOiBhbmdsZSB0IG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVTVkdQb2ludCA6IHBvaW50IHQgbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZVNWR01hdHJpeCA6IG1hdHJpeCB0IG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVTVkdSZWN0IDogcmVjdCB0IG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVTVkdUcmFuc2Zvcm0gOiB0cmFuc2Zvcm0gdCBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeCA6IG1hdHJpeCB0IC0+IHRyYW5zZm9ybSB0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRFbGVtZW50QnlJZCA6IGpzX3N0cmluZyB0IC0+IERvbS5lbGVtZW50IHQgbWV0aFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR0dFbGVtZW50ICopXG5hbmQgZ0VsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgdGVzdHNcblxuICAgIGluaGVyaXQgbGFuZ1NwYWNlXG5cbiAgICBpbmhlcml0IGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRcblxuICAgIGluaGVyaXQgc3R5bGFibGVcblxuICAgIGluaGVyaXQgdHJhbnNmb3JtYWJsZVxuXG4gICAgaW5oZXJpdCBEb21faHRtbC5ldmVudFRhcmdldFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR0RlZnNFbGVtZW50ICopXG5hbmQgZGVmc0VsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgdGVzdHNcblxuICAgIGluaGVyaXQgbGFuZ1NwYWNlXG5cbiAgICBpbmhlcml0IGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRcblxuICAgIGluaGVyaXQgc3R5bGFibGVcblxuICAgIGluaGVyaXQgdHJhbnNmb3JtYWJsZVxuICAgICgqIFhYWFhYWFggPyBpbmhlcml0IERvbV9odG1sLmV2ZW50VGFyZ2V0ICopXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHRGVzY0VsZW1lbnQgKilcbmFuZCBkZXNjRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgaW5oZXJpdCBsYW5nU3BhY2VcblxuICAgIGluaGVyaXQgc3R5bGFibGVcbiAgICAoKiBYWFhYWFhYID8gaW5oZXJpdCBEb21faHRtbC5ldmVudFRhcmdldCAqKVxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1RpdGxlRWxlbWVudCAqKVxuYW5kIHRpdGxlRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgaW5oZXJpdCBsYW5nU3BhY2VcblxuICAgIGluaGVyaXQgc3R5bGFibGVcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdTeW1ib2xFbGVtZW50ICopXG5hbmQgc3ltYm9sRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgaW5oZXJpdCBsYW5nU3BhY2VcblxuICAgIGluaGVyaXQgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZFxuXG4gICAgaW5oZXJpdCBzdHlsYWJsZVxuXG4gICAgaW5oZXJpdCBmaXRUb1ZpZXdCb3hcblxuICAgIGluaGVyaXQgRG9tX2h0bWwuZXZlbnRUYXJnZXRcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdVc2VFbGVtZW50ICopXG5hbmQgdXNlRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgaW5oZXJpdCB1cmlSZWZlcmVuY2VcblxuICAgIGluaGVyaXQgdGVzdHNcblxuICAgIGluaGVyaXQgbGFuZ1NwYWNlXG5cbiAgICBpbmhlcml0IGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRcblxuICAgIGluaGVyaXQgc3R5bGFibGVcblxuICAgIGluaGVyaXQgdHJhbnNmb3JtYWJsZVxuXG4gICAgbWV0aG9kIHggOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB5IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgd2lkdGggOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBoZWlnaHQgOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBpbnN0YW5jZVJvb3QgOiBlbGVtZW50SW5zdGFuY2UgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYW5pbWF0ZWRJbnN0YW5jZVJvb3QgOiBlbGVtZW50SW5zdGFuY2UgdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5hbmQgZWxlbWVudEluc3RhbmNlID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBEb21faHRtbC5ldmVudFRhcmdldFxuXG4gICAgbWV0aG9kIGNvcnJlc3BvbmRpbmdFbGVtZW50IDogZWxlbWVudCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjb3JyZXNwb25kaW5nVXNlRWxlbWVudCA6IHVzZUVsZW1lbnQgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcGFyZW50Tm9kZSA6IGVsZW1lbnRJbnN0YW5jZSB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjaGlsZE5vZGVzIDogZWxlbWVudEluc3RhbmNlTGlzdCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBmaXJzdENoaWxkIDogZWxlbWVudEluc3RhbmNlIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGxhc3RDaGlsZCA6IGVsZW1lbnRJbnN0YW5jZSB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBwcmV2aW91c1NpYmxpbmcgOiBlbGVtZW50SW5zdGFuY2UgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgbmV4dFNpYmxpbmcgOiBlbGVtZW50SW5zdGFuY2UgdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHRWxlbWVudEluc3RhbmNlTGlzdCAqKVxuYW5kIGVsZW1lbnRJbnN0YW5jZUxpc3QgPVxuICBvYmplY3RcbiAgICBtZXRob2QgbGVuZ3RoIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBpdGVtIDogaW50IC0+IGVsZW1lbnRJbnN0YW5jZSB0XG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHSW1hZ2VFbGVtZW50ICopXG5hbmQgaW1hZ2VFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBpbmhlcml0IHVyaVJlZmVyZW5jZVxuXG4gICAgaW5oZXJpdCB0ZXN0c1xuXG4gICAgaW5oZXJpdCBsYW5nU3BhY2VcblxuICAgIGluaGVyaXQgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZFxuXG4gICAgaW5oZXJpdCBzdHlsYWJsZVxuXG4gICAgaW5oZXJpdCB0cmFuc2Zvcm1hYmxlXG5cbiAgICBtZXRob2QgeCA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHkgOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB3aWR0aCA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGhlaWdodCA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuICAgICgqIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8gcHJlc2VydmVBc3BlY3RSYXRpbyAqKVxuICBlbmRcblxuYW5kIHN3aXRjaEVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgdGVzdHNcblxuICAgIGluaGVyaXQgbGFuZ1NwYWNlXG5cbiAgICBpbmhlcml0IGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRcblxuICAgIGluaGVyaXQgc3R5bGFibGVcblxuICAgIGluaGVyaXQgdHJhbnNmb3JtYWJsZVxuICBlbmRcblxuKCogWFhYIGRlcHJlY2F0ZWQgPT4gaW50ZXJmYWNlIEdldFNWR0RvY3VtZW50ID0+IFNWR0RvY3VtZW50IGdldFNWR0RvY3VtZW50KCkgKilcblxuKCogaW50ZXJmYWNlIFNWR1N0eWxlRWxlbWVudCAqKVxuYW5kIHN0eWxlRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgaW5oZXJpdCBsYW5nU3BhY2VcblxuICAgIG1ldGhvZCB0eXBlXyA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBtZWRpYSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB0aXRsZSA6IGpzX3N0cmluZyB0IHByb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdQb2ludCAqKVxuYW5kIHBvaW50ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHggOiBmbG9hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgeSA6IGZsb2F0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBtYXRyaXhUcmFuc2Zvcm0gOiBtYXRyaXggdCAtPiBwb2ludCB0IG1ldGhcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdQb2ludExpc3QgKilcbmFuZCBwb2ludExpc3QgPSBbcG9pbnQgdF0gbGlzdFxuXG4oKiBpbnRlcmZhY2UgU1ZHTWF0cml4ICopXG5hbmQgbWF0cml4ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGEgOiBmbG9hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYiA6IGZsb2F0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjIDogZmxvYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGQgOiBmbG9hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZSA6IGZsb2F0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBmIDogZmxvYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG11bHRpcGx5IDogbWF0cml4IHQgLT4gbWF0cml4IHQgbWV0aFxuXG4gICAgbWV0aG9kIGludmVyc2UgOiBtYXRyaXggdCBtZXRoXG5cbiAgICBtZXRob2QgdHJhbnNsYXRlIDogZmxvYXQgLT4gZmxvYXQgLT4gbWF0cml4IHQgbWV0aFxuXG4gICAgbWV0aG9kIHNjYWxlIDogZmxvYXQgLT4gbWF0cml4IHQgbWV0aFxuXG4gICAgbWV0aG9kIHNjYWxlTm9uVW5pZm9ybSA6IGZsb2F0IC0+IGZsb2F0IC0+IG1hdHJpeCB0IG1ldGhcblxuICAgIG1ldGhvZCByb3RhdGUgOiBmbG9hdCAtPiBtYXRyaXggdCBtZXRoXG5cbiAgICBtZXRob2Qgcm90YXRlRnJvbVZlY3RvciA6IGZsb2F0IC0+IGZsb2F0IC0+IG1hdHJpeCB0IG1ldGhcblxuICAgIG1ldGhvZCBmbGlwWCA6IG1hdHJpeCB0IG1ldGhcblxuICAgIG1ldGhvZCBmbGlwWSA6IG1hdHJpeCB0IG1ldGhcblxuICAgIG1ldGhvZCBza2V3WCA6IGZsb2F0IC0+IG1hdHJpeCB0IG1ldGhcblxuICAgIG1ldGhvZCBza2V3WSA6IGZsb2F0IC0+IG1hdHJpeCB0IG1ldGhcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdUcmFuc2Zvcm0gKilcbmFuZCB0cmFuc2Zvcm0gPVxuICBvYmplY3RcbiAgICBtZXRob2QgX3R5cGUgOiB0cmFuc2Zvcm1UeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBtYXRyaXggOiBtYXRyaXggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYW5nbGUgOiBmbG9hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc2V0TWF0cml4IDogbWF0cml4IHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0VHJhbnNsYXRlIDogZmxvYXQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0U2NhbGUgOiBmbG9hdCAtPiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRSb3RhdGUgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRTa2V3WCA6IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldFNrZXdZIDogZmxvYXQgLT4gdW5pdCBtZXRoXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHVHJhbnNmb3JtTGlzdCAqKVxuYW5kIHRyYW5zZm9ybUxpc3QgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IFt0cmFuc2Zvcm0gdF0gbGlzdFxuXG4gICAgbWV0aG9kIGNyZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXggOiBtYXRyaXggLT4gdHJhbnNmb3JtIHQgbWV0aFxuXG4gICAgbWV0aG9kIGNvbnNvbGlkYXRlIDogdHJhbnNmb3JtIHQgbWV0aFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdCAqKVxuYW5kIGFuaW1hdGVkVHJhbnNmb3JtTGlzdCA9IFt0cmFuc2Zvcm1MaXN0IHRdIGFuaW1hdGVkXG5cbigqIGludGVyZmFjZSBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvICopXG5hbmQgcHJlc2VydmVBc3BlY3RSYXRpbyA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBhbGlnbiA6IGFsaWdubWVudFR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG1lZXRPclNsaWNlIDogbWVldE9yU2xpY2VUeXBlIHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8gKilcbmFuZCBhbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8gPSBbcHJlc2VydmVBc3BlY3RSYXRpbyB0XSBhbmltYXRlZFxuXG4oKiBpbnRlcmZhY2UgU1ZHUGF0aFNlZyAqKVxuYW5kIHBhdGhTZWcgPVxuICBvYmplY3RcbiAgICBtZXRob2QgcGF0aFNlZ1R5cGUgOiBwYXRoU2VnbWVudFR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHBhdGhTZWdUeXBlQXNMZXR0ZXIgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHUGF0aFNlZ0Nsb3NlUGF0aCAqKVxuYW5kIHBhdGhTZWdDbG9zZVBhdGggPSBwYXRoU2VnXG5cbigqIGludGVyZmFjZSBTVkdQYXRoU2VnTW92ZXRvQWJzICopXG4oKiBpbnRlcmZhY2UgU1ZHUGF0aFNlZ01vdmV0b1JlbCAqKVxuYW5kIHBhdGhTZWdNb3ZldG8gPVxuICBvYmplY3RcbiAgICBpbmhlcml0IHBhdGhTZWdcblxuICAgIG1ldGhvZCB4IDogZmxvYXQgcHJvcFxuXG4gICAgbWV0aG9kIHkgOiBmbG9hdCBwcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHUGF0aFNlZ0xpbmV0b0FicyAqKVxuKCogaW50ZXJmYWNlIFNWR1BhdGhTZWdMaW5ldG9SZWwgKilcbmFuZCBwYXRoU2VnTGluZXRvID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBwYXRoU2VnXG5cbiAgICBtZXRob2QgeCA6IGZsb2F0IHByb3BcblxuICAgIG1ldGhvZCB5IDogZmxvYXQgcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMgKilcbigqIGludGVyZmFjZSBTVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsICopXG5hbmQgcGF0aFNlZ0N1cnZldG9DdWJpYyA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgcGF0aFNlZ1xuXG4gICAgbWV0aG9kIHggOiBmbG9hdCBwcm9wXG5cbiAgICBtZXRob2QgeSA6IGZsb2F0IHByb3BcblxuICAgIG1ldGhvZCB4MSA6IGZsb2F0IHByb3BcblxuICAgIG1ldGhvZCB5MSA6IGZsb2F0IHByb3BcblxuICAgIG1ldGhvZCB4MiA6IGZsb2F0IHByb3BcblxuICAgIG1ldGhvZCB5MiA6IGZsb2F0IHByb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0FicyAqKVxuKCogaW50ZXJmYWNlIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsICopXG5hbmQgcGF0aFNlZ0N1cnZldG9RdWFkcmF0aWMgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IHBhdGhTZWdcblxuICAgIG1ldGhvZCB4IDogZmxvYXQgcHJvcFxuXG4gICAgbWV0aG9kIHkgOiBmbG9hdCBwcm9wXG5cbiAgICBtZXRob2QgeDEgOiBmbG9hdCBwcm9wXG5cbiAgICBtZXRob2QgeTEgOiBmbG9hdCBwcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHUGF0aFNlZ0FyY0FicyAqKVxuKCogaW50ZXJmYWNlIFNWR1BhdGhTZWdBcmNSZWwqKVxuYW5kIHBhdGhTZWdBcmMgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IHBhdGhTZWdcblxuICAgIG1ldGhvZCB5IDogZmxvYXQgcHJvcFxuXG4gICAgbWV0aG9kIHIxIDogZmxvYXQgcHJvcFxuXG4gICAgbWV0aG9kIHIyIDogZmxvYXQgcHJvcFxuXG4gICAgbWV0aG9kIGFuZ2xlIDogZmxvYXQgcHJvcFxuXG4gICAgbWV0aG9kIGxhcmdlQXJjRmxhZyA6IGJvb2wgdCBwcm9wXG5cbiAgICBtZXRob2Qgc3dlZXBGbGFnIDogYm9vbCB0IHByb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicyAqKVxuKCogaW50ZXJmYWNlIFNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsUmVsICopXG5hbmQgcGF0aFNlZ0xpbmV0b0hvcml6b250YWwgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IHBhdGhTZWdcblxuICAgIG1ldGhvZCB4IDogZmxvYXRcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMgKilcbigqIGludGVyZmFjZSBTVkdQYXRoU2VnTGluZXRvVmVydGljYWxSZWwgKilcbmFuZCBwYXRoU2VnTGluZXRvVmVydGljYWwgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IHBhdGhTZWdcblxuICAgIG1ldGhvZCB5IDogZmxvYXRcbiAgZW5kXG5cbmFuZCBwYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBwYXRoU2VnXG5cbiAgICBtZXRob2QgeCA6IGZsb2F0XG5cbiAgICBtZXRob2QgeSA6IGZsb2F0XG5cbiAgICBtZXRob2QgeDIgOiBmbG9hdFxuXG4gICAgbWV0aG9kIHkyIDogZmxvYXRcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFicyAqKVxuKCogaW50ZXJmYWNlIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsICAqKVxuYW5kIHBhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBwYXRoU2VnXG5cbiAgICBtZXRob2QgeCA6IGZsb2F0XG5cbiAgICBtZXRob2QgeSA6IGZsb2F0XG4gIGVuZFxuXG5hbmQgcGF0aFNlZ0xpc3QgPSBbcGF0aFNlZyB0XSBsaXN0XG5cbigqIGludGVyZmFjZSBTVkdBbmltYXRlZFBhdGhEYXRhICopXG5hbmQgYW5pbWF0ZWRQYXRoRGF0YSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBwYXRoU2VnTGlzdCA6IHBhdGhTZWdMaXN0IHQgcHJvcFxuXG4gICAgbWV0aG9kIG5vcm1hbGl6ZWRQYXRoU2VnTGlzdCA6IHBhdGhTZWdMaXN0IHQgcHJvcFxuXG4gICAgbWV0aG9kIGFuaW1hdGVkUGF0aFNlZ0xpc3QgOiBwYXRoU2VnTGlzdCB0IHByb3BcblxuICAgIG1ldGhvZCBhbmltYXRlZE5vcm1hbGl6ZWRQYXRoU2VnTGlzdCA6IHBhdGhTZWdMaXN0IHQgcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1BhdGhFbGVtZW50ICopXG5hbmQgcGF0aEVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgdGVzdHNcblxuICAgIGluaGVyaXQgbGFuZ1NwYWNlXG5cbiAgICBpbmhlcml0IGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRcblxuICAgIGluaGVyaXQgc3R5bGFibGVcblxuICAgIGluaGVyaXQgdHJhbnNmb3JtYWJsZVxuXG4gICAgaW5oZXJpdCBhbmltYXRlZFBhdGhEYXRhXG5cbiAgICBtZXRob2QgcGF0aExlbmd0aCA6IGFuaW1hdGVkTnVtYmVyIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGdldFRvdGFsTGVuZ3RoIDogZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIGdldFBvaW50QXRMZW5ndGggOiBmbG9hdCAtPiBwb2ludCB0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRQYXRoU2VnQXRMZW5ndGggOiBmbG9hdCAtPiBpbnRcblxuICAgIG1ldGhvZCBjcmVhdGVTVkdQYXRoU2VnQ2xvc2VQYXRoIDogcGF0aFNlZ0Nsb3NlUGF0aCBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlU1ZHUGF0aFNlZ01vdmV0b0FicyA6IGZsb2F0IC0+IGZsb2F0IC0+IHBhdGhTZWdNb3ZldG8gbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZVNWR1BhdGhTZWdNb3ZldG9SZWwgOiBmbG9hdCAtPiBmbG9hdCAtPiBwYXRoU2VnTW92ZXRvIG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVTVkdQYXRoU2VnTGluZXRvQWJzIDogZmxvYXQgLT4gZmxvYXQgLT4gcGF0aFNlZ0xpbmV0byBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b1JlbCA6IGZsb2F0IC0+IGZsb2F0IC0+IHBhdGhTZWdMaW5ldG8gbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMgOlxuICAgICAgZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gcGF0aFNlZ0N1cnZldG9DdWJpYyBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1JlbCA6XG4gICAgICBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBwYXRoU2VnQ3VydmV0b0N1YmljIG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0FicyA6XG4gICAgICBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBwYXRoU2VnQ3VydmV0b1F1YWRyYXRpYyBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwgOlxuICAgICAgZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gcGF0aFNlZ0N1cnZldG9RdWFkcmF0aWMgbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZVNWR1BhdGhTZWdBcmNBYnMgOlxuICAgICAgZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gYm9vbCB0IC0+IGJvb2wgdCAtPiBwYXRoU2VnQXJjIG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVTVkdQYXRoU2VnQXJjUmVsIDpcbiAgICAgIGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGJvb2wgdCAtPiBib29sIHQgLT4gcGF0aFNlZ0FyYyBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxBYnMgOiBmbG9hdCAtPiBwYXRoU2VnTGluZXRvSG9yaXpvbnRhbCBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWwgOiBmbG9hdCAtPiBwYXRoU2VnTGluZXRvSG9yaXpvbnRhbCBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzIDogZmxvYXQgLT4gcGF0aFNlZ0xpbmV0b1ZlcnRpY2FsIG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVTVkdQYXRoU2VnTGluZXRvVmVydGljYWxSZWwgOiBmbG9hdCAtPiBwYXRoU2VnTGluZXRvVmVydGljYWwgbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMgOlxuICAgICAgZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gcGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aCBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbCA6XG4gICAgICBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBwYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoIG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFicyA6XG4gICAgICBmbG9hdCAtPiBmbG9hdCAtPiBwYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aCBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhSZWwgOlxuICAgICAgZmxvYXQgLT4gZmxvYXQgLT4gcGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGggbWV0aFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1JlY3RFbGVtZW50ICopXG5hbmQgcmVjdEVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgdGVzdHNcblxuICAgIGluaGVyaXQgbGFuZ1NwYWNlXG5cbiAgICBpbmhlcml0IGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRcblxuICAgIGluaGVyaXQgc3R5bGFibGVcblxuICAgIGluaGVyaXQgdHJhbnNmb3JtYWJsZVxuXG4gICAgbWV0aG9kIHggOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB5IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgd2lkdGggOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBoZWlnaHQgOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCByeCA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHJ5IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHQ2lyY2xlRWxlbWVudCAqKVxuYW5kIGNpcmNsZUVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgdGVzdHNcblxuICAgIGluaGVyaXQgbGFuZ1NwYWNlXG5cbiAgICBpbmhlcml0IGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRcblxuICAgIGluaGVyaXQgc3R5bGFibGVcblxuICAgIGluaGVyaXQgdHJhbnNmb3JtYWJsZVxuXG4gICAgbWV0aG9kIGN4IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY3kgOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCByIDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHRWxsaXBzZUVsZW1lbnQgKilcbmFuZCBlbGxpcHNlRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgaW5oZXJpdCB0ZXN0c1xuXG4gICAgaW5oZXJpdCBsYW5nU3BhY2VcblxuICAgIGluaGVyaXQgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZFxuXG4gICAgaW5oZXJpdCBzdHlsYWJsZVxuXG4gICAgaW5oZXJpdCB0cmFuc2Zvcm1hYmxlXG5cbiAgICBtZXRob2QgY3ggOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjeSA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHJ4IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcnkgOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdMaW5lRWxlbWVudCAqKVxuY2xhc3MgdHlwZSBsaW5lRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgaW5oZXJpdCB0ZXN0c1xuXG4gICAgaW5oZXJpdCBsYW5nU3BhY2VcblxuICAgIGluaGVyaXQgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZFxuXG4gICAgaW5oZXJpdCBzdHlsYWJsZVxuXG4gICAgaW5oZXJpdCB0cmFuc2Zvcm1hYmxlXG5cbiAgICBpbmhlcml0IERvbV9odG1sLmV2ZW50VGFyZ2V0XG5cbiAgICBtZXRob2QgeDEgOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB5MSA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHgyIDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgeTIgOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdBbmltYXRlZFBvaW50cyAqKVxuYW5kIGFuaW1hdGVkUG9pbnRzID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHBvaW50cyA6IHBvaW50TGlzdCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBhbmltYXRlZHBvaW50cyA6IHBvaW50TGlzdCB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdQb2x5bGluZUVsZW1lbnQgKilcbmFuZCBwb2x5TGluZUVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgdGVzdHNcblxuICAgIGluaGVyaXQgbGFuZ1NwYWNlXG5cbiAgICBpbmhlcml0IGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRcblxuICAgIGluaGVyaXQgc3R5bGFibGVcblxuICAgIGluaGVyaXQgdHJhbnNmb3JtYWJsZVxuXG4gICAgaW5oZXJpdCBhbmltYXRlZFBvaW50c1xuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1BvbHlnb25FbGVtZW50ICopXG5hbmQgcG9seWdvbkVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgdGVzdHNcblxuICAgIGluaGVyaXQgbGFuZ1NwYWNlXG5cbiAgICBpbmhlcml0IGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRcblxuICAgIGluaGVyaXQgc3R5bGFibGVcblxuICAgIGluaGVyaXQgdHJhbnNmb3JtYWJsZVxuXG4gICAgaW5oZXJpdCBhbmltYXRlZFBvaW50c1xuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1RleHRDb250ZW50RWxlbWVudCAqKVxuYW5kIHRleHRDb250ZW50RWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgaW5oZXJpdCB0ZXN0c1xuXG4gICAgaW5oZXJpdCBsYW5nU3BhY2VcblxuICAgIGluaGVyaXQgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZFxuXG4gICAgaW5oZXJpdCBzdHlsYWJsZVxuXG4gICAgaW5oZXJpdCBEb21faHRtbC5ldmVudFRhcmdldFxuXG4gICAgbWV0aG9kIHRleHRMZW5ndGggOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBsZW5ndGhBZGp1c3QgOiBsZW5ndGhBZGp1c3QgYW5pbWF0ZWQgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZ2V0TnVtYmVyT2ZDaGFycyA6IGludCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0Q29tcHV0ZWRUZXh0TGVuZ3RoIDogZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIGdldFN1YlN0cmluZ0xlbmd0aCA6IGludCAtPiBpbnQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIGdldFN0YXJ0UG9zaXRpb25PZkNoYXIgOiBpbnQgLT4gcG9pbnQgdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0RW5kUG9zaXRpb25PZkNoYXIgOiBpbnQgLT4gcG9pbnQgdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0RXh0ZW50T2ZDaGFyIDogaW50IC0+IHJlY3QgdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0Um90YXRpb25PZkNoYXIgOiBpbnQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIGdldENoYXJOdW1BdFBvc2l0aW9uIDogcG9pbnQgLT4gaW50IG1ldGhcblxuICAgIG1ldGhvZCBzZWxlY3RTdWJTdHJpbmcgOiBpbnQgLT4gaW50IC0+IHVuaXQgbWV0aFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQgKilcbmFuZCB0ZXh0UG9zaXRpb25pbmdFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCB0ZXh0Q29udGVudEVsZW1lbnRcblxuICAgIG1ldGhvZCB4IDogYW5pbWF0ZWRMZW5ndGhMaXN0IHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHkgOiBhbmltYXRlZExlbmd0aExpc3QgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZHggOiBhbmltYXRlZExlbmd0aExpc3QgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZHkgOiBhbmltYXRlZExlbmd0aExpc3QgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgcm90YXRlIDogYW5pbWF0ZWROdW1iZXJMaXN0IHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1RleHRFbGVtZW50ICopXG5hbmQgdGV4dEVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IHRleHRQb3NpdGlvbmluZ0VsZW1lbnRcblxuICAgIGluaGVyaXQgdHJhbnNmb3JtYWJsZVxuICBlbmRcblxuYW5kIHRzcGFuRWxlbWVudCA9IHRleHRQb3NpdGlvbmluZ0VsZW1lbnRcblxuYW5kIHRyZWZFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCB0ZXh0UG9zaXRpb25pbmdFbGVtZW50XG5cbiAgICBpbmhlcml0IHVyaVJlZmVyZW5jZVxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1RleHRQYXRoRWxlbWVudCAqKVxuYW5kIHRleHRQYXRoRWxlbWVudE1ldGhvZCA9IFt0ZXh0UGF0aE1ldGhvZFR5cGVdIGFuaW1hdGVkXG5cbmFuZCB0ZXh0UGF0aEVsZW1lbnRTcGFjaW5nID0gW3RleHRQYXRoU3BhY2luZ1R5cGVdIGFuaW1hdGVkXG5cbmFuZCB0ZXh0UGF0aEVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IHRleHRDb250ZW50RWxlbWVudFxuXG4gICAgaW5oZXJpdCB1cmlSZWZlcmVuY2VcblxuICAgIG1ldGhvZCBzdGFydE9mZnNldCA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG1ldGhvZF8gOiB0ZXh0UGF0aEVsZW1lbnRNZXRob2QgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHNwYWNpbmcgOiB0ZXh0UGF0aEVsZW1lbnRTcGFjaW5nIHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdBbHRHbHlwaEVsZW1lbnQgKilcbmFuZCBhbHRHbHlwaEVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IHRleHRQb3NpdGlvbmluZ0VsZW1lbnRcblxuICAgIGluaGVyaXQgdXJpUmVmZXJlbmNlXG5cbiAgICBtZXRob2QgZ2x5cGhSZWYgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgZm9ybWF0IDoganNfc3RyaW5nIHQgcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR0FsdEdseXBoRGVmRWxlbWVudCAqKVxuYW5kIGFsdEdseXBoRGVmRWxlbWVudCA9IGVsZW1lbnRcblxuKCogaW50ZXJmYWNlIFNWR0FsdEdseXBoSXRlbUVsZW1lbnQgKilcbmFuZCBhbHRHbHlwaEl0ZW1FbGVtZW50ID0gZWxlbWVudFxuXG4oKiBpbnRlcmZhY2UgU1ZHR2x5cGhSZWZFbGVtZW50ICopXG5hbmQgZ2x5cGhSZWZFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBpbmhlcml0IHVyaVJlZmVyZW5jZVxuXG4gICAgaW5oZXJpdCBzdHlsYWJsZVxuXG4gICAgbWV0aG9kIGdseXBoUmVmIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGZvcm1hdCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB4IDogZmxvYXQgcHJvcFxuXG4gICAgbWV0aG9kIHkgOiBmbG9hdCBwcm9wXG5cbiAgICBtZXRob2QgZHggOiBmbG9hdCBwcm9wXG5cbiAgICBtZXRob2QgZHkgOiBmbG9hdCBwcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHUGFpbnQgOiBTVkdDb2xvciB7ICopXG5cbigqICAgLy8gUGFpbnQgVHlwZXMgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1BBSU5UVFlQRV9VTktOT1dOID0gMDsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1BBSU5UVFlQRV9SR0JDT0xPUiA9IDE7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19QQUlOVFRZUEVfUkdCQ09MT1JfSUNDQ09MT1IgPSAyOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfUEFJTlRUWVBFX05PTkUgPSAxMDE7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19QQUlOVFRZUEVfQ1VSUkVOVENPTE9SID0gMTAyOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfUEFJTlRUWVBFX1VSSV9OT05FID0gMTAzOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfUEFJTlRUWVBFX1VSSV9DVVJSRU5UQ09MT1IgPSAxMDQ7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19QQUlOVFRZUEVfVVJJX1JHQkNPTE9SID0gMTA1OyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfUEFJTlRUWVBFX1VSSV9SR0JDT0xPUl9JQ0NDT0xPUiA9IDEwNjsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1BBSU5UVFlQRV9VUkkgPSAxMDc7ICopXG5cbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IHBhaW50VHlwZTsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB1cmk7ICopXG5cbigqICAgdm9pZCBzZXRVcmkoaW4gRE9NU3RyaW5nIHVyaSk7ICopXG4oKiAgIHZvaWQgc2V0UGFpbnQoaW4gdW5zaWduZWQgc2hvcnQgcGFpbnRUeXBlLCBpbiBET01TdHJpbmcgdXJpLCBpbiBET01TdHJpbmcgcmdiQ29sb3IsIGluIERPTVN0cmluZyBpY2NDb2xvcikgcmFpc2VzKFNWR0V4Y2VwdGlvbik7ICopXG4oKiB9OyAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHTWFya2VyRWxlbWVudCA6IFNWR0VsZW1lbnQsICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0xhbmdTcGFjZSwgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHU3R5bGFibGUsICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0ZpdFRvVmlld0JveCB7ICopXG5cbigqICAgLy8gTWFya2VyIFVuaXQgVHlwZXMgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX01BUktFUlVOSVRTX1VOS05PV04gPSAwOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfTUFSS0VSVU5JVFNfVVNFUlNQQUNFT05VU0UgPSAxOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfTUFSS0VSVU5JVFNfU1RST0tFV0lEVEggPSAyOyAqKVxuXG4oKiAgIC8vIE1hcmtlciBPcmllbnRhdGlvbiBUeXBlcyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfTUFSS0VSX09SSUVOVF9VTktOT1dOID0gMDsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX01BUktFUl9PUklFTlRfQVVUTyA9IDE7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19NQVJLRVJfT1JJRU5UX0FOR0xFID0gMjsgKilcblxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggcmVmWDsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoIHJlZlk7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEVudW1lcmF0aW9uIG1hcmtlclVuaXRzOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggbWFya2VyV2lkdGg7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCBtYXJrZXJIZWlnaHQ7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEVudW1lcmF0aW9uIG9yaWVudFR5cGU7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEFuZ2xlIG9yaWVudEFuZ2xlOyAqKVxuXG4oKiAgIHZvaWQgc2V0T3JpZW50VG9BdXRvKCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7ICopXG4oKiAgIHZvaWQgc2V0T3JpZW50VG9BbmdsZShpbiBTVkdBbmdsZSBhbmdsZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7ICopXG4oKiB9OyAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHQ29sb3JQcm9maWxlRWxlbWVudCA6IFNWR0VsZW1lbnQsICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR1VSSVJlZmVyZW5jZSwgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHUmVuZGVyaW5nSW50ZW50IHsgKilcbigqICAgYXR0cmlidXRlIERPTVN0cmluZyBsb2NhbDsgKilcbigqICAgYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOyAqKVxuKCogICBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgcmVuZGVyaW5nSW50ZW50OyAqKVxuKCogfTsgKilcblxuKCogaW50ZXJmYWNlIFNWR0NvbG9yUHJvZmlsZVJ1bGUgOiBTVkdDU1NSdWxlLCAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdSZW5kZXJpbmdJbnRlbnQgeyAqKVxuKCogICBhdHRyaWJ1dGUgRE9NU3RyaW5nIHNyYyBzZXRyYWlzZXMoRE9NRXhjZXB0aW9uKTsgKilcbigqICAgYXR0cmlidXRlIERPTVN0cmluZyBuYW1lIHNldHJhaXNlcyhET01FeGNlcHRpb24pOyAqKVxuKCogICBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgcmVuZGVyaW5nSW50ZW50IHNldHJhaXNlcyhET01FeGNlcHRpb24pOyAqKVxuKCogfTsgKilcblxuKCogaW50ZXJmYWNlIFNWR0dyYWRpZW50RWxlbWVudCAqKVxuYW5kIGFuaW1hdGVkU3ByZWFkTWV0aG9kID0gW3NwcmVhZE1ldGhvZFR5cGVdIGFuaW1hdGVkXG5cbmFuZCBncmFkaWVudEVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgdXJpUmVmZXJlbmNlXG5cbiAgICBpbmhlcml0IHN0eWxhYmxlXG5cbiAgICAoKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEVudW1lcmF0aW9uIGdyYWRpZW50VW5pdHM7ICopXG4gICAgbWV0aG9kIGdyYWRpZW50VHJhbnNmb3JtIDogYW5pbWF0ZWRUcmFuc2Zvcm1MaXN0IHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHNwcmVhZE1ldGhvZCA6IGFuaW1hdGVkU3ByZWFkTWV0aG9kIHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR0xpbmVhckdyYWRpZW50RWxlbWVudCAqKVxuYW5kIGxpbmVhckdyYWRpZW50RWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZ3JhZGllbnRFbGVtZW50XG5cbiAgICBtZXRob2QgeDEgOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB5MSA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHgyIDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgeTIgOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQgKilcbmFuZCByYWRpYWxHcmFkaWVudEVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGdyYWRpZW50RWxlbWVudFxuXG4gICAgbWV0aG9kIGN4IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY3kgOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCByIDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZnggOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBmeSA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1N0b3BFbGVtZW50ICopXG5hbmQgc3RvcEVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgc3R5bGFibGVcblxuICAgIG1ldGhvZCBvZmZzZXQgOiBhbmltYXRlZE51bWJlciB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdQYXR0ZXJuRWxlbWVudCAqKVxuYW5kIHBhdHRlcm5FbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBpbmhlcml0IHVyaVJlZmVyZW5jZVxuXG4gICAgaW5oZXJpdCB0ZXN0c1xuXG4gICAgaW5oZXJpdCBsYW5nU3BhY2VcblxuICAgIGluaGVyaXQgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZFxuXG4gICAgaW5oZXJpdCBzdHlsYWJsZVxuXG4gICAgaW5oZXJpdCBmaXRUb1ZpZXdCb3hcblxuICAgICgqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkRW51bWVyYXRpb24gcGF0dGVyblVuaXRzOyAqKVxuICAgICgqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkRW51bWVyYXRpb24gcGF0dGVybkNvbnRlbnRVbml0czsgKilcbiAgICBtZXRob2QgcGF0dGVyblRyYW5zZm9ybSA6IGFuaW1hdGVkVHJhbnNmb3JtTGlzdCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB4IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgeSA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHdpZHRoIDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgaGVpZ2h0IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHQ2xpcFBhdGhFbGVtZW50ICopXG5hbmQgY2xpcFBhdGhFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBpbmhlcml0IHRlc3RzXG5cbiAgICBpbmhlcml0IGxhbmdTcGFjZVxuXG4gICAgaW5oZXJpdCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkXG5cbiAgICBpbmhlcml0IHN0eWxhYmxlXG5cbiAgICBpbmhlcml0IHRyYW5zZm9ybWFibGVcbiAgICAoKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEVudW1lcmF0aW9uIGNsaXBQYXRoVW5pdHM7ICopXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHTWFza0VsZW1lbnQgKilcbmFuZCBtYXNrRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgaW5oZXJpdCB0ZXN0c1xuXG4gICAgaW5oZXJpdCBsYW5nU3BhY2VcblxuICAgIGluaGVyaXQgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZFxuXG4gICAgaW5oZXJpdCBzdHlsYWJsZVxuXG4gICAgKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbiBtYXNrVW5pdHM7ICopXG4gICAgKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbiBtYXNrQ29udGVudFVuaXRzOyAqKVxuICAgIG1ldGhvZCB4IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgeSA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHdpZHRoIDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgaGVpZ2h0IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHRmlsdGVyRWxlbWVudCAqKVxuYW5kIGZpbHRlckVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgdXJpUmVmZXJlbmNlXG5cbiAgICBpbmhlcml0IGxhbmdTcGFjZVxuXG4gICAgaW5oZXJpdCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkXG5cbiAgICBpbmhlcml0IHN0eWxhYmxlXG5cbiAgICAoKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEVudW1lcmF0aW9uIGZpbHRlclVuaXRzOyAqKVxuICAgICgqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkRW51bWVyYXRpb24gcHJpbWl0aXZlVW5pdHM7ICopXG4gICAgbWV0aG9kIHggOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB5IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgd2lkdGggOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBoZWlnaHQgOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBmaWx0ZXJSZXNYIDogYW5pbWF0ZWRJbnRlZ2VyIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGZpbHRlclJlc1kgOiBhbmltYXRlZEludGVnZXIgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc2V0RmlsdGVyUmVzIDogaW50IC0+IGludCAtPiB1bml0IG1ldGhcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMgOiBTVkdTdHlsYWJsZSB7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCB4OyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggeTsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoIHdpZHRoOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggaGVpZ2h0OyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRTdHJpbmcgcmVzdWx0OyAqKVxuKCogfTsgKilcblxuKCogaW50ZXJmYWNlIFNWR0ZFQmxlbmRFbGVtZW50IDogU1ZHRWxlbWVudCwgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7ICopXG5cbigqICAgLy8gQmxlbmQgTW9kZSBUeXBlcyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfRkVCTEVORF9NT0RFX1VOS05PV04gPSAwOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfRkVCTEVORF9NT0RFX05PUk1BTCA9IDE7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19GRUJMRU5EX01PREVfTVVMVElQTFkgPSAyOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfRkVCTEVORF9NT0RFX1NDUkVFTiA9IDM7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19GRUJMRU5EX01PREVfREFSS0VOID0gNDsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0ZFQkxFTkRfTU9ERV9MSUdIVEVOID0gNTsgKilcblxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRTdHJpbmcgaW4xOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRTdHJpbmcgaW4yOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbiBtb2RlOyAqKVxuKCogfTsgKilcblxuKCogaW50ZXJmYWNlIFNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50IDogU1ZHRWxlbWVudCwgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7ICopXG5cbigqICAgLy8gQ29sb3IgTWF0cml4IFR5cGVzICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19GRUNPTE9STUFUUklYX1RZUEVfVU5LTk9XTiA9IDA7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19GRUNPTE9STUFUUklYX1RZUEVfTUFUUklYID0gMTsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0ZFQ09MT1JNQVRSSVhfVFlQRV9TQVRVUkFURSA9IDI7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19GRUNPTE9STUFUUklYX1RZUEVfSFVFUk9UQVRFID0gMzsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0ZFQ09MT1JNQVRSSVhfVFlQRV9MVU1JTkFOQ0VUT0FMUEhBID0gNDsgKilcblxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRTdHJpbmcgaW4xOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbiB0eXBlOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXJMaXN0IHZhbHVlczsgKilcbigqIH07ICopXG5cbigqIGludGVyZmFjZSBTVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudCA6IFNWR0VsZW1lbnQsICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMgeyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRTdHJpbmcgaW4xOyAqKVxuKCogfTsgKilcblxuKCogaW50ZXJmYWNlIFNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50IDogU1ZHRWxlbWVudCB7ICopXG5cbigqICAgLy8gQ29tcG9uZW50IFRyYW5zZmVyIFR5cGVzICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19GRUNPTVBPTkVOVFRSQU5TRkVSX1RZUEVfVU5LTk9XTiA9IDA7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19GRUNPTVBPTkVOVFRSQU5TRkVSX1RZUEVfSURFTlRJVFkgPSAxOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfRkVDT01QT05FTlRUUkFOU0ZFUl9UWVBFX1RBQkxFID0gMjsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0ZFQ09NUE9ORU5UVFJBTlNGRVJfVFlQRV9ESVNDUkVURSA9IDM7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19GRUNPTVBPTkVOVFRSQU5TRkVSX1RZUEVfTElORUFSID0gNDsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0ZFQ09NUE9ORU5UVFJBTlNGRVJfVFlQRV9HQU1NQSA9IDU7ICopXG5cbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkRW51bWVyYXRpb24gdHlwZTsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyTGlzdCB0YWJsZVZhbHVlczsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIHNsb3BlOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgaW50ZXJjZXB0OyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgYW1wbGl0dWRlOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgZXhwb25lbnQ7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBvZmZzZXQ7ICopXG4oKiB9OyAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHRkVGdW5jUkVsZW1lbnQgOiBTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudCB7ICopXG4oKiB9OyAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHRkVGdW5jR0VsZW1lbnQgOiBTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudCB7ICopXG4oKiB9OyAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHRkVGdW5jQkVsZW1lbnQgOiBTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudCB7ICopXG4oKiB9OyAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHRkVGdW5jQUVsZW1lbnQgOiBTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudCB7ICopXG4oKiB9OyAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHRkVDb21wb3NpdGVFbGVtZW50IDogU1ZHRWxlbWVudCwgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMgeyAqKVxuXG4oKiAgIC8vIENvbXBvc2l0ZSBPcGVyYXRvcnMgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0ZFQ09NUE9TSVRFX09QRVJBVE9SX1VOS05PV04gPSAwOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfRkVDT01QT1NJVEVfT1BFUkFUT1JfT1ZFUiA9IDE7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19GRUNPTVBPU0lURV9PUEVSQVRPUl9JTiA9IDI7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19GRUNPTVBPU0lURV9PUEVSQVRPUl9PVVQgPSAzOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfRkVDT01QT1NJVEVfT1BFUkFUT1JfQVRPUCA9IDQ7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19GRUNPTVBPU0lURV9PUEVSQVRPUl9YT1IgPSA1OyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfRkVDT01QT1NJVEVfT1BFUkFUT1JfQVJJVEhNRVRJQyA9IDY7ICopXG5cbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkU3RyaW5nIGluMTsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkU3RyaW5nIGluMjsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkRW51bWVyYXRpb24gb3BlcmF0b3I7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBrMTsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIGsyOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgazM7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBrNDsgKilcbigqIH07ICopXG5cbigqIGludGVyZmFjZSBTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudCA6IFNWR0VsZW1lbnQsICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMgeyAqKVxuXG4oKiAgIC8vIEVkZ2UgTW9kZSBWYWx1ZXMgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0VER0VNT0RFX1VOS05PV04gPSAwOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfRURHRU1PREVfRFVQTElDQVRFID0gMTsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0VER0VNT0RFX1dSQVAgPSAyOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfRURHRU1PREVfTk9ORSA9IDM7ICopXG5cbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkU3RyaW5nIGluMTsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkSW50ZWdlciBvcmRlclg7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEludGVnZXIgb3JkZXJZOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXJMaXN0IGtlcm5lbE1hdHJpeDsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIGRpdmlzb3I7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBiaWFzOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRJbnRlZ2VyIHRhcmdldFg7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEludGVnZXIgdGFyZ2V0WTsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkRW51bWVyYXRpb24gZWRnZU1vZGU7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBrZXJuZWxVbml0TGVuZ3RoWDsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIGtlcm5lbFVuaXRMZW5ndGhZOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRCb29sZWFuIHByZXNlcnZlQWxwaGE7ICopXG4oKiB9OyAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50IDogU1ZHRWxlbWVudCwgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMgeyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRTdHJpbmcgaW4xOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgc3VyZmFjZVNjYWxlOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgZGlmZnVzZUNvbnN0YW50OyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIga2VybmVsVW5pdExlbmd0aFg7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBrZXJuZWxVbml0TGVuZ3RoWTsgKilcbigqIH07ICopXG5cbigqIGludGVyZmFjZSBTVkdGRURpc3RhbnRMaWdodEVsZW1lbnQgOiBTVkdFbGVtZW50IHsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIGF6aW11dGg7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBlbGV2YXRpb247ICopXG4oKiB9OyAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHRkVQb2ludExpZ2h0RWxlbWVudCA6IFNWR0VsZW1lbnQgeyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgeDsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIHk7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciB6OyAqKVxuKCogfTsgKilcblxuKCogaW50ZXJmYWNlIFNWR0ZFU3BvdExpZ2h0RWxlbWVudCA6IFNWR0VsZW1lbnQgeyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgeDsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIHk7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciB6OyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgcG9pbnRzQXRYOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgcG9pbnRzQXRZOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgcG9pbnRzQXRaOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgc3BlY3VsYXJFeHBvbmVudDsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIGxpbWl0aW5nQ29uZUFuZ2xlOyAqKVxuKCogfTsgKilcblxuKCogaW50ZXJmYWNlIFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudCA6IFNWR0VsZW1lbnQsICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzIHsgKilcblxuKCogICAvLyBDaGFubmVsIFNlbGVjdG9ycyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfQ0hBTk5FTF9VTktOT1dOID0gMDsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0NIQU5ORUxfUiA9IDE7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19DSEFOTkVMX0cgPSAyOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfQ0hBTk5FTF9CID0gMzsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0NIQU5ORUxfQSA9IDQ7ICopXG5cbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkU3RyaW5nIGluMTsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkU3RyaW5nIGluMjsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIHNjYWxlOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbiB4Q2hhbm5lbFNlbGVjdG9yOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbiB5Q2hhbm5lbFNlbGVjdG9yOyAqKVxuKCogfTsgKilcblxuKCogaW50ZXJmYWNlIFNWR0ZFRmxvb2RFbGVtZW50IDogU1ZHRWxlbWVudCwgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7ICopXG4oKiB9OyAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50IDogU1ZHRWxlbWVudCwgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMgeyAqKVxuXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZFN0cmluZyBpbjE7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBzdGREZXZpYXRpb25YOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgc3RkRGV2aWF0aW9uWTsgKilcblxuKCogICB2b2lkIHNldFN0ZERldmlhdGlvbihpbiBmbG9hdCBzdGREZXZpYXRpb25YLCBpbiBmbG9hdCBzdGREZXZpYXRpb25ZKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsgKilcbigqIH07ICopXG5cbigqIGludGVyZmFjZSBTVkdGRUltYWdlRWxlbWVudCA6IFNWR0VsZW1lbnQsICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdVUklSZWZlcmVuY2UsICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdMYW5nU3BhY2UsICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzIHsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbyBwcmVzZXJ2ZUFzcGVjdFJhdGlvOyAqKVxuKCogfTsgKilcblxuKCogaW50ZXJmYWNlIFNWR0ZFTWVyZ2VFbGVtZW50IDogU1ZHRWxlbWVudCwgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7ICopXG4oKiB9OyAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHRkVNZXJnZU5vZGVFbGVtZW50IDogU1ZHRWxlbWVudCB7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZFN0cmluZyBpbjE7ICopXG4oKiB9OyAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHRkVNb3JwaG9sb2d5RWxlbWVudCA6IFNWR0VsZW1lbnQsICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7ICopXG5cbigqICAgLy8gTW9ycGhvbG9neSBPcGVyYXRvcnMgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX01PUlBIT0xPR1lfT1BFUkFUT1JfVU5LTk9XTiA9IDA7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19NT1JQSE9MT0dZX09QRVJBVE9SX0VST0RFID0gMTsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX01PUlBIT0xPR1lfT1BFUkFUT1JfRElMQVRFID0gMjsgKilcblxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRTdHJpbmcgaW4xOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbiBvcGVyYXRvcjsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIHJhZGl1c1g7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciByYWRpdXNZOyAqKVxuKCogfTsgKilcblxuKCogaW50ZXJmYWNlIFNWR0ZFT2Zmc2V0RWxlbWVudCA6IFNWR0VsZW1lbnQsICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzIHsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkU3RyaW5nIGluMTsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIGR4OyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgZHk7ICopXG4oKiB9OyAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudCA6IFNWR0VsZW1lbnQsICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZFN0cmluZyBpbjE7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBzdXJmYWNlU2NhbGU7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBzcGVjdWxhckNvbnN0YW50OyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgc3BlY3VsYXJFeHBvbmVudDsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIGtlcm5lbFVuaXRMZW5ndGhYOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIga2VybmVsVW5pdExlbmd0aFk7ICopXG4oKiB9OyAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHRkVUaWxlRWxlbWVudCA6IFNWR0VsZW1lbnQsICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZFN0cmluZyBpbjE7ICopXG4oKiB9OyAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHRkVUdXJidWxlbmNlRWxlbWVudCA6IFNWR0VsZW1lbnQsICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7ICopXG5cbigqICAgLy8gVHVyYnVsZW5jZSBUeXBlcyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfVFVSQlVMRU5DRV9UWVBFX1VOS05PV04gPSAwOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfVFVSQlVMRU5DRV9UWVBFX0ZSQUNUQUxOT0lTRSA9IDE7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19UVVJCVUxFTkNFX1RZUEVfVFVSQlVMRU5DRSA9IDI7ICopXG5cbigqICAgLy8gU3RpdGNoIE9wdGlvbnMgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1NUSVRDSFRZUEVfVU5LTk9XTiA9IDA7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19TVElUQ0hUWVBFX1NUSVRDSCA9IDE7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19TVElUQ0hUWVBFX05PU1RJVENIID0gMjsgKilcblxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgYmFzZUZyZXF1ZW5jeVg7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBiYXNlRnJlcXVlbmN5WTsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkSW50ZWdlciBudW1PY3RhdmVzOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgc2VlZDsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkRW51bWVyYXRpb24gc3RpdGNoVGlsZXM7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEVudW1lcmF0aW9uIHR5cGU7ICopXG4oKiB9OyAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHQ3Vyc29yRWxlbWVudCAqKVxuYW5kIGN1cnNvckVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgdXJpUmVmZXJlbmNlXG5cbiAgICBpbmhlcml0IHRlc3RzXG5cbiAgICBpbmhlcml0IGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRcblxuICAgIG1ldGhvZCB4IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgeSA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR0FFbGVtZW50ICopXG5hbmQgYUVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgdXJpUmVmZXJlbmNlXG5cbiAgICBpbmhlcml0IHRlc3RzXG5cbiAgICBpbmhlcml0IGxhbmdTcGFjZVxuXG4gICAgaW5oZXJpdCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkXG5cbiAgICBpbmhlcml0IHN0eWxhYmxlXG5cbiAgICBpbmhlcml0IHRyYW5zZm9ybWFibGVcblxuICAgIG1ldGhvZCB0YXJnZXQgOiBhbmltYXRlZFN0cmluZyB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdWaWV3RWxlbWVudCAqKVxuYW5kIHZpZXdFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBpbmhlcml0IGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRcblxuICAgIGluaGVyaXQgZml0VG9WaWV3Qm94XG5cbiAgICBpbmhlcml0IHpvb21BbmRQYW5cblxuICAgIG1ldGhvZCB2aWV3VGFyZ2V0IDogc3RyaW5nTGlzdCB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdTY3JpcHRFbGVtZW50ICopXG5hbmQgc2NyaXB0RWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgaW5oZXJpdCB1cmlSZWZlcmVuY2VcblxuICAgIGluaGVyaXQgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZFxuXG4gICAgbWV0aG9kIHR5cGVfIDoganNfc3RyaW5nIHQgcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1pvb21FdmVudCA6IFVJRXZlbnQgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR1JlY3Qgem9vbVJlY3RTY3JlZW47ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCBwcmV2aW91c1NjYWxlOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHUG9pbnQgcHJldmlvdXNUcmFuc2xhdGU7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCBuZXdTY2FsZTsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR1BvaW50IG5ld1RyYW5zbGF0ZTsgKilcbigqIH07ICopXG5cbigqIGludGVyZmFjZSBTVkdBbmltYXRpb25FbGVtZW50ICopXG5hbmQgYW5pbWF0aW9uRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgaW5oZXJpdCB0ZXN0c1xuXG4gICAgaW5oZXJpdCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkXG5cbiAgICAoKiBpbmhlcml0IGVsZW1lbnRUaW1lQ29udHJvbCAqKVxuICAgIG1ldGhvZCB0YXJnZXRFbGVtZW50IDogZWxlbWVudCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBnZXRTdGFydFRpbWUgOiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0Q3VycmVudFRpbWUgOiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0U2ltcGxlRHVyYXRpb24gOiBmbG9hdCBtZXRoXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHQW5pbWF0ZUVsZW1lbnQgKilcbmFuZCBhbmltYXRlRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgYW5pbWF0aW9uRWxlbWVudFxuXG4gICAgaW5oZXJpdCBzdHlsYWJsZVxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1NldEVsZW1lbnQgKilcbmFuZCBzZXRFbGVtZW50ID0gYW5pbWF0aW9uRWxlbWVudFxuXG4oKiBpbnRlcmZhY2UgU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQgKilcbmFuZCBhbmltYXRlTW90aW9uRWxlbWVudCA9IGFuaW1hdGlvbkVsZW1lbnRcblxuKCogaW50ZXJmYWNlIFNWR01QYXRoRWxlbWVudCAqKVxuYW5kIG1QYXRoRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgaW5oZXJpdCB1cmlSZWZlcmVuY2VcblxuICAgIGluaGVyaXQgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR0FuaW1hdGVDb2xvckVsZW1lbnQgKilcbmFuZCBhbmltYXRlQ29sb3JFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBhbmltYXRpb25FbGVtZW50XG5cbiAgICBpbmhlcml0IHN0eWxhYmxlXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQgKilcbmFuZCBhbmltYXRlVHJhbnNmb3JtRWxlbWVudCA9IGFuaW1hdGlvbkVsZW1lbnRcblxuKCogaW50ZXJmYWNlIFNWR0ZvbnRFbGVtZW50ICopXG5hbmQgZm9udEVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgc3R5bGFibGVcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdHbHlwaEVsZW1lbnQgKilcbigqIGludGVyZmFjZSBTVkdNaXNzaW5nR2x5cGhFbGVtZW50KilcbmFuZCBnbHlwaEVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgc3R5bGFibGVcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdIS2VybkVsZW1lbnQgOiBTVkdFbGVtZW50ICopXG4oKiBpbnRlcmZhY2UgU1ZHVktlcm5FbGVtZW50IDogU1ZHRWxlbWVudCAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHRm9udEZhY2VFbGVtZW50ICopXG5jbGFzcyB0eXBlIGZvbnRGYWNlRWxlbWVudCA9IGVsZW1lbnRcblxuKCogaW50ZXJmYWNlIFNWR0ZvbnRGYWNlU3JjRWxlbWVudCAqKVxuY2xhc3MgdHlwZSBmb250RmFjZVNyY0VsZW1lbnQgPSBlbGVtZW50XG5cbigqIGludGVyZmFjZSBTVkdGb250RmFjZVVyaUVsZW1lbnQgKilcbmNsYXNzIHR5cGUgZm9udEZhY2VVcmlFbGVtZW50ID0gZWxlbWVudFxuXG4oKiBpbnRlcmZhY2UgU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50ICopXG5jbGFzcyB0eXBlIGZvbnRGYWNlRm9ybWF0RWxlbWVudCA9IGVsZW1lbnRcblxuKCogaW50ZXJmYWNlIFNWR0ZvbnRGYWNlTmFtZUVsZW1lbnQgKilcbmNsYXNzIHR5cGUgZm9udEZhY2VOYW1lRWxlbWVudCA9IGVsZW1lbnRcblxuKCogaW50ZXJmYWNlIFNWR01ldGFkYXRhRWxlbWVudCAqKVxuY2xhc3MgdHlwZSBtZXRhZGF0YUVsZW1lbnQgPSBlbGVtZW50XG5cbigqIGludGVyZmFjZSBTVkdGb3JlaWduT2JqZWN0RWxlbWVudCAqKVxuY2xhc3MgdHlwZSBmb3JlaWduT2JqZWN0RWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgaW5oZXJpdCB0ZXN0c1xuXG4gICAgaW5oZXJpdCBsYW5nU3BhY2VcblxuICAgIGluaGVyaXQgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZFxuXG4gICAgaW5oZXJpdCBzdHlsYWJsZVxuXG4gICAgaW5oZXJpdCB0cmFuc2Zvcm1hYmxlXG5cbiAgICBtZXRob2QgeCA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHkgOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB3aWR0aCA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGhlaWdodCA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IGNyZWF0ZUVsZW1lbnQgKGRvYyA6IGRvY3VtZW50IHQpIG5hbWUgPSBkb2MjI2NyZWF0ZUVsZW1lbnROUyB4bWxucyAoSnMuc3RyaW5nIG5hbWUpXG5cbmxldCB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBuYW1lID0gSnMuVW5zYWZlLmNvZXJjZSAoY3JlYXRlRWxlbWVudCBkb2MgbmFtZSlcblxubGV0IGNyZWF0ZUEgZG9jIDogYUVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiYVwiXG5cbmxldCBjcmVhdGVBbHRHbHlwaCBkb2MgOiBhbHRHbHlwaEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiYWx0Z2x5cGhcIlxuXG5sZXQgY3JlYXRlQWx0R2x5cGhEZWYgZG9jIDogYWx0R2x5cGhEZWZFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImFsdGdseXBoZGVmXCJcblxubGV0IGNyZWF0ZUFsdEdseXBoSXRlbSBkb2MgOiBhbHRHbHlwaEl0ZW1FbGVtZW50IHQgPVxuICB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImFsdGdseXBoaXRlbVwiXG5cbmxldCBjcmVhdGVBbmltYXRlIGRvYyA6IGFuaW1hdGVFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImFuaW1hdGVcIlxuXG5sZXQgY3JlYXRlQW5pbWF0ZUNvbG9yIGRvYyA6IGFuaW1hdGVDb2xvckVsZW1lbnQgdCA9XG4gIHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiYW5pbWF0ZWNvbG9yXCJcblxubGV0IGNyZWF0ZUFuaW1hdGVNb3Rpb24gZG9jIDogYW5pbWF0ZU1vdGlvbkVsZW1lbnQgdCA9XG4gIHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiYW5pbWF0ZW1vdGlvblwiXG5cbmxldCBjcmVhdGVBbmltYXRlVHJhbnNmb3JtIGRvYyA6IGFuaW1hdGVUcmFuc2Zvcm1FbGVtZW50IHQgPVxuICB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImFuaW1hdGV0cmFuc2Zvcm1cIlxuXG5sZXQgY3JlYXRlQ2lyY2xlIGRvYyA6IGNpcmNsZUVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiY2lyY2xlXCJcblxubGV0IGNyZWF0ZUNsaXBQYXRoIGRvYyA6IGNsaXBQYXRoRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJjbGlwcGF0aFwiXG5cbigqIGxldCBjcmVhdGVDb2xvclByb2ZpbGUgZG9jIDogY29sb3JQcm9maWxlIHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImNvbG9yLXByb2ZpbGVcIiAqKVxubGV0IGNyZWF0ZUN1cnNvciBkb2MgOiBjdXJzb3JFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImN1cnNvclwiXG5cbmxldCBjcmVhdGVEZWZzIGRvYyA6IGRlZnNFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImRlZnNcIlxuXG5sZXQgY3JlYXRlRGVzYyBkb2MgOiBkZXNjRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJkZXNjXCJcblxubGV0IGNyZWF0ZUVsbGlwc2UgZG9jIDogZWxsaXBzZUVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiZWxsaXBzZVwiXG5cbigqIGxldCBjcmVhdGVGZSogKilcbmxldCBjcmVhdGVGaWx0ZXIgZG9jIDogZmlsdGVyRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJmaWx0ZXJcIlxuXG5sZXQgY3JlYXRlRm9udCBkb2MgOiBmb250RWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJmb250XCJcblxubGV0IGNyZWF0ZUZvbnRGYWNlIGRvYyA6IGZvbnRFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImZvbnQtZmFjZVwiXG5cbmxldCBjcmVhdGVGb250RmFjZUZvcm1hdCBkb2MgOiBmb250RWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJmb250LWZhY2UtZm9ybWF0XCJcblxubGV0IGNyZWF0ZUZvbnRGYWNlTmFtZSBkb2MgOiBmb250RWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJmb250LWZhY2UtbmFtZVwiXG5cbmxldCBjcmVhdGVGb250RmFjZVNyYyBkb2MgOiBmb250RWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJmb250LWZhY2Utc3JjXCJcblxubGV0IGNyZWF0ZUZvbnRGYWNlVXJpIGRvYyA6IGZvbnRFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImZvbnQtZmFjZS11cmlcIlxuXG5sZXQgY3JlYXRlRm9yZWlnbk9iamVjdCBkb2MgOiBmb3JlaWduT2JqZWN0RWxlbWVudCB0ID1cbiAgdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJmb3JlaWduT2JqZWN0XCJcblxubGV0IGNyZWF0ZUcgZG9jIDogZ0VsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiZ1wiXG5cbmxldCBjcmVhdGVHbHlwaCBkb2MgOiBnbHlwaEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiZ2x5cGhcIlxuXG5sZXQgY3JlYXRlR2x5cGhSZWYgZG9jIDogZ2x5cGhFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImdseXBocmVmXCJcblxubGV0IGNyZWF0ZWhrZXJuIGRvYyA6IGVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiaGtlcm5cIlxuXG5sZXQgY3JlYXRlSW1hZ2UgZG9jIDogaW1hZ2VFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImltYWdlXCJcblxubGV0IGNyZWF0ZUxpbmVFbGVtZW50IGRvYyA6IGxpbmVFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImxpbmVcIlxuXG5sZXQgY3JlYXRlTGluZWFyRWxlbWVudCBkb2MgOiBsaW5lYXJHcmFkaWVudEVsZW1lbnQgdCA9XG4gIHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwibGluZWFyZ3JhZGllbnRcIlxuXG4oKiBsZXQgY3JlYXRlTWFya2VyIGRvYyA6IG1hcmtlckVsZW1lbnQgKilcbmxldCBjcmVhdGVNYXNrIGRvYyA6IG1hc2tFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcIm1hc2tcIlxuXG5sZXQgY3JlYXRlTWV0YURhdGEgZG9jIDogbWV0YWRhdGFFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcIm1ldGFkYXRhXCJcblxubGV0IGNyZWF0ZU1pc3NpbmdHbHlwaCBkb2MgOiBnbHlwaEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwibWlzc2luZy1nbHlwaFwiXG5cbmxldCBjcmVhdGVNUGF0aCBkb2MgOiBtUGF0aEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwibXBhdGhcIlxuXG5sZXQgY3JlYXRlUGF0aCBkb2MgOiBwYXRoRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJwYXRoXCJcblxubGV0IGNyZWF0ZVBhdHRlcm4gZG9jIDogcGF0dGVybkVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwicGF0dGVyblwiXG5cbmxldCBjcmVhdGVQb2x5Z29uIGRvYyA6IHBvbHlnb25FbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInBvbHlnb25cIlxuXG5sZXQgY3JlYXRlUG9seWxpbmUgZG9jIDogcG9seUxpbmVFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInBvbHlsaW5lXCJcblxubGV0IGNyZWF0ZVJhZGlhbGdyYWRpZW50IGRvYyA6IHJhZGlhbEdyYWRpZW50RWxlbWVudCB0ID1cbiAgdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJyYWRpYWxncmFkaWVudFwiXG5cbmxldCBjcmVhdGVSZWN0IGRvYyA6IHJlY3RFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInJlY3RcIlxuXG5sZXQgY3JlYXRlU2NyaXB0IGRvYyA6IHNjcmlwdEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwic2NyaXB0XCJcblxubGV0IGNyZWF0ZVNldCBkb2MgOiBzZXRFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInNldFwiXG5cbmxldCBjcmVhdGVTdG9wIGRvYyA6IHN0b3BFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInN0b3BcIlxuXG5sZXQgY3JlYXRlU3R5bGUgZG9jIDogc3R5bGVFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInN0eWxlXCJcblxubGV0IGNyZWF0ZVN2ZyBkb2MgOiBzdmdFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInN2Z1wiXG5cbmxldCBjcmVhdGVTd2l0Y2ggZG9jIDogc3dpdGNoRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJzd2l0Y2hcIlxuXG5sZXQgY3JlYXRlU3ltYm9sIGRvYyA6IHN5bWJvbEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwic3ltYm9sXCJcblxubGV0IGNyZWF0ZVRleHRFbGVtZW50IGRvYyA6IHRleHRFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInRleHRcIlxuXG5sZXQgY3JlYXRlVGV4dHBhdGggZG9jIDogdGV4dFBhdGhFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInRleHRwYXRoXCJcblxubGV0IGNyZWF0ZVRpdGxlIGRvYyA6IHRpdGxlRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJ0aXRsZVwiXG5cbmxldCBjcmVhdGVUcmVmIGRvYyA6IHRyZWZFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInRyZWZcIlxuXG5sZXQgY3JlYXRlVHNwYW4gZG9jIDogdHNwYW5FbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInRzcGFuXCJcblxubGV0IGNyZWF0ZVVzZSBkb2MgOiB1c2VFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInVzZVwiXG5cbmxldCBjcmVhdGVWaWV3IGRvYyA6IHZpZXdFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInZpZXdcIlxuXG5sZXQgY3JlYXRldmtlcm4gZG9jIDogZWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJ2a2VyblwiXG5cbigqKioqKVxuXG5sZXQgc3ZnX2VsZW1lbnQgOiBlbGVtZW50IHQgY29uc3RyID0gSnMuVW5zYWZlLmdsb2JhbCMjLl9TVkdFbGVtZW50XG5cbmxldCBkb2N1bWVudCA9IEpzLlVuc2FmZS5nbG9iYWwjIy5kb2N1bWVudFxuXG5sZXQgZ2V0RWxlbWVudEJ5SWQgaWQgOiBlbGVtZW50IHQgPVxuICBKcy5PcHQuY2FzZVxuICAgIChKcy5VbnNhZmUuZ2xvYmFsIyMuZG9jdW1lbnQjI2dldEVsZW1lbnRCeUlkIChKcy5zdHJpbmcgaWQpKVxuICAgIChmdW4gKCkgLT4gcmFpc2UgTm90X2ZvdW5kKVxuICAgIChmdW4gZSAtPiBpZiBKcy5pbnN0YW5jZW9mIGUgc3ZnX2VsZW1lbnQgdGhlbiBlIGVsc2UgcmFpc2UgTm90X2ZvdW5kKVxuXG5tb2R1bGUgQ29lcmNlVG8gPSBzdHJ1Y3RcbiAgbGV0IGVsZW1lbnQgKGUgOiAjRG9tLm5vZGUgSnMudCkgOiBlbGVtZW50IEpzLnQgSnMub3B0ID1cbiAgICBpZiBKcy5pbnN0YW5jZW9mIGUgc3ZnX2VsZW1lbnQgdGhlbiBKcy5zb21lIChKcy5VbnNhZmUuY29lcmNlIGUpIGVsc2UgSnMubnVsbFxuXG4gIGxldCB1bnNhZmVDb2VyY2UgKGUgOiAjZWxlbWVudCB0KSB0YWcgPVxuICAgIGlmIGUjIy50YWdOYW1lIyN0b0xvd2VyQ2FzZSA9PSBKcy5zdHJpbmcgdGFnXG4gICAgdGhlbiBKcy5zb21lIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgZWxzZSBKcy5udWxsXG5cbiAgbGV0IGEgZSA6IGFFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJhXCJcblxuICBsZXQgYWx0R2x5cGggZSA6IGFsdEdseXBoRWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwiYWx0Z2x5cGhcIlxuXG4gIGxldCBhbHRHbHlwaERlZiBlIDogYWx0R2x5cGhEZWZFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJhbHRnbHlwaGRlZlwiXG5cbiAgbGV0IGFsdEdseXBoSXRlbSBlIDogYWx0R2x5cGhJdGVtRWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwiYWx0Z2x5cGhpdGVtXCJcblxuICBsZXQgYW5pbWF0ZSBlIDogYW5pbWF0ZUVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcImFuaW1hdGVcIlxuXG4gIGxldCBhbmltYXRlQ29sb3IgZSA6IGFuaW1hdGVDb2xvckVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcImFuaW1hdGVjb2xvclwiXG5cbiAgbGV0IGFuaW1hdGVNb3Rpb24gZSA6IGFuaW1hdGVNb3Rpb25FbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJhbmltYXRlbW90aW9uXCJcblxuICBsZXQgYW5pbWF0ZVRyYW5zZm9ybSBlIDogYW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQgdCBvcHQgPVxuICAgIHVuc2FmZUNvZXJjZSBlIFwiYW5pbWF0ZXRyYW5zZm9ybVwiXG5cbiAgbGV0IGNpcmNsZSBlIDogY2lyY2xlRWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwiY2lyY2xlXCJcblxuICBsZXQgY2xpcFBhdGggZSA6IGNsaXBQYXRoRWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwiY2xpcHBhdGhcIlxuXG4gICgqIGxldCBDb2xvclByb2ZpbGUgZSA6IGNvbG9yUHJvZmlsZSB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwiY29sb3ItcHJvZmlsZVwiICopXG4gIGxldCBjdXJzb3IgZSA6IGN1cnNvckVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcImN1cnNvclwiXG5cbiAgbGV0IGRlZnMgZSA6IGRlZnNFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJkZWZzXCJcblxuICBsZXQgZGVzYyBlIDogZGVzY0VsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcImRlc2NcIlxuXG4gIGxldCBlbGxpcHNlIGUgOiBlbGxpcHNlRWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwiZWxsaXBzZVwiXG5cbiAgKCogbGV0IEZlKiAqKVxuICBsZXQgZmlsdGVyIGUgOiBmaWx0ZXJFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJmaWx0ZXJcIlxuXG4gIGxldCBmb250IGUgOiBmb250RWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwiZm9udFwiXG5cbiAgbGV0IGZvbnRGYWNlIGUgOiBmb250RWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwiZm9udC1mYWNlXCJcblxuICBsZXQgZm9udEZhY2VGb3JtYXQgZSA6IGZvbnRFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJmb250LWZhY2UtZm9ybWF0XCJcblxuICBsZXQgZm9udEZhY2VOYW1lIGUgOiBmb250RWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwiZm9udC1mYWNlLW5hbWVcIlxuXG4gIGxldCBmb250RmFjZVNyYyBlIDogZm9udEVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcImZvbnQtZmFjZS1zcmNcIlxuXG4gIGxldCBmb250RmFjZVVyaSBlIDogZm9udEVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcImZvbnQtZmFjZS11cmlcIlxuXG4gIGxldCBmb3JlaWduT2JqZWN0IGUgOiBmb3JlaWduT2JqZWN0RWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwiZm9yZWlnbm9iamVjdFwiXG5cbiAgbGV0IGcgZSA6IGdFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJnXCJcblxuICBsZXQgZ2x5cGggZSA6IGdseXBoRWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwiZ2x5cGhcIlxuXG4gIGxldCBnbHlwaFJlZiBlIDogZ2x5cGhFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJnbHlwaHJlZlwiXG5cbiAgbGV0IGhrZXJuIGUgOiBlbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJoa2VyblwiXG5cbiAgbGV0IGltYWdlIGUgOiBpbWFnZUVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcImltYWdlXCJcblxuICBsZXQgbGluZUVsZW1lbnQgZSA6IGxpbmVFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJsaW5lXCJcblxuICBsZXQgbGluZWFyRWxlbWVudCBlIDogbGluZWFyR3JhZGllbnRFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJsaW5lYXJncmFkaWVudFwiXG5cbiAgKCogbGV0IE1hcmtlciBlIDogbWFya2VyRWxlbWVudCAqKVxuICBsZXQgbWFzayBlIDogbWFza0VsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcIm1hc2tcIlxuXG4gIGxldCBtZXRhRGF0YSBlIDogbWV0YWRhdGFFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJtZXRhZGF0YVwiXG5cbiAgbGV0IG1pc3NpbmdHbHlwaCBlIDogZ2x5cGhFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJtaXNzaW5nLWdseXBoXCJcblxuICBsZXQgbVBhdGggZSA6IG1QYXRoRWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwibXBhdGhcIlxuXG4gIGxldCBwYXRoIGUgOiBwYXRoRWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwicGF0aFwiXG5cbiAgbGV0IHBhdHRlcm4gZSA6IHBhdHRlcm5FbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJwYXR0ZXJuXCJcblxuICBsZXQgcG9seWdvbiBlIDogcG9seWdvbkVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcInBvbHlnb25cIlxuXG4gIGxldCBwb2x5bGluZSBlIDogcG9seUxpbmVFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJwb2x5bGluZVwiXG5cbiAgbGV0IHJhZGlhbGdyYWRpZW50IGUgOiByYWRpYWxHcmFkaWVudEVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcInJhZGlhbGdyYWRpZW50XCJcblxuICBsZXQgcmVjdCBlIDogcmVjdEVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcInJlY3RcIlxuXG4gIGxldCBzY3JpcHQgZSA6IHNjcmlwdEVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcInNjcmlwdFwiXG5cbiAgbGV0IHNldCBlIDogc2V0RWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwic2V0XCJcblxuICBsZXQgc3RvcCBlIDogc3RvcEVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcInN0b3BcIlxuXG4gIGxldCBzdHlsZSBlIDogc3R5bGVFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJzdHlsZVwiXG5cbiAgbGV0IHN2ZyBlIDogc3ZnRWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwic3ZnXCJcblxuICBsZXQgc3dpdGNoIGUgOiBzd2l0Y2hFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJzd2l0Y2hcIlxuXG4gIGxldCBzeW1ib2wgZSA6IHN5bWJvbEVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcInN5bWJvbFwiXG5cbiAgbGV0IHRleHRFbGVtZW50IGUgOiB0ZXh0RWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwidGV4dFwiXG5cbiAgbGV0IHRleHRwYXRoIGUgOiB0ZXh0UGF0aEVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcInRleHRwYXRoXCJcblxuICBsZXQgdGl0bGUgZSA6IHRpdGxlRWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwidGl0bGVcIlxuXG4gIGxldCB0cmVmIGUgOiB0cmVmRWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwidHJlZlwiXG5cbiAgbGV0IHRzcGFuIGUgOiB0c3BhbkVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcInRzcGFuXCJcblxuICBsZXQgdXNlIGUgOiB1c2VFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJ1c2VcIlxuXG4gIGxldCB2aWV3IGUgOiB2aWV3RWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwidmlld1wiXG5cbiAgbGV0IHZrZXJuIGUgOiBlbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJ2a2VyblwiXG5lbmRcbiIsIigqIEpzX29mX29jYW1sIGxpYnJhcnlcbiAqIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTQgSHVnbyBIZXV6YXJkXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbiAqIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4gKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuICopXG5cbigqIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9FdmVudFNvdXJjZSAqKVxub3BlbiBKc1xub3BlbiBEb21cbm9wZW4hIEltcG9ydFxuXG50eXBlIHN0YXRlID1cbiAgfCBDT05ORUNUSU5HXG4gIHwgT1BFTlxuICB8IENMT1NFRFxuXG5jbGFzcyB0eXBlIFsnYV0gbWVzc2FnZUV2ZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBbJ2FdIERvbS5ldmVudFxuXG4gICAgbWV0aG9kIGRhdGEgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb3JpZ2luIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGxhc3RFdmVudElkIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuICAgICgqIG1ldGhvZCBzb3VyY2UgOiB1bml0ICopXG4gIGVuZFxuXG5jbGFzcyB0eXBlIGV2ZW50U291cmNlID1cbiAgb2JqZWN0ICgnc2VsZilcbiAgICBtZXRob2QgdXJsIDogc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHdpdGhDcmVkZW50aWFscyA6IGJvb2wgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcmVhZHlTdGF0ZSA6IHN0YXRlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjbG9zZSA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIG9ub3BlbiA6ICgnc2VsZiB0LCAnc2VsZiBtZXNzYWdlRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbm1lc3NhZ2UgOiAoJ3NlbGYgdCwgJ3NlbGYgbWVzc2FnZUV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25lcnJvciA6ICgnc2VsZiB0LCAnc2VsZiBtZXNzYWdlRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgb3B0aW9ucyA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCB3aXRoQ3JlZGVudGlhbHMgOiBib29sIHQgd3JpdGVvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCB3aXRoQ3JlZGVudGlhbHMgYiA6IG9wdGlvbnMgdCA9XG4gIGxldCBpbml0ID0gSnMuVW5zYWZlLm9iaiBbfHxdIGluXG4gIGluaXQjIy53aXRoQ3JlZGVudGlhbHMgOj0gSnMuYm9vbCBiO1xuICBpbml0XG5cbmxldCBldmVudFNvdXJjZSA9IEpzLlVuc2FmZS5nbG9iYWwjIy5fRXZlbnRTb3VyY2VcblxubGV0IGV2ZW50U291cmNlX29wdGlvbnMgPSBKcy5VbnNhZmUuZ2xvYmFsIyMuX0V2ZW50U291cmNlXG5cbmxldCBhZGRFdmVudExpc3RlbmVyID0gRG9tLmFkZEV2ZW50TGlzdGVuZXJcbiIsIigqIEpzX29mX29jYW1sIGxpYnJhcnlcbiAqIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTAgSsOpcsO0bWUgVm91aWxsb25cbiAqIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4gKiBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cbiAqKVxuXG5vcGVuIEpzXG5vcGVuISBJbXBvcnRcblxuY2xhc3MgdHlwZSBjb25zb2xlID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGxvZyA6IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgbG9nXzIgOiBfIC0+IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgbG9nXzMgOiBfIC0+IF8gLT4gXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBsb2dfNCA6IF8gLT4gXyAtPiBfIC0+IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgbG9nXzUgOiBfIC0+IF8gLT4gXyAtPiBfIC0+IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgbG9nXzYgOiBfIC0+IF8gLT4gXyAtPiBfIC0+IF8gLT4gXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBsb2dfNyA6IF8gLT4gXyAtPiBfIC0+IF8gLT4gXyAtPiBfIC0+IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgbG9nXzggOiBfIC0+IF8gLT4gXyAtPiBfIC0+IF8gLT4gXyAtPiBfIC0+IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZGVidWcgOiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGRlYnVnXzIgOiBfIC0+IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZGVidWdfMyA6IF8gLT4gXyAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGRlYnVnXzQgOiBfIC0+IF8gLT4gXyAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGRlYnVnXzUgOiBfIC0+IF8gLT4gXyAtPiBfIC0+IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgaW5mbyA6IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgaW5mb18yIDogXyAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGluZm9fMyA6IF8gLT4gXyAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGluZm9fNCA6IF8gLT4gXyAtPiBfIC0+IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgaW5mb181IDogXyAtPiBfIC0+IF8gLT4gXyAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHdhcm4gOiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHdhcm5fMiA6IF8gLT4gXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB3YXJuXzMgOiBfIC0+IF8gLT4gXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB3YXJuXzQgOiBfIC0+IF8gLT4gXyAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHdhcm5fNSA6IF8gLT4gXyAtPiBfIC0+IF8gLT4gXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBlcnJvciA6IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZXJyb3JfMiA6IF8gLT4gXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBlcnJvcl8zIDogXyAtPiBfIC0+IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZXJyb3JfNCA6IF8gLT4gXyAtPiBfIC0+IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZXJyb3JfNSA6IF8gLT4gXyAtPiBfIC0+IF8gLT4gXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBhc3NlcnRfIDogYm9vbCB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGFzc2VydF8xIDogYm9vbCB0IC0+IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgYXNzZXJ0XzIgOiBib29sIHQgLT4gXyAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGFzc2VydF8zIDogYm9vbCB0IC0+IF8gLT4gXyAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGFzc2VydF80IDogYm9vbCB0IC0+IF8gLT4gXyAtPiBfIC0+IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgYXNzZXJ0XzUgOiBib29sIHQgLT4gXyAtPiBfIC0+IF8gLT4gXyAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGRpciA6IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZGlyeG1sIDogRG9tLm5vZGUgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB0cmFjZSA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGdyb3VwIDogXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBncm91cF8yIDogXyAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGdyb3VwXzMgOiBfIC0+IF8gLT4gXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBncm91cF80IDogXyAtPiBfIC0+IF8gLT4gXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBncm91cF81IDogXyAtPiBfIC0+IF8gLT4gXyAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGdyb3VwQ29sbGFwc2VkIDogXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBncm91cENvbGxhcHNlZF8yIDogXyAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGdyb3VwQ29sbGFwc2VkXzMgOiBfIC0+IF8gLT4gXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBncm91cENvbGxhcHNlZF80IDogXyAtPiBfIC0+IF8gLT4gXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBncm91cENvbGxhcHNlZF81IDogXyAtPiBfIC0+IF8gLT4gXyAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGdyb3VwRW5kIDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdGltZSA6IGpzX3N0cmluZyB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHRpbWVFbmQgOiBqc19zdHJpbmcgdCAtPiB1bml0IG1ldGhcbiAgZW5kXG5cbmV4dGVybmFsIGdldF9jb25zb2xlIDogdW5pdCAtPiBjb25zb2xlIHQgPSBcImNhbWxfanNfZ2V0X2NvbnNvbGVcIlxuXG5sZXQgY29uc29sZSA9IGdldF9jb25zb2xlICgpXG4iLCIoKiBKc19vZl9vY2FtbCBsaWJyYXJ5XG4gKiBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuICogQ29weXJpZ2h0IChDKSAyMDE1IFN0w6lwaGFuZSBMZWdyYW5kXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbiAqIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4gKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuICopXG5vcGVuISBJbXBvcnRcblxudHlwZSBwb3NpdGlvbkVycm9yQ29kZVxuXG50eXBlIHdhdGNoSWRcblxuY2xhc3MgdHlwZSBjb29yZGluYXRlcyA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBsYXRpdHVkZSA6IGZsb2F0IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBsb25naXR1ZGUgOiBmbG9hdCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYWx0aXR1ZGUgOiBmbG9hdCBKcy5vcHQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGFjY3VyYWN5IDogZmxvYXQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGFsdGl0dWRlQWNjdXJhY3kgOiBmbG9hdCBKcy5vcHQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGhlYWRpbmcgOiBmbG9hdCBKcy5vcHQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHNwZWVkIDogZmxvYXQgSnMub3B0IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgcG9zaXRpb24gPVxuICBvYmplY3RcbiAgICBtZXRob2QgY29vcmRzIDogY29vcmRpbmF0ZXMgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgdGltZXN0YW1wIDogSnMuZGF0ZSBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIHBvc2l0aW9uT3B0aW9ucyA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBlbmFibGVIaWdoQWNjdXJhY3kgOiBib29sIEpzLndyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2QgdGltZW91dCA6IGludCBKcy53cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG1heGltdW1BZ2UgOiBpbnQgSnMud3JpdGVvbmx5X3Byb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgcG9zaXRpb25FcnJvciA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBfUEVSTUlTU0lPTl9ERU5JRURfIDogcG9zaXRpb25FcnJvckNvZGUgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9QT1NJVElPTl9VTkFWQUlMQUJMRV8gOiBwb3NpdGlvbkVycm9yQ29kZSBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RJTUVPVVQgOiBwb3NpdGlvbkVycm9yQ29kZSBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY29kZSA6IHBvc2l0aW9uRXJyb3JDb2RlIEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBtZXNzYWdlIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBnZW9sb2NhdGlvbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBnZXRDdXJyZW50UG9zaXRpb24gOlxuICAgICAgICAgKHBvc2l0aW9uIEpzLnQgLT4gdW5pdCkgSnMuY2FsbGJhY2tcbiAgICAgIC0+IChwb3NpdGlvbkVycm9yIEpzLnQgLT4gdW5pdCkgSnMuY2FsbGJhY2tcbiAgICAgIC0+IHBvc2l0aW9uT3B0aW9ucyBKcy50XG4gICAgICAtPiB1bml0IEpzLm1ldGhcblxuICAgIG1ldGhvZCB3YXRjaFBvc2l0aW9uIDpcbiAgICAgICAgIChwb3NpdGlvbiBKcy50IC0+IHVuaXQpIEpzLmNhbGxiYWNrXG4gICAgICAtPiAocG9zaXRpb25FcnJvciBKcy50IC0+IHVuaXQpIEpzLmNhbGxiYWNrXG4gICAgICAtPiBwb3NpdGlvbk9wdGlvbnMgSnMudFxuICAgICAgLT4gd2F0Y2hJZCBKcy5tZXRoXG5cbiAgICBtZXRob2QgY2xlYXJXYXRjaCA6IHdhdGNoSWQgLT4gdW5pdCBKcy5tZXRoXG4gIGVuZFxuXG5sZXQgZW1wdHlfcG9zaXRpb25fb3B0aW9ucyAoKSA9IEpzLlVuc2FmZS5vYmogW3x8XVxuXG5sZXQgZ2VvbG9jYXRpb24gPVxuICBsZXQgeCA9IEpzLlVuc2FmZS5nbG9iYWwjIy5uYXZpZ2F0b3IgaW5cbiAgaWYgSnMuT3B0ZGVmLnRlc3QgeCB0aGVuIHgjIy5nZW9sb2NhdGlvbiBlbHNlIHhcblxuKCogdW5kZWZpbmVkICopXG5cbmxldCBpc19zdXBwb3J0ZWQgKCkgPSBKcy5PcHRkZWYudGVzdCBnZW9sb2NhdGlvblxuIiwiY2xhc3MgdHlwZSBpbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHRhcmdldCA6IERvbS5ub2RlIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGJvdW5kaW5nQ2xpZW50UmVjdCA6IERvbV9odG1sLmNsaWVudFJlY3QgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgcm9vdEJvdW5kcyA6IERvbV9odG1sLmNsaWVudFJlY3QgSnMudCBKcy5vcHQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGludGVyc2VjdGlvblJlY3QgOiBEb21faHRtbC5jbGllbnRSZWN0IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGludGVyc2VjdGlvblJhdGlvIDogZmxvYXQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGlzSW50ZXJzZWN0aW5nIDogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB0aW1lIDogZmxvYXQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBpbnRlcnNlY3Rpb25PYnNlcnZlck9wdGlvbnMgPVxuICBvYmplY3RcbiAgICBtZXRob2Qgcm9vdCA6IERvbS5ub2RlIEpzLnQgSnMud3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCByb290TWFyZ2luIDogSnMuanNfc3RyaW5nIEpzLnQgSnMud3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB0aHJlc2hvbGQgOiBmbG9hdCBKcy5qc19hcnJheSBKcy50IEpzLndyaXRlb25seV9wcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIGludGVyc2VjdGlvbk9ic2VydmVyID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHJvb3QgOiBEb20ubm9kZSBKcy50IEpzLm9wdCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgcm9vdE1hcmdpbiA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB0aHJlc2hvbGRzIDogZmxvYXQgSnMuanNfYXJyYXkgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb2JzZXJ2ZSA6ICNEb20ubm9kZSBKcy50IC0+IHVuaXQgSnMubWV0aFxuXG4gICAgbWV0aG9kIHVub2JzZXJ2ZSA6ICNEb20ubm9kZSBKcy50IC0+IHVuaXQgSnMubWV0aFxuXG4gICAgbWV0aG9kIGRpc2Nvbm5lY3QgOiB1bml0IEpzLm1ldGhcblxuICAgIG1ldGhvZCB0YWtlUmVjb3JkcyA6IGludGVyc2VjdGlvbk9ic2VydmVyRW50cnkgSnMudCBKcy5qc19hcnJheSBKcy5tZXRoXG4gIGVuZFxuXG5sZXQgZW1wdHlfaW50ZXJzZWN0aW9uX29ic2VydmVyX29wdGlvbnMgKCkgOiBpbnRlcnNlY3Rpb25PYnNlcnZlck9wdGlvbnMgSnMudCA9XG4gIEpzLlVuc2FmZS5vYmogW3x8XVxuXG5sZXQgaW50ZXJzZWN0aW9uT2JzZXJ2ZXJfdW5zYWZlID0gSnMuVW5zYWZlLmdsb2JhbCMjLl9JbnRlcnNlY3Rpb25PYnNlcnZlclxuXG5sZXQgaXNfc3VwcG9ydGVkICgpID0gSnMuT3B0ZGVmLnRlc3QgaW50ZXJzZWN0aW9uT2JzZXJ2ZXJfdW5zYWZlXG5cbmxldCBpbnRlcnNlY3Rpb25PYnNlcnZlciA6XG4gICAgKCAgICggICBpbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5IEpzLnQgSnMuanNfYXJyYXkgSnMudFxuICAgICAgICAgLT4gaW50ZXJzZWN0aW9uT2JzZXJ2ZXIgSnMudFxuICAgICAgICAgLT4gdW5pdClcbiAgICAgICAgSnMuY2FsbGJhY2tcbiAgICAgLT4gaW50ZXJzZWN0aW9uT2JzZXJ2ZXJPcHRpb25zIEpzLnRcbiAgICAgLT4gaW50ZXJzZWN0aW9uT2JzZXJ2ZXIgSnMudClcbiAgICBKcy5jb25zdHIgPVxuICBpbnRlcnNlY3Rpb25PYnNlcnZlcl91bnNhZmVcbiIsIigqIEpzX29mX29jYW1sIGxpYnJhcnlcbiAqIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTggU3TDqXBoYW5lIExlZ3JhbmRcbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuICogZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG4gKilcbm9wZW4hIEltcG9ydFxuXG5tb2R1bGUgdHlwZSBTaGFyZWQgPSBzaWdcbiAgY2xhc3MgdHlwZSBvYmplY3Rfb3B0aW9ucyA9XG4gICAgb2JqZWN0XG4gICAgICBtZXRob2QgbG9jYWxlTWF0Y2hlciA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnByb3BcbiAgICBlbmRcblxuICB2YWwgb2JqZWN0X29wdGlvbnMgOiB1bml0IC0+IG9iamVjdF9vcHRpb25zIEpzLnRcblxuICBjbGFzcyB0eXBlIF9vYmplY3QgPVxuICAgIG9iamVjdFxuICAgICAgbWV0aG9kIHN1cHBvcnRlZExvY2FsZXNPZiA6XG4gICAgICAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLmpzX2FycmF5IEpzLnRcbiAgICAgICAgLT4gb2JqZWN0X29wdGlvbnMgSnMudCBKcy5vcHRkZWZcbiAgICAgICAgLT4gSnMuanNfc3RyaW5nIEpzLnQgSnMuanNfYXJyYXkgSnMudCBKcy5tZXRoXG4gICAgZW5kXG5lbmRcblxubW9kdWxlIFNoYXJlZCA6IFNoYXJlZCA9IHN0cnVjdFxuICBjbGFzcyB0eXBlIG9iamVjdF9vcHRpb25zID1cbiAgICBvYmplY3RcbiAgICAgIG1ldGhvZCBsb2NhbGVNYXRjaGVyIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucHJvcFxuICAgIGVuZFxuXG4gIGxldCBvYmplY3Rfb3B0aW9ucyAoKSA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgbXV0YWJsZSBsb2NhbGVNYXRjaGVyID0gSnMuc3RyaW5nIFwiYmVzdCBmaXRcIlxuICAgIGVuZFxuXG4gIGNsYXNzIHR5cGUgX29iamVjdCA9XG4gICAgb2JqZWN0XG4gICAgICBtZXRob2Qgc3VwcG9ydGVkTG9jYWxlc09mIDpcbiAgICAgICAgICAgSnMuanNfc3RyaW5nIEpzLnQgSnMuanNfYXJyYXkgSnMudFxuICAgICAgICAtPiBvYmplY3Rfb3B0aW9ucyBKcy50IEpzLm9wdGRlZlxuICAgICAgICAtPiBKcy5qc19zdHJpbmcgSnMudCBKcy5qc19hcnJheSBKcy50IEpzLm1ldGhcbiAgICBlbmRcbmVuZFxuXG5tb2R1bGUgQ29sbGF0b3IgPSBzdHJ1Y3RcbiAgaW5jbHVkZSBTaGFyZWRcblxuICBjbGFzcyB0eXBlIHJlc29sdmVkX29wdGlvbnMgPVxuICAgIG9iamVjdFxuICAgICAgbWV0aG9kIGxvY2FsZSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgICAgbWV0aG9kIHVzYWdlIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgICBtZXRob2Qgc2Vuc2l0aXZpdHkgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICAgIG1ldGhvZCBpZ25vcmVQdW5jdHVhdGlvbiA6IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICAgIG1ldGhvZCBjb2xsYXRpb24gOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICAgIG1ldGhvZCBudW1lcmljIDogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgICAgbWV0aG9kIGNhc2VGaXJzdCA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBlbmRcblxuICBjbGFzcyB0eXBlIG9wdGlvbnMgPVxuICAgIG9iamVjdFxuICAgICAgbWV0aG9kIGxvY2FsZU1hdGNoZXIgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCB1c2FnZSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnByb3BcblxuICAgICAgbWV0aG9kIHNlbnNpdGl2aXR5IDogSnMuanNfc3RyaW5nIEpzLnQgSnMucHJvcFxuXG4gICAgICBtZXRob2QgaWdub3JlUHVuY3R1YXRpb24gOiBib29sIEpzLnQgSnMucHJvcFxuXG4gICAgICBtZXRob2QgbnVtZXJpYyA6IGJvb2wgSnMudCBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCBjYXNlRmlyc3QgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5wcm9wXG4gICAgZW5kXG5cbiAgbGV0IG9wdGlvbnMgKCkgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIG11dGFibGUgbG9jYWxlTWF0Y2hlciA9IEpzLnN0cmluZyBcImJlc3QgZml0XCJcblxuICAgICAgdmFsIG11dGFibGUgdXNhZ2UgPSBKcy5zdHJpbmcgXCJzb3J0XCJcblxuICAgICAgdmFsIG11dGFibGUgc2Vuc2l0aXZpdHkgPSBKcy5zdHJpbmcgXCJ2YXJpYW50XCJcblxuICAgICAgdmFsIG11dGFibGUgaWdub3JlUHVuY3R1YXRpb24gPSBKcy5fZmFsc2VcblxuICAgICAgdmFsIG11dGFibGUgbnVtZXJpYyA9IEpzLl9mYWxzZVxuXG4gICAgICB2YWwgbXV0YWJsZSBjYXNlRmlyc3QgPSBKcy5zdHJpbmcgXCJmYWxzZVwiXG4gICAgZW5kXG5cbiAgY2xhc3MgdHlwZSB0ID1cbiAgICBvYmplY3RcbiAgICAgIG1ldGhvZCBjb21wYXJlIDogKEpzLmpzX3N0cmluZyBKcy50IC0+IEpzLmpzX3N0cmluZyBKcy50IC0+IGludCkgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgICBtZXRob2QgcmVzb2x2ZWRPcHRpb25zIDogdW5pdCAtPiByZXNvbHZlZF9vcHRpb25zIEpzLnQgSnMubWV0aFxuICAgIGVuZFxuZW5kXG5cbm1vZHVsZSBEYXRlVGltZUZvcm1hdCA9IHN0cnVjdFxuICBpbmNsdWRlIFNoYXJlZFxuXG4gIGNsYXNzIHR5cGUgcmVzb2x2ZWRfb3B0aW9ucyA9XG4gICAgb2JqZWN0XG4gICAgICBtZXRob2QgbG9jYWxlIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgICBtZXRob2QgY2FsZW5kYXIgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICAgIG1ldGhvZCBudW1iZXJpbmdTeXN0ZW0gOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICAgIG1ldGhvZCB0aW1lWm9uZSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgICAgbWV0aG9kIGhvdXIxMiA6IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICAgIG1ldGhvZCB3ZWVrZGF5IDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmX3Byb3BcblxuICAgICAgbWV0aG9kIGVyYSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZl9wcm9wXG5cbiAgICAgIG1ldGhvZCB5ZWFyIDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmX3Byb3BcblxuICAgICAgbWV0aG9kIG1vbnRoIDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmX3Byb3BcblxuICAgICAgbWV0aG9kIGRheSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZl9wcm9wXG5cbiAgICAgIG1ldGhvZCBob3VyIDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmX3Byb3BcblxuICAgICAgbWV0aG9kIG1pbnV0ZSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZl9wcm9wXG5cbiAgICAgIG1ldGhvZCBzZWNvbmQgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWZfcHJvcFxuXG4gICAgICBtZXRob2QgdGltZVpvbmVOYW1lIDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmX3Byb3BcbiAgICBlbmRcblxuICBjbGFzcyB0eXBlIG9wdGlvbnMgPVxuICAgIG9iamVjdFxuICAgICAgbWV0aG9kIGRhdGVTdHlsZSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZiBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCB0aW1lU3R5bGUgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWYgSnMucHJvcFxuXG4gICAgICBtZXRob2QgY2FsZW5kYXIgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWYgSnMucHJvcFxuXG4gICAgICBtZXRob2QgZGF5UGVyaW9kIDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmIEpzLnByb3BcblxuICAgICAgbWV0aG9kIG51bWJlcmluZ1N5c3RlbSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZiBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCBsb2NhbGVNYXRjaGVyIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucHJvcFxuXG4gICAgICBtZXRob2QgdGltZVpvbmUgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWYgSnMucHJvcFxuXG4gICAgICBtZXRob2QgaG91cjEyIDogYm9vbCBKcy50IEpzLm9wdGRlZiBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCBob3VyQ3ljbGUgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWYgSnMucHJvcFxuXG4gICAgICBtZXRob2QgZm9ybWF0TWF0Y2hlciA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnByb3BcblxuICAgICAgbWV0aG9kIHdlZWtkYXkgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWYgSnMucHJvcFxuXG4gICAgICBtZXRob2QgZXJhIDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmIEpzLnByb3BcblxuICAgICAgbWV0aG9kIHllYXIgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWYgSnMucHJvcFxuXG4gICAgICBtZXRob2QgbW9udGggOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWYgSnMucHJvcFxuXG4gICAgICBtZXRob2QgZGF5IDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmIEpzLnByb3BcblxuICAgICAgbWV0aG9kIGhvdXIgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWYgSnMucHJvcFxuXG4gICAgICBtZXRob2QgbWludXRlIDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmIEpzLnByb3BcblxuICAgICAgbWV0aG9kIHNlY29uZCA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZiBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCBmcmFjdGlvbmFsU2Vjb25kRGlnaXRzIDogaW50IEpzLm9wdGRlZiBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCB0aW1lWm9uZU5hbWUgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWYgSnMucHJvcFxuICAgIGVuZFxuXG4gIGxldCBvcHRpb25zICgpIDogb3B0aW9ucyBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBtdXRhYmxlIGRhdGVTdHlsZSA9IEpzLnVuZGVmaW5lZFxuXG4gICAgICB2YWwgbXV0YWJsZSB0aW1lU3R5bGUgPSBKcy51bmRlZmluZWRcblxuICAgICAgdmFsIG11dGFibGUgY2FsZW5kYXIgPSBKcy51bmRlZmluZWRcblxuICAgICAgdmFsIG11dGFibGUgZGF5UGVyaW9kID0gSnMudW5kZWZpbmVkXG5cbiAgICAgIHZhbCBtdXRhYmxlIG51bWJlcmluZ1N5c3RlbSA9IEpzLnVuZGVmaW5lZFxuXG4gICAgICB2YWwgbXV0YWJsZSBsb2NhbGVNYXRjaGVyID0gSnMuc3RyaW5nIFwiYmVzdCBmaXRcIlxuXG4gICAgICB2YWwgbXV0YWJsZSB0aW1lWm9uZSA9IEpzLnVuZGVmaW5lZFxuXG4gICAgICB2YWwgbXV0YWJsZSBob3VyMTIgPSBKcy51bmRlZmluZWRcblxuICAgICAgdmFsIG11dGFibGUgaG91ckN5Y2xlID0gSnMudW5kZWZpbmVkXG5cbiAgICAgIHZhbCBtdXRhYmxlIGZvcm1hdE1hdGNoZXIgPSBKcy5zdHJpbmcgXCJiZXN0IGZpdFwiXG5cbiAgICAgIHZhbCBtdXRhYmxlIHdlZWtkYXkgPSBKcy51bmRlZmluZWRcblxuICAgICAgdmFsIG11dGFibGUgZXJhID0gSnMudW5kZWZpbmVkXG5cbiAgICAgIHZhbCBtdXRhYmxlIHllYXIgPSBKcy51bmRlZmluZWRcblxuICAgICAgdmFsIG11dGFibGUgbW9udGggPSBKcy51bmRlZmluZWRcblxuICAgICAgdmFsIG11dGFibGUgZGF5ID0gSnMudW5kZWZpbmVkXG5cbiAgICAgIHZhbCBtdXRhYmxlIGhvdXIgPSBKcy51bmRlZmluZWRcblxuICAgICAgdmFsIG11dGFibGUgbWludXRlID0gSnMudW5kZWZpbmVkXG5cbiAgICAgIHZhbCBtdXRhYmxlIHNlY29uZCA9IEpzLnVuZGVmaW5lZFxuXG4gICAgICB2YWwgbXV0YWJsZSBmcmFjdGlvbmFsU2Vjb25kRGlnaXRzID0gSnMudW5kZWZpbmVkXG5cbiAgICAgIHZhbCBtdXRhYmxlIHRpbWVab25lTmFtZSA9IEpzLnVuZGVmaW5lZFxuICAgIGVuZFxuXG4gIGNsYXNzIHR5cGUgZm9ybWF0X3BhcnQgPVxuICAgIG9iamVjdFxuICAgICAgbWV0aG9kIF90eXBlIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgICBtZXRob2QgX3ZhbHVlIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIGVuZFxuXG4gIGNsYXNzIHR5cGUgdCA9XG4gICAgb2JqZWN0XG4gICAgICBtZXRob2QgZm9ybWF0IDogKEpzLmRhdGUgSnMudCAtPiBKcy5qc19zdHJpbmcgSnMudCkgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgICBtZXRob2QgZm9ybWF0VG9QYXJ0cyA6XG4gICAgICAgIEpzLmRhdGUgSnMudCBKcy5vcHRkZWYgLT4gZm9ybWF0X3BhcnQgSnMudCBKcy5qc19hcnJheSBKcy50IEpzLm1ldGhcblxuICAgICAgbWV0aG9kIHJlc29sdmVkT3B0aW9ucyA6IHVuaXQgLT4gcmVzb2x2ZWRfb3B0aW9ucyBKcy50IEpzLm1ldGhcbiAgICBlbmRcbmVuZFxuXG5tb2R1bGUgTnVtYmVyRm9ybWF0ID0gc3RydWN0XG4gIGluY2x1ZGUgU2hhcmVkXG5cbiAgY2xhc3MgdHlwZSByZXNvbHZlZF9vcHRpb25zID1cbiAgICBvYmplY3RcbiAgICAgIG1ldGhvZCBsb2NhbGUgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICAgIG1ldGhvZCBudW1iZXJpbmdTeXN0ZW0gOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICAgIG1ldGhvZCBzdHlsZSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgICAgbWV0aG9kIGN1cnJlbmN5IDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmX3Byb3BcblxuICAgICAgbWV0aG9kIGN1cnJlbmN5RGlzcGxheSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZl9wcm9wXG5cbiAgICAgIG1ldGhvZCB1c2VHcm91cGluZyA6IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICAgIG1ldGhvZCBtaW5pbXVtSW50ZWdlckRpZ2l0cyA6IGludCBKcy5vcHRkZWZfcHJvcFxuXG4gICAgICBtZXRob2QgbWluaW11bUZyYWN0aW9uRGlnaXRzIDogaW50IEpzLm9wdGRlZl9wcm9wXG5cbiAgICAgIG1ldGhvZCBtYXhpbXVtRnJhY3Rpb25EaWdpdHMgOiBpbnQgSnMub3B0ZGVmX3Byb3BcblxuICAgICAgbWV0aG9kIG1pbmltdW1TaWduaWZpY2FudERpZ2l0cyA6IGludCBKcy5vcHRkZWZfcHJvcFxuXG4gICAgICBtZXRob2QgbWF4aW11bVNpZ25pZmljYW50RGlnaXRzIDogaW50IEpzLm9wdGRlZl9wcm9wXG4gICAgZW5kXG5cbiAgY2xhc3MgdHlwZSBvcHRpb25zID1cbiAgICBvYmplY3RcbiAgICAgIG1ldGhvZCBjb21wYWN0RGlzcGxheSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZiBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCBjdXJyZW5jeSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZiBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCBjdXJyZW5jeURpc3BsYXkgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWYgSnMucHJvcFxuXG4gICAgICBtZXRob2QgY3VycmVuY3lTaWduIDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmIEpzLnByb3BcblxuICAgICAgbWV0aG9kIGxvY2FsZU1hdGNoZXIgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCBub3RhdGlvbiA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZiBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCBudW1iZXJpbmdTeXN0ZW0gOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWYgSnMucHJvcFxuXG4gICAgICBtZXRob2Qgc2lnbkRpc3BsYXkgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWYgSnMucHJvcFxuXG4gICAgICBtZXRob2Qgc3R5bGUgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCB1bml0IDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmIEpzLnByb3BcblxuICAgICAgbWV0aG9kIHVuaXREaXNwbGF5IDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmIEpzLnByb3BcblxuICAgICAgbWV0aG9kIHVzZUdyb3VwaW5nIDogYm9vbCBKcy50IEpzLnByb3BcblxuICAgICAgbWV0aG9kIHJvdW5kaW5nTW9kZSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZiBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCByb3VuZGluZ1ByaW9yaXR5IDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmIEpzLnByb3BcblxuICAgICAgbWV0aG9kIHJvdW5kaW5nSW5jcmVtZW50IDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmIEpzLnByb3BcblxuICAgICAgbWV0aG9kIHRyYWlsaW5nWmVyb0Rpc3BsYXkgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWYgSnMucHJvcFxuXG4gICAgICBtZXRob2QgbWluaW11bUludGVnZXJEaWdpdHMgOiBpbnQgSnMub3B0ZGVmIEpzLnByb3BcblxuICAgICAgbWV0aG9kIG1pbmltdW1GcmFjdGlvbkRpZ2l0cyA6IGludCBKcy5vcHRkZWYgSnMucHJvcFxuXG4gICAgICBtZXRob2QgbWF4aW11bUZyYWN0aW9uRGlnaXRzIDogaW50IEpzLm9wdGRlZiBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCBtaW5pbXVtU2lnbmlmaWNhbnREaWdpdHMgOiBpbnQgSnMub3B0ZGVmIEpzLnByb3BcblxuICAgICAgbWV0aG9kIG1heGltdW1TaWduaWZpY2FudERpZ2l0cyA6IGludCBKcy5vcHRkZWYgSnMucHJvcFxuICAgIGVuZFxuXG4gIGxldCBvcHRpb25zICgpIDogb3B0aW9ucyBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBtdXRhYmxlIGNvbXBhY3REaXNwbGF5ID0gSnMudW5kZWZpbmVkXG5cbiAgICAgIHZhbCBtdXRhYmxlIGN1cnJlbmN5ID0gSnMudW5kZWZpbmVkXG5cbiAgICAgIHZhbCBtdXRhYmxlIGN1cnJlbmN5RGlzcGxheSA9IEpzLnVuZGVmaW5lZFxuXG4gICAgICB2YWwgbXV0YWJsZSBjdXJyZW5jeVNpZ24gPSBKcy51bmRlZmluZWRcblxuICAgICAgdmFsIG11dGFibGUgbG9jYWxlTWF0Y2hlciA9IEpzLnN0cmluZyBcImJlc3QgZml0XCJcblxuICAgICAgdmFsIG11dGFibGUgbm90YXRpb24gPSBKcy51bmRlZmluZWRcblxuICAgICAgdmFsIG11dGFibGUgbnVtYmVyaW5nU3lzdGVtID0gSnMudW5kZWZpbmVkXG5cbiAgICAgIHZhbCBtdXRhYmxlIHNpZ25EaXNwbGF5ID0gSnMudW5kZWZpbmVkXG5cbiAgICAgIHZhbCBtdXRhYmxlIHN0eWxlID0gSnMuc3RyaW5nIFwiZGVjaW1hbFwiXG5cbiAgICAgIHZhbCBtdXRhYmxlIHVuaXQgPSBKcy51bmRlZmluZWRcblxuICAgICAgdmFsIG11dGFibGUgdW5pdERpc3BsYXkgPSBKcy51bmRlZmluZWRcblxuICAgICAgdmFsIG11dGFibGUgdXNlR3JvdXBpbmcgPSBKcy5fdHJ1ZVxuXG4gICAgICB2YWwgbXV0YWJsZSByb3VuZGluZ01vZGUgPSBKcy51bmRlZmluZWRcblxuICAgICAgdmFsIG11dGFibGUgcm91bmRpbmdQcmlvcml0eSA9IEpzLnVuZGVmaW5lZFxuXG4gICAgICB2YWwgbXV0YWJsZSByb3VuZGluZ0luY3JlbWVudCA9IEpzLnVuZGVmaW5lZFxuXG4gICAgICB2YWwgbXV0YWJsZSB0cmFpbGluZ1plcm9EaXNwbGF5ID0gSnMudW5kZWZpbmVkXG5cbiAgICAgIHZhbCBtdXRhYmxlIG1pbmltdW1JbnRlZ2VyRGlnaXRzID0gSnMudW5kZWZpbmVkXG5cbiAgICAgIHZhbCBtdXRhYmxlIG1pbmltdW1GcmFjdGlvbkRpZ2l0cyA9IEpzLnVuZGVmaW5lZFxuXG4gICAgICB2YWwgbXV0YWJsZSBtYXhpbXVtRnJhY3Rpb25EaWdpdHMgPSBKcy51bmRlZmluZWRcblxuICAgICAgdmFsIG11dGFibGUgbWluaW11bVNpZ25pZmljYW50RGlnaXRzID0gSnMudW5kZWZpbmVkXG5cbiAgICAgIHZhbCBtdXRhYmxlIG1heGltdW1TaWduaWZpY2FudERpZ2l0cyA9IEpzLnVuZGVmaW5lZFxuICAgIGVuZFxuXG4gIGNsYXNzIHR5cGUgZm9ybWF0X3BhcnQgPVxuICAgIG9iamVjdFxuICAgICAgbWV0aG9kIF90eXBlIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgICBtZXRob2QgX3ZhbHVlIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIGVuZFxuXG4gIGNsYXNzIHR5cGUgdCA9XG4gICAgb2JqZWN0XG4gICAgICBtZXRob2QgZm9ybWF0IDogKEpzLm51bWJlciBKcy50IC0+IEpzLmpzX3N0cmluZyBKcy50KSBKcy5yZWFkb25seV9wcm9wXG5cbiAgICAgIG1ldGhvZCBmb3JtYXRUb1BhcnRzIDpcbiAgICAgICAgSnMubnVtYmVyIEpzLnQgSnMub3B0ZGVmIC0+IGZvcm1hdF9wYXJ0IEpzLnQgSnMuanNfYXJyYXkgSnMudCBKcy5tZXRoXG5cbiAgICAgIG1ldGhvZCByZXNvbHZlZE9wdGlvbnMgOiB1bml0IC0+IHJlc29sdmVkX29wdGlvbnMgSnMudCBKcy5tZXRoXG4gICAgZW5kXG5lbmRcblxubW9kdWxlIFBsdXJhbFJ1bGVzID0gc3RydWN0XG4gIGluY2x1ZGUgU2hhcmVkXG5cbiAgY2xhc3MgdHlwZSByZXNvbHZlZF9vcHRpb25zID1cbiAgICBvYmplY3RcbiAgICAgIG1ldGhvZCBsb2NhbGUgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICAgIG1ldGhvZCBwbHVyYWxDYXRlZ29yaWVzIDogSnMuanNfc3RyaW5nIEpzLnQgSnMuanNfYXJyYXkgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICAgIG1ldGhvZCBfdHlwZSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgICAgbWV0aG9kIG1pbmltdW1JbnRlZ2VyRGlnaXRzIDogaW50IEpzLm9wdGRlZl9wcm9wXG5cbiAgICAgIG1ldGhvZCBtaW5pbXVtRnJhY3Rpb25EaWdpdHMgOiBpbnQgSnMub3B0ZGVmX3Byb3BcblxuICAgICAgbWV0aG9kIG1heGltdW1GcmFjdGlvbkRpZ2l0cyA6IGludCBKcy5vcHRkZWZfcHJvcFxuXG4gICAgICBtZXRob2QgbWluaW11bVNpZ25pZmljYW50RGlnaXRzIDogaW50IEpzLm9wdGRlZl9wcm9wXG5cbiAgICAgIG1ldGhvZCBtYXhpbXVtU2lnbmlmaWNhbnREaWdpdHMgOiBpbnQgSnMub3B0ZGVmX3Byb3BcbiAgICBlbmRcblxuICBjbGFzcyB0eXBlIG9wdGlvbnMgPVxuICAgIG9iamVjdFxuICAgICAgbWV0aG9kIGxvY2FsZU1hdGNoZXIgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCBfdHlwZSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnByb3BcbiAgICBlbmRcblxuICBsZXQgb3B0aW9ucyAoKSA6IG9wdGlvbnMgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgbXV0YWJsZSBsb2NhbGVNYXRjaGVyID0gSnMuc3RyaW5nIFwiYmVzdCBmaXRcIlxuXG4gICAgICB2YWwgbXV0YWJsZSBfdHlwZSA9IEpzLnN0cmluZyBcImNhcmRpbmFsXCJcbiAgICBlbmRcblxuICBjbGFzcyB0eXBlIHQgPVxuICAgIG9iamVjdFxuICAgICAgbWV0aG9kIHNlbGVjdCA6IEpzLm51bWJlciBKcy50IC0+IEpzLmpzX3N0cmluZyBKcy50IEpzLm1ldGhcblxuICAgICAgbWV0aG9kIHJlc29sdmVkT3B0aW9ucyA6IHVuaXQgLT4gcmVzb2x2ZWRfb3B0aW9ucyBKcy50IEpzLm1ldGhcbiAgICBlbmRcbmVuZFxuXG5jbGFzcyB0eXBlIGludGwgPVxuICBvYmplY3RcbiAgICBtZXRob2QgX0NvbGxhdG9yIDogQ29sbGF0b3IuX29iamVjdCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRGF0ZVRpbWVGb3JtYXQgOiBEYXRlVGltZUZvcm1hdC5fb2JqZWN0IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9OdW1iZXJGb3JtYXQgOiBOdW1iZXJGb3JtYXQuX29iamVjdCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfUGx1cmFsUnVsZXMgOiBQbHVyYWxSdWxlcy5fb2JqZWN0IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGdldENhbm9uaWNhbExvY2FsZXMgOlxuICAgICAgSnMuanNfc3RyaW5nIEpzLnQgSnMuanNfYXJyYXkgSnMudCAtPiBKcy5qc19zdHJpbmcgSnMudCBKcy5qc19hcnJheSBKcy50IEpzLm1ldGhcbiAgZW5kXG5cbmxldCBpbnRsID0gSnMuVW5zYWZlLmdsb2JhbCMjLl9JbnRsXG5cbmxldCBjb2xsYXRvcl9jb25zdHIgPSBKcy5VbnNhZmUuZ2xvYmFsIyMuX0ludGwjIy5fQ29sbGF0b3JcblxubGV0IGRhdGVUaW1lRm9ybWF0X2NvbnN0ciA9IEpzLlVuc2FmZS5nbG9iYWwjIy5fSW50bCMjLl9EYXRlVGltZUZvcm1hdFxuXG5sZXQgbnVtYmVyRm9ybWF0X2NvbnN0ciA9IEpzLlVuc2FmZS5nbG9iYWwjIy5fSW50bCMjLl9OdW1iZXJGb3JtYXRcblxubGV0IHBsdXJhbFJ1bGVzX2NvbnN0ciA9IEpzLlVuc2FmZS5nbG9iYWwjIy5fSW50bCMjLl9QbHVyYWxSdWxlc1xuXG5sZXQgaXNfc3VwcG9ydGVkICgpID0gSnMuT3B0ZGVmLnRlc3QgaW50bFxuIiwidHlwZSB0ID0gVGFnIG9mIFhtbG0udGFnICogdCBsaXN0IHwgVGV4dCBvZiBzdHJpbmdcblxubGV0IHBhcnNlIGRhdGEgPVxuICBsZXQgaW5wdXQgPSBYbWxtLm1ha2VfaW5wdXQgKGBTdHJpbmcgKDAsIGRhdGEpKSBpblxuICBsZXQgZWwgdGFnIHN1YnRyZWVzID0gVGFnICh0YWcsIHN1YnRyZWVzKSBpblxuICBsZXQgZGF0YSB0ZXh0ID0gVGV4dCB0ZXh0IGluXG4gICgqIHVzZSBgaW5wdXRfZG9jX3RyZWVgIHNpbmNlIGBtYWtlX2lucHV0IGdpdmVzIGFuXG4gICAgIChwb3RlbnRpYWxseSBlbXB0eSkgRFREICopXG4gIGxldCBfZHRkLCBkb2NfdHJlZSA9IFhtbG0uaW5wdXRfZG9jX3RyZWUgfmVsIH5kYXRhIGlucHV0IGluXG4gIGRvY190cmVlXG4iLCJtb2R1bGUgSnNvbyA9IEpzX29mX29jYW1sXG5tb2R1bGUgSnMgPSBKc29vLkpzXG5cbnR5cGUganNvbiA9XG4gIHwgU3RyaW5nIG9mIHN0cmluZ1xuICB8IEludGVnZXIgb2YgaW50XG4gIHwgRmxvYXQgb2YgZmxvYXRcbiAgfCBPYmplY3Qgb2YgKHN0cmluZyAqIGpzb24pIGxpc3RcbiAgfCBMaXN0IG9mIGpzb24gbGlzdFxuXG5sZXQgcmVjIGpzX29mX2pzb24gPSBmdW5jdGlvblxuICB8IFN0cmluZyBzIC0+IEpzLlVuc2FmZS5pbmplY3QgQEAgSnMuc3RyaW5nIHNcbiAgfCBJbnRlZ2VyIGkgLT4gSnMuVW5zYWZlLmluamVjdCBpXG4gIHwgRmxvYXQgZiAtPiBKcy5VbnNhZmUuaW5qZWN0IGZcbiAgfCBPYmplY3QgY29udGVudCAtPlxuICAgICAgbGV0IGNvbnRlbnQgPVxuICAgICAgICBjb250ZW50XG4gICAgICAgIHw+IExpc3QubWFwIChmdW4gKGtleSwgdikgLT5cbiAgICAgICAgICAgICAgIGxldCB2ID0ganNfb2ZfanNvbiB2IGluXG4gICAgICAgICAgICAgICAoa2V5LCB2KSlcbiAgICAgICAgfD4gQXJyYXkub2ZfbGlzdFxuICAgICAgaW5cbiAgICAgIEpzLlVuc2FmZS5vYmogY29udGVudFxuICB8IExpc3QgY29udGVudCAtPlxuICAgICAgbGV0IGNvbnRlbnQgPVxuICAgICAgICBjb250ZW50IHw+IExpc3QubWFwIGpzX29mX2pzb24gfD4gQXJyYXkub2ZfbGlzdCB8PiBKcy5hcnJheVxuICAgICAgaW5cbiAgICAgIEpzLlVuc2FmZS5pbmplY3QgY29udGVudFxuXG5sZXQgaXNfYmxhbmsgcyA9IG1hdGNoIFN0cmluZy50cmltIHMgd2l0aCBcIlwiIC0+IHRydWUgfCBfIC0+IGZhbHNlXG5cbmxldCByZWMgbmFtZXNfdW5pcXVlID8oYWNjID0gW10pID0gZnVuY3Rpb25cbiAgfCBbXSAtPiB0cnVlXG4gIHwgKGssIF8pIDo6IHhzIC0+IChcbiAgICAgIG1hdGNoIExpc3QubWVtIGsgYWNjIHdpdGhcbiAgICAgIHwgdHJ1ZSAtPiBmYWxzZVxuICAgICAgfCBmYWxzZSAtPiBuYW1lc191bmlxdWUgfmFjYzooayA6OiBhY2MpIHhzKVxuXG5sZXQgYWxsX3VuaXF1ZSBqc29ucyA9XG4gIGxldCBuYW1lcyA9XG4gICAgTGlzdC5tYXBcbiAgICAgIChmdW5jdGlvblxuICAgICAgICAoKiBpZiBpdCBpcyBhbiBvYmplY3QgYW5kIGl0IGhhcyBvbmUga2V5LXZhbHVlIHBhaXIgKilcbiAgICAgICAgfCBPYmplY3QgWyAoaywgdikgXSAtPiBTb21lIChrLCB2KVxuICAgICAgICAoKiBhdG9taWMgdmFsdWVzIGdldCBtYXBwZWQgdG8gXyAqKVxuICAgICAgICB8IChGbG9hdCBfIGFzIHYpIHwgKEludGVnZXIgXyBhcyB2KSB8IChTdHJpbmcgXyBhcyB2KSAtPiBTb21lIChcIl9cIiwgdilcbiAgICAgICAgKCogb3RoZXIgdHlwZXMgb2YgdmFsdWVzIHdpbGwgZ2V0IGRpc2NhcmRlZCAqKVxuICAgICAgICB8IF8gLT4gTm9uZSlcbiAgICAgIGpzb25zXG4gIGluXG4gIG1hdGNoIExpc3QuZm9yX2FsbCBPcHRpb24uaXNfc29tZSBuYW1lcyB3aXRoXG4gIHwgZmFsc2UgLT4gTGlzdCBqc29uc1xuICB8IHRydWUgLT4gKFxuICAgICAgbGV0IGt2cyA9IExpc3QuZmlsdGVyX21hcCBGdW4uaWQgbmFtZXMgaW5cbiAgICAgIG1hdGNoIG5hbWVzX3VuaXF1ZSBrdnMgd2l0aCB0cnVlIC0+IE9iamVjdCBrdnMgfCBmYWxzZSAtPiBMaXN0IGpzb25zKVxuXG5sZXQgdHJlZV90b19qcyB0cmVlID1cbiAgbGV0IHJlYyBjb252ZXJ0ID0gZnVuY3Rpb25cbiAgICB8IFBhcnNlci5UZXh0IHMgLT4gKFxuICAgICAgICBtYXRjaCBpc19ibGFuayBzIHdpdGggZmFsc2UgLT4gU29tZSAoU3RyaW5nIHMpIHwgdHJ1ZSAtPiBOb25lKVxuICAgIHwgVGFnICh0YWcsIHN1YnRyZWVzKSAtPlxuICAgICAgICBsZXQgdGFnX25hbWUsIGF0dHJzID0gdGFnIGluXG4gICAgICAgIGxldCB0YWdfbmFtZV91cmksIHRhZ19uYW1lX2xvY2FsID0gdGFnX25hbWUgaW5cbiAgICAgICAgbGV0IG91dF9uYW1lID1cbiAgICAgICAgICBtYXRjaCB0YWdfbmFtZV91cmkgd2l0aFxuICAgICAgICAgIHwgXCJcIiAtPiB0YWdfbmFtZV9sb2NhbFxuICAgICAgICAgIHwgdGFnX25hbWVfdXJpIC0+IHRhZ19uYW1lX3VyaSBeIFwiOlwiIF4gdGFnX25hbWVfbG9jYWxcbiAgICAgICAgaW5cbiAgICAgICAgbGV0IGF0dHJpYnV0ZXMgPVxuICAgICAgICAgIG1hdGNoIGF0dHJzIHdpdGhcbiAgICAgICAgICB8IFtdIC0+IE5vbmVcbiAgICAgICAgICB8IGF0dHJzIC0+XG4gICAgICAgICAgICAgIGF0dHJzXG4gICAgICAgICAgICAgIHw+IExpc3QubWFwIChmdW4gKChfdXJpLCBsb2NhbCksIHZhbHVlKSAtPiAobG9jYWwsIFN0cmluZyB2YWx1ZSkpXG4gICAgICAgICAgICAgIHw+IE9wdGlvbi5zb21lXG4gICAgICAgIGluXG4gICAgICAgIGxldCBzdWJ0cmVlcyA9IExpc3QuZmlsdGVyX21hcCBjb252ZXJ0IHN1YnRyZWVzIGluXG4gICAgICAgIGxldCBzdWJ0cmVlcyA9XG4gICAgICAgICAgbWF0Y2ggYXR0cmlidXRlcyB3aXRoXG4gICAgICAgICAgfCBTb21lIGF0dHJpYnV0ZXMgLT5cbiAgICAgICAgICAgICAgbGV0IHRlbXAgPSBPYmplY3QgWyAoXCIkXCIsIE9iamVjdCBhdHRyaWJ1dGVzKSBdIGluXG4gICAgICAgICAgICAgIHRlbXAgOjogc3VidHJlZXNcbiAgICAgICAgICB8IE5vbmUgLT4gc3VidHJlZXNcbiAgICAgICAgaW5cbiAgICAgICAgbGV0IHN1YnRyZWVzID0gYWxsX3VuaXF1ZSBzdWJ0cmVlcyBpblxuICAgICAgICBTb21lIChPYmplY3QgWyAob3V0X25hbWUsIHN1YnRyZWVzKSBdKVxuICBpblxuICBqc19vZl9qc29uXG4gIEBAXG4gIG1hdGNoIGNvbnZlcnQgdHJlZSB3aXRoXG4gIHwgTm9uZSAtPiBTdHJpbmcgXCJUT0RPLCB1bmNsZWFyIHNlbWFudGljc1wiXG4gIHwgU29tZSBqc29uIC0+IGpzb25cblxuKCogQVBJICopXG5cbmxldCAoKSA9XG4gIEpzb28uSnMuZXhwb3J0X2FsbFxuICAgIChvYmplY3QlanNcbiAgICAgICBtZXRob2QgdGVzdDEgPSBqc19vZl9qc29uIChTdHJpbmcgXCJmb29cIilcbiAgICAgICBtZXRob2QgdGVzdDIgPSBqc19vZl9qc29uIChJbnRlZ2VyIDQyKVxuICAgICAgIG1ldGhvZCB0ZXN0MyA9IGpzX29mX2pzb24gKEZsb2F0IDIzLilcbiAgICAgICBtZXRob2QgdGVzdDQgPSBqc19vZl9qc29uIChMaXN0IFsgSW50ZWdlciA0MiBdKVxuICAgICAgIG1ldGhvZCB0ZXN0NSA9IGpzX29mX2pzb24gKE9iamVjdCBbIChcImZvb1wiLCBTdHJpbmcgXCJiYXJcIikgXSlcblxuICAgICAgIG1ldGhvZCBwYXJzZVN0cmluZyBzdHIgY2IgPVxuICAgICAgICAgbWF0Y2ggUGFyc2VyLnBhcnNlIHN0ciB3aXRoXG4gICAgICAgICB8IHRyZWUgLT5cbiAgICAgICAgICAgICBsZXQgdHJlZSA9IHRyZWVfdG9fanMgdHJlZSBpblxuICAgICAgICAgICAgIEpzLlVuc2FmZS5mdW5fY2FsbCBjYlxuICAgICAgICAgICAgICAgW3wgSnMuVW5zYWZlLmluamVjdCBKcy5udWxsOyBKcy5VbnNhZmUuaW5qZWN0IEBAIEpzLnNvbWUgdHJlZSB8XVxuICAgICAgICAgfCBleGNlcHRpb24gXyAtPlxuICAgICAgICAgICAgIEpzLlVuc2FmZS5mdW5fY2FsbCBjYlxuICAgICAgICAgICAgICAgW3xcbiAgICAgICAgICAgICAgICAgSnMuVW5zYWZlLmluamVjdCBAQCBKcy5zb21lIFwiVE9ETyBwYXJzaW5nIGVycm9yXCI7XG4gICAgICAgICAgICAgICAgIEpzLlVuc2FmZS5pbmplY3QgSnMubnVsbDtcbiAgICAgICAgICAgICAgIHxdXG4gICAgICAgKCogbWV0aG9kIHBhcnNlU3RyaW5nX3dpdGhPcHRzIHN0ciBfb3B0cyBfY2IgPSBQYXJzZXIucGFyc2Ugc3RyICopXG4gICAgZW5kKVxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBFbnN1cmUgdGhhdCBbYXRfZXhpdF0gZnVuY3Rpb25zIGFyZSBjYWxsZWQgYXQgdGhlIGVuZCBvZiBldmVyeSBwcm9ncmFtICopXG5cbmxldCBfID0gZG9fYXRfZXhpdCgpXG4iXX0= diff --git a/XNSimHtml/node_modules/xml2js/lib/xml2js.js b/XNSimHtml/node_modules/xml2js/lib/xml2js.js deleted file mode 100644 index 24b6e69..0000000 --- a/XNSimHtml/node_modules/xml2js/lib/xml2js.js +++ /dev/null @@ -1,39 +0,0 @@ -// Generated by CoffeeScript 1.12.7 -(function() { - "use strict"; - var builder, defaults, parser, processors, - extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, - hasProp = {}.hasOwnProperty; - - defaults = require('./defaults'); - - builder = require('./builder'); - - parser = require('./parser'); - - processors = require('./processors'); - - exports.defaults = defaults.defaults; - - exports.processors = processors; - - exports.ValidationError = (function(superClass) { - extend(ValidationError, superClass); - - function ValidationError(message) { - this.message = message; - } - - return ValidationError; - - })(Error); - - exports.Builder = builder.Builder; - - exports.Parser = parser.Parser; - - exports.parseString = parser.parseString; - - exports.parseStringPromise = parser.parseStringPromise; - -}).call(this); diff --git a/XNSimHtml/node_modules/xml2js/package.json b/XNSimHtml/node_modules/xml2js/package.json deleted file mode 100644 index d241d68..0000000 --- a/XNSimHtml/node_modules/xml2js/package.json +++ /dev/null @@ -1,93 +0,0 @@ -{ - "name": "xml2js", - "description": "Simple XML to JavaScript object converter.", - "keywords": [ - "xml", - "json" - ], - "homepage": "https://github.com/Leonidas-from-XIV/node-xml2js", - "version": "0.6.2", - "author": "Marek Kubica (https://xivilization.net)", - "contributors": [ - "maqr (https://github.com/maqr)", - "Ben Weaver (http://benweaver.com/)", - "Jae Kwon (https://github.com/jaekwon)", - "Jim Robert", - "Ștefan Rusu (http://www.saltwaterc.eu/)", - "Carter Cole (http://cartercole.com/)", - "Kurt Raschke (http://www.kurtraschke.com/)", - "Contra (https://github.com/Contra)", - "Marcelo Diniz (https://github.com/mdiniz)", - "Michael Hart (https://github.com/mhart)", - "Zachary Scott (http://zacharyscott.net/)", - "Raoul Millais (https://github.com/raoulmillais)", - "Salsita Software (http://www.salsitasoft.com/)", - "Mike Schilling (http://www.emotive.com/)", - "Jackson Tian (http://weibo.com/shyvo)", - "Mikhail Zyatin (https://github.com/Sitin)", - "Chris Tavares (https://github.com/christav)", - "Frank Xu (http://f2e.us/)", - "Guido D'Albore (http://www.bitstorm.it/)", - "Jack Senechal (http://jacksenechal.com/)", - "Matthias Hölzl (https://github.com/hoelzl)", - "Camille Reynders (http://www.creynders.be/)", - "Taylor Gautier (https://github.com/tsgautier)", - "Todd Bryan (https://github.com/toddrbryan)", - "Leore Avidar (http://leoreavidar.com/)", - "Dave Aitken (http://www.actionshrimp.com/)", - "Shaney Orrowe ", - "Candle ", - "Jess Telford (http://jes.st)", - "Tom Hughes < (http://compton.nu/)", - "Piotr Rochala (http://rocha.la/)", - "Michael Avila (https://github.com/michaelavila)", - "Ryan Gahl (https://github.com/ryedin)", - "Eric Laberge (https://github.com/elaberge)", - "Benjamin E. Coe (https://twitter.com/benjamincoe)", - "Stephen Cresswell (https://github.com/cressie176)", - "Pascal Ehlert (http://www.hacksrus.net/)", - "Tom Spencer (http://fiznool.com/)", - "Tristian Flanagan (https://github.com/tflanagan)", - "Tim Johns (https://github.com/TimJohns)", - "Bogdan Chadkin (https://github.com/TrySound)", - "David Wood (http://codesleuth.co.uk/)", - "Nicolas Maquet (https://github.com/nmaquet)", - "Lovell Fuller (http://lovell.info/)", - "d3adc0d3 (https://github.com/d3adc0d3)", - "James Crosby (https://github.com/autopulated)" - ], - "main": "./lib/xml2js", - "files": [ - "lib" - ], - "directories": { - "lib": "./lib" - }, - "scripts": { - "build": "cake build", - "test": "zap", - "coverage": "nyc npm test && nyc report", - "coveralls": "nyc npm test && nyc report --reporter=text-lcov | coveralls", - "doc": "cake doc" - }, - "repository": { - "type": "git", - "url": "https://github.com/Leonidas-from-XIV/node-xml2js.git" - }, - "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, - "devDependencies": { - "coffeescript": ">=1.10.0 <2", - "coveralls": "^3.0.1", - "diff": ">=1.0.8", - "docco": ">=0.6.2", - "nyc": ">=2.2.1", - "zap": ">=0.2.9 <1" - }, - "engines": { - "node": ">=4.0.0" - }, - "license": "MIT" -} diff --git a/XNSimHtml/node_modules/xmlbuilder/CHANGELOG.md b/XNSimHtml/node_modules/xmlbuilder/CHANGELOG.md deleted file mode 100644 index 610f412..0000000 --- a/XNSimHtml/node_modules/xmlbuilder/CHANGELOG.md +++ /dev/null @@ -1,470 +0,0 @@ -# Change Log - -All notable changes to this project are documented in this file. This project adheres to [Semantic Versioning](http://semver.org/#semantic-versioning-200). - -## [11.0.0] - 2019-02-18 -- Calling `end()` with arguments no longer overwrites writer options. See [#120](https://github.com/oozcitak/xmlbuilder-js/issues/120). -- Added writer state and customizable space and endline functions to help customize writer behavior. Also added `openNode` and `closeNode` functions to writer. See [#193](https://github.com/oozcitak/xmlbuilder-js/issues/193). -- Fixed a bug where writer functions would not be called for nodes with a single child node in pretty print mode. See [#195](https://github.com/oozcitak/xmlbuilder-js/issues/195). -- Renamed `elEscape` to `textEscape` in `XMLStringifier`. -- Fixed a bug where empty arrays would produce child nodes. See [#190](https://github.com/oozcitak/xmlbuilder-js/issues/190). -- Removed the `skipNullAttributes` option. `null` attributes are now skipped by default. Added the `keepNullAttributes` option in case someone needs the old behavior. -- Removed the `skipNullNodes` option. `null` nodes are now skipped by default. Added the `keepNullNodes` option in case someone needs the old behavior. -- `undefined` values are now skipped when converting JS objects. -- Renamed stringify functions. See [#194](https://github.com/oozcitak/xmlbuilder-js/issues/194): - * `eleName` -> `name` - * `attName` -> `name` - * `eleText` -> `text` -- Fixed argument order for `attribute` function in the writer. See [#196](https://github.com/oozcitak/xmlbuilder-js/issues/196). -- Added `openAttribute` and `closeAttribute` functions to writer. See [#196](https://github.com/oozcitak/xmlbuilder-js/issues/196). -- Added node types to node objects. Node types and writer states are exported by the module with the `nodeType` and `writerState` properties. -- Fixed a bug where array items would not be correctly converted. See [#159](https://github.com/oozcitak/xmlbuilder-js/issues/159). -- Fixed a bug where mixed-content inside JS objects with `#text` decorator would not be correctly converted. See [#171](https://github.com/oozcitak/xmlbuilder-js/issues/171). -- Fixed a bug where JS objects would not be expanded in callback mode. See [#173](https://github.com/oozcitak/xmlbuilder-js/issues/173). -- Fixed a bug where character validation would not obey document's XML version. Added separate validation for XML 1.0 and XML 1.1 documents. See [#169](https://github.com/oozcitak/xmlbuilder-js/issues/169). -- Fixed a bug where names would not be validated according to the spec. See [#49](https://github.com/oozcitak/xmlbuilder-js/issues/49). -- Renamed `text` property to `value` in comment and cdata nodes to unify the API. -- Removed `doctype` function to prevent name clash with DOM implementation. Use the `dtd` function instead. -- Removed dummy nodes from the XML tree (Those were created while chain-building the tree). -- Renamed `attributes`property to `attribs` to prevent name clash with DOM property with the same name. -- Implemented the DOM standard (read-only) to support XPath lookups. XML namespaces are not currently supported. See [#122](https://github.com/oozcitak/xmlbuilder-js/issues/122). - -## [10.1.1] - 2018-10-24 -- Fixed an edge case where a null node at root level would be printed although `skipNullNodes` was set. See [#187](https://github.com/oozcitak/xmlbuilder-js/issues/187). - -## [10.1.0] - 2018-10-10 -- Added the `skipNullNodes` option to skip nodes with null values. See [#158](https://github.com/oozcitak/xmlbuilder-js/issues/158). - -## [10.0.0] - 2018-04-26 -- Added current indentation level as a parameter to the onData function when in callback mode. See [#125](https://github.com/oozcitak/xmlbuilder-js/issues/125). -- Added name of the current node and parent node to error messages where possible. See [#152](https://github.com/oozcitak/xmlbuilder-js/issues/152). This has the potential to break code depending on the content of error messages. -- Fixed an issue where objects created with Object.create(null) created an error. See [#176](https://github.com/oozcitak/xmlbuilder-js/issues/176). -- Added test builds for node.js v8 and v10. - -## [9.0.7] - 2018-02-09 -- Simplified regex used for validating encoding. - -## [9.0.4] - 2017-08-16 -- `spacebeforeslash` writer option accepts `true` as well as space char(s). - -## [9.0.3] - 2017-08-15 -- `spacebeforeslash` writer option can now be used with XML fragments. - -## [9.0.2] - 2017-08-15 -- Added the `spacebeforeslash` writer option to add a space character before closing tags of empty elements. See -[#157](https://github.com/oozcitak/xmlbuilder-js/issues/157). - -## [9.0.1] - 2017-06-19 -- Fixed character validity checks to work with node.js 4.0 and 5.0. See -[#161](https://github.com/oozcitak/xmlbuilder-js/issues/161). - -## [9.0.0] - 2017-05-05 -- Removed case conversion options. -- Removed support for node.js 4.0 and 5.0. Minimum required version is now 6.0. -- Fixed valid char filter to use XML 1.1 instead of 1.0. See -[#147](https://github.com/oozcitak/xmlbuilder-js/issues/147). -- Added options for negative indentation and suppressing pretty printing of text -nodes. See -[#145](https://github.com/oozcitak/xmlbuilder-js/issues/145). - -## [8.2.2] - 2016-04-08 -- Falsy values can now be used as a text node in callback mode. - -## [8.2.1] - 2016-04-07 -- Falsy values can now be used as a text node. See -[#117](https://github.com/oozcitak/xmlbuilder-js/issues/117). - -## [8.2.0] - 2016-04-01 -- Removed lodash dependency to keep the library small and simple. See -[#114](https://github.com/oozcitak/xmlbuilder-js/issues/114), -[#53](https://github.com/oozcitak/xmlbuilder-js/issues/53), -and [#43](https://github.com/oozcitak/xmlbuilder-js/issues/43). -- Added title case to name conversion options. - -## [8.1.0] - 2016-03-29 -- Added the callback option to the `begin` export function. When used with a -callback function, the XML document will be generated in chunks and each chunk -will be passed to the supplied function. In this mode, `begin` uses a different -code path and the builder should use much less memory since the entire XML tree -is not kept. There are a few drawbacks though. For example, traversing the document -tree or adding attributes to a node after it is written is not possible. It is -also not possible to remove nodes or attributes. - -``` js -var result = ''; - -builder.begin(function(chunk) { result += chunk; }) - .dec() - .ele('root') - .ele('xmlbuilder').up() - .end(); -``` - -- Replaced native `Object.assign` with `lodash.assign` to support old JS engines. See [#111](https://github.com/oozcitak/xmlbuilder-js/issues/111). - -## [8.0.0] - 2016-03-25 -- Added the `begin` export function. See the wiki for details. -- Added the ability to add comments and processing instructions before and after the root element. Added `commentBefore`, `commentAfter`, `instructionBefore` and `instructionAfter` functions for this purpose. -- Dropped support for old node.js releases. Minimum required node.js version is now 4.0. - -## [7.0.0] - 2016-03-21 -- Processing instructions are now created as regular nodes. This is a major breaking change if you are using processing instructions. Previously processing instructions were inserted before their parent node. After this change processing instructions are appended to the children of the parent node. Note that it is not currently possible to insert processing instructions before or after the root element. -```js -root.ele('node').ins('pi'); -// pre-v7 - -// v7 - -``` - -## [6.0.0] - 2016-03-20 -- Added custom XML writers. The default string conversion functions are now collected under the `XMLStringWriter` class which can be accessed by the `stringWriter(options)` function exported by the module. An `XMLStreamWriter` is also added which outputs the XML document to a writable stream. A stream writer can be created by calling the `streamWriter(stream, options)` function exported by the module. Both classes are heavily customizable and the details are added to the wiki. It is also possible to write an XML writer from scratch and use it when calling `end()` on the XML document. - -## [5.0.1] - 2016-03-08 -- Moved require statements for text case conversion to the top of files to reduce lazy requires. - -## [5.0.0] - 2016-03-05 -- Added text case option for element names and attribute names. Valid cases are `lower`, `upper`, `camel`, `kebab` and `snake`. -- Attribute and element values are escaped according to the [Canonical XML 1.0 specification](http://www.w3.org/TR/2000/WD-xml-c14n-20000119.html#charescaping). See [#54](https://github.com/oozcitak/xmlbuilder-js/issues/54) and [#86](https://github.com/oozcitak/xmlbuilder-js/issues/86). -- Added the `allowEmpty` option to `end()`. When this option is set, empty elements are not self-closed. -- Added support for [nested CDATA](https://en.wikipedia.org/wiki/CDATA#Nesting). The triad `]]>` in CDATA is now automatically replaced with `]]]]>`. - -## [4.2.1] - 2016-01-15 -- Updated lodash dependency to 4.0.0. - -## [4.2.0] - 2015-12-16 -- Added the `noDoubleEncoding` option to `create()` to control whether existing html entities are encoded. - -## [4.1.0] - 2015-11-11 -- Added the `separateArrayItems` option to `create()` to control how arrays are handled when converting from objects. e.g. - -```js -root.ele({ number: [ "one", "two" ]}); -// with separateArrayItems: true - - - - -// with separateArrayItems: false -one -two -``` - -## [4.0.0] - 2015-11-01 -- Removed the `#list` decorator. Array items are now created as child nodes by default. -- Fixed a bug where the XML encoding string was checked partially. - -## [3.1.0] - 2015-09-19 -- `#list` decorator ignores empty arrays. - -## [3.0.0] - 2015-09-10 -- Allow `\r`, `\n` and `\t` in attribute values without escaping. See [#86](https://github.com/oozcitak/xmlbuilder-js/issues/86). - -## [2.6.5] - 2015-09-09 -- Use native `isArray` instead of lodash. -- Indentation of processing instructions are set to the parent element's. - -## [2.6.4] - 2015-05-27 -- Updated lodash dependency to 3.5.0. - -## [2.6.3] - 2015-05-27 -- Bumped version because previous release was not published on npm. - -## [2.6.2] - 2015-03-10 -- Updated lodash dependency to 3.5.0. - -## [2.6.1] - 2015-02-20 -- Updated lodash dependency to 3.3.0. - -## [2.6.0] - 2015-02-20 -- Fixed a bug where the `XMLNode` constructor overwrote the super class parent. -- Removed document property from cloned nodes. -- Switched to mocha.js for testing. - -## [2.5.2] - 2015-02-16 -- Updated lodash dependency to 3.2.0. - -## [2.5.1] - 2015-02-09 -- Updated lodash dependency to 3.1.0. -- Support all node >= 0.8. - -## [2.5.0] - 2015-00-03 -- Updated lodash dependency to 3.0.0. - -## [2.4.6] - 2015-01-26 -- Show more information from attribute creation with null values. -- Added iojs as an engine. -- Self close elements with empty text. - -## [2.4.5] - 2014-11-15 -- Fixed prepublish script to run on windows. -- Fixed bug in XMLStringifier where an undefined value was used while reporting an invalid encoding value. -- Moved require statements to the top of files to reduce lazy requires. See [#62](https://github.com/oozcitak/xmlbuilder-js/issues/62). - -## [2.4.4] - 2014-09-08 -- Added the `offset` option to `toString()` for use in XML fragments. - -## [2.4.3] - 2014-08-13 -- Corrected license in package description. - -## [2.4.2] - 2014-08-13 -- Dropped performance test and memwatch dependency. - -## [2.4.1] - 2014-08-12 -- Fixed a bug where empty indent string was omitted when pretty printing. See [#59](https://github.com/oozcitak/xmlbuilder-js/issues/59). - -## [2.4.0] - 2014-08-04 -- Correct cases of pubID and sysID. -- Use single lodash instead of separate npm modules. See [#53](https://github.com/oozcitak/xmlbuilder-js/issues/53). -- Escape according to Canonical XML 1.0. See [#54](https://github.com/oozcitak/xmlbuilder-js/issues/54). - -## [2.3.0] - 2014-07-17 -- Convert objects to JS primitives while sanitizing user input. -- Object builder preserves items with null values. See [#44](https://github.com/oozcitak/xmlbuilder-js/issues/44). -- Use modularized lodash functions to cut down dependencies. -- Process empty objects when converting from objects so that we don't throw on empty child objects. - -## [2.2.1] - 2014-04-04 -- Bumped version because previous release was not published on npm. - -## [2.2.0] - 2014-04-04 -- Switch to lodash from underscore. -- Removed legacy `ext` option from `create()`. -- Drop old node versions: 0.4, 0.5, 0.6. 0.8 is the minimum requirement from now on. - -## [2.1.0] - 2013-12-30 -- Removed duplicate null checks from constructors. -- Fixed node count in performance test. -- Added option for skipping null attribute values. See [#26](https://github.com/oozcitak/xmlbuilder-js/issues/26). -- Allow multiple values in `att()` and `ins()`. -- Added ability to run individual performance tests. -- Added flag for ignoring decorator strings. - -## [2.0.1] - 2013-12-24 -- Removed performance tests from npm package. - -## [2.0.0] - 2013-12-24 -- Combined loops for speed up. -- Added support for the DTD and XML declaration. -- `clone` includes attributes. -- Added performance tests. -- Evaluate attribute value if function. -- Evaluate instruction value if function. - -## [1.1.2] - 2013-12-11 -- Changed processing instruction decorator to `?`. - -## [1.1.1] - 2013-12-11 -- Added processing instructions to JS object conversion. - -## [1.1.0] - 2013-12-10 -- Added license to package. -- `create()` and `element()` accept JS object to fully build the document. -- Added `nod()` and `n()` aliases for `node()`. -- Renamed `convertAttChar` decorator to `convertAttKey`. -- Ignore empty decorator strings when converting JS objects. - -## [1.0.2] - 2013-11-27 -- Removed temp file which was accidentally included in the package. - -## [1.0.1] - 2013-11-27 -- Custom stringify functions affect current instance only. - -## [1.0.0] - 2013-11-27 -- Added processing instructions. -- Added stringify functions to sanitize and convert input values. -- Added option for headless XML documents. -- Added vows tests. -- Removed Makefile. Using npm publish scripts instead. -- Removed the `begin()` function. `create()` begins the document by creating the root node. - -## [0.4.3] - 2013-11-08 -- Added option to include surrogate pairs in XML content. See [#29](https://github.com/oozcitak/xmlbuilder-js/issues/29). -- Fixed empty value string representation in pretty mode. -- Added pre and postpublish scripts to package.json. -- Filtered out prototype properties when appending attributes. See [#31](https://github.com/oozcitak/xmlbuilder-js/issues/31). - -## [0.4.2] - 2012-09-14 -- Removed README.md from `.npmignore`. - -## [0.4.1] - 2012-08-31 -- Removed `begin()` calls in favor of `XMLBuilder` constructor. -- Added the `end()` function. `end()` is a convenience over `doc().toString()`. - -## [0.4.0] - 2012-08-31 -- Added arguments to `XMLBuilder` constructor to allow the name of the root element and XML prolog to be defined in one line. -- Soft deprecated `begin()`. - -## [0.3.11] - 2012-08-13 -- Package keywords are fixed to be an array of values. - -## [0.3.10] - 2012-08-13 -- Brought back npm package contents which were lost due to incorrect configuration of `package.json` in previous releases. - -## [0.3.3] - 2012-07-27 -- Implemented `importXMLBuilder()`. - -## [0.3.2] - 2012-07-20 -- Fixed a duplicated escaping problem on `element()`. -- Fixed a problem with text node creation from empty string. -- Calling `root()` on the document element returns the root element. -- `XMLBuilder` no longer extends `XMLFragment`. - -## [0.3.1] - 2011-11-28 -- Added guards for document element so that nodes cannot be inserted at document level. - -## [0.3.0] - 2011-11-28 -- Added `doc()` to return the document element. - -## [0.2.2] - 2011-11-28 -- Prevent code relying on `up()`'s older behavior to break. - -## [0.2.1] - 2011-11-28 -- Added the `root()` function. - -## [0.2.0] - 2011-11-21 -- Added Travis-CI integration. -- Added coffee-script dependency. -- Added insert, traversal and delete functions. - -## [0.1.7] - 2011-10-25 -- No changes. Accidental release. - -## [0.1.6] - 2011-10-25 -- Corrected `package.json` bugs link to `url` from `web`. - -## [0.1.5] - 2011-08-08 -- Added missing npm package contents. - -## [0.1.4] - 2011-07-29 -- Text-only nodes are no longer indented. -- Added documentation for multiple instances. - -## [0.1.3] - 2011-07-27 -- Exported the `create()` function to return a new instance. This allows multiple builder instances to be constructed. -- Fixed `u()` function so that it now correctly calls `up()`. -- Fixed typo in `element()` so that `attributes` and `text` can be passed interchangeably. - -## [0.1.2] - 2011-06-03 -- `ele()` accepts element text. -- `attributes()` now overrides existing attributes if passed the same attribute name. - -## [0.1.1] - 2011-05-19 -- Added the raw output option. -- Removed most validity checks. - -## [0.1.0] - 2011-04-27 -- `text()` and `cdata()` now return parent element. -- Attribute values are escaped. - -## [0.0.7] - 2011-04-23 -- Coerced text values to string. - -## [0.0.6] - 2011-02-23 -- Added support for XML comments. -- Text nodes are checked against CharData. - -## [0.0.5] - 2010-12-31 -- Corrected the name of the main npm module in `package.json`. - -## [0.0.4] - 2010-12-28 -- Added `.npmignore`. - -## [0.0.3] - 2010-12-27 -- root element is now constructed in `begin()`. -- moved prolog to `begin()`. -- Added the ability to have CDATA in element text. -- Removed unused prolog aliases. -- Removed `builder()` function from main module. -- Added the name of the main npm module in `package.json`. - -## [0.0.2] - 2010-11-03 -- `element()` expands nested arrays. -- Added pretty printing. -- Added the `up()`, `build()` and `prolog()` functions. -- Added readme. - -## 0.0.1 - 2010-11-02 -- Initial release - -[11.0.0]: https://github.com/oozcitak/xmlbuilder-js/compare/v10.1.1...v11.0.0 -[10.1.1]: https://github.com/oozcitak/xmlbuilder-js/compare/v10.1.0...v10.1.1 -[10.1.0]: https://github.com/oozcitak/xmlbuilder-js/compare/v10.0.0...v10.1.0 -[10.0.0]: https://github.com/oozcitak/xmlbuilder-js/compare/v9.0.7...v10.0.0 -[9.0.7]: https://github.com/oozcitak/xmlbuilder-js/compare/v9.0.4...v9.0.7 -[9.0.4]: https://github.com/oozcitak/xmlbuilder-js/compare/v9.0.3...v9.0.4 -[9.0.3]: https://github.com/oozcitak/xmlbuilder-js/compare/v9.0.2...v9.0.3 -[9.0.2]: https://github.com/oozcitak/xmlbuilder-js/compare/v9.0.1...v9.0.2 -[9.0.1]: https://github.com/oozcitak/xmlbuilder-js/compare/v9.0.0...v9.0.1 -[9.0.0]: https://github.com/oozcitak/xmlbuilder-js/compare/v8.2.2...v9.0.0 -[8.2.2]: https://github.com/oozcitak/xmlbuilder-js/compare/v8.2.1...v8.2.2 -[8.2.1]: https://github.com/oozcitak/xmlbuilder-js/compare/v8.2.0...v8.2.1 -[8.2.0]: https://github.com/oozcitak/xmlbuilder-js/compare/v8.1.0...v8.2.0 -[8.1.0]: https://github.com/oozcitak/xmlbuilder-js/compare/v8.0.0...v8.1.0 -[8.0.0]: https://github.com/oozcitak/xmlbuilder-js/compare/v7.0.0...v8.0.0 -[7.0.0]: https://github.com/oozcitak/xmlbuilder-js/compare/v6.0.0...v7.0.0 -[6.0.0]: https://github.com/oozcitak/xmlbuilder-js/compare/v5.0.1...v6.0.0 -[5.0.1]: https://github.com/oozcitak/xmlbuilder-js/compare/v5.0.0...v5.0.1 -[5.0.0]: https://github.com/oozcitak/xmlbuilder-js/compare/v4.2.1...v5.0.0 -[4.2.1]: https://github.com/oozcitak/xmlbuilder-js/compare/v4.2.0...v4.2.1 -[4.2.0]: https://github.com/oozcitak/xmlbuilder-js/compare/v4.1.0...v4.2.0 -[4.1.0]: https://github.com/oozcitak/xmlbuilder-js/compare/v4.0.0...v4.1.0 -[4.0.0]: https://github.com/oozcitak/xmlbuilder-js/compare/v3.1.0...v4.0.0 -[3.1.0]: https://github.com/oozcitak/xmlbuilder-js/compare/v3.0.0...v3.1.0 -[3.0.0]: https://github.com/oozcitak/xmlbuilder-js/compare/v2.6.5...v3.0.0 -[2.6.5]: https://github.com/oozcitak/xmlbuilder-js/compare/v2.6.4...v2.6.5 -[2.6.4]: https://github.com/oozcitak/xmlbuilder-js/compare/v2.6.3...v2.6.4 -[2.6.3]: https://github.com/oozcitak/xmlbuilder-js/compare/v2.6.2...v2.6.3 -[2.6.2]: https://github.com/oozcitak/xmlbuilder-js/compare/v2.6.1...v2.6.2 -[2.6.1]: https://github.com/oozcitak/xmlbuilder-js/compare/v2.6.0...v2.6.1 -[2.6.0]: https://github.com/oozcitak/xmlbuilder-js/compare/v2.5.2...v2.6.0 -[2.5.2]: https://github.com/oozcitak/xmlbuilder-js/compare/v2.5.1...v2.5.2 -[2.5.1]: https://github.com/oozcitak/xmlbuilder-js/compare/v2.5.0...v2.5.1 -[2.5.0]: https://github.com/oozcitak/xmlbuilder-js/compare/v2.4.6...v2.5.0 -[2.4.6]: https://github.com/oozcitak/xmlbuilder-js/compare/v2.4.5...v2.4.6 -[2.4.5]: https://github.com/oozcitak/xmlbuilder-js/compare/v2.4.4...v2.4.5 -[2.4.4]: https://github.com/oozcitak/xmlbuilder-js/compare/v2.4.3...v2.4.4 -[2.4.3]: https://github.com/oozcitak/xmlbuilder-js/compare/v2.4.2...v2.4.3 -[2.4.2]: https://github.com/oozcitak/xmlbuilder-js/compare/v2.4.1...v2.4.2 -[2.4.1]: https://github.com/oozcitak/xmlbuilder-js/compare/v2.4.0...v2.4.1 -[2.4.0]: https://github.com/oozcitak/xmlbuilder-js/compare/v2.3.0...v2.4.0 -[2.3.0]: https://github.com/oozcitak/xmlbuilder-js/compare/v2.2.1...v2.3.0 -[2.2.1]: https://github.com/oozcitak/xmlbuilder-js/compare/v2.2.0...v2.2.1 -[2.2.0]: https://github.com/oozcitak/xmlbuilder-js/compare/v2.1.0...v2.2.0 -[2.1.0]: https://github.com/oozcitak/xmlbuilder-js/compare/v2.0.1...v2.1.0 -[2.0.1]: https://github.com/oozcitak/xmlbuilder-js/compare/v2.0.0...v2.0.1 -[2.0.0]: https://github.com/oozcitak/xmlbuilder-js/compare/v1.1.2...v2.0.0 -[1.1.2]: https://github.com/oozcitak/xmlbuilder-js/compare/v1.1.1...v1.1.2 -[1.1.1]: https://github.com/oozcitak/xmlbuilder-js/compare/v1.1.0...v1.1.1 -[1.1.0]: https://github.com/oozcitak/xmlbuilder-js/compare/v1.0.2...v1.1.0 -[1.0.2]: https://github.com/oozcitak/xmlbuilder-js/compare/v1.0.1...v1.0.2 -[1.0.1]: https://github.com/oozcitak/xmlbuilder-js/compare/v1.0.0...v1.0.1 -[1.0.0]: https://github.com/oozcitak/xmlbuilder-js/compare/v0.4.3...v1.0.0 -[0.4.3]: https://github.com/oozcitak/xmlbuilder-js/compare/v0.4.2...v0.4.3 -[0.4.2]: https://github.com/oozcitak/xmlbuilder-js/compare/v0.4.1...v0.4.2 -[0.4.1]: https://github.com/oozcitak/xmlbuilder-js/compare/v0.4.0...v0.4.1 -[0.4.0]: https://github.com/oozcitak/xmlbuilder-js/compare/v0.3.11...v0.4.0 -[0.3.11]: https://github.com/oozcitak/xmlbuilder-js/compare/v0.3.10...v0.3.11 -[0.3.10]: https://github.com/oozcitak/xmlbuilder-js/compare/v0.3.3...v0.3.10 -[0.3.3]: https://github.com/oozcitak/xmlbuilder-js/compare/v0.3.2...v0.3.3 -[0.3.2]: https://github.com/oozcitak/xmlbuilder-js/compare/v0.3.1...v0.3.2 -[0.3.1]: https://github.com/oozcitak/xmlbuilder-js/compare/v0.3.0...v0.3.1 -[0.3.0]: https://github.com/oozcitak/xmlbuilder-js/compare/v0.2.2...v0.3.0 -[0.2.2]: https://github.com/oozcitak/xmlbuilder-js/compare/v0.2.1...v0.2.2 -[0.2.1]: https://github.com/oozcitak/xmlbuilder-js/compare/v0.2.0...v0.2.1 -[0.2.0]: https://github.com/oozcitak/xmlbuilder-js/compare/v0.1.7...v0.2.0 -[0.1.7]: https://github.com/oozcitak/xmlbuilder-js/compare/v0.1.6...v0.1.7 -[0.1.6]: https://github.com/oozcitak/xmlbuilder-js/compare/v0.1.5...v0.1.6 -[0.1.5]: https://github.com/oozcitak/xmlbuilder-js/compare/v0.1.4...v0.1.5 -[0.1.4]: https://github.com/oozcitak/xmlbuilder-js/compare/v0.1.3...v0.1.4 -[0.1.3]: https://github.com/oozcitak/xmlbuilder-js/compare/v0.1.2...v0.1.3 -[0.1.2]: https://github.com/oozcitak/xmlbuilder-js/compare/v0.1.1...v0.1.2 -[0.1.1]: https://github.com/oozcitak/xmlbuilder-js/compare/v0.1.0...v0.1.1 -[0.1.0]: https://github.com/oozcitak/xmlbuilder-js/compare/v0.0.7...v0.1.0 -[0.0.7]: https://github.com/oozcitak/xmlbuilder-js/compare/v0.0.6...v0.0.7 -[0.0.6]: https://github.com/oozcitak/xmlbuilder-js/compare/v0.0.5...v0.0.6 -[0.0.5]: https://github.com/oozcitak/xmlbuilder-js/compare/v0.0.4...v0.0.5 -[0.0.4]: https://github.com/oozcitak/xmlbuilder-js/compare/v0.0.3...v0.0.4 -[0.0.3]: https://github.com/oozcitak/xmlbuilder-js/compare/v0.0.2...v0.0.3 -[0.0.2]: https://github.com/oozcitak/xmlbuilder-js/compare/v0.0.1...v0.0.2 - diff --git a/XNSimHtml/node_modules/xmlbuilder/LICENSE b/XNSimHtml/node_modules/xmlbuilder/LICENSE deleted file mode 100644 index 9fb9700..0000000 --- a/XNSimHtml/node_modules/xmlbuilder/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013 Ozgur Ozcitak - -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/XNSimHtml/node_modules/xmlbuilder/README.md b/XNSimHtml/node_modules/xmlbuilder/README.md deleted file mode 100644 index 1a96edb..0000000 --- a/XNSimHtml/node_modules/xmlbuilder/README.md +++ /dev/null @@ -1,86 +0,0 @@ -# xmlbuilder-js - -An XML builder for [node.js](https://nodejs.org/) similar to -[java-xmlbuilder](https://github.com/jmurty/java-xmlbuilder). - -[![License](http://img.shields.io/npm/l/xmlbuilder.svg?style=flat-square)](http://opensource.org/licenses/MIT) -[![NPM Version](http://img.shields.io/npm/v/xmlbuilder.svg?style=flat-square)](https://npmjs.com/package/xmlbuilder) -[![NPM Downloads](https://img.shields.io/npm/dm/xmlbuilder.svg?style=flat-square)](https://npmjs.com/package/xmlbuilder) - -[![Travis Build Status](http://img.shields.io/travis/oozcitak/xmlbuilder-js.svg?style=flat-square)](http://travis-ci.org/oozcitak/xmlbuilder-js) -[![AppVeyor Build status](https://ci.appveyor.com/api/projects/status/bf7odb20hj77isry?svg=true)](https://ci.appveyor.com/project/oozcitak/xmlbuilder-js) -[![Dev Dependency Status](http://img.shields.io/david/dev/oozcitak/xmlbuilder-js.svg?style=flat-square)](https://david-dm.org/oozcitak/xmlbuilder-js) -[![Code Coverage](https://img.shields.io/coveralls/oozcitak/xmlbuilder-js.svg?style=flat-square)](https://coveralls.io/github/oozcitak/xmlbuilder-js) - -### Installation: - -``` sh -npm install xmlbuilder -``` - -### Usage: - -``` js -var builder = require('xmlbuilder'); -var xml = builder.create('root') - .ele('xmlbuilder') - .ele('repo', {'type': 'git'}, 'git://github.com/oozcitak/xmlbuilder-js.git') - .end({ pretty: true}); - -console.log(xml); -``` - -will result in: - -``` xml - - - - git://github.com/oozcitak/xmlbuilder-js.git - - -``` - -It is also possible to convert objects into nodes: - -``` js -builder.create({ - root: { - xmlbuilder: { - repo: { - '@type': 'git', // attributes start with @ - '#text': 'git://github.com/oozcitak/xmlbuilder-js.git' // text node - } - } - } -}); -``` - -If you need to do some processing: - -``` js -var root = builder.create('squares'); -root.com('f(x) = x^2'); -for(var i = 1; i <= 5; i++) -{ - var item = root.ele('data'); - item.att('x', i); - item.att('y', i * i); -} -``` - -This will result in: - -``` xml - - - - - - - - - -``` - -See the [wiki](https://github.com/oozcitak/xmlbuilder-js/wiki) for details and [examples](https://github.com/oozcitak/xmlbuilder-js/wiki/Examples) for more complex examples. diff --git a/XNSimHtml/node_modules/xmlbuilder/appveyor.yml b/XNSimHtml/node_modules/xmlbuilder/appveyor.yml deleted file mode 100644 index 9604b78..0000000 --- a/XNSimHtml/node_modules/xmlbuilder/appveyor.yml +++ /dev/null @@ -1,20 +0,0 @@ -environment: - matrix: - - nodejs_version: "4" - - nodejs_version: "5" - - nodejs_version: "6" - - nodejs_version: "8" - - nodejs_version: "10" - - nodejs_version: "" # latest - -install: - - ps: "Install-Product node $env:nodejs_version" - - "npm install" - -test_script: - - "node --version" - - "npm --version" - - "npm test" - -build: off - diff --git a/XNSimHtml/node_modules/xmlbuilder/lib/Derivation.js b/XNSimHtml/node_modules/xmlbuilder/lib/Derivation.js deleted file mode 100644 index 2abfd08..0000000 --- a/XNSimHtml/node_modules/xmlbuilder/lib/Derivation.js +++ /dev/null @@ -1,10 +0,0 @@ -// Generated by CoffeeScript 1.12.7 -(function() { - module.exports = { - Restriction: 1, - Extension: 2, - Union: 4, - List: 8 - }; - -}).call(this); diff --git a/XNSimHtml/node_modules/xmlbuilder/lib/DocumentPosition.js b/XNSimHtml/node_modules/xmlbuilder/lib/DocumentPosition.js deleted file mode 100644 index 1cbd21c..0000000 --- a/XNSimHtml/node_modules/xmlbuilder/lib/DocumentPosition.js +++ /dev/null @@ -1,12 +0,0 @@ -// Generated by CoffeeScript 1.12.7 -(function() { - module.exports = { - Disconnected: 1, - Preceding: 2, - Following: 4, - Contains: 8, - ContainedBy: 16, - ImplementationSpecific: 32 - }; - -}).call(this); diff --git a/XNSimHtml/node_modules/xmlbuilder/lib/NodeType.js b/XNSimHtml/node_modules/xmlbuilder/lib/NodeType.js deleted file mode 100644 index 4c200e3..0000000 --- a/XNSimHtml/node_modules/xmlbuilder/lib/NodeType.js +++ /dev/null @@ -1,23 +0,0 @@ -// Generated by CoffeeScript 1.12.7 -(function() { - module.exports = { - Element: 1, - Attribute: 2, - Text: 3, - CData: 4, - EntityReference: 5, - EntityDeclaration: 6, - ProcessingInstruction: 7, - Comment: 8, - Document: 9, - DocType: 10, - DocumentFragment: 11, - NotationDeclaration: 12, - Declaration: 201, - Raw: 202, - AttributeDeclaration: 203, - ElementDeclaration: 204, - Dummy: 205 - }; - -}).call(this); diff --git a/XNSimHtml/node_modules/xmlbuilder/lib/OperationType.js b/XNSimHtml/node_modules/xmlbuilder/lib/OperationType.js deleted file mode 100644 index 29428f6..0000000 --- a/XNSimHtml/node_modules/xmlbuilder/lib/OperationType.js +++ /dev/null @@ -1,11 +0,0 @@ -// Generated by CoffeeScript 1.12.7 -(function() { - module.exports = { - Clones: 1, - Imported: 2, - Deleted: 3, - Renamed: 4, - Adopted: 5 - }; - -}).call(this); diff --git a/XNSimHtml/node_modules/xmlbuilder/lib/Utility.js b/XNSimHtml/node_modules/xmlbuilder/lib/Utility.js deleted file mode 100644 index 1d42cfd..0000000 --- a/XNSimHtml/node_modules/xmlbuilder/lib/Utility.js +++ /dev/null @@ -1,83 +0,0 @@ -// Generated by CoffeeScript 1.12.7 -(function() { - var assign, getValue, isArray, isEmpty, isFunction, isObject, isPlainObject, - slice = [].slice, - hasProp = {}.hasOwnProperty; - - assign = function() { - var i, key, len, source, sources, target; - target = arguments[0], sources = 2 <= arguments.length ? slice.call(arguments, 1) : []; - if (isFunction(Object.assign)) { - Object.assign.apply(null, arguments); - } else { - for (i = 0, len = sources.length; i < len; i++) { - source = sources[i]; - if (source != null) { - for (key in source) { - if (!hasProp.call(source, key)) continue; - target[key] = source[key]; - } - } - } - } - return target; - }; - - isFunction = function(val) { - return !!val && Object.prototype.toString.call(val) === '[object Function]'; - }; - - isObject = function(val) { - var ref; - return !!val && ((ref = typeof val) === 'function' || ref === 'object'); - }; - - isArray = function(val) { - if (isFunction(Array.isArray)) { - return Array.isArray(val); - } else { - return Object.prototype.toString.call(val) === '[object Array]'; - } - }; - - isEmpty = function(val) { - var key; - if (isArray(val)) { - return !val.length; - } else { - for (key in val) { - if (!hasProp.call(val, key)) continue; - return false; - } - return true; - } - }; - - isPlainObject = function(val) { - var ctor, proto; - return isObject(val) && (proto = Object.getPrototypeOf(val)) && (ctor = proto.constructor) && (typeof ctor === 'function') && (ctor instanceof ctor) && (Function.prototype.toString.call(ctor) === Function.prototype.toString.call(Object)); - }; - - getValue = function(obj) { - if (isFunction(obj.valueOf)) { - return obj.valueOf(); - } else { - return obj; - } - }; - - module.exports.assign = assign; - - module.exports.isFunction = isFunction; - - module.exports.isObject = isObject; - - module.exports.isArray = isArray; - - module.exports.isEmpty = isEmpty; - - module.exports.isPlainObject = isPlainObject; - - module.exports.getValue = getValue; - -}).call(this); diff --git a/XNSimHtml/node_modules/xmlbuilder/lib/WriterState.js b/XNSimHtml/node_modules/xmlbuilder/lib/WriterState.js deleted file mode 100644 index 0923eec..0000000 --- a/XNSimHtml/node_modules/xmlbuilder/lib/WriterState.js +++ /dev/null @@ -1,10 +0,0 @@ -// Generated by CoffeeScript 1.12.7 -(function() { - module.exports = { - None: 0, - OpenTag: 1, - InsideTag: 2, - CloseTag: 3 - }; - -}).call(this); diff --git a/XNSimHtml/node_modules/xmlbuilder/lib/XMLAttribute.js b/XNSimHtml/node_modules/xmlbuilder/lib/XMLAttribute.js deleted file mode 100644 index c208566..0000000 --- a/XNSimHtml/node_modules/xmlbuilder/lib/XMLAttribute.js +++ /dev/null @@ -1,108 +0,0 @@ -// Generated by CoffeeScript 1.12.7 -(function() { - var NodeType, XMLAttribute, XMLNode; - - NodeType = require('./NodeType'); - - XMLNode = require('./XMLNode'); - - module.exports = XMLAttribute = (function() { - function XMLAttribute(parent, name, value) { - this.parent = parent; - if (this.parent) { - this.options = this.parent.options; - this.stringify = this.parent.stringify; - } - if (name == null) { - throw new Error("Missing attribute name. " + this.debugInfo(name)); - } - this.name = this.stringify.name(name); - this.value = this.stringify.attValue(value); - this.type = NodeType.Attribute; - this.isId = false; - this.schemaTypeInfo = null; - } - - Object.defineProperty(XMLAttribute.prototype, 'nodeType', { - get: function() { - return this.type; - } - }); - - Object.defineProperty(XMLAttribute.prototype, 'ownerElement', { - get: function() { - return this.parent; - } - }); - - Object.defineProperty(XMLAttribute.prototype, 'textContent', { - get: function() { - return this.value; - }, - set: function(value) { - return this.value = value || ''; - } - }); - - Object.defineProperty(XMLAttribute.prototype, 'namespaceURI', { - get: function() { - return ''; - } - }); - - Object.defineProperty(XMLAttribute.prototype, 'prefix', { - get: function() { - return ''; - } - }); - - Object.defineProperty(XMLAttribute.prototype, 'localName', { - get: function() { - return this.name; - } - }); - - Object.defineProperty(XMLAttribute.prototype, 'specified', { - get: function() { - return true; - } - }); - - XMLAttribute.prototype.clone = function() { - return Object.create(this); - }; - - XMLAttribute.prototype.toString = function(options) { - return this.options.writer.attribute(this, this.options.writer.filterOptions(options)); - }; - - XMLAttribute.prototype.debugInfo = function(name) { - name = name || this.name; - if (name == null) { - return "parent: <" + this.parent.name + ">"; - } else { - return "attribute: {" + name + "}, parent: <" + this.parent.name + ">"; - } - }; - - XMLAttribute.prototype.isEqualNode = function(node) { - if (node.namespaceURI !== this.namespaceURI) { - return false; - } - if (node.prefix !== this.prefix) { - return false; - } - if (node.localName !== this.localName) { - return false; - } - if (node.value !== this.value) { - return false; - } - return true; - }; - - return XMLAttribute; - - })(); - -}).call(this); diff --git a/XNSimHtml/node_modules/xmlbuilder/lib/XMLCData.js b/XNSimHtml/node_modules/xmlbuilder/lib/XMLCData.js deleted file mode 100644 index c732ec5..0000000 --- a/XNSimHtml/node_modules/xmlbuilder/lib/XMLCData.js +++ /dev/null @@ -1,36 +0,0 @@ -// Generated by CoffeeScript 1.12.7 -(function() { - var NodeType, XMLCData, XMLCharacterData, - extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, - hasProp = {}.hasOwnProperty; - - NodeType = require('./NodeType'); - - XMLCharacterData = require('./XMLCharacterData'); - - module.exports = XMLCData = (function(superClass) { - extend(XMLCData, superClass); - - function XMLCData(parent, text) { - XMLCData.__super__.constructor.call(this, parent); - if (text == null) { - throw new Error("Missing CDATA text. " + this.debugInfo()); - } - this.name = "#cdata-section"; - this.type = NodeType.CData; - this.value = this.stringify.cdata(text); - } - - XMLCData.prototype.clone = function() { - return Object.create(this); - }; - - XMLCData.prototype.toString = function(options) { - return this.options.writer.cdata(this, this.options.writer.filterOptions(options)); - }; - - return XMLCData; - - })(XMLCharacterData); - -}).call(this); diff --git a/XNSimHtml/node_modules/xmlbuilder/lib/XMLCharacterData.js b/XNSimHtml/node_modules/xmlbuilder/lib/XMLCharacterData.js deleted file mode 100644 index c007a18..0000000 --- a/XNSimHtml/node_modules/xmlbuilder/lib/XMLCharacterData.js +++ /dev/null @@ -1,79 +0,0 @@ -// Generated by CoffeeScript 1.12.7 -(function() { - var XMLCharacterData, XMLNode, - extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, - hasProp = {}.hasOwnProperty; - - XMLNode = require('./XMLNode'); - - module.exports = XMLCharacterData = (function(superClass) { - extend(XMLCharacterData, superClass); - - function XMLCharacterData(parent) { - XMLCharacterData.__super__.constructor.call(this, parent); - this.value = ''; - } - - Object.defineProperty(XMLCharacterData.prototype, 'data', { - get: function() { - return this.value; - }, - set: function(value) { - return this.value = value || ''; - } - }); - - Object.defineProperty(XMLCharacterData.prototype, 'length', { - get: function() { - return this.value.length; - } - }); - - Object.defineProperty(XMLCharacterData.prototype, 'textContent', { - get: function() { - return this.value; - }, - set: function(value) { - return this.value = value || ''; - } - }); - - XMLCharacterData.prototype.clone = function() { - return Object.create(this); - }; - - XMLCharacterData.prototype.substringData = function(offset, count) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLCharacterData.prototype.appendData = function(arg) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLCharacterData.prototype.insertData = function(offset, arg) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLCharacterData.prototype.deleteData = function(offset, count) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLCharacterData.prototype.replaceData = function(offset, count, arg) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLCharacterData.prototype.isEqualNode = function(node) { - if (!XMLCharacterData.__super__.isEqualNode.apply(this, arguments).isEqualNode(node)) { - return false; - } - if (node.data !== this.data) { - return false; - } - return true; - }; - - return XMLCharacterData; - - })(XMLNode); - -}).call(this); diff --git a/XNSimHtml/node_modules/xmlbuilder/lib/XMLComment.js b/XNSimHtml/node_modules/xmlbuilder/lib/XMLComment.js deleted file mode 100644 index 8287216..0000000 --- a/XNSimHtml/node_modules/xmlbuilder/lib/XMLComment.js +++ /dev/null @@ -1,36 +0,0 @@ -// Generated by CoffeeScript 1.12.7 -(function() { - var NodeType, XMLCharacterData, XMLComment, - extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, - hasProp = {}.hasOwnProperty; - - NodeType = require('./NodeType'); - - XMLCharacterData = require('./XMLCharacterData'); - - module.exports = XMLComment = (function(superClass) { - extend(XMLComment, superClass); - - function XMLComment(parent, text) { - XMLComment.__super__.constructor.call(this, parent); - if (text == null) { - throw new Error("Missing comment text. " + this.debugInfo()); - } - this.name = "#comment"; - this.type = NodeType.Comment; - this.value = this.stringify.comment(text); - } - - XMLComment.prototype.clone = function() { - return Object.create(this); - }; - - XMLComment.prototype.toString = function(options) { - return this.options.writer.comment(this, this.options.writer.filterOptions(options)); - }; - - return XMLComment; - - })(XMLCharacterData); - -}).call(this); diff --git a/XNSimHtml/node_modules/xmlbuilder/lib/XMLDOMConfiguration.js b/XNSimHtml/node_modules/xmlbuilder/lib/XMLDOMConfiguration.js deleted file mode 100644 index b331b86..0000000 --- a/XNSimHtml/node_modules/xmlbuilder/lib/XMLDOMConfiguration.js +++ /dev/null @@ -1,64 +0,0 @@ -// Generated by CoffeeScript 1.12.7 -(function() { - var XMLDOMConfiguration, XMLDOMErrorHandler, XMLDOMStringList; - - XMLDOMErrorHandler = require('./XMLDOMErrorHandler'); - - XMLDOMStringList = require('./XMLDOMStringList'); - - module.exports = XMLDOMConfiguration = (function() { - function XMLDOMConfiguration() { - var clonedSelf; - this.defaultParams = { - "canonical-form": false, - "cdata-sections": false, - "comments": false, - "datatype-normalization": false, - "element-content-whitespace": true, - "entities": true, - "error-handler": new XMLDOMErrorHandler(), - "infoset": true, - "validate-if-schema": false, - "namespaces": true, - "namespace-declarations": true, - "normalize-characters": false, - "schema-location": '', - "schema-type": '', - "split-cdata-sections": true, - "validate": false, - "well-formed": true - }; - this.params = clonedSelf = Object.create(this.defaultParams); - } - - Object.defineProperty(XMLDOMConfiguration.prototype, 'parameterNames', { - get: function() { - return new XMLDOMStringList(Object.keys(this.defaultParams)); - } - }); - - XMLDOMConfiguration.prototype.getParameter = function(name) { - if (this.params.hasOwnProperty(name)) { - return this.params[name]; - } else { - return null; - } - }; - - XMLDOMConfiguration.prototype.canSetParameter = function(name, value) { - return true; - }; - - XMLDOMConfiguration.prototype.setParameter = function(name, value) { - if (value != null) { - return this.params[name] = value; - } else { - return delete this.params[name]; - } - }; - - return XMLDOMConfiguration; - - })(); - -}).call(this); diff --git a/XNSimHtml/node_modules/xmlbuilder/lib/XMLDOMErrorHandler.js b/XNSimHtml/node_modules/xmlbuilder/lib/XMLDOMErrorHandler.js deleted file mode 100644 index 4a0446c..0000000 --- a/XNSimHtml/node_modules/xmlbuilder/lib/XMLDOMErrorHandler.js +++ /dev/null @@ -1,16 +0,0 @@ -// Generated by CoffeeScript 1.12.7 -(function() { - var XMLDOMErrorHandler; - - module.exports = XMLDOMErrorHandler = (function() { - function XMLDOMErrorHandler() {} - - XMLDOMErrorHandler.prototype.handleError = function(error) { - throw new Error(error); - }; - - return XMLDOMErrorHandler; - - })(); - -}).call(this); diff --git a/XNSimHtml/node_modules/xmlbuilder/lib/XMLDOMImplementation.js b/XNSimHtml/node_modules/xmlbuilder/lib/XMLDOMImplementation.js deleted file mode 100644 index 4f9f9db..0000000 --- a/XNSimHtml/node_modules/xmlbuilder/lib/XMLDOMImplementation.js +++ /dev/null @@ -1,32 +0,0 @@ -// Generated by CoffeeScript 1.12.7 -(function() { - var XMLDOMImplementation; - - module.exports = XMLDOMImplementation = (function() { - function XMLDOMImplementation() {} - - XMLDOMImplementation.prototype.hasFeature = function(feature, version) { - return true; - }; - - XMLDOMImplementation.prototype.createDocumentType = function(qualifiedName, publicId, systemId) { - throw new Error("This DOM method is not implemented."); - }; - - XMLDOMImplementation.prototype.createDocument = function(namespaceURI, qualifiedName, doctype) { - throw new Error("This DOM method is not implemented."); - }; - - XMLDOMImplementation.prototype.createHTMLDocument = function(title) { - throw new Error("This DOM method is not implemented."); - }; - - XMLDOMImplementation.prototype.getFeature = function(feature, version) { - throw new Error("This DOM method is not implemented."); - }; - - return XMLDOMImplementation; - - })(); - -}).call(this); diff --git a/XNSimHtml/node_modules/xmlbuilder/lib/XMLDOMStringList.js b/XNSimHtml/node_modules/xmlbuilder/lib/XMLDOMStringList.js deleted file mode 100644 index ba558c5..0000000 --- a/XNSimHtml/node_modules/xmlbuilder/lib/XMLDOMStringList.js +++ /dev/null @@ -1,28 +0,0 @@ -// Generated by CoffeeScript 1.12.7 -(function() { - var XMLDOMStringList; - - module.exports = XMLDOMStringList = (function() { - function XMLDOMStringList(arr) { - this.arr = arr || []; - } - - Object.defineProperty(XMLDOMStringList.prototype, 'length', { - get: function() { - return this.arr.length; - } - }); - - XMLDOMStringList.prototype.item = function(index) { - return this.arr[index] || null; - }; - - XMLDOMStringList.prototype.contains = function(str) { - return this.arr.indexOf(str) !== -1; - }; - - return XMLDOMStringList; - - })(); - -}).call(this); diff --git a/XNSimHtml/node_modules/xmlbuilder/lib/XMLDTDAttList.js b/XNSimHtml/node_modules/xmlbuilder/lib/XMLDTDAttList.js deleted file mode 100644 index aca9dbd..0000000 --- a/XNSimHtml/node_modules/xmlbuilder/lib/XMLDTDAttList.js +++ /dev/null @@ -1,55 +0,0 @@ -// Generated by CoffeeScript 1.12.7 -(function() { - var NodeType, XMLDTDAttList, XMLNode, - extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, - hasProp = {}.hasOwnProperty; - - XMLNode = require('./XMLNode'); - - NodeType = require('./NodeType'); - - module.exports = XMLDTDAttList = (function(superClass) { - extend(XMLDTDAttList, superClass); - - function XMLDTDAttList(parent, elementName, attributeName, attributeType, defaultValueType, defaultValue) { - XMLDTDAttList.__super__.constructor.call(this, parent); - if (elementName == null) { - throw new Error("Missing DTD element name. " + this.debugInfo()); - } - if (attributeName == null) { - throw new Error("Missing DTD attribute name. " + this.debugInfo(elementName)); - } - if (!attributeType) { - throw new Error("Missing DTD attribute type. " + this.debugInfo(elementName)); - } - if (!defaultValueType) { - throw new Error("Missing DTD attribute default. " + this.debugInfo(elementName)); - } - if (defaultValueType.indexOf('#') !== 0) { - defaultValueType = '#' + defaultValueType; - } - if (!defaultValueType.match(/^(#REQUIRED|#IMPLIED|#FIXED|#DEFAULT)$/)) { - throw new Error("Invalid default value type; expected: #REQUIRED, #IMPLIED, #FIXED or #DEFAULT. " + this.debugInfo(elementName)); - } - if (defaultValue && !defaultValueType.match(/^(#FIXED|#DEFAULT)$/)) { - throw new Error("Default value only applies to #FIXED or #DEFAULT. " + this.debugInfo(elementName)); - } - this.elementName = this.stringify.name(elementName); - this.type = NodeType.AttributeDeclaration; - this.attributeName = this.stringify.name(attributeName); - this.attributeType = this.stringify.dtdAttType(attributeType); - if (defaultValue) { - this.defaultValue = this.stringify.dtdAttDefault(defaultValue); - } - this.defaultValueType = defaultValueType; - } - - XMLDTDAttList.prototype.toString = function(options) { - return this.options.writer.dtdAttList(this, this.options.writer.filterOptions(options)); - }; - - return XMLDTDAttList; - - })(XMLNode); - -}).call(this); diff --git a/XNSimHtml/node_modules/xmlbuilder/lib/XMLDTDElement.js b/XNSimHtml/node_modules/xmlbuilder/lib/XMLDTDElement.js deleted file mode 100644 index f8f1ae7..0000000 --- a/XNSimHtml/node_modules/xmlbuilder/lib/XMLDTDElement.js +++ /dev/null @@ -1,38 +0,0 @@ -// Generated by CoffeeScript 1.12.7 -(function() { - var NodeType, XMLDTDElement, XMLNode, - extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, - hasProp = {}.hasOwnProperty; - - XMLNode = require('./XMLNode'); - - NodeType = require('./NodeType'); - - module.exports = XMLDTDElement = (function(superClass) { - extend(XMLDTDElement, superClass); - - function XMLDTDElement(parent, name, value) { - XMLDTDElement.__super__.constructor.call(this, parent); - if (name == null) { - throw new Error("Missing DTD element name. " + this.debugInfo()); - } - if (!value) { - value = '(#PCDATA)'; - } - if (Array.isArray(value)) { - value = '(' + value.join(',') + ')'; - } - this.name = this.stringify.name(name); - this.type = NodeType.ElementDeclaration; - this.value = this.stringify.dtdElementValue(value); - } - - XMLDTDElement.prototype.toString = function(options) { - return this.options.writer.dtdElement(this, this.options.writer.filterOptions(options)); - }; - - return XMLDTDElement; - - })(XMLNode); - -}).call(this); diff --git a/XNSimHtml/node_modules/xmlbuilder/lib/XMLDTDEntity.js b/XNSimHtml/node_modules/xmlbuilder/lib/XMLDTDEntity.js deleted file mode 100644 index 0a940d6..0000000 --- a/XNSimHtml/node_modules/xmlbuilder/lib/XMLDTDEntity.js +++ /dev/null @@ -1,97 +0,0 @@ -// Generated by CoffeeScript 1.12.7 -(function() { - var NodeType, XMLDTDEntity, XMLNode, isObject, - extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, - hasProp = {}.hasOwnProperty; - - isObject = require('./Utility').isObject; - - XMLNode = require('./XMLNode'); - - NodeType = require('./NodeType'); - - module.exports = XMLDTDEntity = (function(superClass) { - extend(XMLDTDEntity, superClass); - - function XMLDTDEntity(parent, pe, name, value) { - XMLDTDEntity.__super__.constructor.call(this, parent); - if (name == null) { - throw new Error("Missing DTD entity name. " + this.debugInfo(name)); - } - if (value == null) { - throw new Error("Missing DTD entity value. " + this.debugInfo(name)); - } - this.pe = !!pe; - this.name = this.stringify.name(name); - this.type = NodeType.EntityDeclaration; - if (!isObject(value)) { - this.value = this.stringify.dtdEntityValue(value); - this.internal = true; - } else { - if (!value.pubID && !value.sysID) { - throw new Error("Public and/or system identifiers are required for an external entity. " + this.debugInfo(name)); - } - if (value.pubID && !value.sysID) { - throw new Error("System identifier is required for a public external entity. " + this.debugInfo(name)); - } - this.internal = false; - if (value.pubID != null) { - this.pubID = this.stringify.dtdPubID(value.pubID); - } - if (value.sysID != null) { - this.sysID = this.stringify.dtdSysID(value.sysID); - } - if (value.nData != null) { - this.nData = this.stringify.dtdNData(value.nData); - } - if (this.pe && this.nData) { - throw new Error("Notation declaration is not allowed in a parameter entity. " + this.debugInfo(name)); - } - } - } - - Object.defineProperty(XMLDTDEntity.prototype, 'publicId', { - get: function() { - return this.pubID; - } - }); - - Object.defineProperty(XMLDTDEntity.prototype, 'systemId', { - get: function() { - return this.sysID; - } - }); - - Object.defineProperty(XMLDTDEntity.prototype, 'notationName', { - get: function() { - return this.nData || null; - } - }); - - Object.defineProperty(XMLDTDEntity.prototype, 'inputEncoding', { - get: function() { - return null; - } - }); - - Object.defineProperty(XMLDTDEntity.prototype, 'xmlEncoding', { - get: function() { - return null; - } - }); - - Object.defineProperty(XMLDTDEntity.prototype, 'xmlVersion', { - get: function() { - return null; - } - }); - - XMLDTDEntity.prototype.toString = function(options) { - return this.options.writer.dtdEntity(this, this.options.writer.filterOptions(options)); - }; - - return XMLDTDEntity; - - })(XMLNode); - -}).call(this); diff --git a/XNSimHtml/node_modules/xmlbuilder/lib/XMLDTDNotation.js b/XNSimHtml/node_modules/xmlbuilder/lib/XMLDTDNotation.js deleted file mode 100644 index 57a119d..0000000 --- a/XNSimHtml/node_modules/xmlbuilder/lib/XMLDTDNotation.js +++ /dev/null @@ -1,52 +0,0 @@ -// Generated by CoffeeScript 1.12.7 -(function() { - var NodeType, XMLDTDNotation, XMLNode, - extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, - hasProp = {}.hasOwnProperty; - - XMLNode = require('./XMLNode'); - - NodeType = require('./NodeType'); - - module.exports = XMLDTDNotation = (function(superClass) { - extend(XMLDTDNotation, superClass); - - function XMLDTDNotation(parent, name, value) { - XMLDTDNotation.__super__.constructor.call(this, parent); - if (name == null) { - throw new Error("Missing DTD notation name. " + this.debugInfo(name)); - } - if (!value.pubID && !value.sysID) { - throw new Error("Public or system identifiers are required for an external entity. " + this.debugInfo(name)); - } - this.name = this.stringify.name(name); - this.type = NodeType.NotationDeclaration; - if (value.pubID != null) { - this.pubID = this.stringify.dtdPubID(value.pubID); - } - if (value.sysID != null) { - this.sysID = this.stringify.dtdSysID(value.sysID); - } - } - - Object.defineProperty(XMLDTDNotation.prototype, 'publicId', { - get: function() { - return this.pubID; - } - }); - - Object.defineProperty(XMLDTDNotation.prototype, 'systemId', { - get: function() { - return this.sysID; - } - }); - - XMLDTDNotation.prototype.toString = function(options) { - return this.options.writer.dtdNotation(this, this.options.writer.filterOptions(options)); - }; - - return XMLDTDNotation; - - })(XMLNode); - -}).call(this); diff --git a/XNSimHtml/node_modules/xmlbuilder/lib/XMLDeclaration.js b/XNSimHtml/node_modules/xmlbuilder/lib/XMLDeclaration.js deleted file mode 100644 index d4f7f44..0000000 --- a/XNSimHtml/node_modules/xmlbuilder/lib/XMLDeclaration.js +++ /dev/null @@ -1,43 +0,0 @@ -// Generated by CoffeeScript 1.12.7 -(function() { - var NodeType, XMLDeclaration, XMLNode, isObject, - extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, - hasProp = {}.hasOwnProperty; - - isObject = require('./Utility').isObject; - - XMLNode = require('./XMLNode'); - - NodeType = require('./NodeType'); - - module.exports = XMLDeclaration = (function(superClass) { - extend(XMLDeclaration, superClass); - - function XMLDeclaration(parent, version, encoding, standalone) { - var ref; - XMLDeclaration.__super__.constructor.call(this, parent); - if (isObject(version)) { - ref = version, version = ref.version, encoding = ref.encoding, standalone = ref.standalone; - } - if (!version) { - version = '1.0'; - } - this.type = NodeType.Declaration; - this.version = this.stringify.xmlVersion(version); - if (encoding != null) { - this.encoding = this.stringify.xmlEncoding(encoding); - } - if (standalone != null) { - this.standalone = this.stringify.xmlStandalone(standalone); - } - } - - XMLDeclaration.prototype.toString = function(options) { - return this.options.writer.declaration(this, this.options.writer.filterOptions(options)); - }; - - return XMLDeclaration; - - })(XMLNode); - -}).call(this); diff --git a/XNSimHtml/node_modules/xmlbuilder/lib/XMLDocType.js b/XNSimHtml/node_modules/xmlbuilder/lib/XMLDocType.js deleted file mode 100644 index ef043f4..0000000 --- a/XNSimHtml/node_modules/xmlbuilder/lib/XMLDocType.js +++ /dev/null @@ -1,186 +0,0 @@ -// Generated by CoffeeScript 1.12.7 -(function() { - var NodeType, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDocType, XMLNamedNodeMap, XMLNode, isObject, - extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, - hasProp = {}.hasOwnProperty; - - isObject = require('./Utility').isObject; - - XMLNode = require('./XMLNode'); - - NodeType = require('./NodeType'); - - XMLDTDAttList = require('./XMLDTDAttList'); - - XMLDTDEntity = require('./XMLDTDEntity'); - - XMLDTDElement = require('./XMLDTDElement'); - - XMLDTDNotation = require('./XMLDTDNotation'); - - XMLNamedNodeMap = require('./XMLNamedNodeMap'); - - module.exports = XMLDocType = (function(superClass) { - extend(XMLDocType, superClass); - - function XMLDocType(parent, pubID, sysID) { - var child, i, len, ref, ref1, ref2; - XMLDocType.__super__.constructor.call(this, parent); - this.type = NodeType.DocType; - if (parent.children) { - ref = parent.children; - for (i = 0, len = ref.length; i < len; i++) { - child = ref[i]; - if (child.type === NodeType.Element) { - this.name = child.name; - break; - } - } - } - this.documentObject = parent; - if (isObject(pubID)) { - ref1 = pubID, pubID = ref1.pubID, sysID = ref1.sysID; - } - if (sysID == null) { - ref2 = [pubID, sysID], sysID = ref2[0], pubID = ref2[1]; - } - if (pubID != null) { - this.pubID = this.stringify.dtdPubID(pubID); - } - if (sysID != null) { - this.sysID = this.stringify.dtdSysID(sysID); - } - } - - Object.defineProperty(XMLDocType.prototype, 'entities', { - get: function() { - var child, i, len, nodes, ref; - nodes = {}; - ref = this.children; - for (i = 0, len = ref.length; i < len; i++) { - child = ref[i]; - if ((child.type === NodeType.EntityDeclaration) && !child.pe) { - nodes[child.name] = child; - } - } - return new XMLNamedNodeMap(nodes); - } - }); - - Object.defineProperty(XMLDocType.prototype, 'notations', { - get: function() { - var child, i, len, nodes, ref; - nodes = {}; - ref = this.children; - for (i = 0, len = ref.length; i < len; i++) { - child = ref[i]; - if (child.type === NodeType.NotationDeclaration) { - nodes[child.name] = child; - } - } - return new XMLNamedNodeMap(nodes); - } - }); - - Object.defineProperty(XMLDocType.prototype, 'publicId', { - get: function() { - return this.pubID; - } - }); - - Object.defineProperty(XMLDocType.prototype, 'systemId', { - get: function() { - return this.sysID; - } - }); - - Object.defineProperty(XMLDocType.prototype, 'internalSubset', { - get: function() { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - } - }); - - XMLDocType.prototype.element = function(name, value) { - var child; - child = new XMLDTDElement(this, name, value); - this.children.push(child); - return this; - }; - - XMLDocType.prototype.attList = function(elementName, attributeName, attributeType, defaultValueType, defaultValue) { - var child; - child = new XMLDTDAttList(this, elementName, attributeName, attributeType, defaultValueType, defaultValue); - this.children.push(child); - return this; - }; - - XMLDocType.prototype.entity = function(name, value) { - var child; - child = new XMLDTDEntity(this, false, name, value); - this.children.push(child); - return this; - }; - - XMLDocType.prototype.pEntity = function(name, value) { - var child; - child = new XMLDTDEntity(this, true, name, value); - this.children.push(child); - return this; - }; - - XMLDocType.prototype.notation = function(name, value) { - var child; - child = new XMLDTDNotation(this, name, value); - this.children.push(child); - return this; - }; - - XMLDocType.prototype.toString = function(options) { - return this.options.writer.docType(this, this.options.writer.filterOptions(options)); - }; - - XMLDocType.prototype.ele = function(name, value) { - return this.element(name, value); - }; - - XMLDocType.prototype.att = function(elementName, attributeName, attributeType, defaultValueType, defaultValue) { - return this.attList(elementName, attributeName, attributeType, defaultValueType, defaultValue); - }; - - XMLDocType.prototype.ent = function(name, value) { - return this.entity(name, value); - }; - - XMLDocType.prototype.pent = function(name, value) { - return this.pEntity(name, value); - }; - - XMLDocType.prototype.not = function(name, value) { - return this.notation(name, value); - }; - - XMLDocType.prototype.up = function() { - return this.root() || this.documentObject; - }; - - XMLDocType.prototype.isEqualNode = function(node) { - if (!XMLDocType.__super__.isEqualNode.apply(this, arguments).isEqualNode(node)) { - return false; - } - if (node.name !== this.name) { - return false; - } - if (node.publicId !== this.publicId) { - return false; - } - if (node.systemId !== this.systemId) { - return false; - } - return true; - }; - - return XMLDocType; - - })(XMLNode); - -}).call(this); diff --git a/XNSimHtml/node_modules/xmlbuilder/lib/XMLDocument.js b/XNSimHtml/node_modules/xmlbuilder/lib/XMLDocument.js deleted file mode 100644 index 88df56c..0000000 --- a/XNSimHtml/node_modules/xmlbuilder/lib/XMLDocument.js +++ /dev/null @@ -1,242 +0,0 @@ -// Generated by CoffeeScript 1.12.7 -(function() { - var NodeType, XMLDOMConfiguration, XMLDOMImplementation, XMLDocument, XMLNode, XMLStringWriter, XMLStringifier, isPlainObject, - extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, - hasProp = {}.hasOwnProperty; - - isPlainObject = require('./Utility').isPlainObject; - - XMLDOMImplementation = require('./XMLDOMImplementation'); - - XMLDOMConfiguration = require('./XMLDOMConfiguration'); - - XMLNode = require('./XMLNode'); - - NodeType = require('./NodeType'); - - XMLStringifier = require('./XMLStringifier'); - - XMLStringWriter = require('./XMLStringWriter'); - - module.exports = XMLDocument = (function(superClass) { - extend(XMLDocument, superClass); - - function XMLDocument(options) { - XMLDocument.__super__.constructor.call(this, null); - this.name = "#document"; - this.type = NodeType.Document; - this.documentURI = null; - this.domConfig = new XMLDOMConfiguration(); - options || (options = {}); - if (!options.writer) { - options.writer = new XMLStringWriter(); - } - this.options = options; - this.stringify = new XMLStringifier(options); - } - - Object.defineProperty(XMLDocument.prototype, 'implementation', { - value: new XMLDOMImplementation() - }); - - Object.defineProperty(XMLDocument.prototype, 'doctype', { - get: function() { - var child, i, len, ref; - ref = this.children; - for (i = 0, len = ref.length; i < len; i++) { - child = ref[i]; - if (child.type === NodeType.DocType) { - return child; - } - } - return null; - } - }); - - Object.defineProperty(XMLDocument.prototype, 'documentElement', { - get: function() { - return this.rootObject || null; - } - }); - - Object.defineProperty(XMLDocument.prototype, 'inputEncoding', { - get: function() { - return null; - } - }); - - Object.defineProperty(XMLDocument.prototype, 'strictErrorChecking', { - get: function() { - return false; - } - }); - - Object.defineProperty(XMLDocument.prototype, 'xmlEncoding', { - get: function() { - if (this.children.length !== 0 && this.children[0].type === NodeType.Declaration) { - return this.children[0].encoding; - } else { - return null; - } - } - }); - - Object.defineProperty(XMLDocument.prototype, 'xmlStandalone', { - get: function() { - if (this.children.length !== 0 && this.children[0].type === NodeType.Declaration) { - return this.children[0].standalone === 'yes'; - } else { - return false; - } - } - }); - - Object.defineProperty(XMLDocument.prototype, 'xmlVersion', { - get: function() { - if (this.children.length !== 0 && this.children[0].type === NodeType.Declaration) { - return this.children[0].version; - } else { - return "1.0"; - } - } - }); - - Object.defineProperty(XMLDocument.prototype, 'URL', { - get: function() { - return this.documentURI; - } - }); - - Object.defineProperty(XMLDocument.prototype, 'origin', { - get: function() { - return null; - } - }); - - Object.defineProperty(XMLDocument.prototype, 'compatMode', { - get: function() { - return null; - } - }); - - Object.defineProperty(XMLDocument.prototype, 'characterSet', { - get: function() { - return null; - } - }); - - Object.defineProperty(XMLDocument.prototype, 'contentType', { - get: function() { - return null; - } - }); - - XMLDocument.prototype.end = function(writer) { - var writerOptions; - writerOptions = {}; - if (!writer) { - writer = this.options.writer; - } else if (isPlainObject(writer)) { - writerOptions = writer; - writer = this.options.writer; - } - return writer.document(this, writer.filterOptions(writerOptions)); - }; - - XMLDocument.prototype.toString = function(options) { - return this.options.writer.document(this, this.options.writer.filterOptions(options)); - }; - - XMLDocument.prototype.createElement = function(tagName) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLDocument.prototype.createDocumentFragment = function() { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLDocument.prototype.createTextNode = function(data) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLDocument.prototype.createComment = function(data) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLDocument.prototype.createCDATASection = function(data) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLDocument.prototype.createProcessingInstruction = function(target, data) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLDocument.prototype.createAttribute = function(name) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLDocument.prototype.createEntityReference = function(name) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLDocument.prototype.getElementsByTagName = function(tagname) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLDocument.prototype.importNode = function(importedNode, deep) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLDocument.prototype.createElementNS = function(namespaceURI, qualifiedName) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLDocument.prototype.createAttributeNS = function(namespaceURI, qualifiedName) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLDocument.prototype.getElementsByTagNameNS = function(namespaceURI, localName) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLDocument.prototype.getElementById = function(elementId) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLDocument.prototype.adoptNode = function(source) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLDocument.prototype.normalizeDocument = function() { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLDocument.prototype.renameNode = function(node, namespaceURI, qualifiedName) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLDocument.prototype.getElementsByClassName = function(classNames) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLDocument.prototype.createEvent = function(eventInterface) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLDocument.prototype.createRange = function() { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLDocument.prototype.createNodeIterator = function(root, whatToShow, filter) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLDocument.prototype.createTreeWalker = function(root, whatToShow, filter) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - return XMLDocument; - - })(XMLNode); - -}).call(this); diff --git a/XNSimHtml/node_modules/xmlbuilder/lib/XMLDocumentCB.js b/XNSimHtml/node_modules/xmlbuilder/lib/XMLDocumentCB.js deleted file mode 100644 index ca1aa1c..0000000 --- a/XNSimHtml/node_modules/xmlbuilder/lib/XMLDocumentCB.js +++ /dev/null @@ -1,528 +0,0 @@ -// Generated by CoffeeScript 1.12.7 -(function() { - var NodeType, WriterState, XMLAttribute, XMLCData, XMLComment, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDeclaration, XMLDocType, XMLDocument, XMLDocumentCB, XMLElement, XMLProcessingInstruction, XMLRaw, XMLStringWriter, XMLStringifier, XMLText, getValue, isFunction, isObject, isPlainObject, ref, - hasProp = {}.hasOwnProperty; - - ref = require('./Utility'), isObject = ref.isObject, isFunction = ref.isFunction, isPlainObject = ref.isPlainObject, getValue = ref.getValue; - - NodeType = require('./NodeType'); - - XMLDocument = require('./XMLDocument'); - - XMLElement = require('./XMLElement'); - - XMLCData = require('./XMLCData'); - - XMLComment = require('./XMLComment'); - - XMLRaw = require('./XMLRaw'); - - XMLText = require('./XMLText'); - - XMLProcessingInstruction = require('./XMLProcessingInstruction'); - - XMLDeclaration = require('./XMLDeclaration'); - - XMLDocType = require('./XMLDocType'); - - XMLDTDAttList = require('./XMLDTDAttList'); - - XMLDTDEntity = require('./XMLDTDEntity'); - - XMLDTDElement = require('./XMLDTDElement'); - - XMLDTDNotation = require('./XMLDTDNotation'); - - XMLAttribute = require('./XMLAttribute'); - - XMLStringifier = require('./XMLStringifier'); - - XMLStringWriter = require('./XMLStringWriter'); - - WriterState = require('./WriterState'); - - module.exports = XMLDocumentCB = (function() { - function XMLDocumentCB(options, onData, onEnd) { - var writerOptions; - this.name = "?xml"; - this.type = NodeType.Document; - options || (options = {}); - writerOptions = {}; - if (!options.writer) { - options.writer = new XMLStringWriter(); - } else if (isPlainObject(options.writer)) { - writerOptions = options.writer; - options.writer = new XMLStringWriter(); - } - this.options = options; - this.writer = options.writer; - this.writerOptions = this.writer.filterOptions(writerOptions); - this.stringify = new XMLStringifier(options); - this.onDataCallback = onData || function() {}; - this.onEndCallback = onEnd || function() {}; - this.currentNode = null; - this.currentLevel = -1; - this.openTags = {}; - this.documentStarted = false; - this.documentCompleted = false; - this.root = null; - } - - XMLDocumentCB.prototype.createChildNode = function(node) { - var att, attName, attributes, child, i, len, ref1, ref2; - switch (node.type) { - case NodeType.CData: - this.cdata(node.value); - break; - case NodeType.Comment: - this.comment(node.value); - break; - case NodeType.Element: - attributes = {}; - ref1 = node.attribs; - for (attName in ref1) { - if (!hasProp.call(ref1, attName)) continue; - att = ref1[attName]; - attributes[attName] = att.value; - } - this.node(node.name, attributes); - break; - case NodeType.Dummy: - this.dummy(); - break; - case NodeType.Raw: - this.raw(node.value); - break; - case NodeType.Text: - this.text(node.value); - break; - case NodeType.ProcessingInstruction: - this.instruction(node.target, node.value); - break; - default: - throw new Error("This XML node type is not supported in a JS object: " + node.constructor.name); - } - ref2 = node.children; - for (i = 0, len = ref2.length; i < len; i++) { - child = ref2[i]; - this.createChildNode(child); - if (child.type === NodeType.Element) { - this.up(); - } - } - return this; - }; - - XMLDocumentCB.prototype.dummy = function() { - return this; - }; - - XMLDocumentCB.prototype.node = function(name, attributes, text) { - var ref1; - if (name == null) { - throw new Error("Missing node name."); - } - if (this.root && this.currentLevel === -1) { - throw new Error("Document can only have one root node. " + this.debugInfo(name)); - } - this.openCurrent(); - name = getValue(name); - if (attributes == null) { - attributes = {}; - } - attributes = getValue(attributes); - if (!isObject(attributes)) { - ref1 = [attributes, text], text = ref1[0], attributes = ref1[1]; - } - this.currentNode = new XMLElement(this, name, attributes); - this.currentNode.children = false; - this.currentLevel++; - this.openTags[this.currentLevel] = this.currentNode; - if (text != null) { - this.text(text); - } - return this; - }; - - XMLDocumentCB.prototype.element = function(name, attributes, text) { - var child, i, len, oldValidationFlag, ref1, root; - if (this.currentNode && this.currentNode.type === NodeType.DocType) { - this.dtdElement.apply(this, arguments); - } else { - if (Array.isArray(name) || isObject(name) || isFunction(name)) { - oldValidationFlag = this.options.noValidation; - this.options.noValidation = true; - root = new XMLDocument(this.options).element('TEMP_ROOT'); - root.element(name); - this.options.noValidation = oldValidationFlag; - ref1 = root.children; - for (i = 0, len = ref1.length; i < len; i++) { - child = ref1[i]; - this.createChildNode(child); - if (child.type === NodeType.Element) { - this.up(); - } - } - } else { - this.node(name, attributes, text); - } - } - return this; - }; - - XMLDocumentCB.prototype.attribute = function(name, value) { - var attName, attValue; - if (!this.currentNode || this.currentNode.children) { - throw new Error("att() can only be used immediately after an ele() call in callback mode. " + this.debugInfo(name)); - } - if (name != null) { - name = getValue(name); - } - if (isObject(name)) { - for (attName in name) { - if (!hasProp.call(name, attName)) continue; - attValue = name[attName]; - this.attribute(attName, attValue); - } - } else { - if (isFunction(value)) { - value = value.apply(); - } - if (this.options.keepNullAttributes && (value == null)) { - this.currentNode.attribs[name] = new XMLAttribute(this, name, ""); - } else if (value != null) { - this.currentNode.attribs[name] = new XMLAttribute(this, name, value); - } - } - return this; - }; - - XMLDocumentCB.prototype.text = function(value) { - var node; - this.openCurrent(); - node = new XMLText(this, value); - this.onData(this.writer.text(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1); - return this; - }; - - XMLDocumentCB.prototype.cdata = function(value) { - var node; - this.openCurrent(); - node = new XMLCData(this, value); - this.onData(this.writer.cdata(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1); - return this; - }; - - XMLDocumentCB.prototype.comment = function(value) { - var node; - this.openCurrent(); - node = new XMLComment(this, value); - this.onData(this.writer.comment(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1); - return this; - }; - - XMLDocumentCB.prototype.raw = function(value) { - var node; - this.openCurrent(); - node = new XMLRaw(this, value); - this.onData(this.writer.raw(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1); - return this; - }; - - XMLDocumentCB.prototype.instruction = function(target, value) { - var i, insTarget, insValue, len, node; - this.openCurrent(); - if (target != null) { - target = getValue(target); - } - if (value != null) { - value = getValue(value); - } - if (Array.isArray(target)) { - for (i = 0, len = target.length; i < len; i++) { - insTarget = target[i]; - this.instruction(insTarget); - } - } else if (isObject(target)) { - for (insTarget in target) { - if (!hasProp.call(target, insTarget)) continue; - insValue = target[insTarget]; - this.instruction(insTarget, insValue); - } - } else { - if (isFunction(value)) { - value = value.apply(); - } - node = new XMLProcessingInstruction(this, target, value); - this.onData(this.writer.processingInstruction(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1); - } - return this; - }; - - XMLDocumentCB.prototype.declaration = function(version, encoding, standalone) { - var node; - this.openCurrent(); - if (this.documentStarted) { - throw new Error("declaration() must be the first node."); - } - node = new XMLDeclaration(this, version, encoding, standalone); - this.onData(this.writer.declaration(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1); - return this; - }; - - XMLDocumentCB.prototype.doctype = function(root, pubID, sysID) { - this.openCurrent(); - if (root == null) { - throw new Error("Missing root node name."); - } - if (this.root) { - throw new Error("dtd() must come before the root node."); - } - this.currentNode = new XMLDocType(this, pubID, sysID); - this.currentNode.rootNodeName = root; - this.currentNode.children = false; - this.currentLevel++; - this.openTags[this.currentLevel] = this.currentNode; - return this; - }; - - XMLDocumentCB.prototype.dtdElement = function(name, value) { - var node; - this.openCurrent(); - node = new XMLDTDElement(this, name, value); - this.onData(this.writer.dtdElement(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1); - return this; - }; - - XMLDocumentCB.prototype.attList = function(elementName, attributeName, attributeType, defaultValueType, defaultValue) { - var node; - this.openCurrent(); - node = new XMLDTDAttList(this, elementName, attributeName, attributeType, defaultValueType, defaultValue); - this.onData(this.writer.dtdAttList(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1); - return this; - }; - - XMLDocumentCB.prototype.entity = function(name, value) { - var node; - this.openCurrent(); - node = new XMLDTDEntity(this, false, name, value); - this.onData(this.writer.dtdEntity(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1); - return this; - }; - - XMLDocumentCB.prototype.pEntity = function(name, value) { - var node; - this.openCurrent(); - node = new XMLDTDEntity(this, true, name, value); - this.onData(this.writer.dtdEntity(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1); - return this; - }; - - XMLDocumentCB.prototype.notation = function(name, value) { - var node; - this.openCurrent(); - node = new XMLDTDNotation(this, name, value); - this.onData(this.writer.dtdNotation(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1); - return this; - }; - - XMLDocumentCB.prototype.up = function() { - if (this.currentLevel < 0) { - throw new Error("The document node has no parent."); - } - if (this.currentNode) { - if (this.currentNode.children) { - this.closeNode(this.currentNode); - } else { - this.openNode(this.currentNode); - } - this.currentNode = null; - } else { - this.closeNode(this.openTags[this.currentLevel]); - } - delete this.openTags[this.currentLevel]; - this.currentLevel--; - return this; - }; - - XMLDocumentCB.prototype.end = function() { - while (this.currentLevel >= 0) { - this.up(); - } - return this.onEnd(); - }; - - XMLDocumentCB.prototype.openCurrent = function() { - if (this.currentNode) { - this.currentNode.children = true; - return this.openNode(this.currentNode); - } - }; - - XMLDocumentCB.prototype.openNode = function(node) { - var att, chunk, name, ref1; - if (!node.isOpen) { - if (!this.root && this.currentLevel === 0 && node.type === NodeType.Element) { - this.root = node; - } - chunk = ''; - if (node.type === NodeType.Element) { - this.writerOptions.state = WriterState.OpenTag; - chunk = this.writer.indent(node, this.writerOptions, this.currentLevel) + '<' + node.name; - ref1 = node.attribs; - for (name in ref1) { - if (!hasProp.call(ref1, name)) continue; - att = ref1[name]; - chunk += this.writer.attribute(att, this.writerOptions, this.currentLevel); - } - chunk += (node.children ? '>' : '/>') + this.writer.endline(node, this.writerOptions, this.currentLevel); - this.writerOptions.state = WriterState.InsideTag; - } else { - this.writerOptions.state = WriterState.OpenTag; - chunk = this.writer.indent(node, this.writerOptions, this.currentLevel) + ''; - } - chunk += this.writer.endline(node, this.writerOptions, this.currentLevel); - } - this.onData(chunk, this.currentLevel); - return node.isOpen = true; - } - }; - - XMLDocumentCB.prototype.closeNode = function(node) { - var chunk; - if (!node.isClosed) { - chunk = ''; - this.writerOptions.state = WriterState.CloseTag; - if (node.type === NodeType.Element) { - chunk = this.writer.indent(node, this.writerOptions, this.currentLevel) + '' + this.writer.endline(node, this.writerOptions, this.currentLevel); - } else { - chunk = this.writer.indent(node, this.writerOptions, this.currentLevel) + ']>' + this.writer.endline(node, this.writerOptions, this.currentLevel); - } - this.writerOptions.state = WriterState.None; - this.onData(chunk, this.currentLevel); - return node.isClosed = true; - } - }; - - XMLDocumentCB.prototype.onData = function(chunk, level) { - this.documentStarted = true; - return this.onDataCallback(chunk, level + 1); - }; - - XMLDocumentCB.prototype.onEnd = function() { - this.documentCompleted = true; - return this.onEndCallback(); - }; - - XMLDocumentCB.prototype.debugInfo = function(name) { - if (name == null) { - return ""; - } else { - return "node: <" + name + ">"; - } - }; - - XMLDocumentCB.prototype.ele = function() { - return this.element.apply(this, arguments); - }; - - XMLDocumentCB.prototype.nod = function(name, attributes, text) { - return this.node(name, attributes, text); - }; - - XMLDocumentCB.prototype.txt = function(value) { - return this.text(value); - }; - - XMLDocumentCB.prototype.dat = function(value) { - return this.cdata(value); - }; - - XMLDocumentCB.prototype.com = function(value) { - return this.comment(value); - }; - - XMLDocumentCB.prototype.ins = function(target, value) { - return this.instruction(target, value); - }; - - XMLDocumentCB.prototype.dec = function(version, encoding, standalone) { - return this.declaration(version, encoding, standalone); - }; - - XMLDocumentCB.prototype.dtd = function(root, pubID, sysID) { - return this.doctype(root, pubID, sysID); - }; - - XMLDocumentCB.prototype.e = function(name, attributes, text) { - return this.element(name, attributes, text); - }; - - XMLDocumentCB.prototype.n = function(name, attributes, text) { - return this.node(name, attributes, text); - }; - - XMLDocumentCB.prototype.t = function(value) { - return this.text(value); - }; - - XMLDocumentCB.prototype.d = function(value) { - return this.cdata(value); - }; - - XMLDocumentCB.prototype.c = function(value) { - return this.comment(value); - }; - - XMLDocumentCB.prototype.r = function(value) { - return this.raw(value); - }; - - XMLDocumentCB.prototype.i = function(target, value) { - return this.instruction(target, value); - }; - - XMLDocumentCB.prototype.att = function() { - if (this.currentNode && this.currentNode.type === NodeType.DocType) { - return this.attList.apply(this, arguments); - } else { - return this.attribute.apply(this, arguments); - } - }; - - XMLDocumentCB.prototype.a = function() { - if (this.currentNode && this.currentNode.type === NodeType.DocType) { - return this.attList.apply(this, arguments); - } else { - return this.attribute.apply(this, arguments); - } - }; - - XMLDocumentCB.prototype.ent = function(name, value) { - return this.entity(name, value); - }; - - XMLDocumentCB.prototype.pent = function(name, value) { - return this.pEntity(name, value); - }; - - XMLDocumentCB.prototype.not = function(name, value) { - return this.notation(name, value); - }; - - return XMLDocumentCB; - - })(); - -}).call(this); diff --git a/XNSimHtml/node_modules/xmlbuilder/lib/XMLDocumentFragment.js b/XNSimHtml/node_modules/xmlbuilder/lib/XMLDocumentFragment.js deleted file mode 100644 index 5d6039c..0000000 --- a/XNSimHtml/node_modules/xmlbuilder/lib/XMLDocumentFragment.js +++ /dev/null @@ -1,24 +0,0 @@ -// Generated by CoffeeScript 1.12.7 -(function() { - var NodeType, XMLDocumentFragment, XMLNode, - extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, - hasProp = {}.hasOwnProperty; - - XMLNode = require('./XMLNode'); - - NodeType = require('./NodeType'); - - module.exports = XMLDocumentFragment = (function(superClass) { - extend(XMLDocumentFragment, superClass); - - function XMLDocumentFragment() { - XMLDocumentFragment.__super__.constructor.call(this, null); - this.name = "#document-fragment"; - this.type = NodeType.DocumentFragment; - } - - return XMLDocumentFragment; - - })(XMLNode); - -}).call(this); diff --git a/XNSimHtml/node_modules/xmlbuilder/lib/XMLDummy.js b/XNSimHtml/node_modules/xmlbuilder/lib/XMLDummy.js deleted file mode 100644 index b26083a..0000000 --- a/XNSimHtml/node_modules/xmlbuilder/lib/XMLDummy.js +++ /dev/null @@ -1,31 +0,0 @@ -// Generated by CoffeeScript 1.12.7 -(function() { - var NodeType, XMLDummy, XMLNode, - extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, - hasProp = {}.hasOwnProperty; - - XMLNode = require('./XMLNode'); - - NodeType = require('./NodeType'); - - module.exports = XMLDummy = (function(superClass) { - extend(XMLDummy, superClass); - - function XMLDummy(parent) { - XMLDummy.__super__.constructor.call(this, parent); - this.type = NodeType.Dummy; - } - - XMLDummy.prototype.clone = function() { - return Object.create(this); - }; - - XMLDummy.prototype.toString = function(options) { - return ''; - }; - - return XMLDummy; - - })(XMLNode); - -}).call(this); diff --git a/XNSimHtml/node_modules/xmlbuilder/lib/XMLElement.js b/XNSimHtml/node_modules/xmlbuilder/lib/XMLElement.js deleted file mode 100644 index c165729..0000000 --- a/XNSimHtml/node_modules/xmlbuilder/lib/XMLElement.js +++ /dev/null @@ -1,298 +0,0 @@ -// Generated by CoffeeScript 1.12.7 -(function() { - var NodeType, XMLAttribute, XMLElement, XMLNamedNodeMap, XMLNode, getValue, isFunction, isObject, ref, - extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, - hasProp = {}.hasOwnProperty; - - ref = require('./Utility'), isObject = ref.isObject, isFunction = ref.isFunction, getValue = ref.getValue; - - XMLNode = require('./XMLNode'); - - NodeType = require('./NodeType'); - - XMLAttribute = require('./XMLAttribute'); - - XMLNamedNodeMap = require('./XMLNamedNodeMap'); - - module.exports = XMLElement = (function(superClass) { - extend(XMLElement, superClass); - - function XMLElement(parent, name, attributes) { - var child, j, len, ref1; - XMLElement.__super__.constructor.call(this, parent); - if (name == null) { - throw new Error("Missing element name. " + this.debugInfo()); - } - this.name = this.stringify.name(name); - this.type = NodeType.Element; - this.attribs = {}; - this.schemaTypeInfo = null; - if (attributes != null) { - this.attribute(attributes); - } - if (parent.type === NodeType.Document) { - this.isRoot = true; - this.documentObject = parent; - parent.rootObject = this; - if (parent.children) { - ref1 = parent.children; - for (j = 0, len = ref1.length; j < len; j++) { - child = ref1[j]; - if (child.type === NodeType.DocType) { - child.name = this.name; - break; - } - } - } - } - } - - Object.defineProperty(XMLElement.prototype, 'tagName', { - get: function() { - return this.name; - } - }); - - Object.defineProperty(XMLElement.prototype, 'namespaceURI', { - get: function() { - return ''; - } - }); - - Object.defineProperty(XMLElement.prototype, 'prefix', { - get: function() { - return ''; - } - }); - - Object.defineProperty(XMLElement.prototype, 'localName', { - get: function() { - return this.name; - } - }); - - Object.defineProperty(XMLElement.prototype, 'id', { - get: function() { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - } - }); - - Object.defineProperty(XMLElement.prototype, 'className', { - get: function() { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - } - }); - - Object.defineProperty(XMLElement.prototype, 'classList', { - get: function() { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - } - }); - - Object.defineProperty(XMLElement.prototype, 'attributes', { - get: function() { - if (!this.attributeMap || !this.attributeMap.nodes) { - this.attributeMap = new XMLNamedNodeMap(this.attribs); - } - return this.attributeMap; - } - }); - - XMLElement.prototype.clone = function() { - var att, attName, clonedSelf, ref1; - clonedSelf = Object.create(this); - if (clonedSelf.isRoot) { - clonedSelf.documentObject = null; - } - clonedSelf.attribs = {}; - ref1 = this.attribs; - for (attName in ref1) { - if (!hasProp.call(ref1, attName)) continue; - att = ref1[attName]; - clonedSelf.attribs[attName] = att.clone(); - } - clonedSelf.children = []; - this.children.forEach(function(child) { - var clonedChild; - clonedChild = child.clone(); - clonedChild.parent = clonedSelf; - return clonedSelf.children.push(clonedChild); - }); - return clonedSelf; - }; - - XMLElement.prototype.attribute = function(name, value) { - var attName, attValue; - if (name != null) { - name = getValue(name); - } - if (isObject(name)) { - for (attName in name) { - if (!hasProp.call(name, attName)) continue; - attValue = name[attName]; - this.attribute(attName, attValue); - } - } else { - if (isFunction(value)) { - value = value.apply(); - } - if (this.options.keepNullAttributes && (value == null)) { - this.attribs[name] = new XMLAttribute(this, name, ""); - } else if (value != null) { - this.attribs[name] = new XMLAttribute(this, name, value); - } - } - return this; - }; - - XMLElement.prototype.removeAttribute = function(name) { - var attName, j, len; - if (name == null) { - throw new Error("Missing attribute name. " + this.debugInfo()); - } - name = getValue(name); - if (Array.isArray(name)) { - for (j = 0, len = name.length; j < len; j++) { - attName = name[j]; - delete this.attribs[attName]; - } - } else { - delete this.attribs[name]; - } - return this; - }; - - XMLElement.prototype.toString = function(options) { - return this.options.writer.element(this, this.options.writer.filterOptions(options)); - }; - - XMLElement.prototype.att = function(name, value) { - return this.attribute(name, value); - }; - - XMLElement.prototype.a = function(name, value) { - return this.attribute(name, value); - }; - - XMLElement.prototype.getAttribute = function(name) { - if (this.attribs.hasOwnProperty(name)) { - return this.attribs[name].value; - } else { - return null; - } - }; - - XMLElement.prototype.setAttribute = function(name, value) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLElement.prototype.getAttributeNode = function(name) { - if (this.attribs.hasOwnProperty(name)) { - return this.attribs[name]; - } else { - return null; - } - }; - - XMLElement.prototype.setAttributeNode = function(newAttr) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLElement.prototype.removeAttributeNode = function(oldAttr) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLElement.prototype.getElementsByTagName = function(name) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLElement.prototype.getAttributeNS = function(namespaceURI, localName) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLElement.prototype.setAttributeNS = function(namespaceURI, qualifiedName, value) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLElement.prototype.removeAttributeNS = function(namespaceURI, localName) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLElement.prototype.getAttributeNodeNS = function(namespaceURI, localName) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLElement.prototype.setAttributeNodeNS = function(newAttr) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLElement.prototype.getElementsByTagNameNS = function(namespaceURI, localName) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLElement.prototype.hasAttribute = function(name) { - return this.attribs.hasOwnProperty(name); - }; - - XMLElement.prototype.hasAttributeNS = function(namespaceURI, localName) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLElement.prototype.setIdAttribute = function(name, isId) { - if (this.attribs.hasOwnProperty(name)) { - return this.attribs[name].isId; - } else { - return isId; - } - }; - - XMLElement.prototype.setIdAttributeNS = function(namespaceURI, localName, isId) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLElement.prototype.setIdAttributeNode = function(idAttr, isId) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLElement.prototype.getElementsByTagName = function(tagname) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLElement.prototype.getElementsByTagNameNS = function(namespaceURI, localName) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLElement.prototype.getElementsByClassName = function(classNames) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLElement.prototype.isEqualNode = function(node) { - var i, j, ref1; - if (!XMLElement.__super__.isEqualNode.apply(this, arguments).isEqualNode(node)) { - return false; - } - if (node.namespaceURI !== this.namespaceURI) { - return false; - } - if (node.prefix !== this.prefix) { - return false; - } - if (node.localName !== this.localName) { - return false; - } - if (node.attribs.length !== this.attribs.length) { - return false; - } - for (i = j = 0, ref1 = this.attribs.length - 1; 0 <= ref1 ? j <= ref1 : j >= ref1; i = 0 <= ref1 ? ++j : --j) { - if (!this.attribs[i].isEqualNode(node.attribs[i])) { - return false; - } - } - return true; - }; - - return XMLElement; - - })(XMLNode); - -}).call(this); diff --git a/XNSimHtml/node_modules/xmlbuilder/lib/XMLNamedNodeMap.js b/XNSimHtml/node_modules/xmlbuilder/lib/XMLNamedNodeMap.js deleted file mode 100644 index 885402d..0000000 --- a/XNSimHtml/node_modules/xmlbuilder/lib/XMLNamedNodeMap.js +++ /dev/null @@ -1,58 +0,0 @@ -// Generated by CoffeeScript 1.12.7 -(function() { - var XMLNamedNodeMap; - - module.exports = XMLNamedNodeMap = (function() { - function XMLNamedNodeMap(nodes) { - this.nodes = nodes; - } - - Object.defineProperty(XMLNamedNodeMap.prototype, 'length', { - get: function() { - return Object.keys(this.nodes).length || 0; - } - }); - - XMLNamedNodeMap.prototype.clone = function() { - return this.nodes = null; - }; - - XMLNamedNodeMap.prototype.getNamedItem = function(name) { - return this.nodes[name]; - }; - - XMLNamedNodeMap.prototype.setNamedItem = function(node) { - var oldNode; - oldNode = this.nodes[node.nodeName]; - this.nodes[node.nodeName] = node; - return oldNode || null; - }; - - XMLNamedNodeMap.prototype.removeNamedItem = function(name) { - var oldNode; - oldNode = this.nodes[name]; - delete this.nodes[name]; - return oldNode || null; - }; - - XMLNamedNodeMap.prototype.item = function(index) { - return this.nodes[Object.keys(this.nodes)[index]] || null; - }; - - XMLNamedNodeMap.prototype.getNamedItemNS = function(namespaceURI, localName) { - throw new Error("This DOM method is not implemented."); - }; - - XMLNamedNodeMap.prototype.setNamedItemNS = function(node) { - throw new Error("This DOM method is not implemented."); - }; - - XMLNamedNodeMap.prototype.removeNamedItemNS = function(namespaceURI, localName) { - throw new Error("This DOM method is not implemented."); - }; - - return XMLNamedNodeMap; - - })(); - -}).call(this); diff --git a/XNSimHtml/node_modules/xmlbuilder/lib/XMLNode.js b/XNSimHtml/node_modules/xmlbuilder/lib/XMLNode.js deleted file mode 100644 index e2c7bb7..0000000 --- a/XNSimHtml/node_modules/xmlbuilder/lib/XMLNode.js +++ /dev/null @@ -1,785 +0,0 @@ -// Generated by CoffeeScript 1.12.7 -(function() { - var DocumentPosition, NodeType, XMLCData, XMLComment, XMLDeclaration, XMLDocType, XMLDummy, XMLElement, XMLNamedNodeMap, XMLNode, XMLNodeList, XMLProcessingInstruction, XMLRaw, XMLText, getValue, isEmpty, isFunction, isObject, ref1, - hasProp = {}.hasOwnProperty; - - ref1 = require('./Utility'), isObject = ref1.isObject, isFunction = ref1.isFunction, isEmpty = ref1.isEmpty, getValue = ref1.getValue; - - XMLElement = null; - - XMLCData = null; - - XMLComment = null; - - XMLDeclaration = null; - - XMLDocType = null; - - XMLRaw = null; - - XMLText = null; - - XMLProcessingInstruction = null; - - XMLDummy = null; - - NodeType = null; - - XMLNodeList = null; - - XMLNamedNodeMap = null; - - DocumentPosition = null; - - module.exports = XMLNode = (function() { - function XMLNode(parent1) { - this.parent = parent1; - if (this.parent) { - this.options = this.parent.options; - this.stringify = this.parent.stringify; - } - this.value = null; - this.children = []; - this.baseURI = null; - if (!XMLElement) { - XMLElement = require('./XMLElement'); - XMLCData = require('./XMLCData'); - XMLComment = require('./XMLComment'); - XMLDeclaration = require('./XMLDeclaration'); - XMLDocType = require('./XMLDocType'); - XMLRaw = require('./XMLRaw'); - XMLText = require('./XMLText'); - XMLProcessingInstruction = require('./XMLProcessingInstruction'); - XMLDummy = require('./XMLDummy'); - NodeType = require('./NodeType'); - XMLNodeList = require('./XMLNodeList'); - XMLNamedNodeMap = require('./XMLNamedNodeMap'); - DocumentPosition = require('./DocumentPosition'); - } - } - - Object.defineProperty(XMLNode.prototype, 'nodeName', { - get: function() { - return this.name; - } - }); - - Object.defineProperty(XMLNode.prototype, 'nodeType', { - get: function() { - return this.type; - } - }); - - Object.defineProperty(XMLNode.prototype, 'nodeValue', { - get: function() { - return this.value; - } - }); - - Object.defineProperty(XMLNode.prototype, 'parentNode', { - get: function() { - return this.parent; - } - }); - - Object.defineProperty(XMLNode.prototype, 'childNodes', { - get: function() { - if (!this.childNodeList || !this.childNodeList.nodes) { - this.childNodeList = new XMLNodeList(this.children); - } - return this.childNodeList; - } - }); - - Object.defineProperty(XMLNode.prototype, 'firstChild', { - get: function() { - return this.children[0] || null; - } - }); - - Object.defineProperty(XMLNode.prototype, 'lastChild', { - get: function() { - return this.children[this.children.length - 1] || null; - } - }); - - Object.defineProperty(XMLNode.prototype, 'previousSibling', { - get: function() { - var i; - i = this.parent.children.indexOf(this); - return this.parent.children[i - 1] || null; - } - }); - - Object.defineProperty(XMLNode.prototype, 'nextSibling', { - get: function() { - var i; - i = this.parent.children.indexOf(this); - return this.parent.children[i + 1] || null; - } - }); - - Object.defineProperty(XMLNode.prototype, 'ownerDocument', { - get: function() { - return this.document() || null; - } - }); - - Object.defineProperty(XMLNode.prototype, 'textContent', { - get: function() { - var child, j, len, ref2, str; - if (this.nodeType === NodeType.Element || this.nodeType === NodeType.DocumentFragment) { - str = ''; - ref2 = this.children; - for (j = 0, len = ref2.length; j < len; j++) { - child = ref2[j]; - if (child.textContent) { - str += child.textContent; - } - } - return str; - } else { - return null; - } - }, - set: function(value) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - } - }); - - XMLNode.prototype.setParent = function(parent) { - var child, j, len, ref2, results; - this.parent = parent; - if (parent) { - this.options = parent.options; - this.stringify = parent.stringify; - } - ref2 = this.children; - results = []; - for (j = 0, len = ref2.length; j < len; j++) { - child = ref2[j]; - results.push(child.setParent(this)); - } - return results; - }; - - XMLNode.prototype.element = function(name, attributes, text) { - var childNode, item, j, k, key, lastChild, len, len1, ref2, ref3, val; - lastChild = null; - if (attributes === null && (text == null)) { - ref2 = [{}, null], attributes = ref2[0], text = ref2[1]; - } - if (attributes == null) { - attributes = {}; - } - attributes = getValue(attributes); - if (!isObject(attributes)) { - ref3 = [attributes, text], text = ref3[0], attributes = ref3[1]; - } - if (name != null) { - name = getValue(name); - } - if (Array.isArray(name)) { - for (j = 0, len = name.length; j < len; j++) { - item = name[j]; - lastChild = this.element(item); - } - } else if (isFunction(name)) { - lastChild = this.element(name.apply()); - } else if (isObject(name)) { - for (key in name) { - if (!hasProp.call(name, key)) continue; - val = name[key]; - if (isFunction(val)) { - val = val.apply(); - } - if (!this.options.ignoreDecorators && this.stringify.convertAttKey && key.indexOf(this.stringify.convertAttKey) === 0) { - lastChild = this.attribute(key.substr(this.stringify.convertAttKey.length), val); - } else if (!this.options.separateArrayItems && Array.isArray(val) && isEmpty(val)) { - lastChild = this.dummy(); - } else if (isObject(val) && isEmpty(val)) { - lastChild = this.element(key); - } else if (!this.options.keepNullNodes && (val == null)) { - lastChild = this.dummy(); - } else if (!this.options.separateArrayItems && Array.isArray(val)) { - for (k = 0, len1 = val.length; k < len1; k++) { - item = val[k]; - childNode = {}; - childNode[key] = item; - lastChild = this.element(childNode); - } - } else if (isObject(val)) { - if (!this.options.ignoreDecorators && this.stringify.convertTextKey && key.indexOf(this.stringify.convertTextKey) === 0) { - lastChild = this.element(val); - } else { - lastChild = this.element(key); - lastChild.element(val); - } - } else { - lastChild = this.element(key, val); - } - } - } else if (!this.options.keepNullNodes && text === null) { - lastChild = this.dummy(); - } else { - if (!this.options.ignoreDecorators && this.stringify.convertTextKey && name.indexOf(this.stringify.convertTextKey) === 0) { - lastChild = this.text(text); - } else if (!this.options.ignoreDecorators && this.stringify.convertCDataKey && name.indexOf(this.stringify.convertCDataKey) === 0) { - lastChild = this.cdata(text); - } else if (!this.options.ignoreDecorators && this.stringify.convertCommentKey && name.indexOf(this.stringify.convertCommentKey) === 0) { - lastChild = this.comment(text); - } else if (!this.options.ignoreDecorators && this.stringify.convertRawKey && name.indexOf(this.stringify.convertRawKey) === 0) { - lastChild = this.raw(text); - } else if (!this.options.ignoreDecorators && this.stringify.convertPIKey && name.indexOf(this.stringify.convertPIKey) === 0) { - lastChild = this.instruction(name.substr(this.stringify.convertPIKey.length), text); - } else { - lastChild = this.node(name, attributes, text); - } - } - if (lastChild == null) { - throw new Error("Could not create any elements with: " + name + ". " + this.debugInfo()); - } - return lastChild; - }; - - XMLNode.prototype.insertBefore = function(name, attributes, text) { - var child, i, newChild, refChild, removed; - if (name != null ? name.type : void 0) { - newChild = name; - refChild = attributes; - newChild.setParent(this); - if (refChild) { - i = children.indexOf(refChild); - removed = children.splice(i); - children.push(newChild); - Array.prototype.push.apply(children, removed); - } else { - children.push(newChild); - } - return newChild; - } else { - if (this.isRoot) { - throw new Error("Cannot insert elements at root level. " + this.debugInfo(name)); - } - i = this.parent.children.indexOf(this); - removed = this.parent.children.splice(i); - child = this.parent.element(name, attributes, text); - Array.prototype.push.apply(this.parent.children, removed); - return child; - } - }; - - XMLNode.prototype.insertAfter = function(name, attributes, text) { - var child, i, removed; - if (this.isRoot) { - throw new Error("Cannot insert elements at root level. " + this.debugInfo(name)); - } - i = this.parent.children.indexOf(this); - removed = this.parent.children.splice(i + 1); - child = this.parent.element(name, attributes, text); - Array.prototype.push.apply(this.parent.children, removed); - return child; - }; - - XMLNode.prototype.remove = function() { - var i, ref2; - if (this.isRoot) { - throw new Error("Cannot remove the root element. " + this.debugInfo()); - } - i = this.parent.children.indexOf(this); - [].splice.apply(this.parent.children, [i, i - i + 1].concat(ref2 = [])), ref2; - return this.parent; - }; - - XMLNode.prototype.node = function(name, attributes, text) { - var child, ref2; - if (name != null) { - name = getValue(name); - } - attributes || (attributes = {}); - attributes = getValue(attributes); - if (!isObject(attributes)) { - ref2 = [attributes, text], text = ref2[0], attributes = ref2[1]; - } - child = new XMLElement(this, name, attributes); - if (text != null) { - child.text(text); - } - this.children.push(child); - return child; - }; - - XMLNode.prototype.text = function(value) { - var child; - if (isObject(value)) { - this.element(value); - } - child = new XMLText(this, value); - this.children.push(child); - return this; - }; - - XMLNode.prototype.cdata = function(value) { - var child; - child = new XMLCData(this, value); - this.children.push(child); - return this; - }; - - XMLNode.prototype.comment = function(value) { - var child; - child = new XMLComment(this, value); - this.children.push(child); - return this; - }; - - XMLNode.prototype.commentBefore = function(value) { - var child, i, removed; - i = this.parent.children.indexOf(this); - removed = this.parent.children.splice(i); - child = this.parent.comment(value); - Array.prototype.push.apply(this.parent.children, removed); - return this; - }; - - XMLNode.prototype.commentAfter = function(value) { - var child, i, removed; - i = this.parent.children.indexOf(this); - removed = this.parent.children.splice(i + 1); - child = this.parent.comment(value); - Array.prototype.push.apply(this.parent.children, removed); - return this; - }; - - XMLNode.prototype.raw = function(value) { - var child; - child = new XMLRaw(this, value); - this.children.push(child); - return this; - }; - - XMLNode.prototype.dummy = function() { - var child; - child = new XMLDummy(this); - return child; - }; - - XMLNode.prototype.instruction = function(target, value) { - var insTarget, insValue, instruction, j, len; - if (target != null) { - target = getValue(target); - } - if (value != null) { - value = getValue(value); - } - if (Array.isArray(target)) { - for (j = 0, len = target.length; j < len; j++) { - insTarget = target[j]; - this.instruction(insTarget); - } - } else if (isObject(target)) { - for (insTarget in target) { - if (!hasProp.call(target, insTarget)) continue; - insValue = target[insTarget]; - this.instruction(insTarget, insValue); - } - } else { - if (isFunction(value)) { - value = value.apply(); - } - instruction = new XMLProcessingInstruction(this, target, value); - this.children.push(instruction); - } - return this; - }; - - XMLNode.prototype.instructionBefore = function(target, value) { - var child, i, removed; - i = this.parent.children.indexOf(this); - removed = this.parent.children.splice(i); - child = this.parent.instruction(target, value); - Array.prototype.push.apply(this.parent.children, removed); - return this; - }; - - XMLNode.prototype.instructionAfter = function(target, value) { - var child, i, removed; - i = this.parent.children.indexOf(this); - removed = this.parent.children.splice(i + 1); - child = this.parent.instruction(target, value); - Array.prototype.push.apply(this.parent.children, removed); - return this; - }; - - XMLNode.prototype.declaration = function(version, encoding, standalone) { - var doc, xmldec; - doc = this.document(); - xmldec = new XMLDeclaration(doc, version, encoding, standalone); - if (doc.children.length === 0) { - doc.children.unshift(xmldec); - } else if (doc.children[0].type === NodeType.Declaration) { - doc.children[0] = xmldec; - } else { - doc.children.unshift(xmldec); - } - return doc.root() || doc; - }; - - XMLNode.prototype.dtd = function(pubID, sysID) { - var child, doc, doctype, i, j, k, len, len1, ref2, ref3; - doc = this.document(); - doctype = new XMLDocType(doc, pubID, sysID); - ref2 = doc.children; - for (i = j = 0, len = ref2.length; j < len; i = ++j) { - child = ref2[i]; - if (child.type === NodeType.DocType) { - doc.children[i] = doctype; - return doctype; - } - } - ref3 = doc.children; - for (i = k = 0, len1 = ref3.length; k < len1; i = ++k) { - child = ref3[i]; - if (child.isRoot) { - doc.children.splice(i, 0, doctype); - return doctype; - } - } - doc.children.push(doctype); - return doctype; - }; - - XMLNode.prototype.up = function() { - if (this.isRoot) { - throw new Error("The root node has no parent. Use doc() if you need to get the document object."); - } - return this.parent; - }; - - XMLNode.prototype.root = function() { - var node; - node = this; - while (node) { - if (node.type === NodeType.Document) { - return node.rootObject; - } else if (node.isRoot) { - return node; - } else { - node = node.parent; - } - } - }; - - XMLNode.prototype.document = function() { - var node; - node = this; - while (node) { - if (node.type === NodeType.Document) { - return node; - } else { - node = node.parent; - } - } - }; - - XMLNode.prototype.end = function(options) { - return this.document().end(options); - }; - - XMLNode.prototype.prev = function() { - var i; - i = this.parent.children.indexOf(this); - if (i < 1) { - throw new Error("Already at the first node. " + this.debugInfo()); - } - return this.parent.children[i - 1]; - }; - - XMLNode.prototype.next = function() { - var i; - i = this.parent.children.indexOf(this); - if (i === -1 || i === this.parent.children.length - 1) { - throw new Error("Already at the last node. " + this.debugInfo()); - } - return this.parent.children[i + 1]; - }; - - XMLNode.prototype.importDocument = function(doc) { - var clonedRoot; - clonedRoot = doc.root().clone(); - clonedRoot.parent = this; - clonedRoot.isRoot = false; - this.children.push(clonedRoot); - return this; - }; - - XMLNode.prototype.debugInfo = function(name) { - var ref2, ref3; - name = name || this.name; - if ((name == null) && !((ref2 = this.parent) != null ? ref2.name : void 0)) { - return ""; - } else if (name == null) { - return "parent: <" + this.parent.name + ">"; - } else if (!((ref3 = this.parent) != null ? ref3.name : void 0)) { - return "node: <" + name + ">"; - } else { - return "node: <" + name + ">, parent: <" + this.parent.name + ">"; - } - }; - - XMLNode.prototype.ele = function(name, attributes, text) { - return this.element(name, attributes, text); - }; - - XMLNode.prototype.nod = function(name, attributes, text) { - return this.node(name, attributes, text); - }; - - XMLNode.prototype.txt = function(value) { - return this.text(value); - }; - - XMLNode.prototype.dat = function(value) { - return this.cdata(value); - }; - - XMLNode.prototype.com = function(value) { - return this.comment(value); - }; - - XMLNode.prototype.ins = function(target, value) { - return this.instruction(target, value); - }; - - XMLNode.prototype.doc = function() { - return this.document(); - }; - - XMLNode.prototype.dec = function(version, encoding, standalone) { - return this.declaration(version, encoding, standalone); - }; - - XMLNode.prototype.e = function(name, attributes, text) { - return this.element(name, attributes, text); - }; - - XMLNode.prototype.n = function(name, attributes, text) { - return this.node(name, attributes, text); - }; - - XMLNode.prototype.t = function(value) { - return this.text(value); - }; - - XMLNode.prototype.d = function(value) { - return this.cdata(value); - }; - - XMLNode.prototype.c = function(value) { - return this.comment(value); - }; - - XMLNode.prototype.r = function(value) { - return this.raw(value); - }; - - XMLNode.prototype.i = function(target, value) { - return this.instruction(target, value); - }; - - XMLNode.prototype.u = function() { - return this.up(); - }; - - XMLNode.prototype.importXMLBuilder = function(doc) { - return this.importDocument(doc); - }; - - XMLNode.prototype.replaceChild = function(newChild, oldChild) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLNode.prototype.removeChild = function(oldChild) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLNode.prototype.appendChild = function(newChild) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLNode.prototype.hasChildNodes = function() { - return this.children.length !== 0; - }; - - XMLNode.prototype.cloneNode = function(deep) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLNode.prototype.normalize = function() { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLNode.prototype.isSupported = function(feature, version) { - return true; - }; - - XMLNode.prototype.hasAttributes = function() { - return this.attribs.length !== 0; - }; - - XMLNode.prototype.compareDocumentPosition = function(other) { - var ref, res; - ref = this; - if (ref === other) { - return 0; - } else if (this.document() !== other.document()) { - res = DocumentPosition.Disconnected | DocumentPosition.ImplementationSpecific; - if (Math.random() < 0.5) { - res |= DocumentPosition.Preceding; - } else { - res |= DocumentPosition.Following; - } - return res; - } else if (ref.isAncestor(other)) { - return DocumentPosition.Contains | DocumentPosition.Preceding; - } else if (ref.isDescendant(other)) { - return DocumentPosition.Contains | DocumentPosition.Following; - } else if (ref.isPreceding(other)) { - return DocumentPosition.Preceding; - } else { - return DocumentPosition.Following; - } - }; - - XMLNode.prototype.isSameNode = function(other) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLNode.prototype.lookupPrefix = function(namespaceURI) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLNode.prototype.isDefaultNamespace = function(namespaceURI) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLNode.prototype.lookupNamespaceURI = function(prefix) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLNode.prototype.isEqualNode = function(node) { - var i, j, ref2; - if (node.nodeType !== this.nodeType) { - return false; - } - if (node.children.length !== this.children.length) { - return false; - } - for (i = j = 0, ref2 = this.children.length - 1; 0 <= ref2 ? j <= ref2 : j >= ref2; i = 0 <= ref2 ? ++j : --j) { - if (!this.children[i].isEqualNode(node.children[i])) { - return false; - } - } - return true; - }; - - XMLNode.prototype.getFeature = function(feature, version) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLNode.prototype.setUserData = function(key, data, handler) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLNode.prototype.getUserData = function(key) { - throw new Error("This DOM method is not implemented." + this.debugInfo()); - }; - - XMLNode.prototype.contains = function(other) { - if (!other) { - return false; - } - return other === this || this.isDescendant(other); - }; - - XMLNode.prototype.isDescendant = function(node) { - var child, isDescendantChild, j, len, ref2; - ref2 = this.children; - for (j = 0, len = ref2.length; j < len; j++) { - child = ref2[j]; - if (node === child) { - return true; - } - isDescendantChild = child.isDescendant(node); - if (isDescendantChild) { - return true; - } - } - return false; - }; - - XMLNode.prototype.isAncestor = function(node) { - return node.isDescendant(this); - }; - - XMLNode.prototype.isPreceding = function(node) { - var nodePos, thisPos; - nodePos = this.treePosition(node); - thisPos = this.treePosition(this); - if (nodePos === -1 || thisPos === -1) { - return false; - } else { - return nodePos < thisPos; - } - }; - - XMLNode.prototype.isFollowing = function(node) { - var nodePos, thisPos; - nodePos = this.treePosition(node); - thisPos = this.treePosition(this); - if (nodePos === -1 || thisPos === -1) { - return false; - } else { - return nodePos > thisPos; - } - }; - - XMLNode.prototype.treePosition = function(node) { - var found, pos; - pos = 0; - found = false; - this.foreachTreeNode(this.document(), function(childNode) { - pos++; - if (!found && childNode === node) { - return found = true; - } - }); - if (found) { - return pos; - } else { - return -1; - } - }; - - XMLNode.prototype.foreachTreeNode = function(node, func) { - var child, j, len, ref2, res; - node || (node = this.document()); - ref2 = node.children; - for (j = 0, len = ref2.length; j < len; j++) { - child = ref2[j]; - if (res = func(child)) { - return res; - } else { - res = this.foreachTreeNode(child, func); - if (res) { - return res; - } - } - } - }; - - return XMLNode; - - })(); - -}).call(this); diff --git a/XNSimHtml/node_modules/xmlbuilder/lib/XMLNodeFilter.js b/XNSimHtml/node_modules/xmlbuilder/lib/XMLNodeFilter.js deleted file mode 100644 index ce32fd5..0000000 --- a/XNSimHtml/node_modules/xmlbuilder/lib/XMLNodeFilter.js +++ /dev/null @@ -1,48 +0,0 @@ -// Generated by CoffeeScript 1.12.7 -(function() { - var XMLNodeFilter; - - module.exports = XMLNodeFilter = (function() { - function XMLNodeFilter() {} - - XMLNodeFilter.prototype.FilterAccept = 1; - - XMLNodeFilter.prototype.FilterReject = 2; - - XMLNodeFilter.prototype.FilterSkip = 3; - - XMLNodeFilter.prototype.ShowAll = 0xffffffff; - - XMLNodeFilter.prototype.ShowElement = 0x1; - - XMLNodeFilter.prototype.ShowAttribute = 0x2; - - XMLNodeFilter.prototype.ShowText = 0x4; - - XMLNodeFilter.prototype.ShowCDataSection = 0x8; - - XMLNodeFilter.prototype.ShowEntityReference = 0x10; - - XMLNodeFilter.prototype.ShowEntity = 0x20; - - XMLNodeFilter.prototype.ShowProcessingInstruction = 0x40; - - XMLNodeFilter.prototype.ShowComment = 0x80; - - XMLNodeFilter.prototype.ShowDocument = 0x100; - - XMLNodeFilter.prototype.ShowDocumentType = 0x200; - - XMLNodeFilter.prototype.ShowDocumentFragment = 0x400; - - XMLNodeFilter.prototype.ShowNotation = 0x800; - - XMLNodeFilter.prototype.acceptNode = function(node) { - throw new Error("This DOM method is not implemented."); - }; - - return XMLNodeFilter; - - })(); - -}).call(this); diff --git a/XNSimHtml/node_modules/xmlbuilder/lib/XMLNodeList.js b/XNSimHtml/node_modules/xmlbuilder/lib/XMLNodeList.js deleted file mode 100644 index 3414a3e..0000000 --- a/XNSimHtml/node_modules/xmlbuilder/lib/XMLNodeList.js +++ /dev/null @@ -1,28 +0,0 @@ -// Generated by CoffeeScript 1.12.7 -(function() { - var XMLNodeList; - - module.exports = XMLNodeList = (function() { - function XMLNodeList(nodes) { - this.nodes = nodes; - } - - Object.defineProperty(XMLNodeList.prototype, 'length', { - get: function() { - return this.nodes.length || 0; - } - }); - - XMLNodeList.prototype.clone = function() { - return this.nodes = null; - }; - - XMLNodeList.prototype.item = function(index) { - return this.nodes[index] || null; - }; - - return XMLNodeList; - - })(); - -}).call(this); diff --git a/XNSimHtml/node_modules/xmlbuilder/lib/XMLProcessingInstruction.js b/XNSimHtml/node_modules/xmlbuilder/lib/XMLProcessingInstruction.js deleted file mode 100644 index d4333d4..0000000 --- a/XNSimHtml/node_modules/xmlbuilder/lib/XMLProcessingInstruction.js +++ /dev/null @@ -1,49 +0,0 @@ -// Generated by CoffeeScript 1.12.7 -(function() { - var NodeType, XMLCharacterData, XMLProcessingInstruction, - extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, - hasProp = {}.hasOwnProperty; - - NodeType = require('./NodeType'); - - XMLCharacterData = require('./XMLCharacterData'); - - module.exports = XMLProcessingInstruction = (function(superClass) { - extend(XMLProcessingInstruction, superClass); - - function XMLProcessingInstruction(parent, target, value) { - XMLProcessingInstruction.__super__.constructor.call(this, parent); - if (target == null) { - throw new Error("Missing instruction target. " + this.debugInfo()); - } - this.type = NodeType.ProcessingInstruction; - this.target = this.stringify.insTarget(target); - this.name = this.target; - if (value) { - this.value = this.stringify.insValue(value); - } - } - - XMLProcessingInstruction.prototype.clone = function() { - return Object.create(this); - }; - - XMLProcessingInstruction.prototype.toString = function(options) { - return this.options.writer.processingInstruction(this, this.options.writer.filterOptions(options)); - }; - - XMLProcessingInstruction.prototype.isEqualNode = function(node) { - if (!XMLProcessingInstruction.__super__.isEqualNode.apply(this, arguments).isEqualNode(node)) { - return false; - } - if (node.target !== this.target) { - return false; - } - return true; - }; - - return XMLProcessingInstruction; - - })(XMLCharacterData); - -}).call(this); diff --git a/XNSimHtml/node_modules/xmlbuilder/lib/XMLRaw.js b/XNSimHtml/node_modules/xmlbuilder/lib/XMLRaw.js deleted file mode 100644 index b592850..0000000 --- a/XNSimHtml/node_modules/xmlbuilder/lib/XMLRaw.js +++ /dev/null @@ -1,35 +0,0 @@ -// Generated by CoffeeScript 1.12.7 -(function() { - var NodeType, XMLNode, XMLRaw, - extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, - hasProp = {}.hasOwnProperty; - - NodeType = require('./NodeType'); - - XMLNode = require('./XMLNode'); - - module.exports = XMLRaw = (function(superClass) { - extend(XMLRaw, superClass); - - function XMLRaw(parent, text) { - XMLRaw.__super__.constructor.call(this, parent); - if (text == null) { - throw new Error("Missing raw text. " + this.debugInfo()); - } - this.type = NodeType.Raw; - this.value = this.stringify.raw(text); - } - - XMLRaw.prototype.clone = function() { - return Object.create(this); - }; - - XMLRaw.prototype.toString = function(options) { - return this.options.writer.raw(this, this.options.writer.filterOptions(options)); - }; - - return XMLRaw; - - })(XMLNode); - -}).call(this); diff --git a/XNSimHtml/node_modules/xmlbuilder/lib/XMLStreamWriter.js b/XNSimHtml/node_modules/xmlbuilder/lib/XMLStreamWriter.js deleted file mode 100644 index 159dc6b..0000000 --- a/XNSimHtml/node_modules/xmlbuilder/lib/XMLStreamWriter.js +++ /dev/null @@ -1,176 +0,0 @@ -// Generated by CoffeeScript 1.12.7 -(function() { - var NodeType, WriterState, XMLStreamWriter, XMLWriterBase, - extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, - hasProp = {}.hasOwnProperty; - - NodeType = require('./NodeType'); - - XMLWriterBase = require('./XMLWriterBase'); - - WriterState = require('./WriterState'); - - module.exports = XMLStreamWriter = (function(superClass) { - extend(XMLStreamWriter, superClass); - - function XMLStreamWriter(stream, options) { - this.stream = stream; - XMLStreamWriter.__super__.constructor.call(this, options); - } - - XMLStreamWriter.prototype.endline = function(node, options, level) { - if (node.isLastRootNode && options.state === WriterState.CloseTag) { - return ''; - } else { - return XMLStreamWriter.__super__.endline.call(this, node, options, level); - } - }; - - XMLStreamWriter.prototype.document = function(doc, options) { - var child, i, j, k, len, len1, ref, ref1, results; - ref = doc.children; - for (i = j = 0, len = ref.length; j < len; i = ++j) { - child = ref[i]; - child.isLastRootNode = i === doc.children.length - 1; - } - options = this.filterOptions(options); - ref1 = doc.children; - results = []; - for (k = 0, len1 = ref1.length; k < len1; k++) { - child = ref1[k]; - results.push(this.writeChildNode(child, options, 0)); - } - return results; - }; - - XMLStreamWriter.prototype.attribute = function(att, options, level) { - return this.stream.write(XMLStreamWriter.__super__.attribute.call(this, att, options, level)); - }; - - XMLStreamWriter.prototype.cdata = function(node, options, level) { - return this.stream.write(XMLStreamWriter.__super__.cdata.call(this, node, options, level)); - }; - - XMLStreamWriter.prototype.comment = function(node, options, level) { - return this.stream.write(XMLStreamWriter.__super__.comment.call(this, node, options, level)); - }; - - XMLStreamWriter.prototype.declaration = function(node, options, level) { - return this.stream.write(XMLStreamWriter.__super__.declaration.call(this, node, options, level)); - }; - - XMLStreamWriter.prototype.docType = function(node, options, level) { - var child, j, len, ref; - level || (level = 0); - this.openNode(node, options, level); - options.state = WriterState.OpenTag; - this.stream.write(this.indent(node, options, level)); - this.stream.write(' 0) { - this.stream.write(' ['); - this.stream.write(this.endline(node, options, level)); - options.state = WriterState.InsideTag; - ref = node.children; - for (j = 0, len = ref.length; j < len; j++) { - child = ref[j]; - this.writeChildNode(child, options, level + 1); - } - options.state = WriterState.CloseTag; - this.stream.write(']'); - } - options.state = WriterState.CloseTag; - this.stream.write(options.spaceBeforeSlash + '>'); - this.stream.write(this.endline(node, options, level)); - options.state = WriterState.None; - return this.closeNode(node, options, level); - }; - - XMLStreamWriter.prototype.element = function(node, options, level) { - var att, child, childNodeCount, firstChildNode, j, len, name, prettySuppressed, ref, ref1; - level || (level = 0); - this.openNode(node, options, level); - options.state = WriterState.OpenTag; - this.stream.write(this.indent(node, options, level) + '<' + node.name); - ref = node.attribs; - for (name in ref) { - if (!hasProp.call(ref, name)) continue; - att = ref[name]; - this.attribute(att, options, level); - } - childNodeCount = node.children.length; - firstChildNode = childNodeCount === 0 ? null : node.children[0]; - if (childNodeCount === 0 || node.children.every(function(e) { - return (e.type === NodeType.Text || e.type === NodeType.Raw) && e.value === ''; - })) { - if (options.allowEmpty) { - this.stream.write('>'); - options.state = WriterState.CloseTag; - this.stream.write(''); - } else { - options.state = WriterState.CloseTag; - this.stream.write(options.spaceBeforeSlash + '/>'); - } - } else if (options.pretty && childNodeCount === 1 && (firstChildNode.type === NodeType.Text || firstChildNode.type === NodeType.Raw) && (firstChildNode.value != null)) { - this.stream.write('>'); - options.state = WriterState.InsideTag; - options.suppressPrettyCount++; - prettySuppressed = true; - this.writeChildNode(firstChildNode, options, level + 1); - options.suppressPrettyCount--; - prettySuppressed = false; - options.state = WriterState.CloseTag; - this.stream.write(''); - } else { - this.stream.write('>' + this.endline(node, options, level)); - options.state = WriterState.InsideTag; - ref1 = node.children; - for (j = 0, len = ref1.length; j < len; j++) { - child = ref1[j]; - this.writeChildNode(child, options, level + 1); - } - options.state = WriterState.CloseTag; - this.stream.write(this.indent(node, options, level) + ''); - } - this.stream.write(this.endline(node, options, level)); - options.state = WriterState.None; - return this.closeNode(node, options, level); - }; - - XMLStreamWriter.prototype.processingInstruction = function(node, options, level) { - return this.stream.write(XMLStreamWriter.__super__.processingInstruction.call(this, node, options, level)); - }; - - XMLStreamWriter.prototype.raw = function(node, options, level) { - return this.stream.write(XMLStreamWriter.__super__.raw.call(this, node, options, level)); - }; - - XMLStreamWriter.prototype.text = function(node, options, level) { - return this.stream.write(XMLStreamWriter.__super__.text.call(this, node, options, level)); - }; - - XMLStreamWriter.prototype.dtdAttList = function(node, options, level) { - return this.stream.write(XMLStreamWriter.__super__.dtdAttList.call(this, node, options, level)); - }; - - XMLStreamWriter.prototype.dtdElement = function(node, options, level) { - return this.stream.write(XMLStreamWriter.__super__.dtdElement.call(this, node, options, level)); - }; - - XMLStreamWriter.prototype.dtdEntity = function(node, options, level) { - return this.stream.write(XMLStreamWriter.__super__.dtdEntity.call(this, node, options, level)); - }; - - XMLStreamWriter.prototype.dtdNotation = function(node, options, level) { - return this.stream.write(XMLStreamWriter.__super__.dtdNotation.call(this, node, options, level)); - }; - - return XMLStreamWriter; - - })(XMLWriterBase); - -}).call(this); diff --git a/XNSimHtml/node_modules/xmlbuilder/lib/XMLStringWriter.js b/XNSimHtml/node_modules/xmlbuilder/lib/XMLStringWriter.js deleted file mode 100644 index 7187017..0000000 --- a/XNSimHtml/node_modules/xmlbuilder/lib/XMLStringWriter.js +++ /dev/null @@ -1,35 +0,0 @@ -// Generated by CoffeeScript 1.12.7 -(function() { - var XMLStringWriter, XMLWriterBase, - extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, - hasProp = {}.hasOwnProperty; - - XMLWriterBase = require('./XMLWriterBase'); - - module.exports = XMLStringWriter = (function(superClass) { - extend(XMLStringWriter, superClass); - - function XMLStringWriter(options) { - XMLStringWriter.__super__.constructor.call(this, options); - } - - XMLStringWriter.prototype.document = function(doc, options) { - var child, i, len, r, ref; - options = this.filterOptions(options); - r = ''; - ref = doc.children; - for (i = 0, len = ref.length; i < len; i++) { - child = ref[i]; - r += this.writeChildNode(child, options, 0); - } - if (options.pretty && r.slice(-options.newline.length) === options.newline) { - r = r.slice(0, -options.newline.length); - } - return r; - }; - - return XMLStringWriter; - - })(XMLWriterBase); - -}).call(this); diff --git a/XNSimHtml/node_modules/xmlbuilder/lib/XMLStringifier.js b/XNSimHtml/node_modules/xmlbuilder/lib/XMLStringifier.js deleted file mode 100644 index a39475c..0000000 --- a/XNSimHtml/node_modules/xmlbuilder/lib/XMLStringifier.js +++ /dev/null @@ -1,240 +0,0 @@ -// Generated by CoffeeScript 1.12.7 -(function() { - var XMLStringifier, - bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }, - hasProp = {}.hasOwnProperty; - - module.exports = XMLStringifier = (function() { - function XMLStringifier(options) { - this.assertLegalName = bind(this.assertLegalName, this); - this.assertLegalChar = bind(this.assertLegalChar, this); - var key, ref, value; - options || (options = {}); - this.options = options; - if (!this.options.version) { - this.options.version = '1.0'; - } - ref = options.stringify || {}; - for (key in ref) { - if (!hasProp.call(ref, key)) continue; - value = ref[key]; - this[key] = value; - } - } - - XMLStringifier.prototype.name = function(val) { - if (this.options.noValidation) { - return val; - } - return this.assertLegalName('' + val || ''); - }; - - XMLStringifier.prototype.text = function(val) { - if (this.options.noValidation) { - return val; - } - return this.assertLegalChar(this.textEscape('' + val || '')); - }; - - XMLStringifier.prototype.cdata = function(val) { - if (this.options.noValidation) { - return val; - } - val = '' + val || ''; - val = val.replace(']]>', ']]]]>'); - return this.assertLegalChar(val); - }; - - XMLStringifier.prototype.comment = function(val) { - if (this.options.noValidation) { - return val; - } - val = '' + val || ''; - if (val.match(/--/)) { - throw new Error("Comment text cannot contain double-hypen: " + val); - } - return this.assertLegalChar(val); - }; - - XMLStringifier.prototype.raw = function(val) { - if (this.options.noValidation) { - return val; - } - return '' + val || ''; - }; - - XMLStringifier.prototype.attValue = function(val) { - if (this.options.noValidation) { - return val; - } - return this.assertLegalChar(this.attEscape(val = '' + val || '')); - }; - - XMLStringifier.prototype.insTarget = function(val) { - if (this.options.noValidation) { - return val; - } - return this.assertLegalChar('' + val || ''); - }; - - XMLStringifier.prototype.insValue = function(val) { - if (this.options.noValidation) { - return val; - } - val = '' + val || ''; - if (val.match(/\?>/)) { - throw new Error("Invalid processing instruction value: " + val); - } - return this.assertLegalChar(val); - }; - - XMLStringifier.prototype.xmlVersion = function(val) { - if (this.options.noValidation) { - return val; - } - val = '' + val || ''; - if (!val.match(/1\.[0-9]+/)) { - throw new Error("Invalid version number: " + val); - } - return val; - }; - - XMLStringifier.prototype.xmlEncoding = function(val) { - if (this.options.noValidation) { - return val; - } - val = '' + val || ''; - if (!val.match(/^[A-Za-z](?:[A-Za-z0-9._-])*$/)) { - throw new Error("Invalid encoding: " + val); - } - return this.assertLegalChar(val); - }; - - XMLStringifier.prototype.xmlStandalone = function(val) { - if (this.options.noValidation) { - return val; - } - if (val) { - return "yes"; - } else { - return "no"; - } - }; - - XMLStringifier.prototype.dtdPubID = function(val) { - if (this.options.noValidation) { - return val; - } - return this.assertLegalChar('' + val || ''); - }; - - XMLStringifier.prototype.dtdSysID = function(val) { - if (this.options.noValidation) { - return val; - } - return this.assertLegalChar('' + val || ''); - }; - - XMLStringifier.prototype.dtdElementValue = function(val) { - if (this.options.noValidation) { - return val; - } - return this.assertLegalChar('' + val || ''); - }; - - XMLStringifier.prototype.dtdAttType = function(val) { - if (this.options.noValidation) { - return val; - } - return this.assertLegalChar('' + val || ''); - }; - - XMLStringifier.prototype.dtdAttDefault = function(val) { - if (this.options.noValidation) { - return val; - } - return this.assertLegalChar('' + val || ''); - }; - - XMLStringifier.prototype.dtdEntityValue = function(val) { - if (this.options.noValidation) { - return val; - } - return this.assertLegalChar('' + val || ''); - }; - - XMLStringifier.prototype.dtdNData = function(val) { - if (this.options.noValidation) { - return val; - } - return this.assertLegalChar('' + val || ''); - }; - - XMLStringifier.prototype.convertAttKey = '@'; - - XMLStringifier.prototype.convertPIKey = '?'; - - XMLStringifier.prototype.convertTextKey = '#text'; - - XMLStringifier.prototype.convertCDataKey = '#cdata'; - - XMLStringifier.prototype.convertCommentKey = '#comment'; - - XMLStringifier.prototype.convertRawKey = '#raw'; - - XMLStringifier.prototype.assertLegalChar = function(str) { - var regex, res; - if (this.options.noValidation) { - return str; - } - regex = ''; - if (this.options.version === '1.0') { - regex = /[\0-\x08\x0B\f\x0E-\x1F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/; - if (res = str.match(regex)) { - throw new Error("Invalid character in string: " + str + " at index " + res.index); - } - } else if (this.options.version === '1.1') { - regex = /[\0\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/; - if (res = str.match(regex)) { - throw new Error("Invalid character in string: " + str + " at index " + res.index); - } - } - return str; - }; - - XMLStringifier.prototype.assertLegalName = function(str) { - var regex; - if (this.options.noValidation) { - return str; - } - this.assertLegalChar(str); - regex = /^([:A-Z_a-z\xC0-\xD6\xD8-\xF6\xF8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])([\x2D\.0-:A-Z_a-z\xB7\xC0-\xD6\xD8-\xF6\xF8-\u037D\u037F-\u1FFF\u200C\u200D\u203F\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])*$/; - if (!str.match(regex)) { - throw new Error("Invalid character in name"); - } - return str; - }; - - XMLStringifier.prototype.textEscape = function(str) { - var ampregex; - if (this.options.noValidation) { - return str; - } - ampregex = this.options.noDoubleEncoding ? /(?!&\S+;)&/g : /&/g; - return str.replace(ampregex, '&').replace(//g, '>').replace(/\r/g, ' '); - }; - - XMLStringifier.prototype.attEscape = function(str) { - var ampregex; - if (this.options.noValidation) { - return str; - } - ampregex = this.options.noDoubleEncoding ? /(?!&\S+;)&/g : /&/g; - return str.replace(ampregex, '&').replace(/ 0) { - return new Array(indentLevel).join(options.indent); - } - } - return ''; - }; - - XMLWriterBase.prototype.endline = function(node, options, level) { - if (!options.pretty || options.suppressPrettyCount) { - return ''; - } else { - return options.newline; - } - }; - - XMLWriterBase.prototype.attribute = function(att, options, level) { - var r; - this.openAttribute(att, options, level); - r = ' ' + att.name + '="' + att.value + '"'; - this.closeAttribute(att, options, level); - return r; - }; - - XMLWriterBase.prototype.cdata = function(node, options, level) { - var r; - this.openNode(node, options, level); - options.state = WriterState.OpenTag; - r = this.indent(node, options, level) + '' + this.endline(node, options, level); - options.state = WriterState.None; - this.closeNode(node, options, level); - return r; - }; - - XMLWriterBase.prototype.comment = function(node, options, level) { - var r; - this.openNode(node, options, level); - options.state = WriterState.OpenTag; - r = this.indent(node, options, level) + '' + this.endline(node, options, level); - options.state = WriterState.None; - this.closeNode(node, options, level); - return r; - }; - - XMLWriterBase.prototype.declaration = function(node, options, level) { - var r; - this.openNode(node, options, level); - options.state = WriterState.OpenTag; - r = this.indent(node, options, level) + ''; - r += this.endline(node, options, level); - options.state = WriterState.None; - this.closeNode(node, options, level); - return r; - }; - - XMLWriterBase.prototype.docType = function(node, options, level) { - var child, i, len, r, ref; - level || (level = 0); - this.openNode(node, options, level); - options.state = WriterState.OpenTag; - r = this.indent(node, options, level); - r += ' 0) { - r += ' ['; - r += this.endline(node, options, level); - options.state = WriterState.InsideTag; - ref = node.children; - for (i = 0, len = ref.length; i < len; i++) { - child = ref[i]; - r += this.writeChildNode(child, options, level + 1); - } - options.state = WriterState.CloseTag; - r += ']'; - } - options.state = WriterState.CloseTag; - r += options.spaceBeforeSlash + '>'; - r += this.endline(node, options, level); - options.state = WriterState.None; - this.closeNode(node, options, level); - return r; - }; - - XMLWriterBase.prototype.element = function(node, options, level) { - var att, child, childNodeCount, firstChildNode, i, j, len, len1, name, prettySuppressed, r, ref, ref1, ref2; - level || (level = 0); - prettySuppressed = false; - r = ''; - this.openNode(node, options, level); - options.state = WriterState.OpenTag; - r += this.indent(node, options, level) + '<' + node.name; - ref = node.attribs; - for (name in ref) { - if (!hasProp.call(ref, name)) continue; - att = ref[name]; - r += this.attribute(att, options, level); - } - childNodeCount = node.children.length; - firstChildNode = childNodeCount === 0 ? null : node.children[0]; - if (childNodeCount === 0 || node.children.every(function(e) { - return (e.type === NodeType.Text || e.type === NodeType.Raw) && e.value === ''; - })) { - if (options.allowEmpty) { - r += '>'; - options.state = WriterState.CloseTag; - r += '' + this.endline(node, options, level); - } else { - options.state = WriterState.CloseTag; - r += options.spaceBeforeSlash + '/>' + this.endline(node, options, level); - } - } else if (options.pretty && childNodeCount === 1 && (firstChildNode.type === NodeType.Text || firstChildNode.type === NodeType.Raw) && (firstChildNode.value != null)) { - r += '>'; - options.state = WriterState.InsideTag; - options.suppressPrettyCount++; - prettySuppressed = true; - r += this.writeChildNode(firstChildNode, options, level + 1); - options.suppressPrettyCount--; - prettySuppressed = false; - options.state = WriterState.CloseTag; - r += '' + this.endline(node, options, level); - } else { - if (options.dontPrettyTextNodes) { - ref1 = node.children; - for (i = 0, len = ref1.length; i < len; i++) { - child = ref1[i]; - if ((child.type === NodeType.Text || child.type === NodeType.Raw) && (child.value != null)) { - options.suppressPrettyCount++; - prettySuppressed = true; - break; - } - } - } - r += '>' + this.endline(node, options, level); - options.state = WriterState.InsideTag; - ref2 = node.children; - for (j = 0, len1 = ref2.length; j < len1; j++) { - child = ref2[j]; - r += this.writeChildNode(child, options, level + 1); - } - options.state = WriterState.CloseTag; - r += this.indent(node, options, level) + ''; - if (prettySuppressed) { - options.suppressPrettyCount--; - } - r += this.endline(node, options, level); - options.state = WriterState.None; - } - this.closeNode(node, options, level); - return r; - }; - - XMLWriterBase.prototype.writeChildNode = function(node, options, level) { - switch (node.type) { - case NodeType.CData: - return this.cdata(node, options, level); - case NodeType.Comment: - return this.comment(node, options, level); - case NodeType.Element: - return this.element(node, options, level); - case NodeType.Raw: - return this.raw(node, options, level); - case NodeType.Text: - return this.text(node, options, level); - case NodeType.ProcessingInstruction: - return this.processingInstruction(node, options, level); - case NodeType.Dummy: - return ''; - case NodeType.Declaration: - return this.declaration(node, options, level); - case NodeType.DocType: - return this.docType(node, options, level); - case NodeType.AttributeDeclaration: - return this.dtdAttList(node, options, level); - case NodeType.ElementDeclaration: - return this.dtdElement(node, options, level); - case NodeType.EntityDeclaration: - return this.dtdEntity(node, options, level); - case NodeType.NotationDeclaration: - return this.dtdNotation(node, options, level); - default: - throw new Error("Unknown XML node type: " + node.constructor.name); - } - }; - - XMLWriterBase.prototype.processingInstruction = function(node, options, level) { - var r; - this.openNode(node, options, level); - options.state = WriterState.OpenTag; - r = this.indent(node, options, level) + ''; - r += this.endline(node, options, level); - options.state = WriterState.None; - this.closeNode(node, options, level); - return r; - }; - - XMLWriterBase.prototype.raw = function(node, options, level) { - var r; - this.openNode(node, options, level); - options.state = WriterState.OpenTag; - r = this.indent(node, options, level); - options.state = WriterState.InsideTag; - r += node.value; - options.state = WriterState.CloseTag; - r += this.endline(node, options, level); - options.state = WriterState.None; - this.closeNode(node, options, level); - return r; - }; - - XMLWriterBase.prototype.text = function(node, options, level) { - var r; - this.openNode(node, options, level); - options.state = WriterState.OpenTag; - r = this.indent(node, options, level); - options.state = WriterState.InsideTag; - r += node.value; - options.state = WriterState.CloseTag; - r += this.endline(node, options, level); - options.state = WriterState.None; - this.closeNode(node, options, level); - return r; - }; - - XMLWriterBase.prototype.dtdAttList = function(node, options, level) { - var r; - this.openNode(node, options, level); - options.state = WriterState.OpenTag; - r = this.indent(node, options, level) + '' + this.endline(node, options, level); - options.state = WriterState.None; - this.closeNode(node, options, level); - return r; - }; - - XMLWriterBase.prototype.dtdElement = function(node, options, level) { - var r; - this.openNode(node, options, level); - options.state = WriterState.OpenTag; - r = this.indent(node, options, level) + '' + this.endline(node, options, level); - options.state = WriterState.None; - this.closeNode(node, options, level); - return r; - }; - - XMLWriterBase.prototype.dtdEntity = function(node, options, level) { - var r; - this.openNode(node, options, level); - options.state = WriterState.OpenTag; - r = this.indent(node, options, level) + '' + this.endline(node, options, level); - options.state = WriterState.None; - this.closeNode(node, options, level); - return r; - }; - - XMLWriterBase.prototype.dtdNotation = function(node, options, level) { - var r; - this.openNode(node, options, level); - options.state = WriterState.OpenTag; - r = this.indent(node, options, level) + '' + this.endline(node, options, level); - options.state = WriterState.None; - this.closeNode(node, options, level); - return r; - }; - - XMLWriterBase.prototype.openNode = function(node, options, level) {}; - - XMLWriterBase.prototype.closeNode = function(node, options, level) {}; - - XMLWriterBase.prototype.openAttribute = function(att, options, level) {}; - - XMLWriterBase.prototype.closeAttribute = function(att, options, level) {}; - - return XMLWriterBase; - - })(); - -}).call(this); diff --git a/XNSimHtml/node_modules/xmlbuilder/lib/index.js b/XNSimHtml/node_modules/xmlbuilder/lib/index.js deleted file mode 100644 index b1ed263..0000000 --- a/XNSimHtml/node_modules/xmlbuilder/lib/index.js +++ /dev/null @@ -1,65 +0,0 @@ -// Generated by CoffeeScript 1.12.7 -(function() { - var NodeType, WriterState, XMLDOMImplementation, XMLDocument, XMLDocumentCB, XMLStreamWriter, XMLStringWriter, assign, isFunction, ref; - - ref = require('./Utility'), assign = ref.assign, isFunction = ref.isFunction; - - XMLDOMImplementation = require('./XMLDOMImplementation'); - - XMLDocument = require('./XMLDocument'); - - XMLDocumentCB = require('./XMLDocumentCB'); - - XMLStringWriter = require('./XMLStringWriter'); - - XMLStreamWriter = require('./XMLStreamWriter'); - - NodeType = require('./NodeType'); - - WriterState = require('./WriterState'); - - module.exports.create = function(name, xmldec, doctype, options) { - var doc, root; - if (name == null) { - throw new Error("Root element needs a name."); - } - options = assign({}, xmldec, doctype, options); - doc = new XMLDocument(options); - root = doc.element(name); - if (!options.headless) { - doc.declaration(options); - if ((options.pubID != null) || (options.sysID != null)) { - doc.dtd(options); - } - } - return root; - }; - - module.exports.begin = function(options, onData, onEnd) { - var ref1; - if (isFunction(options)) { - ref1 = [options, onData], onData = ref1[0], onEnd = ref1[1]; - options = {}; - } - if (onData) { - return new XMLDocumentCB(options, onData, onEnd); - } else { - return new XMLDocument(options); - } - }; - - module.exports.stringWriter = function(options) { - return new XMLStringWriter(options); - }; - - module.exports.streamWriter = function(stream, options) { - return new XMLStreamWriter(stream, options); - }; - - module.exports.implementation = new XMLDOMImplementation(); - - module.exports.nodeType = NodeType; - - module.exports.writerState = WriterState; - -}).call(this); diff --git a/XNSimHtml/node_modules/xmlbuilder/package.json b/XNSimHtml/node_modules/xmlbuilder/package.json deleted file mode 100644 index 512cd97..0000000 --- a/XNSimHtml/node_modules/xmlbuilder/package.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "xmlbuilder", - "version": "11.0.1", - "keywords": [ - "xml", - "xmlbuilder" - ], - "homepage": "http://github.com/oozcitak/xmlbuilder-js", - "description": "An XML builder for node.js", - "author": "Ozgur Ozcitak ", - "contributors": [], - "license": "MIT", - "repository": { - "type": "git", - "url": "git://github.com/oozcitak/xmlbuilder-js.git" - }, - "bugs": { - "url": "http://github.com/oozcitak/xmlbuilder-js/issues" - }, - "main": "./lib/index", - "typings": "./typings/index.d.ts", - "engines": { - "node": ">=4.0" - }, - "dependencies": {}, - "devDependencies": { - "coffeescript": "1.*", - "mocha": "*", - "coffee-coverage": "2.*", - "istanbul": "*", - "coveralls": "*", - "xpath": "*" - }, - "scripts": { - "prepublishOnly": "coffee -co lib src", - "postpublish": "rm -rf lib", - "test": "mocha \"test/**/*.coffee\" && istanbul report text lcov" - } -} diff --git a/XNSimHtml/node_modules/xmlbuilder/typings/index.d.ts b/XNSimHtml/node_modules/xmlbuilder/typings/index.d.ts deleted file mode 100644 index 3e0e5b0..0000000 --- a/XNSimHtml/node_modules/xmlbuilder/typings/index.d.ts +++ /dev/null @@ -1,153 +0,0 @@ -// Type definitions for xmlbuilder -// Project: https://github.com/oozcitak/xmlbuilder-js -// Definitions by: Wallymathieu -// : GaikwadPratik -// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - -export = xmlbuilder; - -declare namespace xmlbuilder { - - class XMLDocType { - clone(): XMLDocType; - element(name: string, value?: Object): XMLDocType; - attList(elementName: string, attributeName: string, attributeType: string, defaultValueType?: string, defaultValue?: any): XMLDocType; - entity(name: string, value: any): XMLDocType; - pEntity(name: string, value: any): XMLDocType; - notation(name: string, value: any): XMLDocType; - cdata(value: string): XMLDocType; - comment(value: string): XMLDocType; - instruction(target: string, value: any): XMLDocType; - root(): XMLDocType; - document(): any; - toString(options?: XMLToStringOptions, level?: Number): string; - - ele(name: string, value?: Object): XMLDocType; - att(elementName: string, attributeName: string, attributeType: string, defaultValueType?: string, defaultValue?: any): XMLDocType; - ent(name: string, value: any): XMLDocType; - pent(name: string, value: any): XMLDocType; - not(name: string, value: any): XMLDocType; - dat(value: string): XMLDocType; - com(value: string): XMLDocType; - ins(target: string, value: any): XMLDocType; - up(): XMLDocType; - doc(): any; - } - - class XMLElementOrXMLNode { - // XMLElement: - clone(): XMLElementOrXMLNode; - attribute(name: any, value?: any): XMLElementOrXMLNode; - att(name: any, value?: any): XMLElementOrXMLNode; - removeAttribute(name: string): XMLElementOrXMLNode; - instruction(target: string, value: any): XMLElementOrXMLNode; - instruction(array: Array): XMLElementOrXMLNode; - instruction(obj: Object): XMLElementOrXMLNode; - ins(target: string, value: any): XMLElementOrXMLNode; - ins(array: Array): XMLElementOrXMLNode; - ins(obj: Object): XMLElementOrXMLNode; - a(name: any, value?: any): XMLElementOrXMLNode; - i(target: string, value: any): XMLElementOrXMLNode; - i(array: Array): XMLElementOrXMLNode; - i(obj: Object): XMLElementOrXMLNode; - toString(options?: XMLToStringOptions, level?: Number): string; - // XMLNode: - element(name: any, attributes?: Object, text?: any): XMLElementOrXMLNode; - ele(name: any, attributes?: Object, text?: any): XMLElementOrXMLNode; - insertBefore(name: any, attributes?: Object, text?: any): XMLElementOrXMLNode; - insertAfter(name: any, attributes?: Object, text?: any): XMLElementOrXMLNode; - remove(): XMLElementOrXMLNode; - node(name: any, attributes?: Object, text?: any): XMLElementOrXMLNode; - text(value: string): XMLElementOrXMLNode; - cdata(value: string): XMLElementOrXMLNode; - comment(value: string): XMLElementOrXMLNode; - raw(value: string): XMLElementOrXMLNode; - declaration(version: string, encoding: string, standalone: boolean): XMLElementOrXMLNode; - doctype(pubID: string, sysID: string): XMLDocType; - up(): XMLElementOrXMLNode; - importDocument(input: XMLElementOrXMLNode): XMLElementOrXMLNode; - root(): XMLElementOrXMLNode; - document(): any; - end(options?: XMLEndOptions): string; - prev(): XMLElementOrXMLNode; - next(): XMLElementOrXMLNode; - nod(name: any, attributes?: Object, text?: any): XMLElementOrXMLNode; - txt(value: string): XMLElementOrXMLNode; - dat(value: string): XMLElementOrXMLNode; - com(value: string): XMLElementOrXMLNode; - doc(): XMLElementOrXMLNode; - dec(version: string, encoding: string, standalone: boolean): XMLElementOrXMLNode; - dtd(pubID: string, sysID: string): XMLDocType; - e(name: any, attributes?: Object, text?: any): XMLElementOrXMLNode; - n(name: any, attributes?: Object, text?: any): XMLElementOrXMLNode; - t(value: string): XMLElementOrXMLNode; - d(value: string): XMLElementOrXMLNode; - c(value: string): XMLElementOrXMLNode; - r(value: string): XMLElementOrXMLNode; - u(): XMLElementOrXMLNode; - } - - interface XMLDec { - version?: string; - encoding?: string; - standalone?: boolean; - } - - interface XMLDtd { - pubID?: string; - sysID?: string; - } - - interface XMLStringifier { - [x: string]: ((v: any) => string) | string; - } - - interface XMLWriter { - [x: string]: ((e: XMLElementOrXMLNode, options: WriterOptions, level?: number) => void); - } - - interface XMLCreateOptions { - headless?: boolean; - keepNullNodes?: boolean; - keepNullAttributes?: boolean; - ignoreDecorators?: boolean; - separateArrayItems?: boolean; - noDoubleEncoding?: boolean; - stringify?: XMLStringifier; - } - - interface XMLToStringOptions { - pretty?: boolean; - indent?: string; - offset?: number; - newline?: string; - allowEmpty?: boolean; - spacebeforeslash?: string; - } - - interface XMLEndOptions extends XMLToStringOptions { - writer?: XMLWriter; - } - - interface WriterOptions { - pretty?: boolean; - indent?: string; - newline?: string; - offset?: number; - allowEmpty?: boolean; - dontPrettyTextNodes?: boolean; - spaceBeforeSlash?: string | boolean; - user? :any; - state?: WriterState; - } - - enum WriterState { - None = 0, - OpenTag = 1, - InsideTag = 2, - CloseTag = 3 - } - - function create(nameOrObjSpec: string | { [name: string]: Object }, xmldecOrOptions?: XMLDec | XMLCreateOptions, doctypeOrOptions?: XMLDtd | XMLCreateOptions, options?: XMLCreateOptions): XMLElementOrXMLNode; - function begin(): XMLElementOrXMLNode; -} \ No newline at end of file diff --git a/XNSimHtml/node_modules/yallist/LICENSE b/XNSimHtml/node_modules/yallist/LICENSE deleted file mode 100644 index 19129e3..0000000 --- a/XNSimHtml/node_modules/yallist/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/XNSimHtml/node_modules/yallist/README.md b/XNSimHtml/node_modules/yallist/README.md deleted file mode 100644 index f586101..0000000 --- a/XNSimHtml/node_modules/yallist/README.md +++ /dev/null @@ -1,204 +0,0 @@ -# yallist - -Yet Another Linked List - -There are many doubly-linked list implementations like it, but this -one is mine. - -For when an array would be too big, and a Map can't be iterated in -reverse order. - - -[![Build Status](https://travis-ci.org/isaacs/yallist.svg?branch=master)](https://travis-ci.org/isaacs/yallist) [![Coverage Status](https://coveralls.io/repos/isaacs/yallist/badge.svg?service=github)](https://coveralls.io/github/isaacs/yallist) - -## basic usage - -```javascript -var yallist = require('yallist') -var myList = yallist.create([1, 2, 3]) -myList.push('foo') -myList.unshift('bar') -// of course pop() and shift() are there, too -console.log(myList.toArray()) // ['bar', 1, 2, 3, 'foo'] -myList.forEach(function (k) { - // walk the list head to tail -}) -myList.forEachReverse(function (k, index, list) { - // walk the list tail to head -}) -var myDoubledList = myList.map(function (k) { - return k + k -}) -// now myDoubledList contains ['barbar', 2, 4, 6, 'foofoo'] -// mapReverse is also a thing -var myDoubledListReverse = myList.mapReverse(function (k) { - return k + k -}) // ['foofoo', 6, 4, 2, 'barbar'] - -var reduced = myList.reduce(function (set, entry) { - set += entry - return set -}, 'start') -console.log(reduced) // 'startfoo123bar' -``` - -## api - -The whole API is considered "public". - -Functions with the same name as an Array method work more or less the -same way. - -There's reverse versions of most things because that's the point. - -### Yallist - -Default export, the class that holds and manages a list. - -Call it with either a forEach-able (like an array) or a set of -arguments, to initialize the list. - -The Array-ish methods all act like you'd expect. No magic length, -though, so if you change that it won't automatically prune or add -empty spots. - -### Yallist.create(..) - -Alias for Yallist function. Some people like factories. - -#### yallist.head - -The first node in the list - -#### yallist.tail - -The last node in the list - -#### yallist.length - -The number of nodes in the list. (Change this at your peril. It is -not magic like Array length.) - -#### yallist.toArray() - -Convert the list to an array. - -#### yallist.forEach(fn, [thisp]) - -Call a function on each item in the list. - -#### yallist.forEachReverse(fn, [thisp]) - -Call a function on each item in the list, in reverse order. - -#### yallist.get(n) - -Get the data at position `n` in the list. If you use this a lot, -probably better off just using an Array. - -#### yallist.getReverse(n) - -Get the data at position `n`, counting from the tail. - -#### yallist.map(fn, thisp) - -Create a new Yallist with the result of calling the function on each -item. - -#### yallist.mapReverse(fn, thisp) - -Same as `map`, but in reverse. - -#### yallist.pop() - -Get the data from the list tail, and remove the tail from the list. - -#### yallist.push(item, ...) - -Insert one or more items to the tail of the list. - -#### yallist.reduce(fn, initialValue) - -Like Array.reduce. - -#### yallist.reduceReverse - -Like Array.reduce, but in reverse. - -#### yallist.reverse - -Reverse the list in place. - -#### yallist.shift() - -Get the data from the list head, and remove the head from the list. - -#### yallist.slice([from], [to]) - -Just like Array.slice, but returns a new Yallist. - -#### yallist.sliceReverse([from], [to]) - -Just like yallist.slice, but the result is returned in reverse. - -#### yallist.toArray() - -Create an array representation of the list. - -#### yallist.toArrayReverse() - -Create a reversed array representation of the list. - -#### yallist.unshift(item, ...) - -Insert one or more items to the head of the list. - -#### yallist.unshiftNode(node) - -Move a Node object to the front of the list. (That is, pull it out of -wherever it lives, and make it the new head.) - -If the node belongs to a different list, then that list will remove it -first. - -#### yallist.pushNode(node) - -Move a Node object to the end of the list. (That is, pull it out of -wherever it lives, and make it the new tail.) - -If the node belongs to a list already, then that list will remove it -first. - -#### yallist.removeNode(node) - -Remove a node from the list, preserving referential integrity of head -and tail and other nodes. - -Will throw an error if you try to have a list remove a node that -doesn't belong to it. - -### Yallist.Node - -The class that holds the data and is actually the list. - -Call with `var n = new Node(value, previousNode, nextNode)` - -Note that if you do direct operations on Nodes themselves, it's very -easy to get into weird states where the list is broken. Be careful :) - -#### node.next - -The next node in the list. - -#### node.prev - -The previous node in the list. - -#### node.value - -The data the node contains. - -#### node.list - -The list to which this node belongs. (Null if it does not belong to -any list.) diff --git a/XNSimHtml/node_modules/yallist/iterator.js b/XNSimHtml/node_modules/yallist/iterator.js deleted file mode 100644 index d41c97a..0000000 --- a/XNSimHtml/node_modules/yallist/iterator.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict' -module.exports = function (Yallist) { - Yallist.prototype[Symbol.iterator] = function* () { - for (let walker = this.head; walker; walker = walker.next) { - yield walker.value - } - } -} diff --git a/XNSimHtml/node_modules/yallist/package.json b/XNSimHtml/node_modules/yallist/package.json deleted file mode 100644 index 8a08386..0000000 --- a/XNSimHtml/node_modules/yallist/package.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "yallist", - "version": "4.0.0", - "description": "Yet Another Linked List", - "main": "yallist.js", - "directories": { - "test": "test" - }, - "files": [ - "yallist.js", - "iterator.js" - ], - "dependencies": {}, - "devDependencies": { - "tap": "^12.1.0" - }, - "scripts": { - "test": "tap test/*.js --100", - "preversion": "npm test", - "postversion": "npm publish", - "postpublish": "git push origin --all; git push origin --tags" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/isaacs/yallist.git" - }, - "author": "Isaac Z. Schlueter (http://blog.izs.me/)", - "license": "ISC" -} diff --git a/XNSimHtml/node_modules/yallist/yallist.js b/XNSimHtml/node_modules/yallist/yallist.js deleted file mode 100644 index 4e83ab1..0000000 --- a/XNSimHtml/node_modules/yallist/yallist.js +++ /dev/null @@ -1,426 +0,0 @@ -'use strict' -module.exports = Yallist - -Yallist.Node = Node -Yallist.create = Yallist - -function Yallist (list) { - var self = this - if (!(self instanceof Yallist)) { - self = new Yallist() - } - - self.tail = null - self.head = null - self.length = 0 - - if (list && typeof list.forEach === 'function') { - list.forEach(function (item) { - self.push(item) - }) - } else if (arguments.length > 0) { - for (var i = 0, l = arguments.length; i < l; i++) { - self.push(arguments[i]) - } - } - - return self -} - -Yallist.prototype.removeNode = function (node) { - if (node.list !== this) { - throw new Error('removing node which does not belong to this list') - } - - var next = node.next - var prev = node.prev - - if (next) { - next.prev = prev - } - - if (prev) { - prev.next = next - } - - if (node === this.head) { - this.head = next - } - if (node === this.tail) { - this.tail = prev - } - - node.list.length-- - node.next = null - node.prev = null - node.list = null - - return next -} - -Yallist.prototype.unshiftNode = function (node) { - if (node === this.head) { - return - } - - if (node.list) { - node.list.removeNode(node) - } - - var head = this.head - node.list = this - node.next = head - if (head) { - head.prev = node - } - - this.head = node - if (!this.tail) { - this.tail = node - } - this.length++ -} - -Yallist.prototype.pushNode = function (node) { - if (node === this.tail) { - return - } - - if (node.list) { - node.list.removeNode(node) - } - - var tail = this.tail - node.list = this - node.prev = tail - if (tail) { - tail.next = node - } - - this.tail = node - if (!this.head) { - this.head = node - } - this.length++ -} - -Yallist.prototype.push = function () { - for (var i = 0, l = arguments.length; i < l; i++) { - push(this, arguments[i]) - } - return this.length -} - -Yallist.prototype.unshift = function () { - for (var i = 0, l = arguments.length; i < l; i++) { - unshift(this, arguments[i]) - } - return this.length -} - -Yallist.prototype.pop = function () { - if (!this.tail) { - return undefined - } - - var res = this.tail.value - this.tail = this.tail.prev - if (this.tail) { - this.tail.next = null - } else { - this.head = null - } - this.length-- - return res -} - -Yallist.prototype.shift = function () { - if (!this.head) { - return undefined - } - - var res = this.head.value - this.head = this.head.next - if (this.head) { - this.head.prev = null - } else { - this.tail = null - } - this.length-- - return res -} - -Yallist.prototype.forEach = function (fn, thisp) { - thisp = thisp || this - for (var walker = this.head, i = 0; walker !== null; i++) { - fn.call(thisp, walker.value, i, this) - walker = walker.next - } -} - -Yallist.prototype.forEachReverse = function (fn, thisp) { - thisp = thisp || this - for (var walker = this.tail, i = this.length - 1; walker !== null; i--) { - fn.call(thisp, walker.value, i, this) - walker = walker.prev - } -} - -Yallist.prototype.get = function (n) { - for (var i = 0, walker = this.head; walker !== null && i < n; i++) { - // abort out of the list early if we hit a cycle - walker = walker.next - } - if (i === n && walker !== null) { - return walker.value - } -} - -Yallist.prototype.getReverse = function (n) { - for (var i = 0, walker = this.tail; walker !== null && i < n; i++) { - // abort out of the list early if we hit a cycle - walker = walker.prev - } - if (i === n && walker !== null) { - return walker.value - } -} - -Yallist.prototype.map = function (fn, thisp) { - thisp = thisp || this - var res = new Yallist() - for (var walker = this.head; walker !== null;) { - res.push(fn.call(thisp, walker.value, this)) - walker = walker.next - } - return res -} - -Yallist.prototype.mapReverse = function (fn, thisp) { - thisp = thisp || this - var res = new Yallist() - for (var walker = this.tail; walker !== null;) { - res.push(fn.call(thisp, walker.value, this)) - walker = walker.prev - } - return res -} - -Yallist.prototype.reduce = function (fn, initial) { - var acc - var walker = this.head - if (arguments.length > 1) { - acc = initial - } else if (this.head) { - walker = this.head.next - acc = this.head.value - } else { - throw new TypeError('Reduce of empty list with no initial value') - } - - for (var i = 0; walker !== null; i++) { - acc = fn(acc, walker.value, i) - walker = walker.next - } - - return acc -} - -Yallist.prototype.reduceReverse = function (fn, initial) { - var acc - var walker = this.tail - if (arguments.length > 1) { - acc = initial - } else if (this.tail) { - walker = this.tail.prev - acc = this.tail.value - } else { - throw new TypeError('Reduce of empty list with no initial value') - } - - for (var i = this.length - 1; walker !== null; i--) { - acc = fn(acc, walker.value, i) - walker = walker.prev - } - - return acc -} - -Yallist.prototype.toArray = function () { - var arr = new Array(this.length) - for (var i = 0, walker = this.head; walker !== null; i++) { - arr[i] = walker.value - walker = walker.next - } - return arr -} - -Yallist.prototype.toArrayReverse = function () { - var arr = new Array(this.length) - for (var i = 0, walker = this.tail; walker !== null; i++) { - arr[i] = walker.value - walker = walker.prev - } - return arr -} - -Yallist.prototype.slice = function (from, to) { - to = to || this.length - if (to < 0) { - to += this.length - } - from = from || 0 - if (from < 0) { - from += this.length - } - var ret = new Yallist() - if (to < from || to < 0) { - return ret - } - if (from < 0) { - from = 0 - } - if (to > this.length) { - to = this.length - } - for (var i = 0, walker = this.head; walker !== null && i < from; i++) { - walker = walker.next - } - for (; walker !== null && i < to; i++, walker = walker.next) { - ret.push(walker.value) - } - return ret -} - -Yallist.prototype.sliceReverse = function (from, to) { - to = to || this.length - if (to < 0) { - to += this.length - } - from = from || 0 - if (from < 0) { - from += this.length - } - var ret = new Yallist() - if (to < from || to < 0) { - return ret - } - if (from < 0) { - from = 0 - } - if (to > this.length) { - to = this.length - } - for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) { - walker = walker.prev - } - for (; walker !== null && i > from; i--, walker = walker.prev) { - ret.push(walker.value) - } - return ret -} - -Yallist.prototype.splice = function (start, deleteCount, ...nodes) { - if (start > this.length) { - start = this.length - 1 - } - if (start < 0) { - start = this.length + start; - } - - for (var i = 0, walker = this.head; walker !== null && i < start; i++) { - walker = walker.next - } - - var ret = [] - for (var i = 0; walker && i < deleteCount; i++) { - ret.push(walker.value) - walker = this.removeNode(walker) - } - if (walker === null) { - walker = this.tail - } - - if (walker !== this.head && walker !== this.tail) { - walker = walker.prev - } - - for (var i = 0; i < nodes.length; i++) { - walker = insert(this, walker, nodes[i]) - } - return ret; -} - -Yallist.prototype.reverse = function () { - var head = this.head - var tail = this.tail - for (var walker = head; walker !== null; walker = walker.prev) { - var p = walker.prev - walker.prev = walker.next - walker.next = p - } - this.head = tail - this.tail = head - return this -} - -function insert (self, node, value) { - var inserted = node === self.head ? - new Node(value, null, node, self) : - new Node(value, node, node.next, self) - - if (inserted.next === null) { - self.tail = inserted - } - if (inserted.prev === null) { - self.head = inserted - } - - self.length++ - - return inserted -} - -function push (self, item) { - self.tail = new Node(item, self.tail, null, self) - if (!self.head) { - self.head = self.tail - } - self.length++ -} - -function unshift (self, item) { - self.head = new Node(item, null, self.head, self) - if (!self.tail) { - self.tail = self.head - } - self.length++ -} - -function Node (value, prev, next, list) { - if (!(this instanceof Node)) { - return new Node(value, prev, next, list) - } - - this.list = list - this.value = value - - if (prev) { - prev.next = this - this.prev = prev - } else { - this.prev = null - } - - if (next) { - next.prev = this - this.next = next - } else { - this.next = null - } -} - -try { - // add if support for Symbol.iterator is present - require('./iterator.js')(Yallist) -} catch (er) {} diff --git a/XNSimHtml/package-lock.json b/XNSimHtml/package-lock.json index 99b96ef..b9a243b 100644 --- a/XNSimHtml/package-lock.json +++ b/XNSimHtml/package-lock.json @@ -8,7 +8,6 @@ "name": "xnsim-login", "version": "1.0.0", "dependencies": { - "@fortawesome/fontawesome-free": "^6.7.2", "better-sqlite3": "^9.6.0", "body-parser": "^1.20.2", "cookie-parser": "^1.4.6", @@ -20,92 +19,13 @@ "jsonwebtoken": "^9.0.0", "multer": "^1.4.5-lts.2", "ref-napi": "^3.0.3", - "sqlite3": "^5.1.7", "systeminformation": "^5.25.11", - "xlsx": "^0.18.5", - "xml2js": "^0.6.2" + "xlsx": "^0.18.5" }, "devDependencies": { "nodemon": "^2.0.22" } }, - "node_modules/@fortawesome/fontawesome-free": { - "version": "6.7.2", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.7.2.tgz", - "integrity": "sha512-JUOtgFW6k9u4Y+xeIaEiLr3+cjoUPiAuLXoyKOJSia6Duzb7pq+A76P9ZdPDoAoxHdHzq6gE9/jKBGXlZT8FbA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", - "optional": true - }, - "node_modules/@npmcli/fs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", - "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", - "optional": true, - "dependencies": { - "@gar/promisify": "^1.0.1", - "semver": "^7.3.5" - } - }, - "node_modules/@npmcli/fs/node_modules/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", - "optional": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", - "deprecated": "This functionality has been moved to @npmcli/fs", - "optional": true, - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@npmcli/move-file/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "optional": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "optional": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "optional": true - }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -126,75 +46,6 @@ "node": ">=0.8" } }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "optional": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/agent-base/node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", - "optional": true, - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/agent-base/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "optional": true - }, - "node_modules/agentkeepalive": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.6.0.tgz", - "integrity": "sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==", - "optional": true, - "dependencies": { - "humanize-ms": "^1.2.1" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "optional": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "optional": true, - "engines": { - "node": ">=8" - } - }, "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", @@ -213,40 +64,6 @@ "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==" }, - "node_modules/aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", - "optional": true - }, - "node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "deprecated": "This package is no longer supported.", - "optional": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/are-we-there-yet/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "optional": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", @@ -256,7 +73,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "devOptional": true + "dev": true }, "node_modules/base64-js": { "version": "1.5.1", @@ -368,7 +185,7 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "devOptional": true, + "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -438,47 +255,6 @@ "node": ">= 0.8" } }, - "node_modules/cacache": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", - "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", - "optional": true, - "dependencies": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/cacache/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "optional": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/call-bind-apply-helpers": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", @@ -543,23 +319,6 @@ "fsevents": "~2.3.2" } }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "engines": { - "node": ">=10" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "optional": true, - "engines": { - "node": ">=6" - } - }, "node_modules/codepage": { "version": "1.15.0", "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.15.0.tgz", @@ -568,20 +327,11 @@ "node": ">=0.8" } }, - "node_modules/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "optional": true, - "bin": { - "color-support": "bin.js" - } - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "devOptional": true + "dev": true }, "node_modules/concat-stream": { "version": "1.6.2", @@ -597,12 +347,6 @@ "typedarray": "^0.0.6" } }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", - "optional": true - }, "node_modules/content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", @@ -713,12 +457,6 @@ "node": ">=4.0.0" } }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", - "optional": true - }, "node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", @@ -770,12 +508,6 @@ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "optional": true - }, "node_modules/encodeurl": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", @@ -784,15 +516,6 @@ "node": ">= 0.8" } }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, "node_modules/end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", @@ -801,21 +524,6 @@ "once": "^1.4.0" } }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "optional": true - }, "node_modules/es-define-property": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", @@ -1041,23 +749,6 @@ "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "optional": true - }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -1080,26 +771,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "deprecated": "This package is no longer supported.", - "optional": true, - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, "node_modules/get-intrinsic": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", @@ -1153,27 +824,6 @@ "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==" }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "optional": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", @@ -1197,12 +847,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "optional": true - }, "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -1223,12 +867,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", - "optional": true - }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", @@ -1240,12 +878,6 @@ "node": ">= 0.4" } }, - "node_modules/http-cache-semantics": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", - "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", - "optional": true - }, "node_modules/http-errors": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", @@ -1261,88 +893,6 @@ "node": ">= 0.8" } }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "optional": true, - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/http-proxy-agent/node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", - "optional": true, - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/http-proxy-agent/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "optional": true - }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "optional": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/https-proxy-agent/node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", - "optional": true, - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/https-proxy-agent/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "optional": true - }, - "node_modules/humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", - "optional": true, - "dependencies": { - "ms": "^2.0.0" - } - }, "node_modules/iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", @@ -1379,41 +929,6 @@ "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", "dev": true }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "optional": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "optional": true - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "optional": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", @@ -1424,19 +939,6 @@ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, - "node_modules/ip-address": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", - "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", - "optional": true, - "dependencies": { - "jsbn": "1.1.0", - "sprintf-js": "^1.1.3" - }, - "engines": { - "node": ">= 12" - } - }, "node_modules/ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", @@ -1466,15 +968,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "optional": true, - "engines": { - "node": ">=8" - } - }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -1487,12 +980,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", - "optional": true - }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -1507,18 +994,6 @@ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "optional": true - }, - "node_modules/jsbn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", - "optional": true - }, "node_modules/jsonwebtoken": { "version": "9.0.2", "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", @@ -1610,45 +1085,6 @@ "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "optional": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-fetch-happen": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", - "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", - "optional": true, - "dependencies": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.2.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.2", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.0.0", - "ssri": "^8.0.0" - }, - "engines": { - "node": ">= 10" - } - }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", @@ -1726,7 +1162,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "devOptional": true, + "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -1742,95 +1178,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "optional": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-fetch": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", - "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", - "optional": true, - "dependencies": { - "encoding": "^0.1.12", - "minipass": "^3.1.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "optionalDependencies": { - "encoding": "^0.1.12" - } - }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "optional": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "optional": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "optional": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/mkdirp": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", @@ -1909,30 +1256,6 @@ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==" }, - "node_modules/node-gyp": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", - "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", - "optional": true, - "dependencies": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^9.1.0", - "nopt": "^5.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": ">= 10.12.0" - } - }, "node_modules/node-gyp-build": { "version": "4.8.4", "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz", @@ -1943,18 +1266,6 @@ "node-gyp-build-test": "build-test.js" } }, - "node_modules/node-gyp/node_modules/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", - "optional": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/nodemon": { "version": "2.0.22", "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.22.tgz", @@ -1998,21 +1309,6 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, - "node_modules/nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "optional": true, - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -2022,22 +1318,6 @@ "node": ">=0.10.0" } }, - "node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "deprecated": "This package is no longer supported.", - "optional": true, - "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -2084,21 +1364,6 @@ "wrappy": "1" } }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "optional": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -2107,15 +1372,6 @@ "node": ">= 0.8" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/path-to-regexp": { "version": "0.1.12", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", @@ -2163,25 +1419,6 @@ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", - "optional": true - }, - "node_modules/promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "optional": true, - "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -2366,31 +1603,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", - "optional": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "optional": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -2415,11 +1627,6 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, - "node_modules/sax": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", - "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==" - }, "node_modules/semver": { "version": "5.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", @@ -2479,12 +1686,6 @@ "node": ">= 0.8.0" } }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "optional": true - }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", @@ -2558,12 +1759,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "optional": true - }, "node_modules/simple-concat": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", @@ -2628,102 +1823,6 @@ "semver": "bin/semver.js" } }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "optional": true, - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks": { - "version": "2.8.4", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.4.tgz", - "integrity": "sha512-D3YaD0aRxR3mEcqnidIs7ReYJFVzWdd6fXJYUM8ixcQcJRGTka/b3saV0KflYhyVJXKhb947GndU35SxYNResQ==", - "optional": true, - "dependencies": { - "ip-address": "^9.0.5", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", - "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", - "optional": true, - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/socks-proxy-agent/node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", - "optional": true, - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/socks-proxy-agent/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "optional": true - }, - "node_modules/sprintf-js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", - "optional": true - }, - "node_modules/sqlite3": { - "version": "5.1.7", - "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-5.1.7.tgz", - "integrity": "sha512-GGIyOiFaG+TUra3JIfkI/zGP8yZYLPQ0pl1bH+ODjiX57sPhrLU5sQJn1y9bDKZUFYkX1crlrPfSYt0BKKdkog==", - "hasInstallScript": true, - "dependencies": { - "bindings": "^1.5.0", - "node-addon-api": "^7.0.0", - "node-gyp": "8.x", - "prebuild-install": "^7.1.1", - "tar": "^6.1.11" - }, - "optionalDependencies": { - "node-gyp": "8.x" - }, - "peerDependencies": { - "node-gyp": "8.x" - }, - "peerDependenciesMeta": { - "node-gyp": { - "optional": true - } - } - }, - "node_modules/sqlite3/node_modules/node-addon-api": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", - "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==" - }, "node_modules/ssf": { "version": "0.11.2", "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz", @@ -2735,18 +1834,6 @@ "node": ">=0.8" } }, - "node_modules/ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", - "optional": true, - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", @@ -2776,32 +1863,6 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "optional": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "optional": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", @@ -2847,22 +1908,6 @@ "url": "https://www.buymeacoffee.com/systeminfo" } }, - "node_modules/tar": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", - "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/tar-fs": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.2.tgz", @@ -2907,25 +1952,6 @@ "node": ">= 6" } }, - "node_modules/tar/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/tar/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -3000,24 +2026,6 @@ "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", "dev": true }, - "node_modules/unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "optional": true, - "dependencies": { - "unique-slug": "^2.0.0" - } - }, - "node_modules/unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "optional": true, - "dependencies": { - "imurmurhash": "^0.1.4" - } - }, "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -3047,30 +2055,6 @@ "node": ">= 0.8" } }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "optional": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "optional": true, - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, "node_modules/wmf": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz", @@ -3112,26 +2096,6 @@ "node": ">=0.8" } }, - "node_modules/xml2js": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz", - "integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==", - "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "engines": { - "node": ">=4.0" - } - }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", @@ -3139,73 +2103,9 @@ "engines": { "node": ">=0.4" } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" } }, "dependencies": { - "@fortawesome/fontawesome-free": { - "version": "6.7.2", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.7.2.tgz", - "integrity": "sha512-JUOtgFW6k9u4Y+xeIaEiLr3+cjoUPiAuLXoyKOJSia6Duzb7pq+A76P9ZdPDoAoxHdHzq6gE9/jKBGXlZT8FbA==" - }, - "@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", - "optional": true - }, - "@npmcli/fs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", - "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", - "optional": true, - "requires": { - "@gar/promisify": "^1.0.1", - "semver": "^7.3.5" - }, - "dependencies": { - "semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", - "optional": true - } - } - }, - "@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", - "optional": true, - "requires": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "dependencies": { - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "optional": true - } - } - }, - "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "optional": true - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "optional": true - }, "accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -3220,57 +2120,6 @@ "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.3.1.tgz", "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==" }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "optional": true, - "requires": { - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", - "optional": true, - "requires": { - "ms": "^2.1.3" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "optional": true - } - } - }, - "agentkeepalive": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.6.0.tgz", - "integrity": "sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==", - "optional": true, - "requires": { - "humanize-ms": "^1.2.1" - } - }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "optional": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "optional": true - }, "anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", @@ -3286,35 +2135,6 @@ "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==" }, - "aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", - "optional": true - }, - "are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "optional": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", @@ -3324,7 +2144,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "devOptional": true + "dev": true }, "base64-js": { "version": "1.5.1", @@ -3409,7 +2229,7 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "devOptional": true, + "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -3456,40 +2276,6 @@ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" }, - "cacache": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", - "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", - "optional": true, - "requires": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - }, - "dependencies": { - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "optional": true - } - } - }, "call-bind-apply-helpers": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", @@ -3533,33 +2319,16 @@ "readdirp": "~3.6.0" } }, - "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "optional": true - }, "codepage": { "version": "1.15.0", "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.15.0.tgz", "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==" }, - "color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "optional": true - }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "devOptional": true + "dev": true }, "concat-stream": { "version": "1.6.2", @@ -3572,12 +2341,6 @@ "typedarray": "^0.0.6" } }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", - "optional": true - }, "content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", @@ -3657,12 +2420,6 @@ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", - "optional": true - }, "depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", @@ -3701,26 +2458,11 @@ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "optional": true - }, "encodeurl": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==" }, - "encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "optional": true, - "requires": { - "iconv-lite": "^0.6.2" - } - }, "end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", @@ -3729,18 +2471,6 @@ "once": "^1.4.0" } }, - "env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "optional": true - }, - "err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "optional": true - }, "es-define-property": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", @@ -3915,20 +2645,6 @@ "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" }, - "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "requires": { - "minipass": "^3.0.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "optional": true - }, "fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -3941,22 +2657,6 @@ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" }, - "gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "optional": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - } - }, "get-intrinsic": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", @@ -4001,20 +2701,6 @@ "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==" }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "optional": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, "glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", @@ -4029,12 +2715,6 @@ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==" }, - "graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "optional": true - }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -4046,12 +2726,6 @@ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==" }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", - "optional": true - }, "hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", @@ -4060,12 +2734,6 @@ "function-bind": "^1.1.2" } }, - "http-cache-semantics": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", - "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", - "optional": true - }, "http-errors": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", @@ -4078,70 +2746,6 @@ "toidentifier": "1.0.1" } }, - "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "optional": true, - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", - "optional": true, - "requires": { - "ms": "^2.1.3" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "optional": true - } - } - }, - "https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "optional": true, - "requires": { - "agent-base": "6", - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", - "optional": true, - "requires": { - "ms": "^2.1.3" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "optional": true - } - } - }, - "humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", - "optional": true, - "requires": { - "ms": "^2.0.0" - } - }, "iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", @@ -4161,34 +2765,6 @@ "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", "dev": true }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "optional": true - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "optional": true - }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "optional": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "optional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", @@ -4199,16 +2775,6 @@ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, - "ip-address": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", - "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", - "optional": true, - "requires": { - "jsbn": "1.1.0", - "sprintf-js": "^1.1.3" - } - }, "ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", @@ -4229,12 +2795,6 @@ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "optional": true - }, "is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -4244,12 +2804,6 @@ "is-extglob": "^2.1.1" } }, - "is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", - "optional": true - }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -4261,18 +2815,6 @@ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "optional": true - }, - "jsbn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", - "optional": true - }, "jsonwebtoken": { "version": "9.0.2", "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", @@ -4356,39 +2898,6 @@ "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "optional": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "make-fetch-happen": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", - "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", - "optional": true, - "requires": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.2.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.2", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.0.0", - "ssri": "^8.0.0" - } - }, "math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", @@ -4436,7 +2945,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "devOptional": true, + "dev": true, "requires": { "brace-expansion": "^1.1.7" } @@ -4446,71 +2955,6 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" }, - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "requires": { - "yallist": "^4.0.0" - } - }, - "minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "optional": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-fetch": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", - "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", - "optional": true, - "requires": { - "encoding": "^0.1.12", - "minipass": "^3.1.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.0.0" - } - }, - "minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "optional": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "optional": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "optional": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - } - }, "mkdirp": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", @@ -4573,32 +3017,6 @@ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==" }, - "node-gyp": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", - "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", - "optional": true, - "requires": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^9.1.0", - "nopt": "^5.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" - }, - "dependencies": { - "semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", - "optional": true - } - } - }, "node-gyp-build": { "version": "4.8.4", "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz", @@ -4639,33 +3057,12 @@ } } }, - "nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "optional": true, - "requires": { - "abbrev": "1" - } - }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, - "npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "optional": true, - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - } - }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -4697,26 +3094,11 @@ "wrappy": "1" } }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "optional": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "optional": true - }, "path-to-regexp": { "version": "0.1.12", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", @@ -4752,22 +3134,6 @@ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", - "optional": true - }, - "promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "optional": true, - "requires": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - } - }, "proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -4921,21 +3287,6 @@ } } }, - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", - "optional": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "optional": true, - "requires": { - "glob": "^7.1.3" - } - }, "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -4946,11 +3297,6 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, - "sax": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", - "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==" - }, "semver": { "version": "5.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", @@ -5000,12 +3346,6 @@ "send": "0.19.0" } }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "optional": true - }, "setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", @@ -5055,12 +3395,6 @@ "side-channel-map": "^1.0.1" } }, - "signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "optional": true - }, "simple-concat": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", @@ -5093,75 +3427,6 @@ } } }, - "smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "optional": true - }, - "socks": { - "version": "2.8.4", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.4.tgz", - "integrity": "sha512-D3YaD0aRxR3mEcqnidIs7ReYJFVzWdd6fXJYUM8ixcQcJRGTka/b3saV0KflYhyVJXKhb947GndU35SxYNResQ==", - "optional": true, - "requires": { - "ip-address": "^9.0.5", - "smart-buffer": "^4.2.0" - } - }, - "socks-proxy-agent": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", - "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", - "optional": true, - "requires": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - }, - "dependencies": { - "debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", - "optional": true, - "requires": { - "ms": "^2.1.3" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "optional": true - } - } - }, - "sprintf-js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", - "optional": true - }, - "sqlite3": { - "version": "5.1.7", - "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-5.1.7.tgz", - "integrity": "sha512-GGIyOiFaG+TUra3JIfkI/zGP8yZYLPQ0pl1bH+ODjiX57sPhrLU5sQJn1y9bDKZUFYkX1crlrPfSYt0BKKdkog==", - "requires": { - "bindings": "^1.5.0", - "node-addon-api": "^7.0.0", - "node-gyp": "8.x", - "prebuild-install": "^7.1.1", - "tar": "^6.1.11" - }, - "dependencies": { - "node-addon-api": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", - "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==" - } - } - }, "ssf": { "version": "0.11.2", "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz", @@ -5170,15 +3435,6 @@ "frac": "~1.1.2" } }, - "ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", - "optional": true, - "requires": { - "minipass": "^3.1.1" - } - }, "statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", @@ -5204,26 +3460,6 @@ } } }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "optional": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "optional": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, "strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", @@ -5243,31 +3479,6 @@ "resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.25.11.tgz", "integrity": "sha512-jI01fn/t47rrLTQB0FTlMCC+5dYx8o0RRF+R4BPiUNsvg5OdY0s9DKMFmJGrx5SwMZQ4cag0Gl6v8oycso9b/g==" }, - "tar": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", - "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", - "requires": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "dependencies": { - "minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==" - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - } - } - }, "tar-fs": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.2.tgz", @@ -5366,24 +3577,6 @@ "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", "dev": true }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "optional": true, - "requires": { - "unique-slug": "^2.0.0" - } - }, - "unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "optional": true, - "requires": { - "imurmurhash": "^0.1.4" - } - }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -5404,24 +3597,6 @@ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "optional": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "optional": true, - "requires": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, "wmf": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz", @@ -5451,29 +3626,10 @@ "word": "~0.3.0" } }, - "xml2js": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz", - "integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==", - "requires": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - } - }, - "xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" - }, "xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" } } } diff --git a/XNSimHtml/package.json b/XNSimHtml/package.json index 35f58ed..56db2ac 100644 --- a/XNSimHtml/package.json +++ b/XNSimHtml/package.json @@ -8,7 +8,6 @@ "dev": "nodemon server.js" }, "dependencies": { - "@fortawesome/fontawesome-free": "^6.7.2", "better-sqlite3": "^9.6.0", "body-parser": "^1.20.2", "cookie-parser": "^1.4.6", @@ -20,10 +19,8 @@ "jsonwebtoken": "^9.0.0", "multer": "^1.4.5-lts.2", "ref-napi": "^3.0.3", - "sqlite3": "^5.1.7", "systeminformation": "^5.25.11", - "xlsx": "^0.18.5", - "xml2js": "^0.6.2" + "xlsx": "^0.18.5" }, "devDependencies": { "nodemon": "^2.0.22" diff --git a/XNSimHtml/utils/file-utils.js b/XNSimHtml/utils/file-utils.js index 1d5b401..2f97c18 100644 --- a/XNSimHtml/utils/file-utils.js +++ b/XNSimHtml/utils/file-utils.js @@ -122,6 +122,49 @@ async function ensureDirectoryExists(dirPath) { return false; } +// 获取上传文件目录路径 +async function getUploadPath() { + const currentDir = process.cwd(); + const uploadPath = path.join(currentDir, 'upload'); + + // 确保上传目录存在 + await ensureDirectoryExists(uploadPath); + + return uploadPath; +} + +// 保存上传的文件 +async function saveUploadedFile(file) { + try { + const uploadPath = await getUploadPath(); + const filePath = path.join(uploadPath, file.originalname); + + // 如果文件已存在,添加时间戳 + if (fs.existsSync(filePath)) { + const timestamp = new Date().getTime(); + const ext = path.extname(file.originalname); + const name = path.basename(file.originalname, ext); + const newFileName = `${name}_${timestamp}${ext}`; + return path.join(uploadPath, newFileName); + } + + return filePath; + } catch (error) { + console.error('处理上传文件路径失败:', error); + throw error; + } +} + +// 检查文件类型是否允许 +function isAllowedFileType(fileName, allowedTypes = []) { + if (!allowedTypes || allowedTypes.length === 0) { + return true; // 如果没有指定允许的类型,则允许所有类型 + } + + const ext = path.extname(fileName).toLowerCase(); + return allowedTypes.includes(ext); +} + module.exports = { getXNCorePath, getModelPath, @@ -131,5 +174,8 @@ module.exports = { isPathSafe, ensureDirectoryExists, getDBConnection, - closeDBConnection + closeDBConnection, + getUploadPath, + saveUploadedFile, + isAllowedFileType }; \ No newline at end of file