Файловый менеджер - Редактировать - /home/jogoso94/public_html/static/img/logo/greedy_grub.tar
�азад
sw.js 0000644 00000011553 15042320463 0005537 0 ustar 00 "use strict";const OFFLINE_DATA_FILE="offline.json",CACHE_NAME_PREFIX="c3offline",BROADCASTCHANNEL_NAME="offline",CONSOLE_PREFIX="[SW] ",LAZYLOAD_KEYNAME="",broadcastChannel="undefined"==typeof BroadcastChannel?null:new BroadcastChannel(BROADCASTCHANNEL_NAME);class PromiseThrottle{constructor(e){this._maxParallel=e,this._queue=[],this._activeCount=0}Add(a){return new Promise((e,t)=>{this._queue.push({func:a,resolve:e,reject:t}),this._MaybeStartNext()})}async _MaybeStartNext(){if(this._queue.length&&!(this._activeCount>=this._maxParallel)){this._activeCount++;const t=this._queue.shift();try{const e=await t.func();t.resolve(e)}catch(e){t.reject(e)}this._activeCount--,this._MaybeStartNext()}}}const networkThrottle=new PromiseThrottle(20);function PostBroadcastMessage(e){broadcastChannel&&setTimeout(()=>broadcastChannel.postMessage(e),3e3)}function Broadcast(e){PostBroadcastMessage({"type":e})}function BroadcastDownloadingUpdate(e){PostBroadcastMessage({"type":"downloading-update","version":e})}function BroadcastUpdateReady(e){PostBroadcastMessage({"type":"update-ready","version":e})}function IsUrlInLazyLoadList(e,t){if(t)try{for(const a of t)if(new RegExp(a).test(e))return!0}catch(e){console.error(CONSOLE_PREFIX+"Error matching in lazy-load list: ",e)}return!1}function WriteLazyLoadListToStorage(e){return"undefined"==typeof localforage?Promise.resolve():localforage.setItem(LAZYLOAD_KEYNAME,e)}function ReadLazyLoadListFromStorage(){return"undefined"==typeof localforage?Promise.resolve([]):localforage.getItem(LAZYLOAD_KEYNAME)}function GetCacheBaseName(){return CACHE_NAME_PREFIX+"-"+self.registration.scope}function GetCacheVersionName(e){return GetCacheBaseName()+"-v"+e}async function GetAvailableCacheNames(){const e=await caches.keys(),t=GetCacheBaseName();return e.filter(e=>e.startsWith(t))}async function IsUpdatePending(){const e=await GetAvailableCacheNames();return 2<=e.length}async function GetMainPageUrl(){const e=await clients.matchAll({includeUncontrolled:!0,type:"window"});for(const t of e){let e=t.url;if((e=e.startsWith(self.registration.scope)?e.substring(self.registration.scope.length):e)&&"/"!==e)return e=e.startsWith("?")?"/"+e:e}return""}function fetchWithBypass(e,t){return"string"==typeof e&&(e=new Request(e)),t?fetch(e.url,{headers:e.headers,mode:e.mode,credentials:e.credentials,redirect:e.redirect,cache:"no-store"}):fetch(e)}async function CreateCacheFromFileList(t,a,o){const e=await Promise.all(a.map(e=>networkThrottle.Add(()=>fetchWithBypass(e,o))));let s=!0;for(const r of e)r.ok||(s=!1,console.error(CONSOLE_PREFIX+"Error fetching '"+r.url+"' ("+r.status+" "+r.statusText+")"));if(!s)throw new Error("not all resources were fetched successfully");const n=await caches.open(t);try{return await Promise.all(e.map((e,t)=>n.put(a[t],e)))}catch(e){throw console.error(CONSOLE_PREFIX+"Error writing cache entries: ",e),caches.delete(t),e}}async function UpdateCheck(e){try{const t=await fetchWithBypass(OFFLINE_DATA_FILE,!0);if(!t.ok)throw new Error(OFFLINE_DATA_FILE+" responded with "+t.status+" "+t.statusText);const a=await t.json(),o=a.version,s=a.fileList,n=a.lazyLoad,r=GetCacheVersionName(o),i=await caches.has(r);if(i){const c=await IsUpdatePending();void(c?(console.log(CONSOLE_PREFIX+"Update pending"),Broadcast("update-pending")):(console.log(CONSOLE_PREFIX+"Up to date"),Broadcast("up-to-date")))}else{const l=await GetMainPageUrl(),d=(s.unshift("./"),l&&-1===s.indexOf(l)&&s.unshift(l),console.log(CONSOLE_PREFIX+"Caching "+s.length+" files for offline use"),e?Broadcast("downloading"):BroadcastDownloadingUpdate(o),n&&await WriteLazyLoadListToStorage(n),await CreateCacheFromFileList(r,s,!e),await IsUpdatePending());d?(console.log(CONSOLE_PREFIX+"All resources saved, update ready"),BroadcastUpdateReady(o)):(console.log(CONSOLE_PREFIX+"All resources saved, offline support ready"),Broadcast("offline-ready"))}}catch(e){console.warn(CONSOLE_PREFIX+"Update check failed: ",e)}}async function GetCacheNameToUse(e,t){if(1===e.length||!t)return e[0];const a=await clients.matchAll();if(1<a.length)return e[0];const o=e[e.length-1];return console.log(CONSOLE_PREFIX+"Updating to new version"),await Promise.all(e.slice(0,-1).map(e=>caches.delete(e))),o}async function HandleFetch(t,e){const a=await GetAvailableCacheNames();if(!a.length)return fetch(t.request);const o=await GetCacheNameToUse(a,e),s=await caches.open(o),n=await s.match(t.request);if(n)return n;const r=await Promise.all([fetch(t.request),ReadLazyLoadListFromStorage()]),i=r[0],c=r[1];if(IsUrlInLazyLoadList(t.request.url,c))try{await s.put(t.request,i.clone())}catch(e){console.warn(CONSOLE_PREFIX+"Error caching '"+t.request.url+"': ",e)}return i}self.addEventListener("install",e=>{e.waitUntil(UpdateCheck(!0).catch(()=>null))}),self.addEventListener("fetch",e=>{if(new URL(e.request.url).origin===location.origin){const t="navigate"===e.request.mode,a=HandleFetch(e,t);t&&e.waitUntil(a.then(()=>UpdateCheck(!1))),e.respondWith(a)}}); style.css 0000644 00000003556 15042320463 0006426 0 ustar 00 html, body { padding: 0; margin: 0; overflow: hidden; height: 100%; } body { background: #000000; color: white; } html, body, canvas { touch-action-delay: none; touch-action: none; } canvas, .c3htmlwrap { position: absolute; } .c3htmlwrap { contain: strict; } .c3overlay { pointer-events: none; } .c3htmlwrap[interactive] > * { pointer-events: auto; } /* HACK - work around elements being selectable only in iOS WKWebView for some reason */ html[ioswebview] .c3htmlwrap, html[ioswebview] canvas { -webkit-user-select: none; user-select: none; } html[ioswebview] .c3htmlwrap > * { -webkit-user-select: auto; user-select: auto; } #notSupportedWrap { margin: 2em auto 1em auto; width: 75%; max-width: 45em; border: 2px solid #aaa; border-radius: 1em; padding: 2em; background-color: #f0f0f0; font-family: "Segoe UI", Frutiger, "Frutiger Linotype", "Dejavu Sans", "Helvetica Neue", Arial, sans-serif; color: black; } #notSupportedTitle { font-size: 1.8em; } .notSupportedMessage { font-size: 1.2em; } .notSupportedMessage em { color: #888; } /* bbcode styles */ .bbCodeH1 { font-size: 2em; font-weight: bold; } .bbCodeH2 { font-size: 1.5em; font-weight: bold; } .bbCodeH3 { font-size: 1.25em; font-weight: bold; } .bbCodeH4 { font-size: 1.1em; font-weight: bold; } .bbCodeItem::before { content: " • "; } /* For text icons converted to HTML: size the height to the line height preserving the aspect ratio. Also add position: relative as that allows just adding a 'top' style for the iconoffsety style. */ .c3-text-icon { height: 1em; width: auto; position: relative; } /* screen reader text */ .c3-screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); } images/shared-1-sheet0.webp 0000644 00001044436 15042320463 0011475 0 ustar 00 RIFFI WEBPVP8L I /���@h$ɑ���9� ��'� ��1���fj�J��t�쓞Ȫ=��� q!=��-�I*J"�!�0�\I�A`������q�1!�TK��F���A7�3��[2g>ݔ�c��4Ol�? �7��h��2ң ���!��9��f�CB��Uv��R�c8��㫒���8��!�9N���q1R-� Z�H|I_-��ߊ^آzJ��P��$�ʓ1�J�&�O�P~/�'�|��\�Գ�x�W_�3� �d"�;�}W9n��̻����$I�#%��6��S���֪wj��]�d�V����xN��q��X����#I�U�v83�b,ww��3p۶ ��Wr� N�@O@�$pP�;�P�钤G�x@ʉ�II w8� yeA�.B�<�����,x3 ��<�>���+��3���x �"�"�C�<!�����ۅ$M�Ȅ=P�[��Z���H����2�;�ط�w쑎��8���.̾�EωQ63�S� �D(DJz�(�(n�C��lwe������ۿ�;TI��ml�gSWa��L_�Ы������ENM�A�w/�E:�xA �Fr }�'���9��%�0�U���"f��C�aXV0�� V6���;ȝ��>y�dv�)"��փ)쒹˱�g�"�l�a3�#Ry����F�!T� ԝ1�:�)Rf`f|�s�ʑU�1Zaw��7��c��%O�0� ����r~�#; �s|�1�?�b�F�$?���r�tW�.��� ��!��ZJR��ĶR���m���2�"�"�����gv����6}��U�('�p.bH�g��3joP��:�V _��� :�-hdP �*�4:"�*(�2����6ւ�m�ƭ0��c� 5n�VA�c��O���8 �L�k�+�v�}Q�6 ��o�y7*��[bn|�;�`�ƌ��k�\F�?t??f��n�<�s�E��#��$Z�I-zJ�����IY��hx�R�xǃ�V,D�<U)^�,y��m�C�(��Դ(��1mSM��!%R�t������|��p�t�d2;2b v0 ;��lY�&�i���`D�b������N�.#'