'use strict'; const MANIFEST = 'flutter-app-manifest'; const TEMP = 'flutter-temp-cache'; const CACHE_NAME = 'flutter-app-cache'; const RESOURCES = {".git/COMMIT_EDITMSG": "678e5e019a79526d0fcca5e29f6e5f78", ".git/config": "60b6b72b4099ebaecfb6179e8b2e5f9e", ".git/description": "a0a7c3fff21f2aea3cfa1d0316dd816c", ".git/HEAD": "4cf2d64e44205fe628ddd534e1151b58", ".git/hooks/applypatch-msg.sample": "ce562e08d8098926a3862fc6e7905199", ".git/hooks/commit-msg.sample": "579a3c1e12a1e74a98169175fb913012", ".git/hooks/fsmonitor-watchman.sample": "a0b2633a2c8e97501610bd3f73da66fc", ".git/hooks/post-update.sample": "2b7ea5cee3c49ff53d41e00785eb974c", ".git/hooks/pre-applypatch.sample": "054f9ffb8bfe04a599751cc757226dda", ".git/hooks/pre-commit.sample": "305eadbbcd6f6d2567e033ad12aabbc4", ".git/hooks/pre-merge-commit.sample": "39cb268e2a85d436b9eb6f47614c3cbc", ".git/hooks/pre-push.sample": "2c642152299a94e05ea26eae11993b13", ".git/hooks/pre-rebase.sample": "56e45f2bcbc8226d2b4200f7c46371bf", ".git/hooks/pre-receive.sample": "2ad18ec82c20af7b5926ed9cea6aeedd", ".git/hooks/prepare-commit-msg.sample": "2b5c047bdb474555e1787db32b2d2fc5", ".git/hooks/push-to-checkout.sample": "c7ab00c7784efeadad3ae9b228d4b4db", ".git/hooks/update.sample": "647ae13c682f7827c22f5fc08a03674e", ".git/index": "6e6f3de5891a11e9ece01bd88c528e4a", ".git/info/exclude": "036208b4a1ab4a235d75c181e685e5a3", ".git/logs/HEAD": "0f557a9508c90fa55585581e9d2d82c4", ".git/logs/refs/heads/master": "0f557a9508c90fa55585581e9d2d82c4", ".git/logs/refs/remotes/origin/HEAD": "bd183f723d24972dbdeca6e657aec114", ".git/logs/refs/remotes/origin/master": "d0de1302ee6619ae56983d0a8aede996", ".git/objects/00/4055cd33402097012b295c70b1cd69bd5d59db": "5e2f898f457989f83680e077237835bf", ".git/objects/00/84943c80858dd1060e467615c392b5e5f7a5bb": "48d2b5ae68448358d54e3be04bf7430d", ".git/objects/03/f09daa4b76c16192f75843855da76e6bd7bee8": "b3b2e7cc0a09c6943068ca7f749c489f", ".git/objects/07/74c17c0fa7a7e87e24a6935830998d92b52c75": "cd62ee54b7ceea7b2a7804e69b1d9134", ".git/objects/11/8a7f2e6e4a399de7f06d2cd50130e56c6ba7ab": "9b83d520eb5cf8f5f37ae12328c419a9", ".git/objects/16/5ce0ddf03a820a38f48cba9aa0c9df9b6e6b79": "71df17c95c3124eada62b59e7dabda78", ".git/objects/17/4c26f07fd86445490cf618c26ad7c4d258aa38": "1cb0c5e56cfaa6f7f3fcd3ddfea024e7", ".git/objects/17/7aa5ca8562c8bd3e78eef71381ebd06440966f": "79899d72b9ed509c44fbcb0a0fa59c83", ".git/objects/1b/87a8bf3251d0d398b0e8542dcfc1f78a657223": "72f905014d53f41f169d2a5da2b9419f", ".git/objects/20/1afe538261bd7f9a38bed0524669398070d046": "82a4d6c731c1d8cdc48bce3ab3c11172", ".git/objects/20/51fe8483488f73903fa236df5c5068e81230af": "5151a1ee43058965d8eb7ae5a080aef5", ".git/objects/25/bce5772b9c40200f3c5f3a55d2b2d6e5d886df": "b5354fd837734443fd58ace35ff1d192", ".git/objects/29/56941422a71627ed4fad9f24976260650609ef": "8564865b658193d6940707948ca13ea8", ".git/objects/2b/a986f6f136f061ad7c345c47245788068e9218": "591c2ae0f2d54d8c6b9d59906e57581d", ".git/objects/2d/c2e67e529bab4ff29e97a137f2076f528e0900": "db51fdd2ed90b45830fb7ac73e4a1539", ".git/objects/2d/c856570017056cb1a0fc0b42ede6233a8ce8e4": "b66542e8978da6e0c92fddaff66cb45d", ".git/objects/32/a512e405136c48e9e39ec838a5a3ba15c54eb2": "0e7108543be2256d292c2c5039f1a4b5", ".git/objects/38/15055c8fb876bb16fc7a48b53e0bd9a875b702": "90986ae3cb3818990e6bab0efea07162", ".git/objects/3a/a06929bcbae950b4d3082903e58357659df0c5": "d5f31880f6befed00a6760b5dcae9275", ".git/objects/3a/bf18c41c58c933308c244a875bf383856e103e": "30790d31a35e3622fd7b3849c9bf1894", ".git/objects/3c/73bb142fee26cb364d71bd3ad00a63c92698f1": "f507640d4423dcbb9cdde164d981b23b", ".git/objects/3e/515b82276f8cec7ae642f9b93633d4dbde7623": "281cecee63cb11df4b5563d968b76ba4", ".git/objects/42/7b22a50e04ab168cd6a74b98c337d126d0ba03": "afc7a921f57a3fb0c1a19ac084d66036", ".git/objects/4a/3190b2ad36978872c5b785ccfe996cc3141162": "8c6b7e6a88caaf5941996a49b05e484e", ".git/objects/4a/39079e580dc9be820cba2fae41238c49eaa798": "ada1a19fea32fbb6719120809b9eae60", ".git/objects/4c/d75b8e2c90cceb476324a10a66adfaa744e9f4": "92743af66d2046f31e2eaeeede3019b4", ".git/objects/52/05a1dfe19d2f22ba74225ef643164d0bebc81e": "b77a78e7a78499667d352d9728f986af", ".git/objects/53/33decd246cc104610ecd59cf2e8c20a63143a5": "cc9689cf46e9122d5a82a25545ac7d36", ".git/objects/55/60d764242b1d47f4ad215c2832832abf69851e": "1894a58b3c118f27b5a2fe8972a818af", ".git/objects/59/87dc46d2bdd2eaeb83c1d503c974a27e44c6ca": "ebbf41ddc7c2313144c3e5ed049f5039", ".git/objects/5a/00efab6f109b894505fede028610c5a7f243cc": "d1f1ed11eb33eae8898f1057dbfdd939", ".git/objects/5a/3f293d4a31dd52f9d1d0091b92243b97888bbb": "e0af1dea8ddf22e7445ff87743e44b92", ".git/objects/5a/7b05e1be311772247124911182fda78fde2cec": "d38bfbb93663df272dc4920186bd1040", ".git/objects/5b/52e5f85799f70d3ef6b53cd1e3317d79de3c7a": "78ad8708a22cfd0107e8bcb277256a72", ".git/objects/5e/8ea03361b3f381aeb9db338f49d313ed54a75f": "11123ce14137d6843750d7dbb128e812", ".git/objects/5f/22c4d27216176b4c0dc071544c93f4457b76e1": "03881e96dbbdfca27da829d1ea311b10", ".git/objects/63/d87556813fc499581de6ad955cd18f1ec2445e": "7ce3b25eeb5b2668a2ea4074f0ccf1df", ".git/objects/64/658ca0a06c22c97b96849e5e0e863238029bb8": "889c32bf92e196fd70b47613e40a6adf", ".git/objects/65/fe1cc71f546e6e84c082c0dd9badb16d70acb1": "831fad433dae61cd09a3652193de5332", ".git/objects/6b/cb14981ba54c337b019622beabdc2990d52b1f": "daab7770fee5f6663b55645cdd9e1f1f", ".git/objects/6d/de1bfb9a477d609b4ad001e304470c34ae1026": "e5c1779ec241999f68fadd14c6d910cb", ".git/objects/6e/af642b15fa2f00f0d6bf21c10eca914747bdca": "57737704fcc6f1980a7683a4416bf7f3", ".git/objects/6e/f0a8252e7c3971921e8594e5475f5c1c8eb13c": "3566ef0014b4d66cece7ffef10482986", ".git/objects/6f/9cad4c116bc8d72e2497226abb5c05ee64982c": "0d104480d68c1652a53721377a02a882", ".git/objects/71/7117947090611c3967f8681ab1ac0f79bca7fc": "ad4e74c0da46020e04043b5cf7f91098", ".git/objects/71/7809363ed19bdd7e1d78f6e421e40a96bc29e3": "9414a3044cb191cc3f57340f57c3dc93", ".git/objects/76/86ff315042b7179dd78807e93f7dd353034d82": "2758301dca9bec8ee30e5597c21866d0", ".git/objects/7c/09d499f23e8c9cfadbd067e09e62b423cd8b4a": "4f5d6ea007527788d254cd3ceeb9b8a8", ".git/objects/80/2bc3f6219b431a8c64578b95cb2f1b52788f53": "8b0f70f4cd5a0edde1330cb6a89a4b6c", ".git/objects/86/d111f09a93cccfa0011858c519a823e7dafef7": "9a15839a59b5f501fbf7b9824c4b6f84", ".git/objects/88/cfd48dff1169879ba46840804b412fe02fefd6": "e42aaae6a4cbfbc9f6326f1fa9e3380c", ".git/objects/8a/aa46ac1ae21512746f852a42ba87e4165dfdd1": "1d8820d345e38b30de033aa4b5a23e7b", ".git/objects/8d/cfacd62f31eb7fd15831e53ba53cd848ed0357": "7d802170452df4e895b8d2d7312d6287", ".git/objects/8f/368292a70675725b4d450fb31a7af7e7a2465c": "f772b016eabfd2336c517d3cfb18602d", ".git/objects/94/9ef4e064e151f3aa44a06809870ca73d500246": "7e01bfb896d04d9e491420c2ec1e1790", ".git/objects/94/bfb1463ad8331bfd687bc751b8920b133da744": "fd2d8c0d844b234856b36b93f652048f", ".git/objects/96/ee5a6ea6b327cbeea7fea12fc319761bf49ee0": "e348666c287099c5b3e69304a5f338aa", ".git/objects/99/37125ba4ae487b0d61b0323e5ee0094a9a3c53": "14716e2409e74130dada80eeaed37a21", ".git/objects/9c/957ae7064fc05aead210481caae699291e5cd0": "1c279b37598e119ccd743f59385a2061", ".git/objects/9e/26dfeeb6e641a33dae4961196235bdb965b21b": "304148c109fef2979ed83fbc7cd0b006", ".git/objects/9e/fc7bc1d58602d3b185f137fe38972806cda28d": "f53e63fca210436264dbde2826f265b7", ".git/objects/9f/9f844a8a888fe6b0ff6b81886c2d2535f69ad2": "f22860d9a04f95d593b277a5d1ce2df1", ".git/objects/9f/b664f3845d42b19a5ea6793165ea6673020c44": "5f0465684b19c346cadf76d639e149f9", ".git/objects/a3/c74de65b45dea925829afe61c63a0dcc4eb8e3": "1bf41d9bea630f53f3b7b2f3058a0727", ".git/objects/aa/2717bf2d64e3baf528296d3ee769339303d277": "8ec80276845caa00c14167d3d501626e", ".git/objects/ad/97a05142c4f22c55b4ef6abc60e5802671299c": "01b8a43ab61c047e43a0ed9a8e1a0f8f", ".git/objects/af/742adee0a85dd21ea96cbd84182e30e085d6cf": "aa25b932ec40efacb1efe27e7cf25d82", ".git/objects/af/b9e1709a6140e5d24acd3888b10d6388ba3279": "608bd751920e6723e5b24a3ea7a3d366", ".git/objects/b0/29e225102d34d682ac0e51a5cc8fd2e31d1bcf": "5f0e956ab60afc92f4ca31e86e546b01", ".git/objects/b2/0ce5d721706fc28de99444dfff712356592466": "3f4453d213000112f72798e3512d8301", ".git/objects/b2/16d07d0f3db14eba12d034dd0d565dcf869a4a": "59091d61578ce3f4bdd16e390414bb40", ".git/objects/b5/0254288cc6319d153c4af1d64870d95ee2436f": "468a6506934a07c970a4739eae75eedd", ".git/objects/b5/5604fd246f8dcc06bb31a1ee6a1378420e14c1": "370aef4fff526f8045c4fd2e1f00d074", ".git/objects/b5/e52b31fe24aa3be8cfb2da514c5f6da6bbe040": "57a8d69a421b46bd5d2cb1cf120d3aaa", ".git/objects/b6/df9956284b75cbd60ec3901f480d8de54d8eea": "e5e22bd924e67f299bf07bcf42d28d76", ".git/objects/b7/49bfef07473333cf1dd31e9eed89862a5d52aa": "36b4020dca303986cad10924774fb5dc", ".git/objects/b9/2a0d854da9a8f73216c4a0ef07a0f0a44e4373": "f62d1eb7f51165e2a6d2ef1921f976f3", ".git/objects/c2/57f09f8c644b8ec55a629f0040f1c9612dfc40": "90ca0343a4e1194b9e70f0f61fff5ff2", ".git/objects/c5/f4bc2a4da91586f3005813077f0d0aa9040f82": "3191028b787554cee4652f5050144bff", ".git/objects/ca/8482c88c44dcfdf9ead9d3726df9574ac9775c": "81cbf504c8b90bc81a07b514349a4ac5", ".git/objects/cb/2e632ca79d99fe9da7034869caddc274c36af9": "61caba63ac4805ca7447148647887ed2", ".git/objects/cc/58f595f2fffb150bd3e4d958cfb109b4f1dba4": "e483548d64bf54088eb6e9b93c1f0ed1", ".git/objects/cf/bed0bf322e72d9a78cad6f6baaea5e9c1fc8ee": "f7715d4a7ae9096cdeded70d0d23640c", ".git/objects/d4/3532a2348cc9c26053ddb5802f0e5d4b8abc05": "3dad9b209346b1723bb2cc68e7e42a44", ".git/objects/d6/9c56691fbdb0b7efa65097c7cc1edac12a6d3e": "868ce37a3a78b0606713733248a2f579", ".git/objects/d8/2a4051fa8609e2465a05f1ddf37ede0787ef89": "23e62111ee28fdeb5a3a836003fed0ef", ".git/objects/da/c5f5bdc2d6efbc903c43b46c26ca4114d8237f": "72f48fef4083eb3c21666985b9a489af", ".git/objects/dc/7c58c16c2b23a8a40fcf5db493d3708253ed37": "be41b1c24972604b1b31778b38888552", ".git/objects/dd/98e2d8e0dd7915255e98a88464f6c882fcca5e": "f60f5b2b8f8ee82fda398792c453c8ca", ".git/objects/e1/c377a7d75e5ae5fa007a3dd36291d3824105f5": "2a18e2429897d2c20d18a0bf3ad34821", ".git/objects/e8/2c5850db3a3482d0c954a4dc122c02de555ce7": "d357cd906b3805bf81477f5527cca086", ".git/objects/eb/9b4d76e525556d5d89141648c724331630325d": "37c0954235cbe27c4d93e74fe9a578ef", ".git/objects/f2/04823a42f2d890f945f70d88b8e2d921c6ae26": "6b47f314ffc35cf6a1ced3208ecc857d", ".git/objects/f4/b6a86377cb897e78ac675c4af3714aa31320f4": "832042fe0041b83fafd36045edbab970", ".git/objects/f6/3346a54292622122b8ef7150a481023226b65d": "01ab83e2bad6befab6488b12d9cb9a59", ".git/objects/fb/2295d40ea6f0152400a2a63cb47cd1b8e042ae": "c17c93fb3e13cdd8e4c066bf67a28c44", ".git/packed-refs": "0cba1c26ebb07cdc83a8d671dac4a956", ".git/refs/heads/master": "c823689264042a28292584906f0b0334", ".git/refs/remotes/origin/HEAD": "73a00957034783b7b5c8294c54cd3e12", ".git/refs/remotes/origin/master": "c823689264042a28292584906f0b0334", ".vscode/launch.json": "8536c0b1b0a5a6da1637feed7ca91d43", "assets/AssetManifest.bin": "0b0a3415aad49b6e9bf965ff578614f9", "assets/AssetManifest.bin.json": "a1fee2517bf598633e2f67fcf3e26c94", "assets/AssetManifest.json": "99914b932bd37a50b983c5e7c90ae93b", "assets/FontManifest.json": "7b2a36307916a9721811788013e65289", "assets/fonts/MaterialIcons-Regular.otf": "0db35ae7a415370b89e807027510caf0", "assets/NOTICES": "308b58ca5304581480ce433b822f503c", "assets/shaders/ink_sparkle.frag": "ecc85a2e95f5e9f53123dcaf8cb9b6ce", "canvaskit/canvaskit.js": "c86fbd9e7b17accae76e5ad116583dc4", "canvaskit/canvaskit.js.symbols": "38cba9233b92472a36ff011dc21c2c9f", "canvaskit/canvaskit.wasm": "3d2a2d663e8c5111ac61a46367f751ac", "canvaskit/chromium/canvaskit.js": "43787ac5098c648979c27c13c6f804c3", "canvaskit/chromium/canvaskit.js.symbols": "4525682ef039faeb11f24f37436dca06", "canvaskit/chromium/canvaskit.wasm": "f5934e694f12929ed56a671617acd254", "canvaskit/skwasm.js": "445e9e400085faead4493be2224d95aa", "canvaskit/skwasm.js.symbols": "741d50ffba71f89345996b0aa8426af8", "canvaskit/skwasm.wasm": "e42815763c5d05bba43f9d0337fa7d84", "canvaskit/skwasm.worker.js": "bfb704a6c714a75da9ef320991e88b03", "favicon.png": "a8dac4984aa5229f2f2c176b2b626e1f", "flutter.js": "c71a09214cb6f5f8996a531350400a9a", "icons/Icon-192.png": "ab1f3346eb3e23e19304ac088cc236c1", "icons/Icon-512.png": "29fa67fed2325c5febd96dd9180e60dc", "icons/Icon-maskable-192.png": "c8230bd12eac2e925faa8531f5633292", "icons/Icon-maskable-512.png": "4eb4557b51424f785b4dcf7096a9fdde", "index.html": "df92abe2585721937d7b30abaea34c50", "/": "df92abe2585721937d7b30abaea34c50", "main.dart.js": "59ce4dde2ad707f825d837a497cc1fd8", "manifest.json": "27a391c5ac472fe33d066bdd6e1c50be", "version.json": "da11dc51486ca396fa77df44efc636c4"}; // The application shell files that are downloaded before a service worker can // start. const CORE = ["main.dart.js", "index.html", "assets/AssetManifest.bin.json", "assets/FontManifest.json"]; // During install, the TEMP cache is populated with the application shell files. self.addEventListener("install", (event) => { self.skipWaiting(); return event.waitUntil( caches.open(TEMP).then((cache) => { return cache.addAll( CORE.map((value) => new Request(value, {'cache': 'reload'}))); }) ); }); // During activate, the cache is populated with the temp files downloaded in // install. If this service worker is upgrading from one with a saved // MANIFEST, then use this to retain unchanged resource files. self.addEventListener("activate", function(event) { return event.waitUntil(async function() { try { var contentCache = await caches.open(CACHE_NAME); var tempCache = await caches.open(TEMP); var manifestCache = await caches.open(MANIFEST); var manifest = await manifestCache.match('manifest'); // When there is no prior manifest, clear the entire cache. if (!manifest) { await caches.delete(CACHE_NAME); contentCache = await caches.open(CACHE_NAME); for (var request of await tempCache.keys()) { var response = await tempCache.match(request); await contentCache.put(request, response); } await caches.delete(TEMP); // Save the manifest to make future upgrades efficient. await manifestCache.put('manifest', new Response(JSON.stringify(RESOURCES))); // Claim client to enable caching on first launch self.clients.claim(); return; } var oldManifest = await manifest.json(); var origin = self.location.origin; for (var request of await contentCache.keys()) { var key = request.url.substring(origin.length + 1); if (key == "") { key = "/"; } // If a resource from the old manifest is not in the new cache, or if // the MD5 sum has changed, delete it. Otherwise the resource is left // in the cache and can be reused by the new service worker. if (!RESOURCES[key] || RESOURCES[key] != oldManifest[key]) { await contentCache.delete(request); } } // Populate the cache with the app shell TEMP files, potentially overwriting // cache files preserved above. for (var request of await tempCache.keys()) { var response = await tempCache.match(request); await contentCache.put(request, response); } await caches.delete(TEMP); // Save the manifest to make future upgrades efficient. await manifestCache.put('manifest', new Response(JSON.stringify(RESOURCES))); // Claim client to enable caching on first launch self.clients.claim(); return; } catch (err) { // On an unhandled exception the state of the cache cannot be guaranteed. console.error('Failed to upgrade service worker: ' + err); await caches.delete(CACHE_NAME); await caches.delete(TEMP); await caches.delete(MANIFEST); } }()); }); // The fetch handler redirects requests for RESOURCE files to the service // worker cache. self.addEventListener("fetch", (event) => { if (event.request.method !== 'GET') { return; } var origin = self.location.origin; var key = event.request.url.substring(origin.length + 1); // Redirect URLs to the index.html if (key.indexOf('?v=') != -1) { key = key.split('?v=')[0]; } if (event.request.url == origin || event.request.url.startsWith(origin + '/#') || key == '') { key = '/'; } // If the URL is not the RESOURCE list then return to signal that the // browser should take over. if (!RESOURCES[key]) { return; } // If the URL is the index.html, perform an online-first request. if (key == '/') { return onlineFirst(event); } event.respondWith(caches.open(CACHE_NAME) .then((cache) => { return cache.match(event.request).then((response) => { // Either respond with the cached resource, or perform a fetch and // lazily populate the cache only if the resource was successfully fetched. return response || fetch(event.request).then((response) => { if (response && Boolean(response.ok)) { cache.put(event.request, response.clone()); } return response; }); }) }) ); }); self.addEventListener('message', (event) => { // SkipWaiting can be used to immediately activate a waiting service worker. // This will also require a page refresh triggered by the main worker. if (event.data === 'skipWaiting') { self.skipWaiting(); return; } if (event.data === 'downloadOffline') { downloadOffline(); return; } }); // Download offline will check the RESOURCES for all files not in the cache // and populate them. async function downloadOffline() { var resources = []; var contentCache = await caches.open(CACHE_NAME); var currentContent = {}; for (var request of await contentCache.keys()) { var key = request.url.substring(origin.length + 1); if (key == "") { key = "/"; } currentContent[key] = true; } for (var resourceKey of Object.keys(RESOURCES)) { if (!currentContent[resourceKey]) { resources.push(resourceKey); } } return contentCache.addAll(resources); } // Attempt to download the resource online before falling back to // the offline cache. function onlineFirst(event) { return event.respondWith( fetch(event.request).then((response) => { return caches.open(CACHE_NAME).then((cache) => { cache.put(event.request, response.clone()); return response; }); }).catch((error) => { return caches.open(CACHE_NAME).then((cache) => { return cache.match(event.request).then((response) => { if (response != null) { return response; } throw error; }); }); }) ); }