forked from Pf2eToolsOrg/Pf2eTools
-
Notifications
You must be signed in to change notification settings - Fork 0
/
sw.js
2 lines (2 loc) · 68.9 KB
/
sw.js
1
2
(()=>{try{self["workbox:core:6.5.3"]&&_()}catch{}var Le=(a,...e)=>{let r=a;return e.length>0&&(r+=` :: ${JSON.stringify(e)}`),r};var be=Le;var d=class extends Error{constructor(e,r){let s=be(e,r);super(s),this.name=e,this.details=r}};var v={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:typeof registration<"u"?registration.scope:""},Y=a=>[v.prefix,a,v.suffix].filter(e=>e&&e.length>0).join("-"),Se=a=>{for(let e of Object.keys(v))a(e)},w={updateDetails:a=>{Se(e=>{typeof a[e]=="string"&&(v[e]=a[e])})},getGoogleAnalyticsName:a=>a||Y(v.googleAnalytics),getPrecacheName:a=>a||Y(v.precache),getPrefix:()=>v.prefix,getRuntimeName:a=>a||Y(v.runtime),getSuffix:()=>v.suffix};function X(a,e){let r=e();return a.waitUntil(r),r}try{self["workbox:precaching:6.5.3"]&&_()}catch{}var Pe="__WB_REVISION__";function R(a){if(!a)throw new d("add-to-cache-list-unexpected-type",{entry:a});if(typeof a=="string"){let o=new URL(a,location.href);return{cacheKey:o.href,url:o.href}}let{revision:e,url:r}=a;if(!r)throw new d("add-to-cache-list-unexpected-type",{entry:a});if(!e){let o=new URL(r,location.href);return{cacheKey:o.href,url:o.href}}let s=new URL(r,location.href),t=new URL(r,location.href);return s.searchParams.set(Pe,e),{cacheKey:s.href,url:t.href}}var V=class{constructor(){this.updatedURLs=[],this.notUpdatedURLs=[],this.handlerWillStart=async({request:e,state:r})=>{r&&(r.originalRequest=e)},this.cachedResponseWillBeUsed=async({event:e,state:r,cachedResponse:s})=>{if(e.type==="install"&&r&&r.originalRequest&&r.originalRequest instanceof Request){let t=r.originalRequest.url;s?this.notUpdatedURLs.push(t):this.updatedURLs.push(t)}return s}}};var F=class{constructor({precacheController:e}){this.cacheKeyWillBeUsed=async({request:r,params:s})=>{let t=s?.cacheKey||this._precacheController.getCacheKeyForURL(r.url);return t?new Request(t,{headers:r.headers}):r},this._precacheController=e}};var D;function he(){if(D===void 0){let a=new Response("");if("body"in a)try{new Response(a.body),D=!0}catch{D=!1}D=!1}return D}async function me(a,e){let r=null;if(a.url&&(r=new URL(a.url).origin),r!==self.location.origin)throw new d("cross-origin-copy-response",{origin:r});let s=a.clone(),t={headers:new Headers(s.headers),status:s.status,statusText:s.statusText},o=e?e(t):t,i=he()?s.body:await s.blob();return new Response(i,o)}var Z=a=>new URL(String(a),location.href).href.replace(new RegExp(`^${location.origin}`),"");function ge(a,e){let r=new URL(a);for(let s of e)r.searchParams.delete(s);return r.href}async function ve(a,e,r,s){let t=ge(e.url,r);if(e.url===t)return a.match(e,s);let o=Object.assign(Object.assign({},s),{ignoreSearch:!0}),i=await a.keys(e,o);for(let n of i){let c=ge(n.url,r);if(t===c)return a.match(n,s)}}var I=class{constructor(){this.promise=new Promise((e,r)=>{this.resolve=e,this.reject=r})}};var W=new Set;async function we(){for(let a of W)await a()}function ee(a){return new Promise(e=>setTimeout(e,a))}try{self["workbox:strategies:6.5.3"]&&_()}catch{}function K(a){return typeof a=="string"?new Request(a):a}var T=class{constructor(e,r){this._cacheKeys={},Object.assign(this,r),this.event=r.event,this._strategy=e,this._handlerDeferred=new I,this._extendLifetimePromises=[],this._plugins=[...e.plugins],this._pluginStateMap=new Map;for(let s of this._plugins)this._pluginStateMap.set(s,{});this.event.waitUntil(this._handlerDeferred.promise)}async fetch(e){let{event:r}=this,s=K(e);if(s.mode==="navigate"&&r instanceof FetchEvent&&r.preloadResponse){let i=await r.preloadResponse;if(i)return i}let t=this.hasCallback("fetchDidFail")?s.clone():null;try{for(let i of this.iterateCallbacks("requestWillFetch"))s=await i({request:s.clone(),event:r})}catch(i){if(i instanceof Error)throw new d("plugin-error-request-will-fetch",{thrownErrorMessage:i.message})}let o=s.clone();try{let i;i=await fetch(s,s.mode==="navigate"?void 0:this._strategy.fetchOptions);for(let n of this.iterateCallbacks("fetchDidSucceed"))i=await n({event:r,request:o,response:i});return i}catch(i){throw t&&await this.runCallbacks("fetchDidFail",{error:i,event:r,originalRequest:t.clone(),request:o.clone()}),i}}async fetchAndCachePut(e){let r=await this.fetch(e),s=r.clone();return this.waitUntil(this.cachePut(e,s)),r}async cacheMatch(e){let r=K(e),s,{cacheName:t,matchOptions:o}=this._strategy,i=await this.getCacheKey(r,"read"),n=Object.assign(Object.assign({},o),{cacheName:t});s=await caches.match(i,n);for(let c of this.iterateCallbacks("cachedResponseWillBeUsed"))s=await c({cacheName:t,matchOptions:o,cachedResponse:s,request:i,event:this.event})||void 0;return s}async cachePut(e,r){let s=K(e);await ee(0);let t=await this.getCacheKey(s,"write");if(!r)throw new d("cache-put-with-no-response",{url:Z(t.url)});let o=await this._ensureResponseSafeToCache(r);if(!o)return!1;let{cacheName:i,matchOptions:n}=this._strategy,c=await self.caches.open(i),l=this.hasCallback("cacheDidUpdate"),m=l?await ve(c,t.clone(),["__WB_REVISION__"],n):null;try{await c.put(t,l?o.clone():o)}catch(b){if(b instanceof Error)throw b.name==="QuotaExceededError"&&await we(),b}for(let b of this.iterateCallbacks("cacheDidUpdate"))await b({cacheName:i,oldResponse:m,newResponse:o.clone(),request:t,event:this.event});return!0}async getCacheKey(e,r){let s=`${e.url} | ${r}`;if(!this._cacheKeys[s]){let t=e;for(let o of this.iterateCallbacks("cacheKeyWillBeUsed"))t=K(await o({mode:r,request:t,event:this.event,params:this.params}));this._cacheKeys[s]=t}return this._cacheKeys[s]}hasCallback(e){for(let r of this._strategy.plugins)if(e in r)return!0;return!1}async runCallbacks(e,r){for(let s of this.iterateCallbacks(e))await s(r)}*iterateCallbacks(e){for(let r of this._strategy.plugins)if(typeof r[e]=="function"){let s=this._pluginStateMap.get(r);yield o=>{let i=Object.assign(Object.assign({},o),{state:s});return r[e](i)}}}waitUntil(e){return this._extendLifetimePromises.push(e),e}async doneWaiting(){let e;for(;e=this._extendLifetimePromises.shift();)await e}destroy(){this._handlerDeferred.resolve(null)}async _ensureResponseSafeToCache(e){let r=e,s=!1;for(let t of this.iterateCallbacks("cacheWillUpdate"))if(r=await t({request:this.request,response:r,event:this.event})||void 0,s=!0,!r)break;return s||r&&r.status!==200&&(r=void 0),r}};var u=class{constructor(e={}){this.cacheName=w.getRuntimeName(e.cacheName),this.plugins=e.plugins||[],this.fetchOptions=e.fetchOptions,this.matchOptions=e.matchOptions}handle(e){let[r]=this.handleAll(e);return r}handleAll(e){e instanceof FetchEvent&&(e={event:e,request:e.request});let r=e.event,s=typeof e.request=="string"?new Request(e.request):e.request,t="params"in e?e.params:void 0,o=new T(this,{event:r,request:s,params:t}),i=this._getResponse(o,s,r),n=this._awaitComplete(i,o,s,r);return[i,n]}async _getResponse(e,r,s){await e.runCallbacks("handlerWillStart",{event:s,request:r});let t;try{if(t=await this._handle(r,e),!t||t.type==="error")throw new d("no-response",{url:r.url})}catch(o){if(o instanceof Error){for(let i of e.iterateCallbacks("handlerDidError"))if(t=await i({error:o,event:s,request:r}),t)break}if(!t)throw o}for(let o of e.iterateCallbacks("handlerWillRespond"))t=await o({event:s,request:r,response:t});return t}async _awaitComplete(e,r,s,t){let o,i;try{o=await e}catch{}try{await r.runCallbacks("handlerDidRespond",{event:t,request:s,response:o}),await r.doneWaiting()}catch(n){n instanceof Error&&(i=n)}if(await r.runCallbacks("handlerDidComplete",{event:t,request:s,response:o,error:i}),r.destroy(),i)throw i}};var p=class extends u{constructor(e={}){e.cacheName=w.getPrecacheName(e.cacheName),super(e),this._fallbackToNetwork=e.fallbackToNetwork!==!1,this.plugins.push(p.copyRedirectedCacheableResponsesPlugin)}async _handle(e,r){let s=await r.cacheMatch(e);return s||(r.event&&r.event.type==="install"?await this._handleInstall(e,r):await this._handleFetch(e,r))}async _handleFetch(e,r){let s,t=r.params||{};if(this._fallbackToNetwork){let o=t.integrity,i=e.integrity,n=!i||i===o;if(s=await r.fetch(new Request(e,{integrity:e.mode!=="no-cors"?i||o:void 0})),o&&n&&e.mode!=="no-cors"){this._useDefaultCacheabilityPluginIfNeeded();let c=await r.cachePut(e,s.clone())}}else throw new d("missing-precache-entry",{cacheName:this.cacheName,url:e.url});return s}async _handleInstall(e,r){this._useDefaultCacheabilityPluginIfNeeded();let s=await r.fetch(e);if(!await r.cachePut(e,s.clone()))throw new d("bad-precaching-response",{url:e.url,status:s.status});return s}_useDefaultCacheabilityPluginIfNeeded(){let e=null,r=0;for(let[s,t]of this.plugins.entries())t!==p.copyRedirectedCacheableResponsesPlugin&&(t===p.defaultPrecacheCacheabilityPlugin&&(e=s),t.cacheWillUpdate&&r++);r===0?this.plugins.push(p.defaultPrecacheCacheabilityPlugin):r>1&&e!==null&&this.plugins.splice(e,1)}};p.defaultPrecacheCacheabilityPlugin={async cacheWillUpdate({response:a}){return!a||a.status>=400?null:a}};p.copyRedirectedCacheableResponsesPlugin={async cacheWillUpdate({response:a}){return a.redirected?await me(a):a}};var U=class{constructor({cacheName:e,plugins:r=[],fallbackToNetwork:s=!0}={}){this._urlsToCacheKeys=new Map,this._urlsToCacheModes=new Map,this._cacheKeysToIntegrities=new Map,this._strategy=new p({cacheName:w.getPrecacheName(e),plugins:[...r,new F({precacheController:this})],fallbackToNetwork:s}),this.install=this.install.bind(this),this.activate=this.activate.bind(this)}get strategy(){return this._strategy}precache(e){this.addToCacheList(e),this._installAndActiveListenersAdded||(self.addEventListener("install",this.install),self.addEventListener("activate",this.activate),this._installAndActiveListenersAdded=!0)}addToCacheList(e){let r=[];for(let s of e){typeof s=="string"?r.push(s):s&&s.revision===void 0&&r.push(s.url);let{cacheKey:t,url:o}=R(s),i=typeof s!="string"&&s.revision?"reload":"default";if(this._urlsToCacheKeys.has(o)&&this._urlsToCacheKeys.get(o)!==t)throw new d("add-to-cache-list-conflicting-entries",{firstEntry:this._urlsToCacheKeys.get(o),secondEntry:t});if(typeof s!="string"&&s.integrity){if(this._cacheKeysToIntegrities.has(t)&&this._cacheKeysToIntegrities.get(t)!==s.integrity)throw new d("add-to-cache-list-conflicting-integrities",{url:o});this._cacheKeysToIntegrities.set(t,s.integrity)}if(this._urlsToCacheKeys.set(o,t),this._urlsToCacheModes.set(o,i),r.length>0){let n=`Workbox is precaching URLs without revision info: ${r.join(", ")}
This is generally NOT safe. Learn more at https://bit.ly/wb-precache`}}}install(e){return X(e,async()=>{let r=new V;this.strategy.plugins.push(r);for(let[o,i]of this._urlsToCacheKeys){let n=this._cacheKeysToIntegrities.get(i),c=this._urlsToCacheModes.get(o),l=new Request(o,{integrity:n,cache:c,credentials:"same-origin"});await Promise.all(this.strategy.handleAll({params:{cacheKey:i},request:l,event:e}))}let{updatedURLs:s,notUpdatedURLs:t}=r;return{updatedURLs:s,notUpdatedURLs:t}})}activate(e){return X(e,async()=>{let r=await self.caches.open(this.strategy.cacheName),s=await r.keys(),t=new Set(this._urlsToCacheKeys.values()),o=[];for(let i of s)t.has(i.url)||(await r.delete(i),o.push(i.url));return{deletedURLs:o}})}getURLsToCacheKeys(){return this._urlsToCacheKeys}getCachedURLs(){return[...this._urlsToCacheKeys.keys()]}getCacheKeyForURL(e){let r=new URL(e,location.href);return this._urlsToCacheKeys.get(r.href)}getIntegrityForCacheKey(e){return this._cacheKeysToIntegrities.get(e)}async matchPrecache(e){let r=e instanceof Request?e.url:e,s=this.getCacheKeyForURL(r);if(s)return(await self.caches.open(this.strategy.cacheName)).match(s)}createHandlerBoundToURL(e){let r=this.getCacheKeyForURL(e);if(!r)throw new d("non-precached-url",{url:e});return s=>(s.request=new Request(e),s.params=Object.assign({cacheKey:r},s.params),this.strategy.handle(s))}};var re,j=()=>(re||(re=new U),re);try{self["workbox:routing:6.5.3"]&&_()}catch{}var B="GET";var k=a=>a&&typeof a=="object"?a:{handle:a};var h=class{constructor(e,r,s=B){this.handler=k(r),this.match=e,this.method=s}setCatchHandler(e){this.catchHandler=k(e)}};var O=class extends h{constructor(e,r,s){let t=({url:o})=>{let i=e.exec(o.href);if(!!i&&!(o.origin!==location.origin&&i.index!==0))return i.slice(1)};super(t,r,s)}};var $=class{constructor(){this._routes=new Map,this._defaultHandlerMap=new Map}get routes(){return this._routes}addFetchListener(){self.addEventListener("fetch",e=>{let{request:r}=e,s=this.handleRequest({request:r,event:e});s&&e.respondWith(s)})}addCacheListener(){self.addEventListener("message",e=>{if(e.data&&e.data.type==="CACHE_URLS"){let{payload:r}=e.data,s=Promise.all(r.urlsToCache.map(t=>{typeof t=="string"&&(t=[t]);let o=new Request(...t);return this.handleRequest({request:o,event:e})}));e.waitUntil(s),e.ports&&e.ports[0]&&s.then(()=>e.ports[0].postMessage(!0))}})}handleRequest({request:e,event:r}){let s=new URL(e.url,location.href);if(!s.protocol.startsWith("http"))return;let t=s.origin===location.origin,{params:o,route:i}=this.findMatchingRoute({event:r,request:e,sameOrigin:t,url:s}),n=i&&i.handler,c=[],l=e.method;if(!n&&this._defaultHandlerMap.has(l)&&(n=this._defaultHandlerMap.get(l)),!n)return;let m;try{m=n.handle({url:s,request:e,event:r,params:o})}catch(y){m=Promise.reject(y)}let b=i&&i.catchHandler;return m instanceof Promise&&(this._catchHandler||b)&&(m=m.catch(async y=>{if(b)try{return await b.handle({url:s,request:e,event:r,params:o})}catch(C){C instanceof Error&&(y=C)}if(this._catchHandler)return this._catchHandler.handle({url:s,request:e,event:r});throw y})),m}findMatchingRoute({url:e,sameOrigin:r,request:s,event:t}){let o=this._routes.get(s.method)||[];for(let i of o){let n,c=i.match({url:e,sameOrigin:r,request:s,event:t});if(c)return n=c,(Array.isArray(n)&&n.length===0||c.constructor===Object&&Object.keys(c).length===0||typeof c=="boolean")&&(n=void 0),{route:i,params:n}}return{}}setDefaultHandler(e,r=B){this._defaultHandlerMap.set(r,k(e))}setCatchHandler(e){this._catchHandler=k(e)}registerRoute(e){this._routes.has(e.method)||this._routes.set(e.method,[]),this._routes.get(e.method).push(e)}unregisterRoute(e){if(!this._routes.has(e.method))throw new d("unregister-route-but-not-found-with-method",{method:e.method});let r=this._routes.get(e.method).indexOf(e);if(r>-1)this._routes.get(e.method).splice(r,1);else throw new d("unregister-route-route-not-registered")}};var L,H=()=>(L||(L=new $,L.addFetchListener(),L.addCacheListener()),L);function N(a,e,r){let s;if(typeof a=="string"){let o=new URL(a,location.href),i=({url:n})=>n.href===o.href;s=new h(i,e,r)}else if(a instanceof RegExp)s=new O(a,e,r);else if(typeof a=="function")s=new h(a,e,r);else if(a instanceof h)s=a;else throw new d("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});return H().registerRoute(s),s}function je(a,e=[]){for(let r of[...a.searchParams.keys()])e.some(s=>s.test(r))&&a.searchParams.delete(r);return a}function*ye(a,{ignoreURLParametersMatching:e=[/^utm_/,/^fbclid$/],directoryIndex:r="index.html",cleanURLs:s=!0,urlManipulation:t}={}){let o=new URL(a,location.href);o.hash="",yield o.href;let i=je(o,e);if(yield i.href,r&&i.pathname.endsWith("/")){let n=new URL(i.href);n.pathname+=r,yield n.href}if(s){let n=new URL(i.href);n.pathname+=".html",yield n.href}if(t){let n=t({url:o});for(let c of n)yield c.href}}var S=class extends h{constructor(e,r){let s=({request:t})=>{let o=e.getURLsToCacheKeys();for(let i of ye(t.url,r)){let n=o.get(i);if(n){let c=e.getIntegrityForCacheKey(n);return{cacheKey:n,integrity:c}}}};super(s,e.strategy)}};function ae(a){let e=j(),r=new S(e,a);N(r)}function se(a){j().precache(a)}function te(a,e){se(a),ae(e)}var P=class extends u{async _handle(e,r){let s=[],t=await r.cacheMatch(e),o;if(!t)try{t=await r.fetchAndCachePut(e)}catch(i){i instanceof Error&&(o=i)}if(!t)throw new d("no-response",{url:e.url,error:o});return t}};var oe={cacheWillUpdate:async({response:a})=>a.status===200||a.status===0?a:null};var q=class extends u{constructor(e={}){super(e),this.plugins.some(r=>"cacheWillUpdate"in r)||this.plugins.unshift(oe),this._networkTimeoutSeconds=e.networkTimeoutSeconds||0}async _handle(e,r){let s=[],t=[],o;if(this._networkTimeoutSeconds){let{id:c,promise:l}=this._getTimeoutPromise({request:e,logs:s,handler:r});o=c,t.push(l)}let i=this._getNetworkPromise({timeoutId:o,request:e,logs:s,handler:r});t.push(i);let n=await r.waitUntil((async()=>await r.waitUntil(Promise.race(t))||await i)());if(!n)throw new d("no-response",{url:e.url});return n}_getTimeoutPromise({request:e,logs:r,handler:s}){let t;return{promise:new Promise(i=>{t=setTimeout(async()=>{i(await s.cacheMatch(e))},this._networkTimeoutSeconds*1e3)}),id:t}}async _getNetworkPromise({timeoutId:e,request:r,logs:s,handler:t}){let o,i;try{i=await t.fetchAndCachePut(r)}catch(n){n instanceof Error&&(o=n)}return e&&clearTimeout(e),(o||!i)&&(i=await t.cacheMatch(r)),i}};function G(a){a.then(()=>{})}var qe=(a,e)=>e.some(r=>a instanceof r),Ee,Ne;function Ae(){return Ee||(Ee=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function Me(){return Ne||(Ne=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}var xe=new WeakMap,ne=new WeakMap,Re=new WeakMap,ie=new WeakMap,de=new WeakMap;function Ve(a){let e=new Promise((r,s)=>{let t=()=>{a.removeEventListener("success",o),a.removeEventListener("error",i)},o=()=>{r(g(a.result)),t()},i=()=>{s(a.error),t()};a.addEventListener("success",o),a.addEventListener("error",i)});return e.then(r=>{r instanceof IDBCursor&&xe.set(r,a)}).catch(()=>{}),de.set(e,a),e}function Fe(a){if(ne.has(a))return;let e=new Promise((r,s)=>{let t=()=>{a.removeEventListener("complete",o),a.removeEventListener("error",i),a.removeEventListener("abort",i)},o=()=>{r(),t()},i=()=>{s(a.error||new DOMException("AbortError","AbortError")),t()};a.addEventListener("complete",o),a.addEventListener("error",i),a.addEventListener("abort",i)});ne.set(a,e)}var ce={get(a,e,r){if(a instanceof IDBTransaction){if(e==="done")return ne.get(a);if(e==="objectStoreNames")return a.objectStoreNames||Re.get(a);if(e==="store")return r.objectStoreNames[1]?void 0:r.objectStore(r.objectStoreNames[0])}return g(a[e])},set(a,e,r){return a[e]=r,!0},has(a,e){return a instanceof IDBTransaction&&(e==="done"||e==="store")?!0:e in a}};function ke(a){ce=a(ce)}function Ie(a){return a===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(e,...r){let s=a.call(z(this),e,...r);return Re.set(s,e.sort?e.sort():[e]),g(s)}:Me().includes(a)?function(...e){return a.apply(z(this),e),g(xe.get(this))}:function(...e){return g(a.apply(z(this),e))}}function We(a){return typeof a=="function"?Ie(a):(a instanceof IDBTransaction&&Fe(a),qe(a,Ae())?new Proxy(a,ce):a)}function g(a){if(a instanceof IDBRequest)return Ve(a);if(ie.has(a))return ie.get(a);let e=We(a);return e!==a&&(ie.set(a,e),de.set(e,a)),e}var z=a=>de.get(a);function Ce(a,e,{blocked:r,upgrade:s,blocking:t,terminated:o}={}){let i=indexedDB.open(a,e),n=g(i);return s&&i.addEventListener("upgradeneeded",c=>{s(g(i.result),c.oldVersion,c.newVersion,g(i.transaction))}),r&&i.addEventListener("blocked",()=>r()),n.then(c=>{o&&c.addEventListener("close",()=>o()),t&&c.addEventListener("versionchange",()=>t())}).catch(()=>{}),n}function De(a,{blocked:e}={}){let r=indexedDB.deleteDatabase(a);return e&&r.addEventListener("blocked",()=>e()),g(r).then(()=>{})}var Ke=["get","getKey","getAll","getAllKeys","count"],Be=["put","add","delete","clear"],fe=new Map;function _e(a,e){if(!(a instanceof IDBDatabase&&!(e in a)&&typeof e=="string"))return;if(fe.get(e))return fe.get(e);let r=e.replace(/FromIndex$/,""),s=e!==r,t=Be.includes(r);if(!(r in(s?IDBIndex:IDBObjectStore).prototype)||!(t||Ke.includes(r)))return;let o=async function(i,...n){let c=this.transaction(i,t?"readwrite":"readonly"),l=c.store;return s&&(l=l.index(n.shift())),(await Promise.all([l[r](...n),t&&c.done]))[0]};return fe.set(e,o),o}ke(a=>({...a,get:(e,r,s)=>_e(e,r)||a.get(e,r,s),has:(e,r)=>!!_e(e,r)||a.has(e,r)}));try{self["workbox:expiration:6.5.3"]&&_()}catch{}var He="workbox-expiration",A="cache-entries",Te=a=>{let e=new URL(a,location.href);return e.hash="",e.href},Q=class{constructor(e){this._db=null,this._cacheName=e}_upgradeDb(e){let r=e.createObjectStore(A,{keyPath:"id"});r.createIndex("cacheName","cacheName",{unique:!1}),r.createIndex("timestamp","timestamp",{unique:!1})}_upgradeDbAndDeleteOldDbs(e){this._upgradeDb(e),this._cacheName&&De(this._cacheName)}async setTimestamp(e,r){e=Te(e);let s={url:e,timestamp:r,cacheName:this._cacheName,id:this._getId(e)},o=(await this.getDb()).transaction(A,"readwrite",{durability:"relaxed"});await o.store.put(s),await o.done}async getTimestamp(e){let s=await(await this.getDb()).get(A,this._getId(e));return s?.timestamp}async expireEntries(e,r){let s=await this.getDb(),t=await s.transaction(A).store.index("timestamp").openCursor(null,"prev"),o=[],i=0;for(;t;){let c=t.value;c.cacheName===this._cacheName&&(e&&c.timestamp<e||r&&i>=r?o.push(t.value):i++),t=await t.continue()}let n=[];for(let c of o)await s.delete(A,c.id),n.push(c.url);return n}_getId(e){return this._cacheName+"|"+Te(e)}async getDb(){return this._db||(this._db=await Ce(He,1,{upgrade:this._upgradeDbAndDeleteOldDbs.bind(this)})),this._db}};var x=class{constructor(e,r={}){this._isRunning=!1,this._rerunRequested=!1,this._maxEntries=r.maxEntries,this._maxAgeSeconds=r.maxAgeSeconds,this._matchOptions=r.matchOptions,this._cacheName=e,this._timestampModel=new Q(e)}async expireEntries(){if(this._isRunning){this._rerunRequested=!0;return}this._isRunning=!0;let e=this._maxAgeSeconds?Date.now()-this._maxAgeSeconds*1e3:0,r=await this._timestampModel.expireEntries(e,this._maxEntries),s=await self.caches.open(this._cacheName);for(let t of r)await s.delete(t,this._matchOptions);this._isRunning=!1,this._rerunRequested&&(this._rerunRequested=!1,G(this.expireEntries()))}async updateTimestamp(e){await this._timestampModel.setTimestamp(e,Date.now())}async isURLExpired(e){if(this._maxAgeSeconds){let r=await this._timestampModel.getTimestamp(e),s=Date.now()-this._maxAgeSeconds*1e3;return r!==void 0?r<s:!0}else return!1}async delete(){this._rerunRequested=!1,await this._timestampModel.expireEntries(1/0)}};function Ue(a){W.add(a)}var M=class{constructor(e={}){this.cachedResponseWillBeUsed=async({event:r,request:s,cacheName:t,cachedResponse:o})=>{if(!o)return null;let i=this._isResponseDateFresh(o),n=this._getCacheExpiration(t);G(n.expireEntries());let c=n.updateTimestamp(s.url);if(r)try{r.waitUntil(c)}catch{}return i?o:null},this.cacheDidUpdate=async({cacheName:r,request:s})=>{let t=this._getCacheExpiration(r);await t.updateTimestamp(s.url),await t.expireEntries()},this._config=e,this._maxAgeSeconds=e.maxAgeSeconds,this._cacheExpirations=new Map,e.purgeOnQuotaError&&Ue(()=>this.deleteCacheAndMetadata())}_getCacheExpiration(e){if(e===w.getRuntimeName())throw new d("expire-custom-caches-only");let r=this._cacheExpirations.get(e);return r||(r=new x(e,this._config),this._cacheExpirations.set(e,r)),r}_isResponseDateFresh(e){if(!this._maxAgeSeconds)return!0;let r=this._getDateHeaderTimestamp(e);if(r===null)return!0;let s=Date.now();return r>=s-this._maxAgeSeconds*1e3}_getDateHeaderTimestamp(e){if(!e.headers.has("date"))return null;let r=e.headers.get("date"),t=new Date(r).getTime();return isNaN(t)?null:t}async deleteCacheAndMetadata(){for(let[e,r]of this._cacheExpirations)await self.caches.delete(e),await r.delete();this._cacheExpirations=new Map}};function Ge(a,e){let r=e();return a.waitUntil(r),r}var ze=async a=>{let e=await self.clients.matchAll({type:"window"}),r="generic";/\.(?:png|gif|webm|jpg|webp|jpeg|svg)$/m.test(a)?r="image":/\.json$/m.test(a)&&(r="json");for(let s of e)s.postMessage({type:"FETCH_ERROR",payload:r})},Qe=async()=>{let a=await caches.keys();for(let r of a)await caches.delete(r),await new x(r,{maxEntries:1}).delete();await self.registration.unregister(),(await self.clients.matchAll()).forEach(r=>r.navigate(r.url))};addEventListener("message",a=>{switch(a.data.type){case"RESET":{a.waitUntil(Qe());break}}});te([{revision:"ea9668afe866cf94144aea54975de4c1",url:"js/abilities.js"},{revision:"adcb0a482e48de5b8bbb1dfd81425d64",url:"js/actions.js"},{revision:"61aaeee9b159854c0f032b22105c2545",url:"js/adventure.js"},{revision:"21771bc05dd0464b1aa9e4649c2e16eb",url:"js/adventures.js"},{revision:"0f82e1aeb2232f77e834890e47490d77",url:"js/afflictions.js"},{revision:"7f34fa11b33f7a28f306d719ef23a3e0",url:"js/ancestries.js"},{revision:"70dd3f16a4a9dd81be1be8d4bbde69a6",url:"js/archetypes.js"},{revision:"52335573df1f6003573a124a86cdac0f",url:"js/backgrounds.js"},{revision:"619a1b3c2117cc9abce56fe247d33471",url:"js/bestiary-encounterbuilder.js"},{revision:"d6ba87cc771e2d3595c04c428a5da5e3",url:"js/bestiary.js"},{revision:"e2f42425112f388bf1a51b5be9cf5ec2",url:"js/blacklist.js"},{revision:"fdb1c3a0212bd25dd422a427812e3da1",url:"js/book.js"},{revision:"9bcc769ac4898ad4ca69defd9d83814c",url:"js/books.js"},{revision:"2bb08db00ab38596c02fd448c47aba99",url:"js/bookslist.js"},{revision:"c3c783549c4f0fe486c6ddb290587c0c",url:"js/bookutils.js"},{revision:"8bb8ed8c10d8d474a44293a4045a1be9",url:"js/browsercheck.js"},{revision:"844ccfe9d29136e9d1fb9308c4a083d0",url:"js/classes.js"},{revision:"8bfad5efe8e8548f8523b36c13ccad07",url:"js/companionsfamiliars.js"},{revision:"5229964912670180f3a584178628c600",url:"js/conditions.js"},{revision:"1c4e816ca5f68d0481c5a56a920fd43e",url:"js/converter.js"},{revision:"fa68a73ad502602e9fcc79ceeee91c32",url:"js/converterutils.js"},{revision:"0c23c18c67cf9e7a5c12e5f43d560ae1",url:"js/creaturetemplates.js"},{revision:"16131f19f9027cf586d2bfe7e7277557",url:"js/deepbg.js"},{revision:"8bad225242661c4eab8c1602c23acf37",url:"js/deities.js"},{revision:"9b955e8e8bd978ae94b5700b99ba04e3",url:"js/encountergen.js"},{revision:"5352d236bca92f5653eeb4759ea91bda",url:"js/feats.js"},{revision:"f464e5aa6a015b371a2eb4999509a63a",url:"js/filter-abilities.js"},{revision:"dfd57c8244d6d0409960710f43381209",url:"js/filter-actions.js"},{revision:"2f6936194afe875ca23d2f0d5bd7ef14",url:"js/filter-afflictions.js"},{revision:"e49f20a14353f52b0f9a3123e75a16e3",url:"js/filter-ancestries.js"},{revision:"d6ddb5a2458a723bd3c92e533b47c9d2",url:"js/filter-archetypes.js"},{revision:"be447b0148fd8b0504532d74ec0b71b0",url:"js/filter-backgrounds.js"},{revision:"26653082493e3369a6e96feff90e28fd",url:"js/filter-bestiary.js"},{revision:"968cbaebdacaec84cfd9ed14a5681ab0",url:"js/filter-classes.js"},{revision:"25ba949af5993e72909cd7b98a3ca0ef",url:"js/filter-companionsfamiliars.js"},{revision:"be67b652c59bfca13ae2dfa1a53ff8df",url:"js/filter-conditions.js"},{revision:"005e430356281ab33276d5b6f3d3f83d",url:"js/filter-creaturetemplates.js"},{revision:"6140cab925dabed0c8d5513393f9516a",url:"js/filter-deities.js"},{revision:"8cba93a5fde8a3a57b617e49148336c4",url:"js/filter-feats.js"},{revision:"60fe517b560a5aa62dc6c8abd180168c",url:"js/filter-hazards.js"},{revision:"447ebf97e2f5ba22c9cde4ac35fb0fed",url:"js/filter-items.js"},{revision:"7d409c372a3b5679d336447894dab9cd",url:"js/filter-languages.js"},{revision:"90cf0c8ea7a5490c7176fa32eba9dec2",url:"js/filter-optionalfeatures.js"},{revision:"48e635ed4355fb89dbb44bd8b22f1bb2",url:"js/filter-organizations.js"},{revision:"ed719db1351f48c6fbe53cb735af4c11",url:"js/filter-places.js"},{revision:"7e5100cb82172b0efe10d58fadc76dee",url:"js/filter-rituals.js"},{revision:"98fb8cb75b136f0f396c48b4821cdf19",url:"js/filter-spells.js"},{revision:"1a66c97336877234e1e95cc592934da1",url:"js/filter-tables.js"},{revision:"2947025006376a0c46432272a301b110",url:"js/filter-traits.js"},{revision:"ced5b81eaa6b6968aee339052d498b16",url:"js/filter-variantrules.js"},{revision:"291f440dd1b34f30bce7af7c1bf4d9e0",url:"js/filter-vehicles.js"},{revision:"5c63eb4666ca0fb36340eb385835505a",url:"js/filter.js"},{revision:"b918393b488c94f17f3aae526913be18",url:"js/genutils.js"},{revision:"ce4d531479463db31e1671be891bebae",url:"js/gmscreen-counter.js"},{revision:"053f90ed005fcefcdc914895cb0f6c67",url:"js/gmscreen-initiativetracker.js"},{revision:"b27a0e033f574ad2efaad2f03446d967",url:"js/gmscreen-mapper.js"},{revision:"7086e2c4f27fa1b6e8c18de668406a1b",url:"js/gmscreen-moneyconverter.js"},{revision:"807def90ceacbd00b0da2dd6d1ba6795",url:"js/gmscreen-playerinitiativetracker.js"},{revision:"6e353bbf66b1b80f210064e67af4f787",url:"js/gmscreen-timetracker.js"},{revision:"7fe457e1b1e47c1b327b9c229503b95b",url:"js/gmscreen.js"},{revision:"01cf3b549851deb976708b7d7e84102f",url:"js/hazards.js"},{revision:"fe621e48fa923f682d31fbf6677e838a",url:"js/hist.js"},{revision:"9948771a03f77f4a1c8d4ec3ca9084b9",url:"js/initiativetrackerutils.js"},{revision:"fc687277a94712c304678389dd191333",url:"js/inittrackerplayerview.js"},{revision:"6a7db024f50e578775103f497b5172fb",url:"js/items-runebuilder.js"},{revision:"78a7eff6cfdd59f4b9f59d0cb76bbee1",url:"js/items.js"},{revision:"5af89260cf41c44ea047fc0275e45f96",url:"js/langdemo.js"},{revision:"453df8120a0f7c7e7597177064dda26e",url:"js/langdemo2.js"},{revision:"3030328d4efb34ea18e73c329c06027e",url:"js/languages.js"},{revision:"9a60555ba889bc97bad5ed148b263ef1",url:"js/list2.js"},{revision:"63563afffd6163eb55e69edee8e660e0",url:"js/listpage.js"},{revision:"f8d0b4fcf44162e50d30aceafca7f03e",url:"js/managebrew.js"},{revision:"fa7ea74e1df4e5328ac3486ddceb7cd7",url:"js/multisource.js"},{revision:"888d854f6bfa7bff5d5e4059d0d9cff7",url:"js/navigation.js"},{revision:"d778f679ebcbc674aa2922086b2bd51c",url:"js/omnidexer.js"},{revision:"ebf344ae9608c6c6f3123902f99cbfa9",url:"js/omnisearch.js"},{revision:"8cb199a149a7c353436b4b23774f0dc8",url:"js/optionalfeatures.js"},{revision:"309d776bf666002b322359bb9540ec36",url:"js/organizations.js"},{revision:"a8dd03436b43d8cb4ab32c8867c78202",url:"js/parser.js"},{revision:"06b625b60f6911d2b65275448f0fe5ae",url:"js/places.js"},{revision:"140816e674533979f522f02970780444",url:"js/quickreference.js"},{revision:"15a9b390a1b82f52342a011fbe89a3d3",url:"js/render-dice.js"},{revision:"ef7adf7b06925b8143a14b1bafad3251",url:"js/render-map.js"},{revision:"ab5823ac23cdb15894cf5de59c442b41",url:"js/render.js"},{revision:"bdcd0d0ec164abbd8ae81854951614c3",url:"js/renderdemo.js"},{revision:"25f700f035aa50408d9688f26f9aa46a",url:"js/rituals.js"},{revision:"680994cb961eeaaa22a0a10715a9fcbd",url:"js/rolang.js"},{revision:"3586fa455b72d942eb7c9a1569c48c41",url:"js/scalecreature.js"},{revision:"b823cf704b3f8a1aa3a24f0bf1c6735d",url:"js/search.js"},{revision:"0c333c70f3c4d894b4785840eff3c992",url:"js/seo-loader.js"},{revision:"69da29ef6cfa62cdd011a39515b5141f",url:"js/spells.js"},{revision:"3687490b20e78d4414d388f1f923f6d8",url:"js/styleswitch.js"},{revision:"ba3ec2d14497337b47ccdf9d31738570",url:"js/tablepage.js"},{revision:"8a1ab0bfa508055a179b3fa01aa7fd67",url:"js/tables.js"},{revision:"f7ba7411ce8a4f6c1db7ca13565b3b53",url:"js/textconverter.js"},{revision:"8d49390c90d5f7b62255ec7053c3bc95",url:"js/tokenizer.js"},{revision:"6f5d4c18beff74ca0fc15a9c69c693c7",url:"js/traits.js"},{revision:"4d0c372242ba98d838d756da18dc9c0d",url:"js/utils-changelog.js"},{revision:"ce389a1ad746ffd019bb30189f5bbf4a",url:"js/utils-licenses.js"},{revision:"bde4299807c6f5d2c9233cc429a349e4",url:"js/utils-list.js"},{revision:"3e9239b11afe89a33d5eaad63847b5bc",url:"js/utils-p2p.js"},{revision:"879814f5e754974d2fd1d0050bff1435",url:"js/utils-proporder.js"},{revision:"82adb2c24289fc25abb32163f08056b2",url:"js/utils-ui.js"},{revision:"6057c4f4b1c6867e6849cd53efebd636",url:"js/utils.js"},{revision:"65d4253bd1636a9a26d4d59e9b808720",url:"js/variantrules.js"},{revision:"2838d4562ea735105a75477c12c8a66e",url:"js/vehicles.js"},{revision:"b36e7c94c751656285d8e977cc152b10",url:"lib/ace.js"},{revision:"f841812c750b396f454daee1aa5c4213",url:"lib/bootstrap-select.min.js"},{revision:"cad6941d32006acbc61f7bab05918150",url:"lib/bootstrap.min.js"},{revision:"7ba761cdbfa62922c3b750ac78f866eb",url:"lib/elasticlunr.js"},{revision:"28dd3c8bf663c55bc9aa3d8f92945871",url:"lib/ext-searchbox.js"},{revision:"a8e8282fcf516551d39204e076624b55",url:"lib/jquery-ui-slider-pip.js"},{revision:"e858f6a2725af4140c1c424cf024a808",url:"lib/jquery-ui.js"},{revision:"a6b6350ee94a3ea74595c065cbf58af0",url:"lib/jquery.js"},{revision:"04680cb5d0adf90731746e92ef05a87b",url:"lib/jquery.panzoom.js"},{revision:"862e9e065bcfe3944871cbf66229b3fd",url:"lib/localforage.js"},{revision:"522bc8c23346ddf54992d531acabcb3e",url:"lib/lzma.js"},{revision:"2378a4fa58c2e66792c81641346a4a40",url:"lib/peerjs.js"},{revision:"fcf66afa34d87ce0bd47437c0c31816e",url:"css/bootstrap-select.min.css"},{revision:"1264a8c9b7b1a57b2213a96859326e9f",url:"css/bootstrap.css"},{revision:"76c21ec4aba1d2c8d30371e61f50fc32",url:"css/classes.css"},{revision:"354613438d26956a4530d57badd1711d",url:"css/fontawesome.css"},{revision:"01ef22f83fa30e6bed564ab061a79f54",url:"css/jquery-ui-slider-pips.css"},{revision:"4ef12b83b1ef3ff34d711c6a78421f55",url:"css/jquery-ui.css"},{revision:"0ef7c0b35aa5148a042ea251dfba7d0e",url:"css/list-page--grouped.css"},{revision:"939fd45be687b473e266348825fb5697",url:"css/search.css"},{revision:"053c51a542ddfdb73a3145d293afb1a4",url:"css/style.css"},{revision:"f8c7f17547945d8f710506491ef99275",url:"homebrew/index.json"},{revision:"0318c92fe2e5274880079a080b006dd3",url:"data/abilities.json"},{revision:"1fc1f2e70cc71ffe988edbd76a4646ee",url:"data/actions.json"},{revision:"e234bbe57da2898f8cfb1a9833448c15",url:"data/adventures.json"},{revision:"acfca834f160d70f64ad04f5d98ff01b",url:"data/afflictions.json"},{revision:"50eb62c0e82f672c4a9d58ccb1c3714b",url:"data/archetypes.json"},{revision:"b1cc8af061816f37619279a606724431",url:"data/books.json"},{revision:"885423a5368dd0e76b369486026a862d",url:"data/changelog.json"},{revision:"c9c8afffb389f70b4e4248d50de7f156",url:"data/companionsfamiliars.json"},{revision:"e7cdc4c8e9d400ddc6e6af4b0b02ffed",url:"data/conditions.json"},{revision:"49c8f96f6f2d2efcc453511390468e4c",url:"data/creaturetemplates.json"},{revision:"779598562e4f83cc0f249bd220c3ee17",url:"data/deities.json"},{revision:"d465ddfac916a507fa4da1fbd248dcdf",url:"data/domains.json"},{revision:"5b9e50d64ac3f3331f13d9c9180bbf36",url:"data/events.json"},{revision:"ad7a7223bbafbf96d59d9618b88c2c77",url:"data/fluff-creaturetemplates.json"},{revision:"86649d0b812ec03047ba5ed5ea64814b",url:"data/fluff-deities.json"},{revision:"5a16056237244ce4a138f4af355565f5",url:"data/fluff-organizations.json"},{revision:"317c438dd61985f25c83ed48fa7a5955",url:"data/groups.json"},{revision:"0b0922ebfc9372f821f966c9f4602c62",url:"data/hazards.json"},{revision:"c287b25dec6f3cf8e4c000ea2c189d44",url:"data/languages.json"},{revision:"67522b3553bc6b7653559897f84ba5a8",url:"data/licenses.json"},{revision:"fe23e3952677507bafbdbbd4491625c8",url:"data/optionalfeatures.json"},{revision:"8ec36d8b1324d4cb80a3788fff02d098",url:"data/organizations.json"},{revision:"f72d0cd08ef1481fcf751f824700771b",url:"data/places.json"},{revision:"d695d93f351ea2af84e7b4bffcbb3818",url:"data/quickrules.json"},{revision:"c79281188f7276bcc41af153addc1f1b",url:"data/renderdemo.json"},{revision:"bb572c962a382f14736e7dfd4a6cbc9d",url:"data/rituals.json"},{revision:"e5493e7425c15ec468e24af1b3f4afed",url:"data/skills.json"},{revision:"ca03fd116c840af3f743bba88abf6444",url:"data/sources.json"},{revision:"5669ee81b118f5069dbd96d029975354",url:"data/tables.json"},{revision:"f2e807129489f0261d7e7f9a209a4352",url:"data/traits.json"},{revision:"0f6e549a59abe9bb9eacb8fd30d2e7e8",url:"data/variantrules.json"},{revision:"87187fbb5a757285e8b740aa0f73e4f7",url:"data/vehicles.json"},{revision:"f19ee4028266afb6aec35687fe788a94",url:"data/ancestries/ancestry-anadi.json"},{revision:"4bcdba3c1e006c0d405d0e0ff6cd3f8f",url:"data/ancestries/ancestry-android.json"},{revision:"54fad8c9e575b235ed51d447e5b87ac7",url:"data/ancestries/ancestry-automaton.json"},{revision:"52b373fa49c45f8c434a194fb0f57c22",url:"data/ancestries/ancestry-azarketi.json"},{revision:"d7a3955389dc8d5ae3ce01a2325cf7cb",url:"data/ancestries/ancestry-catfolk.json"},{revision:"1d00e093087ed8193ff6c9ed0acb299b",url:"data/ancestries/ancestry-conrasu.json"},{revision:"3769bcdaf62e982d2819546d33917c0a",url:"data/ancestries/ancestry-dwarf.json"},{revision:"7ee449c0e4229b2e97e637e77306209e",url:"data/ancestries/ancestry-elf.json"},{revision:"de926271f6f46becc7b28ad0189eb57b",url:"data/ancestries/ancestry-fetchling.json"},{revision:"1225a23f2812f17e12c740fb97650e9f",url:"data/ancestries/ancestry-fleshwarp.json"},{revision:"5f77d5b0bd7da9f891c6d8b393545ce0",url:"data/ancestries/ancestry-gnoll.json"},{revision:"a97bec6ae8ec4033ccde84f693e581bd",url:"data/ancestries/ancestry-gnome.json"},{revision:"d1559bbbc827e7b507cbe21a3162bc99",url:"data/ancestries/ancestry-goblin.json"},{revision:"3401f5a166f7f407d1116b2df9bb5b8c",url:"data/ancestries/ancestry-goloma.json"},{revision:"5c2adc7787d7db6c242e4a95ff5852a2",url:"data/ancestries/ancestry-grippli.json"},{revision:"96a03909ed4f97c1abf400dfb84b7eb0",url:"data/ancestries/ancestry-halfling.json"},{revision:"af2c6e890fe8b5f899ad6e8381aafe0b",url:"data/ancestries/ancestry-hobgoblin.json"},{revision:"79ca7584c4cbd245134df44295d78f82",url:"data/ancestries/ancestry-human.json"},{revision:"2010bd63aad2ff565cddab64b82fa5d9",url:"data/ancestries/ancestry-kitsune.json"},{revision:"40191648703f7b6f64ab2fbeb3b1483e",url:"data/ancestries/ancestry-kobold.json"},{revision:"8a9d983745990bd0d810400e21bcd57e",url:"data/ancestries/ancestry-leshy.json"},{revision:"9974152c982a89e12f186b829817a952",url:"data/ancestries/ancestry-lizardfolk.json"},{revision:"fa2f148cc423fd6628049ae263abd938",url:"data/ancestries/ancestry-orc.json"},{revision:"4a4f8883a6da4f6fc7491ac00ee88be5",url:"data/ancestries/ancestry-poppet.json"},{revision:"d4564c245be17a63d126df053f9288fb",url:"data/ancestries/ancestry-ratfolk.json"},{revision:"ce42d43f11cbb0170e410cd7e7c3e35e",url:"data/ancestries/ancestry-shisk.json"},{revision:"4441b328953dd49ef0e8564861a5ef2d",url:"data/ancestries/ancestry-shoony.json"},{revision:"0de0dc6695d287c0c61a2cb2cc3aa5c2",url:"data/ancestries/ancestry-skeleton.json"},{revision:"07c5db344d83de5697da4b27f01d37c9",url:"data/ancestries/ancestry-sprite.json"},{revision:"ea8357da1f2dffbd349961868c8e6826",url:"data/ancestries/ancestry-strix.json"},{revision:"be78d9ca884cc45aefc0888fa680b2fc",url:"data/ancestries/ancestry-tengu.json"},{revision:"fe5066650daec8641a35bd924c8dc37e",url:"data/ancestries/index.json"},{revision:"cfa68e4e6bc122be0e0a2862b0e46851",url:"data/ancestries/versatile-heritages.json"},{revision:"48a5f08aceaf321c5fb2fa7e0f0a0ae6",url:"data/backgrounds/backgrounds-aoa0.json"},{revision:"18a6fc08bf3cb566a46c6535e9397e14",url:"data/backgrounds/backgrounds-aoa4.json"},{revision:"e078edee16911bf4a3ccc83a7612d58a",url:"data/backgrounds/backgrounds-aoa6.json"},{revision:"8c20974d531de9e06fd2dc498c6f20f0",url:"data/backgrounds/backgrounds-aoe0.json"},{revision:"760e7f38b5727a3c4653ed20f5cd6d66",url:"data/backgrounds/backgrounds-aoe4.json"},{revision:"1c91ef48e79949fbf0fa3dc1baa7e674",url:"data/backgrounds/backgrounds-apg.json"},{revision:"ed95dfaff9809b458f1291453823f43c",url:"data/backgrounds/backgrounds-av0.json"},{revision:"a35924d073570d34e03ddfb77d33ccf6",url:"data/backgrounds/backgrounds-botd.json"},{revision:"31b8e7593bac4fc20ac9f2ddb44b972f",url:"data/backgrounds/backgrounds-crb.json"},{revision:"e5a2e106d7c88a01fe1507c6f7076a45",url:"data/backgrounds/backgrounds-da.json"},{revision:"25a30b78e22d18f216a3d8d554b86bc5",url:"data/backgrounds/backgrounds-ec0.json"},{revision:"93d1d458d191b41d42375746c2596866",url:"data/backgrounds/backgrounds-ec3.json"},{revision:"d08dab68c3792e18b13e7e38aa44d9f4",url:"data/backgrounds/backgrounds-frp0.json"},{revision:"dbad6a861af4bd1afa395b0d4010fedc",url:"data/backgrounds/backgrounds-g&g.json"},{revision:"483a3d816b25dd7129cf6db60d9ccb40",url:"data/backgrounds/backgrounds-logm.json"},{revision:"380cd3e12ac6516017e82557f5b97dfe",url:"data/backgrounds/backgrounds-lokl.json"},{revision:"3d6da7e6515e1e3eed3bf0f8d44b2c44",url:"data/backgrounds/backgrounds-lopsg.json"},{revision:"f99c39d824dc91432ab566eba87bfaaf",url:"data/backgrounds/backgrounds-lotg.json"},{revision:"06dfd619c37af1d83b536491073ab085",url:"data/backgrounds/backgrounds-lowg.json"},{revision:"2887efc249fbe25cb96b5dba99f6cec9",url:"data/backgrounds/backgrounds-som.json"},{revision:"de810bc4c27dd0a67496b2a7fddc0d1f",url:"data/backgrounds/backgrounds-sot0.json"},{revision:"5c92d8542c71097c784cab0b30d3d7de",url:"data/backgrounds/fluff-backgrounds.json"},{revision:"fdcd689d45d91459c3e61051c1d0e0c4",url:"data/backgrounds/index.json"},{revision:"ba8132d777abf1a326702236068f2b6d",url:"data/bestiary/creatures-aoa1.json"},{revision:"36c7b7d9cdddbb505b508fb7c9ff5d36",url:"data/bestiary/creatures-aoa2.json"},{revision:"a7fca841f0d1419d019c03daaf25ec47",url:"data/bestiary/creatures-aoa3.json"},{revision:"8c3c4a32d5a08da2dedd98678d4cd207",url:"data/bestiary/creatures-aoa4.json"},{revision:"99a443b0c12335e91a04a473a076aac1",url:"data/bestiary/creatures-aoa5.json"},{revision:"6b92d3c0753415f8aef952253ff8637e",url:"data/bestiary/creatures-aoa6.json"},{revision:"a74522c15eeeeb4b18e80dfaebae57a6",url:"data/bestiary/creatures-aoe1.json"},{revision:"9d2cb966563b332fb98810c217b07641",url:"data/bestiary/creatures-aoe2.json"},{revision:"26c20fe62d7353374dca6c58dda2153b",url:"data/bestiary/creatures-aoe3.json"},{revision:"b4461167a9e78e34b162e1dcc442a86f",url:"data/bestiary/creatures-aoe4.json"},{revision:"fc6ac5604e9a18e9d481eccfa35a3b9c",url:"data/bestiary/creatures-aoe5.json"},{revision:"64837ef68712d886b44d52d36cf9adad",url:"data/bestiary/creatures-aoe6.json"},{revision:"d12744c8a6e1284ec1e09d38b0f54f9b",url:"data/bestiary/creatures-av1.json"},{revision:"c90bc3ad4b412e1c3cc1e45a65315589",url:"data/bestiary/creatures-av2.json"},{revision:"f09409c1c27ef64548100a13a6f6bf0d",url:"data/bestiary/creatures-av3.json"},{revision:"445e751b3dd1af45bf17780e4812b90d",url:"data/bestiary/creatures-b1.json"},{revision:"46cd5231042fd63160ee37e936859d3d",url:"data/bestiary/creatures-b2.json"},{revision:"36032d5ca6d25c6516b822d5c60655c1",url:"data/bestiary/creatures-b3.json"},{revision:"ad286cf0690c5dfb0bdc0e3409a7a2ca",url:"data/bestiary/creatures-botd.json"},{revision:"b1c01e3dc57b62761a85b03231d80762",url:"data/bestiary/creatures-crb.json"},{revision:"62f8c4e7dd83d620fe4efb3ee7fd2cd2",url:"data/bestiary/creatures-da.json"},{revision:"589bf70c0e76d4534d7e5d80893f99fd",url:"data/bestiary/creatures-ec1.json"},{revision:"c4b6ba485ad13fcf5e54b88aba782a04",url:"data/bestiary/creatures-ec2.json"},{revision:"dbc139b5b2d5ada4e2dd05c27cd16a10",url:"data/bestiary/creatures-ec3.json"},{revision:"bdf85016cc764cbe6cb8466653d9315f",url:"data/bestiary/creatures-ec4.json"},{revision:"6649b76a5b085d157232790555678f33",url:"data/bestiary/creatures-ec5.json"},{revision:"4f4cebd08b8ec17d3df707e6ae379531",url:"data/bestiary/creatures-ec6.json"},{revision:"42fa130b42d1a5570cfc1f43ccd3547d",url:"data/bestiary/creatures-fop.json"},{revision:"2e28f1b19ede2ee03b915ca0957fe0f2",url:"data/bestiary/creatures-frp1.json"},{revision:"a42c4f59c33b7d240b4aeb8507ddaa1d",url:"data/bestiary/creatures-frp2.json"},{revision:"4d4a73eb2fd4ba2be01e484dcea1c85e",url:"data/bestiary/creatures-frp3.json"},{revision:"858f74c5a0e85df41890bcaba4c93c59",url:"data/bestiary/creatures-gmg.json"},{revision:"e56db7d8169b7352c624966a130bf856",url:"data/bestiary/creatures-lome.json"},{revision:"20bd7b677b9ff7ea2e59d8d3f643b9f6",url:"data/bestiary/creatures-ltiba.json"},{revision:"f9ed4a65cd5193453dc3f3e07e56b028",url:"data/bestiary/creatures-ngd.json"},{revision:"2e3a07a5c9cf7b505b180a3fa97cdc46",url:"data/bestiary/creatures-sli.json"},{revision:"0343533c5f70f23b5b3b0cc47b819244",url:"data/bestiary/creatures-sot1.json"},{revision:"5265033fc878f8bfaf6ca1621d0c17a6",url:"data/bestiary/creatures-sot2.json"},{revision:"70f51f9b00479daf2030ae5dd271b619",url:"data/bestiary/creatures-sot3.json"},{revision:"9744cc0932819cb25b619194bd56dbcb",url:"data/bestiary/creatures-sot4.json"},{revision:"edaef23eb93e911cee4fbd4c1adf6ea5",url:"data/bestiary/creatures-sot5.json"},{revision:"29be5ab25cd26ac843039beb197fdff1",url:"data/bestiary/creatures-sot6.json"},{revision:"09d0781cce0168706e1302bc9c0a83c8",url:"data/bestiary/creatures-tio.json"},{revision:"caaf16707e3febba9ac5420f425f79cd",url:"data/bestiary/fluff-creatures-av3.json"},{revision:"41ecca6113579fd10e8462d76930eeb5",url:"data/bestiary/fluff-creatures-b1.json"},{revision:"9956f250f0e3e20efbf969f6cf057dee",url:"data/bestiary/fluff-creatures-b2.json"},{revision:"4e51e07b489de9429f6595b26c72c197",url:"data/bestiary/fluff-creatures-b3.json"},{revision:"234ac3d70f3043e88cad0726c55eec07",url:"data/bestiary/fluff-creatures-gmg.json"},{revision:"f0b6aa97a48a31b2bd5950ff175a6f69",url:"data/bestiary/fluff-creatures-lome.json"},{revision:"8549f817f32bdf4469402dfecd8caa21",url:"data/bestiary/fluff-creatures-sot1.json"},{revision:"e597e9de684c06f35916193c652fc07d",url:"data/bestiary/fluff-index.json"},{revision:"527826f9125e9c93ec28b8c772aa7348",url:"data/bestiary/index.json"},{revision:"b77c58a669b775a350b27e4aa156df87",url:"data/book/book-crb.json"},{revision:"74b92da7b3d53fc8aa3cd073fdb7918c",url:"data/book/book-gmg.json"},{revision:"2c4488752ca06380f11d96e953a8b360",url:"data/book/book-lowg.json"},{revision:"eb04d30adaf0c50d29e49cb288ff02db",url:"data/book/book-som.json"},{revision:"766de21a7dbb394a8bbdd7ec61c32bfd",url:"data/class/class-alchemist.json"},{revision:"d1e7a181bda984d712f0eba2fa6ee953",url:"data/class/class-barbarian.json"},{revision:"ca27024ad217c27286f47d2339c93aba",url:"data/class/class-bard.json"},{revision:"1a75c8d805148ec3eb44f4a7376b4d8c",url:"data/class/class-champion.json"},{revision:"00bd634f371d5cac162e836097aaa778",url:"data/class/class-cleric.json"},{revision:"1eea2b98bc16b447d3af4d6ad17d2c8c",url:"data/class/class-druid.json"},{revision:"95c81a208e607bc10a5bfd4daa87a0f4",url:"data/class/class-fighter.json"},{revision:"7ab369002af39e2a4895b1923f268dca",url:"data/class/class-gunslinger.json"},{revision:"44a006cd1ce057efe4ac515ced691ad7",url:"data/class/class-inventor.json"},{revision:"cc95d2fa3476c89c0eaa7b7a9330edc2",url:"data/class/class-investigator.json"},{revision:"068cdf9bd235418bb89c461d4371175d",url:"data/class/class-magus.json"},{revision:"f0b5a557c2cf577f2a44b11636e61073",url:"data/class/class-monk.json"},{revision:"ff2c6384c16b273d7eae3ff8baaa34a4",url:"data/class/class-oracle.json"},{revision:"8a3226945c3ac6931b60a1244e407c67",url:"data/class/class-psychic.json"},{revision:"c2d99260f6c3366d365a94d01e69ae44",url:"data/class/class-ranger.json"},{revision:"68a287e86cc7cec05e9d52244dc7c761",url:"data/class/class-rogue.json"},{revision:"4da5ca79fcced2425b6d789a05e5ec9f",url:"data/class/class-sorcerer.json"},{revision:"7179d97c95a23c299033a36fc18812a9",url:"data/class/class-summoner.json"},{revision:"63e692bba2c04f610c2f8325ca24e306",url:"data/class/class-swashbuckler.json"},{revision:"bd26253b9521fac2f711277692921c35",url:"data/class/class-thaumaturge.json"},{revision:"1bedb5aef8b3fe687a1bccd07e58eaaa",url:"data/class/class-witch.json"},{revision:"dd1a7f6672951f80d93e2644b29babf1",url:"data/class/class-wizard.json"},{revision:"2beee3347b915ba75f8f33ef45258dcd",url:"data/class/index.json"},{revision:"d489a857d212ee0ae525e34d2d7a4f78",url:"data/feats/feats-aaws.json"},{revision:"f06d9f811d2bd5d2895a047a4f9d24ee",url:"data/feats/feats-aoa3.json"},{revision:"4813066168fd931dedd9a972af58b8d4",url:"data/feats/feats-aoa4.json"},{revision:"299ab38cdfa40261cb0c09c125cd4edd",url:"data/feats/feats-aoa5.json"},{revision:"c00eec5f10785095d63c1019c5ac7a9c",url:"data/feats/feats-aoa6.json"},{revision:"ae4c7855a818f4b0e3c21e99c5684793",url:"data/feats/feats-aoe1.json"},{revision:"55227250e15ae838898b7ce9ac543018",url:"data/feats/feats-aoe2.json"},{revision:"80201fd013f6c674d4e2d4997d7890fa",url:"data/feats/feats-aoe3.json"},{revision:"c90fb14c7052a3a1432bb12eb860e830",url:"data/feats/feats-apg.json"},{revision:"e27d36f8dc88b6ad6a9570cfee819633",url:"data/feats/feats-av1.json"},{revision:"28eedcd44fa991afa4095de96cfd21ed",url:"data/feats/feats-av2.json"},{revision:"2e1e3941d2886948007d3017d389224a",url:"data/feats/feats-av3.json"},{revision:"5dbbef5930ac72faef55587034a2b96f",url:"data/feats/feats-botd.json"},{revision:"55dbc7eadea77f2e1db5ffa1d80ecbde",url:"data/feats/feats-crb.json"},{revision:"515f368e1a05a6864779fc90e7fa840c",url:"data/feats/feats-da.json"},{revision:"0e49c6b28d5272e0ce04608dd802cd3e",url:"data/feats/feats-ec1.json"},{revision:"340e93641d23ed3ccaa18cb6e300b421",url:"data/feats/feats-ec2.json"},{revision:"c60d3f4d08948d5b8db366fcd3b63831",url:"data/feats/feats-ec3.json"},{revision:"7f31c727001efdf2ad8cdabe932c008f",url:"data/feats/feats-ec6.json"},{revision:"568a5233ed328e9d26f16abb76978d3e",url:"data/feats/feats-fop.json"},{revision:"34d087bc1dbefe1ea7db1db004438c16",url:"data/feats/feats-frp1.json"},{revision:"6932d4cc7b5c9890a0f08707fee13945",url:"data/feats/feats-frp2.json"},{revision:"a6f5fe4207cfa285cce9db80256d64e7",url:"data/feats/feats-frp3.json"},{revision:"050504a2fd35ca957a22d7df39e48c32",url:"data/feats/feats-g&g.json"},{revision:"90aa7169925660c88133037ca2862b16",url:"data/feats/feats-gmg.json"},{revision:"a859bc6d56ccdb94998f54fcc508faf3",url:"data/feats/feats-loag.json"},{revision:"e91c803d272465623f5f688adbdc0f0b",url:"data/feats/feats-locg.json"},{revision:"fc1a904bb12c2a280ccf9dd3a48ef457",url:"data/feats/feats-logm.json"},{revision:"05f6169a2b188d07c1f2f311f8cce6f0",url:"data/feats/feats-lokl.json"},{revision:"450cc98a26b9308e3f48b18ee89c5086",url:"data/feats/feats-lol.json"},{revision:"38c301daa8393133770a71113787ffb8",url:"data/feats/feats-lome.json"},{revision:"4ea13bc182b4c06cd0b10d3b43bad21f",url:"data/feats/feats-lopsg.json"},{revision:"a385fca217460a194f7928a96f9608cd",url:"data/feats/feats-lotgb.json"},{revision:"c37ad85e6e6d3265cf9096dfb4167f3a",url:"data/feats/feats-lowg.json"},{revision:"8120b6dfff1a035457d00e443b026a5d",url:"data/feats/feats-ltiba.json"},{revision:"b9d78cce751725a56c1cdb563f89651a",url:"data/feats/feats-ngd.json"},{revision:"8361d7596a6aed3b3c317d24c1fc42a5",url:"data/feats/feats-sli.json"},{revision:"155ee353f0897dd258a73fbd9b4c95a9",url:"data/feats/feats-som.json"},{revision:"9d5fcd1dc805bc30e3b63af69264fc99",url:"data/feats/feats-sot2.json"},{revision:"1e187e3b695532b73fac3598bb3fe857",url:"data/feats/feats-sot3.json"},{revision:"1d195719dcf88c24648226a4c3e776e7",url:"data/feats/feats-sot4.json"},{revision:"e2e588588f2e8ed91c0b61621a236905",url:"data/feats/feats-sot6.json"},{revision:"51a9729f76072b6d7dcdb985bf16391e",url:"data/feats/index.json"},{revision:"6374485f85a565df9bba364c0002f33e",url:"data/generated/bookref-gmscreen-index.json"},{revision:"bc0c21a2309dffdecd878ee632258439",url:"data/generated/bookref-gmscreen.json"},{revision:"a17dd7b7941c55f2bd19b6fbb41559af",url:"data/generated/bookref-quick.json"},{revision:"688a74016f76e2edf07802a3f0ba58f4",url:"data/generated/gendata-nav-adventure-book-index.json"},{revision:"89abbc9ceb714c88d8b6ef08da3c3143",url:"data/items/baseitems.json"},{revision:"2ea294279970407b3ac124f02b1b09af",url:"data/items/fluff-index.json"},{revision:"1fc0fcdbb0518e8fd10d16c8c67efd6f",url:"data/items/fluff-items-crb.json"},{revision:"c9cd8e4fe69355f27b41655227dd4fbe",url:"data/items/fluff-items-da.json"},{revision:"44e6153e9d452a872a8d3770f7511fe8",url:"data/items/fluff-items-logm.json"},{revision:"4b8cfdc47b16e8917e02d80dbabc34fb",url:"data/items/fluff-items-lome.json"},{revision:"544cc213fc4b87024c25ccd198ba65e2",url:"data/items/fluff-items-som.json"},{revision:"6d273204f35b9aeaf23182a23d01da3b",url:"data/items/index.json"},{revision:"2b27a7968e2c78c013f7bd7b2b02150f",url:"data/items/items-aoa1.json"},{revision:"92e1c6c149ff994136ed22afde62f459",url:"data/items/items-aoa2.json"},{revision:"8040bb1c7d284f9ae2c318d2bc4f1aef",url:"data/items/items-aoa3.json"},{revision:"301ea0b97b5c75f91399f4b5b3c7d9fc",url:"data/items/items-aoa4.json"},{revision:"d144244faae90b6caee4c4ec3d6e144e",url:"data/items/items-aoa5.json"},{revision:"620a9d0652f00790daafbcc362f18d2b",url:"data/items/items-aoa6.json"},{revision:"f388a33b6fcb63f2231f5ac9f10f6535",url:"data/items/items-aoe1.json"},{revision:"0ee6713fe10b1df9f09016b45c1e2355",url:"data/items/items-aoe2.json"},{revision:"ea4e78794024814a38cca52e0689204f",url:"data/items/items-aoe3.json"},{revision:"a644c7de091cde94db915600dd7ba05a",url:"data/items/items-aoe4.json"},{revision:"ad8a4048472329e124100921451a56bb",url:"data/items/items-aoe5.json"},{revision:"3b5df670bf35d1e4d156f253051f9823",url:"data/items/items-aoe6.json"},{revision:"194cf6bd9f05a58281fe0c79af63eaea",url:"data/items/items-apg.json"},{revision:"da37bd5d379b0cf6514637304c842de2",url:"data/items/items-av1.json"},{revision:"0b61bf4d8b0817ef924449f6813567af",url:"data/items/items-av2.json"},{revision:"6930e38347c700ec67417b8f341e98f2",url:"data/items/items-av3.json"},{revision:"e5eaed34041530c2ac191992b597b182",url:"data/items/items-b1.json"},{revision:"14744362e50cf490466ab48d3d065c97",url:"data/items/items-botd.json"},{revision:"fb45ff9b3f234d1029cf2c4c7e287967",url:"data/items/items-crb.json"},{revision:"3105f96c8d9162052c6b2d1009b64bd0",url:"data/items/items-da.json"},{revision:"d975688fa60c18eeb66424de07f34bad",url:"data/items/items-ec1.json"},{revision:"b228e603ca87bbe384c43cd0d4f8c8be",url:"data/items/items-ec2.json"},{revision:"fbb9a5984826f3aa9a1d85a8e6ba980c",url:"data/items/items-ec3.json"},{revision:"086cb09f7ea6a7154c8f0dcc3486b9af",url:"data/items/items-ec4.json"},{revision:"5e900d54ff7ed55685dbdaee2cb7dfa5",url:"data/items/items-ec5.json"},{revision:"9389ccf464fd96ee2d2d1c527ca07d9a",url:"data/items/items-ec6.json"},{revision:"f309e5819078c9706795c8a911f2bc02",url:"data/items/items-fop.json"},{revision:"dfcc8db2122748add0cea90f66c64138",url:"data/items/items-frp1.json"},{revision:"e4f341ac6eafbe88c5629bac89017287",url:"data/items/items-frp2.json"},{revision:"6b04d4c7bd44b6c7914e9d53da2cec53",url:"data/items/items-g&g.json"},{revision:"b7df03c5fc73ddecad1587989c4f073d",url:"data/items/items-gmg.json"},{revision:"39b40da0da37b66d85b1649ca27ef231",url:"data/items/items-loag.json"},{revision:"39ca9a97cf3bdb5cdc3dd66b5db6aec0",url:"data/items/items-locg.json"},{revision:"4f996041572aa0d60ca8bb4cbf942403",url:"data/items/items-logm.json"},{revision:"db0aa812dd52e322c1abf44fb51b99ce",url:"data/items/items-lokl.json"},{revision:"3b4ecfc47f70f667c45716786e1b7126",url:"data/items/items-lol.json"},{revision:"83756a937d981a12270e5deec2bfecc7",url:"data/items/items-lome.json"},{revision:"c04e894f7067be971380b3a92d274d61",url:"data/items/items-lopsg.json"},{revision:"1c1c7a7bd180bd50ec55d2d949e5d58a",url:"data/items/items-lotg.json"},{revision:"a7e5b806ab75e3d151ab00773fbccf09",url:"data/items/items-lotgb.json"},{revision:"a449f5a122990c252179e97e76372b4d",url:"data/items/items-lowg.json"},{revision:"f70d275b684cadd2b199f185d8fc10bd",url:"data/items/items-ltiba.json"},{revision:"1e8ce7a6562c42d58337ace3c0fca911",url:"data/items/items-ngd.json"},{revision:"0f567254bacb2f4c9fb3874b0cb5dda7",url:"data/items/items-pfum.json"},{revision:"69e1fd21d44db08a236ca255bf9c40a6",url:"data/items/items-sli.json"},{revision:"ae597d50e2e8d7236c7c40fbff8d45ea",url:"data/items/items-som.json"},{revision:"e7fc10b54e9442e3fe8b881d09a4d996",url:"data/items/items-sot1.json"},{revision:"5d390445589625faaab63f0f79dfa43c",url:"data/items/items-sot2.json"},{revision:"6f2fb88effa644233c1ed511887b174f",url:"data/items/items-sot3.json"},{revision:"a72fc58b555045b2d6db3bcaaf4757f6",url:"data/items/items-sot4.json"},{revision:"3efbfdfbb58a9e28efe976a062662329",url:"data/items/items-sot5.json"},{revision:"73b0f646b4031c86100aa45382073e6d",url:"data/items/items-sot6.json"},{revision:"869c873dc073c9358e2f9e79ac8fe255",url:"data/items/items-tio.json"},{revision:"8a80554c91d9fca8acb82f023de02f11",url:"data/spells/fluff-index.json"},{revision:"46961ee99f94693996f52be5c68f68bd",url:"data/spells/index.json"},{revision:"8cd4bbb479d0b8865508441aa66de0e1",url:"data/spells/spells-aoa3.json"},{revision:"bcede667e7033ae8576f217ef72677cf",url:"data/spells/spells-aoa4.json"},{revision:"c17f9a0212e24d921c2515a8f2886cb7",url:"data/spells/spells-aoa6.json"},{revision:"102814a9010604688d83a766ca103b33",url:"data/spells/spells-aoe2.json"},{revision:"fdf988f55cdd74f76caec74eb3b947c3",url:"data/spells/spells-aoe4.json"},{revision:"5bfde4cd1890ca9bdee1a5a72fed91b7",url:"data/spells/spells-aoe5.json"},{revision:"984bd17db57598a690c58ed5ff276a81",url:"data/spells/spells-aoe6.json"},{revision:"c81e2b4d57db2317896306cb9f84dfd6",url:"data/spells/spells-apg.json"},{revision:"f295604dad976d394bba8aeaed0895be",url:"data/spells/spells-av1.json"},{revision:"8114c429781f52295b8a4fd8680985c0",url:"data/spells/spells-av2.json"},{revision:"c6920cba1c14fe6f6b0ce6279d8daab7",url:"data/spells/spells-av3.json"},{revision:"9d67a06a444819da29743257feb32e17",url:"data/spells/spells-botd.json"},{revision:"a72eb47350b3a4c6badeda96a6e95e85",url:"data/spells/spells-crb.json"},{revision:"8c3035b58aa36a46423d298762405af1",url:"data/spells/spells-da.json"},{revision:"10848ac705872174312b0b7adcf8c980",url:"data/spells/spells-ec1.json"},{revision:"457fc909b3d610b7eb4e17eab708626f",url:"data/spells/spells-ec2.json"},{revision:"c76dcf8b45c4ec60a23b851e526eae44",url:"data/spells/spells-ec3.json"},{revision:"0ab5808825c9b5c21ee04104db384192",url:"data/spells/spells-ec4.json"},{revision:"da2e308c456c1f9b212d7bb867954afe",url:"data/spells/spells-ec5.json"},{revision:"aa9379b337c92703b37133011f7db47c",url:"data/spells/spells-ec6.json"},{revision:"9f5ec4cccd99d9f75eeec13bf141b908",url:"data/spells/spells-frp1.json"},{revision:"169421c4672b543f4b7fa00c8d243f72",url:"data/spells/spells-frp3.json"},{revision:"bdcbc2c264f93fd6bd3e8476c5efb014",url:"data/spells/spells-locg.json"},{revision:"b80a54aa1d5e9680a69eb2bcc5719e19",url:"data/spells/spells-logm.json"},{revision:"7df4ffccdfd7a1859c184287e98aa283",url:"data/spells/spells-lokl.json"},{revision:"900afd06d1a92ae68b6f73e991dbf71c",url:"data/spells/spells-lol.json"},{revision:"2a3e5d04a3a376f7957aa9e7a08b6e35",url:"data/spells/spells-lopsg.json"},{revision:"f6d6255ff94c652a92596a505a1d4537",url:"data/spells/spells-lowg.json"},{revision:"c60688a78a3e7caef925ee523ea8f280",url:"data/spells/spells-som.json"},{revision:"f73c30d9e4333665c57d39babba84449",url:"data/spells/spells-sot1.json"},{revision:"7301ca80c2b7ff4889181901c1b6ed64",url:"data/spells/spells-sot3.json"},{revision:"6bbfb148b92beada139a195bfc189c5d",url:"data/spells/spells-sot4.json"},{revision:"52eb4d835888e9b4df0ceece216fdf3c",url:"data/spells/spells-sot5.json"},{revision:"4d30098a93e1b3de38ea661b3aed95a5",url:"abilities.html"},{revision:"45e674213259f82f4d1724e658550935",url:"actions.html"},{revision:"1df5cfea4d0143108be6df12c603d178",url:"adventure.html"},{revision:"064f1aab3a0b194cc930813db2f78ed8",url:"adventures.html"},{revision:"719f1b15116292a6f76f5caca717943a",url:"afflictions.html"},{revision:"d685f1f9de61393bf087e93071829060",url:"ancestries.html"},{revision:"08598b89973d46e338716c40b3bb5fd7",url:"archetypes.html"},{revision:"c57039ea5c6c8cc8fd370d95dc6fd2ef",url:"backgrounds.html"},{revision:"df834b8d68a5ff74e7585f6ff6740e1a",url:"bestiary.html"},{revision:"2ca8c1914c92e7489cc1dfbe970122c6",url:"blacklist.html"},{revision:"6c98ed9625a7dd14ae21eed278108d7c",url:"book.html"},{revision:"8c93c39cde65be9d90321054079b8b90",url:"books.html"},{revision:"9dd45817118ec898363cb4f09f52d380",url:"changelog.html"},{revision:"1a15926685dd0b2ded742dbadce4b193",url:"classes.html"},{revision:"f58637255c12732a1eaeb091f010bb07",url:"companionsfamiliars.html"},{revision:"edc076f47e0bb5deb9c4419da456fe3e",url:"conditions.html"},{revision:"810b56b526244c976e586f9646b09179",url:"creaturetemplates.html"},{revision:"0f97080fcd19913b2b7681844c515f41",url:"deities.html"},{revision:"f433280b3ad9d97acbc0c290b9b60682",url:"donate.html"},{revision:"4b27fc77a19bf4e93fd83661dd7cb7bc",url:"feats.html"},{revision:"39f97b348d41cf8a97c197ba602965d2",url:"gmscreen.html"},{revision:"ff32aba6400842a60a712afef0a63b9d",url:"hazards.html"},{revision:"8a3b54a77e9bfa708f13421d3760a229",url:"index.html"},{revision:"298e11b359967b37d2c23d8b0942781d",url:"inittrackerplayerview.html"},{revision:"7e699ee518fb89661e5ff6cf6f42dcd2",url:"items.html"},{revision:"52e63b01c5697f5f68003ce4285b0553",url:"langdemo.html"},{revision:"14ee89bf592cd0e18349c9469d48db78",url:"languages.html"},{revision:"6c5eadde0c4fc3149a71e5e6a84921df",url:"licenses.html"},{revision:"fb282ffd69f619cc583423403e82e4ae",url:"managebrew.html"},{revision:"3ac875c1710306dce6431ce2549e7cae",url:"optionalfeatures.html"},{revision:"e79654e9bc26dd400548e6f20601b4c5",url:"organizations.html"},{revision:"14cdd2d2a26bd643781d17f14217221d",url:"Pf2eTools.html"},{revision:"5ff8a7cdef3e0381ddc4518fdc17d8d8",url:"places.html"},{revision:"345fa1f7f5471ab11192237c03f2c86e",url:"privacy-policy.html"},{revision:"e3a76437e38a1343d6e03773e23f77dc",url:"quickreference.html"},{revision:"6a155ecb78441a94b117e52df26b134c",url:"renderdemo.html"},{revision:"735062d33d767fb4c2ce52917533ca2b",url:"rituals.html"},{revision:"d19c1e7c1199a72d71daac27cd7f3e14",url:"search.html"},{revision:"0dc24ba6fb44e77afe4ef248c913d107",url:"spells.html"},{revision:"6c24153f82a044dc047001f6805254f5",url:"tables.html"},{revision:"af5f4672ec879916d5a61ba628a8c29f",url:"textconverter.html"},{revision:"728f8a10bb3e8afe858465f1cadf04ae",url:"traits.html"},{revision:"abe874e1bebc1df6e4adaa724ae19eba",url:"variantrules.html"},{revision:"1453f603d4bf89028def5efc6f96ebfb",url:"vehicles.html"},{revision:"06bd30f134452bec5c118f45ae97cd21",url:"search/index-alt-spell.json"},{revision:"a2c797a51147f62dc30cc0c616e035c2",url:"search/index-item.json"},{revision:"74a8668ea5af6353b3fbce3cdaf433f2",url:"search/index.json"},{revision:"50f174b84ca10c666575a939d73484b0",url:"search/traits.json"},{revision:"4050573dedbe1cc64b4fdcad04351daa",url:"manifest.webmanifest"},{revision:"448c34a56d699c29117adc64c43affeb",url:"fonts/glyphicons-halflings-regular.woff2"},{revision:"e18bbf611f2a2e43afc071aa2f4e1512",url:"fonts/glyphicons-halflings-regular.ttf"},{revision:"d09e5b926b6fdb2a506e5909de33de23",url:"fonts/good-pro-400.ttf"},{revision:"9f6134a15b7dfc5a119bc65376dbe269",url:"fonts/good-pro-400.woff"},{revision:"ff1abe8ed0ef061106b68d844c8dab4d",url:"fonts/good-pro-400.woff2"},{revision:"361e7ff40e96db6bbbfe90889d95afdc",url:"fonts/good-pro-700.ttf"},{revision:"1997214212f12c3e4a68f5195e68cb5d",url:"fonts/good-pro-700.woff"},{revision:"0fea4b7d69bbcb12a33f0922262c6421",url:"fonts/good-pro-700.woff2"},{revision:"a11892b605845bf613d1a8bb06c00b04",url:"fonts/good-pro-condensed-400.ttf"},{revision:"6421dccde27db5dba3399149e69f71d3",url:"fonts/good-pro-condensed-400.woff"},{revision:"ea4d723a4099259aba94b84e333034f8",url:"fonts/good-pro-condensed-700.ttf"},{revision:"fc0455882bdfe0c48aa7186da15c85f3",url:"fonts/good-pro-condensed-700.woff"},{revision:"46aa1be77a9022bb5ee43a8513fb3057",url:"fonts/good-pro-condensed-700.woff2"},{revision:"51853144d912fd5553eeb7d39c3b53bf",url:"fonts/good-pro-condensed-italic-400.ttf"},{revision:"41d2455a8dea4aac5165b82743681efa",url:"fonts/good-pro-condensed-italic-400.woff"},{revision:"5a10bdbc21e43df2acd07e2487820d60",url:"fonts/good-pro-condensed-italic-700.ttf"},{revision:"556dd5c152d5b0739a5121f37a2baff4",url:"fonts/good-pro-condensed-italic-700.woff"},{revision:"1bc04907c2bf079908e90e0313239bcd",url:"fonts/good-pro-condensed-italic-700.woff2"},{revision:"ff1eae181861f44db0ab1431879a49f9",url:"fonts/good-pro-italic-400.ttf"},{revision:"a9ed15953b80fedb8137f8f25839fb96",url:"fonts/good-pro-italic-400.woff"},{revision:"1b23ad64d84c8cee844cf53e466e6eed",url:"fonts/good-pro-italic-400.woff2"},{revision:"55ee8f359a01d66ab3b8b22d02d9ed55",url:"fonts/good-pro-italic-700.ttf"},{revision:"6ee51b012748f002f234b578ab1268b7",url:"fonts/good-pro-italic-700.woff"},{revision:"7489b33e26f603728567f2ccee7e508e",url:"fonts/good-pro-italic-700.woff2"},{revision:"2640ba59a59d7dfbb88d0d477f7bdb0a",url:"fonts/Pathfinder2eActions.ttf"},{revision:"c153508add58cc58db1ef0be5c9f8adf",url:"fonts/Gin-Regular.ttf"},{revision:"b0bf2c218bf460993111010eb83a0fa8",url:"fonts/SabonLTStd-Bold.ttf"},{revision:"1b97aaf6b6e56d43d0b9e370c4f50876",url:"fonts/SabonLTStd-BoldItalic.ttf"},{revision:"d69ef52beb7ca47462a0f89ff028a2f3",url:"fonts/SabonLTStd-Italic.ttf"},{revision:"d6e119cff761a4bee40d2f640db5af1e",url:"fonts/SabonLTStd-Roman.ttf"},{revision:"778896312671ade54c606724f278bf36",url:"fonts/AlbertusMT.ttf"},{revision:"918ab3311bf65e4da491aaba2f2ca5bc",url:"fonts/Basing.ttf"},{revision:"2f95108599bc770e0fc66a063b0f5906",url:"fonts/Taroca.ttf"},{revision:"c18c5f06b696ed2d4c1e5eda8cc204ca",url:"img/gmscreen/moon.webp"},{revision:"183504177c2f7e2ccc6b88461af6000d",url:"img/letter-dark.webp"},{revision:"43877a1bc57da60ca9a9aafeac9d8e2f",url:"img/letter.webp"},{revision:"4279516591cee28c697c6d2f84d84da1",url:"img/patreon.webp"},{revision:"12f8d0eeba4504e025f30e4bf6326cd6",url:"fonts/fa-light-300.eot"},{revision:"da5526bf0f7fae09080945b15da77066",url:"fonts/fa-light-300.ttf"},{revision:"83c52b7102d3b3586554677f947792e7",url:"fonts/fa-light-300.woff"},{revision:"1d4e499e402761b86c26b5fa3ad51c30",url:"fonts/fa-light-300.woff2"},{revision:"60176d9e9f5dba8053c9cc0cefc8d73e",url:"sw-injector.js"}]);var le=class extends u{cacheRoutesAbortController=null;constructor(){super({cacheName:"runtime-revision"}),this.activate=this.activate.bind(this),this.cacheRoutes=this.cacheRoutes.bind(this),addEventListener("message",e=>{switch(e.data.type){case"CACHE_ROUTES":{this.cacheRoutesAbortController=new AbortController,e.waitUntil(this.cacheRoutes(e.data,this.cacheRoutesAbortController.signal));break}case"CANCEL_CACHE_ROUTES":{this.cacheRoutesAbortController?.abort(),this.cacheRoutesAbortController=null;break}}})}async _handle(e,r){let s=e.url,t=R({url:s,revision:J.get(s)}).cacheKey,o=await r.cacheMatch(t);if(o!==void 0)return o;try{let i=await r.fetch(e);return r.cachePut(t,i.clone()),i}catch{return ze(s),new Response}}activate(e){return Ge(e,async()=>{let r=await caches.open(this.cacheName),s=(await r.keys()).map(o=>o.url),t=new Set(Array.from(J).map(([o,i])=>R({url:o,revision:i}).cacheKey));await Promise.allSettled(s.map(async o=>{t.has(o)||await r.delete(o)}))})}async cacheRoutes(e,r){let s=await caches.open(this.cacheName),t=new Set((await s.keys()).map(f=>f.url)),o=Array.from(J).map(([f,E])=>R({url:f,revision:E}).cacheKey),i=e.payload.routeRegex,n=o.filter(f=>!t.has(f)&&i.test(f)),c=n.length,l=0,m=async()=>{let f=await self.clients.matchAll({type:"window"});for(let E of f)E.postMessage({type:"CACHE_ROUTES_PROGRESS",payload:{fetched:l,fetchTotal:c}})};if(await m(),c===0)return;let b=5,y=async()=>{for(;;){let f=n.pop();if(f===void 0||r.aborted)return;let E=f.replace(/\?__WB_REVISION__=\w+$/m,""),$e=await fetch(E);await s.put(f,$e),l++,m()}},C=[];for(let f=0;f<b;f++)C.push(y());let ue=(await Promise.allSettled(C)).filter(f=>f.status==="rejected");if(ue.length>0){let f=await self.clients.matchAll({type:"window"});for(let E of f)E.postMessage({type:"CACHE_ROUTES_ERROR",payload:{errors:ue}})}}},J=new Map([["data/adventure/adventure-id.json","0c5df72c500b54de8c5914107bb0da92"],["img/covers/blank.webp","9b2781e05d13f720e91891cbb929fe20"],["img/covers/CRB-100.webp","7650bb7365cbf84b20ee97c6b7c0a189"],["img/covers/CRB-25.webp","716475fd096ad77eee0ed1b47c3a1431"],["img/covers/CRB-33.webp","d7ef321523e2f1321fe8a5324ed4643c"],["img/covers/CRB.webp","bfc8f8b52b8faeee86027947182edcf8"],["img/covers/GMG-100.webp","75c327c893ef10c786f963236b4fe9d0"],["img/covers/GMG-25.webp","a67231c72c04e4a4c018bbd33110198b"],["img/covers/GMG-33.webp","6b05c52c0af37ef6ae43cf6f5d719a9c"],["img/covers/GMG.webp","d3610c80b6d79213177340f0c5f8db06"],["img/covers/LOWG-100.webp","266ffa70d70230e300ed454c612e59cf"],["img/covers/LOWG-25.webp","61855c40cd160dcf3bc8c39dc10844c3"],["img/covers/LOWG-33.webp","138e39219a0a4da133f3519125e9bc3f"],["img/covers/LOWG.webp","1adccec87cc1324fecd5e34ebeef69d4"],["img/covers/SoM-100.webp","ed511ca0c38bbe1644ec1b8729e7fb9b"],["img/covers/SoM-25.webp","51f0a78fa32ece446abc13ada184a2bc"],["img/covers/SoM-33.webp","675e9f72483daeaf814cd1ac38e232c7"],["img/covers/SoM.webp","880dd82ad81eda61b903d28e4bdde4f9"],["img/gmscreen/moon.webp","c18c5f06b696ed2d4c1e5eda8cc204ca"],["img/letter-dark.webp","183504177c2f7e2ccc6b88461af6000d"],["img/letter.webp","43877a1bc57da60ca9a9aafeac9d8e2f"],["img/patreon.webp","4279516591cee28c697c6d2f84d84da1"],["img/logo/Background.svg","c6ec599d06aa5b773e600881ceeb0460"],["img/logo/No%20Background.svg","6d3b2f0a213f7bc5beba9e88f20667f7"],["android-chrome-192x192.png","9c862118ab3423bc2d01ab42f755e07b"],["android-chrome-256x256.png","fad8c4a79079fa54737cb9532e141aa0"],["android-chrome-384x384.png","4f2267d39b6bd3389138f074c45dfe67"],["apple-touch-icon-120x120.png","fe434a800beb3381ad59197e29e68a2a"],["apple-touch-icon-152x152.png","3b23873f540b0c5271201c5f91a0c7ed"],["apple-touch-icon-167x167.png","e19815500c57552e18f8218fbdb5cb72"],["apple-touch-icon-180x180.png","c9ecf9df6e7f7f55974f45f7110d9890"],["apple-touch-icon-360x360.png","b5d0e83a94f7fbea21006b7479d8a898"],["favicon-128x128.png","c7b2e3d1de45c84588bc4711a4b50c6d"],["favicon-144x144.png","6770b376fb68b50e546e60d4a0dae9aa"],["favicon-16x16.png","3dbac8b48aaa087a66f7e3a16af56994"],["favicon-256x256.png","e31f4ad5d254f7faedf87bd8ac8e3d1c"],["favicon-32x32.png","61f449203da4d72d7669df93ef5d1a0c"],["favicon-48x48.png","5144e32c3e7170887ec5c99adeeaaed2"],["favicon-64x64.png","be61a655807353c6f8dcb86ff896c581"],["mstile-144x144.png","9f6d0f9700426867bddb7614da8ece66"],["mstile-150x150.png","ba04e45075fa41f85441a1d070b40710"],["mstile-310x150.png","e37a7cc30a0283d5357fd38901cb6f56"],["mstile-310x310.png","80a2fed08dac45aa2cfc55ddaa5b69fa"],["mstile-70x70.png","798a4847c77967a489d66a40ef1d8801"],["favicon.svg","959b9c72ddadfdf4a067012231a84afb"],["safari-pinned-tab.svg","e84a2ecd6fd15fb32fc3f75293ef467c"]].map(([a,e])=>[`${self.location.origin}/${a}`,e])),Oe=new le;N(({request:a})=>J.has(a.url),Oe);addEventListener("activate",Oe.activate);N(({request:a})=>a.destination==="font",new P({cacheName:"font-cache"}));N(({request:a})=>a.destination==="image",new q({cacheName:"external-image-cache",plugins:[new M({maxAgeSeconds:7*24*60*60,maxEntries:100,purgeOnQuotaError:!0})]}));addEventListener("install",()=>{self.skipWaiting()});addEventListener("activate",a=>{a.waitUntil((async()=>{let e=await caches.keys();for(let r of e)/\d+\.\d+\.\d+/.test(r)&&await caches.delete(r)})())});})();