ModusCreateOrg / gimbal

Web Performance Auditing tooling
https://labs.moduscreate.com/gimbal-web-performance-audit-budgeting
MIT License
115 stars 8 forks source link

Analyze bundles #81

Closed grgur closed 5 years ago

grgur commented 5 years ago

CRA has deprecated Webpack Bundle Analyzer in favor of Source Map Explorer.

Let's see what we can learn from the bundles and sourcemaps

const path = require('path')
const fs = require('fs')
const explore = require('source-map-explorer')

const buildDir = path.join(__dirname, 'build', 'static', 'js')

fs.readdir(buildDir, (err, files) => {
  if (err) {
    return console.log(`Where's the CRA build directory? ` + err)
  }

  const output = files
    .filter(file => file.match(/^(?!runtime).*\.(js)$/))
    .map(bundle => {
      try {
        // SME will complain if sourcemaps contain just one file, but we don't control that
        // in bundles generated by 3rd parties like webpack runtime or Ionic
        const explored = explore(path.resolve(buildDir, bundle))
        return { bundle, ...explored }
      } catch (e) {
        return false;
      }
    })
    .filter(Boolean)

  console.log(output)
})

Stock CRA Output

[
   {
      "bundle":"2.34b4fde6.chunk.js",
      "totalBytes":118776,
      "unmappedBytes":130,
      "files":{
         "react/index.js":45,
         "object-assign/index.js":947,
         "react-dom/index.js":253,
         "react/cjs/react.production.min.js":6488,
         "react-dom/cjs/react-dom.production.min.js":106129,
         "scheduler/index.js":46,
         "scheduler/cjs/scheduler.production.min.js":4603,
         "webpack/buildin/global.js":135,
         "<unmapped>":130
      }
   },
   {
      "bundle":"main.1befcbd7.chunk.js",
      "totalBytes":1118,
      "unmappedBytes":123,
      "files":{
         "logo.svg":224,
         "App.js":420,
         "serviceWorker.js":281,
         "index.js":70,
         "<unmapped>":123
      }
   }
]

MoDir Output

[
   {
      "bundle":"100.981df429.chunk.js",
      "totalBytes":18932,
      "unmappedBytes":138,
      "files":{
         "build/xt9bb6qm.sc.entry.js":14514,
         "polyfills/tslib.js":1763,
         "build/chunk-7c632336.js":1027,
         "build/chunk-6d7d2f8c.js":1490,
         "<unmapped>":138
      }
   },
   {
      "bundle":"101.2fd71d03.chunk.js",
      "totalBytes":32377,
      "unmappedBytes":140,
      "files":{
         "build/fokfxvfn.entry.js":22420,
         "polyfills/tslib.js":1763,
         "build/chunk-6d7d2f8c.js":1520,
         "build/chunk-f56eaea8.js":6534,
         "<unmapped>":140
      }
   },
   {
      "bundle":"148.608a301a.chunk.js",
      "totalBytes":6425,
      "unmappedBytes":138,
      "files":{
         "build/xgnma4yj.sc.entry.js":3527,
         "polyfills/tslib.js":1763,
         "build/chunk-7c632336.js":997,
         "<unmapped>":138
      }
   },
   {
      "bundle":"15.802a14e9.chunk.js",
      "totalBytes":317752,
      "unmappedBytes":132,
      "files":{
         "react/index.js":47,
         "@babel/runtime/helpers/esm/extends.js":269,
         "react-router/esm/react-router.js":6773,
         "babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js":182,
         "@babel/runtime/helpers/esm/inheritsLoose.js":157,
         "tiny-invariant/dist/tiny-invariant.esm.js":143,
         "resolve-pathname/index.js":655,
         "value-equal/index.js":691,
         "history/esm/history.js":8530,
         "babel-preset-react-app/node_modules/@babel/runtime/regenerator/index.js":47,
         "lodash-es/isArray.js":29,
         "lodash-es/_root.js":94,
         "lodash-es/_Symbol.js":11,
         "lodash-es/_getRawTag.js":206,
         "lodash-es/_objectToString.js":64,
         "lodash-es/_baseGetTag.js":143,
         "lodash-es/isObjectLike.js":54,
         "lodash-es/isSymbol.js":79,
         "lodash-es/_isKey.js":228,
         "lodash-es/isObject.js":79,
         "lodash-es/isFunction.js":177,
         "lodash-es/_coreJsData.js":26,
         "lodash-es/_isMasked.js":136,
         "lodash-es/_toSource.js":128,
         "lodash-es/_baseIsNative.js":307,
         "lodash-es/_getValue.js":48,
         "lodash-es/_getNative.js":55,
         "lodash-es/_nativeCreate.js":21,
         "lodash-es/_hashClear.js":57,
         "lodash-es/_hashDelete.js":88,
         "lodash-es/_hashGet.js":173,
         "lodash-es/_hashHas.js":108,
         "lodash-es/_hashSet.js":134,
         "lodash-es/_Hash.js":213,
         "lodash-es/_listCacheClear.js":48,
         "lodash-es/eq.js":49,
         "lodash-es/_assocIndexOf.js":81,
         "lodash-es/_listCacheDelete.js":144,
         "lodash-es/_listCacheGet.js":76,
         "lodash-es/_listCacheHas.js":50,
         "lodash-es/_listCacheSet.js":106,
         "lodash-es/_ListCache.js":217,
         "lodash-es/_Map.js":14,
         "lodash-es/_mapCacheClear.js":89,
         "lodash-es/_isKeyable.js":118,
         "lodash-es/_getMapData.js":96,
         "lodash-es/_mapCacheDelete.js":73,
         "lodash-es/_mapCacheGet.js":45,
         "lodash-es/_mapCacheHas.js":45,
         "lodash-es/_mapCacheSet.js":96,
         "lodash-es/_MapCache.js":217,
         "lodash-es/memoize.js":330,
         "lodash-es/_memoizeCapped.js":99,
         "lodash-es/_stringToPath.js":252,
         "lodash-es/_arrayMap.js":100,
         "lodash-es/_baseToString.js":208,
         "lodash-es/toString.js":44,
         "lodash-es/_castPath.js":57,
         "lodash-es/_toKey.js":105,
         "lodash-es/_baseGet.js":109,
         "lodash-es/get.js":102,
         "@ionic/core/dist/esm/es5/build/chunk-90d954cd.js":298,
         "@ionic/core/dist/esm/es5/build/chunk-f54563a4.js":1508,
         "react-dom/index.js":253,
         "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js":181,
         "webpack/buildin/global.js":148,
         "prop-types/index.js":49,
         "react-router-dom/esm/react-router-dom.js":3063,
         "babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js":87,
         "babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js":41,
         "babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js":236,
         "babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js":87,
         "ionicons/dist/ionicons/svg/ios-add-circle-outline.svg":82,
         "ionicons/dist/ionicons/svg/ios-add-circle.svg":74,
         "ionicons/dist/ionicons/svg/ios-add.svg":67,
         "ionicons/dist/ionicons/svg/ios-airplane.svg":72,
         "ionicons/dist/ionicons/svg/ios-alarm.svg":69,
         "ionicons/dist/ionicons/svg/ios-albums.svg":70,
         "ionicons/dist/ionicons/svg/ios-alert.svg":69,
         "ionicons/dist/ionicons/svg/ios-american-football.svg":81,
         "ionicons/dist/ionicons/svg/ios-analytics.svg":73,
         "ionicons/dist/ionicons/svg/ios-aperture.svg":72,
         "ionicons/dist/ionicons/svg/ios-apps.svg":68,
         "ionicons/dist/ionicons/svg/ios-appstore.svg":72,
         "ionicons/dist/ionicons/svg/ios-archive.svg":71,
         "ionicons/dist/ionicons/svg/ios-arrow-back.svg":74,
         "ionicons/dist/ionicons/svg/ios-arrow-down.svg":74,
         "ionicons/dist/ionicons/svg/ios-arrow-dropdown-circle.svg":85,
         "ionicons/dist/ionicons/svg/ios-arrow-dropdown.svg":78,
         "ionicons/dist/ionicons/svg/ios-arrow-dropleft-circle.svg":85,
         "ionicons/dist/ionicons/svg/ios-arrow-dropleft.svg":78,
         "ionicons/dist/ionicons/svg/ios-arrow-dropright-circle.svg":86,
         "ionicons/dist/ionicons/svg/ios-arrow-dropright.svg":79,
         "ionicons/dist/ionicons/svg/ios-arrow-dropup-circle.svg":83,
         "ionicons/dist/ionicons/svg/ios-arrow-dropup.svg":76,
         "ionicons/dist/ionicons/svg/ios-arrow-forward.svg":77,
         "ionicons/dist/ionicons/svg/ios-arrow-round-back.svg":80,
         "ionicons/dist/ionicons/svg/ios-arrow-round-down.svg":80,
         "ionicons/dist/ionicons/svg/ios-arrow-round-forward.svg":83,
         "ionicons/dist/ionicons/svg/ios-arrow-round-up.svg":78,
         "ionicons/dist/ionicons/svg/ios-arrow-up.svg":72,
         "ionicons/dist/ionicons/svg/ios-at.svg":66,
         "ionicons/dist/ionicons/svg/ios-attach.svg":70,
         "ionicons/dist/ionicons/svg/ios-backspace.svg":73,
         "ionicons/dist/ionicons/svg/ios-barcode.svg":71,
         "ionicons/dist/ionicons/svg/ios-baseball.svg":72,
         "ionicons/dist/ionicons/svg/ios-basket.svg":70,
         "ionicons/dist/ionicons/svg/ios-basketball.svg":74,
         "ionicons/dist/ionicons/svg/ios-battery-charging.svg":80,
         "ionicons/dist/ionicons/svg/ios-battery-dead.svg":76,
         "ionicons/dist/ionicons/svg/ios-battery-full.svg":76,
         "ionicons/dist/ionicons/svg/ios-beaker.svg":70,
         "ionicons/dist/ionicons/svg/ios-bed.svg":67,
         "ionicons/dist/ionicons/svg/ios-beer.svg":68,
         "ionicons/dist/ionicons/svg/ios-bicycle.svg":71,
         "ionicons/dist/ionicons/svg/ios-bluetooth.svg":73,
         "ionicons/dist/ionicons/svg/ios-boat.svg":68,
         "ionicons/dist/ionicons/svg/ios-body.svg":68,
         "ionicons/dist/ionicons/svg/ios-bonfire.svg":71,
         "ionicons/dist/ionicons/svg/ios-book.svg":68,
         "ionicons/dist/ionicons/svg/ios-bookmark.svg":72,
         "ionicons/dist/ionicons/svg/ios-bookmarks.svg":73,
         "ionicons/dist/ionicons/svg/ios-bowtie.svg":70,
         "ionicons/dist/ionicons/svg/ios-briefcase.svg":73,
         "ionicons/dist/ionicons/svg/ios-browsers.svg":72,
         "ionicons/dist/ionicons/svg/ios-brush.svg":69,
         "ionicons/dist/ionicons/svg/ios-bug.svg":67,
         "ionicons/dist/ionicons/svg/ios-build.svg":69,
         "ionicons/dist/ionicons/svg/ios-bulb.svg":68,
         "ionicons/dist/ionicons/svg/ios-bus.svg":67,
         "ionicons/dist/ionicons/svg/ios-business.svg":72,
         "ionicons/dist/ionicons/svg/ios-cafe.svg":68,
         "ionicons/dist/ionicons/svg/ios-calculator.svg":74,
         "ionicons/dist/ionicons/svg/ios-calendar.svg":72,
         "ionicons/dist/ionicons/svg/ios-call.svg":68,
         "ionicons/dist/ionicons/svg/ios-camera.svg":70,
         "ionicons/dist/ionicons/svg/ios-car.svg":67,
         "ionicons/dist/ionicons/svg/ios-card.svg":68,
         "ionicons/dist/ionicons/svg/ios-cart.svg":68,
         "ionicons/dist/ionicons/svg/ios-cash.svg":68,
         "ionicons/dist/ionicons/svg/ios-cellular.svg":72,
         "ionicons/dist/ionicons/svg/ios-chatboxes.svg":73,
         "ionicons/dist/ionicons/svg/ios-chatbubbles.svg":75,
         "ionicons/dist/ionicons/svg/ios-checkbox-outline.svg":80,
         "ionicons/dist/ionicons/svg/ios-checkbox.svg":72,
         "ionicons/dist/ionicons/svg/ios-checkmark-circle-outline.svg":88,
         "ionicons/dist/ionicons/svg/ios-checkmark-circle.svg":80,
         "ionicons/dist/ionicons/svg/ios-checkmark.svg":73,
         "ionicons/dist/ionicons/svg/ios-clipboard.svg":73,
         "ionicons/dist/ionicons/svg/ios-clock.svg":69,
         "ionicons/dist/ionicons/svg/ios-close-circle-outline.svg":84,
         "ionicons/dist/ionicons/svg/ios-close-circle.svg":76,
         "ionicons/dist/ionicons/svg/ios-close.svg":69,
         "ionicons/dist/ionicons/svg/ios-cloud-circle.svg":76,
         "ionicons/dist/ionicons/svg/ios-cloud-done.svg":74,
         "ionicons/dist/ionicons/svg/ios-cloud-download.svg":78,
         "ionicons/dist/ionicons/svg/ios-cloud-outline.svg":77,
         "ionicons/dist/ionicons/svg/ios-cloud-upload.svg":76,
         "ionicons/dist/ionicons/svg/ios-cloud.svg":69,
         "ionicons/dist/ionicons/svg/ios-cloudy-night.svg":76,
         "ionicons/dist/ionicons/svg/ios-cloudy.svg":70,
         "ionicons/dist/ionicons/svg/ios-code-download.svg":77,
         "ionicons/dist/ionicons/svg/ios-code-working.svg":76,
         "ionicons/dist/ionicons/svg/ios-code.svg":68,
         "ionicons/dist/ionicons/svg/ios-cog.svg":67,
         "ionicons/dist/ionicons/svg/ios-color-fill.svg":74,
         "ionicons/dist/ionicons/svg/ios-color-filter.svg":76,
         "ionicons/dist/ionicons/svg/ios-color-palette.svg":77,
         "ionicons/dist/ionicons/svg/ios-color-wand.svg":74,
         "ionicons/dist/ionicons/svg/ios-compass.svg":71,
         "ionicons/dist/ionicons/svg/ios-construct.svg":73,
         "ionicons/dist/ionicons/svg/ios-contact.svg":71,
         "ionicons/dist/ionicons/svg/ios-contacts.svg":72,
         "ionicons/dist/ionicons/svg/ios-contract.svg":72,
         "ionicons/dist/ionicons/svg/ios-contrast.svg":72,
         "ionicons/dist/ionicons/svg/ios-copy.svg":68,
         "ionicons/dist/ionicons/svg/ios-create.svg":70,
         "ionicons/dist/ionicons/svg/ios-crop.svg":68,
         "ionicons/dist/ionicons/svg/ios-cube.svg":68,
         "ionicons/dist/ionicons/svg/ios-cut.svg":67,
         "ionicons/dist/ionicons/svg/ios-desktop.svg":71,
         "ionicons/dist/ionicons/svg/ios-disc.svg":68,
         "ionicons/dist/ionicons/svg/ios-document.svg":72,
         "ionicons/dist/ionicons/svg/ios-done-all.svg":72,
         "ionicons/dist/ionicons/svg/ios-download.svg":72,
         "ionicons/dist/ionicons/svg/ios-easel.svg":69,
         "ionicons/dist/ionicons/svg/ios-egg.svg":67,
         "ionicons/dist/ionicons/svg/ios-exit.svg":68,
         "ionicons/dist/ionicons/svg/ios-expand.svg":70,
         "ionicons/dist/ionicons/svg/ios-eye-off.svg":71,
         "ionicons/dist/ionicons/svg/ios-eye.svg":67,
         "ionicons/dist/ionicons/svg/ios-fastforward.svg":75,
         "ionicons/dist/ionicons/svg/ios-female.svg":70,
         "ionicons/dist/ionicons/svg/ios-filing.svg":70,
         "ionicons/dist/ionicons/svg/ios-film.svg":68,
         "ionicons/dist/ionicons/svg/ios-finger-print.svg":76,
         "ionicons/dist/ionicons/svg/ios-fitness.svg":71,
         "ionicons/dist/ionicons/svg/ios-flag.svg":68,
         "ionicons/dist/ionicons/svg/ios-flame.svg":69,
         "ionicons/dist/ionicons/svg/ios-flash-off.svg":73,
         "ionicons/dist/ionicons/svg/ios-flash.svg":69,
         "ionicons/dist/ionicons/svg/ios-flashlight.svg":74,
         "ionicons/dist/ionicons/svg/ios-flask.svg":69,
         "ionicons/dist/ionicons/svg/ios-flower.svg":70,
         "ionicons/dist/ionicons/svg/ios-folder-open.svg":75,
         "ionicons/dist/ionicons/svg/ios-folder.svg":70,
         "ionicons/dist/ionicons/svg/ios-football.svg":72,
         "ionicons/dist/ionicons/svg/ios-funnel.svg":70,
         "ionicons/dist/ionicons/svg/ios-gift.svg":68,
         "ionicons/dist/ionicons/svg/ios-git-branch.svg":74,
         "ionicons/dist/ionicons/svg/ios-git-commit.svg":74,
         "ionicons/dist/ionicons/svg/ios-git-compare.svg":75,
         "ionicons/dist/ionicons/svg/ios-git-merge.svg":73,
         "ionicons/dist/ionicons/svg/ios-git-network.svg":75,
         "ionicons/dist/ionicons/svg/ios-git-pull-request.svg":80,
         "ionicons/dist/ionicons/svg/ios-glasses.svg":71,
         "ionicons/dist/ionicons/svg/ios-globe.svg":69,
         "ionicons/dist/ionicons/svg/ios-grid.svg":68,
         "ionicons/dist/ionicons/svg/ios-hammer.svg":70,
         "ionicons/dist/ionicons/svg/ios-hand.svg":68,
         "ionicons/dist/ionicons/svg/ios-happy.svg":69,
         "ionicons/dist/ionicons/svg/ios-headset.svg":71,
         "ionicons/dist/ionicons/svg/ios-heart-dislike.svg":77,
         "ionicons/dist/ionicons/svg/ios-heart-empty.svg":75,
         "ionicons/dist/ionicons/svg/ios-heart-half.svg":74,
         "ionicons/dist/ionicons/svg/ios-heart.svg":69,
         "ionicons/dist/ionicons/svg/ios-help-buoy.svg":73,
         "ionicons/dist/ionicons/svg/ios-help-circle-outline.svg":83,
         "ionicons/dist/ionicons/svg/ios-help-circle.svg":75,
         "ionicons/dist/ionicons/svg/ios-help.svg":68,
         "ionicons/dist/ionicons/svg/ios-home.svg":68,
         "ionicons/dist/ionicons/svg/ios-hourglass.svg":73,
         "ionicons/dist/ionicons/svg/ios-ice-cream.svg":73,
         "ionicons/dist/ionicons/svg/ios-image.svg":69,
         "ionicons/dist/ionicons/svg/ios-images.svg":70,
         "ionicons/dist/ionicons/svg/ios-infinite.svg":72,
         "ionicons/dist/ionicons/svg/ios-information-circle-outline.svg":90,
         "ionicons/dist/ionicons/svg/ios-information-circle.svg":82,
         "ionicons/dist/ionicons/svg/ios-information.svg":75,
         "ionicons/dist/ionicons/svg/ios-jet.svg":67,
         "ionicons/dist/ionicons/svg/ios-journal.svg":71,
         "ionicons/dist/ionicons/svg/ios-key.svg":67,
         "ionicons/dist/ionicons/svg/ios-keypad.svg":70,
         "ionicons/dist/ionicons/svg/ios-laptop.svg":70,
         "ionicons/dist/ionicons/svg/ios-leaf.svg":68,
         "ionicons/dist/ionicons/svg/ios-link.svg":68,
         "ionicons/dist/ionicons/svg/ios-list-box.svg":72,
         "ionicons/dist/ionicons/svg/ios-list.svg":68,
         "ionicons/dist/ionicons/svg/ios-locate.svg":70,
         "ionicons/dist/ionicons/svg/ios-lock.svg":68,
         "ionicons/dist/ionicons/svg/ios-log-in.svg":70,
         "ionicons/dist/ionicons/svg/ios-log-out.svg":71,
         "ionicons/dist/ionicons/svg/ios-magnet.svg":70,
         "ionicons/dist/ionicons/svg/ios-mail-open.svg":73,
         "ionicons/dist/ionicons/svg/ios-mail-unread.svg":75,
         "ionicons/dist/ionicons/svg/ios-mail.svg":68,
         "ionicons/dist/ionicons/svg/ios-male.svg":68,
         "ionicons/dist/ionicons/svg/ios-man.svg":67,
         "ionicons/dist/ionicons/svg/ios-map.svg":67,
         "ionicons/dist/ionicons/svg/ios-medal.svg":69,
         "ionicons/dist/ionicons/svg/ios-medical.svg":71,
         "ionicons/dist/ionicons/svg/ios-medkit.svg":70,
         "ionicons/dist/ionicons/svg/ios-megaphone.svg":73,
         "ionicons/dist/ionicons/svg/ios-menu.svg":68,
         "ionicons/dist/ionicons/svg/ios-mic-off.svg":71,
         "ionicons/dist/ionicons/svg/ios-mic.svg":67,
         "ionicons/dist/ionicons/svg/ios-microphone.svg":74,
         "ionicons/dist/ionicons/svg/ios-moon.svg":68,
         "ionicons/dist/ionicons/svg/ios-more.svg":68,
         "ionicons/dist/ionicons/svg/ios-move.svg":68,
         "ionicons/dist/ionicons/svg/ios-musical-note.svg":76,
         "ionicons/dist/ionicons/svg/ios-musical-notes.svg":77,
         "ionicons/dist/ionicons/svg/ios-navigate.svg":72,
         "ionicons/dist/ionicons/svg/ios-notifications-off.svg":81,
         "ionicons/dist/ionicons/svg/ios-notifications-outline.svg":85,
         "ionicons/dist/ionicons/svg/ios-notifications.svg":77,
         "ionicons/dist/ionicons/svg/ios-nuclear.svg":71,
         "ionicons/dist/ionicons/svg/ios-nutrition.svg":73,
         "ionicons/dist/ionicons/svg/ios-open.svg":68,
         "ionicons/dist/ionicons/svg/ios-options.svg":71,
         "ionicons/dist/ionicons/svg/ios-outlet.svg":70,
         "ionicons/dist/ionicons/svg/ios-paper-plane.svg":75,
         "ionicons/dist/ionicons/svg/ios-paper.svg":69,
         "ionicons/dist/ionicons/svg/ios-partly-sunny.svg":76,
         "ionicons/dist/ionicons/svg/ios-pause.svg":69,
         "ionicons/dist/ionicons/svg/ios-paw.svg":67,
         "ionicons/dist/ionicons/svg/ios-people.svg":70,
         "ionicons/dist/ionicons/svg/ios-person-add.svg":74,
         "ionicons/dist/ionicons/svg/ios-person.svg":70,
         "ionicons/dist/ionicons/svg/ios-phone-landscape.svg":79,
         "ionicons/dist/ionicons/svg/ios-phone-portrait.svg":78,
         "ionicons/dist/ionicons/svg/ios-photos.svg":70,
         "ionicons/dist/ionicons/svg/ios-pie.svg":67,
         "ionicons/dist/ionicons/svg/ios-pin.svg":67,
         "ionicons/dist/ionicons/svg/ios-pint.svg":68,
         "ionicons/dist/ionicons/svg/ios-pizza.svg":69,
         "ionicons/dist/ionicons/svg/ios-planet.svg":70,
         "ionicons/dist/ionicons/svg/ios-play-circle.svg":75,
         "ionicons/dist/ionicons/svg/ios-play.svg":68,
         "ionicons/dist/ionicons/svg/ios-podium.svg":70,
         "ionicons/dist/ionicons/svg/ios-power.svg":69,
         "ionicons/dist/ionicons/svg/ios-pricetag.svg":72,
         "ionicons/dist/ionicons/svg/ios-pricetags.svg":73,
         "ionicons/dist/ionicons/svg/ios-print.svg":69,
         "ionicons/dist/ionicons/svg/ios-pulse.svg":69,
         "ionicons/dist/ionicons/svg/ios-qr-scanner.svg":74,
         "ionicons/dist/ionicons/svg/ios-quote.svg":69,
         "ionicons/dist/ionicons/svg/ios-radio-button-off.svg":80,
         "ionicons/dist/ionicons/svg/ios-radio-button-on.svg":79,
         "ionicons/dist/ionicons/svg/ios-radio.svg":69,
         "ionicons/dist/ionicons/svg/ios-rainy.svg":69,
         "ionicons/dist/ionicons/svg/ios-recording.svg":73,
         "ionicons/dist/ionicons/svg/ios-redo.svg":68,
         "ionicons/dist/ionicons/svg/ios-refresh-circle.svg":78,
         "ionicons/dist/ionicons/svg/ios-refresh.svg":71,
         "ionicons/dist/ionicons/svg/ios-remove-circle-outline.svg":85,
         "ionicons/dist/ionicons/svg/ios-remove-circle.svg":77,
         "ionicons/dist/ionicons/svg/ios-remove.svg":70,
         "ionicons/dist/ionicons/svg/ios-reorder.svg":71,
         "ionicons/dist/ionicons/svg/ios-repeat.svg":70,
         "ionicons/dist/ionicons/svg/ios-resize.svg":70,
         "ionicons/dist/ionicons/svg/ios-restaurant.svg":74,
         "ionicons/dist/ionicons/svg/ios-return-left.svg":75,
         "ionicons/dist/ionicons/svg/ios-return-right.svg":76,
         "ionicons/dist/ionicons/svg/ios-reverse-camera.svg":78,
         "ionicons/dist/ionicons/svg/ios-rewind.svg":70,
         "ionicons/dist/ionicons/svg/ios-ribbon.svg":70,
         "ionicons/dist/ionicons/svg/ios-rocket.svg":70,
         "ionicons/dist/ionicons/svg/ios-rose.svg":68,
         "ionicons/dist/ionicons/svg/ios-sad.svg":67,
         "ionicons/dist/ionicons/svg/ios-save.svg":68,
         "ionicons/dist/ionicons/svg/ios-school.svg":70,
         "ionicons/dist/ionicons/svg/ios-search.svg":70,
         "ionicons/dist/ionicons/svg/ios-send.svg":68,
         "ionicons/dist/ionicons/svg/ios-settings.svg":72,
         "ionicons/dist/ionicons/svg/ios-share-alt.svg":73,
         "ionicons/dist/ionicons/svg/ios-share.svg":69,
         "ionicons/dist/ionicons/svg/ios-shirt.svg":69,
         "ionicons/dist/ionicons/svg/ios-shuffle.svg":71,
         "ionicons/dist/ionicons/svg/ios-skip-backward.svg":77,
         "ionicons/dist/ionicons/svg/ios-skip-forward.svg":76,
         "ionicons/dist/ionicons/svg/ios-snow.svg":68,
         "ionicons/dist/ionicons/svg/ios-speedometer.svg":75,
         "ionicons/dist/ionicons/svg/ios-square-outline.svg":78,
         "ionicons/dist/ionicons/svg/ios-square.svg":70,
         "ionicons/dist/ionicons/svg/ios-star-half.svg":73,
         "ionicons/dist/ionicons/svg/ios-star-outline.svg":76,
         "ionicons/dist/ionicons/svg/ios-star.svg":68,
         "ionicons/dist/ionicons/svg/ios-stats.svg":69,
         "ionicons/dist/ionicons/svg/ios-stopwatch.svg":73,
         "ionicons/dist/ionicons/svg/ios-subway.svg":70,
         "ionicons/dist/ionicons/svg/ios-sunny.svg":69,
         "ionicons/dist/ionicons/svg/ios-swap.svg":68,
         "ionicons/dist/ionicons/svg/ios-switch.svg":70,
         "ionicons/dist/ionicons/svg/ios-sync.svg":68,
         "ionicons/dist/ionicons/svg/ios-tablet-landscape.svg":80,
         "ionicons/dist/ionicons/svg/ios-tablet-portrait.svg":79,
         "ionicons/dist/ionicons/svg/ios-tennisball.svg":74,
         "ionicons/dist/ionicons/svg/ios-text.svg":68,
         "ionicons/dist/ionicons/svg/ios-thermometer.svg":75,
         "ionicons/dist/ionicons/svg/ios-thumbs-down.svg":75,
         "ionicons/dist/ionicons/svg/ios-thumbs-up.svg":73,
         "ionicons/dist/ionicons/svg/ios-thunderstorm.svg":76,
         "ionicons/dist/ionicons/svg/ios-time.svg":68,
         "ionicons/dist/ionicons/svg/ios-timer.svg":69,
         "ionicons/dist/ionicons/svg/ios-today.svg":69,
         "ionicons/dist/ionicons/svg/ios-train.svg":69,
         "ionicons/dist/ionicons/svg/ios-transgender.svg":75,
         "ionicons/dist/ionicons/svg/ios-trash.svg":69,
         "ionicons/dist/ionicons/svg/ios-trending-down.svg":77,
         "ionicons/dist/ionicons/svg/ios-trending-up.svg":75,
         "ionicons/dist/ionicons/svg/ios-trophy.svg":70,
         "ionicons/dist/ionicons/svg/ios-tv.svg":66,
         "ionicons/dist/ionicons/svg/ios-umbrella.svg":72,
         "ionicons/dist/ionicons/svg/ios-undo.svg":68,
         "ionicons/dist/ionicons/svg/ios-unlock.svg":70,
         "ionicons/dist/ionicons/svg/ios-videocam.svg":72,
         "ionicons/dist/ionicons/svg/ios-volume-high.svg":75,
         "ionicons/dist/ionicons/svg/ios-volume-low.svg":74,
         "ionicons/dist/ionicons/svg/ios-volume-mute.svg":75,
         "ionicons/dist/ionicons/svg/ios-volume-off.svg":74,
         "ionicons/dist/ionicons/svg/ios-walk.svg":68,
         "ionicons/dist/ionicons/svg/ios-wallet.svg":70,
         "ionicons/dist/ionicons/svg/ios-warning.svg":71,
         "ionicons/dist/ionicons/svg/ios-watch.svg":69,
         "ionicons/dist/ionicons/svg/ios-water.svg":69,
         "ionicons/dist/ionicons/svg/ios-wifi.svg":68,
         "ionicons/dist/ionicons/svg/ios-wine.svg":68,
         "ionicons/dist/ionicons/svg/ios-woman.svg":69,
         "ionicons/dist/ionicons/svg/logo-android.svg":72,
         "ionicons/dist/ionicons/svg/logo-angular.svg":72,
         "ionicons/dist/ionicons/svg/logo-apple.svg":70,
         "ionicons/dist/ionicons/svg/logo-bitbucket.svg":74,
         "ionicons/dist/ionicons/svg/logo-bitcoin.svg":72,
         "ionicons/dist/ionicons/svg/logo-buffer.svg":71,
         "ionicons/dist/ionicons/svg/logo-chrome.svg":71,
         "ionicons/dist/ionicons/svg/logo-closed-captioning.svg":82,
         "ionicons/dist/ionicons/svg/logo-codepen.svg":72,
         "ionicons/dist/ionicons/svg/logo-css3.svg":69,
         "ionicons/dist/ionicons/svg/logo-designernews.svg":77,
         "ionicons/dist/ionicons/svg/logo-dribbble.svg":73,
         "ionicons/dist/ionicons/svg/logo-dropbox.svg":72,
         "ionicons/dist/ionicons/svg/logo-euro.svg":69,
         "ionicons/dist/ionicons/svg/logo-facebook.svg":73,
         "ionicons/dist/ionicons/svg/logo-flickr.svg":71,
         "ionicons/dist/ionicons/svg/logo-foursquare.svg":75,
         "ionicons/dist/ionicons/svg/logo-freebsd-devil.svg":78,
         "ionicons/dist/ionicons/svg/logo-game-controller-a.svg":82,
         "ionicons/dist/ionicons/svg/logo-game-controller-b.svg":82,
         "ionicons/dist/ionicons/svg/logo-github.svg":71,
         "ionicons/dist/ionicons/svg/logo-google.svg":71,
         "ionicons/dist/ionicons/svg/logo-googleplus.svg":75,
         "ionicons/dist/ionicons/svg/logo-hackernews.svg":75,
         "ionicons/dist/ionicons/svg/logo-html5.svg":70,
         "ionicons/dist/ionicons/svg/logo-instagram.svg":74,
         "ionicons/dist/ionicons/svg/logo-ionic.svg":70,
         "ionicons/dist/ionicons/svg/logo-ionitron.svg":73,
         "ionicons/dist/ionicons/svg/logo-javascript.svg":75,
         "ionicons/dist/ionicons/svg/logo-linkedin.svg":73,
         "ionicons/dist/ionicons/svg/logo-markdown.svg":73,
         "ionicons/dist/ionicons/svg/logo-model-s.svg":72,
         "ionicons/dist/ionicons/svg/logo-no-smoking.svg":75,
         "ionicons/dist/ionicons/svg/logo-nodejs.svg":71,
         "ionicons/dist/ionicons/svg/logo-npm.svg":68,
         "ionicons/dist/ionicons/svg/logo-octocat.svg":72,
         "ionicons/dist/ionicons/svg/logo-pinterest.svg":74,
         "ionicons/dist/ionicons/svg/logo-playstation.svg":76,
         "ionicons/dist/ionicons/svg/logo-polymer.svg":72,
         "ionicons/dist/ionicons/svg/logo-python.svg":71,
         "ionicons/dist/ionicons/svg/logo-reddit.svg":71,
         "ionicons/dist/ionicons/svg/logo-rss.svg":68,
         "ionicons/dist/ionicons/svg/logo-sass.svg":69,
         "ionicons/dist/ionicons/svg/logo-skype.svg":70,
         "ionicons/dist/ionicons/svg/logo-slack.svg":70,
         "ionicons/dist/ionicons/svg/logo-snapchat.svg":73,
         "ionicons/dist/ionicons/svg/logo-steam.svg":70,
         "ionicons/dist/ionicons/svg/logo-tumblr.svg":71,
         "ionicons/dist/ionicons/svg/logo-tux.svg":68,
         "ionicons/dist/ionicons/svg/logo-twitch.svg":71,
         "ionicons/dist/ionicons/svg/logo-twitter.svg":72,
         "ionicons/dist/ionicons/svg/logo-usd.svg":68,
         "ionicons/dist/ionicons/svg/logo-vimeo.svg":70,
         "ionicons/dist/ionicons/svg/logo-vk.svg":67,
         "ionicons/dist/ionicons/svg/logo-whatsapp.svg":73,
         "ionicons/dist/ionicons/svg/logo-windows.svg":72,
         "ionicons/dist/ionicons/svg/logo-wordpress.svg":74,
         "ionicons/dist/ionicons/svg/logo-xbox.svg":69,
         "ionicons/dist/ionicons/svg/logo-xing.svg":69,
         "ionicons/dist/ionicons/svg/logo-yahoo.svg":70,
         "ionicons/dist/ionicons/svg/logo-yen.svg":68,
         "ionicons/dist/ionicons/svg/logo-youtube.svg":72,
         "ionicons/dist/ionicons/svg/md-add-circle-outline.svg":81,
         "ionicons/dist/ionicons/svg/md-add-circle.svg":73,
         "ionicons/dist/ionicons/svg/md-add.svg":66,
         "ionicons/dist/ionicons/svg/md-airplane.svg":71,
         "ionicons/dist/ionicons/svg/md-alarm.svg":68,
         "ionicons/dist/ionicons/svg/md-albums.svg":69,
         "ionicons/dist/ionicons/svg/md-alert.svg":68,
         "ionicons/dist/ionicons/svg/md-american-football.svg":80,
         "ionicons/dist/ionicons/svg/md-analytics.svg":72,
         "ionicons/dist/ionicons/svg/md-aperture.svg":71,
         "ionicons/dist/ionicons/svg/md-apps.svg":67,
         "ionicons/dist/ionicons/svg/md-appstore.svg":71,
         "ionicons/dist/ionicons/svg/md-archive.svg":70,
         "ionicons/dist/ionicons/svg/md-arrow-back.svg":73,
         "ionicons/dist/ionicons/svg/md-arrow-down.svg":73,
         "ionicons/dist/ionicons/svg/md-arrow-dropdown-circle.svg":84,
         "ionicons/dist/ionicons/svg/md-arrow-dropdown.svg":77,
         "ionicons/dist/ionicons/svg/md-arrow-dropleft-circle.svg":84,
         "ionicons/dist/ionicons/svg/md-arrow-dropleft.svg":77,
         "ionicons/dist/ionicons/svg/md-arrow-dropright-circle.svg":85,
         "ionicons/dist/ionicons/svg/md-arrow-dropright.svg":78,
         "ionicons/dist/ionicons/svg/md-arrow-dropup-circle.svg":82,
         "ionicons/dist/ionicons/svg/md-arrow-dropup.svg":75,
         "ionicons/dist/ionicons/svg/md-arrow-forward.svg":76,
         "ionicons/dist/ionicons/svg/md-arrow-round-back.svg":79,
         "ionicons/dist/ionicons/svg/md-arrow-round-down.svg":79,
         "ionicons/dist/ionicons/svg/md-arrow-round-forward.svg":82,
         "ionicons/dist/ionicons/svg/md-arrow-round-up.svg":77,
         "ionicons/dist/ionicons/svg/md-arrow-up.svg":71,
         "ionicons/dist/ionicons/svg/md-at.svg":65,
         "ionicons/dist/ionicons/svg/md-attach.svg":69,
         "ionicons/dist/ionicons/svg/md-backspace.svg":72,
         "ionicons/dist/ionicons/svg/md-barcode.svg":70,
         "ionicons/dist/ionicons/svg/md-baseball.svg":71,
         "ionicons/dist/ionicons/svg/md-basket.svg":69,
         "ionicons/dist/ionicons/svg/md-basketball.svg":73,
         "ionicons/dist/ionicons/svg/md-battery-charging.svg":79,
         "ionicons/dist/ionicons/svg/md-battery-dead.svg":75,
         "ionicons/dist/ionicons/svg/md-battery-full.svg":75,
         "ionicons/dist/ionicons/svg/md-beaker.svg":69,
         "ionicons/dist/ionicons/svg/md-bed.svg":66,
         "ionicons/dist/ionicons/svg/md-beer.svg":67,
         "ionicons/dist/ionicons/svg/md-bicycle.svg":70,
         "ionicons/dist/ionicons/svg/md-bluetooth.svg":72,
         "ionicons/dist/ionicons/svg/md-boat.svg":67,
         "ionicons/dist/ionicons/svg/md-body.svg":67,
         "ionicons/dist/ionicons/svg/md-bonfire.svg":70,
         "ionicons/dist/ionicons/svg/md-book.svg":67,
         "ionicons/dist/ionicons/svg/md-bookmark.svg":71,
         "ionicons/dist/ionicons/svg/md-bookmarks.svg":72,
         "ionicons/dist/ionicons/svg/md-bowtie.svg":69,
         "ionicons/dist/ionicons/svg/md-briefcase.svg":72,
         "ionicons/dist/ionicons/svg/md-browsers.svg":71,
         "ionicons/dist/ionicons/svg/md-brush.svg":68,
         "ionicons/dist/ionicons/svg/md-bug.svg":66,
         "ionicons/dist/ionicons/svg/md-build.svg":68,
         "ionicons/dist/ionicons/svg/md-bulb.svg":67,
         "ionicons/dist/ionicons/svg/md-bus.svg":66,
         "ionicons/dist/ionicons/svg/md-business.svg":71,
         "ionicons/dist/ionicons/svg/md-cafe.svg":67,
         "ionicons/dist/ionicons/svg/md-calculator.svg":73,
         "ionicons/dist/ionicons/svg/md-calendar.svg":71,
         "ionicons/dist/ionicons/svg/md-call.svg":67,
         "ionicons/dist/ionicons/svg/md-camera.svg":69,
         "ionicons/dist/ionicons/svg/md-car.svg":66,
         "ionicons/dist/ionicons/svg/md-card.svg":67,
         "ionicons/dist/ionicons/svg/md-cart.svg":67,
         "ionicons/dist/ionicons/svg/md-cash.svg":67,
         "ionicons/dist/ionicons/svg/md-cellular.svg":71,
         "ionicons/dist/ionicons/svg/md-chatboxes.svg":72,
         "ionicons/dist/ionicons/svg/md-chatbubbles.svg":74,
         "ionicons/dist/ionicons/svg/md-checkbox-outline.svg":79,
         "ionicons/dist/ionicons/svg/md-checkbox.svg":71,
         "ionicons/dist/ionicons/svg/md-checkmark-circle-outline.svg":87,
         "ionicons/dist/ionicons/svg/md-checkmark-circle.svg":79,
         "ionicons/dist/ionicons/svg/md-checkmark.svg":72,
         "ionicons/dist/ionicons/svg/md-clipboard.svg":72,
         "ionicons/dist/ionicons/svg/md-clock.svg":68,
         "ionicons/dist/ionicons/svg/md-close-circle-outline.svg":83,
         "ionicons/dist/ionicons/svg/md-close-circle.svg":75,
         "ionicons/dist/ionicons/svg/md-close.svg":68,
         "ionicons/dist/ionicons/svg/md-cloud-circle.svg":75,
         "ionicons/dist/ionicons/svg/md-cloud-done.svg":73,
         "ionicons/dist/ionicons/svg/md-cloud-download.svg":77,
         "ionicons/dist/ionicons/svg/md-cloud-outline.svg":76,
         "ionicons/dist/ionicons/svg/md-cloud-upload.svg":75,
         "ionicons/dist/ionicons/svg/md-cloud.svg":68,
         "ionicons/dist/ionicons/svg/md-cloudy-night.svg":75,
         "ionicons/dist/ionicons/svg/md-cloudy.svg":69,
         "ionicons/dist/ionicons/svg/md-code-download.svg":76,
         "ionicons/dist/ionicons/svg/md-code-working.svg":75,
         "ionicons/dist/ionicons/svg/md-code.svg":67,
         "ionicons/dist/ionicons/svg/md-cog.svg":66,
         "ionicons/dist/ionicons/svg/md-color-fill.svg":73,
         "ionicons/dist/ionicons/svg/md-color-filter.svg":75,
         "ionicons/dist/ionicons/svg/md-color-palette.svg":76,
         "ionicons/dist/ionicons/svg/md-color-wand.svg":73,
         "ionicons/dist/ionicons/svg/md-compass.svg":70,
         "ionicons/dist/ionicons/svg/md-construct.svg":72,
         "ionicons/dist/ionicons/svg/md-contact.svg":70,
         "ionicons/dist/ionicons/svg/md-contacts.svg":71,
         "ionicons/dist/ionicons/svg/md-contract.svg":71,
         "ionicons/dist/ionicons/svg/md-contrast.svg":71,
         "ionicons/dist/ionicons/svg/md-copy.svg":67,
         "ionicons/dist/ionicons/svg/md-create.svg":69,
         "ionicons/dist/ionicons/svg/md-crop.svg":67,
         "ionicons/dist/ionicons/svg/md-cube.svg":67,
         "ionicons/dist/ionicons/svg/md-cut.svg":66,
         "ionicons/dist/ionicons/svg/md-desktop.svg":70,
         "ionicons/dist/ionicons/svg/md-disc.svg":67,
         "ionicons/dist/ionicons/svg/md-document.svg":71,
         "ionicons/dist/ionicons/svg/md-done-all.svg":71,
         "ionicons/dist/ionicons/svg/md-download.svg":71,
         "ionicons/dist/ionicons/svg/md-easel.svg":68,
         "ionicons/dist/ionicons/svg/md-egg.svg":66,
         "ionicons/dist/ionicons/svg/md-exit.svg":67,
         "ionicons/dist/ionicons/svg/md-expand.svg":69,
         "ionicons/dist/ionicons/svg/md-eye-off.svg":70,
         "ionicons/dist/ionicons/svg/md-eye.svg":66,
         "ionicons/dist/ionicons/svg/md-fastforward.svg":74,
         "ionicons/dist/ionicons/svg/md-female.svg":69,
         "ionicons/dist/ionicons/svg/md-filing.svg":69,
         "ionicons/dist/ionicons/svg/md-film.svg":67,
         "ionicons/dist/ionicons/svg/md-finger-print.svg":75,
         "ionicons/dist/ionicons/svg/md-fitness.svg":70,
         "ionicons/dist/ionicons/svg/md-flag.svg":67,
         "ionicons/dist/ionicons/svg/md-flame.svg":68,
         "ionicons/dist/ionicons/svg/md-flash-off.svg":72,
         "ionicons/dist/ionicons/svg/md-flash.svg":68,
         "ionicons/dist/ionicons/svg/md-flashlight.svg":73,
         "ionicons/dist/ionicons/svg/md-flask.svg":68,
         "ionicons/dist/ionicons/svg/md-flower.svg":69,
         "ionicons/dist/ionicons/svg/md-folder-open.svg":74,
         "ionicons/dist/ionicons/svg/md-folder.svg":69,
         "ionicons/dist/ionicons/svg/md-football.svg":71,
         "ionicons/dist/ionicons/svg/md-funnel.svg":69,
         "ionicons/dist/ionicons/svg/md-gift.svg":67,
         "ionicons/dist/ionicons/svg/md-git-branch.svg":73,
         "ionicons/dist/ionicons/svg/md-git-commit.svg":73,
         "ionicons/dist/ionicons/svg/md-git-compare.svg":74,
         "ionicons/dist/ionicons/svg/md-git-merge.svg":72,
         "ionicons/dist/ionicons/svg/md-git-network.svg":74,
         "ionicons/dist/ionicons/svg/md-git-pull-request.svg":79,
         "ionicons/dist/ionicons/svg/md-glasses.svg":70,
         "ionicons/dist/ionicons/svg/md-globe.svg":68,
         "ionicons/dist/ionicons/svg/md-grid.svg":67,
         "ionicons/dist/ionicons/svg/md-hammer.svg":69,
         "ionicons/dist/ionicons/svg/md-hand.svg":67,
         "ionicons/dist/ionicons/svg/md-happy.svg":68,
         "ionicons/dist/ionicons/svg/md-headset.svg":70,
         "ionicons/dist/ionicons/svg/md-heart-dislike.svg":76,
         "ionicons/dist/ionicons/svg/md-heart-empty.svg":74,
         "ionicons/dist/ionicons/svg/md-heart-half.svg":73,
         "ionicons/dist/ionicons/svg/md-heart.svg":68,
         "ionicons/dist/ionicons/svg/md-help-buoy.svg":72,
         "ionicons/dist/ionicons/svg/md-help-circle-outline.svg":82,
         "ionicons/dist/ionicons/svg/md-help-circle.svg":74,
         "ionicons/dist/ionicons/svg/md-help.svg":67,
         "ionicons/dist/ionicons/svg/md-home.svg":67,
         "ionicons/dist/ionicons/svg/md-hourglass.svg":72,
         "ionicons/dist/ionicons/svg/md-ice-cream.svg":72,
         "ionicons/dist/ionicons/svg/md-image.svg":68,
         "ionicons/dist/ionicons/svg/md-images.svg":69,
         "ionicons/dist/ionicons/svg/md-infinite.svg":71,
         "ionicons/dist/ionicons/svg/md-information-circle-outline.svg":89,
         "ionicons/dist/ionicons/svg/md-information-circle.svg":81,
         "ionicons/dist/ionicons/svg/md-information.svg":74,
         "ionicons/dist/ionicons/svg/md-jet.svg":66,
         "ionicons/dist/ionicons/svg/md-journal.svg":70,
         "ionicons/dist/ionicons/svg/md-key.svg":66,
         "ionicons/dist/ionicons/svg/md-keypad.svg":69,
         "ionicons/dist/ionicons/svg/md-laptop.svg":69,
         "ionicons/dist/ionicons/svg/md-leaf.svg":67,
         "ionicons/dist/ionicons/svg/md-link.svg":67,
         "ionicons/dist/ionicons/svg/md-list-box.svg":71,
         "ionicons/dist/ionicons/svg/md-list.svg":67,
         "ionicons/dist/ionicons/svg/md-locate.svg":69,
         "ionicons/dist/ionicons/svg/md-lock.svg":67,
         "ionicons/dist/ionicons/svg/md-log-in.svg":69,
         "ionicons/dist/ionicons/svg/md-log-out.svg":70,
         "ionicons/dist/ionicons/svg/md-magnet.svg":69,
         "ionicons/dist/ionicons/svg/md-mail-open.svg":72,
         "ionicons/dist/ionicons/svg/md-mail-unread.svg":74,
         "ionicons/dist/ionicons/svg/md-mail.svg":67,
         "ionicons/dist/ionicons/svg/md-male.svg":67,
         "ionicons/dist/ionicons/svg/md-man.svg":66,
         "ionicons/dist/ionicons/svg/md-map.svg":66,
         "ionicons/dist/ionicons/svg/md-medal.svg":68,
         "ionicons/dist/ionicons/svg/md-medical.svg":70,
         "ionicons/dist/ionicons/svg/md-medkit.svg":69,
         "ionicons/dist/ionicons/svg/md-megaphone.svg":72,
         "ionicons/dist/ionicons/svg/md-menu.svg":67,
         "ionicons/dist/ionicons/svg/md-mic-off.svg":70,
         "ionicons/dist/ionicons/svg/md-mic.svg":66,
         "ionicons/dist/ionicons/svg/md-microphone.svg":73,
         "ionicons/dist/ionicons/svg/md-moon.svg":67,
         "ionicons/dist/ionicons/svg/md-more.svg":67,
         "ionicons/dist/ionicons/svg/md-move.svg":67,
         "ionicons/dist/ionicons/svg/md-musical-note.svg":75,
         "ionicons/dist/ionicons/svg/md-musical-notes.svg":76,
         "ionicons/dist/ionicons/svg/md-navigate.svg":71,
         "ionicons/dist/ionicons/svg/md-notifications-off.svg":80,
         "ionicons/dist/ionicons/svg/md-notifications-outline.svg":84,
         "ionicons/dist/ionicons/svg/md-notifications.svg":76,
         "ionicons/dist/ionicons/svg/md-nuclear.svg":70,
         "ionicons/dist/ionicons/svg/md-nutrition.svg":72,
         "ionicons/dist/ionicons/svg/md-open.svg":67,
         "ionicons/dist/ionicons/svg/md-options.svg":70,
         "ionicons/dist/ionicons/svg/md-outlet.svg":69,
         "ionicons/dist/ionicons/svg/md-paper-plane.svg":74,
         "ionicons/dist/ionicons/svg/md-paper.svg":68,
         "ionicons/dist/ionicons/svg/md-partly-sunny.svg":75,
         "ionicons/dist/ionicons/svg/md-pause.svg":68,
         "ionicons/dist/ionicons/svg/md-paw.svg":66,
         "ionicons/dist/ionicons/svg/md-people.svg":69,
         "ionicons/dist/ionicons/svg/md-person-add.svg":73,
         "ionicons/dist/ionicons/svg/md-person.svg":69,
         "ionicons/dist/ionicons/svg/md-phone-landscape.svg":78,
         "ionicons/dist/ionicons/svg/md-phone-portrait.svg":77,
         "ionicons/dist/ionicons/svg/md-photos.svg":69,
         "ionicons/dist/ionicons/svg/md-pie.svg":66,
         "ionicons/dist/ionicons/svg/md-pin.svg":66,
         "ionicons/dist/ionicons/svg/md-pint.svg":67,
         "ionicons/dist/ionicons/svg/md-pizza.svg":68,
         "ionicons/dist/ionicons/svg/md-planet.svg":69,
         "ionicons/dist/ionicons/svg/md-play-circle.svg":74,
         "ionicons/dist/ionicons/svg/md-play.svg":67,
         "ionicons/dist/ionicons/svg/md-podium.svg":69,
         "ionicons/dist/ionicons/svg/md-power.svg":68,
         "ionicons/dist/ionicons/svg/md-pricetag.svg":71,
         "ionicons/dist/ionicons/svg/md-pricetags.svg":72,
         "ionicons/dist/ionicons/svg/md-print.svg":68,
         "ionicons/dist/ionicons/svg/md-pulse.svg":68,
         "ionicons/dist/ionicons/svg/md-qr-scanner.svg":73,
         "ionicons/dist/ionicons/svg/md-quote.svg":68,
         "ionicons/dist/ionicons/svg/md-radio-button-off.svg":79,
         "ionicons/dist/ionicons/svg/md-radio-button-on.svg":78,
         "ionicons/dist/ionicons/svg/md-radio.svg":68,
         "ionicons/dist/ionicons/svg/md-rainy.svg":68,
         "ionicons/dist/ionicons/svg/md-recording.svg":72,
         "ionicons/dist/ionicons/svg/md-redo.svg":67,
         "ionicons/dist/ionicons/svg/md-refresh-circle.svg":77,
         "ionicons/dist/ionicons/svg/md-refresh.svg":70,
         "ionicons/dist/ionicons/svg/md-remove-circle-outline.svg":84,
         "ionicons/dist/ionicons/svg/md-remove-circle.svg":76,
         "ionicons/dist/ionicons/svg/md-remove.svg":69,
         "ionicons/dist/ionicons/svg/md-reorder.svg":70,
         "ionicons/dist/ionicons/svg/md-repeat.svg":69,
         "ionicons/dist/ionicons/svg/md-resize.svg":69,
         "ionicons/dist/ionicons/svg/md-restaurant.svg":73,
         "ionicons/dist/ionicons/svg/md-return-left.svg":74,
         "ionicons/dist/ionicons/svg/md-return-right.svg":75,
         "ionicons/dist/ionicons/svg/md-reverse-camera.svg":77,
         "ionicons/dist/ionicons/svg/md-rewind.svg":69,
         "ionicons/dist/ionicons/svg/md-ribbon.svg":69,
         "ionicons/dist/ionicons/svg/md-rocket.svg":69,
         "ionicons/dist/ionicons/svg/md-rose.svg":67,
         "ionicons/dist/ionicons/svg/md-sad.svg":66,
         "ionicons/dist/ionicons/svg/md-save.svg":67,
         "ionicons/dist/ionicons/svg/md-school.svg":69,
         "ionicons/dist/ionicons/svg/md-search.svg":69,
         "ionicons/dist/ionicons/svg/md-send.svg":67,
         "ionicons/dist/ionicons/svg/md-settings.svg":71,
         "ionicons/dist/ionicons/svg/md-share-alt.svg":72,
         "ionicons/dist/ionicons/svg/md-share.svg":68,
         "ionicons/dist/ionicons/svg/md-shirt.svg":68,
         "ionicons/dist/ionicons/svg/md-shuffle.svg":70,
         "ionicons/dist/ionicons/svg/md-skip-backward.svg":76,
         "ionicons/dist/ionicons/svg/md-skip-forward.svg":75,
         "ionicons/dist/ionicons/svg/md-snow.svg":67,
         "ionicons/dist/ionicons/svg/md-speedometer.svg":74,
         "ionicons/dist/ionicons/svg/md-square-outline.svg":77,
         "ionicons/dist/ionicons/svg/md-square.svg":69,
         "ionicons/dist/ionicons/svg/md-star-half.svg":72,
         "ionicons/dist/ionicons/svg/md-star-outline.svg":75,
         "ionicons/dist/ionicons/svg/md-star.svg":67,
         "ionicons/dist/ionicons/svg/md-stats.svg":68,
         "ionicons/dist/ionicons/svg/md-stopwatch.svg":72,
         "ionicons/dist/ionicons/svg/md-subway.svg":69,
         "ionicons/dist/ionicons/svg/md-sunny.svg":68,
         "ionicons/dist/ionicons/svg/md-swap.svg":67,
         "ionicons/dist/ionicons/svg/md-switch.svg":69,
         "ionicons/dist/ionicons/svg/md-sync.svg":67,
         "ionicons/dist/ionicons/svg/md-tablet-landscape.svg":79,
         "ionicons/dist/ionicons/svg/md-tablet-portrait.svg":78,
         "ionicons/dist/ionicons/svg/md-tennisball.svg":73,
         "ionicons/dist/ionicons/svg/md-text.svg":67,
         "ionicons/dist/ionicons/svg/md-thermometer.svg":74,
         "ionicons/dist/ionicons/svg/md-thumbs-down.svg":74,
         "ionicons/dist/ionicons/svg/md-thumbs-up.svg":72,
         "ionicons/dist/ionicons/svg/md-thunderstorm.svg":75,
         "ionicons/dist/ionicons/svg/md-time.svg":67,
         "ionicons/dist/ionicons/svg/md-timer.svg":68,
         "ionicons/dist/ionicons/svg/md-today.svg":68,
         "ionicons/dist/ionicons/svg/md-train.svg":68,
         "ionicons/dist/ionicons/svg/md-transgender.svg":74,
         "ionicons/dist/ionicons/svg/md-trash.svg":68,
         "ionicons/dist/ionicons/svg/md-trending-down.svg":76,
         "ionicons/dist/ionicons/svg/md-trending-up.svg":74,
         "ionicons/dist/ionicons/svg/md-trophy.svg":69,
         "ionicons/dist/ionicons/svg/md-tv.svg":65,
         "ionicons/dist/ionicons/svg/md-umbrella.svg":71,
         "ionicons/dist/ionicons/svg/md-undo.svg":67,
         "ionicons/dist/ionicons/svg/md-unlock.svg":69,
         "ionicons/dist/ionicons/svg/md-videocam.svg":71,
         "ionicons/dist/ionicons/svg/md-volume-high.svg":74,
         "ionicons/dist/ionicons/svg/md-volume-low.svg":73,
         "ionicons/dist/ionicons/svg/md-volume-mute.svg":74,
         "ionicons/dist/ionicons/svg/md-volume-off.svg":73,
         "ionicons/dist/ionicons/svg/md-walk.svg":67,
         "ionicons/dist/ionicons/svg/md-wallet.svg":69,
         "ionicons/dist/ionicons/svg/md-warning.svg":70,
         "ionicons/dist/ionicons/svg/md-watch.svg":68,
         "ionicons/dist/ionicons/svg/md-water.svg":68,
         "ionicons/dist/ionicons/svg/md-wifi.svg":67,
         "ionicons/dist/ionicons/svg/md-wine.svg":67,
         "ionicons/dist/ionicons/svg/md-woman.svg":81,
         "babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js":83,
         "babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js":102,
         "babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArray.js":123,
         "babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js":82,
         "path-to-regexp/index.js":3165,
         "babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread.js":410,
         "@ionic/core/dist/esm/es5/ionic.core.js":28492,
         "ionicons/dist/esm/es5/build/chunk-1ca7e569.js":14648,
         "ionicons/dist/ionicons/svg/index.esm.js":13674,
         "@ionic/core/dist/esm/es5/ionic.components.js":24319,
         "babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js":95,
         "babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js":227,
         "babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/typeof.js":459,
         "babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js":73,
         "babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js":121,
         "babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js":131,
         "babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js":94,
         "babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js":274,
         "@ionic/react/dist/components/utils/index.js":1033,
         "@ionic/react/dist/components/createComponent.js":1016,
         "@ionic/react/dist/components/createControllerComponent.js":1700,
         "@ionic/react/dist/components/IonAlert.js":43,
         "@ionic/react/dist/components/IonLoading.js":43,
         "@ionic/react/dist/components/IonToast.js":39,
         "@ionic/react/dist/components/createOverlayComponent.js":1845,
         "@ionic/react/dist/components/IonActionSheet.js":57,
         "@ionic/react/dist/components/IonModal.js":39,
         "@ionic/react/dist/components/IonPopover.js":43,
         "@ionic/react/dist/components/IonPage.js":643,
         "@ionic/core/dist/esm/es5/ionic.define.js":32,
         "@ionic/react/dist/components/navigation/IonTabBar.js":1310,
         "@ionic/react/dist/components/navigation/IonRouterOutlet.js":3176,
         "@ionic/react/dist/components/index.js":1524,
         "@ionic/react/dist/index.js":295,
         "object-assign/index.js":946,
         "react-is/index.js":47,
         "babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js":363,
         "react-router-last-location/dist/index.js":3600,
         "@ionic/core/dist/esm/es5/ionic.global.js":3085,
         "create-react-context/lib/index.js":188,
         "hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js":979,
         "lodash-es/_freeGlobal.js":118,
         "react/cjs/react.production.min.js":6490,
         "react-dom/cjs/react-dom.production.min.js":106133,
         "scheduler/index.js":48,
         "scheduler/cjs/scheduler.production.min.js":4643,
         "regenerator-runtime/runtime-module.js":366,
         "regenerator-runtime/runtime.js":6334,
         "create-react-context/lib/implementation.js":2686,
         "prop-types/factoryWithThrowingShims.js":652,
         "prop-types/lib/ReactPropTypesSecret.js":88,
         "gud/index.js":136,
         "fbjs/lib/warning.js":55,
         "fbjs/lib/emptyFunction.js":265,
         "path-to-regexp/node_modules/isarray/index.js":126,
         "react-is/cjs/react-is.production.min.js":1900,
         "<unmapped>":132
      }
   },
   {
      "bundle":"159.07b8221e.chunk.js",
      "totalBytes":8807,
      "unmappedBytes":138,
      "files":{
         "build/tg1vwd7z.entry.js":6514,
         "polyfills/tslib.js":1763,
         "build/chunk-81780b86.js":392,
         "<unmapped>":138
      }
   },
   {
      "bundle":"16.51d23b1b.chunk.js",
      "totalBytes":697764,
      "unmappedBytes":177,
      "files":{
         "@amcharts/amcharts4/.internal/core/elements/PopupCSS.js":1384,
         "@amcharts/amcharts4/.internal/core/elements/Popup.js":11336,
         "@amcharts/amcharts4/.internal/core/defs/SVGDefaults.js":275,
         "@amcharts/amcharts4/.internal/core/rendering/Group.js":967,
         "@amcharts/amcharts4/.internal/core/interaction/InteractionObject.js":7538,
         "@amcharts/amcharts4/.internal/core/interaction/InteractionKeyboardObject.js":1062,
         "@amcharts/amcharts4/.internal/core/interaction/Inertia.js":1125,
         "@amcharts/amcharts4/.internal/core/utils/Time.js":115,
         "@amcharts/amcharts4/.internal/core/formatters/NumberFormatter.js":7610,
         "@amcharts/amcharts4/.internal/core/export/Export.js":36404,
         "@amcharts/amcharts4/.internal/core/data/DataSource.js":4848,
         "@amcharts/amcharts4/.internal/core/elements/Line.js":1747,
         "@amcharts/amcharts4/.internal/core/elements/PointedRectangle.js":1579,
         "@amcharts/amcharts4/.internal/core/elements/PointedShape.js":1233,
         "@amcharts/amcharts4/.internal/core/elements/Polyarc.js":1441,
         "@amcharts/amcharts4/.internal/core/elements/Polygon.js":2376,
         "@amcharts/amcharts4/.internal/core/utils/Morpher.js":5083,
         "@amcharts/amcharts4/.internal/core/rendering/filters/DropShadowFilter.js":2153,
         "@amcharts/amcharts4/.internal/core/utils/ColorSet.js":3276,
         "@amcharts/amcharts4/.internal/core/export/ExportCSS.js":2447,
         "@amcharts/amcharts4/.internal/core/export/ExportMenu.js":11427,
         "@amcharts/amcharts4/.internal/core/utils/Net.js":826,
         "css-element-queries/src/ResizeSensor.js":3495,
         "polylabel/index.js":1575,
         "tinyqueue/index.js":1540,
         "@amcharts/amcharts4/.internal/charts/Legend.js":7822,
         "@amcharts/amcharts4/.internal/charts/axes/AxisBreak.js":3413,
         "@amcharts/amcharts4/.internal/charts/axes/Axis.js":15698,
         "@amcharts/amcharts4/.internal/charts/axes/AxisLine.js":314,
         "@amcharts/amcharts4/.internal/charts/axes/AxisFill.js":1283,
         "@amcharts/amcharts4/.internal/charts/axes/Grid.js":778,
         "@amcharts/amcharts4/.internal/charts/axes/AxisLabel.js":723,
         "@amcharts/amcharts4/.internal/charts/elements/Tick.js":477,
         "@amcharts/amcharts4/.internal/charts/axes/AxisTick.js":773,
         "@amcharts/amcharts4/.internal/charts/axes/AxisRenderer.js":7904,
         "@amcharts/amcharts4/.internal/charts/axes/AxisRendererY.js":4392,
         "@amcharts/amcharts4/.internal/charts/axes/ValueAxisBreak.js":519,
         "@amcharts/amcharts4/.internal/charts/axes/ValueAxis.js":16656,
         "@amcharts/amcharts4/.internal/charts/axes/AxisRendererX.js":4214,
         "@amcharts/amcharts4/.internal/charts/elements/HeatLegend.js":6010,
         "@amcharts/amcharts4/.internal/charts/Chart.js":3737,
         "@amcharts/amcharts4/.internal/charts/elements/Bullet.js":1597,
         "@amcharts/amcharts4/.internal/charts/series/Series.js":12411,
         "@amcharts/amcharts4/.internal/charts/types/SerialChart.js":2270,
         "d3-geo/src/adder.js":317,
         "d3-geo/src/math.js":410,
         "d3-geo/src/noop.js":15,
         "d3-geo/src/stream.js":1050,
         "d3-geo/src/area.js":568,
         "d3-geo/src/cartesian.js":431,
         "d3-geo/src/bounds.js":1772,
         "d3-geo/src/centroid.js":4,
         "d3-geo/src/compose.js":163,
         "d3-geo/src/rotation.js":770,
         "d3-geo/src/circle.js":301,
         "d3-geo/src/clip/buffer.js":228,
         "d3-geo/src/pointEqual.js":60,
         "d3-geo/src/clip/rejoin.js":924,
         "d3-geo/src/polygonContains.js":566,
         "d3-array/src/ascending.js":49,
         "d3-array/src/bisect.js":29,
         "d3-array/src/bisector.js":315,
         "d3-array/src/cross.js":4,
         "d3-array/src/array.js":35,
         "d3-array/src/range.js":168,
         "d3-array/src/ticks.js":41,
         "d3-array/src/threshold/sturges.js":4,
         "d3-array/src/merge.js":150,
         "d3-array/src/zip.js":4,
         "d3-geo/src/clip/index.js":1190,
         "d3-geo/src/clip/antimeridian.js":919,
         "d3-geo/src/clip/circle.js":1444,
         "d3-geo/src/clip/line.js":528,
         "d3-geo/src/clip/rectangle.js":1619,
         "d3-geo/src/clip/extent.js":4,
         "d3-geo/src/length.js":409,
         "d3-geo/src/distance.js":96,
         "d3-geo/src/graticule.js":1646,
         "d3-geo/src/interpolate.js":346,
         "d3-geo/src/path/area.js":406,
         "d3-geo/src/identity.js":25,
         "d3-geo/src/path/bounds.js":233,
         "d3-geo/src/path/centroid.js":821,
         "d3-geo/src/path/context.js":532,
         "d3-geo/src/path/measure.js":350,
         "d3-geo/src/path/string.js":800,
         "d3-geo/src/transform.js":410,
         "d3-geo/src/projection/fit.js":771,
         "d3-geo/src/projection/resample.js":1103,
         "d3-geo/src/projection/index.js":2085,
         "d3-geo/src/projection/conic.js":140,
         "d3-geo/src/projection/conicEqualArea.js":330,
         "d3-geo/src/projection/cylindricalEqualArea.js":113,
         "d3-geo/src/projection/albers.js":117,
         "d3-geo/src/projection/albersUsa.js":1811,
         "d3-geo/src/projection/azimuthal.js":203,
         "d3-geo/src/projection/azimuthalEqualArea.js":153,
         "d3-geo/src/projection/azimuthalEquidistant.js":81,
         "d3-geo/src/projection/mercator.js":792,
         "d3-geo/src/projection/equirectangular.js":89,
         "d3-geo/src/projection/conicEquidistant.js":4,
         "d3-geo/src/projection/equalEarth.js":437,
         "d3-geo/src/projection/gnomonic.js":82,
         "d3-geo/src/projection/naturalEarth1.js":484,
         "d3-geo/src/projection/orthographic.js":123,
         "d3-geo/src/projection/stereographic.js":168,
         "d3-geo/src/projection/transverseMercator.js":100,
         "@amcharts/amcharts4/.internal/charts/map/MapSeries.js":5706,
         "@amcharts/amcharts4/.internal/charts/map/MapObject.js":1442,
         "@amcharts/amcharts4/.internal/charts/map/MapImage.js":1108,
         "@amcharts/amcharts4/.internal/charts/map/MapUtils.js":952,
         "@amcharts/amcharts4/.internal/charts/map/MapPolygon.js":3537,
         "@amcharts/amcharts4/.internal/charts/map/MapPolygonSeries.js":3880,
         "@amcharts/amcharts4/.internal/charts/map/projections/Projection.js":2735,
         "d3-geo/src/path/index.js":714,
         "@amcharts/amcharts4/.internal/charts/map/SmallMap.js":3099,
         "@amcharts/amcharts4/.internal/charts/map/Geo.js":595,
         "@amcharts/amcharts4/.internal/charts/map/MapLineObject.js":1130,
         "@amcharts/amcharts4/.internal/charts/map/MapImageSeries.js":3585,
         "@amcharts/amcharts4/.internal/charts/map/MapLine.js":4837,
         "@amcharts/amcharts4/.internal/charts/map/MapLineSeries.js":3588,
         "@amcharts/amcharts4/.internal/charts/map/Graticule.js":185,
         "@amcharts/amcharts4/.internal/charts/map/GraticuleSeries.js":2083,
         "@amcharts/amcharts4/.internal/charts/types/MapChart.js":16934,
         "@amcharts/amcharts4/.internal/charts/map/MapSpline.js":401,
         "@amcharts/amcharts4/.internal/charts/map/MapArc.js":336,
         "@amcharts/amcharts4/.internal/charts/map/MapSplineSeries.js":464,
         "@amcharts/amcharts4/.internal/charts/map/MapArcSeries.js":466,
         "@amcharts/amcharts4/.internal/charts/map/ZoomControl.js":4365,
         "@amcharts/amcharts4/.internal/charts/map/projections/Mercator.js":143,
         "d3-geo-projection/src/math.js":680,
         "d3-geo-projection/src/aitoff.js":470,
         "d3-geo-projection/src/august.js":362,
         "d3-geo-projection/src/baker.js":351,
         "d3-geo-projection/src/hammer.js":117,
         "d3-geo-projection/src/mollweide.js":278,
         "d3-geo-projection/src/boggs.js":307,
         "d3-geo-projection/src/sinusoidal.js":78,
         "d3-geo-projection/src/bromley.js":14,
         "d3-geo-projection/src/collignon.js":140,
         "d3-geo-projection/src/craig.js":4,
         "d3-geo-projection/src/craster.js":155,
         "d3-geo-projection/src/cylindricalEqualArea.js":116,
         "d3-geo-projection/src/eckert1.js":144,
         "d3-geo-projection/src/eckert2.js":182,
         "d3-geo-projection/src/eckert3.js":174,
         "d3-geo-projection/src/eckert4.js":306,
         "d3-geo-projection/src/eckert5.js":131,
         "d3-geo-projection/src/eckert6.js":273,
         "d3-geo-projection/src/eisenlohr.js":913,
         "d3-geo-projection/src/fahey.js":152,
         "d3-geo-projection/src/foucaut.js":152,
         "d3-geo-projection/src/newton.js":158,
         "d3-geo-projection/src/gingery.js":4,
         "d3-geo-projection/src/ginzburgPolyconic.js":693,
         "d3-geo-projection/src/ginzburg4.js":58,
         "d3-geo-projection/src/ginzburg5.js":65,
         "d3-geo-projection/src/ginzburg6.js":50,
         "d3-geo-projection/src/ginzburg8.js":317,
         "d3-geo-projection/src/ginzburg9.js":59,
         "d3-geo-projection/src/gringorten.js":1478,
         "d3-geo-projection/src/elliptic.js":1222,
         "d3-geo-projection/src/guyou.js":555,
         "d3-geo-projection/src/healpix.js":6,
         "d3-geo-projection/src/hill.js":4,
         "d3-geo-projection/src/sinuMollweide.js":171,
         "d3-geo-projection/src/homolosine.js":156,
         "d3-geo-projection/src/kavrayskiy7.js":108,
         "d3-geo-projection/src/lagrange.js":4,
         "d3-geo-projection/src/larrivee.js":436,
         "d3-geo-projection/src/laskowski.js":652,
         "d3-geo-projection/src/littrow.js":163,
         "d3-geo-projection/src/miller.js":156,
         "d3-geo-projection/src/mtFlatPolarParabolic.js":204,
         "d3-geo-projection/src/mtFlatPolarQuartic.js":297,
         "d3-geo-projection/src/mtFlatPolarSinusoidal.js":292,
         "d3-geo-projection/src/naturalEarth2.js":416,
         "d3-geo-projection/src/nellHammer.js":192,
         "d3-geo-projection/src/nicolosi.js":509,
         "d3-geo-projection/src/patterson.js":336,
         "d3-geo-projection/src/polyconic.js":345,
         "d3-geo-projection/src/polyhedral/octahedron.js":177,
         "d3-geo-projection/src/polyhedral/collignon.js":115,
         "d3-geo-projection/src/rectangularPolyconic.js":4,
         "d3-geo-projection/src/robinson.js":1018,
         "d3-geo-projection/src/times.js":172,
         "d3-geo-projection/src/vanDerGrinten.js":613,
         "d3-geo-projection/src/vanDerGrinten2.js":414,
         "d3-geo-projection/src/vanDerGrinten3.js":319,
         "d3-geo-projection/src/vanDerGrinten4.js":815,
         "d3-geo-projection/src/wagner.js":4,
         "d3-geo-projection/src/wagner4.js":63,
         "d3-geo-projection/src/wagner6.js":106,
         "d3-geo-projection/src/wagner7.js":254,
         "d3-geo-projection/src/wiechel.js":249,
         "d3-geo-projection/src/winkel3.js":449,
         "@amcharts/amcharts4/.internal/charts/map/projections/Miller.js":137,
         "@amcharts/amcharts4/.internal/charts/map/projections/Eckert6.js":142,
         "@amcharts/amcharts4/.internal/charts/map/projections/Orthographic.js":147,
         "@amcharts/amcharts4/.internal/charts/map/projections/Stereographic.js":148,
         "@amcharts/amcharts4/.internal/charts/map/projections/Albers.js":141,
         "@amcharts/amcharts4/.internal/charts/map/projections/AlbersUsa.js":144,
         "@amcharts/amcharts4/.internal/charts/map/projections/NaturalEarth1.js":148,
         "@amcharts/amcharts4/.internal/charts/map/projections/AzimuthalEqualArea.js":153,
         "@amcharts/amcharts4/.internal/charts/map/projections/EqualEarth.js":145,
         "@amcharts/amcharts4/maps.js":331,
         "@amcharts/amcharts4/.internal/core/elements/Ellipse.js":676,
         "@amcharts/amcharts4/.internal/core/elements/Image.js":1379,
         "@amcharts/amcharts4/.internal/core/elements/Slice.js":3961,
         "@amcharts/amcharts4/.internal/core/elements/Preloader.js":2101,
         "@amcharts/amcharts4/.internal/core/elements/ResizeButton.js":814,
         "@amcharts/amcharts4/.internal/core/elements/Scrollbar.js":11728,
         "@amcharts/amcharts4/.internal/core/elements/Slider.js":762,
         "@amcharts/amcharts4/.internal/core/elements/TextLink.js":447,
         "@amcharts/amcharts4/.internal/core/elements/Trapezoid.js":2194,
         "@amcharts/amcharts4/.internal/core/elements/WavedCircle.js":1867,
         "@amcharts/amcharts4/.internal/core/elements/ZoomOutButton.js":848,
         "@amcharts/amcharts4/.internal/core/elements/PlayButton.js":1182,
         "@amcharts/amcharts4/.internal/core/rendering/fills/ColorModifier.js":207,
         "@amcharts/amcharts4/.internal/core/rendering/fills/GradientModifier.js":1720,
         "@amcharts/amcharts4/.internal/core/rendering/fills/LinearGradientModifier.js":322,
         "@amcharts/amcharts4/.internal/core/elements/3d/Cone.js":2079,
         "@amcharts/amcharts4/.internal/core/rendering/filters/LightenFilter.js":573,
         "@amcharts/amcharts4/.internal/core/elements/3d/Rectangle3D.js":2173,
         "@amcharts/amcharts4/.internal/core/elements/3d/Slice3D.js":3141,
         "@amcharts/amcharts4/.internal/core/rendering/fills/RadialGradientModifier.js":315,
         "@amcharts/amcharts4/.internal/core/rendering/fills/LinePattern.js":275,
         "@amcharts/amcharts4/.internal/core/rendering/fills/RectPattern.js":754,
         "@amcharts/amcharts4/.internal/core/rendering/filters/ColorizeFilter.js":936,
         "@amcharts/amcharts4/.internal/core/rendering/filters/DesaturateFilter.js":579,
         "@amcharts/amcharts4/.internal/core/rendering/filters/BlurFilter.js":560,
         "@amcharts/amcharts4/.internal/core/rendering/filters/FocusFilter.js":1913,
         "@amcharts/amcharts4/.internal/core/utils/Plugin.js":348,
         "@amcharts/amcharts4/.internal/core/elements/AmChartsLogo.js":1227,
         "@amcharts/amcharts4/.internal/core/utils/Instance.js":1930,
         "@amcharts/amcharts4/core.js":136,
         "tslib/tslib.es6.js":2400,
         "@amcharts/amcharts4/.internal/core/Registry.js":2628,
         "@amcharts/amcharts4/.internal/core/utils/Type.js":1380,
         "@amcharts/amcharts4/.internal/core/utils/Math.js":3548,
         "@amcharts/amcharts4/.internal/core/utils/Disposer.js":1136,
         "@amcharts/amcharts4/.internal/core/utils/Array.js":1904,
         "@amcharts/amcharts4/.internal/core/utils/List.js":8102,
         "@amcharts/amcharts4/.internal/core/utils/Utils.js":7492,
         "@amcharts/amcharts4/.internal/core/utils/Iterator.js":2084,
         "@amcharts/amcharts4/.internal/core/Container.js":17437,
         "@amcharts/amcharts4/.internal/core/utils/Percent.js":536,
         "@amcharts/amcharts4/.internal/core/Base.js":7464,
         "@amcharts/amcharts4/.internal/core/utils/InterfaceColorSet.js":1324,
         "@amcharts/amcharts4/.internal/core/Sprite.js":80218,
         "@amcharts/amcharts4/.internal/core/utils/Color.js":2055,
         "@amcharts/amcharts4/.internal/core/utils/DOM.js":3746,
         "@amcharts/amcharts4/.internal/core/utils/Object.js":912,
         "@amcharts/amcharts4/.internal/core/rendering/Path.js":2593,
         "@amcharts/amcharts4/.internal/core/utils/Dictionary.js":3797,
         "@amcharts/amcharts4/.internal/core/utils/Adapter.js":1838,
         "@amcharts/amcharts4/.internal/core/utils/Strings.js":320,
         "@amcharts/amcharts4/.internal/core/utils/Animation.js":5196,
         "@amcharts/amcharts4/.internal/core/interaction/Interaction.js":27747,
         "@amcharts/amcharts4/.internal/core/utils/Responsive.js":4790,
         "@amcharts/amcharts4/.internal/core/utils/AsyncPending.js":782,
         "@amcharts/amcharts4/.internal/core/utils/Ease.js":357,
         "@amcharts/amcharts4/.internal/core/utils/EventDispatcher.js":4288,
         "@amcharts/amcharts4/.internal/core/utils/Keyboard.js":1000,
         "@amcharts/amcharts4/.internal/core/elements/Label.js":13706,
         "@amcharts/amcharts4/.internal/core/System.js":4556,
         "@amcharts/amcharts4/.internal/core/rendering/Paper.js":1316,
         "@amcharts/amcharts4/.internal/core/Options.js":222,
         "@amcharts/amcharts4/lang/en.js":4381,
         "@amcharts/amcharts4/.internal/core/utils/Language.js":1846,
         "@amcharts/amcharts4/.internal/core/utils/SortedList.js":4120,
         "@amcharts/amcharts4/.internal/core/formatters/TextFormatter.js":3439,
         "@amcharts/amcharts4/.internal/core/elements/RoundedRectangle.js":2224,
         "@amcharts/amcharts4/.internal/core/rendering/filters/Filter.js":2083,
         "@amcharts/amcharts4/.internal/core/utils/Colors.js":6867,
         "@amcharts/amcharts4/.internal/core/rendering/fills/LinearGradient.js":1899,
         "@amcharts/amcharts4/.internal/core/Component.js":16377,
         "@amcharts/amcharts4/.internal/core/DataItem.js":9303,
         "@amcharts/amcharts4/.internal/core/elements/Button.js":1820,
         "@amcharts/amcharts4/.internal/core/interaction/Mouse.js":645,
         "@amcharts/amcharts4/.internal/core/formatters/DateFormatter.js":12432,
         "@amcharts/amcharts4/.internal/core/rendering/Smoothing.js":1945,
         "@amcharts/amcharts4/.internal/core/utils/String.js":379,
         "@amcharts/amcharts4/.internal/core/utils/Cache.js":697,
         "@amcharts/amcharts4/.internal/core/rendering/AMElement.js":3186,
         "@amcharts/amcharts4/.internal/core/rendering/fills/Pattern.js":5413,
         "@amcharts/amcharts4/.internal/core/rendering/fills/RadialGradient.js":2288,
         "@amcharts/amcharts4/.internal/core/elements/Rectangle.js":769,
         "@amcharts/amcharts4/.internal/core/elements/Circle.js":1012,
         "@amcharts/amcharts4/.internal/core/elements/Polyline.js":1435,
         "@amcharts/amcharts4/.internal/core/elements/Tooltip.js":6154,
         "@amcharts/amcharts4/.internal/core/elements/WavedLine.js":1143,
         "@amcharts/amcharts4/.internal/core/SpriteState.js":1963,
         "@amcharts/amcharts4/.internal/core/utils/Number.js":106,
         "@amcharts/amcharts4/.internal/core/utils/Order.js":99,
         "@amcharts/amcharts4/.internal/core/SpriteEvents.js":2273,
         "@amcharts/amcharts4/.internal/core/rendering/SVGContainer.js":2908,
         "@amcharts/amcharts4/.internal/core/interaction/InteractionObjectEvents.js":1511,
         "@amcharts/amcharts4/.internal/core/elements/Modal.js":256,
         "@amcharts/amcharts4/.internal/core/formatters/DurationFormatter.js":6578,
         "@amcharts/amcharts4/.internal/core/utils/Validatable.js":456,
         "@amcharts/amcharts4/.internal/core/data/DataLoader.js":1565,
         "@amcharts/amcharts4/.internal/core/data/CSVParser.js":1719,
         "@amcharts/amcharts4/.internal/core/data/DataParser.js":1293,
         "@amcharts/amcharts4/.internal/core/data/JSONParser.js":719,
         "@amcharts/amcharts4/.internal/core/elements/Polyspline.js":1293,
         "@amcharts/amcharts4/.internal/core/elements/Triangle.js":923,
         "@amcharts/amcharts4/.internal/core/elements/WavedRectangle.js":1554,
         "<unmapped>":177
      }
   },
   {
      "bundle":"160.0d4bb1eb.chunk.js",
      "totalBytes":8838,
      "unmappedBytes":138,
      "files":{
         "build/tg1vwd7z.sc.entry.js":6545,
         "polyfills/tslib.js":1763,
         "build/chunk-81780b86.js":392,
         "<unmapped>":138
      }
   },
   "..."
]

The one thing we can figure out for CRA but I'm not sure how to detect in other environments without webpack stats is the entry point. I think the key factor is web perf is keeping the entry point (app core) light.

mitchellsimoens commented 5 years ago

My thoughts on this is that nothing within gimbal, as it stands right now, is actually scoped to any one thing. The cra command executes things that would work for any web page. Having something like this would be a great thing to include to also give this command an actual "cra" thing.

I can also see the benefit of the smart detection as you outlined. This one module to support this would have an array of tests and we can add to that array as we need to easily.

I've mentioned to Matt before that I think if there is a failure, we should provide a link to a document (in git so we can update without needing a deployment of gimbal) where we have Modus recommendations on frequent issues per module. What you propose here is in the same area as this and is a start to a programmatic implementation of some recommendations.

mitchellsimoens commented 5 years ago

Merged in for thresholds of the child file sizes. Will be deployed with next publish.