{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/common/Table.vue?3dc2","webpack:///./src/App.vue?278e","webpack:///./src/images/walletconnect-icon.svg","webpack:///./src/assets/style/main.scss","webpack:///./src/pages/not-found/NotFound.vue?b244","webpack:///./src/pages/profile/components/NoteItem.vue?7f7f","webpack:///./src/pages/layout/MobileMenu.vue?96a6","webpack:///./src/App.vue","webpack:///./src/App.vue?dfb6","webpack:///./src/pages/home/Home.vue","webpack:///./src/components/common/Table.vue","webpack:///./src/utility/cache-helper.js","webpack:///./src/utility/sleep.js","webpack:///./src/utility/format.js","webpack:///./src/components/icons/DieIcon.vue","webpack:///./src/components/icons/DieIcon.vue?6016","webpack:///./src/components/common/Table.vue?6509","webpack:///./src/components/icons/DownCaretIcon.vue","webpack:///./src/components/icons/DownCaretIcon.vue?66d8","webpack:///./src/pages/home/Home.vue?8650","webpack:///./src/pages/about/About.vue","webpack:///./src/pages/about/About.vue?f1a8","webpack:///./src/pages/attributions/Attributions.vue","webpack:///./src/pages/attributions/Attributions.vue?d451","webpack:///./src/pages/faq/FAQ.vue","webpack:///./src/pages/faq/FAQ.vue?d952","webpack:///./src/pages/mint/Mint.vue","webpack:///./src/components/common/Ethereum.vue","webpack:///./src/services/ethers.service.js","webpack:///./src/initialize-config/index.js","webpack:///./src/store/alert/actions.js","webpack:///./src/store/alert/mutations.js","webpack:///./src/store/alert/index.js","webpack:///./src/services/visibility.service.js","webpack:///./src/store/ethers/actions.js","webpack:///./src/store/ethers/mutations.js","webpack:///./src/store/ethers/index.js","webpack:///./src/store/visibility/actions.js","webpack:///./src/store/visibility/mutations.js","webpack:///./src/store/visibility/index.js","webpack:///./src/store/table/actions.js","webpack:///./src/store/table/mutations.js","webpack:///./src/store/table/index.js","webpack:///./src/store/index.js","webpack:///./src/components/common/Ethereum.vue?09e5","webpack:///./src/pages/mint/Mint.vue?d1ad","webpack:///./src/pages/terms/Terms.vue","webpack:///./src/pages/terms/Terms.vue?75d2","webpack:///./src/pages/profile/Profile.vue","webpack:///./src/pages/profile/components/NoteItem.vue","webpack:///./src/pages/profile/components/NoteItem.vue?217f","webpack:///./src/pages/profile/Profile.vue?415b","webpack:///./src/pages/not-found/NotFound.vue","webpack:///./src/components/ui/Button.vue","webpack:///./src/components/ui/Button.vue?f174","webpack:///./src/pages/not-found/NotFound.vue?c0be","webpack:///./src/router/layouts/MainLayout.vue","webpack:///./src/pages/layout/Header.vue","webpack:///./src/pages/layout/WalletModal.vue","webpack:///./src/pages/layout/WalletModal.vue?ba1f","webpack:///./src/pages/layout/MobileMenu.vue","webpack:///./src/components/icons/CloseIcon.vue","webpack:///./src/components/icons/CloseIcon.vue?2ee1","webpack:///./src/components/icons/DiscordIcon.vue","webpack:///./src/components/icons/DiscordIcon.vue?1456","webpack:///./src/components/icons/TwitterIcon.vue","webpack:///./src/components/icons/TwitterIcon.vue?9d7a","webpack:///./src/pages/layout/MobileMenu.vue?55d7","webpack:///./src/pages/layout/Header.vue?8c26","webpack:///./src/pages/layout/Footer.vue","webpack:///./src/pages/layout/Footer.vue?8ea3","webpack:///./src/router/layouts/MainLayout.vue?3722","webpack:///./src/router/index.js","webpack:///./src/main.js","webpack:///./src/pages/terms/Terms.vue?08ff","webpack:///./src/pages/mint/Mint.vue?007f","webpack:///./src/pages/attributions/Attributions.vue?4e63","webpack:///./src/router/layouts/MainLayout.vue?45ee","webpack:///./src/pages/layout/WalletModal.vue?118f","webpack:///./src/pages/profile/Profile.vue?8ebb","webpack:///./src/pages/about/About.vue?4b59","webpack:///./src/components/ui/Button.vue?b724","webpack:///./src/components/common/Dice.js","webpack:///./src/pages/faq/FAQ.vue?9253","webpack:///./src/images/metamask-icon.svg","webpack:///./src/pages/layout/Footer.vue?a581","webpack:///./src/pages/layout/Header.vue?c0c6","webpack:///./src/pages/home/Home.vue?0284"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","class","render","__scopeId","ref","size","CacheHelper","this","isWorking","doneWorking","waiters","onBeginWorking","onError","onFinishWorking","response","promiseGetter","bust","waiter","responseAvailable","waiterPromise","Promise","resolve","resolver","sleep","ms","setTimeout","formatNumber","decimals","toString","split","replace","substring","padEnd","join","formatAddress","address","shortenedAddress","xmlns","viewBox","width","props","type","Number","required","components","DieIcon","setup","context","store","route","container","getX","index","array","itemSize","getY","getZ","getW","stride","offset","stats","showPanel","state","table","debug","document","body","appendChild","dom","camera","scene","renderer","alpha","light","add","console","log","containerWidth","offsetWidth","containerHeight","offsetHeight","setSize","domElement","cameraPosition","position","set","x","y","z","lookAt","world","gravity","groundBody","STATIC","shape","quaternion","setFromEuler","Math","PI","addBody","Dice","setWorld","dice","backColor","getObject","resetBody","rotation","updateBodyFromMesh","yRand","random","velocity","angularVelocity","prepareValues","FRAMES_PER_SECOND","SKIP_TICKS","sleepTime","animate","delta","begin","step","updateMeshFromBody","end","nextGameTick","requestAnimationFrame","newDebug","removeChild","deep","cleanup","dispose","cleanMaterial","material","keys","traverse","geometry","isMaterial","innerHtml","path","newPath","height","fill","script","Table","DownCaretIcon","href","title","id","callback","initialize","lock-scroll","click-to-close","esc-to-close","zIndex","modalIsOpen","closeModal","min","max","list","updateNotesSelected","mintAmount","live","countdown","canSign","openModal","connectWallet","config","fetch","process","Date","now","then","json","success","commit","message","duration","info","warning","error","default","clear","showWalletModal","hideWalletModal","namespaced","actions","mutations","initializeConfig","ethereum","autoRefreshOnNetworkChange","dispatch","watcherInterval","localProvider","infuraProvider","ethereumAccountsCache","currentAddress","originalPollingInterval","lastActionTime","timeoutHandler","PROVIDER_POLL_RATE","MESSAGES","NO_PROVIDER","REJECTED","callbacks","infuraConnected","startProviderWatcher","_dispatch","checkProviderAvailability","connectInfuraProvider","getEthereumAccounts","activeAddresses","connectLocalEthereumProvider","disconnectLocalEthereumProvider","setInterval","stopProviderWatcher","clearInterval","currentNetworkId","infuraNetworkId","ethers","BigNumber","from","toNumber","providers","InfuraProvider","infuraProjectId","pollingInterval","networkPollingIntervals","on","handleBlockChanged","root","hasLocalProvider","provider","enableEthereumAccounts","ethereumAddresses","selectedAddress","Web3Provider","getNetwork","network","networkId","utils","hexValue","chainId","request","method","accounts","handleAccountsChanged","handleChainChanged","requestAccountsPromiseGetter","cache","blockNumber","priorAccountsLength","pause","unpause","poll","getProvider","getNetworkName","undefined","ethersService","probablyHidden","timeWithoutAction","setVisible","performDispatch","dispatchVisibilityEvent","hasFocusLocal","initializeVisibilityDetection","getTime","clearTimeout","checkPageVisibility","threshold","currentTime","floor","hidden","visibilityChangeListener","event","mouseMoveListener","mouseOverListener","mouseOutListener","blurListener","focusListener","timeoutThreshold","addEventListener","removeEventListener","visibilityService","NO_INFURA","UNKNOWN","initializeFailure","errorReason","initializeSuccess","signer","getSigner","getAddress","changePaused","pauseStatus","connectWCProvider","connectWalletConnectProvider","disconnectWallet","changeCurrentAddress","changeChainId","changeBlockNumber","initializeRequest","initializing","pausedChanged","paused","addressChanged","networkChanged","blockNumberChanged","update","setDebug","createStore","alert","visibility","Function","computed","created","ethereumReference","getLaunchpadItemsTask","signal","perform","VueFinalModal","Ethereum","mintText","second","minute","hour","day","launchDay","UTC","countDown","daysElement","getElementById","hoursElement","minutesElement","secondsElement","distance","innerText","notesSelectedInput","mounted","scroll","walletAddress","testNotesArray","note","src","loading","isPlaying","playItem","NoteItem","routeTo","secondaryStyles","isSecondary","Boolean","isDisabled","classes","Button","router","url","viewbox","hideWalletModalDisplay","openUrl","showMobileMenu","isVisible","mobileMenuIsVisible","isHome","showWalletModalDisplay","toggleDropdown","profileAddressLabel","showDropdown","isMobile","exitModal","appear","modalPrompt","handleMetaMask","handleWalletConnect","emits","show","methods","$emit","open","triggerClose","walletPrompt","style","CloseIcon","DiscordIcon","TwitterIcon","onscroll","emit","WalletModal","MobileMenu","currentRoute","connectedAddress","test","navigator","userAgent","close","onBeforeUnmount","clearAlert","connect","disconnect","$el","contains","target","$router","scrollTo","watch","$route","to","Header","Footer","assign","beforeUnmount","handler","newAlert","lastMessage","messageType","$toast","newVisibility","routes","component","MainLayout","children","Home","About","Attributions","FAQ","Mint","Terms","Profile","NotFound","createRouter","history","createWebHistory","createApp","App","use","Toaster","LoadScript","KProgress","mount","DiceManagerClass","diceBodyMaterial","CANNON","floorBodyMaterial","barrierBodyMaterial","addContactMaterial","friction","restitution","diceValues","throwRunning","Error","values","simulationRunning","vectors","getCurrentVectors","stableCount","check","allStable","isFinished","DiceManager","shiftUpperValue","setVectors","dt","DiceObject","options","setDefaults","fontColor","invertUpside","materialOptions","specular","color","shininess","flatShading","labelColor","diceColor","defaults","getUpsideValue","abs","closest_face","vector","THREE","closest_angle","normals","getAttribute","groups","face","materialIndex","startVertex","normal","angle","clone","applyQuaternion","angleTo","toValue","fromValue","updateMaterialsForValue","vertices","faces","radius","tab","af","geom","multiplyScalar","positions","uvs","cb","ab","faceFirstVertexIndex","ii","fl","aa","toArray","subVectors","cross","normalize","cos","sin","numOfVertices","addGroup","setAttribute","boundingSphere","chamfer","chamfer_vectors","chamfer_faces","corner_faces","Array","center_point","vv","divideScalar","addVectors","pairs","lastm","indexOf","unshift","cf","count","next_vertex","cv","v","scaleFactor","fromArray","chamferGeometry","getChamferGeometry","makeGeometry","cannon_shape","createShape","approx","pow","text","canvas","createElement","getContext","ts","calculateTextureSize","textMargin","font","fillStyle","fillRect","textAlign","textBaseline","fillText","texture","needsUpdate","materials","faceTexts","customTextTextureFunction","createTextTexture","map","getGeometry","getMaterials","reveiceShadow","castShadow","diceObject","mass","linearDamping","angularDamping","copy","vlambda","previousPosition","initPosition","initVelocity","force","torque","initQuaternion","initAngularVelocity","interpolatedPosition","interpolatedQuaternion","inertia","invInertia","invInertiaWorld","invInertiaSolve","invInertiaWorldSolve","wlambda","updateMassProperties","diceValue","DiceD4","d4FaceTexts","translate","rotate","DiceD6","DiceD8","DiceD10","b","DiceD12","sqrt","q","DiceD20","define"],"mappings":"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","file":"js/app.71e0f607.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Table.vue?vue&type=style&index=0&id=0631f482&scoped=true&lang=scss\"","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../node_modules/vue-loader-v16/dist/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./App.vue?vue&type=style&index=0&id=049931b7&scoped=true&lang=css\"","module.exports = __webpack_public_path__ + \"img/walletconnect-icon.8d6f1db3.svg\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"white\":\"#fff\",\"black\":\"#000\",\"violet\":\"#7112ff\",\"bgViolet\":\"#7112ff07\",\"lightViolet\":\"#7112ff33\",\"red\":\"#c30101\",\"lightRed\":\"#c3010133\",\"green\":\"#4ec200\",\"lightGreen\":\"#4ec20033\"};","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./NotFound.vue?vue&type=style&index=0&id=528ff922&scoped=true&lang=scss\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./NoteItem.vue?vue&type=style&index=0&id=1470ff28&scoped=true&lang=css\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./MobileMenu.vue?vue&type=style&index=0&id=000831fe&scoped=true&lang=scss\"","\n\n\n\n\n","import { render } from \"./App.vue?vue&type=template&id=049931b7&scoped=true\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\n\nimport \"./App.vue?vue&type=style&index=0&id=049931b7&scoped=true&lang=css\"\nscript.render = render\nscript.__scopeId = \"data-v-049931b7\"\n\nexport default script","\n\n\n\n\n","\n\n\n\n\n","\"use strict\";\n\n// Construct a cache helper which can consume a promise and caches its result.\nexport class CacheHelper {\n constructor() {\n this.isWorking = false;\n this.doneWorking = false;\n this.waiters = [];\n this.onBeginWorking = null;\n this.onError = null;\n this.onFinishWorking = null;\n this.response = null;\n }\n\n // Multiple pending calls to this helper function will only call the promise\n // once unless cache-busting is specified.\n async cache(promiseGetter, bust) {\n if (!this.doneWorking && !this.isWorking) {\n this.isWorking = true;\n if (this.onBeginWorking) {\n await this.onBeginWorking();\n }\n try {\n this.response = await promiseGetter();\n } catch (error) {\n if (this.onError) {\n await this.onError(error);\n } else {\n throw error;\n }\n }\n if (this.onFinishWorking) {\n await this.onFinishWorking(this.response);\n }\n this.doneWorking = true;\n\n // Process any registered callbacks.\n for (let waiter of this.waiters) {\n waiter.responseAvailable(this.response);\n }\n this.waiters = [];\n return this.response;\n\n // If another request has been made to the cache while it is working,\n // register a callback to resolve with the cached value once available.\n } else if (!this.doneWorking && this.isWorking) {\n let waiterPromise = new Promise(resolve => {\n this.waiters.push({\n resolver: resolve,\n responseAvailable: function (response) {\n this.resolver(response);\n }\n });\n });\n return waiterPromise;\n\n // If the value is available, return it from the cache.\n } else if (this.doneWorking) {\n return this.response;\n }\n }\n}\n","\"use strict\";\n\n// Export a simple promise to sleep for some amount of time.\nexport const sleep = function (ms) {\n return new Promise(resolve => setTimeout(resolve, ms));\n};\n","'use strict';\n\n// Format a number with place delimiters.\nexport const formatNumber = function(value, decimals = 6) {\n value = value.toString().split('.');\n value[0] = value[0].replace(/(\\d)(?=(\\d\\d\\d)+(?!\\d))/g, '$1' + ',');\n if (value[1]) {\n value[1] = value[1].substring(0, decimals);\n value[1] = value[1].padEnd(decimals, '0');\n } else {\n value[1] = ''.padEnd(decimals, '0');\n }\n value = value.join('.');\n if (decimals === 0) {\n value = value.substring(0, value.length - 1);\n }\n return value;\n};\n\n// Format an address to have an ellipsis in the middle\nexport const formatAddress = function(address) {\n const length = address.length;\n if (length > 0) {\n const shortenedAddress = address.substring(0, 6) + '...' + address.substring(length - 4);\n return shortenedAddress;\n }\n return '';\n};\n","\n\n\n","import { render } from \"./DieIcon.vue?vue&type=template&id=297cd9d7\"\nimport script from \"./DieIcon.vue?vue&type=script&lang=js\"\nexport * from \"./DieIcon.vue?vue&type=script&lang=js\"\nscript.render = render\n\nexport default script","import { render } from \"./Table.vue?vue&type=template&id=0631f482&scoped=true\"\nimport script from \"./Table.vue?vue&type=script&lang=js\"\nexport * from \"./Table.vue?vue&type=script&lang=js\"\n\nimport \"./Table.vue?vue&type=style&index=0&id=0631f482&scoped=true&lang=scss\"\nscript.render = render\nscript.__scopeId = \"data-v-0631f482\"\n\nexport default script","\n","import { render } from \"./DownCaretIcon.vue?vue&type=template&id=6dcde0c5\"\nconst script = {}\nscript.render = render\n\nexport default script","import { render } from \"./Home.vue?vue&type=template&id=7954f402&scoped=true\"\nimport script from \"./Home.vue?vue&type=script&lang=js\"\nexport * from \"./Home.vue?vue&type=script&lang=js\"\n\nimport \"./Home.vue?vue&type=style&index=0&id=7954f402&scoped=true&lang=css\"\nscript.render = render\nscript.__scopeId = \"data-v-7954f402\"\n\nexport default script","\n\n\n","import { render } from \"./About.vue?vue&type=template&id=bc3b8280&scoped=true\"\nconst script = {}\n\nimport \"./About.vue?vue&type=style&index=0&id=bc3b8280&scoped=true&lang=css\"\nscript.render = render\nscript.__scopeId = \"data-v-bc3b8280\"\n\nexport default script","\n\n\n","import { render } from \"./Attributions.vue?vue&type=template&id=1ff5503e&scoped=true\"\nconst script = {}\n\nimport \"./Attributions.vue?vue&type=style&index=0&id=1ff5503e&scoped=true&lang=css\"\nscript.render = render\nscript.__scopeId = \"data-v-1ff5503e\"\n\nexport default script","\n\n\n","import { render } from \"./FAQ.vue?vue&type=template&id=eb260b80&scoped=true\"\nconst script = {}\n\nimport \"./FAQ.vue?vue&type=style&index=0&id=eb260b80&scoped=true&lang=css\"\nscript.render = render\nscript.__scopeId = \"data-v-eb260b80\"\n\nexport default script","\n\n\n\n\n","\n\n\n","'use strict';\n\n// Imports.\nimport { ethers } from 'ethers';\nimport { CacheHelper } from '../utility';\nimport initializeConfig from '../initialize-config';\n\n// Initialize this service's configuration.\nlet config;\n(async () => {\n config = await initializeConfig();\n})();\n\n// If an Ethereum provider is available locally, disable its automatic reload on\n// network change. This avoids a warning when MetaMask is the local provider.\nif (window.ethereum) {\n window.ethereum.autoRefreshOnNetworkChange = false;\n}\n\n// The rate in milliseconds at which to poll for a local Ethereum provider.\nconst PROVIDER_POLL_RATE = 100000;\n\n// Accessible status messages for future localization.\nconst MESSAGES = {\n NO_PROVIDER: `You have no Ethereum provider. Try installing MetaMask.`,\n REJECTED: `You rejected the request to connect your wallet. Please attempt to connect again and accept the request this time.`\n};\n\n// Begin polling for the availability of our local Ethereum provider.\n// If it is available, attach event handlers. This function is given a reference\n// to the VueX event dispatcher which this servive uses elsewhere.\nlet dispatch;\nlet callbacks = [];\nlet watcherInterval;\nlet localProvider;\nlet infuraProvider;\nlet infuraConnected = false;\nconst startProviderWatcher = async function(_dispatch, callback) {\n callbacks.push(callback);\n\n // No-op on multiple calls to start the provider.\n if (dispatch) {\n return;\n }\n dispatch = _dispatch;\n console.log('Starting a watcher for the local Ethereum provider ...');\n\n // Poll for changes of availability in our local Ethereum provider. If the\n // local provider doesn't exist, notify the user and give a read-only option.\n async function checkProviderAvailability() {\n if (!window.ethereum && !infuraConnected) {\n\n // The user does not have a local Ethereum provider.\n // Attempt to connect to an Infura provider.\n await connectInfuraProvider();\n\n // If there is a local Ethereum provider, check to see if it is connected\n // to a signing account already. The local provider may be:\n // - locked; when the provider is available but not yet configured or\n // \t\t\t\t\t awaiting password input.\n // - unlocked; when the provider is available but a signer is not connected\n //\t\t\t\t\t to the site yet.\n // - connected; when the local signer is fully available to use.\n //\n // If the signer is not yet connected to the site, this polling loop will do\n // nothing. The user must explicitly request connection to the site via an\n // on-page interaction.\n } else {\n let activeAddresses = await getEthereumAccounts();\n\n // If there exists a selected address, a signing account is connected.\n // We can therefore shortcut requiring the user to connect via a prompt.\n if (activeAddresses.length > 0) {\n await connectLocalEthereumProvider();\n\n // Otherwise, the signer is not yet connected. Clear the local Ethereum\n // provider to a blank slate and fall back upon the default Infura\n // provider.\n } else {\n await disconnectLocalEthereumProvider();\n }\n }\n }\n\n // Begin checking for changes to provider availability on the polling interval.\n await checkProviderAvailability();\n\n // Until we haven't got chaining of auth opeartion with connecting to a local provider, we connect everything with button \"Connect Wallet\"\n // TODO: Chaining 'connectLocalEthereumProvider' and 'connectInfuraProvider' with authorization service.\n watcherInterval = setInterval(checkProviderAvailability, PROVIDER_POLL_RATE);\n};\n\n// Stop the polling interval looking for the local Ethereum provider.\nconst stopProviderWatcher = async function() {\n if (watcherInterval) {\n clearInterval(watcherInterval);\n watcherInterval = null;\n }\n};\n\n// Attempt to connect to a default read-only Infura provider.\n// If the connection to Infura already exists, this function will not attempt to\n// replace that connection. It will, however, dispatch an update to VueX.\nconst connectInfuraProvider = async function() {\n if (!infuraProvider) {\n console.log('Initializing a new Infura provider ...');\n try {\n if (!config) {\n config = await initializeConfig();\n }\n // TODO: make configurable read-only network selection\n let currentNetworkId = '0x1';\n let infuraNetworkId = ethers.BigNumber.from(currentNetworkId).toNumber();\n infuraProvider = await new ethers.providers.InfuraProvider(infuraNetworkId, config.infuraProjectId);\n // infuraProvider = await new ethers.providers.AlchemyProvider(infuraNetworkId, config.alchemyApiKey[currentNetworkId]);\n // wss://eth-goerli.ws.alchemyapi.io/v2/SmRibxWnqII5gXgiuPDRiJT4gzA1vo7t\n infuraProvider.pollingInterval = config.networkPollingIntervals[currentNetworkId];\n\n // Update our VueX state whenever the provider detects a block change.\n infuraProvider.on('block', handleBlockChanged);\n console.log('... successfully initialized Infura provider.');\n await stopProviderWatcher();\n infuraConnected = true;\n // If an error occurs when connecting to Infura, we cannot recover.\n // Stop attempting to poll for a provider and notify the user.\n } catch (error) {\n await dispatch('ethers/initializeFailure', 'NO_INFURA', { root: true });\n await stopProviderWatcher();\n }\n }\n\n // We've completed initialization of the Infura provider.\n await dispatch(\n 'ethers/initializeSuccess',\n {\n hasLocalProvider: !!window.ethereum,\n canSign: false,\n provider: infuraProvider,\n callbacks: callbacks\n },\n { root: true }\n );\n};\n\n// Attempt to connect to the local Ethereum provider's currently active account.\n// If there is no local Ethereum provider, notify the user.\n// If the connection to the local account already exists, this function will not\n// attempt to replace that signer connection. It will dispatch a VueX update.\nconst connectLocalEthereumProvider = async function() {\n if (!window.ethereum && !infuraProvider) {\n await dispatch(\n 'alert/error',\n {\n message: MESSAGES['NO_PROVIDER'],\n duration: 10000\n },\n { root: true }\n );\n await connectInfuraProvider();\n }\n\n // If a local provider is available but not connected yet, attempt to connect\n // and retrieve a signing account.\n if (window.ethereum) {\n if (!localProvider) {\n let ethereumAddresses = await enableEthereumAccounts();\n\n // The addresses returned may be null if the user intervenes to reject the\n // connection request.\n if (ethereumAddresses) {\n window.ethereum.selectedAddress = ethereumAddresses[0];\n try {\n localProvider = new ethers.providers.Web3Provider(window.ethereum);\n let network = await localProvider.getNetwork();\n let networkId = ethers.utils.hexValue(network.chainId);\n if (!config) {\n config = await initializeConfig();\n }\n localProvider.pollingInterval = config.networkPollingIntervals[networkId];\n\n // Emit events whenever the provider detects a change in block.\n localProvider.on('block', handleBlockChanged);\n\n // Retrieve the user's accounts and handle any account-changed event.\n // User accounts are only exposed for the local Ethereum provider.\n const accounts = await window.ethereum.request({ method: 'eth_accounts' });\n await handleAccountsChanged(accounts);\n window.ethereum.on('accountsChanged', handleAccountsChanged);\n\n // Set our Ethereum network and handle any network change events.\n window.ethereum.on('chainChanged', handleChainChanged);\n console.log('... local Ethereum provider successfully initialized.');\n\n // An unexpected error has occurred retrieving our provider references.\n } catch (error) {\n console.error('... encountered error initializing local Ethereum provider.', error);\n await dispatch('ethers/initializeFailure', 'UNKNOWN', { root: true });\n await stopProviderWatcher();\n }\n\n // We've completed initialization of the Ethereum provider.\n await dispatch(\n 'ethers/initializeSuccess',\n {\n hasLocalProvider: !!window.ethereum,\n canSign: true,\n provider: localProvider,\n callbacks: callbacks\n },\n { root: true }\n );\n\n // The user rejected the connection, so suspend the current local provider\n // if it happens to exist and restore the Infura provider.\n } else {\n if (localProvider) {\n localProvider.pollingInterval = 1000000;\n localProvider = null;\n }\n await connectInfuraProvider();\n }\n }\n\n // If a local provider has been configured properly, suspend the Infura\n // provider.\n if (localProvider && infuraProvider) {\n infuraProvider.pollingInterval = 1000000;\n infuraProvider = null;\n }\n }\n};\n\n// Clear the local Ethereum provider. This may happen due to signing account\n// disconnection, or may happen as a no-op when the user's local Ethereum\n// provider is locked. When the local Ethereum provider is cleared, it is\n// replaced with a default Infura provider.\nconst disconnectLocalEthereumProvider = async function() {\n ethereumAccountsCache = null;\n currentAddress = null;\n localProvider = null;\n window.ethereum.selectedAddress = null;\n await connectInfuraProvider();\n};\n\n// If a local Ethereum provider has been detected, attempt to retrieve signing\n// accounts known to the local provider. Accounts will not be visible if they\n// have not been unlocked using `enableEthereumAccounts`.\nconst getEthereumAccounts = async function() {\n return window.ethereum.request({ method: 'eth_accounts' });\n};\n\n// If a local Ethereum provider has been detected, attempt to retrieve signing\n// accounts known to the local provider. Stash the results in our cache.\n// This method prompts the user to unlock their accounts if they've not already\n// done so; once unlocked the accounts can be seen by `getEthereumAccounts`.\nlet ethereumAccountsCache;\nconst enableEthereumAccounts = async function() {\n if (!ethereumAccountsCache) {\n // Configure a new cache to unlock and store the potential signing accounts.\n ethereumAccountsCache = new CacheHelper();\n\n // If this the first attempt at a connection to the local Ethereum provider,\n // display messages regarding connection status.\n if (!window.ethereum.selectedAddress) {\n ethereumAccountsCache.onBeginWorking = async () => {\n await dispatch(\n 'alert/success',\n {\n message: `Please connect to this application with your wallet.`,\n duration: 10000\n },\n { root: true }\n );\n };\n ethereumAccountsCache.onError = async error => {\n await dispatch('alert/clear', '', { root: true });\n await dispatch(\n 'alert/error',\n {\n message: MESSAGES.REJECTED,\n duration: 10000\n },\n { root: true }\n );\n };\n ethereumAccountsCache.onFinishWorking = async response => {\n if (response) {\n await dispatch('alert/clear', '', { root: true });\n await dispatch(\n 'alert/success',\n {\n message: `We have successfully connected to your wallet.`,\n duration: 10000\n },\n { root: true }\n );\n }\n };\n }\n }\n\n // Retrieve the local Ethereum provider's signing accounts.\n let requestAccountsPromiseGetter = () => window.ethereum.request({ method: 'eth_requestAccounts' });\n let result = await ethereumAccountsCache.cache(requestAccountsPromiseGetter);\n return result;\n};\n\n// Handle an event where the provider's block number changes by updating VueX.\nconst handleBlockChanged = async function(blockNumber) {\n await dispatch('ethers/changeBlockNumber', blockNumber, { root: true });\n};\n\n// Handle an event where the Ethereum network is changed by updating VueX.\nconst handleChainChanged = async function(chainId) {\n await dispatch('ethers/changeChainId', chainId, { root: true });\n};\n\n// Handle an event where the user's account is changed. If they've no accounts,\n// then the local Ethereum provider is locked or the user has not connected\n// any accounts. Update the current account address in VueX.\nlet priorAccountsLength = 0;\nlet currentAddress;\nconst handleAccountsChanged = async function(accounts) {\n if (accounts.length === 0) {\n // The user has disconnected; there are no accounts where there used to be.\n // Reset the local provider in response.\n if (priorAccountsLength > 0) {\n await disconnectLocalEthereumProvider();\n }\n\n // The active signing address has changed; reconnect the local provider.\n } else if (accounts[0] !== currentAddress) {\n currentAddress = accounts[0];\n await dispatch('ethers/changeCurrentAddress', currentAddress, { root: true });\n }\n priorAccountsLength = accounts.length;\n};\n\n// Pause the provider by giving it a tremendously large polling interval.\nlet originalPollingInterval;\nconst pause = async function(_dispatch) {\n if (!dispatch) {\n dispatch = _dispatch;\n }\n if (infuraProvider) {\n if (!originalPollingInterval) {\n originalPollingInterval = infuraProvider.pollingInterval;\n }\n infuraProvider.pollingInterval = 1000000;\n }\n if (localProvider) {\n if (!originalPollingInterval) {\n originalPollingInterval = localProvider.pollingInterval;\n }\n localProvider.pollingInterval = 1000000;\n }\n await dispatch('ethers/changePaused', true, { root: true });\n};\n\n// Unpause the provider by restoring its original polling interval.\nconst unpause = async function(_dispatch) {\n if (!dispatch) {\n dispatch = _dispatch;\n }\n if (infuraProvider) {\n if (!originalPollingInterval) {\n originalPollingInterval = infuraProvider.pollingInterval;\n }\n infuraProvider.pollingInterval = originalPollingInterval;\n await infuraProvider.poll();\n }\n if (localProvider) {\n if (!originalPollingInterval) {\n originalPollingInterval = localProvider.pollingInterval;\n }\n localProvider.pollingInterval = originalPollingInterval;\n await localProvider.poll();\n }\n await dispatch('ethers/changePaused', false, { root: true });\n};\n\n// Return a reference to the current available Ethereum provider.\nconst getProvider = function() {\n return localProvider ?? infuraProvider;\n};\n\n// Return the name of a particular network.\nconst getNetworkName = function(networkId) {\n switch (networkId) {\n case '0x1':\n return 'Mainnet';\n case '0x2':\n return 'Morden (deprecated)';\n case '0x3':\n return 'Ropsten Test Network';\n case '0x4':\n return 'Rinkeby Test Network';\n case '0x5':\n return 'Goerli Test Network';\n case '0x2a':\n return 'Kovan Test Network';\n case '0xd903':\n return 'Papyrus Test Network';\n case undefined:\n case null:\n return 'No Chain!';\n\n // Local testing networks should land here.\n default:\n return 'Local Test Network';\n }\n};\n\n// Export the various management functions of the Ethers service.\nexport const ethersService = {\n startProviderWatcher,\n connectLocalEthereumProvider,\n disconnectLocalEthereumProvider,\n getProvider,\n getNetworkName,\n getEthereumAccounts,\n pause,\n unpause\n};\n","let config = null;\n\nexport default async () => {\n config =\n config === null\n ? await fetch(\n `${process.env.BASE_URL}config.json?t=${Date.now()}`\n ).then(response => response.json())\n : config;\n return config;\n};\n","\"use strict\";\n\n// Specified actions for mutating the alert state.\nexport default {\n // Display a success-themed alert.\n success({ commit }, { message, duration }) {\n commit(\"success\", { message, duration });\n },\n\n // Display an information-themed alert.\n info({ commit }, { message, duration }) {\n commit(\"info\", { message, duration });\n },\n\n // Display a warning-themed alert.\n warning({ commit }, { message, duration }) {\n commit(\"warning\", { message, duration });\n },\n\n // Display an error-themed alert.\n error({ commit }, { message, duration }) {\n commit(\"error\", { message, duration });\n },\n\n // Display an alert with the default theme.\n default({ commit }, { message, duration }) {\n commit(\"default\", { message, duration });\n },\n\n // Clear all alerts.\n clear({ commit }) {\n commit(\"clear\");\n },\n\n // TODO\n showWalletModal({ commit }) {\n commit(\"showWalletModal\");\n },\n hideWalletModal({ commit }) {\n commit(\"hideWalletModal\");\n }\n};\n","\"use strict\";\n\n// Specified state transitions per particular actions.\nexport default {\n success(state, { message, duration }) {\n state.message = message;\n state.type = \"success\";\n state.duration = duration;\n },\n info(state, { message, duration }) {\n state.message = message;\n state.type = \"info\";\n state.duration = duration;\n },\n warning(state, { message, duration }) {\n state.message = message;\n state.type = \"warning\";\n state.duration = duration;\n },\n error(state, { message, duration }) {\n state.message = message;\n state.type = \"error\";\n state.duration = duration;\n },\n default(state, { message, duration }) {\n state.message = message;\n state.type = \"default\";\n state.duration = duration;\n },\n\n // Tell the app to clear all alerts.\n clear(state) {\n state.type = null;\n state.message = null;\n },\n\n // TODO\n showWalletModal(state) {\n state.showWalletModal = true;\n },\n hideWalletModal(state) {\n state.showWalletModal = false;\n }\n};\n","\"use strict\";\n\n// Import our module information.\nimport actions from \"./actions\";\nimport mutations from \"./mutations\";\n\n// Prepare state.\nconst state = {\n message: null,\n type: null,\n duration: 10000,\n\n // TODO: fix this alert VueX storage hijacking.\n showWalletModal: false\n};\n\n// Return the module prepared for use.\nexport default {\n namespaced: true,\n state,\n actions,\n mutations\n};\n","\"use strict\";\n\n// Set the page visibile per our probabilistic checks.\nlet probablyHidden = false;\nlet timeWithoutAction = 0;\nconst setVisible = async function () {\n let performDispatch = false;\n if (probablyHidden) {\n performDispatch = true;\n }\n probablyHidden = false;\n timeWithoutAction = 0;\n if (performDispatch) {\n await dispatchVisibilityEvent();\n }\n};\n\n// Initialize the probabilistic page visibility detector; if the window is\n// not in focus, begin checking for it to gain focus.\nlet hasFocusLocal = true;\nlet lastActionTime;\nlet timeoutHandler;\nconst initializeVisibilityDetection = function () {\n if (!hasFocusLocal) {\n lastActionTime = new Date().getTime();\n if (timeoutHandler) {\n clearTimeout(timeoutHandler);\n }\n timeoutHandler = setTimeout(checkPageVisibility, threshold);\n }\n};\n\n// Determine probable visibility of the page by seeing how long ago the last\n// user action was.\nlet threshold = 15 * 60 * 1000;\nconst checkPageVisibility = async function () {\n if (hasFocusLocal || !lastActionTime) {\n timeWithoutAction = 0;\n } else {\n let currentTime = new Date().getTime();\n timeWithoutAction = Math.floor(currentTime - lastActionTime);\n }\n\n // The page is probably hidden if there hasn't been any action in a while.\n if (timeWithoutAction >= threshold && !probablyHidden) {\n probablyHidden = true;\n await dispatchVisibilityEvent();\n }\n};\n\n// Dispatch an event for a probable change in page visibility.\nlet hidden = false;\nconst dispatchVisibilityEvent = async function () {\n await dispatch(\n \"visibility/update\",\n {\n hidden: hidden,\n probablyHidden: probablyHidden,\n timeWithoutAction: timeWithoutAction\n },\n { root: true }\n );\n};\n\n// An event listener for detecting Page Visibility per the browser API.\nconst visibilityChangeListener = async function (event) {\n if (!timeoutHandler) {\n hidden = false;\n } else {\n hidden = document.hidden;\n }\n await dispatchVisibilityEvent();\n};\n\n// An event listener for detecting mouse movement.\nconst mouseMoveListener = async function (event) {\n lastActionTime = new Date().getTime();\n if (hidden) {\n hidden = false;\n await dispatchVisibilityEvent();\n }\n};\n\n// An event listener for detecting page mouse overs.\nconst mouseOverListener = async function (event) {\n await setVisible();\n};\n\n// An event listener for detecting page mouse out events.\nconst mouseOutListener = function (event) {\n initializeVisibilityDetection();\n};\n\n// An event listener for detecting pages losing focus through blur.\nconst blurListener = function (event) {\n hasFocusLocal = false;\n initializeVisibilityDetection();\n};\n\n// An event listener for detecting pages gaining focus.\nconst focusListener = async function (event) {\n hasFocusLocal = true;\n await setVisible();\n};\n\n// Set up a page visibility monitoring service. This function takes a reference\n// to the VueX dispatcher.\nlet dispatch;\nconst setup = async function (_dispatch, timeoutThreshold) {\n dispatch = _dispatch;\n threshold = timeoutThreshold;\n\n // Register a visibility check using the Page Visibility API.\n document.addEventListener(\"visibilitychange\", visibilityChangeListener);\n\n // Attach events for tracking user action timings.\n probablyHidden = false;\n timeWithoutAction = 0;\n document.addEventListener(\"mousemove\", mouseMoveListener);\n document.addEventListener(\"mouseover\", mouseOverListener);\n document.addEventListener(\"mouseout\", mouseOutListener);\n window.addEventListener(\"blur\", blurListener);\n window.addEventListener(\"focus\", focusListener);\n await setVisible();\n};\n\n// Clean up the page by removing event listeners.\nconst cleanup = async function () {\n document.removeEventListener(\"visibilitychange\", visibilityChangeListener);\n document.removeEventListener(\"mousemove\", mouseMoveListener);\n document.removeEventListener(\"mouseover\", mouseOverListener);\n document.removeEventListener(\"mouseout\", mouseOutListener);\n window.removeEventListener(\"blur\", blurListener);\n window.removeEventListener(\"focus\", focusListener);\n};\n\n// Export the page visibility service functions.\nexport const visibilityService = {\n setup,\n cleanup\n};\n","'use strict';\n\n// Import the Ethers library for some data manipulation tasks.\nimport { ethers } from 'ethers';\n\n// Import Ethers connection helper functions.\nimport { ethersService } from '../../services';\n\n// Accessible status messages for future localization.\nconst MESSAGES = {\n NO_INFURA: `We were unable to connect to the default Infura provider.`,\n UNKNOWN: `We were unable to connect to your Ethereum provider for an unknown reason.`\n};\n\n// Export the Ethers actions.\nexport default {\n // Attempt to initialize our Ethereum provider with event handling.\n // Initialization can be passed a callback which is triggered upon success.\n async initialize({ dispatch, commit }, callback) {\n commit('initializeRequest');\n await ethersService.startProviderWatcher(dispatch, callback);\n },\n\n // Handle the results of failing to initialize the Ethereum provider.\n async initializeFailure({ dispatch, commit }, errorReason) {\n commit('initializeFailure');\n await dispatch(\n 'alert/error',\n {\n message: MESSAGES[errorReason],\n duration: 10000\n },\n { root: true }\n );\n },\n\n // Handle the results of a successful Ethereum provider initialization.\n async initializeSuccess(\n { commit },\n { hasLocalProvider, canSign, provider, callbacks }\n ) {\n let address;\n if (canSign) {\n let signer = provider.getSigner();\n address = await signer.getAddress();\n }\n let network = await provider.getNetwork();\n let networkId = ethers.utils.hexValue(network.chainId);\n commit('initializeSuccess', {\n hasLocalProvider,\n canSign,\n provider,\n address,\n networkId\n });\n\n // Trigger any callbacks attached to our initialization request.\n if (callbacks.length > 0) {\n for (let callback of callbacks) {\n await callback();\n }\n }\n },\n\n // Pause polling on the provider.\n async pause({ dispatch }) {\n await ethersService.pause(dispatch);\n },\n\n // Unpause polling on the provider.\n async unpause({ dispatch }) {\n await ethersService.unpause(dispatch);\n },\n\n // Update the paused status of the provider's polling.\n async changePaused({ commit }, pauseStatus) {\n commit('pausedChanged', pauseStatus);\n },\n\n // Connect the user's current signing address to the application.\n async connectWallet({}) {\n await ethersService.connectLocalEthereumProvider();\n },\n\n async connectWCProvider({}) {\n await ethersService.connectWalletConnectProvider();\n },\n\n // Disconnect the user's current signing address from the application.\n async disconnectWallet({}) {\n await ethersService.disconnectLocalEthereumProvider();\n },\n\n // Change the currently connected address that we're tracking in VueX state.\n async changeCurrentAddress({ commit }, currentAddress) {\n commit('addressChanged', currentAddress);\n },\n\n // Change the Ethereum network that we're tracking in VueX state.\n async changeChainId({ commit }, chainId) {\n commit('networkChanged', chainId);\n },\n\n // Change the block number that we're tracking in VueX state.\n async changeBlockNumber({ commit }, blockNumber) {\n commit('blockNumberChanged', blockNumber);\n }\n};\n","\"use strict\";\n\n// Export state mutation functions.\nexport default {\n // Handle requests by the page to initialize the Ethereum provider.\n initializeRequest(state, value) {\n state.initializing = true;\n },\n\n // Handle a failure to initialize the Ethereum provider.\n initializeFailure(state, value) {\n state.initializing = false;\n },\n\n // Handle the successful initialization of a provider. This can\n // occur immediately upon loading the page when the default provider is\n // initialized, or it can occur when the user disconnects a signing account\n // from the application. When that happens, we replace the user's\n // provider with an Infura provider for sustained read-only access.\n // This also intializes the user's write-enabled provider upon successfully\n // connecting to the local Ethereum provider.\n initializeSuccess(\n state,\n { hasLocalProvider, canSign, provider, address, networkId }\n ) {\n state.initializing = false;\n state.hasLocalProvider = hasLocalProvider;\n state.canSign = canSign;\n state.provider = provider;\n state.address = address;\n state.networkId = networkId;\n },\n\n // This function is called whenever we update the status of the provider's\n // polling activity.\n pausedChanged(state, pauseStatus) {\n state.paused = pauseStatus;\n },\n\n // This function is called whenever we detect a new active Ethereum address.\n addressChanged(state, address) {\n state.address = address;\n },\n\n // This function is called whenever we detect a new Ethereum network.\n networkChanged(state, chainId) {\n state.networkId = chainId;\n },\n\n // This function is called whenever we detect a new Ethereum block number.\n blockNumberChanged(state, blockNumber) {\n state.blockNumber = blockNumber;\n }\n};\n","\"use strict\";\n\n// Import our module information.\nimport actions from \"./actions\";\nimport mutations from \"./mutations\";\n\n// Prepare state.\nconst state = () => ({\n\n // Is the provider currently initializing?\n initializing: false,\n\n // Does a local Ethereum provider exist which we may try and connect to?\n hasLocalProvider: false,\n\n // Is the provider able to sign transactions?\n canSign: false,\n\n // A reference to the Ethers provider; this is either a reference to our local\n // Ethereum provider with a signer, or a read-only Infura provider.\n provider: null,\n\n // Whether or not the provider's event polling is paused.\n paused: false,\n\n // The address of the currently active signing account.\n address: null,\n\n // The connected Ethereum network's ID.\n networkId: null,\n\n // The connected Ethereum network's current block number.\n blockNumber: 0\n});\n\n// Return the module prepared for use.\nexport default {\n namespaced: true,\n state,\n actions,\n mutations\n};\n","\"use strict\";\n\n// Imports.\nimport { visibilityService } from \"../../services\";\n\n// Specify actions that can be performed by this module.\nexport default {\n // Set up the visibility service with a particular activity threshold.\n async setup({ dispatch }, { threshold }) {\n await visibilityService.setup(dispatch, threshold);\n },\n\n // Clean up the visibility service by removing event listeners.\n async cleanup({}) {\n await visibilityService.cleanup();\n },\n\n // Update current page visibility pepr the visibility service.\n async update({ commit }, { hidden, probablyHidden, timeWithoutAction }) {\n commit(\"update\", { hidden, probablyHidden, timeWithoutAction });\n }\n};\n","\"use strict\";\n\n// Export state mutation functions.\nexport default {\n // Update page visibility details.\n update(state, { hidden, probablyHidden, timeWithoutAction }) {\n state.hidden = hidden;\n state.probablyHidden = probablyHidden;\n state.timeWithoutAction = timeWithoutAction;\n }\n};\n","\"use strict\";\n\n// Import our module information.\nimport actions from \"./actions\";\nimport mutations from \"./mutations\";\n\n// Specify state for this module.\nconst state = {\n // Is the page guaranteed hidden based on the browser Page Visibility API.\n hidden: false,\n\n // Is the page probably hidden based on our user activity detection?\n probablyHidden: false,\n\n // How long has it been since we detected any user activity?\n timeWithoutAction: 0\n};\n\n// Return the module prepared for use.\nexport default {\n namespaced: true,\n state,\n actions,\n mutations\n};\n","'use strict';\n\n// Specified actions for mutating the notes store; this controls Stage rendering.\nexport default {\n\n // Set the debug mode for the Stage.\n setDebug({ commit }, { debug }) {\n commit('setDebug', { debug });\n }\n};\n","'use strict';\n\n// Export state mutation functions.\nexport default {\n\n // Updates the debug status.\n setDebug (state, { debug }) {\n state.debug = debug;\n }\n};\n","'use strict';\n\n// Import our module information.\nimport actions from './actions';\nimport mutations from './mutations';\n\n// Specify state for this module.\nconst state = {\n\n\t// Whether or not the page should be displaying an FPS tracker.\n\tdebug: false\n};\n\n// Return the module prepared for use.\nexport default {\n namespaced: true,\n state,\n actions,\n mutations\n};\n","\"use strict\";\n\n// Imports.\nimport { createStore } from \"vuex\";\n\n// Import data modules for the store.\nimport alert from \"./alert\";\nimport ethers from \"./ethers\";\nimport visibility from \"./visibility\";\nimport table from \"./table\";\n\n// Export the data store using our modules.\nexport default createStore({\n state: {},\n mutations: {},\n actions: {},\n modules: {\n alert,\n ethers,\n visibility,\n\t\ttable\n }\n});\n","import { render } from \"./Ethereum.vue?vue&type=template&id=4aaa803e\"\nimport script from \"./Ethereum.vue?vue&type=script&lang=js\"\nexport * from \"./Ethereum.vue?vue&type=script&lang=js\"\nscript.render = render\n\nexport default script","import { render } from \"./Mint.vue?vue&type=template&id=cb61f5c8&scoped=true\"\nimport script from \"./Mint.vue?vue&type=script&lang=js\"\nexport * from \"./Mint.vue?vue&type=script&lang=js\"\n\nimport \"./Mint.vue?vue&type=style&index=0&id=cb61f5c8&scoped=true&lang=css\"\nscript.render = render\nscript.__scopeId = \"data-v-cb61f5c8\"\n\nexport default script","\n\n\n","import { render } from \"./Terms.vue?vue&type=template&id=a9b5f02e&scoped=true\"\nimport script from \"./Terms.vue?vue&type=script&lang=js\"\nexport * from \"./Terms.vue?vue&type=script&lang=js\"\n\nimport \"./Terms.vue?vue&type=style&index=0&id=a9b5f02e&scoped=true&lang=scss\"\nscript.render = render\nscript.__scopeId = \"data-v-a9b5f02e\"\n\nexport default script","\n\n\n\n\n","\n\n\n\n\n","import { render } from \"./NoteItem.vue?vue&type=template&id=1470ff28&scoped=true\"\nimport script from \"./NoteItem.vue?vue&type=script&lang=js\"\nexport * from \"./NoteItem.vue?vue&type=script&lang=js\"\n\nimport \"./NoteItem.vue?vue&type=style&index=0&id=1470ff28&scoped=true&lang=css\"\nscript.render = render\nscript.__scopeId = \"data-v-1470ff28\"\n\nexport default script","import { render } from \"./Profile.vue?vue&type=template&id=7fa833c5&scoped=true\"\nimport script from \"./Profile.vue?vue&type=script&lang=js\"\nexport * from \"./Profile.vue?vue&type=script&lang=js\"\n\nimport \"./Profile.vue?vue&type=style&index=0&id=7fa833c5&scoped=true&lang=css\"\nscript.render = render\nscript.__scopeId = \"data-v-7fa833c5\"\n\nexport default script","\n\n\n\n\n","\n\n\n\n\n","import { render } from \"./Button.vue?vue&type=template&id=c09192da&scoped=true\"\nimport script from \"./Button.vue?vue&type=script&lang=js\"\nexport * from \"./Button.vue?vue&type=script&lang=js\"\n\nimport \"./Button.vue?vue&type=style&index=0&id=c09192da&scoped=true&lang=css\"\nscript.render = render\nscript.__scopeId = \"data-v-c09192da\"\n\nexport default script","import { render } from \"./NotFound.vue?vue&type=template&id=528ff922&scoped=true\"\nimport script from \"./NotFound.vue?vue&type=script&lang=js\"\nexport * from \"./NotFound.vue?vue&type=script&lang=js\"\n\nimport \"./NotFound.vue?vue&type=style&index=0&id=528ff922&scoped=true&lang=scss\"\nscript.render = render\nscript.__scopeId = \"data-v-528ff922\"\n\nexport default script","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","import { render } from \"./WalletModal.vue?vue&type=template&id=47656a86&scoped=true\"\nimport script from \"./WalletModal.vue?vue&type=script&lang=js\"\nexport * from \"./WalletModal.vue?vue&type=script&lang=js\"\n\nimport \"./WalletModal.vue?vue&type=style&index=0&id=47656a86&scoped=true&lang=css\"\nscript.render = render\nscript.__scopeId = \"data-v-47656a86\"\n\nexport default script","\n\n\n\n\n","\n","import { render } from \"./CloseIcon.vue?vue&type=template&id=0227ebf8\"\nconst script = {}\nscript.render = render\n\nexport default script","\n","import { render } from \"./DiscordIcon.vue?vue&type=template&id=c3781de8\"\nconst script = {}\nscript.render = render\n\nexport default script","\n","import { render } from \"./TwitterIcon.vue?vue&type=template&id=8e4e849e\"\nconst script = {}\nscript.render = render\n\nexport default script","import { render } from \"./MobileMenu.vue?vue&type=template&id=000831fe&scoped=true\"\nimport script from \"./MobileMenu.vue?vue&type=script&lang=js\"\nexport * from \"./MobileMenu.vue?vue&type=script&lang=js\"\n\nimport \"./MobileMenu.vue?vue&type=style&index=0&id=000831fe&scoped=true&lang=scss\"\nscript.render = render\nscript.__scopeId = \"data-v-000831fe\"\n\nexport default script","import { render } from \"./Header.vue?vue&type=template&id=59280f94&scoped=true\"\nimport script from \"./Header.vue?vue&type=script&lang=js\"\nexport * from \"./Header.vue?vue&type=script&lang=js\"\n\nimport \"./Header.vue?vue&type=style&index=0&id=59280f94&scoped=true&lang=scss\"\nscript.render = render\nscript.__scopeId = \"data-v-59280f94\"\n\nexport default script","\n\n\n\n\n","import { render } from \"./Footer.vue?vue&type=template&id=0f392209&scoped=true\"\nimport script from \"./Footer.vue?vue&type=script&lang=js\"\nexport * from \"./Footer.vue?vue&type=script&lang=js\"\n\nimport \"./Footer.vue?vue&type=style&index=0&id=0f392209&scoped=true&lang=scss\"\nscript.render = render\nscript.__scopeId = \"data-v-0f392209\"\n\nexport default script","import { render } from \"./MainLayout.vue?vue&type=template&id=0743f458&scoped=true\"\nimport script from \"./MainLayout.vue?vue&type=script&lang=js\"\nexport * from \"./MainLayout.vue?vue&type=script&lang=js\"\n\nimport \"./MainLayout.vue?vue&type=style&index=0&id=0743f458&scoped=true&lang=css\"\nscript.render = render\nscript.__scopeId = \"data-v-0743f458\"\n\nexport default script","'use strict';\n\n// Imports.\nimport { createRouter, createWebHistory } from 'vue-router';\n\n// Page imports.\nimport Home from '@/pages/home/Home.vue';\nimport About from '@/pages/about/About.vue';\nimport Attributions from '@/pages/attributions/Attributions.vue';\nimport FAQ from '@/pages/faq/FAQ.vue';\nimport Mint from '@/pages/mint/Mint.vue';\nimport Terms from '@/pages/terms/Terms.vue';\nimport Profile from '@/pages/profile/Profile.vue';\nimport NotFound from '@/pages/not-found/NotFound.vue';\n\n// Layout imports.\nimport MainLayout from './layouts/MainLayout.vue';\n\n// Create routes.\nconst routes = [\n {\n\t\tpath: '/',\n name: 'MainLayout',\n component: MainLayout,\n\t\tchildren: [\n\t\t\t{ path: '/', name: 'Home', component: Home },\n\t\t\t{\n\t\t path: '/about',\n\t\t name: 'About',\n\t\t component: About\n\t\t },\n\t\t\t{\n\t\t path: '/attributions',\n\t\t name: 'Attributions',\n\t\t component: Attributions\n\t\t },\n\t\t {\n\t\t path: '/faq',\n\t\t name: 'FAQ',\n\t\t component: FAQ\n\t\t },\n\t\t {\n\t\t path: '/mint',\n\t\t name: 'Mint',\n\t\t component: Mint\n\t\t },\n\t\t {\n\t\t path: '/terms',\n\t\t name: 'Terms',\n\t\t component: Terms\n\t\t },\n\t\t\t{\n\t\t path: '/profile/:address',\n\t\t name: 'Profile',\n\t\t component: Profile\n\t\t },\n\t\t\t{ path: '/:pathMatch(.*)*', component: NotFound }\n\t\t]\n }\n];\n\n// Set up the Vue router to operate in web history mode.\nconst router = createRouter({\n history: createWebHistory(process.env.BASE_URL),\n routes\n});\nexport default router;\n","'use strict';\n\n// Component imports.\nimport { createApp } from 'vue';\nimport VueFinalModal from 'vue-final-modal';\nimport Toaster from '@meforma/vue-toaster';\nimport LoadScript from 'vue-plugin-load-script';\nimport KProgress from 'k-progress-v3';\n\n// Style imports.\nimport './assets/style/main.scss';\n\n// Application imports.\nimport App from './App.vue';\nimport router from './router';\nimport store from './store';\n\n// Create our application with required dependencies.\nconst app = createApp(App)\n .use(router)\n .use(store)\n .use(VueFinalModal())\n .use(Toaster)\n .use(LoadScript)\n .component('k-progress', KProgress)\n .mount('#app');\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Terms.vue?vue&type=style&index=0&id=a9b5f02e&scoped=true&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Mint.vue?vue&type=style&index=0&id=cb61f5c8&scoped=true&lang=css\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Attributions.vue?vue&type=style&index=0&id=1ff5503e&scoped=true&lang=css\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./MainLayout.vue?vue&type=style&index=0&id=0743f458&scoped=true&lang=css\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./WalletModal.vue?vue&type=style&index=0&id=47656a86&scoped=true&lang=css\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Profile.vue?vue&type=style&index=0&id=7fa833c5&scoped=true&lang=css\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./About.vue?vue&type=style&index=0&id=bc3b8280&scoped=true&lang=css\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Button.vue?vue&type=style&index=0&id=c09192da&scoped=true&lang=css\"","'use strict';\n\n// Imports.\nimport * as THREE from 'three';\nimport * as CANNON from 'cannon-es';\n\n/**\n A class for managing dice rolling.\n*/\nclass DiceManagerClass {\n constructor () {\n this.world = null;\n }\n\n setWorld (world) {\n this.world = world;\n\n this.diceBodyMaterial = new CANNON.Material();\n this.floorBodyMaterial = new CANNON.Material();\n this.barrierBodyMaterial = new CANNON.Material();\n\n world.addContactMaterial(\n new CANNON.ContactMaterial(this.floorBodyMaterial, this.diceBodyMaterial, { friction: 0.01, restitution: 0.5 })\n );\n world.addContactMaterial(\n new CANNON.ContactMaterial(this.barrierBodyMaterial, this.diceBodyMaterial, { friction: 0, restitution: 1.0 })\n );\n world.addContactMaterial(\n new CANNON.ContactMaterial(this.diceBodyMaterial, this.diceBodyMaterial, { friction: 0, restitution: 0.5 })\n );\n }\n\n prepareValues(diceValues) {\n if (this.throwRunning) throw new Error('Cannot start another throw. Please wait, till the current throw is finished.');\n\n for (let i = 0; i < diceValues.length; i++) {\n if (diceValues[i].value < 1 || diceValues[i].dice.values < diceValues[i].value) {\n throw new Error('Cannot throw die to value ' + diceValues[i].value + ', because it has only ' + diceValues[i].dice.values + ' sides.');\n }\n }\n\n this.throwRunning = true;\n\n for (let i = 0; i < diceValues.length; i++) {\n diceValues[i].dice.simulationRunning = true;\n diceValues[i].vectors = diceValues[i].dice.getCurrentVectors();\n diceValues[i].stableCount = 0;\n }\n\n let check = () => {\n let allStable = true;\n for (let i = 0; i < diceValues.length; i++) {\n if (diceValues[i].dice.isFinished()) {\n diceValues[i].stableCount++;\n } else {\n diceValues[i].stableCount = 0;\n }\n\n if (diceValues[i].stableCount < 50) {\n allStable = false;\n }\n }\n\n if (allStable) {\n DiceManager.world.removeEventListener('postStep', check);\n\n for (let i = 0; i < diceValues.length; i++) {\n diceValues[i].dice.shiftUpperValue(diceValues[i].value);\n diceValues[i].dice.resetBody();\n diceValues[i].dice.setVectors(diceValues[i].vectors);\n diceValues[i].dice.simulationRunning = false;\n }\n\n this.throwRunning = false;\n } else {\n DiceManager.world.step(DiceManager.world.dt);\n }\n };\n\n this.world.addEventListener('postStep', check);\n }\n}\n\n/**\n Export a generic dice object.\n*/\nclass DiceObject {\n\n /**\n Construct a new die with optional size and colors.\n */\n constructor (options) {\n options = this.setDefaults(options, {\n size: 100,\n fontColor: '#000000',\n backColor: '#ffffff'\n });\n\n this.object = null;\n this.size = options.size;\n this.invertUpside = false;\n\n this.materialOptions = {\n specular: 0x172022,\n color: 0xf0f0f0,\n shininess: 40,\n flatShading: true\n };\n this.labelColor = options.fontColor;\n this.diceColor = options.backColor;\n }\n\n /**\n Populate the default values in a given object.\n */\n setDefaults (options, defaults) {\n options = options || {};\n for (let key in defaults) {\n if (!defaults.hasOwnProperty(key)) {\n continue;\n }\n if (!(key in options)) {\n options[key] = defaults[key];\n }\n }\n return options;\n }\n\n emulateThrow(callback) {\n let stableCount = 0;\n\n let check = () => {\n if (this.isFinished()) {\n stableCount++;\n\n if (stableCount === 50) {\n DiceManager.world.removeEventListener('postStep', check);\n callback(this.getUpsideValue());\n }\n } else {\n stableCount = 0;\n }\n\n DiceManager.world.step(DiceManager.world.dt);\n };\n\n DiceManager.world.addEventListener('postStep', check);\n }\n\n isFinished() {\n let threshold = 1;\n\n let angularVelocity = this.object.body.angularVelocity;\n let velocity = this.object.body.velocity;\n\n return (Math.abs(angularVelocity.x) < threshold && Math.abs(angularVelocity.y) < threshold && Math.abs(angularVelocity.z) < threshold &&\n Math.abs(velocity.x) < threshold && Math.abs(velocity.y) < threshold && Math.abs(velocity.z) < threshold);\n }\n\n getUpsideValue() {\n let vector = new THREE.Vector3(0, this.invertUpside ? -1 : 1);\n let closest_face;\n let closest_angle = Math.PI * 2;\n\n let normals = this.object.geometry.getAttribute('normal').array;\n for (let i = 0; i < this.object.geometry.groups.length; ++i) {\n let face = this.object.geometry.groups[i];\n if (face.materialIndex === 0) continue;\n\n //Each group consists in 3 vertices of 3 elements (x, y, z) so the offset between faces in the Float32BufferAttribute is 9\n let startVertex = i * 9;\n let normal = new THREE.Vector3(normals[startVertex], normals[startVertex + 1], normals[startVertex + 2]);\n let angle = normal.clone().applyQuaternion(this.object.body.quaternion).angleTo(vector);\n if (angle < closest_angle) {\n closest_angle = angle;\n closest_face = face;\n }\n }\n\n return closest_face.materialIndex - 1;\n }\n\n getCurrentVectors() {\n return {\n position: this.object.body.position.clone(),\n quaternion: this.object.body.quaternion.clone(),\n velocity: this.object.body.velocity.clone(),\n angularVelocity: this.object.body.angularVelocity.clone()\n };\n }\n\n setVectors(vectors) {\n this.object.body.position = vectors.position;\n this.object.body.quaternion = vectors.quaternion;\n this.object.body.velocity = vectors.velocity;\n this.object.body.angularVelocity = vectors.angularVelocity;\n }\n\n shiftUpperValue(toValue) {\n let geometry = this.object.geometry.clone();\n\n let fromValue = this.getUpsideValue();\n for (let i = 0, l = geometry.groups.length; i < l; ++i) {\n let materialIndex = geometry.groups[i].materialIndex;\n if (materialIndex === 0) continue;\n\n materialIndex += toValue - fromValue - 1;\n while (materialIndex > this.values) materialIndex -= this.values;\n while (materialIndex < 1) materialIndex += this.values;\n\n geometry.groups[i].materialIndex = materialIndex + 1;\n }\n\n this.updateMaterialsForValue(toValue - fromValue);\n\n this.object.geometry = geometry;\n }\n\n makeGeometry(vertices, faces, radius, tab, af) {\n let geom = new THREE.BufferGeometry();\n\n for (let i = 0; i < vertices.length; ++i) {\n vertices[i] = vertices[i].multiplyScalar(radius);\n }\n\n let positions = [];\n const normals = [];\n const uvs = [];\n\n const cb = new THREE.Vector3();\n const ab = new THREE.Vector3();\n let materialIndex;\n let faceFirstVertexIndex = 0;\n\n for (let i = 0; i < faces.length; ++i) {\n let ii = faces[i], fl = ii.length - 1;\n let aa = Math.PI * 2 / fl;\n materialIndex = ii[fl] + 1;\n for (let j = 0; j < fl - 2; ++j) {\n\n //Vertices\n positions.push(...vertices[ii[0]].toArray());\n positions.push(...vertices[ii[j + 1]].toArray());\n positions.push(...vertices[ii[j + 2]].toArray());\n\n // Flat face normals\n cb.subVectors( vertices[ii[j + 2]], vertices[ii[j + 1]] );\n ab.subVectors( vertices[ii[0]], vertices[ii[j + 1]] );\n cb.cross( ab );\n cb.normalize();\n\n // Vertex Normals\n normals.push(...cb.toArray());\n normals.push(...cb.toArray());\n normals.push(...cb.toArray());\n\n //UVs\n uvs.push((Math.cos(af) + 1 + tab) / 2 / (1 + tab), (Math.sin(af) + 1 + tab) / 2 / (1 + tab));\n uvs.push((Math.cos(aa * (j + 1) + af) + 1 + tab) / 2 / (1 + tab), (Math.sin(aa * (j + 1) + af) + 1 + tab) / 2 / (1 + tab));\n uvs.push((Math.cos(aa * (j + 2) + af) + 1 + tab) / 2 / (1 + tab), (Math.sin(aa * (j + 2) + af) + 1 + tab) / 2 / (1 + tab));\n\n }\n\n //Set Group for face materials.\n let numOfVertices = (fl - 2) * 3;\n for (let i = 0; i < numOfVertices/3; i++) {\n geom.addGroup(faceFirstVertexIndex, 3, materialIndex);\n faceFirstVertexIndex += 3;\n }\n\n }\n\n\n geom.setAttribute( 'position', new THREE.Float32BufferAttribute( positions, 3 ) );\n geom.setAttribute( 'normal', new THREE.Float32BufferAttribute( normals, 3 ) );\n geom.setAttribute( 'uv', new THREE.Float32BufferAttribute( uvs, 2 ) );\n geom.boundingSphere = new THREE.Sphere(new THREE.Vector3(), radius);\n return geom;\n }\n\n /**\n Create geometry for the chamfers on the dice.\n */\n getChamferGeometry (vectors, faces, chamfer) {\n let chamfer_vectors = [], chamfer_faces = [], corner_faces = new Array(vectors.length);\n for (let i = 0; i < vectors.length; ++i) corner_faces[i] = [];\n for (let i = 0; i < faces.length; ++i) {\n let ii = faces[i], fl = ii.length - 1;\n let center_point = new THREE.Vector3();\n let face = new Array(fl);\n for (let j = 0; j < fl; ++j) {\n let vv = vectors[ii[j]].clone();\n center_point.add(vv);\n corner_faces[ii[j]].push(face[j] = chamfer_vectors.push(vv) - 1);\n }\n center_point.divideScalar(fl);\n for (let j = 0; j < fl; ++j) {\n let vv = chamfer_vectors[face[j]];\n vv.subVectors(vv, center_point).multiplyScalar(chamfer).addVectors(vv, center_point);\n }\n face.push(ii[fl]);\n chamfer_faces.push(face);\n }\n for (let i = 0; i < faces.length - 1; ++i) {\n for (let j = i + 1; j < faces.length; ++j) {\n let pairs = [], lastm = -1;\n for (let m = 0; m < faces[i].length - 1; ++m) {\n let n = faces[j].indexOf(faces[i][m]);\n if (n >= 0 && n < faces[j].length - 1) {\n if (lastm >= 0 && m !== lastm + 1) pairs.unshift([i, m], [j, n]);\n else pairs.push([i, m], [j, n]);\n lastm = m;\n }\n }\n if (pairs.length !== 4) continue;\n chamfer_faces.push([chamfer_faces[pairs[0][0]][pairs[0][1]],\n chamfer_faces[pairs[1][0]][pairs[1][1]],\n chamfer_faces[pairs[3][0]][pairs[3][1]],\n chamfer_faces[pairs[2][0]][pairs[2][1]], -1]);\n }\n }\n for (let i = 0; i < corner_faces.length; ++i) {\n let cf = corner_faces[i], face = [cf[0]], count = cf.length - 1;\n while (count) {\n for (let m = faces.length; m < chamfer_faces.length; ++m) {\n let index = chamfer_faces[m].indexOf(face[face.length - 1]);\n if (index >= 0 && index < 4) {\n if (--index === -1) index = 3;\n let next_vertex = chamfer_faces[m][index];\n if (cf.indexOf(next_vertex) >= 0) {\n face.push(next_vertex);\n break;\n }\n }\n }\n --count;\n }\n face.push(-1);\n chamfer_faces.push(face);\n }\n return { vectors: chamfer_vectors, faces: chamfer_faces };\n }\n\n /**\n Create the Cannon physics shape.\n */\n createShape (vertices, faces, radius) {\n let cv = new Array(vertices.length);\n let cf = new Array(faces.length);\n for (let i = 0; i < vertices.length; ++i) {\n let v = vertices[i];\n cv[i] = new CANNON.Vec3(v.x * radius, v.y * radius, v.z * radius);\n }\n for (let i = 0; i < faces.length; ++i) {\n cf[i] = faces[i].slice(0, faces[i].length - 1);\n }\n return new CANNON.ConvexPolyhedron({ vertices: cv, faces: cf });\n }\n\n /**\n Generate geometry for this die.\n */\n getGeometry () {\n let radius = this.size * this.scaleFactor;\n let vectors = new Array(this.vertices.length);\n for (let i = 0; i < this.vertices.length; ++i) {\n vectors[i] = (new THREE.Vector3).fromArray(this.vertices[i]).normalize();\n }\n let chamferGeometry = this.getChamferGeometry(vectors, this.faces, this.chamfer);\n let geometry = this.makeGeometry(chamferGeometry.vectors, chamferGeometry.faces, radius, this.tab, this.af);\n geometry.cannon_shape = this.createShape(vectors, this.faces, radius);\n return geometry;\n }\n\n calculateTextureSize(approx) {\n return Math.max(128, Math.pow(2, Math.floor(Math.log(approx) / Math.log(2))));\n }\n\n createTextTexture(text, color, backColor) {\n let canvas = document.createElement(\"canvas\");\n let context = canvas.getContext(\"2d\");\n let ts = this.calculateTextureSize(this.size / 2 + this.size * this.textMargin) * 2;\n canvas.width = canvas.height = ts;\n context.font = ts / (1 + 2 * this.textMargin) + \"pt Arial\";\n context.fillStyle = backColor;\n context.fillRect(0, 0, canvas.width, canvas.height);\n context.textAlign = \"center\";\n context.textBaseline = \"middle\";\n context.fillStyle = color;\n context.fillText(text, canvas.width / 2, canvas.height / 2);\n let texture = new THREE.Texture(canvas);\n texture.needsUpdate = true;\n return texture;\n }\n\n getMaterials() {\n let materials = [];\n for (let i = 0; i < this.faceTexts.length; ++i) {\n let texture = null;\n if (this.customTextTextureFunction) {\n texture = this.customTextTextureFunction(this.faceTexts[i], this.labelColor, this.diceColor);\n } else {\n texture = this.createTextTexture(this.faceTexts[i], this.labelColor, this.diceColor);\n }\n\n materials.push(new THREE.MeshPhongMaterial(Object.assign({}, this.materialOptions, { map: texture })));\n }\n return materials;\n }\n\n getObject() {\n return this.object;\n }\n\n /**\n Create a physics object for the given die.\n */\n create () {\n if (!DiceManager.world) {\n throw new Error('You must call DiceManager.setWorld(world) first.');\n }\n this.object = new THREE.Mesh(this.getGeometry(), this.getMaterials());\n\n this.object.reveiceShadow = true;\n this.object.castShadow = true;\n this.object.diceObject = this;\n\n this.object.body = new CANNON.Body({\n mass: this.mass,\n shape: this.object.geometry.cannon_shape,\n material: DiceManager.diceBodyMaterial\n });\n\n this.object.body.linearDamping = 0.1;\n this.object.body.angularDamping = 0.1;\n DiceManager.world.addBody(this.object.body);\n\n return this.object;\n }\n\n updateMeshFromBody() {\n if (!this.simulationRunning) {\n this.object.position.copy(this.object.body.position);\n this.object.quaternion.copy(this.object.body.quaternion);\n }\n }\n\n updateBodyFromMesh() {\n this.object.body.position.copy(this.object.position);\n this.object.body.quaternion.copy(this.object.quaternion);\n }\n\n resetBody() {\n this.object.body.vlambda = new CANNON.Vec3();\n //this.object.body.collisionResponse = true;\n this.object.body.position = new CANNON.Vec3();\n this.object.body.previousPosition = new CANNON.Vec3();\n this.object.body.initPosition = new CANNON.Vec3();\n this.object.body.velocity = new CANNON.Vec3();\n this.object.body.initVelocity = new CANNON.Vec3();\n this.object.body.force = new CANNON.Vec3();\n //this.object.body.sleepState = 0;\n //this.object.body.timeLastSleepy = 0;\n //this.object.body._wakeUpAfterNarrowphase = false;\n this.object.body.torque = new CANNON.Vec3();\n this.object.body.quaternion = new CANNON.Quaternion();\n this.object.body.initQuaternion = new CANNON.Quaternion();\n this.object.body.angularVelocity = new CANNON.Vec3();\n this.object.body.initAngularVelocity = new CANNON.Vec3();\n this.object.body.interpolatedPosition = new CANNON.Vec3();\n this.object.body.interpolatedQuaternion = new CANNON.Quaternion();\n this.object.body.inertia = new CANNON.Vec3();\n this.object.body.invInertia = new CANNON.Vec3();\n this.object.body.invInertiaWorld = new CANNON.Mat3();\n //this.object.body.invMassSolve = 0;\n this.object.body.invInertiaSolve = new CANNON.Vec3();\n this.object.body.invInertiaWorldSolve = new CANNON.Mat3();\n //this.object.body.aabb = new CANNON.AABB();\n //this.object.body.aabbNeedsUpdate = true;\n this.object.body.wlambda = new CANNON.Vec3();\n\n this.object.body.updateMassProperties();\n }\n\n updateMaterialsForValue(diceValue) {}\n}\n\nexport class DiceD4 extends DiceObject {\n constructor(options) {\n super(options);\n\n this.tab = -0.1;\n this.af = Math.PI * 7 / 6;\n this.chamfer = 0.96;\n this.vertices = [[1, 1, 1], [-1, -1, 1], [-1, 1, -1], [1, -1, -1]];\n this.faces = [[1, 0, 2, 1], [0, 1, 3, 2], [0, 3, 2, 3], [1, 2, 3, 4]];\n this.scaleFactor = 1.2;\n this.values = 4;\n this.d4FaceTexts = [\n [[], [0, 0, 0], [2, 4, 3], [1, 3, 4], [2, 1, 4], [1, 2, 3]],\n [[], [0, 0, 0], [2, 3, 4], [3, 1, 4], [2, 4, 1], [3, 2, 1]],\n [[], [0, 0, 0], [4, 3, 2], [3, 4, 1], [4, 2, 1], [3, 1, 2]],\n [[], [0, 0, 0], [4, 2, 3], [1, 4, 3], [4, 1, 2], [1, 3, 2]]\n ];\n this.faceTexts = this.d4FaceTexts[0];\n this.updateMaterialsForValue = function(diceValue) {\n if (diceValue < 0) diceValue += 4;\n this.faceTexts = this.d4FaceTexts[diceValue];\n this.object.material = this.getMaterials();\n };\n this.customTextTextureFunction = function (text, color, backColor) {\n let canvas = document.createElement(\"canvas\");\n let context = canvas.getContext(\"2d\");\n let ts = this.calculateTextureSize(this.size / 2 + this.size * 2) * 2;\n canvas.width = canvas.height = ts;\n context.font = ts / 5 + \"pt Arial\";\n context.fillStyle = backColor;\n context.fillRect(0, 0, canvas.width, canvas.height);\n context.textAlign = \"center\";\n context.textBaseline = \"middle\";\n context.fillStyle = color;\n for (let i in text) {\n context.fillText(text[i], canvas.width / 2,\n canvas.height / 2 - ts * 0.3);\n context.translate(canvas.width / 2, canvas.height / 2);\n context.rotate(Math.PI * 2 / 3);\n context.translate(-canvas.width / 2, -canvas.height / 2);\n }\n let texture = new THREE.Texture(canvas);\n texture.needsUpdate = true;\n return texture;\n };\n this.mass = 300;\n this.inertia = 5;\n this.invertUpside = true;\n\n this.create();\n }\n}\n\n/**\n Export a d6.\n*/\nexport class DiceD6 extends DiceObject {\n constructor(options) {\n super(options);\n this.tab = 0.1;\n this.af = Math.PI / 4;\n this.chamfer = 0.96;\n this.vertices = [ [-1, -1, -1], [1, -1, -1], [1, 1, -1], [-1, 1, -1], [-1, -1, 1], [1, -1, 1], [1, 1, 1], [-1, 1, 1] ];\n this.faces = [ [0, 3, 2, 1, 1], [1, 2, 6, 5, 2], [0, 1, 5, 4, 3], [3, 7, 6, 2, 4], [0, 4, 7, 3, 5], [4, 5, 6, 7, 6] ];\n this.scaleFactor = 0.9;\n this.values = 6;\n this.faceTexts = [ ' ', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20' ];\n this.textMargin = 1.0;\n this.mass = 300;\n this.inertia = 13;\n this.create();\n }\n};\n\nexport class DiceD8 extends DiceObject {\n constructor(options) {\n super(options);\n\n this.tab = 0;\n this.af = -Math.PI / 4 / 2;\n this.chamfer = 0.965;\n this.vertices = [[1, 0, 0], [-1, 0, 0], [0, 1, 0], [0, -1, 0], [0, 0, 1], [0, 0, -1]];\n this.faces = [[0, 2, 4, 1], [0, 4, 3, 2], [0, 3, 5, 3], [0, 5, 2, 4], [1, 3, 4, 5],\n [1, 4, 2, 6], [1, 2, 5, 7], [1, 5, 3, 8]];\n this.scaleFactor = 1;\n this.values = 8;\n this.faceTexts = [' ', '0', '1', '2', '3', '4', '5', '6', '7', '8',\n '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20'];\n this.textMargin = 1.2;\n this.mass = 340;\n this.inertia = 10;\n\n this.create();\n }\n}\n\nexport class DiceD10 extends DiceObject {\n\n constructor(options) {\n super(options);\n\n this.tab = 0;\n this.af = Math.PI * 6 / 5;\n this.chamfer = 0.945;\n this.vertices = [];\n this.faces = [[5, 7, 11, 0], [4, 2, 10, 1], [1, 3, 11, 2], [0, 8, 10, 3], [7, 9, 11, 4],\n [8, 6, 10, 5], [9, 1, 11, 6], [2, 0, 10, 7], [3, 5, 11, 8], [6, 4, 10, 9],\n [1, 0, 2, -1], [1, 2, 3, -1], [3, 2, 4, -1], [3, 4, 5, -1], [5, 4, 6, -1],\n [5, 6, 7, -1], [7, 6, 8, -1], [7, 8, 9, -1], [9, 8, 0, -1], [9, 0, 1, -1]];\n\n for (let i = 0, b = 0; i < 10; ++i, b += Math.PI * 2 / 10) {\n this.vertices.push([Math.cos(b), Math.sin(b), 0.105 * (i % 2 ? 1 : -1)]);\n }\n this.vertices.push([0, 0, -1]);\n this.vertices.push([0, 0, 1]);\n\n this.scaleFactor = 0.9;\n this.values = 10;\n this.faceTexts = [' ', '0', '1', '2', '3', '4', '5', '6', '7', '8',\n '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20'];\n this.textMargin = 1.0;\n this.mass = 350;\n this.inertia = 9;\n\n this.create();\n }\n}\n\nexport class DiceD12 extends DiceObject {\n constructor(options) {\n super(options);\n\n let p = (1 + Math.sqrt(5)) / 2;\n let q = 1 / p;\n\n this.tab = 0.2;\n this.af = -Math.PI / 4 / 2;\n this.chamfer = 0.968;\n this.vertices = [[0, q, p], [0, q, -p], [0, -q, p], [0, -q, -p], [p, 0, q],\n [p, 0, -q], [-p, 0, q], [-p, 0, -q], [q, p, 0], [q, -p, 0], [-q, p, 0],\n [-q, -p, 0], [1, 1, 1], [1, 1, -1], [1, -1, 1], [1, -1, -1], [-1, 1, 1],\n [-1, 1, -1], [-1, -1, 1], [-1, -1, -1]];\n this.faces = [[2, 14, 4, 12, 0, 1], [15, 9, 11, 19, 3, 2], [16, 10, 17, 7, 6, 3], [6, 7, 19, 11, 18, 4],\n [6, 18, 2, 0, 16, 5], [18, 11, 9, 14, 2, 6], [1, 17, 10, 8, 13, 7], [1, 13, 5, 15, 3, 8],\n [13, 8, 12, 4, 5, 9], [5, 4, 14, 9, 15, 10], [0, 12, 8, 10, 16, 11], [3, 19, 7, 17, 1, 12]];\n this.scaleFactor = 0.9;\n this.values = 12;\n this.faceTexts = [' ', '0', '1', '2', '3', '4', '5', '6', '7', '8',\n '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20'];\n this.textMargin = 1.0;\n this.mass = 350;\n this.inertia = 8;\n\n this.create();\n }\n}\n\nexport class DiceD20 extends DiceObject {\n constructor(options) {\n super(options);\n\n let t = (1 + Math.sqrt(5)) / 2;\n\n this.tab = -0.2;\n this.af = -Math.PI / 4 / 2;\n this.chamfer = 0.955;\n this.vertices = [[-1, t, 0], [1, t, 0], [-1, -t, 0], [1, -t, 0],\n [0, -1, t], [0, 1, t], [0, -1, -t], [0, 1, -t],\n [t, 0, -1], [t, 0, 1], [-t, 0, -1], [-t, 0, 1]];\n this.faces = [[0, 11, 5, 1], [0, 5, 1, 2], [0, 1, 7, 3], [0, 7, 10, 4], [0, 10, 11, 5],\n [1, 5, 9, 6], [5, 11, 4, 7], [11, 10, 2, 8], [10, 7, 6, 9], [7, 1, 8, 10],\n [3, 9, 4, 11], [3, 4, 2, 12], [3, 2, 6, 13], [3, 6, 8, 14], [3, 8, 9, 15],\n [4, 9, 5, 16], [2, 4, 11, 17], [6, 2, 10, 18], [8, 6, 7, 19], [9, 8, 1, 20]];\n this.scaleFactor = 1;\n this.values = 20;\n this.faceTexts = [' ', '0', '1', '2', '3', '4', '5', '6', '7', '8',\n '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20'];\n this.textMargin = 1.0;\n this.mass = 400;\n this.inertia = 6;\n\n this.create();\n }\n}\n\n//---------------------------------------------//\n\nexport const DiceManager = new DiceManagerClass();\n\nif (typeof define === 'function' && define.amd) {\n define(function () {\n return {\n DiceManager: DiceManager,\n DiceD4: DiceD4,\n DiceD6: DiceD6,\n DiceD8: DiceD8,\n DiceD10: DiceD10,\n DiceD12: DiceD12,\n DiceD20: DiceD20,\n };\n });\n} else if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\n module.exports = {\n DiceManager: DiceManager,\n DiceD4: DiceD4,\n DiceD6: DiceD6,\n DiceD8: DiceD8,\n DiceD10: DiceD10,\n DiceD12: DiceD12,\n DiceD20: DiceD20,\n };\n} else {\n window.Dice = {\n DiceManager: DiceManager,\n DiceD4: DiceD4,\n DiceD6: DiceD6,\n DiceD8: DiceD8,\n DiceD10: DiceD10,\n DiceD12: DiceD12,\n DiceD20: DiceD20,\n };\n}\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./FAQ.vue?vue&type=style&index=0&id=eb260b80&scoped=true&lang=css\"","module.exports = __webpack_public_path__ + \"img/metamask-icon.bbc5afcc.svg\";","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Footer.vue?vue&type=style&index=0&id=0f392209&scoped=true&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Header.vue?vue&type=style&index=0&id=59280f94&scoped=true&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Home.vue?vue&type=style&index=0&id=7954f402&scoped=true&lang=css\""],"sourceRoot":""}