'use strict';
const MANIFEST = 'flutter-app-manifest';
const TEMP = 'flutter-temp-cache';
const CACHE_NAME = 'flutter-app-cache';

const RESOURCES = {"assets/AssetManifest.bin": "3a07a3aca68210c9631b376364a7de69",
"assets/AssetManifest.bin.json": "d25ed0242f9905118fc13cb7b1549fe1",
"assets/AssetManifest.json": "a34c3ae388360ccfde274b4dd10eb15c",
"assets/assets/images/10bc7bec": "6ef5b8aeca3d372752123c74946e0522",
"assets/assets/images/1c1b0ed8": "987884eed473285d0ecf4294b156fd2e",
"assets/assets/images/2e7ff646": "9ecd51e28f11b3813009ff0c3bca73a8",
"assets/assets/images/301b9ef2": "778d14a903295de592d7a8b00953235b",
"assets/assets/images/3064cec9": "74f760f6f1f5feaacbf3cb24bb4274ad",
"assets/assets/images/351a1488": "386ad2767d4ea22ec7fec1874f05e83b",
"assets/assets/images/3d1ac5c0": "28d4bc4e4186c5cf548a1425e1884da1",
"assets/assets/images/464c162e": "388d9e36fdad1a8f11ec6fc562b991bd",
"assets/assets/images/4650b8f6": "f8931d49f29f65f1623cf0f7a3c7f41d",
"assets/assets/images/5950a5e2": "b2386d88b7662d9f37514fb3b400256e",
"assets/assets/images/59a5620c": "f8128c4e8bc5db29f184182ec73860ee",
"assets/assets/images/66287242": "94bd1bb1ea156b69c7c4eaf0be7f03b5",
"assets/assets/images/6b5cf4c4": "1cbf84d829164567f9eace74935bdf4d",
"assets/assets/images/70220758": "386a6024558e3aa2121444e23c3b7712",
"assets/assets/images/7305bb44": "c31a8a8786408c30fea17e930df0d0d9",
"assets/assets/images/74fcf2a3": "6bb6214b5347c1498d4fb1d12cb55745",
"assets/assets/images/7abde941": "882c82d59c5f5fdc89e5c2c90b242d6b",
"assets/assets/images/85e65ab6": "6e0e9b18c1e9f8c917fbda8c1c602191",
"assets/assets/images/896cc1df": "d83a2269ad3e2c8f4c466dd2b6c6137d",
"assets/assets/images/8de7fd75": "abc1a77a15a48acdf9943e2327f0899d",
"assets/assets/images/8ef7d6a2": "40144cd687bd82c6034ef5a229abc2c4",
"assets/assets/images/93666637": "01f68d23a8a9312b4ea2b6f54c4b5b13",
"assets/assets/images/999d6dc9": "8e7bf35361762870b9913fc958186fae",
"assets/assets/images/9b1feeb8": "1c3a8e9498c75fc9fe2a23f93233cac5",
"assets/assets/images/appbar.png": "6cc869be4aa412d00faa50380ba4ecdb",
"assets/assets/images/back1.png": "8d85bef141efaae97d87a299d1b2e030",
"assets/assets/images/back2.png": "d18625a5dee6e1aefaf9136fdde3aa64",
"assets/assets/images/back3a.jpg": "6bb6214b5347c1498d4fb1d12cb55745",
"assets/assets/images/back4a.jpg": "40144cd687bd82c6034ef5a229abc2c4",
"assets/assets/images/back4b.jpg": "408c97b68b90abf36aa4b013fe18ccdf",
"assets/assets/images/back5a.jpg": "1c3a8e9498c75fc9fe2a23f93233cac5",
"assets/assets/images/back5b.jpg": "9ecd51e28f11b3813009ff0c3bca73a8",
"assets/assets/images/back6a.jpg": "d83a2269ad3e2c8f4c466dd2b6c6137d",
"assets/assets/images/back6b.jpg": "1cbf84d829164567f9eace74935bdf4d",
"assets/assets/images/barcode2.png": "778d14a903295de592d7a8b00953235b",
"assets/assets/images/barcode3.png": "28d4bc4e4186c5cf548a1425e1884da1",
"assets/assets/images/base1.png": "386ad2767d4ea22ec7fec1874f05e83b",
"assets/assets/images/base2.png": "a5d1efd602d5401e076814b80a2b3fb4",
"assets/assets/images/c2c88be6": "408c97b68b90abf36aa4b013fe18ccdf",
"assets/assets/images/c7f77908": "618a00c8599ea935f5c6e94f421c0940",
"assets/assets/images/clear.jpg": "618a00c8599ea935f5c6e94f421c0940",
"assets/assets/images/d3459634": "53ce8cfd605541ee2391225b5942bfe2",
"assets/assets/images/da7ec89a": "ed04427ebcddd24a5fda07c5d1514ef9",
"assets/assets/images/de09b90f": "02722f80f1f975a9aa325c541d95cefd",
"assets/assets/images/e3a2b3cf": "f6e78087defd33c10de571cafc1e1349",
"assets/assets/images/f6d22093": "7ee64e72ff14c0a8ca2109c4c5b4f3be",
"assets/assets/images/f8d6336d": "790622fc62f2ea8dc1d60437770135f8",
"assets/assets/images/flashoff.png": "6e0e9b18c1e9f8c917fbda8c1c602191",
"assets/assets/images/flashon.png": "f8128c4e8bc5db29f184182ec73860ee",
"assets/assets/images/icon.png": "7ee64e72ff14c0a8ca2109c4c5b4f3be",
"assets/assets/images/login.gif": "882c82d59c5f5fdc89e5c2c90b242d6b",
"assets/assets/images/logopif.png": "8e7bf35361762870b9913fc958186fae",
"assets/assets/images/mainmenu.gif": "74f760f6f1f5feaacbf3cb24bb4274ad",
"assets/assets/images/menu1.jpg": "ed04427ebcddd24a5fda07c5d1514ef9",
"assets/assets/images/menu11.gif": "c31a8a8786408c30fea17e930df0d0d9",
"assets/assets/images/menu11.png": "f6e78087defd33c10de571cafc1e1349",
"assets/assets/images/menu2.jpg": "01f68d23a8a9312b4ea2b6f54c4b5b13",
"assets/assets/images/menu2.png": "53ce8cfd605541ee2391225b5942bfe2",
"assets/assets/images/menu3.png": "386a6024558e3aa2121444e23c3b7712",
"assets/assets/images/menu4.png": "b2386d88b7662d9f37514fb3b400256e",
"assets/assets/images/menu5.png": "388d9e36fdad1a8f11ec6fc562b991bd",
"assets/assets/images/menu6.png": "abc1a77a15a48acdf9943e2327f0899d",
"assets/assets/images/menu7.png": "f8931d49f29f65f1623cf0f7a3c7f41d",
"assets/assets/images/menu8.png": "987884eed473285d0ecf4294b156fd2e",
"assets/assets/images/menu9.png": "790622fc62f2ea8dc1d60437770135f8",
"assets/assets/images/menuadjust.gif": "6ef5b8aeca3d372752123c74946e0522",
"assets/assets/images/menucust.jpg": "94bd1bb1ea156b69c7c4eaf0be7f03b5",
"assets/assets/images/menuexcel.jpg": "85e8eef3472a193a610eb04da5368112",
"assets/assets/images/menugr.gif": "26439e32b923396db6ba148a56ec5359",
"assets/assets/images/menulaststock.png": "e1df41550f384634854e384b24416922",
"assets/assets/images/menupos.gif": "dcd8544f0b42e5cc4dadb7bc28537b31",
"assets/assets/images/menuprint.jpg": "398397d3e51edfba99701ed7ab59551c",
"assets/assets/images/menustockopname.gif": "1810d2bb0312f3e6c37fdacd13e2af9e",
"assets/assets/images/menutransfer.gif": "55421d003d90419fe10a5a16eedbdbb1",
"assets/assets/images/menuuser.jpg": "43f054939f98bedd4a48ce0d6ef92dcf",
"assets/assets/images/menuwebcancel.png": "b06576a84c5d06ca6643982d1f7dafc6",
"assets/assets/images/menuwebclose.png": "ffa5b1179122457615cc1e5c1b03a8ff",
"assets/assets/images/menuwebhistory.png": "3c484028c8a468f3e283f36951d340b0",
"assets/assets/images/menuwebkasir.png": "4527fed62e7a683b694fe5013d00dbdb",
"assets/assets/images/menuwebmasterstk.png": "840370a4e6dc530f897dd5675ccdd9cc",
"assets/assets/images/menuwebnew.png": "d49f1847184f1942d99927ef12696b03",
"assets/assets/images/menuwebnext.png": "0b10749f4dd09e4b682067489c2bc8fc",
"assets/assets/images/menuwebnota.png": "3ddeda664226532310f84237d99ee1fd",
"assets/assets/images/menuwebpos.png": "00c2e8468e1b61b33cdf2df9936262d2",
"assets/assets/images/menuwebprint.png": "fd0aabb38c8183c05a75f49809dec9b6",
"assets/assets/images/menuwebproduct.png": "27fb0a6bce6873d6c43f5141b9a96486",
"assets/assets/images/menuwebrefresh.png": "154688ba0c9d0a7b89b6cd09d7200ecf",
"assets/assets/images/menuwebreturn.png": "b9db69aa3cdae9b852e52e6be34aa97e",
"assets/assets/images/menuwebreturn2.png": "be9e08077971c6db934d82d6b37f97e0",
"assets/assets/images/menuwebrevstk.png": "3af683dcaafecad9a576b17b059d2519",
"assets/assets/images/menuwebstk.png": "7f6729ac1b21785f7225407072a6ea28",
"assets/assets/images/menuwebuploadstk.png": "f5ebcf0e1e7a532d4e2fd651d4e4023a",
"assets/assets/images/personaldata.png": "cb8754f1a544811d032e46f971c894ec",
"assets/assets/images/pogo2.gif": "608582345f7317aaa20fe5215388fbb2",
"assets/assets/images/pogo2.png": "e97f8871ad152279b9abca5a7169c8d7",
"assets/assets/images/pogo22.gif": "43784cfd1b07e2ac7089f2acb0d16525",
"assets/assets/images/poslogo3.png": "53aa3af10dfbe8011f0a33864394f780",
"assets/assets/images/sch1.png": "d7998df1ef6de4b55929487e6ebcc263",
"assets/assets/images/shopprofile.gif": "55d316659a50920801732d7b9d770028",
"assets/assets/logo/mylogo.jpg": "daa820da4c5692e9716affd8de0ba044",
"assets/assets/sound/bell.mpeg": "b5b5eaef4c2d00cc395d1538c5426c34",
"assets/assets/sound/error.wav": "fa2989fc247266961ca8f4cf52fb42fd",
"assets/assets/sound/feramasuk.mpeg": "0795cea07f37e433101ce7fbd171c12b",
"assets/FontManifest.json": "7b2a36307916a9721811788013e65289",
"assets/fonts/MaterialIcons-Regular.otf": "2eaa452eea42ff5914f8cc50f2d29334",
"assets/NOTICES": "fb02a606a763497b366d9e2459fb1f40",
"assets/packages/fluttertoast/assets/toastify.css": "a85675050054f179444bc5ad70ffc635",
"assets/packages/fluttertoast/assets/toastify.js": "56e2c9cedd97f10e7e5f1cebd85d53e3",
"assets/packages/flutter_esc_pos_utils/resources/capabilities.json": "2756571bbd7dee9a37c7a9648937fcee",
"assets/packages/flutter_inappwebview/assets/t_rex_runner/t-rex.css": "5a8d0222407e388155d7d1395a75d5b9",
"assets/packages/flutter_inappwebview/assets/t_rex_runner/t-rex.html": "16911fcc170c8af1c5457940bd0bf055",
"assets/packages/flutter_inappwebview_web/assets/web/web_support.js": "509ae636cfdd93e49b5a6eaf0f06d79f",
"assets/packages/win_ble/assets/BLEServer.exe": "28aa0e2566083c860f029ff4bc32c4ce",
"assets/shaders/ink_sparkle.frag": "ecc85a2e95f5e9f53123dcaf8cb9b6ce",
"canvaskit/canvaskit.js": "66177750aff65a66cb07bb44b8c6422b",
"canvaskit/canvaskit.js.symbols": "48c83a2ce573d9692e8d970e288d75f7",
"canvaskit/canvaskit.wasm": "1f237a213d7370cf95f443d896176460",
"canvaskit/chromium/canvaskit.js": "671c6b4f8fcc199dcc551c7bb125f239",
"canvaskit/chromium/canvaskit.js.symbols": "a012ed99ccba193cf96bb2643003f6fc",
"canvaskit/chromium/canvaskit.wasm": "b1ac05b29c127d86df4bcfbf50dd902a",
"canvaskit/skwasm.js": "694fda5704053957c2594de355805228",
"canvaskit/skwasm.js.symbols": "262f4827a1317abb59d71d6c587a93e2",
"canvaskit/skwasm.wasm": "9f0c0c02b82a910d12ce0543ec130e60",
"canvaskit/skwasm.worker.js": "89990e8c92bcb123999aa81f7e203b1c",
"favicon.png": "5dcef449791fa27946b3d35ad8803796",
"flutter.js": "f393d3c16b631f36852323de8e583132",
"flutter_bootstrap.js": "b9b6582fb2d75c6f1afd692b44612dfc",
"icons/Icon-192.png": "ac9a721a12bbc803b44f645561ecb1e1",
"icons/Icon-512.png": "96e752610906ba2a93c65f8abe1645f1",
"icons/Icon-maskable-192.png": "c457ef57daa1d16f64b27b786ec2ea3c",
"icons/Icon-maskable-512.png": "301a7604d45b3e739efc881eb04896ea",
"index.html": "15b46c6a3e031c1f1103fa03f0e182ca",
"/": "15b46c6a3e031c1f1103fa03f0e182ca",
"main.dart.js": "f47d3ca88fd535faf5588aeb094d3ece",
"manifest.json": "d04cf8b76e8e9a881a2971031a15ea9e",
"version.json": "0b06689e9c1f7e611480eda551ae8d1f"};
// The application shell files that are downloaded before a service worker can
// start.
const CORE = ["main.dart.js",
"index.html",
"flutter_bootstrap.js",
"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;
        });
      });
    })
  );
}
